Merge branch 'master' of https://github.com/codecombat/codecombat
Conflicts: server/routes/mail.coffee
BIN
app/assets/images/common/code_languages/c_icon.png
Executable file
After ![]() (image error) Size: 3 KiB |
BIN
app/assets/images/common/code_languages/clojure_icon.png
Executable file
After ![]() (image error) Size: 3 KiB |
Before ![]() (image error) Size: 6.1 KiB After ![]() (image error) Size: 6.1 KiB ![]() ![]() |
BIN
app/assets/images/common/code_languages/coffeescript_icon.png
Executable file
After ![]() (image error) Size: 2.9 KiB |
Before ![]() (image error) Size: 16 KiB After ![]() (image error) Size: 16 KiB ![]() ![]() |
BIN
app/assets/images/common/code_languages/cpp_icon.png
Executable file
After ![]() (image error) Size: 3 KiB |
BIN
app/assets/images/common/code_languages/csharp_icon.png
Executable file
After ![]() (image error) Size: 3 KiB |
BIN
app/assets/images/common/code_languages/go_icon.png
Executable file
After ![]() (image error) Size: 2.9 KiB |
BIN
app/assets/images/common/code_languages/io_icon.png
Normal file
After ![]() (image error) Size: 4 KiB |
Before ![]() (image error) Size: 15 KiB After ![]() (image error) Size: 15 KiB ![]() ![]() |
BIN
app/assets/images/common/code_languages/java_icon.png
Executable file
After ![]() (image error) Size: 3 KiB |
BIN
app/assets/images/common/code_languages/javascript_icon.png
Normal file
After ![]() (image error) Size: 3.9 KiB |
Before ![]() (image error) Size: 3.7 KiB After ![]() (image error) Size: 3.7 KiB ![]() ![]() |
BIN
app/assets/images/common/code_languages/lua_icon.png
Executable file
After ![]() (image error) Size: 2.8 KiB |
Before ![]() (image error) Size: 1.5 KiB After ![]() (image error) Size: 1.5 KiB ![]() ![]() |
BIN
app/assets/images/common/code_languages/php_icon.png
Executable file
After ![]() (image error) Size: 2.9 KiB |
BIN
app/assets/images/common/code_languages/python_icon.png
Executable file
After ![]() (image error) Size: 2.9 KiB |
Before ![]() (image error) Size: 17 KiB After ![]() (image error) Size: 17 KiB ![]() ![]() |
BIN
app/assets/images/common/code_languages/ruby_icon.png
Executable file
After ![]() (image error) Size: 3 KiB |
BIN
app/assets/images/common/code_languages/swift_icon.png
Executable file
After ![]() (image error) Size: 2.9 KiB |
|
@ -82,7 +82,7 @@ module.exports = CocoSprite = class CocoSprite extends CocoClass
|
||||||
if @thangType.isFullyLoaded()
|
if @thangType.isFullyLoaded()
|
||||||
@setupSprite()
|
@setupSprite()
|
||||||
else
|
else
|
||||||
@thangType.fetch()
|
@thangType.fetch() unless @thangType.loading
|
||||||
@listenToOnce(@thangType, 'sync', @setupSprite)
|
@listenToOnce(@thangType, 'sync', @setupSprite)
|
||||||
|
|
||||||
setupSprite: ->
|
setupSprite: ->
|
||||||
|
@ -442,7 +442,7 @@ module.exports = CocoSprite = class CocoSprite extends CocoClass
|
||||||
console.warn 'Cannot show action', action, 'for', @thangType.get('name'), 'because it DNE' unless @warnedFor[action]
|
console.warn 'Cannot show action', action, 'for', @thangType.get('name'), 'because it DNE' unless @warnedFor[action]
|
||||||
@warnedFor[action] = true
|
@warnedFor[action] = true
|
||||||
return if @action is 'idle' then null else 'idle'
|
return if @action is 'idle' then null else 'idle'
|
||||||
action = 'break' if @actions.break? and @thang?.erroredOut
|
#action = 'break' if @actions.break? and @thang?.erroredOut # This makes it looks like it's dead when it's not: bad in Brawlwood.
|
||||||
action = 'die' if @actions.die? and thang?.health? and thang.health <= 0
|
action = 'die' if @actions.die? and thang?.health? and thang.health <= 0
|
||||||
@actions[action]
|
@actions[action]
|
||||||
|
|
||||||
|
|
|
@ -115,7 +115,8 @@ module.exports = Surface = class Surface extends CocoClass
|
||||||
|
|
||||||
setWorld: (@world) ->
|
setWorld: (@world) ->
|
||||||
@worldLoaded = true
|
@worldLoaded = true
|
||||||
@world.getFrame(Math.min(@getCurrentFrame(), @world.totalFrames - 1)).restoreState() unless @options.choosing
|
lastFrame = Math.min(@getCurrentFrame(), @world.totalFrames - 1)
|
||||||
|
@world.getFrame(lastFrame).restoreState() unless @options.choosing
|
||||||
@spriteBoss.world = @world
|
@spriteBoss.world = @world
|
||||||
|
|
||||||
@showLevel()
|
@showLevel()
|
||||||
|
@ -241,7 +242,7 @@ module.exports = Surface = class Surface extends CocoClass
|
||||||
@onFrameChanged()
|
@onFrameChanged()
|
||||||
|
|
||||||
getCurrentFrame: ->
|
getCurrentFrame: ->
|
||||||
return Math.max(0, Math.min(Math.floor(@currentFrame), @world.totalFrames - 1))
|
return Math.max(0, Math.min(Math.floor(@currentFrame), @world.frames.length - 1))
|
||||||
|
|
||||||
getProgress: -> @currentFrame / @world.totalFrames
|
getProgress: -> @currentFrame / @world.totalFrames
|
||||||
|
|
||||||
|
|
|
@ -100,6 +100,12 @@ module.exports = nativeDescription: "العربية", englishDescription: "Arabi
|
||||||
# for_beginners: "For Beginners"
|
# for_beginners: "For Beginners"
|
||||||
# multiplayer: "Multiplayer"
|
# multiplayer: "Multiplayer"
|
||||||
# for_developers: "For Developers"
|
# 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."
|
||||||
|
|
||||||
# play:
|
# play:
|
||||||
# choose_your_level: "Choose Your Level"
|
# choose_your_level: "Choose Your Level"
|
||||||
|
|
|
@ -100,6 +100,12 @@ module.exports = nativeDescription: "български език", englishDescri
|
||||||
# for_beginners: "For Beginners"
|
# for_beginners: "For Beginners"
|
||||||
# multiplayer: "Multiplayer"
|
# multiplayer: "Multiplayer"
|
||||||
# for_developers: "For Developers"
|
# 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."
|
||||||
|
|
||||||
play:
|
play:
|
||||||
choose_your_level: "Избери своето ниво"
|
choose_your_level: "Избери своето ниво"
|
||||||
|
|
|
@ -100,6 +100,12 @@ module.exports = nativeDescription: "Català", englishDescription: "Catalan", tr
|
||||||
for_beginners: "Per a principiants"
|
for_beginners: "Per a principiants"
|
||||||
multiplayer: "Multijugador"
|
multiplayer: "Multijugador"
|
||||||
for_developers: "Per a Desenvolupadors"
|
for_developers: "Per a Desenvolupadors"
|
||||||
|
# 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."
|
||||||
|
|
||||||
play:
|
play:
|
||||||
choose_your_level: "Escull el teu nivell"
|
choose_your_level: "Escull el teu nivell"
|
||||||
|
|
|
@ -100,6 +100,12 @@ module.exports = nativeDescription: "čeština", englishDescription: "Czech", tr
|
||||||
# for_beginners: "For Beginners"
|
# for_beginners: "For Beginners"
|
||||||
# multiplayer: "Multiplayer"
|
# multiplayer: "Multiplayer"
|
||||||
# for_developers: "For Developers"
|
# 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."
|
||||||
|
|
||||||
play:
|
play:
|
||||||
choose_your_level: "Zvolte si úroveň"
|
choose_your_level: "Zvolte si úroveň"
|
||||||
|
|
|
@ -100,6 +100,12 @@ module.exports = nativeDescription: "dansk", englishDescription: "Danish", trans
|
||||||
for_beginners: "For Begyndere"
|
for_beginners: "For Begyndere"
|
||||||
multiplayer: "Multiplayer"
|
multiplayer: "Multiplayer"
|
||||||
for_developers: "For Udviklere"
|
for_developers: "For Udviklere"
|
||||||
|
# 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."
|
||||||
|
|
||||||
play:
|
play:
|
||||||
choose_your_level: "Vælg Dit Level"
|
choose_your_level: "Vælg Dit Level"
|
||||||
|
|
|
@ -100,6 +100,12 @@ module.exports = nativeDescription: "Deutsch (Österreich)", englishDescription:
|
||||||
# for_beginners: "For Beginners"
|
# for_beginners: "For Beginners"
|
||||||
# multiplayer: "Multiplayer"
|
# multiplayer: "Multiplayer"
|
||||||
# for_developers: "For Developers"
|
# 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."
|
||||||
|
|
||||||
# play:
|
# play:
|
||||||
# choose_your_level: "Choose Your Level"
|
# choose_your_level: "Choose Your Level"
|
||||||
|
|
|
@ -100,6 +100,12 @@ module.exports = nativeDescription: "Deutsch (Schweiz)", englishDescription: "Ge
|
||||||
for_beginners: "Für Afänger"
|
for_beginners: "Für Afänger"
|
||||||
multiplayer: "Multiplayer"
|
multiplayer: "Multiplayer"
|
||||||
for_developers: "Für Entwickler"
|
for_developers: "Für Entwickler"
|
||||||
|
# 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."
|
||||||
|
|
||||||
play:
|
play:
|
||||||
choose_your_level: "Wähl dis Level us"
|
choose_your_level: "Wähl dis Level us"
|
||||||
|
|
|
@ -100,6 +100,12 @@ module.exports = nativeDescription: "Deutsch (Deutschland)", englishDescription:
|
||||||
for_beginners: "Für Anfänger"
|
for_beginners: "Für Anfänger"
|
||||||
multiplayer: "Mehrspieler"
|
multiplayer: "Mehrspieler"
|
||||||
for_developers: "Für Entwickler"
|
for_developers: "Für Entwickler"
|
||||||
|
# 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."
|
||||||
|
|
||||||
play:
|
play:
|
||||||
choose_your_level: "Wähle dein Level"
|
choose_your_level: "Wähle dein Level"
|
||||||
|
|
|
@ -100,6 +100,12 @@ module.exports = nativeDescription: "Deutsch", englishDescription: "German", tra
|
||||||
for_beginners: "Für Anfänger"
|
for_beginners: "Für Anfänger"
|
||||||
multiplayer: "Mehrspieler"
|
multiplayer: "Mehrspieler"
|
||||||
for_developers: "Für Entwickler"
|
for_developers: "Für Entwickler"
|
||||||
|
# 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."
|
||||||
|
|
||||||
play:
|
play:
|
||||||
choose_your_level: "Wähle dein Level"
|
choose_your_level: "Wähle dein Level"
|
||||||
|
|
|
@ -100,6 +100,12 @@ module.exports = nativeDescription: "ελληνικά", englishDescription: "Gre
|
||||||
for_beginners: "Για αρχάριους"
|
for_beginners: "Για αρχάριους"
|
||||||
# multiplayer: "Multiplayer"
|
# 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."
|
||||||
|
|
||||||
play:
|
play:
|
||||||
choose_your_level: "Διάλεξε την πίστα σου"
|
choose_your_level: "Διάλεξε την πίστα σου"
|
||||||
|
|
|
@ -100,6 +100,12 @@ module.exports = nativeDescription: "English (AU)", englishDescription: "English
|
||||||
# for_beginners: "For Beginners"
|
# for_beginners: "For Beginners"
|
||||||
# multiplayer: "Multiplayer"
|
# multiplayer: "Multiplayer"
|
||||||
# for_developers: "For Developers"
|
# 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."
|
||||||
|
|
||||||
# play:
|
# play:
|
||||||
# choose_your_level: "Choose Your Level"
|
# choose_your_level: "Choose Your Level"
|
||||||
|
|
|
@ -100,6 +100,12 @@ module.exports = nativeDescription: "English (UK)", englishDescription: "English
|
||||||
# for_beginners: "For Beginners"
|
# for_beginners: "For Beginners"
|
||||||
# multiplayer: "Multiplayer"
|
# multiplayer: "Multiplayer"
|
||||||
# for_developers: "For Developers"
|
# 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."
|
||||||
|
|
||||||
# play:
|
# play:
|
||||||
# choose_your_level: "Choose Your Level"
|
# choose_your_level: "Choose Your Level"
|
||||||
|
|
|
@ -100,6 +100,12 @@ module.exports = nativeDescription: "English (US)", englishDescription: "English
|
||||||
# for_beginners: "For Beginners"
|
# for_beginners: "For Beginners"
|
||||||
# multiplayer: "Multiplayer"
|
# multiplayer: "Multiplayer"
|
||||||
# for_developers: "For Developers"
|
# 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."
|
||||||
|
|
||||||
# play:
|
# play:
|
||||||
# choose_your_level: "Choose Your Level"
|
# choose_your_level: "Choose Your Level"
|
||||||
|
|
|
@ -100,6 +100,12 @@
|
||||||
for_beginners: "For Beginners"
|
for_beginners: "For Beginners"
|
||||||
multiplayer: "Multiplayer"
|
multiplayer: "Multiplayer"
|
||||||
for_developers: "For Developers"
|
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."
|
||||||
|
|
||||||
play:
|
play:
|
||||||
choose_your_level: "Choose Your Level"
|
choose_your_level: "Choose Your Level"
|
||||||
|
|
|
@ -100,6 +100,12 @@ module.exports = nativeDescription: "español (América Latina)", englishDescrip
|
||||||
for_beginners: "Para Principiantes"
|
for_beginners: "Para Principiantes"
|
||||||
multiplayer: "Multijugador"
|
multiplayer: "Multijugador"
|
||||||
for_developers: "Para Desarrolladores"
|
for_developers: "Para Desarrolladores"
|
||||||
|
# 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."
|
||||||
|
|
||||||
play:
|
play:
|
||||||
choose_your_level: "Elige tu nivel"
|
choose_your_level: "Elige tu nivel"
|
||||||
|
|
|
@ -100,6 +100,12 @@ module.exports = nativeDescription: "español (ES)", englishDescription: "Spanis
|
||||||
for_beginners: "Para principiantes"
|
for_beginners: "Para principiantes"
|
||||||
multiplayer: "Multijugador"
|
multiplayer: "Multijugador"
|
||||||
for_developers: "Para programadores"
|
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."
|
||||||
|
|
||||||
play:
|
play:
|
||||||
choose_your_level: "Elige tu nivel"
|
choose_your_level: "Elige tu nivel"
|
||||||
|
|
|
@ -100,6 +100,12 @@ module.exports = nativeDescription: "español", englishDescription: "Spanish", t
|
||||||
for_beginners: "Para principiantes"
|
for_beginners: "Para principiantes"
|
||||||
multiplayer: "Multijugador"
|
multiplayer: "Multijugador"
|
||||||
for_developers: "Para desarrolladores"
|
for_developers: "Para desarrolladores"
|
||||||
|
# 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."
|
||||||
|
|
||||||
play:
|
play:
|
||||||
choose_your_level: "Elige tu nivel"
|
choose_your_level: "Elige tu nivel"
|
||||||
|
|
|
@ -100,6 +100,12 @@ module.exports = nativeDescription: "فارسی", englishDescription: "Persian",
|
||||||
# for_beginners: "For Beginners"
|
# for_beginners: "For Beginners"
|
||||||
# multiplayer: "Multiplayer"
|
# multiplayer: "Multiplayer"
|
||||||
# for_developers: "For Developers"
|
# 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."
|
||||||
|
|
||||||
play:
|
play:
|
||||||
choose_your_level: "مرحله خود را انتخاب کنید"
|
choose_your_level: "مرحله خود را انتخاب کنید"
|
||||||
|
|
|
@ -100,6 +100,12 @@ module.exports = nativeDescription: "suomi", englishDescription: "Finnish", tran
|
||||||
# for_beginners: "For Beginners"
|
# for_beginners: "For Beginners"
|
||||||
# multiplayer: "Multiplayer"
|
# multiplayer: "Multiplayer"
|
||||||
# for_developers: "For Developers"
|
# 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."
|
||||||
|
|
||||||
# play:
|
# play:
|
||||||
# choose_your_level: "Choose Your Level"
|
# choose_your_level: "Choose Your Level"
|
||||||
|
|
|
@ -100,6 +100,12 @@ module.exports = nativeDescription: "français", englishDescription: "French", t
|
||||||
for_beginners: "Pour débutants"
|
for_beginners: "Pour débutants"
|
||||||
multiplayer: "Multijoueurs"
|
multiplayer: "Multijoueurs"
|
||||||
for_developers: "Pour développeurs"
|
for_developers: "Pour développeurs"
|
||||||
|
# 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."
|
||||||
|
|
||||||
play:
|
play:
|
||||||
choose_your_level: "Choisissez votre niveau"
|
choose_your_level: "Choisissez votre niveau"
|
||||||
|
|
|
@ -100,6 +100,12 @@ module.exports = nativeDescription: "עברית", englishDescription: "Hebrew",
|
||||||
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."
|
||||||
|
|
||||||
play:
|
play:
|
||||||
choose_your_level: "בחר את השלב"
|
choose_your_level: "בחר את השלב"
|
||||||
|
|
|
@ -100,6 +100,12 @@ module.exports = nativeDescription: "मानक हिन्दी", englishDe
|
||||||
# for_beginners: "For Beginners"
|
# for_beginners: "For Beginners"
|
||||||
# multiplayer: "Multiplayer"
|
# multiplayer: "Multiplayer"
|
||||||
# for_developers: "For Developers"
|
# 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."
|
||||||
|
|
||||||
# play:
|
# play:
|
||||||
# choose_your_level: "Choose Your Level"
|
# choose_your_level: "Choose Your Level"
|
||||||
|
|
|
@ -100,6 +100,12 @@ module.exports = nativeDescription: "magyar", englishDescription: "Hungarian", t
|
||||||
for_beginners: "Kezdőknek"
|
for_beginners: "Kezdőknek"
|
||||||
# multiplayer: "Multiplayer"
|
# multiplayer: "Multiplayer"
|
||||||
for_developers: "Fejlesztőknek"
|
for_developers: "Fejlesztőknek"
|
||||||
|
# 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."
|
||||||
|
|
||||||
play:
|
play:
|
||||||
choose_your_level: "Válaszd ki a pályát!"
|
choose_your_level: "Válaszd ki a pályát!"
|
||||||
|
|
|
@ -100,6 +100,12 @@ module.exports = nativeDescription: "Bahasa Indonesia", englishDescription: "Ind
|
||||||
# for_beginners: "For Beginners"
|
# for_beginners: "For Beginners"
|
||||||
# multiplayer: "Multiplayer"
|
# multiplayer: "Multiplayer"
|
||||||
# for_developers: "For Developers"
|
# 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."
|
||||||
|
|
||||||
# play:
|
# play:
|
||||||
# choose_your_level: "Choose Your Level"
|
# choose_your_level: "Choose Your Level"
|
||||||
|
|
|
@ -100,6 +100,12 @@ module.exports = nativeDescription: "Italiano", englishDescription: "Italian", t
|
||||||
for_beginners: "Per Principianti"
|
for_beginners: "Per Principianti"
|
||||||
# multiplayer: "Multiplayer"
|
# multiplayer: "Multiplayer"
|
||||||
for_developers: "Per Sviluppatori"
|
for_developers: "Per Sviluppatori"
|
||||||
|
# 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."
|
||||||
|
|
||||||
play:
|
play:
|
||||||
choose_your_level: "Scegli il tuo livello"
|
choose_your_level: "Scegli il tuo livello"
|
||||||
|
|
|
@ -100,6 +100,12 @@ module.exports = nativeDescription: "日本語", englishDescription: "Japanese",
|
||||||
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."
|
||||||
|
|
||||||
play:
|
play:
|
||||||
choose_your_level: "レベル選択"
|
choose_your_level: "レベル選択"
|
||||||
|
|
|
@ -100,6 +100,12 @@ module.exports = nativeDescription: "한국어", englishDescription: "Korean", t
|
||||||
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."
|
||||||
|
|
||||||
play:
|
play:
|
||||||
choose_your_level: "레벨을 선택하세요."
|
choose_your_level: "레벨을 선택하세요."
|
||||||
|
|
|
@ -100,6 +100,12 @@ module.exports = nativeDescription: "lietuvių kalba", englishDescription: "Lith
|
||||||
# for_beginners: "For Beginners"
|
# for_beginners: "For Beginners"
|
||||||
# multiplayer: "Multiplayer"
|
# multiplayer: "Multiplayer"
|
||||||
# for_developers: "For Developers"
|
# 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."
|
||||||
|
|
||||||
# play:
|
# play:
|
||||||
# choose_your_level: "Choose Your Level"
|
# choose_your_level: "Choose Your Level"
|
||||||
|
|
|
@ -100,6 +100,12 @@ module.exports = nativeDescription: "Bahasa Melayu", englishDescription: "Bahasa
|
||||||
# for_beginners: "For Beginners"
|
# for_beginners: "For Beginners"
|
||||||
# multiplayer: "Multiplayer"
|
# multiplayer: "Multiplayer"
|
||||||
# for_developers: "For Developers"
|
# 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."
|
||||||
|
|
||||||
# play:
|
# play:
|
||||||
# choose_your_level: "Choose Your Level"
|
# choose_your_level: "Choose Your Level"
|
||||||
|
|
|
@ -100,6 +100,12 @@ module.exports = nativeDescription: "Norsk Bokmål", englishDescription: "Norweg
|
||||||
# for_beginners: "For Beginners"
|
# for_beginners: "For Beginners"
|
||||||
# multiplayer: "Multiplayer"
|
# multiplayer: "Multiplayer"
|
||||||
# for_developers: "For Developers"
|
# 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."
|
||||||
|
|
||||||
play:
|
play:
|
||||||
choose_your_level: "Velg Ditt Nivå"
|
choose_your_level: "Velg Ditt Nivå"
|
||||||
|
|
|
@ -100,6 +100,12 @@ module.exports = nativeDescription: "Nederlands (België)", englishDescription:
|
||||||
for_beginners: "Voor Beginners"
|
for_beginners: "Voor Beginners"
|
||||||
multiplayer: "Multiplayer"
|
multiplayer: "Multiplayer"
|
||||||
for_developers: "Voor ontwikkelaars"
|
for_developers: "Voor ontwikkelaars"
|
||||||
|
# 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."
|
||||||
|
|
||||||
play:
|
play:
|
||||||
choose_your_level: "Kies Je Level"
|
choose_your_level: "Kies Je Level"
|
||||||
|
|
|
@ -100,6 +100,12 @@ module.exports = nativeDescription: "Nederlands (Nederland)", englishDescription
|
||||||
for_beginners: "Voor Beginners"
|
for_beginners: "Voor Beginners"
|
||||||
multiplayer: "Multiplayer"
|
multiplayer: "Multiplayer"
|
||||||
for_developers: "Voor ontwikkelaars"
|
for_developers: "Voor ontwikkelaars"
|
||||||
|
# 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."
|
||||||
|
|
||||||
play:
|
play:
|
||||||
choose_your_level: "Kies Je Level"
|
choose_your_level: "Kies Je Level"
|
||||||
|
|
|
@ -100,6 +100,12 @@ module.exports = nativeDescription: "Nederlands", englishDescription: "Dutch", t
|
||||||
for_beginners: "Voor Beginners"
|
for_beginners: "Voor Beginners"
|
||||||
multiplayer: "Multiplayer"
|
multiplayer: "Multiplayer"
|
||||||
for_developers: "Voor ontwikkelaars"
|
for_developers: "Voor ontwikkelaars"
|
||||||
|
# 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."
|
||||||
|
|
||||||
play:
|
play:
|
||||||
choose_your_level: "Kies Je Level"
|
choose_your_level: "Kies Je Level"
|
||||||
|
|
|
@ -100,6 +100,12 @@ module.exports = nativeDescription: "Norwegian Nynorsk", englishDescription: "No
|
||||||
# for_beginners: "For Beginners"
|
# for_beginners: "For Beginners"
|
||||||
# multiplayer: "Multiplayer"
|
# multiplayer: "Multiplayer"
|
||||||
# for_developers: "For Developers"
|
# 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."
|
||||||
|
|
||||||
# play:
|
# play:
|
||||||
# choose_your_level: "Choose Your Level"
|
# choose_your_level: "Choose Your Level"
|
||||||
|
|
|
@ -100,6 +100,12 @@ module.exports = nativeDescription: "Norsk", englishDescription: "Norwegian", tr
|
||||||
# for_beginners: "For Beginners"
|
# for_beginners: "For Beginners"
|
||||||
# multiplayer: "Multiplayer"
|
# multiplayer: "Multiplayer"
|
||||||
# for_developers: "For Developers"
|
# 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."
|
||||||
|
|
||||||
play:
|
play:
|
||||||
choose_your_level: "Velg Ditt Nivå"
|
choose_your_level: "Velg Ditt Nivå"
|
||||||
|
|
|
@ -100,6 +100,12 @@ module.exports = nativeDescription: "język polski", englishDescription: "Polish
|
||||||
for_beginners: "Dla początkujących"
|
for_beginners: "Dla początkujących"
|
||||||
# multiplayer: "Multiplayer"
|
# multiplayer: "Multiplayer"
|
||||||
for_developers: "Dla developerów"
|
for_developers: "Dla developerów"
|
||||||
|
# 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."
|
||||||
|
|
||||||
play:
|
play:
|
||||||
choose_your_level: "Wybierz poziom"
|
choose_your_level: "Wybierz poziom"
|
||||||
|
|
|
@ -100,6 +100,12 @@ module.exports = nativeDescription: "português do Brasil", englishDescription:
|
||||||
for_beginners: "Para Iniciantes"
|
for_beginners: "Para Iniciantes"
|
||||||
multiplayer: "Multijogador"
|
multiplayer: "Multijogador"
|
||||||
for_developers: "Para Desenvolvedores"
|
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."
|
||||||
|
# coffeescript_blurb: "Nicer JavaScript syntax."
|
||||||
|
# clojure_blurb: "A modern Lisp."
|
||||||
|
# lua_blurb: "Game scripting language."
|
||||||
|
# io_blurb: "Simple but obscure."
|
||||||
|
|
||||||
play:
|
play:
|
||||||
choose_your_level: "Escolha seu estágio"
|
choose_your_level: "Escolha seu estágio"
|
||||||
|
|
|
@ -100,6 +100,12 @@ module.exports = nativeDescription: "Português (Portugal)", englishDescription:
|
||||||
for_beginners: "Para Iniciantes"
|
for_beginners: "Para Iniciantes"
|
||||||
multiplayer: "Multijogador"
|
multiplayer: "Multijogador"
|
||||||
for_developers: "Para Programadores"
|
for_developers: "Para Programadores"
|
||||||
|
# javascript_blurb: "A linguagem da web. Ótima para escrever websites, aplicações da web, jogos HTML5 e servidores."
|
||||||
|
# python_blurb: "Simples mas poderoso, o Python é uma linguagem de programação ótima para propósitos gerais."
|
||||||
|
# coffeescript_blurb: "Sintaxe do Javascript mais agradável."
|
||||||
|
# clojure_blurb: "Um Lisp moderno"
|
||||||
|
# lua_blurb: "Linguagem para scripts de jogos"
|
||||||
|
# io_blurb: "Simples mas obscuro"
|
||||||
|
|
||||||
play:
|
play:
|
||||||
choose_your_level: "Escolha o Seu Nível"
|
choose_your_level: "Escolha o Seu Nível"
|
||||||
|
@ -186,7 +192,7 @@ module.exports = nativeDescription: "Português (Portugal)", englishDescription:
|
||||||
error_saving: "Erro ao Guardar"
|
error_saving: "Erro ao Guardar"
|
||||||
saved: "Alterações Guardadas"
|
saved: "Alterações Guardadas"
|
||||||
password_mismatch: "As palavras-passe não coincidem."
|
password_mismatch: "As palavras-passe não coincidem."
|
||||||
# password_repeat: "Please repeat your password."
|
password_repeat: "Por favor repita a sua palavra-passe."
|
||||||
job_profile: "Perfil de Emprego"
|
job_profile: "Perfil de Emprego"
|
||||||
job_profile_approved: "O seu perfil de emprego foi aprovado pelo CodeCombat. Os empregadores poderão vê-lo até que o defina como inativo ou não o tenha alterado à 4 semanas."
|
job_profile_approved: "O seu perfil de emprego foi aprovado pelo CodeCombat. Os empregadores poderão vê-lo até que o defina como inativo ou não o tenha alterado à 4 semanas."
|
||||||
job_profile_explanation: "Olá! Preencha isto e entraremos em contacto consigo sobre encontrar um emprego de desenvolvedor de software para si."
|
job_profile_explanation: "Olá! Preencha isto e entraremos em contacto consigo sobre encontrar um emprego de desenvolvedor de software para si."
|
||||||
|
@ -327,7 +333,7 @@ module.exports = nativeDescription: "Português (Portugal)", englishDescription:
|
||||||
# pass_screen_blurb: "Review each candidate's code before reaching out. One employer found that 5x as many of our devs passed their technical screen than hiring from Hacker News."
|
# pass_screen_blurb: "Review each candidate's code before reaching out. One employer found that 5x as many of our devs passed their technical screen than hiring from Hacker News."
|
||||||
# make_hiring_easier: "Make my hiring easier, please."
|
# make_hiring_easier: "Make my hiring easier, please."
|
||||||
what: "O que é o CodeCombat?"
|
what: "O que é o CodeCombat?"
|
||||||
what_blurb: "O CodeCombat é um jogo de programação, no navegador e multijogador. Os jogadores escrevem código para controlar as forças deles em batalha contra outros desenvolvedores. Nós suportamos JavaScript, Python, Lua, Clojure, CoffeeScript e Io."
|
what_blurb: "O CodeCombat é um jogo de programação, no navegador e multijogador. Os jogadores escrevem código para controlar as forças deles em batalha contra outros desenvolvedores. Os nossos jogadores têm experiência com todos os conceitos tecnológicos principais."
|
||||||
cost: "Quanto é que cobramos?"
|
cost: "Quanto é que cobramos?"
|
||||||
cost_blurb: "Cobramos 15% do salário do primeiro ano e ofereçemos uma garantia de devolução de 100% do dinheiro durante 90 dias. Não cobramos por candidatos que já estejam a ser ativamente entrevistados na sua companhia."
|
cost_blurb: "Cobramos 15% do salário do primeiro ano e ofereçemos uma garantia de devolução de 100% do dinheiro durante 90 dias. Não cobramos por candidatos que já estejam a ser ativamente entrevistados na sua companhia."
|
||||||
candidate_name: "Nome"
|
candidate_name: "Nome"
|
||||||
|
@ -503,13 +509,13 @@ module.exports = nativeDescription: "Português (Portugal)", englishDescription:
|
||||||
pick_a_terrain: "Escolha Um Terreno"
|
pick_a_terrain: "Escolha Um Terreno"
|
||||||
small: "Pequeno"
|
small: "Pequeno"
|
||||||
grassy: "Com Relva"
|
grassy: "Com Relva"
|
||||||
# fork_title: "Fork New Version"
|
fork_title: "Bifurcar Nova Versão"
|
||||||
# fork_creating: "Creating Fork..."
|
fork_creating: "A Criar Bifurcação..."
|
||||||
# randomize: "Randomize"
|
# randomize: "Randomize"
|
||||||
# more: "More"
|
more: "Mais"
|
||||||
# wiki: "Wiki"
|
wiki: "Wiki"
|
||||||
# live_chat: "Live Chat"
|
live_chat: "Chat Ao Vivo"
|
||||||
level_some_options: "Algumas opções?"
|
level_some_options: "Algumas Opções?"
|
||||||
level_tab_thangs: "Thangs"
|
level_tab_thangs: "Thangs"
|
||||||
level_tab_scripts: "Scripts"
|
level_tab_scripts: "Scripts"
|
||||||
level_tab_settings: "Configurações"
|
level_tab_settings: "Configurações"
|
||||||
|
@ -522,19 +528,19 @@ module.exports = nativeDescription: "Português (Portugal)", englishDescription:
|
||||||
# delete: "Delete"
|
# delete: "Delete"
|
||||||
# duplicate: "Duplicate"
|
# duplicate: "Duplicate"
|
||||||
level_settings_title: "Configurações"
|
level_settings_title: "Configurações"
|
||||||
level_component_tab_title: "Componentes atuais"
|
level_component_tab_title: "Componentes Atuais"
|
||||||
level_component_btn_new: "Cria um novo Componente"
|
level_component_btn_new: "Criar Novo Componente"
|
||||||
level_systems_tab_title: "Sistemas atuais"
|
level_systems_tab_title: "Sistemas Atuais"
|
||||||
level_systems_btn_new: "Cria um novo Sistema"
|
level_systems_btn_new: "Cria Novo Sistema"
|
||||||
level_systems_btn_add: "Adiciona um Sistema"
|
level_systems_btn_add: "Adicionar Sistema"
|
||||||
level_components_title: "Voltar para Todos os Thangs"
|
level_components_title: "Voltar para Todos os Thangs"
|
||||||
level_components_type: "Tipo"
|
level_components_type: "Tipo"
|
||||||
level_component_edit_title: "Editar Componente"
|
level_component_edit_title: "Editar Componente"
|
||||||
# level_component_config_schema: "Config Schema"
|
# level_component_config_schema: "Config Schema"
|
||||||
level_component_settings: "Configurações"
|
level_component_settings: "Configurações"
|
||||||
level_system_edit_title: "Editar Sistema"
|
level_system_edit_title: "Editar Sistema"
|
||||||
create_system_title: "Criar novo Sistema"
|
create_system_title: "Criar Novo Sistema"
|
||||||
new_component_title: "Criar novo Componente"
|
new_component_title: "Criar Novo Componente"
|
||||||
new_component_field_system: "Sistema"
|
new_component_field_system: "Sistema"
|
||||||
new_article_title: "Criar um Novo Artigo"
|
new_article_title: "Criar um Novo Artigo"
|
||||||
new_thang_title: "Criar um Novo Tipo de Thang"
|
new_thang_title: "Criar um Novo Tipo de Thang"
|
||||||
|
@ -559,20 +565,20 @@ module.exports = nativeDescription: "Português (Portugal)", englishDescription:
|
||||||
name: "Nome"
|
name: "Nome"
|
||||||
body: "Corpo"
|
body: "Corpo"
|
||||||
version: "Versão"
|
version: "Versão"
|
||||||
commit_msg: "Mensagem de Commit"
|
commit_msg: "Enviar Mensagem"
|
||||||
# version_history: "Version History"
|
version_history: "Histórico de Versões"
|
||||||
version_history_for: "Histórico de versões por: "
|
version_history_for: "Histórico de Versões para: "
|
||||||
result: "Resultado"
|
result: "Resultado"
|
||||||
results: "Resultados"
|
results: "Resultados"
|
||||||
description: "Descrição"
|
description: "Descrição"
|
||||||
or: "ou"
|
or: "ou"
|
||||||
# subject: "Subject"
|
subject: "Assunto"
|
||||||
email: "E-mail"
|
email: "E-mail"
|
||||||
password: "Palavra-passe"
|
password: "Palavra-passe"
|
||||||
message: "Mensagem"
|
message: "Mensagem"
|
||||||
code: "Código"
|
code: "Código"
|
||||||
ladder: "Classificação"
|
ladder: "Classificação"
|
||||||
when: "quando"
|
when: "Quando"
|
||||||
opponent: "Adversário"
|
opponent: "Adversário"
|
||||||
rank: "Classificação"
|
rank: "Classificação"
|
||||||
score: "Resultado"
|
score: "Resultado"
|
||||||
|
@ -768,17 +774,17 @@ module.exports = nativeDescription: "Português (Portugal)", englishDescription:
|
||||||
ambassador_title_description: "(Suporte)"
|
ambassador_title_description: "(Suporte)"
|
||||||
|
|
||||||
ladder:
|
ladder:
|
||||||
please_login: "Por favor, faz log in antes de jogar um jogo para o campeonato."
|
please_login: "Por favor inicie sessão antes de jogar um jogo do campeonato."
|
||||||
my_matches: "Os meus jogos"
|
my_matches: "Os Meus Jogos"
|
||||||
simulate: "Simular"
|
simulate: "Simular"
|
||||||
simulation_explanation: "Simulando jogos podes fazer com que o teu jogo seja classificado mais rapidamente!"
|
simulation_explanation: "Ao simular jogos pode ter o seu jogo classificado mais rapidamente!"
|
||||||
simulate_games: "Simular Jogos!"
|
simulate_games: "Simular Jogos!"
|
||||||
# simulate_all: "RESET AND SIMULATE GAMES"
|
# simulate_all: "RESET AND SIMULATE GAMES"
|
||||||
# games_simulated_by: "Games simulated by you:"
|
games_simulated_by: "Jogos simulados por si:"
|
||||||
# games_simulated_for: "Games simulated for you:"
|
games_simulated_for: "Jogos simulados para si:"
|
||||||
# games_simulated: "Games simulated"
|
games_simulated: "Jogos simulados"
|
||||||
# games_played: "Games played"
|
games_played: "Jogos jogados"
|
||||||
# ratio: "Ratio"
|
ratio: "Rácio"
|
||||||
leaderboard: "Tabela de Classificação"
|
leaderboard: "Tabela de Classificação"
|
||||||
battle_as: "Lutar como "
|
battle_as: "Lutar como "
|
||||||
summary_your: "As tuas "
|
summary_your: "As tuas "
|
||||||
|
@ -868,29 +874,29 @@ module.exports = nativeDescription: "Português (Portugal)", englishDescription:
|
||||||
# server_error: "Server error."
|
# server_error: "Server error."
|
||||||
# unknown: "Unknown error."
|
# unknown: "Unknown error."
|
||||||
|
|
||||||
# resources:
|
resources:
|
||||||
# your_sessions: "Your Sessions"
|
your_sessions: "As Suas Sessões"
|
||||||
# level: "Level"
|
level: "Nível"
|
||||||
# social_network_apis: "Social Network APIs"
|
# social_network_apis: "Social Network APIs"
|
||||||
# facebook_status: "Facebook Status"
|
# facebook_status: "Facebook Status"
|
||||||
# facebook_friends: "Facebook Friends"
|
facebook_friends: "Amigos do Facebook"
|
||||||
# facebook_friend_sessions: "Facebook Friend Sessions"
|
# facebook_friend_sessions: "Facebook Friend Sessions"
|
||||||
# gplus_friends: "G+ Friends"
|
gplus_friends: "Amigos do Google+"
|
||||||
# gplus_friend_sessions: "G+ Friend Sessions"
|
# gplus_friend_sessions: "G+ Friend Sessions"
|
||||||
# leaderboard: "Leaderboard"
|
leaderboard: "Tabela de Classificação"
|
||||||
# user_schema: "User Schema"
|
# user_schema: "User Schema"
|
||||||
# user_profile: "User Profile"
|
# user_profile: "User Profile"
|
||||||
# patches: "Patches"
|
# patches: "Patches"
|
||||||
# patched_model: "Source Document"
|
# patched_model: "Source Document"
|
||||||
# model: "Model"
|
# model: "Model"
|
||||||
# system: "System"
|
system: "Sistema"
|
||||||
# component: "Component"
|
component: "Componente"
|
||||||
# components: "Components"
|
components: "Componentes"
|
||||||
# thang: "Thang"
|
thang: "Thang"
|
||||||
# thangs: "Thangs"
|
thangs: "Thangs"
|
||||||
# level_session: "Your Session"
|
level_session: "A Sua Sessão"
|
||||||
# opponent_session: "Opponent Session"
|
opponent_session: "Sessão Do Oponente"
|
||||||
# article: "Article"
|
article: "Artigo"
|
||||||
# user_names: "User Names"
|
# user_names: "User Names"
|
||||||
# thang_names: "Thang Names"
|
# thang_names: "Thang Names"
|
||||||
# files: "Files"
|
# files: "Files"
|
||||||
|
@ -900,7 +906,7 @@ module.exports = nativeDescription: "Português (Portugal)", englishDescription:
|
||||||
# sprite_sheet: "Sprite Sheet"
|
# sprite_sheet: "Sprite Sheet"
|
||||||
# candidate_sessions: "Candidate Sessions"
|
# candidate_sessions: "Candidate Sessions"
|
||||||
# user_remark: "User Remark"
|
# user_remark: "User Remark"
|
||||||
# versions: "Versions"
|
versions: "Versões"
|
||||||
|
|
||||||
# delta:
|
# delta:
|
||||||
# added: "Added"
|
# added: "Added"
|
||||||
|
|
|
@ -100,6 +100,12 @@ module.exports = nativeDescription: "português", englishDescription: "Portugues
|
||||||
# for_beginners: "For Beginners"
|
# for_beginners: "For Beginners"
|
||||||
# multiplayer: "Multiplayer"
|
# multiplayer: "Multiplayer"
|
||||||
# for_developers: "For Developers"
|
# 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."
|
||||||
|
|
||||||
play:
|
play:
|
||||||
choose_your_level: "Escolha seu estágio"
|
choose_your_level: "Escolha seu estágio"
|
||||||
|
|
|
@ -100,6 +100,12 @@ module.exports = nativeDescription: "limba română", englishDescription: "Roman
|
||||||
for_beginners: "Pentru Începători"
|
for_beginners: "Pentru Începători"
|
||||||
multiplayer: "Multiplayer"
|
multiplayer: "Multiplayer"
|
||||||
for_developers: "Pentru dezvoltatori"
|
for_developers: "Pentru dezvoltatori"
|
||||||
|
# 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."
|
||||||
|
|
||||||
play:
|
play:
|
||||||
choose_your_level: "Alege nivelul"
|
choose_your_level: "Alege nivelul"
|
||||||
|
|
|
@ -100,6 +100,12 @@ module.exports = nativeDescription: "русский", englishDescription: "Russi
|
||||||
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."
|
||||||
|
|
||||||
play:
|
play:
|
||||||
choose_your_level: "Выберите ваш уровень"
|
choose_your_level: "Выберите ваш уровень"
|
||||||
|
|
|
@ -100,6 +100,12 @@ module.exports = nativeDescription: "slovenčina", englishDescription: "Slovak",
|
||||||
for_beginners: "Pre začiatočníkov"
|
for_beginners: "Pre začiatočníkov"
|
||||||
# multiplayer: "Multiplayer"
|
# multiplayer: "Multiplayer"
|
||||||
for_developers: "Pre vývojárov"
|
for_developers: "Pre vývojárov"
|
||||||
|
# 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."
|
||||||
|
|
||||||
play:
|
play:
|
||||||
choose_your_level: "Vyber si úroveň"
|
choose_your_level: "Vyber si úroveň"
|
||||||
|
|
|
@ -100,6 +100,12 @@ module.exports = nativeDescription: "slovenščina", englishDescription: "Sloven
|
||||||
# for_beginners: "For Beginners"
|
# for_beginners: "For Beginners"
|
||||||
# multiplayer: "Multiplayer"
|
# multiplayer: "Multiplayer"
|
||||||
# for_developers: "For Developers"
|
# 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."
|
||||||
|
|
||||||
# play:
|
# play:
|
||||||
# choose_your_level: "Choose Your Level"
|
# choose_your_level: "Choose Your Level"
|
||||||
|
|
|
@ -100,6 +100,12 @@ module.exports = nativeDescription: "српски", englishDescription: "Serbian
|
||||||
# for_beginners: "For Beginners"
|
# for_beginners: "For Beginners"
|
||||||
# multiplayer: "Multiplayer"
|
# multiplayer: "Multiplayer"
|
||||||
# for_developers: "For Developers"
|
# 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."
|
||||||
|
|
||||||
play:
|
play:
|
||||||
choose_your_level: "Изабери ниво"
|
choose_your_level: "Изабери ниво"
|
||||||
|
|
|
@ -100,6 +100,12 @@ module.exports = nativeDescription: "Svenska", englishDescription: "Swedish", tr
|
||||||
for_beginners: "För nybörjare"
|
for_beginners: "För nybörjare"
|
||||||
multiplayer: "Flera spelare"
|
multiplayer: "Flera spelare"
|
||||||
for_developers: "För utvecklare"
|
for_developers: "För utvecklare"
|
||||||
|
# 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."
|
||||||
|
|
||||||
play:
|
play:
|
||||||
choose_your_level: "Välj din nivå"
|
choose_your_level: "Välj din nivå"
|
||||||
|
|
|
@ -100,6 +100,12 @@ module.exports = nativeDescription: "ไทย", englishDescription: "Thai", tra
|
||||||
# for_beginners: "For Beginners"
|
# for_beginners: "For Beginners"
|
||||||
# multiplayer: "Multiplayer"
|
# multiplayer: "Multiplayer"
|
||||||
# for_developers: "For Developers"
|
# 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."
|
||||||
|
|
||||||
# play:
|
# play:
|
||||||
# choose_your_level: "Choose Your Level"
|
# choose_your_level: "Choose Your Level"
|
||||||
|
|
|
@ -100,6 +100,12 @@ module.exports = nativeDescription: "Türkçe", englishDescription: "Turkish", t
|
||||||
for_beginners: "Yeni Başlayanlar için"
|
for_beginners: "Yeni Başlayanlar için"
|
||||||
multiplayer: "Çoklu-oyuncu Modu"
|
multiplayer: "Çoklu-oyuncu Modu"
|
||||||
for_developers: "Geliştiriciler için"
|
for_developers: "Geliştiriciler için"
|
||||||
|
# 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."
|
||||||
|
|
||||||
play:
|
play:
|
||||||
choose_your_level: "Seviye Seçimi"
|
choose_your_level: "Seviye Seçimi"
|
||||||
|
|
|
@ -100,6 +100,12 @@ module.exports = nativeDescription: "українська мова", englishDesc
|
||||||
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."
|
||||||
|
|
||||||
play:
|
play:
|
||||||
choose_your_level: "Оберіть свій рівень"
|
choose_your_level: "Оберіть свій рівень"
|
||||||
|
|
|
@ -100,6 +100,12 @@ module.exports = nativeDescription: "اُردُو", englishDescription: "Urdu",
|
||||||
# for_beginners: "For Beginners"
|
# for_beginners: "For Beginners"
|
||||||
# multiplayer: "Multiplayer"
|
# multiplayer: "Multiplayer"
|
||||||
# for_developers: "For Developers"
|
# 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."
|
||||||
|
|
||||||
# play:
|
# play:
|
||||||
# choose_your_level: "Choose Your Level"
|
# choose_your_level: "Choose Your Level"
|
||||||
|
|
|
@ -100,6 +100,12 @@ module.exports = nativeDescription: "Tiếng Việt", englishDescription: "Vietn
|
||||||
# for_beginners: "For Beginners"
|
# for_beginners: "For Beginners"
|
||||||
# multiplayer: "Multiplayer"
|
# multiplayer: "Multiplayer"
|
||||||
# for_developers: "For Developers"
|
# 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."
|
||||||
|
|
||||||
play:
|
play:
|
||||||
choose_your_level: "Chọn Trình của bạn"
|
choose_your_level: "Chọn Trình của bạn"
|
||||||
|
|
|
@ -100,6 +100,12 @@ module.exports = nativeDescription: "简体中文", englishDescription: "Chinese
|
||||||
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."
|
||||||
|
|
||||||
play:
|
play:
|
||||||
choose_your_level: "选择关卡"
|
choose_your_level: "选择关卡"
|
||||||
|
|
|
@ -100,6 +100,12 @@ module.exports = nativeDescription: "繁体中文", englishDescription: "Chinese
|
||||||
# for_beginners: "For Beginners"
|
# for_beginners: "For Beginners"
|
||||||
# multiplayer: "Multiplayer"
|
# multiplayer: "Multiplayer"
|
||||||
# for_developers: "For Developers"
|
# 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."
|
||||||
|
|
||||||
play:
|
play:
|
||||||
choose_your_level: "選取關卡"
|
choose_your_level: "選取關卡"
|
||||||
|
|
|
@ -100,6 +100,12 @@ module.exports = nativeDescription: "吴语", englishDescription: "Wuu (Simplifi
|
||||||
# for_beginners: "For Beginners"
|
# for_beginners: "For Beginners"
|
||||||
# multiplayer: "Multiplayer"
|
# multiplayer: "Multiplayer"
|
||||||
# for_developers: "For Developers"
|
# 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."
|
||||||
|
|
||||||
# play:
|
# play:
|
||||||
# choose_your_level: "Choose Your Level"
|
# choose_your_level: "Choose Your Level"
|
||||||
|
|
|
@ -100,6 +100,12 @@ module.exports = nativeDescription: "吳語", englishDescription: "Wuu (Traditio
|
||||||
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."
|
||||||
|
|
||||||
play:
|
play:
|
||||||
choose_your_level: "揀關數"
|
choose_your_level: "揀關數"
|
||||||
|
|
|
@ -100,6 +100,12 @@ module.exports = nativeDescription: "中文", englishDescription: "Chinese", tra
|
||||||
# for_beginners: "For Beginners"
|
# for_beginners: "For Beginners"
|
||||||
# multiplayer: "Multiplayer"
|
# multiplayer: "Multiplayer"
|
||||||
# for_developers: "For Developers"
|
# 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."
|
||||||
|
|
||||||
play:
|
play:
|
||||||
choose_your_level: "选取难度"
|
choose_your_level: "选取难度"
|
||||||
|
|
|
@ -15,8 +15,11 @@
|
||||||
.doc-name
|
.doc-name
|
||||||
color: rgb(139, 69, 19)
|
color: rgb(139, 69, 19)
|
||||||
|
|
||||||
|
.index-column
|
||||||
|
width: 25%
|
||||||
|
|
||||||
.documentation-column
|
.documentation-column
|
||||||
|
width: 75%
|
||||||
|
|
||||||
.specialList
|
.specialList
|
||||||
list-style-type: none
|
list-style-type: none
|
||||||
|
|
|
@ -167,6 +167,10 @@
|
||||||
h2
|
h2
|
||||||
margin: 15px 0 5px
|
margin: 15px 0 5px
|
||||||
|
|
||||||
|
p
|
||||||
|
overflow: hidden
|
||||||
|
height: 40px
|
||||||
|
|
||||||
.secondary-code-languages
|
.secondary-code-languages
|
||||||
margin-left: -10px
|
margin-left: -10px
|
||||||
|
|
||||||
|
@ -201,17 +205,22 @@
|
||||||
margin: 0
|
margin: 0
|
||||||
padding: 0
|
padding: 0
|
||||||
|
|
||||||
|
p
|
||||||
|
white-space: nowrap
|
||||||
|
text-overflow: ellipsis
|
||||||
|
overflow: hidden
|
||||||
|
|
||||||
#coffeescript .code-language-logo
|
#coffeescript .code-language-logo
|
||||||
background: transparent url(/images/pages/home/language_logo_coffeescript.png) no-repeat center
|
background: transparent url(/images/common/code_languages/coffeescript_small.png) no-repeat center
|
||||||
|
|
||||||
#clojure .code-language-logo
|
#clojure .code-language-logo
|
||||||
background: transparent url(/images/pages/home/language_logo_clojure.png) no-repeat center
|
background: transparent url(/images/common/code_languages/clojure_small.png) no-repeat center
|
||||||
|
|
||||||
#lua .code-language-logo
|
#lua .code-language-logo
|
||||||
background: transparent url(/images/pages/home/language_logo_lua.png) no-repeat center
|
background: transparent url(/images/common/code_languages/lua_small.png) no-repeat center
|
||||||
|
|
||||||
#io .code-language-logo
|
#io .code-language-logo
|
||||||
background: transparent url(/images/pages/home/language_logo_io.png) no-repeat center
|
background: transparent url(/images/common/code_languages/io_small.png) no-repeat center
|
||||||
|
|
||||||
|
|
||||||
#multiplayer-launch-modal
|
#multiplayer-launch-modal
|
||||||
|
|
|
@ -53,6 +53,5 @@
|
||||||
|
|
||||||
.code-language-cell
|
.code-language-cell
|
||||||
padding: 0 10px
|
padding: 0 10px
|
||||||
background: transparent url(/images/pages/home/language_logo_javascript.png) no-repeat center center
|
background: transparent url(/images/common/code_languages/javascript_icon.png) no-repeat center center
|
||||||
background-size: contain
|
height: 16px
|
||||||
height: 19px
|
|
||||||
|
|
|
@ -40,6 +40,5 @@
|
||||||
|
|
||||||
.code-language-cell
|
.code-language-cell
|
||||||
padding: 0 10px
|
padding: 0 10px
|
||||||
background: transparent url(/images/pages/home/language_logo_javascript.png) no-repeat center center
|
background: transparent url(/images/common/code_languages/javascript_icon.png) no-repeat center center
|
||||||
background-size: contain
|
height: 16px
|
||||||
height: 19px
|
|
||||||
|
|
|
@ -98,12 +98,12 @@
|
||||||
|
|
||||||
.code-language
|
.code-language
|
||||||
position: absolute
|
position: absolute
|
||||||
background: transparent url(/images/pages/home/language_logo_javascript.png) no-repeat center center
|
background: transparent url(/images/common/code_languages/javascript_small.png) no-repeat center center
|
||||||
background-size: contain
|
background-size: contain
|
||||||
width: 40px
|
width: 50px
|
||||||
height: 40px
|
height: 50px
|
||||||
right: -5px
|
right: -0px
|
||||||
top: -15px
|
top: -30px
|
||||||
display: block
|
display: block
|
||||||
|
|
||||||
.my-name
|
.my-name
|
||||||
|
|
|
@ -70,10 +70,10 @@
|
||||||
|
|
||||||
.code-language-logo
|
.code-language-logo
|
||||||
position: absolute
|
position: absolute
|
||||||
width: 20px
|
width: 16px
|
||||||
height: 20px
|
height: 16px
|
||||||
left: 12px
|
left: 16px
|
||||||
top: 34px
|
top: 36px
|
||||||
z-index: 10
|
z-index: 10
|
||||||
background-color: transparent
|
background-color: transparent
|
||||||
background-repeat: no-repeat
|
background-repeat: no-repeat
|
||||||
|
@ -81,21 +81,27 @@
|
||||||
cursor: pointer
|
cursor: pointer
|
||||||
|
|
||||||
&.javascript
|
&.javascript
|
||||||
background-image: url(/images/pages/home/language_logo_javascript.png)
|
background-image: url(/images/common/code_languages/javascript_icon.png)
|
||||||
&.python
|
&.python
|
||||||
background-image: url(/images/pages/home/language_logo_python.png)
|
background-image: url(/images/common/code_languages/python_icon.png)
|
||||||
&.coffeescript
|
&.coffeescript
|
||||||
background-image: url(/images/pages/home/language_logo_coffeescript.png)
|
background-image: url(/images/common/code_languages/coffeescript_icon.png)
|
||||||
&.clojure
|
&.clojure
|
||||||
background-image: url(/images/pages/home/language_logo_clojure.png)
|
background-image: url(/images/common/code_languages/clojure_icon.png)
|
||||||
&.lua
|
&.lua
|
||||||
background-image: url(/images/pages/home/language_logo_lua.png)
|
background-image: url(/images/common/code_languages/lua_icon.png)
|
||||||
&.io
|
&.io
|
||||||
background-image: url(/images/pages/home/language_logo_io.png)
|
background-image: url(/images/common/code_languages/io_icon.png)
|
||||||
|
|
||||||
|
&:hover
|
||||||
|
outline: 1px outset #ccc
|
||||||
|
|
||||||
|
&:active
|
||||||
|
outline: 1px inset #ccc
|
||||||
|
|
||||||
html.no-borderimage
|
html.no-borderimage
|
||||||
#spell-palette-view
|
#spell-palette-view
|
||||||
span.code-palette-background
|
span.code-palette-background
|
||||||
display: none
|
display: none
|
||||||
img.code-palette-background
|
img.code-palette-background
|
||||||
display: block
|
display: block
|
||||||
|
|
|
@ -26,8 +26,8 @@ block content
|
||||||
li(id="#{component.get('name')}#{doc.name}")
|
li(id="#{component.get('name')}#{doc.name}")
|
||||||
| #{doc.name}
|
| #{doc.name}
|
||||||
ul.specialList
|
ul.specialList
|
||||||
if doc.description[language.substring(1,language.length-1)]
|
if doc.description[language]
|
||||||
li!=marked(doc.description[language.substring(1,language.length-1)])
|
li!=marked(doc.description[language])
|
||||||
else
|
else
|
||||||
li!=marked(doc.description)
|
li!=marked(doc.description)
|
||||||
|
|
||||||
|
|
|
@ -10,14 +10,14 @@ block content
|
||||||
.code-language#javascript(data-code-language='javascript')
|
.code-language#javascript(data-code-language='javascript')
|
||||||
.code-wizard
|
.code-wizard
|
||||||
h2 JavaScript
|
h2 JavaScript
|
||||||
p The language of the web. Great for writing websites, web apps, HTML5 games, and servers.
|
p(data-i18n="home.javascript_blurb") The language of the web. Great for writing websites, web apps, HTML5 games, and servers.
|
||||||
|
|
||||||
.col-md-6
|
.col-md-6
|
||||||
.code-language.beta#python(data-code-language='python')
|
.code-language.beta#python(data-code-language='python')
|
||||||
.code-wizard
|
.code-wizard
|
||||||
.code-language-beta
|
.code-language-beta
|
||||||
h2 Python
|
h2 Python
|
||||||
p Simple yet powerful, Python is a great general purpose programming language.
|
p(data-i18n="home.python_blurb") Simple yet powerful, Python is a great general purpose programming language.
|
||||||
|
|
||||||
.secondary-code-languages.row
|
.secondary-code-languages.row
|
||||||
.col-md-3
|
.col-md-3
|
||||||
|
@ -26,7 +26,7 @@ block content
|
||||||
.code-wizard
|
.code-wizard
|
||||||
.code-language-beta
|
.code-language-beta
|
||||||
h3 CoffeeScript
|
h3 CoffeeScript
|
||||||
p Nicer JavaScript syntax
|
p(data-i18n="home.coffeescript_blurb") Nicer JavaScript syntax.
|
||||||
|
|
||||||
.col-md-3
|
.col-md-3
|
||||||
.code-language.beta#clojure(data-code-language='clojure')
|
.code-language.beta#clojure(data-code-language='clojure')
|
||||||
|
@ -34,7 +34,7 @@ block content
|
||||||
.code-wizard
|
.code-wizard
|
||||||
.code-language-beta
|
.code-language-beta
|
||||||
h3 Clojure
|
h3 Clojure
|
||||||
p A modern Lisp
|
p(data-i18n="home.clojure_blurb") A modern Lisp.
|
||||||
|
|
||||||
.col-md-3
|
.col-md-3
|
||||||
.code-language.beta#lua(data-code-language='lua')
|
.code-language.beta#lua(data-code-language='lua')
|
||||||
|
@ -42,7 +42,7 @@ block content
|
||||||
.code-wizard
|
.code-wizard
|
||||||
.code-language-beta
|
.code-language-beta
|
||||||
h3 Lua
|
h3 Lua
|
||||||
p Game scripting language
|
p(data-i18n="home.lua_blurb") Game scripting language.
|
||||||
|
|
||||||
.col-md-3
|
.col-md-3
|
||||||
.code-language.beta#io(data-code-language='io', title="Careful: Io is still quite buggy")
|
.code-language.beta#io(data-code-language='io', title="Careful: Io is still quite buggy")
|
||||||
|
@ -50,7 +50,7 @@ block content
|
||||||
.code-wizard
|
.code-wizard
|
||||||
.code-language-beta
|
.code-language-beta
|
||||||
h3 Io
|
h3 Io
|
||||||
p Simple but obscure
|
p(data-i18n="home.io_blurb") Simple but obscure.
|
||||||
|
|
||||||
.alert.alert-danger.lt-ie10
|
.alert.alert-danger.lt-ie10
|
||||||
strong(data-i18n="home.no_ie") CodeCombat does not run in Internet Explorer 9 or older. Sorry!
|
strong(data-i18n="home.no_ie") CodeCombat does not run in Internet Explorer 9 or older. Sorry!
|
||||||
|
|
|
@ -21,7 +21,7 @@ div#columns.row
|
||||||
for session, rank in topSessions
|
for session, rank in topSessions
|
||||||
- var myRow = session.get('creator') == me.id
|
- var myRow = session.get('creator') == me.id
|
||||||
tr(class=myRow ? "success" : "", data-player-id=session.get('creator'), data-session-id=session.id)
|
tr(class=myRow ? "success" : "", data-player-id=session.get('creator'), data-session-id=session.id)
|
||||||
td.code-language-cell(style="background-image: url(/images/pages/home/language_logo_" + session.get('submittedCodeLanguage') + ".png)")
|
td.code-language-cell(style="background-image: url(/images/common/code_languages/" + session.get('submittedCodeLanguage') + "_icon.png)")
|
||||||
td.rank-cell= rank + 1
|
td.rank-cell= rank + 1
|
||||||
td.score-cell= Math.round(session.get('totalScore') * 100)
|
td.score-cell= Math.round(session.get('totalScore') * 100)
|
||||||
td.name-col-cell= session.get('creatorName') || "Anonymous"
|
td.name-col-cell= session.get('creatorName') || "Anonymous"
|
||||||
|
@ -35,7 +35,7 @@ div#columns.row
|
||||||
for session in team.leaderboard.nearbySessions()
|
for session in team.leaderboard.nearbySessions()
|
||||||
- var myRow = session.get('creator') == me.id
|
- var myRow = session.get('creator') == me.id
|
||||||
tr(class=myRow ? "success" : "", data-player-id=session.get('creator'), data-session-id=session.id)
|
tr(class=myRow ? "success" : "", data-player-id=session.get('creator'), data-session-id=session.id)
|
||||||
td.code-language-cell(style="background-image: url(/images/pages/home/language_logo_" + session.get('submittedCodeLanguage') + ".png)")
|
td.code-language-cell(style="background-image: url(/images/common/code_languages/" + session.get('submittedCodeLanguage') + "_icon.png)")
|
||||||
td.rank-cell= session.rank
|
td.rank-cell= session.rank
|
||||||
td.score-cell= Math.round(session.get('totalScore') * 100)
|
td.score-cell= Math.round(session.get('totalScore') * 100)
|
||||||
td.name-col-cell= session.get('creatorName') || "Anonymous"
|
td.name-col-cell= session.get('creatorName') || "Anonymous"
|
||||||
|
|
|
@ -39,7 +39,7 @@ div#columns.row
|
||||||
span(data-i18n="general.loss").loss Loss
|
span(data-i18n="general.loss").loss Loss
|
||||||
if match.state === 'tie'
|
if match.state === 'tie'
|
||||||
span(data-i18n="general.tie").tie Tie
|
span(data-i18n="general.tie").tie Tie
|
||||||
td.code-language-cell(style="background-image: url(/images/pages/home/language_logo_" + match.codeLanguage + ".png)")
|
td.code-language-cell(style="background-image: url(/images/common/code_languages/" + match.codeLanguage + "_icon.png)")
|
||||||
td.name-cell= match.opponentName || "Anonymous"
|
td.name-cell= match.opponentName || "Anonymous"
|
||||||
td.time-cell= match.when
|
td.time-cell= match.when
|
||||||
td.battle-cell
|
td.battle-cell
|
||||||
|
|
|
@ -33,7 +33,7 @@ block modal-body-content
|
||||||
span= myName
|
span= myName
|
||||||
div.opponent-name.name-label
|
div.opponent-name.name-label
|
||||||
span(data-i18n="ladder.simple_ai") Simple AI
|
span(data-i18n="ladder.simple_ai") Simple AI
|
||||||
//span.code-language(style="background-image: url(/images/pages/home/language_logo_javascript.png)")
|
//span.code-language(style="background-image: url(/images/common/code_languages/javascript_small.png)")
|
||||||
div.difficulty
|
div.difficulty
|
||||||
span(data-i18n="ladder.warmup") Warmup
|
span(data-i18n="ladder.warmup") Warmup
|
||||||
div(data-i18n="ladder.vs").vs VS
|
div(data-i18n="ladder.vs").vs VS
|
||||||
|
@ -50,7 +50,7 @@ block modal-body-content
|
||||||
div.opponent-name.name-label
|
div.opponent-name.name-label
|
||||||
span= challengers.easy.opponentName
|
span= challengers.easy.opponentName
|
||||||
if challengers.easy.codeLanguage
|
if challengers.easy.codeLanguage
|
||||||
span.code-language(style="background-image: url(/images/pages/home/language_logo_" + challengers.easy.codeLanguage + ".png)")
|
span.code-language(style="background-image: url(/images/common/code_languages/" + challengers.easy.codeLanguage + "_small.png)")
|
||||||
div.difficulty
|
div.difficulty
|
||||||
span(data-i18n="general.easy") Easy
|
span(data-i18n="general.easy") Easy
|
||||||
div(data-i18n="ladder.vs").vs VS
|
div(data-i18n="ladder.vs").vs VS
|
||||||
|
@ -67,7 +67,7 @@ block modal-body-content
|
||||||
div.opponent-name.name-label
|
div.opponent-name.name-label
|
||||||
span= challengers.medium.opponentName
|
span= challengers.medium.opponentName
|
||||||
if challengers.medium.codeLanguage
|
if challengers.medium.codeLanguage
|
||||||
span.code-language(style="background-image: url(/images/pages/home/language_logo_" + challengers.medium.codeLanguage + ".png)")
|
span.code-language(style="background-image: url(/images/common/code_languages/" + challengers.medium.codeLanguage + "_small.png)")
|
||||||
div.difficulty
|
div.difficulty
|
||||||
span(data-i18n="general.medium") Medium
|
span(data-i18n="general.medium") Medium
|
||||||
div(data-i18n="ladder.vs").vs VS
|
div(data-i18n="ladder.vs").vs VS
|
||||||
|
@ -84,7 +84,7 @@ block modal-body-content
|
||||||
div.opponent-name.name-label
|
div.opponent-name.name-label
|
||||||
span= challengers.hard.opponentName
|
span= challengers.hard.opponentName
|
||||||
if challengers.hard.codeLanguage
|
if challengers.hard.codeLanguage
|
||||||
span.code-language(style="background-image: url(/images/pages/home/language_logo_" + challengers.hard.codeLanguage + ".png)")
|
span.code-language(style="background-image: url(/images/common/code_languages/" + challengers.hard.codeLanguage + "_small.png)")
|
||||||
div.difficulty
|
div.difficulty
|
||||||
span(data-i18n="general.hard") Hard
|
span(data-i18n="general.hard") Hard
|
||||||
div(data-i18n="ladder.vs").vs VS
|
div(data-i18n="ladder.vs").vs VS
|
||||||
|
|
|
@ -34,5 +34,5 @@ module.exports = class UnnamedView extends RootView
|
||||||
if (me.get('aceConfig')?.language?) is false
|
if (me.get('aceConfig')?.language?) is false
|
||||||
c.language = 'javascript'
|
c.language = 'javascript'
|
||||||
else
|
else
|
||||||
c.language = JSON.stringify(me.get('aceConfig').language)
|
c.language = me.get('aceConfig').language
|
||||||
c
|
c
|
||||||
|
|
|
@ -40,7 +40,7 @@ module.exports = class EditorLevelView extends View
|
||||||
constructor: (options, @levelID) ->
|
constructor: (options, @levelID) ->
|
||||||
super options
|
super options
|
||||||
@supermodel.shouldSaveBackups = (model) ->
|
@supermodel.shouldSaveBackups = (model) ->
|
||||||
model.constructor.className in ['Level', 'LevelComponent', 'LevelSystem']
|
model.constructor.className in ['Level', 'LevelComponent', 'LevelSystem', 'ThangType']
|
||||||
@levelLoader = new LevelLoader supermodel: @supermodel, levelID: @levelID, headless: true, editorMode: true
|
@levelLoader = new LevelLoader supermodel: @supermodel, levelID: @levelID, headless: true, editorMode: true
|
||||||
@level = @levelLoader.level
|
@level = @levelLoader.level
|
||||||
@files = new DocumentFiles(@levelLoader.level)
|
@files = new DocumentFiles(@levelLoader.level)
|
||||||
|
|
|
@ -52,7 +52,7 @@ module.exports = class HomeView extends View
|
||||||
@updateLanguageLogos codeLanguage
|
@updateLanguageLogos codeLanguage
|
||||||
|
|
||||||
updateLanguageLogos: (codeLanguage) ->
|
updateLanguageLogos: (codeLanguage) ->
|
||||||
@$el.find('.game-mode-wrapper .code-language-logo').css('background-image', "url(/images/pages/home/language_logo_#{codeLanguage}.png)").toggleClass 'inverted', (codeLanguage in ['io', 'coffeescript'])
|
@$el.find('.game-mode-wrapper .code-language-logo').css('background-image', "url(/images/common/code_languages/#{codeLanguage}_small.png)").toggleClass 'inverted', (codeLanguage in ['io', 'coffeescript'])
|
||||||
|
|
||||||
onCodeLanguageSelected: (e) ->
|
onCodeLanguageSelected: (e) ->
|
||||||
target = $(e.target).closest('.code-language')
|
target = $(e.target).closest('.code-language')
|
||||||
|
|
|
@ -84,8 +84,9 @@ module.exports = class PlayLevelView extends View
|
||||||
@saveScreenshot = _.throttle @saveScreenshot, 30000
|
@saveScreenshot = _.throttle @saveScreenshot, 30000
|
||||||
|
|
||||||
if @isEditorPreview
|
if @isEditorPreview
|
||||||
# wait to see if it's just given to us through setLevel
|
@supermodel.shouldSaveBackups = (model) -> # Make sure to load possibly changed things from localStorage.
|
||||||
f = => @load() unless @levelLoader
|
model.constructor.className in ['Level', 'LevelComponent', 'LevelSystem', 'ThangType']
|
||||||
|
f = => @load() unless @levelLoader # Wait to see if it's just given to us through setLevel.
|
||||||
setTimeout f, 100
|
setTimeout f, 100
|
||||||
else
|
else
|
||||||
@load()
|
@load()
|
||||||
|
|
|
@ -117,7 +117,7 @@ module.exports = class PlayView extends View
|
||||||
difficulty: 2
|
difficulty: 2
|
||||||
id: 'emphasis-on-aim'
|
id: 'emphasis-on-aim'
|
||||||
image: '/file/db/level/525f384d96cd77000000000f/munchkin_masher_icon.png'
|
image: '/file/db/level/525f384d96cd77000000000f/munchkin_masher_icon.png'
|
||||||
description: 'Chose your targets carefully.'
|
description: 'Choose your targets carefully.'
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
name: 'Zone of Danger'
|
name: 'Zone of Danger'
|
||||||
|
|
|
@ -9,15 +9,15 @@ LevelSession = require '../levels/sessions/LevelSession'
|
||||||
Level = require '../levels/Level'
|
Level = require '../levels/Level'
|
||||||
log = require 'winston'
|
log = require 'winston'
|
||||||
sendwithus = require '../sendwithus'
|
sendwithus = require '../sendwithus'
|
||||||
if config.isProduction
|
if config.isProduction and config.redis.host isnt 'localhost'
|
||||||
lockManager = require '../commons/LockManager'
|
lockManager = require '../commons/LockManager'
|
||||||
|
|
||||||
module.exports.setup = (app) ->
|
module.exports.setup = (app) ->
|
||||||
app.all config.mail.mailchimpWebhook, handleMailchimpWebHook
|
app.all config.mail.mailchimpWebhook, handleMailchimpWebHook
|
||||||
app.get '/mail/cron/ladder-update', handleLadderUpdate
|
app.get '/mail/cron/ladder-update', handleLadderUpdate
|
||||||
if lockManager
|
if lockManager
|
||||||
setupScheduledEmails()
|
setupScheduledEmails()
|
||||||
|
|
||||||
setupScheduledEmails = ->
|
setupScheduledEmails = ->
|
||||||
testForLockManager()
|
testForLockManager()
|
||||||
mailTasks = [
|
mailTasks = [
|
||||||
|
@ -35,15 +35,14 @@ setupScheduledEmails = ->
|
||||||
]
|
]
|
||||||
|
|
||||||
for mailTask in mailTasks
|
for mailTask in mailTasks
|
||||||
setInterval mailTask.taskFunction, mailTask.frequencyMs
|
setInterval mailTask.taskFunction, mailTask.frequencyMs
|
||||||
|
|
||||||
testForLockManager = -> unless lockManager then throw "The system isn't configured to do distributed locking!"
|
|
||||||
|
|
||||||
### Approved Candidate Update Reminder Task ###
|
|
||||||
|
|
||||||
|
testForLockManager = -> unless lockManager then throw "The system isn't configured to do distributed locking!"
|
||||||
|
|
||||||
|
### Approved Candidate Update Reminder Task ###
|
||||||
candidateUpdateProfileTask = ->
|
candidateUpdateProfileTask = ->
|
||||||
mailTaskName = "candidateUpdateProfileTask"
|
mailTaskName = "candidateUpdateProfileTask"
|
||||||
lockDurationMs = 2 * 60 * 1000
|
lockDurationMs = 2 * 60 * 1000
|
||||||
currentDate = new Date()
|
currentDate = new Date()
|
||||||
timeRanges = []
|
timeRanges = []
|
||||||
for weekPair in [[4, 2,'two weeks'], [8, 4, 'four weeks'], [52, 8, 'eight weeks']]
|
for weekPair in [[4, 2,'two weeks'], [8, 4, 'four weeks'], [52, 8, 'eight weeks']]
|
||||||
|
@ -70,12 +69,12 @@ emailTimeRange = (timeRange, emailTimeRangeCallback) ->
|
||||||
"mailTaskName": @mailTaskName
|
"mailTaskName": @mailTaskName
|
||||||
async.waterfall [
|
async.waterfall [
|
||||||
findAllCandidatesWithinTimeRange.bind(waterfallContext)
|
findAllCandidatesWithinTimeRange.bind(waterfallContext)
|
||||||
(unfilteredCandidates, cb) ->
|
(unfilteredCandidates, cb) ->
|
||||||
async.reject unfilteredCandidates, candidateFilter.bind(waterfallContext), cb.bind(null, null)
|
async.reject unfilteredCandidates, candidateFilter.bind(waterfallContext), cb.bind(null, null)
|
||||||
(filteredCandidates, cb) ->
|
(filteredCandidates, cb) ->
|
||||||
async.each filteredCandidates, sendReminderEmailToCandidate.bind(waterfallContext), cb
|
async.each filteredCandidates, sendReminderEmailToCandidate.bind(waterfallContext), cb
|
||||||
], emailTimeRangeCallback
|
], emailTimeRangeCallback
|
||||||
|
|
||||||
findAllCandidatesWithinTimeRange = (cb) ->
|
findAllCandidatesWithinTimeRange = (cb) ->
|
||||||
findParameters =
|
findParameters =
|
||||||
"jobProfile.updated":
|
"jobProfile.updated":
|
||||||
|
@ -84,7 +83,7 @@ findAllCandidatesWithinTimeRange = (cb) ->
|
||||||
"jobProfileApproved": true
|
"jobProfileApproved": true
|
||||||
selection = "_id email jobProfile.name jobProfile.updated emails" #make sure to check for anyNotes too.
|
selection = "_id email jobProfile.name jobProfile.updated emails" #make sure to check for anyNotes too.
|
||||||
User.find(findParameters).select(selection).lean().exec cb
|
User.find(findParameters).select(selection).lean().exec cb
|
||||||
|
|
||||||
candidateFilter = (candidate, sentEmailFilterCallback) ->
|
candidateFilter = (candidate, sentEmailFilterCallback) ->
|
||||||
if candidate.emails?.anyNotes?.enabled is false or candidate.emails?.recruitNotes?.enabled is false
|
if candidate.emails?.anyNotes?.enabled is false or candidate.emails?.recruitNotes?.enabled is false
|
||||||
return sentEmailFilterCallback true
|
return sentEmailFilterCallback true
|
||||||
|
@ -106,7 +105,7 @@ findEmployersSignedUpAfterDate = (dateObject, cb) ->
|
||||||
employerAt: {$exists: true}
|
employerAt: {$exists: true}
|
||||||
permissions: "employer"
|
permissions: "employer"
|
||||||
User.count countParameters, cb
|
User.count countParameters, cb
|
||||||
|
|
||||||
sendReminderEmailToCandidate = (candidate, sendEmailCallback) ->
|
sendReminderEmailToCandidate = (candidate, sendEmailCallback) ->
|
||||||
findEmployersSignedUpAfterDate new Date(candidate.jobProfile.updated), (err, employersAfterCount) =>
|
findEmployersSignedUpAfterDate new Date(candidate.jobProfile.updated), (err, employersAfterCount) =>
|
||||||
if err?
|
if err?
|
||||||
|
@ -236,7 +235,7 @@ sendReminderEmailToUnapprovedCandidate = (candidate, sendEmailCallback) ->
|
||||||
### Internal Candidate Update Reminder Email ###
|
### Internal Candidate Update Reminder Email ###
|
||||||
internalCandidateUpdateTask = ->
|
internalCandidateUpdateTask = ->
|
||||||
mailTaskName = "internalCandidateUpdateTask"
|
mailTaskName = "internalCandidateUpdateTask"
|
||||||
lockDurationMs = 2 * 60 * 1000
|
lockDurationMs = 2 * 60 * 1000
|
||||||
lockManager.setLock mailTaskName, lockDurationMs, (err) ->
|
lockManager.setLock mailTaskName, lockDurationMs, (err) ->
|
||||||
if err? then return log.error "Error getting a distributed lock for task #{mailTaskName}: #{err}"
|
if err? then return log.error "Error getting a distributed lock for task #{mailTaskName}: #{err}"
|
||||||
emailInternalCandidateUpdateReminder.call {"mailTaskName":mailTaskName}, (err) ->
|
emailInternalCandidateUpdateReminder.call {"mailTaskName":mailTaskName}, (err) ->
|
||||||
|
@ -262,31 +261,31 @@ emailInternalCandidateUpdateReminder = (internalCandidateUpdateReminderCallback)
|
||||||
(filteredCandidates, cb) ->
|
(filteredCandidates, cb) ->
|
||||||
async.each filteredCandidates, sendInternalCandidateUpdateReminder.bind(asyncContext), cb
|
async.each filteredCandidates, sendInternalCandidateUpdateReminder.bind(asyncContext), cb
|
||||||
], internalCandidateUpdateReminderCallback
|
], internalCandidateUpdateReminderCallback
|
||||||
|
|
||||||
findNonApprovedCandidatesWhoUpdatedJobProfileToday = (cb) ->
|
findNonApprovedCandidatesWhoUpdatedJobProfileToday = (cb) ->
|
||||||
findParameters =
|
findParameters =
|
||||||
"jobProfile.updated":
|
"jobProfile.updated":
|
||||||
$lte: @currentTime.toISOString()
|
$lte: @currentTime.toISOString()
|
||||||
$gt: @beginningOfUTCDay.toISOString()
|
$gt: @beginningOfUTCDay.toISOString()
|
||||||
"jobProfileApproved": false
|
"jobProfileApproved": false
|
||||||
User.find(findParameters).select("_id jobProfile.name jobProfile.updated").lean().exec cb
|
User.find(findParameters).select("_id jobProfile.name jobProfile.updated").lean().exec cb
|
||||||
|
|
||||||
candidatesUpdatedTodayFilter = (candidate, cb) ->
|
candidatesUpdatedTodayFilter = (candidate, cb) ->
|
||||||
findParameters =
|
findParameters =
|
||||||
"user": candidate._id
|
"user": candidate._id
|
||||||
"mailTask": @mailTaskName
|
"mailTask": @mailTaskName
|
||||||
"metadata.beginningOfUTCDay": @beginningOfUTCDay
|
"metadata.beginningOfUTCDay": @beginningOfUTCDay
|
||||||
MailSent.find(findParameters).lean().exec (err, sentMail) ->
|
MailSent.find(findParameters).lean().exec (err, sentMail) ->
|
||||||
if err?
|
if err?
|
||||||
log.error "Error finding mail sent for task #{@mailTaskName} and user #{candidate._id}!"
|
log.error "Error finding mail sent for task #{@mailTaskName} and user #{candidate._id}!"
|
||||||
cb true
|
cb true
|
||||||
else
|
else
|
||||||
cb Boolean(sentMail.length)
|
cb Boolean(sentMail.length)
|
||||||
|
|
||||||
sendInternalCandidateUpdateReminder = (candidate, cb) ->
|
sendInternalCandidateUpdateReminder = (candidate, cb) ->
|
||||||
context =
|
context =
|
||||||
email_id: "tem_Ac7nhgKqatTHBCgDgjF5pE"
|
email_id: "tem_Ac7nhgKqatTHBCgDgjF5pE"
|
||||||
recipient:
|
recipient:
|
||||||
address: "team@codecombat.com"
|
address: "team@codecombat.com"
|
||||||
name: "The CodeCombat Team"
|
name: "The CodeCombat Team"
|
||||||
email_data:
|
email_data:
|
||||||
|
@ -297,7 +296,7 @@ sendInternalCandidateUpdateReminder = (candidate, cb) ->
|
||||||
user: candidate._id
|
user: candidate._id
|
||||||
metadata:
|
metadata:
|
||||||
beginningOfUTCDay: @beginningOfUTCDay
|
beginningOfUTCDay: @beginningOfUTCDay
|
||||||
|
|
||||||
MailSent.create newSentMail, (err) ->
|
MailSent.create newSentMail, (err) ->
|
||||||
if err? then return cb err
|
if err? then return cb err
|
||||||
sendwithus.api.send context, (err, result) ->
|
sendwithus.api.send context, (err, result) ->
|
||||||
|
@ -308,7 +307,7 @@ sendInternalCandidateUpdateReminder = (candidate, cb) ->
|
||||||
### Employer New Candidates Available Email ###
|
### Employer New Candidates Available Email ###
|
||||||
employerNewCandidatesAvailableTask = ->
|
employerNewCandidatesAvailableTask = ->
|
||||||
mailTaskName = "employerNewCandidatesAvailableTask"
|
mailTaskName = "employerNewCandidatesAvailableTask"
|
||||||
lockDurationMs = 2 * 60 * 1000
|
lockDurationMs = 2 * 60 * 1000
|
||||||
lockManager.setLock mailTaskName, lockDurationMs, (err) ->
|
lockManager.setLock mailTaskName, lockDurationMs, (err) ->
|
||||||
if err? then return log.error "Error getting a distributed lock for task #{mailTaskName}: #{err}"
|
if err? then return log.error "Error getting a distributed lock for task #{mailTaskName}: #{err}"
|
||||||
emailEmployerNewCandidatesAvailable.call {"mailTaskName":mailTaskName}, (err) ->
|
emailEmployerNewCandidatesAvailable.call {"mailTaskName":mailTaskName}, (err) ->
|
||||||
|
@ -321,10 +320,10 @@ employerNewCandidatesAvailableTask = ->
|
||||||
|
|
||||||
emailEmployerNewCandidatesAvailable = (emailEmployerNewCandidatesAvailableCallback) ->
|
emailEmployerNewCandidatesAvailable = (emailEmployerNewCandidatesAvailableCallback) ->
|
||||||
currentTime = new Date()
|
currentTime = new Date()
|
||||||
asyncContext =
|
asyncContext =
|
||||||
"currentTime": currentTime
|
"currentTime": currentTime
|
||||||
"mailTaskName": @mailTaskName
|
"mailTaskName": @mailTaskName
|
||||||
|
|
||||||
async.waterfall [
|
async.waterfall [
|
||||||
findAllEmployers
|
findAllEmployers
|
||||||
makeEmployerNamesEasilyAccessible
|
makeEmployerNamesEasilyAccessible
|
||||||
|
@ -333,15 +332,15 @@ emailEmployerNewCandidatesAvailable = (emailEmployerNewCandidatesAvailableCallba
|
||||||
(employersToEmail, cb) ->
|
(employersToEmail, cb) ->
|
||||||
async.each employersToEmail, sendEmployerNewCandidatesAvailableEmail.bind(asyncContext), cb
|
async.each employersToEmail, sendEmployerNewCandidatesAvailableEmail.bind(asyncContext), cb
|
||||||
], emailEmployerNewCandidatesAvailableCallback
|
], emailEmployerNewCandidatesAvailableCallback
|
||||||
|
|
||||||
findAllEmployers = (cb) ->
|
findAllEmployers = (cb) ->
|
||||||
findParameters =
|
findParameters =
|
||||||
"employerAt":
|
"employerAt":
|
||||||
$exists: true
|
$exists: true
|
||||||
permissions: "employer"
|
permissions: "employer"
|
||||||
selection = "_id email employerAt signedEmployerAgreement.data.firstName signedEmployerAgreement.data.lastName activity dateCreated emails"
|
selection = "_id email employerAt signedEmployerAgreement.data.firstName signedEmployerAgreement.data.lastName activity dateCreated emails"
|
||||||
User.find(findParameters).select(selection).lean().exec cb
|
User.find(findParameters).select(selection).lean().exec cb
|
||||||
|
|
||||||
makeEmployerNamesEasilyAccessible = (allEmployers, cb) ->
|
makeEmployerNamesEasilyAccessible = (allEmployers, cb) ->
|
||||||
for employer, index in allEmployers
|
for employer, index in allEmployers
|
||||||
if employer.signedEmployerAgreement?.data?.firstName
|
if employer.signedEmployerAgreement?.data?.firstName
|
||||||
|
@ -349,17 +348,17 @@ makeEmployerNamesEasilyAccessible = (allEmployers, cb) ->
|
||||||
delete employer.signedEmployerAgreement
|
delete employer.signedEmployerAgreement
|
||||||
allEmployers[index] = employer
|
allEmployers[index] = employer
|
||||||
cb null, allEmployers
|
cb null, allEmployers
|
||||||
|
|
||||||
employersEmailedDigestMoreThanWeekAgoFilter = (employer, cb) ->
|
employersEmailedDigestMoreThanWeekAgoFilter = (employer, cb) ->
|
||||||
if employer.emails?.employerNotes?.enabled is false
|
if employer.emails?.employerNotes?.enabled is false
|
||||||
return cb true
|
return cb true
|
||||||
if not employer.signedEmployerAgreement and not employer.activity?.login?
|
if not employer.signedEmployerAgreement and not employer.activity?.login?
|
||||||
return cb true
|
return cb true
|
||||||
findParameters =
|
findParameters =
|
||||||
"user": employer._id
|
"user": employer._id
|
||||||
"mailTask": @mailTaskName
|
"mailTask": @mailTaskName
|
||||||
"sent":
|
"sent":
|
||||||
$gt: new Date(@currentTime.getTime() - 7 * 24 * 60 * 60 * 1000)
|
$gt: new Date(@currentTime.getTime() - 7 * 24 * 60 * 60 * 1000)
|
||||||
MailSent.find(findParameters).lean().exec (err, sentMail) ->
|
MailSent.find(findParameters).lean().exec (err, sentMail) ->
|
||||||
if err?
|
if err?
|
||||||
log.error "Error finding mail sent for task #{@mailTaskName} and employer #employer._id}!"
|
log.error "Error finding mail sent for task #{@mailTaskName} and employer #employer._id}!"
|
||||||
|
@ -368,17 +367,17 @@ employersEmailedDigestMoreThanWeekAgoFilter = (employer, cb) ->
|
||||||
cb Boolean(sentMail.length)
|
cb Boolean(sentMail.length)
|
||||||
|
|
||||||
sendEmployerNewCandidatesAvailableEmail = (employer, cb) ->
|
sendEmployerNewCandidatesAvailableEmail = (employer, cb) ->
|
||||||
lastLoginDate = employer.activity?.login?.last ? employer.dateCreated
|
lastLoginDate = employer.activity?.login?.last ? employer.dateCreated
|
||||||
countParameters =
|
countParameters =
|
||||||
"jobProfileApproved": true
|
"jobProfileApproved": true
|
||||||
$or: [
|
$or: [
|
||||||
jobProfileApprovedDate:
|
jobProfileApprovedDate:
|
||||||
$gt: lastLoginDate.toISOString()
|
$gt: lastLoginDate.toISOString()
|
||||||
,
|
,
|
||||||
jobProfileApprovedDate:
|
jobProfileApprovedDate:
|
||||||
$exists: false
|
$exists: false
|
||||||
"jobProfile.updated":
|
"jobProfile.updated":
|
||||||
$gt: lastLoginDate.toISOString()
|
$gt: lastLoginDate.toISOString()
|
||||||
]
|
]
|
||||||
User.count countParameters, (err, numberOfCandidatesSinceLogin) =>
|
User.count countParameters, (err, numberOfCandidatesSinceLogin) =>
|
||||||
if err? then return cb err
|
if err? then return cb err
|
||||||
|
@ -415,8 +414,8 @@ newRecruitLeaderboardEmailTask = ->
|
||||||
lockManager.setLock mailTaskName, lockDurationMs, (err, lockResult) ->
|
lockManager.setLock mailTaskName, lockDurationMs, (err, lockResult) ->
|
||||||
###
|
###
|
||||||
### End New Recruit Leaderboard Email ###
|
### End New Recruit Leaderboard Email ###
|
||||||
|
|
||||||
### Employer Matching Candidate Notification Email ###
|
### Employer Matching Candidate Notification Email ###
|
||||||
###
|
###
|
||||||
employerMatchingCandidateNotificationTask = ->
|
employerMatchingCandidateNotificationTask = ->
|
||||||
# tem_mYsepTfWQ265noKfZJcbBH
|
# tem_mYsepTfWQ265noKfZJcbBH
|
||||||
|
@ -444,7 +443,7 @@ isRequestFromDesignatedCronHandler = (req, res) ->
|
||||||
return true
|
return true
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
handleLadderUpdate = (req, res) ->
|
handleLadderUpdate = (req, res) ->
|
||||||
log.info('Going to see about sending ladder update emails.')
|
log.info('Going to see about sending ladder update emails.')
|
||||||
requestIsFromDesignatedCronHandler = isRequestFromDesignatedCronHandler req, res
|
requestIsFromDesignatedCronHandler = isRequestFromDesignatedCronHandler req, res
|
||||||
|
|