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/en-steps.js b/src/lib/libraries/decks/en-steps.js
new file mode 100644
index 000000000..286f451c4
--- /dev/null
+++ b/src/lib/libraries/decks/en-steps.js
@@ -0,0 +1,189 @@
+// Intro
+import stepMove from './intro/intro1.gif';
+import stepMoveSayHello from './intro/intro2.gif';
+
+// Text to Speech
+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';
+
+// Cartoon Network
+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';
+
+// Add sprite
+import stepAddSprite from './sprite/intro-choose-sprite.gif';
+
+// Animate a name
+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';
+
+// Make-Music
+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';
+
+// Chase-Game
+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';
+
+// Make-A-Game
+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';
+
+// Animate A Character
+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';
+
+// Tell A Story
+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';
+
+// Video Sensing
+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';
+
+const enImages = {
+ // Intro
+ stepMove: stepMove,
+ stepMoveSayHello: stepMoveSayHello,
+
+ // Text to Speech
+ stepAddTXTextension: stepAddTXTextension,
+ stepTXTSpeech: stepTXTSpeech,
+ stepTXTSetVoice: stepTXTSetVoice,
+ stepTXTMove: stepTXTMove,
+ stepTXTBackdrop: stepTXTBackdrop,
+ stepTXTAddSprite: stepTXTAddSprite,
+ stepTXTSong: stepTXTSong,
+ stepTXTColor: stepTXTColor,
+ stepTXTSpin: stepTXTSpin,
+ stepTXTGrow: stepTXTGrow,
+
+ // Cartoon Network
+ stepCNcharacter: stepCNcharacter,
+ stepCNsay: stepCNsay,
+ stepCNglide: stepCNglide,
+ stepCNpicksprite: stepCNpicksprite,
+ stepCNcollect: stepCNcollect,
+ stepCNvariable: stepCNvariable,
+ stepCNscore: stepCNscore,
+ stepCNbackdrop: stepCNbackdrop,
+
+ // Add sprite
+ stepAddSprite: stepAddSprite,
+
+ // Animate a name
+ stepAnimatePickLetter: stepAnimatePickLetter,
+ stepAnimatePlaySound: stepAnimatePlaySound,
+ stepAnimatePickLetter2: stepAnimatePickLetter2,
+ stepAnimateChangeColor: stepAnimateChangeColor,
+ stepAnimateSpin: stepAnimateSpin,
+ stepAnimateGrow: stepAnimateGrow,
+
+
+ // Make-Music
+ stepPickInstrument: stepPickInstrument,
+ stepPlaySoundClick: stepPlaySoundClick,
+ stepMakeSong: stepMakeSong,
+ stepMakeBeat: stepMakeBeat,
+ stepMakeBeatbox: stepMakeBeatbox,
+
+ // Chase-Game
+ stepBG: stepBG,
+ stepAddOcto: stepAddOcto,
+ stepLeftRight: stepLeftRight,
+ stepUpDown: stepUpDown,
+ stepAddStar: stepAddStar,
+ stepMoveRandom: stepMoveRandom,
+ stepWhenTouch: stepWhenTouch,
+ stepScoreVariable: stepScoreVariable,
+ stepScoreWhenTouch: stepScoreWhenTouch,
+
+ // Make-A-Game
+ stepGamePickSprite: stepGamePickSprite,
+ stepGamePlaySound: stepGamePlaySound,
+ stepGameAddScore: stepGameAddScore,
+ stepGameChangeScore: stepGameChangeScore,
+ stepRandom: stepRandom,
+ stepGameChangeColor: stepGameChangeColor,
+ stepResetScore: stepResetScore,
+
+ // Animate A Character
+ stepAnimateCharPickBackdrop: stepAnimateCharPickBackdrop,
+ stepAnimateCharPickSprite: stepAnimateCharPickSprite,
+ stepAnimateCharSaySomething: stepAnimateCharSaySomething,
+ stepAnimateCharAddSound: stepAnimateCharAddSound,
+ stepAnimateCharTalk: stepAnimateCharTalk,
+ stepAnimateCharMove: stepAnimateCharMove,
+ stepAnimateCharJump: stepAnimateCharJump,
+ stepAnimateCharChangeColor: stepAnimateCharChangeColor,
+
+ // Tell A Story
+ stepStoryPickBackdrop: stepStoryPickBackdrop,
+ stepStoryPickSprite: stepStoryPickSprite,
+ stepStoryCharSaySomething: stepStoryCharSaySomething,
+ stepStoryCharAddAnotherSprite: stepStoryCharAddAnotherSprite,
+ stepStoryFlip: stepStoryFlip,
+ stepStoryConversation: stepStoryConversation,
+ stepStoryAddAnotherBackdrop: stepStoryAddAnotherBackdrop,
+ stepStorySwitchBackdrop: stepStorySwitchBackdrop,
+ stepStoryHide: stepStoryHide,
+ stepStoryShow: stepStoryShow,
+
+ // Video Sensing
+ stepVideoSensAddExtension: stepVideoSensAddExtension,
+ stepVideoSensPet: stepVideoSensPet,
+ stepVideoSensAnimate: stepVideoSensAnimate,
+ stepVideoSensPop: stepVideoSensPop
+
+};
+
+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..7eba42472
--- /dev/null
+++ b/src/lib/libraries/decks/es-steps.js
@@ -0,0 +1,187 @@
+// Intro
+import stepMove from './es/intro1.gif';
+import stepMoveSayHello from './es/intro2.gif';
+
+// // Text to Speech
+// 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';
+
+// // Cartoon Network
+// 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';
+
+// Add sprite
+import stepAddSprite from './es/intro-choose-sprite.gif';
+
+// Animate a name
+import stepAnimatePickLetter from './es/animate-name-pick-a-letter.gif';
+import stepAnimatePlaySound from './es/animate-name-play-sound.gif';
+import stepAnimatePickLetter2 from './es/animate-name-pick-a-letter2.gif';
+import stepAnimateChangeColor from './es/animate-name-change-color.gif';
+import stepAnimateSpin from './es/animate-name-spin.gif';
+import stepAnimateGrow from './es/animate-name-grow.gif';
+
+// Make-Music
+import stepPickInstrument from './es/make-music-pick-instrument.gif';
+import stepPlaySoundClick from './es/make-music-play-sound.gif';
+import stepMakeSong from './es/make-music-make-song.gif';
+import stepMakeBeat from './es/make-music-make-beat.gif';
+import stepMakeBeatbox from './es/make-music-beatbox.gif';
+
+// Chase-Game
+import stepBG from './es/chase-game-add-backdrop.gif';
+import stepAddOcto from './es/chase-game-add-sprite1.gif';
+import stepLeftRight from './es/chase-game-move-rightleft.gif';
+import stepUpDown from './es/chase-game-move-updown.gif';
+import stepAddStar from './es/chase-game-add-sprite2.gif';
+import stepMoveRandom from './es/chase-game-move-randomly.gif';
+import stepWhenTouch from './es/chase-game-touching.gif';
+import stepScoreVariable from './es/chase-game-add-variable.gif';
+import stepScoreWhenTouch from './es/chase-game-change-score.gif';
+
+// Make-A-Game
+import stepGamePickSprite from './es/game-pick-sprite.gif';
+import stepGamePlaySound from './es/game-play-sound.gif';
+import stepGameAddScore from './es/game-add-score.gif';
+import stepGameChangeScore from './es/game-change-score.gif';
+import stepRandom from './es/game-random-position.gif';
+import stepGameChangeColor from './es/game-change-color.gif';
+import stepResetScore from './es/game-reset-score.gif';
+
+// Animate A Character
+import stepAnimateCharPickBackdrop from './es/animate-char-pick-backdrop.gif';
+import stepAnimateCharPickSprite from './es/animate-char-pick-sprite.gif';
+import stepAnimateCharSaySomething from './es/animate-char-say-something.gif';
+import stepAnimateCharAddSound from './es/animate-char-add-sound.gif';
+import stepAnimateCharTalk from './es/animate-char-talk.gif';
+import stepAnimateCharMove from './es/animate-char-move.gif';
+import stepAnimateCharJump from './es/animate-char-jump.gif';
+import stepAnimateCharChangeColor from './es/animate-char-change-color.gif';
+
+// Tell A Story
+import stepStoryPickBackdrop from './es/story-pick-backdrop.gif';
+import stepStoryPickSprite from './es/story-pick-sprite.gif';
+import stepStoryCharSaySomething from './es/story-say-something.gif';
+import stepStoryCharAddAnotherSprite from './es/story-pick-another-sprite.gif';
+import stepStoryFlip from './es/story-flip.gif';
+import stepStoryConversation from './es/story-conversation.gif';
+import stepStoryAddAnotherBackdrop from './es/story-add-background-2.gif';
+import stepStorySwitchBackdrop from './es/story-switch-backdrop.gif';
+import stepStoryHide from './es/story-hide-character.gif';
+import stepStoryShow from './es/story-show-character.gif';
+
+// Video Sensing
+import stepVideoSensAddExtension from './es/videosens-add-extension.gif';
+import stepVideoSensPet from './es/videosens-pet-cat.gif';
+import stepVideoSensAnimate from './es/videosens-animate.gif';
+import stepVideoSensPop from './es/videosens-pop.gif';
+
+export default {
+ // Intro
+ stepMove: stepMove,
+ stepMoveSayHello: stepMoveSayHello,
+
+ // // Text to Speech
+ // stepAddTXTextension: stepAddTXTextension,
+ // stepTXTSpeech: stepTXTSpeech,
+ // stepTXTSetVoice: stepTXTSetVoice,
+ // stepTXTMove: stepTXTMove,
+ // stepTXTBackdrop: stepTXTBackdrop,
+ // stepTXTAddSprite: stepTXTAddSprite,
+ // stepTXTSong: stepTXTSong,
+ // stepTXTColor: stepTXTColor,
+ // stepTXTSpin: stepTXTSpin,
+ // stepTXTGrow: stepTXTGrow,
+ //
+ // // Cartoon Network
+ // stepCNcharacter: stepCNcharacter,
+ // stepCNsay: stepCNsay,
+ // stepCNglide: stepCNglide,
+ // stepCNpicksprite: stepCNpicksprite,
+ // stepCNcollect: stepCNcollect,
+ // stepCNvariable: stepCNvariable,
+ // stepCNscore: stepCNscore,
+ // stepCNbackdrop: stepCNbackdrop,
+
+ // Add sprite
+ stepAddSprite: stepAddSprite,
+
+ // Animate a name
+ stepAnimatePickLetter: stepAnimatePickLetter,
+ stepAnimatePlaySound: stepAnimatePlaySound,
+ stepAnimatePickLetter2: stepAnimatePickLetter2,
+ stepAnimateChangeColor: stepAnimateChangeColor,
+ stepAnimateSpin: stepAnimateSpin,
+ stepAnimateGrow: stepAnimateGrow,
+
+
+ // Make-Music
+ stepPickInstrument: stepPickInstrument,
+ stepPlaySoundClick: stepPlaySoundClick,
+ stepMakeSong: stepMakeSong,
+ stepMakeBeat: stepMakeBeat,
+ stepMakeBeatbox: stepMakeBeatbox,
+
+ // Chase-Game
+ stepBG: stepBG,
+ stepAddOcto: stepAddOcto,
+ stepLeftRight: stepLeftRight,
+ stepUpDown: stepUpDown,
+ stepAddStar: stepAddStar,
+ stepMoveRandom: stepMoveRandom,
+ stepWhenTouch: stepWhenTouch,
+ stepScoreVariable: stepScoreVariable,
+ stepScoreWhenTouch: stepScoreWhenTouch,
+
+ // Make-A-Game
+ stepGamePickSprite: stepGamePickSprite,
+ stepGamePlaySound: stepGamePlaySound,
+ stepGameAddScore: stepGameAddScore,
+ stepGameChangeScore: stepGameChangeScore,
+ stepRandom: stepRandom,
+ stepGameChangeColor: stepGameChangeColor,
+ stepResetScore: stepResetScore,
+
+ // Animate A Character
+ stepAnimateCharPickBackdrop: stepAnimateCharPickBackdrop,
+ stepAnimateCharPickSprite: stepAnimateCharPickSprite,
+ stepAnimateCharSaySomething: stepAnimateCharSaySomething,
+ stepAnimateCharAddSound: stepAnimateCharAddSound,
+ stepAnimateCharTalk: stepAnimateCharTalk,
+ stepAnimateCharMove: stepAnimateCharMove,
+ stepAnimateCharJump: stepAnimateCharJump,
+ stepAnimateCharChangeColor: stepAnimateCharChangeColor,
+
+ // Tell A Story
+ stepStoryPickBackdrop: stepStoryPickBackdrop,
+ stepStoryPickSprite: stepStoryPickSprite,
+ stepStoryCharSaySomething: stepStoryCharSaySomething,
+ stepStoryCharAddAnotherSprite: stepStoryCharAddAnotherSprite,
+ stepStoryFlip: stepStoryFlip,
+ stepStoryConversation: stepStoryConversation,
+ stepStoryAddAnotherBackdrop: stepStoryAddAnotherBackdrop,
+ stepStorySwitchBackdrop: stepStorySwitchBackdrop,
+ stepStoryHide: stepStoryHide,
+ stepStoryShow: stepStoryShow,
+
+ // Video Sensing
+ stepVideoSensAddExtension: stepVideoSensAddExtension,
+ stepVideoSensPet: stepVideoSensPet,
+ stepVideoSensAnimate: stepVideoSensAnimate,
+ stepVideoSensPop: stepVideoSensPop
+
+};
diff --git a/src/lib/libraries/decks/es/animate-char-add-sound.gif b/src/lib/libraries/decks/es/animate-char-add-sound.gif
new file mode 100755
index 000000000..0e73a3138
Binary files /dev/null and b/src/lib/libraries/decks/es/animate-char-add-sound.gif differ
diff --git a/src/lib/libraries/decks/es/animate-char-change-color.gif b/src/lib/libraries/decks/es/animate-char-change-color.gif
new file mode 100755
index 000000000..b33d1968b
Binary files /dev/null and b/src/lib/libraries/decks/es/animate-char-change-color.gif differ
diff --git a/src/lib/libraries/decks/es/animate-char-jump.gif b/src/lib/libraries/decks/es/animate-char-jump.gif
new file mode 100755
index 000000000..f95a6e741
Binary files /dev/null and b/src/lib/libraries/decks/es/animate-char-jump.gif differ
diff --git a/src/lib/libraries/decks/es/animate-char-move.gif b/src/lib/libraries/decks/es/animate-char-move.gif
new file mode 100755
index 000000000..69436c73e
Binary files /dev/null and b/src/lib/libraries/decks/es/animate-char-move.gif differ
diff --git a/src/lib/libraries/decks/es/animate-char-pick-another-sprite.gif b/src/lib/libraries/decks/es/animate-char-pick-another-sprite.gif
new file mode 100755
index 000000000..9e943e001
Binary files /dev/null and b/src/lib/libraries/decks/es/animate-char-pick-another-sprite.gif differ
diff --git a/src/lib/libraries/decks/es/animate-char-pick-backdrop.gif b/src/lib/libraries/decks/es/animate-char-pick-backdrop.gif
new file mode 100755
index 000000000..5be6c21fc
Binary files /dev/null and b/src/lib/libraries/decks/es/animate-char-pick-backdrop.gif differ
diff --git a/src/lib/libraries/decks/es/animate-char-pick-sprite.gif b/src/lib/libraries/decks/es/animate-char-pick-sprite.gif
new file mode 100755
index 000000000..5635b378d
Binary files /dev/null and b/src/lib/libraries/decks/es/animate-char-pick-sprite.gif differ
diff --git a/src/lib/libraries/decks/es/animate-char-say-something.gif b/src/lib/libraries/decks/es/animate-char-say-something.gif
new file mode 100755
index 000000000..46eac1479
Binary files /dev/null and b/src/lib/libraries/decks/es/animate-char-say-something.gif differ
diff --git a/src/lib/libraries/decks/es/animate-char-talk.gif b/src/lib/libraries/decks/es/animate-char-talk.gif
new file mode 100755
index 000000000..e388d8e6f
Binary files /dev/null and b/src/lib/libraries/decks/es/animate-char-talk.gif differ
diff --git a/src/lib/libraries/decks/es/animate-name-change-color.gif b/src/lib/libraries/decks/es/animate-name-change-color.gif
new file mode 100755
index 000000000..6b8755c6f
Binary files /dev/null and b/src/lib/libraries/decks/es/animate-name-change-color.gif differ
diff --git a/src/lib/libraries/decks/es/animate-name-grow.gif b/src/lib/libraries/decks/es/animate-name-grow.gif
new file mode 100755
index 000000000..921d2e546
Binary files /dev/null and b/src/lib/libraries/decks/es/animate-name-grow.gif differ
diff --git a/src/lib/libraries/decks/es/animate-name-pick-a-letter.gif b/src/lib/libraries/decks/es/animate-name-pick-a-letter.gif
new file mode 100755
index 000000000..1afdf64de
Binary files /dev/null and b/src/lib/libraries/decks/es/animate-name-pick-a-letter.gif differ
diff --git a/src/lib/libraries/decks/es/animate-name-pick-a-letter2.gif b/src/lib/libraries/decks/es/animate-name-pick-a-letter2.gif
new file mode 100755
index 000000000..4c5131457
Binary files /dev/null and b/src/lib/libraries/decks/es/animate-name-pick-a-letter2.gif differ
diff --git a/src/lib/libraries/decks/es/animate-name-play-sound.gif b/src/lib/libraries/decks/es/animate-name-play-sound.gif
new file mode 100755
index 000000000..2abcebdaf
Binary files /dev/null and b/src/lib/libraries/decks/es/animate-name-play-sound.gif differ
diff --git a/src/lib/libraries/decks/es/animate-name-spin.gif b/src/lib/libraries/decks/es/animate-name-spin.gif
new file mode 100755
index 000000000..6250ed9b1
Binary files /dev/null and b/src/lib/libraries/decks/es/animate-name-spin.gif differ
diff --git a/src/lib/libraries/decks/es/chase-game-add-backdrop.gif b/src/lib/libraries/decks/es/chase-game-add-backdrop.gif
new file mode 100755
index 000000000..7200a6502
Binary files /dev/null and b/src/lib/libraries/decks/es/chase-game-add-backdrop.gif differ
diff --git a/src/lib/libraries/decks/es/chase-game-add-sprite1.gif b/src/lib/libraries/decks/es/chase-game-add-sprite1.gif
new file mode 100755
index 000000000..b1ca6ebee
Binary files /dev/null and b/src/lib/libraries/decks/es/chase-game-add-sprite1.gif differ
diff --git a/src/lib/libraries/decks/es/chase-game-add-sprite2.gif b/src/lib/libraries/decks/es/chase-game-add-sprite2.gif
new file mode 100755
index 000000000..3bebd695d
Binary files /dev/null and b/src/lib/libraries/decks/es/chase-game-add-sprite2.gif differ
diff --git a/src/lib/libraries/decks/es/chase-game-add-variable.gif b/src/lib/libraries/decks/es/chase-game-add-variable.gif
new file mode 100755
index 000000000..b0e2ea834
Binary files /dev/null and b/src/lib/libraries/decks/es/chase-game-add-variable.gif differ
diff --git a/src/lib/libraries/decks/es/chase-game-change-score.gif b/src/lib/libraries/decks/es/chase-game-change-score.gif
new file mode 100755
index 000000000..86a6d5a00
Binary files /dev/null and b/src/lib/libraries/decks/es/chase-game-change-score.gif differ
diff --git a/src/lib/libraries/decks/es/chase-game-move-randomly.gif b/src/lib/libraries/decks/es/chase-game-move-randomly.gif
new file mode 100755
index 000000000..1a6fab408
Binary files /dev/null and b/src/lib/libraries/decks/es/chase-game-move-randomly.gif differ
diff --git a/src/lib/libraries/decks/es/chase-game-move-rightleft.gif b/src/lib/libraries/decks/es/chase-game-move-rightleft.gif
new file mode 100755
index 000000000..02fb204fb
Binary files /dev/null and b/src/lib/libraries/decks/es/chase-game-move-rightleft.gif differ
diff --git a/src/lib/libraries/decks/es/chase-game-move-updown.gif b/src/lib/libraries/decks/es/chase-game-move-updown.gif
new file mode 100755
index 000000000..2c26c4867
Binary files /dev/null and b/src/lib/libraries/decks/es/chase-game-move-updown.gif differ
diff --git a/src/lib/libraries/decks/es/chase-game-touching.gif b/src/lib/libraries/decks/es/chase-game-touching.gif
new file mode 100755
index 000000000..734611b4f
Binary files /dev/null and b/src/lib/libraries/decks/es/chase-game-touching.gif differ
diff --git a/src/lib/libraries/decks/es/game-add-score.gif b/src/lib/libraries/decks/es/game-add-score.gif
new file mode 100755
index 000000000..b0e2ea834
Binary files /dev/null and b/src/lib/libraries/decks/es/game-add-score.gif differ
diff --git a/src/lib/libraries/decks/es/game-change-color.gif b/src/lib/libraries/decks/es/game-change-color.gif
new file mode 100755
index 000000000..deb7c804b
Binary files /dev/null and b/src/lib/libraries/decks/es/game-change-color.gif differ
diff --git a/src/lib/libraries/decks/es/game-change-score.gif b/src/lib/libraries/decks/es/game-change-score.gif
new file mode 100755
index 000000000..55d062158
Binary files /dev/null and b/src/lib/libraries/decks/es/game-change-score.gif differ
diff --git a/src/lib/libraries/decks/es/game-pick-sprite.gif b/src/lib/libraries/decks/es/game-pick-sprite.gif
new file mode 100755
index 000000000..bf773eb27
Binary files /dev/null and b/src/lib/libraries/decks/es/game-pick-sprite.gif differ
diff --git a/src/lib/libraries/decks/es/game-play-sound.gif b/src/lib/libraries/decks/es/game-play-sound.gif
new file mode 100755
index 000000000..b7dff0c73
Binary files /dev/null and b/src/lib/libraries/decks/es/game-play-sound.gif differ
diff --git a/src/lib/libraries/decks/es/game-random-position.gif b/src/lib/libraries/decks/es/game-random-position.gif
new file mode 100755
index 000000000..d02f8adb1
Binary files /dev/null and b/src/lib/libraries/decks/es/game-random-position.gif differ
diff --git a/src/lib/libraries/decks/es/game-reset-score.gif b/src/lib/libraries/decks/es/game-reset-score.gif
new file mode 100755
index 000000000..2d5e0b433
Binary files /dev/null and b/src/lib/libraries/decks/es/game-reset-score.gif differ
diff --git a/src/lib/libraries/decks/es/intro-choose-sprite.gif b/src/lib/libraries/decks/es/intro-choose-sprite.gif
new file mode 100755
index 000000000..a708a4ae5
Binary files /dev/null and b/src/lib/libraries/decks/es/intro-choose-sprite.gif differ
diff --git a/src/lib/libraries/decks/es/intro1.gif b/src/lib/libraries/decks/es/intro1.gif
new file mode 100755
index 000000000..860d5f75c
Binary files /dev/null and b/src/lib/libraries/decks/es/intro1.gif differ
diff --git a/src/lib/libraries/decks/es/intro2.gif b/src/lib/libraries/decks/es/intro2.gif
new file mode 100755
index 000000000..bfd825012
Binary files /dev/null and b/src/lib/libraries/decks/es/intro2.gif differ
diff --git a/src/lib/libraries/decks/es/make-music-beatbox.gif b/src/lib/libraries/decks/es/make-music-beatbox.gif
new file mode 100755
index 000000000..4638b9995
Binary files /dev/null and b/src/lib/libraries/decks/es/make-music-beatbox.gif differ
diff --git a/src/lib/libraries/decks/es/make-music-make-beat.gif b/src/lib/libraries/decks/es/make-music-make-beat.gif
new file mode 100755
index 000000000..c86c1a1fe
Binary files /dev/null and b/src/lib/libraries/decks/es/make-music-make-beat.gif differ
diff --git a/src/lib/libraries/decks/es/make-music-make-song.gif b/src/lib/libraries/decks/es/make-music-make-song.gif
new file mode 100755
index 000000000..56591ea06
Binary files /dev/null and b/src/lib/libraries/decks/es/make-music-make-song.gif differ
diff --git a/src/lib/libraries/decks/es/make-music-pick-instrument.gif b/src/lib/libraries/decks/es/make-music-pick-instrument.gif
new file mode 100755
index 000000000..e496d57f2
Binary files /dev/null and b/src/lib/libraries/decks/es/make-music-pick-instrument.gif differ
diff --git a/src/lib/libraries/decks/es/make-music-play-sound.gif b/src/lib/libraries/decks/es/make-music-play-sound.gif
new file mode 100755
index 000000000..2bf03fa1c
Binary files /dev/null and b/src/lib/libraries/decks/es/make-music-play-sound.gif differ
diff --git a/src/lib/libraries/decks/es/story-add-background-2.gif b/src/lib/libraries/decks/es/story-add-background-2.gif
new file mode 100755
index 000000000..8004e7532
Binary files /dev/null and b/src/lib/libraries/decks/es/story-add-background-2.gif differ
diff --git a/src/lib/libraries/decks/es/story-conversation.gif b/src/lib/libraries/decks/es/story-conversation.gif
new file mode 100755
index 000000000..6fa323113
Binary files /dev/null and b/src/lib/libraries/decks/es/story-conversation.gif differ
diff --git a/src/lib/libraries/decks/es/story-flip.gif b/src/lib/libraries/decks/es/story-flip.gif
new file mode 100755
index 000000000..f7cdd33e5
Binary files /dev/null and b/src/lib/libraries/decks/es/story-flip.gif differ
diff --git a/src/lib/libraries/decks/es/story-hide-character.gif b/src/lib/libraries/decks/es/story-hide-character.gif
new file mode 100755
index 000000000..8b9876f21
Binary files /dev/null and b/src/lib/libraries/decks/es/story-hide-character.gif differ
diff --git a/src/lib/libraries/decks/es/story-pick-another-sprite.gif b/src/lib/libraries/decks/es/story-pick-another-sprite.gif
new file mode 100755
index 000000000..80fcda586
Binary files /dev/null and b/src/lib/libraries/decks/es/story-pick-another-sprite.gif differ
diff --git a/src/lib/libraries/decks/es/story-pick-backdrop.gif b/src/lib/libraries/decks/es/story-pick-backdrop.gif
new file mode 100755
index 000000000..b4315f51c
Binary files /dev/null and b/src/lib/libraries/decks/es/story-pick-backdrop.gif differ
diff --git a/src/lib/libraries/decks/es/story-pick-sprite.gif b/src/lib/libraries/decks/es/story-pick-sprite.gif
new file mode 100755
index 000000000..664da7e6f
Binary files /dev/null and b/src/lib/libraries/decks/es/story-pick-sprite.gif differ
diff --git a/src/lib/libraries/decks/es/story-say-something.gif b/src/lib/libraries/decks/es/story-say-something.gif
new file mode 100755
index 000000000..147872217
Binary files /dev/null and b/src/lib/libraries/decks/es/story-say-something.gif differ
diff --git a/src/lib/libraries/decks/es/story-show-character.gif b/src/lib/libraries/decks/es/story-show-character.gif
new file mode 100755
index 000000000..3c98bea6e
Binary files /dev/null and b/src/lib/libraries/decks/es/story-show-character.gif differ
diff --git a/src/lib/libraries/decks/es/story-switch-backdrop.gif b/src/lib/libraries/decks/es/story-switch-backdrop.gif
new file mode 100755
index 000000000..283305361
Binary files /dev/null and b/src/lib/libraries/decks/es/story-switch-backdrop.gif differ
diff --git a/src/lib/libraries/decks/es/videosens-add-extension.gif b/src/lib/libraries/decks/es/videosens-add-extension.gif
new file mode 100755
index 000000000..3b64c00d1
Binary files /dev/null and b/src/lib/libraries/decks/es/videosens-add-extension.gif differ
diff --git a/src/lib/libraries/decks/es/videosens-animate.gif b/src/lib/libraries/decks/es/videosens-animate.gif
new file mode 100755
index 000000000..cf67f5a89
Binary files /dev/null and b/src/lib/libraries/decks/es/videosens-animate.gif differ
diff --git a/src/lib/libraries/decks/es/videosens-pet-cat.gif b/src/lib/libraries/decks/es/videosens-pet-cat.gif
new file mode 100755
index 000000000..6370bf500
Binary files /dev/null and b/src/lib/libraries/decks/es/videosens-pet-cat.gif differ
diff --git a/src/lib/libraries/decks/es/videosens-pop.gif b/src/lib/libraries/decks/es/videosens-pop.gif
new file mode 100755
index 000000000..e008255c5
Binary files /dev/null and b/src/lib/libraries/decks/es/videosens-pop.gif differ
diff --git a/src/lib/libraries/decks/index.jsx b/src/lib/libraries/decks/index.jsx
index 78aeb6f29..3fb7bc236 100644
--- a/src/lib/libraries/decks/index.jsx
+++ b/src/lib/libraries/decks/index.jsx
@@ -3,107 +3,36 @@ import {FormattedMessage} from 'react-intl';
// Intro
import libraryIntro from './intro/lib-getting-started.jpg';
-import stepMove from './intro/intro1.gif';
-import stepMoveSayHello from './intro/intro2.gif';
// 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';
// 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';
// Add sprite
import libraryAddSprite from './sprite/cover-add-sprite.jpg';
-import stepAddSprite from './sprite/intro-choose-sprite.gif';
// 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';
-
// 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';
// 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';
// 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';
// 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';
// 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';
// 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';
// Videos
import recordASound from './videos/record-a-sound.jpg';
@@ -138,7 +67,7 @@ export default {
id="gui.howtos.intro-move.step_stepMove"
/>
),
- image: stepMove
+ image: 'stepMove'
}, {
title: (
),
- image: stepMoveSayHello
+ image: 'stepMoveSayHello'
}, {
deckIds: [
'add-a-backdrop',
@@ -180,7 +109,7 @@ export default {
id="gui.howtos.say-it-out-loud.step_AddTXTextension"
/>
),
- image: stepAddTXTextension
+ image: 'stepAddTXTextension'
}, {
title: (
),
- image: stepTXTSpeech
+ image: 'stepTXTSpeech'
}, {
title: (
),
- image: stepTXTSetVoice
+ image: 'stepTXTSetVoice'
}, {
title: (
),
- image: stepTXTMove
+ image: 'stepTXTMove'
}, {
title: (
),
- image: stepTXTBackdrop
+ image: 'stepTXTBackdrop'
}, {
title: (
),
- image: stepTXTAddSprite
+ image: 'stepTXTAddSprite'
}, {
title: (
),
- image: stepTXTSong
+ image: 'stepTXTSong'
}, {
title: (
),
- image: stepTXTColor
+ image: 'stepTXTColor'
}, {
title: (
),
- image: stepTXTSpin
+ image: 'stepTXTSpin'
}, {
title: (
),
- image: stepTXTGrow
+ image: 'stepTXTGrow'
}, {
deckIds: [
'animate-a-name',
@@ -295,7 +224,7 @@ export default {
id="gui.howtos.cartoon-network.step_CNcharacter"
/>
),
- image: stepCNcharacter
+ image: 'stepCNcharacter'
}, {
title: (
),
- image: stepCNsay
+ image: 'stepCNsay'
}, {
title: (
),
- image: stepCNglide
+ image: 'stepCNglide'
}, {
title: (
),
- image: stepCNpicksprite
+ image: 'stepCNpicksprite'
}, {
title: (
),
- image: stepCNcollect
+ image: 'stepCNcollect'
}, {
title: (
),
- image: stepCNvariable
+ image: 'stepCNvariable'
}, {
title: (
),
- image: stepCNscore
+ image: 'stepCNscore'
}, {
title: (
),
- image: stepCNbackdrop
+ image: 'stepCNbackdrop'
},
{
video: '6o76f5ivo1'
@@ -392,7 +321,7 @@ export default {
id="gui.howtos.animate-a-name.step_AnimatePickLetter"
/>
),
- image: stepAnimatePickLetter
+ image: 'stepAnimatePickLetter'
}, {
title: (
),
- image: stepAnimatePlaySound
+ image: 'stepAnimatePlaySound'
}, {
title: (
),
- image: stepAnimatePickLetter2
+ image: 'stepAnimatePickLetter2'
}, {
title: (
),
- image: stepAnimateChangeColor
+ image: 'stepAnimateChangeColor'
}, {
title: (
),
- image: stepAnimateSpin
+ image: 'stepAnimateSpin'
}, {
title: (
),
- image: stepAnimateGrow
+ image: 'stepAnimateGrow'
}, {
deckIds: [
'add-a-backdrop',
@@ -468,7 +397,7 @@ export default {
id="gui.howtos.Make-Music.step_PickInstrument"
/>
),
- image: stepPickInstrument
+ image: 'stepPickInstrument'
},
{
title: (
@@ -478,7 +407,7 @@ export default {
id="gui.howtos.Make-Music.step_PlaySoundClick"
/>
),
- image: stepPlaySoundClick
+ image: 'stepPlaySoundClick'
},
{
title: (
@@ -488,7 +417,7 @@ export default {
id="gui.howtos.Make-Music.step_MakeSong"
/>
),
- image: stepMakeSong
+ image: 'stepMakeSong'
}, {
title: (
),
- image: stepMakeBeat
+ image: 'stepMakeBeat'
}, {
title: (
),
- image: stepMakeBeatbox
+ image: 'stepMakeBeatbox'
}, {
deckIds: [
'add-a-backdrop',
@@ -537,7 +466,7 @@ export default {
id="gui.howtos.Make-A-Game.step_GamePickSprite"
/>
),
- image: stepGamePickSprite
+ image: 'stepGamePickSprite'
}, {
title: (
),
- image: stepGamePlaySound
+ image: 'stepGamePlaySound'
}, {
title: (
),
- image: stepGameAddScore
+ image: 'stepGameAddScore'
}, {
title: (
),
- image: stepGameChangeScore
+ image: 'stepGameChangeScore'
}, {
title: (
),
- image: stepRandom
+ image: 'stepRandom'
}, {
title: (
),
- image: stepGameChangeColor
+ image: 'stepGameChangeColor'
}, {
title: (
),
- image: stepResetScore
+ image: 'stepResetScore'
}, {
deckIds: [
'add-a-backdrop',
@@ -624,7 +553,7 @@ export default {
id="gui.howtos.Chase-Game.step_BG"
/>
),
- image: stepBG
+ image: 'stepBG'
}, {
title: (
),
- image: stepAddOcto
+ image: 'stepAddOcto'
}, {
title: (
),
- image: stepLeftRight
+ image: 'stepLeftRight'
}, {
title: (
),
- image: stepUpDown
+ image: 'stepUpDown'
}, {
title: (
),
- image: stepAddStar
+ image: 'stepAddStar'
}, {
title: (
),
- image: stepMoveRandom
+ image: 'stepMoveRandom'
}, {
title: (
),
- image: stepWhenTouch
+ image: 'stepWhenTouch'
}, {
title: (
),
- image: stepScoreVariable
+ image: 'stepScoreVariable'
}, {
title: (
),
- image: stepScoreWhenTouch
+ image: 'stepScoreWhenTouch'
}, {
deckIds: [
'add-effects',
@@ -726,7 +655,7 @@ export default {
id="gui.howtos.animate-char.step_addbg"
/>
),
- image: stepAnimateCharPickBackdrop
+ image: 'stepAnimateCharPickBackdrop'
}, {
title: (
),
- image: stepAnimateCharPickSprite
+ image: 'stepAnimateCharPickSprite'
}, {
title: (
),
- image: stepAnimateCharSaySomething
+ image: 'stepAnimateCharSaySomething'
}, {
title: (
),
- image: stepAnimateCharAddSound
+ image: 'stepAnimateCharAddSound'
}, {
title: (
),
- image: stepAnimateCharTalk
+ image: 'stepAnimateCharTalk'
}, {
title: (
),
- image: stepAnimateCharMove
+ image: 'stepAnimateCharMove'
}, {
title: (
),
- image: stepAnimateCharJump
+ image: 'stepAnimateCharJump'
}, {
title: (
),
- image: stepAnimateCharChangeColor
+ image: 'stepAnimateCharChangeColor'
}, {
deckIds: [
'Chase-Game',
@@ -819,7 +748,7 @@ export default {
id="gui.howtos.story.step_addbg"
/>
),
- image: stepStoryPickBackdrop
+ image: 'stepStoryPickBackdrop'
}, {
title: (
),
- image: stepStoryPickSprite
+ image: 'stepStoryPickSprite'
}, {
title: (
),
- image: stepStoryCharSaySomething
+ image: 'stepStoryCharSaySomething'
}, {
title: (
),
- image: stepStoryCharAddAnotherSprite
+ image: 'stepStoryCharAddAnotherSprite'
}, {
title: (
),
- image: stepStoryFlip
+ image: 'stepStoryFlip'
}, {
title: (
),
- image: stepStoryConversation
+ image: 'stepStoryConversation'
}, {
title: (
),
- image: stepStoryAddAnotherBackdrop
+ image: 'stepStoryAddAnotherBackdrop'
}, {
title: (
),
- image: stepStorySwitchBackdrop
+ image: 'stepStorySwitchBackdrop'
}, {
title: (
),
- image: stepStoryHide
+ image: 'stepStoryHide'
}, {
title: (
),
- image: stepStoryShow
+ image: 'stepStoryShow'
},
{
deckIds: [
@@ -931,7 +860,7 @@ export default {
id="gui.howtos.videosens.step_addextension"
/>
),
- image: stepVideoSensAddExtension
+ image: 'stepVideoSensAddExtension'
}, {
title: (
),
- image: stepVideoSensPet
+ image: 'stepVideoSensPet'
}, {
title: (
),
- image: stepVideoSensAnimate
+ image: 'stepVideoSensAnimate'
}, {
title: (
),
- image: stepVideoSensPop
+ image: 'stepVideoSensPop'
}, {
deckIds: [
'Make-Music',
@@ -987,7 +916,7 @@ export default {
id="gui.howtos.add-sprite.step_addSprite"
/>
),
- image: stepAddSprite
+ image: 'stepAddSprite'
},
{
deckIds: [
diff --git a/src/lib/libraries/decks/translate-image.js b/src/lib/libraries/decks/translate-image.js
new file mode 100644
index 000000000..88c570011
--- /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-images" */ './es-steps.js')
+ .then(({default: 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
+};