diff --git a/app/application.coffee b/app/application.coffee
index 0e0c99104..ecd4e9b53 100644
--- a/app/application.coffee
+++ b/app/application.coffee
@@ -37,6 +37,8 @@ preload = (arrayOfImages) ->
Application = initialize: ->
Router = require('Router')
@isProduction = -> document.location.href.search('codecombat.com') isnt -1
+ @isIPadApp = webkit?.messageHandlers? and navigator.userAgent?.indexOf('iPad') isnt -1
+ $('body').addClass 'ipad' if @isIPadApp
@tracker = new Tracker()
@facebookHandler = new FacebookHandler()
@gplusHandler = new GPlusHandler()
diff --git a/app/initialize.coffee b/app/initialize.coffee
index 945a3ab27..db0078ea1 100644
--- a/app/initialize.coffee
+++ b/app/initialize.coffee
@@ -21,20 +21,16 @@ definitionSchemas =
init = ->
watchForErrors()
+ setUpIOSLogging()
path = document.location.pathname
testing = path.startsWith '/test'
demoing = path.startsWith '/demo'
initializeServices() unless testing or demoing
-
- # Set up Backbone.Mediator schemas
- setUpDefinitions()
- setUpChannels()
- Backbone.Mediator.setValidationEnabled document.location.href.search(/codecombat.com/) is -1
+ setUpBackboneMediator()
app.initialize()
Backbone.history.start({ pushState: true })
handleNormalUrls()
setUpMoment() # Set up i18n for moment
-
treemaExt = require 'treema-ext'
treemaExt.setup()
@@ -59,13 +55,15 @@ handleNormalUrls = ->
return false
-setUpChannels = ->
- for channel of channelSchemas
- Backbone.Mediator.addChannelSchemas channelSchemas[channel]
-
-setUpDefinitions = ->
- for definition of definitionSchemas
- Backbone.Mediator.addDefSchemas definitionSchemas[definition]
+setUpBackboneMediator = ->
+ Backbone.Mediator.addDefSchemas schemas for definition, schemas of definitionSchemas
+ Backbone.Mediator.addChannelSchemas schemas for channel, schemas of channelSchemas
+ Backbone.Mediator.setValidationEnabled document.location.href.search(/codecombat.com/) is -1
+ if webkit?.messageHandlers
+ originalPublish = Backbone.Mediator.publish
+ Backbone.Mediator.publish = ->
+ originalPublish.apply Backbone.Mediator, arguments
+ webkit.messageHandlers.backboneEventHandler?.postMessage channel: arguments[0], event: serializeForIOS(arguments[1] ? {})
setUpMoment = ->
{me} = require 'lib/auth'
@@ -94,11 +92,53 @@ watchForErrors = ->
return if currentErrors >= 3
return unless me.isAdmin() or document.location.href.search(/codecombat.com/) is -1 or document.location.href.search(/\/editor\//) isnt -1
++currentErrors
- msg = "Error: #{msg} Check the JS console for more."
+ message = "Error: #{msg} Check the JS console for more."
#msg += "\nLine: #{line}" if line?
#msg += "\nColumn: #{col}" if col?
#msg += "\nError: #{error}" if error?
#msg += "\nStack: #{stack}" if stack = error?.stack
- noty text: msg, layout: 'topCenter', type: 'error', killer: false, timeout: 5000, dismissQueue: true, maxVisible: 3, callback: {onClose: -> --currentErrors}
+ noty text: message, layout: 'topCenter', type: 'error', killer: false, timeout: 5000, dismissQueue: true, maxVisible: 3, callback: {onClose: -> --currentErrors}
+ Backbone.Mediator.publish 'application:error', message: msg # For iOS app
+
+setUpIOSLogging = ->
+ return unless webkit?.messageHandlers
+ for level in ['debug', 'log', 'info', 'warn', 'error']
+ do (level) ->
+ originalLog = console[level]
+ console[level] = ->
+ originalLog.apply console, arguments
+ try
+ webkit?.messageHandlers?.consoleLogHandler?.postMessage level: level, arguments: (a?.toString?() ? ('' + a) for a in arguments)
+ catch e
+ webkit?.messageHandlers?.consoleLogHandler?.postMessage level: level, arguments: ['could not post log: ' + e]
+
+# This is so hacky... hopefully it's restrictive enough to not be slow.
+# We could also keep a list of events we are actually subscribed for and only try to send those over.
+seen = null
+window.serializeForIOS = serializeForIOS = (obj, depth=3) ->
+ return {} unless depth
+ root = not seen?
+ seen ?= []
+ clone = {}
+ keysHandled = 0
+ for own key, value of obj
+ continue if ++keysHandled > 20
+ if not value
+ clone[key] = value
+ else if value is window or value.firstElementChild or value.preventDefault
+ null # Don't include these things
+ else if value in seen
+ null # No circular references
+ else if _.isArray value
+ clone[key] = (serializeForIOS(child, depth - 1) for child in value)
+ seen.push value
+ else if _.isObject value
+ value = value.attributes if value.id and value.attributes
+ clone[key] = serializeForIOS value, depth - 1
+ seen.push value
+ else
+ clone[key] = value
+ seen = null if root
+ clone
$ -> init()
diff --git a/app/lib/auth.coffee b/app/lib/auth.coffee
index 18cf4f661..55e544a26 100644
--- a/app/lib/auth.coffee
+++ b/app/lib/auth.coffee
@@ -38,6 +38,7 @@ module.exports.createUserWithoutReload = (userObject, failure=backboneFailure) -
})
module.exports.loginUser = (userObject, failure=genericFailure) ->
+ console.log 'logging in as', userObject.email
jqxhr = $.post('/auth/login',
{
username: userObject.email,
diff --git a/app/lib/surface/Surface.coffee b/app/lib/surface/Surface.coffee
index 7047709ac..b809742c6 100644
--- a/app/lib/surface/Surface.coffee
+++ b/app/lib/surface/Surface.coffee
@@ -72,13 +72,14 @@ module.exports = Surface = class Surface extends CocoClass
'playback:real-time-playback-started': 'onRealTimePlaybackStarted'
'playback:real-time-playback-ended': 'onRealTimePlaybackEnded'
'level:flag-color-selected': 'onFlagColorSelected'
- #'god:world-load-progress-changed': -> console.log 'it is actually', @world.age
shortcuts:
'ctrl+\\, ⌘+\\': 'onToggleDebug'
'ctrl+o, ⌘+o': 'onTogglePathFinding'
- # external functions
+
+
+ #- Initialization
constructor: (@world, @canvas, givenOptions) ->
super()
@@ -92,304 +93,6 @@ module.exports = Surface = class Surface extends CocoClass
if @world.ended
_.defer => @setWorld @world
- destroy: ->
- @dead = true
- @camera?.destroy()
- createjs.Ticker.removeEventListener('tick', @tick)
- createjs.Sound.stop()
- layer.destroy() for layer in @layers
- @spriteBoss.destroy()
- @chooser?.destroy()
- @dimmer?.destroy()
- @countdownScreen?.destroy()
- @playbackOverScreen?.destroy()
- @waitingScreen?.destroy()
- @coordinateDisplay?.destroy()
- @coordinateGrid?.destroy()
- @stage.clear()
- @musicPlayer?.destroy()
- @stage.removeAllChildren()
- @stage.removeEventListener 'stagemousemove', @onMouseMove
- @stage.removeEventListener 'stagemousedown', @onMouseDown
- @stage.removeEventListener 'stagemouseup', @onMouseUp
- @stage.removeAllEventListeners()
- @stage.enableDOMEvents false
- @stage.enableMouseOver 0
- @canvas.off 'mousewheel', @onMouseWheel
- $(window).off 'resize', @onResize
- clearTimeout @surfacePauseTimeout if @surfacePauseTimeout
- clearTimeout @surfaceZoomPauseTimeout if @surfaceZoomPauseTimeout
- super()
-
- setWorld: (@world) ->
- @worldLoaded = true
- lastFrame = Math.min(@getCurrentFrame(), @world.frames.length - 1)
- @world.getFrame(lastFrame).restoreState() unless @options.choosing
- @spriteBoss.world = @world
-
- @showLevel()
- @updateState true if @loaded
- @onFrameChanged()
- Backbone.Mediator.publish 'surface:world-set-up', {world: @world}
-
- onTogglePathFinding: (e) ->
- e?.preventDefault?()
- @hidePathFinding()
- @showingPathFinding = not @showingPathFinding
- if @showingPathFinding then @showPathFinding() else @hidePathFinding()
-
- hidePathFinding: ->
- @surfaceLayer.removeChild @navRectangles if @navRectangles
- @surfaceLayer.removeChild @navPaths if @navPaths
- @navRectangles = @navPaths = null
-
- showPathFinding: ->
- @hidePathFinding()
-
- mesh = _.values(@world.navMeshes or {})[0]
- return unless mesh
- @navRectangles = new createjs.Container()
- @navRectangles.layerPriority = -1
- @addMeshRectanglesToContainer mesh, @navRectangles
- @surfaceLayer.addChild @navRectangles
- @surfaceLayer.updateLayerOrder()
-
- graph = _.values(@world.graphs or {})[0]
- return @surfaceLayer.updateLayerOrder() unless graph
- @navPaths = new createjs.Container()
- @navPaths.layerPriority = -1
- @addNavPathsToContainer graph, @navPaths
- @surfaceLayer.addChild @navPaths
- @surfaceLayer.updateLayerOrder()
-
- addMeshRectanglesToContainer: (mesh, container) ->
- for rect in mesh
- shape = new createjs.Shape()
- pos = @camera.worldToSurface {x: rect.x, y: rect.y}
- dim = @camera.worldToSurface {x: rect.width, y: rect.height}
- shape.graphics
- .setStrokeStyle(3)
- .beginFill('rgba(0,0,128,0.3)')
- .beginStroke('rgba(0,0,128,0.7)')
- .drawRect(pos.x - dim.x/2, pos.y - dim.y/2, dim.x, dim.y)
- container.addChild shape
-
- addNavPathsToContainer: (graph, container) ->
- for node in _.values graph
- for edgeVertex in node.edges
- @drawLine node.vertex, edgeVertex, container
-
- drawLine: (v1, v2, container) ->
- shape = new createjs.Shape()
- v1 = @camera.worldToSurface v1
- v2 = @camera.worldToSurface v2
- shape.graphics
- .setStrokeStyle(1)
- .moveTo(v1.x, v1.y)
- .beginStroke('rgba(128,0,0,0.4)')
- .lineTo(v2.x, v2.y)
- .endStroke()
- container.addChild shape
-
- setProgress: (progress, scrubDuration=500) ->
- progress = Math.max(Math.min(progress, 1), 0.0)
-
- @fastForwardingToFrame = null
- @scrubbing = true
- onTweenEnd = =>
- @scrubbingTo = null
- @scrubbing = false
- @scrubbingPlaybackSpeed = null
-
- if @scrubbingTo?
- # cut to the chase for existing tween
- createjs.Tween.removeTweens(@)
- @currentFrame = @scrubbingTo
-
- @scrubbingTo = Math.min(Math.round(progress * @world.frames.length), @world.frames.length)
- @scrubbingPlaybackSpeed = Math.sqrt(Math.abs(@scrubbingTo - @currentFrame) * @world.dt / (scrubDuration or 0.5))
- if scrubDuration
- t = createjs.Tween
- .get(@)
- .to({currentFrame: @scrubbingTo}, scrubDuration, createjs.Ease.sineInOut)
- .call(onTweenEnd)
- t.addEventListener('change', @onFramesScrubbed)
- else
- @currentFrame = @scrubbingTo
- @onFramesScrubbed() # For performance, don't play these for instant transitions.
- onTweenEnd()
-
- return unless @loaded
- @updateState true
- @onFrameChanged()
-
- onFramesScrubbed: (e) =>
- return unless @loaded
- if e
- # Gotta play all the sounds when scrubbing (but not when doing an immediate transition).
- rising = @currentFrame > @lastFrame
- actualCurrentFrame = @currentFrame
- tempFrame = if rising then Math.ceil(@lastFrame) else Math.floor(@lastFrame)
- while true # temporary fix to stop cacophony
- break if rising and tempFrame > actualCurrentFrame
- break if (not rising) and tempFrame < actualCurrentFrame
- @currentFrame = tempFrame
- frame = @world.getFrame(@getCurrentFrame())
- frame.restoreState()
- volume = Math.max(0.05, Math.min(1, 1 / @scrubbingPlaybackSpeed))
- sprite.playSounds false, volume for sprite in @spriteBoss.spriteArray
- tempFrame += if rising then 1 else -1
- @currentFrame = actualCurrentFrame
-
- @restoreWorldState()
- @spriteBoss.update true
- @onFrameChanged()
-
- getCurrentFrame: ->
- return Math.max(0, Math.min(Math.floor(@currentFrame), @world.frames.length - 1))
-
- getProgress: -> @currentFrame / @world.frames.length
-
- onLevelRestarted: (e) ->
- @setProgress 0, 0
-
- onSetCamera: (e) ->
- if e.thangID
- return unless target = @spriteBoss.spriteFor(e.thangID)?.imageObject
- else if e.pos
- target = @camera.worldToSurface e.pos
- else
- target = null
- @camera.setBounds e.bounds if e.bounds
- @cameraBorder.updateBounds @camera.bounds
- @camera.zoomTo target, e.zoom, e.duration # TODO: SurfaceScriptModule perhaps shouldn't assign e.zoom if not set
-
- onZoomUpdated: (e) ->
- if @ended
- @setPaused false
- @surfaceZoomPauseTimeout = _.delay (=> @setPaused true), 3000
-
- setDisabled: (@disabled) ->
- @spriteBoss.disabled = @disabled
-
- onDisableControls: (e) ->
- return if e.controls and not ('surface' in e.controls)
- @setDisabled true
- @dimmer ?= new Dimmer camera: @camera, layer: @screenLayer
- @dimmer.setSprites @spriteBoss.sprites
-
- onEnableControls: (e) ->
- return if e.controls and not ('surface' in e.controls)
- @setDisabled false
-
- onSetLetterbox: (e) ->
- @setDisabled e.on
-
- onSetPlaying: (e) ->
- @playing = (e ? {}).playing ? true
- @setPlayingCalled = true
- if @playing and @currentFrame >= (@world.totalFrames - 5)
- @currentFrame = 0
- if @fastForwardingToFrame and not @playing
- @fastForwardingToFrame = null
-
- onSetTime: (e) ->
- toFrame = @currentFrame
- if e.time?
- @worldLifespan = @world.frames.length / @world.frameRate
- e.ratio = e.time / @worldLifespan
- if e.ratio?
- toFrame = @world.frames.length * e.ratio
- if e.frameOffset
- toFrame += e.frameOffset
- if e.ratioOffset
- toFrame += @world.frames.length * e.ratioOffset
- unless _.isNumber(toFrame) and not _.isNaN(toFrame)
- return console.error('set-time event', e, 'produced invalid target frame', toFrame)
- @setProgress(toFrame / @world.frames.length, e.scrubDuration)
-
- onFrameChanged: (force) ->
- @currentFrame = Math.min(@currentFrame, @world.frames.length)
- @debugDisplay?.updateFrame @currentFrame
- return if @currentFrame is @lastFrame and not force
- progress = @getProgress()
- Backbone.Mediator.publish('surface:frame-changed',
- selectedThang: @spriteBoss.selectedSprite?.thang
- progress: progress
- frame: @currentFrame
- world: @world
- )
-
- if @lastFrame < @world.frames.length and @currentFrame >= @world.totalFrames - 1
- @ended = true
- @setPaused true
- Backbone.Mediator.publish 'surface:playback-ended', {}
- else if @currentFrame < @world.totalFrames and @ended
- @ended = false
- @setPaused false
- Backbone.Mediator.publish 'surface:playback-restarted', {}
-
- @lastFrame = @currentFrame
-
- onIdleChanged: (e) ->
- @setPaused e.idle unless @ended
-
- setPaused: (paused) ->
- # We want to be able to essentially stop rendering the surface if it doesn't need to animate anything.
- # If pausing, though, we want to give it enough time to finish any tweens.
- performToggle = =>
- createjs.Ticker.setFPS if paused then 1 else @options.frameRate
- @surfacePauseTimeout = null
- clearTimeout @surfacePauseTimeout if @surfacePauseTimeout
- clearTimeout @surfaceZoomPauseTimeout if @surfaceZoomPauseTimeout
- @surfacePauseTimeout = @surfaceZoomPauseTimeout = null
- if paused
- @surfacePauseTimeout = _.delay performToggle, 2000
- @spriteBoss.stop()
- @playbackOverScreen.show()
- else
- performToggle()
- @spriteBoss.play()
- @playbackOverScreen.hide()
-
- onCastSpells: (e) ->
- return if e.preload
- @setPaused false if @ended
- @casting = true
- @setPlayingCalled = false # Don't overwrite playing settings if they changed by, say, scripts.
- @frameBeforeCast = @currentFrame
- @setProgress 0
-
- onNewWorld: (event) ->
- return unless event.world.name is @world.name
- @onStreamingWorldUpdated event
-
- onStreamingWorldUpdated: (event) ->
- @casting = false
- @spriteBoss.play()
-
- # This has a tendency to break scripts that are waiting for playback to change when the level is loaded
- # so only run it after the first world is created.
- Backbone.Mediator.publish 'level:set-playing', {playing: true} unless event.firstWorld or @setPlayingCalled
-
- @setWorld event.world
- @onFrameChanged(true)
- fastForwardBuffer = 2
- if @playing and not @realTime and (ffToFrame = Math.min(event.firstChangedFrame, @frameBeforeCast, @world.frames.length)) and ffToFrame > @currentFrame + fastForwardBuffer * @world.frameRate
- @fastForwardingToFrame = ffToFrame
- @fastForwardingSpeed = Math.max 4, 4 * 90 / (@world.maxTotalFrames * @world.dt)
- else if @realTime
- lag = (@world.frames.length - 1) * @world.dt - @world.age
- intendedLag = @world.realTimeBufferMax + @world.dt
- if lag > intendedLag * 1.2
- @fastForwardingToFrame = @world.frames.length - @world.realTimeBufferMax * @world.frameRate
- @fastForwardingSpeed = lag / intendedLag
- else
- @fastForwardingToFrame = @fastForwardingSpeed = null
- #console.log "on new world, lag", lag, "intended lag", intendedLag, "fastForwardingToFrame", @fastForwardingToFrame, "speed", @fastForwardingSpeed, "cause we are at", @world.age, "of", @world.frames.length * @world.dt
-
- # initialization
-
initEasel: ->
@stage = new createjs.Stage(@canvas[0]) # Takes DOM objects, not jQuery objects.
canvasWidth = parseInt @canvas.attr('width'), 10
@@ -422,36 +125,31 @@ module.exports = Surface = class Surface extends CocoClass
@coordinateGrid.showGrid() if @world.showGrid or @options.grid
@coordinateDisplay ?= new CoordinateDisplay camera: @camera, layer: @surfaceTextLayer if @world.showCoordinates or @options.coords
- onResize: (e) =>
- return if @destroyed
- oldWidth = parseInt @canvas.attr('width'), 10
- oldHeight = parseInt @canvas.attr('height'), 10
- aspectRatio = oldWidth / oldHeight
- pageWidth = $('#page-container').width() - 17 # 17px nano scroll bar
- if @realTime or @options.spectateGame
- pageHeight = $('#page-container').height() - $('#control-bar-view').outerHeight() - $('#playback-view').outerHeight()
- newWidth = Math.min pageWidth, pageHeight * aspectRatio
- newHeight = newWidth / aspectRatio
- else if $('#thangs-tab-view')
- newWidth = $('#canvas-wrapper').width()
- newHeight = newWidth / aspectRatio
- else
- newWidth = 0.55 * pageWidth
- newHeight = newWidth / aspectRatio
- return unless newWidth > 0 and newHeight > 0
- ##if InstallTrigger? # Firefox rendering performance goes down as canvas size goes up
- ## newWidth = Math.min 924, newWidth
- ## newHeight = Math.min 589, newHeight
- #@canvas.width newWidth
- #@canvas.height newHeight
- @canvas.attr width: newWidth, height: newHeight
- @stage.scaleX *= newWidth / oldWidth
- @stage.scaleY *= newHeight / oldHeight
- @camera.onResize newWidth, newHeight
+ hookUpChooseControls: ->
+ chooserOptions = stage: @stage, surfaceLayer: @surfaceLayer, camera: @camera, restrictRatio: @options.choosing is 'ratio-region'
+ klass = if @options.choosing is 'point' then PointChooser else RegionChooser
+ @chooser = new klass chooserOptions
+
+ initAudio: ->
+ @musicPlayer = new MusicPlayer()
+
+
+
+ #- Setting the world
+
+ setWorld: (@world) ->
+ @worldLoaded = true
+ lastFrame = Math.min(@getCurrentFrame(), @world.frames.length - 1)
+ @world.getFrame(lastFrame).restoreState() unless @options.choosing
+ @spriteBoss.world = @world
+
+ @showLevel()
+ @updateState true if @loaded
+ @onFrameChanged()
+ Backbone.Mediator.publish 'surface:world-set-up', {world: @world}
showLevel: ->
- return if @dead
- return unless @worldLoaded
+ return if @destroyed
return if @loaded
@loaded = true
@spriteBoss.createMarks()
@@ -464,60 +162,9 @@ module.exports = Surface = class Surface extends CocoClass
createOpponentWizard: (opponent) ->
@spriteBoss.createOpponentWizard opponent
- initAudio: ->
- @musicPlayer = new MusicPlayer()
- onToggleDebug: (e) ->
- e?.preventDefault?()
- Backbone.Mediator.publish 'level:set-debug', {debug: not @debug}
- onSetDebug: (e) ->
- return if e.debug is @debug
- @debug = e.debug
- if @debug and not @debugDisplay
- @screenLayer.addChild @debugDisplay = new DebugDisplay canvasWidth: @camera.canvasWidth, canvasHeight: @camera.canvasHeight
-
- # Some mouse handling callbacks
-
- onMouseMove: (e) =>
- @mouseScreenPos = {x: e.stageX, y: e.stageY}
- return if @disabled
- Backbone.Mediator.publish 'surface:mouse-moved', x: e.stageX, y: e.stageY
-
- onMouseDown: (e) =>
- return if @disabled
- newPos = @camera.screenToCanvas({x: e.stageX, y: e.stageY})
- # getObject(s)UnderPoint is broken, so we have to use the private method to get what we want
- onBackground = not @stage._getObjectsUnderPoint(newPos.x, newPos.y, null, true)
-
- worldPos = @camera.screenToWorld x: e.stageX, y: e.stageY
- event = onBackground: onBackground, x: e.stageX, y: e.stageY, originalEvent: e, worldPos: worldPos
- Backbone.Mediator.publish 'surface:stage-mouse-down', event
- Backbone.Mediator.publish 'tome:focus-editor', {}
-
- onMouseUp: (e) =>
- return if @disabled
- onBackground = not @stage.hitTest e.stageX, e.stageY
- Backbone.Mediator.publish 'surface:stage-mouse-up', onBackground: onBackground, x: e.stageX, y: e.stageY, originalEvent: e
- Backbone.Mediator.publish 'tome:focus-editor', {}
-
- onMouseWheel: (e) =>
- # https://github.com/brandonaaron/jquery-mousewheel
- e.preventDefault()
- return if @disabled
- event =
- deltaX: e.deltaX
- deltaY: e.deltaY
- canvas: @canvas
- event.screenPos = @mouseScreenPos if @mouseScreenPos
- Backbone.Mediator.publish 'surface:mouse-scrolled', event unless @disabled
-
- hookUpChooseControls: ->
- chooserOptions = stage: @stage, surfaceLayer: @surfaceLayer, camera: @camera, restrictRatio: @options.choosing is 'ratio-region'
- klass = if @options.choosing is 'point' then PointChooser else RegionChooser
- @chooser = new klass chooserOptions
-
- # Main Surface update loop
+ #- Update loop
tick: (e) =>
# seems to be a bug where only one object can register with the Ticker...
@@ -580,7 +227,298 @@ module.exports = Surface = class Surface extends CocoClass
++@totalFramesDrawn
@stage.update e
- # Real-time playback
+
+
+ #- Setting play/pause and progress
+
+ setProgress: (progress, scrubDuration=500) ->
+ progress = Math.max(Math.min(progress, 1), 0.0)
+
+ @fastForwardingToFrame = null
+ @scrubbing = true
+ onTweenEnd = =>
+ @scrubbingTo = null
+ @scrubbing = false
+ @scrubbingPlaybackSpeed = null
+
+ if @scrubbingTo?
+ # cut to the chase for existing tween
+ createjs.Tween.removeTweens(@)
+ @currentFrame = @scrubbingTo
+
+ @scrubbingTo = Math.min(Math.round(progress * @world.frames.length), @world.frames.length)
+ @scrubbingPlaybackSpeed = Math.sqrt(Math.abs(@scrubbingTo - @currentFrame) * @world.dt / (scrubDuration or 0.5))
+ if scrubDuration
+ t = createjs.Tween
+ .get(@)
+ .to({currentFrame: @scrubbingTo}, scrubDuration, createjs.Ease.sineInOut)
+ .call(onTweenEnd)
+ t.addEventListener('change', @onFramesScrubbed)
+ else
+ @currentFrame = @scrubbingTo
+ @onFramesScrubbed() # For performance, don't play these for instant transitions.
+ onTweenEnd()
+
+ return unless @loaded
+ @updateState true
+ @onFrameChanged()
+
+ onFramesScrubbed: (e) =>
+ return unless @loaded
+ if e
+ # Gotta play all the sounds when scrubbing (but not when doing an immediate transition).
+ rising = @currentFrame > @lastFrame
+ actualCurrentFrame = @currentFrame
+ tempFrame = if rising then Math.ceil(@lastFrame) else Math.floor(@lastFrame)
+ while true # temporary fix to stop cacophony
+ break if rising and tempFrame > actualCurrentFrame
+ break if (not rising) and tempFrame < actualCurrentFrame
+ @currentFrame = tempFrame
+ frame = @world.getFrame(@getCurrentFrame())
+ frame.restoreState()
+ volume = Math.max(0.05, Math.min(1, 1 / @scrubbingPlaybackSpeed))
+ sprite.playSounds false, volume for sprite in @spriteBoss.spriteArray
+ tempFrame += if rising then 1 else -1
+ @currentFrame = actualCurrentFrame
+
+ @restoreWorldState()
+ @spriteBoss.update true
+ @onFrameChanged()
+
+ getCurrentFrame: ->
+ return Math.max(0, Math.min(Math.floor(@currentFrame), @world.frames.length - 1))
+
+ setPaused: (paused) ->
+ # We want to be able to essentially stop rendering the surface if it doesn't need to animate anything.
+ # If pausing, though, we want to give it enough time to finish any tweens.
+ performToggle = =>
+ createjs.Ticker.setFPS if paused then 1 else @options.frameRate
+ @surfacePauseTimeout = null
+ clearTimeout @surfacePauseTimeout if @surfacePauseTimeout
+ clearTimeout @surfaceZoomPauseTimeout if @surfaceZoomPauseTimeout
+ @surfacePauseTimeout = @surfaceZoomPauseTimeout = null
+ if paused
+ @surfacePauseTimeout = _.delay performToggle, 2000
+ @spriteBoss.stop()
+ @playbackOverScreen.show()
+ else
+ performToggle()
+ @spriteBoss.play()
+ @playbackOverScreen.hide()
+
+
+
+ #- Changes and events that only need to happen when the frame has changed
+
+ onFrameChanged: (force) ->
+ @currentFrame = Math.min(@currentFrame, @world.frames.length)
+ @debugDisplay?.updateFrame @currentFrame
+ return if @currentFrame is @lastFrame and not force
+ progress = @getProgress()
+ Backbone.Mediator.publish('surface:frame-changed',
+ selectedThang: @spriteBoss.selectedSprite?.thang
+ progress: progress
+ frame: @currentFrame
+ world: @world
+ )
+
+ if @lastFrame < @world.frames.length and @currentFrame >= @world.totalFrames - 1
+ @ended = true
+ @setPaused true
+ Backbone.Mediator.publish 'surface:playback-ended', {}
+ else if @currentFrame < @world.totalFrames and @ended
+ @ended = false
+ @setPaused false
+ Backbone.Mediator.publish 'surface:playback-restarted', {}
+
+ @lastFrame = @currentFrame
+
+ getProgress: -> @currentFrame / @world.frames.length
+
+
+
+ #- Subscription callbacks
+
+ onToggleDebug: (e) ->
+ e?.preventDefault?()
+ Backbone.Mediator.publish 'level:set-debug', {debug: not @debug}
+
+ onSetDebug: (e) ->
+ return if e.debug is @debug
+ @debug = e.debug
+ if @debug and not @debugDisplay
+ @screenLayer.addChild @debugDisplay = new DebugDisplay canvasWidth: @camera.canvasWidth, canvasHeight: @camera.canvasHeight
+
+ onLevelRestarted: (e) ->
+ @setProgress 0, 0
+
+ onSetCamera: (e) ->
+ if e.thangID
+ return unless target = @spriteBoss.spriteFor(e.thangID)?.imageObject
+ else if e.pos
+ target = @camera.worldToSurface e.pos
+ else
+ target = null
+ @camera.setBounds e.bounds if e.bounds
+ @cameraBorder.updateBounds @camera.bounds
+ @camera.zoomTo target, e.zoom, e.duration # TODO: SurfaceScriptModule perhaps shouldn't assign e.zoom if not set
+
+ onZoomUpdated: (e) ->
+ if @ended
+ @setPaused false
+ @surfaceZoomPauseTimeout = _.delay (=> @setPaused true), 3000
+
+ onDisableControls: (e) ->
+ return if e.controls and not ('surface' in e.controls)
+ @setDisabled true
+ @dimmer ?= new Dimmer camera: @camera, layer: @screenLayer
+ @dimmer.setSprites @spriteBoss.sprites
+
+ onEnableControls: (e) ->
+ return if e.controls and not ('surface' in e.controls)
+ @setDisabled false
+
+ onSetLetterbox: (e) ->
+ @setDisabled e.on
+
+ setDisabled: (@disabled) ->
+ @spriteBoss.disabled = @disabled
+
+ onSetPlaying: (e) ->
+ @playing = (e ? {}).playing ? true
+ @setPlayingCalled = true
+ if @playing and @currentFrame >= (@world.totalFrames - 5)
+ @currentFrame = 0
+ if @fastForwardingToFrame and not @playing
+ @fastForwardingToFrame = null
+
+ onSetTime: (e) ->
+ toFrame = @currentFrame
+ if e.time?
+ @worldLifespan = @world.frames.length / @world.frameRate
+ e.ratio = e.time / @worldLifespan
+ if e.ratio?
+ toFrame = @world.frames.length * e.ratio
+ if e.frameOffset
+ toFrame += e.frameOffset
+ if e.ratioOffset
+ toFrame += @world.frames.length * e.ratioOffset
+ unless _.isNumber(toFrame) and not _.isNaN(toFrame)
+ return console.error('set-time event', e, 'produced invalid target frame', toFrame)
+ @setProgress(toFrame / @world.frames.length, e.scrubDuration)
+
+ onCastSpells: (e) ->
+ return if e.preload
+ @setPaused false if @ended
+ @casting = true
+ @setPlayingCalled = false # Don't overwrite playing settings if they changed by, say, scripts.
+ @frameBeforeCast = @currentFrame
+ @setProgress 0
+
+ onNewWorld: (event) ->
+ return unless event.world.name is @world.name
+ @onStreamingWorldUpdated event
+
+ onStreamingWorldUpdated: (event) ->
+ @casting = false
+ @spriteBoss.play()
+
+ # This has a tendency to break scripts that are waiting for playback to change when the level is loaded
+ # so only run it after the first world is created.
+ Backbone.Mediator.publish 'level:set-playing', {playing: true} unless event.firstWorld or @setPlayingCalled
+
+ @setWorld event.world
+ @onFrameChanged(true)
+ fastForwardBuffer = 2
+ if @playing and not @realTime and (ffToFrame = Math.min(event.firstChangedFrame, @frameBeforeCast, @world.frames.length)) and ffToFrame > @currentFrame + fastForwardBuffer * @world.frameRate
+ @fastForwardingToFrame = ffToFrame
+ @fastForwardingSpeed = Math.max 4, 4 * 90 / (@world.maxTotalFrames * @world.dt)
+ else if @realTime
+ lag = (@world.frames.length - 1) * @world.dt - @world.age
+ intendedLag = @world.realTimeBufferMax + @world.dt
+ if lag > intendedLag * 1.2
+ @fastForwardingToFrame = @world.frames.length - @world.realTimeBufferMax * @world.frameRate
+ @fastForwardingSpeed = lag / intendedLag
+ else
+ @fastForwardingToFrame = @fastForwardingSpeed = null
+ #console.log "on new world, lag", lag, "intended lag", intendedLag, "fastForwardingToFrame", @fastForwardingToFrame, "speed", @fastForwardingSpeed, "cause we are at", @world.age, "of", @world.frames.length * @world.dt
+
+ onIdleChanged: (e) ->
+ @setPaused e.idle unless @ended
+
+
+
+ #- Mouse event callbacks
+
+ onMouseMove: (e) =>
+ @mouseScreenPos = {x: e.stageX, y: e.stageY}
+ return if @disabled
+ Backbone.Mediator.publish 'surface:mouse-moved', x: e.stageX, y: e.stageY
+
+ onMouseDown: (e) =>
+ return if @disabled
+ newPos = @camera.screenToCanvas({x: e.stageX, y: e.stageY})
+ # getObject(s)UnderPoint is broken, so we have to use the private method to get what we want
+ onBackground = not @stage._getObjectsUnderPoint(newPos.x, newPos.y, null, true)
+
+ worldPos = @camera.screenToWorld x: e.stageX, y: e.stageY
+ event = onBackground: onBackground, x: e.stageX, y: e.stageY, originalEvent: e, worldPos: worldPos
+ Backbone.Mediator.publish 'surface:stage-mouse-down', event
+ Backbone.Mediator.publish 'tome:focus-editor', {}
+
+ onMouseUp: (e) =>
+ return if @disabled
+ onBackground = not @stage.hitTest e.stageX, e.stageY
+ Backbone.Mediator.publish 'surface:stage-mouse-up', onBackground: onBackground, x: e.stageX, y: e.stageY, originalEvent: e
+ Backbone.Mediator.publish 'tome:focus-editor', {}
+
+ onMouseWheel: (e) =>
+ # https://github.com/brandonaaron/jquery-mousewheel
+ e.preventDefault()
+ return if @disabled
+ event =
+ deltaX: e.deltaX
+ deltaY: e.deltaY
+ canvas: @canvas
+ event.screenPos = @mouseScreenPos if @mouseScreenPos
+ Backbone.Mediator.publish 'surface:mouse-scrolled', event unless @disabled
+
+
+
+ #- Canvas callbacks
+
+ onResize: (e) =>
+ return if @destroyed
+ oldWidth = parseInt @canvas.attr('width'), 10
+ oldHeight = parseInt @canvas.attr('height'), 10
+ aspectRatio = oldWidth / oldHeight
+ pageWidth = $('#page-container').width() - 17 # 17px nano scroll bar
+ if @realTime or @options.spectateGame
+ pageHeight = $('#page-container').height() - $('#control-bar-view').outerHeight() - $('#playback-view').outerHeight()
+ newWidth = Math.min pageWidth, pageHeight * aspectRatio
+ newHeight = newWidth / aspectRatio
+ else if $('#thangs-tab-view')
+ newWidth = $('#canvas-wrapper').width()
+ newHeight = newWidth / aspectRatio
+ else
+ newWidth = 0.55 * pageWidth
+ newHeight = newWidth / aspectRatio
+ return unless newWidth > 0 and newHeight > 0
+ ##if InstallTrigger? # Firefox rendering performance goes down as canvas size goes up
+ ## newWidth = Math.min 924, newWidth
+ ## newHeight = Math.min 589, newHeight
+ #@canvas.width newWidth
+ #@canvas.height newHeight
+ scaleFactor = if application.isIPadApp then 2 else 1 # Retina
+ @canvas.attr width: newWidth * scaleFactor, height: newHeight * scaleFactor
+ @stage.scaleX *= newWidth / oldWidth
+ @stage.scaleY *= newHeight / oldHeight
+ @camera.onResize newWidth, newHeight
+
+
+
+ #- Real-time playback
+
onRealTimePlaybackWaiting: (e) ->
@onRealTimePlaybackStarted e
@@ -602,7 +540,9 @@ module.exports = Surface = class Surface extends CocoClass
@canvas.toggleClass 'flag-color-selected', Boolean(e.color)
e.pos = @camera.screenToWorld @mouseScreenPos if @mouseScreenPos
- # paths - TODO: move to SpriteBoss? but only update on frame drawing instead of on every frame update?
+
+
+ #- Paths - TODO: move to SpriteBoss? but only update on frame drawing instead of on every frame update?
updatePaths: ->
return unless @options.paths
@@ -623,6 +563,10 @@ module.exports = Surface = class Surface extends CocoClass
@paths.parent.removeChild @paths
@paths = null
+
+
+ #- Screenshot
+
screenshot: (scale=0.25, format='image/jpeg', quality=0.8, zoom=2) ->
# Quality doesn't work with image/png, just image/jpeg and image/webp
[w, h] = [@camera.canvasWidth, @camera.canvasHeight]
@@ -634,3 +578,98 @@ module.exports = Surface = class Surface extends CocoClass
screenshot.src = imageData
@stage.uncache()
imageData
+
+
+
+ #- Path finding debugging
+
+ onTogglePathFinding: (e) ->
+ e?.preventDefault?()
+ @hidePathFinding()
+ @showingPathFinding = not @showingPathFinding
+ if @showingPathFinding then @showPathFinding() else @hidePathFinding()
+
+ hidePathFinding: ->
+ @surfaceLayer.removeChild @navRectangles if @navRectangles
+ @surfaceLayer.removeChild @navPaths if @navPaths
+ @navRectangles = @navPaths = null
+
+ showPathFinding: ->
+ @hidePathFinding()
+
+ mesh = _.values(@world.navMeshes or {})[0]
+ return unless mesh
+ @navRectangles = new createjs.Container()
+ @navRectangles.layerPriority = -1
+ @addMeshRectanglesToContainer mesh, @navRectangles
+ @surfaceLayer.addChild @navRectangles
+ @surfaceLayer.updateLayerOrder()
+
+ graph = _.values(@world.graphs or {})[0]
+ return @surfaceLayer.updateLayerOrder() unless graph
+ @navPaths = new createjs.Container()
+ @navPaths.layerPriority = -1
+ @addNavPathsToContainer graph, @navPaths
+ @surfaceLayer.addChild @navPaths
+ @surfaceLayer.updateLayerOrder()
+
+ addMeshRectanglesToContainer: (mesh, container) ->
+ for rect in mesh
+ shape = new createjs.Shape()
+ pos = @camera.worldToSurface {x: rect.x, y: rect.y}
+ dim = @camera.worldToSurface {x: rect.width, y: rect.height}
+ shape.graphics
+ .setStrokeStyle(3)
+ .beginFill('rgba(0,0,128,0.3)')
+ .beginStroke('rgba(0,0,128,0.7)')
+ .drawRect(pos.x - dim.x/2, pos.y - dim.y/2, dim.x, dim.y)
+ container.addChild shape
+
+ addNavPathsToContainer: (graph, container) ->
+ for node in _.values graph
+ for edgeVertex in node.edges
+ @drawLine node.vertex, edgeVertex, container
+
+ drawLine: (v1, v2, container) ->
+ shape = new createjs.Shape()
+ v1 = @camera.worldToSurface v1
+ v2 = @camera.worldToSurface v2
+ shape.graphics
+ .setStrokeStyle(1)
+ .moveTo(v1.x, v1.y)
+ .beginStroke('rgba(128,0,0,0.4)')
+ .lineTo(v2.x, v2.y)
+ .endStroke()
+ container.addChild shape
+
+
+
+ #- Teardown
+
+ destroy: ->
+ @camera?.destroy()
+ createjs.Ticker.removeEventListener('tick', @tick)
+ createjs.Sound.stop()
+ layer.destroy() for layer in @layers
+ @spriteBoss.destroy()
+ @chooser?.destroy()
+ @dimmer?.destroy()
+ @countdownScreen?.destroy()
+ @playbackOverScreen?.destroy()
+ @waitingScreen?.destroy()
+ @coordinateDisplay?.destroy()
+ @coordinateGrid?.destroy()
+ @stage.clear()
+ @musicPlayer?.destroy()
+ @stage.removeAllChildren()
+ @stage.removeEventListener 'stagemousemove', @onMouseMove
+ @stage.removeEventListener 'stagemousedown', @onMouseDown
+ @stage.removeEventListener 'stagemouseup', @onMouseUp
+ @stage.removeAllEventListeners()
+ @stage.enableDOMEvents false
+ @stage.enableMouseOver 0
+ @canvas.off 'mousewheel', @onMouseWheel
+ $(window).off 'resize', @onResize
+ clearTimeout @surfacePauseTimeout if @surfacePauseTimeout
+ clearTimeout @surfaceZoomPauseTimeout if @surfaceZoomPauseTimeout
+ super()
diff --git a/app/lib/world/names.coffee b/app/lib/world/names.coffee
index 9fadc1da9..46413cbcc 100644
--- a/app/lib/world/names.coffee
+++ b/app/lib/world/names.coffee
@@ -328,6 +328,9 @@ module.exports.thangNames = thangNames =
'Curie'
'Clause'
'Vanders'
+ 'Kanada'
+ 'Artephius'
+ 'Paracelsus'
]
'Librarian': [
'Hushbaum'
diff --git a/app/locale/ar.coffee b/app/locale/ar.coffee
index f4539e605..f65366400 100644
--- a/app/locale/ar.coffee
+++ b/app/locale/ar.coffee
@@ -1,172 +1,173 @@
module.exports = nativeDescription: "العربية", englishDescription: "Arabic", translation:
common:
- loading: "تحميل..."
- saving: "...جاري الحفض"
- sending: "ارسال..."
-# send: "Send"
- cancel: "الغي"
- save: "احفض"
-# publish: "Publish"
-# create: "Create"
+ loading: "تحميل"
+ saving: "جاري الحفض"
+ sending: "جاري الإرسال"
+ send: "أرسل"
+ cancel: "ألغي"
+ save: "إحفض"
+ publish: "أنشر"
+ create: "إنشاء"
delay_1_sec: "ثانية"
delay_3_sec: "3 ثواني"
delay_5_sec: "5 ثواني"
manual: "يدوي"
-# fork: "Fork"
-# play: "Play"
-# retry: "Retry"
-# watch: "Watch"
-# unwatch: "Unwatch"
-# submit_patch: "Submit Patch"
+ fork: "إنسخ"
+ play: "إلعب"
+ retry: "إعادة"
+ watch: "مشاهدة"
+ unwatch: "إنهاء المشاهدة"
+ submit_patch: "تقديم التصحيح"
-# units:
-# second: "second"
-# seconds: "seconds"
-# minute: "minute"
-# minutes: "minutes"
-# hour: "hour"
-# hours: "hours"
-# day: "day"
-# days: "days"
-# week: "week"
-# weeks: "weeks"
-# month: "month"
-# months: "months"
-# year: "year"
-# years: "years"
+ units:
+ second: "ثانيّة"
+ seconds: "ثواني"
+ minute: "دقيقة"
+ minutes: "دقائق"
+ hour: "ساعة"
+ hours: "ساعات"
+ day: "يوم"
+ days: "أيّام"
+ week: "أسبوع"
+ weeks: "أسابيع"
+ month: "شهر"
+ months: "أشهر"
+ year: "سنة"
+ years: "سنوات"
-# modal:
-# close: "Close"
-# okay: "Okay"
+ modal:
+ close: "إغلاق"
+ okay: "حسنا"
-# not_found:
-# page_not_found: "Page not found"
+ not_found:
+ page_not_found: "الصفحة غير موجودة"
-# nav:
-# play: "Levels"
-# community: "Community"
-# editor: "Editor"
-# blog: "Blog"
-# forum: "Forum"
-# account: "Account"
-# profile: "Profile"
-# stats: "Stats"
-# code: "Code"
-# admin: "Admin"
-# home: "Home"
-# contribute: "Contribute"
-# legal: "Legal"
-# about: "About"
-# contact: "Contact"
-# twitter_follow: "Follow"
-# employers: "Employers"
+ nav:
+ play: "إلعب"
+ community: "مجتمع"
+ editor: "محرّر"
+ blog: "مدوّنة"
+ forum: "منتدى"
+ account: "حساب"
+ profile: "ملف شخصي"
+ stats: "إحصاءات"
+ code: "رمز"
+ admin: "مشرف"
+ home: "رئيسيّة"
+ contribute: "مساهة"
+ legal: "قانون"
+ about: "حول"
+ contact: "اتّصال"
+ twitter_follow: "متابعة"
+ employers: "موظّفين"
-# versions:
-# save_version_title: "Save New Version"
-# new_major_version: "New Major Version"
-# cla_prefix: "To save changes, first you must agree to our"
-# cla_url: "CLA"
-# cla_suffix: "."
-# cla_agree: "I AGREE"
+ versions:
+ save_version_title: "إحفض نسخة جديدة"
+ new_major_version: "نسخة مهمّة جديدة"
+ cla_prefix: "لحفظ التغييرات، أولا يجب أن توافق على "
+ cla_url: "اتفاقيّة ترخيص المساهم"
+ cla_suffix: "."
+ cla_agree: "أوافق"
-# login:
-# sign_up: "Create Account"
-# log_in: "Log In"
-# logging_in: "Logging In"
-# log_out: "Log Out"
-# recover: "recover account"
+ login:
+ sign_up: "إنشاء حساب"
+ log_in: "تسجيل الدخول"
+ logging_in: "جاري تسجيل الدخول"
+ log_out: "تسجيل الخروج"
+ recover: "إستعادة حساب"
-# recover:
-# recover_account_title: "Recover Account"
-# send_password: "Send Recovery Password"
+ recover:
+ recover_account_title: "إستعادة حساب"
+ send_password: "إرسال كلمة سرّ الإستعادة"
+# recovery_sent: "Recovery email sent."
-# signup:
-# create_account_title: "Create Account to Save Progress"
-# description: "It's free. Just need a couple things and you'll be good to go:"
-# email_announcements: "Receive announcements by email"
-# coppa: "13+ or non-USA "
-# coppa_why: "(Why?)"
-# creating: "Creating Account..."
-# sign_up: "Sign Up"
-# log_in: "log in with password"
-# social_signup: "Or, you can sign up through Facebook or G+:"
-# required: "You need to log in before you can go that way."
+ signup:
+ create_account_title: "إنشاء حساب لحفظ التقدّم"
+ description: "إنه مجاني. فقط بحاجة بضعة أشياء وسوف تكون على ما يرام للبدء:"
+ email_announcements: "تلقي الإعلانات عن طريق البريد الإلكتروني"
+ coppa: "13+ أو لست من الولايات المتّحدة الأمريكيّة"
+ coppa_why: "(لماذا؟)"
+ creating: "جاري إنساء الحساب..."
+ sign_up: "التسجيل"
+ log_in: "تسجيل الدّخول بكلمة السرّ"
+ social_signup: "أو، يمكنك الاشتراك من خلال الفايسبوك أو جوجل+"
+ required: "تحتاج إلى تسجيل الدخول قبل أن تتمكن من السير في هذا الطريق."
-# home:
-# slogan: "Learn to Code by Playing a Game"
-# no_ie: "CodeCombat does not run in Internet Explorer 9 or older. Sorry!"
-# no_mobile: "CodeCombat wasn't designed for mobile devices and may not work!"
-# play: "Play"
-# old_browser: "Uh oh, your browser is too old to run CodeCombat. Sorry!"
-# old_browser_suffix: "You can try anyway, but it probably won't work."
-# campaign: "Campaign"
-# for_beginners: "For Beginners"
-# multiplayer: "Multiplayer"
-# for_developers: "For Developers"
-# javascript_blurb: "The language of the web. Great for writing websites, web apps, HTML5 games, and servers."
-# python_blurb: "Simple yet powerful, Python is a great general purpose programming language."
-# coffeescript_blurb: "Nicer JavaScript syntax."
-# clojure_blurb: "A modern Lisp."
-# lua_blurb: "Game scripting language."
-# io_blurb: "Simple but obscure."
+ home:
+ slogan: "تعلّم البرمجة من لعب لعبة"
+ no_ie: "CodeCombat لا يعمل في Internet Explorer 9 أو أقل. آسف!"
+ no_mobile: "لم يصمم CodeCombat للهواتف النقالة وقد لا يعمل!"
+ play: "إلعب"
+ old_browser: "اه أوه، متصفحك قديم جدا لتشغيل CodeCombat. آسف!"
+ old_browser_suffix: "يمكنك محاولة على أي حال، لكنه ربما لن يعمل."
+ campaign: "حملة"
+ for_beginners: "للمبتدئين"
+ multiplayer: "متعدد اللاعبين"
+ for_developers: "للمطوّرين"
+ javascript_blurb: "لغة الويب. عظيم للكتابة المواقع، تطبيقات الويب، ألعاب HTML5، والخوادم."
+ python_blurb: "بسيطة لكنها قوية، بيثون هي لغة برمجة عظيمة للأغراض العامة."
+ coffeescript_blurb: "Nicer JavaScript syntax."
+ clojure_blurb: "لثغة حديثة."
+ lua_blurb: "لعبة لغة البرمجة."
+ io_blurb: "بسيطة ولكنها غامضة."
-# play:
-# choose_your_level: "Choose Your Level"
-# adventurer_prefix: "You can jump to any level below, or discuss the levels on "
-# adventurer_forum: "the Adventurer forum"
-# adventurer_suffix: "."
-# campaign_beginner: "Beginner Campaign"
-# campaign_beginner_description: "... in which you learn the wizardry of programming."
-# campaign_dev: "Random Harder Levels"
-# campaign_dev_description: "... in which you learn the interface while doing something a little harder."
-# campaign_multiplayer: "Multiplayer Arenas"
-# campaign_multiplayer_description: "... in which you code head-to-head against other players."
-# campaign_player_created: "Player-Created"
-# campaign_player_created_description: "... in which you battle against the creativity of your fellow Artisan Wizards."
-# campaign_classic_algorithms: "Classic Algorithms"
-# campaign_classic_algorithms_description: "... in which you learn the most popular algorithms in Computer Science."
-# level_difficulty: "Difficulty: "
-# play_as: "Play As"
-# spectate: "Spectate"
-# players: "players"
-# hours_played: "hours played"
+ play:
+ choose_your_level: "اختر مستواك"
+ adventurer_prefix: "يمكنك القفز إلى أي مستوى أدناه، أو مناقشة المستويات على "
+ adventurer_forum: "منتدى المغامر"
+ adventurer_suffix: "."
+ campaign_beginner: "حملة المبتدئين"
+ campaign_beginner_description: "... فيها تتعلم سحر البرمجة."
+ campaign_dev: "مستويات أصعب عشوائية"
+ campaign_dev_description: "... فيها تتعلم واجهة بينما تفعل شيئا أصعب قليلا."
+ campaign_multiplayer: "ساحات متعددة اللاّعبين"
+ campaign_multiplayer_description: "... فيها تبرمج وجه لوجه ضد لاعبين آخرين."
+ campaign_player_created: "أنشئ اللاّعب"
+ campaign_player_created_description: "... فيها تقاتل ضد الإبداع الخاص بـزميلك الحرفيّ الساحر."
+ campaign_classic_algorithms: "الخوارزميات التقليديّة"
+ campaign_classic_algorithms_description: "... فيها تتعلّم خوارزميّات الأكثر شعبيّة في علوم الحاسب الآلي."
+ level_difficulty: "الصعوبة:"
+ play_as: "إلعب كـ"
+ spectate: "مشاهد"
+ players: "لاعبين"
+ hours_played: "ساعات اللّعب"
-# contact:
-# contact_us: "Contact CodeCombat"
-# welcome: "Good to hear from you! Use this form to send us email. "
-# contribute_prefix: "If you're interested in contributing, check out our "
-# contribute_page: "contribute page"
-# contribute_suffix: "!"
-# forum_prefix: "For anything public, please try "
-# forum_page: "our forum"
-# forum_suffix: " instead."
-# send: "Send Feedback"
-# contact_candidate: "Contact Candidate"
+ contact:
+ contact_us: "الاتّصال بـ CodeCombat"
+ welcome: "جيد أن نسمع منك! استخدام هذا النموذج لترسل لنا البريد الإلكتروني."
+ contribute_prefix: "إذا كنت ترغب في المساهمة، تحقّق من "
+ contribute_page: "صفحة المساهة"
+ contribute_suffix: "!"
+ forum_prefix: "لأي شيء عام، يرجى المحاولة"
+ forum_page: "منتدانا"
+ forum_suffix: "بدلا من ذلك."
+ send: "إرسال تعليقات"
+ contact_candidate: "الاتصال المرشح"
# recruitment_reminder: "Use this form to reach out to candidates you are interested in interviewing. Remember that CodeCombat charges 15% of first-year salary. The fee is due upon hiring the employee and is refundable for 90 days if the employee does not remain employed. Part time, remote, and contract employees are free, as are interns."
diplomat_suggestion:
-# title: "Help translate CodeCombat!"
-# sub_heading: "We need your language skills."
- pitch_body: "We develop CodeCombat in English, but we already have players all over the world. Many of them want to play in Arabic but don't speak English, so if you can speak both, please consider signing up to be a Diplomat and help translate both the CodeCombat website and all the levels into Arabic."
- missing_translations: "Until we can translate everything into Arabic, you'll see English when Arabic isn't available."
-# learn_more: "Learn more about being a Diplomat"
-# subscribe_as_diplomat: "Subscribe as a Diplomat"
+ title: "مساعدة في ترجمة CodeCombat!"
+ sub_heading: "نحتاج مهاراتك اللّغويّة."
+ pitch_body: "نحن نطوّر CodeCombat باللّغة الإنجليزيّة، ولكن لدينا بالفعل لاعبين في جميع أنحاء العالم. كثير منهم يريدون اللّعب باللّغة العربيّة ولكن لا يتحدثون الإنجليزيّة، حتى إذا كنت أستطيع أن أتكلّم على حد سواء، يرجى النّظر في التوقيع على أن يكون دبلوماسيّا والمساعدة في ترجمة كل من موقع CodeCombat وجميع المستويات إلى العربيّة."
+ missing_translations: "حتى يمكننا ترجمة كلّ شيء إلى اللّغة العربيّة، سترى الإنجليزيّة عندما تكون العربيّة غير متوفر."
+ learn_more: "معرفة المزيد عن كونك دبلوماسي"
+ subscribe_as_diplomat: "الاشتراك كدبلوماسي"
-# wizard_settings:
-# title: "Wizard Settings"
-# customize_avatar: "Customize Your Avatar"
-# active: "Active"
-# color: "Color"
-# group: "Group"
-# clothes: "Clothes"
-# trim: "Trim"
-# cloud: "Cloud"
-# team: "Team"
-# spell: "Spell"
-# boots: "Boots"
-# hue: "Hue"
-# saturation: "Saturation"
-# lightness: "Lightness"
+ wizard_settings:
+ title: "إعدادات الساحر"
+ customize_avatar: "الصورة الرمزية الخاصة بك"
+ active: "نشيط"
+ color: "لون"
+ group: "فريق"
+ clothes: "ملابس"
+ trim: "الحالة"
+ cloud: "سحابة"
+ team: "فريق"
+ spell: "سحر"
+ boots: "أحذية"
+ hue: "Hue"
+ saturation: "صفاء اللون"
+ lightness: "إضاءة"
# account_settings:
# title: "Account Settings"
@@ -557,7 +558,7 @@ module.exports = nativeDescription: "العربية", englishDescription: "Arabi
# grassy: "Grassy"
# fork_title: "Fork New Version"
# fork_creating: "Creating Fork..."
-# randomize: "Randomize"
+# generate_terrain: "Generate Terrain"
# more: "More"
# wiki: "Wiki"
# live_chat: "Live Chat"
@@ -567,6 +568,7 @@ module.exports = nativeDescription: "العربية", englishDescription: "Arabi
# level_tab_settings: "Settings"
# level_tab_components: "Components"
# level_tab_systems: "Systems"
+# level_tab_docs: "Documentation"
# level_tab_thangs_title: "Current Thangs"
# level_tab_thangs_all: "All"
# level_tab_thangs_conditions: "Starting Conditions"
@@ -642,27 +644,29 @@ module.exports = nativeDescription: "العربية", englishDescription: "Arabi
# player: "Player"
# about:
-# who_is_codecombat: "Who is CodeCombat?"
# why_codecombat: "Why CodeCombat?"
-# who_description_prefix: "together started CodeCombat in 2013. We also created "
-# who_description_suffix: "in 2008, growing it to the #1 web and iOS application for learning to write Chinese and Japanese characters."
-# who_description_ending: "Now it's time to teach people to write code."
-# why_paragraph_1: "When making Skritter, George didn't know how to program and was constantly frustrated by his inability to implement his ideas. Afterwards, he tried learning, but the lessons were too slow. His housemate, wanting to reskill and stop teaching, tried Codecademy, but \"got bored.\" Each week another friend started Codecademy, then dropped off. We realized it was the same problem we'd solved with Skritter: people learning a skill via slow, intensive lessons when what they need is fast, extensive practice. We know how to fix that."
-# why_paragraph_2: "Need to learn to code? You don't need lessons. You need to write a lot of code and have a great time doing it."
-# why_paragraph_3_prefix: "That's what programming is about. It's gotta be fun. Not fun like"
-# why_paragraph_3_italic: "yay a badge"
-# why_paragraph_3_center: "but fun like"
-# why_paragraph_3_italic_caps: "NO MOM I HAVE TO FINISH THE LEVEL!"
-# why_paragraph_3_suffix: "That's why CodeCombat is a multiplayer game, not a gamified lesson course. We won't stop until you can't stop--but this time, that's a good thing."
-# why_paragraph_4: "If you're going to get addicted to some game, get addicted to this one and become one of the wizards of the tech age."
-# why_ending: "And hey, it's free. "
-# why_ending_url: "Start wizarding now!"
-# george_description: "CEO, business guy, web designer, game designer, and champion of beginning programmers everywhere."
-# scott_description: "Programmer extraordinaire, software architect, kitchen wizard, and master of finances. Scott is the reasonable one."
-# nick_description: "Programming wizard, eccentric motivation mage, and upside-down experimenter. Nick can do anything and chooses to build CodeCombat."
-# jeremy_description: "Customer support mage, usability tester, and community organizer; you've probably already spoken with Jeremy."
-# michael_description: "Programmer, sys-admin, and undergrad technical wunderkind, Michael is the person keeping our servers online."
-# matt_description: "Bicyclist, Software Engineer, reader of heroic fantasy, connoisseur of peanut butter, sipper of coffee."
+# why_paragraph_1: "If you want to learn to program, you don't need lessons. You need to write a lot of code and have a great time doing it."
+# why_paragraph_2_prefix: "That's what programming is about. It's gotta be fun. Not fun like"
+# why_paragraph_2_italic: "yay a badge"
+# why_paragraph_2_center: "but fun like"
+# why_paragraph_2_italic_caps: "NO MOM I HAVE TO FINISH THE LEVEL!"
+# why_paragraph_2_suffix: "That's why CodeCombat is a multiplayer game, not a gamified lesson course. We won't stop until you can't stop--but this time, that's a good thing."
+# why_paragraph_3: "If you're going to get addicted to some game, get addicted to this one and become one of the wizards of the tech age."
+# press_title: "Bloggers/Press"
+# press_paragraph_1_prefix: "Want to write about us? Feel free to download and use all of the resources included in our"
+# press_paragraph_1_link: "press packet"
+# press_paragraph_1_suffix: ". All logos and images may be used without contacting us directly."
+# team: "Team"
+# george_title: "CEO"
+# george_blurb: "Businesser"
+# scott_title: "Programmer"
+# scott_blurb: "Reasonable One"
+# nick_title: "Programmer"
+# nick_blurb: "Motivation Guru"
+# michael_title: "Programmer"
+# michael_blurb: "Sys Admin"
+# matt_title: "Programmer"
+# matt_blurb: "Bicyclist"
# legal:
# page_title: "Legal"
@@ -899,18 +903,18 @@ module.exports = nativeDescription: "العربية", englishDescription: "Arabi
# license: "license"
# oreilly: "ebook of your choice"
-# loading_error:
-# could_not_load: "Error loading from server"
-# connection_failure: "Connection failed."
-# unauthorized: "You need to be signed in. Do you have cookies disabled?"
-# forbidden: "You do not have the permissions."
-# not_found: "Not found."
-# not_allowed: "Method not allowed."
-# timeout: "Server timeout."
-# conflict: "Resource conflict."
-# bad_input: "Bad input."
-# server_error: "Server error."
-# unknown: "Unknown error."
+ loading_error:
+ could_not_load: "خطأ في تحميل من الخادم"
+ connection_failure: "فشل الاتصال."
+ unauthorized: "تحتاج إلى أن تكون مسجّل الدخول هل لديك الكوكيز معطّلة؟"
+ forbidden: "ليس لديك الأذونات."
+ not_found: "لم يتم العثور."
+ not_allowed: "طريقة غير مسموح بها."
+ timeout: "انتهت مهلة استجابة الخادم ."
+ conflict: "الصراع على الموارد."
+ bad_input: "إدخال سيئ."
+ server_error: "خطأ في الخادم."
+ unknown: "خطأ غير معروف."
# resources:
# sessions: "Sessions"
@@ -957,46 +961,46 @@ module.exports = nativeDescription: "العربية", englishDescription: "Arabi
# play_counts: "Play Counts"
# feedback: "Feedback"
-# delta:
-# added: "Added"
-# modified: "Modified"
-# deleted: "Deleted"
-# moved_index: "Moved Index"
-# text_diff: "Text Diff"
-# merge_conflict_with: "MERGE CONFLICT WITH"
-# no_changes: "No Changes"
+ delta:
+ added: "أضيفت"
+ modified: "معدّلة"
+ deleted: "حذفت"
+ moved_index: "فهرس انتقل"
+ text_diff: "Text Diff"
+ merge_conflict_with: "تدمج الصدام مع"
+ no_changes: "No Changes"
-# user:
-# stats: "Stats"
-# singleplayer_title: "Singleplayer Levels"
-# multiplayer_title: "Multiplayer Levels"
-# achievements_title: "Achievements"
-# last_played: "Last Played"
-# status: "Status"
-# status_completed: "Completed"
-# status_unfinished: "Unfinished"
-# no_singleplayer: "No Singleplayer games played yet."
-# no_multiplayer: "No Multiplayer games played yet."
-# no_achievements: "No Achievements earned yet."
-# favorite_prefix: "Favorite language is "
-# favorite_postfix: "."
+ user:
+ stats: "احصائيّات"
+ singleplayer_title: "مستويات اللاّعب الواحد"
+ multiplayer_title: "مستويات متعدّدة اللاّعبين"
+ achievements_title: "الإنجازات"
+ last_played: "آخر ما لعب"
+ status: "الحالة"
+ status_completed: "تمّت"
+ status_unfinished: "غير منتهية"
+ no_singleplayer: "لا يوجد مباريات اللاّعب الواحد لعبت حتّى الآن."
+ no_multiplayer: "لا يوجد مباريات متعدّدة اللاّعبين لعبت حتّى الآن"
+ no_achievements: "لا توجد انجازات مكتسبة حتّى الآن."
+ favorite_prefix: "لغتك المفضّلة هي "
+ favorite_postfix: "."
-# achievements:
-# last_earned: "Last Earned"
-# amount_achieved: "Amount"
-# achievement: "Achievement"
-# category_contributor: "Contributor"
-# category_miscellaneous: "Miscellaneous"
-# category_levels: "Levels"
-# category_undefined: "Uncategorized"
-# current_xp_prefix: ""
-# current_xp_postfix: " in total"
-# new_xp_prefix: ""
-# new_xp_postfix: " earned"
-# left_xp_prefix: ""
-# left_xp_infix: " until level "
-# left_xp_postfix: ""
+ achievements:
+ last_earned: "المكتسبات الأخيرة"
+ amount_achieved: "مبلغ"
+ achievement: "الإنجاز"
+ category_contributor: "مساهم"
+ category_miscellaneous: "متنوعة"
+ category_levels: "مستويات"
+ category_undefined: "غير مصنف"
+ current_xp_prefix: ""
+ current_xp_postfix: "في المجموع"
+ new_xp_prefix: ""
+ new_xp_postfix: "اكتسبت"
+ left_xp_prefix: ""
+ left_xp_infix: "حتّى مستوى "
+ left_xp_postfix: ""
-# account:
-# recently_played: "Recently Played"
-# no_recent_games: "No games played during the past two weeks."
+ account:
+ recently_played: "لعبت مؤخّرا"
+ no_recent_games: "لا يوجد لعب لعبت خلال الأسبوعين الماضيين."
diff --git a/app/locale/bg.coffee b/app/locale/bg.coffee
index ab12284b9..ef8ac604f 100644
--- a/app/locale/bg.coffee
+++ b/app/locale/bg.coffee
@@ -79,6 +79,7 @@ module.exports = nativeDescription: "български език", englishDescri
recover:
recover_account_title: "Възстанови Акаунт"
send_password: "Изпрати парола за възстановяване"
+# recovery_sent: "Recovery email sent."
signup:
# create_account_title: "Create Account to Save Progress"
@@ -557,7 +558,7 @@ module.exports = nativeDescription: "български език", englishDescri
# grassy: "Grassy"
# fork_title: "Fork New Version"
# fork_creating: "Creating Fork..."
-# randomize: "Randomize"
+# generate_terrain: "Generate Terrain"
# more: "More"
# wiki: "Wiki"
# live_chat: "Live Chat"
@@ -567,6 +568,7 @@ module.exports = nativeDescription: "български език", englishDescri
# level_tab_settings: "Settings"
# level_tab_components: "Components"
# level_tab_systems: "Systems"
+# level_tab_docs: "Documentation"
# level_tab_thangs_title: "Current Thangs"
# level_tab_thangs_all: "All"
# level_tab_thangs_conditions: "Starting Conditions"
@@ -642,27 +644,29 @@ module.exports = nativeDescription: "български език", englishDescri
# player: "Player"
# about:
-# who_is_codecombat: "Who is CodeCombat?"
# why_codecombat: "Why CodeCombat?"
-# who_description_prefix: "together started CodeCombat in 2013. We also created "
-# who_description_suffix: "in 2008, growing it to the #1 web and iOS application for learning to write Chinese and Japanese characters."
-# who_description_ending: "Now it's time to teach people to write code."
-# why_paragraph_1: "When making Skritter, George didn't know how to program and was constantly frustrated by his inability to implement his ideas. Afterwards, he tried learning, but the lessons were too slow. His housemate, wanting to reskill and stop teaching, tried Codecademy, but \"got bored.\" Each week another friend started Codecademy, then dropped off. We realized it was the same problem we'd solved with Skritter: people learning a skill via slow, intensive lessons when what they need is fast, extensive practice. We know how to fix that."
-# why_paragraph_2: "Need to learn to code? You don't need lessons. You need to write a lot of code and have a great time doing it."
-# why_paragraph_3_prefix: "That's what programming is about. It's gotta be fun. Not fun like"
-# why_paragraph_3_italic: "yay a badge"
-# why_paragraph_3_center: "but fun like"
-# why_paragraph_3_italic_caps: "NO MOM I HAVE TO FINISH THE LEVEL!"
-# why_paragraph_3_suffix: "That's why CodeCombat is a multiplayer game, not a gamified lesson course. We won't stop until you can't stop--but this time, that's a good thing."
-# why_paragraph_4: "If you're going to get addicted to some game, get addicted to this one and become one of the wizards of the tech age."
-# why_ending: "And hey, it's free. "
-# why_ending_url: "Start wizarding now!"
-# george_description: "CEO, business guy, web designer, game designer, and champion of beginning programmers everywhere."
-# scott_description: "Programmer extraordinaire, software architect, kitchen wizard, and master of finances. Scott is the reasonable one."
-# nick_description: "Programming wizard, eccentric motivation mage, and upside-down experimenter. Nick can do anything and chooses to build CodeCombat."
-# jeremy_description: "Customer support mage, usability tester, and community organizer; you've probably already spoken with Jeremy."
-# michael_description: "Programmer, sys-admin, and undergrad technical wunderkind, Michael is the person keeping our servers online."
-# matt_description: "Bicyclist, Software Engineer, reader of heroic fantasy, connoisseur of peanut butter, sipper of coffee."
+# why_paragraph_1: "If you want to learn to program, you don't need lessons. You need to write a lot of code and have a great time doing it."
+# why_paragraph_2_prefix: "That's what programming is about. It's gotta be fun. Not fun like"
+# why_paragraph_2_italic: "yay a badge"
+# why_paragraph_2_center: "but fun like"
+# why_paragraph_2_italic_caps: "NO MOM I HAVE TO FINISH THE LEVEL!"
+# why_paragraph_2_suffix: "That's why CodeCombat is a multiplayer game, not a gamified lesson course. We won't stop until you can't stop--but this time, that's a good thing."
+# why_paragraph_3: "If you're going to get addicted to some game, get addicted to this one and become one of the wizards of the tech age."
+# press_title: "Bloggers/Press"
+# press_paragraph_1_prefix: "Want to write about us? Feel free to download and use all of the resources included in our"
+# press_paragraph_1_link: "press packet"
+# press_paragraph_1_suffix: ". All logos and images may be used without contacting us directly."
+# team: "Team"
+# george_title: "CEO"
+# george_blurb: "Businesser"
+# scott_title: "Programmer"
+# scott_blurb: "Reasonable One"
+# nick_title: "Programmer"
+# nick_blurb: "Motivation Guru"
+# michael_title: "Programmer"
+# michael_blurb: "Sys Admin"
+# matt_title: "Programmer"
+# matt_blurb: "Bicyclist"
# legal:
# page_title: "Legal"
diff --git a/app/locale/ca.coffee b/app/locale/ca.coffee
index 6a30f72a8..729d8d0f4 100644
--- a/app/locale/ca.coffee
+++ b/app/locale/ca.coffee
@@ -79,6 +79,7 @@ module.exports = nativeDescription: "Català", englishDescription: "Catalan", tr
recover:
recover_account_title: "Recuperar Compte"
send_password: "Enviar contrasenya oblidada"
+# recovery_sent: "Recovery email sent."
signup:
create_account_title: "Crear un compte per tal de guardar els progressos"
@@ -557,7 +558,7 @@ module.exports = nativeDescription: "Català", englishDescription: "Catalan", tr
# grassy: "Grassy"
# fork_title: "Fork New Version"
# fork_creating: "Creating Fork..."
-# randomize: "Randomize"
+# generate_terrain: "Generate Terrain"
# more: "More"
# wiki: "Wiki"
# live_chat: "Live Chat"
@@ -567,6 +568,7 @@ module.exports = nativeDescription: "Català", englishDescription: "Catalan", tr
# level_tab_settings: "Settings"
# level_tab_components: "Components"
# level_tab_systems: "Systems"
+# level_tab_docs: "Documentation"
# level_tab_thangs_title: "Current Thangs"
# level_tab_thangs_all: "All"
# level_tab_thangs_conditions: "Starting Conditions"
@@ -642,27 +644,29 @@ module.exports = nativeDescription: "Català", englishDescription: "Catalan", tr
# player: "Player"
# about:
-# who_is_codecombat: "Who is CodeCombat?"
# why_codecombat: "Why CodeCombat?"
-# who_description_prefix: "together started CodeCombat in 2013. We also created "
-# who_description_suffix: "in 2008, growing it to the #1 web and iOS application for learning to write Chinese and Japanese characters."
-# who_description_ending: "Now it's time to teach people to write code."
-# why_paragraph_1: "When making Skritter, George didn't know how to program and was constantly frustrated by his inability to implement his ideas. Afterwards, he tried learning, but the lessons were too slow. His housemate, wanting to reskill and stop teaching, tried Codecademy, but \"got bored.\" Each week another friend started Codecademy, then dropped off. We realized it was the same problem we'd solved with Skritter: people learning a skill via slow, intensive lessons when what they need is fast, extensive practice. We know how to fix that."
-# why_paragraph_2: "Need to learn to code? You don't need lessons. You need to write a lot of code and have a great time doing it."
-# why_paragraph_3_prefix: "That's what programming is about. It's gotta be fun. Not fun like"
-# why_paragraph_3_italic: "yay a badge"
-# why_paragraph_3_center: "but fun like"
-# why_paragraph_3_italic_caps: "NO MOM I HAVE TO FINISH THE LEVEL!"
-# why_paragraph_3_suffix: "That's why CodeCombat is a multiplayer game, not a gamified lesson course. We won't stop until you can't stop--but this time, that's a good thing."
-# why_paragraph_4: "If you're going to get addicted to some game, get addicted to this one and become one of the wizards of the tech age."
-# why_ending: "And hey, it's free. "
-# why_ending_url: "Start wizarding now!"
-# george_description: "CEO, business guy, web designer, game designer, and champion of beginning programmers everywhere."
-# scott_description: "Programmer extraordinaire, software architect, kitchen wizard, and master of finances. Scott is the reasonable one."
-# nick_description: "Programming wizard, eccentric motivation mage, and upside-down experimenter. Nick can do anything and chooses to build CodeCombat."
-# jeremy_description: "Customer support mage, usability tester, and community organizer; you've probably already spoken with Jeremy."
-# michael_description: "Programmer, sys-admin, and undergrad technical wunderkind, Michael is the person keeping our servers online."
-# matt_description: "Bicyclist, Software Engineer, reader of heroic fantasy, connoisseur of peanut butter, sipper of coffee."
+# why_paragraph_1: "If you want to learn to program, you don't need lessons. You need to write a lot of code and have a great time doing it."
+# why_paragraph_2_prefix: "That's what programming is about. It's gotta be fun. Not fun like"
+# why_paragraph_2_italic: "yay a badge"
+# why_paragraph_2_center: "but fun like"
+# why_paragraph_2_italic_caps: "NO MOM I HAVE TO FINISH THE LEVEL!"
+# why_paragraph_2_suffix: "That's why CodeCombat is a multiplayer game, not a gamified lesson course. We won't stop until you can't stop--but this time, that's a good thing."
+# why_paragraph_3: "If you're going to get addicted to some game, get addicted to this one and become one of the wizards of the tech age."
+# press_title: "Bloggers/Press"
+# press_paragraph_1_prefix: "Want to write about us? Feel free to download and use all of the resources included in our"
+# press_paragraph_1_link: "press packet"
+# press_paragraph_1_suffix: ". All logos and images may be used without contacting us directly."
+# team: "Team"
+# george_title: "CEO"
+# george_blurb: "Businesser"
+# scott_title: "Programmer"
+# scott_blurb: "Reasonable One"
+# nick_title: "Programmer"
+# nick_blurb: "Motivation Guru"
+# michael_title: "Programmer"
+# michael_blurb: "Sys Admin"
+# matt_title: "Programmer"
+# matt_blurb: "Bicyclist"
# legal:
# page_title: "Legal"
diff --git a/app/locale/cs.coffee b/app/locale/cs.coffee
index efd3ee7ae..7ebe1352c 100644
--- a/app/locale/cs.coffee
+++ b/app/locale/cs.coffee
@@ -79,6 +79,7 @@ module.exports = nativeDescription: "čeština", englishDescription: "Czech", tr
recover:
recover_account_title: "Obnovení účtu"
send_password: "Zaslat nové heslo"
+# recovery_sent: "Recovery email sent."
signup:
create_account_title: "Vytvořit účet k uložení úrovně"
@@ -557,7 +558,7 @@ module.exports = nativeDescription: "čeština", englishDescription: "Czech", tr
# grassy: "Grassy"
# fork_title: "Fork New Version"
# fork_creating: "Creating Fork..."
-# randomize: "Randomize"
+# generate_terrain: "Generate Terrain"
# more: "More"
# wiki: "Wiki"
# live_chat: "Live Chat"
@@ -567,6 +568,7 @@ module.exports = nativeDescription: "čeština", englishDescription: "Czech", tr
level_tab_settings: "Nastavení"
level_tab_components: "Komponenty"
level_tab_systems: "Systémy"
+# level_tab_docs: "Documentation"
level_tab_thangs_title: "Současné Thangy"
# level_tab_thangs_all: "All"
level_tab_thangs_conditions: "Výchozí prostředí"
@@ -642,27 +644,29 @@ module.exports = nativeDescription: "čeština", englishDescription: "Czech", tr
# player: "Player"
about:
- who_is_codecombat: "Kdo je CodeCombat?"
why_codecombat: "Proč CodeCombat?"
- who_description_prefix: "společně přišli s projektem CodeCombat v roce 2013. V roce 2008 jsme vytvořili také "
- who_description_suffix: ", jedničku mezi webovými a IOS aplikacemi pro učení psaní japonských a čínských znaků."
- who_description_ending: "Nyní nastal čas pomoci lidem s programováním."
- why_paragraph_1: "Při vytváření Skritteru neznal George základy programování a byl neustále frustrován svou neschopností implementovat vlastní nápady. Zkoušel se naučit programovat, ale lekce programování byly na něj příliš pomalé. Jeho spolubydlící se rozhodl o rekvalifikaci a tak zkusil Codeacademy, ale brzy toho nechal s tím, že je to příliš velká nuda. Týden co týden se někdo z Georgových přátel pokoušel využít Codeacademyk učení programování, ale po chvíli odpadl. Uvědomili jsme si, že se jedná o stejný problém, který jsme již vyřešili při tvorbě Skitteru: lidé se pokouší učit na pomalých, intenzivních teoretických lekcích, ale místo toho potřebují rychlé, ale obsáhlé praktické cvičení. A na tento problém známe řešení."
- why_paragraph_2: "Potřebujete se naučit programovat? Pak nepotřebujete lekce, potřebuje příležitost psát spoustu kódu a při tom se u toho dobře bavit."
- why_paragraph_3_prefix: "To je to o čem musí programování být. Ne rádoby zábava typu"
- why_paragraph_3_italic: "hmm, další odznáček"
- why_paragraph_3_center: "ale nadšení typu"
- why_paragraph_3_italic_caps: "POČKEJ MAMI, MUSÍM DOKONČIT ÚROVEŇ!"
- why_paragraph_3_suffix: "Proto je CodeCombat opravdová multiplayer hra, ne lekce kurzu s herními odznáčky. Neskončí, dokud sami nepřestanete, což je tentokrát dobrá věc."
- why_paragraph_4: "A jestli se máte stát závislými na nějaké hře, pak ať je to hra tato, a staňte se díky tomu kouzelníky a odborníky v této technické době."
- why_ending: "A mimochodem - je to zdarma. "
- why_ending_url: "Začněte kouzlit!"
- george_description: "CEO, obchodník, návrhář webů i her a šampión všech začátečníků programování."
- scott_description: "Výtečný programátor, softwarový architekt, kouzelník v kuchyni i pán financí. Scott je v týmu pan rozumný."
- nick_description: "Programátorský kouzelník, excentrický motivační mág i experimentátor. Nick by mohl dělat de-facto cokoliv, ale zvolil si vytvořit CodeCombat."
- jeremy_description: "Mistr zákaznické podpory, tester použitelnosti a organizátor komunity. Je velmi pravděpodobné, že jste si spolu již psali."
- michael_description: "Programátor, systémový administrátor a král podsvětí technického zázemí. Michael udržuje naše servery online."
-# matt_description: "Bicyclist, Software Engineer, reader of heroic fantasy, connoisseur of peanut butter, sipper of coffee."
+ why_paragraph_1: "Potřebujete se naučit programovat? Pak nepotřebujete lekce, potřebuje příležitost psát spoustu kódu a při tom se u toho dobře bavit."
+ why_paragraph_2_prefix: "To je to o čem musí programování být. Ne rádoby zábava typu"
+ why_paragraph_2_italic: "hmm, další odznáček"
+ why_paragraph_2_center: "ale nadšení typu"
+ why_paragraph_2_italic_caps: "POČKEJ MAMI, MUSÍM DOKONČIT ÚROVEŇ!"
+ why_paragraph_2_suffix: "Proto je CodeCombat opravdová multiplayer hra, ne lekce kurzu s herními odznáčky. Neskončí, dokud sami nepřestanete, což je tentokrát dobrá věc."
+ why_paragraph_3: "A jestli se máte stát závislými na nějaké hře, pak ať je to hra tato, a staňte se díky tomu kouzelníky a odborníky v této technické době."
+# press_title: "Bloggers/Press"
+# press_paragraph_1_prefix: "Want to write about us? Feel free to download and use all of the resources included in our"
+# press_paragraph_1_link: "press packet"
+# press_paragraph_1_suffix: ". All logos and images may be used without contacting us directly."
+# team: "Team"
+# george_title: "CEO"
+# george_blurb: "Businesser"
+# scott_title: "Programmer"
+# scott_blurb: "Reasonable One"
+# nick_title: "Programmer"
+# nick_blurb: "Motivation Guru"
+# michael_title: "Programmer"
+# michael_blurb: "Sys Admin"
+# matt_title: "Programmer"
+# matt_blurb: "Bicyclist"
legal:
page_title: "Licence"
diff --git a/app/locale/da.coffee b/app/locale/da.coffee
index 69640ab50..acd7b89b7 100644
--- a/app/locale/da.coffee
+++ b/app/locale/da.coffee
@@ -79,6 +79,7 @@ module.exports = nativeDescription: "dansk", englishDescription: "Danish", trans
recover:
recover_account_title: "genskab konto"
send_password: "Send kodeord"
+# recovery_sent: "Recovery email sent."
signup:
create_account_title: "Opret en konto for at gemme dit fremskridt"
@@ -557,7 +558,7 @@ module.exports = nativeDescription: "dansk", englishDescription: "Danish", trans
# grassy: "Grassy"
# fork_title: "Fork New Version"
# fork_creating: "Creating Fork..."
-# randomize: "Randomize"
+# generate_terrain: "Generate Terrain"
# more: "More"
# wiki: "Wiki"
# live_chat: "Live Chat"
@@ -567,6 +568,7 @@ module.exports = nativeDescription: "dansk", englishDescription: "Danish", trans
level_tab_settings: "Instillinger"
level_tab_components: "Komponenter"
level_tab_systems: "Systemer"
+# level_tab_docs: "Documentation"
# level_tab_thangs_title: "Current Thangs"
# level_tab_thangs_all: "All"
level_tab_thangs_conditions: "Startbetingelser"
@@ -642,27 +644,29 @@ module.exports = nativeDescription: "dansk", englishDescription: "Danish", trans
# player: "Player"
about:
- who_is_codecombat: "Hvem er CodeCombat?"
why_codecombat: "Hvorfor CodeCombat?"
-# who_description_prefix: "together started CodeCombat in 2013. We also created "
-# who_description_suffix: "in 2008, growing it to the #1 web and iOS application for learning to write Chinese and Japanese characters."
-# who_description_ending: "Now it's time to teach people to write code."
-# why_paragraph_1: "When making Skritter, George didn't know how to program and was constantly frustrated by his inability to implement his ideas. Afterwards, he tried learning, but the lessons were too slow. His housemate, wanting to reskill and stop teaching, tried Codecademy, but \"got bored.\" Each week another friend started Codecademy, then dropped off. We realized it was the same problem we'd solved with Skritter: people learning a skill via slow, intensive lessons when what they need is fast, extensive practice. We know how to fix that."
-# why_paragraph_2: "Need to learn to code? You don't need lessons. You need to write a lot of code and have a great time doing it."
-# why_paragraph_3_prefix: "That's what programming is about. It's gotta be fun. Not fun like"
-# why_paragraph_3_italic: "yay a badge"
-# why_paragraph_3_center: "but fun like"
-# why_paragraph_3_italic_caps: "NO MOM I HAVE TO FINISH THE LEVEL!"
-# why_paragraph_3_suffix: "That's why CodeCombat is a multiplayer game, not a gamified lesson course. We won't stop until you can't stop--but this time, that's a good thing."
-# why_paragraph_4: "If you're going to get addicted to some game, get addicted to this one and become one of the wizards of the tech age."
- why_ending: "Og det er ovenikøbet gratis."
-# why_ending_url: "Start wizarding now!"
-# george_description: "CEO, business guy, web designer, game designer, and champion of beginning programmers everywhere."
-# scott_description: "Programmer extraordinaire, software architect, kitchen wizard, and master of finances. Scott is the reasonable one."
-# nick_description: "Programming wizard, eccentric motivation mage, and upside-down experimenter. Nick can do anything and chooses to build CodeCombat."
-# jeremy_description: "Customer support mage, usability tester, and community organizer; you've probably already spoken with Jeremy."
-# michael_description: "Programmer, sys-admin, and undergrad technical wunderkind, Michael is the person keeping our servers online."
-# matt_description: "Bicyclist, Software Engineer, reader of heroic fantasy, connoisseur of peanut butter, sipper of coffee."
+# why_paragraph_1: "If you want to learn to program, you don't need lessons. You need to write a lot of code and have a great time doing it."
+# why_paragraph_2_prefix: "That's what programming is about. It's gotta be fun. Not fun like"
+# why_paragraph_2_italic: "yay a badge"
+# why_paragraph_2_center: "but fun like"
+# why_paragraph_2_italic_caps: "NO MOM I HAVE TO FINISH THE LEVEL!"
+# why_paragraph_2_suffix: "That's why CodeCombat is a multiplayer game, not a gamified lesson course. We won't stop until you can't stop--but this time, that's a good thing."
+# why_paragraph_3: "If you're going to get addicted to some game, get addicted to this one and become one of the wizards of the tech age."
+# press_title: "Bloggers/Press"
+# press_paragraph_1_prefix: "Want to write about us? Feel free to download and use all of the resources included in our"
+# press_paragraph_1_link: "press packet"
+# press_paragraph_1_suffix: ". All logos and images may be used without contacting us directly."
+# team: "Team"
+# george_title: "CEO"
+# george_blurb: "Businesser"
+# scott_title: "Programmer"
+# scott_blurb: "Reasonable One"
+# nick_title: "Programmer"
+# nick_blurb: "Motivation Guru"
+# michael_title: "Programmer"
+# michael_blurb: "Sys Admin"
+# matt_title: "Programmer"
+# matt_blurb: "Bicyclist"
# legal:
# page_title: "Legal"
diff --git a/app/locale/de-AT.coffee b/app/locale/de-AT.coffee
index 7d934f8a8..7822a8dd5 100644
--- a/app/locale/de-AT.coffee
+++ b/app/locale/de-AT.coffee
@@ -79,6 +79,7 @@ module.exports = nativeDescription: "Deutsch (Österreich)", englishDescription:
recover:
recover_account_title: "Account Wiederherstellung"
send_password: "Wiederherstellungskennwort senden"
+# recovery_sent: "Recovery email sent."
signup:
create_account_title: "Account anlegen, um Fortschritt zu speichern"
@@ -557,7 +558,7 @@ module.exports = nativeDescription: "Deutsch (Österreich)", englishDescription:
# grassy: "Grassy"
fork_title: "Forke neue Version"
fork_creating: "Erzeuge Fork..."
-# randomize: "Randomize"
+# generate_terrain: "Generate Terrain"
more: "Mehr"
wiki: "Wiki"
live_chat: "Live Chat"
@@ -567,6 +568,7 @@ module.exports = nativeDescription: "Deutsch (Österreich)", englishDescription:
level_tab_settings: "Einstellungen"
level_tab_components: "Komponenten"
level_tab_systems: "Systeme"
+# level_tab_docs: "Documentation"
level_tab_thangs_title: "Aktuelle Thangs"
level_tab_thangs_all: "Alle"
level_tab_thangs_conditions: "Startbedingungen"
@@ -642,27 +644,29 @@ module.exports = nativeDescription: "Deutsch (Österreich)", englishDescription:
player: "Spieler"
about:
- who_is_codecombat: "Wer ist CodeCombat?"
why_codecombat: "Warum CodeCombat?"
- who_description_prefix: "gründeten CodeCombat im Jahre 2013 zusammen. Wir entwickelten außerdem "
- who_description_suffix: ", die meist benutzte (#1) Web and iOS Applikation 2008 zum Lernen des Schreibens von chinesischen und japanischen Schriftzeichen."
- who_description_ending: "Nun ist es an der Zeit, den Leuten das Programmieren beizubringen."
- why_paragraph_1: "Als er Skritter machte, wusste George nicht wie man programmiert und war permanent darüber frustriert, dass er seine Ideen nicht umsetzen konnte. Danach versuchte er es zu lernen, aber das ging ihm zu langsam. Sein Mitbewohner versuchte Codecademy, als er sich umorientierte und aufhörte zu lehren, aber \"langweilte sich\". Jede Woche begann ein neuer Freund mit Codecademy und ließ es dann wieder bleiben. Wir erkannten, dass es das gleiche Problem war, welches wir mit Skritter gelöst hatten: Leute lernen eine Fähigkeit mittels langsamer, intersiver Lerneinheiten, wobei sie schnelle, umfassende Übung bräuchten. Wir kennen Abhilfe."
- why_paragraph_2: "Programmieren lernen? Du brauchst keine Stunden. Du musst einen Haufen Code schreiben und dabei Spaß haben."
- why_paragraph_3_prefix: "Darum geht's beim Programmieren. Es soll Spaß machen. Nicht so einen Spaß wie"
- why_paragraph_3_italic: "jau, 'ne Plakette"
- why_paragraph_3_center: "sondern Spaß wie"
- why_paragraph_3_italic_caps: "NEIN MUTTI ICH MUSS NOCH DEN LEVEL BEENDEN !"
- why_paragraph_3_suffix: "Deshalb ist CodeCombat ein Multiplayerspiel und kein spielähnlicher Kurs. Wir werden nicht aufhören bis du nicht mehr aufhören kannst -- nur diesmal ist das eine gute Sache."
- why_paragraph_4: "Wenn dich Spiele süchtig machen, dass lass dich von diesem süchtig machen und werde ein Zauberer des Technologiezeitalters."
- why_ending: "Und hey, es kostet nichts. "
- why_ending_url: "Beginne jetzt zu zaubern!"
- george_description: "CEO, Businesstyp, Web Designer, Game Designer und Champion der Programmieranfänger überall."
- scott_description: "Außergewöhnlicher Programmierer, Softwarearchitekt, Küchenzauberer und Finanzmeister. Scott ist der Vernünftige."
- nick_description: "Programmierzauberer, exzentrischer Motivationskünstler und Auf-den-Kopf-stell-Experimentierer. Nick könnte alles mögliche tun und entschied CodeCombat zu bauen."
- jeremy_description: "Kundendienstmagier, Usability Tester und Community-Organisator. Wahrscheinlich hast du schon mit Jeremy gesprochen."
- michael_description: "Programmierer, Systemadministrator und studentisch technisches Wunderkind, Michael hält unsere Server am Laufen."
-# matt_description: "Bicyclist, Software Engineer, reader of heroic fantasy, connoisseur of peanut butter, sipper of coffee."
+ why_paragraph_1: "Programmieren lernen? Du brauchst keine Stunden. Du musst einen Haufen Code schreiben und dabei Spaß haben."
+ why_paragraph_2_prefix: "Darum geht's beim Programmieren. Es soll Spaß machen. Nicht so einen Spaß wie"
+ why_paragraph_2_italic: "jau, 'ne Plakette"
+ why_paragraph_2_center: "sondern Spaß wie"
+ why_paragraph_2_italic_caps: "NEIN MUTTI ICH MUSS NOCH DEN LEVEL BEENDEN !"
+ why_paragraph_2_suffix: "Deshalb ist CodeCombat ein Multiplayerspiel und kein spielähnlicher Kurs. Wir werden nicht aufhören bis du nicht mehr aufhören kannst -- nur diesmal ist das eine gute Sache."
+ why_paragraph_3: "Wenn dich Spiele süchtig machen, dass lass dich von diesem süchtig machen und werde ein Zauberer des Technologiezeitalters."
+# press_title: "Bloggers/Press"
+# press_paragraph_1_prefix: "Want to write about us? Feel free to download and use all of the resources included in our"
+# press_paragraph_1_link: "press packet"
+# press_paragraph_1_suffix: ". All logos and images may be used without contacting us directly."
+# team: "Team"
+# george_title: "CEO"
+# george_blurb: "Businesser"
+# scott_title: "Programmer"
+# scott_blurb: "Reasonable One"
+# nick_title: "Programmer"
+# nick_blurb: "Motivation Guru"
+# michael_title: "Programmer"
+# michael_blurb: "Sys Admin"
+# matt_title: "Programmer"
+# matt_blurb: "Bicyclist"
legal:
page_title: "Rechtliches"
diff --git a/app/locale/de-CH.coffee b/app/locale/de-CH.coffee
index 1544bf85a..0453fb142 100644
--- a/app/locale/de-CH.coffee
+++ b/app/locale/de-CH.coffee
@@ -79,6 +79,7 @@ module.exports = nativeDescription: "Deutsch (Schweiz)", englishDescription: "Ge
recover:
recover_account_title: "Account wiederherstelle"
send_password: "Recovery Password sende"
+# recovery_sent: "Recovery email sent."
signup:
create_account_title: "Erstell en Account zum din Fortschritt speichere"
@@ -557,7 +558,7 @@ module.exports = nativeDescription: "Deutsch (Schweiz)", englishDescription: "Ge
# grassy: "Grassy"
# fork_title: "Fork New Version"
# fork_creating: "Creating Fork..."
-# randomize: "Randomize"
+# generate_terrain: "Generate Terrain"
# more: "More"
# wiki: "Wiki"
# live_chat: "Live Chat"
@@ -567,6 +568,7 @@ module.exports = nativeDescription: "Deutsch (Schweiz)", englishDescription: "Ge
# level_tab_settings: "Settings"
# level_tab_components: "Components"
# level_tab_systems: "Systems"
+# level_tab_docs: "Documentation"
# level_tab_thangs_title: "Current Thangs"
# level_tab_thangs_all: "All"
# level_tab_thangs_conditions: "Starting Conditions"
@@ -642,27 +644,29 @@ module.exports = nativeDescription: "Deutsch (Schweiz)", englishDescription: "Ge
# player: "Player"
about:
- who_is_codecombat: "Wer isch CodeCombat?"
why_codecombat: "Warum CodeCombat?"
- who_description_prefix: "hend im 2013 zeme CodeCombat gstartet. Mir hend au "
- who_description_suffix: "im 2008 kreiert und drufabe isches zur Nummer 1 Web und iOS App zum Chinesischi und Japanischi Charakter schriibe worde."
- who_description_ending: "Ez isches Ziit zum de Mensche biibringe wie sie Code schriibed."
- why_paragraph_1: "Womer Skritter gmacht hend, het de George nid gwüsst wiemer programmiert und isch dauernd gfrustet gsi, will er unfähig gsi isch, sini Ideä z implementiere. Spöter het er probiert zums lerne, aber d Lektione sind z langsam gsi. Sin Mitbewohner, wo het wöle sini Fähigkeite uffrische und ufhöre sie öpperem biizbringe, het Codecademy probiert, aber ihm isch \"langwiilig worde\". Jedi Wuche het en andere Fründ agfange mit Codecademy und het wieder ufghört. Mir hend realisiert, dass es s gliiche Problem isch, wo mir mit Skitter glöst gha hend: Lüüt, wo öppis mit langsame, intensive Lektione lerned, obwohl sie schnelli, umfangriichi Üebig bruuched. Mir wüssed, wie mer das behebe."
- why_paragraph_2: "Du muesch Programmiere lerne? Du bruchsch kei Lektione. Wa du bruuchsch, isch ganz viel Code schriibe und viel Spass ha, während du das machsch."
- why_paragraph_3_prefix: "Um da gohts bim Programmiere. Es mues Spass mache. Nid Spass wie"
- why_paragraph_3_italic: "wuhu en Badge"
- why_paragraph_3_center: "eher Spass wie"
- why_paragraph_3_italic_caps: "NEI MAMI, ICH MUES DAS LEVEL NO FERTIG MACHE!"
- why_paragraph_3_suffix: "Darum isch CodeCombat es Multiplayer Spiel, nid en gamifizierte Kurs mit Lektione. Mir stopped nid, bis du nümm chasch stoppe--aber damol isch da öppis guets."
- why_paragraph_4: "Wenn du süchtig wirsch nochme Spiel, wird süchtig noch dem Spiel und wird eine vo de Zauberer vom Tech-Ziitalter."
- why_ending: "Und hey, es isch gratis. "
- why_ending_url: "Fang ez a zaubere!"
- george_description: "CEO, Business-Typ, Web Designer, Game Designer und de Held für d Programmierafänger uf de ganze Welt."
- scott_description: "Programmierer extraordinaire, Software Architekt, Chuchi-Zauberer und de Meister vo de Finanze. De Scott isch de Vernünftig unter üs."
- nick_description: "Programmier-Zauberer, exzentrische Motivations-Magier und Chopfüber-Experimentierer. De Nick chönti alles mache und het sich entschiede zum CodeCombat baue."
- jeremy_description: "Kundesupport-Magier, Usability Tester und Community-Organisator; du hesch worschinli scho mitem Jeremy gredet."
- michael_description: "Programmierer, Systemadmin und es technisches Wunderchind ohni Studium. Michael isch die Person wo üsi Server am Laufe bhaltet."
-# matt_description: "Bicyclist, Software Engineer, reader of heroic fantasy, connoisseur of peanut butter, sipper of coffee."
+ why_paragraph_1: "Du muesch Programmiere lerne? Du bruchsch kei Lektione. Wa du bruuchsch, isch ganz viel Code schriibe und viel Spass ha, während du das machsch."
+ why_paragraph_2_prefix: "Um da gohts bim Programmiere. Es mues Spass mache. Nid Spass wie"
+ why_paragraph_2_italic: "wuhu en Badge"
+ why_paragraph_2_center: "eher Spass wie"
+ why_paragraph_2_italic_caps: "NEI MAMI, ICH MUES DAS LEVEL NO FERTIG MACHE!"
+ why_paragraph_2_suffix: "Darum isch CodeCombat es Multiplayer Spiel, nid en gamifizierte Kurs mit Lektione. Mir stopped nid, bis du nümm chasch stoppe--aber damol isch da öppis guets."
+ why_paragraph_3: "Wenn du süchtig wirsch nochme Spiel, wird süchtig noch dem Spiel und wird eine vo de Zauberer vom Tech-Ziitalter."
+# press_title: "Bloggers/Press"
+# press_paragraph_1_prefix: "Want to write about us? Feel free to download and use all of the resources included in our"
+# press_paragraph_1_link: "press packet"
+# press_paragraph_1_suffix: ". All logos and images may be used without contacting us directly."
+# team: "Team"
+# george_title: "CEO"
+# george_blurb: "Businesser"
+# scott_title: "Programmer"
+# scott_blurb: "Reasonable One"
+# nick_title: "Programmer"
+# nick_blurb: "Motivation Guru"
+# michael_title: "Programmer"
+# michael_blurb: "Sys Admin"
+# matt_title: "Programmer"
+# matt_blurb: "Bicyclist"
legal:
page_title: "Rechtlichs"
diff --git a/app/locale/de-DE.coffee b/app/locale/de-DE.coffee
index 5046d545e..5c5d3691c 100644
--- a/app/locale/de-DE.coffee
+++ b/app/locale/de-DE.coffee
@@ -79,6 +79,7 @@ module.exports = nativeDescription: "Deutsch (Deutschland)", englishDescription:
recover:
recover_account_title: "Account Wiederherstellung"
send_password: "Wiederherstellungskennwort senden"
+# recovery_sent: "Recovery email sent."
signup:
create_account_title: "Account anlegen, um Fortschritt zu speichern"
@@ -557,7 +558,7 @@ module.exports = nativeDescription: "Deutsch (Deutschland)", englishDescription:
# grassy: "Grassy"
fork_title: "Forke neue Version"
fork_creating: "Erzeuge Fork..."
-# randomize: "Randomize"
+# generate_terrain: "Generate Terrain"
more: "Mehr"
wiki: "Wiki"
live_chat: "Live Chat"
@@ -567,6 +568,7 @@ module.exports = nativeDescription: "Deutsch (Deutschland)", englishDescription:
level_tab_settings: "Einstellungen"
level_tab_components: "Komponenten"
level_tab_systems: "Systeme"
+# level_tab_docs: "Documentation"
level_tab_thangs_title: "Aktuelle Thangs"
level_tab_thangs_all: "Alle"
level_tab_thangs_conditions: "Startbedingungen"
@@ -642,27 +644,29 @@ module.exports = nativeDescription: "Deutsch (Deutschland)", englishDescription:
player: "Spieler"
about:
- who_is_codecombat: "Wer ist CodeCombat?"
why_codecombat: "Warum CodeCombat?"
- who_description_prefix: "gründeten CodeCombat im Jahre 2013 zusammen. Wir entwickelten außerdem "
- who_description_suffix: ", die meist benutzte (#1) Web and iOS Applikation 2008 zum Lernen des Schreibens von chinesischen und japanischen Schriftzeichen."
- who_description_ending: "Nun ist es an der Zeit, den Leuten das Programmieren beizubringen."
- why_paragraph_1: "Als er Skritter machte, wusste George nicht wie man programmiert und war permanent darüber frustriert, dass er seine Ideen nicht umsetzen konnte. Danach versuchte er es zu lernen, aber das ging ihm zu langsam. Sein Mitbewohner versuchte Codecademy, als er sich umorientierte und aufhörte zu lehren, aber \"langweilte sich\". Jede Woche begann ein neuer Freund mit Codecademy und ließ es dann wieder bleiben. Wir erkannten, dass es das gleiche Problem war, welches wir mit Skritter gelöst hatten: Leute lernen eine Fähigkeit mittels langsamer, intersiver Lerneinheiten, wobei sie schnelle, umfassende Übung bräuchten. Wir kennen Abhilfe."
- why_paragraph_2: "Programmieren lernen? Du brauchst keine Stunden. Du musst einen Haufen Code schreiben und dabei Spaß haben."
- why_paragraph_3_prefix: "Darum geht's beim Programmieren. Es soll Spaß machen. Nicht so einen Spaß wie"
- why_paragraph_3_italic: "jau, 'ne Plakette"
- why_paragraph_3_center: "sondern Spaß wie"
- why_paragraph_3_italic_caps: "NEIN MUTTI ICH MUSS NOCH DEN LEVEL BEENDEN !"
- why_paragraph_3_suffix: "Deshalb ist CodeCombat ein Multiplayerspiel und kein spielähnlicher Kurs. Wir werden nicht aufhören bis du nicht mehr aufhören kannst -- nur diesmal ist das eine gute Sache."
- why_paragraph_4: "Wenn dich Spiele süchtig machen, dass lass dich von diesem süchtig machen und werde ein Zauberer des Technologiezeitalters."
- why_ending: "Und hey, es kostet nichts. "
- why_ending_url: "Beginne jetzt zu zaubern!"
- george_description: "CEO, Businesstyp, Web Designer, Game Designer und Champion der Programmieranfänger überall."
- scott_description: "Außergewöhnlicher Programmierer, Softwarearchitekt, Küchenzauberer und Finanzmeister. Scott ist der Vernünftige."
- nick_description: "Programmierzauberer, exzentrischer Motivationskünstler und Auf-den-Kopf-stell-Experimentierer. Nick könnte alles mögliche tun und entschied CodeCombat zu bauen."
- jeremy_description: "Kundendienstmagier, Usability Tester und Community-Organisator. Wahrscheinlich hast du schon mit Jeremy gesprochen."
- michael_description: "Programmierer, Systemadministrator und studentisch technisches Wunderkind, Michael hält unsere Server am Laufen."
-# matt_description: "Bicyclist, Software Engineer, reader of heroic fantasy, connoisseur of peanut butter, sipper of coffee."
+ why_paragraph_1: "Programmieren lernen? Du brauchst keine Stunden. Du musst einen Haufen Code schreiben und dabei Spaß haben."
+ why_paragraph_2_prefix: "Darum geht's beim Programmieren. Es soll Spaß machen. Nicht so einen Spaß wie"
+ why_paragraph_2_italic: "jau, 'ne Plakette"
+ why_paragraph_2_center: "sondern Spaß wie"
+ why_paragraph_2_italic_caps: "NEIN MUTTI ICH MUSS NOCH DEN LEVEL BEENDEN !"
+ why_paragraph_2_suffix: "Deshalb ist CodeCombat ein Multiplayerspiel und kein spielähnlicher Kurs. Wir werden nicht aufhören bis du nicht mehr aufhören kannst -- nur diesmal ist das eine gute Sache."
+ why_paragraph_3: "Wenn dich Spiele süchtig machen, dass lass dich von diesem süchtig machen und werde ein Zauberer des Technologiezeitalters."
+# press_title: "Bloggers/Press"
+# press_paragraph_1_prefix: "Want to write about us? Feel free to download and use all of the resources included in our"
+# press_paragraph_1_link: "press packet"
+# press_paragraph_1_suffix: ". All logos and images may be used without contacting us directly."
+# team: "Team"
+# george_title: "CEO"
+# george_blurb: "Businesser"
+# scott_title: "Programmer"
+# scott_blurb: "Reasonable One"
+# nick_title: "Programmer"
+# nick_blurb: "Motivation Guru"
+# michael_title: "Programmer"
+# michael_blurb: "Sys Admin"
+# matt_title: "Programmer"
+# matt_blurb: "Bicyclist"
legal:
page_title: "Rechtliches"
diff --git a/app/locale/el.coffee b/app/locale/el.coffee
index f98e92e8b..154ba1ed7 100644
--- a/app/locale/el.coffee
+++ b/app/locale/el.coffee
@@ -79,6 +79,7 @@ module.exports = nativeDescription: "ελληνικά", englishDescription: "Gre
recover:
recover_account_title: "Κάντε ανάκτηση του λογαριασμού σας"
send_password: "Αποστολή κωδικού ανάκτησης"
+# recovery_sent: "Recovery email sent."
signup:
create_account_title: "Δημιουργία λογαριασμού για αποθήκευση της προόδου"
@@ -557,7 +558,7 @@ module.exports = nativeDescription: "ελληνικά", englishDescription: "Gre
# grassy: "Grassy"
# fork_title: "Fork New Version"
# fork_creating: "Creating Fork..."
-# randomize: "Randomize"
+# generate_terrain: "Generate Terrain"
# more: "More"
# wiki: "Wiki"
# live_chat: "Live Chat"
@@ -567,6 +568,7 @@ module.exports = nativeDescription: "ελληνικά", englishDescription: "Gre
# level_tab_settings: "Settings"
# level_tab_components: "Components"
# level_tab_systems: "Systems"
+# level_tab_docs: "Documentation"
# level_tab_thangs_title: "Current Thangs"
# level_tab_thangs_all: "All"
# level_tab_thangs_conditions: "Starting Conditions"
@@ -642,27 +644,29 @@ module.exports = nativeDescription: "ελληνικά", englishDescription: "Gre
player: "Παίκτης"
# about:
-# who_is_codecombat: "Who is CodeCombat?"
# why_codecombat: "Why CodeCombat?"
-# who_description_prefix: "together started CodeCombat in 2013. We also created "
-# who_description_suffix: "in 2008, growing it to the #1 web and iOS application for learning to write Chinese and Japanese characters."
-# who_description_ending: "Now it's time to teach people to write code."
-# why_paragraph_1: "When making Skritter, George didn't know how to program and was constantly frustrated by his inability to implement his ideas. Afterwards, he tried learning, but the lessons were too slow. His housemate, wanting to reskill and stop teaching, tried Codecademy, but \"got bored.\" Each week another friend started Codecademy, then dropped off. We realized it was the same problem we'd solved with Skritter: people learning a skill via slow, intensive lessons when what they need is fast, extensive practice. We know how to fix that."
-# why_paragraph_2: "Need to learn to code? You don't need lessons. You need to write a lot of code and have a great time doing it."
-# why_paragraph_3_prefix: "That's what programming is about. It's gotta be fun. Not fun like"
-# why_paragraph_3_italic: "yay a badge"
-# why_paragraph_3_center: "but fun like"
-# why_paragraph_3_italic_caps: "NO MOM I HAVE TO FINISH THE LEVEL!"
-# why_paragraph_3_suffix: "That's why CodeCombat is a multiplayer game, not a gamified lesson course. We won't stop until you can't stop--but this time, that's a good thing."
-# why_paragraph_4: "If you're going to get addicted to some game, get addicted to this one and become one of the wizards of the tech age."
-# why_ending: "And hey, it's free. "
-# why_ending_url: "Start wizarding now!"
-# george_description: "CEO, business guy, web designer, game designer, and champion of beginning programmers everywhere."
-# scott_description: "Programmer extraordinaire, software architect, kitchen wizard, and master of finances. Scott is the reasonable one."
-# nick_description: "Programming wizard, eccentric motivation mage, and upside-down experimenter. Nick can do anything and chooses to build CodeCombat."
-# jeremy_description: "Customer support mage, usability tester, and community organizer; you've probably already spoken with Jeremy."
-# michael_description: "Programmer, sys-admin, and undergrad technical wunderkind, Michael is the person keeping our servers online."
-# matt_description: "Bicyclist, Software Engineer, reader of heroic fantasy, connoisseur of peanut butter, sipper of coffee."
+# why_paragraph_1: "If you want to learn to program, you don't need lessons. You need to write a lot of code and have a great time doing it."
+# why_paragraph_2_prefix: "That's what programming is about. It's gotta be fun. Not fun like"
+# why_paragraph_2_italic: "yay a badge"
+# why_paragraph_2_center: "but fun like"
+# why_paragraph_2_italic_caps: "NO MOM I HAVE TO FINISH THE LEVEL!"
+# why_paragraph_2_suffix: "That's why CodeCombat is a multiplayer game, not a gamified lesson course. We won't stop until you can't stop--but this time, that's a good thing."
+# why_paragraph_3: "If you're going to get addicted to some game, get addicted to this one and become one of the wizards of the tech age."
+# press_title: "Bloggers/Press"
+# press_paragraph_1_prefix: "Want to write about us? Feel free to download and use all of the resources included in our"
+# press_paragraph_1_link: "press packet"
+# press_paragraph_1_suffix: ". All logos and images may be used without contacting us directly."
+# team: "Team"
+# george_title: "CEO"
+# george_blurb: "Businesser"
+# scott_title: "Programmer"
+# scott_blurb: "Reasonable One"
+# nick_title: "Programmer"
+# nick_blurb: "Motivation Guru"
+# michael_title: "Programmer"
+# michael_blurb: "Sys Admin"
+# matt_title: "Programmer"
+# matt_blurb: "Bicyclist"
# legal:
# page_title: "Legal"
diff --git a/app/locale/en-AU.coffee b/app/locale/en-AU.coffee
index 0435f05b4..1bb9e13d6 100644
--- a/app/locale/en-AU.coffee
+++ b/app/locale/en-AU.coffee
@@ -79,6 +79,7 @@ module.exports = nativeDescription: "English (AU)", englishDescription: "English
# recover:
# recover_account_title: "Recover Account"
# send_password: "Send Recovery Password"
+# recovery_sent: "Recovery email sent."
# signup:
# create_account_title: "Create Account to Save Progress"
@@ -557,7 +558,7 @@ module.exports = nativeDescription: "English (AU)", englishDescription: "English
# grassy: "Grassy"
# fork_title: "Fork New Version"
# fork_creating: "Creating Fork..."
-# randomize: "Randomize"
+# generate_terrain: "Generate Terrain"
# more: "More"
# wiki: "Wiki"
# live_chat: "Live Chat"
@@ -567,6 +568,7 @@ module.exports = nativeDescription: "English (AU)", englishDescription: "English
# level_tab_settings: "Settings"
# level_tab_components: "Components"
# level_tab_systems: "Systems"
+# level_tab_docs: "Documentation"
# level_tab_thangs_title: "Current Thangs"
# level_tab_thangs_all: "All"
# level_tab_thangs_conditions: "Starting Conditions"
@@ -642,27 +644,29 @@ module.exports = nativeDescription: "English (AU)", englishDescription: "English
# player: "Player"
# about:
-# who_is_codecombat: "Who is CodeCombat?"
# why_codecombat: "Why CodeCombat?"
-# who_description_prefix: "together started CodeCombat in 2013. We also created "
-# who_description_suffix: "in 2008, growing it to the #1 web and iOS application for learning to write Chinese and Japanese characters."
-# who_description_ending: "Now it's time to teach people to write code."
-# why_paragraph_1: "When making Skritter, George didn't know how to program and was constantly frustrated by his inability to implement his ideas. Afterwards, he tried learning, but the lessons were too slow. His housemate, wanting to reskill and stop teaching, tried Codecademy, but \"got bored.\" Each week another friend started Codecademy, then dropped off. We realized it was the same problem we'd solved with Skritter: people learning a skill via slow, intensive lessons when what they need is fast, extensive practice. We know how to fix that."
-# why_paragraph_2: "Need to learn to code? You don't need lessons. You need to write a lot of code and have a great time doing it."
-# why_paragraph_3_prefix: "That's what programming is about. It's gotta be fun. Not fun like"
-# why_paragraph_3_italic: "yay a badge"
-# why_paragraph_3_center: "but fun like"
-# why_paragraph_3_italic_caps: "NO MOM I HAVE TO FINISH THE LEVEL!"
-# why_paragraph_3_suffix: "That's why CodeCombat is a multiplayer game, not a gamified lesson course. We won't stop until you can't stop--but this time, that's a good thing."
-# why_paragraph_4: "If you're going to get addicted to some game, get addicted to this one and become one of the wizards of the tech age."
-# why_ending: "And hey, it's free. "
-# why_ending_url: "Start wizarding now!"
-# george_description: "CEO, business guy, web designer, game designer, and champion of beginning programmers everywhere."
-# scott_description: "Programmer extraordinaire, software architect, kitchen wizard, and master of finances. Scott is the reasonable one."
-# nick_description: "Programming wizard, eccentric motivation mage, and upside-down experimenter. Nick can do anything and chooses to build CodeCombat."
-# jeremy_description: "Customer support mage, usability tester, and community organizer; you've probably already spoken with Jeremy."
-# michael_description: "Programmer, sys-admin, and undergrad technical wunderkind, Michael is the person keeping our servers online."
-# matt_description: "Bicyclist, Software Engineer, reader of heroic fantasy, connoisseur of peanut butter, sipper of coffee."
+# why_paragraph_1: "If you want to learn to program, you don't need lessons. You need to write a lot of code and have a great time doing it."
+# why_paragraph_2_prefix: "That's what programming is about. It's gotta be fun. Not fun like"
+# why_paragraph_2_italic: "yay a badge"
+# why_paragraph_2_center: "but fun like"
+# why_paragraph_2_italic_caps: "NO MOM I HAVE TO FINISH THE LEVEL!"
+# why_paragraph_2_suffix: "That's why CodeCombat is a multiplayer game, not a gamified lesson course. We won't stop until you can't stop--but this time, that's a good thing."
+# why_paragraph_3: "If you're going to get addicted to some game, get addicted to this one and become one of the wizards of the tech age."
+# press_title: "Bloggers/Press"
+# press_paragraph_1_prefix: "Want to write about us? Feel free to download and use all of the resources included in our"
+# press_paragraph_1_link: "press packet"
+# press_paragraph_1_suffix: ". All logos and images may be used without contacting us directly."
+# team: "Team"
+# george_title: "CEO"
+# george_blurb: "Businesser"
+# scott_title: "Programmer"
+# scott_blurb: "Reasonable One"
+# nick_title: "Programmer"
+# nick_blurb: "Motivation Guru"
+# michael_title: "Programmer"
+# michael_blurb: "Sys Admin"
+# matt_title: "Programmer"
+# matt_blurb: "Bicyclist"
# legal:
# page_title: "Legal"
diff --git a/app/locale/en-GB.coffee b/app/locale/en-GB.coffee
index 18cea4ed4..f03044905 100644
--- a/app/locale/en-GB.coffee
+++ b/app/locale/en-GB.coffee
@@ -79,6 +79,7 @@ module.exports = nativeDescription: "English (UK)", englishDescription: "English
# recover:
# recover_account_title: "Recover Account"
# send_password: "Send Recovery Password"
+# recovery_sent: "Recovery email sent."
# signup:
# create_account_title: "Create Account to Save Progress"
@@ -543,7 +544,7 @@ module.exports = nativeDescription: "English (UK)", englishDescription: "English
# find_us: "Find us on these sites"
# contribute_to_the_project: "Contribute to the project"
- editor:
+# editor:
# main_title: "CodeCombat Editors"
# article_title: "Article Editor"
# thang_title: "Thang Editor"
@@ -557,7 +558,7 @@ module.exports = nativeDescription: "English (UK)", englishDescription: "English
# grassy: "Grassy"
# fork_title: "Fork New Version"
# fork_creating: "Creating Fork..."
- randomize: "Randomise"
+# generate_terrain: "Generate Terrain"
# more: "More"
# wiki: "Wiki"
# live_chat: "Live Chat"
@@ -567,6 +568,7 @@ module.exports = nativeDescription: "English (UK)", englishDescription: "English
# level_tab_settings: "Settings"
# level_tab_components: "Components"
# level_tab_systems: "Systems"
+# level_tab_docs: "Documentation"
# level_tab_thangs_title: "Current Thangs"
# level_tab_thangs_all: "All"
# level_tab_thangs_conditions: "Starting Conditions"
@@ -641,28 +643,30 @@ module.exports = nativeDescription: "English (UK)", englishDescription: "English
# hard: "Hard"
# player: "Player"
- about:
-# who_is_codecombat: "Who is CodeCombat?"
+# about:
# why_codecombat: "Why CodeCombat?"
-# who_description_prefix: "together started CodeCombat in 2013. We also created "
-# who_description_suffix: "in 2008, growing it to the #1 web and iOS application for learning to write Chinese and Japanese characters."
-# who_description_ending: "Now it's time to teach people to write code."
- why_paragraph_1: "When making Skritter, George didn't know how to program and was constantly frustrated by his inability to implement his ideas. Afterwards, he tried learning, but the lessons were too slow. His housemate, wanting to reskill and stop teaching, tried Codecademy, but \"got bored.\" Each week another friend started Codecademy, then dropped off. We realised it was the same problem we'd solved with Skritter: people learning a skill via slow, intensive lessons when what they need is fast, extensive practice. We know how to fix that."
-# why_paragraph_2: "Need to learn to code? You don't need lessons. You need to write a lot of code and have a great time doing it."
-# why_paragraph_3_prefix: "That's what programming is about. It's gotta be fun. Not fun like"
-# why_paragraph_3_italic: "yay a badge"
-# why_paragraph_3_center: "but fun like"
-# why_paragraph_3_italic_caps: "NO MOM I HAVE TO FINISH THE LEVEL!"
-# why_paragraph_3_suffix: "That's why CodeCombat is a multiplayer game, not a gamified lesson course. We won't stop until you can't stop--but this time, that's a good thing."
-# why_paragraph_4: "If you're going to get addicted to some game, get addicted to this one and become one of the wizards of the tech age."
-# why_ending: "And hey, it's free. "
-# why_ending_url: "Start wizarding now!"
-# george_description: "CEO, business guy, web designer, game designer, and champion of beginning programmers everywhere."
-# scott_description: "Programmer extraordinaire, software architect, kitchen wizard, and master of finances. Scott is the reasonable one."
-# nick_description: "Programming wizard, eccentric motivation mage, and upside-down experimenter. Nick can do anything and chooses to build CodeCombat."
- jeremy_description: "Customer support mage, usability tester, and community organiser; you've probably already spoken with Jeremy."
-# michael_description: "Programmer, sys-admin, and undergrad technical wunderkind, Michael is the person keeping our servers online."
-# matt_description: "Bicyclist, Software Engineer, reader of heroic fantasy, connoisseur of peanut butter, sipper of coffee."
+# why_paragraph_1: "If you want to learn to program, you don't need lessons. You need to write a lot of code and have a great time doing it."
+# why_paragraph_2_prefix: "That's what programming is about. It's gotta be fun. Not fun like"
+# why_paragraph_2_italic: "yay a badge"
+# why_paragraph_2_center: "but fun like"
+# why_paragraph_2_italic_caps: "NO MOM I HAVE TO FINISH THE LEVEL!"
+# why_paragraph_2_suffix: "That's why CodeCombat is a multiplayer game, not a gamified lesson course. We won't stop until you can't stop--but this time, that's a good thing."
+# why_paragraph_3: "If you're going to get addicted to some game, get addicted to this one and become one of the wizards of the tech age."
+# press_title: "Bloggers/Press"
+# press_paragraph_1_prefix: "Want to write about us? Feel free to download and use all of the resources included in our"
+# press_paragraph_1_link: "press packet"
+# press_paragraph_1_suffix: ". All logos and images may be used without contacting us directly."
+# team: "Team"
+# george_title: "CEO"
+# george_blurb: "Businesser"
+# scott_title: "Programmer"
+# scott_blurb: "Reasonable One"
+# nick_title: "Programmer"
+# nick_blurb: "Motivation Guru"
+# michael_title: "Programmer"
+# michael_blurb: "Sys Admin"
+# matt_title: "Programmer"
+# matt_blurb: "Bicyclist"
legal:
# page_title: "Legal"
diff --git a/app/locale/en-US.coffee b/app/locale/en-US.coffee
index 6e8a10869..5c65095d5 100644
--- a/app/locale/en-US.coffee
+++ b/app/locale/en-US.coffee
@@ -79,6 +79,7 @@ module.exports = nativeDescription: "English (US)", englishDescription: "English
# recover:
# recover_account_title: "Recover Account"
# send_password: "Send Recovery Password"
+# recovery_sent: "Recovery email sent."
# signup:
# create_account_title: "Create Account to Save Progress"
@@ -557,7 +558,7 @@ module.exports = nativeDescription: "English (US)", englishDescription: "English
# grassy: "Grassy"
# fork_title: "Fork New Version"
# fork_creating: "Creating Fork..."
-# randomize: "Randomize"
+# generate_terrain: "Generate Terrain"
# more: "More"
# wiki: "Wiki"
# live_chat: "Live Chat"
@@ -567,6 +568,7 @@ module.exports = nativeDescription: "English (US)", englishDescription: "English
# level_tab_settings: "Settings"
# level_tab_components: "Components"
# level_tab_systems: "Systems"
+# level_tab_docs: "Documentation"
# level_tab_thangs_title: "Current Thangs"
# level_tab_thangs_all: "All"
# level_tab_thangs_conditions: "Starting Conditions"
@@ -642,27 +644,29 @@ module.exports = nativeDescription: "English (US)", englishDescription: "English
# player: "Player"
# about:
-# who_is_codecombat: "Who is CodeCombat?"
# why_codecombat: "Why CodeCombat?"
-# who_description_prefix: "together started CodeCombat in 2013. We also created "
-# who_description_suffix: "in 2008, growing it to the #1 web and iOS application for learning to write Chinese and Japanese characters."
-# who_description_ending: "Now it's time to teach people to write code."
-# why_paragraph_1: "When making Skritter, George didn't know how to program and was constantly frustrated by his inability to implement his ideas. Afterwards, he tried learning, but the lessons were too slow. His housemate, wanting to reskill and stop teaching, tried Codecademy, but \"got bored.\" Each week another friend started Codecademy, then dropped off. We realized it was the same problem we'd solved with Skritter: people learning a skill via slow, intensive lessons when what they need is fast, extensive practice. We know how to fix that."
-# why_paragraph_2: "Need to learn to code? You don't need lessons. You need to write a lot of code and have a great time doing it."
-# why_paragraph_3_prefix: "That's what programming is about. It's gotta be fun. Not fun like"
-# why_paragraph_3_italic: "yay a badge"
-# why_paragraph_3_center: "but fun like"
-# why_paragraph_3_italic_caps: "NO MOM I HAVE TO FINISH THE LEVEL!"
-# why_paragraph_3_suffix: "That's why CodeCombat is a multiplayer game, not a gamified lesson course. We won't stop until you can't stop--but this time, that's a good thing."
-# why_paragraph_4: "If you're going to get addicted to some game, get addicted to this one and become one of the wizards of the tech age."
-# why_ending: "And hey, it's free. "
-# why_ending_url: "Start wizarding now!"
-# george_description: "CEO, business guy, web designer, game designer, and champion of beginning programmers everywhere."
-# scott_description: "Programmer extraordinaire, software architect, kitchen wizard, and master of finances. Scott is the reasonable one."
-# nick_description: "Programming wizard, eccentric motivation mage, and upside-down experimenter. Nick can do anything and chooses to build CodeCombat."
-# jeremy_description: "Customer support mage, usability tester, and community organizer; you've probably already spoken with Jeremy."
-# michael_description: "Programmer, sys-admin, and undergrad technical wunderkind, Michael is the person keeping our servers online."
-# matt_description: "Bicyclist, Software Engineer, reader of heroic fantasy, connoisseur of peanut butter, sipper of coffee."
+# why_paragraph_1: "If you want to learn to program, you don't need lessons. You need to write a lot of code and have a great time doing it."
+# why_paragraph_2_prefix: "That's what programming is about. It's gotta be fun. Not fun like"
+# why_paragraph_2_italic: "yay a badge"
+# why_paragraph_2_center: "but fun like"
+# why_paragraph_2_italic_caps: "NO MOM I HAVE TO FINISH THE LEVEL!"
+# why_paragraph_2_suffix: "That's why CodeCombat is a multiplayer game, not a gamified lesson course. We won't stop until you can't stop--but this time, that's a good thing."
+# why_paragraph_3: "If you're going to get addicted to some game, get addicted to this one and become one of the wizards of the tech age."
+# press_title: "Bloggers/Press"
+# press_paragraph_1_prefix: "Want to write about us? Feel free to download and use all of the resources included in our"
+# press_paragraph_1_link: "press packet"
+# press_paragraph_1_suffix: ". All logos and images may be used without contacting us directly."
+# team: "Team"
+# george_title: "CEO"
+# george_blurb: "Businesser"
+# scott_title: "Programmer"
+# scott_blurb: "Reasonable One"
+# nick_title: "Programmer"
+# nick_blurb: "Motivation Guru"
+# michael_title: "Programmer"
+# michael_blurb: "Sys Admin"
+# matt_title: "Programmer"
+# matt_blurb: "Bicyclist"
# legal:
# page_title: "Legal"
diff --git a/app/locale/en.coffee b/app/locale/en.coffee
index 755ada82a..00ab55e30 100644
--- a/app/locale/en.coffee
+++ b/app/locale/en.coffee
@@ -79,6 +79,7 @@
recover:
recover_account_title: "Recover Account"
send_password: "Send Recovery Password"
+ recovery_sent: "Recovery email sent."
signup:
create_account_title: "Create Account to Save Progress"
@@ -567,6 +568,7 @@
level_tab_settings: "Settings"
level_tab_components: "Components"
level_tab_systems: "Systems"
+ level_tab_docs: "Documentation"
level_tab_thangs_title: "Current Thangs"
level_tab_thangs_all: "All"
level_tab_thangs_conditions: "Starting Conditions"
@@ -642,31 +644,29 @@
player: "Player"
about:
- who_is_codecombat: "Who is CodeCombat?"
why_codecombat: "Why CodeCombat?"
- who_description_prefix: "together started CodeCombat in 2013. We also created "
- who_description_suffix: "in 2008, growing it to the #1 web and iOS application for learning to write Chinese and Japanese characters."
- who_description_ending: "Now it's time to teach people to write code."
- why_paragraph_1: "When making Skritter, George didn't know how to program and was constantly frustrated by his inability to implement his ideas. Afterwards, he tried learning, but the lessons were too slow. His housemate, wanting to reskill and stop teaching, tried Codecademy, but \"got bored.\" Each week another friend started Codecademy, then dropped off. We realized it was the same problem we'd solved with Skritter: people learning a skill via slow, intensive lessons when what they need is fast, extensive practice. We know how to fix that."
- why_paragraph_2: "Need to learn to code? You don't need lessons. You need to write a lot of code and have a great time doing it."
- why_paragraph_3_prefix: "That's what programming is about. It's gotta be fun. Not fun like"
- why_paragraph_3_italic: "yay a badge"
- why_paragraph_3_center: "but fun like"
- why_paragraph_3_italic_caps: "NO MOM I HAVE TO FINISH THE LEVEL!"
- why_paragraph_3_suffix: "That's why CodeCombat is a multiplayer game, not a gamified lesson course. We won't stop until you can't stop--but this time, that's a good thing."
- why_paragraph_4: "If you're going to get addicted to some game, get addicted to this one and become one of the wizards of the tech age."
- why_ending: "And hey, it's free. "
- why_ending_url: "Start wizarding now!"
+ why_paragraph_1: "If you want to learn to program, you don't need lessons. You need to write a lot of code and have a great time doing it."
+ why_paragraph_2_prefix: "That's what programming is about. It's gotta be fun. Not fun like"
+ why_paragraph_2_italic: "yay a badge"
+ why_paragraph_2_center: "but fun like"
+ why_paragraph_2_italic_caps: "NO MOM I HAVE TO FINISH THE LEVEL!"
+ why_paragraph_2_suffix: "That's why CodeCombat is a multiplayer game, not a gamified lesson course. We won't stop until you can't stop--but this time, that's a good thing."
+ why_paragraph_3: "If you're going to get addicted to some game, get addicted to this one and become one of the wizards of the tech age."
+ press_title: "Bloggers/Press"
+ press_paragraph_1_prefix: "Want to write about us? Feel free to download and use all of the resources included in our"
+ press_paragraph_1_link: "press packet"
+ press_paragraph_1_suffix: ". All logos and images may be used without contacting us directly."
+ team: "Team"
george_title: "CEO"
- george_description: "Businesser"
- scott_title: "Programmer"
- scott_description: "Reasonable One"
+ george_blurb: "Businesser"
+ scott_title: "Programmer"
+ scott_blurb: "Reasonable One"
nick_title: "Programmer"
- nick_description: "Motivation Guru"
+ nick_blurb: "Motivation Guru"
michael_title: "Programmer"
- michael_description: "Sys Admin"
+ michael_blurb: "Sys Admin"
matt_title: "Programmer"
- matt_description: "Bicyclist"
+ matt_blurb: "Bicyclist"
legal:
page_title: "Legal"
diff --git a/app/locale/es-419.coffee b/app/locale/es-419.coffee
index 2d595c3dd..2e2213348 100644
--- a/app/locale/es-419.coffee
+++ b/app/locale/es-419.coffee
@@ -79,6 +79,7 @@ module.exports = nativeDescription: "español (América Latina)", englishDescrip
recover:
recover_account_title: "recuperar cuenta"
send_password: "Enviar Contraseña de Recuperación"
+# recovery_sent: "Recovery email sent."
signup:
create_account_title: "Crear Cuenta para Guardar el Progreso"
@@ -557,7 +558,7 @@ module.exports = nativeDescription: "español (América Latina)", englishDescrip
# grassy: "Grassy"
# fork_title: "Fork New Version"
# fork_creating: "Creating Fork..."
-# randomize: "Randomize"
+# generate_terrain: "Generate Terrain"
# more: "More"
# wiki: "Wiki"
# live_chat: "Live Chat"
@@ -567,6 +568,7 @@ module.exports = nativeDescription: "español (América Latina)", englishDescrip
# level_tab_settings: "Settings"
# level_tab_components: "Components"
# level_tab_systems: "Systems"
+# level_tab_docs: "Documentation"
# level_tab_thangs_title: "Current Thangs"
# level_tab_thangs_all: "All"
# level_tab_thangs_conditions: "Starting Conditions"
@@ -642,27 +644,29 @@ module.exports = nativeDescription: "español (América Latina)", englishDescrip
player: "Jugador"
# about:
-# who_is_codecombat: "Who is CodeCombat?"
# why_codecombat: "Why CodeCombat?"
-# who_description_prefix: "together started CodeCombat in 2013. We also created "
-# who_description_suffix: "in 2008, growing it to the #1 web and iOS application for learning to write Chinese and Japanese characters."
-# who_description_ending: "Now it's time to teach people to write code."
-# why_paragraph_1: "When making Skritter, George didn't know how to program and was constantly frustrated by his inability to implement his ideas. Afterwards, he tried learning, but the lessons were too slow. His housemate, wanting to reskill and stop teaching, tried Codecademy, but \"got bored.\" Each week another friend started Codecademy, then dropped off. We realized it was the same problem we'd solved with Skritter: people learning a skill via slow, intensive lessons when what they need is fast, extensive practice. We know how to fix that."
-# why_paragraph_2: "Need to learn to code? You don't need lessons. You need to write a lot of code and have a great time doing it."
-# why_paragraph_3_prefix: "That's what programming is about. It's gotta be fun. Not fun like"
-# why_paragraph_3_italic: "yay a badge"
-# why_paragraph_3_center: "but fun like"
-# why_paragraph_3_italic_caps: "NO MOM I HAVE TO FINISH THE LEVEL!"
-# why_paragraph_3_suffix: "That's why CodeCombat is a multiplayer game, not a gamified lesson course. We won't stop until you can't stop--but this time, that's a good thing."
-# why_paragraph_4: "If you're going to get addicted to some game, get addicted to this one and become one of the wizards of the tech age."
-# why_ending: "And hey, it's free. "
-# why_ending_url: "Start wizarding now!"
-# george_description: "CEO, business guy, web designer, game designer, and champion of beginning programmers everywhere."
-# scott_description: "Programmer extraordinaire, software architect, kitchen wizard, and master of finances. Scott is the reasonable one."
-# nick_description: "Programming wizard, eccentric motivation mage, and upside-down experimenter. Nick can do anything and chooses to build CodeCombat."
-# jeremy_description: "Customer support mage, usability tester, and community organizer; you've probably already spoken with Jeremy."
-# michael_description: "Programmer, sys-admin, and undergrad technical wunderkind, Michael is the person keeping our servers online."
-# matt_description: "Bicyclist, Software Engineer, reader of heroic fantasy, connoisseur of peanut butter, sipper of coffee."
+# why_paragraph_1: "If you want to learn to program, you don't need lessons. You need to write a lot of code and have a great time doing it."
+# why_paragraph_2_prefix: "That's what programming is about. It's gotta be fun. Not fun like"
+# why_paragraph_2_italic: "yay a badge"
+# why_paragraph_2_center: "but fun like"
+# why_paragraph_2_italic_caps: "NO MOM I HAVE TO FINISH THE LEVEL!"
+# why_paragraph_2_suffix: "That's why CodeCombat is a multiplayer game, not a gamified lesson course. We won't stop until you can't stop--but this time, that's a good thing."
+# why_paragraph_3: "If you're going to get addicted to some game, get addicted to this one and become one of the wizards of the tech age."
+# press_title: "Bloggers/Press"
+# press_paragraph_1_prefix: "Want to write about us? Feel free to download and use all of the resources included in our"
+# press_paragraph_1_link: "press packet"
+# press_paragraph_1_suffix: ". All logos and images may be used without contacting us directly."
+# team: "Team"
+# george_title: "CEO"
+# george_blurb: "Businesser"
+# scott_title: "Programmer"
+# scott_blurb: "Reasonable One"
+# nick_title: "Programmer"
+# nick_blurb: "Motivation Guru"
+# michael_title: "Programmer"
+# michael_blurb: "Sys Admin"
+# matt_title: "Programmer"
+# matt_blurb: "Bicyclist"
# legal:
# page_title: "Legal"
diff --git a/app/locale/es-ES.coffee b/app/locale/es-ES.coffee
index 708209cf3..6344629f7 100644
--- a/app/locale/es-ES.coffee
+++ b/app/locale/es-ES.coffee
@@ -15,9 +15,9 @@ module.exports = nativeDescription: "español (ES)", englishDescription: "Spanis
fork: "Bifurcar"
play: "Jugar"
retry: "Reintentar"
-# watch: "Watch"
-# unwatch: "Unwatch"
-# submit_patch: "Submit Patch"
+ watch: "Mirar"
+ unwatch: "Pasar"
+ submit_patch: "Mandar Parche"
units:
second: "segundo"
@@ -49,9 +49,9 @@ module.exports = nativeDescription: "español (ES)", englishDescription: "Spanis
blog: "Blog"
forum: "Foro"
account: "Cuenta"
-# profile: "Profile"
-# stats: "Stats"
-# code: "Code"
+ profile: "Perfil"
+ stats: "Estadisticas"
+ code: "Codigo"
admin: "Admin"
home: "Inicio"
contribute: "Colaborar"
@@ -79,6 +79,7 @@ module.exports = nativeDescription: "español (ES)", englishDescription: "Spanis
recover:
recover_account_title: "Recuperar Cuenta"
send_password: "Enviar recuperación de contraseña"
+# recovery_sent: "Recovery email sent."
signup:
create_account_title: "Crea una cuenta para guardar tu progreso"
@@ -103,12 +104,12 @@ module.exports = nativeDescription: "español (ES)", englishDescription: "Spanis
for_beginners: "Para principiantes"
multiplayer: "Multijugador"
for_developers: "Para programadores"
-# javascript_blurb: "The language of the web. Great for writing websites, web apps, HTML5 games, and servers."
-# python_blurb: "Simple yet powerful, Python is a great general purpose programming language."
-# coffeescript_blurb: "Nicer JavaScript syntax."
-# clojure_blurb: "A modern Lisp."
-# lua_blurb: "Game scripting language."
-# io_blurb: "Simple but obscure."
+ javascript_blurb: "El lenguaje de la web. Util para escribir paginas web, aplicaciones web, juegos en HTML5 , y servidores."
+ python_blurb: "Simple pero poderoso, Python es un gran lenguaje de proposito general."
+ coffeescript_blurb: "Sintaxsis de JavaScript mejorada."
+ clojure_blurb: "Un Lisp moderno."
+ lua_blurb: "Lenguaje Script para Juegos."
+ io_blurb: "Simple pero oscuro."
play:
choose_your_level: "Elige tu nivel"
@@ -123,13 +124,13 @@ module.exports = nativeDescription: "español (ES)", englishDescription: "Spanis
campaign_multiplayer_description: "... en las que tu código se enfrentará al de otros jugadores."
campaign_player_created: "Creaciones de los Jugadores"
campaign_player_created_description: "... en las que luchas contra la creatividad de tus compañeros Magos Artesanos."
-# campaign_classic_algorithms: "Classic Algorithms"
-# campaign_classic_algorithms_description: "... in which you learn the most popular algorithms in Computer Science."
+ campaign_classic_algorithms: "Algoritmos Clasicos"
+ campaign_classic_algorithms_description: "... donde aprendes los algoritmos mas populares de la informatica."
level_difficulty: "Dificultad: "
play_as: "Jugar como"
spectate: "Observar"
-# players: "players"
-# hours_played: "hours played"
+ players: "jugadores"
+ hours_played: "horas jugadas"
contact:
contact_us: "Contacta con CodeCombat"
@@ -183,15 +184,15 @@ module.exports = nativeDescription: "español (ES)", englishDescription: "Spanis
new_password: "Nueva contraseña"
new_password_verify: "Verificar"
email_subscriptions: "Suscripciones de correo electrónico"
-# email_subscriptions_none: "No Email Subscriptions."
+ email_subscriptions_none: "Sin suscripciones de correo electrónico."
email_announcements: "Noticias"
email_announcements_description: "Recibe correos electrónicos con las últimas noticias y desarrollos de CodeCombat."
email_notifications: "Notificationes"
# email_notifications_summary: "Controls for personalized, automatic email notifications related to your CodeCombat activity."
-# email_any_notes: "Any Notifications"
-# email_any_notes_description: "Disable to stop all activity notification emails."
-# email_news: "News"
-# email_recruit_notes: "Job Opportunities"
+ email_any_notes: "Cualquier Notificacion"
+ email_any_notes_description: "Deshabilitar todas las notificaciones por mail."
+ email_news: "Noticias"
+ email_recruit_notes: "Oportunidades de Trabajo"
email_recruit_notes_description: "Si tu juegas realmente bien, puede que contactemos contigo para que consigas un trabajo (mejor)."
contributor_emails: "Correos para colaboradores"
contribute_prefix: "¡Buscamos gente que se una a nuestro comunidad! Comprueba la "
@@ -201,7 +202,7 @@ module.exports = nativeDescription: "español (ES)", englishDescription: "Spanis
error_saving: "Error al guardar"
saved: "Cambios guardados"
password_mismatch: "La contraseña no coincide"
-# password_repeat: "Please repeat your password."
+ password_repeat: "Repite tu contraseña."
job_profile: "Perfil de trabajo"
job_profile_approved: "Tu perfil de trabajo ha sido aprobado por CodeCombat. Los empleadores podrán verlo hasta que lo marques como inactivo o no haya sido cambiado durante cuatro semanas."
job_profile_explanation: "¡Hola! Rellena esto y estaremos en contacto para hablar sobre encontrarte un trabajo como desarrollador de software."
@@ -214,30 +215,30 @@ module.exports = nativeDescription: "español (ES)", englishDescription: "Spanis
done_editing: "Edición Terminada"
profile_for_prefix: "Perfil de "
profile_for_suffix: ""
-# featured: "Featured"
+ featured: "Destacado"
# not_featured: "Not Featured"
looking_for: "Buscando:"
last_updated: "Última actualización:"
contact: "Contacto"
-# active: "Looking for interview offers now"
-# inactive: "Not looking for offers right now"
-# complete: "complete"
+ active: "Buscando entrevistas de trabajo"
+ inactive: "No busco entrevistas de trabajo ahora mismo"
+ complete: "completado"
next: "Siguiente"
next_city: "¿Ciudad?"
next_country: "elige tu país."
next_name: "¿Nombre?"
next_short_description: "escribe una descripción breve."
-# next_long_description: "describe your desired position."
-# next_skills: "list at least five skills."
-# next_work: "chronicle your work history."
+ next_long_description: "describe tu puesto de trabajo deseado."
+ next_skills: "Pon al menos cinco habilidades."
+ next_work: "Resume tu historia laboral."
# next_education: "recount your educational ordeals."
-# next_projects: "show off up to three projects you've worked on."
-# next_links: "add any personal or social links."
+ next_projects: "Muestranos tres proyectos en los que hayas trabajado."
+ next_links: "añade links personales o de redes sociales."
# next_photo: "add an optional professional photo."
# next_active: "mark yourself open to offers to show up in searches."
example_blog: "Blog"
example_personal_site: "Web personal"
-# links_header: "Personal Links"
+ links_header: "Enlaces Personales"
links_blurb: "Enlaza otros sitios o perfiles que quieras destacar como tu GitHub, LinkedIn, o tu blog."
links_name: "Nombre del enlace"
links_name_help: "¿Qué estás enlazando?"
@@ -361,15 +362,15 @@ module.exports = nativeDescription: "español (ES)", englishDescription: "Spanis
done: "Hecho"
customize_wizard: "Personalizar Mago"
home: "Inicio"
-# stop: "Stop"
-# game_menu: "Game Menu"
+ stop: "Parar"
+ game_menu: "Menu del Juego"
guide: "Guía"
restart: "Reiniciar"
goals: "Objetivos"
-# success: "Success!"
-# incomplete: "Incomplete"
-# timed_out: "Ran out of time"
-# failing: "Failing"
+ success: "Exito!"
+ incomplete: "Incompleto"
+ timed_out: "Te has quedado sin tiempo"
+ failing: "Fallando"
action_timeline: "Cronología de Acción"
click_to_select: "Click en una unidad para seleccionarla"
reload_title: "¿Recargar todo el código?"
@@ -428,7 +429,7 @@ module.exports = nativeDescription: "español (ES)", englishDescription: "Spanis
tip_impossible: "Siempre parece imposible, hasta que se hace. - Nelson Mandela"
tip_talk_is_cheap: "Hablar es fácil. Enséñame el código. - Linus Torvalds"
tip_first_language: "La cosa más desastrosa que puedes aprender es tu primer lenguaje de programación. - Alan Kay"
-# tip_hardware_problem: "Q: How many programmers does it take to change a light bulb? A: None, it's a hardware problem."
+ tip_hardware_problem: "P: Cuantos programadores hacen falta para cambiar una bombilla? R: Ninguno, es un problema de hardware."
time_current: "Ahora:"
time_total: "Máx:"
time_goto: "Ir a:"
@@ -437,18 +438,18 @@ module.exports = nativeDescription: "español (ES)", englishDescription: "Spanis
infinite_loop_comment_out: "Comenta mi código"
game_menu:
-# inventory_tab: "Inventory"
-# choose_hero_tab: "Restart Level"
-# save_load_tab: "Save/Load"
-# options_tab: "Options"
-# guide_tab: "Guide"
+ inventory_tab: "Inventario"
+ choose_hero_tab: "Reiniciar Nivel"
+ save_load_tab: "Salvar/Cargar"
+ options_tab: "Opciones"
+ guide_tab: "Guia"
multiplayer_tab: "Multijugador"
-# inventory_caption: "Equip your hero"
-# choose_hero_caption: "Choose hero, language"
+ inventory_caption: "Equipa a tu heroe"
+ choose_hero_caption: "Elige la lengua del heroe"
# save_load_caption: "... and view history"
-# options_caption: "Configure settings"
-# guide_caption: "Docs and tips"
-# multiplayer_caption: "Play with friends!"
+ options_caption: "Ajustes de configuracion"
+ guide_caption: "Documentos y pistas"
+ multiplayer_caption: "Juega con amigos!"
# inventory:
# temp: "Temp"
@@ -456,28 +457,28 @@ module.exports = nativeDescription: "español (ES)", englishDescription: "Spanis
# choose_hero:
# temp: "Temp"
-# save_load:
-# granularity_saved_games: "Saved"
-# granularity_change_history: "History"
+ save_load:
+ granularity_saved_games: "Salvado"
+ granularity_change_history: "Historia"
options:
-# general_options: "General Options"
-# volume_label: "Volume"
-# music_label: "Music"
-# music_description: "Turn background music on/off."
+ general_options: "Opciones Generales"
+ volume_label: "Volumen"
+ music_label: "Musica"
+ music_description: "Musica de fondo on/off."
# autorun_label: "Autorun"
# autorun_description: "Control automatic code execution."
editor_config: "Conf. editor"
editor_config_title: "Configuración del editor"
editor_config_level_language_label: "Lenguaje para este nivel"
-# editor_config_level_language_description: "Define the programming language for this particular level."
+ editor_config_level_language_description: "Escoge lenguaje de programacion para este nivel en concreto."
editor_config_default_language_label: "Lenguaje de programación por defecto"
# editor_config_default_language_description: "Define the programming language you want to code in when starting new levels."
editor_config_keybindings_label: "Atajos de teclado"
editor_config_keybindings_default: "Actual (Ace)"
editor_config_keybindings_description: "Permite el uso de atajos de teclado de algunos editores conocidos."
# editor_config_livecompletion_label: "Live Autocompletion"
-# editor_config_livecompletion_description: "Displays autocomplete suggestions while typing."
+ editor_config_livecompletion_description: "Muestra sugerencias de autocompletado mientras se escribe."
editor_config_invisibles_label: "Mostrar elementos invisibles"
editor_config_invisibles_description: "Se pueden ver elementos invisibles como espacios o tabulaciones."
editor_config_indentguides_label: "Mostrar guías de sangría"
@@ -490,8 +491,8 @@ module.exports = nativeDescription: "español (ES)", englishDescription: "Spanis
multiplayer:
multiplayer_title: "Ajustes de Multijugador"
-# multiplayer_toggle: "Enable multiplayer"
-# multiplayer_toggle_description: "Allow others to join your game."
+ multiplayer_toggle: "Activar multijugador"
+ multiplayer_toggle_description: "Permitir que otros se unan a tu juego."
multiplayer_link_description: "Pasa este enlace a alguien para que se una a ti."
multiplayer_hint_label: "Pista:"
multiplayer_hint: " Haz un click en el link para que se seleccione, después utiliza Ctrl-C o ⌘-C para copiar el link."
@@ -503,9 +504,9 @@ module.exports = nativeDescription: "español (ES)", englishDescription: "Spanis
space: "Barra espaciadora (Espacio)"
enter: "Enter"
escape: "Escape"
-# shift: "Shift"
-# cast_spell: "Cast current spell."
-# run_real_time: "Run in real time."
+ shift: "Shift"
+ cast_spell: "Invocar el hechizo actual."
+ run_real_time: "correr en tiempo real."
# continue_script: "Continue past current script."
# skip_scripts: "Skip past all skippable scripts."
# toggle_playback: "Toggle play/pause."
@@ -515,9 +516,9 @@ module.exports = nativeDescription: "español (ES)", englishDescription: "Spanis
# toggle_debug: "Toggle debug display."
# toggle_grid: "Toggle grid overlay."
# toggle_pathfinding: "Toggle pathfinding overlay."
-# beautify: "Beautify your code by standardizing its formatting."
-# maximize_editor: "Maximize/minimize code editor."
-# move_wizard: "Move your Wizard around the level."
+ beautify: "Embellece tu código estandarizando el formato."
+ maximize_editor: "Maximizar/minimizar editor de codigo."
+ move_wizard: "Mover a tu hechicero por el nivel."
admin:
av_title: "Vista de administrador"
@@ -540,24 +541,24 @@ module.exports = nativeDescription: "español (ES)", englishDescription: "Spanis
# thang_editor_suffix: "to modify the CodeCombat source artwork. Allow units to throw projectiles, alter the direction of an animation, change a unit's hit points, or upload your own vector sprites."
# article_editor_prefix: "See a mistake in some of our docs? Want to make some instructions for your own creations? Check out the"
# article_editor_suffix: "and help CodeCombat players get the most out of their playtime."
-# find_us: "Find us on these sites"
-# contribute_to_the_project: "Contribute to the project"
+ find_us: "Encuentranos en estos sitios"
+ contribute_to_the_project: "Contribuye al proyecto"
editor:
main_title: "Editores de CodeCombat"
- article_title: "Editor de artículos"
+ article_title: "Editor de Artículos"
thang_title: "Editor de Objetos"
level_title: "Editor de Niveles"
-# achievement_title: "Achievement Editor"
+ achievement_title: "Editor de Logros"
back: "Volver"
revert: "Revertir"
revert_models: "Revertir Modelos"
-# pick_a_terrain: "Pick A Terrain"
-# small: "Small"
-# grassy: "Grassy"
+ pick_a_terrain: "Escoge un Terreno"
+ small: "Pequeño"
+ grassy: "Cubierto de hierba"
fork_title: "Bifurcar nueva versión"
fork_creating: "Creando bifurcación..."
-# randomize: "Randomize"
+ generate_terrain: "Generar Terreno"
more: "Más"
wiki: "Wiki"
live_chat: "Chat en directo"
@@ -567,6 +568,7 @@ module.exports = nativeDescription: "español (ES)", englishDescription: "Spanis
level_tab_settings: "Ajustes"
level_tab_components: "Componentes"
level_tab_systems: "Sistemas"
+ level_tab_docs: "Documentacion"
level_tab_thangs_title: "Objetos actuales"
level_tab_thangs_all: "Todo"
level_tab_thangs_conditions: "Condiciones de inicio"
@@ -601,7 +603,7 @@ module.exports = nativeDescription: "español (ES)", englishDescription: "Spanis
level_search_title: "Buscar niveles aquí"
achievement_search_title: "Buscar Logros"
read_only_warning2: "Nota: no puedes guardar nada de lo que edites aqui porque no has iniciado sesión."
-# no_achievements: "No achievements have been added for this level yet."
+ no_achievements: "No se han añadido logros a este nivel."
# achievement_query_misc: "Key achievement off of miscellanea"
# achievement_query_goals: "Key achievement off of level goals"
# level_completion: "Level Completion"
@@ -613,7 +615,7 @@ module.exports = nativeDescription: "español (ES)", englishDescription: "Spanis
general:
and: "y"
name: "Nombre"
-# date: "Date"
+ date: "Fecha"
body: "Cuerpo"
version: "Versión"
commit_msg: "Mensaje de Asignación o Commit"
@@ -642,27 +644,29 @@ module.exports = nativeDescription: "español (ES)", englishDescription: "Spanis
player: "Jugador"
about:
- who_is_codecombat: "¿Qué es CodeCombat?"
why_codecombat: "¿Por qué CodeCombat?"
- who_description_prefix: "juntos comenzamos CodeCombat en 2013. También creamos "
- who_description_suffix: "en 2008, llegando a alcanzar el primer puesto en aplicaciones web, una app para iOS para el aprendizaje de la escritura de caracteres chinos y japoneses."
- who_description_ending: "Es hora de empezar a enseñar a la gente a escribir código."
- why_paragraph_1: "Mientras desarrollaba Skritter, George no sabía cómo programar y estaba constantemente frustrado por su incapacidad para implementar sus ideas. Posteriormente, intentó aprender, pero las lecciones eran demasiado lentas. Su compañero de piso, queriendo dejar de enseñar y reorientar su carrera, probó Codecademy, pero \"se aburrió. \" Cada semana otro amigo comenzaba en Codecademy, para terminar dejándolo posteriormente. Nos dimos cuenta de que era el mismo problema que habíamos resuelto con Skritter: gente aprendiendo una habilidad lentamente con lecciones intensivas cuando lo que necesitaban era una práctica rápida y extensa. Sabemos cómo solucionar eso."
- why_paragraph_2: "¿Necesitas aprender a programar? No necesitas lecciones. Necesitas escribir muchísimo código y pasarlo bien haciéndolo."
- why_paragraph_3_prefix: "De eso va la programación. Tiene que ser divertido. No divertido como:"
- why_paragraph_3_italic: "¡bien una insignia!,"
- why_paragraph_3_center: "sino más bien como:"
- why_paragraph_3_italic_caps: "¡NO MAMA, TENGO QUE TERMINAR EL NIVEL!"
- why_paragraph_3_suffix: "Por eso Codecombat es multijugador, no un curso con lecciones \"gamificadas\" . No pararemos hasta que tú no puedas parar... pero esta vez, eso será buena señal."
- why_paragraph_4: "Si vas a engancharte a algún juego, engánchate a este y conviértete en uno de los magos de la era tecnológica."
- why_ending: "Y, oye, es gratis. "
- why_ending_url: "Comienza a hacer magia ¡ya!"
- george_description: "CEO, el tipo de los negocios, diseñador web, diseñador de juegos y campeón de los programadores principiantes de todo el mundo."
- scott_description: "Programador extraordinario, arquitecto de software, mago de la cocina y maestro de las finanzas. Scott es el razonable."
- nick_description: "Mago de la programación, hechicero excéntrico de la motivación y experimentador del revés. Nick pudo haber hecho cualquier cosa y eligió desarrollar CodeCombat."
- jeremy_description: "Mago de la atención al cliente, tester de usabilidad y organizador de la comunidad; es probable que ya hayas hablado con Jeremy."
- michael_description: "Programador, administrador de sistemas y prodigio técnico, Michael es el encargado de mantener nuestros servidores en línea."
-# matt_description: "Bicyclist, Software Engineer, reader of heroic fantasy, connoisseur of peanut butter, sipper of coffee."
+ why_paragraph_1: "¿Necesitas aprender a programar? No necesitas lecciones. Necesitas escribir muchísimo código y pasarlo bien haciéndolo."
+ why_paragraph_2_prefix: "De eso va la programación. Tiene que ser divertido. No divertido como:"
+ why_paragraph_2_italic: "¡bien una insignia!,"
+ why_paragraph_2_center: "sino más bien como:"
+ why_paragraph_2_italic_caps: "¡NO MAMA, TENGO QUE TERMINAR EL NIVEL!"
+ why_paragraph_2_suffix: "Por eso Codecombat es multijugador, no un curso con lecciones \"gamificadas\" . No pararemos hasta que tú no puedas parar... pero esta vez, eso será buena señal."
+ why_paragraph_3: "Si vas a engancharte a algún juego, engánchate a este y conviértete en uno de los magos de la era tecnológica."
+# press_title: "Bloggers/Press"
+# press_paragraph_1_prefix: "Want to write about us? Feel free to download and use all of the resources included in our"
+# press_paragraph_1_link: "press packet"
+# press_paragraph_1_suffix: ". All logos and images may be used without contacting us directly."
+# team: "Team"
+# george_title: "CEO"
+# george_blurb: "Businesser"
+# scott_title: "Programmer"
+# scott_blurb: "Reasonable One"
+# nick_title: "Programmer"
+# nick_blurb: "Motivation Guru"
+# michael_title: "Programmer"
+# michael_blurb: "Sys Admin"
+# matt_title: "Programmer"
+# matt_blurb: "Bicyclist"
legal:
page_title: "Legal"
@@ -735,7 +739,7 @@ module.exports = nativeDescription: "español (ES)", englishDescription: "Spanis
introduction_desc_ending: "¡Esperamos que te unas a nuestro equipo!"
introduction_desc_signature: "- Nick, George, Scott, Michael, Jeremy y Matt"
alert_account_message_intro: "¡Hola!"
-# alert_account_message: "To subscribe for class emails, you'll need to be logged in first."
+ alert_account_message: "Para suscribirse a los mails de clase, necesitas estar logeado."
archmage_summary: "¿Interesado en trabajar en gráficos para juegos, el diseño de la interfaz de usuario, bases de datos y la organización de servidores, redes multijugador, físicas, sonido o el funcionamiento del motor del juego? ¿Quieres ayudar a construir un juego para ayudar a otras personas a aprender aquello en lo que eres bueno? Tenemos mucho que hacer y si eres un programador experimentado y quieres desarrollar para CodeCombat, esta clase es para tí. Nos encantaría recibir tu ayuda para construir el mejor juego de programación que se haya hecho."
archmage_introduction: "Una de las mejores partes de desarrollar juegos es que combinan cosas muy diferentes. Gráficos, sonido, uso de redes en tiempo real, redes sociales y por supuesto mucho de los aspectos comunes de la programación, desde gestión de bases de datos a bajo nivel y administración de servidores hasta diseño de experiencia del usuario y creación de interfaces. Hay un montón de cosas por hacer y si eres un programador experimentado con interés en conocer lo que se cuece en la trastienda de CodeCombat, esta Clase puede ser la ideal para ti. Nos encantaría recibir tu ayuda para crear el mejor juego de programación de la historia."
class_attributes: "Atributos de las Clases"
@@ -848,13 +852,13 @@ module.exports = nativeDescription: "español (ES)", englishDescription: "Spanis
rank_submitted: "Enviado para calificación"
rank_failed: "Fallo al calificar"
rank_being_ranked: "El juego está siendo calificado"
-# rank_last_submitted: "submitted "
-# help_simulate: "Help simulate games?"
+ rank_last_submitted: "enviado "
+ help_simulate: "Ayudar a simular Juegos?"
code_being_simulated: "Tu nuevo código está siendo simulado por otros jugados para ser calificado. Se irá actualizando a medida que las partidas se vayan sucediendo."
no_ranked_matches_pre: "No hay partidas calificadas para "
no_ranked_matches_post: " equipo! Juega contra otros competidores y luego vuelve aquí para que tu partida aparezca en la clasificación."
choose_opponent: "Elige un contrincante"
-# select_your_language: "Select your language!"
+ select_your_language: "Elige tu Idioma!"
tutorial_play: "Jugar el Tutorial"
tutorial_recommended: "Recomendado si no has jugado antes."
tutorial_skip: "Saltar el Tutorial"
@@ -868,36 +872,36 @@ module.exports = nativeDescription: "español (ES)", englishDescription: "Spanis
social_connect_blurb: "¡Conectate y juega contra tus amigos!"
invite_friends_to_battle: "¡Invita a tus amigos a unirse a la batalla!"
fight: "¡Pelea!"
-# watch_victory: "Watch your victory"
-# defeat_the: "Defeat the"
-# tournament_ends: "Tournament ends"
-# tournament_ended: "Tournament ended"
-# tournament_rules: "Tournament Rules"
-# tournament_blurb: "Write code, collect gold, build armies, crush foes, win prizes, and upgrade your career in our $40,000 Greed tournament! Check out the details"
+ watch_victory: "Ver tu victoria"
+ defeat_the: "Vence a"
+ tournament_ends: "El torneo termina"
+ tournament_ended: "El torneo ha terminado"
+ tournament_rules: "Reglas del Torneo"
+ tournament_blurb: "Escribe codigo, recolecta oro, construye ejercitos, aplasta a los malos, gana premios, y sube en tu carrera en nuestro Torneo de la Avaricia con $40,000! Ver los detalles"
# tournament_blurb_criss_cross: "Win bids, construct paths, outwit opponents, grab gems, and upgrade your career in our Criss-Cross tournament! Check out the details"
-# tournament_blurb_blog: "on our blog"
+ tournament_blurb_blog: "en nuestro blog"
rules: "Reglas"
winners: "Ganadores"
ladder_prizes:
-# title: "Tournament Prizes"
-# blurb_1: "These prizes will be awarded according to"
-# blurb_2: "the tournament rules"
-# blurb_3: "to the top human and ogre players."
-# blurb_4: "Two teams means double the prizes!"
-# blurb_5: "(There will be two first place winners, two second-place winners, etc.)"
+ title: "Premios del Torneo"
+ blurb_1: "Estos premios se entregaran acorde a"
+ blurb_2: "las reglas del torneo"
+ blurb_3: "A los primeros jugadores humanos y ogros."
+ blurb_4: "Dos equipos significa doble-premio!"
+ blurb_5: "(Habra dos ganadores por puesto, dos en el primer puesto, dos en el segundo, etc.)"
rank: "Rango"
prizes: "Premios"
-# total_value: "Total Value"
-# in_cash: "in cash"
+ total_value: "Valor Total"
+ in_cash: "en dinero"
custom_wizard: "Personaliza tu Mago de CodeCombat"
custom_avatar: "Personaliza tu avatar de CoceCombat"
# heap: "for six months of \"Startup\" access"
-# credits: "credits"
-# one_month_coupon: "coupon: choose either Rails or HTML"
-# one_month_discount: "discount, 30% off: choose either Rails or HTML"
-# license: "license"
-# oreilly: "ebook of your choice"
+ credits: "creditos"
+ one_month_coupon: "cupon: elige entre Rails o HTML"
+ one_month_discount: "descuento del 30%: elige entre Rails o HTML"
+ license: "licencia"
+ oreilly: "ebook de tu eleccion"
loading_error:
could_not_load: "Error al cargar desde el servidor."
@@ -913,7 +917,7 @@ module.exports = nativeDescription: "español (ES)", englishDescription: "Spanis
unknown: "Error desconocido."
resources:
-# sessions: "Sessions"
+ sessions: "Sesiones"
your_sessions: "Tus sesiones"
level: "Nivel"
social_network_apis: "APIs de redes sociales"
@@ -926,10 +930,10 @@ module.exports = nativeDescription: "español (ES)", englishDescription: "Spanis
user_schema: "Esquema de usuario"
user_profile: "Perfil de usuario"
patches: "Parches"
-# patched_model: "Source Document"
+ patched_model: "Documento Fuente"
model: "Modelo"
system: "Sistema"
-# systems: "Systems"
+ systems: "Sistemas"
component: "Componente"
components: "Componentes"
# thang: "Thang"
diff --git a/app/locale/fa.coffee b/app/locale/fa.coffee
index 546186670..0dd6e0e94 100644
--- a/app/locale/fa.coffee
+++ b/app/locale/fa.coffee
@@ -79,6 +79,7 @@ module.exports = nativeDescription: "فارسی", englishDescription: "Persian",
recover:
recover_account_title: "بازیابی حساب کاربری"
send_password: "ارسال رمز عبور بازیابی شده"
+# recovery_sent: "Recovery email sent."
signup:
create_account_title: "ایجاد حساب کاربری برای ذخیره سازی پیشرفت ها"
@@ -557,7 +558,7 @@ module.exports = nativeDescription: "فارسی", englishDescription: "Persian",
# grassy: "Grassy"
# fork_title: "Fork New Version"
# fork_creating: "Creating Fork..."
-# randomize: "Randomize"
+# generate_terrain: "Generate Terrain"
# more: "More"
# wiki: "Wiki"
# live_chat: "Live Chat"
@@ -567,6 +568,7 @@ module.exports = nativeDescription: "فارسی", englishDescription: "Persian",
# level_tab_settings: "Settings"
# level_tab_components: "Components"
# level_tab_systems: "Systems"
+# level_tab_docs: "Documentation"
# level_tab_thangs_title: "Current Thangs"
# level_tab_thangs_all: "All"
# level_tab_thangs_conditions: "Starting Conditions"
@@ -642,27 +644,29 @@ module.exports = nativeDescription: "فارسی", englishDescription: "Persian",
# player: "Player"
# about:
-# who_is_codecombat: "Who is CodeCombat?"
# why_codecombat: "Why CodeCombat?"
-# who_description_prefix: "together started CodeCombat in 2013. We also created "
-# who_description_suffix: "in 2008, growing it to the #1 web and iOS application for learning to write Chinese and Japanese characters."
-# who_description_ending: "Now it's time to teach people to write code."
-# why_paragraph_1: "When making Skritter, George didn't know how to program and was constantly frustrated by his inability to implement his ideas. Afterwards, he tried learning, but the lessons were too slow. His housemate, wanting to reskill and stop teaching, tried Codecademy, but \"got bored.\" Each week another friend started Codecademy, then dropped off. We realized it was the same problem we'd solved with Skritter: people learning a skill via slow, intensive lessons when what they need is fast, extensive practice. We know how to fix that."
-# why_paragraph_2: "Need to learn to code? You don't need lessons. You need to write a lot of code and have a great time doing it."
-# why_paragraph_3_prefix: "That's what programming is about. It's gotta be fun. Not fun like"
-# why_paragraph_3_italic: "yay a badge"
-# why_paragraph_3_center: "but fun like"
-# why_paragraph_3_italic_caps: "NO MOM I HAVE TO FINISH THE LEVEL!"
-# why_paragraph_3_suffix: "That's why CodeCombat is a multiplayer game, not a gamified lesson course. We won't stop until you can't stop--but this time, that's a good thing."
-# why_paragraph_4: "If you're going to get addicted to some game, get addicted to this one and become one of the wizards of the tech age."
-# why_ending: "And hey, it's free. "
-# why_ending_url: "Start wizarding now!"
-# george_description: "CEO, business guy, web designer, game designer, and champion of beginning programmers everywhere."
-# scott_description: "Programmer extraordinaire, software architect, kitchen wizard, and master of finances. Scott is the reasonable one."
-# nick_description: "Programming wizard, eccentric motivation mage, and upside-down experimenter. Nick can do anything and chooses to build CodeCombat."
-# jeremy_description: "Customer support mage, usability tester, and community organizer; you've probably already spoken with Jeremy."
-# michael_description: "Programmer, sys-admin, and undergrad technical wunderkind, Michael is the person keeping our servers online."
-# matt_description: "Bicyclist, Software Engineer, reader of heroic fantasy, connoisseur of peanut butter, sipper of coffee."
+# why_paragraph_1: "If you want to learn to program, you don't need lessons. You need to write a lot of code and have a great time doing it."
+# why_paragraph_2_prefix: "That's what programming is about. It's gotta be fun. Not fun like"
+# why_paragraph_2_italic: "yay a badge"
+# why_paragraph_2_center: "but fun like"
+# why_paragraph_2_italic_caps: "NO MOM I HAVE TO FINISH THE LEVEL!"
+# why_paragraph_2_suffix: "That's why CodeCombat is a multiplayer game, not a gamified lesson course. We won't stop until you can't stop--but this time, that's a good thing."
+# why_paragraph_3: "If you're going to get addicted to some game, get addicted to this one and become one of the wizards of the tech age."
+# press_title: "Bloggers/Press"
+# press_paragraph_1_prefix: "Want to write about us? Feel free to download and use all of the resources included in our"
+# press_paragraph_1_link: "press packet"
+# press_paragraph_1_suffix: ". All logos and images may be used without contacting us directly."
+# team: "Team"
+# george_title: "CEO"
+# george_blurb: "Businesser"
+# scott_title: "Programmer"
+# scott_blurb: "Reasonable One"
+# nick_title: "Programmer"
+# nick_blurb: "Motivation Guru"
+# michael_title: "Programmer"
+# michael_blurb: "Sys Admin"
+# matt_title: "Programmer"
+# matt_blurb: "Bicyclist"
# legal:
# page_title: "Legal"
diff --git a/app/locale/fi.coffee b/app/locale/fi.coffee
index 4a00e59e4..08153e7a9 100644
--- a/app/locale/fi.coffee
+++ b/app/locale/fi.coffee
@@ -79,6 +79,7 @@ module.exports = nativeDescription: "suomi", englishDescription: "Finnish", tran
# recover:
# recover_account_title: "Recover Account"
# send_password: "Send Recovery Password"
+# recovery_sent: "Recovery email sent."
# signup:
# create_account_title: "Create Account to Save Progress"
@@ -557,7 +558,7 @@ module.exports = nativeDescription: "suomi", englishDescription: "Finnish", tran
# grassy: "Grassy"
# fork_title: "Fork New Version"
# fork_creating: "Creating Fork..."
-# randomize: "Randomize"
+# generate_terrain: "Generate Terrain"
# more: "More"
# wiki: "Wiki"
# live_chat: "Live Chat"
@@ -567,6 +568,7 @@ module.exports = nativeDescription: "suomi", englishDescription: "Finnish", tran
# level_tab_settings: "Settings"
# level_tab_components: "Components"
# level_tab_systems: "Systems"
+# level_tab_docs: "Documentation"
# level_tab_thangs_title: "Current Thangs"
# level_tab_thangs_all: "All"
# level_tab_thangs_conditions: "Starting Conditions"
@@ -642,27 +644,29 @@ module.exports = nativeDescription: "suomi", englishDescription: "Finnish", tran
# player: "Player"
# about:
-# who_is_codecombat: "Who is CodeCombat?"
# why_codecombat: "Why CodeCombat?"
-# who_description_prefix: "together started CodeCombat in 2013. We also created "
-# who_description_suffix: "in 2008, growing it to the #1 web and iOS application for learning to write Chinese and Japanese characters."
-# who_description_ending: "Now it's time to teach people to write code."
-# why_paragraph_1: "When making Skritter, George didn't know how to program and was constantly frustrated by his inability to implement his ideas. Afterwards, he tried learning, but the lessons were too slow. His housemate, wanting to reskill and stop teaching, tried Codecademy, but \"got bored.\" Each week another friend started Codecademy, then dropped off. We realized it was the same problem we'd solved with Skritter: people learning a skill via slow, intensive lessons when what they need is fast, extensive practice. We know how to fix that."
-# why_paragraph_2: "Need to learn to code? You don't need lessons. You need to write a lot of code and have a great time doing it."
-# why_paragraph_3_prefix: "That's what programming is about. It's gotta be fun. Not fun like"
-# why_paragraph_3_italic: "yay a badge"
-# why_paragraph_3_center: "but fun like"
-# why_paragraph_3_italic_caps: "NO MOM I HAVE TO FINISH THE LEVEL!"
-# why_paragraph_3_suffix: "That's why CodeCombat is a multiplayer game, not a gamified lesson course. We won't stop until you can't stop--but this time, that's a good thing."
-# why_paragraph_4: "If you're going to get addicted to some game, get addicted to this one and become one of the wizards of the tech age."
-# why_ending: "And hey, it's free. "
-# why_ending_url: "Start wizarding now!"
-# george_description: "CEO, business guy, web designer, game designer, and champion of beginning programmers everywhere."
-# scott_description: "Programmer extraordinaire, software architect, kitchen wizard, and master of finances. Scott is the reasonable one."
-# nick_description: "Programming wizard, eccentric motivation mage, and upside-down experimenter. Nick can do anything and chooses to build CodeCombat."
-# jeremy_description: "Customer support mage, usability tester, and community organizer; you've probably already spoken with Jeremy."
-# michael_description: "Programmer, sys-admin, and undergrad technical wunderkind, Michael is the person keeping our servers online."
-# matt_description: "Bicyclist, Software Engineer, reader of heroic fantasy, connoisseur of peanut butter, sipper of coffee."
+# why_paragraph_1: "If you want to learn to program, you don't need lessons. You need to write a lot of code and have a great time doing it."
+# why_paragraph_2_prefix: "That's what programming is about. It's gotta be fun. Not fun like"
+# why_paragraph_2_italic: "yay a badge"
+# why_paragraph_2_center: "but fun like"
+# why_paragraph_2_italic_caps: "NO MOM I HAVE TO FINISH THE LEVEL!"
+# why_paragraph_2_suffix: "That's why CodeCombat is a multiplayer game, not a gamified lesson course. We won't stop until you can't stop--but this time, that's a good thing."
+# why_paragraph_3: "If you're going to get addicted to some game, get addicted to this one and become one of the wizards of the tech age."
+# press_title: "Bloggers/Press"
+# press_paragraph_1_prefix: "Want to write about us? Feel free to download and use all of the resources included in our"
+# press_paragraph_1_link: "press packet"
+# press_paragraph_1_suffix: ". All logos and images may be used without contacting us directly."
+# team: "Team"
+# george_title: "CEO"
+# george_blurb: "Businesser"
+# scott_title: "Programmer"
+# scott_blurb: "Reasonable One"
+# nick_title: "Programmer"
+# nick_blurb: "Motivation Guru"
+# michael_title: "Programmer"
+# michael_blurb: "Sys Admin"
+# matt_title: "Programmer"
+# matt_blurb: "Bicyclist"
# legal:
# page_title: "Legal"
diff --git a/app/locale/fr.coffee b/app/locale/fr.coffee
index e46ce838a..5254dbfa3 100644
--- a/app/locale/fr.coffee
+++ b/app/locale/fr.coffee
@@ -79,6 +79,7 @@ module.exports = nativeDescription: "français", englishDescription: "French", t
recover:
recover_account_title: "Récupérer son compte"
send_password: "Envoyer le mot de passe de récupération"
+# recovery_sent: "Recovery email sent."
signup:
create_account_title: "Créer un compte pour sauvegarder votre progression"
@@ -557,7 +558,7 @@ module.exports = nativeDescription: "français", englishDescription: "French", t
# grassy: "Grassy"
fork_title: "Fork une nouvelle version"
fork_creating: "Créer un Fork..."
-# randomize: "Randomize"
+# generate_terrain: "Generate Terrain"
more: "Plus"
wiki: "Wiki"
live_chat: "Chat en live"
@@ -567,6 +568,7 @@ module.exports = nativeDescription: "français", englishDescription: "French", t
level_tab_settings: "Paramètres"
level_tab_components: "Composants"
level_tab_systems: "Systèmes"
+# level_tab_docs: "Documentation"
level_tab_thangs_title: "Thangs actuels"
level_tab_thangs_all: "Tout"
level_tab_thangs_conditions: "Conditions de départ"
@@ -642,27 +644,29 @@ module.exports = nativeDescription: "français", englishDescription: "French", t
player: "Joueur"
about:
- who_is_codecombat: "Qui est CodeCombat?"
why_codecombat: "Pourquoi CodeCombat?"
- who_description_prefix: "ont lancé CodeCombat ensemble en 2013. Nous avons aussi créé "
- who_description_suffix: "en 2008, l'améliorant jusqu'au rang de première application web et iOS pour apprendre à écrire les caractères chinois et japonais."
- who_description_ending: "Maintenant nous apprenons aux gens à coder."
- why_paragraph_1: "En développant Skritter, George ne savait pas programmer et était frustré de ne pas pouvoir implémenter ses idées. Ensuite, il essaya d'apprendre, mais les cours n'étaient pas assez rapides. Son colocataire, voulant se requalifier et arrêter d'apprendre, essaya Codecademy, mais \"s'ennuya.\" Chaque semaine un nouvel ami commençait Codecademy, puis abandonnait. Nous nous sommes rendus compte que nous avions résolu le même problème avec Skritter: les gens apprennant grâce à des cours lents et intensifs quand nous avons besoin d'expérience rapide et intensive. Nous savons comment remédier à ça."
- why_paragraph_2: "Besoin d'apprendre à développer? Vous n'avez pas besoin de cours. Vous avez besoin d'écrire beaucoup de code et de vous amuser en le faisant."
- why_paragraph_3_prefix: "C'est ce dont il s'agit en programmation. Ça doit être amusant. Pas amusant comme"
- why_paragraph_3_italic: "Génial un badge"
- why_paragraph_3_center: "Mais amusant comme"
- why_paragraph_3_italic_caps: "NAN MAMAN JE DOIS FINIR MON NIVEAU!"
- why_paragraph_3_suffix: "C'est pourquoi CodeCombat est un jeu multijoueur, pas un cours avec une leçon jouée. Nous n'arrêterons pas avant que vous ne puissiez plus arrêter — mais cette fois, c'est une bonne chose."
- why_paragraph_4: "Si vous devez devenir accro à un jeu, accrochez-vous à celui-ci et devenez un des mages de l'âge de la technologie."
- why_ending: "Et oh, c'est gratuit. "
- why_ending_url: "Commence ton apprentissage maintenant!"
- george_description: "PDG, homme d'affaire, web designer, game designer, et champion des programmeurs débutants."
- scott_description: "Programmeur extraordinaire, architecte logiciel, assistant cuisinier, et maitre de la finance. Scott est le raisonnable."
- nick_description: "Assistant programmeur, mage à la motivation excentrique, et bidouilleur de l'extrême. Nick peut faire n'importe quoi mais il a choisi CodeCombat."
- jeremy_description: "Mage de l'assistance client, testeur de maniabilité, et community manager; vous avez probablement déjà parlé avec Jeremy."
- michael_description: "Programmeur, administrateur réseau, et l'enfant prodige du premier cycle, Michael est la personne qui maintient nos serveurs en ligne."
-# matt_description: "Bicyclist, Software Engineer, reader of heroic fantasy, connoisseur of peanut butter, sipper of coffee."
+ why_paragraph_1: "Besoin d'apprendre à développer? Vous n'avez pas besoin de cours. Vous avez besoin d'écrire beaucoup de code et de vous amuser en le faisant."
+ why_paragraph_2_prefix: "C'est ce dont il s'agit en programmation. Ça doit être amusant. Pas amusant comme"
+ why_paragraph_2_italic: "Génial un badge"
+ why_paragraph_2_center: "Mais amusant comme"
+ why_paragraph_2_italic_caps: "NAN MAMAN JE DOIS FINIR MON NIVEAU!"
+ why_paragraph_2_suffix: "C'est pourquoi CodeCombat est un jeu multijoueur, pas un cours avec une leçon jouée. Nous n'arrêterons pas avant que vous ne puissiez plus arrêter — mais cette fois, c'est une bonne chose."
+ why_paragraph_3: "Si vous devez devenir accro à un jeu, accrochez-vous à celui-ci et devenez un des mages de l'âge de la technologie."
+# press_title: "Bloggers/Press"
+# press_paragraph_1_prefix: "Want to write about us? Feel free to download and use all of the resources included in our"
+# press_paragraph_1_link: "press packet"
+# press_paragraph_1_suffix: ". All logos and images may be used without contacting us directly."
+# team: "Team"
+# george_title: "CEO"
+# george_blurb: "Businesser"
+# scott_title: "Programmer"
+# scott_blurb: "Reasonable One"
+# nick_title: "Programmer"
+# nick_blurb: "Motivation Guru"
+# michael_title: "Programmer"
+# michael_blurb: "Sys Admin"
+# matt_title: "Programmer"
+# matt_blurb: "Bicyclist"
legal:
page_title: "Légal"
diff --git a/app/locale/he.coffee b/app/locale/he.coffee
index 3dd3b47b8..c64984ae4 100644
--- a/app/locale/he.coffee
+++ b/app/locale/he.coffee
@@ -79,6 +79,7 @@ module.exports = nativeDescription: "עברית", englishDescription: "Hebrew",
recover:
recover_account_title: "שחזר סיסמה"
send_password: "שלח סיסמה חדשה"
+# recovery_sent: "Recovery email sent."
signup:
create_account_title: "הירשם כדי לשמור את התקדמותך"
@@ -557,7 +558,7 @@ module.exports = nativeDescription: "עברית", englishDescription: "Hebrew",
# grassy: "Grassy"
# fork_title: "Fork New Version"
# fork_creating: "Creating Fork..."
-# randomize: "Randomize"
+# generate_terrain: "Generate Terrain"
# more: "More"
# wiki: "Wiki"
# live_chat: "Live Chat"
@@ -567,6 +568,7 @@ module.exports = nativeDescription: "עברית", englishDescription: "Hebrew",
# level_tab_settings: "Settings"
# level_tab_components: "Components"
# level_tab_systems: "Systems"
+# level_tab_docs: "Documentation"
# level_tab_thangs_title: "Current Thangs"
# level_tab_thangs_all: "All"
# level_tab_thangs_conditions: "Starting Conditions"
@@ -642,27 +644,29 @@ module.exports = nativeDescription: "עברית", englishDescription: "Hebrew",
# player: "Player"
# about:
-# who_is_codecombat: "Who is CodeCombat?"
# why_codecombat: "Why CodeCombat?"
-# who_description_prefix: "together started CodeCombat in 2013. We also created "
-# who_description_suffix: "in 2008, growing it to the #1 web and iOS application for learning to write Chinese and Japanese characters."
-# who_description_ending: "Now it's time to teach people to write code."
-# why_paragraph_1: "When making Skritter, George didn't know how to program and was constantly frustrated by his inability to implement his ideas. Afterwards, he tried learning, but the lessons were too slow. His housemate, wanting to reskill and stop teaching, tried Codecademy, but \"got bored.\" Each week another friend started Codecademy, then dropped off. We realized it was the same problem we'd solved with Skritter: people learning a skill via slow, intensive lessons when what they need is fast, extensive practice. We know how to fix that."
-# why_paragraph_2: "Need to learn to code? You don't need lessons. You need to write a lot of code and have a great time doing it."
-# why_paragraph_3_prefix: "That's what programming is about. It's gotta be fun. Not fun like"
-# why_paragraph_3_italic: "yay a badge"
-# why_paragraph_3_center: "but fun like"
-# why_paragraph_3_italic_caps: "NO MOM I HAVE TO FINISH THE LEVEL!"
-# why_paragraph_3_suffix: "That's why CodeCombat is a multiplayer game, not a gamified lesson course. We won't stop until you can't stop--but this time, that's a good thing."
-# why_paragraph_4: "If you're going to get addicted to some game, get addicted to this one and become one of the wizards of the tech age."
-# why_ending: "And hey, it's free. "
-# why_ending_url: "Start wizarding now!"
-# george_description: "CEO, business guy, web designer, game designer, and champion of beginning programmers everywhere."
-# scott_description: "Programmer extraordinaire, software architect, kitchen wizard, and master of finances. Scott is the reasonable one."
-# nick_description: "Programming wizard, eccentric motivation mage, and upside-down experimenter. Nick can do anything and chooses to build CodeCombat."
-# jeremy_description: "Customer support mage, usability tester, and community organizer; you've probably already spoken with Jeremy."
-# michael_description: "Programmer, sys-admin, and undergrad technical wunderkind, Michael is the person keeping our servers online."
-# matt_description: "Bicyclist, Software Engineer, reader of heroic fantasy, connoisseur of peanut butter, sipper of coffee."
+# why_paragraph_1: "If you want to learn to program, you don't need lessons. You need to write a lot of code and have a great time doing it."
+# why_paragraph_2_prefix: "That's what programming is about. It's gotta be fun. Not fun like"
+# why_paragraph_2_italic: "yay a badge"
+# why_paragraph_2_center: "but fun like"
+# why_paragraph_2_italic_caps: "NO MOM I HAVE TO FINISH THE LEVEL!"
+# why_paragraph_2_suffix: "That's why CodeCombat is a multiplayer game, not a gamified lesson course. We won't stop until you can't stop--but this time, that's a good thing."
+# why_paragraph_3: "If you're going to get addicted to some game, get addicted to this one and become one of the wizards of the tech age."
+# press_title: "Bloggers/Press"
+# press_paragraph_1_prefix: "Want to write about us? Feel free to download and use all of the resources included in our"
+# press_paragraph_1_link: "press packet"
+# press_paragraph_1_suffix: ". All logos and images may be used without contacting us directly."
+# team: "Team"
+# george_title: "CEO"
+# george_blurb: "Businesser"
+# scott_title: "Programmer"
+# scott_blurb: "Reasonable One"
+# nick_title: "Programmer"
+# nick_blurb: "Motivation Guru"
+# michael_title: "Programmer"
+# michael_blurb: "Sys Admin"
+# matt_title: "Programmer"
+# matt_blurb: "Bicyclist"
# legal:
# page_title: "Legal"
diff --git a/app/locale/hi.coffee b/app/locale/hi.coffee
index 22a3b4280..fe176003a 100644
--- a/app/locale/hi.coffee
+++ b/app/locale/hi.coffee
@@ -79,6 +79,7 @@ module.exports = nativeDescription: "मानक हिन्दी", englishDe
# recover:
# recover_account_title: "Recover Account"
# send_password: "Send Recovery Password"
+# recovery_sent: "Recovery email sent."
# signup:
# create_account_title: "Create Account to Save Progress"
@@ -557,7 +558,7 @@ module.exports = nativeDescription: "मानक हिन्दी", englishDe
# grassy: "Grassy"
# fork_title: "Fork New Version"
# fork_creating: "Creating Fork..."
-# randomize: "Randomize"
+# generate_terrain: "Generate Terrain"
# more: "More"
# wiki: "Wiki"
# live_chat: "Live Chat"
@@ -567,6 +568,7 @@ module.exports = nativeDescription: "मानक हिन्दी", englishDe
# level_tab_settings: "Settings"
# level_tab_components: "Components"
# level_tab_systems: "Systems"
+# level_tab_docs: "Documentation"
# level_tab_thangs_title: "Current Thangs"
# level_tab_thangs_all: "All"
# level_tab_thangs_conditions: "Starting Conditions"
@@ -642,27 +644,29 @@ module.exports = nativeDescription: "मानक हिन्दी", englishDe
# player: "Player"
# about:
-# who_is_codecombat: "Who is CodeCombat?"
# why_codecombat: "Why CodeCombat?"
-# who_description_prefix: "together started CodeCombat in 2013. We also created "
-# who_description_suffix: "in 2008, growing it to the #1 web and iOS application for learning to write Chinese and Japanese characters."
-# who_description_ending: "Now it's time to teach people to write code."
-# why_paragraph_1: "When making Skritter, George didn't know how to program and was constantly frustrated by his inability to implement his ideas. Afterwards, he tried learning, but the lessons were too slow. His housemate, wanting to reskill and stop teaching, tried Codecademy, but \"got bored.\" Each week another friend started Codecademy, then dropped off. We realized it was the same problem we'd solved with Skritter: people learning a skill via slow, intensive lessons when what they need is fast, extensive practice. We know how to fix that."
-# why_paragraph_2: "Need to learn to code? You don't need lessons. You need to write a lot of code and have a great time doing it."
-# why_paragraph_3_prefix: "That's what programming is about. It's gotta be fun. Not fun like"
-# why_paragraph_3_italic: "yay a badge"
-# why_paragraph_3_center: "but fun like"
-# why_paragraph_3_italic_caps: "NO MOM I HAVE TO FINISH THE LEVEL!"
-# why_paragraph_3_suffix: "That's why CodeCombat is a multiplayer game, not a gamified lesson course. We won't stop until you can't stop--but this time, that's a good thing."
-# why_paragraph_4: "If you're going to get addicted to some game, get addicted to this one and become one of the wizards of the tech age."
-# why_ending: "And hey, it's free. "
-# why_ending_url: "Start wizarding now!"
-# george_description: "CEO, business guy, web designer, game designer, and champion of beginning programmers everywhere."
-# scott_description: "Programmer extraordinaire, software architect, kitchen wizard, and master of finances. Scott is the reasonable one."
-# nick_description: "Programming wizard, eccentric motivation mage, and upside-down experimenter. Nick can do anything and chooses to build CodeCombat."
-# jeremy_description: "Customer support mage, usability tester, and community organizer; you've probably already spoken with Jeremy."
-# michael_description: "Programmer, sys-admin, and undergrad technical wunderkind, Michael is the person keeping our servers online."
-# matt_description: "Bicyclist, Software Engineer, reader of heroic fantasy, connoisseur of peanut butter, sipper of coffee."
+# why_paragraph_1: "If you want to learn to program, you don't need lessons. You need to write a lot of code and have a great time doing it."
+# why_paragraph_2_prefix: "That's what programming is about. It's gotta be fun. Not fun like"
+# why_paragraph_2_italic: "yay a badge"
+# why_paragraph_2_center: "but fun like"
+# why_paragraph_2_italic_caps: "NO MOM I HAVE TO FINISH THE LEVEL!"
+# why_paragraph_2_suffix: "That's why CodeCombat is a multiplayer game, not a gamified lesson course. We won't stop until you can't stop--but this time, that's a good thing."
+# why_paragraph_3: "If you're going to get addicted to some game, get addicted to this one and become one of the wizards of the tech age."
+# press_title: "Bloggers/Press"
+# press_paragraph_1_prefix: "Want to write about us? Feel free to download and use all of the resources included in our"
+# press_paragraph_1_link: "press packet"
+# press_paragraph_1_suffix: ". All logos and images may be used without contacting us directly."
+# team: "Team"
+# george_title: "CEO"
+# george_blurb: "Businesser"
+# scott_title: "Programmer"
+# scott_blurb: "Reasonable One"
+# nick_title: "Programmer"
+# nick_blurb: "Motivation Guru"
+# michael_title: "Programmer"
+# michael_blurb: "Sys Admin"
+# matt_title: "Programmer"
+# matt_blurb: "Bicyclist"
# legal:
# page_title: "Legal"
diff --git a/app/locale/hu.coffee b/app/locale/hu.coffee
index c5dff3e03..4197cbdb8 100644
--- a/app/locale/hu.coffee
+++ b/app/locale/hu.coffee
@@ -79,6 +79,7 @@ module.exports = nativeDescription: "magyar", englishDescription: "Hungarian", t
recover:
recover_account_title: "Meglévő fiók visszaállítása"
# send_password: "Send Recovery Password"
+# recovery_sent: "Recovery email sent."
signup:
# create_account_title: "Create Account to Save Progress"
@@ -557,7 +558,7 @@ module.exports = nativeDescription: "magyar", englishDescription: "Hungarian", t
# grassy: "Grassy"
# fork_title: "Fork New Version"
# fork_creating: "Creating Fork..."
-# randomize: "Randomize"
+# generate_terrain: "Generate Terrain"
# more: "More"
# wiki: "Wiki"
# live_chat: "Live Chat"
@@ -567,6 +568,7 @@ module.exports = nativeDescription: "magyar", englishDescription: "Hungarian", t
# level_tab_settings: "Settings"
# level_tab_components: "Components"
# level_tab_systems: "Systems"
+# level_tab_docs: "Documentation"
# level_tab_thangs_title: "Current Thangs"
# level_tab_thangs_all: "All"
# level_tab_thangs_conditions: "Starting Conditions"
@@ -642,27 +644,29 @@ module.exports = nativeDescription: "magyar", englishDescription: "Hungarian", t
# player: "Player"
# about:
-# who_is_codecombat: "Who is CodeCombat?"
# why_codecombat: "Why CodeCombat?"
-# who_description_prefix: "together started CodeCombat in 2013. We also created "
-# who_description_suffix: "in 2008, growing it to the #1 web and iOS application for learning to write Chinese and Japanese characters."
-# who_description_ending: "Now it's time to teach people to write code."
-# why_paragraph_1: "When making Skritter, George didn't know how to program and was constantly frustrated by his inability to implement his ideas. Afterwards, he tried learning, but the lessons were too slow. His housemate, wanting to reskill and stop teaching, tried Codecademy, but \"got bored.\" Each week another friend started Codecademy, then dropped off. We realized it was the same problem we'd solved with Skritter: people learning a skill via slow, intensive lessons when what they need is fast, extensive practice. We know how to fix that."
-# why_paragraph_2: "Need to learn to code? You don't need lessons. You need to write a lot of code and have a great time doing it."
-# why_paragraph_3_prefix: "That's what programming is about. It's gotta be fun. Not fun like"
-# why_paragraph_3_italic: "yay a badge"
-# why_paragraph_3_center: "but fun like"
-# why_paragraph_3_italic_caps: "NO MOM I HAVE TO FINISH THE LEVEL!"
-# why_paragraph_3_suffix: "That's why CodeCombat is a multiplayer game, not a gamified lesson course. We won't stop until you can't stop--but this time, that's a good thing."
-# why_paragraph_4: "If you're going to get addicted to some game, get addicted to this one and become one of the wizards of the tech age."
-# why_ending: "And hey, it's free. "
-# why_ending_url: "Start wizarding now!"
-# george_description: "CEO, business guy, web designer, game designer, and champion of beginning programmers everywhere."
-# scott_description: "Programmer extraordinaire, software architect, kitchen wizard, and master of finances. Scott is the reasonable one."
-# nick_description: "Programming wizard, eccentric motivation mage, and upside-down experimenter. Nick can do anything and chooses to build CodeCombat."
-# jeremy_description: "Customer support mage, usability tester, and community organizer; you've probably already spoken with Jeremy."
-# michael_description: "Programmer, sys-admin, and undergrad technical wunderkind, Michael is the person keeping our servers online."
-# matt_description: "Bicyclist, Software Engineer, reader of heroic fantasy, connoisseur of peanut butter, sipper of coffee."
+# why_paragraph_1: "If you want to learn to program, you don't need lessons. You need to write a lot of code and have a great time doing it."
+# why_paragraph_2_prefix: "That's what programming is about. It's gotta be fun. Not fun like"
+# why_paragraph_2_italic: "yay a badge"
+# why_paragraph_2_center: "but fun like"
+# why_paragraph_2_italic_caps: "NO MOM I HAVE TO FINISH THE LEVEL!"
+# why_paragraph_2_suffix: "That's why CodeCombat is a multiplayer game, not a gamified lesson course. We won't stop until you can't stop--but this time, that's a good thing."
+# why_paragraph_3: "If you're going to get addicted to some game, get addicted to this one and become one of the wizards of the tech age."
+# press_title: "Bloggers/Press"
+# press_paragraph_1_prefix: "Want to write about us? Feel free to download and use all of the resources included in our"
+# press_paragraph_1_link: "press packet"
+# press_paragraph_1_suffix: ". All logos and images may be used without contacting us directly."
+# team: "Team"
+# george_title: "CEO"
+# george_blurb: "Businesser"
+# scott_title: "Programmer"
+# scott_blurb: "Reasonable One"
+# nick_title: "Programmer"
+# nick_blurb: "Motivation Guru"
+# michael_title: "Programmer"
+# michael_blurb: "Sys Admin"
+# matt_title: "Programmer"
+# matt_blurb: "Bicyclist"
# legal:
# page_title: "Legal"
diff --git a/app/locale/id.coffee b/app/locale/id.coffee
index 4af035a4a..e5b328776 100644
--- a/app/locale/id.coffee
+++ b/app/locale/id.coffee
@@ -79,6 +79,7 @@ module.exports = nativeDescription: "Bahasa Indonesia", englishDescription: "Ind
# recover:
# recover_account_title: "Recover Account"
# send_password: "Send Recovery Password"
+# recovery_sent: "Recovery email sent."
# signup:
# create_account_title: "Create Account to Save Progress"
@@ -557,7 +558,7 @@ module.exports = nativeDescription: "Bahasa Indonesia", englishDescription: "Ind
# grassy: "Grassy"
# fork_title: "Fork New Version"
# fork_creating: "Creating Fork..."
-# randomize: "Randomize"
+# generate_terrain: "Generate Terrain"
# more: "More"
# wiki: "Wiki"
# live_chat: "Live Chat"
@@ -567,6 +568,7 @@ module.exports = nativeDescription: "Bahasa Indonesia", englishDescription: "Ind
# level_tab_settings: "Settings"
# level_tab_components: "Components"
# level_tab_systems: "Systems"
+# level_tab_docs: "Documentation"
# level_tab_thangs_title: "Current Thangs"
# level_tab_thangs_all: "All"
# level_tab_thangs_conditions: "Starting Conditions"
@@ -642,27 +644,29 @@ module.exports = nativeDescription: "Bahasa Indonesia", englishDescription: "Ind
# player: "Player"
# about:
-# who_is_codecombat: "Who is CodeCombat?"
# why_codecombat: "Why CodeCombat?"
-# who_description_prefix: "together started CodeCombat in 2013. We also created "
-# who_description_suffix: "in 2008, growing it to the #1 web and iOS application for learning to write Chinese and Japanese characters."
-# who_description_ending: "Now it's time to teach people to write code."
-# why_paragraph_1: "When making Skritter, George didn't know how to program and was constantly frustrated by his inability to implement his ideas. Afterwards, he tried learning, but the lessons were too slow. His housemate, wanting to reskill and stop teaching, tried Codecademy, but \"got bored.\" Each week another friend started Codecademy, then dropped off. We realized it was the same problem we'd solved with Skritter: people learning a skill via slow, intensive lessons when what they need is fast, extensive practice. We know how to fix that."
-# why_paragraph_2: "Need to learn to code? You don't need lessons. You need to write a lot of code and have a great time doing it."
-# why_paragraph_3_prefix: "That's what programming is about. It's gotta be fun. Not fun like"
-# why_paragraph_3_italic: "yay a badge"
-# why_paragraph_3_center: "but fun like"
-# why_paragraph_3_italic_caps: "NO MOM I HAVE TO FINISH THE LEVEL!"
-# why_paragraph_3_suffix: "That's why CodeCombat is a multiplayer game, not a gamified lesson course. We won't stop until you can't stop--but this time, that's a good thing."
-# why_paragraph_4: "If you're going to get addicted to some game, get addicted to this one and become one of the wizards of the tech age."
-# why_ending: "And hey, it's free. "
-# why_ending_url: "Start wizarding now!"
-# george_description: "CEO, business guy, web designer, game designer, and champion of beginning programmers everywhere."
-# scott_description: "Programmer extraordinaire, software architect, kitchen wizard, and master of finances. Scott is the reasonable one."
-# nick_description: "Programming wizard, eccentric motivation mage, and upside-down experimenter. Nick can do anything and chooses to build CodeCombat."
-# jeremy_description: "Customer support mage, usability tester, and community organizer; you've probably already spoken with Jeremy."
-# michael_description: "Programmer, sys-admin, and undergrad technical wunderkind, Michael is the person keeping our servers online."
-# matt_description: "Bicyclist, Software Engineer, reader of heroic fantasy, connoisseur of peanut butter, sipper of coffee."
+# why_paragraph_1: "If you want to learn to program, you don't need lessons. You need to write a lot of code and have a great time doing it."
+# why_paragraph_2_prefix: "That's what programming is about. It's gotta be fun. Not fun like"
+# why_paragraph_2_italic: "yay a badge"
+# why_paragraph_2_center: "but fun like"
+# why_paragraph_2_italic_caps: "NO MOM I HAVE TO FINISH THE LEVEL!"
+# why_paragraph_2_suffix: "That's why CodeCombat is a multiplayer game, not a gamified lesson course. We won't stop until you can't stop--but this time, that's a good thing."
+# why_paragraph_3: "If you're going to get addicted to some game, get addicted to this one and become one of the wizards of the tech age."
+# press_title: "Bloggers/Press"
+# press_paragraph_1_prefix: "Want to write about us? Feel free to download and use all of the resources included in our"
+# press_paragraph_1_link: "press packet"
+# press_paragraph_1_suffix: ". All logos and images may be used without contacting us directly."
+# team: "Team"
+# george_title: "CEO"
+# george_blurb: "Businesser"
+# scott_title: "Programmer"
+# scott_blurb: "Reasonable One"
+# nick_title: "Programmer"
+# nick_blurb: "Motivation Guru"
+# michael_title: "Programmer"
+# michael_blurb: "Sys Admin"
+# matt_title: "Programmer"
+# matt_blurb: "Bicyclist"
# legal:
# page_title: "Legal"
diff --git a/app/locale/it.coffee b/app/locale/it.coffee
index f481ebbab..4bf2a3163 100644
--- a/app/locale/it.coffee
+++ b/app/locale/it.coffee
@@ -79,6 +79,7 @@ module.exports = nativeDescription: "Italiano", englishDescription: "Italian", t
recover:
recover_account_title: "Recupera account"
send_password: "Invia password di recupero"
+# recovery_sent: "Recovery email sent."
signup:
create_account_title: "Crea un account per salvare le partite"
@@ -557,7 +558,7 @@ module.exports = nativeDescription: "Italiano", englishDescription: "Italian", t
# grassy: "Grassy"
# fork_title: "Fork New Version"
# fork_creating: "Creating Fork..."
-# randomize: "Randomize"
+# generate_terrain: "Generate Terrain"
# more: "More"
# wiki: "Wiki"
# live_chat: "Live Chat"
@@ -567,6 +568,7 @@ module.exports = nativeDescription: "Italiano", englishDescription: "Italian", t
level_tab_settings: "Impostazioni"
level_tab_components: "Componenti"
level_tab_systems: "Sistemi"
+# level_tab_docs: "Documentation"
level_tab_thangs_title: "Thangs esistenti"
# level_tab_thangs_all: "All"
level_tab_thangs_conditions: "Condizioni iniziali"
@@ -642,27 +644,29 @@ module.exports = nativeDescription: "Italiano", englishDescription: "Italian", t
# player: "Player"
about:
- who_is_codecombat: "Chi c'è in CodeCombat?"
why_codecombat: "Perché CodeCombat?"
- who_description_prefix: "insieme hanno iniziato CodeCombat nel 2013. Abbiamo anche creato "
- who_description_suffix: "nel 2008, portandola al primo posto nelle applicazioni web e iOS per imparare a scrivere i caratteri cinesi e giapponesi."
- who_description_ending: "Adesso è il momento di insegnare alla gente a scrivere codice."
-# why_paragraph_1: "When making Skritter, George didn't know how to program and was constantly frustrated by his inability to implement his ideas. Afterwards, he tried learning, but the lessons were too slow. His housemate, wanting to reskill and stop teaching, tried Codecademy, but \"got bored.\" Each week another friend started Codecademy, then dropped off. We realized it was the same problem we'd solved with Skritter: people learning a skill via slow, intensive lessons when what they need is fast, extensive practice. We know how to fix that."
-# why_paragraph_2: "Need to learn to code? You don't need lessons. You need to write a lot of code and have a great time doing it."
-# why_paragraph_3_prefix: "That's what programming is about. It's gotta be fun. Not fun like"
-# why_paragraph_3_italic: "yay a badge"
-# why_paragraph_3_center: "but fun like"
-# why_paragraph_3_italic_caps: "NO MOM I HAVE TO FINISH THE LEVEL!"
-# why_paragraph_3_suffix: "That's why CodeCombat is a multiplayer game, not a gamified lesson course. We won't stop until you can't stop--but this time, that's a good thing."
-# why_paragraph_4: "If you're going to get addicted to some game, get addicted to this one and become one of the wizards of the tech age."
-# why_ending: "And hey, it's free. "
-# why_ending_url: "Start wizarding now!"
-# george_description: "CEO, business guy, web designer, game designer, and champion of beginning programmers everywhere."
-# scott_description: "Programmer extraordinaire, software architect, kitchen wizard, and master of finances. Scott is the reasonable one."
-# nick_description: "Programming wizard, eccentric motivation mage, and upside-down experimenter. Nick can do anything and chooses to build CodeCombat."
-# jeremy_description: "Customer support mage, usability tester, and community organizer; you've probably already spoken with Jeremy."
-# michael_description: "Programmer, sys-admin, and undergrad technical wunderkind, Michael is the person keeping our servers online."
-# matt_description: "Bicyclist, Software Engineer, reader of heroic fantasy, connoisseur of peanut butter, sipper of coffee."
+# why_paragraph_1: "If you want to learn to program, you don't need lessons. You need to write a lot of code and have a great time doing it."
+# why_paragraph_2_prefix: "That's what programming is about. It's gotta be fun. Not fun like"
+# why_paragraph_2_italic: "yay a badge"
+# why_paragraph_2_center: "but fun like"
+# why_paragraph_2_italic_caps: "NO MOM I HAVE TO FINISH THE LEVEL!"
+# why_paragraph_2_suffix: "That's why CodeCombat is a multiplayer game, not a gamified lesson course. We won't stop until you can't stop--but this time, that's a good thing."
+# why_paragraph_3: "If you're going to get addicted to some game, get addicted to this one and become one of the wizards of the tech age."
+# press_title: "Bloggers/Press"
+# press_paragraph_1_prefix: "Want to write about us? Feel free to download and use all of the resources included in our"
+# press_paragraph_1_link: "press packet"
+# press_paragraph_1_suffix: ". All logos and images may be used without contacting us directly."
+# team: "Team"
+# george_title: "CEO"
+# george_blurb: "Businesser"
+# scott_title: "Programmer"
+# scott_blurb: "Reasonable One"
+# nick_title: "Programmer"
+# nick_blurb: "Motivation Guru"
+# michael_title: "Programmer"
+# michael_blurb: "Sys Admin"
+# matt_title: "Programmer"
+# matt_blurb: "Bicyclist"
legal:
page_title: "Questioni legali"
diff --git a/app/locale/ja.coffee b/app/locale/ja.coffee
index 2c6f283bb..2e8d159ed 100644
--- a/app/locale/ja.coffee
+++ b/app/locale/ja.coffee
@@ -79,6 +79,7 @@ module.exports = nativeDescription: "日本語", englishDescription: "Japanese",
recover:
recover_account_title: "パスワードを忘れた場合"
send_password: "送信する"
+# recovery_sent: "Recovery email sent."
signup:
create_account_title: "進行状況保存用のアカウント作成"
@@ -557,7 +558,7 @@ module.exports = nativeDescription: "日本語", englishDescription: "Japanese",
# grassy: "Grassy"
# fork_title: "Fork New Version"
# fork_creating: "Creating Fork..."
-# randomize: "Randomize"
+# generate_terrain: "Generate Terrain"
# more: "More"
# wiki: "Wiki"
# live_chat: "Live Chat"
@@ -567,6 +568,7 @@ module.exports = nativeDescription: "日本語", englishDescription: "Japanese",
# level_tab_settings: "Settings"
# level_tab_components: "Components"
# level_tab_systems: "Systems"
+# level_tab_docs: "Documentation"
# level_tab_thangs_title: "Current Thangs"
# level_tab_thangs_all: "All"
# level_tab_thangs_conditions: "Starting Conditions"
@@ -642,27 +644,29 @@ module.exports = nativeDescription: "日本語", englishDescription: "Japanese",
# player: "Player"
# about:
-# who_is_codecombat: "Who is CodeCombat?"
# why_codecombat: "Why CodeCombat?"
-# who_description_prefix: "together started CodeCombat in 2013. We also created "
-# who_description_suffix: "in 2008, growing it to the #1 web and iOS application for learning to write Chinese and Japanese characters."
-# who_description_ending: "Now it's time to teach people to write code."
-# why_paragraph_1: "When making Skritter, George didn't know how to program and was constantly frustrated by his inability to implement his ideas. Afterwards, he tried learning, but the lessons were too slow. His housemate, wanting to reskill and stop teaching, tried Codecademy, but \"got bored.\" Each week another friend started Codecademy, then dropped off. We realized it was the same problem we'd solved with Skritter: people learning a skill via slow, intensive lessons when what they need is fast, extensive practice. We know how to fix that."
-# why_paragraph_2: "Need to learn to code? You don't need lessons. You need to write a lot of code and have a great time doing it."
-# why_paragraph_3_prefix: "That's what programming is about. It's gotta be fun. Not fun like"
-# why_paragraph_3_italic: "yay a badge"
-# why_paragraph_3_center: "but fun like"
-# why_paragraph_3_italic_caps: "NO MOM I HAVE TO FINISH THE LEVEL!"
-# why_paragraph_3_suffix: "That's why CodeCombat is a multiplayer game, not a gamified lesson course. We won't stop until you can't stop--but this time, that's a good thing."
-# why_paragraph_4: "If you're going to get addicted to some game, get addicted to this one and become one of the wizards of the tech age."
-# why_ending: "And hey, it's free. "
-# why_ending_url: "Start wizarding now!"
-# george_description: "CEO, business guy, web designer, game designer, and champion of beginning programmers everywhere."
-# scott_description: "Programmer extraordinaire, software architect, kitchen wizard, and master of finances. Scott is the reasonable one."
-# nick_description: "Programming wizard, eccentric motivation mage, and upside-down experimenter. Nick can do anything and chooses to build CodeCombat."
-# jeremy_description: "Customer support mage, usability tester, and community organizer; you've probably already spoken with Jeremy."
-# michael_description: "Programmer, sys-admin, and undergrad technical wunderkind, Michael is the person keeping our servers online."
-# matt_description: "Bicyclist, Software Engineer, reader of heroic fantasy, connoisseur of peanut butter, sipper of coffee."
+# why_paragraph_1: "If you want to learn to program, you don't need lessons. You need to write a lot of code and have a great time doing it."
+# why_paragraph_2_prefix: "That's what programming is about. It's gotta be fun. Not fun like"
+# why_paragraph_2_italic: "yay a badge"
+# why_paragraph_2_center: "but fun like"
+# why_paragraph_2_italic_caps: "NO MOM I HAVE TO FINISH THE LEVEL!"
+# why_paragraph_2_suffix: "That's why CodeCombat is a multiplayer game, not a gamified lesson course. We won't stop until you can't stop--but this time, that's a good thing."
+# why_paragraph_3: "If you're going to get addicted to some game, get addicted to this one and become one of the wizards of the tech age."
+# press_title: "Bloggers/Press"
+# press_paragraph_1_prefix: "Want to write about us? Feel free to download and use all of the resources included in our"
+# press_paragraph_1_link: "press packet"
+# press_paragraph_1_suffix: ". All logos and images may be used without contacting us directly."
+# team: "Team"
+# george_title: "CEO"
+# george_blurb: "Businesser"
+# scott_title: "Programmer"
+# scott_blurb: "Reasonable One"
+# nick_title: "Programmer"
+# nick_blurb: "Motivation Guru"
+# michael_title: "Programmer"
+# michael_blurb: "Sys Admin"
+# matt_title: "Programmer"
+# matt_blurb: "Bicyclist"
# legal:
# page_title: "Legal"
diff --git a/app/locale/ko.coffee b/app/locale/ko.coffee
index 73e89e210..8d4e8f17f 100644
--- a/app/locale/ko.coffee
+++ b/app/locale/ko.coffee
@@ -79,6 +79,7 @@ module.exports = nativeDescription: "한국어", englishDescription: "Korean", t
recover:
recover_account_title: "계정 복구"
send_password: "복구 비밀번호 전송"
+# recovery_sent: "Recovery email sent."
signup:
create_account_title: "진행 상황을 저장하기 위해서 새 계정을 생성합니다"
@@ -557,7 +558,7 @@ module.exports = nativeDescription: "한국어", englishDescription: "Korean", t
grassy: "풀로 덮인"
fork_title: "새 버전 가져오기"
fork_creating: "포크 생성중..."
-# randomize: "Randomize"
+# generate_terrain: "Generate Terrain"
more: "더 보기"
wiki: "위키"
live_chat: "실시간 채팅"
@@ -567,6 +568,7 @@ module.exports = nativeDescription: "한국어", englishDescription: "Korean", t
level_tab_settings: "설정"
level_tab_components: "요소들"
level_tab_systems: "시스템"
+# level_tab_docs: "Documentation"
level_tab_thangs_title: "현재 Thangs"
# level_tab_thangs_all: "All"
level_tab_thangs_conditions: "컨디션 시작"
@@ -642,27 +644,29 @@ module.exports = nativeDescription: "한국어", englishDescription: "Korean", t
player: "플레이어"
about:
- who_is_codecombat: "코드 컴뱃은 누구인가?"
why_codecombat: "왜 코드 컴뱃이지?"
- who_description_prefix: "우리는 2013년에 함께 코드 컴뱃을 시작했으며 또한 우리는"
- who_description_suffix: "2008년에 중국어와 일본어를 배우기 위해 이를 IOS 마켓 1위로 키우고 있었습니다."
- who_description_ending: "이제 사람들에게 코드를 가르쳐야하는 시점이 다가왔다고 생각합니다."
- why_paragraph_1: "처음에 Skritter를 만들 때, George는 어떻게 프로그래밍을 하는지 전혀 몰랐습니다. 또한 그의 아이디어를 제대로 구현하지 못해 좌절하곤 했지요. 그 후에 그는 코딩을 배우려고 노력했지만 늘 진행속도가 느렸죠. 그때 그의 룸메이트가 코드아카데미를 통해 코딩을 배우려고 시도했으나, 너무 \"지루\"했습니다. 매주마다 다른 친구들이 코드아카데미를 통해 배우려고 시도했으나 글쎄요, 결과가 썩 좋진 않았습니다. 우리는 이것은 우리가 Skritter를 통해 해결한 문제와 같은 종류의 것임을 깨달았습니다: 느리고 강도높은 레슨을 통해 배우는 사람들은 좀 더 빠르고, 포괄적인 연습을 필요로 합니다. 우리는 그것을 어떻게 해결하는지 잘 알고 있습니다."
- why_paragraph_2: "프로그래밍을 배울 필요가 있으세요? 레슨 받을 필요 없습니다. 아마 엄청난 시간과 노력을 소모해야 할 것입니다."
- why_paragraph_3_prefix: "프로그래밍은 재미있어야 합니다."
- why_paragraph_3_italic: "여기 뱃지있어 받아가~"
- why_paragraph_3_center: "이런 단순히 뱃지얻는 식의 게임 말고,"
- why_paragraph_3_italic_caps: "아 엄마 나 이 레벨 반드시 끝내야 돼! <- 이런 방식 말고요."
- why_paragraph_3_suffix: "이것이 왜 코드 컴뱃이 멀티플레이 게임인지를 말해줍니다. 단순히 게임화된 레슨의 연장이 아닙니다. 우리는 당신이 너무 재밌어서 멈출 수 없을 때까지 절대 멈추지 않을 것입니다."
- why_paragraph_4: "만약 당신이 어떤 게임에 곧잘 빠진다면 이번엔 코드컴뱃을 한번 시도해보세요. 그리고 기술시대에 사는 마법사 중 하나가 되어보는 건 어떠세요?"
- why_ending: "이봐 이거 공짜래."
- why_ending_url: "지금 바로 마법사가 되어 보세요!"
- george_description: "CEO, 비즈니스맨, 웹디자이너, 게임 디자이너, 그리고 전세계의 초보 프로그래머들의 왕."
- scott_description: "비범한 프로그래머, 소프트웨어 아키텍쳐, 주방 마법사 그리고 재무의 신. Scott 은 매우 합리적인 사람입니다"
- nick_description: "프로그래밍 마법사, 별난 자극의 마술사, 거꾸로 생각하는것을 좋아하는 실험가. Nick은 뭐든지 할수있는 남자입니다. 그 뭐든지 중에 코드 컴뱃을 선택했죠. "
- jeremy_description: "고객 지원 마법사, 사용성 테스터, 커뮤니티 오거나이저; 당신은 아마 이미 Jeremy랑 이야기 했을거에요."
- michael_description: "프로그래머, 시스템 관리자, 기술 신동(대학생이래요),Michael 은 우리 서버를 계속 무결점상태로 유지시켜주는 사람입니다."
-# matt_description: "Bicyclist, Software Engineer, reader of heroic fantasy, connoisseur of peanut butter, sipper of coffee."
+ why_paragraph_1: "프로그래밍을 배울 필요가 있으세요? 레슨 받을 필요 없습니다. 아마 엄청난 시간과 노력을 소모해야 할 것입니다."
+ why_paragraph_2_prefix: "프로그래밍은 재미있어야 합니다."
+ why_paragraph_2_italic: "여기 뱃지있어 받아가~"
+ why_paragraph_2_center: "이런 단순히 뱃지얻는 식의 게임 말고,"
+ why_paragraph_2_italic_caps: "아 엄마 나 이 레벨 반드시 끝내야 돼! <- 이런 방식 말고요."
+ why_paragraph_2_suffix: "이것이 왜 코드 컴뱃이 멀티플레이 게임인지를 말해줍니다. 단순히 게임화된 레슨의 연장이 아닙니다. 우리는 당신이 너무 재밌어서 멈출 수 없을 때까지 절대 멈추지 않을 것입니다."
+ why_paragraph_3: "만약 당신이 어떤 게임에 곧잘 빠진다면 이번엔 코드컴뱃을 한번 시도해보세요. 그리고 기술시대에 사는 마법사 중 하나가 되어보는 건 어떠세요?"
+# press_title: "Bloggers/Press"
+# press_paragraph_1_prefix: "Want to write about us? Feel free to download and use all of the resources included in our"
+# press_paragraph_1_link: "press packet"
+# press_paragraph_1_suffix: ". All logos and images may be used without contacting us directly."
+# team: "Team"
+# george_title: "CEO"
+# george_blurb: "Businesser"
+# scott_title: "Programmer"
+# scott_blurb: "Reasonable One"
+# nick_title: "Programmer"
+# nick_blurb: "Motivation Guru"
+# michael_title: "Programmer"
+# michael_blurb: "Sys Admin"
+# matt_title: "Programmer"
+# matt_blurb: "Bicyclist"
legal:
# page_title: "Legal"
diff --git a/app/locale/lt.coffee b/app/locale/lt.coffee
index f9b886ca7..878c55b67 100644
--- a/app/locale/lt.coffee
+++ b/app/locale/lt.coffee
@@ -79,6 +79,7 @@ module.exports = nativeDescription: "lietuvių kalba", englishDescription: "Lith
# recover:
# recover_account_title: "Recover Account"
# send_password: "Send Recovery Password"
+# recovery_sent: "Recovery email sent."
# signup:
# create_account_title: "Create Account to Save Progress"
@@ -557,7 +558,7 @@ module.exports = nativeDescription: "lietuvių kalba", englishDescription: "Lith
# grassy: "Grassy"
# fork_title: "Fork New Version"
# fork_creating: "Creating Fork..."
-# randomize: "Randomize"
+# generate_terrain: "Generate Terrain"
# more: "More"
# wiki: "Wiki"
# live_chat: "Live Chat"
@@ -567,6 +568,7 @@ module.exports = nativeDescription: "lietuvių kalba", englishDescription: "Lith
# level_tab_settings: "Settings"
# level_tab_components: "Components"
# level_tab_systems: "Systems"
+# level_tab_docs: "Documentation"
# level_tab_thangs_title: "Current Thangs"
# level_tab_thangs_all: "All"
# level_tab_thangs_conditions: "Starting Conditions"
@@ -642,27 +644,29 @@ module.exports = nativeDescription: "lietuvių kalba", englishDescription: "Lith
# player: "Player"
# about:
-# who_is_codecombat: "Who is CodeCombat?"
# why_codecombat: "Why CodeCombat?"
-# who_description_prefix: "together started CodeCombat in 2013. We also created "
-# who_description_suffix: "in 2008, growing it to the #1 web and iOS application for learning to write Chinese and Japanese characters."
-# who_description_ending: "Now it's time to teach people to write code."
-# why_paragraph_1: "When making Skritter, George didn't know how to program and was constantly frustrated by his inability to implement his ideas. Afterwards, he tried learning, but the lessons were too slow. His housemate, wanting to reskill and stop teaching, tried Codecademy, but \"got bored.\" Each week another friend started Codecademy, then dropped off. We realized it was the same problem we'd solved with Skritter: people learning a skill via slow, intensive lessons when what they need is fast, extensive practice. We know how to fix that."
-# why_paragraph_2: "Need to learn to code? You don't need lessons. You need to write a lot of code and have a great time doing it."
-# why_paragraph_3_prefix: "That's what programming is about. It's gotta be fun. Not fun like"
-# why_paragraph_3_italic: "yay a badge"
-# why_paragraph_3_center: "but fun like"
-# why_paragraph_3_italic_caps: "NO MOM I HAVE TO FINISH THE LEVEL!"
-# why_paragraph_3_suffix: "That's why CodeCombat is a multiplayer game, not a gamified lesson course. We won't stop until you can't stop--but this time, that's a good thing."
-# why_paragraph_4: "If you're going to get addicted to some game, get addicted to this one and become one of the wizards of the tech age."
-# why_ending: "And hey, it's free. "
-# why_ending_url: "Start wizarding now!"
-# george_description: "CEO, business guy, web designer, game designer, and champion of beginning programmers everywhere."
-# scott_description: "Programmer extraordinaire, software architect, kitchen wizard, and master of finances. Scott is the reasonable one."
-# nick_description: "Programming wizard, eccentric motivation mage, and upside-down experimenter. Nick can do anything and chooses to build CodeCombat."
-# jeremy_description: "Customer support mage, usability tester, and community organizer; you've probably already spoken with Jeremy."
-# michael_description: "Programmer, sys-admin, and undergrad technical wunderkind, Michael is the person keeping our servers online."
-# matt_description: "Bicyclist, Software Engineer, reader of heroic fantasy, connoisseur of peanut butter, sipper of coffee."
+# why_paragraph_1: "If you want to learn to program, you don't need lessons. You need to write a lot of code and have a great time doing it."
+# why_paragraph_2_prefix: "That's what programming is about. It's gotta be fun. Not fun like"
+# why_paragraph_2_italic: "yay a badge"
+# why_paragraph_2_center: "but fun like"
+# why_paragraph_2_italic_caps: "NO MOM I HAVE TO FINISH THE LEVEL!"
+# why_paragraph_2_suffix: "That's why CodeCombat is a multiplayer game, not a gamified lesson course. We won't stop until you can't stop--but this time, that's a good thing."
+# why_paragraph_3: "If you're going to get addicted to some game, get addicted to this one and become one of the wizards of the tech age."
+# press_title: "Bloggers/Press"
+# press_paragraph_1_prefix: "Want to write about us? Feel free to download and use all of the resources included in our"
+# press_paragraph_1_link: "press packet"
+# press_paragraph_1_suffix: ". All logos and images may be used without contacting us directly."
+# team: "Team"
+# george_title: "CEO"
+# george_blurb: "Businesser"
+# scott_title: "Programmer"
+# scott_blurb: "Reasonable One"
+# nick_title: "Programmer"
+# nick_blurb: "Motivation Guru"
+# michael_title: "Programmer"
+# michael_blurb: "Sys Admin"
+# matt_title: "Programmer"
+# matt_blurb: "Bicyclist"
# legal:
# page_title: "Legal"
diff --git a/app/locale/ms.coffee b/app/locale/ms.coffee
index dfe726098..d33dbbae5 100644
--- a/app/locale/ms.coffee
+++ b/app/locale/ms.coffee
@@ -79,6 +79,7 @@ module.exports = nativeDescription: "Bahasa Melayu", englishDescription: "Bahasa
recover:
recover_account_title: "Dapatkan Kembali Akaun"
send_password: "Hantar kembali kata-laluan"
+# recovery_sent: "Recovery email sent."
signup:
# create_account_title: "Create Account to Save Progress"
@@ -557,7 +558,7 @@ module.exports = nativeDescription: "Bahasa Melayu", englishDescription: "Bahasa
# grassy: "Grassy"
# fork_title: "Fork New Version"
# fork_creating: "Creating Fork..."
-# randomize: "Randomize"
+# generate_terrain: "Generate Terrain"
# more: "More"
# wiki: "Wiki"
# live_chat: "Live Chat"
@@ -567,6 +568,7 @@ module.exports = nativeDescription: "Bahasa Melayu", englishDescription: "Bahasa
# level_tab_settings: "Settings"
# level_tab_components: "Components"
# level_tab_systems: "Systems"
+# level_tab_docs: "Documentation"
# level_tab_thangs_title: "Current Thangs"
# level_tab_thangs_all: "All"
# level_tab_thangs_conditions: "Starting Conditions"
@@ -642,27 +644,29 @@ module.exports = nativeDescription: "Bahasa Melayu", englishDescription: "Bahasa
# player: "Player"
about:
- who_is_codecombat: "Siapa adalah CodeCombat?"
why_codecombat: "Kenapa CodeCombat?"
- who_description_prefix: "bersama memulai CodeCombat dalam 2013. Kami juga membuat (mengaturcara) "
- who_description_suffix: "dalam 2008, mengembangkan ia kepada applikasi iOS dan applikasi web #1 untuk belajar menaip dalam karakter Cina dan Jepun."
- who_description_ending: "Sekarang, sudah tiba masanya untuk mengajar orang untuk menaip kod."
-# why_paragraph_1: "When making Skritter, George didn't know how to program and was constantly frustrated by his inability to implement his ideas. Afterwards, he tried learning, but the lessons were too slow. His housemate, wanting to reskill and stop teaching, tried Codecademy, but \"got bored.\" Each week another friend started Codecademy, then dropped off. We realized it was the same problem we'd solved with Skritter: people learning a skill via slow, intensive lessons when what they need is fast, extensive practice. We know how to fix that."
- why_paragraph_2: "Mahu belajar untuk membina kod? Anda tidak perlu membaca dan belajar. Anda perlu menaip kod yang banyak dan bersuka-suka dengan masa yang terluang."
- why_paragraph_3_prefix: "Itulah semua mengenai pengaturcaraan. Ia harus membuat anda gembira dan rasa berpuas hati. Tidak seperti"
- why_paragraph_3_italic: "yay satu badge"
- why_paragraph_3_center: "tapi bersukaria seperti"
- why_paragraph_3_italic_caps: "TIDAK MAK SAYA PERLU HABISKAN LEVEL!"
- why_paragraph_3_suffix: "Itulah kenapa CodeCombat adalah permainan multiplayer, tapi bukan sebuah khursus dibuat sebagai permainan. Kami tidak akan berhenti sehingga anda tidak--tetapi buat masa kini, itulah perkara yang terbaik."
- why_paragraph_4: "Jika kamu mahu berasa ketagih terhadap sesuatu permainan komputer, jadilah ketagih kepada permainan ini dan jadilah seorang pakar dalam zaman teknologi terkini."
- why_ending: "Dan ia adalah percuma! "
- why_ending_url: "Mulalah bermain sekarang!"
-# george_description: "CEO, business guy, web designer, game designer, and champion of beginning programmers everywhere."
-# scott_description: "Programmer extraordinaire, software architect, kitchen wizard, and master of finances. Scott is the reasonable one."
-# nick_description: "Programming wizard, eccentric motivation mage, and upside-down experimenter. Nick can do anything and chooses to build CodeCombat."
-# jeremy_description: "Customer support mage, usability tester, and community organizer; you've probably already spoken with Jeremy."
-# michael_description: "Programmer, sys-admin, and undergrad technical wunderkind, Michael is the person keeping our servers online."
-# matt_description: "Bicyclist, Software Engineer, reader of heroic fantasy, connoisseur of peanut butter, sipper of coffee."
+ why_paragraph_1: "Mahu belajar untuk membina kod? Anda tidak perlu membaca dan belajar. Anda perlu menaip kod yang banyak dan bersuka-suka dengan masa yang terluang."
+ why_paragraph_2_prefix: "Itulah semua mengenai pengaturcaraan. Ia harus membuat anda gembira dan rasa berpuas hati. Tidak seperti"
+ why_paragraph_2_italic: "yay satu badge"
+ why_paragraph_2_center: "tapi bersukaria seperti"
+ why_paragraph_2_italic_caps: "TIDAK MAK SAYA PERLU HABISKAN LEVEL!"
+ why_paragraph_2_suffix: "Itulah kenapa CodeCombat adalah permainan multiplayer, tapi bukan sebuah khursus dibuat sebagai permainan. Kami tidak akan berhenti sehingga anda tidak--tetapi buat masa kini, itulah perkara yang terbaik."
+ why_paragraph_3: "Jika kamu mahu berasa ketagih terhadap sesuatu permainan komputer, jadilah ketagih kepada permainan ini dan jadilah seorang pakar dalam zaman teknologi terkini."
+# press_title: "Bloggers/Press"
+# press_paragraph_1_prefix: "Want to write about us? Feel free to download and use all of the resources included in our"
+# press_paragraph_1_link: "press packet"
+# press_paragraph_1_suffix: ". All logos and images may be used without contacting us directly."
+# team: "Team"
+# george_title: "CEO"
+# george_blurb: "Businesser"
+# scott_title: "Programmer"
+# scott_blurb: "Reasonable One"
+# nick_title: "Programmer"
+# nick_blurb: "Motivation Guru"
+# michael_title: "Programmer"
+# michael_blurb: "Sys Admin"
+# matt_title: "Programmer"
+# matt_blurb: "Bicyclist"
legal:
page_title: "Undang-Undang"
diff --git a/app/locale/nb.coffee b/app/locale/nb.coffee
index ad155850e..92ca03eb9 100644
--- a/app/locale/nb.coffee
+++ b/app/locale/nb.coffee
@@ -79,6 +79,7 @@ module.exports = nativeDescription: "Norsk Bokmål", englishDescription: "Norweg
# recover:
# recover_account_title: "Recover Account"
# send_password: "Send Recovery Password"
+# recovery_sent: "Recovery email sent."
signup:
# create_account_title: "Create Account to Save Progress"
@@ -557,7 +558,7 @@ module.exports = nativeDescription: "Norsk Bokmål", englishDescription: "Norweg
# grassy: "Grassy"
# fork_title: "Fork New Version"
# fork_creating: "Creating Fork..."
-# randomize: "Randomize"
+# generate_terrain: "Generate Terrain"
# more: "More"
# wiki: "Wiki"
# live_chat: "Live Chat"
@@ -567,6 +568,7 @@ module.exports = nativeDescription: "Norsk Bokmål", englishDescription: "Norweg
# level_tab_settings: "Settings"
# level_tab_components: "Components"
# level_tab_systems: "Systems"
+# level_tab_docs: "Documentation"
# level_tab_thangs_title: "Current Thangs"
# level_tab_thangs_all: "All"
# level_tab_thangs_conditions: "Starting Conditions"
@@ -642,27 +644,29 @@ module.exports = nativeDescription: "Norsk Bokmål", englishDescription: "Norweg
# player: "Player"
# about:
-# who_is_codecombat: "Who is CodeCombat?"
# why_codecombat: "Why CodeCombat?"
-# who_description_prefix: "together started CodeCombat in 2013. We also created "
-# who_description_suffix: "in 2008, growing it to the #1 web and iOS application for learning to write Chinese and Japanese characters."
-# who_description_ending: "Now it's time to teach people to write code."
-# why_paragraph_1: "When making Skritter, George didn't know how to program and was constantly frustrated by his inability to implement his ideas. Afterwards, he tried learning, but the lessons were too slow. His housemate, wanting to reskill and stop teaching, tried Codecademy, but \"got bored.\" Each week another friend started Codecademy, then dropped off. We realized it was the same problem we'd solved with Skritter: people learning a skill via slow, intensive lessons when what they need is fast, extensive practice. We know how to fix that."
-# why_paragraph_2: "Need to learn to code? You don't need lessons. You need to write a lot of code and have a great time doing it."
-# why_paragraph_3_prefix: "That's what programming is about. It's gotta be fun. Not fun like"
-# why_paragraph_3_italic: "yay a badge"
-# why_paragraph_3_center: "but fun like"
-# why_paragraph_3_italic_caps: "NO MOM I HAVE TO FINISH THE LEVEL!"
-# why_paragraph_3_suffix: "That's why CodeCombat is a multiplayer game, not a gamified lesson course. We won't stop until you can't stop--but this time, that's a good thing."
-# why_paragraph_4: "If you're going to get addicted to some game, get addicted to this one and become one of the wizards of the tech age."
-# why_ending: "And hey, it's free. "
-# why_ending_url: "Start wizarding now!"
-# george_description: "CEO, business guy, web designer, game designer, and champion of beginning programmers everywhere."
-# scott_description: "Programmer extraordinaire, software architect, kitchen wizard, and master of finances. Scott is the reasonable one."
-# nick_description: "Programming wizard, eccentric motivation mage, and upside-down experimenter. Nick can do anything and chooses to build CodeCombat."
-# jeremy_description: "Customer support mage, usability tester, and community organizer; you've probably already spoken with Jeremy."
-# michael_description: "Programmer, sys-admin, and undergrad technical wunderkind, Michael is the person keeping our servers online."
-# matt_description: "Bicyclist, Software Engineer, reader of heroic fantasy, connoisseur of peanut butter, sipper of coffee."
+# why_paragraph_1: "If you want to learn to program, you don't need lessons. You need to write a lot of code and have a great time doing it."
+# why_paragraph_2_prefix: "That's what programming is about. It's gotta be fun. Not fun like"
+# why_paragraph_2_italic: "yay a badge"
+# why_paragraph_2_center: "but fun like"
+# why_paragraph_2_italic_caps: "NO MOM I HAVE TO FINISH THE LEVEL!"
+# why_paragraph_2_suffix: "That's why CodeCombat is a multiplayer game, not a gamified lesson course. We won't stop until you can't stop--but this time, that's a good thing."
+# why_paragraph_3: "If you're going to get addicted to some game, get addicted to this one and become one of the wizards of the tech age."
+# press_title: "Bloggers/Press"
+# press_paragraph_1_prefix: "Want to write about us? Feel free to download and use all of the resources included in our"
+# press_paragraph_1_link: "press packet"
+# press_paragraph_1_suffix: ". All logos and images may be used without contacting us directly."
+# team: "Team"
+# george_title: "CEO"
+# george_blurb: "Businesser"
+# scott_title: "Programmer"
+# scott_blurb: "Reasonable One"
+# nick_title: "Programmer"
+# nick_blurb: "Motivation Guru"
+# michael_title: "Programmer"
+# michael_blurb: "Sys Admin"
+# matt_title: "Programmer"
+# matt_blurb: "Bicyclist"
# legal:
# page_title: "Legal"
diff --git a/app/locale/nl-BE.coffee b/app/locale/nl-BE.coffee
index d842bbd39..406f52712 100644
--- a/app/locale/nl-BE.coffee
+++ b/app/locale/nl-BE.coffee
@@ -79,6 +79,7 @@ module.exports = nativeDescription: "Nederlands (België)", englishDescription:
recover:
recover_account_title: "Herstel Account"
send_password: "Verzend nieuw wachtwoord"
+# recovery_sent: "Recovery email sent."
signup:
create_account_title: "Maak een account aan om je vooruitgang op te slaan"
@@ -557,7 +558,7 @@ module.exports = nativeDescription: "Nederlands (België)", englishDescription:
# grassy: "Grassy"
fork_title: "Kloon naar nieuwe versie"
fork_creating: "Kloon aanmaken..."
-# randomize: "Randomize"
+# generate_terrain: "Generate Terrain"
more: "Meer"
wiki: "Wiki"
live_chat: "Live Chat"
@@ -567,6 +568,7 @@ module.exports = nativeDescription: "Nederlands (België)", englishDescription:
level_tab_settings: "Instellingen"
level_tab_components: "Componenten"
level_tab_systems: "Systemen"
+# level_tab_docs: "Documentation"
level_tab_thangs_title: "Huidige Elementen"
level_tab_thangs_all: "Alles"
level_tab_thangs_conditions: "Start Condities"
@@ -642,27 +644,29 @@ module.exports = nativeDescription: "Nederlands (België)", englishDescription:
player: "Speler"
about:
- who_is_codecombat: "Wie is CodeCombat?"
why_codecombat: "Waarom CodeCombat?"
- who_description_prefix: "hebben samen CodeCombat opgericht in 2013. We creëerden ook "
- who_description_suffix: "en in 2008, groeide het uit tot de #1 web en iOS applicatie om Chinese en Japanse karakters te leren schrijven."
- who_description_ending: "Nu is het tijd om mensen te leren programmeren."
- why_paragraph_1: "Tijdens het maken van Skritter wist George niet hoe hij moest programmeren en was hij constant gefrustreerd doordat hij zijn ideeën niet kon verwezelijken. Nadien probeerde hij te studeren maar de lessen gingen te traag. Ook zijn huisgenoot wou opnieuw studeren en stopte met lesgeven. Hij probeerde Codecademy maar was al snel \"verveeld\". Iedere week startte een andere vriend met Codecademy, met telkens als resultaat dat hij/zij vrij snel met de lessen stopte. We realiseerden ons dat het hetzelfde probleem was zoals we al eerder hadden opgelost met Skritter: mensen leren iets via langzame en intensieve lessen, terwijl ze eigenlijk beter een snelle en uitgebreide opleiding nodig hebben. Wij weten hoe dat op te lossen."
- why_paragraph_2: "Wil je leren programmeren? Je hebt geen lessen nodig. Je moet vooral veel code schrijven en je amuseren terwijl je dit doet."
- why_paragraph_3_prefix: "Dat is waar programmeren om draait. Het moet tof zijn. Niet tof zoals"
- why_paragraph_3_italic: "joepie een medaille"
- why_paragraph_3_center: "maar tof zoals"
- why_paragraph_3_italic_caps: "NEE MAMA IK MOET DIT LEVEL AF MAKEN!"
- why_paragraph_3_suffix: "Dat is waarom CodeCombat een multiplayergame is, en niet zomaar lessen gegoten in spelformaat. We zullen niet stoppen totdat jij niet meer kan stoppen--maar deze keer, is dat iets goeds."
- why_paragraph_4: "Als je verslaafd gaat zijn aan een spel, dan is het beter om hieraan verslaafd te raken en een tovenaar van het technisch tijdperk te worden."
- why_ending: "En hallo, het is gratis."
- why_ending_url: "Start nu met toveren!"
- george_description: "CEO, zakenman, web designer, game designer, en kampioen van alle beginnende programmeurs."
- scott_description: "Extraordinaire programmeur, software ontwikkelaar, keukenprins en heer en meester van financiën. Scott is het meeste voor reden vatbaar."
- nick_description: "Getalenteerde programmeur, excentriek gemotiveerd, een rasechte experimenteerder. Nick kan alles en kiest ervoor om CodeCombat te ontwikkelen."
- jeremy_description: "Klantenservice Manager, usability tester en gemeenschapsorganisator; Je hebt waarschijnlijk al gesproken met Jeremy."
- michael_description: "Programmeur, sys-admin, en technisch wonderkind, Michael is de persoon die onze servers draaiende houdt."
-# matt_description: "Bicyclist, Software Engineer, reader of heroic fantasy, connoisseur of peanut butter, sipper of coffee."
+ why_paragraph_1: "Wil je leren programmeren? Je hebt geen lessen nodig. Je moet vooral veel code schrijven en je amuseren terwijl je dit doet."
+ why_paragraph_2_prefix: "Dat is waar programmeren om draait. Het moet tof zijn. Niet tof zoals"
+ why_paragraph_2_italic: "joepie een medaille"
+ why_paragraph_2_center: "maar tof zoals"
+ why_paragraph_2_italic_caps: "NEE MAMA IK MOET DIT LEVEL AF MAKEN!"
+ why_paragraph_2_suffix: "Dat is waarom CodeCombat een multiplayergame is, en niet zomaar lessen gegoten in spelformaat. We zullen niet stoppen totdat jij niet meer kan stoppen--maar deze keer, is dat iets goeds."
+ why_paragraph_3: "Als je verslaafd gaat zijn aan een spel, dan is het beter om hieraan verslaafd te raken en een tovenaar van het technisch tijdperk te worden."
+# press_title: "Bloggers/Press"
+# press_paragraph_1_prefix: "Want to write about us? Feel free to download and use all of the resources included in our"
+# press_paragraph_1_link: "press packet"
+# press_paragraph_1_suffix: ". All logos and images may be used without contacting us directly."
+# team: "Team"
+# george_title: "CEO"
+# george_blurb: "Businesser"
+# scott_title: "Programmer"
+# scott_blurb: "Reasonable One"
+# nick_title: "Programmer"
+# nick_blurb: "Motivation Guru"
+# michael_title: "Programmer"
+# michael_blurb: "Sys Admin"
+# matt_title: "Programmer"
+# matt_blurb: "Bicyclist"
legal:
page_title: "Legaal"
diff --git a/app/locale/nl-NL.coffee b/app/locale/nl-NL.coffee
index bb9afa07b..0be1161de 100644
--- a/app/locale/nl-NL.coffee
+++ b/app/locale/nl-NL.coffee
@@ -79,6 +79,7 @@ module.exports = nativeDescription: "Nederlands (Nederland)", englishDescription
recover:
recover_account_title: "Herstel Account"
send_password: "Verzend nieuw wachtwoord"
+# recovery_sent: "Recovery email sent."
signup:
create_account_title: "Maak een account aan om je vooruitgang op te slaan"
@@ -557,7 +558,7 @@ module.exports = nativeDescription: "Nederlands (Nederland)", englishDescription
# grassy: "Grassy"
fork_title: "Kloon naar nieuwe versie"
fork_creating: "Kloon aanmaken..."
-# randomize: "Randomize"
+# generate_terrain: "Generate Terrain"
more: "Meer"
wiki: "Wiki"
live_chat: "Live Chat"
@@ -567,6 +568,7 @@ module.exports = nativeDescription: "Nederlands (Nederland)", englishDescription
level_tab_settings: "Instellingen"
level_tab_components: "Componenten"
level_tab_systems: "Systemen"
+# level_tab_docs: "Documentation"
level_tab_thangs_title: "Huidige Elementen"
level_tab_thangs_all: "Alles"
level_tab_thangs_conditions: "Start Condities"
@@ -642,27 +644,29 @@ module.exports = nativeDescription: "Nederlands (Nederland)", englishDescription
player: "Speler"
about:
- who_is_codecombat: "Wie is CodeCombat?"
why_codecombat: "Waarom CodeCombat?"
- who_description_prefix: "hebben samen CodeCombat opgericht in 2013. We creëerden ook "
- who_description_suffix: "en in 2008, groeide het uit tot de #1 web en iOS applicatie om Chinese en Japanse karakters te leren schrijven."
- who_description_ending: "Nu is het tijd om mensen te leren programmeren."
- why_paragraph_1: "Tijdens het maken van Skritter wist George niet hoe hij moest programmeren en was hij constant gefrustreerd doordat hij zijn ideeën niet kon verwezelijken. Nadien probeerde hij te studeren maar de lessen gingen te traag. Ook zijn huisgenoot wou opnieuw studeren en stopte met lesgeven. Hij probeerde Codecademy maar was al snel \"verveeld\". Iedere week startte een andere vriend met Codecademy, met telkens als resultaat dat hij/zij vrij snel met de lessen stopte. We realiseerden ons dat het hetzelfde probleem was zoals we al eerder hadden opgelost met Skritter: mensen leren iets via langzame en intensieve lessen, terwijl ze eigenlijk beter een snelle en uitgebreide opleiding nodig hebben. Wij weten hoe dat op te lossen."
- why_paragraph_2: "Wil je leren programmeren? Je hebt geen lessen nodig. Je moet vooral veel code schrijven en je amuseren terwijl je dit doet."
- why_paragraph_3_prefix: "Dat is waar programmeren om draait. Het moet tof zijn. Niet tof zoals"
- why_paragraph_3_italic: "joepie een medaille"
- why_paragraph_3_center: "maar tof zoals"
- why_paragraph_3_italic_caps: "NEE MAMA IK MOET DIT LEVEL AF MAKEN!"
- why_paragraph_3_suffix: "Dat is waarom CodeCombat een multiplayergame is, en niet zomaar lessen gegoten in spelformaat. We zullen niet stoppen totdat jij niet meer kan stoppen--maar deze keer, is dat iets goeds."
- why_paragraph_4: "Als je verslaafd gaat zijn aan een spel, dan is het beter om hieraan verslaafd te raken en een tovenaar van het technisch tijdperk te worden."
- why_ending: "En hallo, het is gratis."
- why_ending_url: "Start nu met toveren!"
- george_description: "CEO, zakenman, web designer, game designer, en kampioen van alle beginnende programmeurs."
- scott_description: "Extraordinaire programmeur, software ontwikkelaar, keukenprins en heer en meester van financiën. Scott is het meeste voor reden vatbaar."
- nick_description: "Getalenteerde programmeur, excentriek gemotiveerd, een rasechte experimenteerder. Nick kan alles en kiest ervoor om CodeCombat te ontwikkelen."
- jeremy_description: "Klantenservice Manager, usability tester en gemeenschapsorganisator; Je hebt waarschijnlijk al gesproken met Jeremy."
- michael_description: "Programmeur, sys-admin, en technisch wonderkind, Michael is de persoon die onze servers draaiende houdt."
-# matt_description: "Bicyclist, Software Engineer, reader of heroic fantasy, connoisseur of peanut butter, sipper of coffee."
+ why_paragraph_1: "Wil je leren programmeren? Je hebt geen lessen nodig. Je moet vooral veel code schrijven en je amuseren terwijl je dit doet."
+ why_paragraph_2_prefix: "Dat is waar programmeren om draait. Het moet tof zijn. Niet tof zoals"
+ why_paragraph_2_italic: "joepie een medaille"
+ why_paragraph_2_center: "maar tof zoals"
+ why_paragraph_2_italic_caps: "NEE MAMA IK MOET DIT LEVEL AF MAKEN!"
+ why_paragraph_2_suffix: "Dat is waarom CodeCombat een multiplayergame is, en niet zomaar lessen gegoten in spelformaat. We zullen niet stoppen totdat jij niet meer kan stoppen--maar deze keer, is dat iets goeds."
+ why_paragraph_3: "Als je verslaafd gaat zijn aan een spel, dan is het beter om hieraan verslaafd te raken en een tovenaar van het technisch tijdperk te worden."
+# press_title: "Bloggers/Press"
+# press_paragraph_1_prefix: "Want to write about us? Feel free to download and use all of the resources included in our"
+# press_paragraph_1_link: "press packet"
+# press_paragraph_1_suffix: ". All logos and images may be used without contacting us directly."
+# team: "Team"
+# george_title: "CEO"
+# george_blurb: "Businesser"
+# scott_title: "Programmer"
+# scott_blurb: "Reasonable One"
+# nick_title: "Programmer"
+# nick_blurb: "Motivation Guru"
+# michael_title: "Programmer"
+# michael_blurb: "Sys Admin"
+# matt_title: "Programmer"
+# matt_blurb: "Bicyclist"
legal:
page_title: "Legaal"
diff --git a/app/locale/nn.coffee b/app/locale/nn.coffee
index 20586ece2..1ef1488f7 100644
--- a/app/locale/nn.coffee
+++ b/app/locale/nn.coffee
@@ -79,6 +79,7 @@ module.exports = nativeDescription: "Norwegian Nynorsk", englishDescription: "No
# recover:
# recover_account_title: "Recover Account"
# send_password: "Send Recovery Password"
+# recovery_sent: "Recovery email sent."
# signup:
# create_account_title: "Create Account to Save Progress"
@@ -557,7 +558,7 @@ module.exports = nativeDescription: "Norwegian Nynorsk", englishDescription: "No
# grassy: "Grassy"
# fork_title: "Fork New Version"
# fork_creating: "Creating Fork..."
-# randomize: "Randomize"
+# generate_terrain: "Generate Terrain"
# more: "More"
# wiki: "Wiki"
# live_chat: "Live Chat"
@@ -567,6 +568,7 @@ module.exports = nativeDescription: "Norwegian Nynorsk", englishDescription: "No
# level_tab_settings: "Settings"
# level_tab_components: "Components"
# level_tab_systems: "Systems"
+# level_tab_docs: "Documentation"
# level_tab_thangs_title: "Current Thangs"
# level_tab_thangs_all: "All"
# level_tab_thangs_conditions: "Starting Conditions"
@@ -642,27 +644,29 @@ module.exports = nativeDescription: "Norwegian Nynorsk", englishDescription: "No
# player: "Player"
# about:
-# who_is_codecombat: "Who is CodeCombat?"
# why_codecombat: "Why CodeCombat?"
-# who_description_prefix: "together started CodeCombat in 2013. We also created "
-# who_description_suffix: "in 2008, growing it to the #1 web and iOS application for learning to write Chinese and Japanese characters."
-# who_description_ending: "Now it's time to teach people to write code."
-# why_paragraph_1: "When making Skritter, George didn't know how to program and was constantly frustrated by his inability to implement his ideas. Afterwards, he tried learning, but the lessons were too slow. His housemate, wanting to reskill and stop teaching, tried Codecademy, but \"got bored.\" Each week another friend started Codecademy, then dropped off. We realized it was the same problem we'd solved with Skritter: people learning a skill via slow, intensive lessons when what they need is fast, extensive practice. We know how to fix that."
-# why_paragraph_2: "Need to learn to code? You don't need lessons. You need to write a lot of code and have a great time doing it."
-# why_paragraph_3_prefix: "That's what programming is about. It's gotta be fun. Not fun like"
-# why_paragraph_3_italic: "yay a badge"
-# why_paragraph_3_center: "but fun like"
-# why_paragraph_3_italic_caps: "NO MOM I HAVE TO FINISH THE LEVEL!"
-# why_paragraph_3_suffix: "That's why CodeCombat is a multiplayer game, not a gamified lesson course. We won't stop until you can't stop--but this time, that's a good thing."
-# why_paragraph_4: "If you're going to get addicted to some game, get addicted to this one and become one of the wizards of the tech age."
-# why_ending: "And hey, it's free. "
-# why_ending_url: "Start wizarding now!"
-# george_description: "CEO, business guy, web designer, game designer, and champion of beginning programmers everywhere."
-# scott_description: "Programmer extraordinaire, software architect, kitchen wizard, and master of finances. Scott is the reasonable one."
-# nick_description: "Programming wizard, eccentric motivation mage, and upside-down experimenter. Nick can do anything and chooses to build CodeCombat."
-# jeremy_description: "Customer support mage, usability tester, and community organizer; you've probably already spoken with Jeremy."
-# michael_description: "Programmer, sys-admin, and undergrad technical wunderkind, Michael is the person keeping our servers online."
-# matt_description: "Bicyclist, Software Engineer, reader of heroic fantasy, connoisseur of peanut butter, sipper of coffee."
+# why_paragraph_1: "If you want to learn to program, you don't need lessons. You need to write a lot of code and have a great time doing it."
+# why_paragraph_2_prefix: "That's what programming is about. It's gotta be fun. Not fun like"
+# why_paragraph_2_italic: "yay a badge"
+# why_paragraph_2_center: "but fun like"
+# why_paragraph_2_italic_caps: "NO MOM I HAVE TO FINISH THE LEVEL!"
+# why_paragraph_2_suffix: "That's why CodeCombat is a multiplayer game, not a gamified lesson course. We won't stop until you can't stop--but this time, that's a good thing."
+# why_paragraph_3: "If you're going to get addicted to some game, get addicted to this one and become one of the wizards of the tech age."
+# press_title: "Bloggers/Press"
+# press_paragraph_1_prefix: "Want to write about us? Feel free to download and use all of the resources included in our"
+# press_paragraph_1_link: "press packet"
+# press_paragraph_1_suffix: ". All logos and images may be used without contacting us directly."
+# team: "Team"
+# george_title: "CEO"
+# george_blurb: "Businesser"
+# scott_title: "Programmer"
+# scott_blurb: "Reasonable One"
+# nick_title: "Programmer"
+# nick_blurb: "Motivation Guru"
+# michael_title: "Programmer"
+# michael_blurb: "Sys Admin"
+# matt_title: "Programmer"
+# matt_blurb: "Bicyclist"
# legal:
# page_title: "Legal"
diff --git a/app/locale/no.coffee b/app/locale/no.coffee
index 0faf5283a..e249011b5 100644
--- a/app/locale/no.coffee
+++ b/app/locale/no.coffee
@@ -79,6 +79,7 @@ module.exports = nativeDescription: "Norsk", englishDescription: "Norwegian", tr
# recover:
# recover_account_title: "Recover Account"
# send_password: "Send Recovery Password"
+# recovery_sent: "Recovery email sent."
signup:
# create_account_title: "Create Account to Save Progress"
@@ -557,7 +558,7 @@ module.exports = nativeDescription: "Norsk", englishDescription: "Norwegian", tr
# grassy: "Grassy"
# fork_title: "Fork New Version"
# fork_creating: "Creating Fork..."
-# randomize: "Randomize"
+# generate_terrain: "Generate Terrain"
# more: "More"
# wiki: "Wiki"
# live_chat: "Live Chat"
@@ -567,6 +568,7 @@ module.exports = nativeDescription: "Norsk", englishDescription: "Norwegian", tr
# level_tab_settings: "Settings"
# level_tab_components: "Components"
# level_tab_systems: "Systems"
+# level_tab_docs: "Documentation"
# level_tab_thangs_title: "Current Thangs"
# level_tab_thangs_all: "All"
# level_tab_thangs_conditions: "Starting Conditions"
@@ -642,27 +644,29 @@ module.exports = nativeDescription: "Norsk", englishDescription: "Norwegian", tr
# player: "Player"
# about:
-# who_is_codecombat: "Who is CodeCombat?"
# why_codecombat: "Why CodeCombat?"
-# who_description_prefix: "together started CodeCombat in 2013. We also created "
-# who_description_suffix: "in 2008, growing it to the #1 web and iOS application for learning to write Chinese and Japanese characters."
-# who_description_ending: "Now it's time to teach people to write code."
-# why_paragraph_1: "When making Skritter, George didn't know how to program and was constantly frustrated by his inability to implement his ideas. Afterwards, he tried learning, but the lessons were too slow. His housemate, wanting to reskill and stop teaching, tried Codecademy, but \"got bored.\" Each week another friend started Codecademy, then dropped off. We realized it was the same problem we'd solved with Skritter: people learning a skill via slow, intensive lessons when what they need is fast, extensive practice. We know how to fix that."
-# why_paragraph_2: "Need to learn to code? You don't need lessons. You need to write a lot of code and have a great time doing it."
-# why_paragraph_3_prefix: "That's what programming is about. It's gotta be fun. Not fun like"
-# why_paragraph_3_italic: "yay a badge"
-# why_paragraph_3_center: "but fun like"
-# why_paragraph_3_italic_caps: "NO MOM I HAVE TO FINISH THE LEVEL!"
-# why_paragraph_3_suffix: "That's why CodeCombat is a multiplayer game, not a gamified lesson course. We won't stop until you can't stop--but this time, that's a good thing."
-# why_paragraph_4: "If you're going to get addicted to some game, get addicted to this one and become one of the wizards of the tech age."
-# why_ending: "And hey, it's free. "
-# why_ending_url: "Start wizarding now!"
-# george_description: "CEO, business guy, web designer, game designer, and champion of beginning programmers everywhere."
-# scott_description: "Programmer extraordinaire, software architect, kitchen wizard, and master of finances. Scott is the reasonable one."
-# nick_description: "Programming wizard, eccentric motivation mage, and upside-down experimenter. Nick can do anything and chooses to build CodeCombat."
-# jeremy_description: "Customer support mage, usability tester, and community organizer; you've probably already spoken with Jeremy."
-# michael_description: "Programmer, sys-admin, and undergrad technical wunderkind, Michael is the person keeping our servers online."
-# matt_description: "Bicyclist, Software Engineer, reader of heroic fantasy, connoisseur of peanut butter, sipper of coffee."
+# why_paragraph_1: "If you want to learn to program, you don't need lessons. You need to write a lot of code and have a great time doing it."
+# why_paragraph_2_prefix: "That's what programming is about. It's gotta be fun. Not fun like"
+# why_paragraph_2_italic: "yay a badge"
+# why_paragraph_2_center: "but fun like"
+# why_paragraph_2_italic_caps: "NO MOM I HAVE TO FINISH THE LEVEL!"
+# why_paragraph_2_suffix: "That's why CodeCombat is a multiplayer game, not a gamified lesson course. We won't stop until you can't stop--but this time, that's a good thing."
+# why_paragraph_3: "If you're going to get addicted to some game, get addicted to this one and become one of the wizards of the tech age."
+# press_title: "Bloggers/Press"
+# press_paragraph_1_prefix: "Want to write about us? Feel free to download and use all of the resources included in our"
+# press_paragraph_1_link: "press packet"
+# press_paragraph_1_suffix: ". All logos and images may be used without contacting us directly."
+# team: "Team"
+# george_title: "CEO"
+# george_blurb: "Businesser"
+# scott_title: "Programmer"
+# scott_blurb: "Reasonable One"
+# nick_title: "Programmer"
+# nick_blurb: "Motivation Guru"
+# michael_title: "Programmer"
+# michael_blurb: "Sys Admin"
+# matt_title: "Programmer"
+# matt_blurb: "Bicyclist"
# legal:
# page_title: "Legal"
diff --git a/app/locale/pl.coffee b/app/locale/pl.coffee
index 6f5e8d568..d46bf195d 100644
--- a/app/locale/pl.coffee
+++ b/app/locale/pl.coffee
@@ -79,6 +79,7 @@ module.exports = nativeDescription: "język polski", englishDescription: "Polish
recover:
recover_account_title: "Odzyskaj konto"
send_password: "Wyślij hasło tymczasowe"
+# recovery_sent: "Recovery email sent."
signup:
create_account_title: "Stwórz konto, aby zapisać postępy"
@@ -95,7 +96,7 @@ module.exports = nativeDescription: "język polski", englishDescription: "Polish
home:
slogan: "Naucz się programowania grając"
no_ie: "CodeCombat nie działa na Internet Explorer 9 lub starszym. Przepraszamy!"
- no_mobile: "CodeCombat nie został zaprojektowany dla użądzeń przenośnych więc może nie działać!"
+ no_mobile: "CodeCombat nie został zaprojektowany dla urządzeń przenośnych więc może nie działać!"
play: "Graj"
old_browser: "Wygląda na to, że twoja przeglądarka jest zbyt stara, by obsłużyć CodeCombat. Wybacz!"
old_browser_suffix: "Możesz spróbowac mimo tego, ale prawdopodobnie gra nie będzie działać."
@@ -104,16 +105,16 @@ module.exports = nativeDescription: "język polski", englishDescription: "Polish
# multiplayer: "Multiplayer"
for_developers: "Dla developerów"
javascript_blurb: "Język internetu. Świetny do pisania stron, aplikacji internetowych, gier HTML5 i serwerów."
-# python_blurb: "Simple yet powerful, Python is a great general purpose programming language."
-# coffeescript_blurb: "Nicer JavaScript syntax."
-# clojure_blurb: "A modern Lisp."
-# lua_blurb: "Game scripting language."
-# io_blurb: "Simple but obscure."
+ python_blurb: "Prosty ale potężny, Python jest świetnym językiem programowania ogólnego zastosowania."
+ coffeescript_blurb: "Przyjemniejsza składnia JavaScript."
+ clojure_blurb: "Nowoczesny Lisp."
+ lua_blurb: "Język skryptowy gier."
+ io_blurb: "Prosty lecz nieznany."
play:
choose_your_level: "Wybierz poziom"
- adventurer_prefix: "Możesz wybrać jeden z poniższych poziomów lub omówić to na "
- adventurer_forum: "forum podróżników"
+ adventurer_prefix: "Możesz wybrać jeden z poniższych poziomów lub omówić poziom na "
+ adventurer_forum: "forum Podróżników"
adventurer_suffix: "."
campaign_beginner: "Kampania dla początkujących"
campaign_beginner_description: "... w której nauczysz się magii programowania"
@@ -122,14 +123,14 @@ module.exports = nativeDescription: "język polski", englishDescription: "Polish
campaign_multiplayer: "Pola walki dla wielu graczy"
campaign_multiplayer_description: "... w których konkurujesz z innymi graczami."
campaign_player_created: "Stworzone przez graczy"
- campaign_player_created_description: "... w których walczysz przeciwko dziełom Czarodziejów Rękodzielnictwa"
-# campaign_classic_algorithms: "Classic Algorithms"
-# campaign_classic_algorithms_description: "... in which you learn the most popular algorithms in Computer Science."
+ campaign_player_created_description: "... w których walczysz przeciwko dziełom Czarodziejów Rzemieślników"
+ campaign_classic_algorithms: "Algorytmy klasyczne"
+ campaign_classic_algorithms_description: "... gdzie nauczysz się najpopularniejszych alogrytmów w Informatyce."
level_difficulty: "Poziom trudności: "
play_as: "Graj jako "
spectate: "Oglądaj"
players: "graczy"
-# hours_played: "hours played"
+ hours_played: "rozegranych godzin"
contact:
contact_us: "Kontakt z CodeCombat"
@@ -187,12 +188,12 @@ module.exports = nativeDescription: "język polski", englishDescription: "Polish
email_announcements: "Ogłoszenia"
email_announcements_description: "Otrzymuj powiadomienia o najnowszych wiadomościach i zmianach w CodeCombat."
email_notifications: "Powiadomienia"
-# email_notifications_summary: "Controls for personalized, automatic email notifications related to your CodeCombat activity."
-# email_any_notes: "Any Notifications"
-# email_any_notes_description: "Disable to stop all activity notification emails."
-# email_news: "News"
-# email_recruit_notes: "Job Opportunities"
-# email_recruit_notes_description: "If you play really well, we may contact you about getting you a (better) job."
+ email_notifications_summary: "Ustawienia spersonalizowanych, automatycznych powiadomień mailowych zależnych od twojej aktywności w CodeCombat."
+ email_any_notes: "Wszystkie powiadomienia"
+ email_any_notes_description: "Odznacz by wyłączyć wszystkie powiadomienia email."
+ email_news: "Nowości"
+ email_recruit_notes: "Możliwości zatrudnienia"
+ email_recruit_notes_description: "Jeżeli grasz naprawdę dobrze, możemy się z tobą skontaktować by zaoferować (lepszą) pracę."
contributor_emails: "Powiadomienia asystentów"
contribute_prefix: "Szukamy osób, które chciałyby do nas dołączyć! Sprawdź "
contribute_page: "stronę współpracy"
@@ -202,16 +203,16 @@ module.exports = nativeDescription: "język polski", englishDescription: "Polish
saved: "Zmiany zapisane"
password_mismatch: "Hasła róznią się od siebie"
password_repeat: "Powtórz swoje hasło."
-# job_profile: "Job Profile"
-# job_profile_approved: "Your job profile has been approved by CodeCombat. Employers will be able to see it until you either mark it inactive or it has not been changed for four weeks."
-# job_profile_explanation: "Hi! Fill this out, and we will get in touch about finding you a software developer job."
-# sample_profile: "See a sample profile"
-# view_profile: "View Your Profile"
+ job_profile: "Profil zatrudnienia"
+ job_profile_approved: "Twój profil zatrudnienia został zaakceptowany przez CodeCombat. Pracodawcy będą mogli go widzieć dopóki nie oznaczysz go jako nieaktywny lub nie będzie on zmieniany przez 4 tygodnie."
+ job_profile_explanation: "Witaj! Wypełnij to, a będziemy w kontakcie w sprawie znalezienie dla Ciebe pracy twórcy oprogramowania."
+ sample_profile: "Zobacz przykładowy profil"
+ view_profile: "Zobacz swój profil"
account_profile:
settings: "Ustawienia"
edit_profile: "Edytuj Profil"
-# done_editing: "Done Editing"
+ done_editing: "Edycja wykonana"
profile_for_prefix: "Profil "
profile_for_suffix: ""
# featured: "Featured"
@@ -362,14 +363,14 @@ module.exports = nativeDescription: "język polski", englishDescription: "Polish
customize_wizard: "Spersonalizuj czarodzieja"
home: "Strona główna"
# stop: "Stop"
-# game_menu: "Game Menu"
+ game_menu: "Menu gry"
guide: "Przewodnik"
restart: "Zacznij od nowa"
goals: "Cele"
-# success: "Success!"
-# incomplete: "Incomplete"
-# timed_out: "Ran out of time"
-# failing: "Failing"
+ success: "Sukces!"
+ incomplete: "Niekompletne"
+ timed_out: "Czas minął"
+ failing: "Niepowodzenie"
action_timeline: "Oś czasu"
click_to_select: "Kliknij jednostkę, by ją zaznaczyć."
reload_title: "Przywrócić cały kod?"
@@ -401,54 +402,54 @@ module.exports = nativeDescription: "język polski", englishDescription: "Polish
skip_tutorial: "Pomiń (esc)"
keyboard_shortcuts: "Skróty klawiszowe"
loading_ready: "Gotowy!"
-# tip_insert_positions: "Shift+Click a point on the map to insert it into the spell editor."
-# tip_toggle_play: "Toggle play/paused with Ctrl+P."
-# tip_scrub_shortcut: "Ctrl+[ and Ctrl+] rewind and fast-forward."
-# tip_guide_exists: "Click the guide at the top of the page for useful info."
-# tip_open_source: "CodeCombat is 100% open source!"
-# tip_beta_launch: "CodeCombat launched its beta in October, 2013."
-# tip_js_beginning: "JavaScript is just the beginning."
-# tip_think_solution: "Think of the solution, not the problem."
-# tip_theory_practice: "In theory, there is no difference between theory and practice. But in practice, there is. - Yogi Berra"
-# tip_error_free: "There are two ways to write error-free programs; only the third one works. - Alan Perlis"
-# tip_debugging_program: "If debugging is the process of removing bugs, then programming must be the process of putting them in. - Edsger W. Dijkstra"
-# tip_forums: "Head over to the forums and tell us what you think!"
-# tip_baby_coders: "In the future, even babies will be Archmages."
-# tip_morale_improves: "Loading will continue until morale improves."
-# tip_all_species: "We believe in equal opportunities to learn programming for all species."
-# tip_reticulating: "Reticulating spines."
+ tip_insert_positions: "Shift+Kliknij punkt na mapie, by umieścić go w edytorze zaklęć."
+ tip_toggle_play: "Włącz/zatrzymaj grę naciskając Ctrl+P."
+ tip_scrub_shortcut: "Ctrl+[ i Ctrl+] przesuwają czas."
+ tip_guide_exists: "Klikając Przewodnik u góry strony uzyskasz przydatne informacje."
+ tip_open_source: "CodeCombat ma w 100% otwarty kod!"
+ tip_beta_launch: "CodeCombat uruchomił fazę beta w październiku 2013."
+ tip_js_beginning: "JavaScript jest tylko początkiem."
+ tip_think_solution: "Myśl nad rozwiązaniem, nie problemem."
+ tip_theory_practice: "W teorii nie ma różnicy między teorią a praktyką. W praktyce jednak, jest. - Yogi Berra"
+ tip_error_free: "Są dwa sposoby by napisać program bez błędów. Tylko trzeci działa. - Alan Perlis"
+ tip_debugging_program: "Jeżeli debugowanie jest procesem usuwania błędów, to programowanie musi być procesem umieszczania ich. - Edsger W. Dijkstra"
+ tip_forums: "Udaj się na forum i powiedz nam co myślisz!"
+ tip_baby_coders: "W przyszłości, każde dziecko będzie Arcymagiem."
+ tip_morale_improves: "Ładowanie będzie kontynuowane gdy wzrośnie morale."
+ tip_all_species: "Wierzymy w równe szanse nauki programowania dla wszystkich gatunków."
+ tip_reticulating: "Siatkowanie kolców."
# tip_harry: "Yer a Wizard, "
-# tip_great_responsibility: "With great coding skill comes great debug responsibility."
-# tip_munchkin: "If you don't eat your vegetables, a munchkin will come after you while you're asleep."
-# tip_binary: "There are only 10 types of people in the world: those who understand binary, and those who don't."
-# tip_commitment_yoda: "A programmer must have the deepest commitment, the most serious mind. ~ Yoda"
-# tip_no_try: "Do. Or do not. There is no try. - Yoda"
-# tip_patience: "Patience you must have, young Padawan. - Yoda"
-# tip_documented_bug: "A documented bug is not a bug; it is a feature."
-# tip_impossible: "It always seems impossible until it's done. - Nelson Mandela"
-# tip_talk_is_cheap: "Talk is cheap. Show me the code. - Linus Torvalds"
-# tip_first_language: "The most disastrous thing that you can ever learn is your first programming language. - Alan Kay"
-# tip_hardware_problem: "Q: How many programmers does it take to change a light bulb? A: None, it's a hardware problem."
-# time_current: "Now:"
+ tip_great_responsibility: "Z wielką mocą programowania wiąże się wielka odpowiedzialność debugowania."
+ tip_munchkin: "Jeśli nie będziesz jadł warzyw, Munchkin przyjdzie po Ciebie w nocy."
+ tip_binary: "Jest tylko 10 typów ludzi na świecie: Ci którzy rozumieją kod binarny i ci którzy nie."
+ tip_commitment_yoda: "Programista musi najgłębsze zaangażowanie okazać. Umysł najpoważniejszy. ~ Yoda"
+ tip_no_try: "Rób. Lub nie rób. Nie ma próbowania. - Yoda"
+ tip_patience: "Cierpliwość musisz mieć, młody Padawanie. - Yoda"
+ tip_documented_bug: "Udokumentowany błąd nie jest błędem. Jest funkcją."
+ tip_impossible: "To zawsze wygląda na niemożliwe zanim zostanie zrobione. - Nelson Mandela"
+ tip_talk_is_cheap: "Gadać jest łatwo. Pokażcie mi kod. - Linus Torvalds"
+ tip_first_language: "Najbardziej zgubną rzeczą jakiej możesz się nauczyć jest twój pierwszy język programowania. - Alan Kay"
+ tip_hardware_problem: "P: Ilu programistów potrzeba by wymienić żarówkę? O: Żadnego,to problem sprzętowy."
+ time_current: "Teraz:"
# time_total: "Max:"
-# time_goto: "Go to:"
-# infinite_loop_try_again: "Try Again"
-# infinite_loop_reset_level: "Reset Level"
-# infinite_loop_comment_out: "Comment Out My Code"
+ time_goto: "Idź do:"
+ infinite_loop_try_again: "Próbuj ponownie"
+ infinite_loop_reset_level: "Resetuj poziom"
+ infinite_loop_comment_out: "Comment Out My Code"
game_menu:
-# inventory_tab: "Inventory"
-# choose_hero_tab: "Restart Level"
+ inventory_tab: "Ekwipunek"
+ choose_hero_tab: "Uruchom ponownie poziom"
save_load_tab: "Zapisz/Wczytaj"
options_tab: "Opcje"
-# guide_tab: "Guide"
+ guide_tab: "Przewodnik"
multiplayer_tab: "Multiplayer"
-# inventory_caption: "Equip your hero"
+ inventory_caption: "Wyposaż swojego bohatera"
# choose_hero_caption: "Choose hero, language"
# save_load_caption: "... and view history"
-# options_caption: "Configure settings"
-# guide_caption: "Docs and tips"
-# multiplayer_caption: "Play with friends!"
+ options_caption: "Ustaw opcje"
+ guide_caption: "Dokumenty i wskazówki"
+ multiplayer_caption: "Graj ze znajomymi!"
# inventory:
# temp: "Temp"
@@ -461,23 +462,23 @@ module.exports = nativeDescription: "język polski", englishDescription: "Polish
# granularity_change_history: "History"
options:
-# general_options: "General Options"
-# volume_label: "Volume"
+ general_options: "Opcje ogólne"
+ volume_label: "Głośność"
music_label: "Muzyka"
music_description: "Wł/Wył muzykę w tle."
autorun_label: "Autostart"
autorun_description: "Ustawia automatyczne wykonywanie kodu."
editor_config: "Konfiguracja edytora"
editor_config_title: "Konfiguracja edytora"
-# editor_config_level_language_label: "Language for This Level"
-# editor_config_level_language_description: "Define the programming language for this particular level."
-# editor_config_default_language_label: "Default Programming Language"
-# editor_config_default_language_description: "Define the programming language you want to code in when starting new levels."
+ editor_config_level_language_label: "Język dla tego poziomu"
+ editor_config_level_language_description: "Ustaw język programowania dla tego konkretnego poziomu."
+ editor_config_default_language_label: "Domyślny język programowania"
+ editor_config_default_language_description: "Wybierz język programowania którego użyjesz na początku poziomów."
editor_config_keybindings_label: "Przypisania klawiszy"
editor_config_keybindings_default: "Domyślny (Ace)"
editor_config_keybindings_description: "Dodaje skróty znane z popularnych edytorów."
-# editor_config_livecompletion_label: "Live Autocompletion"
-# editor_config_livecompletion_description: "Displays autocomplete suggestions while typing."
+ editor_config_livecompletion_label: "Podpowiedzi na żywo"
+ editor_config_livecompletion_description: "Wyświetl sugestie autouzupełnienia podczas pisania."
editor_config_invisibles_label: "Pokaż białe znaki"
editor_config_invisibles_description: "Wyświetla białe znaki takie jak spacja czy tabulator."
editor_config_indentguides_label: "Pokaż linijki wcięć"
@@ -490,25 +491,25 @@ module.exports = nativeDescription: "język polski", englishDescription: "Polish
multiplayer:
multiplayer_title: "Ustawienia multiplayer"
-# multiplayer_toggle: "Enable multiplayer"
-# multiplayer_toggle_description: "Allow others to join your game."
+ multiplayer_toggle: "Aktywuj multiplayer"
+ multiplayer_toggle_description: "Pozwól innym dołączyć do twojej gry."
multiplayer_link_description: "Przekaż ten link, jeśli chcesz, by ktoś do ciebie dołączył."
multiplayer_hint_label: "Podpowiedź:"
multiplayer_hint: "Kliknij link by zaznaczyć wszystko, potem wciśnij Cmd-C lub Ctrl-C by skopiować ten link."
multiplayer_coming_soon: "Wkrótce więcej opcji multiplayer"
-# multiplayer_sign_in_leaderboard: "Sign in or create an account and get your solution on the leaderboard."
+ multiplayer_sign_in_leaderboard: "Zaloguj się lub zarejestruj by umieścić wynik na tablicy wyników."
-# keyboard_shortcuts:
-# keyboard_shortcuts: "Keyboard Shortcuts"
-# space: "Space"
+ keyboard_shortcuts:
+ keyboard_shortcuts: "Skróty klawiszowe"
+ space: "Spacja"
# enter: "Enter"
# escape: "Escape"
# shift: "Shift"
-# cast_spell: "Cast current spell."
-# run_real_time: "Run in real time."
-# continue_script: "Continue past current script."
+ cast_spell: "Rzuć aktualny czar."
+ run_real_time: "Uruchom \"na żywo\"."
+ continue_script: "Kontynuuj ostatni skrypt."
# skip_scripts: "Skip past all skippable scripts."
-# toggle_playback: "Toggle play/pause."
+ toggle_playback: "Graj/pauzuj."
# scrub_playback: "Scrub back and forward through time."
# single_scrub_playback: "Scrub back and forward through time by a single frame."
# scrub_execution: "Scrub through current spell execution."
@@ -557,7 +558,7 @@ module.exports = nativeDescription: "język polski", englishDescription: "Polish
# grassy: "Grassy"
# fork_title: "Fork New Version"
# fork_creating: "Creating Fork..."
-# randomize: "Randomize"
+# generate_terrain: "Generate Terrain"
# more: "More"
# wiki: "Wiki"
# live_chat: "Live Chat"
@@ -567,6 +568,7 @@ module.exports = nativeDescription: "język polski", englishDescription: "Polish
level_tab_settings: "Ustawienia"
level_tab_components: "Komponenty"
level_tab_systems: "Systemy"
+# level_tab_docs: "Documentation"
level_tab_thangs_title: "Aktualne obiekty"
# level_tab_thangs_all: "All"
level_tab_thangs_conditions: "Warunki początkowe"
@@ -642,27 +644,29 @@ module.exports = nativeDescription: "język polski", englishDescription: "Polish
# player: "Player"
about:
- who_is_codecombat: "Czym jest CodeCombat?"
why_codecombat: "Dlaczego CodeCombat?"
- who_description_prefix: "założyli CodeCombat w 2013 roku. Stworzyliśmy również "
- who_description_suffix: "w roku 2008, doprowadzajac go do pierwszego miejsca wśród aplikacji do nauki zapisu chińskich i japońskich znaków zarówno wśród aplikacji internetowych, jak i aplikacji dla iOS."
- who_description_ending: "Teraz nadszedł czas, by nauczyć ludzi programowania."
- why_paragraph_1: "Podczas tworzenia Skrittera, George nie umiał programować i ciągle towarzyszyła mu frustracja - nie mógł zaimplementować swoich pomysłów. Próbował się uczyć, lecz lekcje były zbyt wolne. Jego współlokator, chcąc się przebranżowić, spróbował Codeacademy, lecz \"nudziło go to.\" Każdego tygodnia któryś z kolegów podchodził do Codeacademy, by wkrótce potem zrezygnować. Zdaliśmy sobie sprawę, że mamy do czynienia z tym samym problemem, który rozwiązaliśmy Skritterem: ludzie uczący się umiejętności poprzez powolne, ciężkie lekcje, podczas gdy potrzebują oni szybkiej, energicznej praktyki. Wiemy, jak to naprawić."
- why_paragraph_2: "Chcesz nauczyć się programowania? Nie potrzeba ci lekcji. Potrzeba ci pisania dużej ilości kodu w sposób sprawiający ci przyjemność."
- why_paragraph_3_prefix: "O to chodzi w programowaniu - musi sprawiać radość. Nie radość w stylu"
- why_paragraph_3_italic: "hura, nowa odznaka"
- why_paragraph_3_center: ", ale radości w stylu"
- why_paragraph_3_italic_caps: "NIE MAMO, MUSZĘ DOKOŃCZYĆ TEN POZIOM!"
- why_paragraph_3_suffix: "Dlatego właśnie CodeCombat to gra multiplayer, a nie kurs oparty na zgamifikowanych lekcjach. Nie przestaniemy, dopóki ty nie będziesz mógł przestać--tym razem jednak w pozytywnym sensie."
- why_paragraph_4: "Jeśli planujesz uzależnić się od jakiejś gry, uzależnij się od tej i zostań jednym z czarodziejów czasu technologii."
- why_ending: "Poza tym, to nic nie kosztuje. "
- why_ending_url: "Zostań czarodziejem już teraz!"
- george_description: "CEO, człowiek od biznesu, web designer, game designer, i mistrz wszystkich początkujących programistów."
- scott_description: "Programista niezwykły, software architect, czarodziej kuchenny i mistrz finansów. Scott to ten rozsądny."
- nick_description: "Programistyczny czarownik, ekscentryczny magik i eksperymentator pełną gębą. Nick może robić cokolwiek, a decyduje się pracować przy CodeCombat."
- jeremy_description: "Magik od kontaktów z klientami, tester użyteczności i organizator społeczności; prawdopodobnie już rozmawiałeś z Jeremym."
- michael_description: "Programista, sys-admin, cudowne dziecko studiów technicznych, Michael to osoba utrzymująca nasze serwery online."
-# matt_description: "Bicyclist, Software Engineer, reader of heroic fantasy, connoisseur of peanut butter, sipper of coffee."
+ why_paragraph_1: "Chcesz nauczyć się programowania? Nie potrzeba ci lekcji. Potrzeba ci pisania dużej ilości kodu w sposób sprawiający ci przyjemność."
+ why_paragraph_2_prefix: "O to chodzi w programowaniu - musi sprawiać radość. Nie radość w stylu"
+ why_paragraph_2_italic: "hura, nowa odznaka"
+ why_paragraph_2_center: ", ale radości w stylu"
+ why_paragraph_2_italic_caps: "NIE MAMO, MUSZĘ DOKOŃCZYĆ TEN POZIOM!"
+ why_paragraph_2_suffix: "Dlatego właśnie CodeCombat to gra multiplayer, a nie kurs oparty na zgamifikowanych lekcjach. Nie przestaniemy, dopóki ty nie będziesz mógł przestać--tym razem jednak w pozytywnym sensie."
+ why_paragraph_3: "Jeśli planujesz uzależnić się od jakiejś gry, uzależnij się od tej i zostań jednym z czarodziejów czasu technologii."
+# press_title: "Bloggers/Press"
+# press_paragraph_1_prefix: "Want to write about us? Feel free to download and use all of the resources included in our"
+# press_paragraph_1_link: "press packet"
+# press_paragraph_1_suffix: ". All logos and images may be used without contacting us directly."
+# team: "Team"
+# george_title: "CEO"
+# george_blurb: "Businesser"
+# scott_title: "Programmer"
+# scott_blurb: "Reasonable One"
+# nick_title: "Programmer"
+# nick_blurb: "Motivation Guru"
+# michael_title: "Programmer"
+# michael_blurb: "Sys Admin"
+# matt_title: "Programmer"
+# matt_blurb: "Bicyclist"
legal:
page_title: "Nota prawna"
diff --git a/app/locale/pt-BR.coffee b/app/locale/pt-BR.coffee
index 6ffe3a56c..8127d9f8e 100644
--- a/app/locale/pt-BR.coffee
+++ b/app/locale/pt-BR.coffee
@@ -49,9 +49,9 @@ module.exports = nativeDescription: "português do Brasil", englishDescription:
blog: "Blog"
forum: "Fórum"
account: "Conta"
-# profile: "Profile"
-# stats: "Stats"
-# code: "Code"
+ profile: "Perfil"
+ stats: "Estatísticas"
+ code: "Código"
admin: "Administrador"
home: "Início"
contribute: "Contribuir"
@@ -79,6 +79,7 @@ module.exports = nativeDescription: "português do Brasil", englishDescription:
recover:
recover_account_title: "Recuperar conta"
send_password: "Recuperar senha"
+# recovery_sent: "Recovery email sent."
signup:
create_account_title: "Criar conta para salvar progresso"
@@ -103,8 +104,8 @@ module.exports = nativeDescription: "português do Brasil", englishDescription:
for_beginners: "Para Iniciantes"
multiplayer: "Multijogador"
for_developers: "Para Desenvolvedores"
-# javascript_blurb: "The language of the web. Great for writing websites, web apps, HTML5 games, and servers."
-# python_blurb: "Simple yet powerful, Python is a great general purpose programming language."
+ javascript_blurb: "A linguagem da web. Ótima para criação de websites, web app, jogos HTML5, e servidores"
+ python_blurb: "Simples mas poderosa, Python é uma linguagem de programação de uso geral"
# coffeescript_blurb: "Nicer JavaScript syntax."
# clojure_blurb: "A modern Lisp."
# lua_blurb: "Game scripting language."
@@ -557,7 +558,7 @@ module.exports = nativeDescription: "português do Brasil", englishDescription:
# grassy: "Grassy"
# fork_title: "Fork New Version"
# fork_creating: "Creating Fork..."
-# randomize: "Randomize"
+# generate_terrain: "Generate Terrain"
more: "Mais"
# wiki: "Wiki"
# live_chat: "Live Chat"
@@ -567,6 +568,7 @@ module.exports = nativeDescription: "português do Brasil", englishDescription:
level_tab_settings: "Configurações"
level_tab_components: "Componentes"
level_tab_systems: "Sistemas"
+# level_tab_docs: "Documentation"
level_tab_thangs_title: "Thangs Atuais"
# level_tab_thangs_all: "All"
level_tab_thangs_conditions: "Condições de Início"
@@ -642,27 +644,29 @@ module.exports = nativeDescription: "português do Brasil", englishDescription:
player: "Jogador"
about:
- who_is_codecombat: "Quem é CodeCombat?"
why_codecombat: "Por que CodeCombat?"
- who_description_prefix: "juntos começamos o CodeCombat em 2013. Noós também criamos "
- who_description_suffix: "em 2008, subindo até o 1º lugar entre aplicativos web e para iOS para aprender caracteres chineses e japoneses."
- who_description_ending: "Agora é a hora de ensinar as pessoas a escreverem código."
- why_paragraph_1: " Quando estava desenvolvendo o Skritter, George não sabia como programar e ficava constantemente frustrado por causa de sua falta de habilidade para implementar suas idéias. Depois, ele tentou aprender, mas as aulas eram muito lentas. Seu colega de quarto, tentando inovar e parar de dar aulas, tentou o Codecademy, mas \"ficou entediado.\" A cada semana um novo amigo começava no Codecademy, e desistia em seguida. Nós percebemos que era o mesmo problema que havíamos resolvido com o Skritter: pessoas aprendendo uma habilidade através de aulas lentas e intensivas quando o que elas precisavam era de prática, rápida e extensa. Nós sabemos como consertar isso."
- why_paragraph_2: "Precisa aprender a codificar? Você não precisa de aulas. Você precisa escrever muito código e se divertir fazendo isso."
- why_paragraph_3_prefix: "É disso que se trata a programação. Tem que ser divertido. Não divertido como"
- why_paragraph_3_italic: "oba uma insígnia"
- why_paragraph_3_center: "mas divertido como"
- why_paragraph_3_italic_caps: "NÃO MÃE EU PRECISO TERMINAR ESSE NÍVEL!"
- why_paragraph_3_suffix: "É por isso que o CodeCombat é um jogo multiplayer, não uma aula que imita um jogo. Nós não iremos parar até você não conseguir parar--mas agora, isso é uma coisa boa."
- why_paragraph_4: "Se você vai se viciar em algum jogo, fique viciado nesse e se torne um dos magos da era da tecnologia."
- why_ending: "E é de graça. "
- why_ending_url: "Comece a feitiçaria agora!"
- george_description: "CEO, um cara de negócios, web designer, designer de jogos, e campeão em iniciar programadores em qualquer lugar."
- scott_description: "Programador extraordinário, arquiteto de software, mago da cozinha e mestre de finanças. Scott é o racional."
- nick_description: "Mago da programação, feiticeiro da motivação excêntrica e experimentador doido. Nick pode fazer qualquer coisa e escolheu desenvolver o CodeCombat."
- jeremy_description: "Mago em suporte ao consumidor, testador de usabilidade, e organizador da comunidade; você provavelmente já falou com o Jeremy."
- michael_description: "Programador, administrador de sistemas, e um técnico prodígio não graduado, Michael é a pessoa que mantém os servidores funcionando."
-# matt_description: "Bicyclist, Software Engineer, reader of heroic fantasy, connoisseur of peanut butter, sipper of coffee."
+ why_paragraph_1: "Precisa aprender a codificar? Você não precisa de aulas. Você precisa escrever muito código e se divertir fazendo isso."
+ why_paragraph_2_prefix: "É disso que se trata a programação. Tem que ser divertido. Não divertido como"
+ why_paragraph_2_italic: "oba uma insígnia"
+ why_paragraph_2_center: "mas divertido como"
+ why_paragraph_2_italic_caps: "NÃO MÃE EU PRECISO TERMINAR ESSE NÍVEL!"
+ why_paragraph_2_suffix: "É por isso que o CodeCombat é um jogo multiplayer, não uma aula que imita um jogo. Nós não iremos parar até você não conseguir parar--mas agora, isso é uma coisa boa."
+ why_paragraph_3: "Se você vai se viciar em algum jogo, fique viciado nesse e se torne um dos magos da era da tecnologia."
+# press_title: "Bloggers/Press"
+# press_paragraph_1_prefix: "Want to write about us? Feel free to download and use all of the resources included in our"
+# press_paragraph_1_link: "press packet"
+# press_paragraph_1_suffix: ". All logos and images may be used without contacting us directly."
+# team: "Team"
+# george_title: "CEO"
+# george_blurb: "Businesser"
+# scott_title: "Programmer"
+# scott_blurb: "Reasonable One"
+# nick_title: "Programmer"
+# nick_blurb: "Motivation Guru"
+# michael_title: "Programmer"
+# michael_blurb: "Sys Admin"
+# matt_title: "Programmer"
+# matt_blurb: "Bicyclist"
legal:
page_title: "Jurídico"
diff --git a/app/locale/pt-PT.coffee b/app/locale/pt-PT.coffee
index dcf88281f..5a29ba6e1 100644
--- a/app/locale/pt-PT.coffee
+++ b/app/locale/pt-PT.coffee
@@ -79,6 +79,7 @@ module.exports = nativeDescription: "Português (Portugal)", englishDescription:
recover:
recover_account_title: "Recuperar Conta"
send_password: "Enviar Password de Recuperação"
+# recovery_sent: "Recovery email sent."
signup:
create_account_title: "Criar Conta para Guardar Progresso"
@@ -123,8 +124,8 @@ module.exports = nativeDescription: "Português (Portugal)", englishDescription:
campaign_multiplayer_description: "... onde programa frente-a-frente contra outros jogadores."
campaign_player_created: "Criados por Jogadores"
campaign_player_created_description: "... onde combate contra a criatividade dos seus colegas Feiticeiros Artesãos."
-# campaign_classic_algorithms: "Classic Algorithms"
-# campaign_classic_algorithms_description: "... in which you learn the most popular algorithms in Computer Science."
+ campaign_classic_algorithms: "Algoritmos Clássicos"
+ campaign_classic_algorithms_description: "... onde aprende os algoritmos mais populares da Ciência da Computação."
level_difficulty: "Dificuldade: "
play_as: "Jogar Como"
spectate: "Espectar"
@@ -462,7 +463,7 @@ module.exports = nativeDescription: "Português (Portugal)", englishDescription:
options:
general_options: "Opções Gerais"
-# volume_label: "Volume"
+ volume_label: "Volume"
music_label: "Música"
music_description: "Ative ou desative a música de fundo."
autorun_label: "Executar Automaticamente"
@@ -557,7 +558,7 @@ module.exports = nativeDescription: "Português (Portugal)", englishDescription:
grassy: "Com Relva"
fork_title: "Bifurcar Nova Versão"
fork_creating: "A Criar Bifurcação..."
- randomize: "Randomizar"
+ generate_terrain: "Gerar Terreno"
more: "Mais"
wiki: "Wiki"
live_chat: "Chat Ao Vivo"
@@ -567,6 +568,7 @@ module.exports = nativeDescription: "Português (Portugal)", englishDescription:
level_tab_settings: "Configurações"
level_tab_components: "Componentes"
level_tab_systems: "Sistemas"
+# level_tab_docs: "Documentation"
level_tab_thangs_title: "Thangs Atuais"
level_tab_thangs_all: "Todos"
level_tab_thangs_conditions: "Condições Iniciais"
@@ -642,27 +644,29 @@ module.exports = nativeDescription: "Português (Portugal)", englishDescription:
player: "Jogador"
about:
- who_is_codecombat: "Quem é o CodeCombat?"
why_codecombat: "Porquê o CodeCombat?"
- who_description_prefix: "começaram juntos o CodeCombat em 2013. Também criaram o "
- who_description_suffix: "em 2008, tornando-o a aplicação nº1 da web e iOS para aprender a escrever caracteteres Chineses e Japoneses."
- who_description_ending: "Agora, está na altura de ensinar as pessoas a escrever código."
- why_paragraph_1: "Aquando da conceção do Skritter, o George não sabia programar e estava constantemente frustrado devido à sua inabilidade para implementar as ideias dele. Mais tarde, tentou aprender, mas as aulas eram muito lentas. O seu colega de quarto, numa tentativa de melhorar as suas habilidades e parar de ensinar, tentou o Codecademy, mas \"aborreceu-se.\" A cada semana, um outro amigo começava no Codecademy, mas desistia sempre. Apercebemo-nos de que era o mesmo problema que resolveríamos com o Skritter: pessoas a aprender uma habilidade através de aulas lentas e intensivas, quando o que precisam é de praticar rápida e extensivamente. Nós sabemos como resolver isso."
- why_paragraph_2: "Precisa de aprender a programar? Não precisa de aulas. Precisa sim de escrever muito código e passar um bom bocado enquanto o faz."
- why_paragraph_3_prefix: "Afinal, é sobre isso que é a programação. Tem de ser divertida. Não divertida do género"
- why_paragraph_3_italic: "yay uma medalha"
- why_paragraph_3_center: "mas sim divertida do género"
- why_paragraph_3_italic_caps: "NÃO MÃE, TENHO DE ACABAR O NÍVEL!"
- why_paragraph_3_suffix: "É por isso que o CodeCombat é um jogo multijogador, e não um jogo que não passa de um curso com lições. Nós não vamos parar enquanto não puderes parar--mas desta vez, isso é uma coisa boa."
- why_paragraph_4: "Se vais ficar viciado em algum jogo, vicia-te neste e torna-te num dos feiticeiros da idade da tecnologia."
- why_ending: "E vejam só, é gratuito. "
- why_ending_url: "Comece a enfeitiçar agora!"
- george_description: "CEO, homem de negócios, designer da web, designer de jogos e campeão dos programadores iniciantes de todo o lado."
- scott_description: "Programador extraordinário, arquiteto de software, feiticeiro da cozinha e mestre das finanças. O Scott é o sensato."
- nick_description: "Feiticeiro da programção, mago da motivação excêntrico e experimentador de pernas para o ar. O Nick pode fazer qualquer coisa e escolhe construir o CodeCombat."
- jeremy_description: "Mago do suporte ao cliente, testador do uso e organizador da comunidade; provavelmente já falou com o Jeremy."
- michael_description: "Programador, administrador do sistema e técnico de graduação prodígio, o Michael é a pessoa que mantém os nossos servidores online."
- matt_description: "Ciclista, engenheiro de software, leitor de fantasia heróica, apreciador de manteiga de amendoim e de café."
+ why_paragraph_1: "Se quer aprender a programar, não precisa de aulas. Precisa sim de escrever muito código e passar um bom bocado enquanto o faz."
+ why_paragraph_2_prefix: "Afinal, é sobre isso que é a programação. Tem de ser divertida. Não divertida do género"
+ why_paragraph_2_italic: "yay uma medalha"
+ why_paragraph_2_center: "mas sim divertida do género"
+ why_paragraph_2_italic_caps: "NÃO MÃE, TENHO DE ACABAR O NÍVEL!"
+ why_paragraph_2_suffix: "É por isso que o CodeCombat é um jogo multijogador, e não um jogo que não passa de um curso com lições. Nós não vamos parar enquanto não puder parar--mas desta vez, isso é uma coisa boa."
+ why_paragraph_3: "Se vai ficar viciado em algum jogo, vicie-se neste e torne-se num dos feiticeiros da idade da tecnologia."
+# press_title: "Bloggers/Press"
+# press_paragraph_1_prefix: "Want to write about us? Feel free to download and use all of the resources included in our"
+# press_paragraph_1_link: "press packet"
+# press_paragraph_1_suffix: ". All logos and images may be used without contacting us directly."
+ team: "Equipa"
+ george_title: "CEO"
+ george_blurb: "Homem de Negócios"
+ scott_title: "Programador"
+ scott_blurb: "O Sensato"
+ nick_title: "Programador"
+ nick_blurb: "Guru da Motivação"
+ michael_title: "Programador"
+ michael_blurb: "Administrador do Sistema"
+ matt_title: "Programador"
+ matt_blurb: "Ciclista"
legal:
page_title: "Legal"
@@ -955,7 +959,7 @@ module.exports = nativeDescription: "Português (Portugal)", englishDescription:
achievement: "Conquista"
clas: "CLAs"
# play_counts: "Play Counts"
-# feedback: "Feedback"
+ feedback: "Feedback"
delta:
added: "Adicionados/as"
diff --git a/app/locale/ro.coffee b/app/locale/ro.coffee
index 4e98cc54c..c39072a03 100644
--- a/app/locale/ro.coffee
+++ b/app/locale/ro.coffee
@@ -79,6 +79,7 @@ module.exports = nativeDescription: "limba română", englishDescription: "Roman
recover:
recover_account_title: "Recuperează Cont"
send_password: "Trimite parolă de recuperare"
+# recovery_sent: "Recovery email sent."
signup:
create_account_title: "Crează cont pentru a salva progresul"
@@ -557,7 +558,7 @@ module.exports = nativeDescription: "limba română", englishDescription: "Roman
# grassy: "Grassy"
# fork_title: "Fork New Version"
# fork_creating: "Creating Fork..."
-# randomize: "Randomize"
+# generate_terrain: "Generate Terrain"
# more: "More"
# wiki: "Wiki"
# live_chat: "Live Chat"
@@ -567,6 +568,7 @@ module.exports = nativeDescription: "limba română", englishDescription: "Roman
level_tab_settings: "Setări"
level_tab_components: "Componente"
level_tab_systems: "Sisteme"
+# level_tab_docs: "Documentation"
level_tab_thangs_title: "Thangs actuali"
# level_tab_thangs_all: "All"
level_tab_thangs_conditions: "Condiți inițiale"
@@ -642,27 +644,29 @@ module.exports = nativeDescription: "limba română", englishDescription: "Roman
# player: "Player"
about:
- who_is_codecombat: "Cine este CodeCombat?"
why_codecombat: "De ce CodeCombat?"
- who_description_prefix: "au pornit împreuna CodeCombat în 2013. Tot noi am creat "
- who_description_suffix: "în 2008, dezvoltând aplicația web si iOS #1 de învățat cum să scri caractere Japoneze si Chinezești."
- who_description_ending: "Acum este timpul să învățăm oamenii să scrie cod."
- why_paragraph_1: "Când am dezolvat Skritter, George nu știa cum să programeze și era mereu frustat de inabilitatea sa de a putea implementa ideile sale. După aceea, a încercat să învețe, dar lecțiile erau prea lente. Colegul său , vrând să se reprofilze și să se lase de predat,a încercat Codecademy, dar \"s-a plictisit.\" În fiecare săptămână un alt prieten a început Codecademy, iar apoi s-a lăsat. Am realizat că este aceeași problemă care am rezolvat-u cu Skritter: oameni încercând să învețe ceva nou prin lecții lente și intensive când defapt ceea ce le trebuie sunt lecții rapide și multă practică. Noi știm cum să rezolvăm asta."
- why_paragraph_2: "Trebuie să înveți să programezi? Nu-ți trebuie lecții. Trebuie să scri mult cod și să te distrezi făcând asta."
- why_paragraph_3_prefix: "Despre asta este programarea. Trebuie să fie distractiv. Nu precum"
- why_paragraph_3_italic: "wow o insignă"
- why_paragraph_3_center: "ci"
- why_paragraph_3_italic_caps: "TREBUIE SĂ TERMIN ACEST NIVEL!"
- why_paragraph_3_suffix: "De aceea CodeCombat este un joc multiplayer, nu un curs transfigurat în joc. Nu ne vom opri până când tu nu te poți opri--și de data asta, e de bine."
- why_paragraph_4: "Dacă e să devi dependent de vreun joc, devino dependent de acesta și fi un vrăjitor al noii ere tehnologice."
- why_ending: "Nu uita, este totul gratis. "
- why_ending_url: "Devino un vrăjitor acum!"
- george_description: "CEO, business guy, web designer, game designer, și campion al programatorilor începători."
- scott_description: "Programmer extraordinaire, software architect, kitchen wizard, și maestru al finanțelor. Scott este cel rezonabil."
- nick_description: "Programming wizard, eccentric motivation mage, and upside-down experimenter. Nick poate să facă orice si a ales să dezvolte CodeCombat."
- jeremy_description: "Customer support mage, usability tester, and community organizer; probabil ca ați vorbit deja cu Jeremy."
- michael_description: "Programmer, sys-admin, and undergrad technical wunderkind, Michael este cel care ține serverele in picioare."
- matt_description: "Bicyclist, Software Engineer, cititor de fantezie eroică, cunoscator de unt de arahide, sorbitor de cafea."
+ why_paragraph_1: "Trebuie să înveți să programezi? Nu-ți trebuie lecții. Trebuie să scri mult cod și să te distrezi făcând asta."
+ why_paragraph_2_prefix: "Despre asta este programarea. Trebuie să fie distractiv. Nu precum"
+ why_paragraph_2_italic: "wow o insignă"
+ why_paragraph_2_center: "ci"
+ why_paragraph_2_italic_caps: "TREBUIE SĂ TERMIN ACEST NIVEL!"
+ why_paragraph_2_suffix: "De aceea CodeCombat este un joc multiplayer, nu un curs transfigurat în joc. Nu ne vom opri până când tu nu te poți opri--și de data asta, e de bine."
+ why_paragraph_3: "Dacă e să devi dependent de vreun joc, devino dependent de acesta și fi un vrăjitor al noii ere tehnologice."
+# press_title: "Bloggers/Press"
+# press_paragraph_1_prefix: "Want to write about us? Feel free to download and use all of the resources included in our"
+# press_paragraph_1_link: "press packet"
+# press_paragraph_1_suffix: ". All logos and images may be used without contacting us directly."
+# team: "Team"
+# george_title: "CEO"
+# george_blurb: "Businesser"
+# scott_title: "Programmer"
+# scott_blurb: "Reasonable One"
+# nick_title: "Programmer"
+# nick_blurb: "Motivation Guru"
+# michael_title: "Programmer"
+# michael_blurb: "Sys Admin"
+# matt_title: "Programmer"
+# matt_blurb: "Bicyclist"
legal:
page_title: "Aspecte Legale"
diff --git a/app/locale/ru.coffee b/app/locale/ru.coffee
index d6b578b9d..2b51243ff 100644
--- a/app/locale/ru.coffee
+++ b/app/locale/ru.coffee
@@ -79,18 +79,19 @@ module.exports = nativeDescription: "русский", englishDescription: "Russi
recover:
recover_account_title: "Восстановить аккаунт"
send_password: "Отправить пароль для восстановления"
+# recovery_sent: "Recovery email sent."
signup:
create_account_title: "Создать аккаунт, чтобы сохранить прогресс"
description: "Это бесплатно. Нужна лишь пара вещей, и вы сможете продолжить путешествие:"
- email_announcements: "Получать оповещения на email"
+ email_announcements: "Получать оповещения по email"
coppa: "Вы старше 13 лет или живёте не в США "
coppa_why: "(почему?)"
creating: "Создание аккаунта..."
sign_up: "Регистрация"
log_in: "вход с паролем"
social_signup: "Или вы можете зарегистрироваться через Facebook или G+:"
- required: "Войдите для того чтобы продолжить."
+ required: "Войдите для того, чтобы продолжить."
home:
slogan: "Научитесь программировать, играя в игру"
@@ -123,13 +124,13 @@ module.exports = nativeDescription: "русский", englishDescription: "Russi
campaign_multiplayer_description: "... в которых вы соревнуетесь в программировании с другими игроками."
campaign_player_created: "Уровни игроков"
campaign_player_created_description: "... в которых вы сражаетесь с креативностью ваших друзей Ремесленников."
-# campaign_classic_algorithms: "Classic Algorithms"
-# campaign_classic_algorithms_description: "... in which you learn the most popular algorithms in Computer Science."
+ campaign_classic_algorithms: "Классические принципы"
+ campaign_classic_algorithms_description: "... которые чаще всего встречаются в копьютерных науках."
level_difficulty: "Сложность: "
play_as: "Играть за "
spectate: "Наблюдать"
-# players: "players"
-# hours_played: "hours played"
+ players: "игроки"
+ hours_played: "часов сыграно"
contact:
contact_us: "Связаться с CodeCombat"
@@ -142,7 +143,7 @@ module.exports = nativeDescription: "русский", englishDescription: "Russi
forum_suffix: "."
send: "Отправить отзыв"
contact_candidate: "Связаться с кандидатом"
- recruitment_reminder: "Используйте эту форму, чтобы обратиться к кандидатам, если вы заинтересованы в интервью. Помните, что CodeCombat взимает 18% от первого года зарплаты. Плата производится по найму сотрудника и подлежит возмещению в течение 90 дней, если работник не остаётся на рабочем месте. Работники с частичной занятостью, удалённые и работающие по контракту свободны, как стажёры."
+ recruitment_reminder: "Используйте эту форму, чтобы обратиться к кандидатам, если вы заинтересованы в интервью. Помните, что CodeCombat взимает 18% от первого года зарплаты. Плата производится по найму сотрудника и подлежит возмещению в течение 90 дней, если работник не остаётся на рабочем месте. Работники с частичной занятостью, работаюие удалённо и по контракту свободны, как стажёры."
diplomat_suggestion:
title: "Помогите перевести CodeCombat!"
@@ -557,7 +558,7 @@ module.exports = nativeDescription: "русский", englishDescription: "Russi
grassy: "Травянистый"
fork_title: "Форк новой версии"
fork_creating: "Создание форка..."
- randomize: "Случайный выбор"
+# generate_terrain: "Generate Terrain"
more: "Ещё"
wiki: "Вики"
live_chat: "Онлайн-чат"
@@ -567,6 +568,7 @@ module.exports = nativeDescription: "русский", englishDescription: "Russi
level_tab_settings: "Настройки"
level_tab_components: "Компоненты"
level_tab_systems: "Системы"
+# level_tab_docs: "Documentation"
level_tab_thangs_title: "Текущие объекты"
level_tab_thangs_all: "Все"
level_tab_thangs_conditions: "Начальные условия"
@@ -642,27 +644,29 @@ module.exports = nativeDescription: "русский", englishDescription: "Russi
player: "Игрок"
about:
- who_is_codecombat: "Кто стоит за CodeCombat?"
why_codecombat: "Почему CodeCombat?"
- who_description_prefix: "вместе начали CodeCombat в 2013 году. Также мы создали "
- who_description_suffix: "в 2008 году, вывели его на первую строчку среди web и iOS приложений для обучения письму китайскими и японскими иероглифами."
- who_description_ending: "Теперь пришло время научить людей написанию кода."
- why_paragraph_1: "При создании Skritter, Джордж не знал, как программировать и постоянно расстраивался из-за того, что не мог реализовать свои идеи. После этого он пытался учиться, но уроки были слишком медленными. Его сосед, желая переквалифицироваться и прекратить преподавать, пробовал Codecademy, но \"потерял интерес.\" Каждую неделю очередной товарищ начинал Codecademy, затем бросал. Мы поняли, что это была та же проблема, которую мы решили со Skritter: люди получают навык через медленные, интенсивные уроки, в то время как то, что им нужно - быстрая, обширная практика. Мы знаем, как это исправить."
- why_paragraph_2: "Нужно научиться программировать? Вам не нужны уроки. Вам нужно написать много кода и прекрасно провести время, делая это."
- why_paragraph_3_prefix: "Вот где программирование. Это должно быть весело. Не забавно, вроде"
- why_paragraph_3_italic: "вау, значок,"
- why_paragraph_3_center: "а"
- why_paragraph_3_italic_caps: "НЕТ, МАМ, Я ДОЛЖЕН ПРОЙТИ УРОВЕНЬ!"
- why_paragraph_3_suffix: "Вот, почему CodeCombat - мультиплеерная игра, а не курс уроков в игровой форме. Мы не остановимся, пока вы не потеряете голову - в данном случае, это хорошо."
- why_paragraph_4: "Если вы собираетесь увлечься какой-нибудь игрой, увлекитесь этой и станьте одним из волшебников века информационных технологий."
- why_ending: "И да, это бесплатно. "
- why_ending_url: "Начни волшебство сейчас!"
- george_description: "Генеральный директор, бизнес-парень, веб-дизайнер, геймдизайнер и чемпион начинающих программистов во всём мире."
- scott_description: "Экстраординарный программист, архитектор программного обеспечения, кухонный волшебник и мастер финансов. Скотт рассудителен."
- nick_description: "Маг программирования, мудрец эксцентричного мотивирования и чудаковатый экспериментатор. Ник может всё и хочет построить CodeCombat."
- jeremy_description: "Маг клиентской поддержки, юзабилити-тестер, и организатор сообщества; вы наверняка уже говорили с Джереми."
- michael_description: "Программист, сисадмин и непризнанный технический гений, Михаэль является лицом, поддерживающим наши серверы в доступности."
-# matt_description: "Bicyclist, Software Engineer, reader of heroic fantasy, connoisseur of peanut butter, sipper of coffee."
+ why_paragraph_1: "Нужно научиться программировать? Вам не нужны уроки. Вам нужно написать много кода и прекрасно провести время, делая это."
+ why_paragraph_2_prefix: "Вот где программирование. Это должно быть весело. Не забавно, вроде"
+ why_paragraph_2_italic: "вау, значок,"
+ why_paragraph_2_center: "а"
+ why_paragraph_2_italic_caps: "НЕТ, МАМ, Я ДОЛЖЕН ПРОЙТИ УРОВЕНЬ!"
+ why_paragraph_2_suffix: "Вот, почему CodeCombat - мультиплеерная игра, а не курс уроков в игровой форме. Мы не остановимся, пока вы не потеряете голову - в данном случае, это хорошо."
+ why_paragraph_3: "Если вы собираетесь увлечься какой-нибудь игрой, увлекитесь этой и станьте одним из волшебников века информационных технологий."
+# press_title: "Bloggers/Press"
+# press_paragraph_1_prefix: "Want to write about us? Feel free to download and use all of the resources included in our"
+# press_paragraph_1_link: "press packet"
+# press_paragraph_1_suffix: ". All logos and images may be used without contacting us directly."
+# team: "Team"
+# george_title: "CEO"
+# george_blurb: "Businesser"
+# scott_title: "Programmer"
+# scott_blurb: "Reasonable One"
+# nick_title: "Programmer"
+# nick_blurb: "Motivation Guru"
+# michael_title: "Programmer"
+# michael_blurb: "Sys Admin"
+# matt_title: "Programmer"
+# matt_blurb: "Bicyclist"
legal:
page_title: "Юридическая информация"
diff --git a/app/locale/sk.coffee b/app/locale/sk.coffee
index 6cf8d53c4..70cd9fae3 100644
--- a/app/locale/sk.coffee
+++ b/app/locale/sk.coffee
@@ -79,6 +79,7 @@ module.exports = nativeDescription: "slovenčina", englishDescription: "Slovak",
recover:
recover_account_title: "Obnov účet"
send_password: "Zašli záchranné heslo"
+# recovery_sent: "Recovery email sent."
signup:
create_account_title: "Vytvor si účet, nech si uložíš progres"
@@ -557,7 +558,7 @@ module.exports = nativeDescription: "slovenčina", englishDescription: "Slovak",
# grassy: "Grassy"
# fork_title: "Fork New Version"
# fork_creating: "Creating Fork..."
-# randomize: "Randomize"
+# generate_terrain: "Generate Terrain"
# more: "More"
# wiki: "Wiki"
# live_chat: "Live Chat"
@@ -567,6 +568,7 @@ module.exports = nativeDescription: "slovenčina", englishDescription: "Slovak",
# level_tab_settings: "Settings"
# level_tab_components: "Components"
# level_tab_systems: "Systems"
+# level_tab_docs: "Documentation"
# level_tab_thangs_title: "Current Thangs"
# level_tab_thangs_all: "All"
# level_tab_thangs_conditions: "Starting Conditions"
@@ -642,27 +644,29 @@ module.exports = nativeDescription: "slovenčina", englishDescription: "Slovak",
# player: "Player"
# about:
-# who_is_codecombat: "Who is CodeCombat?"
# why_codecombat: "Why CodeCombat?"
-# who_description_prefix: "together started CodeCombat in 2013. We also created "
-# who_description_suffix: "in 2008, growing it to the #1 web and iOS application for learning to write Chinese and Japanese characters."
-# who_description_ending: "Now it's time to teach people to write code."
-# why_paragraph_1: "When making Skritter, George didn't know how to program and was constantly frustrated by his inability to implement his ideas. Afterwards, he tried learning, but the lessons were too slow. His housemate, wanting to reskill and stop teaching, tried Codecademy, but \"got bored.\" Each week another friend started Codecademy, then dropped off. We realized it was the same problem we'd solved with Skritter: people learning a skill via slow, intensive lessons when what they need is fast, extensive practice. We know how to fix that."
-# why_paragraph_2: "Need to learn to code? You don't need lessons. You need to write a lot of code and have a great time doing it."
-# why_paragraph_3_prefix: "That's what programming is about. It's gotta be fun. Not fun like"
-# why_paragraph_3_italic: "yay a badge"
-# why_paragraph_3_center: "but fun like"
-# why_paragraph_3_italic_caps: "NO MOM I HAVE TO FINISH THE LEVEL!"
-# why_paragraph_3_suffix: "That's why CodeCombat is a multiplayer game, not a gamified lesson course. We won't stop until you can't stop--but this time, that's a good thing."
-# why_paragraph_4: "If you're going to get addicted to some game, get addicted to this one and become one of the wizards of the tech age."
-# why_ending: "And hey, it's free. "
-# why_ending_url: "Start wizarding now!"
-# george_description: "CEO, business guy, web designer, game designer, and champion of beginning programmers everywhere."
-# scott_description: "Programmer extraordinaire, software architect, kitchen wizard, and master of finances. Scott is the reasonable one."
-# nick_description: "Programming wizard, eccentric motivation mage, and upside-down experimenter. Nick can do anything and chooses to build CodeCombat."
-# jeremy_description: "Customer support mage, usability tester, and community organizer; you've probably already spoken with Jeremy."
-# michael_description: "Programmer, sys-admin, and undergrad technical wunderkind, Michael is the person keeping our servers online."
-# matt_description: "Bicyclist, Software Engineer, reader of heroic fantasy, connoisseur of peanut butter, sipper of coffee."
+# why_paragraph_1: "If you want to learn to program, you don't need lessons. You need to write a lot of code and have a great time doing it."
+# why_paragraph_2_prefix: "That's what programming is about. It's gotta be fun. Not fun like"
+# why_paragraph_2_italic: "yay a badge"
+# why_paragraph_2_center: "but fun like"
+# why_paragraph_2_italic_caps: "NO MOM I HAVE TO FINISH THE LEVEL!"
+# why_paragraph_2_suffix: "That's why CodeCombat is a multiplayer game, not a gamified lesson course. We won't stop until you can't stop--but this time, that's a good thing."
+# why_paragraph_3: "If you're going to get addicted to some game, get addicted to this one and become one of the wizards of the tech age."
+# press_title: "Bloggers/Press"
+# press_paragraph_1_prefix: "Want to write about us? Feel free to download and use all of the resources included in our"
+# press_paragraph_1_link: "press packet"
+# press_paragraph_1_suffix: ". All logos and images may be used without contacting us directly."
+# team: "Team"
+# george_title: "CEO"
+# george_blurb: "Businesser"
+# scott_title: "Programmer"
+# scott_blurb: "Reasonable One"
+# nick_title: "Programmer"
+# nick_blurb: "Motivation Guru"
+# michael_title: "Programmer"
+# michael_blurb: "Sys Admin"
+# matt_title: "Programmer"
+# matt_blurb: "Bicyclist"
# legal:
# page_title: "Legal"
diff --git a/app/locale/sl.coffee b/app/locale/sl.coffee
index 8ed46d8aa..5ae40cabe 100644
--- a/app/locale/sl.coffee
+++ b/app/locale/sl.coffee
@@ -79,6 +79,7 @@ module.exports = nativeDescription: "slovenščina", englishDescription: "Sloven
# recover:
# recover_account_title: "Recover Account"
# send_password: "Send Recovery Password"
+# recovery_sent: "Recovery email sent."
# signup:
# create_account_title: "Create Account to Save Progress"
@@ -557,7 +558,7 @@ module.exports = nativeDescription: "slovenščina", englishDescription: "Sloven
# grassy: "Grassy"
# fork_title: "Fork New Version"
# fork_creating: "Creating Fork..."
-# randomize: "Randomize"
+# generate_terrain: "Generate Terrain"
# more: "More"
# wiki: "Wiki"
# live_chat: "Live Chat"
@@ -567,6 +568,7 @@ module.exports = nativeDescription: "slovenščina", englishDescription: "Sloven
# level_tab_settings: "Settings"
# level_tab_components: "Components"
# level_tab_systems: "Systems"
+# level_tab_docs: "Documentation"
# level_tab_thangs_title: "Current Thangs"
# level_tab_thangs_all: "All"
# level_tab_thangs_conditions: "Starting Conditions"
@@ -642,27 +644,29 @@ module.exports = nativeDescription: "slovenščina", englishDescription: "Sloven
# player: "Player"
# about:
-# who_is_codecombat: "Who is CodeCombat?"
# why_codecombat: "Why CodeCombat?"
-# who_description_prefix: "together started CodeCombat in 2013. We also created "
-# who_description_suffix: "in 2008, growing it to the #1 web and iOS application for learning to write Chinese and Japanese characters."
-# who_description_ending: "Now it's time to teach people to write code."
-# why_paragraph_1: "When making Skritter, George didn't know how to program and was constantly frustrated by his inability to implement his ideas. Afterwards, he tried learning, but the lessons were too slow. His housemate, wanting to reskill and stop teaching, tried Codecademy, but \"got bored.\" Each week another friend started Codecademy, then dropped off. We realized it was the same problem we'd solved with Skritter: people learning a skill via slow, intensive lessons when what they need is fast, extensive practice. We know how to fix that."
-# why_paragraph_2: "Need to learn to code? You don't need lessons. You need to write a lot of code and have a great time doing it."
-# why_paragraph_3_prefix: "That's what programming is about. It's gotta be fun. Not fun like"
-# why_paragraph_3_italic: "yay a badge"
-# why_paragraph_3_center: "but fun like"
-# why_paragraph_3_italic_caps: "NO MOM I HAVE TO FINISH THE LEVEL!"
-# why_paragraph_3_suffix: "That's why CodeCombat is a multiplayer game, not a gamified lesson course. We won't stop until you can't stop--but this time, that's a good thing."
-# why_paragraph_4: "If you're going to get addicted to some game, get addicted to this one and become one of the wizards of the tech age."
-# why_ending: "And hey, it's free. "
-# why_ending_url: "Start wizarding now!"
-# george_description: "CEO, business guy, web designer, game designer, and champion of beginning programmers everywhere."
-# scott_description: "Programmer extraordinaire, software architect, kitchen wizard, and master of finances. Scott is the reasonable one."
-# nick_description: "Programming wizard, eccentric motivation mage, and upside-down experimenter. Nick can do anything and chooses to build CodeCombat."
-# jeremy_description: "Customer support mage, usability tester, and community organizer; you've probably already spoken with Jeremy."
-# michael_description: "Programmer, sys-admin, and undergrad technical wunderkind, Michael is the person keeping our servers online."
-# matt_description: "Bicyclist, Software Engineer, reader of heroic fantasy, connoisseur of peanut butter, sipper of coffee."
+# why_paragraph_1: "If you want to learn to program, you don't need lessons. You need to write a lot of code and have a great time doing it."
+# why_paragraph_2_prefix: "That's what programming is about. It's gotta be fun. Not fun like"
+# why_paragraph_2_italic: "yay a badge"
+# why_paragraph_2_center: "but fun like"
+# why_paragraph_2_italic_caps: "NO MOM I HAVE TO FINISH THE LEVEL!"
+# why_paragraph_2_suffix: "That's why CodeCombat is a multiplayer game, not a gamified lesson course. We won't stop until you can't stop--but this time, that's a good thing."
+# why_paragraph_3: "If you're going to get addicted to some game, get addicted to this one and become one of the wizards of the tech age."
+# press_title: "Bloggers/Press"
+# press_paragraph_1_prefix: "Want to write about us? Feel free to download and use all of the resources included in our"
+# press_paragraph_1_link: "press packet"
+# press_paragraph_1_suffix: ". All logos and images may be used without contacting us directly."
+# team: "Team"
+# george_title: "CEO"
+# george_blurb: "Businesser"
+# scott_title: "Programmer"
+# scott_blurb: "Reasonable One"
+# nick_title: "Programmer"
+# nick_blurb: "Motivation Guru"
+# michael_title: "Programmer"
+# michael_blurb: "Sys Admin"
+# matt_title: "Programmer"
+# matt_blurb: "Bicyclist"
# legal:
# page_title: "Legal"
diff --git a/app/locale/sr.coffee b/app/locale/sr.coffee
index 4b7423811..3a12c7f0b 100644
--- a/app/locale/sr.coffee
+++ b/app/locale/sr.coffee
@@ -79,6 +79,7 @@ module.exports = nativeDescription: "српски", englishDescription: "Serbian
recover:
recover_account_title: "Поврати налог"
# send_password: "Send Recovery Password"
+# recovery_sent: "Recovery email sent."
signup:
# create_account_title: "Create Account to Save Progress"
@@ -557,7 +558,7 @@ module.exports = nativeDescription: "српски", englishDescription: "Serbian
# grassy: "Grassy"
# fork_title: "Fork New Version"
# fork_creating: "Creating Fork..."
-# randomize: "Randomize"
+# generate_terrain: "Generate Terrain"
# more: "More"
# wiki: "Wiki"
# live_chat: "Live Chat"
@@ -567,6 +568,7 @@ module.exports = nativeDescription: "српски", englishDescription: "Serbian
# level_tab_settings: "Settings"
# level_tab_components: "Components"
# level_tab_systems: "Systems"
+# level_tab_docs: "Documentation"
# level_tab_thangs_title: "Current Thangs"
# level_tab_thangs_all: "All"
# level_tab_thangs_conditions: "Starting Conditions"
@@ -642,27 +644,29 @@ module.exports = nativeDescription: "српски", englishDescription: "Serbian
# player: "Player"
# about:
-# who_is_codecombat: "Who is CodeCombat?"
# why_codecombat: "Why CodeCombat?"
-# who_description_prefix: "together started CodeCombat in 2013. We also created "
-# who_description_suffix: "in 2008, growing it to the #1 web and iOS application for learning to write Chinese and Japanese characters."
-# who_description_ending: "Now it's time to teach people to write code."
-# why_paragraph_1: "When making Skritter, George didn't know how to program and was constantly frustrated by his inability to implement his ideas. Afterwards, he tried learning, but the lessons were too slow. His housemate, wanting to reskill and stop teaching, tried Codecademy, but \"got bored.\" Each week another friend started Codecademy, then dropped off. We realized it was the same problem we'd solved with Skritter: people learning a skill via slow, intensive lessons when what they need is fast, extensive practice. We know how to fix that."
-# why_paragraph_2: "Need to learn to code? You don't need lessons. You need to write a lot of code and have a great time doing it."
-# why_paragraph_3_prefix: "That's what programming is about. It's gotta be fun. Not fun like"
-# why_paragraph_3_italic: "yay a badge"
-# why_paragraph_3_center: "but fun like"
-# why_paragraph_3_italic_caps: "NO MOM I HAVE TO FINISH THE LEVEL!"
-# why_paragraph_3_suffix: "That's why CodeCombat is a multiplayer game, not a gamified lesson course. We won't stop until you can't stop--but this time, that's a good thing."
-# why_paragraph_4: "If you're going to get addicted to some game, get addicted to this one and become one of the wizards of the tech age."
-# why_ending: "And hey, it's free. "
-# why_ending_url: "Start wizarding now!"
-# george_description: "CEO, business guy, web designer, game designer, and champion of beginning programmers everywhere."
-# scott_description: "Programmer extraordinaire, software architect, kitchen wizard, and master of finances. Scott is the reasonable one."
-# nick_description: "Programming wizard, eccentric motivation mage, and upside-down experimenter. Nick can do anything and chooses to build CodeCombat."
-# jeremy_description: "Customer support mage, usability tester, and community organizer; you've probably already spoken with Jeremy."
-# michael_description: "Programmer, sys-admin, and undergrad technical wunderkind, Michael is the person keeping our servers online."
-# matt_description: "Bicyclist, Software Engineer, reader of heroic fantasy, connoisseur of peanut butter, sipper of coffee."
+# why_paragraph_1: "If you want to learn to program, you don't need lessons. You need to write a lot of code and have a great time doing it."
+# why_paragraph_2_prefix: "That's what programming is about. It's gotta be fun. Not fun like"
+# why_paragraph_2_italic: "yay a badge"
+# why_paragraph_2_center: "but fun like"
+# why_paragraph_2_italic_caps: "NO MOM I HAVE TO FINISH THE LEVEL!"
+# why_paragraph_2_suffix: "That's why CodeCombat is a multiplayer game, not a gamified lesson course. We won't stop until you can't stop--but this time, that's a good thing."
+# why_paragraph_3: "If you're going to get addicted to some game, get addicted to this one and become one of the wizards of the tech age."
+# press_title: "Bloggers/Press"
+# press_paragraph_1_prefix: "Want to write about us? Feel free to download and use all of the resources included in our"
+# press_paragraph_1_link: "press packet"
+# press_paragraph_1_suffix: ". All logos and images may be used without contacting us directly."
+# team: "Team"
+# george_title: "CEO"
+# george_blurb: "Businesser"
+# scott_title: "Programmer"
+# scott_blurb: "Reasonable One"
+# nick_title: "Programmer"
+# nick_blurb: "Motivation Guru"
+# michael_title: "Programmer"
+# michael_blurb: "Sys Admin"
+# matt_title: "Programmer"
+# matt_blurb: "Bicyclist"
# legal:
# page_title: "Legal"
diff --git a/app/locale/sv.coffee b/app/locale/sv.coffee
index bf5d40751..bd2f27153 100644
--- a/app/locale/sv.coffee
+++ b/app/locale/sv.coffee
@@ -79,6 +79,7 @@ module.exports = nativeDescription: "Svenska", englishDescription: "Swedish", tr
recover:
recover_account_title: "Återskapa ditt konto"
send_password: "Skicka återskapningslösenord"
+# recovery_sent: "Recovery email sent."
signup:
create_account_title: "Skapa ett konto för att spara dina framsteg"
@@ -557,7 +558,7 @@ module.exports = nativeDescription: "Svenska", englishDescription: "Swedish", tr
# grassy: "Grassy"
# fork_title: "Fork New Version"
# fork_creating: "Creating Fork..."
-# randomize: "Randomize"
+# generate_terrain: "Generate Terrain"
# more: "More"
# wiki: "Wiki"
# live_chat: "Live Chat"
@@ -567,6 +568,7 @@ module.exports = nativeDescription: "Svenska", englishDescription: "Swedish", tr
level_tab_settings: "Inställningar"
level_tab_components: "Komponenter"
level_tab_systems: "System"
+# level_tab_docs: "Documentation"
level_tab_thangs_title: "Nuvarande enheter"
# level_tab_thangs_all: "All"
level_tab_thangs_conditions: "Startvillkor"
@@ -642,27 +644,29 @@ module.exports = nativeDescription: "Svenska", englishDescription: "Swedish", tr
# player: "Player"
about:
- who_is_codecombat: "Vilka är CodeCombat?"
why_codecombat: "Varför CodeCombat?"
- who_description_prefix: "startade tillsammans CodeCombat 2013. Vi skapade också "
- who_description_suffix: "i 2008, och fick det att växa till #1 webb- och iOS-applikation för att lära sig skriva kinesiska och japanska tecken."
- who_description_ending: "Nu är det dags att lära folk skriva kod."
- why_paragraph_1: "När han gjorde Skritter, visste inte George hur man programmerar och var ständigt frustrerad av sin oförmåga att implementera sina idéer. Efteråt försökte han lära sig, men lektionerna var för långsama. Hans husgranne, som ville lära sig något nytt och sluta undervisa, försökte med Codecademy men \"tröttnade\". Varje vecka började en annan vän med Codecademy, för att sedan sluta. Vi insåg att det var samma problem vi hade löst med Skritter: folk lär sig en färdighet via långsamma, intensiva lektioner när det de behöver är snabb, omfattande övning. Vi vet hur man fixar det"
- why_paragraph_2: "Behöver du lära dig att koda? Du behöver inte lektioner. Du behöver skriva mycket kod och ha roligt medan du gör det."
- why_paragraph_3_prefix: "Det är vad programmering handlar om. Det måste vara roligt. Inte roligt som i"
- why_paragraph_3_italic: "hurra, en medalj"
- why_paragraph_3_center: "utan roligt som i"
- why_paragraph_3_italic_caps: "NEJ MAMMA JAG MÅSTE BLI KLAR MED DEN HÄR NIVÅN"
- why_paragraph_3_suffix: "Därför är CodeCombat ett flerspelarspel, inte en spelifierad kurs. Vi slutar inte förrän du inte kan sluta - men den här gången är det en bra sak."
- why_paragraph_4: "Om du tänker bli beroende av något spel, bli beroende av det här och bli en av teknikålderns trollkarlar."
- why_ending: "Och du, det är gratis. "
- why_ending_url: "Bli en trollkarl nu!"
- george_description: "VD, affärskille, webbdesignare, speldesignare, och förkämpe för förstagångsprogrammerare överallt."
- scott_description: "Extraordinär programmerare, mjukvaruarkitekt, kökstrollkarl och finansmästare. Scott är den den förståndiga."
- nick_description: "Programmeringstrollkarl, excentrisk motivationsmagiker och upp-och-ner-experimenterare. Nick kan göra vad som helst och väljer att bygga CodeCombat."
- jeremy_description: "Kundsupportsmagiker, användbarhetstestare och gemenskapsorganisatör; du har förmodligen redan pratat med Jeremy."
- michael_description: "Programmerare, sys-admin, och studerande tekniskt underbarn, Michael är personen som håller våra servrar online."
-# matt_description: "Bicyclist, Software Engineer, reader of heroic fantasy, connoisseur of peanut butter, sipper of coffee."
+ why_paragraph_1: "Behöver du lära dig att koda? Du behöver inte lektioner. Du behöver skriva mycket kod och ha roligt medan du gör det."
+ why_paragraph_2_prefix: "Det är vad programmering handlar om. Det måste vara roligt. Inte roligt som i"
+ why_paragraph_2_italic: "hurra, en medalj"
+ why_paragraph_2_center: "utan roligt som i"
+ why_paragraph_2_italic_caps: "NEJ MAMMA JAG MÅSTE BLI KLAR MED DEN HÄR NIVÅN"
+ why_paragraph_2_suffix: "Därför är CodeCombat ett flerspelarspel, inte en spelifierad kurs. Vi slutar inte förrän du inte kan sluta - men den här gången är det en bra sak."
+ why_paragraph_3: "Om du tänker bli beroende av något spel, bli beroende av det här och bli en av teknikålderns trollkarlar."
+# press_title: "Bloggers/Press"
+# press_paragraph_1_prefix: "Want to write about us? Feel free to download and use all of the resources included in our"
+# press_paragraph_1_link: "press packet"
+# press_paragraph_1_suffix: ". All logos and images may be used without contacting us directly."
+# team: "Team"
+# george_title: "CEO"
+# george_blurb: "Businesser"
+# scott_title: "Programmer"
+# scott_blurb: "Reasonable One"
+# nick_title: "Programmer"
+# nick_blurb: "Motivation Guru"
+# michael_title: "Programmer"
+# michael_blurb: "Sys Admin"
+# matt_title: "Programmer"
+# matt_blurb: "Bicyclist"
legal:
page_title: "Juridik"
diff --git a/app/locale/th.coffee b/app/locale/th.coffee
index 5abe55703..3d01814eb 100644
--- a/app/locale/th.coffee
+++ b/app/locale/th.coffee
@@ -79,6 +79,7 @@ module.exports = nativeDescription: "ไทย", englishDescription: "Thai", tra
# recover:
# recover_account_title: "Recover Account"
# send_password: "Send Recovery Password"
+# recovery_sent: "Recovery email sent."
signup:
create_account_title: "สร้างบัญชีใหม่เพื่อบันทึกความก้าวหน้า"
@@ -557,7 +558,7 @@ module.exports = nativeDescription: "ไทย", englishDescription: "Thai", tra
# grassy: "Grassy"
# fork_title: "Fork New Version"
# fork_creating: "Creating Fork..."
-# randomize: "Randomize"
+# generate_terrain: "Generate Terrain"
# more: "More"
# wiki: "Wiki"
# live_chat: "Live Chat"
@@ -567,6 +568,7 @@ module.exports = nativeDescription: "ไทย", englishDescription: "Thai", tra
# level_tab_settings: "Settings"
# level_tab_components: "Components"
# level_tab_systems: "Systems"
+# level_tab_docs: "Documentation"
# level_tab_thangs_title: "Current Thangs"
# level_tab_thangs_all: "All"
# level_tab_thangs_conditions: "Starting Conditions"
@@ -642,27 +644,29 @@ module.exports = nativeDescription: "ไทย", englishDescription: "Thai", tra
# player: "Player"
# about:
-# who_is_codecombat: "Who is CodeCombat?"
# why_codecombat: "Why CodeCombat?"
-# who_description_prefix: "together started CodeCombat in 2013. We also created "
-# who_description_suffix: "in 2008, growing it to the #1 web and iOS application for learning to write Chinese and Japanese characters."
-# who_description_ending: "Now it's time to teach people to write code."
-# why_paragraph_1: "When making Skritter, George didn't know how to program and was constantly frustrated by his inability to implement his ideas. Afterwards, he tried learning, but the lessons were too slow. His housemate, wanting to reskill and stop teaching, tried Codecademy, but \"got bored.\" Each week another friend started Codecademy, then dropped off. We realized it was the same problem we'd solved with Skritter: people learning a skill via slow, intensive lessons when what they need is fast, extensive practice. We know how to fix that."
-# why_paragraph_2: "Need to learn to code? You don't need lessons. You need to write a lot of code and have a great time doing it."
-# why_paragraph_3_prefix: "That's what programming is about. It's gotta be fun. Not fun like"
-# why_paragraph_3_italic: "yay a badge"
-# why_paragraph_3_center: "but fun like"
-# why_paragraph_3_italic_caps: "NO MOM I HAVE TO FINISH THE LEVEL!"
-# why_paragraph_3_suffix: "That's why CodeCombat is a multiplayer game, not a gamified lesson course. We won't stop until you can't stop--but this time, that's a good thing."
-# why_paragraph_4: "If you're going to get addicted to some game, get addicted to this one and become one of the wizards of the tech age."
-# why_ending: "And hey, it's free. "
-# why_ending_url: "Start wizarding now!"
-# george_description: "CEO, business guy, web designer, game designer, and champion of beginning programmers everywhere."
-# scott_description: "Programmer extraordinaire, software architect, kitchen wizard, and master of finances. Scott is the reasonable one."
-# nick_description: "Programming wizard, eccentric motivation mage, and upside-down experimenter. Nick can do anything and chooses to build CodeCombat."
-# jeremy_description: "Customer support mage, usability tester, and community organizer; you've probably already spoken with Jeremy."
-# michael_description: "Programmer, sys-admin, and undergrad technical wunderkind, Michael is the person keeping our servers online."
-# matt_description: "Bicyclist, Software Engineer, reader of heroic fantasy, connoisseur of peanut butter, sipper of coffee."
+# why_paragraph_1: "If you want to learn to program, you don't need lessons. You need to write a lot of code and have a great time doing it."
+# why_paragraph_2_prefix: "That's what programming is about. It's gotta be fun. Not fun like"
+# why_paragraph_2_italic: "yay a badge"
+# why_paragraph_2_center: "but fun like"
+# why_paragraph_2_italic_caps: "NO MOM I HAVE TO FINISH THE LEVEL!"
+# why_paragraph_2_suffix: "That's why CodeCombat is a multiplayer game, not a gamified lesson course. We won't stop until you can't stop--but this time, that's a good thing."
+# why_paragraph_3: "If you're going to get addicted to some game, get addicted to this one and become one of the wizards of the tech age."
+# press_title: "Bloggers/Press"
+# press_paragraph_1_prefix: "Want to write about us? Feel free to download and use all of the resources included in our"
+# press_paragraph_1_link: "press packet"
+# press_paragraph_1_suffix: ". All logos and images may be used without contacting us directly."
+# team: "Team"
+# george_title: "CEO"
+# george_blurb: "Businesser"
+# scott_title: "Programmer"
+# scott_blurb: "Reasonable One"
+# nick_title: "Programmer"
+# nick_blurb: "Motivation Guru"
+# michael_title: "Programmer"
+# michael_blurb: "Sys Admin"
+# matt_title: "Programmer"
+# matt_blurb: "Bicyclist"
# legal:
# page_title: "Legal"
diff --git a/app/locale/tr.coffee b/app/locale/tr.coffee
index 56e46cd76..a4598faaf 100644
--- a/app/locale/tr.coffee
+++ b/app/locale/tr.coffee
@@ -79,6 +79,7 @@ module.exports = nativeDescription: "Türkçe", englishDescription: "Turkish", t
recover:
recover_account_title: "Hesabı Kurtar"
send_password: "Kurtarma Parolası Gönder"
+# recovery_sent: "Recovery email sent."
signup:
create_account_title: "İlerlemenizi Kaydetmek için Hesap Oluşturun"
@@ -557,7 +558,7 @@ module.exports = nativeDescription: "Türkçe", englishDescription: "Turkish", t
# grassy: "Grassy"
# fork_title: "Fork New Version"
# fork_creating: "Creating Fork..."
-# randomize: "Randomize"
+# generate_terrain: "Generate Terrain"
# more: "More"
# wiki: "Wiki"
# live_chat: "Live Chat"
@@ -567,6 +568,7 @@ module.exports = nativeDescription: "Türkçe", englishDescription: "Turkish", t
level_tab_settings: "Ayarlar"
level_tab_components: "Bileşenler"
level_tab_systems: "Sistemler"
+# level_tab_docs: "Documentation"
level_tab_thangs_title: "Geçerli Şartlar"
# level_tab_thangs_all: "All"
level_tab_thangs_conditions: "Başlama Şartları"
@@ -642,27 +644,29 @@ module.exports = nativeDescription: "Türkçe", englishDescription: "Turkish", t
# player: "Player"
about:
- who_is_codecombat: "CodeCombat kimlerden oluşur?"
why_codecombat: "Neden CodeCombat?"
- who_description_prefix: "CodeCombat projesini 2013'te başlattı. Aynı zamanda 2008 yılında "
- who_description_suffix: "uygulamasını yazıp web ve iOS platformlarında, Çince ve Japonca karakterlerin öğrenimine yardımcı 1 numaralı uygulama hâline getirdik."
- who_description_ending: "Şimdi insanlara kod yazmayı öğretme vakti."
- why_paragraph_1: "Skritter üzerinde çalışırken, George programlamayı bilmiyordu ve fikirlerini hayata geçirememesinden ötürü sürekli hayal kırıklığına uğruyordu. Ardından, öğrenmeyi denedi fakat dersler oldukça yavaştı. Ev arkadaşı programlama becerilerini güncellemek adına Codeacademy'yi denedi ama \"sıkıldı.\" Her hafta bir diğer arkadaşı Codeacademy'ye başladı, ardından bırakıverdi. Bunun, Skritter ile çözdüğümüz sorunun aynısı olduğunu fark ettik: insanlar dersleri hızlı ve geniş kapsamlı öğrenme arzusundaydı fakat dersler yavaş ve yoğunlaştırılmıştı. Bunu nasıl çözeceğimizi biliyorduk."
- why_paragraph_2: "Kodlamayı öğrenmeniz mi gerekiyor? Derslere ihtiyacınız yok. Çok ve tekrarlı bir şekilde kod yazmanız ve bunu yaparken bundan zevk almanız gerek."
- why_paragraph_3_prefix: "Programlamanın özeti budur. Eğlenceli olmalı. Ama"
- why_paragraph_3_italic: "aha madalya aldım"
- why_paragraph_3_center: "gibi bir eğlence değil,"
- why_paragraph_3_italic_caps: "ANNE BEKLE, BU BÖLÜMÜ BİTİRMEM LAZIM!"
- why_paragraph_3_suffix: "tarzında bir eğlence. İşte bu CodeCombat'in oyunlaştırılmış bir ders kuru değil, çok oyunculu bir oyun olmasının asıl sebebidir. Siz devam ettiğiniz sürece biz durmayacağız--ama bu sefer, bu iyi bir şey."
- why_paragraph_4: "Bir oyunun bağımlısı olacaksanız, bu CodeCombat olsun ve teknoloji çağının sihirbazlarından biri olun."
- why_ending: "Unutmadan, bu oyun ücretsiz. "
- why_ending_url: "Büyülemeye başla!"
- george_description: "CEO, iş adamı, web tasarımcısı, oyun tasarımcısı ve programlamaya başlayanların destekçisi."
- scott_description: "Sıradaşı programcı, yazılım mimarı, mutfak sihirbazı, finans uzmanı. Scott, makul adamın ta kendisi."
- nick_description: "Programlama sihirbazı, tuhaf motivasyon büyücü ve tersine mühendis. Nick her şeyden anlar ve şu anda CodeCombat'i inşa etmekle meşgul."
- jeremy_description: "Müşteri hizmetleri büyücüsü, kullanılabilirlik test edicisi ve topluluk örgütleyici; muhtemelen Jeremy ile konuşmuşluğunuz vardır."
- michael_description: "Programcı, sistem yöneticisi, halihazırda üniversite okuyan teknik-harika-çocuk. Michael sunucularımızı ayakta tutan adamın ta kendisi."
-# matt_description: "Bicyclist, Software Engineer, reader of heroic fantasy, connoisseur of peanut butter, sipper of coffee."
+ why_paragraph_1: "Kodlamayı öğrenmeniz mi gerekiyor? Derslere ihtiyacınız yok. Çok ve tekrarlı bir şekilde kod yazmanız ve bunu yaparken bundan zevk almanız gerek."
+ why_paragraph_2_prefix: "Programlamanın özeti budur. Eğlenceli olmalı. Ama"
+ why_paragraph_2_italic: "aha madalya aldım"
+ why_paragraph_2_center: "gibi bir eğlence değil,"
+ why_paragraph_2_italic_caps: "ANNE BEKLE, BU BÖLÜMÜ BİTİRMEM LAZIM!"
+ why_paragraph_2_suffix: "tarzında bir eğlence. İşte bu CodeCombat'in oyunlaştırılmış bir ders kuru değil, çok oyunculu bir oyun olmasının asıl sebebidir. Siz devam ettiğiniz sürece biz durmayacağız--ama bu sefer, bu iyi bir şey."
+ why_paragraph_3: "Bir oyunun bağımlısı olacaksanız, bu CodeCombat olsun ve teknoloji çağının sihirbazlarından biri olun."
+# press_title: "Bloggers/Press"
+# press_paragraph_1_prefix: "Want to write about us? Feel free to download and use all of the resources included in our"
+# press_paragraph_1_link: "press packet"
+# press_paragraph_1_suffix: ". All logos and images may be used without contacting us directly."
+# team: "Team"
+# george_title: "CEO"
+# george_blurb: "Businesser"
+# scott_title: "Programmer"
+# scott_blurb: "Reasonable One"
+# nick_title: "Programmer"
+# nick_blurb: "Motivation Guru"
+# michael_title: "Programmer"
+# michael_blurb: "Sys Admin"
+# matt_title: "Programmer"
+# matt_blurb: "Bicyclist"
legal:
page_title: "Hukuki"
diff --git a/app/locale/uk.coffee b/app/locale/uk.coffee
index 95b602b6e..333b3055c 100644
--- a/app/locale/uk.coffee
+++ b/app/locale/uk.coffee
@@ -79,6 +79,7 @@ module.exports = nativeDescription: "українська мова", englishDesc
recover:
recover_account_title: "Відновити акаунт"
send_password: "Надіслати пароль відновлення"
+# recovery_sent: "Recovery email sent."
signup:
create_account_title: "Створити акаунт, щоб зберегти прогрес"
@@ -557,7 +558,7 @@ module.exports = nativeDescription: "українська мова", englishDesc
# grassy: "Grassy"
fork_title: "Нова версія Форк"
fork_creating: "Створення Форк..."
-# randomize: "Randomize"
+# generate_terrain: "Generate Terrain"
more: "Більше"
wiki: "Wiki"
live_chat: "Online чат"
@@ -567,6 +568,7 @@ module.exports = nativeDescription: "українська мова", englishDesc
level_tab_settings: "Налаштування"
level_tab_components: "Компоненти"
level_tab_systems: "Системи"
+# level_tab_docs: "Documentation"
level_tab_thangs_title: "Поточні об'єкти"
level_tab_thangs_all: "Усі"
level_tab_thangs_conditions: "Початковий статус"
@@ -642,27 +644,29 @@ module.exports = nativeDescription: "українська мова", englishDesc
player: "Гравець"
about:
- who_is_codecombat: "Хто є CodeCombat?"
why_codecombat: "Чому CodeCombat?"
- who_description_prefix: "разом започаткували CodeCombat у 2013. Ми також створили "
- who_description_suffix: "у 2008 і вивели його на перше місце серед web та iOS додаткив, що навчають писати китайською та японською."
- who_description_ending: "Зараз час вчити людей писати код."
- why_paragraph_1: "Створюючи Skritter, George не знав програмування й постійно засмучувався через неможливість самостійно втілити власні ідеї. Зрештою він спробував вивчитися, але навчання йшло надто повільною Сусід Джорджа, бажаючи оновити знання, спробував Codecademy, але \"стало нудно.\" Щотижня хтось з друзів починав навчання у Codecademy, але кидав. Ми зрозуміли, що зіткнулися з тією ж проблемою. що під час створення Skritter: люди набувають навичок через повільні, інтенсивні лекції, тоді як усе, чого вони потребують, це швидка, екстенсивна практика. І ми знаємо, як це полагодити."
- why_paragraph_2: "Хочете навчитися писати код? Вам не потрібні уроки. Вам потрібно писати багато коду і добре розважитись у цей час. "
- why_paragraph_3_prefix: "Ось що таке програмування насправді. Це має бути весело. Не просто кумедно штибу"
- why_paragraph_3_italic: "дивіться, я маю бейджик, "
- why_paragraph_3_center: "а весело - штибу"
- why_paragraph_3_italic_caps: "НІ, МАМО, Я МАЮ ПРОЙТИ РІВЕНЬ!"
- why_paragraph_3_suffix: "Ось чому CodeCombat - мультиплеєрна гра, а не гейміфікований курс уроків. Ми не зупинимося, доки ви не включитеся на повну, і це чудово. "
- why_paragraph_4: "Якщо ви плануєте бути залежним від якоїсь гри, оберіть цю - і перетворіться на одного з чарівників ери інформаційних технологій."
- why_ending: "І так, це безкоштовно. "
- why_ending_url: "Починаймо чародійства прямо зараз!"
- george_description: "CEO, знавець бізнесу, веб-дизайнер, гейм-дизайнер і ватажок програмістів-початківців з усього світу."
- scott_description: "Екстраординарний програміст, архітектор програмного забезпечення, кулінарний чарівник та майстер фінансів. Скотт - розсудливий."
- nick_description: "Чарівник програмування, ексцентричний маг мотивації та непересічний експериментатор. Нік здатен зробити будь-що, і він обрав зробити CodeCombat."
- jeremy_description: "Чарівник підтримки користувачів, тестер юзабіліті та організатор спільноти; ви ймовірно вже спілкувались з Джеремі."
- michael_description: "Програміст, адмін та загадковий технічний вундеркінд, Майкл - та людина, що утримує наші сервери онлайн."
-# matt_description: "Bicyclist, Software Engineer, reader of heroic fantasy, connoisseur of peanut butter, sipper of coffee."
+ why_paragraph_1: "Хочете навчитися писати код? Вам не потрібні уроки. Вам потрібно писати багато коду і добре розважитись у цей час. "
+ why_paragraph_2_prefix: "Ось що таке програмування насправді. Це має бути весело. Не просто кумедно штибу"
+ why_paragraph_2_italic: "дивіться, я маю бейджик, "
+ why_paragraph_2_center: "а весело - штибу"
+ why_paragraph_2_italic_caps: "НІ, МАМО, Я МАЮ ПРОЙТИ РІВЕНЬ!"
+ why_paragraph_2_suffix: "Ось чому CodeCombat - мультиплеєрна гра, а не гейміфікований курс уроків. Ми не зупинимося, доки ви не включитеся на повну, і це чудово. "
+ why_paragraph_3: "Якщо ви плануєте бути залежним від якоїсь гри, оберіть цю - і перетворіться на одного з чарівників ери інформаційних технологій."
+# press_title: "Bloggers/Press"
+# press_paragraph_1_prefix: "Want to write about us? Feel free to download and use all of the resources included in our"
+# press_paragraph_1_link: "press packet"
+# press_paragraph_1_suffix: ". All logos and images may be used without contacting us directly."
+# team: "Team"
+# george_title: "CEO"
+# george_blurb: "Businesser"
+# scott_title: "Programmer"
+# scott_blurb: "Reasonable One"
+# nick_title: "Programmer"
+# nick_blurb: "Motivation Guru"
+# michael_title: "Programmer"
+# michael_blurb: "Sys Admin"
+# matt_title: "Programmer"
+# matt_blurb: "Bicyclist"
legal:
page_title: "Юридична інформація"
diff --git a/app/locale/ur.coffee b/app/locale/ur.coffee
index 10c1c74fb..950876551 100644
--- a/app/locale/ur.coffee
+++ b/app/locale/ur.coffee
@@ -79,6 +79,7 @@ module.exports = nativeDescription: "اُردُو", englishDescription: "Urdu",
# recover:
# recover_account_title: "Recover Account"
# send_password: "Send Recovery Password"
+# recovery_sent: "Recovery email sent."
# signup:
# create_account_title: "Create Account to Save Progress"
@@ -557,7 +558,7 @@ module.exports = nativeDescription: "اُردُو", englishDescription: "Urdu",
# grassy: "Grassy"
# fork_title: "Fork New Version"
# fork_creating: "Creating Fork..."
-# randomize: "Randomize"
+# generate_terrain: "Generate Terrain"
# more: "More"
# wiki: "Wiki"
# live_chat: "Live Chat"
@@ -567,6 +568,7 @@ module.exports = nativeDescription: "اُردُو", englishDescription: "Urdu",
# level_tab_settings: "Settings"
# level_tab_components: "Components"
# level_tab_systems: "Systems"
+# level_tab_docs: "Documentation"
# level_tab_thangs_title: "Current Thangs"
# level_tab_thangs_all: "All"
# level_tab_thangs_conditions: "Starting Conditions"
@@ -642,27 +644,29 @@ module.exports = nativeDescription: "اُردُو", englishDescription: "Urdu",
# player: "Player"
# about:
-# who_is_codecombat: "Who is CodeCombat?"
# why_codecombat: "Why CodeCombat?"
-# who_description_prefix: "together started CodeCombat in 2013. We also created "
-# who_description_suffix: "in 2008, growing it to the #1 web and iOS application for learning to write Chinese and Japanese characters."
-# who_description_ending: "Now it's time to teach people to write code."
-# why_paragraph_1: "When making Skritter, George didn't know how to program and was constantly frustrated by his inability to implement his ideas. Afterwards, he tried learning, but the lessons were too slow. His housemate, wanting to reskill and stop teaching, tried Codecademy, but \"got bored.\" Each week another friend started Codecademy, then dropped off. We realized it was the same problem we'd solved with Skritter: people learning a skill via slow, intensive lessons when what they need is fast, extensive practice. We know how to fix that."
-# why_paragraph_2: "Need to learn to code? You don't need lessons. You need to write a lot of code and have a great time doing it."
-# why_paragraph_3_prefix: "That's what programming is about. It's gotta be fun. Not fun like"
-# why_paragraph_3_italic: "yay a badge"
-# why_paragraph_3_center: "but fun like"
-# why_paragraph_3_italic_caps: "NO MOM I HAVE TO FINISH THE LEVEL!"
-# why_paragraph_3_suffix: "That's why CodeCombat is a multiplayer game, not a gamified lesson course. We won't stop until you can't stop--but this time, that's a good thing."
-# why_paragraph_4: "If you're going to get addicted to some game, get addicted to this one and become one of the wizards of the tech age."
-# why_ending: "And hey, it's free. "
-# why_ending_url: "Start wizarding now!"
-# george_description: "CEO, business guy, web designer, game designer, and champion of beginning programmers everywhere."
-# scott_description: "Programmer extraordinaire, software architect, kitchen wizard, and master of finances. Scott is the reasonable one."
-# nick_description: "Programming wizard, eccentric motivation mage, and upside-down experimenter. Nick can do anything and chooses to build CodeCombat."
-# jeremy_description: "Customer support mage, usability tester, and community organizer; you've probably already spoken with Jeremy."
-# michael_description: "Programmer, sys-admin, and undergrad technical wunderkind, Michael is the person keeping our servers online."
-# matt_description: "Bicyclist, Software Engineer, reader of heroic fantasy, connoisseur of peanut butter, sipper of coffee."
+# why_paragraph_1: "If you want to learn to program, you don't need lessons. You need to write a lot of code and have a great time doing it."
+# why_paragraph_2_prefix: "That's what programming is about. It's gotta be fun. Not fun like"
+# why_paragraph_2_italic: "yay a badge"
+# why_paragraph_2_center: "but fun like"
+# why_paragraph_2_italic_caps: "NO MOM I HAVE TO FINISH THE LEVEL!"
+# why_paragraph_2_suffix: "That's why CodeCombat is a multiplayer game, not a gamified lesson course. We won't stop until you can't stop--but this time, that's a good thing."
+# why_paragraph_3: "If you're going to get addicted to some game, get addicted to this one and become one of the wizards of the tech age."
+# press_title: "Bloggers/Press"
+# press_paragraph_1_prefix: "Want to write about us? Feel free to download and use all of the resources included in our"
+# press_paragraph_1_link: "press packet"
+# press_paragraph_1_suffix: ". All logos and images may be used without contacting us directly."
+# team: "Team"
+# george_title: "CEO"
+# george_blurb: "Businesser"
+# scott_title: "Programmer"
+# scott_blurb: "Reasonable One"
+# nick_title: "Programmer"
+# nick_blurb: "Motivation Guru"
+# michael_title: "Programmer"
+# michael_blurb: "Sys Admin"
+# matt_title: "Programmer"
+# matt_blurb: "Bicyclist"
# legal:
# page_title: "Legal"
diff --git a/app/locale/vi.coffee b/app/locale/vi.coffee
index 9705d0f1b..d8f6faccd 100644
--- a/app/locale/vi.coffee
+++ b/app/locale/vi.coffee
@@ -79,6 +79,7 @@ module.exports = nativeDescription: "Tiếng Việt", englishDescription: "Vietn
recover:
recover_account_title: "Khôi phục tài khoản"
send_password: "Gởi mật mã khôi phục"
+# recovery_sent: "Recovery email sent."
signup:
create_account_title: "Tạo tài khoản để lưu tiến trình"
@@ -557,7 +558,7 @@ module.exports = nativeDescription: "Tiếng Việt", englishDescription: "Vietn
# grassy: "Grassy"
# fork_title: "Fork New Version"
# fork_creating: "Creating Fork..."
-# randomize: "Randomize"
+# generate_terrain: "Generate Terrain"
# more: "More"
# wiki: "Wiki"
# live_chat: "Live Chat"
@@ -567,6 +568,7 @@ module.exports = nativeDescription: "Tiếng Việt", englishDescription: "Vietn
# level_tab_settings: "Settings"
# level_tab_components: "Components"
# level_tab_systems: "Systems"
+# level_tab_docs: "Documentation"
# level_tab_thangs_title: "Current Thangs"
# level_tab_thangs_all: "All"
# level_tab_thangs_conditions: "Starting Conditions"
@@ -642,27 +644,29 @@ module.exports = nativeDescription: "Tiếng Việt", englishDescription: "Vietn
# player: "Player"
# about:
-# who_is_codecombat: "Who is CodeCombat?"
# why_codecombat: "Why CodeCombat?"
-# who_description_prefix: "together started CodeCombat in 2013. We also created "
-# who_description_suffix: "in 2008, growing it to the #1 web and iOS application for learning to write Chinese and Japanese characters."
-# who_description_ending: "Now it's time to teach people to write code."
-# why_paragraph_1: "When making Skritter, George didn't know how to program and was constantly frustrated by his inability to implement his ideas. Afterwards, he tried learning, but the lessons were too slow. His housemate, wanting to reskill and stop teaching, tried Codecademy, but \"got bored.\" Each week another friend started Codecademy, then dropped off. We realized it was the same problem we'd solved with Skritter: people learning a skill via slow, intensive lessons when what they need is fast, extensive practice. We know how to fix that."
-# why_paragraph_2: "Need to learn to code? You don't need lessons. You need to write a lot of code and have a great time doing it."
-# why_paragraph_3_prefix: "That's what programming is about. It's gotta be fun. Not fun like"
-# why_paragraph_3_italic: "yay a badge"
-# why_paragraph_3_center: "but fun like"
-# why_paragraph_3_italic_caps: "NO MOM I HAVE TO FINISH THE LEVEL!"
-# why_paragraph_3_suffix: "That's why CodeCombat is a multiplayer game, not a gamified lesson course. We won't stop until you can't stop--but this time, that's a good thing."
-# why_paragraph_4: "If you're going to get addicted to some game, get addicted to this one and become one of the wizards of the tech age."
-# why_ending: "And hey, it's free. "
-# why_ending_url: "Start wizarding now!"
-# george_description: "CEO, business guy, web designer, game designer, and champion of beginning programmers everywhere."
-# scott_description: "Programmer extraordinaire, software architect, kitchen wizard, and master of finances. Scott is the reasonable one."
-# nick_description: "Programming wizard, eccentric motivation mage, and upside-down experimenter. Nick can do anything and chooses to build CodeCombat."
-# jeremy_description: "Customer support mage, usability tester, and community organizer; you've probably already spoken with Jeremy."
-# michael_description: "Programmer, sys-admin, and undergrad technical wunderkind, Michael is the person keeping our servers online."
-# matt_description: "Bicyclist, Software Engineer, reader of heroic fantasy, connoisseur of peanut butter, sipper of coffee."
+# why_paragraph_1: "If you want to learn to program, you don't need lessons. You need to write a lot of code and have a great time doing it."
+# why_paragraph_2_prefix: "That's what programming is about. It's gotta be fun. Not fun like"
+# why_paragraph_2_italic: "yay a badge"
+# why_paragraph_2_center: "but fun like"
+# why_paragraph_2_italic_caps: "NO MOM I HAVE TO FINISH THE LEVEL!"
+# why_paragraph_2_suffix: "That's why CodeCombat is a multiplayer game, not a gamified lesson course. We won't stop until you can't stop--but this time, that's a good thing."
+# why_paragraph_3: "If you're going to get addicted to some game, get addicted to this one and become one of the wizards of the tech age."
+# press_title: "Bloggers/Press"
+# press_paragraph_1_prefix: "Want to write about us? Feel free to download and use all of the resources included in our"
+# press_paragraph_1_link: "press packet"
+# press_paragraph_1_suffix: ". All logos and images may be used without contacting us directly."
+# team: "Team"
+# george_title: "CEO"
+# george_blurb: "Businesser"
+# scott_title: "Programmer"
+# scott_blurb: "Reasonable One"
+# nick_title: "Programmer"
+# nick_blurb: "Motivation Guru"
+# michael_title: "Programmer"
+# michael_blurb: "Sys Admin"
+# matt_title: "Programmer"
+# matt_blurb: "Bicyclist"
# legal:
# page_title: "Legal"
diff --git a/app/locale/zh-HANS.coffee b/app/locale/zh-HANS.coffee
index a3b911f4c..999dd0cd3 100644
--- a/app/locale/zh-HANS.coffee
+++ b/app/locale/zh-HANS.coffee
@@ -79,6 +79,7 @@ module.exports = nativeDescription: "简体中文", englishDescription: "Chinese
recover:
recover_account_title: "找回账户"
send_password: "发送重置链接"
+# recovery_sent: "Recovery email sent."
signup:
create_account_title: "创建一个账户来保存进度"
@@ -557,7 +558,7 @@ module.exports = nativeDescription: "简体中文", englishDescription: "Chinese
grassy: "草地"
fork_title: "派生新版本"
fork_creating: "正在执行派生..."
- randomize: "随机生成"
+# generate_terrain: "Generate Terrain"
more: "更多"
wiki: "维基"
live_chat: "在线聊天"
@@ -567,6 +568,7 @@ module.exports = nativeDescription: "简体中文", englishDescription: "Chinese
level_tab_settings: "设定"
level_tab_components: "组件"
level_tab_systems: "系统"
+# level_tab_docs: "Documentation"
level_tab_thangs_title: "目前所有物体"
level_tab_thangs_all: "所有"
level_tab_thangs_conditions: "启动条件"
@@ -642,27 +644,29 @@ module.exports = nativeDescription: "简体中文", englishDescription: "Chinese
player: "玩家"
about:
- who_is_codecombat: "什么是 CodeCombat?"
why_codecombat: "为什么选择 CodeCombat?"
- who_description_prefix: "在 2013 年开始一起编写 CodeCombat。在 2008 年时,我们还创造"
- who_description_suffix: "并且发展出了开发中文和日文的 Web 和 IOS 应用的首选教程"
- who_description_ending: "现在是时候教人们如何写代码了。"
- why_paragraph_1: "当我们制作 Skritter 时,George 还不会写程序,对于不能实现他的灵感这一点很苦恼。他试着学了学,但那些课程都太慢了。他的室友不想通过教材学习新技能,试了试 CodeAcademy,但是觉得“太无聊了。”每星期都会有个熟人尝试 CodeAcademy,然后无一例外地放弃掉。我们发现这和 Skritter 想要解决的是一个问题:人们想要的是高速学习、充分练习,得到的却是缓慢、冗长的课程。我们知道该怎么办了。"
- why_paragraph_2: "你想学编程?你不用上课。你需要的是写好多代码,并且享受这个过程。"
- why_paragraph_3_prefix: "这才是编程的要义。编程必须要好玩。不是"
- why_paragraph_3_italic: "哇又一个奖章诶"
- why_paragraph_3_center: "那种“好玩”,而是"
- why_paragraph_3_italic_caps: "老妈,我得先把这关打完!"
- why_paragraph_3_suffix: "这就是为什么 CodeCombat 是个多人游戏,而不是一个游戏化的编程课。你不停,我们就不停——但这次这是件好事。"
- why_paragraph_4: "如果你一定要对游戏上瘾,那就对这个游戏上瘾,然后成为科技时代的法师吧。"
- why_ending: "再说,这游戏还是免费的。"
- why_ending_url: "开始学习法术!"
- george_description: "这里到处都是CEO, 商人, 网站设计师, 游戏设计师和编程新星。"
-# scott_description: "Programmer extraordinaire, software architect, kitchen wizard, and master of finances. Scott is the reasonable one."
-# nick_description: "Programming wizard, eccentric motivation mage, and upside-down experimenter. Nick can do anything and chooses to build CodeCombat."
-# jeremy_description: "Customer support mage, usability tester, and community organizer; you've probably already spoken with Jeremy."
-# michael_description: "Programmer, sys-admin, and undergrad technical wunderkind, Michael is the person keeping our servers online."
-# matt_description: "Bicyclist, Software Engineer, reader of heroic fantasy, connoisseur of peanut butter, sipper of coffee."
+ why_paragraph_1: "你想学编程?你不用上课。你需要的是写好多代码,并且享受这个过程。"
+ why_paragraph_2_prefix: "这才是编程的要义。编程必须要好玩。不是"
+ why_paragraph_2_italic: "哇又一个奖章诶"
+ why_paragraph_2_center: "那种“好玩”,而是"
+ why_paragraph_2_italic_caps: "老妈,我得先把这关打完!"
+ why_paragraph_2_suffix: "这就是为什么 CodeCombat 是个多人游戏,而不是一个游戏化的编程课。你不停,我们就不停——但这次这是件好事。"
+ why_paragraph_3: "如果你一定要对游戏上瘾,那就对这个游戏上瘾,然后成为科技时代的法师吧。"
+# press_title: "Bloggers/Press"
+# press_paragraph_1_prefix: "Want to write about us? Feel free to download and use all of the resources included in our"
+# press_paragraph_1_link: "press packet"
+# press_paragraph_1_suffix: ". All logos and images may be used without contacting us directly."
+# team: "Team"
+# george_title: "CEO"
+# george_blurb: "Businesser"
+# scott_title: "Programmer"
+# scott_blurb: "Reasonable One"
+# nick_title: "Programmer"
+# nick_blurb: "Motivation Guru"
+# michael_title: "Programmer"
+# michael_blurb: "Sys Admin"
+# matt_title: "Programmer"
+# matt_blurb: "Bicyclist"
legal:
page_title: "法律"
diff --git a/app/locale/zh-HANT.coffee b/app/locale/zh-HANT.coffee
index 22c279adf..8eafc71b1 100644
--- a/app/locale/zh-HANT.coffee
+++ b/app/locale/zh-HANT.coffee
@@ -79,6 +79,7 @@ module.exports = nativeDescription: "繁体中文", englishDescription: "Chinese
recover:
recover_account_title: "復原帳號"
send_password: "送出新密碼"
+# recovery_sent: "Recovery email sent."
signup:
create_account_title: "建立帳號儲存進度"
@@ -557,7 +558,7 @@ module.exports = nativeDescription: "繁体中文", englishDescription: "Chinese
# grassy: "Grassy"
# fork_title: "Fork New Version"
# fork_creating: "Creating Fork..."
-# randomize: "Randomize"
+# generate_terrain: "Generate Terrain"
# more: "More"
# wiki: "Wiki"
# live_chat: "Live Chat"
@@ -567,6 +568,7 @@ module.exports = nativeDescription: "繁体中文", englishDescription: "Chinese
# level_tab_settings: "Settings"
# level_tab_components: "Components"
# level_tab_systems: "Systems"
+# level_tab_docs: "Documentation"
# level_tab_thangs_title: "Current Thangs"
# level_tab_thangs_all: "All"
# level_tab_thangs_conditions: "Starting Conditions"
@@ -642,27 +644,29 @@ module.exports = nativeDescription: "繁体中文", englishDescription: "Chinese
# player: "Player"
about:
- who_is_codecombat: "什麼是CodeCombat?"
why_codecombat: "為什麼使用CodeCombat?"
- who_description_prefix: "在2013年共同創立了CodeCombat. 在2008年, 我們創立了"
- who_description_suffix: ",排名第一的中、日文字的學習網頁及iOS系統應用程式。"
- who_description_ending: "這次,我們將教大家如何寫程式。"
- why_paragraph_1: "當我們在研發Skritter時,George不會寫程式,所以常常無法展現他的想法。他嘗試去學,然而課程成果緩慢。他的室友曾想學習新技能,試過Codecademy,但厭倦了。每周也都有其他朋友投入Codecademy,卻都以失敗告終。我們發現,這與我們藉由Skritter所想解決的問題是一致的─人們需要的不是繁瑣又密集的課程, 而是快速而大量的練習。我們知道該如何改善這個情況。"
- why_paragraph_2: "想學程式嗎? 你不需要課程。你需要的只是大量的時間去\"玩\"程式。"
- why_paragraph_3_prefix: "寫程式應該是有趣的。當然不是"
- why_paragraph_3_italic: "「耶!拿到獎章了。」"
- why_paragraph_3_center: "的有趣, 而是"
- why_paragraph_3_italic_caps: "「媽我不要出去玩,我要寫完這段!」"
- why_paragraph_3_suffix: "般引人入勝。這是為甚麼CodeCombat被設計成多人對戰「遊戲」,而不是遊戲化「課程」。在你對這遊戲無法自拔之前,我們是不會放棄的─幫然,這個遊戲,將是有益於你的。"
- why_paragraph_4: "如果你要沉迷遊戲的話,就來沉迷CodeCombat,成為科技時代的魔法師吧!"
- why_ending: "啊還有,他是免費的。"
- why_ending_url: "那還等什麼? 馬上開始!"
-# george_description: "CEO, business guy, web designer, game designer, and champion of beginning programmers everywhere."
-# scott_description: "Programmer extraordinaire, software architect, kitchen wizard, and master of finances. Scott is the reasonable one."
-# nick_description: "Programming wizard, eccentric motivation mage, and upside-down experimenter. Nick can do anything and chooses to build CodeCombat."
-# jeremy_description: "Customer support mage, usability tester, and community organizer; you've probably already spoken with Jeremy."
-# michael_description: "Programmer, sys-admin, and undergrad technical wunderkind, Michael is the person keeping our servers online."
-# matt_description: "Bicyclist, Software Engineer, reader of heroic fantasy, connoisseur of peanut butter, sipper of coffee."
+ why_paragraph_1: "想學程式嗎? 你不需要課程。你需要的只是大量的時間去\"玩\"程式。"
+ why_paragraph_2_prefix: "寫程式應該是有趣的。當然不是"
+ why_paragraph_2_italic: "「耶!拿到獎章了。」"
+ why_paragraph_2_center: "的有趣, 而是"
+ why_paragraph_2_italic_caps: "「媽我不要出去玩,我要寫完這段!」"
+ why_paragraph_2_suffix: "般引人入勝。這是為甚麼CodeCombat被設計成多人對戰「遊戲」,而不是遊戲化「課程」。在你對這遊戲無法自拔之前,我們是不會放棄的─幫然,這個遊戲,將是有益於你的。"
+ why_paragraph_3: "如果你要沉迷遊戲的話,就來沉迷CodeCombat,成為科技時代的魔法師吧!"
+# press_title: "Bloggers/Press"
+# press_paragraph_1_prefix: "Want to write about us? Feel free to download and use all of the resources included in our"
+# press_paragraph_1_link: "press packet"
+# press_paragraph_1_suffix: ". All logos and images may be used without contacting us directly."
+# team: "Team"
+# george_title: "CEO"
+# george_blurb: "Businesser"
+# scott_title: "Programmer"
+# scott_blurb: "Reasonable One"
+# nick_title: "Programmer"
+# nick_blurb: "Motivation Guru"
+# michael_title: "Programmer"
+# michael_blurb: "Sys Admin"
+# matt_title: "Programmer"
+# matt_blurb: "Bicyclist"
# legal:
# page_title: "Legal"
diff --git a/app/locale/zh-WUU-HANS.coffee b/app/locale/zh-WUU-HANS.coffee
index 814760356..c06494948 100644
--- a/app/locale/zh-WUU-HANS.coffee
+++ b/app/locale/zh-WUU-HANS.coffee
@@ -79,6 +79,7 @@ module.exports = nativeDescription: "吴语", englishDescription: "Wuu (Simplifi
# recover:
# recover_account_title: "Recover Account"
# send_password: "Send Recovery Password"
+# recovery_sent: "Recovery email sent."
# signup:
# create_account_title: "Create Account to Save Progress"
@@ -557,7 +558,7 @@ module.exports = nativeDescription: "吴语", englishDescription: "Wuu (Simplifi
# grassy: "Grassy"
# fork_title: "Fork New Version"
# fork_creating: "Creating Fork..."
-# randomize: "Randomize"
+# generate_terrain: "Generate Terrain"
# more: "More"
# wiki: "Wiki"
# live_chat: "Live Chat"
@@ -567,6 +568,7 @@ module.exports = nativeDescription: "吴语", englishDescription: "Wuu (Simplifi
# level_tab_settings: "Settings"
# level_tab_components: "Components"
# level_tab_systems: "Systems"
+# level_tab_docs: "Documentation"
# level_tab_thangs_title: "Current Thangs"
# level_tab_thangs_all: "All"
# level_tab_thangs_conditions: "Starting Conditions"
@@ -642,27 +644,29 @@ module.exports = nativeDescription: "吴语", englishDescription: "Wuu (Simplifi
# player: "Player"
# about:
-# who_is_codecombat: "Who is CodeCombat?"
# why_codecombat: "Why CodeCombat?"
-# who_description_prefix: "together started CodeCombat in 2013. We also created "
-# who_description_suffix: "in 2008, growing it to the #1 web and iOS application for learning to write Chinese and Japanese characters."
-# who_description_ending: "Now it's time to teach people to write code."
-# why_paragraph_1: "When making Skritter, George didn't know how to program and was constantly frustrated by his inability to implement his ideas. Afterwards, he tried learning, but the lessons were too slow. His housemate, wanting to reskill and stop teaching, tried Codecademy, but \"got bored.\" Each week another friend started Codecademy, then dropped off. We realized it was the same problem we'd solved with Skritter: people learning a skill via slow, intensive lessons when what they need is fast, extensive practice. We know how to fix that."
-# why_paragraph_2: "Need to learn to code? You don't need lessons. You need to write a lot of code and have a great time doing it."
-# why_paragraph_3_prefix: "That's what programming is about. It's gotta be fun. Not fun like"
-# why_paragraph_3_italic: "yay a badge"
-# why_paragraph_3_center: "but fun like"
-# why_paragraph_3_italic_caps: "NO MOM I HAVE TO FINISH THE LEVEL!"
-# why_paragraph_3_suffix: "That's why CodeCombat is a multiplayer game, not a gamified lesson course. We won't stop until you can't stop--but this time, that's a good thing."
-# why_paragraph_4: "If you're going to get addicted to some game, get addicted to this one and become one of the wizards of the tech age."
-# why_ending: "And hey, it's free. "
-# why_ending_url: "Start wizarding now!"
-# george_description: "CEO, business guy, web designer, game designer, and champion of beginning programmers everywhere."
-# scott_description: "Programmer extraordinaire, software architect, kitchen wizard, and master of finances. Scott is the reasonable one."
-# nick_description: "Programming wizard, eccentric motivation mage, and upside-down experimenter. Nick can do anything and chooses to build CodeCombat."
-# jeremy_description: "Customer support mage, usability tester, and community organizer; you've probably already spoken with Jeremy."
-# michael_description: "Programmer, sys-admin, and undergrad technical wunderkind, Michael is the person keeping our servers online."
-# matt_description: "Bicyclist, Software Engineer, reader of heroic fantasy, connoisseur of peanut butter, sipper of coffee."
+# why_paragraph_1: "If you want to learn to program, you don't need lessons. You need to write a lot of code and have a great time doing it."
+# why_paragraph_2_prefix: "That's what programming is about. It's gotta be fun. Not fun like"
+# why_paragraph_2_italic: "yay a badge"
+# why_paragraph_2_center: "but fun like"
+# why_paragraph_2_italic_caps: "NO MOM I HAVE TO FINISH THE LEVEL!"
+# why_paragraph_2_suffix: "That's why CodeCombat is a multiplayer game, not a gamified lesson course. We won't stop until you can't stop--but this time, that's a good thing."
+# why_paragraph_3: "If you're going to get addicted to some game, get addicted to this one and become one of the wizards of the tech age."
+# press_title: "Bloggers/Press"
+# press_paragraph_1_prefix: "Want to write about us? Feel free to download and use all of the resources included in our"
+# press_paragraph_1_link: "press packet"
+# press_paragraph_1_suffix: ". All logos and images may be used without contacting us directly."
+# team: "Team"
+# george_title: "CEO"
+# george_blurb: "Businesser"
+# scott_title: "Programmer"
+# scott_blurb: "Reasonable One"
+# nick_title: "Programmer"
+# nick_blurb: "Motivation Guru"
+# michael_title: "Programmer"
+# michael_blurb: "Sys Admin"
+# matt_title: "Programmer"
+# matt_blurb: "Bicyclist"
# legal:
# page_title: "Legal"
diff --git a/app/locale/zh-WUU-HANT.coffee b/app/locale/zh-WUU-HANT.coffee
index 06badf071..371e51787 100644
--- a/app/locale/zh-WUU-HANT.coffee
+++ b/app/locale/zh-WUU-HANT.coffee
@@ -79,6 +79,7 @@ module.exports = nativeDescription: "吳語", englishDescription: "Wuu (Traditio
recover:
recover_account_title: "賬號尋轉"
send_password: "發轉設鏈接畀我"
+# recovery_sent: "Recovery email sent."
signup:
create_account_title: "做新賬號來存進度"
@@ -557,7 +558,7 @@ module.exports = nativeDescription: "吳語", englishDescription: "Wuu (Traditio
# grassy: "Grassy"
fork_title: "派生新版本"
fork_creating: "徠搭執行派生..."
-# randomize: "Randomize"
+# generate_terrain: "Generate Terrain"
more: "無數"
wiki: "維基"
live_chat: "上線白嗒"
@@ -567,6 +568,7 @@ module.exports = nativeDescription: "吳語", englishDescription: "Wuu (Traditio
level_tab_settings: "設定"
level_tab_components: "組件"
level_tab_systems: "系統"
+# level_tab_docs: "Documentation"
level_tab_thangs_title: "能界所有物事"
level_tab_thangs_all: "所有"
level_tab_thangs_conditions: "發動條件"
@@ -642,27 +644,29 @@ module.exports = nativeDescription: "吳語", englishDescription: "Wuu (Traditio
player: "來個人"
about:
- who_is_codecombat: "何某是 CodeCombat?"
why_codecombat: "爲何某選 CodeCombat?"
- who_description_prefix: "徠 2013 年開始聚隊寫 CodeCombat。徠 2008 年朞,我裏還做起"
- who_description_suffix: "搭發展出中文搭日文個 Web 搭 IOS 应用個首選教程"
- who_description_ending: "瑲朞到鐘點教大家人怎兒寫代碼爻。"
- why_paragraph_1: "我裏做 Skritter 朞,George 程序還要弗得寫,渠實現弗了渠個靈感箇點猴難過個。渠試試學學相,不過許課程都忒慢爻。渠個同寢室間朋友弗想用教材來學新技能,嚇試一記 CodeAcademy,咦覺得“忒嘸較話爻。”個加個星期都會有個熟人試 CodeAcademy,也都嘸一個意外個全部歇爻。我裏發現箇搭 Skritter 想要解決個是同個問題:人家想快速學、練殺甲,學個反到咦慢、咦長個課。我裏曉得怎兒妝爻。"
- why_paragraph_2: "爾想學編程?課甮上。只講代碼多點寫寫,寫無數,還猴中意寫,寫功味道。"
- why_paragraph_3_prefix: "箇正是編程個要旨。編程佩要攪功好。勿是"
- why_paragraph_3_italic: "哇,咦一個獎牌啊"
- why_paragraph_3_center: "箇種“攪功”,是"
- why_paragraph_3_italic_caps: "老孃,我畀箇關打過去爻起!"
- why_paragraph_3_suffix: "箇佩是爲解某 CodeCombat 是一個多人遊戲,勿是一個遊戲化個編程課。爾弗停,我裏佩𣍐停——不過此垡樣事幹是好個。"
- why_paragraph_4: "空是講爾佩一念起打遊戲,箇勿念箇遊戲,變至科技時代個法師替。"
- why_ending: "再講,箇遊戲還免費湊。"
- why_ending_url: "法術開學起!"
-# george_description: "CEO, business guy, web designer, game designer, and champion of beginning programmers everywhere."
-# scott_description: "Programmer extraordinaire, software architect, kitchen wizard, and master of finances. Scott is the reasonable one."
-# nick_description: "Programming wizard, eccentric motivation mage, and upside-down experimenter. Nick can do anything and chooses to build CodeCombat."
-# jeremy_description: "Customer support mage, usability tester, and community organizer; you've probably already spoken with Jeremy."
-# michael_description: "Programmer, sys-admin, and undergrad technical wunderkind, Michael is the person keeping our servers online."
-# matt_description: "Bicyclist, Software Engineer, reader of heroic fantasy, connoisseur of peanut butter, sipper of coffee."
+ why_paragraph_1: "爾想學編程?課甮上。只講代碼多點寫寫,寫無數,還猴中意寫,寫功味道。"
+ why_paragraph_2_prefix: "箇正是編程個要旨。編程佩要攪功好。勿是"
+ why_paragraph_2_italic: "哇,咦一個獎牌啊"
+ why_paragraph_2_center: "箇種“攪功”,是"
+ why_paragraph_2_italic_caps: "老孃,我畀箇關打過去爻起!"
+ why_paragraph_2_suffix: "箇佩是爲解某 CodeCombat 是一個多人遊戲,勿是一個遊戲化個編程課。爾弗停,我裏佩𣍐停——不過此垡樣事幹是好個。"
+ why_paragraph_3: "空是講爾佩一念起打遊戲,箇勿念箇遊戲,變至科技時代個法師替。"
+# press_title: "Bloggers/Press"
+# press_paragraph_1_prefix: "Want to write about us? Feel free to download and use all of the resources included in our"
+# press_paragraph_1_link: "press packet"
+# press_paragraph_1_suffix: ". All logos and images may be used without contacting us directly."
+# team: "Team"
+# george_title: "CEO"
+# george_blurb: "Businesser"
+# scott_title: "Programmer"
+# scott_blurb: "Reasonable One"
+# nick_title: "Programmer"
+# nick_blurb: "Motivation Guru"
+# michael_title: "Programmer"
+# michael_blurb: "Sys Admin"
+# matt_title: "Programmer"
+# matt_blurb: "Bicyclist"
legal:
page_title: "律法"
diff --git a/app/models/SuperModel.coffee b/app/models/SuperModel.coffee
index 930612edb..afaceeda7 100644
--- a/app/models/SuperModel.coffee
+++ b/app/models/SuperModel.coffee
@@ -195,6 +195,7 @@ module.exports = class SuperModel extends Backbone.Model
@progress = newProg
@trigger('update-progress', @progress)
@trigger('loaded-all') if @finished()
+ Backbone.Mediator.publish 'supermodel:load-progress-changed', progress: @progress
setMaxProgress: (@maxProgress) ->
resetProgress: -> @progress = 0
diff --git a/app/schemas/subscriptions/misc.coffee b/app/schemas/subscriptions/misc.coffee
index fbaa4b813..209564359 100644
--- a/app/schemas/subscriptions/misc.coffee
+++ b/app/schemas/subscriptions/misc.coffee
@@ -4,6 +4,10 @@ module.exports =
'application:idle-changed': c.object {},
idle: {type: 'boolean'}
+ 'application:error': c.object {},
+ message: {type: 'string'}
+ stack: {type: 'string'}
+
'audio-player:loaded': c.object {required: ['sender']},
sender: {type: 'object'}
@@ -31,3 +35,6 @@ module.exports =
'ladder:game-submitted': c.object {required: ['session', 'level']},
session: {type: 'object'}
level: {type: 'object'}
+
+ 'supermodel:load-progress-changed': c.object {required: ['progress']},
+ progress: {type: 'number', minimum: 0, maximum: 1}
diff --git a/app/schemas/subscriptions/tome.coffee b/app/schemas/subscriptions/tome.coffee
index ced070475..d12de2872 100644
--- a/app/schemas/subscriptions/tome.coffee
+++ b/app/schemas/subscriptions/tome.coffee
@@ -36,6 +36,13 @@ module.exports =
'tome:reload-code': c.object {title: 'Reload Code', description: 'Published when you reset a spell to its original source', required: ['spell']},
spell: {type: 'object'}
+ 'tome:palette-cleared': c.object {title: 'Palette Cleared', description: 'Published when the spell palette is about to be cleared and recreated.'},
+ thangID: {type: 'string'}
+
+ 'tome:palette-updated': c.object {title: 'Palette Updated', description: 'Published when the spell palette has just been updated.'},
+ thangID: {type: 'string'}
+ entryGroups: {type: 'object', additionalProperties: {type: 'array', items: {type: 'object'}}}
+
'tome:palette-hovered': c.object {title: 'Palette Hovered', description: 'Published when you hover over a Thang in the spell palette', required: ['thang', 'prop', 'entry']},
thang: {type: 'object'}
prop: {type: 'string'}
@@ -109,3 +116,5 @@ module.exports =
'tome:toggle-maximize': c.object {title: 'Toggle Maximize', description: 'Published when we want to make the Tome take up most of the screen'}
'tome:maximize-toggled': c.object {title: 'Maximize Toggled', description: 'Published when the Tome has changed maximize/minimize state.'}
+
+ 'tome:select-primary-sprite': c.object {title: 'Select Primary Sprite', description: 'Published to get the most important sprite\'s code selected.'}
diff --git a/app/styles/play/level.sass b/app/styles/play/level.sass
index cf4edfba7..c3857b156 100644
--- a/app/styles/play/level.sass
+++ b/app/styles/play/level.sass
@@ -210,3 +210,56 @@ html.fullscreen-editor
width: 95%
height: 100%
right: 0
+
+body.ipad #level-view
+ // Full-width Surface, preserving aspect ratio.
+ height: 1024px * (589 / 924)
+ overflow: hidden
+
+ #code-area, .footer, #thang-hud
+ display: none
+
+ #control-bar-view
+ position: absolute
+ background: transparent
+ z-index: 1
+
+ .home
+ i
+ @include opacity(1)
+ .home-text
+ display: none
+
+ .title
+ left: 20%
+ width: 60%
+ text-align: center
+ color: white
+
+ a, .editor-dash
+ display: none
+
+ #level-chat-view
+ bottom: 40px
+
+ #playback-view
+ background-color: transparent
+ z-index: 3
+ bottom: 30px
+ margin-bottom: -30px
+
+ button
+ background-color: #333
+
+ .scrubber .progress
+ background-color: rgba(255, 255, 255, 0.4)
+
+ #canvas-wrapper, #control-bar-view, #playback-view, #thang-hud
+ width: 100%
+
+ #canvas-wrapper
+ height: 653px
+
+ canvas#surface
+ margin: 0 auto
+ overflow: hidden
diff --git a/app/templates/about.jade b/app/templates/about.jade
index fa31a820c..e3c727dd8 100644
--- a/app/templates/about.jade
+++ b/app/templates/about.jade
@@ -11,40 +11,42 @@ block content
h2(data-i18n="about.why_codecombat")
| Why CodeCombat?
- p(data-i18n="about.why_paragraph_2")
+ p(data-i18n="about.why_paragraph_1")
| If you want to learn to program, you don't need lessons.
| You need to write a lot of code and have a great time doing it.
p
- span(data-i18n="about.why_paragraph_3_prefix")
+ span(data-i18n="about.why_paragraph_2_prefix")
| That's what programming is about. It's gotta be fun.
| Not fun like
span
- i(data-i18n="about.why_paragraph_3_italic")
+ i(data-i18n="about.why_paragraph_2_italic")
| yay a badge
span
- span(data-i18n="about.why_paragraph_3_center")
+ span(data-i18n="about.why_paragraph_2_center")
| but fun like
span
- i(data-i18n="about.why_paragraph_3_italic_caps")
+ i(data-i18n="about.why_paragraph_2_italic_caps")
| NO MOM I HAVE TO FINISH THE LEVEL!
span
- span(data-i18n="about.why_paragraph_3_suffix")
+ span(data-i18n="about.why_paragraph_2_suffix")
| That's why CodeCombat is a multiplayer game,
| not a gamified lesson course. We won't stop
| until you can't stop--but this time, that's a good thing.
- p(data-i18n="about.why_paragraph_4")
+ p(data-i18n="about.why_paragraph_3")
| If you're going to get addicted to some game,
| get addicted to this one and become one of the wizards of the tech age.
- h2
+ h2(data-i18n="about.press_title")
| Bloggers/Press
p
- | Want to write about us? Feel free to download and use all of the resources included in our
- a(href="https://s3.amazonaws.com/CodeCombatMisc/press_packet.zip") press packet.
- | All logos and images may be used without contacting us directly.
+ span.spr(data-i18n="about.press_paragraph_1_prefix")
+ | Want to write about us? Feel free to download and use all of the resources included in our
+ a(href="https://s3.amazonaws.com/CodeCombatMisc/press_packet.zip", data-i18n="about.press_paragraph_1_link") press packet
+ span(data-i18n="about.press_paragraph_1_suffix")
+ | . All logos and images may be used without contacting us directly.
ul.col-sm-6.team-column
@@ -53,7 +55,7 @@ block content
li.row
- h2 Team
+ h2(data-i18n="about.team") Team
img(src="/images/pages/about/george_small.png").img-thumbnail
@@ -64,7 +66,7 @@ block content
p(data-i18n="about.george_title")
| CEO
- p(data-i18n="about.george_description")
+ p(data-i18n="about.george_blurb")
| Businesser
a(href="http://scotterickson.info")
@@ -77,7 +79,7 @@ block content
p(data-i18n="about.scott_title")
| Programmer
- p(data-i18n="about.scott_description")
+ p(data-i18n="about.scott_blurb")
| Reasonable one
li.row
@@ -92,7 +94,7 @@ block content
p(data-i18n="about.nick_title")
| Programmer
- p(data-i18n="about.nick_description")
+ p(data-i18n="about.nick_blurb")
| Motivation Guru
a(href="http://michaelschmatz.com")
@@ -105,7 +107,7 @@ block content
p(data-i18n="about.michael_title")
| Programmer
- p(data-i18n="about.michael_description")
+ p(data-i18n="about.michael_blurb")
| Sys Admin
li.row
@@ -119,7 +121,7 @@ block content
p(data-i18n="about.matt_title")
| Programmer
- p(data-i18n="about.matt_description")
+ p(data-i18n="about.matt_blurb")
| Bicyclist
diff --git a/app/templates/editor/level/edit.jade b/app/templates/editor/level/edit.jade
index a19d17eff..c7e92913b 100644
--- a/app/templates/editor/level/edit.jade
+++ b/app/templates/editor/level/edit.jade
@@ -34,7 +34,7 @@ block header
if patches && patches.length
span.badge= patches.length
li
- a(href="#related-achievements-view", data-toggle="tab") Achievements
+ a(href="#related-achievements-view", data-toggle="tab", data-i18n="user.achievements_title") Achievements
li
a(href="#editor-level-documentation", data-toggle="tab", data-i18n="editor.level_tab_docs") Documentation
li
diff --git a/app/templates/play/level/control_bar.jade b/app/templates/play/level/control_bar.jade
index 087581d61..006072ea5 100644
--- a/app/templates/play/level/control_bar.jade
+++ b/app/templates/play/level/control_bar.jade
@@ -2,11 +2,11 @@ h4.home
a(href=homeLink || "/")
i.icon-home.icon-white
- span(data-i18n="play_level.home") Home
+ span(data-i18n="play_level.home").home-text Home
h4.title
| #{worldName}
- span.spl.spr -
+ span.spl.spr.editor-dash -
a(href=editorLink, data-i18n="nav.editor", title="Open " + worldName + " in the Level Editor") Editor
if multiplayerSession
- found = false
diff --git a/app/views/editor/level/thangs/ThangsTabView.coffee b/app/views/editor/level/thangs/ThangsTabView.coffee
index 9046463ee..9fb81044f 100644
--- a/app/views/editor/level/thangs/ThangsTabView.coffee
+++ b/app/views/editor/level/thangs/ThangsTabView.coffee
@@ -164,7 +164,7 @@ module.exports = class ThangsTabView extends CocoView
@thangsTreema.build()
@thangsTreema.open()
@openSmallerFolders(@thangsTreema)
-
+
@onThangsChanged() # Initialize the World with Thangs
@initSurface()
thangsHeaderHeight = $('#thangs-header').height()
@@ -172,14 +172,14 @@ module.exports = class ThangsTabView extends CocoView
$('#thangs-list').height(oldHeight - thangsHeaderHeight)
if data?.length
@$el.find('.generate-terrain-button').hide()
-
+
openSmallerFolders: (folderTreema) ->
children = _.values folderTreema.childrenTreemas
for child in children
continue if child.data.thangType
if _.keys(child.data).length < 5
child.open()
- @openSmallerFolders(child)
+ @openSmallerFolders(child)
initSurface: ->
surfaceCanvas = $('canvas#surface', @$el)
@@ -253,7 +253,7 @@ module.exports = class ThangsTabView extends CocoView
@surface.camera.dragDisabled = false
return unless @selectedExtantThang and e.thang?.id is @selectedExtantThang?.id
pos = @selectedExtantThang.pos
-
+
thang = _.find(@level.get('thangs') ? [], {id: @selectedExtantThang.id})
path = "#{@pathForThang(thang)}/components/original=#{LevelComponent.PhysicalID}"
physical = @thangsTreema.get path
@@ -279,7 +279,7 @@ module.exports = class ThangsTabView extends CocoView
unless @addThangType.isFullyLoaded() or listening[@addThangType.cid]
listening[@addThangType.cid] = true
@listenToOnce @addThangType, 'build-complete', @onThangsChanged
-
+
@addThang @addThangType, thang.pos, true
@hush = false
@onThangsChanged()
@@ -384,7 +384,7 @@ module.exports = class ThangsTabView extends CocoView
return unless @addThangSprite
wop = @surface.camera.screenToWorld x: e.x, y: e.y
wop.z = 0.5
- @adjustThangPos @addThangSprite, @addThangSprite.thang, wop
+ #@adjustThangPos @addThangSprite, @addThangSprite.thang, wop # TODO: this and onSpriteDragged both conflictin'
null
onSurfaceMouseOver: (e) ->
@@ -426,7 +426,7 @@ module.exports = class ThangsTabView extends CocoView
thang = @getThangByID(@selectedExtantThang.id)
@thangsTreema.delete(@pathForThang(thang))
Thang.resetThangIDs() # TODO: find some way to do this when we delete from treema, too
-
+
groupThangs: (thangs) ->
# array of thangs -> foldered thangs
grouped = {}
@@ -439,18 +439,18 @@ module.exports = class ThangsTabView extends CocoView
obj[thang.id] = thang
thang.index = index
grouped
-
+
folderForThang: (thang) ->
thangType = @supermodel.getModelByOriginal ThangType, thang.thangType
[thangType.get('kind'), thangType.get('name')]
-
+
pathForThang: (thang) ->
folder = @folderForThang(thang)
folder.push thang.id
folder.join('/')
-
+
flattenThangs: (thangs) ->
- # foldered thangs -> array of thangs
+ # foldered thangs -> array of thangs
flattened = []
for key, value of thangs
if value.id and value.thangType
@@ -458,7 +458,7 @@ module.exports = class ThangsTabView extends CocoView
else
flattened = flattened.concat @flattenThangs(value)
flattened
-
+
populateFoldersForThang: (thang) ->
thangFolder = @folderForThang(thang)
prefix = ''
@@ -501,7 +501,7 @@ module.exports = class ThangsTabView extends CocoView
onTreemaThangDoubleClicked: (e, treema) =>
id = treema?.data?.id
@editThang thangID: id if id
-
+
getThangByID: (id) -> _.find(@level.get('thangs') ? [], {id: id})
addThang: (thangType, pos, batchInsert=false) ->
@@ -583,7 +583,7 @@ class ThangsFolderNode extends TreemaNode.nodeMap.object
valueClass: 'treema-thangs-folder'
nodeDescription: 'Thang'
@nameToThangTypeMap: null
-
+
getTrackedActionDescription: (trackedAction) ->
trackedActionDescription = super(trackedAction)
if trackedActionDescription is 'Edit ' + @nodeDescription
@@ -591,16 +591,16 @@ class ThangsFolderNode extends TreemaNode.nodeMap.object
if path[path.length-1] is 'pos'
trackedActionDescription = 'Move Thang'
trackedActionDescription
-
+
buildValueForDisplay: (valEl, data) ->
el = $("#{@keyForParent}(#{@countThangs(data)})")
-
+
# Kind of like having the portraits on the individual thang rows, rather than the parent folder row
# but keeping this logic here in case we want to have it the other way.
# if thangType = @nameToThangType(@keyForParent)
# el.prepend($(""))
valEl.append(el)
-
+
countThangs: (data) ->
return 0 if data.thangType and data.id
num = 0
@@ -610,7 +610,7 @@ class ThangsFolderNode extends TreemaNode.nodeMap.object
else
num += @countThangs(value)
num
-
+
nameToThangType: (name) ->
if not ThangsFolderNode.nameToThangTypeMap
thangTypes = @settings.supermodel.getModels(ThangType)
diff --git a/app/views/game-menu/GameMenuModal.coffee b/app/views/game-menu/GameMenuModal.coffee
index b2d1aca45..2881cc4a7 100644
--- a/app/views/game-menu/GameMenuModal.coffee
+++ b/app/views/game-menu/GameMenuModal.coffee
@@ -34,6 +34,7 @@ module.exports = class GameMenuModal extends ModalView
@$el.toggleClas
@insertSubView new submenuView @options for submenuView in submenuViews
(if @options.showInventory then @subviews.inventory_view else @subviews.choose_hero_view).$el.addClass 'active'
+ Backbone.Mediator.publish 'audio-player:play-sound', trigger: 'game-menu-open', volume: 1
onHidden: ->
subview.onHidden?() for subviewKey, subview of @subviews
diff --git a/app/views/game-menu/GuideView.coffee b/app/views/game-menu/GuideView.coffee
index 8a4185396..39daf588f 100644
--- a/app/views/game-menu/GuideView.coffee
+++ b/app/views/game-menu/GuideView.coffee
@@ -14,3 +14,4 @@ module.exports = class GuideView extends CocoView
afterRender: ->
super()
+ #Backbone.Mediator.publish 'audio-player:play-sound', trigger: 'guide-open', volume: 1 # no, only when the tab is activated
diff --git a/app/views/kinds/CocoView.coffee b/app/views/kinds/CocoView.coffee
index 41e974a01..19aab42d2 100644
--- a/app/views/kinds/CocoView.coffee
+++ b/app/views/kinds/CocoView.coffee
@@ -66,7 +66,7 @@ module.exports = class CocoView extends Backbone.View
$.noty.closeAll()
destroyAceEditor: (editor) ->
- # convenience method to make sure the ace editor is as destroyed as can be
+ # convenience method to make sure the ace editor is as destroyed as can be
return unless editor
session = editor.getSession()
session.setMode ''
@@ -155,7 +155,7 @@ module.exports = class CocoView extends Backbone.View
res.load()
@$el.find('.progress').show()
$(e.target).closest('.loading-error-alert').remove()
-
+
onSkipResource: (e) ->
res = @supermodel.getResource($(e.target).data('resource-index'))
return unless res and res.isFailed
@@ -319,6 +319,10 @@ module.exports = class CocoView extends Backbone.View
isMac: ->
navigator.platform.toUpperCase().indexOf('MAC') isnt -1
+ isIPadApp: ->
+ return @_isIPadApp if @_isIPadApp?
+ return @_isIPadApp = webkit?.messageHandlers? and navigator.userAgent?.indexOf('iPad') isnt -1
+
initSlider: ($el, startValue, changeCallback) ->
slider = $el.slider({animate: 'fast'})
slider.slider('value', startValue)
diff --git a/app/views/kinds/RootView.coffee b/app/views/kinds/RootView.coffee
index ebd44c0b5..78a03fc0b 100644
--- a/app/views/kinds/RootView.coffee
+++ b/app/views/kinds/RootView.coffee
@@ -134,6 +134,7 @@ module.exports = class RootView extends CocoView
d.msRequestFullscreen or
(if d.webkitRequestFullscreen then -> d.webkitRequestFullscreen Element.ALLOW_KEYBOARD_INPUT else null)
req?.call d
+ Backbone.Mediator.publish 'audio-player:play-sound', trigger: 'full-screen-start', volume: 1 if req
else
nah = document.exitFullscreen or
document.mozCancelFullScreen or
@@ -141,4 +142,5 @@ module.exports = class RootView extends CocoView
document.msExitFullscreen or
document.webkitExitFullscreen
nah?.call document
+ Backbone.Mediator.publish 'audio-player:play-sound', trigger: 'full-screen-end', volume: 1 if nah
return
diff --git a/app/views/modal/RecoverModal.coffee b/app/views/modal/RecoverModal.coffee
index cb7781bed..fa293002e 100644
--- a/app/views/modal/RecoverModal.coffee
+++ b/app/views/modal/RecoverModal.coffee
@@ -37,5 +37,5 @@ module.exports = class RecoverModal extends ModalView
successfullyRecovered: =>
@disableModalInProgress(@$el)
- @$el.find('.modal-body:visible').text('Recovery email sent.')
+ @$el.find('.modal-body:visible').text($.i18n.t('recover.recovery_sent'))
@$el.find('.modal-footer').remove()
diff --git a/app/views/play/level/LevelGoalsView.coffee b/app/views/play/level/LevelGoalsView.coffee
index cbc4c2075..15f0b5d7f 100644
--- a/app/views/play/level/LevelGoalsView.coffee
+++ b/app/views/play/level/LevelGoalsView.coffee
@@ -27,10 +27,9 @@ module.exports = class LevelGoalsView extends CocoView
@mouseEntered = false
@updatePlacement()
- toggleCollapse: (e) ->
- @$el.toggleClass('expanded').toggleClass('collapsed')
-
onNewGoalStates: (e) ->
+ firstRun = @previousGoalStatus?
+ @previousGoalStatus ?= {}
@$el.find('.goal-status').addClass 'secret'
classToShow = null
classToShow = 'success' if e.overallStatus is 'success'
@@ -38,7 +37,6 @@ module.exports = class LevelGoalsView extends CocoView
classToShow ?= 'timed-out' if e.timedOut
classToShow ?= 'incomplete'
@$el.find('.goal-status.'+classToShow).removeClass 'secret'
-
list = $('#primary-goals-list', @$el)
list.empty()
goals = []
@@ -63,6 +61,10 @@ module.exports = class LevelGoalsView extends CocoView
li.prepend($('').addClass(stateIconMap[state.status]))
list.append(li)
goals.push goal
+ if not firstRun and state.status is 'success' and @previousGoalStatus[goal.id] isnt 'success'
+ Backbone.Mediator.publish 'audio-player:play-sound', trigger: 'goal-success', volume: 1
+ else if not firstRun and state.status is 'incomplete' and @previousGoalStatus[goal.id] is 'success'
+ Backbone.Mediator.publish 'audio-player:play-sound', trigger: 'goal-incomplete-again', volume: 1
@$el.removeClass('secret') if goals.length > 0
onSurfacePlaybackRestarted: ->
@@ -84,12 +86,13 @@ module.exports = class LevelGoalsView extends CocoView
@updatePlacement()
updatePlacement: ->
- if @playbackEnded or @mouseEntered
- # expand
- @$el.css('top', -10)
- else
- # collapse
- @$el.css('top', 26 - @$el.outerHeight())
+ expand = @playbackEnded or @mouseEntered
+ return if expand is @expanded
+ sound = if expand then 'goals-expand' else 'goals-collapse'
+ top = if expand then -10 else 26 - @$el.outerHeight()
+ @$el.css 'top', top
+ Backbone.Mediator.publish 'audio-player:play-sound', trigger: sound, volume: 1 if @expanded?
+ @expanded = expand
onSetLetterbox: (e) ->
@$el.toggle not e.on
diff --git a/app/views/play/level/LevelLoadingView.coffee b/app/views/play/level/LevelLoadingView.coffee
index acd15c67d..383d969c3 100644
--- a/app/views/play/level/LevelLoadingView.coffee
+++ b/app/views/play/level/LevelLoadingView.coffee
@@ -31,6 +31,7 @@ module.exports = class LevelLoadingView extends CocoView
loadingDetails.css 'top', -loadingDetails.outerHeight(true)
@$el.find('.left-wing').css left: '-100%', backgroundPosition: 'right -400px top 0'
@$el.find('.right-wing').css right: '-100%', backgroundPosition: 'left -400px top 0'
+ Backbone.Mediator.publish 'audio-player:play-sound', trigger: 'loading-view-unveil', volume: 1
_.delay @onUnveilEnded, duration * 1000
onUnveilEnded: =>
diff --git a/app/views/play/level/LevelPlaybackView.coffee b/app/views/play/level/LevelPlaybackView.coffee
index e3803913f..fcf691500 100644
--- a/app/views/play/level/LevelPlaybackView.coffee
+++ b/app/views/play/level/LevelPlaybackView.coffee
@@ -165,6 +165,7 @@ module.exports = class LevelPlaybackView extends CocoView
@realTime = true
@togglePlaybackControls false
Backbone.Mediator.publish 'playback:real-time-playback-started', {}
+ Backbone.Mediator.publish 'audio-player:play-sound', trigger: 'real-time-playback-start', volume: 1
onRealTimeMultiplayerCast: (e) ->
@realTime = true
@@ -226,7 +227,9 @@ module.exports = class LevelPlaybackView extends CocoView
@playing = (e ? {}).playing ? true
button = @$el.find '#play-button'
ended = button.hasClass 'ended'
+ changed = button.hasClass('playing') isnt @playing
button.toggleClass('playing', @playing and not ended).toggleClass('paused', not @playing and not ended)
+ Backbone.Mediator.publish 'audio-player:play-sound', trigger: (if @playing then 'playback-play' else 'playback-pause'), volume: 1
return # don't stripe the bar
bar = @$el.find '.scrubber .progress'
bar.toggleClass('progress-striped', @playing and not ended).toggleClass('active', @playing and not ended)
@@ -306,6 +309,7 @@ module.exports = class LevelPlaybackView extends CocoView
return unless @realTime
@realTime = false
@togglePlaybackControls true
+ Backbone.Mediator.publish 'audio-player:play-sound', trigger: 'real-time-playback-end', volume: 1
onStopRealTimePlayback: (e) ->
Backbone.Mediator.publish 'playback:real-time-playback-ended', {}
@@ -323,14 +327,19 @@ module.exports = class LevelPlaybackView extends CocoView
animate: 'slow'
slide: (event, ui) =>
return if @shouldIgnore()
+ ++@slideCount
+ oldRatio = @getScrubRatio()
@scrubTo ui.value / @sliderIncrements
- @slideCount += 1
+ if ratioChange = @getScrubRatio() - oldRatio
+ sound = "playback-scrub-slide-#{if ratioChange > 0 then 'forward' else 'back'}-#{@slideCount % 3}"
+ Backbone.Mediator.publish 'audio-player:play-sound', trigger: sound, volume: Math.min 1, Math.abs ratioChange * 50
start: (event, ui) =>
return if @shouldIgnore()
@slideCount = 0
@wasPlaying = @playing
Backbone.Mediator.publish 'level:set-playing', {playing: false}
+ Backbone.Mediator.publish 'audio-player:play-sound', trigger: 'playback-scrub-start', volume: 1
stop: (event, ui) =>
return if @shouldIgnore()
@@ -341,6 +350,8 @@ module.exports = class LevelPlaybackView extends CocoView
@wasPlaying = false
Backbone.Mediator.publish 'level:set-playing', {playing: false}
@$el.find('.scrubber-handle').effect('bounce', {times: 2})
+ else
+ Backbone.Mediator.publish 'audio-player:play-sound', trigger: 'playback-scrub-end', volume: 1
)
getScrubRatio: ->
diff --git a/app/views/play/level/PlayLevelView.coffee b/app/views/play/level/PlayLevelView.coffee
index 5c4b49889..fafe1db1d 100644
--- a/app/views/play/level/PlayLevelView.coffee
+++ b/app/views/play/level/PlayLevelView.coffee
@@ -131,6 +131,7 @@ module.exports = class PlayLevelView extends RootView
updateProgress: (progress) ->
super(progress)
return if @seenDocs
+ return if @isIPadApp()
return unless @levelLoader.session.loaded and @levelLoader.level.loaded
return unless showFrequency = @levelLoader.level.get('showsGuide')
session = @levelLoader.session
@@ -173,10 +174,11 @@ module.exports = class PlayLevelView extends RootView
@insertSubView @loadingView = new LevelLoadingView {}
@$el.find('#level-done-button').hide()
$('body').addClass('is-playing')
+ $('body').bind('touchmove', false) if @isIPadApp()
afterInsert: ->
super()
- @showWizardSettingsModal() if not me.get('name')
+ @showWizardSettingsModal() if not me.get('name') and not @isIPadApp()
# Partially Loaded Setup ####################################################
@@ -259,7 +261,7 @@ module.exports = class PlayLevelView extends RootView
@insertSubView new ChatView levelID: @levelID, sessionID: @session.id, session: @session
worldName = utils.i18n @level.attributes, 'name'
@controlBar = @insertSubView new ControlBarView {worldName: worldName, session: @session, level: @level, supermodel: @supermodel, playableTeams: @world.playableTeams}
- #Backbone.Mediator.publish('level:set-debug', debug: true) if me.displayName() is 'Nick'
+ Backbone.Mediator.publish('level:set-debug', debug: true) if @isIPadApp() # if me.displayName() is 'Nick'
initVolume: ->
volume = me.get('volume')
@@ -343,6 +345,8 @@ module.exports = class PlayLevelView extends RootView
if state.selected
# TODO: Should also restore selected spell here by saving spellName
Backbone.Mediator.publish 'level:select-sprite', thangID: state.selected, spellName: null
+ else if @isIPadApp()
+ Backbone.Mediator.publish 'tome:select-primary-sprite', {}
if state.playing?
Backbone.Mediator.publish 'level:set-playing', playing: state.playing
diff --git a/app/views/play/level/modal/LevelGuideModal.coffee b/app/views/play/level/modal/LevelGuideModal.coffee
index 0d54a71a7..d2b3c4b41 100644
--- a/app/views/play/level/modal/LevelGuideModal.coffee
+++ b/app/views/play/level/modal/LevelGuideModal.coffee
@@ -46,9 +46,11 @@ module.exports = class LevelGuideModal extends ModalView
@$el.find('.nav-tabs li:first').addClass('active')
@$el.find('.tab-content .tab-pane:first').addClass('active')
@$el.find('.nav-tabs a').click(@clickTab)
+ Backbone.Mediator.publish 'audio-player:play-sound', trigger: 'guide-open', volume: 1
clickTab: (e) =>
@$el.find('li.active').removeClass('active')
+ Backbone.Mediator.publish 'audio-player:play-sound', trigger: 'guide-tab-switch', volume: 1
afterInsert: ->
super()
diff --git a/app/views/play/level/tome/SpellListTabEntryView.coffee b/app/views/play/level/tome/SpellListTabEntryView.coffee
index 744b9d465..d00e3aa6f 100644
--- a/app/views/play/level/tome/SpellListTabEntryView.coffee
+++ b/app/views/play/level/tome/SpellListTabEntryView.coffee
@@ -89,6 +89,7 @@ module.exports = class SpellListTabEntryView extends SpellListEntryView
onDropdownClick: (e) ->
return unless @controlsEnabled
Backbone.Mediator.publish 'tome:toggle-spell-list', {}
+ Backbone.Mediator.publish 'audio-player:play-sound', trigger: 'spell-list-open', volume: 1
onCodeReload: (e) ->
return unless @controlsEnabled
diff --git a/app/views/play/level/tome/SpellPaletteEntryView.coffee b/app/views/play/level/tome/SpellPaletteEntryView.coffee
index ca9270616..3f81a5d4c 100644
--- a/app/views/play/level/tome/SpellPaletteEntryView.coffee
+++ b/app/views/play/level/tome/SpellPaletteEntryView.coffee
@@ -48,6 +48,7 @@ module.exports = class SpellPaletteEntryView extends CocoView
window.element = @$el
@$el.on 'show.bs.popover', =>
Backbone.Mediator.publish 'tome:palette-hovered', thang: @thang, prop: @doc.name, entry: @
+ Backbone.Mediator.publish 'audio-player:play-sound', trigger: 'spell-palette-entry-open', volume: 1
onMouseEnter: (e) ->
# Make sure the doc has the updated Thang so it can regenerate its prop value
@@ -71,6 +72,7 @@ module.exports = class SpellPaletteEntryView extends CocoView
x = $('')
$('.spell-palette-popover.popover').append x
x.on 'click', @onClick
+ Backbone.Mediator.publish 'audio-player:play-sound', trigger: 'spell-palette-entry-pin', volume: 1
Backbone.Mediator.publish 'tome:palette-pin-toggled', entry: @, pinned: @popoverPinned
onClick: (e) =>
diff --git a/app/views/play/level/tome/SpellPaletteView.coffee b/app/views/play/level/tome/SpellPaletteView.coffee
index 6c00bd785..18fb86572 100644
--- a/app/views/play/level/tome/SpellPaletteView.coffee
+++ b/app/views/play/level/tome/SpellPaletteView.coffee
@@ -53,6 +53,7 @@ module.exports = class SpellPaletteView extends CocoView
@$el.find('.code-language-logo').removeClass().addClass 'code-language-logo ' + language
createPalette: ->
+ Backbone.Mediator.publish 'tome:palette-cleared', {thangID: @thang.id}
lcs = @supermodel.getModels LevelComponent
allDocs = {}
excludedDocs = {}
@@ -128,14 +129,18 @@ module.exports = class SpellPaletteView extends CocoView
@defaultGroupSlug = _.string.slugify defaultGroup
@entryGroupSlugs = {}
@entryGroupNames = {}
+ iOSEntryGroups = {}
for group, entries of @entryGroups
@entryGroups[group] = _.groupBy entries, (entry, i) -> Math.floor i / N_ROWS
@entryGroupSlugs[group] = _.string.slugify group
@entryGroupNames[group] = group
+ iOSEntryGroups[group] = (entry.doc for entry in entries)
if thisName = {coffeescript: '@', lua: 'self', clojure: 'self'}[@options.language]
if @entryGroupNames.this
@entryGroupNames.this = thisName
- null
+ iOSEntryGroups[thisName] = iOSEntryGroups.this
+ delete iOSEntryGroups.this
+ Backbone.Mediator.publish 'tome:palette-updated', entryGroups: iOSEntryGroups
addEntry: (doc, shortenize, tabbify, isSnippet=false) ->
writable = (if _.isString(doc) then doc else doc.name) in (@thang.apiUserProperties ? [])
diff --git a/app/views/play/level/tome/SpellView.coffee b/app/views/play/level/tome/SpellView.coffee
index b1b7cadae..8f71c0c02 100644
--- a/app/views/play/level/tome/SpellView.coffee
+++ b/app/views/play/level/tome/SpellView.coffee
@@ -348,6 +348,7 @@ module.exports = class SpellView extends CocoView
]
@onCodeChangeMetaHandler = =>
return if @eventsSuppressed
+ Backbone.Mediator.publish 'audio-player:play-sound', trigger: 'code-change', volume: 0.5
@spell.hasChangedSignificantly @getSource(), @spellThang.aether.raw, (hasChanged) =>
if not @spellThang or hasChanged
callback() for callback in onSignificantChange # Do these first
diff --git a/app/views/play/level/tome/ThangListEntryView.coffee b/app/views/play/level/tome/ThangListEntryView.coffee
index 52bfe8ce0..75d03ac22 100644
--- a/app/views/play/level/tome/ThangListEntryView.coffee
+++ b/app/views/play/level/tome/ThangListEntryView.coffee
@@ -80,11 +80,14 @@ module.exports = class ThangListEntryView extends CocoView
score += 9001 * _.size(s.thangs)
score
- onClick: (e) ->
- return unless @controlsEnabled
+ select: ->
@sortSpells()
Backbone.Mediator.publish 'level:select-sprite', thangID: @thang.id, spellName: @spells[0]?.name
+ onClick: (e) ->
+ return unless @controlsEnabled
+ @select()
+
onMouseEnter: (e) ->
return unless @controlsEnabled and @spells.length
@clearTimeouts()
diff --git a/app/views/play/level/tome/ThangListView.coffee b/app/views/play/level/tome/ThangListView.coffee
index 2b09f44e8..7f69d55d0 100644
--- a/app/views/play/level/tome/ThangListView.coffee
+++ b/app/views/play/level/tome/ThangListView.coffee
@@ -11,7 +11,8 @@ module.exports = class ThangListView extends CocoView
id: 'thang-list-view'
template: template
- subscriptions: {}
+ subscriptions:
+ 'tome:select-primary-sprite': 'onSelectPrimarySprite'
constructor: (options) ->
super options
@@ -89,6 +90,9 @@ module.exports = class ThangListView extends CocoView
@sortThangs()
@addThangListEntries()
+ onSelectPrimarySprite: (e) ->
+ @entries[0]?.select()
+
destroy: ->
entry.destroy() for entry in @entries
super()
diff --git a/bin/coco-mongodb b/bin/coco-mongodb
index df6e3b7ad..eeb3d7aa8 100755
--- a/bin/coco-mongodb
+++ b/bin/coco-mongodb
@@ -71,18 +71,18 @@ def which(cmd, mode=os.F_OK | os.X_OK, path=None):
current_directory = os.path.dirname(os.path.realpath(sys.argv[0]))
-allowedMongoVersions = ["v2.5.4","v2.5.5","v2.6.0"]
+allowedMongoVersions = ["v2.6.0","v2.6.4"]
if which("mongod") and any(i in subprocess.check_output("mongod --version",shell=True) for i in allowedMongoVersions):
mongo_executable = "mongod"
else:
mongo_executable = None
- print("Mongod 2.5.4 wasn't found. Searching in bin directory...")
+ print("Mongod 2.6.4 wasn't found. Searching in bin directory...")
mongo_directory = current_directory + os.sep + u"mongo"
if not mongo_executable:
mongo_executable = os.environ.get("COCO_MONGOD_PATH",mongo_directory + os.sep + u"mongod")
if not os.path.exists(mongo_executable):
- raise EnvironmentError("Mongo 2.5.4 executable not found.")
+ raise EnvironmentError("Mongo 2.6.4 executable not found.")
print("Using mongo executable: " + str(mongo_executable))
mongo_db_path = os.path.abspath(os.path.join(current_directory,os.pardir)) + os.sep + u"mongo"
if not os.path.exists(mongo_db_path):
diff --git a/test/demo/easeljs/WebGL.demo.coffee b/test/demo/easeljs/WebGL.demo.coffee
new file mode 100644
index 000000000..4b2efe59a
--- /dev/null
+++ b/test/demo/easeljs/WebGL.demo.coffee
@@ -0,0 +1,494 @@
+RootView = require 'views/kinds/RootView'
+waterfallLib = require 'test/demo/fixtures/waterfall'
+librarianLib = require 'test/demo/fixtures/librarian'
+
+class WebGLDemoView extends RootView
+ template: -> '