mirror of
https://github.com/codeninjasllc/codecombat.git
synced 2024-11-26 00:58:00 -05:00
Merge remote-tracking branch 'upstream/master'
This commit is contained in:
commit
c3a3e1d0d4
125 changed files with 2011 additions and 755 deletions
|
@ -5,10 +5,12 @@ locale = require 'locale/locale'
|
||||||
Tracker = require 'lib/Tracker'
|
Tracker = require 'lib/Tracker'
|
||||||
CocoView = require 'views/kinds/CocoView'
|
CocoView = require 'views/kinds/CocoView'
|
||||||
|
|
||||||
|
# Prevent Ctrl/Cmd + [ / ], P, S
|
||||||
|
ctrlDefaultPrevented = [219, 221, 80, 83]
|
||||||
preventBackspace = (event) ->
|
preventBackspace = (event) ->
|
||||||
if event.keyCode is 8 and not elementAcceptsKeystrokes(event.srcElement or event.target)
|
if event.keyCode is 8 and not elementAcceptsKeystrokes(event.srcElement or event.target)
|
||||||
event.preventDefault()
|
event.preventDefault()
|
||||||
else if (key.ctrl or key.command) and not key.alt and event.keyCode in [219, 221] # prevent Ctrl/Cmd + [ / ]
|
else if (key.ctrl or key.command) and not key.alt and event.keyCode in ctrlDefaultPrevented
|
||||||
event.preventDefault()
|
event.preventDefault()
|
||||||
|
|
||||||
elementAcceptsKeystrokes = (el) ->
|
elementAcceptsKeystrokes = (el) ->
|
||||||
|
|
|
@ -35,6 +35,11 @@
|
||||||
<!--[if IE 9]> <script src="/javascripts/vendor_with_box2d.js"></script> <![endif]-->
|
<!--[if IE 9]> <script src="/javascripts/vendor_with_box2d.js"></script> <![endif]-->
|
||||||
<!--[if !IE]><!--> <script src="/javascripts/vendor.js"></script> <!--<![endif]-->
|
<!--[if !IE]><!--> <script src="/javascripts/vendor.js"></script> <!--<![endif]-->
|
||||||
<script src="/javascripts/app.js"></script> <!-- it's all Backbone! -->
|
<script src="/javascripts/app.js"></script> <!-- it's all Backbone! -->
|
||||||
|
|
||||||
|
<script>
|
||||||
|
window.userObject = "userObjectTag";
|
||||||
|
</script>
|
||||||
|
|
||||||
<script>require('initialize');</script>
|
<script>require('initialize');</script>
|
||||||
|
|
||||||
|
|
|
@ -1,5 +1,4 @@
|
||||||
app = require 'application'
|
app = require 'application'
|
||||||
auth = require 'lib/auth'
|
|
||||||
|
|
||||||
init = ->
|
init = ->
|
||||||
app.initialize()
|
app.initialize()
|
||||||
|
@ -10,15 +9,8 @@ init = ->
|
||||||
treemaExt.setup()
|
treemaExt.setup()
|
||||||
filepicker.setKey('AvlkNoldcTOU4PvKi2Xm7z')
|
filepicker.setKey('AvlkNoldcTOU4PvKi2Xm7z')
|
||||||
|
|
||||||
$ ->
|
$ -> init()
|
||||||
# Make sure we're "logged in" first.
|
|
||||||
if auth.me.id
|
|
||||||
init()
|
|
||||||
else
|
|
||||||
Backbone.Mediator.subscribeOnce 'me:synced', init
|
|
||||||
|
|
||||||
window.init = init
|
|
||||||
|
|
||||||
handleNormalUrls = ->
|
handleNormalUrls = ->
|
||||||
# http://artsy.github.com/blog/2012/06/25/replacing-hashbang-routes-with-pushstate/
|
# http://artsy.github.com/blog/2012/06/25/replacing-hashbang-routes-with-pushstate/
|
||||||
$(document).on "click", "a[href^='/']", (event) ->
|
$(document).on "click", "a[href^='/']", (event) ->
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
CocoClass = require 'lib/CocoClass'
|
CocoClass = require 'lib/CocoClass'
|
||||||
{me, CURRENT_USER_KEY} = require 'lib/auth'
|
{me} = require 'lib/auth'
|
||||||
{backboneFailure} = require 'lib/errors'
|
{backboneFailure} = require 'lib/errors'
|
||||||
storage = require 'lib/storage'
|
storage = require 'lib/storage'
|
||||||
|
|
||||||
|
@ -59,7 +59,6 @@ module.exports = FacebookHandler = class FacebookHandler extends CocoClass
|
||||||
error: backboneFailure,
|
error: backboneFailure,
|
||||||
url: "/db/user?facebookID=#{r.id}&facebookAccessToken=#{@authResponse.accessToken}"
|
url: "/db/user?facebookID=#{r.id}&facebookAccessToken=#{@authResponse.accessToken}"
|
||||||
success: (model) ->
|
success: (model) ->
|
||||||
storage.save(CURRENT_USER_KEY, model.attributes)
|
|
||||||
window.location.reload() if model.get('email') isnt oldEmail
|
window.location.reload() if model.get('email') isnt oldEmail
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
CocoClass = require 'lib/CocoClass'
|
CocoClass = require 'lib/CocoClass'
|
||||||
{me, CURRENT_USER_KEY} = require 'lib/auth'
|
{me} = require 'lib/auth'
|
||||||
{backboneFailure} = require 'lib/errors'
|
{backboneFailure} = require 'lib/errors'
|
||||||
storage = require 'lib/storage'
|
storage = require 'lib/storage'
|
||||||
GPLUS_TOKEN_KEY = 'gplusToken'
|
GPLUS_TOKEN_KEY = 'gplusToken'
|
||||||
|
@ -102,7 +102,6 @@ module.exports = GPlusHandler = class GPlusHandler extends CocoClass
|
||||||
error: backboneFailure,
|
error: backboneFailure,
|
||||||
url: "/db/user?gplusID=#{gplusID}&gplusAccessToken=#{@accessToken.access_token}"
|
url: "/db/user?gplusID=#{gplusID}&gplusAccessToken=#{@accessToken.access_token}"
|
||||||
success: (model) ->
|
success: (model) ->
|
||||||
storage.save(CURRENT_USER_KEY, model.attributes)
|
|
||||||
window.location.reload() if wasAnonymous and not model.get('anonymous')
|
window.location.reload() if wasAnonymous and not model.get('anonymous')
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|
|
@ -1,5 +1,3 @@
|
||||||
{me} = require 'lib/auth'
|
|
||||||
|
|
||||||
gplusClientID = "800329290710-j9sivplv2gpcdgkrsis9rff3o417mlfa.apps.googleusercontent.com"
|
gplusClientID = "800329290710-j9sivplv2gpcdgkrsis9rff3o417mlfa.apps.googleusercontent.com"
|
||||||
|
|
||||||
go = (path) -> -> @routeDirectly path, arguments
|
go = (path) -> -> @routeDirectly path, arguments
|
||||||
|
|
|
@ -1,20 +1,24 @@
|
||||||
{backboneFailure, genericFailure} = require 'lib/errors'
|
{backboneFailure, genericFailure} = require 'lib/errors'
|
||||||
User = require 'models/User'
|
User = require 'models/User'
|
||||||
storage = require 'lib/storage'
|
storage = require 'lib/storage'
|
||||||
|
|
||||||
module.exports.CURRENT_USER_KEY = CURRENT_USER_KEY = 'whoami'
|
|
||||||
BEEN_HERE_BEFORE_KEY = 'beenHereBefore'
|
BEEN_HERE_BEFORE_KEY = 'beenHereBefore'
|
||||||
|
|
||||||
|
init = ->
|
||||||
|
module.exports.me = window.me = new User(window.userObject) # inserted into main.html
|
||||||
|
trackFirstArrival()
|
||||||
|
if me and not me.get('testGroupNumber')?
|
||||||
|
# Assign testGroupNumber to returning visitors; new ones in server/routes/auth
|
||||||
|
me.set 'testGroupNumber', Math.floor(Math.random() * 256)
|
||||||
|
me.save()
|
||||||
|
|
||||||
|
me.loadGravatarProfile() if me.get('email')
|
||||||
|
Backbone.listenTo(me, 'sync', Backbone.Mediator.publish('me:synced', {me:me}))
|
||||||
|
|
||||||
module.exports.createUser = (userObject, failure=backboneFailure, nextURL=null) ->
|
module.exports.createUser = (userObject, failure=backboneFailure, nextURL=null) ->
|
||||||
user = new User(userObject)
|
user = new User(userObject)
|
||||||
user.save({}, {
|
user.save({}, {
|
||||||
error: failure,
|
error: failure,
|
||||||
success: (model) ->
|
success: -> if nextURL then window.location.href = nextURL else window.location.reload()
|
||||||
storage.save(CURRENT_USER_KEY, model)
|
|
||||||
if nextURL
|
|
||||||
window.location.href = nextURL
|
|
||||||
else
|
|
||||||
window.location.reload()
|
|
||||||
})
|
})
|
||||||
|
|
||||||
module.exports.loginUser = (userObject, failure=genericFailure) ->
|
module.exports.loginUser = (userObject, failure=genericFailure) ->
|
||||||
|
@ -23,52 +27,15 @@ module.exports.loginUser = (userObject, failure=genericFailure) ->
|
||||||
username:userObject.email,
|
username:userObject.email,
|
||||||
password:userObject.password
|
password:userObject.password
|
||||||
},
|
},
|
||||||
(model) ->
|
(model) -> window.location.reload()
|
||||||
storage.save(CURRENT_USER_KEY, model)
|
|
||||||
window.location.reload()
|
|
||||||
)
|
)
|
||||||
jqxhr.fail(failure)
|
jqxhr.fail(failure)
|
||||||
|
|
||||||
module.exports.logoutUser = ->
|
module.exports.logoutUser = ->
|
||||||
FB?.logout?()
|
FB?.logout?()
|
||||||
res = $.post('/auth/logout', {}, ->
|
res = $.post('/auth/logout', {}, -> window.location.reload())
|
||||||
storage.save(CURRENT_USER_KEY, null)
|
|
||||||
window.location.reload()
|
|
||||||
)
|
|
||||||
res.fail(genericFailure)
|
res.fail(genericFailure)
|
||||||
|
|
||||||
init = ->
|
|
||||||
# Load the user from local storage, and refresh it from the server.
|
|
||||||
# Also refresh and cache the gravatar info.
|
|
||||||
|
|
||||||
storedUser = storage.load(CURRENT_USER_KEY)
|
|
||||||
firstTime = not storedUser
|
|
||||||
module.exports.me = window.me = new User(storedUser)
|
|
||||||
me.url = -> '/auth/whoami'
|
|
||||||
me.fetch()
|
|
||||||
|
|
||||||
retry = -> me.fetch() # blindly try again
|
|
||||||
error = -> setTimeout(retry, 1000) # blindly try again
|
|
||||||
me.on 'error', error, @
|
|
||||||
me.on 'sync', ->
|
|
||||||
me.off 'error', error, @ if firstTime
|
|
||||||
me.url = -> "/db/user/#{me.id}"
|
|
||||||
trackFirstArrival() if firstTime
|
|
||||||
if me and not me.get('testGroupNumber')?
|
|
||||||
# Assign testGroupNumber to returning visitors; new ones in server/handlers/user
|
|
||||||
me.set 'testGroupNumber', Math.floor(Math.random() * 256)
|
|
||||||
me.save()
|
|
||||||
storage.save(CURRENT_USER_KEY, me.attributes)
|
|
||||||
|
|
||||||
me.loadGravatarProfile() if me.get('email')
|
|
||||||
Backbone.listenTo(me, 'sync', userSynced)
|
|
||||||
|
|
||||||
userSynced = (user) ->
|
|
||||||
Backbone.Mediator.publish('me:synced', {me:user})
|
|
||||||
storage.save(CURRENT_USER_KEY, user)
|
|
||||||
|
|
||||||
init()
|
|
||||||
|
|
||||||
onSetVolume = (e) ->
|
onSetVolume = (e) ->
|
||||||
return if e.volume is me.get('volume')
|
return if e.volume is me.get('volume')
|
||||||
me.set('volume', e.volume)
|
me.set('volume', e.volume)
|
||||||
|
@ -83,3 +50,6 @@ trackFirstArrival = ->
|
||||||
return if beenHereBefore
|
return if beenHereBefore
|
||||||
window.tracker?.trackEvent 'First Arrived'
|
window.tracker?.trackEvent 'First Arrived'
|
||||||
storage.save(BEEN_HERE_BEFORE_KEY, true)
|
storage.save(BEEN_HERE_BEFORE_KEY, true)
|
||||||
|
|
||||||
|
init()
|
||||||
|
|
||||||
|
|
|
@ -38,7 +38,7 @@ module.exports = class Thang
|
||||||
publishNote: (channel, event) ->
|
publishNote: (channel, event) ->
|
||||||
event.thang = @
|
event.thang = @
|
||||||
@world.publishNote channel, event
|
@world.publishNote channel, event
|
||||||
|
|
||||||
setGoalState: (goalID, status) ->
|
setGoalState: (goalID, status) ->
|
||||||
@world.setGoalState goalID, status
|
@world.setGoalState goalID, status
|
||||||
|
|
||||||
|
|
|
@ -98,10 +98,14 @@ module.exports = class ThangState
|
||||||
storage = @trackedPropertyValues[propIndex]
|
storage = @trackedPropertyValues[propIndex]
|
||||||
value = @getStoredProp propIndex, type, storage
|
value = @getStoredProp propIndex, type, storage
|
||||||
if prop is "pos"
|
if prop is "pos"
|
||||||
@thang.pos = @thang.pos.copy()
|
if @thang.pos.distanceSquared(value) > 900
|
||||||
@thang.pos.x = inverse * @thang.pos.x + ratio * value.x
|
# Don't interpolate; it was probably a teleport. https://github.com/codecombat/codecombat/issues/738
|
||||||
@thang.pos.y = inverse * @thang.pos.y + ratio * value.y
|
@thang.pos = value
|
||||||
@thang.pos.z = inverse * @thang.pos.z + ratio * value.z
|
else
|
||||||
|
@thang.pos = @thang.pos.copy()
|
||||||
|
@thang.pos.x = inverse * @thang.pos.x + ratio * value.x
|
||||||
|
@thang.pos.y = inverse * @thang.pos.y + ratio * value.y
|
||||||
|
@thang.pos.z = inverse * @thang.pos.z + ratio * value.z
|
||||||
else if prop is "rotation"
|
else if prop is "rotation"
|
||||||
@thang.rotation = inverse * @thang.rotation + ratio * value
|
@thang.rotation = inverse * @thang.rotation + ratio * value
|
||||||
@thang.partialState = true
|
@thang.partialState = true
|
||||||
|
|
|
@ -264,6 +264,8 @@ module.exports = nativeDescription: "العربية", englishDescription: "Arabi
|
||||||
# tip_patience: "Patience you must have, young Padawan. - Yoda"
|
# tip_patience: "Patience you must have, young Padawan. - Yoda"
|
||||||
# tip_documented_bug: "A documented bug is not a bug; it is a feature."
|
# tip_documented_bug: "A documented bug is not a bug; it is a feature."
|
||||||
# tip_impossible: "It always seems impossible until it's done. - Nelson Mandela"
|
# tip_impossible: "It always seems impossible until it's done. - Nelson Mandela"
|
||||||
|
# tip_talk_is_cheap: "Talk is cheap. Show me the code. - Linus Torvalds"
|
||||||
|
# tip_first_language: "The most disastrous thing that you can ever learn is your first programming language. - Alan Kay"
|
||||||
# time_current: "Now:"
|
# time_current: "Now:"
|
||||||
# time_total: "Max:"
|
# time_total: "Max:"
|
||||||
# time_goto: "Go to:"
|
# time_goto: "Go to:"
|
||||||
|
|
|
@ -264,6 +264,8 @@ module.exports = nativeDescription: "български език", englishDescri
|
||||||
# tip_patience: "Patience you must have, young Padawan. - Yoda"
|
# tip_patience: "Patience you must have, young Padawan. - Yoda"
|
||||||
# tip_documented_bug: "A documented bug is not a bug; it is a feature."
|
# tip_documented_bug: "A documented bug is not a bug; it is a feature."
|
||||||
# tip_impossible: "It always seems impossible until it's done. - Nelson Mandela"
|
# tip_impossible: "It always seems impossible until it's done. - Nelson Mandela"
|
||||||
|
# tip_talk_is_cheap: "Talk is cheap. Show me the code. - Linus Torvalds"
|
||||||
|
# tip_first_language: "The most disastrous thing that you can ever learn is your first programming language. - Alan Kay"
|
||||||
# time_current: "Now:"
|
# time_current: "Now:"
|
||||||
# time_total: "Max:"
|
# time_total: "Max:"
|
||||||
# time_goto: "Go to:"
|
# time_goto: "Go to:"
|
||||||
|
|
|
@ -264,6 +264,8 @@ module.exports = nativeDescription: "Català", englishDescription: "Catalan", tr
|
||||||
# tip_patience: "Patience you must have, young Padawan. - Yoda"
|
# tip_patience: "Patience you must have, young Padawan. - Yoda"
|
||||||
# tip_documented_bug: "A documented bug is not a bug; it is a feature."
|
# tip_documented_bug: "A documented bug is not a bug; it is a feature."
|
||||||
# tip_impossible: "It always seems impossible until it's done. - Nelson Mandela"
|
# tip_impossible: "It always seems impossible until it's done. - Nelson Mandela"
|
||||||
|
# tip_talk_is_cheap: "Talk is cheap. Show me the code. - Linus Torvalds"
|
||||||
|
# tip_first_language: "The most disastrous thing that you can ever learn is your first programming language. - Alan Kay"
|
||||||
# time_current: "Now:"
|
# time_current: "Now:"
|
||||||
# time_total: "Max:"
|
# time_total: "Max:"
|
||||||
# time_goto: "Go to:"
|
# time_goto: "Go to:"
|
||||||
|
|
|
@ -264,6 +264,8 @@ module.exports = nativeDescription: "čeština", englishDescription: "Czech", tr
|
||||||
# tip_patience: "Patience you must have, young Padawan. - Yoda"
|
# tip_patience: "Patience you must have, young Padawan. - Yoda"
|
||||||
# tip_documented_bug: "A documented bug is not a bug; it is a feature."
|
# tip_documented_bug: "A documented bug is not a bug; it is a feature."
|
||||||
# tip_impossible: "It always seems impossible until it's done. - Nelson Mandela"
|
# tip_impossible: "It always seems impossible until it's done. - Nelson Mandela"
|
||||||
|
# tip_talk_is_cheap: "Talk is cheap. Show me the code. - Linus Torvalds"
|
||||||
|
# tip_first_language: "The most disastrous thing that you can ever learn is your first programming language. - Alan Kay"
|
||||||
# time_current: "Now:"
|
# time_current: "Now:"
|
||||||
# time_total: "Max:"
|
# time_total: "Max:"
|
||||||
# time_goto: "Go to:"
|
# time_goto: "Go to:"
|
||||||
|
|
|
@ -264,6 +264,8 @@ module.exports = nativeDescription: "dansk", englishDescription: "Danish", trans
|
||||||
# tip_patience: "Patience you must have, young Padawan. - Yoda"
|
# tip_patience: "Patience you must have, young Padawan. - Yoda"
|
||||||
# tip_documented_bug: "A documented bug is not a bug; it is a feature."
|
# tip_documented_bug: "A documented bug is not a bug; it is a feature."
|
||||||
# tip_impossible: "It always seems impossible until it's done. - Nelson Mandela"
|
# tip_impossible: "It always seems impossible until it's done. - Nelson Mandela"
|
||||||
|
# tip_talk_is_cheap: "Talk is cheap. Show me the code. - Linus Torvalds"
|
||||||
|
# tip_first_language: "The most disastrous thing that you can ever learn is your first programming language. - Alan Kay"
|
||||||
# time_current: "Now:"
|
# time_current: "Now:"
|
||||||
# time_total: "Max:"
|
# time_total: "Max:"
|
||||||
# time_goto: "Go to:"
|
# time_goto: "Go to:"
|
||||||
|
|
|
@ -264,6 +264,8 @@ module.exports = nativeDescription: "Deutsch", englishDescription: "German", tra
|
||||||
tip_patience: "Geduld du musst haben, junger Padawan. - Yoda"
|
tip_patience: "Geduld du musst haben, junger Padawan. - Yoda"
|
||||||
tip_documented_bug: "Ein dokumentierter Fehler ist kein Fehler; er ist ein Merkmal."
|
tip_documented_bug: "Ein dokumentierter Fehler ist kein Fehler; er ist ein Merkmal."
|
||||||
tip_impossible: "Es wirkt immer unmöglich bis es vollbracht ist. - Nelson Mandela"
|
tip_impossible: "Es wirkt immer unmöglich bis es vollbracht ist. - Nelson Mandela"
|
||||||
|
# tip_talk_is_cheap: "Talk is cheap. Show me the code. - Linus Torvalds"
|
||||||
|
# tip_first_language: "The most disastrous thing that you can ever learn is your first programming language. - Alan Kay"
|
||||||
time_current: "Aktuell"
|
time_current: "Aktuell"
|
||||||
time_total: "Total"
|
time_total: "Total"
|
||||||
time_goto: "Gehe zu"
|
time_goto: "Gehe zu"
|
||||||
|
|
|
@ -264,6 +264,8 @@ module.exports = nativeDescription: "ελληνικά", englishDescription: "Gre
|
||||||
# tip_patience: "Patience you must have, young Padawan. - Yoda"
|
# tip_patience: "Patience you must have, young Padawan. - Yoda"
|
||||||
# tip_documented_bug: "A documented bug is not a bug; it is a feature."
|
# tip_documented_bug: "A documented bug is not a bug; it is a feature."
|
||||||
# tip_impossible: "It always seems impossible until it's done. - Nelson Mandela"
|
# tip_impossible: "It always seems impossible until it's done. - Nelson Mandela"
|
||||||
|
# tip_talk_is_cheap: "Talk is cheap. Show me the code. - Linus Torvalds"
|
||||||
|
# tip_first_language: "The most disastrous thing that you can ever learn is your first programming language. - Alan Kay"
|
||||||
# time_current: "Now:"
|
# time_current: "Now:"
|
||||||
# time_total: "Max:"
|
# time_total: "Max:"
|
||||||
# time_goto: "Go to:"
|
# time_goto: "Go to:"
|
||||||
|
|
|
@ -264,6 +264,8 @@ module.exports = nativeDescription: "English (AU)", englishDescription: "English
|
||||||
# tip_patience: "Patience you must have, young Padawan. - Yoda"
|
# tip_patience: "Patience you must have, young Padawan. - Yoda"
|
||||||
# tip_documented_bug: "A documented bug is not a bug; it is a feature."
|
# tip_documented_bug: "A documented bug is not a bug; it is a feature."
|
||||||
# tip_impossible: "It always seems impossible until it's done. - Nelson Mandela"
|
# tip_impossible: "It always seems impossible until it's done. - Nelson Mandela"
|
||||||
|
# tip_talk_is_cheap: "Talk is cheap. Show me the code. - Linus Torvalds"
|
||||||
|
# tip_first_language: "The most disastrous thing that you can ever learn is your first programming language. - Alan Kay"
|
||||||
# time_current: "Now:"
|
# time_current: "Now:"
|
||||||
# time_total: "Max:"
|
# time_total: "Max:"
|
||||||
# time_goto: "Go to:"
|
# time_goto: "Go to:"
|
||||||
|
|
|
@ -264,6 +264,8 @@ module.exports = nativeDescription: "English (UK)", englishDescription: "English
|
||||||
# tip_patience: "Patience you must have, young Padawan. - Yoda"
|
# tip_patience: "Patience you must have, young Padawan. - Yoda"
|
||||||
# tip_documented_bug: "A documented bug is not a bug; it is a feature."
|
# tip_documented_bug: "A documented bug is not a bug; it is a feature."
|
||||||
# tip_impossible: "It always seems impossible until it's done. - Nelson Mandela"
|
# tip_impossible: "It always seems impossible until it's done. - Nelson Mandela"
|
||||||
|
# tip_talk_is_cheap: "Talk is cheap. Show me the code. - Linus Torvalds"
|
||||||
|
# tip_first_language: "The most disastrous thing that you can ever learn is your first programming language. - Alan Kay"
|
||||||
# time_current: "Now:"
|
# time_current: "Now:"
|
||||||
# time_total: "Max:"
|
# time_total: "Max:"
|
||||||
# time_goto: "Go to:"
|
# time_goto: "Go to:"
|
||||||
|
|
|
@ -264,6 +264,8 @@ module.exports = nativeDescription: "English (US)", englishDescription: "English
|
||||||
# tip_patience: "Patience you must have, young Padawan. - Yoda"
|
# tip_patience: "Patience you must have, young Padawan. - Yoda"
|
||||||
# tip_documented_bug: "A documented bug is not a bug; it is a feature."
|
# tip_documented_bug: "A documented bug is not a bug; it is a feature."
|
||||||
# tip_impossible: "It always seems impossible until it's done. - Nelson Mandela"
|
# tip_impossible: "It always seems impossible until it's done. - Nelson Mandela"
|
||||||
|
# tip_talk_is_cheap: "Talk is cheap. Show me the code. - Linus Torvalds"
|
||||||
|
# tip_first_language: "The most disastrous thing that you can ever learn is your first programming language. - Alan Kay"
|
||||||
# time_current: "Now:"
|
# time_current: "Now:"
|
||||||
# time_total: "Max:"
|
# time_total: "Max:"
|
||||||
# time_goto: "Go to:"
|
# time_goto: "Go to:"
|
||||||
|
|
|
@ -12,6 +12,7 @@ module.exports = nativeDescription: "English", englishDescription: "English", tr
|
||||||
manual: "Manual"
|
manual: "Manual"
|
||||||
fork: "Fork"
|
fork: "Fork"
|
||||||
play: "Play"
|
play: "Play"
|
||||||
|
retry: "Retry"
|
||||||
|
|
||||||
units:
|
units:
|
||||||
second: "second"
|
second: "second"
|
||||||
|
@ -264,6 +265,8 @@ module.exports = nativeDescription: "English", englishDescription: "English", tr
|
||||||
tip_patience: "Patience you must have, young Padawan. - Yoda"
|
tip_patience: "Patience you must have, young Padawan. - Yoda"
|
||||||
tip_documented_bug: "A documented bug is not a bug; it is a feature."
|
tip_documented_bug: "A documented bug is not a bug; it is a feature."
|
||||||
tip_impossible: "It always seems impossible until it's done. - Nelson Mandela"
|
tip_impossible: "It always seems impossible until it's done. - Nelson Mandela"
|
||||||
|
tip_talk_is_cheap: "Talk is cheap. Show me the code. - Linus Torvalds"
|
||||||
|
tip_first_language: "The most disastrous thing that you can ever learn is your first programming language. - Alan Kay"
|
||||||
time_current: "Now:"
|
time_current: "Now:"
|
||||||
time_total: "Max:"
|
time_total: "Max:"
|
||||||
time_goto: "Go to:"
|
time_goto: "Go to:"
|
||||||
|
@ -600,3 +603,27 @@ module.exports = nativeDescription: "English", englishDescription: "English", tr
|
||||||
tutorial: "tutorial"
|
tutorial: "tutorial"
|
||||||
new_to_programming: ". New to programming? Hit our beginner campaign to skill up."
|
new_to_programming: ". New to programming? Hit our beginner campaign to skill up."
|
||||||
so_ready: "I Am So Ready for This"
|
so_ready: "I Am So Ready for This"
|
||||||
|
|
||||||
|
loading_error:
|
||||||
|
could_not_load: "Error loading from server"
|
||||||
|
connection_failure: "Connection failed."
|
||||||
|
unauthorized: "You need to be signed in. Do you have cookies disabled?"
|
||||||
|
forbidden: "You do not have the permissions."
|
||||||
|
not_found: "Not found."
|
||||||
|
not_allowed: "Method not allowed."
|
||||||
|
timeout: "Server timeout."
|
||||||
|
conflict: "Resource conflict."
|
||||||
|
bad_input: "Bad input."
|
||||||
|
server_error: "Server error."
|
||||||
|
unknown: "Unknown error."
|
||||||
|
|
||||||
|
resources:
|
||||||
|
your_sessions: "Your Sessions"
|
||||||
|
level: "Level"
|
||||||
|
social_network_apis: "Social Network APIs"
|
||||||
|
facebook_status: "Facebook Status"
|
||||||
|
facebook_friends: "Facebook Friends"
|
||||||
|
facebook_friend_sessions: "Facebook Friend Sessions"
|
||||||
|
gplus_friends: "G+ Friends"
|
||||||
|
gplus_friend_sessions: "G+ Friend Sessions"
|
||||||
|
leaderboard: 'leaderboard'
|
|
@ -264,6 +264,8 @@ module.exports = nativeDescription: "español (América Latina)", englishDescrip
|
||||||
# tip_patience: "Patience you must have, young Padawan. - Yoda"
|
# tip_patience: "Patience you must have, young Padawan. - Yoda"
|
||||||
# tip_documented_bug: "A documented bug is not a bug; it is a feature."
|
# tip_documented_bug: "A documented bug is not a bug; it is a feature."
|
||||||
# tip_impossible: "It always seems impossible until it's done. - Nelson Mandela"
|
# tip_impossible: "It always seems impossible until it's done. - Nelson Mandela"
|
||||||
|
# tip_talk_is_cheap: "Talk is cheap. Show me the code. - Linus Torvalds"
|
||||||
|
# tip_first_language: "The most disastrous thing that you can ever learn is your first programming language. - Alan Kay"
|
||||||
# time_current: "Now:"
|
# time_current: "Now:"
|
||||||
# time_total: "Max:"
|
# time_total: "Max:"
|
||||||
# time_goto: "Go to:"
|
# time_goto: "Go to:"
|
||||||
|
|
|
@ -5,7 +5,7 @@ module.exports = nativeDescription: "español (ES)", englishDescription: "Spanis
|
||||||
sending: "Enviando..."
|
sending: "Enviando..."
|
||||||
cancel: "Cancelar"
|
cancel: "Cancelar"
|
||||||
save: "Guardar"
|
save: "Guardar"
|
||||||
# create: "Create"
|
create: "Crear"
|
||||||
delay_1_sec: "1 segundo"
|
delay_1_sec: "1 segundo"
|
||||||
delay_3_sec: "3 segundos"
|
delay_3_sec: "3 segundos"
|
||||||
delay_5_sec: "5 segundos"
|
delay_5_sec: "5 segundos"
|
||||||
|
@ -13,13 +13,13 @@ module.exports = nativeDescription: "español (ES)", englishDescription: "Spanis
|
||||||
fork: "Bifurcar"
|
fork: "Bifurcar"
|
||||||
play: "Jugar"
|
play: "Jugar"
|
||||||
|
|
||||||
# units:
|
units:
|
||||||
# second: "second"
|
second: "segundo"
|
||||||
# seconds: "seconds"
|
seconds: "segundos"
|
||||||
# minute: "minute"
|
minute: "minuto"
|
||||||
# minutes: "minutes"
|
minutes: "minutos"
|
||||||
# hour: "hour"
|
hour: "hora"
|
||||||
# hours: "hours"
|
hours: "horas"
|
||||||
|
|
||||||
modal:
|
modal:
|
||||||
close: "Cerrar"
|
close: "Cerrar"
|
||||||
|
@ -53,7 +53,7 @@ module.exports = nativeDescription: "español (ES)", englishDescription: "Spanis
|
||||||
login:
|
login:
|
||||||
sign_up: "Crear una cuenta"
|
sign_up: "Crear una cuenta"
|
||||||
log_in: "Entrar"
|
log_in: "Entrar"
|
||||||
# logging_in: "Logging In"
|
logging_in: "Entrando..."
|
||||||
log_out: "Salir"
|
log_out: "Salir"
|
||||||
recover: "recuperar cuenta"
|
recover: "recuperar cuenta"
|
||||||
|
|
||||||
|
@ -76,12 +76,12 @@ module.exports = nativeDescription: "español (ES)", englishDescription: "Spanis
|
||||||
no_ie: "CodeCombat no funciona en Internet Explorer 9 o anteriores. ¡Lo sentimos!"
|
no_ie: "CodeCombat no funciona en Internet Explorer 9 o anteriores. ¡Lo sentimos!"
|
||||||
no_mobile: "¡CodeCombat no fue diseñado para dispositivos móviles y puede que no funcione!"
|
no_mobile: "¡CodeCombat no fue diseñado para dispositivos móviles y puede que no funcione!"
|
||||||
play: "Jugar"
|
play: "Jugar"
|
||||||
# old_browser: "Uh oh, your browser is too old to run CodeCombat. Sorry!"
|
old_browser: "Ay, su navegador es demasiado viejo para ejecutar CodeCombat. ¡Lo sentimos!"
|
||||||
# old_browser_suffix: "You can try anyway, but it probably won't work."
|
old_browser_suffix: "Puede tentar de todos modos, pero probablemente no va a funcionar."
|
||||||
# campaign: "Campaign"
|
campaign: "Campaña"
|
||||||
# for_beginners: "For Beginners"
|
for_beginners: "Para principiantes"
|
||||||
# multiplayer: "Multiplayer"
|
multiplayer: "Multijugador"
|
||||||
# for_developers: "For Developers"
|
for_developers: "Para programadores"
|
||||||
|
|
||||||
play:
|
play:
|
||||||
choose_your_level: "Elige tu nivel"
|
choose_your_level: "Elige tu nivel"
|
||||||
|
@ -264,6 +264,8 @@ module.exports = nativeDescription: "español (ES)", englishDescription: "Spanis
|
||||||
# tip_patience: "Patience you must have, young Padawan. - Yoda"
|
# tip_patience: "Patience you must have, young Padawan. - Yoda"
|
||||||
# tip_documented_bug: "A documented bug is not a bug; it is a feature."
|
# tip_documented_bug: "A documented bug is not a bug; it is a feature."
|
||||||
# tip_impossible: "It always seems impossible until it's done. - Nelson Mandela"
|
# tip_impossible: "It always seems impossible until it's done. - Nelson Mandela"
|
||||||
|
# tip_talk_is_cheap: "Talk is cheap. Show me the code. - Linus Torvalds"
|
||||||
|
# tip_first_language: "The most disastrous thing that you can ever learn is your first programming language. - Alan Kay"
|
||||||
# time_current: "Now:"
|
# time_current: "Now:"
|
||||||
# time_total: "Max:"
|
# time_total: "Max:"
|
||||||
# time_goto: "Go to:"
|
# time_goto: "Go to:"
|
||||||
|
|
|
@ -264,6 +264,8 @@ module.exports = nativeDescription: "español", englishDescription: "Spanish", t
|
||||||
# tip_patience: "Patience you must have, young Padawan. - Yoda"
|
# tip_patience: "Patience you must have, young Padawan. - Yoda"
|
||||||
# tip_documented_bug: "A documented bug is not a bug; it is a feature."
|
# tip_documented_bug: "A documented bug is not a bug; it is a feature."
|
||||||
# tip_impossible: "It always seems impossible until it's done. - Nelson Mandela"
|
# tip_impossible: "It always seems impossible until it's done. - Nelson Mandela"
|
||||||
|
# tip_talk_is_cheap: "Talk is cheap. Show me the code. - Linus Torvalds"
|
||||||
|
# tip_first_language: "The most disastrous thing that you can ever learn is your first programming language. - Alan Kay"
|
||||||
# time_current: "Now:"
|
# time_current: "Now:"
|
||||||
# time_total: "Max:"
|
# time_total: "Max:"
|
||||||
# time_goto: "Go to:"
|
# time_goto: "Go to:"
|
||||||
|
|
|
@ -264,6 +264,8 @@ module.exports = nativeDescription: "فارسی", englishDescription: "Persian",
|
||||||
# tip_patience: "Patience you must have, young Padawan. - Yoda"
|
# tip_patience: "Patience you must have, young Padawan. - Yoda"
|
||||||
# tip_documented_bug: "A documented bug is not a bug; it is a feature."
|
# tip_documented_bug: "A documented bug is not a bug; it is a feature."
|
||||||
# tip_impossible: "It always seems impossible until it's done. - Nelson Mandela"
|
# tip_impossible: "It always seems impossible until it's done. - Nelson Mandela"
|
||||||
|
# tip_talk_is_cheap: "Talk is cheap. Show me the code. - Linus Torvalds"
|
||||||
|
# tip_first_language: "The most disastrous thing that you can ever learn is your first programming language. - Alan Kay"
|
||||||
# time_current: "Now:"
|
# time_current: "Now:"
|
||||||
# time_total: "Max:"
|
# time_total: "Max:"
|
||||||
# time_goto: "Go to:"
|
# time_goto: "Go to:"
|
||||||
|
|
|
@ -264,6 +264,8 @@ module.exports = nativeDescription: "suomi", englishDescription: "Finnish", tran
|
||||||
# tip_patience: "Patience you must have, young Padawan. - Yoda"
|
# tip_patience: "Patience you must have, young Padawan. - Yoda"
|
||||||
# tip_documented_bug: "A documented bug is not a bug; it is a feature."
|
# tip_documented_bug: "A documented bug is not a bug; it is a feature."
|
||||||
# tip_impossible: "It always seems impossible until it's done. - Nelson Mandela"
|
# tip_impossible: "It always seems impossible until it's done. - Nelson Mandela"
|
||||||
|
# tip_talk_is_cheap: "Talk is cheap. Show me the code. - Linus Torvalds"
|
||||||
|
# tip_first_language: "The most disastrous thing that you can ever learn is your first programming language. - Alan Kay"
|
||||||
# time_current: "Now:"
|
# time_current: "Now:"
|
||||||
# time_total: "Max:"
|
# time_total: "Max:"
|
||||||
# time_goto: "Go to:"
|
# time_goto: "Go to:"
|
||||||
|
|
|
@ -264,6 +264,8 @@ module.exports = nativeDescription: "français", englishDescription: "French", t
|
||||||
# tip_patience: "Patience you must have, young Padawan. - Yoda"
|
# tip_patience: "Patience you must have, young Padawan. - Yoda"
|
||||||
# tip_documented_bug: "A documented bug is not a bug; it is a feature."
|
# tip_documented_bug: "A documented bug is not a bug; it is a feature."
|
||||||
# tip_impossible: "It always seems impossible until it's done. - Nelson Mandela"
|
# tip_impossible: "It always seems impossible until it's done. - Nelson Mandela"
|
||||||
|
# tip_talk_is_cheap: "Talk is cheap. Show me the code. - Linus Torvalds"
|
||||||
|
# tip_first_language: "The most disastrous thing that you can ever learn is your first programming language. - Alan Kay"
|
||||||
# time_current: "Now:"
|
# time_current: "Now:"
|
||||||
# time_total: "Max:"
|
# time_total: "Max:"
|
||||||
# time_goto: "Go to:"
|
# time_goto: "Go to:"
|
||||||
|
|
|
@ -264,6 +264,8 @@ module.exports = nativeDescription: "עברית", englishDescription: "Hebrew",
|
||||||
# tip_patience: "Patience you must have, young Padawan. - Yoda"
|
# tip_patience: "Patience you must have, young Padawan. - Yoda"
|
||||||
# tip_documented_bug: "A documented bug is not a bug; it is a feature."
|
# tip_documented_bug: "A documented bug is not a bug; it is a feature."
|
||||||
# tip_impossible: "It always seems impossible until it's done. - Nelson Mandela"
|
# tip_impossible: "It always seems impossible until it's done. - Nelson Mandela"
|
||||||
|
# tip_talk_is_cheap: "Talk is cheap. Show me the code. - Linus Torvalds"
|
||||||
|
# tip_first_language: "The most disastrous thing that you can ever learn is your first programming language. - Alan Kay"
|
||||||
# time_current: "Now:"
|
# time_current: "Now:"
|
||||||
# time_total: "Max:"
|
# time_total: "Max:"
|
||||||
# time_goto: "Go to:"
|
# time_goto: "Go to:"
|
||||||
|
|
|
@ -264,6 +264,8 @@ module.exports = nativeDescription: "मानक हिन्दी", englishDe
|
||||||
# tip_patience: "Patience you must have, young Padawan. - Yoda"
|
# tip_patience: "Patience you must have, young Padawan. - Yoda"
|
||||||
# tip_documented_bug: "A documented bug is not a bug; it is a feature."
|
# tip_documented_bug: "A documented bug is not a bug; it is a feature."
|
||||||
# tip_impossible: "It always seems impossible until it's done. - Nelson Mandela"
|
# tip_impossible: "It always seems impossible until it's done. - Nelson Mandela"
|
||||||
|
# tip_talk_is_cheap: "Talk is cheap. Show me the code. - Linus Torvalds"
|
||||||
|
# tip_first_language: "The most disastrous thing that you can ever learn is your first programming language. - Alan Kay"
|
||||||
# time_current: "Now:"
|
# time_current: "Now:"
|
||||||
# time_total: "Max:"
|
# time_total: "Max:"
|
||||||
# time_goto: "Go to:"
|
# time_goto: "Go to:"
|
||||||
|
|
|
@ -264,6 +264,8 @@ module.exports = nativeDescription: "magyar", englishDescription: "Hungarian", t
|
||||||
# tip_patience: "Patience you must have, young Padawan. - Yoda"
|
# tip_patience: "Patience you must have, young Padawan. - Yoda"
|
||||||
# tip_documented_bug: "A documented bug is not a bug; it is a feature."
|
# tip_documented_bug: "A documented bug is not a bug; it is a feature."
|
||||||
# tip_impossible: "It always seems impossible until it's done. - Nelson Mandela"
|
# tip_impossible: "It always seems impossible until it's done. - Nelson Mandela"
|
||||||
|
# tip_talk_is_cheap: "Talk is cheap. Show me the code. - Linus Torvalds"
|
||||||
|
# tip_first_language: "The most disastrous thing that you can ever learn is your first programming language. - Alan Kay"
|
||||||
# time_current: "Now:"
|
# time_current: "Now:"
|
||||||
# time_total: "Max:"
|
# time_total: "Max:"
|
||||||
# time_goto: "Go to:"
|
# time_goto: "Go to:"
|
||||||
|
|
|
@ -264,6 +264,8 @@ module.exports = nativeDescription: "Bahasa Indonesia", englishDescription: "Ind
|
||||||
# tip_patience: "Patience you must have, young Padawan. - Yoda"
|
# tip_patience: "Patience you must have, young Padawan. - Yoda"
|
||||||
# tip_documented_bug: "A documented bug is not a bug; it is a feature."
|
# tip_documented_bug: "A documented bug is not a bug; it is a feature."
|
||||||
# tip_impossible: "It always seems impossible until it's done. - Nelson Mandela"
|
# tip_impossible: "It always seems impossible until it's done. - Nelson Mandela"
|
||||||
|
# tip_talk_is_cheap: "Talk is cheap. Show me the code. - Linus Torvalds"
|
||||||
|
# tip_first_language: "The most disastrous thing that you can ever learn is your first programming language. - Alan Kay"
|
||||||
# time_current: "Now:"
|
# time_current: "Now:"
|
||||||
# time_total: "Max:"
|
# time_total: "Max:"
|
||||||
# time_goto: "Go to:"
|
# time_goto: "Go to:"
|
||||||
|
|
|
@ -264,6 +264,8 @@ module.exports = nativeDescription: "Italiano", englishDescription: "Italian", t
|
||||||
# tip_patience: "Patience you must have, young Padawan. - Yoda"
|
# tip_patience: "Patience you must have, young Padawan. - Yoda"
|
||||||
# tip_documented_bug: "A documented bug is not a bug; it is a feature."
|
# tip_documented_bug: "A documented bug is not a bug; it is a feature."
|
||||||
# tip_impossible: "It always seems impossible until it's done. - Nelson Mandela"
|
# tip_impossible: "It always seems impossible until it's done. - Nelson Mandela"
|
||||||
|
# tip_talk_is_cheap: "Talk is cheap. Show me the code. - Linus Torvalds"
|
||||||
|
# tip_first_language: "The most disastrous thing that you can ever learn is your first programming language. - Alan Kay"
|
||||||
# time_current: "Now:"
|
# time_current: "Now:"
|
||||||
# time_total: "Max:"
|
# time_total: "Max:"
|
||||||
# time_goto: "Go to:"
|
# time_goto: "Go to:"
|
||||||
|
|
|
@ -264,6 +264,8 @@ module.exports = nativeDescription: "日本語", englishDescription: "Japanese",
|
||||||
# tip_patience: "Patience you must have, young Padawan. - Yoda"
|
# tip_patience: "Patience you must have, young Padawan. - Yoda"
|
||||||
# tip_documented_bug: "A documented bug is not a bug; it is a feature."
|
# tip_documented_bug: "A documented bug is not a bug; it is a feature."
|
||||||
# tip_impossible: "It always seems impossible until it's done. - Nelson Mandela"
|
# tip_impossible: "It always seems impossible until it's done. - Nelson Mandela"
|
||||||
|
# tip_talk_is_cheap: "Talk is cheap. Show me the code. - Linus Torvalds"
|
||||||
|
# tip_first_language: "The most disastrous thing that you can ever learn is your first programming language. - Alan Kay"
|
||||||
# time_current: "Now:"
|
# time_current: "Now:"
|
||||||
# time_total: "Max:"
|
# time_total: "Max:"
|
||||||
# time_goto: "Go to:"
|
# time_goto: "Go to:"
|
||||||
|
|
|
@ -264,6 +264,8 @@ module.exports = nativeDescription: "한국어", englishDescription: "Korean", t
|
||||||
# tip_patience: "Patience you must have, young Padawan. - Yoda"
|
# tip_patience: "Patience you must have, young Padawan. - Yoda"
|
||||||
# tip_documented_bug: "A documented bug is not a bug; it is a feature."
|
# tip_documented_bug: "A documented bug is not a bug; it is a feature."
|
||||||
# tip_impossible: "It always seems impossible until it's done. - Nelson Mandela"
|
# tip_impossible: "It always seems impossible until it's done. - Nelson Mandela"
|
||||||
|
# tip_talk_is_cheap: "Talk is cheap. Show me the code. - Linus Torvalds"
|
||||||
|
# tip_first_language: "The most disastrous thing that you can ever learn is your first programming language. - Alan Kay"
|
||||||
# time_current: "Now:"
|
# time_current: "Now:"
|
||||||
# time_total: "Max:"
|
# time_total: "Max:"
|
||||||
# time_goto: "Go to:"
|
# time_goto: "Go to:"
|
||||||
|
|
|
@ -264,6 +264,8 @@ module.exports = nativeDescription: "lietuvių kalba", englishDescription: "Lith
|
||||||
# tip_patience: "Patience you must have, young Padawan. - Yoda"
|
# tip_patience: "Patience you must have, young Padawan. - Yoda"
|
||||||
# tip_documented_bug: "A documented bug is not a bug; it is a feature."
|
# tip_documented_bug: "A documented bug is not a bug; it is a feature."
|
||||||
# tip_impossible: "It always seems impossible until it's done. - Nelson Mandela"
|
# tip_impossible: "It always seems impossible until it's done. - Nelson Mandela"
|
||||||
|
# tip_talk_is_cheap: "Talk is cheap. Show me the code. - Linus Torvalds"
|
||||||
|
# tip_first_language: "The most disastrous thing that you can ever learn is your first programming language. - Alan Kay"
|
||||||
# time_current: "Now:"
|
# time_current: "Now:"
|
||||||
# time_total: "Max:"
|
# time_total: "Max:"
|
||||||
# time_goto: "Go to:"
|
# time_goto: "Go to:"
|
||||||
|
|
|
@ -9,7 +9,7 @@ module.exports = nativeDescription: "Bahasa Melayu", englishDescription: "Bahasa
|
||||||
# delay_1_sec: "1 second"
|
# delay_1_sec: "1 second"
|
||||||
# delay_3_sec: "3 seconds"
|
# delay_3_sec: "3 seconds"
|
||||||
# delay_5_sec: "5 seconds"
|
# delay_5_sec: "5 seconds"
|
||||||
# manual: "Manual"
|
manual: "Panduan"
|
||||||
# fork: "Fork"
|
# fork: "Fork"
|
||||||
play: "Mula"
|
play: "Mula"
|
||||||
|
|
||||||
|
@ -59,7 +59,7 @@ module.exports = nativeDescription: "Bahasa Melayu", englishDescription: "Bahasa
|
||||||
|
|
||||||
recover:
|
recover:
|
||||||
recover_account_title: "Dapatkan Kembali Akaun"
|
recover_account_title: "Dapatkan Kembali Akaun"
|
||||||
send_password: "Hantar kembali kata laluan"
|
send_password: "Hantar kembali kata-laluan"
|
||||||
|
|
||||||
signup:
|
signup:
|
||||||
# create_account_title: "Create Account to Save Progress"
|
# create_account_title: "Create Account to Save Progress"
|
||||||
|
@ -102,7 +102,7 @@ module.exports = nativeDescription: "Bahasa Melayu", englishDescription: "Bahasa
|
||||||
|
|
||||||
contact:
|
contact:
|
||||||
contact_us: "Hubungi CodeCombat"
|
contact_us: "Hubungi CodeCombat"
|
||||||
welcome: "Kami suka mendengar dari anda! Gunakan form ini dan hantar kami emel. "
|
welcome: "Kami gemar mendengar dari anda! Gunakan borang ini dan hantar emel kepada kami. "
|
||||||
contribute_prefix: "Jikalau anda berasa besar hati untuk menyumbang, sila lihat "
|
contribute_prefix: "Jikalau anda berasa besar hati untuk menyumbang, sila lihat "
|
||||||
contribute_page: "laman kami untuk menyumbang"
|
contribute_page: "laman kami untuk menyumbang"
|
||||||
# contribute_suffix: "!"
|
# contribute_suffix: "!"
|
||||||
|
@ -114,8 +114,8 @@ module.exports = nativeDescription: "Bahasa Melayu", englishDescription: "Bahasa
|
||||||
diplomat_suggestion:
|
diplomat_suggestion:
|
||||||
title: "Kami perlu menterjemahkan CodeCombat!"
|
title: "Kami perlu menterjemahkan CodeCombat!"
|
||||||
sub_heading: "Kami memerlukan kemahiran bahasa anda."
|
sub_heading: "Kami memerlukan kemahiran bahasa anda."
|
||||||
pitch_body: "Kami membina CodeCombat dalam Bahasa Inggeris, tetapi kami sudah ada pemain dari seluruh dunia. Kebanyakan mereka mahu bermain dalam Bahasa Melayu dan tidak memahami bahasa Inggeris, jikalau anda boleh tertutur dalam kedua-dua bahasa, harap anda boleh daftar untuk menjadi Diplomat dan menolong menterjemahkan laman CodeCombat dan kesemua level kepada Bahasa Melayu."
|
pitch_body: "Kami membina CodeCombat dalam Bahasa Inggeris, tetapi kami sudah ada pemain dari seluruh dunia. Kebanyakan mereka mahu bermain dalam Bahasa Melayu dan tidak memahami Bahasa Inggeris, jikalau anda boleh tertutur dalam kedua-dua bahasa, harap anda boleh daftar untuk menjadi Diplomat dan menolong menterjemahkan laman CodeCombat dan kesemua level kepada Bahasa Melayu."
|
||||||
missing_translations: "Sehingga kami dalam menterjemahkan kesemua kepada Bahasa Melayu, anda akan melihat Inggeris apabila Bahasa Melayu tiada dalam penterjemahan."
|
missing_translations: "Sehingga kami dapat menterjemahkan kesemua kepada Bahasa Melayu, anda akan melihat Bahasa Inggeris apabila Bahasa Melayu tiada dalam penterjemahan."
|
||||||
learn_more: "Ketahui lebih lanjut untuk menjadi ahli Diplomat"
|
learn_more: "Ketahui lebih lanjut untuk menjadi ahli Diplomat"
|
||||||
# subscribe_as_diplomat: "Subscribe as a Diplomat"
|
# subscribe_as_diplomat: "Subscribe as a Diplomat"
|
||||||
|
|
||||||
|
@ -131,35 +131,35 @@ module.exports = nativeDescription: "Bahasa Melayu", englishDescription: "Bahasa
|
||||||
# saturation: "Saturation"
|
# saturation: "Saturation"
|
||||||
# lightness: "Lightness"
|
# lightness: "Lightness"
|
||||||
|
|
||||||
# account_settings:
|
account_settings:
|
||||||
# title: "Account Settings"
|
# title: "Account Settings"
|
||||||
# not_logged_in: "Log in or create an account to change your settings."
|
not_logged_in: "Daftar masuk atau buat account untuk menukar \"setting\" anda."
|
||||||
# autosave: "Changes Save Automatically"
|
autosave: "Pengubahsuaian disimpan secara automatik"
|
||||||
# me_tab: "Me"
|
me_tab: "Saya"
|
||||||
# picture_tab: "Picture"
|
picture_tab: "Gambar"
|
||||||
# wizard_tab: "Wizard"
|
# wizard_tab: "Wizard"
|
||||||
# password_tab: "Password"
|
password_tab: "Kata-laluan"
|
||||||
# emails_tab: "Emails"
|
emails_tab: "Kesemua E-mel"
|
||||||
# admin: "Admin"
|
# admin: "Admin"
|
||||||
# gravatar_select: "Select which Gravatar photo to use"
|
gravatar_select: "Pilih mana gambar Gravatar photo digunakan"
|
||||||
# gravatar_add_photos: "Add thumbnails and photos to a Gravatar account for your email to choose an image."
|
gravatar_add_photos: "Tambah thumbnail and gambar-gambar kepada akaun Gravatar untuk emel anda untuk pilih imej."
|
||||||
# gravatar_add_more_photos: "Add more photos to your Gravatar account to access them here."
|
gravatar_add_more_photos: "Tambah lebih gambar kepada akaun Gravatar dan aksess dari sana."
|
||||||
# wizard_color: "Wizard Clothes Color"
|
# wizard_color: "Wizard Clothes Color"
|
||||||
# new_password: "New Password"
|
new_password: "Kata-laluan baru"
|
||||||
# new_password_verify: "Verify"
|
new_password_verify: "Verifikasi"
|
||||||
# email_subscriptions: "Email Subscriptions"
|
# email_subscriptions: "Email Subscriptions"
|
||||||
# email_announcements: "Announcements"
|
email_announcements: "Pengumuman"
|
||||||
# email_notifications: "Notifications"
|
email_notifications: "Notifikasi"
|
||||||
# email_notifications_description: "Get periodic notifications for your account."
|
# email_notifications_description: "Get periodic notifications for your account."
|
||||||
# email_announcements_description: "Get emails on the latest news and developments at CodeCombat."
|
# email_announcements_description: "Get emails on the latest news and developments at CodeCombat."
|
||||||
# contributor_emails: "Contributor Class Emails"
|
# contributor_emails: "Contributor Class Emails"
|
||||||
# contribute_prefix: "We're looking for people to join our party! Check out the "
|
contribute_prefix: "Kami sedang mencari orang untuk masuk 'parti' kami! Sila semak kepada "
|
||||||
# contribute_page: "contribute page"
|
contribute_page: "Laman untuk sumbangan"
|
||||||
# contribute_suffix: " to find out more."
|
contribute_suffix: " untuk mengetahui lebih lanjut."
|
||||||
# email_toggle: "Toggle All"
|
# email_toggle: "Toggle All"
|
||||||
# error_saving: "Error Saving"
|
error_saving: "Masalah menyimpan"
|
||||||
# saved: "Changes Saved"
|
saved: "Pengubahsuian disimpan"
|
||||||
# password_mismatch: "Password does not match."
|
password_mismatch: "Kata-laluan tidak sama."
|
||||||
|
|
||||||
account_profile:
|
account_profile:
|
||||||
# edit_settings: "Edit Settings"
|
# edit_settings: "Edit Settings"
|
||||||
|
@ -264,6 +264,8 @@ module.exports = nativeDescription: "Bahasa Melayu", englishDescription: "Bahasa
|
||||||
# tip_patience: "Patience you must have, young Padawan. - Yoda"
|
# tip_patience: "Patience you must have, young Padawan. - Yoda"
|
||||||
# tip_documented_bug: "A documented bug is not a bug; it is a feature."
|
# tip_documented_bug: "A documented bug is not a bug; it is a feature."
|
||||||
# tip_impossible: "It always seems impossible until it's done. - Nelson Mandela"
|
# tip_impossible: "It always seems impossible until it's done. - Nelson Mandela"
|
||||||
|
# tip_talk_is_cheap: "Talk is cheap. Show me the code. - Linus Torvalds"
|
||||||
|
# tip_first_language: "The most disastrous thing that you can ever learn is your first programming language. - Alan Kay"
|
||||||
# time_current: "Now:"
|
# time_current: "Now:"
|
||||||
# time_total: "Max:"
|
# time_total: "Max:"
|
||||||
# time_goto: "Go to:"
|
# time_goto: "Go to:"
|
||||||
|
@ -336,7 +338,7 @@ module.exports = nativeDescription: "Bahasa Melayu", englishDescription: "Bahasa
|
||||||
version: "Versi"
|
version: "Versi"
|
||||||
commit_msg: "Mesej Commit"
|
commit_msg: "Mesej Commit"
|
||||||
# history: "History"
|
# history: "History"
|
||||||
# version_history_for: "Version History for: "
|
version_history_for: "Versi History untuk: "
|
||||||
result: "Keputusan"
|
result: "Keputusan"
|
||||||
results: "Keputusan-keputusan"
|
results: "Keputusan-keputusan"
|
||||||
description: "Deskripsi"
|
description: "Deskripsi"
|
||||||
|
@ -360,16 +362,16 @@ module.exports = nativeDescription: "Bahasa Melayu", englishDescription: "Bahasa
|
||||||
about:
|
about:
|
||||||
who_is_codecombat: "Siapa adalah CodeCombat?"
|
who_is_codecombat: "Siapa adalah CodeCombat?"
|
||||||
why_codecombat: "Kenapa CodeCombat?"
|
why_codecombat: "Kenapa CodeCombat?"
|
||||||
who_description_prefix: "bersama memulai CodeCombat in 2013. Kami juga membuat (mengaturcara) "
|
who_description_prefix: "bersama memulai CodeCombat dalam 2013. Kami juga membuat (mengaturcara) "
|
||||||
who_description_suffix: "dalam 2008, mengembangkan ia kepada applikasi iOS dan applikasi web #1 untuk belajar menaip dalam karakter Cina dan Jepun."
|
who_description_suffix: "dalam 2008, mengembangkan ia kepada applikasi iOS dan applikasi web #1 untuk belajar menaip dalam karakter Cina dan Jepun."
|
||||||
who_description_ending: "Sekarang, sudah tiba masanya untuk mengajar orang untuk menaip kod."
|
who_description_ending: "Sekarang, sudah tiba masanya untuk mengajar orang untuk menaip kod."
|
||||||
# why_paragraph_1: "When making Skritter, George didn't know how to program and was constantly frustrated by his inability to implement his ideas. Afterwards, he tried learning, but the lessons were too slow. His housemate, wanting to reskill and stop teaching, tried Codecademy, but \"got bored.\" Each week another friend started Codecademy, then dropped off. We realized it was the same problem we'd solved with Skritter: people learning a skill via slow, intensive lessons when what they need is fast, extensive practice. We know how to fix that."
|
# why_paragraph_1: "When making Skritter, George didn't know how to program and was constantly frustrated by his inability to implement his ideas. Afterwards, he tried learning, but the lessons were too slow. His housemate, wanting to reskill and stop teaching, tried Codecademy, but \"got bored.\" Each week another friend started Codecademy, then dropped off. We realized it was the same problem we'd solved with Skritter: people learning a skill via slow, intensive lessons when what they need is fast, extensive practice. We know how to fix that."
|
||||||
why_paragraph_2: "Mahu belajar untuk membina kod? Anda tidak perlu membaca dan belajar. Anda perlu menaip kod yang banyak dan bersuka-suka dengan masa yang terluang."
|
why_paragraph_2: "Mahu belajar untuk membina kod? Anda tidak perlu membaca dan belajar. Anda perlu menaip kod yang banyak dan bersuka-suka dengan masa yang terluang."
|
||||||
why_paragraph_3_prefix: "Itulah semua tentang pengaturcaraan. Ia harus membuat anda gembira dan rasa berpuas hati. Tidak seperti"
|
why_paragraph_3_prefix: "Itulah semua mengenai pengaturcaraan. Ia harus membuat anda gembira dan rasa berpuas hati. Tidak seperti"
|
||||||
why_paragraph_3_italic: "yay satu badge"
|
why_paragraph_3_italic: "yay satu badge"
|
||||||
why_paragraph_3_center: "tapi bersukaria seperti"
|
why_paragraph_3_center: "tapi bersukaria seperti"
|
||||||
why_paragraph_3_italic_caps: "TIDAK MAK SAYA PERLU HABISKAN LEVEL!"
|
why_paragraph_3_italic_caps: "TIDAK MAK SAYA PERLU HABISKAN LEVEL!"
|
||||||
why_paragraph_3_suffix: "Itulah kenapa CodeCombat adalah permainan multiplayer, tapi bukan sebuah khursus dibuat sebagai permainan. Kami tidak akan berhenti sehingga kamu tidak akan--tetapi buat masa kini, itulah perkara yang baik."
|
why_paragraph_3_suffix: "Itulah kenapa CodeCombat adalah permainan multiplayer, tapi bukan sebuah khursus dibuat sebagai permainan. Kami tidak akan berhenti sehingga anda tidak--tetapi buat masa kini, itulah perkara yang terbaik."
|
||||||
why_paragraph_4: "Jika kamu mahu berasa ketagih terhadap sesuatu permainan komputer, jadilah ketagih kepada permainan ini dan jadilah seorang pakar dalam zaman teknologi terkini."
|
why_paragraph_4: "Jika kamu mahu berasa ketagih terhadap sesuatu permainan komputer, jadilah ketagih kepada permainan ini dan jadilah seorang pakar dalam zaman teknologi terkini."
|
||||||
why_ending: "Dan ia adalah percuma! "
|
why_ending: "Dan ia adalah percuma! "
|
||||||
why_ending_url: "Mulalah bermain sekarang!"
|
why_ending_url: "Mulalah bermain sekarang!"
|
||||||
|
@ -380,14 +382,14 @@ module.exports = nativeDescription: "Bahasa Melayu", englishDescription: "Bahasa
|
||||||
# michael_description: "Programmer, sys-admin, and undergrad technical wunderkind, Michael is the person keeping our servers online."
|
# michael_description: "Programmer, sys-admin, and undergrad technical wunderkind, Michael is the person keeping our servers online."
|
||||||
# glen_description: "Programmer and passionate game developer, with the motivation to make this world a better place, by developing things that matter. The word impossible can't be found in his dictionary. Learning new skills is his joy!"
|
# glen_description: "Programmer and passionate game developer, with the motivation to make this world a better place, by developing things that matter. The word impossible can't be found in his dictionary. Learning new skills is his joy!"
|
||||||
|
|
||||||
# legal:
|
legal:
|
||||||
# page_title: "Legal"
|
page_title: "Undang-Undang"
|
||||||
# opensource_intro: "CodeCombat is free to play and completely open source."
|
opensource_intro: "CodeCombat adalah percuma untuk bermain dan adalah open source."
|
||||||
# opensource_description_prefix: "Check out "
|
opensource_description_prefix: "Sila lihat "
|
||||||
# github_url: "our GitHub"
|
github_url: "GitHub kami"
|
||||||
# opensource_description_center: "and help out if you like! CodeCombat is built on dozens of open source projects, and we love them. See "
|
opensource_description_center: "dan sumbang seberapa mampu! CodeCombat dibina atas beberapa projek open source, dan kami menyukainya. Sila lihat "
|
||||||
# archmage_wiki_url: "our Archmage wiki"
|
# archmage_wiki_url: "our Archmage wiki"
|
||||||
# opensource_description_suffix: "for a list of the software that makes this game possible."
|
opensource_description_suffix: "senarai sofwe yang membolehkan permainan ini berfungsi."
|
||||||
# practices_title: "Respectful Best Practices"
|
# practices_title: "Respectful Best Practices"
|
||||||
# practices_description: "These are our promises to you, the player, in slightly less legalese."
|
# practices_description: "These are our promises to you, the player, in slightly less legalese."
|
||||||
# privacy_title: "Privacy"
|
# privacy_title: "Privacy"
|
||||||
|
@ -399,26 +401,27 @@ module.exports = nativeDescription: "Bahasa Melayu", englishDescription: "Bahasa
|
||||||
# email_settings_url: "your email settings"
|
# email_settings_url: "your email settings"
|
||||||
# email_description_suffix: "or through links in the emails we send, you can change your preferences and easily unsubscribe at any time."
|
# email_description_suffix: "or through links in the emails we send, you can change your preferences and easily unsubscribe at any time."
|
||||||
# cost_title: "Cost"
|
# cost_title: "Cost"
|
||||||
# cost_description: "Currently, CodeCombat is 100% free! One of our main goals is to keep it that way, so that as many people can play as possible, regardless of place in life. If the sky darkens, we might have to charge subscriptions or for some content, but we'd rather not. With any luck, we'll be able to sustain the company with:"
|
cost_description: "Buat masa ini, CodeCombat adalah 100% percuma! salah satu daripada tujuan kami adalah untuk membiarkan ia sebegitu, supaya ramai boleh bermain, di mana sahaja mereka berada. Jikalau langit menjadi gelap untuk kami, kami akan mengecaj untuk langganan atau untuk beberapa muatan, tapi kami lebih suka untuk tidak berbuat demikian. Jika kami bernasib baik, kami dapat menanggung syarikat kami dengan:"
|
||||||
|
|
||||||
# recruitment_title: "Recruitment"
|
# recruitment_title: "Recruitment"
|
||||||
# recruitment_description_prefix: "Here on CodeCombat, you're going to become a powerful wizard–not just in the game, but also in real life."
|
# recruitment_description_prefix: "Here on CodeCombat, you're going to become a powerful wizard–not just in the game, but also in real life."
|
||||||
# url_hire_programmers: "No one can hire programmers fast enough"
|
# url_hire_programmers: "No one can hire programmers fast enough"
|
||||||
# recruitment_description_suffix: "so once you've sharpened your skills and if you agree, we will demo your best coding accomplishments to the thousands of employers who are drooling for the chance to hire you. They pay us a little, they pay you"
|
# recruitment_description_suffix: "so once you've sharpened your skills and if you agree, we will demo your best coding accomplishments to the thousands of employers who are drooling for the chance to hire you. They pay us a little, they pay you"
|
||||||
# recruitment_description_italic: "a lot"
|
# recruitment_description_italic: "a lot"
|
||||||
# recruitment_description_ending: "the site remains free and everybody's happy. That's the plan."
|
# recruitment_description_ending: "the site remains free and everybody's happy. That's the plan."
|
||||||
# copyrights_title: "Copyrights and Licenses"
|
copyrights_title: "Hakcipta dan Pemelesenan"
|
||||||
# contributor_title: "Contributor License Agreement"
|
contributor_title: "Persetujuan Lesen Penyumbang"
|
||||||
# contributor_description_prefix: "All contributions, both on the site and on our GitHub repository, are subject to our"
|
contributor_description_prefix: "Kesemua sumbangan, termasuk di dalam laman dan di dalam repositiri GitHub, tertakluk kepada"
|
||||||
# cla_url: "CLA"
|
# cla_url: "CLA"
|
||||||
# contributor_description_suffix: "to which you should agree before contributing."
|
contributor_description_suffix: "di mana harus dipersetujui sebelum menyumbang."
|
||||||
# code_title: "Code - MIT"
|
# code_title: "Code - MIT"
|
||||||
# code_description_prefix: "All code owned by CodeCombat or hosted on codecombat.com, both in the GitHub repository or in the codecombat.com database, is licensed under the"
|
code_description_prefix: "Kesemua kod yang dimiliki CodeCombat atau dihos di codecombat.com, termasuk di dalam repositori GitHub dan database codecombat.com, dilesenkan di bawah"
|
||||||
# mit_license_url: "MIT license"
|
# mit_license_url: "MIT license"
|
||||||
# code_description_suffix: "This includes all code in Systems and Components that are made available by CodeCombat for the purpose of creating levels."
|
code_description_suffix: "Ini termasuk kesemua kod Sistem dan Komponen yang sudah sedia ada untuk CodeCombat untuk membina level."
|
||||||
# art_title: "Art/Music - Creative Commons "
|
# art_title: "Art/Music - Creative Commons "
|
||||||
# art_description_prefix: "All common content is available under the"
|
art_description_prefix: "Kesemua muatan umum boleh didapat di bawah"
|
||||||
# cc_license_url: "Creative Commons Attribution 4.0 International License"
|
# cc_license_url: "Creative Commons Attribution 4.0 International License"
|
||||||
# art_description_suffix: "Common content is anything made generally available by CodeCombat for the purpose of creating Levels. This includes:"
|
# art_description_suffix: "Common content is anything made generally available by CodeCombat for the purpose of creating Levels. This includes:"
|
||||||
# art_music: "Music"
|
# art_music: "Music"
|
||||||
# art_sound: "Sound"
|
# art_sound: "Sound"
|
||||||
# art_artwork: "Artwork"
|
# art_artwork: "Artwork"
|
||||||
|
|
|
@ -264,6 +264,8 @@ module.exports = nativeDescription: "Norsk Bokmål", englishDescription: "Norweg
|
||||||
# tip_patience: "Patience you must have, young Padawan. - Yoda"
|
# tip_patience: "Patience you must have, young Padawan. - Yoda"
|
||||||
# tip_documented_bug: "A documented bug is not a bug; it is a feature."
|
# tip_documented_bug: "A documented bug is not a bug; it is a feature."
|
||||||
# tip_impossible: "It always seems impossible until it's done. - Nelson Mandela"
|
# tip_impossible: "It always seems impossible until it's done. - Nelson Mandela"
|
||||||
|
# tip_talk_is_cheap: "Talk is cheap. Show me the code. - Linus Torvalds"
|
||||||
|
# tip_first_language: "The most disastrous thing that you can ever learn is your first programming language. - Alan Kay"
|
||||||
# time_current: "Now:"
|
# time_current: "Now:"
|
||||||
# time_total: "Max:"
|
# time_total: "Max:"
|
||||||
# time_goto: "Go to:"
|
# time_goto: "Go to:"
|
||||||
|
|
|
@ -264,6 +264,8 @@ module.exports = nativeDescription: "Nederlands (België)", englishDescription:
|
||||||
tip_patience: "Geduld moet je hebben, jonge Padawan. - Yoda"
|
tip_patience: "Geduld moet je hebben, jonge Padawan. - Yoda"
|
||||||
tip_documented_bug: "Een gedocumenteerde fout is geen fout; het is deel van het programma."
|
tip_documented_bug: "Een gedocumenteerde fout is geen fout; het is deel van het programma."
|
||||||
tip_impossible: "Het lijkt altijd onmogelijk tot het gedaan wordt. - Nelson Mandela"
|
tip_impossible: "Het lijkt altijd onmogelijk tot het gedaan wordt. - Nelson Mandela"
|
||||||
|
# tip_talk_is_cheap: "Talk is cheap. Show me the code. - Linus Torvalds"
|
||||||
|
# tip_first_language: "The most disastrous thing that you can ever learn is your first programming language. - Alan Kay"
|
||||||
time_current: "Nu:"
|
time_current: "Nu:"
|
||||||
time_total: "Maximum:"
|
time_total: "Maximum:"
|
||||||
time_goto: "Ga naar:"
|
time_goto: "Ga naar:"
|
||||||
|
|
|
@ -264,6 +264,8 @@ module.exports = nativeDescription: "Nederlands (Nederland)", englishDescription
|
||||||
tip_patience: "Geduld moet je hebben, jonge Padawan. - Yoda"
|
tip_patience: "Geduld moet je hebben, jonge Padawan. - Yoda"
|
||||||
tip_documented_bug: "Een gedocumenteerde fout is geen fout; het is deel van het programma."
|
tip_documented_bug: "Een gedocumenteerde fout is geen fout; het is deel van het programma."
|
||||||
tip_impossible: "Het lijkt altijd onmogelijk tot het gedaan wordt. - Nelson Mandela"
|
tip_impossible: "Het lijkt altijd onmogelijk tot het gedaan wordt. - Nelson Mandela"
|
||||||
|
# tip_talk_is_cheap: "Talk is cheap. Show me the code. - Linus Torvalds"
|
||||||
|
# tip_first_language: "The most disastrous thing that you can ever learn is your first programming language. - Alan Kay"
|
||||||
time_current: "Nu:"
|
time_current: "Nu:"
|
||||||
time_total: "Maximum:"
|
time_total: "Maximum:"
|
||||||
time_goto: "Ga naar:"
|
time_goto: "Ga naar:"
|
||||||
|
|
|
@ -264,6 +264,8 @@ module.exports = nativeDescription: "Nederlands", englishDescription: "Dutch", t
|
||||||
tip_patience: "Geduld moet je hebben, jonge Padawan. - Yoda"
|
tip_patience: "Geduld moet je hebben, jonge Padawan. - Yoda"
|
||||||
tip_documented_bug: "Een gedocumenteerde fout is geen fout; het is deel van het programma."
|
tip_documented_bug: "Een gedocumenteerde fout is geen fout; het is deel van het programma."
|
||||||
tip_impossible: "Het lijkt altijd onmogelijk tot het gedaan wordt. - Nelson Mandela"
|
tip_impossible: "Het lijkt altijd onmogelijk tot het gedaan wordt. - Nelson Mandela"
|
||||||
|
# tip_talk_is_cheap: "Talk is cheap. Show me the code. - Linus Torvalds"
|
||||||
|
# tip_first_language: "The most disastrous thing that you can ever learn is your first programming language. - Alan Kay"
|
||||||
time_current: "Nu:"
|
time_current: "Nu:"
|
||||||
time_total: "Maximum:"
|
time_total: "Maximum:"
|
||||||
time_goto: "Ga naar:"
|
time_goto: "Ga naar:"
|
||||||
|
|
|
@ -264,6 +264,8 @@ module.exports = nativeDescription: "Norwegian Nynorsk", englishDescription: "No
|
||||||
# tip_patience: "Patience you must have, young Padawan. - Yoda"
|
# tip_patience: "Patience you must have, young Padawan. - Yoda"
|
||||||
# tip_documented_bug: "A documented bug is not a bug; it is a feature."
|
# tip_documented_bug: "A documented bug is not a bug; it is a feature."
|
||||||
# tip_impossible: "It always seems impossible until it's done. - Nelson Mandela"
|
# tip_impossible: "It always seems impossible until it's done. - Nelson Mandela"
|
||||||
|
# tip_talk_is_cheap: "Talk is cheap. Show me the code. - Linus Torvalds"
|
||||||
|
# tip_first_language: "The most disastrous thing that you can ever learn is your first programming language. - Alan Kay"
|
||||||
# time_current: "Now:"
|
# time_current: "Now:"
|
||||||
# time_total: "Max:"
|
# time_total: "Max:"
|
||||||
# time_goto: "Go to:"
|
# time_goto: "Go to:"
|
||||||
|
|
|
@ -264,6 +264,8 @@ module.exports = nativeDescription: "Norsk", englishDescription: "Norwegian", tr
|
||||||
# tip_patience: "Patience you must have, young Padawan. - Yoda"
|
# tip_patience: "Patience you must have, young Padawan. - Yoda"
|
||||||
# tip_documented_bug: "A documented bug is not a bug; it is a feature."
|
# tip_documented_bug: "A documented bug is not a bug; it is a feature."
|
||||||
# tip_impossible: "It always seems impossible until it's done. - Nelson Mandela"
|
# tip_impossible: "It always seems impossible until it's done. - Nelson Mandela"
|
||||||
|
# tip_talk_is_cheap: "Talk is cheap. Show me the code. - Linus Torvalds"
|
||||||
|
# tip_first_language: "The most disastrous thing that you can ever learn is your first programming language. - Alan Kay"
|
||||||
# time_current: "Now:"
|
# time_current: "Now:"
|
||||||
# time_total: "Max:"
|
# time_total: "Max:"
|
||||||
# time_goto: "Go to:"
|
# time_goto: "Go to:"
|
||||||
|
|
|
@ -264,6 +264,8 @@ module.exports = nativeDescription: "język polski", englishDescription: "Polish
|
||||||
# tip_patience: "Patience you must have, young Padawan. - Yoda"
|
# tip_patience: "Patience you must have, young Padawan. - Yoda"
|
||||||
# tip_documented_bug: "A documented bug is not a bug; it is a feature."
|
# tip_documented_bug: "A documented bug is not a bug; it is a feature."
|
||||||
# tip_impossible: "It always seems impossible until it's done. - Nelson Mandela"
|
# tip_impossible: "It always seems impossible until it's done. - Nelson Mandela"
|
||||||
|
# tip_talk_is_cheap: "Talk is cheap. Show me the code. - Linus Torvalds"
|
||||||
|
# tip_first_language: "The most disastrous thing that you can ever learn is your first programming language. - Alan Kay"
|
||||||
# time_current: "Now:"
|
# time_current: "Now:"
|
||||||
# time_total: "Max:"
|
# time_total: "Max:"
|
||||||
# time_goto: "Go to:"
|
# time_goto: "Go to:"
|
||||||
|
|
|
@ -5,7 +5,7 @@ module.exports = nativeDescription: "português do Brasil", englishDescription:
|
||||||
sending: "Enviando..."
|
sending: "Enviando..."
|
||||||
cancel: "Cancelar"
|
cancel: "Cancelar"
|
||||||
save: "Salvar"
|
save: "Salvar"
|
||||||
# create: "Create"
|
create: "Criar"
|
||||||
delay_1_sec: "1 segundo"
|
delay_1_sec: "1 segundo"
|
||||||
delay_3_sec: "3 segundos"
|
delay_3_sec: "3 segundos"
|
||||||
delay_5_sec: "5 segundos"
|
delay_5_sec: "5 segundos"
|
||||||
|
@ -13,13 +13,13 @@ module.exports = nativeDescription: "português do Brasil", englishDescription:
|
||||||
fork: "Fork"
|
fork: "Fork"
|
||||||
play: "Jogar"
|
play: "Jogar"
|
||||||
|
|
||||||
# units:
|
unidades:
|
||||||
# second: "second"
|
second: "segundo"
|
||||||
# seconds: "seconds"
|
seconds: "segundos"
|
||||||
# minute: "minute"
|
minute: "minuto"
|
||||||
# minutes: "minutes"
|
minutes: "minutos"
|
||||||
# hour: "hour"
|
hour: "hora"
|
||||||
# hours: "hours"
|
hours: "horas"
|
||||||
|
|
||||||
modal:
|
modal:
|
||||||
close: "Fechar"
|
close: "Fechar"
|
||||||
|
@ -53,7 +53,7 @@ module.exports = nativeDescription: "português do Brasil", englishDescription:
|
||||||
login:
|
login:
|
||||||
sign_up: "Criar conta"
|
sign_up: "Criar conta"
|
||||||
log_in: "Entrar"
|
log_in: "Entrar"
|
||||||
# logging_in: "Logging In"
|
logging_in: "Entrando"
|
||||||
log_out: "Sair"
|
log_out: "Sair"
|
||||||
recover: "Recuperar sua conta"
|
recover: "Recuperar sua conta"
|
||||||
|
|
||||||
|
@ -264,6 +264,8 @@ module.exports = nativeDescription: "português do Brasil", englishDescription:
|
||||||
# tip_patience: "Patience you must have, young Padawan. - Yoda"
|
# tip_patience: "Patience you must have, young Padawan. - Yoda"
|
||||||
# tip_documented_bug: "A documented bug is not a bug; it is a feature."
|
# tip_documented_bug: "A documented bug is not a bug; it is a feature."
|
||||||
# tip_impossible: "It always seems impossible until it's done. - Nelson Mandela"
|
# tip_impossible: "It always seems impossible until it's done. - Nelson Mandela"
|
||||||
|
# tip_talk_is_cheap: "Talk is cheap. Show me the code. - Linus Torvalds"
|
||||||
|
# tip_first_language: "The most disastrous thing that you can ever learn is your first programming language. - Alan Kay"
|
||||||
# time_current: "Now:"
|
# time_current: "Now:"
|
||||||
# time_total: "Max:"
|
# time_total: "Max:"
|
||||||
# time_goto: "Go to:"
|
# time_goto: "Go to:"
|
||||||
|
|
|
@ -264,6 +264,8 @@ module.exports = nativeDescription: "Português europeu", englishDescription: "P
|
||||||
# tip_patience: "Patience you must have, young Padawan. - Yoda"
|
# tip_patience: "Patience you must have, young Padawan. - Yoda"
|
||||||
# tip_documented_bug: "A documented bug is not a bug; it is a feature."
|
# tip_documented_bug: "A documented bug is not a bug; it is a feature."
|
||||||
# tip_impossible: "It always seems impossible until it's done. - Nelson Mandela"
|
# tip_impossible: "It always seems impossible until it's done. - Nelson Mandela"
|
||||||
|
# tip_talk_is_cheap: "Talk is cheap. Show me the code. - Linus Torvalds"
|
||||||
|
# tip_first_language: "The most disastrous thing that you can ever learn is your first programming language. - Alan Kay"
|
||||||
# time_current: "Now:"
|
# time_current: "Now:"
|
||||||
# time_total: "Max:"
|
# time_total: "Max:"
|
||||||
# time_goto: "Go to:"
|
# time_goto: "Go to:"
|
||||||
|
|
|
@ -264,6 +264,8 @@ module.exports = nativeDescription: "português", englishDescription: "Portugues
|
||||||
# tip_patience: "Patience you must have, young Padawan. - Yoda"
|
# tip_patience: "Patience you must have, young Padawan. - Yoda"
|
||||||
# tip_documented_bug: "A documented bug is not a bug; it is a feature."
|
# tip_documented_bug: "A documented bug is not a bug; it is a feature."
|
||||||
# tip_impossible: "It always seems impossible until it's done. - Nelson Mandela"
|
# tip_impossible: "It always seems impossible until it's done. - Nelson Mandela"
|
||||||
|
# tip_talk_is_cheap: "Talk is cheap. Show me the code. - Linus Torvalds"
|
||||||
|
# tip_first_language: "The most disastrous thing that you can ever learn is your first programming language. - Alan Kay"
|
||||||
# time_current: "Now:"
|
# time_current: "Now:"
|
||||||
# time_total: "Max:"
|
# time_total: "Max:"
|
||||||
# time_goto: "Go to:"
|
# time_goto: "Go to:"
|
||||||
|
|
|
@ -5,7 +5,7 @@ module.exports = nativeDescription: "limba română", englishDescription: "Roman
|
||||||
sending: "Se trimite..."
|
sending: "Se trimite..."
|
||||||
cancel: "Anulează"
|
cancel: "Anulează"
|
||||||
save: "Salvează"
|
save: "Salvează"
|
||||||
# create: "Create"
|
create: "Crează"
|
||||||
delay_1_sec: "1 secundă"
|
delay_1_sec: "1 secundă"
|
||||||
delay_3_sec: "3 secunde"
|
delay_3_sec: "3 secunde"
|
||||||
delay_5_sec: "5 secunde"
|
delay_5_sec: "5 secunde"
|
||||||
|
@ -13,13 +13,13 @@ module.exports = nativeDescription: "limba română", englishDescription: "Roman
|
||||||
fork: "Fork"
|
fork: "Fork"
|
||||||
play: "Joacă"
|
play: "Joacă"
|
||||||
|
|
||||||
# units:
|
units:
|
||||||
# second: "second"
|
second: "secundă"
|
||||||
# seconds: "seconds"
|
seconds: "secunde"
|
||||||
# minute: "minute"
|
minute: "minut"
|
||||||
# minutes: "minutes"
|
minutes: "minute"
|
||||||
# hour: "hour"
|
hour: "oră"
|
||||||
# hours: "hours"
|
hours: "ore"
|
||||||
|
|
||||||
modal:
|
modal:
|
||||||
close: "Inchide"
|
close: "Inchide"
|
||||||
|
@ -53,7 +53,7 @@ module.exports = nativeDescription: "limba română", englishDescription: "Roman
|
||||||
login:
|
login:
|
||||||
sign_up: "Crează cont"
|
sign_up: "Crează cont"
|
||||||
log_in: "Log In"
|
log_in: "Log In"
|
||||||
# logging_in: "Logging In"
|
logging_in: "Se conectează"
|
||||||
log_out: "Log Out"
|
log_out: "Log Out"
|
||||||
recover: "recuperează cont"
|
recover: "recuperează cont"
|
||||||
|
|
||||||
|
@ -226,8 +226,8 @@ module.exports = nativeDescription: "limba română", englishDescription: "Roman
|
||||||
skip_tutorial: "Sari peste (esc)"
|
skip_tutorial: "Sari peste (esc)"
|
||||||
editor_config: "Editor Config"
|
editor_config: "Editor Config"
|
||||||
editor_config_title: "Configurare Editor"
|
editor_config_title: "Configurare Editor"
|
||||||
# editor_config_language_label: "Programming Language"
|
editor_config_language_label: "Limbaj de Programare"
|
||||||
# editor_config_language_description: "Define the programming language you want to code in."
|
editor_config_language_description: "Definește limbajul de programare în care vrei să codezi."
|
||||||
editor_config_keybindings_label: "Mapare taste"
|
editor_config_keybindings_label: "Mapare taste"
|
||||||
editor_config_keybindings_default: "Default (Ace)"
|
editor_config_keybindings_default: "Default (Ace)"
|
||||||
editor_config_keybindings_description: "Adaugă comenzi rapide suplimentare cunoscute din editoarele obisnuite."
|
editor_config_keybindings_description: "Adaugă comenzi rapide suplimentare cunoscute din editoarele obisnuite."
|
||||||
|
@ -246,17 +246,17 @@ module.exports = nativeDescription: "limba română", englishDescription: "Roman
|
||||||
tip_beta_launch: "CodeCombat a fost lansat beta in Octombrie 2013."
|
tip_beta_launch: "CodeCombat a fost lansat beta in Octombrie 2013."
|
||||||
tip_js_beginning: "JavaScript este doar începutul."
|
tip_js_beginning: "JavaScript este doar începutul."
|
||||||
tip_autocast_setting: "Ajutează setările de autocast apăsând pe rotița de pe buton."
|
tip_autocast_setting: "Ajutează setările de autocast apăsând pe rotița de pe buton."
|
||||||
# think_solution: "Think of the solution, not the problem."
|
think_solution: "Gândește-te la soluție, nu la problemă."
|
||||||
# tip_theory_practice: "In theory, there is no difference between theory and practice. But in practice, there is. - Yogi Berra"
|
tip_theory_practice: "Teoretic nu este nici o diferență înte teorie și practică. Dar practic este. - Yogi Berra"
|
||||||
# tip_error_free: "There are two ways to write error-free programs; only the third one works. - Alan Perlis"
|
tip_error_free: "Există doar două metode de a scrie un program fără erori; numai a treia funcționează. - Alan Perlis"
|
||||||
# tip_debugging_program: "If debugging is the process of removing bugs, then programming must be the process of putting them in. - Edsger W. Dijkstra"
|
tip_debugging_program: "Dacă a face debuggin este procesul de a scoate bug-uri, atunci a programa este procesul de a introduce bug-uri. - Edsger W. Dijkstra"
|
||||||
# tip_forums: "Head over to the forums and tell us what you think!"
|
tip_forums: "Intră pe forum și spune-ți părerea!"
|
||||||
tip_baby_coders: "În vitor până și bebelușii vor fi Archmage."
|
tip_baby_coders: "În vitor până și bebelușii vor fi Archmage."
|
||||||
tip_morale_improves: "Se va încărca până până când va crește moralul."
|
tip_morale_improves: "Se va încărca până până când va crește moralul."
|
||||||
tip_all_species: "Noi credem în șanse egale de a învăța programare pentru toate speciile."
|
tip_all_species: "Noi credem în șanse egale de a învăța programare pentru toate speciile."
|
||||||
# tip_reticulating: "Reticulating spines."
|
tip_reticulating: "Reticulating spines."
|
||||||
tip_harry: "Ha un Wizard, "
|
tip_harry: "Ha un Wizard, "
|
||||||
# tip_great_responsibility: "With great coding skill comes great debug responsibility."
|
tip_great_responsibility: "With great coding skill comes great debug responsibility."
|
||||||
# tip_munchkin: "If you don't eat your vegetables, a munchkin will come after you while you're asleep."
|
# tip_munchkin: "If you don't eat your vegetables, a munchkin will come after you while you're asleep."
|
||||||
# tip_binary: "There are only 10 types of people in the world: those who understand binary, and those who don't."
|
# tip_binary: "There are only 10 types of people in the world: those who understand binary, and those who don't."
|
||||||
# tip_commitment_yoda: "A programmer must have the deepest commitment, the most serious mind. ~ Yoda"
|
# tip_commitment_yoda: "A programmer must have the deepest commitment, the most serious mind. ~ Yoda"
|
||||||
|
@ -264,6 +264,8 @@ module.exports = nativeDescription: "limba română", englishDescription: "Roman
|
||||||
# tip_patience: "Patience you must have, young Padawan. - Yoda"
|
# tip_patience: "Patience you must have, young Padawan. - Yoda"
|
||||||
# tip_documented_bug: "A documented bug is not a bug; it is a feature."
|
# tip_documented_bug: "A documented bug is not a bug; it is a feature."
|
||||||
# tip_impossible: "It always seems impossible until it's done. - Nelson Mandela"
|
# tip_impossible: "It always seems impossible until it's done. - Nelson Mandela"
|
||||||
|
# tip_talk_is_cheap: "Talk is cheap. Show me the code. - Linus Torvalds"
|
||||||
|
# tip_first_language: "The most disastrous thing that you can ever learn is your first programming language. - Alan Kay"
|
||||||
# time_current: "Now:"
|
# time_current: "Now:"
|
||||||
# time_total: "Max:"
|
# time_total: "Max:"
|
||||||
# time_goto: "Go to:"
|
# time_goto: "Go to:"
|
||||||
|
@ -585,16 +587,16 @@ module.exports = nativeDescription: "limba română", englishDescription: "Roman
|
||||||
warmup: "Încălzire"
|
warmup: "Încălzire"
|
||||||
vs: "VS"
|
vs: "VS"
|
||||||
|
|
||||||
# multiplayer_launch:
|
multiplayer_launch:
|
||||||
# introducing_dungeon_arena: "Introducing Dungeon Arena"
|
introducing_dungeon_arena: "Prezentăm Dungeon Arena"
|
||||||
# new_way: "The new way to compete with code."
|
new_way: "Noul mod de a concura prin linii de cod."
|
||||||
# to_battle: "To Battle, Developers!"
|
to_battle: "La luptă, Developers!"
|
||||||
# modern_day_sorcerer: "You know how to code? That's badass. You're a modern-day sorcerer! Isn't about time that you used your magic coding powers to command your minions in epic combat? And we're not talking robots here."
|
modern_day_sorcerer: "Știi să programezie? Tare. Ești un vrăjitor al noii ere! Nu crezi ca este timpul să îți folosești puterile de programare pentru a conduce în lupte epice minionii tăi? Și nu vorbim despre roboți aici."
|
||||||
# arenas_are_here: "CodeCombat head-to-head multiplayer arenas are here."
|
arenas_are_here: "Arenele CodeCombat multiplayer 1v1 sunt aici."
|
||||||
# ladder_explanation: "Choose your heroes, enchant your human or ogre armies, and climb your way over defeated fellow Wizards to reach the top of the ladders–then challenge your friends in our glorious, asynchronous multiplayer coding arenas. If you're feeling creative, you can even"
|
ladder_explanation: "Alegeți eroii,vrăjește armatele de orci sau oameni, și croiește-ți drumul luptând și învingând alți Vrăjitori pentru a ajunge în topul clasamentului. Dacă te simți creativ poți chiar să"
|
||||||
# fork_our_arenas: "fork our arenas"
|
fork_our_arenas: "să dai fork la arenele noastre"
|
||||||
# create_worlds: "and create your own worlds."
|
create_worlds: "și să îți creezi propriile lumi."
|
||||||
# javascript_rusty: "JavaScript a bit rusty? Don't worry; there's a"
|
javascript_rusty: "N-ai mai pus mâna pe JavaScript? Nicio problemă; există un"
|
||||||
# tutorial: "tutorial"
|
tutorial: "tutorial"
|
||||||
# new_to_programming: ". New to programming? Hit our beginner campaign to skill up."
|
new_to_programming: ". Nou in tainele programării? Încearcă campania de începători pentru ați dezolvata abilitățile."
|
||||||
# so_ready: "I Am So Ready for This"
|
so_ready: "Sunt atât de pregătit pentru asta!"
|
||||||
|
|
|
@ -226,8 +226,8 @@ module.exports = nativeDescription: "русский", englishDescription: "Russi
|
||||||
skip_tutorial: "Пропуск (Esc)"
|
skip_tutorial: "Пропуск (Esc)"
|
||||||
editor_config: "Настройки редактора"
|
editor_config: "Настройки редактора"
|
||||||
editor_config_title: "Настройки редактора"
|
editor_config_title: "Настройки редактора"
|
||||||
# editor_config_language_label: "Programming Language"
|
editor_config_language_label: "Язык программирования"
|
||||||
# editor_config_language_description: "Define the programming language you want to code in."
|
editor_config_language_description: "Определяет язык, на котором вы хотите программировать."
|
||||||
editor_config_keybindings_label: "Сочетания клавиш"
|
editor_config_keybindings_label: "Сочетания клавиш"
|
||||||
editor_config_keybindings_default: "По умолчанию (Ace)"
|
editor_config_keybindings_default: "По умолчанию (Ace)"
|
||||||
editor_config_keybindings_description: "Добавляет дополнительные сочетания, известные из популярных редакторов."
|
editor_config_keybindings_description: "Добавляет дополнительные сочетания, известные из популярных редакторов."
|
||||||
|
@ -264,6 +264,8 @@ module.exports = nativeDescription: "русский", englishDescription: "Russi
|
||||||
tip_patience: "Терпением ты обладать должен, юный падаван. - Yoda"
|
tip_patience: "Терпением ты обладать должен, юный падаван. - Yoda"
|
||||||
tip_documented_bug: "Документированный баг не является багом; это фича."
|
tip_documented_bug: "Документированный баг не является багом; это фича."
|
||||||
tip_impossible: "Это всегда кажется невозможным, пока не сделано. - Nelson Mandela"
|
tip_impossible: "Это всегда кажется невозможным, пока не сделано. - Nelson Mandela"
|
||||||
|
tip_talk_is_cheap: "Слова ничего не стоят. Покажи мне код. - Linus Torvalds"
|
||||||
|
tip_first_language: "Наиболее катастрофическая вещь, которую вы можете выучить - ваш первый язык программирования. - Alan Kay"
|
||||||
time_current: "Текущее:"
|
time_current: "Текущее:"
|
||||||
time_total: "Максимальное:"
|
time_total: "Максимальное:"
|
||||||
time_goto: "Перейти на:"
|
time_goto: "Перейти на:"
|
||||||
|
|
|
@ -264,6 +264,8 @@ module.exports = nativeDescription: "slovenčina", englishDescription: "Slovak",
|
||||||
# tip_patience: "Patience you must have, young Padawan. - Yoda"
|
# tip_patience: "Patience you must have, young Padawan. - Yoda"
|
||||||
# tip_documented_bug: "A documented bug is not a bug; it is a feature."
|
# tip_documented_bug: "A documented bug is not a bug; it is a feature."
|
||||||
# tip_impossible: "It always seems impossible until it's done. - Nelson Mandela"
|
# tip_impossible: "It always seems impossible until it's done. - Nelson Mandela"
|
||||||
|
# tip_talk_is_cheap: "Talk is cheap. Show me the code. - Linus Torvalds"
|
||||||
|
# tip_first_language: "The most disastrous thing that you can ever learn is your first programming language. - Alan Kay"
|
||||||
# time_current: "Now:"
|
# time_current: "Now:"
|
||||||
# time_total: "Max:"
|
# time_total: "Max:"
|
||||||
# time_goto: "Go to:"
|
# time_goto: "Go to:"
|
||||||
|
|
|
@ -264,6 +264,8 @@ module.exports = nativeDescription: "slovenščina", englishDescription: "Sloven
|
||||||
# tip_patience: "Patience you must have, young Padawan. - Yoda"
|
# tip_patience: "Patience you must have, young Padawan. - Yoda"
|
||||||
# tip_documented_bug: "A documented bug is not a bug; it is a feature."
|
# tip_documented_bug: "A documented bug is not a bug; it is a feature."
|
||||||
# tip_impossible: "It always seems impossible until it's done. - Nelson Mandela"
|
# tip_impossible: "It always seems impossible until it's done. - Nelson Mandela"
|
||||||
|
# tip_talk_is_cheap: "Talk is cheap. Show me the code. - Linus Torvalds"
|
||||||
|
# tip_first_language: "The most disastrous thing that you can ever learn is your first programming language. - Alan Kay"
|
||||||
# time_current: "Now:"
|
# time_current: "Now:"
|
||||||
# time_total: "Max:"
|
# time_total: "Max:"
|
||||||
# time_goto: "Go to:"
|
# time_goto: "Go to:"
|
||||||
|
|
|
@ -264,6 +264,8 @@ module.exports = nativeDescription: "српски", englishDescription: "Serbian
|
||||||
# tip_patience: "Patience you must have, young Padawan. - Yoda"
|
# tip_patience: "Patience you must have, young Padawan. - Yoda"
|
||||||
# tip_documented_bug: "A documented bug is not a bug; it is a feature."
|
# tip_documented_bug: "A documented bug is not a bug; it is a feature."
|
||||||
# tip_impossible: "It always seems impossible until it's done. - Nelson Mandela"
|
# tip_impossible: "It always seems impossible until it's done. - Nelson Mandela"
|
||||||
|
# tip_talk_is_cheap: "Talk is cheap. Show me the code. - Linus Torvalds"
|
||||||
|
# tip_first_language: "The most disastrous thing that you can ever learn is your first programming language. - Alan Kay"
|
||||||
# time_current: "Now:"
|
# time_current: "Now:"
|
||||||
# time_total: "Max:"
|
# time_total: "Max:"
|
||||||
# time_goto: "Go to:"
|
# time_goto: "Go to:"
|
||||||
|
|
|
@ -264,6 +264,8 @@ module.exports = nativeDescription: "Svenska", englishDescription: "Swedish", tr
|
||||||
# tip_patience: "Patience you must have, young Padawan. - Yoda"
|
# tip_patience: "Patience you must have, young Padawan. - Yoda"
|
||||||
# tip_documented_bug: "A documented bug is not a bug; it is a feature."
|
# tip_documented_bug: "A documented bug is not a bug; it is a feature."
|
||||||
# tip_impossible: "It always seems impossible until it's done. - Nelson Mandela"
|
# tip_impossible: "It always seems impossible until it's done. - Nelson Mandela"
|
||||||
|
# tip_talk_is_cheap: "Talk is cheap. Show me the code. - Linus Torvalds"
|
||||||
|
# tip_first_language: "The most disastrous thing that you can ever learn is your first programming language. - Alan Kay"
|
||||||
# time_current: "Now:"
|
# time_current: "Now:"
|
||||||
# time_total: "Max:"
|
# time_total: "Max:"
|
||||||
# time_goto: "Go to:"
|
# time_goto: "Go to:"
|
||||||
|
|
|
@ -264,6 +264,8 @@ module.exports = nativeDescription: "ไทย", englishDescription: "Thai", tra
|
||||||
# tip_patience: "Patience you must have, young Padawan. - Yoda"
|
# tip_patience: "Patience you must have, young Padawan. - Yoda"
|
||||||
# tip_documented_bug: "A documented bug is not a bug; it is a feature."
|
# tip_documented_bug: "A documented bug is not a bug; it is a feature."
|
||||||
# tip_impossible: "It always seems impossible until it's done. - Nelson Mandela"
|
# tip_impossible: "It always seems impossible until it's done. - Nelson Mandela"
|
||||||
|
# tip_talk_is_cheap: "Talk is cheap. Show me the code. - Linus Torvalds"
|
||||||
|
# tip_first_language: "The most disastrous thing that you can ever learn is your first programming language. - Alan Kay"
|
||||||
# time_current: "Now:"
|
# time_current: "Now:"
|
||||||
# time_total: "Max:"
|
# time_total: "Max:"
|
||||||
# time_goto: "Go to:"
|
# time_goto: "Go to:"
|
||||||
|
|
|
@ -264,6 +264,8 @@ module.exports = nativeDescription: "Türkçe", englishDescription: "Turkish", t
|
||||||
# tip_patience: "Patience you must have, young Padawan. - Yoda"
|
# tip_patience: "Patience you must have, young Padawan. - Yoda"
|
||||||
# tip_documented_bug: "A documented bug is not a bug; it is a feature."
|
# tip_documented_bug: "A documented bug is not a bug; it is a feature."
|
||||||
# tip_impossible: "It always seems impossible until it's done. - Nelson Mandela"
|
# tip_impossible: "It always seems impossible until it's done. - Nelson Mandela"
|
||||||
|
# tip_talk_is_cheap: "Talk is cheap. Show me the code. - Linus Torvalds"
|
||||||
|
# tip_first_language: "The most disastrous thing that you can ever learn is your first programming language. - Alan Kay"
|
||||||
# time_current: "Now:"
|
# time_current: "Now:"
|
||||||
# time_total: "Max:"
|
# time_total: "Max:"
|
||||||
# time_goto: "Go to:"
|
# time_goto: "Go to:"
|
||||||
|
|
|
@ -264,6 +264,8 @@ module.exports = nativeDescription: "українська мова", englishDesc
|
||||||
# tip_patience: "Patience you must have, young Padawan. - Yoda"
|
# tip_patience: "Patience you must have, young Padawan. - Yoda"
|
||||||
# tip_documented_bug: "A documented bug is not a bug; it is a feature."
|
# tip_documented_bug: "A documented bug is not a bug; it is a feature."
|
||||||
# tip_impossible: "It always seems impossible until it's done. - Nelson Mandela"
|
# tip_impossible: "It always seems impossible until it's done. - Nelson Mandela"
|
||||||
|
# tip_talk_is_cheap: "Talk is cheap. Show me the code. - Linus Torvalds"
|
||||||
|
# tip_first_language: "The most disastrous thing that you can ever learn is your first programming language. - Alan Kay"
|
||||||
# time_current: "Now:"
|
# time_current: "Now:"
|
||||||
# time_total: "Max:"
|
# time_total: "Max:"
|
||||||
# time_goto: "Go to:"
|
# time_goto: "Go to:"
|
||||||
|
|
|
@ -264,6 +264,8 @@ module.exports = nativeDescription: "اُردُو", englishDescription: "Urdu",
|
||||||
# tip_patience: "Patience you must have, young Padawan. - Yoda"
|
# tip_patience: "Patience you must have, young Padawan. - Yoda"
|
||||||
# tip_documented_bug: "A documented bug is not a bug; it is a feature."
|
# tip_documented_bug: "A documented bug is not a bug; it is a feature."
|
||||||
# tip_impossible: "It always seems impossible until it's done. - Nelson Mandela"
|
# tip_impossible: "It always seems impossible until it's done. - Nelson Mandela"
|
||||||
|
# tip_talk_is_cheap: "Talk is cheap. Show me the code. - Linus Torvalds"
|
||||||
|
# tip_first_language: "The most disastrous thing that you can ever learn is your first programming language. - Alan Kay"
|
||||||
# time_current: "Now:"
|
# time_current: "Now:"
|
||||||
# time_total: "Max:"
|
# time_total: "Max:"
|
||||||
# time_goto: "Go to:"
|
# time_goto: "Go to:"
|
||||||
|
|
|
@ -264,6 +264,8 @@ module.exports = nativeDescription: "Tiếng Việt", englishDescription: "Vietn
|
||||||
# tip_patience: "Patience you must have, young Padawan. - Yoda"
|
# tip_patience: "Patience you must have, young Padawan. - Yoda"
|
||||||
# tip_documented_bug: "A documented bug is not a bug; it is a feature."
|
# tip_documented_bug: "A documented bug is not a bug; it is a feature."
|
||||||
# tip_impossible: "It always seems impossible until it's done. - Nelson Mandela"
|
# tip_impossible: "It always seems impossible until it's done. - Nelson Mandela"
|
||||||
|
# tip_talk_is_cheap: "Talk is cheap. Show me the code. - Linus Torvalds"
|
||||||
|
# tip_first_language: "The most disastrous thing that you can ever learn is your first programming language. - Alan Kay"
|
||||||
# time_current: "Now:"
|
# time_current: "Now:"
|
||||||
# time_total: "Max:"
|
# time_total: "Max:"
|
||||||
# time_goto: "Go to:"
|
# time_goto: "Go to:"
|
||||||
|
|
|
@ -264,6 +264,8 @@ module.exports = nativeDescription: "简体中文", englishDescription: "Chinese
|
||||||
# tip_patience: "Patience you must have, young Padawan. - Yoda"
|
# tip_patience: "Patience you must have, young Padawan. - Yoda"
|
||||||
# tip_documented_bug: "A documented bug is not a bug; it is a feature."
|
# tip_documented_bug: "A documented bug is not a bug; it is a feature."
|
||||||
# tip_impossible: "It always seems impossible until it's done. - Nelson Mandela"
|
# tip_impossible: "It always seems impossible until it's done. - Nelson Mandela"
|
||||||
|
# tip_talk_is_cheap: "Talk is cheap. Show me the code. - Linus Torvalds"
|
||||||
|
# tip_first_language: "The most disastrous thing that you can ever learn is your first programming language. - Alan Kay"
|
||||||
# time_current: "Now:"
|
# time_current: "Now:"
|
||||||
# time_total: "Max:"
|
# time_total: "Max:"
|
||||||
# time_goto: "Go to:"
|
# time_goto: "Go to:"
|
||||||
|
|
|
@ -264,6 +264,8 @@ module.exports = nativeDescription: "繁体中文", englishDescription: "Chinese
|
||||||
# tip_patience: "Patience you must have, young Padawan. - Yoda"
|
# tip_patience: "Patience you must have, young Padawan. - Yoda"
|
||||||
# tip_documented_bug: "A documented bug is not a bug; it is a feature."
|
# tip_documented_bug: "A documented bug is not a bug; it is a feature."
|
||||||
# tip_impossible: "It always seems impossible until it's done. - Nelson Mandela"
|
# tip_impossible: "It always seems impossible until it's done. - Nelson Mandela"
|
||||||
|
# tip_talk_is_cheap: "Talk is cheap. Show me the code. - Linus Torvalds"
|
||||||
|
# tip_first_language: "The most disastrous thing that you can ever learn is your first programming language. - Alan Kay"
|
||||||
# time_current: "Now:"
|
# time_current: "Now:"
|
||||||
# time_total: "Max:"
|
# time_total: "Max:"
|
||||||
# time_goto: "Go to:"
|
# time_goto: "Go to:"
|
||||||
|
|
|
@ -264,6 +264,8 @@ module.exports = nativeDescription: "中文", englishDescription: "Chinese", tra
|
||||||
# tip_patience: "Patience you must have, young Padawan. - Yoda"
|
# tip_patience: "Patience you must have, young Padawan. - Yoda"
|
||||||
# tip_documented_bug: "A documented bug is not a bug; it is a feature."
|
# tip_documented_bug: "A documented bug is not a bug; it is a feature."
|
||||||
# tip_impossible: "It always seems impossible until it's done. - Nelson Mandela"
|
# tip_impossible: "It always seems impossible until it's done. - Nelson Mandela"
|
||||||
|
# tip_talk_is_cheap: "Talk is cheap. Show me the code. - Linus Torvalds"
|
||||||
|
# tip_first_language: "The most disastrous thing that you can ever learn is your first programming language. - Alan Kay"
|
||||||
# time_current: "Now:"
|
# time_current: "Now:"
|
||||||
# time_total: "Max:"
|
# time_total: "Max:"
|
||||||
# time_goto: "Go to:"
|
# time_goto: "Go to:"
|
||||||
|
|
|
@ -167,7 +167,15 @@ a[data-toggle="modal"]
|
||||||
width: 50%
|
width: 50%
|
||||||
margin: 0 25%
|
margin: 0 25%
|
||||||
.progress-bar
|
.progress-bar
|
||||||
width: 100%
|
width: 0%
|
||||||
|
transition: width 0.1s ease
|
||||||
|
|
||||||
|
.errors .alert
|
||||||
|
padding: 5px
|
||||||
|
display: block
|
||||||
|
margin: 10px auto
|
||||||
|
.btn
|
||||||
|
margin-left: 10px
|
||||||
|
|
||||||
.modal
|
.modal
|
||||||
.wait
|
.wait
|
||||||
|
@ -210,3 +218,18 @@ body[lang='ru'], body[lang|='zh'], body[lang='ja'], body[lang='pl'], body[lang='
|
||||||
text-transform: uppercase
|
text-transform: uppercase
|
||||||
letter-spacing: -1px !important
|
letter-spacing: -1px !important
|
||||||
|
|
||||||
|
@media only screen and (max-width: 800px)
|
||||||
|
.main-content-area
|
||||||
|
width: 100%
|
||||||
|
.content
|
||||||
|
width: 100%
|
||||||
|
|
||||||
|
.footer-link-text a
|
||||||
|
font-size: 17px
|
||||||
|
margin-left: 3px
|
||||||
|
margin-right: 3px
|
||||||
|
|
||||||
|
.share-buttons
|
||||||
|
margin-bottom: 20px
|
||||||
|
.partner-badges
|
||||||
|
display: none
|
||||||
|
|
|
@ -95,3 +95,33 @@
|
||||||
li
|
li
|
||||||
color: #ebebeb
|
color: #ebebeb
|
||||||
padding: 8px 20px
|
padding: 8px 20px
|
||||||
|
|
||||||
|
|
||||||
|
#mobile-nav
|
||||||
|
display: none
|
||||||
|
@media only screen and (max-width: 800px)
|
||||||
|
#top-nav
|
||||||
|
display: none
|
||||||
|
#mobile-nav
|
||||||
|
display: inline
|
||||||
|
a.navbar-brand
|
||||||
|
padding: 4px 20px 0px 20px
|
||||||
|
|
||||||
|
button.navbar-toggle
|
||||||
|
background: #483a2d
|
||||||
|
border: 2px solid #2f261d
|
||||||
|
span.icon-bar
|
||||||
|
background: #F9E612
|
||||||
|
|
||||||
|
ul li
|
||||||
|
font-family: 'Bangers', cursive
|
||||||
|
font-weight: normal
|
||||||
|
color: #fff
|
||||||
|
font-size: 25px
|
||||||
|
margin-top: 5px
|
||||||
|
margin-bottom: 5px
|
||||||
|
.header-font
|
||||||
|
color: #fff
|
||||||
|
.footer-link-text
|
||||||
|
width: 100%
|
||||||
|
display: ineline
|
||||||
|
|
|
@ -92,3 +92,38 @@
|
||||||
width: 660px
|
width: 660px
|
||||||
height: 382px
|
height: 382px
|
||||||
pointer-events: none
|
pointer-events: none
|
||||||
|
#mobile-trailer-wrapper
|
||||||
|
display: none
|
||||||
|
|
||||||
|
@media only screen and (max-width: 800px)
|
||||||
|
#home-view
|
||||||
|
#site-slogan
|
||||||
|
font-size: 30px
|
||||||
|
#trailer-wrapper
|
||||||
|
display: none
|
||||||
|
#mobile-trailer-wrapper
|
||||||
|
display: inline-block
|
||||||
|
|
||||||
|
width: 100%
|
||||||
|
iframe
|
||||||
|
display: block
|
||||||
|
margin: 0 auto
|
||||||
|
.game-mode-wrapper
|
||||||
|
width: 100%
|
||||||
|
img
|
||||||
|
width: 100%
|
||||||
|
.play-text
|
||||||
|
position: absolute
|
||||||
|
right: 45px
|
||||||
|
bottom: 0px
|
||||||
|
color: $yellow
|
||||||
|
font-size: 50px
|
||||||
|
font-family: Bangers
|
||||||
|
@include transition(color .10s linear)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
h1
|
||||||
|
text-align: center
|
||||||
|
margin-top: 0
|
||||||
|
|
|
@ -70,3 +70,8 @@
|
||||||
|
|
||||||
#must-log-in button
|
#must-log-in button
|
||||||
margin-right: 10px
|
margin-right: 10px
|
||||||
|
|
||||||
|
@media only screen and (max-width: 800px)
|
||||||
|
#ladder-view
|
||||||
|
#level-column img
|
||||||
|
width: 100%
|
42
app/styles/play/ladder/ladder_tab.sass
Normal file
42
app/styles/play/ladder/ladder_tab.sass
Normal file
|
@ -0,0 +1,42 @@
|
||||||
|
#ladder-tab-view
|
||||||
|
.name-col-cell
|
||||||
|
max-width: 150px
|
||||||
|
white-space: nowrap
|
||||||
|
overflow: hidden
|
||||||
|
text-overflow: ellipsis
|
||||||
|
|
||||||
|
.bar rect
|
||||||
|
fill: steelblue
|
||||||
|
shape-rendering: crispEdges
|
||||||
|
|
||||||
|
.bar text
|
||||||
|
fill: #fff
|
||||||
|
|
||||||
|
.specialbar rect
|
||||||
|
fill: #555555
|
||||||
|
|
||||||
|
|
||||||
|
.axis path, .axis line
|
||||||
|
fill: none
|
||||||
|
stroke: #555555
|
||||||
|
shape-rendering: crispEdges
|
||||||
|
|
||||||
|
.humans-bar
|
||||||
|
fill: #bf3f3f
|
||||||
|
shape-rendering: crispEdges
|
||||||
|
.ogres-bar
|
||||||
|
fill: #3f44bf
|
||||||
|
shape-rendering: crispEdges
|
||||||
|
text
|
||||||
|
fill: #555555
|
||||||
|
|
||||||
|
.rank-text
|
||||||
|
font-size: 15px
|
||||||
|
fill: #555555
|
||||||
|
|
||||||
|
.humans-rank-text
|
||||||
|
fill: #bf3f3f
|
||||||
|
|
||||||
|
.ogres-rank-text
|
||||||
|
fill: #3f44bf
|
||||||
|
|
29
app/styles/play/ladder/my_matches_tab.sass
Normal file
29
app/styles/play/ladder/my_matches_tab.sass
Normal file
|
@ -0,0 +1,29 @@
|
||||||
|
#my-matches-tab-view
|
||||||
|
.axis path, .axis line
|
||||||
|
fill: none
|
||||||
|
stroke: #555
|
||||||
|
shape-rendering: crispEdges
|
||||||
|
.x.axis.path
|
||||||
|
display: none
|
||||||
|
|
||||||
|
.line
|
||||||
|
fill: none
|
||||||
|
stroke: steelblue
|
||||||
|
stroke-width: 1.5px
|
||||||
|
|
||||||
|
.humans-line
|
||||||
|
fill: none
|
||||||
|
stroke: #bf3f3f
|
||||||
|
stroke-width: 1.5px
|
||||||
|
|
||||||
|
.ogres-line
|
||||||
|
fill: none
|
||||||
|
stroke: #3f44bf
|
||||||
|
stroke-width: 1.5px
|
||||||
|
|
||||||
|
.axis text
|
||||||
|
stroke: none
|
||||||
|
fill: #555555
|
||||||
|
shape-rendering: crispEdges
|
||||||
|
|
||||||
|
|
|
@ -16,7 +16,7 @@ block content
|
||||||
else
|
else
|
||||||
span(data-i18n="account_profile.profile") Profile
|
span(data-i18n="account_profile.profile") Profile
|
||||||
|
|
||||||
if loading
|
if loadingProfile
|
||||||
p(data-i18n="common.loading") Loading...
|
p(data-i18n="common.loading") Loading...
|
||||||
|
|
||||||
else if !user.get('emailHash')
|
else if !user.get('emailHash')
|
||||||
|
|
|
@ -1,6 +1,28 @@
|
||||||
body
|
body
|
||||||
#fb-root
|
#fb-root
|
||||||
block header
|
block header
|
||||||
|
.nav.navbar.navbar-fixed-top#mobile-nav
|
||||||
|
.content.clearfix
|
||||||
|
.navbar-header
|
||||||
|
button.navbar-toggle(type="button" data-toggle="collapse" data-target="#collapsible-navbar")
|
||||||
|
span.sr-only Toggle navigation
|
||||||
|
span.icon-bar
|
||||||
|
span.icon-bar
|
||||||
|
span.icon-bar
|
||||||
|
|
||||||
|
a.navbar-brand(href='/')
|
||||||
|
img(src="/images/pages/base/logo.png", title="CodeCombat - Learn how to code by playing a game", alt="CodeCombat")
|
||||||
|
.collapse.navbar-collapse#collapsible-navbar
|
||||||
|
ul.nav.navbar-nav
|
||||||
|
li.play
|
||||||
|
a.header-font(href='/play', data-i18n="nav.play") Levels
|
||||||
|
li.editor
|
||||||
|
a.header-font(href='/editor', data-i18n="nav.editor") Editor
|
||||||
|
li.blog
|
||||||
|
a.header-font(href='http://blog.codecombat.com/', data-i18n="nav.blog") Blog
|
||||||
|
li.forum
|
||||||
|
a.header-font(href='http://discourse.codecombat.com/', data-i18n="nav.forum") Forum
|
||||||
|
|
||||||
.nav.navbar.navbar-fixed-top#top-nav
|
.nav.navbar.navbar-fixed-top#top-nav
|
||||||
.content.clearfix
|
.content.clearfix
|
||||||
.navbar-header
|
.navbar-header
|
||||||
|
@ -32,6 +54,10 @@ body
|
||||||
if me.isAdmin()
|
if me.isAdmin()
|
||||||
li.admin
|
li.admin
|
||||||
a.header-font(href='/admin', data-i18n="nav.admin") Admin
|
a.header-font(href='/admin', data-i18n="nav.admin") Admin
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
block outer_content
|
block outer_content
|
||||||
#outer-content-wrapper
|
#outer-content-wrapper
|
||||||
|
|
|
@ -7,7 +7,8 @@ block content
|
||||||
#trailer-wrapper
|
#trailer-wrapper
|
||||||
<iframe width="920" height="518" src="//www.youtube.com/embed/1zjaA13k-dA?rel=0&controls=0&modestbranding=1&showinfo=0&iv_load_policy=3&vq=hd720&wmode=transparent" frameborder="0" wmode="opaque" allowfullscreen></iframe>
|
<iframe width="920" height="518" src="//www.youtube.com/embed/1zjaA13k-dA?rel=0&controls=0&modestbranding=1&showinfo=0&iv_load_policy=3&vq=hd720&wmode=transparent" frameborder="0" wmode="opaque" allowfullscreen></iframe>
|
||||||
img(src="/images/pages/home/video_border.png")
|
img(src="/images/pages/home/video_border.png")
|
||||||
|
#mobile-trailer-wrapper
|
||||||
|
<iframe src="//www.youtube.com/embed/1zjaA13k-dA" frameborder="0" width="280" height="158"></iframe>
|
||||||
hr
|
hr
|
||||||
|
|
||||||
.alert.alert-danger.lt-ie10
|
.alert.alert-danger.lt-ie10
|
||||||
|
@ -21,7 +22,7 @@ block content
|
||||||
strong(data-i18n="home.old_browser") Uh oh, your browser is too old to run CodeCombat. Sorry!
|
strong(data-i18n="home.old_browser") Uh oh, your browser is too old to run CodeCombat. Sorry!
|
||||||
br
|
br
|
||||||
span(data-i18n="home.old_browser_suffix") You can try anyway, but it probably won't work.
|
span(data-i18n="home.old_browser_suffix") You can try anyway, but it probably won't work.
|
||||||
|
|
||||||
a#beginner-campaign(href="/play/level/rescue-mission")
|
a#beginner-campaign(href="/play/level/rescue-mission")
|
||||||
div.game-mode-wrapper
|
div.game-mode-wrapper
|
||||||
if isEnglish
|
if isEnglish
|
||||||
|
|
|
@ -1,4 +1,6 @@
|
||||||
.loading-screen
|
.loading-screen
|
||||||
h1(data-i18n="common.loading") Loading...
|
h1(data-i18n="common.loading") Loading...
|
||||||
.progress.progress-striped.active
|
.progress
|
||||||
.progress-bar
|
.progress-bar
|
||||||
|
|
||||||
|
.errors
|
31
app/templates/loading_error.jade
Normal file
31
app/templates/loading_error.jade
Normal file
|
@ -0,0 +1,31 @@
|
||||||
|
.alert.alert-danger.loading-error-alert
|
||||||
|
span(data-i18n="loading_error.could_not_load") Error loading from server
|
||||||
|
span (
|
||||||
|
span(data-i18n="resources.#{name}")
|
||||||
|
span )
|
||||||
|
if !responseText
|
||||||
|
strong(data-i18n="loading_error.connection_failure") Connection failed.
|
||||||
|
else if status === 401
|
||||||
|
strong(data-i18n="loading_error.unauthorized") You need to be signed in. Do you have cookies disabled?
|
||||||
|
else if status === 403
|
||||||
|
strong(data-i18n="loading_error.forbidden") You do not have the permissions.
|
||||||
|
else if status === 404
|
||||||
|
strong(data-i18n="loading_error.not_found") Not found.
|
||||||
|
else if status === 405
|
||||||
|
strong(data-i18n="loading_error.not_allowed") Method not allowed.
|
||||||
|
else if status === 408
|
||||||
|
strong(data-i18n="loading_error.timeout") Server timeout.
|
||||||
|
else if status === 409
|
||||||
|
strong(data-i18n="loading_error.conflict") Resource conflict.
|
||||||
|
else if status === 422
|
||||||
|
strong(data-i18n="loading_error.bad_input") Bad input.
|
||||||
|
else if status >= 500
|
||||||
|
strong(data-i18n="loading_error.server_error") Server error.
|
||||||
|
else
|
||||||
|
strong(data-i18n="loading_error.unknown") Unknown error.
|
||||||
|
|
||||||
|
if resourceIndex !== undefined
|
||||||
|
button.btn.btn-sm.retry-loading-resource(data-i18n="common.retry", data-resource-index=resourceIndex) Retry
|
||||||
|
if requestIndex !== undefined
|
||||||
|
button.btn.btn-sm.retry-loading-request(data-i18n="common.retry", data-request-index=requestIndex) Retry
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
div#columns.row
|
div#columns.row
|
||||||
for team in teams
|
for team in teams
|
||||||
div.column.col-md-4
|
div.column.col-md-4
|
||||||
|
div(id="histogram-display-#{team.name}", class="histogram-display",data-team-name=team.name)
|
||||||
table.table.table-bordered.table-condensed.table-hover
|
table.table.table-bordered.table-condensed.table-hover
|
||||||
tr
|
tr
|
||||||
th
|
th
|
||||||
|
|
|
@ -11,14 +11,14 @@ div#columns.row
|
||||||
|
|
||||||
tr
|
tr
|
||||||
th(colspan=4, style="color: #{team.primaryColor}")
|
th(colspan=4, style="color: #{team.primaryColor}")
|
||||||
span(data-i18n="ladder.summary_your") Your
|
span(data-i18n="ladder.summary_your") Your
|
||||||
|#{team.name}
|
|#{team.name}
|
||||||
|
|
|
|
||||||
span(data-i18n="ladder.summary_matches") Matches -
|
span(data-i18n="ladder.summary_matches") Matches -
|
||||||
|#{team.wins}
|
|#{team.wins}
|
||||||
span(data-i18n="ladder.summary_wins") Wins,
|
span(data-i18n="ladder.summary_wins") Wins,
|
||||||
|#{team.losses}
|
|#{team.losses}
|
||||||
span(data-i18n="ladder.summary_losses") Losses
|
span(data-i18n="ladder.summary_losses") Losses
|
||||||
|
|
||||||
if team.session
|
if team.session
|
||||||
tr
|
tr
|
||||||
|
@ -34,7 +34,9 @@ div#columns.row
|
||||||
if team.chartData
|
if team.chartData
|
||||||
tr
|
tr
|
||||||
th(colspan=4, style="color: #{team.primaryColor}")
|
th(colspan=4, style="color: #{team.primaryColor}")
|
||||||
img(src="https://chart.googleapis.com/chart?chs=450x125&cht=lxy&chco=#{team.chartColor}&chtt=Score%3A+#{team.currentScore}&chts=#{team.chartColor},16,r&chf=a,s,000000FF&chls=2&chm=o,#{team.chartColor},0,4&chd=t:#{team.chartData}&chxt=y&chxr=0,#{team.minScore},#{team.maxScore}")
|
div(class="score-chart-wrapper", data-team-name=team.name, id="score-chart-#{team.name}")
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
tr
|
tr
|
||||||
th(data-i18n="general.result") Result
|
th(data-i18n="general.result") Result
|
||||||
|
|
|
@ -35,6 +35,8 @@
|
||||||
strong.tip.rare(data-i18n='play_level.tip_no_try') Do. Or do not. There is no try. - Yoda
|
strong.tip.rare(data-i18n='play_level.tip_no_try') Do. Or do not. There is no try. - Yoda
|
||||||
strong.tip.rare(data-i18n='play_level.tip_patience') Patience you must have, young Padawan. - Yoda
|
strong.tip.rare(data-i18n='play_level.tip_patience') Patience you must have, young Padawan. - Yoda
|
||||||
strong.tip.rare(data-i18n='play_level.tip_documented_bug') A documented bug is not a bug; it is a feature.
|
strong.tip.rare(data-i18n='play_level.tip_documented_bug') A documented bug is not a bug; it is a feature.
|
||||||
|
strong.tip.rare(data-i18n='play_level.tip_talk_is_cheap') Talk is cheap. Show me the code. - Linus Torvalds
|
||||||
|
strong.tip.rare(data-i18n='play_level.tip_first_language') The most disastrous thing that you can ever learn is your first programming language. - Alan Kay
|
||||||
strong.tip.rare
|
strong.tip.rare
|
||||||
span(data-i18n='play_level.tip_harry') Yer a Wizard,
|
span(data-i18n='play_level.tip_harry') Yer a Wizard,
|
||||||
span= me.get('name') || 'Anoner'
|
span= me.get('name') || 'Anoner'
|
||||||
|
|
|
@ -5,21 +5,21 @@ User = require 'models/User'
|
||||||
module.exports = class ProfileView extends View
|
module.exports = class ProfileView extends View
|
||||||
id: "profile-view"
|
id: "profile-view"
|
||||||
template: template
|
template: template
|
||||||
loading: true
|
loadingProfile: true
|
||||||
|
|
||||||
constructor: (options, @userID) ->
|
constructor: (options, @userID) ->
|
||||||
super options
|
super options
|
||||||
@user = User.getByID(@userID)
|
@user = User.getByID(@userID)
|
||||||
@loading = false if 'gravatarProfile' of @user
|
@loadingProfile = false if 'gravatarProfile' of @user
|
||||||
@listenTo(@user, 'change', @userChanged)
|
@listenTo(@user, 'change', @userChanged)
|
||||||
@listenTo(@user, 'error', @userError)
|
@listenTo(@user, 'error', @userError)
|
||||||
|
|
||||||
userChanged: (user) ->
|
userChanged: (user) ->
|
||||||
@loading = false if 'gravatarProfile' of user
|
@loadingProfile = false if 'gravatarProfile' of user
|
||||||
@render()
|
@render()
|
||||||
|
|
||||||
userError: (user) ->
|
userError: (user) ->
|
||||||
@loading = false
|
@loadingProfile = false
|
||||||
@render()
|
@render()
|
||||||
|
|
||||||
getRenderData: ->
|
getRenderData: ->
|
||||||
|
@ -28,7 +28,7 @@ module.exports = class ProfileView extends View
|
||||||
grav = grav.entry[0] if grav
|
grav = grav.entry[0] if grav
|
||||||
addedContext =
|
addedContext =
|
||||||
user: @user
|
user: @user
|
||||||
loading: @loading
|
loadingProfile: @loadingProfile
|
||||||
myProfile: @user.id is context.me.id
|
myProfile: @user.id is context.me.id
|
||||||
grav: grav
|
grav: grav
|
||||||
photoURL: @user.getPhotoURL()
|
photoURL: @user.getPhotoURL()
|
||||||
|
|
|
@ -21,6 +21,10 @@ module.exports = class ColorsTabView extends CocoView
|
||||||
@interval = setInterval f, 1000
|
@interval = setInterval f, 1000
|
||||||
super options
|
super options
|
||||||
|
|
||||||
|
destroy: ->
|
||||||
|
clearInterval @interval
|
||||||
|
super()
|
||||||
|
|
||||||
afterRender: ->
|
afterRender: ->
|
||||||
super()
|
super()
|
||||||
@createShapeButtons()
|
@createShapeButtons()
|
||||||
|
|
|
@ -2,6 +2,7 @@ SuperModel = require 'models/SuperModel'
|
||||||
utils = require 'lib/utils'
|
utils = require 'lib/utils'
|
||||||
CocoClass = require 'lib/CocoClass'
|
CocoClass = require 'lib/CocoClass'
|
||||||
loadingScreenTemplate = require 'templates/loading'
|
loadingScreenTemplate = require 'templates/loading'
|
||||||
|
loadingErrorTemplate = require 'templates/loading_error'
|
||||||
|
|
||||||
visibleModal = null
|
visibleModal = null
|
||||||
waitingModal = null
|
waitingModal = null
|
||||||
|
@ -18,13 +19,26 @@ module.exports = class CocoView extends Backbone.View
|
||||||
'click a': 'toggleModal'
|
'click a': 'toggleModal'
|
||||||
'click button': 'toggleModal'
|
'click button': 'toggleModal'
|
||||||
'click li': 'toggleModal'
|
'click li': 'toggleModal'
|
||||||
|
'click .retry-loading-resource': 'onRetryResource'
|
||||||
|
'click .retry-loading-request': 'onRetryRequest'
|
||||||
|
|
||||||
subscriptions: {}
|
subscriptions: {}
|
||||||
shortcuts: {}
|
shortcuts: {}
|
||||||
|
|
||||||
|
# load progress properties
|
||||||
|
loadProgress:
|
||||||
|
num: 0
|
||||||
|
denom: 0
|
||||||
|
showing: false
|
||||||
|
resources: [] # models and collections
|
||||||
|
requests: [] # jqxhr's
|
||||||
|
somethings: [] # everything else
|
||||||
|
progress: 0
|
||||||
|
|
||||||
# Setup, Teardown
|
# Setup, Teardown
|
||||||
|
|
||||||
constructor: (options) ->
|
constructor: (options) ->
|
||||||
|
@loadProgress = _.cloneDeep @loadProgress
|
||||||
@supermodel ?= options?.supermodel or new SuperModel()
|
@supermodel ?= options?.supermodel or new SuperModel()
|
||||||
@options = options
|
@options = options
|
||||||
@subscriptions = utils.combineAncestralObject(@, 'subscriptions')
|
@subscriptions = utils.combineAncestralObject(@, 'subscriptions')
|
||||||
|
@ -33,6 +47,7 @@ module.exports = class CocoView extends Backbone.View
|
||||||
@shortcuts = utils.combineAncestralObject(@, 'shortcuts')
|
@shortcuts = utils.combineAncestralObject(@, 'shortcuts')
|
||||||
@subviews = {}
|
@subviews = {}
|
||||||
@listenToShortcuts()
|
@listenToShortcuts()
|
||||||
|
@updateProgressBar = _.debounce @updateProgressBar, 100
|
||||||
# Backbone.Mediator handles subscription setup/teardown automatically
|
# Backbone.Mediator handles subscription setup/teardown automatically
|
||||||
super options
|
super options
|
||||||
|
|
||||||
|
@ -74,7 +89,7 @@ module.exports = class CocoView extends Backbone.View
|
||||||
return @template if _.isString(@template)
|
return @template if _.isString(@template)
|
||||||
@$el.html @template(@getRenderData())
|
@$el.html @template(@getRenderData())
|
||||||
@afterRender()
|
@afterRender()
|
||||||
@showLoading() if @startsLoading
|
@showLoading() if @startsLoading or @loading() # TODO: Remove startsLoading entirely
|
||||||
@$el.i18n()
|
@$el.i18n()
|
||||||
@
|
@
|
||||||
|
|
||||||
|
@ -89,6 +104,101 @@ module.exports = class CocoView extends Backbone.View
|
||||||
context
|
context
|
||||||
|
|
||||||
afterRender: ->
|
afterRender: ->
|
||||||
|
|
||||||
|
# Resource and request loading management for any given view
|
||||||
|
|
||||||
|
addResourceToLoad: (modelOrCollection, name, value=1) ->
|
||||||
|
@loadProgress.resources.push {resource:modelOrCollection, value:value, name:name}
|
||||||
|
@listenToOnce modelOrCollection, 'sync', @updateProgress
|
||||||
|
@listenTo modelOrCollection, 'error', @onResourceLoadFailed
|
||||||
|
@updateProgress()
|
||||||
|
|
||||||
|
addRequestToLoad: (jqxhr, name, retryFunc, value=1) ->
|
||||||
|
@loadProgress.requests.push {request:jqxhr, value:value, name: name, retryFunc: retryFunc}
|
||||||
|
jqxhr.done @updateProgress
|
||||||
|
jqxhr.fail @onRequestLoadFailed
|
||||||
|
|
||||||
|
addSomethingToLoad: (name, value=1) ->
|
||||||
|
@loadProgress.somethings.push {loaded: false, name: name, value: value}
|
||||||
|
@updateProgress()
|
||||||
|
|
||||||
|
somethingLoaded: (name) ->
|
||||||
|
r = _.find @loadProgress.somethings, {name: name}
|
||||||
|
return console.error 'Could not find something called', name if not r
|
||||||
|
r.loaded = true
|
||||||
|
@updateProgress(name)
|
||||||
|
|
||||||
|
loading: ->
|
||||||
|
return false if @loaded
|
||||||
|
for r in @loadProgress.resources
|
||||||
|
return true if not r.resource.loaded
|
||||||
|
for r in @loadProgress.requests
|
||||||
|
return true if not r.request.status
|
||||||
|
for r in @loadProgress.somethings
|
||||||
|
return true if not r.loaded
|
||||||
|
return false
|
||||||
|
|
||||||
|
updateProgress: =>
|
||||||
|
console.debug 'Loaded', r.name if arguments[0] and r = _.find @loadProgress.resources, {resource:arguments[0]}
|
||||||
|
console.debug 'Loaded', r.name if arguments[2] and r = _.find @loadProgress.requests, {request:arguments[2]}
|
||||||
|
console.debug 'Loaded', r.name if arguments[0] and r = _.find @loadProgress.somethings, {name:arguments[0]}
|
||||||
|
|
||||||
|
denom = 0
|
||||||
|
denom += r.value for r in @loadProgress.resources
|
||||||
|
denom += r.value for r in @loadProgress.requests
|
||||||
|
denom += r.value for r in @loadProgress.somethings
|
||||||
|
num = @loadProgress.num
|
||||||
|
num += r.value for r in @loadProgress.resources when r.resource.loaded
|
||||||
|
num += r.value for r in @loadProgress.requests when r.request.status
|
||||||
|
num += r.value for r in @loadProgress.somethings when r.loaded
|
||||||
|
#console.log 'update progress', @, num, denom, arguments
|
||||||
|
|
||||||
|
progress = if denom then num / denom else 0
|
||||||
|
# sometimes the denominator isn't known from the outset, so make sure the overall progress only goes up
|
||||||
|
@loadProgress.progress = progress if progress > @loadProgress.progress
|
||||||
|
@updateProgressBar()
|
||||||
|
if num is denom and not @loaded
|
||||||
|
@loaded = true
|
||||||
|
@onLoaded()
|
||||||
|
|
||||||
|
updateProgressBar: =>
|
||||||
|
prog = "#{parseInt(@loadProgress.progress*100)}%"
|
||||||
|
@$el.find('.loading-screen .progress-bar').css('width', prog)
|
||||||
|
|
||||||
|
onLoaded: ->
|
||||||
|
@render()
|
||||||
|
|
||||||
|
# Error handling for loading
|
||||||
|
|
||||||
|
onResourceLoadFailed: (resource, jqxhr) ->
|
||||||
|
for r, index in @loadProgress.resources
|
||||||
|
break if r.resource is resource
|
||||||
|
@$el.find('.loading-screen .errors').append(loadingErrorTemplate({
|
||||||
|
status:jqxhr.status,
|
||||||
|
name: r.name
|
||||||
|
resourceIndex: index,
|
||||||
|
responseText: jqxhr.responseText
|
||||||
|
})).i18n()
|
||||||
|
|
||||||
|
onRetryResource: (e) ->
|
||||||
|
r = @loadProgress.resources[$(e.target).data('resource-index')]
|
||||||
|
r.resource.fetch()
|
||||||
|
$(e.target).closest('.loading-error-alert').remove()
|
||||||
|
|
||||||
|
onRequestLoadFailed: (jqxhr) =>
|
||||||
|
for r, index in @loadProgress.requests
|
||||||
|
break if r.request is jqxhr
|
||||||
|
@$el.find('.loading-screen .errors').append(loadingErrorTemplate({
|
||||||
|
status:jqxhr.status,
|
||||||
|
name: r.name
|
||||||
|
requestIndex: index,
|
||||||
|
responseText: jqxhr.responseText
|
||||||
|
}))
|
||||||
|
|
||||||
|
onRetryRequest: (e) ->
|
||||||
|
r = @loadProgress.requests[$(e.target).data('request-index')]
|
||||||
|
@[r.retryFunc]?()
|
||||||
|
$(e.target).closest('.loading-error-alert').remove()
|
||||||
|
|
||||||
# Modals
|
# Modals
|
||||||
|
|
||||||
|
|
|
@ -1,4 +1,5 @@
|
||||||
CocoView = require 'views/kinds/CocoView'
|
CocoView = require 'views/kinds/CocoView'
|
||||||
|
CocoClass = require 'lib/CocoClass'
|
||||||
Level = require 'models/Level'
|
Level = require 'models/Level'
|
||||||
LevelSession = require 'models/LevelSession'
|
LevelSession = require 'models/LevelSession'
|
||||||
CocoCollection = require 'models/CocoCollection'
|
CocoCollection = require 'models/CocoCollection'
|
||||||
|
@ -18,7 +19,6 @@ class LevelSessionsCollection extends CocoCollection
|
||||||
module.exports = class LadderTabView extends CocoView
|
module.exports = class LadderTabView extends CocoView
|
||||||
id: 'ladder-tab-view'
|
id: 'ladder-tab-view'
|
||||||
template: require 'templates/play/ladder/ladder_tab'
|
template: require 'templates/play/ladder/ladder_tab'
|
||||||
startsLoading: true
|
|
||||||
|
|
||||||
events:
|
events:
|
||||||
'click .connect-facebook': 'onConnectFacebook'
|
'click .connect-facebook': 'onConnectFacebook'
|
||||||
|
@ -32,6 +32,7 @@ module.exports = class LadderTabView extends CocoView
|
||||||
|
|
||||||
constructor: (options, @level, @sessions) ->
|
constructor: (options, @level, @sessions) ->
|
||||||
super(options)
|
super(options)
|
||||||
|
@addSomethingToLoad("social_network_apis")
|
||||||
@teams = teamDataFromLevel @level
|
@teams = teamDataFromLevel @level
|
||||||
@leaderboards = {}
|
@leaderboards = {}
|
||||||
@refreshLadder()
|
@refreshLadder()
|
||||||
|
@ -40,17 +41,18 @@ module.exports = class LadderTabView extends CocoView
|
||||||
checkFriends: ->
|
checkFriends: ->
|
||||||
return if @checked or (not window.FB) or (not window.gapi)
|
return if @checked or (not window.FB) or (not window.gapi)
|
||||||
@checked = true
|
@checked = true
|
||||||
|
|
||||||
@loadingFacebookFriends = true
|
@addSomethingToLoad("facebook_status")
|
||||||
FB.getLoginStatus (response) =>
|
FB.getLoginStatus (response) =>
|
||||||
@facebookStatus = response.status
|
@facebookStatus = response.status
|
||||||
if @facebookStatus is 'connected' then @loadFacebookFriendSessions() else @loadingFacebookFriends = false
|
@loadFacebookFriends() if @facebookStatus is 'connected'
|
||||||
|
@somethingLoaded("facebook_status")
|
||||||
|
|
||||||
if application.gplusHandler.loggedIn is undefined
|
if application.gplusHandler.loggedIn is undefined
|
||||||
@loadingGPlusFriends = true
|
|
||||||
@listenToOnce(application.gplusHandler, 'checked-state', @gplusSessionStateLoaded)
|
@listenToOnce(application.gplusHandler, 'checked-state', @gplusSessionStateLoaded)
|
||||||
else
|
else
|
||||||
@gplusSessionStateLoaded()
|
@gplusSessionStateLoaded()
|
||||||
|
@somethingLoaded("social_network_apis")
|
||||||
|
|
||||||
# FACEBOOK
|
# FACEBOOK
|
||||||
|
|
||||||
|
@ -60,16 +62,24 @@ module.exports = class LadderTabView extends CocoView
|
||||||
|
|
||||||
onConnectedWithFacebook: -> location.reload() if @connecting
|
onConnectedWithFacebook: -> location.reload() if @connecting
|
||||||
|
|
||||||
|
loadFacebookFriends: ->
|
||||||
|
@addSomethingToLoad("facebook_friends")
|
||||||
|
FB.api '/me/friends', @onFacebookFriendsLoaded
|
||||||
|
|
||||||
|
onFacebookFriendsLoaded: (response) =>
|
||||||
|
@facebookData = response.data
|
||||||
|
@loadFacebookFriendSessions()
|
||||||
|
@somethingLoaded("facebook_friends")
|
||||||
|
|
||||||
loadFacebookFriendSessions: ->
|
loadFacebookFriendSessions: ->
|
||||||
FB.api '/me/friends', (response) =>
|
levelFrag = "#{@level.get('original')}.#{@level.get('version').major}"
|
||||||
@facebookData = response.data
|
url = "/db/level/#{levelFrag}/leaderboard_facebook_friends"
|
||||||
levelFrag = "#{@level.get('original')}.#{@level.get('version').major}"
|
jqxhr = $.ajax url, {
|
||||||
url = "/db/level/#{levelFrag}/leaderboard_facebook_friends"
|
data: { friendIDs: (f.id for f in @facebookData) }
|
||||||
$.ajax url, {
|
method: 'POST'
|
||||||
data: { friendIDs: (f.id for f in @facebookData) }
|
success: @onFacebookFriendSessionsLoaded
|
||||||
method: 'POST'
|
}
|
||||||
success: @onFacebookFriendSessionsLoaded
|
@addRequestToLoad(jqxhr, 'facebook_friend_sessions', 'loadFacebookFriendSessions')
|
||||||
}
|
|
||||||
|
|
||||||
onFacebookFriendSessionsLoaded: (result) =>
|
onFacebookFriendSessionsLoaded: (result) =>
|
||||||
friendsMap = {}
|
friendsMap = {}
|
||||||
|
@ -79,9 +89,7 @@ module.exports = class LadderTabView extends CocoView
|
||||||
friend.otherTeam = if friend.team is 'humans' then 'ogres' else 'humans'
|
friend.otherTeam = if friend.team is 'humans' then 'ogres' else 'humans'
|
||||||
friend.imageSource = "http://graph.facebook.com/#{friend.facebookID}/picture"
|
friend.imageSource = "http://graph.facebook.com/#{friend.facebookID}/picture"
|
||||||
@facebookFriendSessions = result
|
@facebookFriendSessions = result
|
||||||
@loadingFacebookFriends = false
|
|
||||||
@renderMaybe()
|
|
||||||
|
|
||||||
# GOOGLE PLUS
|
# GOOGLE PLUS
|
||||||
|
|
||||||
onConnectGPlus: ->
|
onConnectGPlus: ->
|
||||||
|
@ -93,21 +101,23 @@ module.exports = class LadderTabView extends CocoView
|
||||||
|
|
||||||
gplusSessionStateLoaded: ->
|
gplusSessionStateLoaded: ->
|
||||||
if application.gplusHandler.loggedIn
|
if application.gplusHandler.loggedIn
|
||||||
@loadingGPlusFriends = true
|
@addSomethingToLoad("gplus_friends")
|
||||||
application.gplusHandler.loadFriends @gplusFriendsLoaded
|
application.gplusHandler.loadFriends @gplusFriendsLoaded
|
||||||
else
|
|
||||||
@loadingGPlusFriends = false
|
|
||||||
@renderMaybe()
|
|
||||||
|
|
||||||
gplusFriendsLoaded: (friends) =>
|
gplusFriendsLoaded: (friends) =>
|
||||||
@gplusData = friends.items
|
@gplusData = friends.items
|
||||||
|
@loadGPlusFriendSessions()
|
||||||
|
@somethingLoaded("gplus_friends")
|
||||||
|
|
||||||
|
loadGPlusFriendSessions: ->
|
||||||
levelFrag = "#{@level.get('original')}.#{@level.get('version').major}"
|
levelFrag = "#{@level.get('original')}.#{@level.get('version').major}"
|
||||||
url = "/db/level/#{levelFrag}/leaderboard_gplus_friends"
|
url = "/db/level/#{levelFrag}/leaderboard_gplus_friends"
|
||||||
$.ajax url, {
|
jqxhr = $.ajax url, {
|
||||||
data: { friendIDs: (f.id for f in @gplusData) }
|
data: { friendIDs: (f.id for f in @gplusData) }
|
||||||
method: 'POST'
|
method: 'POST'
|
||||||
success: @onGPlusFriendSessionsLoaded
|
success: @onGPlusFriendSessionsLoaded
|
||||||
}
|
}
|
||||||
|
@addRequestToLoad(jqxhr, 'gplus_friend_sessions', 'loadGPlusFriendSessions')
|
||||||
|
|
||||||
onGPlusFriendSessionsLoaded: (result) =>
|
onGPlusFriendSessionsLoaded: (result) =>
|
||||||
friendsMap = {}
|
friendsMap = {}
|
||||||
|
@ -117,30 +127,29 @@ module.exports = class LadderTabView extends CocoView
|
||||||
friend.otherTeam = if friend.team is 'humans' then 'ogres' else 'humans'
|
friend.otherTeam = if friend.team is 'humans' then 'ogres' else 'humans'
|
||||||
friend.imageSource = friendsMap[friend.gplusID].image.url
|
friend.imageSource = friendsMap[friend.gplusID].image.url
|
||||||
@gplusFriendSessions = result
|
@gplusFriendSessions = result
|
||||||
@loadingGPlusFriends = false
|
|
||||||
@renderMaybe()
|
|
||||||
|
|
||||||
# LADDER LOADING
|
# LADDER LOADING
|
||||||
|
|
||||||
refreshLadder: ->
|
refreshLadder: ->
|
||||||
promises = []
|
|
||||||
for team in @teams
|
for team in @teams
|
||||||
@leaderboards[team.id]?.off 'sync'
|
@leaderboards[team.id]?.destroy()
|
||||||
teamSession = _.find @sessions.models, (session) -> session.get('team') is team.id
|
teamSession = _.find @sessions.models, (session) -> session.get('team') is team.id
|
||||||
@leaderboards[team.id] = new LeaderboardData(@level, team.id, teamSession)
|
@leaderboards[team.id] = new LeaderboardData(@level, team.id, teamSession)
|
||||||
promises.push @leaderboards[team.id].promise
|
|
||||||
@loadingLeaderboards = true
|
|
||||||
$.when(promises...).then(@leaderboardsLoaded)
|
|
||||||
|
|
||||||
leaderboardsLoaded: =>
|
@addResourceToLoad @leaderboards[team.id], 'leaderboard', 3
|
||||||
@loadingLeaderboards = false
|
|
||||||
@renderMaybe()
|
|
||||||
|
|
||||||
renderMaybe: ->
|
|
||||||
return if @loadingFacebookFriends or @loadingLeaderboards or @loadingGPlusFriends
|
|
||||||
@startsLoading = false
|
|
||||||
@render()
|
|
||||||
|
|
||||||
|
render: ->
|
||||||
|
super()
|
||||||
|
|
||||||
|
@$el.find('.histogram-display').each (i, el) =>
|
||||||
|
histogramWrapper = $(el)
|
||||||
|
team = _.find @teams, name: histogramWrapper.data('team-name')
|
||||||
|
histogramData = null
|
||||||
|
$.when(
|
||||||
|
$.get("/db/level/#{@level.get('slug')}/histogram_data?team=#{team.name.toLowerCase()}", (data) -> histogramData = data)
|
||||||
|
).then =>
|
||||||
|
@generateHistogram(histogramWrapper, histogramData, team.name.toLowerCase())
|
||||||
|
|
||||||
getRenderData: ->
|
getRenderData: ->
|
||||||
ctx = super()
|
ctx = super()
|
||||||
ctx.level = @level
|
ctx.level = @level
|
||||||
|
@ -153,6 +162,82 @@ module.exports = class LadderTabView extends CocoView
|
||||||
ctx.onGPlus = application.gplusHandler.loggedIn
|
ctx.onGPlus = application.gplusHandler.loggedIn
|
||||||
ctx
|
ctx
|
||||||
|
|
||||||
|
generateHistogram: (histogramElement, histogramData, teamName) ->
|
||||||
|
#renders twice, hack fix
|
||||||
|
if $("#"+histogramElement.attr("id")).has("svg").length then return
|
||||||
|
histogramData = histogramData.map (d) -> d*100
|
||||||
|
|
||||||
|
margin =
|
||||||
|
top: 20
|
||||||
|
right: 20
|
||||||
|
bottom: 30
|
||||||
|
left: 0
|
||||||
|
|
||||||
|
width = 300 - margin.left - margin.right
|
||||||
|
height = 125 - margin.top - margin.bottom
|
||||||
|
|
||||||
|
formatCount = d3.format(",.0")
|
||||||
|
|
||||||
|
x = d3.scale.linear().domain([-3000,6000]).range([0,width])
|
||||||
|
|
||||||
|
data = d3.layout.histogram().bins(x.ticks(20))(histogramData)
|
||||||
|
y = d3.scale.linear().domain([0,d3.max(data, (d) -> d.y)]).range([height,0])
|
||||||
|
|
||||||
|
#create the x axis
|
||||||
|
xAxis = d3.svg.axis().scale(x).orient("bottom").ticks(5).outerTickSize(0)
|
||||||
|
|
||||||
|
svg = d3.select("#"+histogramElement.attr("id")).append("svg")
|
||||||
|
.attr("width", width + margin.left + margin.right)
|
||||||
|
.attr("height", height + margin.top + margin.bottom)
|
||||||
|
.append("g")
|
||||||
|
.attr("transform","translate(#{margin.left},#{margin.top})")
|
||||||
|
barClass = "bar"
|
||||||
|
if teamName.toLowerCase() is "ogres" then barClass = "ogres-bar"
|
||||||
|
if teamName.toLowerCase() is "humans" then barClass = "humans-bar"
|
||||||
|
|
||||||
|
bar = svg.selectAll(".bar")
|
||||||
|
.data(data)
|
||||||
|
.enter().append("g")
|
||||||
|
.attr("class",barClass)
|
||||||
|
.attr("transform", (d) -> "translate(#{x(d.x)},#{y(d.y)})")
|
||||||
|
|
||||||
|
bar.append("rect")
|
||||||
|
.attr("x",1)
|
||||||
|
.attr("width",width/20)
|
||||||
|
.attr("height", (d) -> height - y(d.y))
|
||||||
|
if @leaderboards[teamName].session?
|
||||||
|
playerScore = @leaderboards[teamName].session.get('totalScore') * 100
|
||||||
|
scorebar = svg.selectAll(".specialbar")
|
||||||
|
.data([playerScore])
|
||||||
|
.enter().append("g")
|
||||||
|
.attr("class","specialbar")
|
||||||
|
.attr("transform", "translate(#{x(playerScore)},#{y(9001)})")
|
||||||
|
|
||||||
|
scorebar.append("rect")
|
||||||
|
.attr("x",1)
|
||||||
|
.attr("width",3)
|
||||||
|
.attr("height",height - y(9001))
|
||||||
|
rankClass = "rank-text"
|
||||||
|
if teamName.toLowerCase() is "ogres" then rankClass = "rank-text ogres-rank-text"
|
||||||
|
if teamName.toLowerCase() is "humans" then rankClass = "rank-text humans-rank-text"
|
||||||
|
|
||||||
|
message = "#{histogramData.length} players"
|
||||||
|
if @leaderboards[teamName].session? then message="#{@leaderboards[teamName].myRank}/#{histogramData.length}"
|
||||||
|
svg.append("g")
|
||||||
|
.append("text")
|
||||||
|
.attr("class",rankClass)
|
||||||
|
.attr("y",0)
|
||||||
|
.attr("text-anchor","end")
|
||||||
|
.attr("x",width)
|
||||||
|
.text(message)
|
||||||
|
|
||||||
|
#Translate the x-axis up
|
||||||
|
svg.append("g")
|
||||||
|
.attr("class", "x axis")
|
||||||
|
.attr("transform","translate(0," + height + ")")
|
||||||
|
.call(xAxis)
|
||||||
|
|
||||||
|
|
||||||
consolidateFriends: ->
|
consolidateFriends: ->
|
||||||
allFriendSessions = (@facebookFriendSessions or []).concat(@gplusFriendSessions or [])
|
allFriendSessions = (@facebookFriendSessions or []).concat(@gplusFriendSessions or [])
|
||||||
sessions = _.uniq allFriendSessions, false, (session) -> session._id
|
sessions = _.uniq allFriendSessions, false, (session) -> session._id
|
||||||
|
@ -160,9 +245,16 @@ module.exports = class LadderTabView extends CocoView
|
||||||
sessions.reverse()
|
sessions.reverse()
|
||||||
sessions
|
sessions
|
||||||
|
|
||||||
class LeaderboardData
|
class LeaderboardData extends CocoClass
|
||||||
|
###
|
||||||
|
Consolidates what you need to load for a leaderboard into a single Backbone Model-like object.
|
||||||
|
###
|
||||||
|
|
||||||
constructor: (@level, @team, @session) ->
|
constructor: (@level, @team, @session) ->
|
||||||
_.extend @, Backbone.Events
|
super()
|
||||||
|
@fetch()
|
||||||
|
|
||||||
|
fetch: ->
|
||||||
@topPlayers = new LeaderboardCollection(@level, {order:-1, scoreOffset: HIGHEST_SCORE, team: @team, limit: 20})
|
@topPlayers = new LeaderboardCollection(@level, {order:-1, scoreOffset: HIGHEST_SCORE, team: @team, limit: 20})
|
||||||
promises = []
|
promises = []
|
||||||
promises.push @topPlayers.fetch()
|
promises.push @topPlayers.fetch()
|
||||||
|
@ -173,18 +265,24 @@ class LeaderboardData
|
||||||
promises.push @playersAbove.fetch()
|
promises.push @playersAbove.fetch()
|
||||||
@playersBelow = new LeaderboardCollection(@level, {order:-1, scoreOffset: score, limit: 4, team: @team})
|
@playersBelow = new LeaderboardCollection(@level, {order:-1, scoreOffset: score, limit: 4, team: @team})
|
||||||
promises.push @playersBelow.fetch()
|
promises.push @playersBelow.fetch()
|
||||||
level = "#{level.get('original')}.#{level.get('version').major}"
|
level = "#{@level.get('original')}.#{@level.get('version').major}"
|
||||||
success = (@myRank) =>
|
success = (@myRank) =>
|
||||||
promises.push $.ajax "/db/level/#{level}/leaderboard_rank?scoreOffset=#{@session.get('totalScore')}&team=#{@team}", {success}
|
promises.push $.ajax "/db/level/#{level}/leaderboard_rank?scoreOffset=#{@session.get('totalScore')}&team=#{@team}", {success}
|
||||||
@promise = $.when(promises...)
|
@promise = $.when(promises...)
|
||||||
@promise.then @onLoad
|
@promise.then @onLoad
|
||||||
|
@promise.fail @onFail
|
||||||
@promise
|
@promise
|
||||||
|
|
||||||
onLoad: =>
|
onLoad: =>
|
||||||
|
return if @destroyed
|
||||||
@loaded = true
|
@loaded = true
|
||||||
@trigger 'sync'
|
@trigger 'sync', @
|
||||||
# TODO: cache user ids -> names mapping, and load them here as needed,
|
# TODO: cache user ids -> names mapping, and load them here as needed,
|
||||||
# and apply them to sessions. Fetching each and every time is too costly.
|
# and apply them to sessions. Fetching each and every time is too costly.
|
||||||
|
|
||||||
|
onFail: (resource, jqxhr) =>
|
||||||
|
return if @destroyed
|
||||||
|
@trigger 'error', @, jqxhr
|
||||||
|
|
||||||
inTopSessions: ->
|
inTopSessions: ->
|
||||||
return me.id in (session.attributes.creator for session in @topPlayers.models)
|
return me.id in (session.attributes.creator for session in @topPlayers.models)
|
||||||
|
@ -201,3 +299,7 @@ class LeaderboardData
|
||||||
startRank = @myRank - 4
|
startRank = @myRank - 4
|
||||||
session.rank = startRank + i for session, i in l
|
session.rank = startRank + i for session, i in l
|
||||||
l
|
l
|
||||||
|
|
||||||
|
allResources: ->
|
||||||
|
resources = [@topPlayers, @playersAbove, @playersBelow]
|
||||||
|
return (r for r in resources when r)
|
||||||
|
|
|
@ -48,6 +48,8 @@ module.exports = class MyMatchesTabView extends CocoView
|
||||||
@startsLoading = false
|
@startsLoading = false
|
||||||
@render()
|
@render()
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
getRenderData: ->
|
getRenderData: ->
|
||||||
ctx = super()
|
ctx = super()
|
||||||
ctx.level = @level
|
ctx.level = @level
|
||||||
|
@ -80,7 +82,9 @@ module.exports = class MyMatchesTabView extends CocoView
|
||||||
team.losses = _.filter(team.matches, {state: 'loss'}).length
|
team.losses = _.filter(team.matches, {state: 'loss'}).length
|
||||||
scoreHistory = team.session?.get('scoreHistory')
|
scoreHistory = team.session?.get('scoreHistory')
|
||||||
if scoreHistory?.length > 1
|
if scoreHistory?.length > 1
|
||||||
|
team.scoreHistory = scoreHistory
|
||||||
scoreHistory = _.last scoreHistory, 100 # Chart URL needs to be under 2048 characters for GET
|
scoreHistory = _.last scoreHistory, 100 # Chart URL needs to be under 2048 characters for GET
|
||||||
|
|
||||||
team.currentScore = Math.round scoreHistory[scoreHistory.length - 1][1] * 100
|
team.currentScore = Math.round scoreHistory[scoreHistory.length - 1][1] * 100
|
||||||
team.chartColor = team.primaryColor.replace '#', ''
|
team.chartColor = team.primaryColor.replace '#', ''
|
||||||
#times = (s[0] for s in scoreHistory)
|
#times = (s[0] for s in scoreHistory)
|
||||||
|
@ -109,7 +113,69 @@ module.exports = class MyMatchesTabView extends CocoView
|
||||||
else if session.get 'isRanking'
|
else if session.get 'isRanking'
|
||||||
rankingState = 'ranking'
|
rankingState = 'ranking'
|
||||||
@setRankingButtonText button, rankingState
|
@setRankingButtonText button, rankingState
|
||||||
|
|
||||||
|
@$el.find('.score-chart-wrapper').each (i, el) =>
|
||||||
|
scoreWrapper = $(el)
|
||||||
|
team = _.find @teams, name: scoreWrapper.data('team-name')
|
||||||
|
@generateScoreLineChart(scoreWrapper.attr('id'), team.scoreHistory, team.name)
|
||||||
|
|
||||||
|
|
||||||
|
generateScoreLineChart: (wrapperID, scoreHistory,teamName) =>
|
||||||
|
margin =
|
||||||
|
top: 20
|
||||||
|
right: 20
|
||||||
|
bottom: 30
|
||||||
|
left: 50
|
||||||
|
|
||||||
|
width = 450 - margin.left - margin.right
|
||||||
|
height = 125
|
||||||
|
x = d3.time.scale().range([0,width])
|
||||||
|
y = d3.scale.linear().range([height,0])
|
||||||
|
|
||||||
|
xAxis = d3.svg.axis().scale(x).orient("bottom").ticks(4).outerTickSize(0)
|
||||||
|
yAxis = d3.svg.axis().scale(y).orient("left").ticks(4).outerTickSize(0)
|
||||||
|
|
||||||
|
line = d3.svg.line().x(((d) -> x(d.date))).y((d) -> y(d.close))
|
||||||
|
selector = "#" + wrapperID
|
||||||
|
|
||||||
|
svg = d3.select(selector).append("svg")
|
||||||
|
.attr("width", width + margin.left + margin.right)
|
||||||
|
.attr("height", height + margin.top + margin.bottom)
|
||||||
|
.append("g")
|
||||||
|
.attr("transform","translate(#{margin.left},#{margin.top})")
|
||||||
|
time = 0
|
||||||
|
data = scoreHistory.map (d) ->
|
||||||
|
time +=1
|
||||||
|
return {
|
||||||
|
date: time
|
||||||
|
close: d[1] * 100
|
||||||
|
}
|
||||||
|
|
||||||
|
x.domain(d3.extent(data, (d) -> d.date))
|
||||||
|
y.domain(d3.extent(data, (d) -> d.close))
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
svg.append("g")
|
||||||
|
.attr("class", "y axis")
|
||||||
|
.call(yAxis)
|
||||||
|
.append("text")
|
||||||
|
.attr("transform", "rotate(-90)")
|
||||||
|
.attr("y",4)
|
||||||
|
.attr("dy", ".75em")
|
||||||
|
.style("text-anchor","end")
|
||||||
|
.text("Score")
|
||||||
|
lineClass = "line"
|
||||||
|
if teamName.toLowerCase() is "ogres" then lineClass = "ogres-line"
|
||||||
|
if teamName.toLowerCase() is "humans" then lineClass = "humans-line"
|
||||||
|
svg.append("path")
|
||||||
|
.datum(data)
|
||||||
|
.attr("class",lineClass)
|
||||||
|
.attr("d",line)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
readyToRank: (session) ->
|
readyToRank: (session) ->
|
||||||
return false unless session?.get('levelID') # If it hasn't been denormalized, then it's not ready.
|
return false unless session?.get('levelID') # If it hasn't been denormalized, then it's not ready.
|
||||||
return false unless c1 = session.get('code')
|
return false unless c1 = session.get('code')
|
||||||
|
|
|
@ -24,7 +24,6 @@ class LevelSessionsCollection extends CocoCollection
|
||||||
module.exports = class LadderView extends RootView
|
module.exports = class LadderView extends RootView
|
||||||
id: 'ladder-view'
|
id: 'ladder-view'
|
||||||
template: require 'templates/play/ladder'
|
template: require 'templates/play/ladder'
|
||||||
startsLoading: true
|
|
||||||
|
|
||||||
subscriptions:
|
subscriptions:
|
||||||
'application:idle-changed': 'onIdleChanged'
|
'application:idle-changed': 'onIdleChanged'
|
||||||
|
@ -38,18 +37,18 @@ module.exports = class LadderView extends RootView
|
||||||
constructor: (options, @levelID) ->
|
constructor: (options, @levelID) ->
|
||||||
super(options)
|
super(options)
|
||||||
@level = new Level(_id:@levelID)
|
@level = new Level(_id:@levelID)
|
||||||
p1 = @level.fetch()
|
@level.fetch()
|
||||||
@sessions = new LevelSessionsCollection(levelID)
|
@sessions = new LevelSessionsCollection(levelID)
|
||||||
p2 = @sessions.fetch({})
|
@sessions.fetch({})
|
||||||
|
@addResourceToLoad(@sessions, 'your_sessions')
|
||||||
|
@addResourceToLoad(@level, 'level')
|
||||||
@simulator = new Simulator()
|
@simulator = new Simulator()
|
||||||
@listenTo(@simulator, 'statusUpdate', @updateSimulationStatus)
|
@listenTo(@simulator, 'statusUpdate', @updateSimulationStatus)
|
||||||
@teams = []
|
@teams = []
|
||||||
$.when(p1, p2).then @onLoaded
|
|
||||||
|
|
||||||
onLoaded: =>
|
onLoaded: ->
|
||||||
@teams = teamDataFromLevel @level
|
@teams = teamDataFromLevel @level
|
||||||
@startsLoading = false
|
super()
|
||||||
@render()
|
|
||||||
|
|
||||||
getRenderData: ->
|
getRenderData: ->
|
||||||
ctx = super()
|
ctx = super()
|
||||||
|
@ -63,7 +62,7 @@ module.exports = class LadderView extends RootView
|
||||||
|
|
||||||
afterRender: ->
|
afterRender: ->
|
||||||
super()
|
super()
|
||||||
return if @startsLoading
|
return if @loading()
|
||||||
@insertSubView(@ladderTab = new LadderTabView({}, @level, @sessions))
|
@insertSubView(@ladderTab = new LadderTabView({}, @level, @sessions))
|
||||||
@insertSubView(@myMatchesTab = new MyMatchesTabView({}, @level, @sessions))
|
@insertSubView(@myMatchesTab = new MyMatchesTabView({}, @level, @sessions))
|
||||||
@refreshInterval = setInterval(@fetchSessionsAndRefreshViews.bind(@), 10 * 1000)
|
@refreshInterval = setInterval(@fetchSessionsAndRefreshViews.bind(@), 10 * 1000)
|
||||||
|
@ -72,7 +71,7 @@ module.exports = class LadderView extends RootView
|
||||||
@showPlayModal(hash) if @sessions.loaded
|
@showPlayModal(hash) if @sessions.loaded
|
||||||
|
|
||||||
fetchSessionsAndRefreshViews: ->
|
fetchSessionsAndRefreshViews: ->
|
||||||
return if @destroyed or application.userIsIdle or @$el.find('#simulate.active').length or (new Date() - 2000 < @lastRefreshTime) or @startsLoading
|
return if @destroyed or application.userIsIdle or @$el.find('#simulate.active').length or (new Date() - 2000 < @lastRefreshTime) or @loading()
|
||||||
@sessions.fetch({"success": @refreshViews})
|
@sessions.fetch({"success": @refreshViews})
|
||||||
|
|
||||||
refreshViews: =>
|
refreshViews: =>
|
||||||
|
|
|
@ -78,7 +78,7 @@ module.exports = class VictoryModal extends View
|
||||||
c = super()
|
c = super()
|
||||||
c.body = @body
|
c.body = @body
|
||||||
c.me = me
|
c.me = me
|
||||||
c.hasNextLevel = _.isObject(@level.get('nextLevel')) and (@level.get('name') isnt "Mobile Artillery")
|
c.hasNextLevel = _.isObject(@level.get('nextLevel'))
|
||||||
c.levelName = utils.i18n @level.attributes, 'name'
|
c.levelName = utils.i18n @level.attributes, 'name'
|
||||||
c.level = @level
|
c.level = @level
|
||||||
if c.level.get('type') is 'ladder'
|
if c.level.get('type') is 'ladder'
|
||||||
|
|
|
@ -44,7 +44,6 @@ module.exports = class PlaybackView extends View
|
||||||
'⌘+[, ctrl+[': 'onScrubBack'
|
'⌘+[, ctrl+[': 'onScrubBack'
|
||||||
'⌘+], ctrl+]': 'onScrubForward'
|
'⌘+], ctrl+]': 'onScrubForward'
|
||||||
|
|
||||||
|
|
||||||
# popover that shows at the current mouse position on the progressbar, using the bootstrap popover.
|
# popover that shows at the current mouse position on the progressbar, using the bootstrap popover.
|
||||||
# Could make this into a jQuery plugins itself theoretically.
|
# Could make this into a jQuery plugins itself theoretically.
|
||||||
class HoverPopup extends $.fn.popover.Constructor
|
class HoverPopup extends $.fn.popover.Constructor
|
||||||
|
|
|
@ -63,7 +63,7 @@ module.exports = class SpellView extends View
|
||||||
@createFirepad()
|
@createFirepad()
|
||||||
else
|
else
|
||||||
# needs to happen after the code generating this view is complete
|
# needs to happen after the code generating this view is complete
|
||||||
setTimeout @onLoaded, 1
|
setTimeout @onAllLoaded, 1
|
||||||
|
|
||||||
createACE: ->
|
createACE: ->
|
||||||
# Test themes and settings here: http://ace.ajax.org/build/kitchen-sink.html
|
# Test themes and settings here: http://ace.ajax.org/build/kitchen-sink.html
|
||||||
|
@ -178,9 +178,9 @@ module.exports = class SpellView extends View
|
||||||
else
|
else
|
||||||
@ace.setValue @previousSource
|
@ace.setValue @previousSource
|
||||||
@ace.clearSelection()
|
@ace.clearSelection()
|
||||||
@onLoaded()
|
@onAllLoaded()
|
||||||
|
|
||||||
onLoaded: =>
|
onAllLoaded: =>
|
||||||
@spell.transpile @spell.source
|
@spell.transpile @spell.source
|
||||||
@spell.loaded = true
|
@spell.loaded = true
|
||||||
Backbone.Mediator.publish 'tome:spell-loaded', spell: @spell
|
Backbone.Mediator.publish 'tome:spell-loaded', spell: @spell
|
||||||
|
|
|
@ -35,7 +35,8 @@
|
||||||
"aether": "~0.1.18",
|
"aether": "~0.1.18",
|
||||||
"underscore.string": "~2.3.3",
|
"underscore.string": "~2.3.3",
|
||||||
"firebase": "~1.0.2",
|
"firebase": "~1.0.2",
|
||||||
"catiline": "~2.9.3"
|
"catiline": "~2.9.3",
|
||||||
|
"d3": "~3.4.4"
|
||||||
},
|
},
|
||||||
"overrides": {
|
"overrides": {
|
||||||
"backbone": {
|
"backbone": {
|
||||||
|
|
|
@ -65,6 +65,7 @@ exports.config =
|
||||||
|
|
||||||
# Aether before box2d for some strange Object.defineProperty thing
|
# Aether before box2d for some strange Object.defineProperty thing
|
||||||
'bower_components/aether/build/aether.js'
|
'bower_components/aether/build/aether.js'
|
||||||
|
'bower_components/d3/d3.min.js'
|
||||||
]
|
]
|
||||||
stylesheets:
|
stylesheets:
|
||||||
defaultExtension: 'sass'
|
defaultExtension: 'sass'
|
||||||
|
|
|
@ -1,6 +1,8 @@
|
||||||
version=1.0
|
<?xml version="1.0" encoding="ISO-8859-1" ?>
|
||||||
author=GlenDC
|
<variables>
|
||||||
copyright=CodeCombat.com © 2013-2014
|
<version>1.2</version>
|
||||||
github_url=https://github.com/codecombat/codecombat.git
|
<author>GlenDC</author>
|
||||||
github_ssh=git@github.com:codecombat/codecombat.git
|
<copyright>CodeCombat.com © 2013-2014</copyright>
|
||||||
database_backup=http://23.21.59.137/dump.tar.gz
|
<github_url>https://github.com/codecombat/codecombat.git</github_url>
|
||||||
|
<github_ssh>git@github.com:codecombat/codecombat.git</github_ssh>
|
||||||
|
</variables>
|
|
@ -1,23 +1,38 @@
|
||||||
[general]
|
<?xml version="1.0" encoding="ISO-8859-1" ?>
|
||||||
[32]
|
<variables>
|
||||||
nodejs=http://nodejs.org/dist/v0.10.25/node-v0.10.25-x86.msi
|
<general>
|
||||||
ruby=http://dl.bintray.com/oneclick/rubyinstaller/rubyinstaller-2.0.0-p353.exe?direct
|
<b32>
|
||||||
python=https://www.python.org/ftp/python/2.7.6/python-2.7.6.msi
|
<nodejs>http://nodejs.org/dist/v0.10.25/node-v0.10.25-x86.msi</nodejs>
|
||||||
[64]
|
<ruby>http://dl.bintray.com/oneclick/rubyinstaller/rubyinstaller-2.0.0-p353.exe?direct</ruby>
|
||||||
nodejs=http://nodejs.org/dist/v0.10.25/x64/node-v0.10.25-x64.msi
|
<python>http://s3.amazonaws.com/CodeCombatLargeFiles/python-32.msi</python>
|
||||||
ruby=http://dl.bintray.com/oneclick/rubyinstaller/rubyinstaller-2.0.0-p353-x64.exe?direct
|
<vs12redist>http://download.microsoft.com/download/1/6/B/16B06F60-3B20-4FF2-B699-5E9B7962F9AE/VSU_4/vcredist_x86.exe</vs12redist>
|
||||||
python=https://www.python.org/ftp/python/2.7.6/python-2.7.6.amd64.msi
|
</b32>
|
||||||
winsdk=http://download.microsoft.com/download/A/6/A/A6AC035D-DA3F-4F0C-ADA4-37C8E5D34E3D/winsdk_web.exe
|
<b64>
|
||||||
[general]
|
<nodejs>http://nodejs.org/dist/v0.10.25/x64/node-v0.10.25-x64.msi</nodejs>
|
||||||
gitbash=https://msysgit.googlecode.com/files/Git-1.8.5.2-preview20131230.exe
|
<ruby>http://dl.bintray.com/oneclick/rubyinstaller/rubyinstaller-2.0.0-p353-x64.exe?direct</ruby>
|
||||||
visualstudio2010=http://download.microsoft.com/download/1/D/9/1D9A6C0E-FC89-43EE-9658-B9F0E3A76983/vc_web.exe
|
<python>http://s3.amazonaws.com/CodeCombatLargeFiles/python-64.msi</python>
|
||||||
[Win7]
|
<winsdk>http://download.microsoft.com/download/A/6/A/A6AC035D-DA3F-4F0C-ADA4-37C8E5D34E3D/winsdk_web.exe</winsdk>
|
||||||
[32]
|
<vs12redist>http://download.microsoft.com/download/1/6/B/16B06F60-3B20-4FF2-B699-5E9B7962F9AE/VSU_4/vcredist_x64.exe</vs12redist>
|
||||||
mongodb=http://fastdl.mongodb.org/win32/mongodb-win32-i386-2.5.4.zip
|
</b64>
|
||||||
[64]
|
<general>
|
||||||
mongodb=http://fastdl.mongodb.org/win32/mongodb-win32-x86_64-2008plus-2.5.4.zip
|
<gitbash>https://msysgit.googlecode.com/files/Git-1.8.5.2-preview20131230.exe</gitbash>
|
||||||
[Vista]
|
<vs10redist>http://download.microsoft.com/download/C/6/D/C6D0FD4E-9E53-4897-9B91-836EBA2AACD3/vcredist_x86.exe</vs10redist>
|
||||||
[64]
|
</general>
|
||||||
mongodb=http://fastdl.mongodb.org/win32/mongodb-win32-x86_64-2.5.4.zip
|
</general>
|
||||||
[32]
|
<Win7>
|
||||||
mongodb=http://fastdl.mongodb.org/win32/mongodb-win32-i386-2.5.4.zip
|
<b32>
|
||||||
|
<mongodb>http://fastdl.mongodb.org/win32/mongodb-win32-i386-2.5.4.zip</mongodb>
|
||||||
|
</b32>
|
||||||
|
<b64>
|
||||||
|
<mongodb>http://fastdl.mongodb.org/win32/mongodb-win32-x86_64-2008plus-2.5.4.zip</mongodb>
|
||||||
|
</b64>
|
||||||
|
</Win7>
|
||||||
|
<Vista>
|
||||||
|
<b32>
|
||||||
|
<mongodb>http://fastdl.mongodb.org/win32/mongodb-win32-i386-2.5.4.zip</mongodb>
|
||||||
|
</b32>
|
||||||
|
<b64>
|
||||||
|
<mongodb>http://fastdl.mongodb.org/win32/mongodb-win32-x86_64-2.5.4.zip</mongodb>
|
||||||
|
</b64>
|
||||||
|
</Vista>
|
||||||
|
</variables>
|
|
@ -4,4 +4,4 @@
|
||||||
4) Having questions/suggestions? Talk with us on HipChat via CodeCombat.com
|
4) Having questions/suggestions? Talk with us on HipChat via CodeCombat.com
|
||||||
|
|
||||||
You can find a step-by-step guide for this installation on our wiki.
|
You can find a step-by-step guide for this installation on our wiki.
|
||||||
https://github.com/codecombat/codecombat/wiki/<guide_path>
|
github.com/codecombat/codecombat/wiki/Setup-on-Windows:-a-step-by-step-guide
|
|
@ -1,66 +1,82 @@
|
||||||
[global]
|
<?xml version="1.0" encoding="ISO-8859-1" ?>
|
||||||
native=Deutsch
|
<variables>
|
||||||
intro=Ab jetzt senden wir unser Feedback in Englisch!
|
<global>
|
||||||
[install]
|
<native>Deutsch</native>
|
||||||
[system]
|
<intro>Ab jetzt senden wir unser Feedback in Englisch!</intro>
|
||||||
bit=-Bit System erkannt.
|
</global>
|
||||||
prefix=Es wurde das Betriebssystem
|
<install>
|
||||||
sufix=erkannt.
|
<system>
|
||||||
xp=Windows XP wird nicht unterstützt. Installation abgebrochen.
|
<bit>-Bit System erkannt.</bit>
|
||||||
[process]
|
<prefix>Es wurde das Betriebssystem</prefix>
|
||||||
sks=Sind die für CodeCombat benötigten Programme bereits installiert?
|
<sufix>erkannt.</sufix>
|
||||||
skq=Wir empfehlen Ihnen, mit „Nein“ zu antorten, falls Sie unsicher sind.
|
<xp>Windows XP wird nicht unterstützt. Installation abgebrochen.</xp>
|
||||||
skc=Überspringe Installation der Programme...
|
</system>
|
||||||
1=Ohne Software von Drittanbietern könnte CodeCombat nicht entwickelt werden.
|
<process>
|
||||||
2=Aus diesem Grund müssen Sie diese Software installieren,
|
<sks>Sind die für CodeCombat benötigten Programme bereits installiert?</sks>
|
||||||
3=um sich in der Community zu engagieren.
|
<skq>Wir empfehlen Ihnen, mit „Nein“ zu antorten, falls Sie unsicher sind.</skq>
|
||||||
4=Wenn Sie ein Programm bereits installiert haben, brechen Sie die Installation bitte ab.
|
<skc>Überspringe Installation der Programme...</skc>
|
||||||
prefix=Haben Sie bereits die aktuellste Version von
|
<s1>Ohne Software von Drittanbietern könnte CodeCombat nicht entwickelt werden.</s1>
|
||||||
sufix=installiert?
|
<s2>Aus diesem Grund müssen Sie diese Software installieren,</s2>
|
||||||
downloading=wird heruntergeladen...
|
<s3>um sich in der Community zu engagieren.</s3>
|
||||||
installing=wird installiert...
|
<s4>Wenn Sie ein Programm bereits installiert haben, brechen Sie die Installation bitte ab.</s4>
|
||||||
unzipping=wird entpackt...
|
<winpath>Make sure to select the option that adds the application to your Windows Path, if the option is available.</winpath>
|
||||||
cleaning=wird aufgeräumt...
|
<prefix>Haben Sie bereits die aktuellste Version von</prefix>
|
||||||
mongodbpath=Bitte geben Sie den kompletten Pfad an, an dem MongoDB installiert werden soll
|
<sufix>installiert?</sufix>
|
||||||
[github]
|
<downloading>wird heruntergeladen...</downloading>
|
||||||
[intro]
|
<installing>wird installiert...</installing>
|
||||||
opensource=Wie Du bereits weißt, ist CodeCombat Open Source.
|
<unzipping>wird entpackt...</unzipping>
|
||||||
online=Unser Quellcode ist komplett auf Github.
|
<cleaning>wird aufgeräumt...</cleaning>
|
||||||
manual=Wenn Du möchtest, kannst du das komplette Git Repository selbst herunterladen und nach deinen wünschen einrichten.
|
<mongodbpath>Bitte geben Sie den kompletten Pfad an, an dem MongoDB installiert werden soll</mongodbpath>
|
||||||
norec=Allerdings empfehlen wir, dass du den Prozess statt dessen uns überlässt.
|
</process>
|
||||||
[skip]
|
</install>
|
||||||
question=Willst du das lokale Git Setup selbst vornehmen?
|
<github>
|
||||||
consequence=Bit vergewissere dich, dass das Repository korrekt heruntergeladen wurde, bevor du fortfährst.
|
<intro>
|
||||||
donotclose=Bitte schließe dieses Fenster nicht.
|
<opensource>Wie Du bereits weißt, ist CodeCombat Open Source.</opensource>
|
||||||
wait=Wenn du fertig bist, drücke eine beliebige Taste zum Fortfahren...
|
<online>Unser Quellcode ist komplett auf Github.</online>
|
||||||
[process]
|
<manual>Wenn Du möchtest, kannst du das komplette Git Repository selbst herunterladen und nach deinen wünschen einrichten.</manual>
|
||||||
path=Gebe bitte den kompletten Pfad zu deinem CodeCombat Git Repository ein:
|
<norec>Allerdings empfehlen wir, dass du den Prozess statt dessen uns überlässt.</norec>
|
||||||
checkout=Bitte gib den kompletten Pfad ein, an dem du die CodeCombat Umgebung einrichten willst
|
</intro>
|
||||||
bashi=Diese Installation benötigt die Git Bash.
|
<skip>
|
||||||
bashp64=Die Git Bash ist standardmäßig in 'C:\Program Files (x86)\Git' installiert.
|
<question>Willst du das lokale Git Setup selbst vornehmen?</question>
|
||||||
bashp32=Die Git Bash ist standardmäßig in 'C:\Program Files\Git' installiert.
|
<consequence>Bit vergewissere dich, dass das Repository korrekt heruntergeladen wurde, bevor du fortfährst.</consequence>
|
||||||
bashq=Bitte gebe den kompletten Pfad zur Git Bash ein, oder drücke Enter, um den Standardpfad zu verwenden
|
<donotclose>Bitte schließe dieses Fenster nicht.</donotclose>
|
||||||
ssh=Willst du das Repository via SSH auschecken?
|
<wait>Wenn du fertig bist, drücke eine beliebige Taste zum Fortfahren...</wait>
|
||||||
[npm]
|
</skip>
|
||||||
install=Installing bower, brunch, nodemon and sendwithus...
|
<process>
|
||||||
binstall=Installing bower packages...
|
<path>Gebe bitte den kompletten Pfad zu deinem CodeCombat Git Repository ein: </path>
|
||||||
sass=Installing sass...
|
<checkout>Bitte gib den kompletten Pfad ein, an dem du die CodeCombat Umgebung einrichten willst</checkout>
|
||||||
npm=Installing npm...
|
<bashi>Diese Installation benötigt die Git Bash.</bashi>
|
||||||
brnch=Starting brunch....
|
<bashp64>Die Git Bash ist standardmäßig in 'C:\Program Files (x86)\Git' installiert.</bashp64>
|
||||||
mongodb=Setting up a MongoDB database for you...
|
<bashp32>Die Git Bash ist standardmäßig in 'C:\Program Files\Git' installiert.</bashp32>
|
||||||
database=Downloading the last version of the CodeCombat database...
|
<bashq>Bitte gebe den kompletten Pfad zur Git Bash ein, oder drücke Enter, um den Standardpfad zu verwenden</bashq>
|
||||||
script=Preparing the automatic startup script for you...
|
<ssh>Willst du das Repository via SSH auschecken?</ssh>
|
||||||
[error]
|
</process>
|
||||||
path=Dieser Pfad existiert bereits. Willst du ihn wirklich überschreiben?
|
</github>
|
||||||
exist=Dieser Pfad exisitert nicht. Bitte versuche es erneut...
|
<npm>
|
||||||
[end]
|
<install>Installing bower, brunch, nodemon and sendwithus...</install>
|
||||||
succesfull=Die CodeCombat Entwicklungsumgebung wurde erfoglreich installiert.
|
<binstall>Installing bower packages...</binstall>
|
||||||
thankyou=Vielen Dank für die Unterstützung und bis bald.
|
<sass>Installing sass...</sass>
|
||||||
readme=Willst du das README lesen, um weitere Informationen zu erhalten?
|
<npm>Installing npm...</npm>
|
||||||
[start]
|
<brnch>Starting brunch....</brnch>
|
||||||
1=Von nun an kannst du die Entwicklungsumgebung starten unter
|
<mongodb>Setting up a MongoDB database for you...</mongodb>
|
||||||
2=einmal mit der Maus klicken.
|
<database>Downloading the last version of the CodeCombat database...</database>
|
||||||
3= 1) Einfach Doppelklicken
|
<script>Preparing the automatic startup script for you...</script>
|
||||||
4=und warten bis die Entwicklungsumgebung fertig geladen hat.
|
</npm>
|
||||||
5= 2) Jetzt 'localhost:3000' in deinem bevorzugten Browser aufrufen.
|
<error>
|
||||||
6=Fertig. Du bist nun bereit, bei CodeCombat mitzuarbeiten!
|
<path>Dieser Pfad existiert bereits. Willst du ihn wirklich überschreiben?</path>
|
||||||
|
<exist>Dieser Pfad exisitert nicht. Bitte versuche es erneut...</exist>
|
||||||
|
</error>
|
||||||
|
<end>
|
||||||
|
<succesfull>Die CodeCombat Entwicklungsumgebung wurde erfoglreich installiert.</succesfull>
|
||||||
|
<thankyou>Vielen Dank für die Unterstützung und bis bald.</thankyou>
|
||||||
|
<readme>Willst du das README lesen, um weitere Informationen zu erhalten?</readme>
|
||||||
|
</end>
|
||||||
|
<start>
|
||||||
|
<s1>Von nun an kannst du die Entwicklungsumgebung starten unter</s1>
|
||||||
|
<s2>einmal mit der Maus klicken.</s2>
|
||||||
|
<s3> 1) Einfach Doppelklicken</s3>
|
||||||
|
<s4>und warten bis die Entwicklungsumgebung fertig geladen hat.</s4>
|
||||||
|
<s5> 2) Jetzt 'localhost:3000' in deinem bevorzugten Browser aufrufen.</s5>
|
||||||
|
<s6>Fertig. Du bist nun bereit, bei CodeCombat mitzuarbeiten!</s6>
|
||||||
|
</start>
|
||||||
|
</variables>
|
|
@ -1,66 +1,82 @@
|
||||||
[global]
|
<?xml version="1.0" encoding="ISO-8859-1" ?>
|
||||||
native=English
|
<variables>
|
||||||
intro=From now on we'll send our feedback in English!
|
<global>
|
||||||
[install]
|
<native>English</native>
|
||||||
[system]
|
<intro>From now on we'll send our feedback in English!</intro>
|
||||||
bit=-bit computer detected.
|
</global>
|
||||||
prefix=The operating system
|
<install>
|
||||||
sufix=was detected.
|
<system>
|
||||||
xp=We don't support Windows XP, installation cancelled.
|
<bit>-bit computer detected.</bit>
|
||||||
[process]
|
<prefix>The operating system</prefix>
|
||||||
sks=Have you already installed all the software needed for CodeCombat?
|
<sufix>was detected.</sufix>
|
||||||
skq=We recommand that you reply negative in case you're not sure.
|
<xp>We don't support Windows XP, installation cancelled.</xp>
|
||||||
skc=Skipping the installation of the software...
|
</system>
|
||||||
1=CodeCombat couldn't be developed without third-party software.
|
<process>
|
||||||
2=That's why you'll need to install this software,
|
<sks>Have you already installed all the software needed for CodeCombat?</sks>
|
||||||
3=in order to start contributing to our community.
|
<skq>We recommand that you reply negative in case you're not sure.</skq>
|
||||||
4=Cancel the installation if you already have the application.
|
<skc>Skipping the installation of the software...</skc>
|
||||||
prefix=Do you already have the latest version of
|
<s1>CodeCombat couldn't be developed without third-party software.</s1>
|
||||||
sufix=installed?
|
<s2>That's why you'll need to install this software,</s2>
|
||||||
downloading=is downloading...
|
<s3>in order to start contributing to our community.</s3>
|
||||||
installing=is installing...
|
<s4>Cancel the installation if you already have the application.</s4>
|
||||||
unzipping=is unzipping...
|
<winpath>Make sure to select the option that adds the application to your Windows Path, if the option is available.</winpath>
|
||||||
cleaning=is cleaning...
|
<prefix>Do you already have the latest version of</prefix>
|
||||||
mongodbpath=Please define the full path where mongodb should be installed
|
<sufix>installed?</sufix>
|
||||||
[github]
|
<downloading>is downloading...</downloading>
|
||||||
[intro]
|
<installing>is installing...</installing>
|
||||||
opensource=CodeCombat is opensource, like you already know.
|
<unzipping>is unzipping...</unzipping>
|
||||||
online=All our sourcecode can be found online at Github.
|
<cleaning>is cleaning...</cleaning>
|
||||||
manual=You can choose to do the entire Git setup yourself.
|
<mongodbpath>Please define the full path where mongodb should be installed</mongodbpath>
|
||||||
norec=However we recommend that you instead let us handle it instead.
|
</process>
|
||||||
[skip]
|
</install>
|
||||||
question=Do you want to do the Local Git setup manually yourself?
|
<github>
|
||||||
consequence=Make sure you have correctly setup your repository before processing.
|
<intro>
|
||||||
donotclose=Do not close this window please.
|
<opensource>CodeCombat is opensource, like you already know.</opensource>
|
||||||
wait=When you're ready, press any key to continue...
|
<online>All our sourcecode can be found online at Github.</online>
|
||||||
[process]
|
<manual>You can choose to do the entire Git setup yourself.</manual>
|
||||||
path=Please give the full path of your CodeCombat git repository:
|
<norec>However we recommend that you instead let us handle it instead.</norec>
|
||||||
checkout=Please enter the full path where you want to install your CodeCombat environment
|
</intro>
|
||||||
bashi=This installation requires Git Bash.
|
<skip>
|
||||||
bashp64=Git bash is by default installed at 'C:\Program Files (x86)\Git'.
|
<question>Do you want to do the Local Git setup manually yourself?</question>
|
||||||
bashp32=Git bash is by default installed at 'C:\Program Files\Git'.
|
<consequence>Make sure you have correctly setup your repository before processing.</consequence>
|
||||||
bashq=Please enter the full path where git bash is installed or just press enter if it's in the default location
|
<donotclose>Do not close this window please.</donotclose>
|
||||||
ssh=Do you want to checkout the repository via ssh?
|
<wait>When you're ready, press any key to continue...</wait>
|
||||||
[npm]
|
</skip>
|
||||||
install=Installing bower, brunch, nodemon and sendwithus...
|
<process>
|
||||||
binstall=Installing bower packages...
|
<path>Please give the full path of your CodeCombat git repository: </path>
|
||||||
sass=Installing sass...
|
<checkout>Please enter the full path where you want to install your CodeCombat environment</checkout>
|
||||||
npm=Installing npm...
|
<bashi>This installation requires Git Bash.</bashi>
|
||||||
brnch=Starting brunch....
|
<bashp64>Git bash is by default installed at 'C:\Program Files (x86)\Git'.</bashp64>
|
||||||
mongodb=Setting up a MongoDB database for you...
|
<bashp32>Git bash is by default installed at 'C:\Program Files\Git'.</bashp32>
|
||||||
db=Downloading the last version of the CodeCombat database...
|
<bashq>Please enter the full path where git bash is installed or just press enter if it's in the default location</bashq>
|
||||||
script=Preparing the automatic startup script for you...
|
<ssh>Do you want to checkout the repository via ssh?</ssh>
|
||||||
[error]
|
</process>
|
||||||
path=That path already exists, are you sure you want to overwrite it?
|
</github>
|
||||||
exist=That path doesn't exist. Please try again...
|
<npm>
|
||||||
[end]
|
<install>Installing bower, brunch, nodemon and sendwithus...</install>
|
||||||
succesfull=The setup of the CodeCombat Dev. Environment was succesfull.
|
<binstall>Installing bower packages...</binstall>
|
||||||
thankyou=Thank you already for your contribution and see you soon.
|
<sass>Installing sass...</sass>
|
||||||
readme=Do you want to read the README for more information?
|
<npm>Installing npm...</npm>
|
||||||
[start]
|
<brnch>Starting brunch....</brnch>
|
||||||
1=From now on you can start the dev. environment at
|
<mongodb>Setting up a MongoDB database for you...</mongodb>
|
||||||
2=the touch of a single mouse click.
|
<db>Downloading the last version of the CodeCombat database...</db>
|
||||||
3= 1) Just double click
|
<script>Preparing the automatic startup script for you...</script>
|
||||||
4= and let the environment start up.
|
</npm>
|
||||||
5= 2) Now just open 'localhost:3000' in your prefered browser.
|
<error>
|
||||||
6=That's it, you're now ready to start working on CodeCombat!
|
<path>That path already exists, are you sure you want to overwrite it?</path>
|
||||||
|
<exist>That path doesn't exist. Please try again...</exist>
|
||||||
|
</error>
|
||||||
|
<end>
|
||||||
|
<succesfull>The setup of the CodeCombat Dev. Environment was succesfull.</succesfull>
|
||||||
|
<thankyou>Thank you already for your contribution and see you soon.</thankyou>
|
||||||
|
<readme>Do you want to read the README for more information?</readme>
|
||||||
|
</end>
|
||||||
|
<start>
|
||||||
|
<s1>From now on you can start the dev. environment at</s1>
|
||||||
|
<s2>the touch of a single mouse click.</s2>
|
||||||
|
<s3> 1) Just double click</s3>
|
||||||
|
<s4> and let the environment start up.</s4>
|
||||||
|
<s5> 2) Now just open 'localhost:3000' in your prefered browser.</s5>
|
||||||
|
<s6>That's it, you're now ready to start working on CodeCombat!</s6>
|
||||||
|
</start>
|
||||||
|
</variables>
|
82
scripts/windows/coco-dev-setup/batch/localisation/fr.coco
Executable file
82
scripts/windows/coco-dev-setup/batch/localisation/fr.coco
Executable file
|
@ -0,0 +1,82 @@
|
||||||
|
<?xml version="1.0" encoding="ISO-8859-1" ?>
|
||||||
|
<variables>
|
||||||
|
<global>
|
||||||
|
<native>français</native>
|
||||||
|
<intro>From now on we'll send our feedback in English!</intro>
|
||||||
|
</global>
|
||||||
|
<install>
|
||||||
|
<system>
|
||||||
|
<bit>-bit computer detected.</bit>
|
||||||
|
<prefix>The operating system</prefix>
|
||||||
|
<sufix>was detected.</sufix>
|
||||||
|
<xp>We don't support Windows XP, installation cancelled.</xp>
|
||||||
|
</system>
|
||||||
|
<process>
|
||||||
|
<sks>Have you already installed all the software needed for CodeCombat?</sks>
|
||||||
|
<skq>We recommand that you reply negative in case you're not sure.</skq>
|
||||||
|
<skc>Skipping the installation of the software...</skc>
|
||||||
|
<s1>CodeCombat couldn't be developed without third-party software.</s1>
|
||||||
|
<s2>That's why you'll need to install this software,</s2>
|
||||||
|
<s3>in order to start contributing to our community.</s3>
|
||||||
|
<s4>Cancel the installation if you already have the application.</s4>
|
||||||
|
<winpath>Make sure to select the option that adds the application to your Windows Path, if the option is available.</winpath>
|
||||||
|
<prefix>Do you already have the latest version of</prefix>
|
||||||
|
<sufix>installed?</sufix>
|
||||||
|
<downloading>is downloading...</downloading>
|
||||||
|
<installing>is installing...</installing>
|
||||||
|
<unzipping>is unzipping...</unzipping>
|
||||||
|
<cleaning>is cleaning...</cleaning>
|
||||||
|
<mongodbpath>Please define the full path where mongodb should be installed</mongodbpath>
|
||||||
|
</process>
|
||||||
|
</install>
|
||||||
|
<github>
|
||||||
|
<intro>
|
||||||
|
<opensource>CodeCombat is opensource, like you already know.</opensource>
|
||||||
|
<online>All our sourcecode can be found online at Github.</online>
|
||||||
|
<manual>You can choose to do the entire Git setup yourself.</manual>
|
||||||
|
<norec>However we recommend that you instead let us handle it instead.</norec>
|
||||||
|
</intro>
|
||||||
|
<skip>
|
||||||
|
<question>Do you want to do the Local Git setup manually yourself?</question>
|
||||||
|
<consequence>Make sure you have correctly setup your repository before processing.</consequence>
|
||||||
|
<donotclose>Do not close this window please.</donotclose>
|
||||||
|
<wait>When you're ready, press any key to continue...</wait>
|
||||||
|
</skip>
|
||||||
|
<process>
|
||||||
|
<path>Please give the full path of your CodeCombat git repository: </path>
|
||||||
|
<checkout>Please enter the full path where you want to install your CodeCombat environment</checkout>
|
||||||
|
<bashi>This installation requires Git Bash.</bashi>
|
||||||
|
<bashp64>Git bash is by default installed at 'C:\Program Files (x86)\Git'.</bashp64>
|
||||||
|
<bashp32>Git bash is by default installed at 'C:\Program Files\Git'.</bashp32>
|
||||||
|
<bashq>Please enter the full path where git bash is installed or just press enter if it's in the default location</bashq>
|
||||||
|
<ssh>Do you want to checkout the repository via ssh?</ssh>
|
||||||
|
</process>
|
||||||
|
</github>
|
||||||
|
<npm>
|
||||||
|
<install>Installing bower, brunch, nodemon and sendwithus...</install>
|
||||||
|
<binstall>Installing bower packages...</binstall>
|
||||||
|
<sass>Installing sass...</sass>
|
||||||
|
<npm>Installing npm...</npm>
|
||||||
|
<brnch>Starting brunch....</brnch>
|
||||||
|
<mongodb>Setting up a MongoDB database for you...</mongodb>
|
||||||
|
<db>Downloading the last version of the CodeCombat database...</db>
|
||||||
|
<script>Preparing the automatic startup script for you...</script>
|
||||||
|
</npm>
|
||||||
|
<error>
|
||||||
|
<path>That path already exists, are you sure you want to overwrite it?</path>
|
||||||
|
<exist>That path doesn't exist. Please try again...</exist>
|
||||||
|
</error>
|
||||||
|
<end>
|
||||||
|
<succesfull>The setup of the CodeCombat Dev. Environment was succesfull.</succesfull>
|
||||||
|
<thankyou>Thank you already for your contribution and see you soon.</thankyou>
|
||||||
|
<readme>Do you want to read the README for more information?</readme>
|
||||||
|
</end>
|
||||||
|
<start>
|
||||||
|
<s1>From now on you can start the dev. environment at</s1>
|
||||||
|
<s2>the touch of a single mouse click.</s2>
|
||||||
|
<s3> 1) Just double click</s3>
|
||||||
|
<s4> and let the environment start up.</s4>
|
||||||
|
<s5> 2) Now just open 'localhost:3000' in your prefered browser.</s5>
|
||||||
|
<s6>That's it, you're now ready to start working on CodeCombat!</s6>
|
||||||
|
</start>
|
||||||
|
</variables>
|
|
@ -1,3 +1,7 @@
|
||||||
en
|
en
|
||||||
nl
|
nl
|
||||||
de
|
de
|
||||||
|
fr
|
||||||
|
zh
|
||||||
|
zh-HANT
|
||||||
|
zh-HANS
|
|
@ -1,66 +1,82 @@
|
||||||
[global]
|
<?xml version="1.0" encoding="ISO-8859-1" ?>
|
||||||
native=Nederlands
|
<variables>
|
||||||
intro=Vanaf nu geven we onze feedback in het Nederlands!
|
<global>
|
||||||
[install]
|
<native>Nederlands</native>
|
||||||
[system]
|
<intro>Vanaf nu geven we onze feedback in het Nederlands!</intro>
|
||||||
bit=-bit computer gedetecteerd.
|
</global>
|
||||||
prefix=Het besturingsysteem
|
<install>
|
||||||
sufix=is gedetecteerd.
|
<system>
|
||||||
xp=Wij ondersteunen Windows XP niet, installatie geanulleerd.
|
<bit>-bit computer gedetecteerd.</bit>
|
||||||
[process]
|
<prefix>Het besturingsysteem</prefix>
|
||||||
sks=Heb je alle benodige software al geinstalleerd?
|
<sufix>is gedetecteerd.</sufix>
|
||||||
skq=We raden aan dat je negatief antwoord indien je niet zeker bent.
|
<xp>Wij ondersteunen Windows XP niet, installatie geanulleerd.</xp>
|
||||||
skc=De installatie van software wordt geanulleerd...
|
</system>
|
||||||
1=CodeCombat kon niet worden ontwikkeld zonder third-party software.
|
<process>
|
||||||
2=Dat is waarom je deze software moet installeren,
|
<sks>Heb je alle benodige software al geinstalleerd?</sks>
|
||||||
3=zodat je je kan beginnen met het bijdragen tot onze gemeenschap.
|
<skq>We raden aan dat je negatief antwoord indien je niet zeker bent.</skq>
|
||||||
4=Annuleer de installatie als je de applicatie al hebt.
|
<skc>De installatie van software wordt geanulleerd...</skc>
|
||||||
prefix=Heb je al de laatste versie van
|
<s1>CodeCombat kon niet worden ontwikkeld zonder third-party software.</s1>
|
||||||
sufix=geinstalleerd?
|
<s2>Dat is waarom je deze software moet installeren,</s2>
|
||||||
downloading=is aan het downloaden...
|
<s3>zodat je je kan beginnen met het bijdragen tot onze gemeenschap.</s3>
|
||||||
installing=is aan het installeren...
|
<s4>Annuleer de installatie als je de applicatie al hebt.</s4>
|
||||||
unzipping=is aan het uitpakken...
|
<winpath>Zorg er zeker voor dat je de optie selecteert dat de applicatie aan je Windows Path toevoegt, als de optie beschikbaar is.</winpath>
|
||||||
cleaning=is aan het opkuisen...
|
<prefix>Heb je al de laatste versie van</prefix>
|
||||||
mongodbpath=Geef het volledige pad op, waar mongodb mag worden geinstalleerd
|
<sufix>geinstalleerd?</sufix>
|
||||||
[github]
|
<downloading>is aan het downloaden...</downloading>
|
||||||
[intro]
|
<installing>is aan het installeren...</installing>
|
||||||
opensource=CodeCombat is opensource, zoals je waarschijnlijk wel al weet.
|
<unzipping>is aan het uitpakken...</unzipping>
|
||||||
online=Je kan al onze sourcecode vinden op Github.
|
<cleaning>is aan het opkuisen...</cleaning>
|
||||||
manual=Indien je wil, kan je de Git setup manueel doen.
|
<mongodbpath>Geef het volledige pad op, waar mongodb mag worden geinstalleerd</mongodbpath>
|
||||||
norec=Maar wij raden aan dat je ons dit automatisch laat afhandellen.
|
</process>
|
||||||
[skip]
|
</install>
|
||||||
question=Wil je de lokale Git setup manueel doen?
|
<github>
|
||||||
consequence=Zorg er zeker voor dat jouw git repository correct is.
|
<intro>
|
||||||
donotclose=Sluit dit venster niet alsjeblieft.
|
<opensource>CodeCombat is opensource, zoals je waarschijnlijk wel al weet.</opensource>
|
||||||
wait=Wanneer je klaar bent, druk dan eender welke toets om verder te gaan...
|
<online>Je kan al onze sourcecode vinden op Github.</online>
|
||||||
[process]
|
<manual>Indien je wil, kan je de Git setup manueel doen.</manual>
|
||||||
path=Geef alsjeblieft het volledige pad van je CodeCombat git repository:
|
<norec>Maar wij raden aan dat je ons dit automatisch laat afhandellen.</norec>
|
||||||
checkout=Geef alsjeblieft het volledige pad waar je de CodeCombat Ontwikkelings omgeving will installeren
|
</intro>
|
||||||
bashi=Deze installatie maakt gebruik van Git Bash.
|
<skip>
|
||||||
bashp64=Git bash is normaal geinstalleerd in 'C:\Program Files (x86)\Git'.
|
<question>Wil je de lokale Git setup manueel doen?</question>
|
||||||
bashp32=Git bash is normaal geinstalleerd in 'C:\Program Files\Git'.
|
<consequence>Zorg er zeker voor dat jouw git repository correct is.</consequence>
|
||||||
bashq=Geef alsjeblieft het volledige pad op van Git Bash of druk gewoon op enter indien je het pad niet gewijzigd heeft
|
<donotclose>Sluit dit venster niet alsjeblieft.</donotclose>
|
||||||
ssh=Wil je het git project downloaden via ssh?
|
<wait>Wanneer je klaar bent, druk dan eender welke toets om verder te gaan...</wait>
|
||||||
[npm]
|
</skip>
|
||||||
install=Installing bower, brunch, nodemon and sendwithus...
|
<process>
|
||||||
binstall=Installing bower packages...
|
<path>Geef alsjeblieft het volledige pad van je CodeCombat git repository: </path>
|
||||||
sass=Installing sass...
|
<checkout>Geef alsjeblieft het volledige pad waar je de CodeCombat Ontwikkelings omgeving will installeren</checkout>
|
||||||
npm=Installing npm...
|
<bashi>Deze installatie maakt gebruik van Git Bash.</bashi>
|
||||||
brnch=Starting brunch....
|
<bashp64>Git bash is normaal geinstalleerd in 'C:\Program Files (x86)\Git'.</bashp64>
|
||||||
mongodb=Setting up a MongoDB database for you...
|
<bashp32>Git bash is normaal geinstalleerd in 'C:\Program Files\Git'.</bashp32>
|
||||||
database=Downloading the last version of the CodeCombat database...
|
<bashq>Geef alsjeblieft het volledige pad op van Git Bash of druk gewoon op enter indien je het pad niet gewijzigd heeft</bashq>
|
||||||
script=Preparing the automatic startup script for you...
|
<ssh>Wil je het git project downloaden via ssh?</ssh>
|
||||||
[error]
|
</process>
|
||||||
path=Dat pad bestaat al, ben je zeker dat je het wil overschrijven?
|
</github>
|
||||||
exist=Dat pad bestaat niet, probeer alsjeblieft opnieuw...
|
<npm>
|
||||||
[end]
|
<install>Installing bower, brunch, nodemon and sendwithus...</install>
|
||||||
succesfull=De installatie van de CodeCombat-Ontwikkelings omgeving was succesvol.
|
<binstall>Installing bower packages...</binstall>
|
||||||
thankyou=Alvast bedankt voor al je werk en tot binnenkort.
|
<sass>Installing sass...</sass>
|
||||||
readme=Wil je de LEESMIJ lezen voor meer informatie?
|
<npm>Installing npm...</npm>
|
||||||
[start]
|
<brnch>Starting brunch....</brnch>
|
||||||
1=Vanaf nu kan je de ontwikkelings omgeving opstarten
|
<mongodb>Setting up a MongoDB database for you...</mongodb>
|
||||||
2=met het gemak van een enkele muisklik.
|
<database>Downloading the last version of the CodeCombat database...</database>
|
||||||
3= 1) Dubbelklik op
|
<script>Preparing the automatic startup script for you...</script>
|
||||||
4=en laat de omgeving opstarten.
|
</npm>
|
||||||
5= 2) Nu kan je 'localhost:3000' openen in je browser naar voorkeur.
|
<error>
|
||||||
6=Dat is het, je bent nu klaar om te starten met je werk aan CodeCombat.
|
<path>Dat pad bestaat al, ben je zeker dat je het wil overschrijven?</path>
|
||||||
|
<exist>Dat pad bestaat niet, probeer alsjeblieft opnieuw...</exist>
|
||||||
|
</error>
|
||||||
|
<end>
|
||||||
|
<succesfull>De installatie van de CodeCombat-Ontwikkelings omgeving was succesvol.</succesfull>
|
||||||
|
<thankyou>Alvast bedankt voor al je werk en tot binnenkort.</thankyou>
|
||||||
|
<readme>Wil je de LEESMIJ lezen voor meer informatie?</readme>
|
||||||
|
</end>
|
||||||
|
<start>
|
||||||
|
<s1>Vanaf nu kan je de ontwikkelings omgeving opstarten</s1>
|
||||||
|
<s2>met het gemak van een enkele muisklik.</s2>
|
||||||
|
<s3> 1) Dubbelklik op</s3>
|
||||||
|
<s4>en laat de omgeving opstarten.</s4>
|
||||||
|
<s5> 2) Nu kan je 'localhost:3000' openen in je browser naar voorkeur.</s5>
|
||||||
|
<s6>Dat is het, je bent nu klaar om te starten met je werk aan CodeCombat.</s6>
|
||||||
|
</start>
|
||||||
|
</variables>
|
82
scripts/windows/coco-dev-setup/batch/localisation/zh-HANS.coco
Executable file
82
scripts/windows/coco-dev-setup/batch/localisation/zh-HANS.coco
Executable file
|
@ -0,0 +1,82 @@
|
||||||
|
<?xml version="1.0" encoding="ISO-8859-1" ?>
|
||||||
|
<variables>
|
||||||
|
<global>
|
||||||
|
<native>简体中文</native>
|
||||||
|
<intro>From now on we'll send our feedback in English!</intro>
|
||||||
|
</global>
|
||||||
|
<install>
|
||||||
|
<system>
|
||||||
|
<bit>-bit computer detected.</bit>
|
||||||
|
<prefix>The operating system</prefix>
|
||||||
|
<sufix>was detected.</sufix>
|
||||||
|
<xp>We don't support Windows XP, installation cancelled.</xp>
|
||||||
|
</system>
|
||||||
|
<process>
|
||||||
|
<sks>Have you already installed all the software needed for CodeCombat?</sks>
|
||||||
|
<skq>We recommand that you reply negative in case you're not sure.</skq>
|
||||||
|
<skc>Skipping the installation of the software...</skc>
|
||||||
|
<s1>CodeCombat couldn't be developed without third-party software.</s1>
|
||||||
|
<s2>That's why you'll need to install this software,</s2>
|
||||||
|
<s3>in order to start contributing to our community.</s3>
|
||||||
|
<s4>Cancel the installation if you already have the application.</s4>
|
||||||
|
<winpath>Make sure to select the option that adds the application to your Windows Path, if the option is available.</winpath>
|
||||||
|
<prefix>Do you already have the latest version of</prefix>
|
||||||
|
<sufix>installed?</sufix>
|
||||||
|
<downloading>is downloading...</downloading>
|
||||||
|
<installing>is installing...</installing>
|
||||||
|
<unzipping>is unzipping...</unzipping>
|
||||||
|
<cleaning>is cleaning...</cleaning>
|
||||||
|
<mongodbpath>Please define the full path where mongodb should be installed</mongodbpath>
|
||||||
|
</process>
|
||||||
|
</install>
|
||||||
|
<github>
|
||||||
|
<intro>
|
||||||
|
<opensource>CodeCombat is opensource, like you already know.</opensource>
|
||||||
|
<online>All our sourcecode can be found online at Github.</online>
|
||||||
|
<manual>You can choose to do the entire Git setup yourself.</manual>
|
||||||
|
<norec>However we recommend that you instead let us handle it instead.</norec>
|
||||||
|
</intro>
|
||||||
|
<skip>
|
||||||
|
<question>Do you want to do the Local Git setup manually yourself?</question>
|
||||||
|
<consequence>Make sure you have correctly setup your repository before processing.</consequence>
|
||||||
|
<donotclose>Do not close this window please.</donotclose>
|
||||||
|
<wait>When you're ready, press any key to continue...</wait>
|
||||||
|
</skip>
|
||||||
|
<process>
|
||||||
|
<path>Please give the full path of your CodeCombat git repository: </path>
|
||||||
|
<checkout>Please enter the full path where you want to install your CodeCombat environment</checkout>
|
||||||
|
<bashi>This installation requires Git Bash.</bashi>
|
||||||
|
<bashp64>Git bash is by default installed at 'C:\Program Files (x86)\Git'.</bashp64>
|
||||||
|
<bashp32>Git bash is by default installed at 'C:\Program Files\Git'.</bashp32>
|
||||||
|
<bashq>Please enter the full path where git bash is installed or just press enter if it's in the default location</bashq>
|
||||||
|
<ssh>Do you want to checkout the repository via ssh?</ssh>
|
||||||
|
</process>
|
||||||
|
</github>
|
||||||
|
<npm>
|
||||||
|
<install>Installing bower, brunch, nodemon and sendwithus...</install>
|
||||||
|
<binstall>Installing bower packages...</binstall>
|
||||||
|
<sass>Installing sass...</sass>
|
||||||
|
<npm>Installing npm...</npm>
|
||||||
|
<brnch>Starting brunch....</brnch>
|
||||||
|
<mongodb>Setting up a MongoDB database for you...</mongodb>
|
||||||
|
<db>Downloading the last version of the CodeCombat database...</db>
|
||||||
|
<script>Preparing the automatic startup script for you...</script>
|
||||||
|
</npm>
|
||||||
|
<error>
|
||||||
|
<path>That path already exists, are you sure you want to overwrite it?</path>
|
||||||
|
<exist>That path doesn't exist. Please try again...</exist>
|
||||||
|
</error>
|
||||||
|
<end>
|
||||||
|
<succesfull>The setup of the CodeCombat Dev. Environment was succesfull.</succesfull>
|
||||||
|
<thankyou>Thank you already for your contribution and see you soon.</thankyou>
|
||||||
|
<readme>Do you want to read the README for more information?</readme>
|
||||||
|
</end>
|
||||||
|
<start>
|
||||||
|
<s1>From now on you can start the dev. environment at</s1>
|
||||||
|
<s2>the touch of a single mouse click.</s2>
|
||||||
|
<s3> 1) Just double click</s3>
|
||||||
|
<s4> and let the environment start up.</s4>
|
||||||
|
<s5> 2) Now just open 'localhost:3000' in your prefered browser.</s5>
|
||||||
|
<s6>That's it, you're now ready to start working on CodeCombat!</s6>
|
||||||
|
</start>
|
||||||
|
</variables>
|
82
scripts/windows/coco-dev-setup/batch/localisation/zh-HANT.coco
Executable file
82
scripts/windows/coco-dev-setup/batch/localisation/zh-HANT.coco
Executable file
|
@ -0,0 +1,82 @@
|
||||||
|
<?xml version="1.0" encoding="ISO-8859-1" ?>
|
||||||
|
<variables>
|
||||||
|
<global>
|
||||||
|
<native>繁体中文</native>
|
||||||
|
<intro>From now on we'll send our feedback in English!</intro>
|
||||||
|
</global>
|
||||||
|
<install>
|
||||||
|
<system>
|
||||||
|
<bit>-bit computer detected.</bit>
|
||||||
|
<prefix>The operating system</prefix>
|
||||||
|
<sufix>was detected.</sufix>
|
||||||
|
<xp>We don't support Windows XP, installation cancelled.</xp>
|
||||||
|
</system>
|
||||||
|
<process>
|
||||||
|
<sks>Have you already installed all the software needed for CodeCombat?</sks>
|
||||||
|
<skq>We recommand that you reply negative in case you're not sure.</skq>
|
||||||
|
<skc>Skipping the installation of the software...</skc>
|
||||||
|
<s1>CodeCombat couldn't be developed without third-party software.</s1>
|
||||||
|
<s2>That's why you'll need to install this software,</s2>
|
||||||
|
<s3>in order to start contributing to our community.</s3>
|
||||||
|
<s4>Cancel the installation if you already have the application.</s4>
|
||||||
|
<winpath>Make sure to select the option that adds the application to your Windows Path, if the option is available.</winpath>
|
||||||
|
<prefix>Do you already have the latest version of</prefix>
|
||||||
|
<sufix>installed?</sufix>
|
||||||
|
<downloading>is downloading...</downloading>
|
||||||
|
<installing>is installing...</installing>
|
||||||
|
<unzipping>is unzipping...</unzipping>
|
||||||
|
<cleaning>is cleaning...</cleaning>
|
||||||
|
<mongodbpath>Please define the full path where mongodb should be installed</mongodbpath>
|
||||||
|
</process>
|
||||||
|
</install>
|
||||||
|
<github>
|
||||||
|
<intro>
|
||||||
|
<opensource>CodeCombat is opensource, like you already know.</opensource>
|
||||||
|
<online>All our sourcecode can be found online at Github.</online>
|
||||||
|
<manual>You can choose to do the entire Git setup yourself.</manual>
|
||||||
|
<norec>However we recommend that you instead let us handle it instead.</norec>
|
||||||
|
</intro>
|
||||||
|
<skip>
|
||||||
|
<question>Do you want to do the Local Git setup manually yourself?</question>
|
||||||
|
<consequence>Make sure you have correctly setup your repository before processing.</consequence>
|
||||||
|
<donotclose>Do not close this window please.</donotclose>
|
||||||
|
<wait>When you're ready, press any key to continue...</wait>
|
||||||
|
</skip>
|
||||||
|
<process>
|
||||||
|
<path>Please give the full path of your CodeCombat git repository: </path>
|
||||||
|
<checkout>Please enter the full path where you want to install your CodeCombat environment</checkout>
|
||||||
|
<bashi>This installation requires Git Bash.</bashi>
|
||||||
|
<bashp64>Git bash is by default installed at 'C:\Program Files (x86)\Git'.</bashp64>
|
||||||
|
<bashp32>Git bash is by default installed at 'C:\Program Files\Git'.</bashp32>
|
||||||
|
<bashq>Please enter the full path where git bash is installed or just press enter if it's in the default location</bashq>
|
||||||
|
<ssh>Do you want to checkout the repository via ssh?</ssh>
|
||||||
|
</process>
|
||||||
|
</github>
|
||||||
|
<npm>
|
||||||
|
<install>Installing bower, brunch, nodemon and sendwithus...</install>
|
||||||
|
<binstall>Installing bower packages...</binstall>
|
||||||
|
<sass>Installing sass...</sass>
|
||||||
|
<npm>Installing npm...</npm>
|
||||||
|
<brnch>Starting brunch....</brnch>
|
||||||
|
<mongodb>Setting up a MongoDB database for you...</mongodb>
|
||||||
|
<db>Downloading the last version of the CodeCombat database...</db>
|
||||||
|
<script>Preparing the automatic startup script for you...</script>
|
||||||
|
</npm>
|
||||||
|
<error>
|
||||||
|
<path>That path already exists, are you sure you want to overwrite it?</path>
|
||||||
|
<exist>That path doesn't exist. Please try again...</exist>
|
||||||
|
</error>
|
||||||
|
<end>
|
||||||
|
<succesfull>The setup of the CodeCombat Dev. Environment was succesfull.</succesfull>
|
||||||
|
<thankyou>Thank you already for your contribution and see you soon.</thankyou>
|
||||||
|
<readme>Do you want to read the README for more information?</readme>
|
||||||
|
</end>
|
||||||
|
<start>
|
||||||
|
<s1>From now on you can start the dev. environment at</s1>
|
||||||
|
<s2>the touch of a single mouse click.</s2>
|
||||||
|
<s3> 1) Just double click</s3>
|
||||||
|
<s4> and let the environment start up.</s4>
|
||||||
|
<s5> 2) Now just open 'localhost:3000' in your prefered browser.</s5>
|
||||||
|
<s6>That's it, you're now ready to start working on CodeCombat!</s6>
|
||||||
|
</start>
|
||||||
|
</variables>
|
82
scripts/windows/coco-dev-setup/batch/localisation/zh.coco
Executable file
82
scripts/windows/coco-dev-setup/batch/localisation/zh.coco
Executable file
|
@ -0,0 +1,82 @@
|
||||||
|
<?xml version="1.0" encoding="ISO-8859-1" ?>
|
||||||
|
<variables>
|
||||||
|
<global>
|
||||||
|
<native>中文</native>
|
||||||
|
<intro>From now on we'll send our feedback in English!</intro>
|
||||||
|
</global>
|
||||||
|
<install>
|
||||||
|
<system>
|
||||||
|
<bit>-bit computer detected.</bit>
|
||||||
|
<prefix>The operating system</prefix>
|
||||||
|
<sufix>was detected.</sufix>
|
||||||
|
<xp>We don't support Windows XP, installation cancelled.</xp>
|
||||||
|
</system>
|
||||||
|
<process>
|
||||||
|
<sks>Have you already installed all the software needed for CodeCombat?</sks>
|
||||||
|
<skq>We recommand that you reply negative in case you're not sure.</skq>
|
||||||
|
<skc>Skipping the installation of the software...</skc>
|
||||||
|
<s1>CodeCombat couldn't be developed without third-party software.</s1>
|
||||||
|
<s2>That's why you'll need to install this software,</s2>
|
||||||
|
<s3>in order to start contributing to our community.</s3>
|
||||||
|
<s4>Cancel the installation if you already have the application.</s4>
|
||||||
|
<winpath>Make sure to select the option that adds the application to your Windows Path, if the option is available.</winpath>
|
||||||
|
<prefix>Do you already have the latest version of</prefix>
|
||||||
|
<sufix>installed?</sufix>
|
||||||
|
<downloading>is downloading...</downloading>
|
||||||
|
<installing>is installing...</installing>
|
||||||
|
<unzipping>is unzipping...</unzipping>
|
||||||
|
<cleaning>is cleaning...</cleaning>
|
||||||
|
<mongodbpath>Please define the full path where mongodb should be installed</mongodbpath>
|
||||||
|
</process>
|
||||||
|
</install>
|
||||||
|
<github>
|
||||||
|
<intro>
|
||||||
|
<opensource>CodeCombat is opensource, like you already know.</opensource>
|
||||||
|
<online>All our sourcecode can be found online at Github.</online>
|
||||||
|
<manual>You can choose to do the entire Git setup yourself.</manual>
|
||||||
|
<norec>However we recommend that you instead let us handle it instead.</norec>
|
||||||
|
</intro>
|
||||||
|
<skip>
|
||||||
|
<question>Do you want to do the Local Git setup manually yourself?</question>
|
||||||
|
<consequence>Make sure you have correctly setup your repository before processing.</consequence>
|
||||||
|
<donotclose>Do not close this window please.</donotclose>
|
||||||
|
<wait>When you're ready, press any key to continue...</wait>
|
||||||
|
</skip>
|
||||||
|
<process>
|
||||||
|
<path>Please give the full path of your CodeCombat git repository: </path>
|
||||||
|
<checkout>Please enter the full path where you want to install your CodeCombat environment</checkout>
|
||||||
|
<bashi>This installation requires Git Bash.</bashi>
|
||||||
|
<bashp64>Git bash is by default installed at 'C:\Program Files (x86)\Git'.</bashp64>
|
||||||
|
<bashp32>Git bash is by default installed at 'C:\Program Files\Git'.</bashp32>
|
||||||
|
<bashq>Please enter the full path where git bash is installed or just press enter if it's in the default location</bashq>
|
||||||
|
<ssh>Do you want to checkout the repository via ssh?</ssh>
|
||||||
|
</process>
|
||||||
|
</github>
|
||||||
|
<npm>
|
||||||
|
<install>Installing bower, brunch, nodemon and sendwithus...</install>
|
||||||
|
<binstall>Installing bower packages...</binstall>
|
||||||
|
<sass>Installing sass...</sass>
|
||||||
|
<npm>Installing npm...</npm>
|
||||||
|
<brnch>Starting brunch....</brnch>
|
||||||
|
<mongodb>Setting up a MongoDB database for you...</mongodb>
|
||||||
|
<db>Downloading the last version of the CodeCombat database...</db>
|
||||||
|
<script>Preparing the automatic startup script for you...</script>
|
||||||
|
</npm>
|
||||||
|
<error>
|
||||||
|
<path>That path already exists, are you sure you want to overwrite it?</path>
|
||||||
|
<exist>That path doesn't exist. Please try again...</exist>
|
||||||
|
</error>
|
||||||
|
<end>
|
||||||
|
<succesfull>The setup of the CodeCombat Dev. Environment was succesfull.</succesfull>
|
||||||
|
<thankyou>Thank you already for your contribution and see you soon.</thankyou>
|
||||||
|
<readme>Do you want to read the README for more information?</readme>
|
||||||
|
</end>
|
||||||
|
<start>
|
||||||
|
<s1>From now on you can start the dev. environment at</s1>
|
||||||
|
<s2>the touch of a single mouse click.</s2>
|
||||||
|
<s3> 1) Just double click</s3>
|
||||||
|
<s4> and let the environment start up.</s4>
|
||||||
|
<s5> 2) Now just open 'localhost:3000' in your prefered browser.</s5>
|
||||||
|
<s6>That's it, you're now ready to start working on CodeCombat!</s6>
|
||||||
|
</start>
|
||||||
|
</variables>
|
|
@ -6,8 +6,8 @@ if NOT exist "%temp_directory%" (
|
||||||
md %temp_directory%
|
md %temp_directory%
|
||||||
)
|
)
|
||||||
|
|
||||||
call get_local_text install-process-prefix
|
call get_local_text install_process_prefix install process prefix
|
||||||
call get_local_text install-process-sufix
|
call get_local_text install_process_sufix install process sufix
|
||||||
|
|
||||||
call ask_question "!install_process_prefix! %1 !install_process_sufix!"
|
call ask_question "!install_process_prefix! %1 !install_process_sufix!"
|
||||||
|
|
||||||
|
@ -18,7 +18,7 @@ if "%result%"=="true" (
|
||||||
call print_dashed_seperator
|
call print_dashed_seperator
|
||||||
|
|
||||||
call get_extension %2 download_extension
|
call get_extension %2 download_extension
|
||||||
call get_local_text install-process-downloading
|
call get_local_text install_process_downloading install process downloading
|
||||||
echo %1 !install_process_downloading!
|
echo %1 !install_process_downloading!
|
||||||
set "install_file=!temp_directory!%1.!download_extension!"
|
set "install_file=!temp_directory!%1.!download_extension!"
|
||||||
%curl_app% -k %2 -o !install_file!
|
%curl_app% -k %2 -o !install_file!
|
||||||
|
@ -34,10 +34,10 @@ if "%download_extension%"=="zip" (
|
||||||
goto:get_mongodb_path
|
goto:get_mongodb_path
|
||||||
|
|
||||||
:get_mongodb_path
|
:get_mongodb_path
|
||||||
call get_local_text install-process-mongodbpath
|
call get_local_text install_process_mongodbpath install process mongodbpath
|
||||||
set /p "mongodb_path=!install_process_mongodbpath!: "
|
set /p "mongodb_path=!install_process_mongodbpath!: "
|
||||||
if exist "%mongodb_path%" (
|
if exist "%mongodb_path%" (
|
||||||
call get_local_text error-path
|
call get_local_text error_path error path
|
||||||
call ask_question "!error_path!"
|
call ask_question "!error_path!"
|
||||||
if "!result!"=="false" (
|
if "!result!"=="false" (
|
||||||
call print_dashed_seperator
|
call print_dashed_seperator
|
||||||
|
@ -52,14 +52,14 @@ if "%download_extension%"=="zip" (
|
||||||
goto:clean_up
|
goto:clean_up
|
||||||
)
|
)
|
||||||
|
|
||||||
call get_local_text install-process-installing
|
call get_local_text install_process_installing install process installing
|
||||||
echo %1 !install_process_installing!
|
echo %1 !install_process_installing!
|
||||||
echo.
|
echo.
|
||||||
start /WAIT !install_file!
|
start /WAIT !install_file!
|
||||||
goto:clean_up
|
goto:clean_up
|
||||||
|
|
||||||
:clean_up
|
:clean_up
|
||||||
call get_local_text install-process-cleaning
|
call get_local_text install_process_cleaning install process cleaning
|
||||||
echo %1 !install_process_cleaning!
|
echo %1 !install_process_cleaning!
|
||||||
rmdir /s /q "!temp_directory!"
|
rmdir /s /q "!temp_directory!"
|
||||||
goto:exit_installation
|
goto:exit_installation
|
||||||
|
|
|
@ -1,16 +1,16 @@
|
||||||
call print_install_header
|
call print_install_header
|
||||||
call print_dashed_seperator
|
call print_dashed_seperator
|
||||||
|
|
||||||
call get_local_text install-process-sks
|
call get_local_text install_process_sks install process sks
|
||||||
echo !install_process_sks!
|
echo !install_process_sks!
|
||||||
|
|
||||||
call get_local_text install-process-skq
|
call get_local_text install_process_skq install process skq
|
||||||
call ask_question "!install_process_skq!"
|
call ask_question "!install_process_skq!"
|
||||||
|
|
||||||
call print_dashed_seperator
|
call print_dashed_seperator
|
||||||
|
|
||||||
if "%result%"=="true" (
|
if "%result%"=="true" (
|
||||||
call get_local_text install-process-skc
|
call get_local_text install_process_skc install process skc
|
||||||
echo !install_process_skc!
|
echo !install_process_skc!
|
||||||
call print_dashed_seperator
|
call print_dashed_seperator
|
||||||
goto:exit_setup
|
goto:exit_setup
|
||||||
|
@ -20,22 +20,27 @@ call get_system_information
|
||||||
call print_dashed_seperator
|
call print_dashed_seperator
|
||||||
|
|
||||||
if %system_info_os% == XP (
|
if %system_info_os% == XP (
|
||||||
call get_local_text install-system-xp
|
call get_local_text install_system_xp install system xp
|
||||||
echo !install_system_xp!
|
echo !install_system_xp!
|
||||||
call print_exit
|
call print_exit
|
||||||
)
|
)
|
||||||
|
|
||||||
call get_category ..\\config\\downloads.coco downloads download_names downloads_count general-general general-%system_info_bit% %system_info_os%-%system_info_bit%
|
call get_variables ..\\config\\downloads.coco downloads download_names downloads_count 0 general general
|
||||||
|
call get_variables ..\\config\\downloads.coco downloads download_names downloads_count 2 %system_info_os% b%system_info_bit%
|
||||||
|
call get_variables ..\\config\\downloads.coco downloads download_names downloads_count 3 general b%system_info_bit%
|
||||||
|
|
||||||
call get_local_text install-process-1
|
call get_local_text install_process_s1 install process s1
|
||||||
call get_local_text install-process-2
|
call get_local_text install_process_s2 install process s2
|
||||||
call get_local_text install-process-3
|
call get_local_text install_process_s3 install process s3
|
||||||
call get_local_text install-process-4
|
call get_local_text install_process_s4 install process s4
|
||||||
|
call get_local_text install_process_winpath install process winpath
|
||||||
|
|
||||||
echo !install_process_1!
|
echo !install_process_s1!
|
||||||
echo !install_process_2!
|
echo !install_process_s2!
|
||||||
echo !install_process_3!
|
echo !install_process_s3!
|
||||||
echo !install_process_4!
|
echo !install_process_s4!
|
||||||
|
echo.
|
||||||
|
echo !install_process_winpath!
|
||||||
|
|
||||||
call print_dashed_seperator
|
call print_dashed_seperator
|
||||||
|
|
||||||
|
|
|
@ -1 +1,3 @@
|
||||||
for /f "delims=" %%a in ('..\\utilities\\get_var.exe ..\\config\\config.coco %1') do set "%%a"
|
for /F "delims=" %%F in ('call run_script .\\get_var.ps1 ..\\config\\config.coco %1') do (
|
||||||
|
set "%1=%%F"
|
||||||
|
)
|
|
@ -1 +1,3 @@
|
||||||
for /f "delims=" %%a in ('..\\utilities\\get_var.exe ..\\config\\downloads.coco %1') do set "%%a"
|
for /F "delims=" %%F in ('call run_script .\\get_var.ps1 ..\\config\\downloads.coco %2 %3 %4 %5') do (
|
||||||
|
set "%1=%%F"
|
||||||
|
)
|
|
@ -1,3 +1,3 @@
|
||||||
for /f "delims=" %%a in ('..\\utilities\\get_extension.exe %1 %2') do (
|
for /F "delims=" %%F in ('call run_script .\\get_extension.ps1 %1') do (
|
||||||
%%a
|
set "%2=%%F"
|
||||||
)
|
)
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue