diff --git a/src/components/cards/cards.jsx b/src/components/cards/cards.jsx
index f137c91a0..79d2e6ef3 100644
--- a/src/components/cards/cards.jsx
+++ b/src/components/cards/cards.jsx
@@ -12,6 +12,7 @@ import helpIcon from '../../lib/assets/icon--tutorials.svg';
import closeIcon from './icon--close.svg';
import {translateVideo} from '../../lib/libraries/decks/translate-video.js';
+import {translateImage} from '../../lib/libraries/decks/translate-image.js';
const CardHeader = ({onCloseCards, onShowAll, totalSteps, step}) => (
@@ -275,7 +276,7 @@ const Cards = props => {
/>
) : (
)
diff --git a/src/containers/cards.jsx b/src/containers/cards.jsx
index 0cc39f5c5..e75b1e129 100644
--- a/src/containers/cards.jsx
+++ b/src/containers/cards.jsx
@@ -1,4 +1,6 @@
import {connect} from 'react-redux';
+import PropTypes from 'prop-types';
+import React from 'react';
import {
activateDeck,
@@ -15,6 +17,29 @@ import {
} from '../reducers/modals';
import CardsComponent from '../components/cards/cards.jsx';
+import {loadImageData} from '../lib/libraries/decks/translate-image.js';
+
+class Cards extends React.Component {
+ componentDidMount () {
+ if (this.props.locale !== 'en') {
+ loadImageData(this.props.locale);
+ }
+ }
+ componentDidUpdate (prevProps) {
+ if (this.props.locale !== prevProps.locale) {
+ loadImageData(this.props.locale);
+ }
+ }
+ render () {
+ return (
+
+ );
+ }
+}
+
+Cards.propTypes = {
+ locale: PropTypes.string.isRequired
+};
const mapStateToProps = state => ({
visible: state.scratchGui.cards.visible,
@@ -45,4 +70,4 @@ const mapDispatchToProps = dispatch => ({
export default connect(
mapStateToProps,
mapDispatchToProps
-)(CardsComponent);
+)(Cards);
diff --git a/src/lib/libraries/decks/animate-char/animate-char-pick-another-sprite.gif b/src/lib/libraries/decks/animate-char/animate-char-pick-another-sprite.gif
deleted file mode 100755
index 97bed56b4..000000000
Binary files a/src/lib/libraries/decks/animate-char/animate-char-pick-another-sprite.gif and /dev/null differ
diff --git a/src/lib/libraries/decks/chase-game/chase-game-touching-score.gif b/src/lib/libraries/decks/chase-game/chase-game-touching-score.gif
deleted file mode 100755
index 8026ca68d..000000000
Binary files a/src/lib/libraries/decks/chase-game/chase-game-touching-score.gif and /dev/null differ
diff --git a/src/lib/libraries/decks/en-steps.js b/src/lib/libraries/decks/en-steps.js
new file mode 100644
index 000000000..ce302ae65
--- /dev/null
+++ b/src/lib/libraries/decks/en-steps.js
@@ -0,0 +1,188 @@
+// Intro
+import introMove from './steps/intro-move.en.gif';
+import introSayHello from './steps/intro-say-hello.en.gif';
+
+// Text to Speech
+import speechAddExtension from './steps/speech-add-extension.en.gif';
+import speechSaySomething from './steps/speech-say-something.en.gif';
+import speechSetVoice from './steps/speech-set-voice.en.gif';
+import speechMoveAround from './steps/speech-move-around.en.gif';
+import speechAddBackdrop from './steps/speech-add-backdrop.en.gif';
+import speechAddSprite from './steps/speech-add-sprite.en.gif';
+import speechSong from './steps/speech-song.en.gif';
+import speechChangeColor from './steps/speech-change-color.en.gif';
+import speechSpin from './steps/speech-spin.en.gif';
+import speechGrowShrink from './steps/speech-grow-shrink.en.gif';
+
+// Cartoon Network
+import cnShowCharacter from './steps/cn-show-character.en.gif';
+import cnSay from './steps/cn-say.en.gif';
+import cnGlide from './steps/cn-glide.en.gif';
+import cnPickSprite from './steps/cn-pick-sprite.en.gif';
+import cnCollect from './steps/cn-collect.en.gif';
+import cnVariable from './steps/cn-variable.en.gif';
+import cnScore from './steps/cn-score.en.gif';
+import cnBackdrop from './steps/cn-backdrop.en.gif';
+
+// Add sprite
+import addSprite from './steps/add-sprite.en.gif';
+
+// Animate a name
+import namePickLetter from './steps/name-pick-letter.en.gif';
+import namePlaySound from './steps/name-play-sound.en.gif';
+import namePickLetter2 from './steps/name-pick-letter2.en.gif';
+import nameChangeColor from './steps/name-change-color.en.gif';
+import nameSpin from './steps/name-spin.en.gif';
+import nameGrow from './steps/name-grow.en.gif';
+
+// Make-Music
+import musicPickInstrument from './steps/music-pick-instrument.en.gif';
+import musicPlaySound from './steps/music-play-sound.en.gif';
+import musicMakeSong from './steps/music-make-song.en.gif';
+import musicMakeBeat from './steps/music-make-beat.en.gif';
+import musicMakeBeatbox from './steps/music-make-beatbox.en.gif';
+
+// Chase-Game
+import chaseGameAddBackdrop from './steps/chase-game-add-backdrop.en.gif';
+import chaseGameAddSprite1 from './steps/chase-game-add-sprite1.en.gif';
+import chaseGameRightLeft from './steps/chase-game-right-left.en.gif';
+import chaseGameUpDown from './steps/chase-game-up-down.en.gif';
+import chaseGameAddSprite2 from './steps/chase-game-add-sprite2.en.gif';
+import chaseGameMoveRandomly from './steps/chase-game-move-randomly.en.gif';
+import chaseGamePlaySound from './steps/chase-game-play-sound.en.gif';
+import chaseGameAddVariable from './steps/chase-game-add-variable.en.gif';
+import chaseGameChangeScore from './steps/chase-game-change-score.en.gif';
+
+// Clicker-Game (Pop Game)
+import popGamePickSprite from './steps/pop-game-pick-sprite.en.gif';
+import popGamePlaySound from './steps/pop-game-play-sound.en.gif';
+import popGameAddScore from './steps/pop-game-add-score.en.gif';
+import popGameChangeScore from './steps/pop-game-change-score.en.gif';
+import popGameRandomPosition from './steps/pop-game-random-position.en.gif';
+import popGameChangeColor from './steps/pop-game-change-color.en.gif';
+import popGameResetScore from './steps/pop-game-reset-score.en.gif';
+
+// Animate A Character
+import animateCharPickBackdrop from './steps/animate-char-pick-backdrop.en.gif';
+import animateCharPickSprite from './steps/animate-char-pick-sprite.en.gif';
+import animateCharSaySomething from './steps/animate-char-say-something.en.gif';
+import animateCharAddSound from './steps/animate-char-add-sound.en.gif';
+import animateCharTalk from './steps/animate-char-talk.en.gif';
+import animateCharMove from './steps/animate-char-move.en.gif';
+import animateCharJump from './steps/animate-char-jump.en.gif';
+import animateCharChangeColor from './steps/animate-char-change-color.en.gif';
+
+// Tell A Story
+import storyPickBackdrop from './steps/story-pick-backdrop.en.gif';
+import storyPickSprite from './steps/story-pick-sprite.en.gif';
+import storySaySomething from './steps/story-say-something.en.gif';
+import storyPickSprite2 from './steps/story-pick-sprite2.en.gif';
+import storyFlip from './steps/story-flip.en.gif';
+import storyConversation from './steps/story-conversation.en.gif';
+import storyPickBackdrop2 from './steps/story-pick-backdrop2.en.gif';
+import storySwitchBackdrop from './steps/story-switch-backdrop.en.gif';
+import storyHideCharacter from './steps/story-hide-character.en.gif';
+import storyShowCharacter from './steps/story-show-character.en.gif';
+
+// Video Sensing
+import videoAddExtension from './steps/video-add-extension.en.gif';
+import videoPet from './steps/video-pet.en.gif';
+import videoAnimate from './steps/video-animate.en.gif';
+import videoPop from './steps/video-pop.en.gif';
+
+const enImages = {
+ // Intro
+ introMove: introMove,
+ introSayHello: introSayHello,
+
+ // Text to Speech
+ speechAddExtension: speechAddExtension,
+ speechSaySomething: speechSaySomething,
+ speechSetVoice: speechSetVoice,
+ speechMoveAround: speechMoveAround,
+ speechAddBackdrop: speechAddBackdrop,
+ speechAddSprite: speechAddSprite,
+ speechSong: speechSong,
+ speechChangeColor: speechChangeColor,
+ speechSpin: speechSpin,
+ speechGrowShrink: speechGrowShrink,
+
+ // Cartoon Network
+ cnShowCharacter: cnShowCharacter,
+ cnSay: cnSay,
+ cnGlide: cnGlide,
+ cnPickSprite: cnPickSprite,
+ cnCollect: cnCollect,
+ cnVariable: cnVariable,
+ cnScore: cnScore,
+ cnBackdrop: cnBackdrop,
+
+ // Add sprite
+ addSprite: addSprite,
+
+ // Animate a name
+ namePickLetter: namePickLetter,
+ namePlaySound: namePlaySound,
+ namePickLetter2: namePickLetter2,
+ nameChangeColor: nameChangeColor,
+ nameSpin: nameSpin,
+ nameGrow: nameGrow,
+
+ // Make-Music
+ musicPickInstrument: musicPickInstrument,
+ musicPlaySound: musicPlaySound,
+ musicMakeSong: musicMakeSong,
+ musicMakeBeat: musicMakeBeat,
+ musicMakeBeatbox: musicMakeBeatbox,
+
+ // Chase-Game
+ chaseGameAddBackdrop: chaseGameAddBackdrop,
+ chaseGameAddSprite1: chaseGameAddSprite1,
+ chaseGameRightLeft: chaseGameRightLeft,
+ chaseGameUpDown: chaseGameUpDown,
+ chaseGameAddSprite2: chaseGameAddSprite2,
+ chaseGameMoveRandomly: chaseGameMoveRandomly,
+ chaseGamePlaySound: chaseGamePlaySound,
+ chaseGameAddVariable: chaseGameAddVariable,
+ chaseGameChangeScore: chaseGameChangeScore,
+
+ // Make-A-Pop/Clicker Game
+ popGamePickSprite: popGamePickSprite,
+ popGamePlaySound: popGamePlaySound,
+ popGameAddScore: popGameAddScore,
+ popGameChangeScore: popGameChangeScore,
+ popGameRandomPosition: popGameRandomPosition,
+ popGameChangeColor: popGameChangeColor,
+ popGameResetScore: popGameResetScore,
+
+ // Animate A Character
+ animateCharPickBackdrop: animateCharPickBackdrop,
+ animateCharPickSprite: animateCharPickSprite,
+ animateCharSaySomething: animateCharSaySomething,
+ animateCharAddSound: animateCharAddSound,
+ animateCharTalk: animateCharTalk,
+ animateCharMove: animateCharMove,
+ animateCharJump: animateCharJump,
+ animateCharChangeColor: animateCharChangeColor,
+
+ // Tell A Story
+ storyPickBackdrop: storyPickBackdrop,
+ storyPickSprite: storyPickSprite,
+ storySaySomething: storySaySomething,
+ storyPickSprite2: storyPickSprite2,
+ storyFlip: storyFlip,
+ storyConversation: storyConversation,
+ storyPickBackdrop2: storyPickBackdrop2,
+ storySwitchBackdrop: storySwitchBackdrop,
+ storyHideCharacter: storyHideCharacter,
+ storyShowCharacter: storyShowCharacter,
+
+ // Video Sensing
+ videoAddExtension: videoAddExtension,
+ videoPet: videoPet,
+ videoAnimate: videoAnimate,
+ videoPop: videoPop
+
+};
+
+export {enImages};
diff --git a/src/lib/libraries/decks/es-steps.js b/src/lib/libraries/decks/es-steps.js
new file mode 100644
index 000000000..f46c63a38
--- /dev/null
+++ b/src/lib/libraries/decks/es-steps.js
@@ -0,0 +1,188 @@
+// Intro
+import introMove from './steps/intro-move.es.gif';
+import introSayHello from './steps/intro-say-hello.es.gif';
+
+// Text to Speech
+// import speechAddExtension from './steps/speech-add-extension.es.gif';
+// import speechSaySomething from './steps/speech-say-something.es.gif';
+// import speechSetVoice from './steps/speech-set-voice.es.gif';
+// import speechMoveAround from './steps/speech-move-around.es.gif';
+// import speechAddBackdrop from './steps/speech-add-backdrop.es.gif';
+// import speechAddSprite from './steps/speech-add-sprite.es.gif';
+// import speechSong from './steps/speech-song.es.gif';
+// import speechChangeColor from './steps/speech-change-color.es.gif';
+// import speechSpin from './steps/speech-spin.es.gif';
+// import speechGrowShrink from './steps/speech-grow-shrink.es.gif';
+//
+// // Cartoon Network
+// import cnShowCharacter from './steps/cn-show-character.es.gif';
+// import cnSay from './steps/cn-say.es.gif';
+// import cnGlide from './steps/cn-glide.es.gif';
+// import cnPickSprite from './steps/cn-pick-sprite.es.gif';
+// import cnCollect from './steps/cn-collect.es.gif';
+// import cnVariable from './steps/cn-variable.es.gif';
+// import cnScore from './steps/cn-score.es.gif';
+// import cnBackdrop from './steps/cn-backdrop.es.gif';
+
+// Add sprite
+import addSprite from './steps/add-sprite.es.gif';
+
+// Animate a name
+import namePickLetter from './steps/name-pick-letter.es.gif';
+import namePlaySound from './steps/name-play-sound.es.gif';
+import namePickLetter2 from './steps/name-pick-letter2.es.gif';
+import nameChangeColor from './steps/name-change-color.es.gif';
+import nameSpin from './steps/name-spin.es.gif';
+import nameGrow from './steps/name-grow.es.gif';
+
+// Make-Music
+import musicPickInstrument from './steps/music-pick-instrument.es.gif';
+import musicPlaySound from './steps/music-play-sound.es.gif';
+import musicMakeSong from './steps/music-make-song.es.gif';
+import musicMakeBeat from './steps/music-make-beat.es.gif';
+import musicMakeBeatbox from './steps/music-make-beatbox.es.gif';
+
+// Chase-Game
+import chaseGameAddBackdrop from './steps/chase-game-add-backdrop.es.gif';
+import chaseGameAddSprite1 from './steps/chase-game-add-sprite1.es.gif';
+import chaseGameRightLeft from './steps/chase-game-right-left.es.gif';
+import chaseGameUpDown from './steps/chase-game-up-down.es.gif';
+import chaseGameAddSprite2 from './steps/chase-game-add-sprite2.es.gif';
+import chaseGameMoveRandomly from './steps/chase-game-move-randomly.es.gif';
+import chaseGamePlaySound from './steps/chase-game-play-sound.es.gif';
+import chaseGameAddVariable from './steps/chase-game-add-variable.es.gif';
+import chaseGameChangeScore from './steps/chase-game-change-score.es.gif';
+
+// Clicker-Game (Pop Game)
+import popGamePickSprite from './steps/pop-game-pick-sprite.es.gif';
+import popGamePlaySound from './steps/pop-game-play-sound.es.gif';
+import popGameAddScore from './steps/pop-game-add-score.es.gif';
+import popGameChangeScore from './steps/pop-game-change-score.es.gif';
+import popGameRandomPosition from './steps/pop-game-random-position.es.gif';
+import popGameChangeColor from './steps/pop-game-change-color.es.gif';
+import popGameResetScore from './steps/pop-game-reset-score.es.gif';
+
+// Animate A Character
+import animateCharPickBackdrop from './steps/animate-char-pick-backdrop.es.gif';
+import animateCharPickSprite from './steps/animate-char-pick-sprite.es.gif';
+import animateCharSaySomething from './steps/animate-char-say-something.es.gif';
+import animateCharAddSound from './steps/animate-char-add-sound.es.gif';
+import animateCharTalk from './steps/animate-char-talk.es.gif';
+import animateCharMove from './steps/animate-char-move.es.gif';
+import animateCharJump from './steps/animate-char-jump.es.gif';
+import animateCharChangeColor from './steps/animate-char-change-color.es.gif';
+
+// Tell A Story
+import storyPickBackdrop from './steps/story-pick-backdrop.es.gif';
+import storyPickSprite from './steps/story-pick-sprite.es.gif';
+import storySaySomething from './steps/story-say-something.es.gif';
+import storyPickSprite2 from './steps/story-pick-sprite2.es.gif';
+import storyFlip from './steps/story-flip.es.gif';
+import storyConversation from './steps/story-conversation.es.gif';
+import storyPickBackdrop2 from './steps/story-pick-backdrop2.es.gif';
+import storySwitchBackdrop from './steps/story-switch-backdrop.es.gif';
+import storyHideCharacter from './steps/story-hide-character.es.gif';
+import storyShowCharacter from './steps/story-show-character.es.gif';
+
+// Video Sensing
+import videoAddExtension from './steps/video-add-extension.es.gif';
+import videoPet from './steps/video-pet.es.gif';
+import videoAnimate from './steps/video-animate.es.gif';
+import videoPop from './steps/video-pop.es.gif';
+
+const esImages = {
+ // Intro
+ introMove: introMove,
+ introSayHello: introSayHello,
+
+ // // Text to Speech
+ // speechAddExtension: speechAddExtension,
+ // speechSaySomething: speechSaySomething,
+ // speechSetVoice: speechSetVoice,
+ // speechMoveAround: speechMoveAround,
+ // speechAddBackdrop: speechAddBackdrop,
+ // speechAddSprite: speechAddSprite,
+ // speechSong: speechSong,
+ // speechChangeColor: speechChangeColor,
+ // speechSpin: speechSpin,
+ // speechGrowShrink: speechGrowShrink,
+ //
+ // // Cartoon Network
+ // cnShowCharacter: cnShowCharacter,
+ // cnSay: cnSay,
+ // cnGlide: cnGlide,
+ // cnPickSprite: cnPickSprite,
+ // cnCollect: cnCollect,
+ // cnVariable: cnVariable,
+ // cnScore: cnScore,
+ // cnBackdrop: cnBackdrop,
+
+ // Add sprite
+ addSprite: addSprite,
+
+ // Animate a name
+ namePickLetter: namePickLetter,
+ namePlaySound: namePlaySound,
+ namePickLetter2: namePickLetter2,
+ nameChangeColor: nameChangeColor,
+ nameSpin: nameSpin,
+ nameGrow: nameGrow,
+
+ // Make-Music
+ musicPickInstrument: musicPickInstrument,
+ musicPlaySound: musicPlaySound,
+ musicMakeSong: musicMakeSong,
+ musicMakeBeat: musicMakeBeat,
+ musicMakeBeatbox: musicMakeBeatbox,
+
+ // Chase-Game
+ chaseGameAddBackdrop: chaseGameAddBackdrop,
+ chaseGameAddSprite1: chaseGameAddSprite1,
+ chaseGameRightLeft: chaseGameRightLeft,
+ chaseGameUpDown: chaseGameUpDown,
+ chaseGameAddSprite2: chaseGameAddSprite2,
+ chaseGameMoveRandomly: chaseGameMoveRandomly,
+ chaseGamePlaySound: chaseGamePlaySound,
+ chaseGameAddVariable: chaseGameAddVariable,
+ chaseGameChangeScore: chaseGameChangeScore,
+
+ // Make-A-Pop/Clicker Game
+ popGamePickSprite: popGamePickSprite,
+ popGamePlaySound: popGamePlaySound,
+ popGameAddScore: popGameAddScore,
+ popGameChangeScore: popGameChangeScore,
+ popGameRandomPosition: popGameRandomPosition,
+ popGameChangeColor: popGameChangeColor,
+ popGameResetScore: popGameResetScore,
+
+ // Animate A Character
+ animateCharPickBackdrop: animateCharPickBackdrop,
+ animateCharPickSprite: animateCharPickSprite,
+ animateCharSaySomething: animateCharSaySomething,
+ animateCharAddSound: animateCharAddSound,
+ animateCharTalk: animateCharTalk,
+ animateCharMove: animateCharMove,
+ animateCharJump: animateCharJump,
+ animateCharChangeColor: animateCharChangeColor,
+
+ // Tell A Story
+ storyPickBackdrop: storyPickBackdrop,
+ storyPickSprite: storyPickSprite,
+ storySaySomething: storySaySomething,
+ storyPickSprite2: storyPickSprite2,
+ storyFlip: storyFlip,
+ storyConversation: storyConversation,
+ storyPickBackdrop2: storyPickBackdrop2,
+ storySwitchBackdrop: storySwitchBackdrop,
+ storyHideCharacter: storyHideCharacter,
+ storyShowCharacter: storyShowCharacter,
+
+ // Video Sensing
+ videoAddExtension: videoAddExtension,
+ videoPet: videoPet,
+ videoAnimate: videoAnimate,
+ videoPop: videoPop
+
+};
+
+export {esImages};
diff --git a/src/lib/libraries/decks/index.jsx b/src/lib/libraries/decks/index.jsx
index 78aeb6f29..92dcb643d 100644
--- a/src/lib/libraries/decks/index.jsx
+++ b/src/lib/libraries/decks/index.jsx
@@ -1,120 +1,51 @@
import React from 'react';
import {FormattedMessage} from 'react-intl';
+// Tutorial thumbnails: Avoid using any text that would need to be
+// translated in thumbnails.
// Intro
-import libraryIntro from './intro/lib-getting-started.jpg';
-import stepMove from './intro/intro1.gif';
-import stepMoveSayHello from './intro/intro2.gif';
+import libraryIntro from './thumbnails/getting-started.jpg';
// Text to Speech
-import libraryTXTSpeech from './txt/lib_txt-to-speech.jpg';
-import stepAddTXTextension from './txt/01_hoc-add-extensions.gif';
-import stepTXTSpeech from './txt/02_hoc-say-something.gif';
-import stepTXTSetVoice from './txt/03_hoc-set-voice.gif';
-import stepTXTMove from './txt/04_hoc-move-around.gif';
-import stepTXTBackdrop from './txt/05_hoc-add-backdrop.gif';
-import stepTXTAddSprite from './txt/06_hoc-add-character.gif';
-import stepTXTSong from './txt/07_hoc-perform-song.gif';
-import stepTXTColor from './txt/08_hoc-color-click.gif';
-import stepTXTSpin from './txt/09_hoc-spin.gif';
-import stepTXTGrow from './txt/10_hoc-grow-shrink.gif';
+import libraryTXTSpeech from './thumbnails/text-to-speech.jpg';
// Cartoon Network
-import libraryCartoonNetwork from './cartoonnetwork/lib_CartoonNetwork.jpg';
-import stepCNcharacter from './cartoonnetwork/1-cn-hideshow.gif';
-import stepCNsay from './cartoonnetwork/2-cn-say.gif';
-import stepCNglide from './cartoonnetwork/3-cn-glide.gif';
-import stepCNpicksprite from './cartoonnetwork/4-cn-pick-gem.gif';
-import stepCNcollect from './cartoonnetwork/5-cn-collect.gif';
-import stepCNvariable from './cartoonnetwork/6-cn-variable.gif';
-import stepCNscore from './cartoonnetwork/7-cn-score.gif';
-import stepCNbackdrop from './cartoonnetwork/8-cn-change-backdrop.gif';
+import libraryCartoonNetwork from './thumbnails/cartoon-network.jpg';
// Add sprite
-import libraryAddSprite from './sprite/cover-add-sprite.jpg';
-import stepAddSprite from './sprite/intro-choose-sprite.gif';
+import libraryAddSprite from './thumbnails/add-sprite.jpg';
// Animate a name
-import libraryAnimate from './animate/lib_animate-a-name.jpg';
-import stepAnimatePickLetter from './animate/animate-name-pick-a-letter.gif';
-import stepAnimatePlaySound from './animate/animate-name-play-sound.gif';
-import stepAnimatePickLetter2 from './animate/animate-name-pick-a-letter2.gif';
-import stepAnimateChangeColor from './animate/animate-name-change-color.gif';
-import stepAnimateSpin from './animate/animate-name-spin.gif';
-import stepAnimateGrow from './animate/animate-name-grow.gif';
-
+import libraryAnimate from './thumbnails/animate-a-name.jpg';
// Make-Music
-import libraryMakeMusic from './make-music/lib-make-music.jpg';
-import stepPickInstrument from './make-music/make-music-pick-instrument.gif';
-import stepPlaySoundClick from './make-music/make-music-play-sound.gif';
-import stepMakeSong from './make-music/make-music-make-song.gif';
-import stepMakeBeat from './make-music/make-music-make-beat.gif';
-import stepMakeBeatbox from './make-music/make-music-beatbox.gif';
+import libraryMakeMusic from './thumbnails/make-music.jpg';
// Chase-Game
-import libraryChaseGame from './chase-game/lib-chasegame.jpg';
-import stepBG from './chase-game/chase-game-add-backdrop.gif';
-import stepAddOcto from './chase-game/chase-game-add-sprite1.gif';
-import stepLeftRight from './chase-game/chase-game-move-rightleft.gif';
-import stepUpDown from './chase-game/chase-game-move-updown.gif';
-import stepAddStar from './chase-game/chase-game-add-sprite2.gif';
-import stepMoveRandom from './chase-game/chase-game-move-randomly.gif';
-import stepWhenTouch from './chase-game/chase-game-touching.gif';
-import stepScoreVariable from './chase-game/chase-game-add-variable.gif';
-import stepScoreWhenTouch from './chase-game/chase-game-change-score.gif';
+import libraryChaseGame from './thumbnails/chase-game.jpg';
// Make-A-Game
-import libraryMakeAGame from './game/lib-pop.jpg';
-import stepGamePickSprite from './game/game-pick-sprite.gif';
-import stepGamePlaySound from './game/game-play-sound.gif';
-import stepGameAddScore from './game/game-add-score.gif';
-import stepGameChangeScore from './game/game-change-score.gif';
-import stepRandom from './game/game-random-position.gif';
-import stepGameChangeColor from './game/game-change-color.gif';
-import stepResetScore from './game/game-reset-score.gif';
+import libraryMakeAGame from './thumbnails/pop-game.jpg';
// Animate A Character
-import libraryAnimateChar from './animate-char/lib_Animate_a_Character.jpg';
-import stepAnimateCharPickBackdrop from './animate-char/animate-char-pick-backdrop.gif';
-import stepAnimateCharPickSprite from './animate-char/animate-char-pick-sprite.gif';
-import stepAnimateCharSaySomething from './animate-char/animate-char-say-something.gif';
-import stepAnimateCharAddSound from './animate-char/animate-char-add-sound.gif';
-import stepAnimateCharTalk from './animate-char/animate-char-talk.gif';
-import stepAnimateCharMove from './animate-char/animate-char-move.gif';
-import stepAnimateCharJump from './animate-char/animate-char-jump.gif';
-import stepAnimateCharChangeColor from './animate-char/animate-char-change-color.gif';
+import libraryAnimateChar from './thumbnails/animate-a-character.jpg';
// Tell A Story
-import libraryStory from './story/lib-tell-a-story.jpg';
-import stepStoryPickBackdrop from './story/story-pick-backdrop.gif';
-import stepStoryPickSprite from './story/story-pick-sprite.gif';
-import stepStoryCharSaySomething from './story/story-say-something.gif';
-import stepStoryCharAddAnotherSprite from './story/story-pick-another-sprite.gif';
-import stepStoryFlip from './story/story-flip.gif';
-import stepStoryConversation from './story/story-conversation.gif';
-import stepStoryAddAnotherBackdrop from './story/story-add-background-2.gif';
-import stepStorySwitchBackdrop from './story/story-switch-backdrop.gif';
-import stepStoryHide from './story/story-hide-character.gif';
-import stepStoryShow from './story/story-show-character.gif';
+import libraryStory from './thumbnails/tell-a-story.jpg';
// Video Sensing
-import libraryVideoSens from './videosensing/lib_video_sensing.jpg';
-import stepVideoSensAddExtension from './videosensing/videosens-add-extension.gif';
-import stepVideoSensPet from './videosensing/videosens-pet-cat.gif';
-import stepVideoSensAnimate from './videosensing/videosens-animate.gif';
-import stepVideoSensPop from './videosensing/videosens-pop.gif';
+import libraryVideoSens from './thumbnails/video-sensing.jpg';
// Videos
-import recordASound from './videos/record-a-sound.jpg';
-import glideAroundThumb from './videos/glide-around.jpg';
-import changeSizeThumb from './videos/change-size.jpg';
-import switchCostumeThumb from './videos/animate-sprite.jpg';
-import hideAndShowThumb from './videos/hide-and-show.jpg';
-import addBackdropThumb from './videos/add-backdrop.jpg';
-import addEffectsThumb from './videos/add-effects.jpg';
-import moveArrowKeysThumb from './videos/move-arrow-keys.jpg';
-import spinThumb from './videos/spin.jpg';
+import recordASound from './thumbnails/record-a-sound.jpg';
+import glideAroundThumb from './thumbnails/glide-around.jpg';
+import changeSizeThumb from './thumbnails/change-size.jpg';
+import switchCostumeThumb from './thumbnails/animate-sprite.jpg';
+import hideAndShowThumb from './thumbnails/hide-and-show.jpg';
+import addBackdropThumb from './thumbnails/add-backdrop.jpg';
+import addEffectsThumb from './thumbnails/add-effects.jpg';
+import moveArrowKeysThumb from './thumbnails/move-arrow-keys.jpg';
+import spinThumb from './thumbnails/spin.jpg';
export default {
@@ -138,7 +69,7 @@ export default {
id="gui.howtos.intro-move.step_stepMove"
/>
),
- image: stepMove
+ image: 'introMove'
}, {
title: (
),
- image: stepMoveSayHello
+ image: 'introSayHello'
}, {
deckIds: [
'add-a-backdrop',
@@ -180,16 +111,16 @@ export default {
id="gui.howtos.say-it-out-loud.step_AddTXTextension"
/>
),
- image: stepAddTXTextension
+ image: 'speechAddExtension'
}, {
title: (
),
- image: stepTXTSpeech
+ image: 'speechSaySomething'
}, {
title: (
),
- image: stepTXTSetVoice
+ image: 'speechSetVoice'
}, {
title: (
),
- image: stepTXTMove
+ image: 'speechMoveAround'
}, {
title: (
),
- image: stepTXTBackdrop
+ image: 'speechAddBackdrop'
}, {
title: (
),
- image: stepTXTAddSprite
+ image: 'speechAddSprite'
}, {
title: (
),
- image: stepTXTSong
+ image: 'speechSong'
}, {
title: (
),
- image: stepTXTColor
+ image: 'speechChangeColor'
}, {
title: (
),
- image: stepTXTSpin
+ image: 'speechSpin'
}, {
title: (
),
- image: stepTXTGrow
+ image: 'speechGrowShrink'
}, {
deckIds: [
'animate-a-name',
@@ -295,7 +226,7 @@ export default {
id="gui.howtos.cartoon-network.step_CNcharacter"
/>
),
- image: stepCNcharacter
+ image: 'cnShowCharacter'
}, {
title: (
),
- image: stepCNsay
+ image: 'cnSay'
}, {
title: (
),
- image: stepCNglide
+ image: 'cnGlide'
}, {
title: (
),
- image: stepCNpicksprite
+ image: 'cnPickSprite'
}, {
title: (
),
- image: stepCNcollect
+ image: 'cnCollect'
}, {
title: (
),
- image: stepCNvariable
+ image: 'cnVariable'
}, {
title: (
),
- image: stepCNscore
+ image: 'cnScore'
}, {
title: (
),
- image: stepCNbackdrop
+ image: 'cnBackdrop'
},
{
video: '6o76f5ivo1'
@@ -392,7 +323,7 @@ export default {
id="gui.howtos.animate-a-name.step_AnimatePickLetter"
/>
),
- image: stepAnimatePickLetter
+ image: 'namePickLetter'
}, {
title: (
),
- image: stepAnimatePlaySound
+ image: 'namePlaySound'
}, {
title: (
),
- image: stepAnimatePickLetter2
+ image: 'namePickLetter2'
}, {
title: (
),
- image: stepAnimateChangeColor
+ image: 'nameChangeColor'
}, {
title: (
),
- image: stepAnimateSpin
+ image: 'nameSpin'
}, {
title: (
),
- image: stepAnimateGrow
+ image: 'nameGrow'
}, {
deckIds: [
'add-a-backdrop',
@@ -468,7 +399,7 @@ export default {
id="gui.howtos.Make-Music.step_PickInstrument"
/>
),
- image: stepPickInstrument
+ image: 'musicPickInstrument'
},
{
title: (
@@ -478,7 +409,7 @@ export default {
id="gui.howtos.Make-Music.step_PlaySoundClick"
/>
),
- image: stepPlaySoundClick
+ image: 'musicPlaySound'
},
{
title: (
@@ -488,7 +419,7 @@ export default {
id="gui.howtos.Make-Music.step_MakeSong"
/>
),
- image: stepMakeSong
+ image: 'musicMakeSong'
}, {
title: (
),
- image: stepMakeBeat
+ image: 'musicMakeBeat'
}, {
title: (
),
- image: stepMakeBeatbox
+ image: 'musicMakeBeatbox'
}, {
deckIds: [
'add-a-backdrop',
@@ -537,7 +468,7 @@ export default {
id="gui.howtos.Make-A-Game.step_GamePickSprite"
/>
),
- image: stepGamePickSprite
+ image: 'popGamePickSprite'
}, {
title: (
),
- image: stepGamePlaySound
+ image: 'popGamePlaySound'
}, {
title: (
),
- image: stepGameAddScore
+ image: 'popGameAddScore'
}, {
title: (
),
- image: stepGameChangeScore
+ image: 'popGameChangeScore'
}, {
title: (
),
- image: stepRandom
+ image: 'popGameRandomPosition'
}, {
title: (
),
- image: stepGameChangeColor
+ image: 'popGameChangeColor'
}, {
title: (
),
- image: stepResetScore
+ image: 'popGameResetScore'
}, {
deckIds: [
'add-a-backdrop',
@@ -624,7 +555,7 @@ export default {
id="gui.howtos.Chase-Game.step_BG"
/>
),
- image: stepBG
+ image: 'chaseGameAddBackdrop'
}, {
title: (
),
- image: stepAddOcto
+ image: 'chaseGameAddSprite1'
}, {
title: (
),
- image: stepLeftRight
+ image: 'chaseGameRightLeft'
}, {
title: (
),
- image: stepUpDown
+ image: 'chaseGameUpDown'
}, {
title: (
),
- image: stepAddStar
+ image: 'chaseGameAddSprite2'
}, {
title: (
),
- image: stepMoveRandom
+ image: 'chaseGameMoveRandomly'
}, {
title: (
),
- image: stepWhenTouch
+ image: 'chaseGamePlaySound'
}, {
title: (
),
- image: stepScoreVariable
+ image: 'chaseGameAddVariable'
}, {
title: (
),
- image: stepScoreWhenTouch
+ image: 'chaseGameChangeScore'
}, {
deckIds: [
'add-effects',
@@ -726,7 +657,7 @@ export default {
id="gui.howtos.animate-char.step_addbg"
/>
),
- image: stepAnimateCharPickBackdrop
+ image: 'animateCharPickBackdrop'
}, {
title: (
),
- image: stepAnimateCharPickSprite
+ image: 'animateCharPickSprite'
}, {
title: (
),
- image: stepAnimateCharSaySomething
+ image: 'animateCharSaySomething'
}, {
title: (
),
- image: stepAnimateCharAddSound
+ image: 'animateCharAddSound'
}, {
title: (
),
- image: stepAnimateCharTalk
+ image: 'animateCharTalk'
}, {
title: (
),
- image: stepAnimateCharMove
+ image: 'animateCharMove'
}, {
title: (
),
- image: stepAnimateCharJump
+ image: 'animateCharJump'
}, {
title: (
),
- image: stepAnimateCharChangeColor
+ image: 'animateCharChangeColor'
}, {
deckIds: [
'Chase-Game',
@@ -819,7 +750,7 @@ export default {
id="gui.howtos.story.step_addbg"
/>
),
- image: stepStoryPickBackdrop
+ image: 'storyPickBackdrop'
}, {
title: (
),
- image: stepStoryPickSprite
+ image: 'storyPickSprite'
}, {
title: (
),
- image: stepStoryCharSaySomething
+ image: 'storySaySomething'
}, {
title: (
),
- image: stepStoryCharAddAnotherSprite
+ image: 'storyPickSprite2'
}, {
title: (
),
- image: stepStoryFlip
+ image: 'storyFlip'
}, {
title: (
),
- image: stepStoryConversation
+ image: 'storyConversation'
}, {
title: (
),
- image: stepStoryAddAnotherBackdrop
+ image: 'storyPickBackdrop2'
}, {
title: (
),
- image: stepStorySwitchBackdrop
+ image: 'storySwitchBackdrop'
}, {
title: (
),
- image: stepStoryHide
+ image: 'storyHideCharacter'
}, {
title: (
),
- image: stepStoryShow
+ image: 'storyShowCharacter'
},
{
deckIds: [
@@ -931,7 +862,7 @@ export default {
id="gui.howtos.videosens.step_addextension"
/>
),
- image: stepVideoSensAddExtension
+ image: 'videoAddExtension'
}, {
title: (
),
- image: stepVideoSensPet
+ image: 'videoPet'
}, {
title: (
),
- image: stepVideoSensAnimate
+ image: 'videoAnimate'
}, {
title: (
),
- image: stepVideoSensPop
+ image: 'videoPop'
}, {
deckIds: [
'Make-Music',
@@ -987,7 +918,7 @@ export default {
id="gui.howtos.add-sprite.step_addSprite"
/>
),
- image: stepAddSprite
+ image: 'addSprite'
},
{
deckIds: [
diff --git a/src/lib/libraries/decks/intro/intro-coverimage.jpg b/src/lib/libraries/decks/intro/intro-coverimage.jpg
deleted file mode 100644
index b336ce816..000000000
Binary files a/src/lib/libraries/decks/intro/intro-coverimage.jpg and /dev/null differ
diff --git a/src/lib/libraries/decks/sprite/intro-choose-sprite.gif b/src/lib/libraries/decks/steps/add-sprite.en.gif
similarity index 100%
rename from src/lib/libraries/decks/sprite/intro-choose-sprite.gif
rename to src/lib/libraries/decks/steps/add-sprite.en.gif
diff --git a/src/lib/libraries/decks/steps/add-sprite.es.gif b/src/lib/libraries/decks/steps/add-sprite.es.gif
new file mode 100755
index 000000000..a708a4ae5
Binary files /dev/null and b/src/lib/libraries/decks/steps/add-sprite.es.gif differ
diff --git a/src/lib/libraries/decks/animate-char/animate-char-add-sound.gif b/src/lib/libraries/decks/steps/animate-char-add-sound.en.gif
old mode 100755
new mode 100644
similarity index 100%
rename from src/lib/libraries/decks/animate-char/animate-char-add-sound.gif
rename to src/lib/libraries/decks/steps/animate-char-add-sound.en.gif
diff --git a/src/lib/libraries/decks/steps/animate-char-add-sound.es.gif b/src/lib/libraries/decks/steps/animate-char-add-sound.es.gif
new file mode 100755
index 000000000..0e73a3138
Binary files /dev/null and b/src/lib/libraries/decks/steps/animate-char-add-sound.es.gif differ
diff --git a/src/lib/libraries/decks/animate-char/animate-char-change-color.gif b/src/lib/libraries/decks/steps/animate-char-change-color.en.gif
similarity index 100%
rename from src/lib/libraries/decks/animate-char/animate-char-change-color.gif
rename to src/lib/libraries/decks/steps/animate-char-change-color.en.gif
diff --git a/src/lib/libraries/decks/steps/animate-char-change-color.es.gif b/src/lib/libraries/decks/steps/animate-char-change-color.es.gif
new file mode 100755
index 000000000..b33d1968b
Binary files /dev/null and b/src/lib/libraries/decks/steps/animate-char-change-color.es.gif differ
diff --git a/src/lib/libraries/decks/animate-char/animate-char-jump.gif b/src/lib/libraries/decks/steps/animate-char-jump.en.gif
old mode 100755
new mode 100644
similarity index 100%
rename from src/lib/libraries/decks/animate-char/animate-char-jump.gif
rename to src/lib/libraries/decks/steps/animate-char-jump.en.gif
diff --git a/src/lib/libraries/decks/steps/animate-char-jump.es.gif b/src/lib/libraries/decks/steps/animate-char-jump.es.gif
new file mode 100755
index 000000000..f95a6e741
Binary files /dev/null and b/src/lib/libraries/decks/steps/animate-char-jump.es.gif differ
diff --git a/src/lib/libraries/decks/animate-char/animate-char-move.gif b/src/lib/libraries/decks/steps/animate-char-move.en.gif
old mode 100755
new mode 100644
similarity index 100%
rename from src/lib/libraries/decks/animate-char/animate-char-move.gif
rename to src/lib/libraries/decks/steps/animate-char-move.en.gif
diff --git a/src/lib/libraries/decks/steps/animate-char-move.es.gif b/src/lib/libraries/decks/steps/animate-char-move.es.gif
new file mode 100755
index 000000000..69436c73e
Binary files /dev/null and b/src/lib/libraries/decks/steps/animate-char-move.es.gif differ
diff --git a/src/lib/libraries/decks/animate-char/animate-char-pick-backdrop.gif b/src/lib/libraries/decks/steps/animate-char-pick-backdrop.en.gif
old mode 100755
new mode 100644
similarity index 100%
rename from src/lib/libraries/decks/animate-char/animate-char-pick-backdrop.gif
rename to src/lib/libraries/decks/steps/animate-char-pick-backdrop.en.gif
diff --git a/src/lib/libraries/decks/steps/animate-char-pick-backdrop.es.gif b/src/lib/libraries/decks/steps/animate-char-pick-backdrop.es.gif
new file mode 100755
index 000000000..5be6c21fc
Binary files /dev/null and b/src/lib/libraries/decks/steps/animate-char-pick-backdrop.es.gif differ
diff --git a/src/lib/libraries/decks/animate-char/animate-char-pick-sprite.gif b/src/lib/libraries/decks/steps/animate-char-pick-sprite.en.gif
old mode 100755
new mode 100644
similarity index 100%
rename from src/lib/libraries/decks/animate-char/animate-char-pick-sprite.gif
rename to src/lib/libraries/decks/steps/animate-char-pick-sprite.en.gif
diff --git a/src/lib/libraries/decks/steps/animate-char-pick-sprite.es.gif b/src/lib/libraries/decks/steps/animate-char-pick-sprite.es.gif
new file mode 100755
index 000000000..5635b378d
Binary files /dev/null and b/src/lib/libraries/decks/steps/animate-char-pick-sprite.es.gif differ
diff --git a/src/lib/libraries/decks/animate-char/animate-char-say-something.gif b/src/lib/libraries/decks/steps/animate-char-say-something.en.gif
old mode 100755
new mode 100644
similarity index 100%
rename from src/lib/libraries/decks/animate-char/animate-char-say-something.gif
rename to src/lib/libraries/decks/steps/animate-char-say-something.en.gif
diff --git a/src/lib/libraries/decks/steps/animate-char-say-something.es.gif b/src/lib/libraries/decks/steps/animate-char-say-something.es.gif
new file mode 100755
index 000000000..46eac1479
Binary files /dev/null and b/src/lib/libraries/decks/steps/animate-char-say-something.es.gif differ
diff --git a/src/lib/libraries/decks/animate-char/animate-char-talk.gif b/src/lib/libraries/decks/steps/animate-char-talk.en.gif
old mode 100755
new mode 100644
similarity index 100%
rename from src/lib/libraries/decks/animate-char/animate-char-talk.gif
rename to src/lib/libraries/decks/steps/animate-char-talk.en.gif
diff --git a/src/lib/libraries/decks/steps/animate-char-talk.es.gif b/src/lib/libraries/decks/steps/animate-char-talk.es.gif
new file mode 100755
index 000000000..e388d8e6f
Binary files /dev/null and b/src/lib/libraries/decks/steps/animate-char-talk.es.gif differ
diff --git a/src/lib/libraries/decks/chase-game/chase-game-add-backdrop.gif b/src/lib/libraries/decks/steps/chase-game-add-backdrop.en.gif
old mode 100755
new mode 100644
similarity index 100%
rename from src/lib/libraries/decks/chase-game/chase-game-add-backdrop.gif
rename to src/lib/libraries/decks/steps/chase-game-add-backdrop.en.gif
diff --git a/src/lib/libraries/decks/steps/chase-game-add-backdrop.es.gif b/src/lib/libraries/decks/steps/chase-game-add-backdrop.es.gif
new file mode 100755
index 000000000..7200a6502
Binary files /dev/null and b/src/lib/libraries/decks/steps/chase-game-add-backdrop.es.gif differ
diff --git a/src/lib/libraries/decks/chase-game/chase-game-add-sprite1.gif b/src/lib/libraries/decks/steps/chase-game-add-sprite1.en.gif
old mode 100755
new mode 100644
similarity index 100%
rename from src/lib/libraries/decks/chase-game/chase-game-add-sprite1.gif
rename to src/lib/libraries/decks/steps/chase-game-add-sprite1.en.gif
diff --git a/src/lib/libraries/decks/steps/chase-game-add-sprite1.es.gif b/src/lib/libraries/decks/steps/chase-game-add-sprite1.es.gif
new file mode 100755
index 000000000..b1ca6ebee
Binary files /dev/null and b/src/lib/libraries/decks/steps/chase-game-add-sprite1.es.gif differ
diff --git a/src/lib/libraries/decks/chase-game/chase-game-add-sprite2.gif b/src/lib/libraries/decks/steps/chase-game-add-sprite2.en.gif
old mode 100755
new mode 100644
similarity index 100%
rename from src/lib/libraries/decks/chase-game/chase-game-add-sprite2.gif
rename to src/lib/libraries/decks/steps/chase-game-add-sprite2.en.gif
diff --git a/src/lib/libraries/decks/steps/chase-game-add-sprite2.es.gif b/src/lib/libraries/decks/steps/chase-game-add-sprite2.es.gif
new file mode 100755
index 000000000..3bebd695d
Binary files /dev/null and b/src/lib/libraries/decks/steps/chase-game-add-sprite2.es.gif differ
diff --git a/src/lib/libraries/decks/chase-game/chase-game-add-variable.gif b/src/lib/libraries/decks/steps/chase-game-add-variable.en.gif
old mode 100755
new mode 100644
similarity index 100%
rename from src/lib/libraries/decks/chase-game/chase-game-add-variable.gif
rename to src/lib/libraries/decks/steps/chase-game-add-variable.en.gif
diff --git a/src/lib/libraries/decks/steps/chase-game-add-variable.es.gif b/src/lib/libraries/decks/steps/chase-game-add-variable.es.gif
new file mode 100755
index 000000000..b0e2ea834
Binary files /dev/null and b/src/lib/libraries/decks/steps/chase-game-add-variable.es.gif differ
diff --git a/src/lib/libraries/decks/chase-game/chase-game-change-score.gif b/src/lib/libraries/decks/steps/chase-game-change-score.en.gif
old mode 100755
new mode 100644
similarity index 100%
rename from src/lib/libraries/decks/chase-game/chase-game-change-score.gif
rename to src/lib/libraries/decks/steps/chase-game-change-score.en.gif
diff --git a/src/lib/libraries/decks/steps/chase-game-change-score.es.gif b/src/lib/libraries/decks/steps/chase-game-change-score.es.gif
new file mode 100755
index 000000000..86a6d5a00
Binary files /dev/null and b/src/lib/libraries/decks/steps/chase-game-change-score.es.gif differ
diff --git a/src/lib/libraries/decks/chase-game/chase-game-move-randomly.gif b/src/lib/libraries/decks/steps/chase-game-move-randomly.en.gif
old mode 100755
new mode 100644
similarity index 100%
rename from src/lib/libraries/decks/chase-game/chase-game-move-randomly.gif
rename to src/lib/libraries/decks/steps/chase-game-move-randomly.en.gif
diff --git a/src/lib/libraries/decks/steps/chase-game-move-randomly.es.gif b/src/lib/libraries/decks/steps/chase-game-move-randomly.es.gif
new file mode 100755
index 000000000..1a6fab408
Binary files /dev/null and b/src/lib/libraries/decks/steps/chase-game-move-randomly.es.gif differ
diff --git a/src/lib/libraries/decks/chase-game/chase-game-touching.gif b/src/lib/libraries/decks/steps/chase-game-play-sound.en.gif
old mode 100755
new mode 100644
similarity index 100%
rename from src/lib/libraries/decks/chase-game/chase-game-touching.gif
rename to src/lib/libraries/decks/steps/chase-game-play-sound.en.gif
diff --git a/src/lib/libraries/decks/steps/chase-game-play-sound.es.gif b/src/lib/libraries/decks/steps/chase-game-play-sound.es.gif
new file mode 100755
index 000000000..734611b4f
Binary files /dev/null and b/src/lib/libraries/decks/steps/chase-game-play-sound.es.gif differ
diff --git a/src/lib/libraries/decks/chase-game/chase-game-move-rightleft.gif b/src/lib/libraries/decks/steps/chase-game-right-left.en.gif
old mode 100755
new mode 100644
similarity index 100%
rename from src/lib/libraries/decks/chase-game/chase-game-move-rightleft.gif
rename to src/lib/libraries/decks/steps/chase-game-right-left.en.gif
diff --git a/src/lib/libraries/decks/steps/chase-game-right-left.es.gif b/src/lib/libraries/decks/steps/chase-game-right-left.es.gif
new file mode 100755
index 000000000..02fb204fb
Binary files /dev/null and b/src/lib/libraries/decks/steps/chase-game-right-left.es.gif differ
diff --git a/src/lib/libraries/decks/chase-game/chase-game-move-updown.gif b/src/lib/libraries/decks/steps/chase-game-up-down.en.gif
old mode 100755
new mode 100644
similarity index 100%
rename from src/lib/libraries/decks/chase-game/chase-game-move-updown.gif
rename to src/lib/libraries/decks/steps/chase-game-up-down.en.gif
diff --git a/src/lib/libraries/decks/steps/chase-game-up-down.es.gif b/src/lib/libraries/decks/steps/chase-game-up-down.es.gif
new file mode 100755
index 000000000..2c26c4867
Binary files /dev/null and b/src/lib/libraries/decks/steps/chase-game-up-down.es.gif differ
diff --git a/src/lib/libraries/decks/cartoonnetwork/8-cn-change-backdrop.gif b/src/lib/libraries/decks/steps/cn-backdrop.en.gif
similarity index 100%
rename from src/lib/libraries/decks/cartoonnetwork/8-cn-change-backdrop.gif
rename to src/lib/libraries/decks/steps/cn-backdrop.en.gif
diff --git a/src/lib/libraries/decks/cartoonnetwork/5-cn-collect.gif b/src/lib/libraries/decks/steps/cn-collect.en.gif
similarity index 100%
rename from src/lib/libraries/decks/cartoonnetwork/5-cn-collect.gif
rename to src/lib/libraries/decks/steps/cn-collect.en.gif
diff --git a/src/lib/libraries/decks/cartoonnetwork/3-cn-glide.gif b/src/lib/libraries/decks/steps/cn-glide.en.gif
similarity index 100%
rename from src/lib/libraries/decks/cartoonnetwork/3-cn-glide.gif
rename to src/lib/libraries/decks/steps/cn-glide.en.gif
diff --git a/src/lib/libraries/decks/cartoonnetwork/4-cn-pick-gem.gif b/src/lib/libraries/decks/steps/cn-pick-sprite.en.gif
similarity index 100%
rename from src/lib/libraries/decks/cartoonnetwork/4-cn-pick-gem.gif
rename to src/lib/libraries/decks/steps/cn-pick-sprite.en.gif
diff --git a/src/lib/libraries/decks/cartoonnetwork/2-cn-say.gif b/src/lib/libraries/decks/steps/cn-say.en.gif
similarity index 100%
rename from src/lib/libraries/decks/cartoonnetwork/2-cn-say.gif
rename to src/lib/libraries/decks/steps/cn-say.en.gif
diff --git a/src/lib/libraries/decks/cartoonnetwork/7-cn-score.gif b/src/lib/libraries/decks/steps/cn-score.en.gif
similarity index 100%
rename from src/lib/libraries/decks/cartoonnetwork/7-cn-score.gif
rename to src/lib/libraries/decks/steps/cn-score.en.gif
diff --git a/src/lib/libraries/decks/cartoonnetwork/1-cn-hideshow.gif b/src/lib/libraries/decks/steps/cn-show-character.en.gif
similarity index 100%
rename from src/lib/libraries/decks/cartoonnetwork/1-cn-hideshow.gif
rename to src/lib/libraries/decks/steps/cn-show-character.en.gif
diff --git a/src/lib/libraries/decks/cartoonnetwork/6-cn-variable.gif b/src/lib/libraries/decks/steps/cn-variable.en.gif
similarity index 100%
rename from src/lib/libraries/decks/cartoonnetwork/6-cn-variable.gif
rename to src/lib/libraries/decks/steps/cn-variable.en.gif
diff --git a/src/lib/libraries/decks/intro/intro1.gif b/src/lib/libraries/decks/steps/intro-move.en.gif
similarity index 100%
rename from src/lib/libraries/decks/intro/intro1.gif
rename to src/lib/libraries/decks/steps/intro-move.en.gif
diff --git a/src/lib/libraries/decks/steps/intro-move.es.gif b/src/lib/libraries/decks/steps/intro-move.es.gif
new file mode 100755
index 000000000..860d5f75c
Binary files /dev/null and b/src/lib/libraries/decks/steps/intro-move.es.gif differ
diff --git a/src/lib/libraries/decks/intro/intro2.gif b/src/lib/libraries/decks/steps/intro-say-hello.en.gif
similarity index 100%
rename from src/lib/libraries/decks/intro/intro2.gif
rename to src/lib/libraries/decks/steps/intro-say-hello.en.gif
diff --git a/src/lib/libraries/decks/steps/intro-say-hello.es.gif b/src/lib/libraries/decks/steps/intro-say-hello.es.gif
new file mode 100755
index 000000000..bfd825012
Binary files /dev/null and b/src/lib/libraries/decks/steps/intro-say-hello.es.gif differ
diff --git a/src/lib/libraries/decks/make-music/make-music-make-beat.gif b/src/lib/libraries/decks/steps/music-make-beat.en.gif
similarity index 100%
rename from src/lib/libraries/decks/make-music/make-music-make-beat.gif
rename to src/lib/libraries/decks/steps/music-make-beat.en.gif
diff --git a/src/lib/libraries/decks/steps/music-make-beat.es.gif b/src/lib/libraries/decks/steps/music-make-beat.es.gif
new file mode 100755
index 000000000..c86c1a1fe
Binary files /dev/null and b/src/lib/libraries/decks/steps/music-make-beat.es.gif differ
diff --git a/src/lib/libraries/decks/make-music/make-music-beatbox.gif b/src/lib/libraries/decks/steps/music-make-beatbox.en.gif
similarity index 100%
rename from src/lib/libraries/decks/make-music/make-music-beatbox.gif
rename to src/lib/libraries/decks/steps/music-make-beatbox.en.gif
diff --git a/src/lib/libraries/decks/steps/music-make-beatbox.es.gif b/src/lib/libraries/decks/steps/music-make-beatbox.es.gif
new file mode 100755
index 000000000..4638b9995
Binary files /dev/null and b/src/lib/libraries/decks/steps/music-make-beatbox.es.gif differ
diff --git a/src/lib/libraries/decks/make-music/make-music-make-song.gif b/src/lib/libraries/decks/steps/music-make-song.en.gif
similarity index 100%
rename from src/lib/libraries/decks/make-music/make-music-make-song.gif
rename to src/lib/libraries/decks/steps/music-make-song.en.gif
diff --git a/src/lib/libraries/decks/steps/music-make-song.es.gif b/src/lib/libraries/decks/steps/music-make-song.es.gif
new file mode 100755
index 000000000..56591ea06
Binary files /dev/null and b/src/lib/libraries/decks/steps/music-make-song.es.gif differ
diff --git a/src/lib/libraries/decks/make-music/make-music-pick-instrument.gif b/src/lib/libraries/decks/steps/music-pick-instrument.en.gif
old mode 100755
new mode 100644
similarity index 100%
rename from src/lib/libraries/decks/make-music/make-music-pick-instrument.gif
rename to src/lib/libraries/decks/steps/music-pick-instrument.en.gif
diff --git a/src/lib/libraries/decks/steps/music-pick-instrument.es.gif b/src/lib/libraries/decks/steps/music-pick-instrument.es.gif
new file mode 100755
index 000000000..e496d57f2
Binary files /dev/null and b/src/lib/libraries/decks/steps/music-pick-instrument.es.gif differ
diff --git a/src/lib/libraries/decks/make-music/make-music-play-sound.gif b/src/lib/libraries/decks/steps/music-play-sound.en.gif
old mode 100755
new mode 100644
similarity index 100%
rename from src/lib/libraries/decks/make-music/make-music-play-sound.gif
rename to src/lib/libraries/decks/steps/music-play-sound.en.gif
diff --git a/src/lib/libraries/decks/steps/music-play-sound.es.gif b/src/lib/libraries/decks/steps/music-play-sound.es.gif
new file mode 100755
index 000000000..2bf03fa1c
Binary files /dev/null and b/src/lib/libraries/decks/steps/music-play-sound.es.gif differ
diff --git a/src/lib/libraries/decks/animate/animate-name-change-color.gif b/src/lib/libraries/decks/steps/name-change-color.en.gif
similarity index 100%
rename from src/lib/libraries/decks/animate/animate-name-change-color.gif
rename to src/lib/libraries/decks/steps/name-change-color.en.gif
diff --git a/src/lib/libraries/decks/steps/name-change-color.es.gif b/src/lib/libraries/decks/steps/name-change-color.es.gif
new file mode 100755
index 000000000..6b8755c6f
Binary files /dev/null and b/src/lib/libraries/decks/steps/name-change-color.es.gif differ
diff --git a/src/lib/libraries/decks/animate/animate-name-grow.gif b/src/lib/libraries/decks/steps/name-grow.en.gif
similarity index 100%
rename from src/lib/libraries/decks/animate/animate-name-grow.gif
rename to src/lib/libraries/decks/steps/name-grow.en.gif
diff --git a/src/lib/libraries/decks/steps/name-grow.es.gif b/src/lib/libraries/decks/steps/name-grow.es.gif
new file mode 100755
index 000000000..921d2e546
Binary files /dev/null and b/src/lib/libraries/decks/steps/name-grow.es.gif differ
diff --git a/src/lib/libraries/decks/animate/animate-name-pick-a-letter.gif b/src/lib/libraries/decks/steps/name-pick-letter.en.gif
similarity index 100%
rename from src/lib/libraries/decks/animate/animate-name-pick-a-letter.gif
rename to src/lib/libraries/decks/steps/name-pick-letter.en.gif
diff --git a/src/lib/libraries/decks/steps/name-pick-letter.es.gif b/src/lib/libraries/decks/steps/name-pick-letter.es.gif
new file mode 100755
index 000000000..1afdf64de
Binary files /dev/null and b/src/lib/libraries/decks/steps/name-pick-letter.es.gif differ
diff --git a/src/lib/libraries/decks/animate/animate-name-pick-a-letter2.gif b/src/lib/libraries/decks/steps/name-pick-letter2.en.gif
old mode 100755
new mode 100644
similarity index 100%
rename from src/lib/libraries/decks/animate/animate-name-pick-a-letter2.gif
rename to src/lib/libraries/decks/steps/name-pick-letter2.en.gif
diff --git a/src/lib/libraries/decks/steps/name-pick-letter2.es.gif b/src/lib/libraries/decks/steps/name-pick-letter2.es.gif
new file mode 100755
index 000000000..4c5131457
Binary files /dev/null and b/src/lib/libraries/decks/steps/name-pick-letter2.es.gif differ
diff --git a/src/lib/libraries/decks/animate/animate-name-play-sound.gif b/src/lib/libraries/decks/steps/name-play-sound.en.gif
old mode 100755
new mode 100644
similarity index 100%
rename from src/lib/libraries/decks/animate/animate-name-play-sound.gif
rename to src/lib/libraries/decks/steps/name-play-sound.en.gif
diff --git a/src/lib/libraries/decks/steps/name-play-sound.es.gif b/src/lib/libraries/decks/steps/name-play-sound.es.gif
new file mode 100755
index 000000000..2abcebdaf
Binary files /dev/null and b/src/lib/libraries/decks/steps/name-play-sound.es.gif differ
diff --git a/src/lib/libraries/decks/animate/animate-name-spin.gif b/src/lib/libraries/decks/steps/name-spin.en.gif
similarity index 100%
rename from src/lib/libraries/decks/animate/animate-name-spin.gif
rename to src/lib/libraries/decks/steps/name-spin.en.gif
diff --git a/src/lib/libraries/decks/steps/name-spin.es.gif b/src/lib/libraries/decks/steps/name-spin.es.gif
new file mode 100755
index 000000000..6250ed9b1
Binary files /dev/null and b/src/lib/libraries/decks/steps/name-spin.es.gif differ
diff --git a/src/lib/libraries/decks/game/game-add-score.gif b/src/lib/libraries/decks/steps/pop-game-add-score.en.gif
similarity index 100%
rename from src/lib/libraries/decks/game/game-add-score.gif
rename to src/lib/libraries/decks/steps/pop-game-add-score.en.gif
diff --git a/src/lib/libraries/decks/steps/pop-game-add-score.es.gif b/src/lib/libraries/decks/steps/pop-game-add-score.es.gif
new file mode 100755
index 000000000..b0e2ea834
Binary files /dev/null and b/src/lib/libraries/decks/steps/pop-game-add-score.es.gif differ
diff --git a/src/lib/libraries/decks/game/game-change-color.gif b/src/lib/libraries/decks/steps/pop-game-change-color.en.gif
old mode 100755
new mode 100644
similarity index 100%
rename from src/lib/libraries/decks/game/game-change-color.gif
rename to src/lib/libraries/decks/steps/pop-game-change-color.en.gif
diff --git a/src/lib/libraries/decks/steps/pop-game-change-color.es.gif b/src/lib/libraries/decks/steps/pop-game-change-color.es.gif
new file mode 100755
index 000000000..deb7c804b
Binary files /dev/null and b/src/lib/libraries/decks/steps/pop-game-change-color.es.gif differ
diff --git a/src/lib/libraries/decks/game/game-change-score.gif b/src/lib/libraries/decks/steps/pop-game-change-score.en.gif
old mode 100755
new mode 100644
similarity index 100%
rename from src/lib/libraries/decks/game/game-change-score.gif
rename to src/lib/libraries/decks/steps/pop-game-change-score.en.gif
diff --git a/src/lib/libraries/decks/steps/pop-game-change-score.es.gif b/src/lib/libraries/decks/steps/pop-game-change-score.es.gif
new file mode 100755
index 000000000..55d062158
Binary files /dev/null and b/src/lib/libraries/decks/steps/pop-game-change-score.es.gif differ
diff --git a/src/lib/libraries/decks/game/game-pick-sprite.gif b/src/lib/libraries/decks/steps/pop-game-pick-sprite.en.gif
old mode 100755
new mode 100644
similarity index 100%
rename from src/lib/libraries/decks/game/game-pick-sprite.gif
rename to src/lib/libraries/decks/steps/pop-game-pick-sprite.en.gif
diff --git a/src/lib/libraries/decks/steps/pop-game-pick-sprite.es.gif b/src/lib/libraries/decks/steps/pop-game-pick-sprite.es.gif
new file mode 100755
index 000000000..bf773eb27
Binary files /dev/null and b/src/lib/libraries/decks/steps/pop-game-pick-sprite.es.gif differ
diff --git a/src/lib/libraries/decks/game/game-play-sound.gif b/src/lib/libraries/decks/steps/pop-game-play-sound.en.gif
old mode 100755
new mode 100644
similarity index 100%
rename from src/lib/libraries/decks/game/game-play-sound.gif
rename to src/lib/libraries/decks/steps/pop-game-play-sound.en.gif
diff --git a/src/lib/libraries/decks/steps/pop-game-play-sound.es.gif b/src/lib/libraries/decks/steps/pop-game-play-sound.es.gif
new file mode 100755
index 000000000..b7dff0c73
Binary files /dev/null and b/src/lib/libraries/decks/steps/pop-game-play-sound.es.gif differ
diff --git a/src/lib/libraries/decks/game/game-random-position.gif b/src/lib/libraries/decks/steps/pop-game-random-position.en.gif
old mode 100755
new mode 100644
similarity index 100%
rename from src/lib/libraries/decks/game/game-random-position.gif
rename to src/lib/libraries/decks/steps/pop-game-random-position.en.gif
diff --git a/src/lib/libraries/decks/steps/pop-game-random-position.es.gif b/src/lib/libraries/decks/steps/pop-game-random-position.es.gif
new file mode 100755
index 000000000..d02f8adb1
Binary files /dev/null and b/src/lib/libraries/decks/steps/pop-game-random-position.es.gif differ
diff --git a/src/lib/libraries/decks/game/game-reset-score.gif b/src/lib/libraries/decks/steps/pop-game-reset-score.en.gif
similarity index 100%
rename from src/lib/libraries/decks/game/game-reset-score.gif
rename to src/lib/libraries/decks/steps/pop-game-reset-score.en.gif
diff --git a/src/lib/libraries/decks/steps/pop-game-reset-score.es.gif b/src/lib/libraries/decks/steps/pop-game-reset-score.es.gif
new file mode 100755
index 000000000..2d5e0b433
Binary files /dev/null and b/src/lib/libraries/decks/steps/pop-game-reset-score.es.gif differ
diff --git a/src/lib/libraries/decks/txt/05_hoc-add-backdrop.gif b/src/lib/libraries/decks/steps/speech-add-backdrop.en.gif
old mode 100755
new mode 100644
similarity index 100%
rename from src/lib/libraries/decks/txt/05_hoc-add-backdrop.gif
rename to src/lib/libraries/decks/steps/speech-add-backdrop.en.gif
diff --git a/src/lib/libraries/decks/txt/01_hoc-add-extensions.gif b/src/lib/libraries/decks/steps/speech-add-extension.en.gif
old mode 100755
new mode 100644
similarity index 100%
rename from src/lib/libraries/decks/txt/01_hoc-add-extensions.gif
rename to src/lib/libraries/decks/steps/speech-add-extension.en.gif
diff --git a/src/lib/libraries/decks/txt/06_hoc-add-character.gif b/src/lib/libraries/decks/steps/speech-add-sprite.en.gif
old mode 100755
new mode 100644
similarity index 100%
rename from src/lib/libraries/decks/txt/06_hoc-add-character.gif
rename to src/lib/libraries/decks/steps/speech-add-sprite.en.gif
diff --git a/src/lib/libraries/decks/txt/08_hoc-color-click.gif b/src/lib/libraries/decks/steps/speech-change-color.en.gif
similarity index 100%
rename from src/lib/libraries/decks/txt/08_hoc-color-click.gif
rename to src/lib/libraries/decks/steps/speech-change-color.en.gif
diff --git a/src/lib/libraries/decks/txt/10_hoc-grow-shrink.gif b/src/lib/libraries/decks/steps/speech-grow-shrink.en.gif
old mode 100755
new mode 100644
similarity index 100%
rename from src/lib/libraries/decks/txt/10_hoc-grow-shrink.gif
rename to src/lib/libraries/decks/steps/speech-grow-shrink.en.gif
diff --git a/src/lib/libraries/decks/txt/04_hoc-move-around.gif b/src/lib/libraries/decks/steps/speech-move-around.en.gif
similarity index 100%
rename from src/lib/libraries/decks/txt/04_hoc-move-around.gif
rename to src/lib/libraries/decks/steps/speech-move-around.en.gif
diff --git a/src/lib/libraries/decks/txt/02_hoc-say-something.gif b/src/lib/libraries/decks/steps/speech-say-something.en.gif
old mode 100755
new mode 100644
similarity index 100%
rename from src/lib/libraries/decks/txt/02_hoc-say-something.gif
rename to src/lib/libraries/decks/steps/speech-say-something.en.gif
diff --git a/src/lib/libraries/decks/txt/03_hoc-set-voice.gif b/src/lib/libraries/decks/steps/speech-set-voice.en.gif
similarity index 100%
rename from src/lib/libraries/decks/txt/03_hoc-set-voice.gif
rename to src/lib/libraries/decks/steps/speech-set-voice.en.gif
diff --git a/src/lib/libraries/decks/txt/07_hoc-perform-song.gif b/src/lib/libraries/decks/steps/speech-song.en.gif
old mode 100755
new mode 100644
similarity index 100%
rename from src/lib/libraries/decks/txt/07_hoc-perform-song.gif
rename to src/lib/libraries/decks/steps/speech-song.en.gif
diff --git a/src/lib/libraries/decks/txt/09_hoc-spin.gif b/src/lib/libraries/decks/steps/speech-spin.en.gif
similarity index 100%
rename from src/lib/libraries/decks/txt/09_hoc-spin.gif
rename to src/lib/libraries/decks/steps/speech-spin.en.gif
diff --git a/src/lib/libraries/decks/story/story-conversation.gif b/src/lib/libraries/decks/steps/story-conversation.en.gif
old mode 100755
new mode 100644
similarity index 100%
rename from src/lib/libraries/decks/story/story-conversation.gif
rename to src/lib/libraries/decks/steps/story-conversation.en.gif
diff --git a/src/lib/libraries/decks/steps/story-conversation.es.gif b/src/lib/libraries/decks/steps/story-conversation.es.gif
new file mode 100755
index 000000000..6fa323113
Binary files /dev/null and b/src/lib/libraries/decks/steps/story-conversation.es.gif differ
diff --git a/src/lib/libraries/decks/story/story-flip.gif b/src/lib/libraries/decks/steps/story-flip.en.gif
old mode 100755
new mode 100644
similarity index 100%
rename from src/lib/libraries/decks/story/story-flip.gif
rename to src/lib/libraries/decks/steps/story-flip.en.gif
diff --git a/src/lib/libraries/decks/steps/story-flip.es.gif b/src/lib/libraries/decks/steps/story-flip.es.gif
new file mode 100755
index 000000000..f7cdd33e5
Binary files /dev/null and b/src/lib/libraries/decks/steps/story-flip.es.gif differ
diff --git a/src/lib/libraries/decks/story/story-hide-character.gif b/src/lib/libraries/decks/steps/story-hide-character.en.gif
old mode 100755
new mode 100644
similarity index 100%
rename from src/lib/libraries/decks/story/story-hide-character.gif
rename to src/lib/libraries/decks/steps/story-hide-character.en.gif
diff --git a/src/lib/libraries/decks/steps/story-hide-character.es.gif b/src/lib/libraries/decks/steps/story-hide-character.es.gif
new file mode 100755
index 000000000..8b9876f21
Binary files /dev/null and b/src/lib/libraries/decks/steps/story-hide-character.es.gif differ
diff --git a/src/lib/libraries/decks/story/story-pick-backdrop.gif b/src/lib/libraries/decks/steps/story-pick-backdrop.en.gif
old mode 100755
new mode 100644
similarity index 100%
rename from src/lib/libraries/decks/story/story-pick-backdrop.gif
rename to src/lib/libraries/decks/steps/story-pick-backdrop.en.gif
diff --git a/src/lib/libraries/decks/steps/story-pick-backdrop.es.gif b/src/lib/libraries/decks/steps/story-pick-backdrop.es.gif
new file mode 100755
index 000000000..b4315f51c
Binary files /dev/null and b/src/lib/libraries/decks/steps/story-pick-backdrop.es.gif differ
diff --git a/src/lib/libraries/decks/story/story-add-background-2.gif b/src/lib/libraries/decks/steps/story-pick-backdrop2.en.gif
old mode 100755
new mode 100644
similarity index 100%
rename from src/lib/libraries/decks/story/story-add-background-2.gif
rename to src/lib/libraries/decks/steps/story-pick-backdrop2.en.gif
diff --git a/src/lib/libraries/decks/steps/story-pick-backdrop2.es.gif b/src/lib/libraries/decks/steps/story-pick-backdrop2.es.gif
new file mode 100755
index 000000000..8004e7532
Binary files /dev/null and b/src/lib/libraries/decks/steps/story-pick-backdrop2.es.gif differ
diff --git a/src/lib/libraries/decks/story/story-pick-sprite.gif b/src/lib/libraries/decks/steps/story-pick-sprite.en.gif
old mode 100755
new mode 100644
similarity index 100%
rename from src/lib/libraries/decks/story/story-pick-sprite.gif
rename to src/lib/libraries/decks/steps/story-pick-sprite.en.gif
diff --git a/src/lib/libraries/decks/steps/story-pick-sprite.es.gif b/src/lib/libraries/decks/steps/story-pick-sprite.es.gif
new file mode 100755
index 000000000..664da7e6f
Binary files /dev/null and b/src/lib/libraries/decks/steps/story-pick-sprite.es.gif differ
diff --git a/src/lib/libraries/decks/story/story-pick-another-sprite.gif b/src/lib/libraries/decks/steps/story-pick-sprite2.en.gif
old mode 100755
new mode 100644
similarity index 100%
rename from src/lib/libraries/decks/story/story-pick-another-sprite.gif
rename to src/lib/libraries/decks/steps/story-pick-sprite2.en.gif
diff --git a/src/lib/libraries/decks/steps/story-pick-sprite2.es.gif b/src/lib/libraries/decks/steps/story-pick-sprite2.es.gif
new file mode 100755
index 000000000..80fcda586
Binary files /dev/null and b/src/lib/libraries/decks/steps/story-pick-sprite2.es.gif differ
diff --git a/src/lib/libraries/decks/story/story-say-something.gif b/src/lib/libraries/decks/steps/story-say-something.en.gif
old mode 100755
new mode 100644
similarity index 100%
rename from src/lib/libraries/decks/story/story-say-something.gif
rename to src/lib/libraries/decks/steps/story-say-something.en.gif
diff --git a/src/lib/libraries/decks/steps/story-say-something.es.gif b/src/lib/libraries/decks/steps/story-say-something.es.gif
new file mode 100755
index 000000000..147872217
Binary files /dev/null and b/src/lib/libraries/decks/steps/story-say-something.es.gif differ
diff --git a/src/lib/libraries/decks/story/story-show-character.gif b/src/lib/libraries/decks/steps/story-show-character.en.gif
old mode 100755
new mode 100644
similarity index 100%
rename from src/lib/libraries/decks/story/story-show-character.gif
rename to src/lib/libraries/decks/steps/story-show-character.en.gif
diff --git a/src/lib/libraries/decks/steps/story-show-character.es.gif b/src/lib/libraries/decks/steps/story-show-character.es.gif
new file mode 100755
index 000000000..3c98bea6e
Binary files /dev/null and b/src/lib/libraries/decks/steps/story-show-character.es.gif differ
diff --git a/src/lib/libraries/decks/story/story-switch-backdrop.gif b/src/lib/libraries/decks/steps/story-switch-backdrop.en.gif
old mode 100755
new mode 100644
similarity index 100%
rename from src/lib/libraries/decks/story/story-switch-backdrop.gif
rename to src/lib/libraries/decks/steps/story-switch-backdrop.en.gif
diff --git a/src/lib/libraries/decks/steps/story-switch-backdrop.es.gif b/src/lib/libraries/decks/steps/story-switch-backdrop.es.gif
new file mode 100755
index 000000000..283305361
Binary files /dev/null and b/src/lib/libraries/decks/steps/story-switch-backdrop.es.gif differ
diff --git a/src/lib/libraries/decks/videosensing/videosens-add-extension.gif b/src/lib/libraries/decks/steps/video-add-extension.en.gif
old mode 100755
new mode 100644
similarity index 100%
rename from src/lib/libraries/decks/videosensing/videosens-add-extension.gif
rename to src/lib/libraries/decks/steps/video-add-extension.en.gif
diff --git a/src/lib/libraries/decks/steps/video-add-extension.es.gif b/src/lib/libraries/decks/steps/video-add-extension.es.gif
new file mode 100755
index 000000000..3b64c00d1
Binary files /dev/null and b/src/lib/libraries/decks/steps/video-add-extension.es.gif differ
diff --git a/src/lib/libraries/decks/videosensing/videosens-animate.gif b/src/lib/libraries/decks/steps/video-animate.en.gif
old mode 100755
new mode 100644
similarity index 100%
rename from src/lib/libraries/decks/videosensing/videosens-animate.gif
rename to src/lib/libraries/decks/steps/video-animate.en.gif
diff --git a/src/lib/libraries/decks/steps/video-animate.es.gif b/src/lib/libraries/decks/steps/video-animate.es.gif
new file mode 100755
index 000000000..cf67f5a89
Binary files /dev/null and b/src/lib/libraries/decks/steps/video-animate.es.gif differ
diff --git a/src/lib/libraries/decks/videosensing/videosens-pet-cat.gif b/src/lib/libraries/decks/steps/video-pet.en.gif
similarity index 100%
rename from src/lib/libraries/decks/videosensing/videosens-pet-cat.gif
rename to src/lib/libraries/decks/steps/video-pet.en.gif
diff --git a/src/lib/libraries/decks/steps/video-pet.es.gif b/src/lib/libraries/decks/steps/video-pet.es.gif
new file mode 100755
index 000000000..6370bf500
Binary files /dev/null and b/src/lib/libraries/decks/steps/video-pet.es.gif differ
diff --git a/src/lib/libraries/decks/videosensing/videosens-pop.gif b/src/lib/libraries/decks/steps/video-pop.en.gif
old mode 100755
new mode 100644
similarity index 100%
rename from src/lib/libraries/decks/videosensing/videosens-pop.gif
rename to src/lib/libraries/decks/steps/video-pop.en.gif
diff --git a/src/lib/libraries/decks/steps/video-pop.es.gif b/src/lib/libraries/decks/steps/video-pop.es.gif
new file mode 100755
index 000000000..e008255c5
Binary files /dev/null and b/src/lib/libraries/decks/steps/video-pop.es.gif differ
diff --git a/src/lib/libraries/decks/videos/add-backdrop.jpg b/src/lib/libraries/decks/thumbnails/add-backdrop.jpg
similarity index 100%
rename from src/lib/libraries/decks/videos/add-backdrop.jpg
rename to src/lib/libraries/decks/thumbnails/add-backdrop.jpg
diff --git a/src/lib/libraries/decks/videos/add-effects.jpg b/src/lib/libraries/decks/thumbnails/add-effects.jpg
similarity index 100%
rename from src/lib/libraries/decks/videos/add-effects.jpg
rename to src/lib/libraries/decks/thumbnails/add-effects.jpg
diff --git a/src/lib/libraries/decks/sprite/cover-add-sprite.jpg b/src/lib/libraries/decks/thumbnails/add-sprite.jpg
similarity index 100%
rename from src/lib/libraries/decks/sprite/cover-add-sprite.jpg
rename to src/lib/libraries/decks/thumbnails/add-sprite.jpg
diff --git a/src/lib/libraries/decks/animate-char/lib_Animate_a_Character.jpg b/src/lib/libraries/decks/thumbnails/animate-a-character.jpg
similarity index 100%
rename from src/lib/libraries/decks/animate-char/lib_Animate_a_Character.jpg
rename to src/lib/libraries/decks/thumbnails/animate-a-character.jpg
diff --git a/src/lib/libraries/decks/animate/lib_animate-a-name.jpg b/src/lib/libraries/decks/thumbnails/animate-a-name.jpg
similarity index 100%
rename from src/lib/libraries/decks/animate/lib_animate-a-name.jpg
rename to src/lib/libraries/decks/thumbnails/animate-a-name.jpg
diff --git a/src/lib/libraries/decks/videos/animate-sprite.jpg b/src/lib/libraries/decks/thumbnails/animate-sprite.jpg
similarity index 100%
rename from src/lib/libraries/decks/videos/animate-sprite.jpg
rename to src/lib/libraries/decks/thumbnails/animate-sprite.jpg
diff --git a/src/lib/libraries/decks/cartoonnetwork/lib_CartoonNetwork.jpg b/src/lib/libraries/decks/thumbnails/cartoon-network.jpg
similarity index 100%
rename from src/lib/libraries/decks/cartoonnetwork/lib_CartoonNetwork.jpg
rename to src/lib/libraries/decks/thumbnails/cartoon-network.jpg
diff --git a/src/lib/libraries/decks/videos/change-size.jpg b/src/lib/libraries/decks/thumbnails/change-size.jpg
similarity index 100%
rename from src/lib/libraries/decks/videos/change-size.jpg
rename to src/lib/libraries/decks/thumbnails/change-size.jpg
diff --git a/src/lib/libraries/decks/chase-game/lib-chasegame.jpg b/src/lib/libraries/decks/thumbnails/chase-game.jpg
similarity index 100%
rename from src/lib/libraries/decks/chase-game/lib-chasegame.jpg
rename to src/lib/libraries/decks/thumbnails/chase-game.jpg
diff --git a/src/lib/libraries/decks/intro/lib-getting-started.jpg b/src/lib/libraries/decks/thumbnails/getting-started.jpg
similarity index 100%
rename from src/lib/libraries/decks/intro/lib-getting-started.jpg
rename to src/lib/libraries/decks/thumbnails/getting-started.jpg
diff --git a/src/lib/libraries/decks/videos/glide-around.jpg b/src/lib/libraries/decks/thumbnails/glide-around.jpg
similarity index 100%
rename from src/lib/libraries/decks/videos/glide-around.jpg
rename to src/lib/libraries/decks/thumbnails/glide-around.jpg
diff --git a/src/lib/libraries/decks/videos/hide-and-show.jpg b/src/lib/libraries/decks/thumbnails/hide-and-show.jpg
similarity index 100%
rename from src/lib/libraries/decks/videos/hide-and-show.jpg
rename to src/lib/libraries/decks/thumbnails/hide-and-show.jpg
diff --git a/src/lib/libraries/decks/make-music/lib-make-music.jpg b/src/lib/libraries/decks/thumbnails/make-music.jpg
similarity index 100%
rename from src/lib/libraries/decks/make-music/lib-make-music.jpg
rename to src/lib/libraries/decks/thumbnails/make-music.jpg
diff --git a/src/lib/libraries/decks/videos/move-arrow-keys.jpg b/src/lib/libraries/decks/thumbnails/move-arrow-keys.jpg
similarity index 100%
rename from src/lib/libraries/decks/videos/move-arrow-keys.jpg
rename to src/lib/libraries/decks/thumbnails/move-arrow-keys.jpg
diff --git a/src/lib/libraries/decks/game/lib-pop.jpg b/src/lib/libraries/decks/thumbnails/pop-game.jpg
similarity index 100%
rename from src/lib/libraries/decks/game/lib-pop.jpg
rename to src/lib/libraries/decks/thumbnails/pop-game.jpg
diff --git a/src/lib/libraries/decks/videos/record-a-sound.jpg b/src/lib/libraries/decks/thumbnails/record-a-sound.jpg
similarity index 100%
rename from src/lib/libraries/decks/videos/record-a-sound.jpg
rename to src/lib/libraries/decks/thumbnails/record-a-sound.jpg
diff --git a/src/lib/libraries/decks/videos/spin.jpg b/src/lib/libraries/decks/thumbnails/spin.jpg
similarity index 100%
rename from src/lib/libraries/decks/videos/spin.jpg
rename to src/lib/libraries/decks/thumbnails/spin.jpg
diff --git a/src/lib/libraries/decks/story/lib-tell-a-story.jpg b/src/lib/libraries/decks/thumbnails/tell-a-story.jpg
similarity index 100%
rename from src/lib/libraries/decks/story/lib-tell-a-story.jpg
rename to src/lib/libraries/decks/thumbnails/tell-a-story.jpg
diff --git a/src/lib/libraries/decks/txt/lib_txt-to-speech.jpg b/src/lib/libraries/decks/thumbnails/text-to-speech.jpg
similarity index 100%
rename from src/lib/libraries/decks/txt/lib_txt-to-speech.jpg
rename to src/lib/libraries/decks/thumbnails/text-to-speech.jpg
diff --git a/src/lib/libraries/decks/videosensing/lib_video_sensing.jpg b/src/lib/libraries/decks/thumbnails/video-sensing.jpg
similarity index 100%
rename from src/lib/libraries/decks/videosensing/lib_video_sensing.jpg
rename to src/lib/libraries/decks/thumbnails/video-sensing.jpg
diff --git a/src/lib/libraries/decks/translate-image.js b/src/lib/libraries/decks/translate-image.js
new file mode 100644
index 000000000..d64965a18
--- /dev/null
+++ b/src/lib/libraries/decks/translate-image.js
@@ -0,0 +1,45 @@
+/**
+ * @fileoverview
+ * Utility functions for handling tutorial images in multiple languages
+ */
+
+import {enImages as defaultImages} from './en-steps.js';
+
+let savedImages = {};
+let savedLocale = '';
+
+const loadSpanish = () =>
+ import(/* webpackChunkName: "es-steps" */ './es-steps.js')
+ .then(({esImages: imageData}) => imageData);
+
+const translations = {
+ es: () => loadSpanish()
+};
+
+const loadImageData = locale => {
+ if (translations.hasOwnProperty(locale)) {
+ translations[locale]()
+ .then(newImages => {
+ savedImages = newImages;
+ savedLocale = locale;
+ });
+ }
+};
+
+/**
+ * Return image data for tutorials based on locale (default: en)
+ * @param {string} imageId key in the images object, or id string.
+ * @param {string} locale requested locale
+ * @return {string} image
+ */
+const translateImage = (imageId, locale) => {
+ if (locale !== savedLocale || !savedImages.hasOwnProperty(imageId)) {
+ return defaultImages[imageId];
+ }
+ return savedImages[imageId];
+};
+
+export {
+ loadImageData,
+ translateImage
+};
diff --git a/src/lib/libraries/decks/videosensing/animate-char-jump.gif b/src/lib/libraries/decks/videosensing/animate-char-jump.gif
deleted file mode 100644
index 38c2441ba..000000000
Binary files a/src/lib/libraries/decks/videosensing/animate-char-jump.gif and /dev/null differ
diff --git a/webpack.config.js b/webpack.config.js
index d6218176f..4618d5e41 100644
--- a/webpack.config.js
+++ b/webpack.config.js
@@ -22,7 +22,8 @@ const base = {
},
output: {
library: 'GUI',
- filename: '[name].js'
+ filename: '[name].js',
+ chunkFilename: 'chunks/[name].js'
},
externals: {
React: 'react',
@@ -189,7 +190,8 @@ module.exports = [
},
output: {
libraryTarget: 'umd',
- path: path.resolve('dist')
+ path: path.resolve('dist'),
+ publicPath: '/static/'
},
externals: {
React: 'react',