diff --git a/app/collections/SimulatorsLeaderboardCollection.coffee b/app/collections/SimulatorsLeaderboardCollection.coffee new file mode 100644 index 000000000..733017cf4 --- /dev/null +++ b/app/collections/SimulatorsLeaderboardCollection.coffee @@ -0,0 +1,11 @@ +CocoCollection = require 'models/CocoCollection' +User = require 'models/User' + +module.exports = class SimulatorsLeaderboardCollection extends CocoCollection + url: '' + model: User + + constructor: (options) -> + super() + options ?= {} + @url = "/db/user/me/simulatorLeaderboard?#{$.param(options)}" diff --git a/app/lib/GPlusHandler.coffee b/app/lib/GPlusHandler.coffee index 8565a2075..4b8637b8c 100644 --- a/app/lib/GPlusHandler.coffee +++ b/app/lib/GPlusHandler.coffee @@ -47,14 +47,14 @@ module.exports = GPlusHandler = class GPlusHandler extends CocoClass 'client_id' : clientID 'scope' : scope gapi.auth.authorize params, @onGPlusLogin - + onGPlusLogin: (e) => @loggedIn = true storage.save(GPLUS_TOKEN_KEY, e) @accessToken = e @trigger 'logged-in' - return if (not me) or me.get 'gplusID' # so only get more data - + return if (not me) or me.get 'gplusID' # so only get more data + # email and profile data loaded separately @responsesComplete = 0 gapi.client.request(path:plusURL, callback:@onPersonEntityReceived) @@ -104,12 +104,13 @@ module.exports = GPlusHandler = class GPlusHandler extends CocoClass success: (model) -> window.location.reload() if wasAnonymous and not model.get('anonymous') }) - + loadFriends: (friendsCallback) -> return friendsCallback() unless @loggedIn - expires_in = if @accessToken then parseInt(@accessToken.expires_at) - new Date().getTime()/1000 else -1 + expiresIn = if @accessToken then parseInt(@accessToken.expires_at) - new Date().getTime()/1000 else -1 onReauthorized = => gapi.client.request({path:'/plus/v1/people/me/people/visible', callback: friendsCallback}) - if expires_in < 0 + if expiresIn < 0 + # TODO: this tries to open a popup window, which might not ever finish or work, so the callback may never be called. @reauthorize() @listenToOnce(@, 'logged-in', onReauthorized) else diff --git a/app/lib/LevelLoader.coffee b/app/lib/LevelLoader.coffee index 0cc871d54..7395fdbef 100644 --- a/app/lib/LevelLoader.coffee +++ b/app/lib/LevelLoader.coffee @@ -104,7 +104,7 @@ module.exports = class LevelLoader extends CocoClass onSupermodelLoadedOne: (e) -> @buildSpriteSheetsForThangType e.model if not @headless and e.model instanceof ThangType - @update() + @update() unless @destroyed # Things to do when either the Session or Supermodel load @@ -160,7 +160,7 @@ module.exports = class LevelLoader extends CocoClass buildSpriteSheetsForThangType: (thangType) -> @grabThangTypeTeams() unless @thangTypeTeams for team in @thangTypeTeams[thangType.get('original')] ? [null] - spriteOptions = {resolutionFactor: 4, async: true} + spriteOptions = {resolutionFactor: 4, async: false} if thangType.get('kind') is 'Floor' spriteOptions.resolutionFactor = 2 if team and color = @teamConfigs[team]?.color @@ -174,10 +174,14 @@ module.exports = class LevelLoader extends CocoClass return unless building #console.log 'Building:', thangType.get('name'), options @spriteSheetsToBuild += 1 - thangType.once 'build-complete', => + onBuildComplete = => return if @destroyed @spriteSheetsBuilt += 1 @notifyProgress() + if options.async + thangType.once 'build-complete', onBuildComplete + else + onBuildComplete() # World init diff --git a/app/lib/Tracker.coffee b/app/lib/Tracker.coffee index 6f585e473..a21a7820c 100644 --- a/app/lib/Tracker.coffee +++ b/app/lib/Tracker.coffee @@ -1,5 +1,7 @@ {me} = require 'lib/auth' +debugAnalytics = false + module.exports = class Tracker constructor: -> if window.tracker @@ -10,7 +12,7 @@ module.exports = class Tracker @updateOlark() identify: (traits) -> - #console.log "Would identify", traits + console.log "Would identify", traits if debugAnalytics return unless me and @isProduction and analytics? # https://segment.io/docs/methods/identify traits ?= {} @@ -39,13 +41,13 @@ module.exports = class Tracker trackPageView: -> return unless @isProduction and analytics? url = Backbone.history.getFragment() - #console.log "Going to track visit for", "/#{url}" + console.log "Going to track visit for", "/#{url}" if debugAnalytics analytics.pageview "/#{url}" trackEvent: (event, properties, includeProviders=null) => - #console.log "Would track analytics event:", event, properties + console.log "Would track analytics event:", event, properties if debugAnalytics return unless me and @isProduction and analytics? - #console.log "Going to track analytics event:", event, properties + console.log "Going to track analytics event:", event, properties if debugAnalytics properties = properties or {} context = {} if includeProviders @@ -54,3 +56,9 @@ module.exports = class Tracker context.providers[provider] = true event.label = properties.label if properties.label analytics?.track event, properties, context + + trackTiming: (duration, category, variable, label, samplePercentage=5) -> + # https://developers.google.com/analytics/devguides/collection/gajs/gaTrackingTiming + return console.warn "Duration #{duration} invalid for trackTiming call." unless duration >= 0 and duration < 60 * 60 * 1000 + console.log "Would track timing event:", arguments if debugAnalytics + window._gaq?.push ['_trackTiming', category, variable, duration, label, samplePercentage] diff --git a/app/lib/deltas.coffee b/app/lib/deltas.coffee index 0782231eb..9629139e8 100644 --- a/app/lib/deltas.coffee +++ b/app/lib/deltas.coffee @@ -54,7 +54,7 @@ expandFlattenedDelta = (delta, left, schema) -> if _.isPlainObject(o) and o._t isnt 'a' delta.action = 'modified-object' - if _.isArray(o) and o.length is 3 and o[1] is 0 and o[2] is 3 + if _.isArray(o) and o.length is 3 and o[2] is 3 delta.action = 'moved-index' delta.destinationIndex = o[1] delta.originalIndex = delta.dataPath[delta.dataPath.length-1] diff --git a/app/lib/surface/CocoSprite.coffee b/app/lib/surface/CocoSprite.coffee index e77d5de4f..f09410e12 100644 --- a/app/lib/surface/CocoSprite.coffee +++ b/app/lib/surface/CocoSprite.coffee @@ -455,7 +455,7 @@ module.exports = CocoSprite = class CocoSprite extends CocoClass allProps = allProps.concat (@thang.moreProgrammableProperties ? []) for property in allProps - if m = property.match /.*Range$/ + if m = property.match /.*(Range|Distance|Radius)$/ if @thang[m[0]]? and @thang[m[0]] < 9001 @ranges.push name: m[0] diff --git a/app/lib/surface/Mark.coffee b/app/lib/surface/Mark.coffee index 4e7d16e6d..8a42b3272 100644 --- a/app/lib/surface/Mark.coffee +++ b/app/lib/surface/Mark.coffee @@ -54,7 +54,7 @@ module.exports = class Mark extends CocoClass if @name is 'bounds' then @buildBounds() else if @name is 'shadow' then @buildShadow() else if @name is 'debug' then @buildDebug() - else if @name.match(/.+Range$/) then @buildRadius(@name) + else if @name.match(/.+(Range|Distance|Radius)$/) then @buildRadius(@name) else if @thangType then @buildSprite() else console.error "Don't know how to build mark for", @name @mark?.mouseEnabled = false @@ -115,14 +115,14 @@ module.exports = class Mark extends CocoClass #@mark.cache 0, 0, diameter, diameter # not actually faster than simple ellipse draw buildRadius: (range) -> - alpha = 0.35 + alpha = 0.15 colors = voiceRange: "rgba(0, 145, 0, #{alpha})" visualRange: "rgba(0, 0, 145, #{alpha})" attackRange: "rgba(145, 0, 0, #{alpha})" # Fallback colors which work on both dungeon and grass tiles - extracolors = [ + extraColors = [ "rgba(145, 0, 145, #{alpha})" "rgba(0, 145, 145, #{alpha})" "rgba(145, 105, 0, #{alpha})" @@ -137,10 +137,8 @@ module.exports = class Mark extends CocoClass @mark = new createjs.Shape() - if colors[range]? - @mark.graphics.beginFill colors[range] - else - @mark.graphics.beginFill extracolors[i] + fillColor = colors[range] ? extraColors[i] + @mark.graphics.beginFill fillColor # Draw the outer circle @mark.graphics.drawCircle 0, 0, @sprite.thang[range] * Camera.PPM @@ -149,13 +147,16 @@ module.exports = class Mark extends CocoClass if i+1 < @sprite.ranges.length @mark.graphics.arc 0, 0, @sprite.ranges[i+1]['radius'], Math.PI*2, 0, true - # Add perspective - @mark.scaleY *= @camera.y2x - - @mark.graphics.endStroke() @mark.graphics.endFill() - return + strokeColor = fillColor.replace '' + alpha, '0.75' + @mark.graphics.setStrokeStyle 2 + @mark.graphics.beginStroke strokeColor + @mark.graphics.arc 0, 0, @sprite.thang[range] * Camera.PPM, Math.PI*2, 0, true + @mark.graphics.endStroke() + + # Add perspective + @mark.scaleY *= @camera.y2x buildDebug: -> @mark = new createjs.Shape() diff --git a/app/locale/ar.coffee b/app/locale/ar.coffee index 7cee431b0..500208cb5 100644 --- a/app/locale/ar.coffee +++ b/app/locale/ar.coffee @@ -6,6 +6,7 @@ module.exports = nativeDescription: "العربية", englishDescription: "Arabi # send: "Send" cancel: "الغي" save: "احفض" +# publish: "Publish" # create: "Create" delay_1_sec: "ثانية" delay_3_sec: "3 ثواني" @@ -47,9 +48,6 @@ module.exports = nativeDescription: "العربية", englishDescription: "Arabi # versions: # save_version_title: "Save New Version" # new_major_version: "New Major Version" -# update_break_level: "(Could this update break old solutions of the level?)" -# update_break_component: "(Could this update break anything depending on this Component?)" -# update_break_system: "(Could this update break anything depending on this System?)" # cla_prefix: "To save changes, first you must agree to our" # cla_url: "CLA" # cla_suffix: "." @@ -75,6 +73,7 @@ module.exports = nativeDescription: "العربية", englishDescription: "Arabi # creating: "Creating Account..." # sign_up: "Sign Up" # log_in: "log in with password" +# social_signup: "Or, you can sign up through Facebook or G+:" # home: # slogan: "Learn to Code JavaScript by Playing a Game" @@ -151,7 +150,6 @@ module.exports = nativeDescription: "العربية", englishDescription: "Arabi # wizard_tab: "Wizard" # password_tab: "Password" # emails_tab: "Emails" -# job_profile_tab: "Job Profile" # admin: "Admin" # wizard_color: "Wizard Clothes Color" # new_password: "New Password" @@ -326,7 +324,6 @@ module.exports = nativeDescription: "العربية", englishDescription: "Arabi # more: "More" # wiki: "Wiki" # live_chat: "Live Chat" -# level_publish: "Publish This Level (irreversible)?" # level_some_options: "Some Options?" # level_tab_thangs: "Thangs" # level_tab_scripts: "Scripts" @@ -361,7 +358,7 @@ module.exports = nativeDescription: "العربية", englishDescription: "Arabi # thang_search_title: "Search Thang Types Here" # level_search_title: "Search Levels Here" # signup_to_create: "Sign Up to Create a New Content" -# read_only_warning: "Note: you can't save any edits here, because you're not logged in as an admin." +# read_only_warning2: "Note: you can't save any edits here, because you're not logged in." # article: # edit_btn_preview: "Preview" @@ -395,6 +392,7 @@ module.exports = nativeDescription: "العربية", englishDescription: "Arabi # easy: "Easy" # medium: "Medium" # hard: "Hard" +# player: "Player" # about: # who_is_codecombat: "Who is CodeCombat?" @@ -599,6 +597,9 @@ module.exports = nativeDescription: "العربية", englishDescription: "Arabi # simulate_all: "RESET AND SIMULATE GAMES" # games_simulated_by: "Games simulated by you:" # games_simulated_for: "Games simulated for you:" +# games_simulated: "Games simulated" +# games_played: "Games played" +# ratio: "Ratio" # leaderboard: "Leaderboard" # battle_as: "Battle as " # summary_your: "Your " @@ -663,3 +664,4 @@ module.exports = nativeDescription: "العربية", englishDescription: "Arabi # leaderboard: "Leaderboard" # user_schema: "User Schema" # user_profile: "User Profile" +# patches: "Patches" diff --git a/app/locale/bg.coffee b/app/locale/bg.coffee index fead6beb4..d760b50a6 100644 --- a/app/locale/bg.coffee +++ b/app/locale/bg.coffee @@ -6,6 +6,7 @@ module.exports = nativeDescription: "български език", englishDescri # send: "Send" cancel: "Отказ" save: "Запис" +# publish: "Publish" # create: "Create" delay_1_sec: "1 секунда" delay_3_sec: "3 секунди" @@ -47,9 +48,6 @@ module.exports = nativeDescription: "български език", englishDescri # versions: # save_version_title: "Save New Version" # new_major_version: "New Major Version" -# update_break_level: "(Could this update break old solutions of the level?)" -# update_break_component: "(Could this update break anything depending on this Component?)" -# update_break_system: "(Could this update break anything depending on this System?)" # cla_prefix: "To save changes, first you must agree to our" # cla_url: "CLA" # cla_suffix: "." @@ -75,6 +73,7 @@ module.exports = nativeDescription: "български език", englishDescri creating: "Създаване на профил..." sign_up: "Регистриране" log_in: "Вход с парола" +# social_signup: "Or, you can sign up through Facebook or G+:" home: slogan: "Научи се да програмираш на JavaScript, докато играеш игра " @@ -151,7 +150,6 @@ module.exports = nativeDescription: "български език", englishDescri # wizard_tab: "Wizard" # password_tab: "Password" # emails_tab: "Emails" -# job_profile_tab: "Job Profile" # admin: "Admin" # wizard_color: "Wizard Clothes Color" # new_password: "New Password" @@ -326,7 +324,6 @@ module.exports = nativeDescription: "български език", englishDescri # more: "More" # wiki: "Wiki" # live_chat: "Live Chat" -# level_publish: "Publish This Level (irreversible)?" # level_some_options: "Some Options?" # level_tab_thangs: "Thangs" # level_tab_scripts: "Scripts" @@ -361,7 +358,7 @@ module.exports = nativeDescription: "български език", englishDescri # thang_search_title: "Search Thang Types Here" # level_search_title: "Search Levels Here" # signup_to_create: "Sign Up to Create a New Content" -# read_only_warning: "Note: you can't save any edits here, because you're not logged in as an admin." +# read_only_warning2: "Note: you can't save any edits here, because you're not logged in." article: edit_btn_preview: "Преглед" @@ -395,6 +392,7 @@ module.exports = nativeDescription: "български език", englishDescri # easy: "Easy" # medium: "Medium" # hard: "Hard" +# player: "Player" # about: # who_is_codecombat: "Who is CodeCombat?" @@ -599,6 +597,9 @@ module.exports = nativeDescription: "български език", englishDescri # simulate_all: "RESET AND SIMULATE GAMES" # games_simulated_by: "Games simulated by you:" # games_simulated_for: "Games simulated for you:" +# games_simulated: "Games simulated" +# games_played: "Games played" +# ratio: "Ratio" # leaderboard: "Leaderboard" # battle_as: "Battle as " # summary_your: "Your " @@ -663,3 +664,4 @@ module.exports = nativeDescription: "български език", englishDescri # leaderboard: "Leaderboard" # user_schema: "User Schema" # user_profile: "User Profile" +# patches: "Patches" diff --git a/app/locale/ca.coffee b/app/locale/ca.coffee index a7888b253..bb30b9fa6 100644 --- a/app/locale/ca.coffee +++ b/app/locale/ca.coffee @@ -6,6 +6,7 @@ module.exports = nativeDescription: "Català", englishDescription: "Catalan", tr # send: "Send" cancel: "Cancel·lant" save: "Guardar" +# publish: "Publish" # create: "Create" delay_1_sec: "1 segon" delay_3_sec: "3 segons" @@ -47,9 +48,6 @@ module.exports = nativeDescription: "Català", englishDescription: "Catalan", tr versions: save_version_title: "Guarda una nova versió" # new_major_version: "New Major Version" -# update_break_level: "(Could this update break old solutions of the level?)" -# update_break_component: "(Could this update break anything depending on this Component?)" -# update_break_system: "(Could this update break anything depending on this System?)" cla_prefix: "Per guardar els canvis primer has d'acceptar" cla_url: "CLA" cla_suffix: "." @@ -75,6 +73,7 @@ module.exports = nativeDescription: "Català", englishDescription: "Catalan", tr creating: "Creant Compte..." sign_up: "Registrar-se" log_in: "Iniciar sessió amb la teva contrasenya" +# social_signup: "Or, you can sign up through Facebook or G+:" home: slogan: "Aprén a programar JavaScript tot Jugant" @@ -151,7 +150,6 @@ module.exports = nativeDescription: "Català", englishDescription: "Catalan", tr # wizard_tab: "Wizard" # password_tab: "Password" # emails_tab: "Emails" -# job_profile_tab: "Job Profile" # admin: "Admin" # wizard_color: "Wizard Clothes Color" # new_password: "New Password" @@ -326,7 +324,6 @@ module.exports = nativeDescription: "Català", englishDescription: "Catalan", tr # more: "More" # wiki: "Wiki" # live_chat: "Live Chat" -# level_publish: "Publish This Level (irreversible)?" # level_some_options: "Some Options?" # level_tab_thangs: "Thangs" # level_tab_scripts: "Scripts" @@ -361,7 +358,7 @@ module.exports = nativeDescription: "Català", englishDescription: "Catalan", tr # thang_search_title: "Search Thang Types Here" # level_search_title: "Search Levels Here" # signup_to_create: "Sign Up to Create a New Content" -# read_only_warning: "Note: you can't save any edits here, because you're not logged in as an admin." +# read_only_warning2: "Note: you can't save any edits here, because you're not logged in." # article: # edit_btn_preview: "Preview" @@ -395,6 +392,7 @@ module.exports = nativeDescription: "Català", englishDescription: "Catalan", tr # easy: "Easy" # medium: "Medium" # hard: "Hard" +# player: "Player" # about: # who_is_codecombat: "Who is CodeCombat?" @@ -599,6 +597,9 @@ module.exports = nativeDescription: "Català", englishDescription: "Catalan", tr # simulate_all: "RESET AND SIMULATE GAMES" # games_simulated_by: "Games simulated by you:" # games_simulated_for: "Games simulated for you:" +# games_simulated: "Games simulated" +# games_played: "Games played" +# ratio: "Ratio" # leaderboard: "Leaderboard" # battle_as: "Battle as " # summary_your: "Your " @@ -663,3 +664,4 @@ module.exports = nativeDescription: "Català", englishDescription: "Catalan", tr # leaderboard: "Leaderboard" # user_schema: "User Schema" # user_profile: "User Profile" +# patches: "Patches" diff --git a/app/locale/cs.coffee b/app/locale/cs.coffee index 805e6d424..e164b62e1 100644 --- a/app/locale/cs.coffee +++ b/app/locale/cs.coffee @@ -6,6 +6,7 @@ module.exports = nativeDescription: "čeština", englishDescription: "Czech", tr # send: "Send" cancel: "Zrušit" save: "Uložit" +# publish: "Publish" # create: "Create" delay_1_sec: "1 vteřina" delay_3_sec: "3 vteřiny" @@ -47,9 +48,6 @@ module.exports = nativeDescription: "čeština", englishDescription: "Czech", tr versions: save_version_title: "Uložit novou Verzi" new_major_version: "Nová hlavní Verze" -# update_break_level: "(Could this update break old solutions of the level?)" -# update_break_component: "(Could this update break anything depending on this Component?)" -# update_break_system: "(Could this update break anything depending on this System?)" cla_prefix: "Před uložením musíte souhlasit s" cla_url: "licencí" cla_suffix: "." @@ -75,6 +73,7 @@ module.exports = nativeDescription: "čeština", englishDescription: "Czech", tr creating: "Vytvářím účet..." sign_up: "Přihlášení" log_in: "zadejte vaše heslo" +# social_signup: "Or, you can sign up through Facebook or G+:" home: slogan: "Naučte se programování JavaScriptu při hraní více-hráčové programovací hry." @@ -151,7 +150,6 @@ module.exports = nativeDescription: "čeština", englishDescription: "Czech", tr wizard_tab: "Kouzelník" password_tab: "Heslo" emails_tab: "Emaily" -# job_profile_tab: "Job Profile" # admin: "Admin" wizard_color: "Barva Kouzelníkova oblečení" new_password: "Nové heslo" @@ -326,7 +324,6 @@ module.exports = nativeDescription: "čeština", englishDescription: "Czech", tr # more: "More" # wiki: "Wiki" # live_chat: "Live Chat" -# level_publish: "Publish This Level (irreversible)?" level_some_options: "Volby?" level_tab_thangs: "Thangy" level_tab_scripts: "Skripty" @@ -361,7 +358,7 @@ module.exports = nativeDescription: "čeština", englishDescription: "Czech", tr # thang_search_title: "Search Thang Types Here" # level_search_title: "Search Levels Here" # signup_to_create: "Sign Up to Create a New Content" -# read_only_warning: "Note: you can't save any edits here, because you're not logged in as an admin." +# read_only_warning2: "Note: you can't save any edits here, because you're not logged in." article: edit_btn_preview: "Náhled" @@ -395,6 +392,7 @@ module.exports = nativeDescription: "čeština", englishDescription: "Czech", tr # easy: "Easy" # medium: "Medium" # hard: "Hard" +# player: "Player" about: who_is_codecombat: "Kdo je CodeCombat?" @@ -599,6 +597,9 @@ module.exports = nativeDescription: "čeština", englishDescription: "Czech", tr # simulate_all: "RESET AND SIMULATE GAMES" # games_simulated_by: "Games simulated by you:" # games_simulated_for: "Games simulated for you:" +# games_simulated: "Games simulated" +# games_played: "Games played" +# ratio: "Ratio" # leaderboard: "Leaderboard" # battle_as: "Battle as " # summary_your: "Your " @@ -663,3 +664,4 @@ module.exports = nativeDescription: "čeština", englishDescription: "Czech", tr # leaderboard: "Leaderboard" # user_schema: "User Schema" # user_profile: "User Profile" +# patches: "Patches" diff --git a/app/locale/da.coffee b/app/locale/da.coffee index 6605605ba..56d36167d 100644 --- a/app/locale/da.coffee +++ b/app/locale/da.coffee @@ -6,6 +6,7 @@ module.exports = nativeDescription: "dansk", englishDescription: "Danish", trans # send: "Send" cancel: "Annuller" save: "Gem" +# publish: "Publish" # create: "Create" delay_1_sec: "1 sekund" delay_3_sec: "3 sekunder" @@ -47,9 +48,6 @@ module.exports = nativeDescription: "dansk", englishDescription: "Danish", trans versions: save_version_title: "Gem ny version" new_major_version: "Ny hoved Version" -# update_break_level: "(Could this update break old solutions of the level?)" -# update_break_component: "(Could this update break anything depending on this Component?)" -# update_break_system: "(Could this update break anything depending on this System?)" cla_prefix: "For at gemme dine ændringer, må du acceptere brugerbetingelserne" cla_url: "CLA" cla_suffix: "." @@ -75,6 +73,7 @@ module.exports = nativeDescription: "dansk", englishDescription: "Danish", trans creating: "Opretter Konto..." sign_up: "Registrer" log_in: "Log ind med password" +# social_signup: "Or, you can sign up through Facebook or G+:" home: slogan: "Lær at Kode Javascript ved at Spille et Spil" @@ -151,7 +150,6 @@ module.exports = nativeDescription: "dansk", englishDescription: "Danish", trans wizard_tab: "Troldmand" password_tab: "Password" emails_tab: "Emails" -# job_profile_tab: "Job Profile" # admin: "Admin" wizard_color: "Farve på Troldmandstøj" new_password: "Nyt Password" @@ -326,7 +324,6 @@ module.exports = nativeDescription: "dansk", englishDescription: "Danish", trans # more: "More" # wiki: "Wiki" # live_chat: "Live Chat" -# level_publish: "Publish This Level (irreversible)?" # level_some_options: "Some Options?" # level_tab_thangs: "Thangs" # level_tab_scripts: "Scripts" @@ -361,7 +358,7 @@ module.exports = nativeDescription: "dansk", englishDescription: "Danish", trans # thang_search_title: "Search Thang Types Here" level_search_title: "Søg Baner Her" # signup_to_create: "Sign Up to Create a New Content" -# read_only_warning: "Note: you can't save any edits here, because you're not logged in as an admin." +# read_only_warning2: "Note: you can't save any edits here, because you're not logged in." article: edit_btn_preview: "Forhåndsvisning" @@ -395,6 +392,7 @@ module.exports = nativeDescription: "dansk", englishDescription: "Danish", trans easy: "Nem" # medium: "Medium" hard: "Svær" +# player: "Player" about: who_is_codecombat: "Hvem er CodeCombat?" @@ -599,6 +597,9 @@ module.exports = nativeDescription: "dansk", englishDescription: "Danish", trans # simulate_all: "RESET AND SIMULATE GAMES" # games_simulated_by: "Games simulated by you:" # games_simulated_for: "Games simulated for you:" +# games_simulated: "Games simulated" +# games_played: "Games played" +# ratio: "Ratio" # leaderboard: "Leaderboard" # battle_as: "Battle as " # summary_your: "Your " @@ -663,3 +664,4 @@ module.exports = nativeDescription: "dansk", englishDescription: "Danish", trans # leaderboard: "Leaderboard" # user_schema: "User Schema" # user_profile: "User Profile" +# patches: "Patches" diff --git a/app/locale/de.coffee b/app/locale/de.coffee index a6c4e5c32..a2730973a 100644 --- a/app/locale/de.coffee +++ b/app/locale/de.coffee @@ -6,6 +6,7 @@ module.exports = nativeDescription: "Deutsch", englishDescription: "German", tra # send: "Send" cancel: "Abbrechen" save: "Speichern" +# publish: "Publish" # create: "Create" delay_1_sec: "1 Sekunde" delay_3_sec: "3 Sekunden" @@ -47,9 +48,6 @@ module.exports = nativeDescription: "Deutsch", englishDescription: "German", tra versions: save_version_title: "Neue Version speichern" new_major_version: "Neue Hauptversion" -# update_break_level: "(Could this update break old solutions of the level?)" -# update_break_component: "(Could this update break anything depending on this Component?)" -# update_break_system: "(Could this update break anything depending on this System?)" cla_prefix: "Damit Änderungen gespeichert werden können, musst du unsere Lizenzbedingungen (" cla_url: "CLA" cla_suffix: ") akzeptieren." @@ -75,6 +73,7 @@ module.exports = nativeDescription: "Deutsch", englishDescription: "German", tra creating: "Erzeuge Account..." sign_up: "Neuen Account anlegen" log_in: "mit Passwort einloggen" +# social_signup: "Or, you can sign up through Facebook or G+:" home: slogan: "Lerne spielend JavaScript" @@ -151,7 +150,6 @@ module.exports = nativeDescription: "Deutsch", englishDescription: "German", tra wizard_tab: "Zauberer" password_tab: "Passwort" emails_tab: "Emails" -# job_profile_tab: "Job Profile" admin: "Admin" wizard_color: "Die Farbe der Kleidung des Zauberers" new_password: "Neues Passwort" @@ -326,7 +324,6 @@ module.exports = nativeDescription: "Deutsch", englishDescription: "German", tra # more: "More" # wiki: "Wiki" # live_chat: "Live Chat" -# level_publish: "Publish This Level (irreversible)?" level_some_options: "Einige Einstellungsmöglichkeiten?" level_tab_thangs: "Thangs" level_tab_scripts: "Skripte" @@ -361,7 +358,7 @@ module.exports = nativeDescription: "Deutsch", englishDescription: "German", tra # thang_search_title: "Search Thang Types Here" # level_search_title: "Search Levels Here" # signup_to_create: "Sign Up to Create a New Content" -# read_only_warning: "Note: you can't save any edits here, because you're not logged in as an admin." +# read_only_warning2: "Note: you can't save any edits here, because you're not logged in." article: edit_btn_preview: "Vorschau" @@ -395,6 +392,7 @@ module.exports = nativeDescription: "Deutsch", englishDescription: "German", tra easy: "Einfach" medium: "Mittel" hard: "Schwer" +# player: "Player" about: who_is_codecombat: "Wer ist CodeCombat?" @@ -599,6 +597,9 @@ module.exports = nativeDescription: "Deutsch", englishDescription: "German", tra # simulate_all: "RESET AND SIMULATE GAMES" # games_simulated_by: "Games simulated by you:" # games_simulated_for: "Games simulated for you:" +# games_simulated: "Games simulated" +# games_played: "Games played" +# ratio: "Ratio" # leaderboard: "Leaderboard" # battle_as: "Battle as " # summary_your: "Your " @@ -663,3 +664,4 @@ module.exports = nativeDescription: "Deutsch", englishDescription: "German", tra # leaderboard: "Leaderboard" # user_schema: "User Schema" # user_profile: "User Profile" +# patches: "Patches" diff --git a/app/locale/el.coffee b/app/locale/el.coffee index 036c419dd..8b6696716 100644 --- a/app/locale/el.coffee +++ b/app/locale/el.coffee @@ -6,6 +6,7 @@ module.exports = nativeDescription: "ελληνικά", englishDescription: "Gre # send: "Send" cancel: "Ακύρωση" # save: "Save" +# publish: "Publish" # create: "Create" # delay_1_sec: "1 second" # delay_3_sec: "3 seconds" @@ -47,9 +48,6 @@ module.exports = nativeDescription: "ελληνικά", englishDescription: "Gre # versions: # save_version_title: "Save New Version" # new_major_version: "New Major Version" -# update_break_level: "(Could this update break old solutions of the level?)" -# update_break_component: "(Could this update break anything depending on this Component?)" -# update_break_system: "(Could this update break anything depending on this System?)" # cla_prefix: "To save changes, first you must agree to our" # cla_url: "CLA" # cla_suffix: "." @@ -75,6 +73,7 @@ module.exports = nativeDescription: "ελληνικά", englishDescription: "Gre creating: "Δημιουργία λογαριασμού" sign_up: "Εγγραγή" log_in: "Σύνδεση με κώδικο" +# social_signup: "Or, you can sign up through Facebook or G+:" home: slogan: "Μάθε να προγραμμάτιζεις με JavaScript μέσω ενός παιχνιδιού" @@ -151,7 +150,6 @@ module.exports = nativeDescription: "ελληνικά", englishDescription: "Gre wizard_tab: "Μάγος" password_tab: "Κωδικός" emails_tab: "Emails" -# job_profile_tab: "Job Profile" # admin: "Admin" wizard_color: "Χρώμα ρούχων του Μάγου" new_password: "Καινούργιος Κωδικός" @@ -326,7 +324,6 @@ module.exports = nativeDescription: "ελληνικά", englishDescription: "Gre # more: "More" # wiki: "Wiki" # live_chat: "Live Chat" -# level_publish: "Publish This Level (irreversible)?" # level_some_options: "Some Options?" # level_tab_thangs: "Thangs" # level_tab_scripts: "Scripts" @@ -361,7 +358,7 @@ module.exports = nativeDescription: "ελληνικά", englishDescription: "Gre # thang_search_title: "Search Thang Types Here" # level_search_title: "Search Levels Here" # signup_to_create: "Sign Up to Create a New Content" -# read_only_warning: "Note: you can't save any edits here, because you're not logged in as an admin." +# read_only_warning2: "Note: you can't save any edits here, because you're not logged in." # article: # edit_btn_preview: "Preview" @@ -395,6 +392,7 @@ module.exports = nativeDescription: "ελληνικά", englishDescription: "Gre # easy: "Easy" # medium: "Medium" # hard: "Hard" +# player: "Player" # about: # who_is_codecombat: "Who is CodeCombat?" @@ -599,6 +597,9 @@ module.exports = nativeDescription: "ελληνικά", englishDescription: "Gre # simulate_all: "RESET AND SIMULATE GAMES" # games_simulated_by: "Games simulated by you:" # games_simulated_for: "Games simulated for you:" +# games_simulated: "Games simulated" +# games_played: "Games played" +# ratio: "Ratio" # leaderboard: "Leaderboard" # battle_as: "Battle as " # summary_your: "Your " @@ -663,3 +664,4 @@ module.exports = nativeDescription: "ελληνικά", englishDescription: "Gre # leaderboard: "Leaderboard" # user_schema: "User Schema" # user_profile: "User Profile" +# patches: "Patches" diff --git a/app/locale/en-AU.coffee b/app/locale/en-AU.coffee index 1b0c18045..c6379eb82 100644 --- a/app/locale/en-AU.coffee +++ b/app/locale/en-AU.coffee @@ -6,6 +6,7 @@ module.exports = nativeDescription: "English (AU)", englishDescription: "English # send: "Send" # cancel: "Cancel" # save: "Save" +# publish: "Publish" # create: "Create" # delay_1_sec: "1 second" # delay_3_sec: "3 seconds" @@ -47,9 +48,6 @@ module.exports = nativeDescription: "English (AU)", englishDescription: "English # versions: # save_version_title: "Save New Version" # new_major_version: "New Major Version" -# update_break_level: "(Could this update break old solutions of the level?)" -# update_break_component: "(Could this update break anything depending on this Component?)" -# update_break_system: "(Could this update break anything depending on this System?)" # cla_prefix: "To save changes, first you must agree to our" # cla_url: "CLA" # cla_suffix: "." @@ -75,6 +73,7 @@ module.exports = nativeDescription: "English (AU)", englishDescription: "English # creating: "Creating Account..." # sign_up: "Sign Up" # log_in: "log in with password" +# social_signup: "Or, you can sign up through Facebook or G+:" # home: # slogan: "Learn to Code JavaScript by Playing a Game" @@ -151,7 +150,6 @@ module.exports = nativeDescription: "English (AU)", englishDescription: "English # wizard_tab: "Wizard" # password_tab: "Password" # emails_tab: "Emails" -# job_profile_tab: "Job Profile" # admin: "Admin" # wizard_color: "Wizard Clothes Color" # new_password: "New Password" @@ -326,7 +324,6 @@ module.exports = nativeDescription: "English (AU)", englishDescription: "English # more: "More" # wiki: "Wiki" # live_chat: "Live Chat" -# level_publish: "Publish This Level (irreversible)?" # level_some_options: "Some Options?" # level_tab_thangs: "Thangs" # level_tab_scripts: "Scripts" @@ -361,7 +358,7 @@ module.exports = nativeDescription: "English (AU)", englishDescription: "English # thang_search_title: "Search Thang Types Here" # level_search_title: "Search Levels Here" # signup_to_create: "Sign Up to Create a New Content" -# read_only_warning: "Note: you can't save any edits here, because you're not logged in as an admin." +# read_only_warning2: "Note: you can't save any edits here, because you're not logged in." # article: # edit_btn_preview: "Preview" @@ -395,6 +392,7 @@ module.exports = nativeDescription: "English (AU)", englishDescription: "English # easy: "Easy" # medium: "Medium" # hard: "Hard" +# player: "Player" # about: # who_is_codecombat: "Who is CodeCombat?" @@ -599,6 +597,9 @@ module.exports = nativeDescription: "English (AU)", englishDescription: "English # simulate_all: "RESET AND SIMULATE GAMES" # games_simulated_by: "Games simulated by you:" # games_simulated_for: "Games simulated for you:" +# games_simulated: "Games simulated" +# games_played: "Games played" +# ratio: "Ratio" # leaderboard: "Leaderboard" # battle_as: "Battle as " # summary_your: "Your " @@ -663,3 +664,4 @@ module.exports = nativeDescription: "English (AU)", englishDescription: "English # leaderboard: "Leaderboard" # user_schema: "User Schema" # user_profile: "User Profile" +# patches: "Patches" diff --git a/app/locale/en-GB.coffee b/app/locale/en-GB.coffee index 04e01b564..39378ba4f 100644 --- a/app/locale/en-GB.coffee +++ b/app/locale/en-GB.coffee @@ -6,6 +6,7 @@ module.exports = nativeDescription: "English (UK)", englishDescription: "English # send: "Send" # cancel: "Cancel" # save: "Save" +# publish: "Publish" # create: "Create" # delay_1_sec: "1 second" # delay_3_sec: "3 seconds" @@ -47,9 +48,6 @@ module.exports = nativeDescription: "English (UK)", englishDescription: "English # versions: # save_version_title: "Save New Version" # new_major_version: "New Major Version" -# update_break_level: "(Could this update break old solutions of the level?)" -# update_break_component: "(Could this update break anything depending on this Component?)" -# update_break_system: "(Could this update break anything depending on this System?)" # cla_prefix: "To save changes, first you must agree to our" # cla_url: "CLA" # cla_suffix: "." @@ -75,6 +73,7 @@ module.exports = nativeDescription: "English (UK)", englishDescription: "English # creating: "Creating Account..." # sign_up: "Sign Up" # log_in: "log in with password" +# social_signup: "Or, you can sign up through Facebook or G+:" # home: # slogan: "Learn to Code JavaScript by Playing a Game" @@ -151,7 +150,6 @@ module.exports = nativeDescription: "English (UK)", englishDescription: "English # wizard_tab: "Wizard" # password_tab: "Password" # emails_tab: "Emails" -# job_profile_tab: "Job Profile" # admin: "Admin" # wizard_color: "Wizard Clothes Color" # new_password: "New Password" @@ -326,7 +324,6 @@ module.exports = nativeDescription: "English (UK)", englishDescription: "English # more: "More" # wiki: "Wiki" # live_chat: "Live Chat" -# level_publish: "Publish This Level (irreversible)?" # level_some_options: "Some Options?" # level_tab_thangs: "Thangs" # level_tab_scripts: "Scripts" @@ -361,7 +358,7 @@ module.exports = nativeDescription: "English (UK)", englishDescription: "English # thang_search_title: "Search Thang Types Here" # level_search_title: "Search Levels Here" # signup_to_create: "Sign Up to Create a New Content" -# read_only_warning: "Note: you can't save any edits here, because you're not logged in as an admin." +# read_only_warning2: "Note: you can't save any edits here, because you're not logged in." # article: # edit_btn_preview: "Preview" @@ -395,6 +392,7 @@ module.exports = nativeDescription: "English (UK)", englishDescription: "English # easy: "Easy" # medium: "Medium" # hard: "Hard" +# player: "Player" # about: # who_is_codecombat: "Who is CodeCombat?" @@ -599,6 +597,9 @@ module.exports = nativeDescription: "English (UK)", englishDescription: "English # simulate_all: "RESET AND SIMULATE GAMES" # games_simulated_by: "Games simulated by you:" # games_simulated_for: "Games simulated for you:" +# games_simulated: "Games simulated" +# games_played: "Games played" +# ratio: "Ratio" # leaderboard: "Leaderboard" # battle_as: "Battle as " # summary_your: "Your " @@ -663,3 +664,4 @@ module.exports = nativeDescription: "English (UK)", englishDescription: "English # leaderboard: "Leaderboard" # user_schema: "User Schema" # user_profile: "User Profile" +# patches: "Patches" diff --git a/app/locale/en-US.coffee b/app/locale/en-US.coffee index 18673ed07..07ad6a251 100644 --- a/app/locale/en-US.coffee +++ b/app/locale/en-US.coffee @@ -6,6 +6,7 @@ module.exports = nativeDescription: "English (US)", englishDescription: "English # send: "Send" # cancel: "Cancel" # save: "Save" +# publish: "Publish" # create: "Create" # delay_1_sec: "1 second" # delay_3_sec: "3 seconds" @@ -47,9 +48,6 @@ module.exports = nativeDescription: "English (US)", englishDescription: "English # versions: # save_version_title: "Save New Version" # new_major_version: "New Major Version" -# update_break_level: "(Could this update break old solutions of the level?)" -# update_break_component: "(Could this update break anything depending on this Component?)" -# update_break_system: "(Could this update break anything depending on this System?)" # cla_prefix: "To save changes, first you must agree to our" # cla_url: "CLA" # cla_suffix: "." @@ -75,6 +73,7 @@ module.exports = nativeDescription: "English (US)", englishDescription: "English # creating: "Creating Account..." # sign_up: "Sign Up" # log_in: "log in with password" +# social_signup: "Or, you can sign up through Facebook or G+:" # home: # slogan: "Learn to Code JavaScript by Playing a Game" @@ -151,7 +150,6 @@ module.exports = nativeDescription: "English (US)", englishDescription: "English # wizard_tab: "Wizard" # password_tab: "Password" # emails_tab: "Emails" -# job_profile_tab: "Job Profile" # admin: "Admin" # wizard_color: "Wizard Clothes Color" # new_password: "New Password" @@ -326,7 +324,6 @@ module.exports = nativeDescription: "English (US)", englishDescription: "English # more: "More" # wiki: "Wiki" # live_chat: "Live Chat" -# level_publish: "Publish This Level (irreversible)?" # level_some_options: "Some Options?" # level_tab_thangs: "Thangs" # level_tab_scripts: "Scripts" @@ -361,7 +358,7 @@ module.exports = nativeDescription: "English (US)", englishDescription: "English # thang_search_title: "Search Thang Types Here" # level_search_title: "Search Levels Here" # signup_to_create: "Sign Up to Create a New Content" -# read_only_warning: "Note: you can't save any edits here, because you're not logged in as an admin." +# read_only_warning2: "Note: you can't save any edits here, because you're not logged in." # article: # edit_btn_preview: "Preview" @@ -395,6 +392,7 @@ module.exports = nativeDescription: "English (US)", englishDescription: "English # easy: "Easy" # medium: "Medium" # hard: "Hard" +# player: "Player" # about: # who_is_codecombat: "Who is CodeCombat?" @@ -599,6 +597,9 @@ module.exports = nativeDescription: "English (US)", englishDescription: "English # simulate_all: "RESET AND SIMULATE GAMES" # games_simulated_by: "Games simulated by you:" # games_simulated_for: "Games simulated for you:" +# games_simulated: "Games simulated" +# games_played: "Games played" +# ratio: "Ratio" # leaderboard: "Leaderboard" # battle_as: "Battle as " # summary_your: "Your " @@ -663,3 +664,4 @@ module.exports = nativeDescription: "English (US)", englishDescription: "English # leaderboard: "Leaderboard" # user_schema: "User Schema" # user_profile: "User Profile" +# patches: "Patches" diff --git a/app/locale/en.coffee b/app/locale/en.coffee index ee30a5f3d..1fc298454 100644 --- a/app/locale/en.coffee +++ b/app/locale/en.coffee @@ -291,6 +291,9 @@ time_current: "Now:" time_total: "Max:" time_goto: "Go to:" + infinite_loop_try_again: "Try Again" + infinite_loop_reset_level: "Reset Level" + infinite_loop_comment_out: "Comment Out My Code" admin: av_title: "Admin Views" @@ -392,6 +395,7 @@ easy: "Easy" medium: "Medium" hard: "Hard" + player: "Player" about: who_is_codecombat: "Who is CodeCombat?" @@ -596,6 +600,9 @@ simulate_all: "RESET AND SIMULATE GAMES" games_simulated_by: "Games simulated by you:" games_simulated_for: "Games simulated for you:" + games_simulated: "Games simulated" + games_played: "Games played" + ratio: "Ratio" leaderboard: "Leaderboard" battle_as: "Battle as " summary_your: "Your " diff --git a/app/locale/es-419.coffee b/app/locale/es-419.coffee index 24e96e018..5b5070ad5 100644 --- a/app/locale/es-419.coffee +++ b/app/locale/es-419.coffee @@ -6,6 +6,7 @@ module.exports = nativeDescription: "español (América Latina)", englishDescrip # send: "Send" cancel: "Cancelar" save: "Guardar" +# publish: "Publish" create: "Crear" delay_1_sec: "1 segundo" delay_3_sec: "3 segundos" @@ -47,9 +48,6 @@ module.exports = nativeDescription: "español (América Latina)", englishDescrip versions: save_version_title: "Guardar nueva versión" new_major_version: "Nueva Gran Versión" -# update_break_level: "(Could this update break old solutions of the level?)" -# update_break_component: "(Could this update break anything depending on this Component?)" -# update_break_system: "(Could this update break anything depending on this System?)" # cla_prefix: "To save changes, first you must agree to our" # cla_url: "CLA" # cla_suffix: "." @@ -75,6 +73,7 @@ module.exports = nativeDescription: "español (América Latina)", englishDescrip creating: "Creando Cuenta..." sign_up: "Registrarse" log_in: "Inicia sesión con tu contraseña" +# social_signup: "Or, you can sign up through Facebook or G+:" home: slogan: "Aprende a programar en JavaScript jugando" @@ -151,7 +150,6 @@ module.exports = nativeDescription: "español (América Latina)", englishDescrip wizard_tab: "Hechicero" password_tab: "Contraseña" emails_tab: "Correos" -# job_profile_tab: "Job Profile" # admin: "Admin" wizard_color: "Color de Ropas del Hechicero" new_password: "Nueva Contraseña" @@ -326,7 +324,6 @@ module.exports = nativeDescription: "español (América Latina)", englishDescrip # more: "More" # wiki: "Wiki" # live_chat: "Live Chat" -# level_publish: "Publish This Level (irreversible)?" # level_some_options: "Some Options?" # level_tab_thangs: "Thangs" # level_tab_scripts: "Scripts" @@ -361,7 +358,7 @@ module.exports = nativeDescription: "español (América Latina)", englishDescrip # thang_search_title: "Search Thang Types Here" # level_search_title: "Search Levels Here" # signup_to_create: "Sign Up to Create a New Content" -# read_only_warning: "Note: you can't save any edits here, because you're not logged in as an admin." +# read_only_warning2: "Note: you can't save any edits here, because you're not logged in." # article: # edit_btn_preview: "Preview" @@ -395,6 +392,7 @@ module.exports = nativeDescription: "español (América Latina)", englishDescrip # easy: "Easy" # medium: "Medium" # hard: "Hard" +# player: "Player" # about: # who_is_codecombat: "Who is CodeCombat?" @@ -599,6 +597,9 @@ module.exports = nativeDescription: "español (América Latina)", englishDescrip # simulate_all: "RESET AND SIMULATE GAMES" # games_simulated_by: "Games simulated by you:" # games_simulated_for: "Games simulated for you:" +# games_simulated: "Games simulated" +# games_played: "Games played" +# ratio: "Ratio" # leaderboard: "Leaderboard" # battle_as: "Battle as " # summary_your: "Your " @@ -663,3 +664,4 @@ module.exports = nativeDescription: "español (América Latina)", englishDescrip # leaderboard: "Leaderboard" # user_schema: "User Schema" # user_profile: "User Profile" +# patches: "Patches" diff --git a/app/locale/es-ES.coffee b/app/locale/es-ES.coffee index 267cd5d5e..d4245240d 100644 --- a/app/locale/es-ES.coffee +++ b/app/locale/es-ES.coffee @@ -6,6 +6,7 @@ module.exports = nativeDescription: "español (ES)", englishDescription: "Spanis # send: "Send" cancel: "Cancelar" save: "Guardar" +# publish: "Publish" create: "Crear" delay_1_sec: "1 segundo" delay_3_sec: "3 segundos" @@ -47,9 +48,6 @@ module.exports = nativeDescription: "español (ES)", englishDescription: "Spanis versions: save_version_title: "Guardar nueva versión" new_major_version: "Nueva versión principal" -# update_break_level: "(Could this update break old solutions of the level?)" -# update_break_component: "(Could this update break anything depending on this Component?)" -# update_break_system: "(Could this update break anything depending on this System?)" cla_prefix: "Para guardar los cambios, primero debes aceptar nuestro" cla_url: "CLA" cla_suffix: "." @@ -75,6 +73,7 @@ module.exports = nativeDescription: "español (ES)", englishDescription: "Spanis creating: "Creando cuenta..." sign_up: "Registrarse" log_in: "Iniciar sesión con contraseña" +# social_signup: "Or, you can sign up through Facebook or G+:" home: slogan: "Aprende a programar JavaScript jugando" @@ -151,7 +150,6 @@ module.exports = nativeDescription: "español (ES)", englishDescription: "Spanis wizard_tab: "Mago" password_tab: "Contraseña" emails_tab: "Correos electrónicos" -# job_profile_tab: "Job Profile" admin: "Admin" wizard_color: "Color de la ropa del Mago" new_password: "Nueva contraseña" @@ -326,7 +324,6 @@ module.exports = nativeDescription: "español (ES)", englishDescription: "Spanis # more: "More" # wiki: "Wiki" # live_chat: "Live Chat" -# level_publish: "Publish This Level (irreversible)?" level_some_options: "¿Algunas opciones?" level_tab_thangs: "Objetos" level_tab_scripts: "Scripts" @@ -361,7 +358,7 @@ module.exports = nativeDescription: "español (ES)", englishDescription: "Spanis # thang_search_title: "Search Thang Types Here" # level_search_title: "Search Levels Here" # signup_to_create: "Sign Up to Create a New Content" -# read_only_warning: "Note: you can't save any edits here, because you're not logged in as an admin." +# read_only_warning2: "Note: you can't save any edits here, because you're not logged in." article: edit_btn_preview: "Vista preliminar" @@ -395,6 +392,7 @@ module.exports = nativeDescription: "español (ES)", englishDescription: "Spanis # easy: "Easy" # medium: "Medium" # hard: "Hard" +# player: "Player" about: who_is_codecombat: "¿Qué es CodeCombat?" @@ -599,6 +597,9 @@ module.exports = nativeDescription: "español (ES)", englishDescription: "Spanis # simulate_all: "RESET AND SIMULATE GAMES" # games_simulated_by: "Games simulated by you:" # games_simulated_for: "Games simulated for you:" +# games_simulated: "Games simulated" +# games_played: "Games played" +# ratio: "Ratio" # leaderboard: "Leaderboard" # battle_as: "Battle as " # summary_your: "Your " @@ -663,3 +664,4 @@ module.exports = nativeDescription: "español (ES)", englishDescription: "Spanis # leaderboard: "Leaderboard" # user_schema: "User Schema" # user_profile: "User Profile" +# patches: "Patches" diff --git a/app/locale/es.coffee b/app/locale/es.coffee index 141907ffd..70a12c764 100644 --- a/app/locale/es.coffee +++ b/app/locale/es.coffee @@ -6,6 +6,7 @@ module.exports = nativeDescription: "español", englishDescription: "Spanish", t # send: "Send" cancel: "Cancelar" save: "Guardar" +# publish: "Publish" # create: "Create" delay_1_sec: "1 segundo" delay_3_sec: "3 segundos" @@ -47,9 +48,6 @@ module.exports = nativeDescription: "español", englishDescription: "Spanish", t versions: save_version_title: "Guardar Nueva Versión" new_major_version: "New Major Version" -# update_break_level: "(Could this update break old solutions of the level?)" -# update_break_component: "(Could this update break anything depending on this Component?)" -# update_break_system: "(Could this update break anything depending on this System?)" cla_prefix: "Para poder guardar los cambios, primero debes aceptar nuestra" cla_url: "CLA" cla_suffix: "." @@ -75,6 +73,7 @@ module.exports = nativeDescription: "español", englishDescription: "Spanish", t creating: "Creando Cuenta..." sign_up: "Registrarse" log_in: "Inicia sesión con tu contraseña" +# social_signup: "Or, you can sign up through Facebook or G+:" home: slogan: "Aprende a programar en JavaScript jugando" @@ -151,7 +150,6 @@ module.exports = nativeDescription: "español", englishDescription: "Spanish", t wizard_tab: "Hechicero" password_tab: "Contraseña" emails_tab: "Correos" -# job_profile_tab: "Job Profile" admin: "Administrador" wizard_color: "Color de Ropas del Hechicero" new_password: "Nueva Contraseña" @@ -326,7 +324,6 @@ module.exports = nativeDescription: "español", englishDescription: "Spanish", t # more: "More" # wiki: "Wiki" # live_chat: "Live Chat" -# level_publish: "Publish This Level (irreversible)?" # level_some_options: "Some Options?" # level_tab_thangs: "Thangs" # level_tab_scripts: "Scripts" @@ -361,7 +358,7 @@ module.exports = nativeDescription: "español", englishDescription: "Spanish", t # thang_search_title: "Search Thang Types Here" # level_search_title: "Search Levels Here" # signup_to_create: "Sign Up to Create a New Content" -# read_only_warning: "Note: you can't save any edits here, because you're not logged in as an admin." +# read_only_warning2: "Note: you can't save any edits here, because you're not logged in." article: edit_btn_preview: "Previsualizar" @@ -395,6 +392,7 @@ module.exports = nativeDescription: "español", englishDescription: "Spanish", t easy: "Fácil" medium: "Medio" hard: "Difíficl" +# player: "Player" about: who_is_codecombat: "¿Quién es CodeCombat?" @@ -599,6 +597,9 @@ module.exports = nativeDescription: "español", englishDescription: "Spanish", t # simulate_all: "RESET AND SIMULATE GAMES" # games_simulated_by: "Games simulated by you:" # games_simulated_for: "Games simulated for you:" +# games_simulated: "Games simulated" +# games_played: "Games played" +# ratio: "Ratio" # leaderboard: "Leaderboard" # battle_as: "Battle as " # summary_your: "Your " @@ -663,3 +664,4 @@ module.exports = nativeDescription: "español", englishDescription: "Spanish", t # leaderboard: "Leaderboard" # user_schema: "User Schema" # user_profile: "User Profile" +# patches: "Patches" diff --git a/app/locale/fa.coffee b/app/locale/fa.coffee index dd83f940b..e80520b20 100644 --- a/app/locale/fa.coffee +++ b/app/locale/fa.coffee @@ -6,6 +6,7 @@ module.exports = nativeDescription: "فارسی", englishDescription: "Persian", # send: "Send" cancel: "لغو" save: "ذخیره " +# publish: "Publish" # create: "Create" delay_1_sec: "1 ثانیه" delay_3_sec: "3 ثانیه" @@ -47,9 +48,6 @@ module.exports = nativeDescription: "فارسی", englishDescription: "Persian", versions: save_version_title: "ذخیره کردن نسخه جدید" new_major_version: "New Major Version" -# update_break_level: "(Could this update break old solutions of the level?)" -# update_break_component: "(Could this update break anything depending on this Component?)" -# update_break_system: "(Could this update break anything depending on this System?)" cla_prefix: "To save changes, first you must agree to our" cla_url: "CLA" cla_suffix: "." @@ -75,6 +73,7 @@ module.exports = nativeDescription: "فارسی", englishDescription: "Persian", creating: "...در حال ایجاد حساب کاربری" sign_up: "ثبت نام" log_in: "ورود به وسیله رمز عبور" +# social_signup: "Or, you can sign up through Facebook or G+:" home: slogan: "کد نویسی به زبان جاوااسکریپت را با بازی بیاموزید" @@ -151,7 +150,6 @@ module.exports = nativeDescription: "فارسی", englishDescription: "Persian", wizard_tab: "جادو" password_tab: "کلمه عبور" emails_tab: "ایمیل ها" -# job_profile_tab: "Job Profile" # admin: "Admin" # wizard_color: "Wizard Clothes Color" # new_password: "New Password" @@ -326,7 +324,6 @@ module.exports = nativeDescription: "فارسی", englishDescription: "Persian", # more: "More" # wiki: "Wiki" # live_chat: "Live Chat" -# level_publish: "Publish This Level (irreversible)?" # level_some_options: "Some Options?" # level_tab_thangs: "Thangs" # level_tab_scripts: "Scripts" @@ -361,7 +358,7 @@ module.exports = nativeDescription: "فارسی", englishDescription: "Persian", # thang_search_title: "Search Thang Types Here" # level_search_title: "Search Levels Here" # signup_to_create: "Sign Up to Create a New Content" -# read_only_warning: "Note: you can't save any edits here, because you're not logged in as an admin." +# read_only_warning2: "Note: you can't save any edits here, because you're not logged in." # article: # edit_btn_preview: "Preview" @@ -395,6 +392,7 @@ module.exports = nativeDescription: "فارسی", englishDescription: "Persian", # easy: "Easy" # medium: "Medium" # hard: "Hard" +# player: "Player" # about: # who_is_codecombat: "Who is CodeCombat?" @@ -599,6 +597,9 @@ module.exports = nativeDescription: "فارسی", englishDescription: "Persian", # simulate_all: "RESET AND SIMULATE GAMES" # games_simulated_by: "Games simulated by you:" # games_simulated_for: "Games simulated for you:" +# games_simulated: "Games simulated" +# games_played: "Games played" +# ratio: "Ratio" # leaderboard: "Leaderboard" # battle_as: "Battle as " # summary_your: "Your " @@ -663,3 +664,4 @@ module.exports = nativeDescription: "فارسی", englishDescription: "Persian", # leaderboard: "Leaderboard" # user_schema: "User Schema" # user_profile: "User Profile" +# patches: "Patches" diff --git a/app/locale/fi.coffee b/app/locale/fi.coffee index 0c90e6fad..749f530f0 100644 --- a/app/locale/fi.coffee +++ b/app/locale/fi.coffee @@ -6,6 +6,7 @@ module.exports = nativeDescription: "suomi", englishDescription: "Finnish", tran # send: "Send" # cancel: "Cancel" # save: "Save" +# publish: "Publish" # create: "Create" # delay_1_sec: "1 second" # delay_3_sec: "3 seconds" @@ -47,9 +48,6 @@ module.exports = nativeDescription: "suomi", englishDescription: "Finnish", tran # versions: # save_version_title: "Save New Version" # new_major_version: "New Major Version" -# update_break_level: "(Could this update break old solutions of the level?)" -# update_break_component: "(Could this update break anything depending on this Component?)" -# update_break_system: "(Could this update break anything depending on this System?)" # cla_prefix: "To save changes, first you must agree to our" # cla_url: "CLA" # cla_suffix: "." @@ -75,6 +73,7 @@ module.exports = nativeDescription: "suomi", englishDescription: "Finnish", tran # creating: "Creating Account..." # sign_up: "Sign Up" # log_in: "log in with password" +# social_signup: "Or, you can sign up through Facebook or G+:" # home: # slogan: "Learn to Code JavaScript by Playing a Game" @@ -151,7 +150,6 @@ module.exports = nativeDescription: "suomi", englishDescription: "Finnish", tran # wizard_tab: "Wizard" # password_tab: "Password" # emails_tab: "Emails" -# job_profile_tab: "Job Profile" # admin: "Admin" # wizard_color: "Wizard Clothes Color" # new_password: "New Password" @@ -326,7 +324,6 @@ module.exports = nativeDescription: "suomi", englishDescription: "Finnish", tran # more: "More" # wiki: "Wiki" # live_chat: "Live Chat" -# level_publish: "Publish This Level (irreversible)?" # level_some_options: "Some Options?" # level_tab_thangs: "Thangs" # level_tab_scripts: "Scripts" @@ -361,7 +358,7 @@ module.exports = nativeDescription: "suomi", englishDescription: "Finnish", tran # thang_search_title: "Search Thang Types Here" # level_search_title: "Search Levels Here" # signup_to_create: "Sign Up to Create a New Content" -# read_only_warning: "Note: you can't save any edits here, because you're not logged in as an admin." +# read_only_warning2: "Note: you can't save any edits here, because you're not logged in." # article: # edit_btn_preview: "Preview" @@ -395,6 +392,7 @@ module.exports = nativeDescription: "suomi", englishDescription: "Finnish", tran # easy: "Easy" # medium: "Medium" # hard: "Hard" +# player: "Player" # about: # who_is_codecombat: "Who is CodeCombat?" @@ -599,6 +597,9 @@ module.exports = nativeDescription: "suomi", englishDescription: "Finnish", tran # simulate_all: "RESET AND SIMULATE GAMES" # games_simulated_by: "Games simulated by you:" # games_simulated_for: "Games simulated for you:" +# games_simulated: "Games simulated" +# games_played: "Games played" +# ratio: "Ratio" # leaderboard: "Leaderboard" # battle_as: "Battle as " # summary_your: "Your " @@ -663,3 +664,4 @@ module.exports = nativeDescription: "suomi", englishDescription: "Finnish", tran # leaderboard: "Leaderboard" # user_schema: "User Schema" # user_profile: "User Profile" +# patches: "Patches" diff --git a/app/locale/fr.coffee b/app/locale/fr.coffee index 1c8bae6dd..4d9d24b36 100644 --- a/app/locale/fr.coffee +++ b/app/locale/fr.coffee @@ -6,6 +6,7 @@ module.exports = nativeDescription: "français", englishDescription: "French", t # send: "Send" cancel: "Annuler" save: "Sauvegarder" +# publish: "Publish" # create: "Create" delay_1_sec: "1 seconde" delay_3_sec: "3 secondes" @@ -47,9 +48,6 @@ module.exports = nativeDescription: "français", englishDescription: "French", t versions: save_version_title: "Enregistrer une nouvelle version" new_major_version: "Nouvelle version majeure" -# update_break_level: "(Could this update break old solutions of the level?)" -# update_break_component: "(Could this update break anything depending on this Component?)" -# update_break_system: "(Could this update break anything depending on this System?)" cla_prefix: "Pour enregistrer vos modifications vous devez d'abord accepter notre" cla_url: "Copyright" cla_suffix: "." @@ -75,6 +73,7 @@ module.exports = nativeDescription: "français", englishDescription: "French", t creating: "Création du compte en cours..." sign_up: "S'abonner" log_in: "se connecter avec votre mot de passe" +# social_signup: "Or, you can sign up through Facebook or G+:" home: slogan: "Apprenez à coder en JavaScript tout en jouant" @@ -151,7 +150,6 @@ module.exports = nativeDescription: "français", englishDescription: "French", t wizard_tab: "Magicien" password_tab: "Mot de passe" emails_tab: "Emails" -# job_profile_tab: "Job Profile" admin: "Admin" wizard_color: "Couleur des vêtements du Magicien" new_password: "Nouveau mot de passe" @@ -326,7 +324,6 @@ module.exports = nativeDescription: "français", englishDescription: "French", t # more: "More" # wiki: "Wiki" # live_chat: "Live Chat" -# level_publish: "Publish This Level (irreversible)?" level_some_options: "Quelques options?" level_tab_thangs: "Thangs" level_tab_scripts: "Scripts" @@ -361,7 +358,7 @@ module.exports = nativeDescription: "français", englishDescription: "French", t thang_search_title: "Rechercher dans les types Thang" level_search_title: "Rechercher dans les niveaux" # signup_to_create: "Sign Up to Create a New Content" -# read_only_warning: "Note: you can't save any edits here, because you're not logged in as an admin." +# read_only_warning2: "Note: you can't save any edits here, because you're not logged in." article: edit_btn_preview: "Prévisualiser" @@ -395,6 +392,7 @@ module.exports = nativeDescription: "français", englishDescription: "French", t easy: "Facile" medium: "Moyen" hard: "Difficile" +# player: "Player" about: who_is_codecombat: "Qui est CodeCombat?" @@ -599,6 +597,9 @@ module.exports = nativeDescription: "français", englishDescription: "French", t simulate_all: "REINITIALISER ET SIMULER DES PARTIES" # games_simulated_by: "Games simulated by you:" # games_simulated_for: "Games simulated for you:" +# games_simulated: "Games simulated" +# games_played: "Games played" +# ratio: "Ratio" leaderboard: "Classement" battle_as: "Combattre comme " summary_your: "Vos " @@ -663,3 +664,4 @@ module.exports = nativeDescription: "français", englishDescription: "French", t # leaderboard: "Leaderboard" # user_schema: "User Schema" # user_profile: "User Profile" +# patches: "Patches" diff --git a/app/locale/he.coffee b/app/locale/he.coffee index acef8bd72..5d35048c8 100644 --- a/app/locale/he.coffee +++ b/app/locale/he.coffee @@ -6,6 +6,7 @@ module.exports = nativeDescription: "עברית", englishDescription: "Hebrew", # send: "Send" cancel: "ביטול" save: "שמור" +# publish: "Publish" # create: "Create" delay_1_sec: "שניה אחת" delay_3_sec: "שלוש שניות" @@ -47,9 +48,6 @@ module.exports = nativeDescription: "עברית", englishDescription: "Hebrew", versions: save_version_title: "שמור גרסה חדשה" new_major_version: "גרסה חשובה חדשה" -# update_break_level: "(Could this update break old solutions of the level?)" -# update_break_component: "(Could this update break anything depending on this Component?)" -# update_break_system: "(Could this update break anything depending on this System?)" cla_prefix: "כדי לשמור יש להירשם לאתר" # cla_url: "CLA" # cla_suffix: "." @@ -75,6 +73,7 @@ module.exports = nativeDescription: "עברית", englishDescription: "Hebrew", creating: "יוצר חשבון..." sign_up: "הירשם" log_in: "כנס עם סיסמה" +# social_signup: "Or, you can sign up through Facebook or G+:" home: slogan: "גם לשחק וגם ללמוד לתכנת" @@ -151,7 +150,6 @@ module.exports = nativeDescription: "עברית", englishDescription: "Hebrew", wizard_tab: "קוסם" password_tab: "סיסמה" emails_tab: "אימיילים" -# job_profile_tab: "Job Profile" admin: "אדמין" wizard_color: "צבע הקוסם" new_password: "סיסמה חדשה" @@ -326,7 +324,6 @@ module.exports = nativeDescription: "עברית", englishDescription: "Hebrew", # more: "More" # wiki: "Wiki" # live_chat: "Live Chat" -# level_publish: "Publish This Level (irreversible)?" # level_some_options: "Some Options?" # level_tab_thangs: "Thangs" # level_tab_scripts: "Scripts" @@ -361,7 +358,7 @@ module.exports = nativeDescription: "עברית", englishDescription: "Hebrew", # thang_search_title: "Search Thang Types Here" # level_search_title: "Search Levels Here" # signup_to_create: "Sign Up to Create a New Content" -# read_only_warning: "Note: you can't save any edits here, because you're not logged in as an admin." +# read_only_warning2: "Note: you can't save any edits here, because you're not logged in." # article: # edit_btn_preview: "Preview" @@ -395,6 +392,7 @@ module.exports = nativeDescription: "עברית", englishDescription: "Hebrew", # easy: "Easy" # medium: "Medium" # hard: "Hard" +# player: "Player" # about: # who_is_codecombat: "Who is CodeCombat?" @@ -599,6 +597,9 @@ module.exports = nativeDescription: "עברית", englishDescription: "Hebrew", # simulate_all: "RESET AND SIMULATE GAMES" # games_simulated_by: "Games simulated by you:" # games_simulated_for: "Games simulated for you:" +# games_simulated: "Games simulated" +# games_played: "Games played" +# ratio: "Ratio" # leaderboard: "Leaderboard" # battle_as: "Battle as " # summary_your: "Your " @@ -663,3 +664,4 @@ module.exports = nativeDescription: "עברית", englishDescription: "Hebrew", # leaderboard: "Leaderboard" # user_schema: "User Schema" # user_profile: "User Profile" +# patches: "Patches" diff --git a/app/locale/hi.coffee b/app/locale/hi.coffee index 5888b5b7d..d0bab3a62 100644 --- a/app/locale/hi.coffee +++ b/app/locale/hi.coffee @@ -6,6 +6,7 @@ module.exports = nativeDescription: "मानक हिन्दी", englishDe # send: "Send" # cancel: "Cancel" # save: "Save" +# publish: "Publish" # create: "Create" # delay_1_sec: "1 second" # delay_3_sec: "3 seconds" @@ -47,9 +48,6 @@ module.exports = nativeDescription: "मानक हिन्दी", englishDe # versions: # save_version_title: "Save New Version" # new_major_version: "New Major Version" -# update_break_level: "(Could this update break old solutions of the level?)" -# update_break_component: "(Could this update break anything depending on this Component?)" -# update_break_system: "(Could this update break anything depending on this System?)" # cla_prefix: "To save changes, first you must agree to our" # cla_url: "CLA" # cla_suffix: "." @@ -75,6 +73,7 @@ module.exports = nativeDescription: "मानक हिन्दी", englishDe # creating: "Creating Account..." # sign_up: "Sign Up" # log_in: "log in with password" +# social_signup: "Or, you can sign up through Facebook or G+:" # home: # slogan: "Learn to Code JavaScript by Playing a Game" @@ -151,7 +150,6 @@ module.exports = nativeDescription: "मानक हिन्दी", englishDe # wizard_tab: "Wizard" # password_tab: "Password" # emails_tab: "Emails" -# job_profile_tab: "Job Profile" # admin: "Admin" # wizard_color: "Wizard Clothes Color" # new_password: "New Password" @@ -326,7 +324,6 @@ module.exports = nativeDescription: "मानक हिन्दी", englishDe # more: "More" # wiki: "Wiki" # live_chat: "Live Chat" -# level_publish: "Publish This Level (irreversible)?" # level_some_options: "Some Options?" # level_tab_thangs: "Thangs" # level_tab_scripts: "Scripts" @@ -361,7 +358,7 @@ module.exports = nativeDescription: "मानक हिन्दी", englishDe # thang_search_title: "Search Thang Types Here" # level_search_title: "Search Levels Here" # signup_to_create: "Sign Up to Create a New Content" -# read_only_warning: "Note: you can't save any edits here, because you're not logged in as an admin." +# read_only_warning2: "Note: you can't save any edits here, because you're not logged in." # article: # edit_btn_preview: "Preview" @@ -395,6 +392,7 @@ module.exports = nativeDescription: "मानक हिन्दी", englishDe # easy: "Easy" # medium: "Medium" # hard: "Hard" +# player: "Player" # about: # who_is_codecombat: "Who is CodeCombat?" @@ -599,6 +597,9 @@ module.exports = nativeDescription: "मानक हिन्दी", englishDe # simulate_all: "RESET AND SIMULATE GAMES" # games_simulated_by: "Games simulated by you:" # games_simulated_for: "Games simulated for you:" +# games_simulated: "Games simulated" +# games_played: "Games played" +# ratio: "Ratio" # leaderboard: "Leaderboard" # battle_as: "Battle as " # summary_your: "Your " @@ -663,3 +664,4 @@ module.exports = nativeDescription: "मानक हिन्दी", englishDe # leaderboard: "Leaderboard" # user_schema: "User Schema" # user_profile: "User Profile" +# patches: "Patches" diff --git a/app/locale/hu.coffee b/app/locale/hu.coffee index 3a10608b9..3c4e4f26d 100644 --- a/app/locale/hu.coffee +++ b/app/locale/hu.coffee @@ -6,6 +6,7 @@ module.exports = nativeDescription: "magyar", englishDescription: "Hungarian", t # send: "Send" cancel: "Mégse" save: "Mentés" +# publish: "Publish" # create: "Create" delay_1_sec: "1 másodperc" delay_3_sec: "3 másodperc" @@ -47,9 +48,6 @@ module.exports = nativeDescription: "magyar", englishDescription: "Hungarian", t versions: save_version_title: "Új verzió mentése" new_major_version: "Új főverzió" -# update_break_level: "(Could this update break old solutions of the level?)" -# update_break_component: "(Could this update break anything depending on this Component?)" -# update_break_system: "(Could this update break anything depending on this System?)" cla_prefix: "A módosítások elmentéséhez el kell fogadnod a " cla_url: "CLA" cla_suffix: "tartalmát." @@ -75,6 +73,7 @@ module.exports = nativeDescription: "magyar", englishDescription: "Hungarian", t creating: "Fiók létrehozása" sign_up: "Regisztráció" log_in: "Belépés meglévő fiókkal" +# social_signup: "Or, you can sign up through Facebook or G+:" home: slogan: "Tanulj meg JavaScript nyelven programozni, miközben játszol!" @@ -151,7 +150,6 @@ module.exports = nativeDescription: "magyar", englishDescription: "Hungarian", t wizard_tab: "Varázsló" password_tab: "Jelszó" emails_tab: "Levelek" -# job_profile_tab: "Job Profile" # admin: "Admin" wizard_color: "Varázslód színe" new_password: "Új jelszó" @@ -326,7 +324,6 @@ module.exports = nativeDescription: "magyar", englishDescription: "Hungarian", t # more: "More" # wiki: "Wiki" # live_chat: "Live Chat" -# level_publish: "Publish This Level (irreversible)?" # level_some_options: "Some Options?" # level_tab_thangs: "Thangs" # level_tab_scripts: "Scripts" @@ -361,7 +358,7 @@ module.exports = nativeDescription: "magyar", englishDescription: "Hungarian", t # thang_search_title: "Search Thang Types Here" # level_search_title: "Search Levels Here" # signup_to_create: "Sign Up to Create a New Content" -# read_only_warning: "Note: you can't save any edits here, because you're not logged in as an admin." +# read_only_warning2: "Note: you can't save any edits here, because you're not logged in." # article: # edit_btn_preview: "Preview" @@ -395,6 +392,7 @@ module.exports = nativeDescription: "magyar", englishDescription: "Hungarian", t # easy: "Easy" # medium: "Medium" # hard: "Hard" +# player: "Player" # about: # who_is_codecombat: "Who is CodeCombat?" @@ -599,6 +597,9 @@ module.exports = nativeDescription: "magyar", englishDescription: "Hungarian", t # simulate_all: "RESET AND SIMULATE GAMES" # games_simulated_by: "Games simulated by you:" # games_simulated_for: "Games simulated for you:" +# games_simulated: "Games simulated" +# games_played: "Games played" +# ratio: "Ratio" # leaderboard: "Leaderboard" # battle_as: "Battle as " # summary_your: "Your " @@ -663,3 +664,4 @@ module.exports = nativeDescription: "magyar", englishDescription: "Hungarian", t # leaderboard: "Leaderboard" # user_schema: "User Schema" # user_profile: "User Profile" +# patches: "Patches" diff --git a/app/locale/id.coffee b/app/locale/id.coffee index 949de21a9..cd3042d6b 100644 --- a/app/locale/id.coffee +++ b/app/locale/id.coffee @@ -6,6 +6,7 @@ module.exports = nativeDescription: "Bahasa Indonesia", englishDescription: "Ind # send: "Send" # cancel: "Cancel" # save: "Save" +# publish: "Publish" # create: "Create" # delay_1_sec: "1 second" # delay_3_sec: "3 seconds" @@ -47,9 +48,6 @@ module.exports = nativeDescription: "Bahasa Indonesia", englishDescription: "Ind # versions: # save_version_title: "Save New Version" # new_major_version: "New Major Version" -# update_break_level: "(Could this update break old solutions of the level?)" -# update_break_component: "(Could this update break anything depending on this Component?)" -# update_break_system: "(Could this update break anything depending on this System?)" # cla_prefix: "To save changes, first you must agree to our" # cla_url: "CLA" # cla_suffix: "." @@ -75,6 +73,7 @@ module.exports = nativeDescription: "Bahasa Indonesia", englishDescription: "Ind # creating: "Creating Account..." # sign_up: "Sign Up" # log_in: "log in with password" +# social_signup: "Or, you can sign up through Facebook or G+:" # home: # slogan: "Learn to Code JavaScript by Playing a Game" @@ -151,7 +150,6 @@ module.exports = nativeDescription: "Bahasa Indonesia", englishDescription: "Ind # wizard_tab: "Wizard" # password_tab: "Password" # emails_tab: "Emails" -# job_profile_tab: "Job Profile" # admin: "Admin" # wizard_color: "Wizard Clothes Color" # new_password: "New Password" @@ -326,7 +324,6 @@ module.exports = nativeDescription: "Bahasa Indonesia", englishDescription: "Ind # more: "More" # wiki: "Wiki" # live_chat: "Live Chat" -# level_publish: "Publish This Level (irreversible)?" # level_some_options: "Some Options?" # level_tab_thangs: "Thangs" # level_tab_scripts: "Scripts" @@ -361,7 +358,7 @@ module.exports = nativeDescription: "Bahasa Indonesia", englishDescription: "Ind # thang_search_title: "Search Thang Types Here" # level_search_title: "Search Levels Here" # signup_to_create: "Sign Up to Create a New Content" -# read_only_warning: "Note: you can't save any edits here, because you're not logged in as an admin." +# read_only_warning2: "Note: you can't save any edits here, because you're not logged in." # article: # edit_btn_preview: "Preview" @@ -395,6 +392,7 @@ module.exports = nativeDescription: "Bahasa Indonesia", englishDescription: "Ind # easy: "Easy" # medium: "Medium" # hard: "Hard" +# player: "Player" # about: # who_is_codecombat: "Who is CodeCombat?" @@ -599,6 +597,9 @@ module.exports = nativeDescription: "Bahasa Indonesia", englishDescription: "Ind # simulate_all: "RESET AND SIMULATE GAMES" # games_simulated_by: "Games simulated by you:" # games_simulated_for: "Games simulated for you:" +# games_simulated: "Games simulated" +# games_played: "Games played" +# ratio: "Ratio" # leaderboard: "Leaderboard" # battle_as: "Battle as " # summary_your: "Your " @@ -663,3 +664,4 @@ module.exports = nativeDescription: "Bahasa Indonesia", englishDescription: "Ind # leaderboard: "Leaderboard" # user_schema: "User Schema" # user_profile: "User Profile" +# patches: "Patches" diff --git a/app/locale/it.coffee b/app/locale/it.coffee index c7598577e..ff6d6538f 100644 --- a/app/locale/it.coffee +++ b/app/locale/it.coffee @@ -6,6 +6,7 @@ module.exports = nativeDescription: "Italiano", englishDescription: "Italian", t # send: "Send" cancel: "Annulla" save: "Salva" +# publish: "Publish" # create: "Create" delay_1_sec: "1 secondo" delay_3_sec: "3 secondi" @@ -47,9 +48,6 @@ module.exports = nativeDescription: "Italiano", englishDescription: "Italian", t versions: save_version_title: "Salva nuova versione" new_major_version: "Nuova versione" -# update_break_level: "(Could this update break old solutions of the level?)" -# update_break_component: "(Could this update break anything depending on this Component?)" -# update_break_system: "(Could this update break anything depending on this System?)" cla_prefix: "Per salvare le modifiche, prima devi accettare la nostra " cla_url: "CLA" cla_suffix: "." @@ -75,6 +73,7 @@ module.exports = nativeDescription: "Italiano", englishDescription: "Italian", t creating: "Creazione account..." sign_up: "Registrati" log_in: "Accedi con la password" +# social_signup: "Or, you can sign up through Facebook or G+:" home: slogan: "Impara a programmare in JavaScript giocando" @@ -151,7 +150,6 @@ module.exports = nativeDescription: "Italiano", englishDescription: "Italian", t wizard_tab: "Stregone" password_tab: "Password" emails_tab: "Email" -# job_profile_tab: "Job Profile" admin: "Amministratore" wizard_color: "Colore dei vestiti da Stregone" new_password: "Nuova password" @@ -326,7 +324,6 @@ module.exports = nativeDescription: "Italiano", englishDescription: "Italian", t # more: "More" # wiki: "Wiki" # live_chat: "Live Chat" -# level_publish: "Publish This Level (irreversible)?" level_some_options: "Opzioni??" level_tab_thangs: "Thangs" level_tab_scripts: "Script" @@ -361,7 +358,7 @@ module.exports = nativeDescription: "Italiano", englishDescription: "Italian", t # thang_search_title: "Search Thang Types Here" # level_search_title: "Search Levels Here" # signup_to_create: "Sign Up to Create a New Content" -# read_only_warning: "Note: you can't save any edits here, because you're not logged in as an admin." +# read_only_warning2: "Note: you can't save any edits here, because you're not logged in." article: edit_btn_preview: "Anteprima" @@ -395,6 +392,7 @@ module.exports = nativeDescription: "Italiano", englishDescription: "Italian", t easy: "Facile" medium: "Medio" hard: "Difficile" +# player: "Player" about: who_is_codecombat: "Chi c'è in CodeCombat?" @@ -599,6 +597,9 @@ module.exports = nativeDescription: "Italiano", englishDescription: "Italian", t # simulate_all: "RESET AND SIMULATE GAMES" # games_simulated_by: "Games simulated by you:" # games_simulated_for: "Games simulated for you:" +# games_simulated: "Games simulated" +# games_played: "Games played" +# ratio: "Ratio" # leaderboard: "Leaderboard" # battle_as: "Battle as " # summary_your: "Your " @@ -663,3 +664,4 @@ module.exports = nativeDescription: "Italiano", englishDescription: "Italian", t # leaderboard: "Leaderboard" # user_schema: "User Schema" # user_profile: "User Profile" +# patches: "Patches" diff --git a/app/locale/ja.coffee b/app/locale/ja.coffee index 31da04d92..ae1f09f82 100644 --- a/app/locale/ja.coffee +++ b/app/locale/ja.coffee @@ -6,6 +6,7 @@ module.exports = nativeDescription: "日本語", englishDescription: "Japanese", # send: "Send" cancel: "キャンセル" save: "保存" +# publish: "Publish" # create: "Create" delay_1_sec: "1秒" delay_3_sec: "3秒" @@ -47,9 +48,6 @@ module.exports = nativeDescription: "日本語", englishDescription: "Japanese", versions: save_version_title: "新しいバージョンを保存" new_major_version: "メジャーバージョンを新しくする" -# update_break_level: "(Could this update break old solutions of the level?)" -# update_break_component: "(Could this update break anything depending on this Component?)" -# update_break_system: "(Could this update break anything depending on this System?)" cla_prefix: "変更を適用するには, 私達のCLAに同意する必要があります。" # cla_url: "CLA" # cla_suffix: "." @@ -75,6 +73,7 @@ module.exports = nativeDescription: "日本語", englishDescription: "Japanese", creating: "アカウントを作成しています..." sign_up: "アカウント登録" log_in: "パスワードでログイン" +# social_signup: "Or, you can sign up through Facebook or G+:" home: slogan: "ゲームをプレイしてJavaScriptを学びましょう" @@ -151,7 +150,6 @@ module.exports = nativeDescription: "日本語", englishDescription: "Japanese", wizard_tab: "魔法使い" password_tab: "パスワード" emails_tab: "メール" -# job_profile_tab: "Job Profile" # admin: "Admin" wizard_color: "ウィザードの色" new_password: "新パスワード" @@ -326,7 +324,6 @@ module.exports = nativeDescription: "日本語", englishDescription: "Japanese", # more: "More" # wiki: "Wiki" # live_chat: "Live Chat" -# level_publish: "Publish This Level (irreversible)?" # level_some_options: "Some Options?" # level_tab_thangs: "Thangs" # level_tab_scripts: "Scripts" @@ -361,7 +358,7 @@ module.exports = nativeDescription: "日本語", englishDescription: "Japanese", # thang_search_title: "Search Thang Types Here" # level_search_title: "Search Levels Here" # signup_to_create: "Sign Up to Create a New Content" -# read_only_warning: "Note: you can't save any edits here, because you're not logged in as an admin." +# read_only_warning2: "Note: you can't save any edits here, because you're not logged in." # article: # edit_btn_preview: "Preview" @@ -395,6 +392,7 @@ module.exports = nativeDescription: "日本語", englishDescription: "Japanese", # easy: "Easy" # medium: "Medium" # hard: "Hard" +# player: "Player" # about: # who_is_codecombat: "Who is CodeCombat?" @@ -599,6 +597,9 @@ module.exports = nativeDescription: "日本語", englishDescription: "Japanese", # simulate_all: "RESET AND SIMULATE GAMES" # games_simulated_by: "Games simulated by you:" # games_simulated_for: "Games simulated for you:" +# games_simulated: "Games simulated" +# games_played: "Games played" +# ratio: "Ratio" # leaderboard: "Leaderboard" # battle_as: "Battle as " # summary_your: "Your " @@ -663,3 +664,4 @@ module.exports = nativeDescription: "日本語", englishDescription: "Japanese", # leaderboard: "Leaderboard" # user_schema: "User Schema" # user_profile: "User Profile" +# patches: "Patches" diff --git a/app/locale/ko.coffee b/app/locale/ko.coffee index cc318f9f5..14ff1c91a 100644 --- a/app/locale/ko.coffee +++ b/app/locale/ko.coffee @@ -6,6 +6,7 @@ module.exports = nativeDescription: "한국어", englishDescription: "Korean", t # send: "Send" cancel: "취소" save: "저장" +# publish: "Publish" # create: "Create" delay_1_sec: "1초" delay_3_sec: "3초" @@ -47,9 +48,6 @@ module.exports = nativeDescription: "한국어", englishDescription: "Korean", t versions: save_version_title: "새로운 버전을 저장합니다" new_major_version: "신규 버전" -# update_break_level: "(Could this update break old solutions of the level?)" -# update_break_component: "(Could this update break anything depending on this Component?)" -# update_break_system: "(Could this update break anything depending on this System?)" cla_prefix: "변경사항을 저장하기 위해서는, 먼저 계약사항에 동의 하셔야 합니다." cla_url: "CLA" cla_suffix: "." @@ -75,6 +73,7 @@ module.exports = nativeDescription: "한국어", englishDescription: "Korean", t creating: "계정을 생성 중입니다..." sign_up: "등록" log_in: "비밀번호로 로그인" +# social_signup: "Or, you can sign up through Facebook or G+:" home: slogan: "쉽고 간단한 게임으로 자바스크립트 배우기" @@ -151,7 +150,6 @@ module.exports = nativeDescription: "한국어", englishDescription: "Korean", t wizard_tab: "마법사" password_tab: "비밀번호" emails_tab: "이메일" -# job_profile_tab: "Job Profile" admin: "관리자" wizard_color: "마법사 옷 색깔" new_password: "새 비밀번호" @@ -326,7 +324,6 @@ module.exports = nativeDescription: "한국어", englishDescription: "Korean", t # more: "More" # wiki: "Wiki" # live_chat: "Live Chat" -# level_publish: "Publish This Level (irreversible)?" level_some_options: "다른 옵션들?" level_tab_thangs: "Thangs" level_tab_scripts: "스크립트들" @@ -361,7 +358,7 @@ module.exports = nativeDescription: "한국어", englishDescription: "Korean", t thang_search_title: "Thang 타입들은 여기에서 찾으세요" level_search_title: "레벨들은 여기에서 찾으세요" # signup_to_create: "Sign Up to Create a New Content" -# read_only_warning: "Note: you can't save any edits here, because you're not logged in as an admin." +# read_only_warning2: "Note: you can't save any edits here, because you're not logged in." article: edit_btn_preview: "미리보기" @@ -395,6 +392,7 @@ module.exports = nativeDescription: "한국어", englishDescription: "Korean", t easy: "초급" medium: "중급" hard: "상급" +# player: "Player" about: who_is_codecombat: "코드컴뱃은 누구인가?" @@ -599,6 +597,9 @@ module.exports = nativeDescription: "한국어", englishDescription: "Korean", t # simulate_all: "RESET AND SIMULATE GAMES" # games_simulated_by: "Games simulated by you:" # games_simulated_for: "Games simulated for you:" +# games_simulated: "Games simulated" +# games_played: "Games played" +# ratio: "Ratio" # leaderboard: "Leaderboard" # battle_as: "Battle as " # summary_your: "Your " @@ -663,3 +664,4 @@ module.exports = nativeDescription: "한국어", englishDescription: "Korean", t # leaderboard: "Leaderboard" # user_schema: "User Schema" # user_profile: "User Profile" +# patches: "Patches" diff --git a/app/locale/lt.coffee b/app/locale/lt.coffee index 2e685fa50..7adb4bcff 100644 --- a/app/locale/lt.coffee +++ b/app/locale/lt.coffee @@ -6,6 +6,7 @@ module.exports = nativeDescription: "lietuvių kalba", englishDescription: "Lith # send: "Send" # cancel: "Cancel" # save: "Save" +# publish: "Publish" # create: "Create" # delay_1_sec: "1 second" # delay_3_sec: "3 seconds" @@ -47,9 +48,6 @@ module.exports = nativeDescription: "lietuvių kalba", englishDescription: "Lith # versions: # save_version_title: "Save New Version" # new_major_version: "New Major Version" -# update_break_level: "(Could this update break old solutions of the level?)" -# update_break_component: "(Could this update break anything depending on this Component?)" -# update_break_system: "(Could this update break anything depending on this System?)" # cla_prefix: "To save changes, first you must agree to our" # cla_url: "CLA" # cla_suffix: "." @@ -75,6 +73,7 @@ module.exports = nativeDescription: "lietuvių kalba", englishDescription: "Lith # creating: "Creating Account..." # sign_up: "Sign Up" # log_in: "log in with password" +# social_signup: "Or, you can sign up through Facebook or G+:" # home: # slogan: "Learn to Code JavaScript by Playing a Game" @@ -151,7 +150,6 @@ module.exports = nativeDescription: "lietuvių kalba", englishDescription: "Lith # wizard_tab: "Wizard" # password_tab: "Password" # emails_tab: "Emails" -# job_profile_tab: "Job Profile" # admin: "Admin" # wizard_color: "Wizard Clothes Color" # new_password: "New Password" @@ -326,7 +324,6 @@ module.exports = nativeDescription: "lietuvių kalba", englishDescription: "Lith # more: "More" # wiki: "Wiki" # live_chat: "Live Chat" -# level_publish: "Publish This Level (irreversible)?" # level_some_options: "Some Options?" # level_tab_thangs: "Thangs" # level_tab_scripts: "Scripts" @@ -361,7 +358,7 @@ module.exports = nativeDescription: "lietuvių kalba", englishDescription: "Lith # thang_search_title: "Search Thang Types Here" # level_search_title: "Search Levels Here" # signup_to_create: "Sign Up to Create a New Content" -# read_only_warning: "Note: you can't save any edits here, because you're not logged in as an admin." +# read_only_warning2: "Note: you can't save any edits here, because you're not logged in." # article: # edit_btn_preview: "Preview" @@ -395,6 +392,7 @@ module.exports = nativeDescription: "lietuvių kalba", englishDescription: "Lith # easy: "Easy" # medium: "Medium" # hard: "Hard" +# player: "Player" # about: # who_is_codecombat: "Who is CodeCombat?" @@ -599,6 +597,9 @@ module.exports = nativeDescription: "lietuvių kalba", englishDescription: "Lith # simulate_all: "RESET AND SIMULATE GAMES" # games_simulated_by: "Games simulated by you:" # games_simulated_for: "Games simulated for you:" +# games_simulated: "Games simulated" +# games_played: "Games played" +# ratio: "Ratio" # leaderboard: "Leaderboard" # battle_as: "Battle as " # summary_your: "Your " @@ -663,3 +664,4 @@ module.exports = nativeDescription: "lietuvių kalba", englishDescription: "Lith # leaderboard: "Leaderboard" # user_schema: "User Schema" # user_profile: "User Profile" +# patches: "Patches" diff --git a/app/locale/ms.coffee b/app/locale/ms.coffee index ecb324a61..939ff25ce 100644 --- a/app/locale/ms.coffee +++ b/app/locale/ms.coffee @@ -6,6 +6,7 @@ module.exports = nativeDescription: "Bahasa Melayu", englishDescription: "Bahasa # send: "Send" cancel: "Batal" save: "Simpan data" +# publish: "Publish" # create: "Create" # delay_1_sec: "1 second" # delay_3_sec: "3 seconds" @@ -47,9 +48,6 @@ module.exports = nativeDescription: "Bahasa Melayu", englishDescription: "Bahasa versions: save_version_title: "Simpan versi baru" new_major_version: "Versi utama yang baru" -# update_break_level: "(Could this update break old solutions of the level?)" -# update_break_component: "(Could this update break anything depending on this Component?)" -# update_break_system: "(Could this update break anything depending on this System?)" cla_prefix: "Untuk menyimpan pengubahsuaian, anda perlu setuju dengan" # cla_url: "CLA" # cla_suffix: "." @@ -75,6 +73,7 @@ module.exports = nativeDescription: "Bahasa Melayu", englishDescription: "Bahasa creating: "Sedang membuat Akaun..." sign_up: "Daftar" log_in: "Log Masuk" +# social_signup: "Or, you can sign up through Facebook or G+:" home: slogan: "Belajar Kod JavaScript Dengan Permainan" @@ -151,7 +150,6 @@ module.exports = nativeDescription: "Bahasa Melayu", englishDescription: "Bahasa # wizard_tab: "Wizard" password_tab: "Kata-laluan" emails_tab: "Kesemua E-mel" -# job_profile_tab: "Job Profile" # admin: "Admin" # wizard_color: "Wizard Clothes Color" new_password: "Kata-laluan baru" @@ -326,7 +324,6 @@ module.exports = nativeDescription: "Bahasa Melayu", englishDescription: "Bahasa # more: "More" # wiki: "Wiki" # live_chat: "Live Chat" -# level_publish: "Publish This Level (irreversible)?" # level_some_options: "Some Options?" # level_tab_thangs: "Thangs" # level_tab_scripts: "Scripts" @@ -361,7 +358,7 @@ module.exports = nativeDescription: "Bahasa Melayu", englishDescription: "Bahasa # thang_search_title: "Search Thang Types Here" # level_search_title: "Search Levels Here" # signup_to_create: "Sign Up to Create a New Content" -# read_only_warning: "Note: you can't save any edits here, because you're not logged in as an admin." +# read_only_warning2: "Note: you can't save any edits here, because you're not logged in." # article: # edit_btn_preview: "Preview" @@ -395,6 +392,7 @@ module.exports = nativeDescription: "Bahasa Melayu", englishDescription: "Bahasa # easy: "Easy" # medium: "Medium" # hard: "Hard" +# player: "Player" about: who_is_codecombat: "Siapa adalah CodeCombat?" @@ -599,6 +597,9 @@ module.exports = nativeDescription: "Bahasa Melayu", englishDescription: "Bahasa # simulate_all: "RESET AND SIMULATE GAMES" # games_simulated_by: "Games simulated by you:" # games_simulated_for: "Games simulated for you:" +# games_simulated: "Games simulated" +# games_played: "Games played" +# ratio: "Ratio" # leaderboard: "Leaderboard" # battle_as: "Battle as " # summary_your: "Your " @@ -663,3 +664,4 @@ module.exports = nativeDescription: "Bahasa Melayu", englishDescription: "Bahasa # leaderboard: "Leaderboard" # user_schema: "User Schema" # user_profile: "User Profile" +# patches: "Patches" diff --git a/app/locale/nb.coffee b/app/locale/nb.coffee index 22a81f4e4..81d8d0a50 100644 --- a/app/locale/nb.coffee +++ b/app/locale/nb.coffee @@ -6,6 +6,7 @@ module.exports = nativeDescription: "Norsk Bokmål", englishDescription: "Norweg # send: "Send" cancel: "Avbryt" # save: "Save" +# publish: "Publish" # create: "Create" delay_1_sec: "1 sekunder" delay_3_sec: "3 sekunder" @@ -47,9 +48,6 @@ module.exports = nativeDescription: "Norsk Bokmål", englishDescription: "Norweg # versions: # save_version_title: "Save New Version" # new_major_version: "New Major Version" -# update_break_level: "(Could this update break old solutions of the level?)" -# update_break_component: "(Could this update break anything depending on this Component?)" -# update_break_system: "(Could this update break anything depending on this System?)" # cla_prefix: "To save changes, first you must agree to our" # cla_url: "CLA" # cla_suffix: "." @@ -75,6 +73,7 @@ module.exports = nativeDescription: "Norsk Bokmål", englishDescription: "Norweg creating: "Oppretter Konto..." sign_up: "Registrer deg" log_in: "logg inn med passord" +# social_signup: "Or, you can sign up through Facebook or G+:" home: slogan: "Lær å Kode JavaScript ved å Spille et Spill" @@ -151,7 +150,6 @@ module.exports = nativeDescription: "Norsk Bokmål", englishDescription: "Norweg wizard_tab: "Trollmann" password_tab: "Passord" emails_tab: "Epost" -# job_profile_tab: "Job Profile" # admin: "Admin" wizard_color: "Farge på Trollmannens Klær" new_password: "Nytt Passord" @@ -326,7 +324,6 @@ module.exports = nativeDescription: "Norsk Bokmål", englishDescription: "Norweg # more: "More" # wiki: "Wiki" # live_chat: "Live Chat" -# level_publish: "Publish This Level (irreversible)?" # level_some_options: "Some Options?" # level_tab_thangs: "Thangs" # level_tab_scripts: "Scripts" @@ -361,7 +358,7 @@ module.exports = nativeDescription: "Norsk Bokmål", englishDescription: "Norweg # thang_search_title: "Search Thang Types Here" # level_search_title: "Search Levels Here" # signup_to_create: "Sign Up to Create a New Content" -# read_only_warning: "Note: you can't save any edits here, because you're not logged in as an admin." +# read_only_warning2: "Note: you can't save any edits here, because you're not logged in." # article: # edit_btn_preview: "Preview" @@ -395,6 +392,7 @@ module.exports = nativeDescription: "Norsk Bokmål", englishDescription: "Norweg # easy: "Easy" # medium: "Medium" # hard: "Hard" +# player: "Player" # about: # who_is_codecombat: "Who is CodeCombat?" @@ -599,6 +597,9 @@ module.exports = nativeDescription: "Norsk Bokmål", englishDescription: "Norweg # simulate_all: "RESET AND SIMULATE GAMES" # games_simulated_by: "Games simulated by you:" # games_simulated_for: "Games simulated for you:" +# games_simulated: "Games simulated" +# games_played: "Games played" +# ratio: "Ratio" # leaderboard: "Leaderboard" # battle_as: "Battle as " # summary_your: "Your " @@ -663,3 +664,4 @@ module.exports = nativeDescription: "Norsk Bokmål", englishDescription: "Norweg # leaderboard: "Leaderboard" # user_schema: "User Schema" # user_profile: "User Profile" +# patches: "Patches" diff --git a/app/locale/nl-BE.coffee b/app/locale/nl-BE.coffee index 62d86f07f..1044f496b 100644 --- a/app/locale/nl-BE.coffee +++ b/app/locale/nl-BE.coffee @@ -3,9 +3,10 @@ module.exports = nativeDescription: "Nederlands (België)", englishDescription: loading: "Aan het laden..." saving: "Opslaan..." sending: "Verzenden..." -# send: "Send" + send: "Verzend" cancel: "Annuleren" save: "Opslagen" +# publish: "Publish" create: "Creëer" delay_1_sec: "1 seconde" delay_3_sec: "3 secondes" @@ -47,9 +48,6 @@ module.exports = nativeDescription: "Nederlands (België)", englishDescription: versions: save_version_title: "Nieuwe versie opslagen" new_major_version: "Nieuwe hoofd versie" -# update_break_level: "(Could this update break old solutions of the level?)" -# update_break_component: "(Could this update break anything depending on this Component?)" -# update_break_system: "(Could this update break anything depending on this System?)" cla_prefix: "Om bewerkingen op te slaan, moet je eerst akkoord gaan met onze" cla_url: "CLA" cla_suffix: "." @@ -75,6 +73,7 @@ module.exports = nativeDescription: "Nederlands (België)", englishDescription: creating: "Account aanmaken..." sign_up: "Aanmelden" log_in: "inloggen met wachtwoord" +# social_signup: "Or, you can sign up through Facebook or G+:" home: slogan: "Leer programmeren in JavaScript door het spelen van een spel" @@ -115,8 +114,8 @@ module.exports = nativeDescription: "Nederlands (België)", englishDescription: forum_page: "ons forum" forum_suffix: "." send: "Feedback Verzonden" -# contact_candidate: "Contact Candidate" -# recruitment_reminder: "Use this form to reach out to candidates you are interested in interviewing. Remember that CodeCombat charges 18% of first-year salary. The fee is due upon hiring the employee and is refundable for 90 days if the employee does not remain employed. Part time, remote, and contract employees are free, as are interns." + contact_candidate: "Contacteer Kandidaat" + recruitment_reminder: "Gebruik dit formulier om kandidaten te contacteren voor wie je een interesse hebt om te interviewen. Vergeet niet dat CodeCombat een honorarium vraagt van 18% op het eerste-jaarssalaris. Dit honorarium moet betaald worden als de kandidaat wordt aangenomen en kon tot na 90 dagen terugbetaald worden als deze ontslagen wordt in deze periode. Deeltijds-, contract- en thuiswerkers worden van dit honorarium vrijgesteld, alsook interims." diplomat_suggestion: title: "Help CodeCombat vertalen!" @@ -129,13 +128,13 @@ module.exports = nativeDescription: "Nederlands (België)", englishDescription: wizard_settings: title: "Tovenaar instellingen" customize_avatar: "Bewerk je avatar" -# active: "Active" -# color: "Color" -# group: "Group" + active: "Actief" + color: "Kleur" + group: "Groep" clothes: "Kleren" trim: "Trim" cloud: "Wolk" -# team: "Team" + team: "Team" spell: "Spreuk" boots: "Laarzen" hue: "Hue" @@ -168,37 +167,37 @@ module.exports = nativeDescription: "Nederlands (België)", englishDescription: error_saving: "Fout Tijdens Het Opslaan" saved: "Aanpassingen Opgeslagen" password_mismatch: "Het wachtwoord komt niet overeen." -# job_profile: "Job Profile" -# job_profile_approved: "Your job profile has been approved by CodeCombat. Employers will be able to see it until you either mark it inactive or it has not been changed for four weeks." -# job_profile_explanation: "Hi! Fill this out, and we will get in touch about finding you a software developer job." + job_profile: "Job Profiel" + job_profile_approved: "Jouw job profiel werd goedgekeurd door CodeCombat. Werkgevers zullen het kunnen bekijken totdat je het inactief zet of als er geen verandering in komt voor vier weken." + job_profile_explanation: "Hey! Vul dit in en we zullen je contacteren om je een job als softwareontwikkelaar te helpen vinden." account_profile: edit_settings: "Instellingen Aanpassen" profile_for_prefix: "Profiel voor " profile_for_suffix: "" -# approved: "Approved" -# not_approved: "Not Approved" -# looking_for: "Looking for:" -# last_updated: "Last updated:" -# contact: "Contact" -# work_experience: "Work Experience" -# education: "Education" -# our_notes: "Our Notes" -# projects: "Projects" + approved: "Goedgekeurd" + not_approved: "Niet goedgekeurd" + looking_for: "Zoekt naar:" + last_updated: "Laatst aangepast:" + contact: "Contact" + work_experience: "Werk ervaring" + education: "Opleiding" + our_notes: "Onze notities" + projects: "Projecten" -# employers: -# want_to_hire_our_players: "Want to hire expert CodeCombat players?" -# contact_george: "Contact George to see our candidates" -# candidates_count_prefix: "We currently have " -# candidates_count_many: "many" -# candidates_count_suffix: "highly skilled and vetted developers looking for work." -# candidate_name: "Name" -# candidate_location: "Location" -# candidate_looking_for: "Looking For" -# candidate_role: "Role" -# candidate_top_skills: "Top Skills" -# candidate_years_experience: "Yrs Exp" -# candidate_last_updated: "Last Updated" + employers: + want_to_hire_our_players: "Wil je expert CodeCombat spelers aanwerven? " + contact_george: "Contacteer George om onze kandidaten te zien" + candidates_count_prefix: "Momenteel hebben we " + candidates_count_many: "veel" + candidates_count_suffix: "zeer getalenteerde en ervaren ontwikkelaars die werk zoeken." + candidate_name: "Naam" + candidate_location: "Locatie" + candidate_looking_for: "Zoekt naar" + candidate_role: "Rol" + candidate_top_skills: "Beste vaardigheden" + candidate_years_experience: "Jaren ervaring" + candidate_last_updated: "Laatst aangepast" play_level: level_load_error: "Level kon niet geladen worden: " @@ -317,15 +316,14 @@ module.exports = nativeDescription: "Nederlands (België)", englishDescription: contact_us: "contacteer ons!" hipchat_prefix: "Je kan ons ook vinden in ons" hipchat_url: "(Engelstalig) HipChat kanaal." -# back: "Back" + back: "Terug" revert: "Keer wijziging terug" revert_models: "keer wijziging model terug" -# fork_title: "Fork New Version" -# fork_creating: "Creating Fork..." -# more: "More" -# wiki: "Wiki" -# live_chat: "Live Chat" -# level_publish: "Publish This Level (irreversible)?" + fork_title: "Kloon naar nieuwe versie" + fork_creating: "Kloon aanmaken..." + more: "Meer" + wiki: "Wiki" + live_chat: "Live Chat" level_some_options: "Enkele opties?" level_tab_thangs: "Elementen" level_tab_scripts: "Scripts" @@ -333,11 +331,11 @@ module.exports = nativeDescription: "Nederlands (België)", englishDescription: level_tab_components: "Componenten" level_tab_systems: "Systemen" level_tab_thangs_title: "Huidige Elementen" -# level_tab_thangs_all: "All" + level_tab_thangs_all: "Alles" level_tab_thangs_conditions: "Start Condities" level_tab_thangs_add: "Voeg element toe" -# delete: "Delete" -# duplicate: "Duplicate" + delete: "Verwijder" + duplicate: "Dupliceer" level_settings_title: "Instellingen" level_component_tab_title: "Huidige Componenten" level_component_btn_new: "Maak een nieuwe component aan" @@ -359,8 +357,8 @@ module.exports = nativeDescription: "Nederlands (België)", englishDescription: article_search_title: "Zoek Artikels Hier" thang_search_title: "Zoek Thang Types Hier" level_search_title: "Zoek Levels Hier" -# signup_to_create: "Sign Up to Create a New Content" - read_only_warning: "Herinnering: Je kunt hier geen aanpassingen opslaan, want je bent niet ingelogd als administrator." + signup_to_create: "Registreer je om nieuwe content te maken" +# read_only_warning2: "Note: you can't save any edits here, because you're not logged in." article: edit_btn_preview: "Voorbeeld" @@ -372,13 +370,13 @@ module.exports = nativeDescription: "Nederlands (België)", englishDescription: body: "Inhoud" version: "Versie" commit_msg: "Commit Bericht" -# version_history: "Version History" + version_history: "Versie geschiedenis" version_history_for: "Versie geschiedenis voor: " result: "Resultaat" results: "Resultaten" description: "Beschrijving" or: "of" -# subject: "Subject" + subject: "Onderwerp" email: "Email" password: "Wachtwoord" message: "Bericht" @@ -394,6 +392,7 @@ module.exports = nativeDescription: "Nederlands (België)", englishDescription: easy: "Gemakkelijk" medium: "Medium" hard: "Moeilijk" +# player: "Player" about: who_is_codecombat: "Wie is CodeCombat?" @@ -598,6 +597,9 @@ module.exports = nativeDescription: "Nederlands (België)", englishDescription: simulate_all: "RESET EN SIMULEER SPELLEN" games_simulated_by: "Door jou gesimuleerde spellen:" games_simulated_for: "Voor jou gesimuleerde spellen:" +# games_simulated: "Games simulated" +# games_played: "Games played" +# ratio: "Ratio" leaderboard: "Leaderboard" battle_as: "Vecht als " summary_your: "Jouw " @@ -660,5 +662,6 @@ module.exports = nativeDescription: "Nederlands (België)", englishDescription: gplus_friends: "G+ vrienden" gplus_friend_sessions: "Sessies van G+ vrienden" leaderboard: "Scorebord" -# user_schema: "User Schema" -# user_profile: "User Profile" + user_schema: "Gebruikersschema" + user_profile: "Gebruikersprofiel" +# patches: "Patches" diff --git a/app/locale/nl-NL.coffee b/app/locale/nl-NL.coffee index 2182cc359..7d6010f42 100644 --- a/app/locale/nl-NL.coffee +++ b/app/locale/nl-NL.coffee @@ -1,11 +1,12 @@ -module.exports = nativeDescription: "Nederlands (Nederland)", englishDescription: "Dutch (Netherlands)", translation: +module.exports = nativeDescription: "Nederlands (Nederland)", englishDescription: "Dutch (Netherlands)", translation: common: loading: "Aan het laden..." saving: "Opslaan..." sending: "Verzenden..." -# send: "Send" + send: "Verzend" cancel: "Annuleren" save: "Opslagen" +# publish: "Publish" create: "Creëer" delay_1_sec: "1 seconde" delay_3_sec: "3 secondes" @@ -47,9 +48,6 @@ versions: save_version_title: "Nieuwe versie opslagen" new_major_version: "Nieuwe hoofd versie" -# update_break_level: "(Could this update break old solutions of the level?)" -# update_break_component: "(Could this update break anything depending on this Component?)" -# update_break_system: "(Could this update break anything depending on this System?)" cla_prefix: "Om bewerkingen op te slaan, moet je eerst akkoord gaan met onze" cla_url: "CLA" cla_suffix: "." @@ -75,6 +73,7 @@ creating: "Account aanmaken..." sign_up: "Aanmelden" log_in: "inloggen met wachtwoord" +# social_signup: "Or, you can sign up through Facebook or G+:" home: slogan: "Leer programmeren in JavaScript door het spelen van een spel" @@ -115,8 +114,8 @@ forum_page: "ons forum" forum_suffix: "." send: "Feedback Verzonden" -# contact_candidate: "Contact Candidate" -# recruitment_reminder: "Use this form to reach out to candidates you are interested in interviewing. Remember that CodeCombat charges 18% of first-year salary. The fee is due upon hiring the employee and is refundable for 90 days if the employee does not remain employed. Part time, remote, and contract employees are free, as are interns." + contact_candidate: "Contacteer Kandidaat" + recruitment_reminder: "Gebruik dit formulier om kandidaten te contacteren voor wie je een interesse hebt om te interviewen. Vergeet niet dat CodeCombat een honorarium vraagt van 18% op het eerste-jaarssalaris. Dit honorarium moet betaald worden als de kandidaat wordt aangenomen en kon tot na 90 dagen terugbetaald worden als deze ontslagen wordt in deze periode. Deeltijds-, contract- en thuiswerkers worden van dit honorarium vrijgesteld, alsook interims." diplomat_suggestion: title: "Help CodeCombat vertalen!" @@ -129,13 +128,13 @@ wizard_settings: title: "Tovenaar instellingen" customize_avatar: "Bewerk je avatar" -# active: "Active" -# color: "Color" -# group: "Group" + active: "Actief" + color: "Kleur" + group: "Groep" clothes: "Kleren" trim: "Trim" cloud: "Wolk" -# team: "Team" + team: "Team" spell: "Spreuk" boots: "Laarzen" hue: "Hue" @@ -168,37 +167,37 @@ error_saving: "Fout Tijdens Het Opslaan" saved: "Aanpassingen Opgeslagen" password_mismatch: "Het wachtwoord komt niet overeen." -# job_profile: "Job Profile" -# job_profile_approved: "Your job profile has been approved by CodeCombat. Employers will be able to see it until you either mark it inactive or it has not been changed for four weeks." -# job_profile_explanation: "Hi! Fill this out, and we will get in touch about finding you a software developer job." + job_profile: "Job Profiel" + job_profile_approved: "Jouw job profiel werd goedgekeurd door CodeCombat. Werkgevers zullen het kunnen bekijken totdat je het inactief zet of als er geen verandering in komt voor vier weken." + job_profile_explanation: "Hey! Vul dit in en we zullen je contacteren om je een job als softwareontwikkelaar te helpen vinden." account_profile: edit_settings: "Instellingen Aanpassen" profile_for_prefix: "Profiel voor " profile_for_suffix: "" -# approved: "Approved" -# not_approved: "Not Approved" -# looking_for: "Looking for:" -# last_updated: "Last updated:" -# contact: "Contact" -# work_experience: "Work Experience" -# education: "Education" -# our_notes: "Our Notes" -# projects: "Projects" + approved: "Goedgekeurd" + not_approved: "Niet goedgekeurd" + looking_for: "Zoekt naar:" + last_updated: "Laatst aangepast:" + contact: "Contact" + work_experience: "Werk ervaring" + education: "Opleiding" + our_notes: "Onze notities" + projects: "Projecten" -# employers: -# want_to_hire_our_players: "Want to hire expert CodeCombat players?" -# contact_george: "Contact George to see our candidates" -# candidates_count_prefix: "We currently have " -# candidates_count_many: "many" -# candidates_count_suffix: "highly skilled and vetted developers looking for work." -# candidate_name: "Name" -# candidate_location: "Location" -# candidate_looking_for: "Looking For" -# candidate_role: "Role" -# candidate_top_skills: "Top Skills" -# candidate_years_experience: "Yrs Exp" -# candidate_last_updated: "Last Updated" + employers: + want_to_hire_our_players: "Wil je expert CodeCombat spelers aanwerven? " + contact_george: "Contacteer George om onze kandidaten te zien" + candidates_count_prefix: "Momenteel hebben we " + candidates_count_many: "veel" + candidates_count_suffix: "zeer getalenteerde en ervaren ontwikkelaars die werk zoeken." + candidate_name: "Naam" + candidate_location: "Locatie" + candidate_looking_for: "Zoekt naar" + candidate_role: "Rol" + candidate_top_skills: "Beste vaardigheden" + candidate_years_experience: "Jaren ervaring" + candidate_last_updated: "Laatst aangepast" play_level: level_load_error: "Level kon niet geladen worden: " @@ -317,15 +316,14 @@ contact_us: "contacteer ons!" hipchat_prefix: "Je kan ons ook vinden in ons" hipchat_url: "(Engelstalig) HipChat kanaal." -# back: "Back" + back: "Terug" revert: "Keer wijziging terug" revert_models: "keer wijziging model terug" -# fork_title: "Fork New Version" -# fork_creating: "Creating Fork..." -# more: "More" -# wiki: "Wiki" -# live_chat: "Live Chat" -# level_publish: "Publish This Level (irreversible)?" + fork_title: "Kloon naar nieuwe versie" + fork_creating: "Kloon aanmaken..." + more: "Meer" + wiki: "Wiki" + live_chat: "Live Chat" level_some_options: "Enkele opties?" level_tab_thangs: "Elementen" level_tab_scripts: "Scripts" @@ -333,11 +331,11 @@ level_tab_components: "Componenten" level_tab_systems: "Systemen" level_tab_thangs_title: "Huidige Elementen" -# level_tab_thangs_all: "All" + level_tab_thangs_all: "Alles" level_tab_thangs_conditions: "Start Condities" level_tab_thangs_add: "Voeg element toe" -# delete: "Delete" -# duplicate: "Duplicate" + delete: "Verwijder" + duplicate: "Dupliceer" level_settings_title: "Instellingen" level_component_tab_title: "Huidige Componenten" level_component_btn_new: "Maak een nieuwe component aan" @@ -359,8 +357,8 @@ article_search_title: "Zoek Artikels Hier" thang_search_title: "Zoek Thang Types Hier" level_search_title: "Zoek Levels Hier" -# signup_to_create: "Sign Up to Create a New Content" -# read_only_warning: "Herinnering: Je kunt hier geen aanpassingen opslaan, want je bent niet ingelogd als administrator." + signup_to_create: "Registreer je om nieuwe content te maken" + read_only_warning: "Herinnering: Je kunt hier geen aanpassingen opslaan, want je bent niet ingelogd als administrator." article: edit_btn_preview: "Voorbeeld" @@ -372,13 +370,13 @@ body: "Inhoud" version: "Versie" commit_msg: "Commit Bericht" -# version_history: "Version History" + version_history: "Versie geschiedenis" version_history_for: "Versie geschiedenis voor: " result: "Resultaat" results: "Resultaten" description: "Beschrijving" or: "of" -# subject: "Subject" + subject: "Onderwerp" email: "Email" password: "Wachtwoord" message: "Bericht" @@ -394,6 +392,7 @@ easy: "Gemakkelijk" medium: "Medium" hard: "Moeilijk" +# player: "Player" about: who_is_codecombat: "Wie is CodeCombat?" @@ -598,6 +597,9 @@ simulate_all: "RESET EN SIMULEER SPELLEN" games_simulated_by: "Door jou gesimuleerde spellen:" games_simulated_for: "Voor jou gesimuleerde spellen:" +# games_simulated: "Games simulated" +# games_played: "Games played" +# ratio: "Ratio" leaderboard: "Leaderboard" battle_as: "Vecht als " summary_your: "Jouw " @@ -660,5 +662,6 @@ gplus_friends: "G+ vrienden" gplus_friend_sessions: "Sessies van G+ vrienden" leaderboard: "Scorebord" -# user_schema: "User Schema" -# user_profile: "User Profile" + user_schema: "Gebruikersschema" + user_profile: "Gebruikersprofiel" +# patches: "Patches" diff --git a/app/locale/nl.coffee b/app/locale/nl.coffee index 5f890ed8d..74b2764fe 100644 --- a/app/locale/nl.coffee +++ b/app/locale/nl.coffee @@ -3,9 +3,10 @@ module.exports = nativeDescription: "Nederlands", englishDescription: "Dutch", t loading: "Aan het laden..." saving: "Opslaan..." sending: "Verzenden..." -# send: "Send" + send: "Verzend" cancel: "Annuleren" save: "Opslagen" +# publish: "Publish" create: "Creëer" delay_1_sec: "1 seconde" delay_3_sec: "3 secondes" @@ -47,9 +48,6 @@ module.exports = nativeDescription: "Nederlands", englishDescription: "Dutch", t versions: save_version_title: "Nieuwe versie opslagen" new_major_version: "Nieuwe hoofd versie" -# update_break_level: "(Could this update break old solutions of the level?)" -# update_break_component: "(Could this update break anything depending on this Component?)" -# update_break_system: "(Could this update break anything depending on this System?)" cla_prefix: "Om bewerkingen op te slaan, moet je eerst akkoord gaan met onze" cla_url: "CLA" cla_suffix: "." @@ -75,6 +73,7 @@ module.exports = nativeDescription: "Nederlands", englishDescription: "Dutch", t creating: "Account aanmaken..." sign_up: "Aanmelden" log_in: "inloggen met wachtwoord" +# social_signup: "Or, you can sign up through Facebook or G+:" home: slogan: "Leer programmeren in JavaScript door het spelen van een spel" @@ -115,8 +114,8 @@ module.exports = nativeDescription: "Nederlands", englishDescription: "Dutch", t forum_page: "ons forum" forum_suffix: "." send: "Feedback Verzonden" -# contact_candidate: "Contact Candidate" -# recruitment_reminder: "Use this form to reach out to candidates you are interested in interviewing. Remember that CodeCombat charges 18% of first-year salary. The fee is due upon hiring the employee and is refundable for 90 days if the employee does not remain employed. Part time, remote, and contract employees are free, as are interns." + contact_candidate: "Contacteer Kandidaat" + recruitment_reminder: "Gebruik dit formulier om kandidaten te contacteren voor wie je een interesse hebt om te interviewen. Vergeet niet dat CodeCombat een honorarium vraagt van 18% op het eerste-jaarssalaris. Dit honorarium moet betaald worden als de kandidaat wordt aangenomen en kon tot na 90 dagen terugbetaald worden als deze ontslagen wordt in deze periode. Deeltijds-, contract- en thuiswerkers worden van dit honorarium vrijgesteld, alsook interims." diplomat_suggestion: title: "Help CodeCombat vertalen!" @@ -129,13 +128,13 @@ module.exports = nativeDescription: "Nederlands", englishDescription: "Dutch", t wizard_settings: title: "Tovenaar instellingen" customize_avatar: "Bewerk je avatar" -# active: "Active" -# color: "Color" -# group: "Group" + active: "Actief" + color: "Kleur" + group: "Groep" clothes: "Kleren" trim: "Trim" cloud: "Wolk" -# team: "Team" + team: "Team" spell: "Spreuk" boots: "Laarzen" hue: "Hue" @@ -168,37 +167,37 @@ module.exports = nativeDescription: "Nederlands", englishDescription: "Dutch", t error_saving: "Fout Tijdens Het Opslaan" saved: "Aanpassingen Opgeslagen" password_mismatch: "Het wachtwoord komt niet overeen." -# job_profile: "Job Profile" -# job_profile_approved: "Your job profile has been approved by CodeCombat. Employers will be able to see it until you either mark it inactive or it has not been changed for four weeks." -# job_profile_explanation: "Hi! Fill this out, and we will get in touch about finding you a software developer job." + job_profile: "Job Profiel" + job_profile_approved: "Jouw job profiel werd goedgekeurd door CodeCombat. Werkgevers zullen het kunnen bekijken totdat je het inactief zet of als er geen verandering in komt voor vier weken." + job_profile_explanation: "Hey! Vul dit in en we zullen je contacteren om je een job als softwareontwikkelaar te helpen vinden." account_profile: edit_settings: "Instellingen Aanpassen" profile_for_prefix: "Profiel voor " profile_for_suffix: "" -# approved: "Approved" -# not_approved: "Not Approved" -# looking_for: "Looking for:" -# last_updated: "Last updated:" -# contact: "Contact" -# work_experience: "Work Experience" -# education: "Education" -# our_notes: "Our Notes" -# projects: "Projects" + approved: "Goedgekeurd" + not_approved: "Niet goedgekeurd" + looking_for: "Zoekt naar:" + last_updated: "Laatst aangepast:" + contact: "Contact" + work_experience: "Werk ervaring" + education: "Opleiding" + our_notes: "Onze notities" + projects: "Projecten" -# employers: -# want_to_hire_our_players: "Want to hire expert CodeCombat players?" -# contact_george: "Contact George to see our candidates" -# candidates_count_prefix: "We currently have " -# candidates_count_many: "many" -# candidates_count_suffix: "highly skilled and vetted developers looking for work." -# candidate_name: "Name" -# candidate_location: "Location" -# candidate_looking_for: "Looking For" -# candidate_role: "Role" -# candidate_top_skills: "Top Skills" -# candidate_years_experience: "Yrs Exp" -# candidate_last_updated: "Last Updated" + employers: + want_to_hire_our_players: "Wil je expert CodeCombat spelers aanwerven? " + contact_george: "Contacteer George om onze kandidaten te zien" + candidates_count_prefix: "Momenteel hebben we " + candidates_count_many: "veel" + candidates_count_suffix: "zeer getalenteerde en ervaren ontwikkelaars die werk zoeken." + candidate_name: "Naam" + candidate_location: "Locatie" + candidate_looking_for: "Zoekt naar" + candidate_role: "Rol" + candidate_top_skills: "Beste vaardigheden" + candidate_years_experience: "Jaren ervaring" + candidate_last_updated: "Laatst aangepast" play_level: level_load_error: "Level kon niet geladen worden: " @@ -317,15 +316,14 @@ module.exports = nativeDescription: "Nederlands", englishDescription: "Dutch", t contact_us: "contacteer ons!" hipchat_prefix: "Je kan ons ook vinden in ons" hipchat_url: "(Engelstalig) HipChat kanaal." -# back: "Back" + back: "Terug" revert: "Keer wijziging terug" revert_models: "keer wijziging model terug" -# fork_title: "Fork New Version" -# fork_creating: "Creating Fork..." -# more: "More" -# wiki: "Wiki" -# live_chat: "Live Chat" -# level_publish: "Publish This Level (irreversible)?" + fork_title: "Kloon naar nieuwe versie" + fork_creating: "Kloon aanmaken..." + more: "Meer" + wiki: "Wiki" + live_chat: "Live Chat" level_some_options: "Enkele opties?" level_tab_thangs: "Elementen" level_tab_scripts: "Scripts" @@ -333,11 +331,11 @@ module.exports = nativeDescription: "Nederlands", englishDescription: "Dutch", t level_tab_components: "Componenten" level_tab_systems: "Systemen" level_tab_thangs_title: "Huidige Elementen" -# level_tab_thangs_all: "All" + level_tab_thangs_all: "Alles" level_tab_thangs_conditions: "Start Condities" level_tab_thangs_add: "Voeg element toe" -# delete: "Delete" -# duplicate: "Duplicate" + delete: "Verwijder" + duplicate: "Dupliceer" level_settings_title: "Instellingen" level_component_tab_title: "Huidige Componenten" level_component_btn_new: "Maak een nieuwe component aan" @@ -359,8 +357,8 @@ module.exports = nativeDescription: "Nederlands", englishDescription: "Dutch", t article_search_title: "Zoek Artikels Hier" thang_search_title: "Zoek Thang Types Hier" level_search_title: "Zoek Levels Hier" -# signup_to_create: "Sign Up to Create a New Content" - read_only_warning: "Herinnering: Je kunt hier geen aanpassingen opslaan, want je bent niet ingelogd als administrator." + signup_to_create: "Registreer je om nieuwe content te maken" +# read_only_warning2: "Note: you can't save any edits here, because you're not logged in." article: edit_btn_preview: "Voorbeeld" @@ -372,13 +370,13 @@ module.exports = nativeDescription: "Nederlands", englishDescription: "Dutch", t body: "Inhoud" version: "Versie" commit_msg: "Commit Bericht" -# version_history: "Version History" + version_history: "Versie geschiedenis" version_history_for: "Versie geschiedenis voor: " result: "Resultaat" results: "Resultaten" description: "Beschrijving" or: "of" -# subject: "Subject" + subject: "Onderwerp" email: "Email" password: "Wachtwoord" message: "Bericht" @@ -394,6 +392,7 @@ module.exports = nativeDescription: "Nederlands", englishDescription: "Dutch", t easy: "Gemakkelijk" medium: "Medium" hard: "Moeilijk" +# player: "Player" about: who_is_codecombat: "Wie is CodeCombat?" @@ -598,6 +597,9 @@ module.exports = nativeDescription: "Nederlands", englishDescription: "Dutch", t simulate_all: "RESET EN SIMULEER SPELLEN" games_simulated_by: "Door jou gesimuleerde spellen:" games_simulated_for: "Voor jou gesimuleerde spellen:" +# games_simulated: "Games simulated" +# games_played: "Games played" +# ratio: "Ratio" leaderboard: "Leaderboard" battle_as: "Vecht als " summary_your: "Jouw " @@ -660,5 +662,6 @@ module.exports = nativeDescription: "Nederlands", englishDescription: "Dutch", t gplus_friends: "G+ vrienden" gplus_friend_sessions: "Sessies van G+ vrienden" leaderboard: "Scorebord" -# user_schema: "User Schema" -# user_profile: "User Profile" + user_schema: "Gebruikersschema" + user_profile: "Gebruikersprofiel" +# patches: "Patches" diff --git a/app/locale/nn.coffee b/app/locale/nn.coffee index e5d1f651b..4727bb0fb 100644 --- a/app/locale/nn.coffee +++ b/app/locale/nn.coffee @@ -6,6 +6,7 @@ module.exports = nativeDescription: "Norwegian Nynorsk", englishDescription: "No # send: "Send" # cancel: "Cancel" # save: "Save" +# publish: "Publish" # create: "Create" # delay_1_sec: "1 second" # delay_3_sec: "3 seconds" @@ -47,9 +48,6 @@ module.exports = nativeDescription: "Norwegian Nynorsk", englishDescription: "No # versions: # save_version_title: "Save New Version" # new_major_version: "New Major Version" -# update_break_level: "(Could this update break old solutions of the level?)" -# update_break_component: "(Could this update break anything depending on this Component?)" -# update_break_system: "(Could this update break anything depending on this System?)" # cla_prefix: "To save changes, first you must agree to our" # cla_url: "CLA" # cla_suffix: "." @@ -75,6 +73,7 @@ module.exports = nativeDescription: "Norwegian Nynorsk", englishDescription: "No # creating: "Creating Account..." # sign_up: "Sign Up" # log_in: "log in with password" +# social_signup: "Or, you can sign up through Facebook or G+:" # home: # slogan: "Learn to Code JavaScript by Playing a Game" @@ -151,7 +150,6 @@ module.exports = nativeDescription: "Norwegian Nynorsk", englishDescription: "No # wizard_tab: "Wizard" # password_tab: "Password" # emails_tab: "Emails" -# job_profile_tab: "Job Profile" # admin: "Admin" # wizard_color: "Wizard Clothes Color" # new_password: "New Password" @@ -326,7 +324,6 @@ module.exports = nativeDescription: "Norwegian Nynorsk", englishDescription: "No # more: "More" # wiki: "Wiki" # live_chat: "Live Chat" -# level_publish: "Publish This Level (irreversible)?" # level_some_options: "Some Options?" # level_tab_thangs: "Thangs" # level_tab_scripts: "Scripts" @@ -361,7 +358,7 @@ module.exports = nativeDescription: "Norwegian Nynorsk", englishDescription: "No # thang_search_title: "Search Thang Types Here" # level_search_title: "Search Levels Here" # signup_to_create: "Sign Up to Create a New Content" -# read_only_warning: "Note: you can't save any edits here, because you're not logged in as an admin." +# read_only_warning2: "Note: you can't save any edits here, because you're not logged in." # article: # edit_btn_preview: "Preview" @@ -395,6 +392,7 @@ module.exports = nativeDescription: "Norwegian Nynorsk", englishDescription: "No # easy: "Easy" # medium: "Medium" # hard: "Hard" +# player: "Player" # about: # who_is_codecombat: "Who is CodeCombat?" @@ -599,6 +597,9 @@ module.exports = nativeDescription: "Norwegian Nynorsk", englishDescription: "No # simulate_all: "RESET AND SIMULATE GAMES" # games_simulated_by: "Games simulated by you:" # games_simulated_for: "Games simulated for you:" +# games_simulated: "Games simulated" +# games_played: "Games played" +# ratio: "Ratio" # leaderboard: "Leaderboard" # battle_as: "Battle as " # summary_your: "Your " @@ -663,3 +664,4 @@ module.exports = nativeDescription: "Norwegian Nynorsk", englishDescription: "No # leaderboard: "Leaderboard" # user_schema: "User Schema" # user_profile: "User Profile" +# patches: "Patches" diff --git a/app/locale/no.coffee b/app/locale/no.coffee index 37606b74a..ea1d96f30 100644 --- a/app/locale/no.coffee +++ b/app/locale/no.coffee @@ -6,6 +6,7 @@ module.exports = nativeDescription: "Norsk", englishDescription: "Norwegian", tr # send: "Send" cancel: "Avbryt" # save: "Save" +# publish: "Publish" # create: "Create" delay_1_sec: "1 sekunder" delay_3_sec: "3 sekunder" @@ -47,9 +48,6 @@ module.exports = nativeDescription: "Norsk", englishDescription: "Norwegian", tr # versions: # save_version_title: "Save New Version" # new_major_version: "New Major Version" -# update_break_level: "(Could this update break old solutions of the level?)" -# update_break_component: "(Could this update break anything depending on this Component?)" -# update_break_system: "(Could this update break anything depending on this System?)" # cla_prefix: "To save changes, first you must agree to our" # cla_url: "CLA" # cla_suffix: "." @@ -75,6 +73,7 @@ module.exports = nativeDescription: "Norsk", englishDescription: "Norwegian", tr creating: "Oppretter Konto..." sign_up: "Registrer deg" log_in: "logg inn med passord" +# social_signup: "Or, you can sign up through Facebook or G+:" home: slogan: "Lær å Kode JavaScript ved å Spille et Spill" @@ -151,7 +150,6 @@ module.exports = nativeDescription: "Norsk", englishDescription: "Norwegian", tr wizard_tab: "Trollmann" password_tab: "Passord" emails_tab: "Epost" -# job_profile_tab: "Job Profile" # admin: "Admin" wizard_color: "Farge på Trollmannens Klær" new_password: "Nytt Passord" @@ -326,7 +324,6 @@ module.exports = nativeDescription: "Norsk", englishDescription: "Norwegian", tr # more: "More" # wiki: "Wiki" # live_chat: "Live Chat" -# level_publish: "Publish This Level (irreversible)?" # level_some_options: "Some Options?" # level_tab_thangs: "Thangs" # level_tab_scripts: "Scripts" @@ -361,7 +358,7 @@ module.exports = nativeDescription: "Norsk", englishDescription: "Norwegian", tr # thang_search_title: "Search Thang Types Here" # level_search_title: "Search Levels Here" # signup_to_create: "Sign Up to Create a New Content" -# read_only_warning: "Note: you can't save any edits here, because you're not logged in as an admin." +# read_only_warning2: "Note: you can't save any edits here, because you're not logged in." # article: # edit_btn_preview: "Preview" @@ -395,6 +392,7 @@ module.exports = nativeDescription: "Norsk", englishDescription: "Norwegian", tr # easy: "Easy" # medium: "Medium" # hard: "Hard" +# player: "Player" # about: # who_is_codecombat: "Who is CodeCombat?" @@ -599,6 +597,9 @@ module.exports = nativeDescription: "Norsk", englishDescription: "Norwegian", tr # simulate_all: "RESET AND SIMULATE GAMES" # games_simulated_by: "Games simulated by you:" # games_simulated_for: "Games simulated for you:" +# games_simulated: "Games simulated" +# games_played: "Games played" +# ratio: "Ratio" # leaderboard: "Leaderboard" # battle_as: "Battle as " # summary_your: "Your " @@ -663,3 +664,4 @@ module.exports = nativeDescription: "Norsk", englishDescription: "Norwegian", tr # leaderboard: "Leaderboard" # user_schema: "User Schema" # user_profile: "User Profile" +# patches: "Patches" diff --git a/app/locale/pl.coffee b/app/locale/pl.coffee index ca2cce66d..0f7a43299 100644 --- a/app/locale/pl.coffee +++ b/app/locale/pl.coffee @@ -6,6 +6,7 @@ module.exports = nativeDescription: "język polski", englishDescription: "Polish # send: "Send" cancel: "Anuluj" save: "Zapisz" +# publish: "Publish" # create: "Create" delay_1_sec: "1 sekunda" delay_3_sec: "3 sekundy" @@ -47,9 +48,6 @@ module.exports = nativeDescription: "język polski", englishDescription: "Polish versions: save_version_title: "Zapisz nową wersję" new_major_version: "Nowa wersja główna" -# update_break_level: "(Could this update break old solutions of the level?)" -# update_break_component: "(Could this update break anything depending on this Component?)" -# update_break_system: "(Could this update break anything depending on this System?)" cla_prefix: "Aby zapisać zmiany, musisz najpierw zaakceptować naszą" cla_url: "umowę licencyjną dla współtwórców (CLA)" cla_suffix: "." @@ -75,6 +73,7 @@ module.exports = nativeDescription: "język polski", englishDescription: "Polish creating: "Tworzenie konta..." sign_up: "Zarejestruj" log_in: "zaloguj się używając hasła" +# social_signup: "Or, you can sign up through Facebook or G+:" home: slogan: "Naucz się JavaScript grając" @@ -151,7 +150,6 @@ module.exports = nativeDescription: "język polski", englishDescription: "Polish wizard_tab: "Czarodziej" password_tab: "Hasło" emails_tab: "Powiadomienia" -# job_profile_tab: "Job Profile" admin: "Administrator" wizard_color: "Kolor ubrań czarodzieja" new_password: "Nowe hasło" @@ -326,7 +324,6 @@ module.exports = nativeDescription: "język polski", englishDescription: "Polish # more: "More" # wiki: "Wiki" # live_chat: "Live Chat" -# level_publish: "Publish This Level (irreversible)?" level_some_options: "Trochę opcji?" level_tab_thangs: "Obiekty" level_tab_scripts: "Skrypty" @@ -361,7 +358,7 @@ module.exports = nativeDescription: "język polski", englishDescription: "Polish thang_search_title: "Przeszukaj typy obiektów" level_search_title: "Przeszukaj poziomy" # signup_to_create: "Sign Up to Create a New Content" -# read_only_warning: "Note: you can't save any edits here, because you're not logged in as an admin." +# read_only_warning2: "Note: you can't save any edits here, because you're not logged in." article: edit_btn_preview: "Podgląd" @@ -395,6 +392,7 @@ module.exports = nativeDescription: "język polski", englishDescription: "Polish easy: "Łatwy" medium: "Średni" hard: "Trudny" +# player: "Player" about: who_is_codecombat: "Czym jest CodeCombat?" @@ -599,6 +597,9 @@ module.exports = nativeDescription: "język polski", englishDescription: "Polish simulate_all: "RESETUJ I SYMULUJ GRY" # games_simulated_by: "Games simulated by you:" # games_simulated_for: "Games simulated for you:" +# games_simulated: "Games simulated" +# games_played: "Games played" +# ratio: "Ratio" leaderboard: "Tabela rankingowa" battle_as: "Walcz jako " summary_your: "Twój " @@ -663,3 +664,4 @@ module.exports = nativeDescription: "język polski", englishDescription: "Polish # leaderboard: "Leaderboard" # user_schema: "User Schema" # user_profile: "User Profile" +# patches: "Patches" diff --git a/app/locale/pt-BR.coffee b/app/locale/pt-BR.coffee index 6994e239a..f94918ab1 100644 --- a/app/locale/pt-BR.coffee +++ b/app/locale/pt-BR.coffee @@ -6,6 +6,7 @@ module.exports = nativeDescription: "português do Brasil", englishDescription: # send: "Send" cancel: "Cancelar" save: "Salvar" +# publish: "Publish" create: "Criar" delay_1_sec: "1 segundo" delay_3_sec: "3 segundos" @@ -47,9 +48,6 @@ module.exports = nativeDescription: "português do Brasil", englishDescription: versions: save_version_title: "Salvar nova versão" new_major_version: "Nova versão principal" -# update_break_level: "(Could this update break old solutions of the level?)" -# update_break_component: "(Could this update break anything depending on this Component?)" -# update_break_system: "(Could this update break anything depending on this System?)" cla_prefix: "Para salvar as modificações, primeiro você deve concordar com nosso" cla_url: "CLA" cla_suffix: "." @@ -75,6 +73,7 @@ module.exports = nativeDescription: "português do Brasil", englishDescription: creating: "Criando a nova conta..." sign_up: "Criar conta" log_in: "Entre com a senha" +# social_signup: "Or, you can sign up through Facebook or G+:" home: slogan: "Aprenda a programar em JavaScript enquanto se diverte com um jogo." @@ -151,7 +150,6 @@ module.exports = nativeDescription: "português do Brasil", englishDescription: wizard_tab: "Feiticeiro" password_tab: "Senha" emails_tab: "Emails" -# job_profile_tab: "Job Profile" admin: "Admin" wizard_color: "Cor das Roupas do Feiticeiro" new_password: "Nova Senha" @@ -326,7 +324,6 @@ module.exports = nativeDescription: "português do Brasil", englishDescription: # more: "More" # wiki: "Wiki" # live_chat: "Live Chat" -# level_publish: "Publish This Level (irreversible)?" level_some_options: "Algumas Opções?" level_tab_thangs: "Thangs" level_tab_scripts: "Scripts" @@ -361,7 +358,7 @@ module.exports = nativeDescription: "português do Brasil", englishDescription: thang_search_title: "Procurar Tipos de Thang Aqui" level_search_title: "Procurar Níveis Aqui" # signup_to_create: "Sign Up to Create a New Content" -# read_only_warning: "Note: you can't save any edits here, because you're not logged in as an admin." +# read_only_warning2: "Note: you can't save any edits here, because you're not logged in." article: edit_btn_preview: "Prever" @@ -395,6 +392,7 @@ module.exports = nativeDescription: "português do Brasil", englishDescription: easy: "Fácil" medium: "Médio" hard: "Difícil" +# player: "Player" about: who_is_codecombat: "Quem é CodeCombat?" @@ -599,6 +597,9 @@ module.exports = nativeDescription: "português do Brasil", englishDescription: simulate_all: "RESETAR E SIMULAR PARTIDAS" # games_simulated_by: "Games simulated by you:" # games_simulated_for: "Games simulated for you:" +# games_simulated: "Games simulated" +# games_played: "Games played" +# ratio: "Ratio" leaderboard: "Tabela de Classificação" battle_as: "Lutar como " summary_your: "Seus " @@ -663,3 +664,4 @@ module.exports = nativeDescription: "português do Brasil", englishDescription: # leaderboard: "Leaderboard" # user_schema: "User Schema" # user_profile: "User Profile" +# patches: "Patches" diff --git a/app/locale/pt-PT.coffee b/app/locale/pt-PT.coffee index f8af8dc83..0d6efb57b 100644 --- a/app/locale/pt-PT.coffee +++ b/app/locale/pt-PT.coffee @@ -6,6 +6,7 @@ module.exports = nativeDescription: "Português europeu", englishDescription: "P # send: "Send" cancel: "Cancelar" save: "Guardar" +# publish: "Publish" create: "Create" delay_1_sec: "1 segundo" delay_3_sec: "3 segundos" @@ -47,9 +48,6 @@ module.exports = nativeDescription: "Português europeu", englishDescription: "P versions: save_version_title: "Guardar Nova Versão" new_major_version: "Nova Versão Principal" -# update_break_level: "(Could this update break old solutions of the level?)" -# update_break_component: "(Could this update break anything depending on this Component?)" -# update_break_system: "(Could this update break anything depending on this System?)" cla_prefix: "Para guardar as alterações, precisas concordar com o nosso" cla_url: "CLA" cla_suffix: "." @@ -75,6 +73,7 @@ module.exports = nativeDescription: "Português europeu", englishDescription: "P creating: "A criar conta..." sign_up: "Registar" log_in: "iniciar sessão com palavra-passe" +# social_signup: "Or, you can sign up through Facebook or G+:" home: slogan: "Aprende a Programar JavaScript ao Jogar um Jogo" @@ -151,7 +150,6 @@ module.exports = nativeDescription: "Português europeu", englishDescription: "P wizard_tab: "Feiticeiro" password_tab: "Palavra-passe" emails_tab: "E-mails" -# job_profile_tab: "Job Profile" admin: "Admin" wizard_color: "Cor das roupas do feiticeiro" new_password: "Nova palavra-passe" @@ -326,7 +324,6 @@ module.exports = nativeDescription: "Português europeu", englishDescription: "P # more: "More" # wiki: "Wiki" # live_chat: "Live Chat" -# level_publish: "Publish This Level (irreversible)?" level_some_options: "Algumas opções?" level_tab_thangs: "Thangs" level_tab_scripts: "Scripts" @@ -361,7 +358,7 @@ module.exports = nativeDescription: "Português europeu", englishDescription: "P thang_search_title: "Procurar Tipos de Thang Aqui" level_search_title: "Procurar Níveis Aqui" # signup_to_create: "Sign Up to Create a New Content" -# read_only_warning: "Note: you can't save any edits here, because you're not logged in as an admin." +# read_only_warning2: "Note: you can't save any edits here, because you're not logged in." article: edit_btn_preview: "Visualizar" @@ -395,6 +392,7 @@ module.exports = nativeDescription: "Português europeu", englishDescription: "P easy: "Fácil" medium: "Médio" hard: "Difícil" +# player: "Player" # about: # who_is_codecombat: "Who is CodeCombat?" @@ -599,6 +597,9 @@ module.exports = nativeDescription: "Português europeu", englishDescription: "P # simulate_all: "RESET AND SIMULATE GAMES" # games_simulated_by: "Games simulated by you:" # games_simulated_for: "Games simulated for you:" +# games_simulated: "Games simulated" +# games_played: "Games played" +# ratio: "Ratio" leaderboard: "Tabela de Classificação" battle_as: "Lutar como " summary_your: "As tuas " @@ -663,3 +664,4 @@ module.exports = nativeDescription: "Português europeu", englishDescription: "P # leaderboard: "Leaderboard" # user_schema: "User Schema" # user_profile: "User Profile" +# patches: "Patches" diff --git a/app/locale/pt.coffee b/app/locale/pt.coffee index 92863b48e..f073b3194 100644 --- a/app/locale/pt.coffee +++ b/app/locale/pt.coffee @@ -6,6 +6,7 @@ module.exports = nativeDescription: "português", englishDescription: "Portugues # send: "Send" cancel: "Cancelar" # save: "Save" +# publish: "Publish" # create: "Create" delay_1_sec: "1 segundo" delay_3_sec: "3 segundos" @@ -47,9 +48,6 @@ module.exports = nativeDescription: "português", englishDescription: "Portugues # versions: # save_version_title: "Save New Version" # new_major_version: "New Major Version" -# update_break_level: "(Could this update break old solutions of the level?)" -# update_break_component: "(Could this update break anything depending on this Component?)" -# update_break_system: "(Could this update break anything depending on this System?)" # cla_prefix: "To save changes, first you must agree to our" # cla_url: "CLA" # cla_suffix: "." @@ -75,6 +73,7 @@ module.exports = nativeDescription: "português", englishDescription: "Portugues creating: "Criando a nova conta..." sign_up: "Criar conta" log_in: "Entre com a senha" +# social_signup: "Or, you can sign up through Facebook or G+:" home: slogan: "Aprenda a programar em JavaScript enquanto se diverte com um jogo." @@ -151,7 +150,6 @@ module.exports = nativeDescription: "português", englishDescription: "Portugues wizard_tab: "Feiticeiro" password_tab: "Senha" emails_tab: "Emails" -# job_profile_tab: "Job Profile" # admin: "Admin" wizard_color: "Cor das Roupas do Feiticeiro" new_password: "Nova Senha" @@ -326,7 +324,6 @@ module.exports = nativeDescription: "português", englishDescription: "Portugues # more: "More" # wiki: "Wiki" # live_chat: "Live Chat" -# level_publish: "Publish This Level (irreversible)?" # level_some_options: "Some Options?" # level_tab_thangs: "Thangs" # level_tab_scripts: "Scripts" @@ -361,7 +358,7 @@ module.exports = nativeDescription: "português", englishDescription: "Portugues # thang_search_title: "Search Thang Types Here" # level_search_title: "Search Levels Here" # signup_to_create: "Sign Up to Create a New Content" -# read_only_warning: "Note: you can't save any edits here, because you're not logged in as an admin." +# read_only_warning2: "Note: you can't save any edits here, because you're not logged in." # article: # edit_btn_preview: "Preview" @@ -395,6 +392,7 @@ module.exports = nativeDescription: "português", englishDescription: "Portugues # easy: "Easy" # medium: "Medium" # hard: "Hard" +# player: "Player" # about: # who_is_codecombat: "Who is CodeCombat?" @@ -599,6 +597,9 @@ module.exports = nativeDescription: "português", englishDescription: "Portugues # simulate_all: "RESET AND SIMULATE GAMES" # games_simulated_by: "Games simulated by you:" # games_simulated_for: "Games simulated for you:" +# games_simulated: "Games simulated" +# games_played: "Games played" +# ratio: "Ratio" # leaderboard: "Leaderboard" # battle_as: "Battle as " # summary_your: "Your " @@ -663,3 +664,4 @@ module.exports = nativeDescription: "português", englishDescription: "Portugues # leaderboard: "Leaderboard" # user_schema: "User Schema" # user_profile: "User Profile" +# patches: "Patches" diff --git a/app/locale/ro.coffee b/app/locale/ro.coffee index 3e1d70a11..197846873 100644 --- a/app/locale/ro.coffee +++ b/app/locale/ro.coffee @@ -6,6 +6,7 @@ module.exports = nativeDescription: "limba română", englishDescription: "Roman # send: "Send" cancel: "Anulează" save: "Salvează" +# publish: "Publish" create: "Crează" delay_1_sec: "1 secundă" delay_3_sec: "3 secunde" @@ -47,9 +48,6 @@ module.exports = nativeDescription: "limba română", englishDescription: "Roman versions: save_version_title: "Salvează noua versiune" new_major_version: "Versiune nouă majoră" -# update_break_level: "(Could this update break old solutions of the level?)" -# update_break_component: "(Could this update break anything depending on this Component?)" -# update_break_system: "(Could this update break anything depending on this System?)" cla_prefix: "Pentru a salva modificările mai intâi trebuie sa fiți de acord cu" cla_url: "CLA" cla_suffix: "." @@ -75,6 +73,7 @@ module.exports = nativeDescription: "limba română", englishDescription: "Roman creating: "Se creează contul..." sign_up: "Înscrie-te" log_in: "loghează-te cu parola" +# social_signup: "Or, you can sign up through Facebook or G+:" home: slogan: "Învață sa scrii JavaScript jucându-te" @@ -151,7 +150,6 @@ module.exports = nativeDescription: "limba română", englishDescription: "Roman wizard_tab: "Wizard" password_tab: "Parolă" emails_tab: "Email-uri" -# job_profile_tab: "Job Profile" admin: "Admin" wizard_color: "Culoare haine pentru Wizard" new_password: "Parolă nouă" @@ -326,7 +324,6 @@ module.exports = nativeDescription: "limba română", englishDescription: "Roman # more: "More" # wiki: "Wiki" # live_chat: "Live Chat" -# level_publish: "Publish This Level (irreversible)?" level_some_options: "Opțiuni?" level_tab_thangs: "Thangs" level_tab_scripts: "Script-uri" @@ -361,7 +358,7 @@ module.exports = nativeDescription: "limba română", englishDescription: "Roman thang_search_title: "Caută tipuri de Thang aici" level_search_title: "Caută nivele aici" # signup_to_create: "Sign Up to Create a New Content" -# read_only_warning: "Note: you can't save any edits here, because you're not logged in as an admin." +# read_only_warning2: "Note: you can't save any edits here, because you're not logged in." article: edit_btn_preview: "Preview" @@ -395,6 +392,7 @@ module.exports = nativeDescription: "limba română", englishDescription: "Roman easy: "Ușor" medium: "Mediu" hard: "Greu" +# player: "Player" about: who_is_codecombat: "Cine este CodeCombat?" @@ -599,6 +597,9 @@ module.exports = nativeDescription: "limba română", englishDescription: "Roman simulate_all: "RESETEAZĂ ȘI SIMULEAZĂ JOCURI" games_simulated_by: "Jocuri simulate de tine:" games_simulated_for: "Jocuri simulate pentru tine:" +# games_simulated: "Games simulated" +# games_played: "Games played" +# ratio: "Ratio" leaderboard: "Clasament" battle_as: "Luptă ca " summary_your: "Al tău " @@ -663,3 +664,4 @@ module.exports = nativeDescription: "limba română", englishDescription: "Roman # leaderboard: "Leaderboard" # user_schema: "User Schema" # user_profile: "User Profile" +# patches: "Patches" diff --git a/app/locale/ru.coffee b/app/locale/ru.coffee index 8b7a05e89..2503bc31d 100644 --- a/app/locale/ru.coffee +++ b/app/locale/ru.coffee @@ -3,9 +3,10 @@ module.exports = nativeDescription: "русский", englishDescription: "Russi loading: "Загрузка..." saving: "Сохранение..." sending: "Отправка..." -# send: "Send" + send: "Отправить" cancel: "Отмена" save: "Сохранить" +# publish: "Publish" create: "Создать" delay_1_sec: "1 секунда" delay_3_sec: "3 секунды" @@ -47,9 +48,6 @@ module.exports = nativeDescription: "русский", englishDescription: "Russi versions: save_version_title: "Сохранить новую версию" new_major_version: "Новая основная версия" - update_break_level: "(Может ли это обновление нарушить старые решения уровня?)" - update_break_component: "(Может ли это обновление нарушить что-нибудь, зависящее от данного Компонента?)" - update_break_system: "(Может ли это обновление нарушить что-нибудь, зависящее от данной Системы?)" cla_prefix: "Чтобы сохранить изменения, сначала вы должны согласиться с нашим" cla_url: "лицензионным соглашением соавторов" cla_suffix: "." @@ -75,6 +73,7 @@ module.exports = nativeDescription: "русский", englishDescription: "Russi creating: "Создание аккаунта..." sign_up: "Регистрация" log_in: "вход с паролем" +# social_signup: "Or, you can sign up through Facebook or G+:" home: slogan: "Научитесь программировать на JavaScript, играя в игру" @@ -115,8 +114,8 @@ module.exports = nativeDescription: "русский", englishDescription: "Russi forum_page: "наш форум" forum_suffix: "." send: "Отправить отзыв" -# contact_candidate: "Contact Candidate" -# recruitment_reminder: "Use this form to reach out to candidates you are interested in interviewing. Remember that CodeCombat charges 18% of first-year salary. The fee is due upon hiring the employee and is refundable for 90 days if the employee does not remain employed. Part time, remote, and contract employees are free, as are interns." + contact_candidate: "Связаться с кандидатом" + recruitment_reminder: "Используйте эту форму, чтобы обратиться к кандидатам, если вы заинтересованы в интервью. Помните, что CodeCombat взимает 18% от первого года зарплаты. Плата производится по найму сотрудника и подлежит возмещению в течение 90 дней, если работник не остаётся на рабочем месте. Работники с частичной занятостью, удалённые и работающие по контракту свободны, как стажёры." diplomat_suggestion: title: "Помогите перевести CodeCombat!" @@ -151,7 +150,6 @@ module.exports = nativeDescription: "русский", englishDescription: "Russi wizard_tab: "Волшебник" password_tab: "Пароль" emails_tab: "Email-адреса" -# job_profile_tab: "Job Profile" admin: "Админ" wizard_color: "Цвет одежды волшебника" new_password: "Новый пароль" @@ -169,37 +167,37 @@ module.exports = nativeDescription: "русский", englishDescription: "Russi error_saving: "Ошибка сохранения" saved: "Изменения сохранены" password_mismatch: "Пароли не совпадают." -# job_profile: "Job Profile" -# job_profile_approved: "Your job profile has been approved by CodeCombat. Employers will be able to see it until you either mark it inactive or it has not been changed for four weeks." -# job_profile_explanation: "Hi! Fill this out, and we will get in touch about finding you a software developer job." + job_profile: "Профиль соискателя" + job_profile_approved: "Ваш профиль соискателя был одобрен CodeCombat. Работодатели смогут видеть его, пока вы не отметите его неактивным или он не будет изменен в течение четырёх недель." + job_profile_explanation: "Привет! Заполните это, и мы свяжемся с вами при нахождении работы разработчика программного обеспечения для вас." account_profile: edit_settings: "Изменить настройки" profile_for_prefix: "Профиль для " profile_for_suffix: "" -# approved: "Approved" -# not_approved: "Not Approved" -# looking_for: "Looking for:" -# last_updated: "Last updated:" -# contact: "Contact" -# work_experience: "Work Experience" -# education: "Education" -# our_notes: "Our Notes" -# projects: "Projects" + approved: "Одобрено" + not_approved: "Не одобрено" + looking_for: "Ищет:" + last_updated: "Последнее обновление:" + contact: "Контакты" + work_experience: "Опыт работы" + education: "Образование" + our_notes: "Наши заметки" + projects: "Проекты" -# employers: -# want_to_hire_our_players: "Want to hire expert CodeCombat players?" -# contact_george: "Contact George to see our candidates" -# candidates_count_prefix: "We currently have " -# candidates_count_many: "many" -# candidates_count_suffix: "highly skilled and vetted developers looking for work." -# candidate_name: "Name" -# candidate_location: "Location" -# candidate_looking_for: "Looking For" -# candidate_role: "Role" -# candidate_top_skills: "Top Skills" -# candidate_years_experience: "Yrs Exp" -# candidate_last_updated: "Last Updated" + employers: + want_to_hire_our_players: "Хотите нанимать игроков-экспертов CodeCombat?" + contact_george: "Свяжитесь с Джорджем, чтобы посмотреть наших кандидатов" + candidates_count_prefix: "Сейчас у нас есть " + candidates_count_many: "много" + candidates_count_suffix: "высококвалифицированных и проверенных разработчиков, ищущих работу." + candidate_name: "Имя" + candidate_location: "Местонахождение" + candidate_looking_for: "Ищет" + candidate_role: "Роль" + candidate_top_skills: "Лучшие навыки" + candidate_years_experience: "Лет опыта" + candidate_last_updated: "Последнее обновление" play_level: level_load_error: "Уровень не может быть загружен: " @@ -326,7 +324,6 @@ module.exports = nativeDescription: "русский", englishDescription: "Russi more: "Ещё" wiki: "Вики" live_chat: "Онлайн-чат" - level_publish: "Опубликовать уровень (необратимо)?" level_some_options: "Ещё опции" level_tab_thangs: "Объекты" level_tab_scripts: "Скрипты" @@ -361,7 +358,7 @@ module.exports = nativeDescription: "русский", englishDescription: "Russi thang_search_title: "Искать типы объектов" level_search_title: "Искать уровни" signup_to_create: "Авторизуйтесь для создания нового контента" - read_only_warning: "Примечание: вы не можете сохранять здесь любые правки, потому что вы не вошли как администратор." +# read_only_warning2: "Note: you can't save any edits here, because you're not logged in." article: edit_btn_preview: "Предпросмотр" @@ -379,7 +376,7 @@ module.exports = nativeDescription: "русский", englishDescription: "Russi results: "Результаты" description: "Описание" or: "или" -# subject: "Subject" + subject: "Тема" email: "Email" password: "Пароль" message: "Сообщение" @@ -395,6 +392,7 @@ module.exports = nativeDescription: "русский", englishDescription: "Russi easy: "Просто" medium: "Нормально" hard: "Сложно" +# player: "Player" about: who_is_codecombat: "Кто стоит за CodeCombat?" @@ -599,6 +597,9 @@ module.exports = nativeDescription: "русский", englishDescription: "Russi simulate_all: "СБРОСИТЬ И СИМУЛИРОВАТЬ ИГРЫ" games_simulated_by: "Игры, симулированные вами:" games_simulated_for: "Игры, симулированные за вас:" +# games_simulated: "Games simulated" +# games_played: "Games played" +# ratio: "Ratio" leaderboard: "таблица лидеров" battle_as: "Сразиться за " summary_your: "Ваши " @@ -661,5 +662,6 @@ module.exports = nativeDescription: "русский", englishDescription: "Russi gplus_friends: "Друзья G+" gplus_friend_sessions: "Сессии друзей G+" leaderboard: "таблица лидеров" -# user_schema: "User Schema" -# user_profile: "User Profile" + user_schema: "Пользовательская Schema" + user_profile: "Пользовательский профиль" +# patches: "Patches" diff --git a/app/locale/sk.coffee b/app/locale/sk.coffee index 311450353..c914496f6 100644 --- a/app/locale/sk.coffee +++ b/app/locale/sk.coffee @@ -6,6 +6,7 @@ module.exports = nativeDescription: "slovenčina", englishDescription: "Slovak", # send: "Send" cancel: "Zruš" save: "Ulož" +# publish: "Publish" # create: "Create" delay_1_sec: "1 sekunda" delay_3_sec: "3 sekundy" @@ -47,9 +48,6 @@ module.exports = nativeDescription: "slovenčina", englishDescription: "Slovak", versions: save_version_title: "Ulož novú verziu" new_major_version: "Nová primárna verzia" -# update_break_level: "(Could this update break old solutions of the level?)" -# update_break_component: "(Could this update break anything depending on this Component?)" -# update_break_system: "(Could this update break anything depending on this System?)" cla_prefix: "Ak chcete uložiť svoje zmeny, musíte najprv súhlasiť s našou" # cla_url: "CLA" # cla_suffix: "." @@ -75,6 +73,7 @@ module.exports = nativeDescription: "slovenčina", englishDescription: "Slovak", creating: "Vytvára sa účet..." sign_up: "Registruj sa" log_in: "prihlás sa pomocou hesla" +# social_signup: "Or, you can sign up through Facebook or G+:" home: slogan: "Nauč sa programovať v Javascripte pomocou hry" @@ -151,7 +150,6 @@ module.exports = nativeDescription: "slovenčina", englishDescription: "Slovak", wizard_tab: "Kúzelník" password_tab: "Heslo" emails_tab: "E-maily" -# job_profile_tab: "Job Profile" admin: "Spravovať" wizard_color: "Farba kúzelníckej róby" new_password: "Nové heslo" @@ -326,7 +324,6 @@ module.exports = nativeDescription: "slovenčina", englishDescription: "Slovak", # more: "More" # wiki: "Wiki" # live_chat: "Live Chat" -# level_publish: "Publish This Level (irreversible)?" # level_some_options: "Some Options?" # level_tab_thangs: "Thangs" # level_tab_scripts: "Scripts" @@ -361,7 +358,7 @@ module.exports = nativeDescription: "slovenčina", englishDescription: "Slovak", # thang_search_title: "Search Thang Types Here" # level_search_title: "Search Levels Here" # signup_to_create: "Sign Up to Create a New Content" -# read_only_warning: "Note: you can't save any edits here, because you're not logged in as an admin." +# read_only_warning2: "Note: you can't save any edits here, because you're not logged in." # article: # edit_btn_preview: "Preview" @@ -395,6 +392,7 @@ module.exports = nativeDescription: "slovenčina", englishDescription: "Slovak", # easy: "Easy" # medium: "Medium" # hard: "Hard" +# player: "Player" # about: # who_is_codecombat: "Who is CodeCombat?" @@ -599,6 +597,9 @@ module.exports = nativeDescription: "slovenčina", englishDescription: "Slovak", # simulate_all: "RESET AND SIMULATE GAMES" # games_simulated_by: "Games simulated by you:" # games_simulated_for: "Games simulated for you:" +# games_simulated: "Games simulated" +# games_played: "Games played" +# ratio: "Ratio" # leaderboard: "Leaderboard" # battle_as: "Battle as " # summary_your: "Your " @@ -663,3 +664,4 @@ module.exports = nativeDescription: "slovenčina", englishDescription: "Slovak", # leaderboard: "Leaderboard" # user_schema: "User Schema" # user_profile: "User Profile" +# patches: "Patches" diff --git a/app/locale/sl.coffee b/app/locale/sl.coffee index f5117a52a..441443097 100644 --- a/app/locale/sl.coffee +++ b/app/locale/sl.coffee @@ -6,6 +6,7 @@ module.exports = nativeDescription: "slovenščina", englishDescription: "Sloven # send: "Send" # cancel: "Cancel" # save: "Save" +# publish: "Publish" # create: "Create" # delay_1_sec: "1 second" # delay_3_sec: "3 seconds" @@ -47,9 +48,6 @@ module.exports = nativeDescription: "slovenščina", englishDescription: "Sloven # versions: # save_version_title: "Save New Version" # new_major_version: "New Major Version" -# update_break_level: "(Could this update break old solutions of the level?)" -# update_break_component: "(Could this update break anything depending on this Component?)" -# update_break_system: "(Could this update break anything depending on this System?)" # cla_prefix: "To save changes, first you must agree to our" # cla_url: "CLA" # cla_suffix: "." @@ -75,6 +73,7 @@ module.exports = nativeDescription: "slovenščina", englishDescription: "Sloven # creating: "Creating Account..." # sign_up: "Sign Up" # log_in: "log in with password" +# social_signup: "Or, you can sign up through Facebook or G+:" # home: # slogan: "Learn to Code JavaScript by Playing a Game" @@ -151,7 +150,6 @@ module.exports = nativeDescription: "slovenščina", englishDescription: "Sloven # wizard_tab: "Wizard" # password_tab: "Password" # emails_tab: "Emails" -# job_profile_tab: "Job Profile" # admin: "Admin" # wizard_color: "Wizard Clothes Color" # new_password: "New Password" @@ -326,7 +324,6 @@ module.exports = nativeDescription: "slovenščina", englishDescription: "Sloven # more: "More" # wiki: "Wiki" # live_chat: "Live Chat" -# level_publish: "Publish This Level (irreversible)?" # level_some_options: "Some Options?" # level_tab_thangs: "Thangs" # level_tab_scripts: "Scripts" @@ -361,7 +358,7 @@ module.exports = nativeDescription: "slovenščina", englishDescription: "Sloven # thang_search_title: "Search Thang Types Here" # level_search_title: "Search Levels Here" # signup_to_create: "Sign Up to Create a New Content" -# read_only_warning: "Note: you can't save any edits here, because you're not logged in as an admin." +# read_only_warning2: "Note: you can't save any edits here, because you're not logged in." # article: # edit_btn_preview: "Preview" @@ -395,6 +392,7 @@ module.exports = nativeDescription: "slovenščina", englishDescription: "Sloven # easy: "Easy" # medium: "Medium" # hard: "Hard" +# player: "Player" # about: # who_is_codecombat: "Who is CodeCombat?" @@ -599,6 +597,9 @@ module.exports = nativeDescription: "slovenščina", englishDescription: "Sloven # simulate_all: "RESET AND SIMULATE GAMES" # games_simulated_by: "Games simulated by you:" # games_simulated_for: "Games simulated for you:" +# games_simulated: "Games simulated" +# games_played: "Games played" +# ratio: "Ratio" # leaderboard: "Leaderboard" # battle_as: "Battle as " # summary_your: "Your " @@ -663,3 +664,4 @@ module.exports = nativeDescription: "slovenščina", englishDescription: "Sloven # leaderboard: "Leaderboard" # user_schema: "User Schema" # user_profile: "User Profile" +# patches: "Patches" diff --git a/app/locale/sr.coffee b/app/locale/sr.coffee index 834ed73c8..c22596704 100644 --- a/app/locale/sr.coffee +++ b/app/locale/sr.coffee @@ -6,6 +6,7 @@ module.exports = nativeDescription: "српски", englishDescription: "Serbian # send: "Send" cancel: "Откажи" # save: "Save" +# publish: "Publish" # create: "Create" delay_1_sec: "1 секунда" delay_3_sec: "3 секунде" @@ -47,9 +48,6 @@ module.exports = nativeDescription: "српски", englishDescription: "Serbian # versions: # save_version_title: "Save New Version" # new_major_version: "New Major Version" -# update_break_level: "(Could this update break old solutions of the level?)" -# update_break_component: "(Could this update break anything depending on this Component?)" -# update_break_system: "(Could this update break anything depending on this System?)" # cla_prefix: "To save changes, first you must agree to our" # cla_url: "CLA" # cla_suffix: "." @@ -75,6 +73,7 @@ module.exports = nativeDescription: "српски", englishDescription: "Serbian creating: "Прављење налога..." sign_up: "Упиши се" log_in: "улогуј се са шифром" +# social_signup: "Or, you can sign up through Facebook or G+:" home: slogan: "Научи да пишеш JavaScript играјући игру" @@ -151,7 +150,6 @@ module.exports = nativeDescription: "српски", englishDescription: "Serbian wizard_tab: "Чаробњак" password_tab: "Шифра" emails_tab: "Мејлови" -# job_profile_tab: "Job Profile" # admin: "Admin" wizard_color: "Боја Одеће Чаробњака" new_password: "Нова Шифра" @@ -326,7 +324,6 @@ module.exports = nativeDescription: "српски", englishDescription: "Serbian # more: "More" # wiki: "Wiki" # live_chat: "Live Chat" -# level_publish: "Publish This Level (irreversible)?" # level_some_options: "Some Options?" # level_tab_thangs: "Thangs" # level_tab_scripts: "Scripts" @@ -361,7 +358,7 @@ module.exports = nativeDescription: "српски", englishDescription: "Serbian # thang_search_title: "Search Thang Types Here" # level_search_title: "Search Levels Here" # signup_to_create: "Sign Up to Create a New Content" -# read_only_warning: "Note: you can't save any edits here, because you're not logged in as an admin." +# read_only_warning2: "Note: you can't save any edits here, because you're not logged in." # article: # edit_btn_preview: "Preview" @@ -395,6 +392,7 @@ module.exports = nativeDescription: "српски", englishDescription: "Serbian # easy: "Easy" # medium: "Medium" # hard: "Hard" +# player: "Player" # about: # who_is_codecombat: "Who is CodeCombat?" @@ -599,6 +597,9 @@ module.exports = nativeDescription: "српски", englishDescription: "Serbian # simulate_all: "RESET AND SIMULATE GAMES" # games_simulated_by: "Games simulated by you:" # games_simulated_for: "Games simulated for you:" +# games_simulated: "Games simulated" +# games_played: "Games played" +# ratio: "Ratio" # leaderboard: "Leaderboard" # battle_as: "Battle as " # summary_your: "Your " @@ -663,3 +664,4 @@ module.exports = nativeDescription: "српски", englishDescription: "Serbian # leaderboard: "Leaderboard" # user_schema: "User Schema" # user_profile: "User Profile" +# patches: "Patches" diff --git a/app/locale/sv.coffee b/app/locale/sv.coffee index 7af1c1915..e8d709347 100644 --- a/app/locale/sv.coffee +++ b/app/locale/sv.coffee @@ -6,6 +6,7 @@ module.exports = nativeDescription: "Svenska", englishDescription: "Swedish", tr # send: "Send" cancel: "Avbryt" save: "Spara" +# publish: "Publish" # create: "Create" delay_1_sec: "1 sekund" delay_3_sec: "3 sekunder" @@ -47,9 +48,6 @@ module.exports = nativeDescription: "Svenska", englishDescription: "Swedish", tr versions: save_version_title: "Spara ny version" new_major_version: "Ny betydande version" -# update_break_level: "(Could this update break old solutions of the level?)" -# update_break_component: "(Could this update break anything depending on this Component?)" -# update_break_system: "(Could this update break anything depending on this System?)" cla_prefix: "För att spara ändringar måste du först godkänna vår" # cla_url: "CLA" # cla_suffix: "." @@ -75,6 +73,7 @@ module.exports = nativeDescription: "Svenska", englishDescription: "Swedish", tr creating: "Skapar konto..." sign_up: "Skapa konto" log_in: "logga in med lösenord" +# social_signup: "Or, you can sign up through Facebook or G+:" home: slogan: "Lär dig att koda Javascript genom att spela ett spel." @@ -151,7 +150,6 @@ module.exports = nativeDescription: "Svenska", englishDescription: "Swedish", tr wizard_tab: "Trollkarl" password_tab: "Lösenord" emails_tab: "E-postadresser" -# job_profile_tab: "Job Profile" admin: "Administratör" wizard_color: "Trollkarlens klädfärg" new_password: "Nytt lösenord" @@ -326,7 +324,6 @@ module.exports = nativeDescription: "Svenska", englishDescription: "Swedish", tr # more: "More" # wiki: "Wiki" # live_chat: "Live Chat" -# level_publish: "Publish This Level (irreversible)?" level_some_options: "Några inställningar?" level_tab_thangs: "Enheter" level_tab_scripts: "Skript" @@ -361,7 +358,7 @@ module.exports = nativeDescription: "Svenska", englishDescription: "Swedish", tr thang_search_title: "Sök enhetstyper här" level_search_title: "Sök nivåer här" # signup_to_create: "Sign Up to Create a New Content" -# read_only_warning: "Note: you can't save any edits here, because you're not logged in as an admin." +# read_only_warning2: "Note: you can't save any edits here, because you're not logged in." article: edit_btn_preview: "Förhandsgranska" @@ -395,6 +392,7 @@ module.exports = nativeDescription: "Svenska", englishDescription: "Swedish", tr easy: "Lätt" medium: "Medium" hard: "Svår" +# player: "Player" about: who_is_codecombat: "Vilka är CodeCombat?" @@ -599,6 +597,9 @@ module.exports = nativeDescription: "Svenska", englishDescription: "Swedish", tr simulate_all: "ÅTERSTÄLL OCH SIMULERA MATCHER" # games_simulated_by: "Games simulated by you:" # games_simulated_for: "Games simulated for you:" +# games_simulated: "Games simulated" +# games_played: "Games played" +# ratio: "Ratio" leaderboard: "Resultattavla" battle_as: "Kämpa som " summary_your: "Dina " @@ -663,3 +664,4 @@ module.exports = nativeDescription: "Svenska", englishDescription: "Swedish", tr # leaderboard: "Leaderboard" # user_schema: "User Schema" # user_profile: "User Profile" +# patches: "Patches" diff --git a/app/locale/th.coffee b/app/locale/th.coffee index fda48a549..8a28e38cb 100644 --- a/app/locale/th.coffee +++ b/app/locale/th.coffee @@ -6,6 +6,7 @@ module.exports = nativeDescription: "ไทย", englishDescription: "Thai", tra # send: "Send" cancel: "ยกเลิก" # save: "Save" +# publish: "Publish" # create: "Create" delay_1_sec: "1 วินาที" delay_3_sec: "3 วินาที" @@ -47,9 +48,6 @@ module.exports = nativeDescription: "ไทย", englishDescription: "Thai", tra # versions: # save_version_title: "Save New Version" # new_major_version: "New Major Version" -# update_break_level: "(Could this update break old solutions of the level?)" -# update_break_component: "(Could this update break anything depending on this Component?)" -# update_break_system: "(Could this update break anything depending on this System?)" # cla_prefix: "To save changes, first you must agree to our" # cla_url: "CLA" # cla_suffix: "." @@ -75,6 +73,7 @@ module.exports = nativeDescription: "ไทย", englishDescription: "Thai", tra # creating: "Creating Account..." sign_up: "สมัคร" log_in: "เข้าสู่ระบบด้วยรหัสผ่าน" +# social_signup: "Or, you can sign up through Facebook or G+:" home: # slogan: "Learn to Code JavaScript by Playing a Game" @@ -151,7 +150,6 @@ module.exports = nativeDescription: "ไทย", englishDescription: "Thai", tra # wizard_tab: "Wizard" password_tab: "รหัสผ่าน" # emails_tab: "Emails" -# job_profile_tab: "Job Profile" # admin: "Admin" # wizard_color: "Wizard Clothes Color" new_password: "รหัสผ่านใหม่" @@ -326,7 +324,6 @@ module.exports = nativeDescription: "ไทย", englishDescription: "Thai", tra # more: "More" # wiki: "Wiki" # live_chat: "Live Chat" -# level_publish: "Publish This Level (irreversible)?" # level_some_options: "Some Options?" # level_tab_thangs: "Thangs" # level_tab_scripts: "Scripts" @@ -361,7 +358,7 @@ module.exports = nativeDescription: "ไทย", englishDescription: "Thai", tra # thang_search_title: "Search Thang Types Here" # level_search_title: "Search Levels Here" # signup_to_create: "Sign Up to Create a New Content" -# read_only_warning: "Note: you can't save any edits here, because you're not logged in as an admin." +# read_only_warning2: "Note: you can't save any edits here, because you're not logged in." # article: # edit_btn_preview: "Preview" @@ -395,6 +392,7 @@ module.exports = nativeDescription: "ไทย", englishDescription: "Thai", tra # easy: "Easy" # medium: "Medium" # hard: "Hard" +# player: "Player" # about: # who_is_codecombat: "Who is CodeCombat?" @@ -599,6 +597,9 @@ module.exports = nativeDescription: "ไทย", englishDescription: "Thai", tra # simulate_all: "RESET AND SIMULATE GAMES" # games_simulated_by: "Games simulated by you:" # games_simulated_for: "Games simulated for you:" +# games_simulated: "Games simulated" +# games_played: "Games played" +# ratio: "Ratio" # leaderboard: "Leaderboard" # battle_as: "Battle as " # summary_your: "Your " @@ -663,3 +664,4 @@ module.exports = nativeDescription: "ไทย", englishDescription: "Thai", tra # leaderboard: "Leaderboard" # user_schema: "User Schema" # user_profile: "User Profile" +# patches: "Patches" diff --git a/app/locale/tr.coffee b/app/locale/tr.coffee index 6725086d5..e29079e8d 100644 --- a/app/locale/tr.coffee +++ b/app/locale/tr.coffee @@ -6,6 +6,7 @@ module.exports = nativeDescription: "Türkçe", englishDescription: "Turkish", t # send: "Send" cancel: "İptal" save: "Kaydet" +# publish: "Publish" create: "Oluştur" delay_1_sec: "1 saniye" delay_3_sec: "3 saniye" @@ -47,9 +48,6 @@ module.exports = nativeDescription: "Türkçe", englishDescription: "Turkish", t versions: save_version_title: "Yeni Sürümü Kaydet" new_major_version: "Yeni Önemli Sürüm" -# update_break_level: "(Could this update break old solutions of the level?)" -# update_break_component: "(Could this update break anything depending on this Component?)" -# update_break_system: "(Could this update break anything depending on this System?)" cla_prefix: "Değişiklikleri kaydetmek için ilk olarak" cla_url: "KLA'mızı" cla_suffix: "kabul etmelisiniz." @@ -75,6 +73,7 @@ module.exports = nativeDescription: "Türkçe", englishDescription: "Turkish", t creating: "Hesap oluşturuluyor..." sign_up: "Kaydol" log_in: "buradan giriş yapabilirsiniz." +# social_signup: "Or, you can sign up through Facebook or G+:" home: slogan: "Oyun oynayarak JavaScript kodlamayı öğrenin" @@ -151,7 +150,6 @@ module.exports = nativeDescription: "Türkçe", englishDescription: "Turkish", t wizard_tab: "Sihirbaz" password_tab: "Şifre" emails_tab: "E-postalar" -# job_profile_tab: "Job Profile" admin: "Yönetici" wizard_color: "Sihirbaz Kıyafeti Rengi" new_password: "Yeni Şifre" @@ -326,7 +324,6 @@ module.exports = nativeDescription: "Türkçe", englishDescription: "Turkish", t # more: "More" # wiki: "Wiki" # live_chat: "Live Chat" -# level_publish: "Publish This Level (irreversible)?" level_some_options: "Bazı Seçenekler?" level_tab_thangs: "Nesneler" level_tab_scripts: "Betikler" @@ -361,7 +358,7 @@ module.exports = nativeDescription: "Türkçe", englishDescription: "Turkish", t # thang_search_title: "Search Thang Types Here" level_search_title: "Seviye ara" # signup_to_create: "Sign Up to Create a New Content" - read_only_warning: "Uyarı: Yönetici olarak giriş yapmadığınız sürece herhangi bir değişikliği kayıt edemezsiniz." +# read_only_warning2: "Note: you can't save any edits here, because you're not logged in." article: edit_btn_preview: "Önizleme" @@ -395,6 +392,7 @@ module.exports = nativeDescription: "Türkçe", englishDescription: "Turkish", t easy: "Kolay" medium: "Normal" hard: "Zor" +# player: "Player" about: who_is_codecombat: "CodeCombat kimlerden oluşur?" @@ -599,6 +597,9 @@ module.exports = nativeDescription: "Türkçe", englishDescription: "Turkish", t # simulate_all: "RESET AND SIMULATE GAMES" # games_simulated_by: "Games simulated by you:" # games_simulated_for: "Games simulated for you:" +# games_simulated: "Games simulated" +# games_played: "Games played" +# ratio: "Ratio" leaderboard: "Sıralama" # battle_as: "Battle as " summary_your: "Senin " @@ -663,3 +664,4 @@ module.exports = nativeDescription: "Türkçe", englishDescription: "Turkish", t leaderboard: "Sıralama" # user_schema: "User Schema" # user_profile: "User Profile" +# patches: "Patches" diff --git a/app/locale/uk.coffee b/app/locale/uk.coffee index 611ce3c32..5972444cd 100644 --- a/app/locale/uk.coffee +++ b/app/locale/uk.coffee @@ -6,6 +6,7 @@ module.exports = nativeDescription: "українська мова", englishDesc # send: "Send" cancel: "Відміна" save: "Зберегти" +# publish: "Publish" create: "Створити" delay_1_sec: "1 секунда" delay_3_sec: "3 секунди" @@ -47,9 +48,6 @@ module.exports = nativeDescription: "українська мова", englishDesc versions: save_version_title: "Зберегти нову версію" new_major_version: "Зберегти основну версію" -# update_break_level: "(Could this update break old solutions of the level?)" -# update_break_component: "(Could this update break anything depending on this Component?)" -# update_break_system: "(Could this update break anything depending on this System?)" cla_prefix: "Для збереження змін спочатку треба погодитись з нашим" cla_url: "CLA" cla_suffix: "." @@ -75,6 +73,7 @@ module.exports = nativeDescription: "українська мова", englishDesc creating: "Створення акаунта..." sign_up: "Реєстрація" log_in: "вхід з паролем" +# social_signup: "Or, you can sign up through Facebook or G+:" home: slogan: "Навчіться програмувати на JavaScript, граючи у гру" @@ -151,7 +150,6 @@ module.exports = nativeDescription: "українська мова", englishDesc wizard_tab: "Персонаж" password_tab: "Пароль" emails_tab: "Email-адреси" -# job_profile_tab: "Job Profile" admin: "Aдмін" wizard_color: "Колір одягу персонажа" new_password: "Новий пароль" @@ -326,7 +324,6 @@ module.exports = nativeDescription: "українська мова", englishDesc # more: "More" # wiki: "Wiki" # live_chat: "Live Chat" -# level_publish: "Publish This Level (irreversible)?" # level_some_options: "Some Options?" level_tab_thangs: "Об'єкти" level_tab_scripts: "Скрипти" @@ -361,7 +358,7 @@ module.exports = nativeDescription: "українська мова", englishDesc # thang_search_title: "Search Thang Types Here" # level_search_title: "Search Levels Here" # signup_to_create: "Sign Up to Create a New Content" -# read_only_warning: "Note: you can't save any edits here, because you're not logged in as an admin." +# read_only_warning2: "Note: you can't save any edits here, because you're not logged in." # article: # edit_btn_preview: "Preview" @@ -395,6 +392,7 @@ module.exports = nativeDescription: "українська мова", englishDesc easy: "Легкий" medium: "Середній" hard: "Важкий" +# player: "Player" about: who_is_codecombat: "Хто є CodeCombat?" @@ -480,36 +478,36 @@ module.exports = nativeDescription: "українська мова", englishDesc # nutshell_description: "Any resources we provide in the Level Editor are free to use as you like for creating Levels. But we reserve the right to restrict distribution of the Levels themselves (that are created on codecombat.com) so that they may be charged for in the future, if that's what ends up happening." # canonical: "The English version of this document is the definitive, canonical version. If there are any discrepencies between translations, the English document takes precedence." -# contribute: -# page_title: "Contributing" -# character_classes_title: "Character Classes" -# introduction_desc_intro: "We have high hopes for CodeCombat." -# introduction_desc_pref: "We want to be where programmers of all stripes come to learn and play together, introduce others to the wonderful world of coding, and reflect the best parts of the community. We can't and don't want to do that alone; what makes projects like GitHub, Stack Overflow and Linux great are the people who use them and build on them. To that end, " -# introduction_desc_github_url: "CodeCombat is totally open source" -# introduction_desc_suf: ", and we aim to provide as many ways as possible for you to take part and make this project as much yours as ours." -# introduction_desc_ending: "We hope you'll join our party!" -# introduction_desc_signature: "- Nick, George, Scott, Michael, Jeremy and Glen" -# alert_account_message_intro: "Hey there!" -# alert_account_message_pref: "To subscribe for class emails, you'll need to " -# alert_account_message_suf: "first." -# alert_account_message_create_url: "create an account" -# archmage_summary: "Interested in working on game graphics, user interface design, database and server organization, multiplayer networking, physics, sound, or game engine performance? Want to help build a game to help other people learn what you are good at? We have a lot to do and if you are an experienced programmer and want to develop for CodeCombat, this class is for you. We would love your help building the best programming game ever." + contribute: + page_title: "Співпраця" + character_classes_title: "Класи персонажів" + introduction_desc_intro: "Ми покладаємо великі надії на CodeCombat." + introduction_desc_pref: "Ми хочемо створити місце, де збиралися б програмісти найрізноманітніших спеціалізацій, абі вчитись та грати разом. Хочемо знайомити інших з неймовірним світом програмування та відображувати найкращі частини спільноти. Ми не можемо і не хочемо робити це самі, бо такі проекти, як GitHub, Stack Overflow або Linux стали видатними саме завдяки людям, що використовують і будують їх. Через це" + introduction_desc_github_url: "код CodeCombat повністю вікдритий" + introduction_desc_suf: ", і ми пропонуємо вам усі можливі шляхи взяти участь у розробці й перетворити цей проект на не тільки наш. але й ваш теж." + introduction_desc_ending: "Сподіваємось, ви станете частиною нашої команди!" + introduction_desc_signature: "- Нік, Джордж, Скотт, Майкл, Джеремі та Глен" + alert_account_message_intro: "Привіт!" + alert_account_message_pref: "Щоб підписатися на е-мейли для вашого класу, потрібно" + alert_account_message_suf: "спершу." + alert_account_message_create_url: "створити акаунт" + archmage_summary: "Зацікавлений у роботі над ігровою графікою, дизайном інтерфейсу, організацією баз даних та серверу, мультиплеєром, фізокю, звуком або продукційністю ігрового движка? Мрієш допомогти у створенні гри, яка навчить інших того, у чому ви профі? У нас багато роботи, і якщо ти досвідчений програміст і хочеш розробляти CodeCombat, цей клас для тебе. Ми будемо щасливі бачити, як ти створюєш найкращу в світі гру для програмістів. " # archmage_introduction: "One of the best parts about building games is they synthesize so many different things. Graphics, sound, real-time networking, social networking, and of course many of the more common aspects of programming, from low-level database management, and server administration to user facing design and interface building. There's a lot to do, and if you're an experienced programmer with a hankering to really dive into the nitty-gritty of CodeCombat, this class might be for you. We would love to have your help building the best programming game ever." -# class_attributes: "Class Attributes" + class_attributes: "Ознаки класу" # archmage_attribute_1_pref: "Knowledge in " # archmage_attribute_1_suf: ", or a desire to learn. Most of our code is in this language. If you're a fan of Ruby or Python, you'll feel right at home. It's JavaScript, but with a nicer syntax." # archmage_attribute_2: "Some experience in programming and personal initiative. We'll help you get oriented, but we can't spend much time training you." -# how_to_join: "How To Join" -# join_desc_1: "Anyone can help out! Just check out our " -# join_desc_2: "to get started, and check the box below to mark yourself as a brave Archmage and get the latest news by email. Want to chat about what to do or how to get more deeply involved? " -# join_desc_3: ", or find us in our " -# join_desc_4: "and we'll go from there!" -# join_url_email: "Email us" -# join_url_hipchat: "public HipChat room" -# more_about_archmage: "Learn More About Becoming an Archmage" -# archmage_subscribe_desc: "Get emails on new coding opportunities and announcements." + how_to_join: "Як приєднатися" + join_desc_1: "Кожен може допомогти! Заходь на наш " + join_desc_2: ", щоб почати та постав позначку в чек-боксі нижче, щоб оголосити себе відважним архімагом та отримувати останні новини по е-мейл. Хочеш поспілкуватися про те, що саме робити й як включитися в роботу найглибше?" + join_desc_3: "або знайдіть нас у нашій " + join_desc_4: "- і ми вирішимо, з чого почати!" + join_url_email: "Напишіть нам" + join_url_hipchat: "публічній HipChat кімнаті" + more_about_archmage: "Дізнатися, як стати Архімагом" + archmage_subscribe_desc: "Отримувати листи з анонсами та новими можливостями для розробки." # artisan_summary_pref: "Want to design levels and expand CodeCombat's arsenal? People are playing through our content at a pace faster than we can build! Right now, our level editor is barebone, so be wary. Making levels will be a little challenging and buggy. If you have visions of campaigns spanning for-loops to" -# artisan_summary_suf: ", then this class is for you." + artisan_summary_suf: "тоді цей клас для тебе." # artisan_introduction_pref: "We must construct additional levels! People be clamoring for more content, and we can only build so many ourselves. Right now your workstation is level one; our level editor is barely usable even by its creators, so be wary. If you have visions of campaigns spanning for-loops to" # artisan_introduction_suf: ", then this class might be for you." # artisan_attribute_1: "Any experience in building content like this would be nice, such as using Blizzard's level editors. But not required!" @@ -520,17 +518,17 @@ module.exports = nativeDescription: "українська мова", englishDesc # artisan_join_step2: "Create a new level and explore existing levels." # artisan_join_step3: "Find us in our public HipChat room for help." # artisan_join_step4: "Post your levels on the forum for feedback." -# more_about_artisan: "Learn More About Becoming an Artisan" -# artisan_subscribe_desc: "Get emails on level editor updates and announcements." + more_about_artisan: "Дізнатися, як стати Ремісником" + artisan_subscribe_desc: "Отримувати листи з анонсами та новинами про вдосконалення редактора рівнів." # adventurer_summary: "Let us be clear about your role: you are the tank. You are going to take heavy damage. We need people to try out brand-new levels and help identify how to make things better. The pain will be enormous; making good games is a long process and no one gets it right the first time. If you can endure and have a high constitution score, then this class is for you." # adventurer_introduction: "Let's be clear about your role: you are the tank. You're going to take heavy damage. We need people to try out brand-new levels and help identify how to make things better. The pain will be enormous; making good games is a long process and no one gets it right the first time. If you can endure and have a high constitution score, then this class might be for you." # adventurer_attribute_1: "A thirst for learning. You want to learn how to code and we want to teach you how to code. You'll probably be doing most of the teaching in this case, though." # adventurer_attribute_2: "Charismatic. Be gentle but articulate about what needs improving, and offer suggestions on how to improve." # adventurer_join_pref: "Either get together with (or recruit!) an Artisan and work with them, or check the box below to receive emails when there are new levels to test. We'll also be posting about levels to review on our networks like" -# adventurer_forum_url: "our forum" + adventurer_forum_url: "наш форум" # adventurer_join_suf: "so if you prefer to be notified those ways, sign up there!" -# more_about_adventurer: "Learn More About Becoming an Adventurer" -# adventurer_subscribe_desc: "Get emails when there are new levels to test." + more_about_adventurer: "Дізнатися, як стати Шукачем пригод" + adventurer_subscribe_desc: "Отримувати листи, коли з'являються нові рівні для тестування." # scribe_summary_pref: "CodeCombat is not just going to be a bunch of levels. It will also be a resource of programming knowledge that players can hook into. That way, each Artisan can link to a detailed article that for the player's edification: documentation akin to what the " # scribe_summary_suf: " has built. If you enjoy explaining programming concepts, then this class is for you." # scribe_introduction_pref: "CodeCombat isn't just going to be a bunch of levels. It will also include a resource for knowledge, a wiki of programming concepts that levels can hook into. That way rather than each Artisan having to describe in detail what a comparison operator is, they can simply link their level to the Article describing them that is already written for the player's edification. Something along the lines of what the " @@ -539,56 +537,56 @@ module.exports = nativeDescription: "українська мова", englishDesc # scribe_attribute_1: "Skill in words is pretty much all you need. Not only grammar and spelling, but able to convey complicated ideas to others." # contact_us_url: "Contact us" # scribe_join_description: "tell us a little about yourself, your experience with programming and what sort of things you'd like to write about. We'll go from there!" -# more_about_scribe: "Learn More About Becoming a Scribe" -# scribe_subscribe_desc: "Get emails about article writing announcements." + more_about_scribe: "Дізнатися, як стати Писарем" + scribe_subscribe_desc: "Отрумивати листи з анонсами щодо написання статтей." # diplomat_summary: "There is a large interest in CodeCombat in other countries that do not speak English! We are looking for translators who are willing to spend their time translating the site's corpus of words so that CodeCombat is accessible across the world as soon as possible. If you'd like to help getting CodeCombat international, then this class is for you." # diplomat_introduction_pref: "So, if there's one thing we learned from the " # diplomat_launch_url: "launch in October" # diplomat_introduction_suf: "it's that there is sizeable interest in CodeCombat in other countries! We're building a corps of translators eager to turn one set of words into another set of words to get CodeCombat as accessible across the world as possible. If you like getting sneak peeks at upcoming content and getting these levels to your fellow nationals ASAP, then this class might be for you." # diplomat_attribute_1: "Fluency in English and the language you would like to translate to. When conveying complicated ideas, it's important to have a strong grasp in both!" # diplomat_join_pref_github: "Find your language locale file " -# diplomat_github_url: "on GitHub" + diplomat_github_url: "на GitHub" # diplomat_join_suf_github: ", edit it online, and submit a pull request. Also, check this box below to keep up-to-date on new internationalization developments!" -# more_about_diplomat: "Learn More About Becoming a Diplomat" -# diplomat_subscribe_desc: "Get emails about i18n developments and levels to translate." + more_about_diplomat: "Дізнатися, як стати Дипломатом" + diplomat_subscribe_desc: "Отримувати листи про розробки i18n та нові рівні для перекладу." # ambassador_summary: "We are trying to build a community, and every community needs a support team when there are troubles. We have got chats, emails, and social networks so that our users can get acquainted with the game. If you want to help people get involved, have fun, and learn some programming, then this class is for you." # ambassador_introduction: "This is a community we're building, and you are the connections. We've got Olark chats, emails, and social networks with lots of people to talk with and help get acquainted with the game and learn from. If you want to help people get involved and have fun, and get a good feel of the pulse of CodeCombat and where we're going, then this class might be for you." # ambassador_attribute_1: "Communication skills. Be able to identify the problems players are having and help them solve them. Also, keep the rest of us informed about what players are saying, what they like and don't like and want more of!" # ambassador_join_desc: "tell us a little about yourself, what you've done and what you'd be interested in doing. We'll go from there!" # ambassador_join_note_strong: "Note" # ambassador_join_note_desc: "One of our top priorities is to build multiplayer where players having difficulty solving levels can summon higher level wizards to help them. This will be a great way for ambassadors to do their thing. We'll keep you posted!" -# more_about_ambassador: "Learn More About Becoming an Ambassador" -# ambassador_subscribe_desc: "Get emails on support updates and multiplayer developments." + more_about_ambassador: "Дізнатися, як стати Посланцем" + ambassador_subscribe_desc: "Отримувати листи з новинами щодо підтримки користувачів та розробки мультиплеєра." # counselor_summary: "None of the above roles fit what you are interested in? Do not worry, we are on the lookout for anybody who wants a hand in the development of CodeCombat! If you are interested in teaching, game development, open source management, or anything else that you think will be relevant to us, then this class is for you." # counselor_introduction_1: "Do you have life experience? A different perspective on things that can help us decide how to shape CodeCombat? Of all these roles, this will probably take the least time, but individually you may make the most difference. We're on the lookout for wisened sages, particularly in areas like: teaching, game development, open source project management, technical recruiting, entrepreneurship, or design." # counselor_introduction_2: "Or really anything that is relevant to the development of CodeCombat. If you have knowledge and want to share it to help grow this project, then this class might be for you." # counselor_attribute_1: "Experience, in any of the areas above or something you think might be helpful." # counselor_attribute_2: "A little bit of free time!" # counselor_join_desc: "tell us a little about yourself, what you've done and what you'd be interested in doing. We'll put you in our contact list and be in touch when we could use advice (not too often)." -# more_about_counselor: "Learn More About Becoming a Counselor" -# changes_auto_save: "Changes are saved automatically when you toggle checkboxes." -# diligent_scribes: "Our Diligent Scribes:" -# powerful_archmages: "Our Powerful Archmages:" -# creative_artisans: "Our Creative Artisans:" -# brave_adventurers: "Our Brave Adventurers:" -# translating_diplomats: "Our Translating Diplomats:" -# helpful_ambassadors: "Our Helpful Ambassadors:" + more_about_counselor: "Дізнатися, як стати Радником" + changes_auto_save: "Зміни зберігаються автоматично, коли ви ставите позначку у чекбоксі." + diligent_scribes: "Наші старанні Писарі:" + powerful_archmages: "Наші могутні Архімаги:" + creative_artisans: "Наші талановиті Ремісники:" + brave_adventurers: "Наші хоробрі Шукачі пригод:" + translating_diplomats: "Наші перекладачі - Дипломати:" + helpful_ambassadors: "Наші незамінні Посланці:" -# classes: -# archmage_title: "Archmage" -# archmage_title_description: "(Coder)" -# artisan_title: "Artisan" -# artisan_title_description: "(Level Builder)" -# adventurer_title: "Adventurer" -# adventurer_title_description: "(Level Playtester)" -# scribe_title: "Scribe" -# scribe_title_description: "(Article Editor)" -# diplomat_title: "Diplomat" -# diplomat_title_description: "(Translator)" -# ambassador_title: "Ambassador" -# ambassador_title_description: "(Support)" -# counselor_title: "Counselor" -# counselor_title_description: "(Expert/Teacher)" + classes: + archmage_title: "Архімаг" + archmage_title_description: "(Програміст)" + artisan_title: "Ремісник" + artisan_title_description: "(Створювач рівнів)" + adventurer_title: "Шукач пригод" + adventurer_title_description: "(Тестувальник рівнів)" + scribe_title: "Писар" + scribe_title_description: "(Редактор статей)" + diplomat_title: "Дипломат" + diplomat_title_description: "(Перекладач)" + ambassador_title: "Посланець" + ambassador_title_description: "(Підтримка)" + counselor_title: "Радник" + counselor_title_description: "(Експерт/Вчитель)" # ladder: # please_login: "Please log in first before playing a ladder game." @@ -599,6 +597,9 @@ module.exports = nativeDescription: "українська мова", englishDesc # simulate_all: "RESET AND SIMULATE GAMES" # games_simulated_by: "Games simulated by you:" # games_simulated_for: "Games simulated for you:" +# games_simulated: "Games simulated" +# games_played: "Games played" +# ratio: "Ratio" # leaderboard: "Leaderboard" # battle_as: "Battle as " # summary_your: "Your " @@ -663,3 +664,4 @@ module.exports = nativeDescription: "українська мова", englishDesc # leaderboard: "Leaderboard" # user_schema: "User Schema" # user_profile: "User Profile" +# patches: "Patches" diff --git a/app/locale/ur.coffee b/app/locale/ur.coffee index d08ca0e0f..3ba0fe235 100644 --- a/app/locale/ur.coffee +++ b/app/locale/ur.coffee @@ -6,6 +6,7 @@ module.exports = nativeDescription: "اُردُو", englishDescription: "Urdu", # send: "Send" # cancel: "Cancel" # save: "Save" +# publish: "Publish" # create: "Create" # delay_1_sec: "1 second" # delay_3_sec: "3 seconds" @@ -47,9 +48,6 @@ module.exports = nativeDescription: "اُردُو", englishDescription: "Urdu", # versions: # save_version_title: "Save New Version" # new_major_version: "New Major Version" -# update_break_level: "(Could this update break old solutions of the level?)" -# update_break_component: "(Could this update break anything depending on this Component?)" -# update_break_system: "(Could this update break anything depending on this System?)" # cla_prefix: "To save changes, first you must agree to our" # cla_url: "CLA" # cla_suffix: "." @@ -75,6 +73,7 @@ module.exports = nativeDescription: "اُردُو", englishDescription: "Urdu", # creating: "Creating Account..." # sign_up: "Sign Up" # log_in: "log in with password" +# social_signup: "Or, you can sign up through Facebook or G+:" # home: # slogan: "Learn to Code JavaScript by Playing a Game" @@ -151,7 +150,6 @@ module.exports = nativeDescription: "اُردُو", englishDescription: "Urdu", # wizard_tab: "Wizard" # password_tab: "Password" # emails_tab: "Emails" -# job_profile_tab: "Job Profile" # admin: "Admin" # wizard_color: "Wizard Clothes Color" # new_password: "New Password" @@ -326,7 +324,6 @@ module.exports = nativeDescription: "اُردُو", englishDescription: "Urdu", # more: "More" # wiki: "Wiki" # live_chat: "Live Chat" -# level_publish: "Publish This Level (irreversible)?" # level_some_options: "Some Options?" # level_tab_thangs: "Thangs" # level_tab_scripts: "Scripts" @@ -361,7 +358,7 @@ module.exports = nativeDescription: "اُردُو", englishDescription: "Urdu", # thang_search_title: "Search Thang Types Here" # level_search_title: "Search Levels Here" # signup_to_create: "Sign Up to Create a New Content" -# read_only_warning: "Note: you can't save any edits here, because you're not logged in as an admin." +# read_only_warning2: "Note: you can't save any edits here, because you're not logged in." # article: # edit_btn_preview: "Preview" @@ -395,6 +392,7 @@ module.exports = nativeDescription: "اُردُو", englishDescription: "Urdu", # easy: "Easy" # medium: "Medium" # hard: "Hard" +# player: "Player" # about: # who_is_codecombat: "Who is CodeCombat?" @@ -599,6 +597,9 @@ module.exports = nativeDescription: "اُردُو", englishDescription: "Urdu", # simulate_all: "RESET AND SIMULATE GAMES" # games_simulated_by: "Games simulated by you:" # games_simulated_for: "Games simulated for you:" +# games_simulated: "Games simulated" +# games_played: "Games played" +# ratio: "Ratio" # leaderboard: "Leaderboard" # battle_as: "Battle as " # summary_your: "Your " @@ -663,3 +664,4 @@ module.exports = nativeDescription: "اُردُو", englishDescription: "Urdu", # leaderboard: "Leaderboard" # user_schema: "User Schema" # user_profile: "User Profile" +# patches: "Patches" diff --git a/app/locale/vi.coffee b/app/locale/vi.coffee index 4ae41f29d..b4a4e1fba 100644 --- a/app/locale/vi.coffee +++ b/app/locale/vi.coffee @@ -6,6 +6,7 @@ module.exports = nativeDescription: "Tiếng Việt", englishDescription: "Vietn # send: "Send" cancel: "Hủy" save: "Lưu" +# publish: "Publish" # create: "Create" # delay_1_sec: "1 second" # delay_3_sec: "3 seconds" @@ -47,9 +48,6 @@ module.exports = nativeDescription: "Tiếng Việt", englishDescription: "Vietn versions: save_version_title: "Lưu Phiên bản Mới" new_major_version: "Phiên bản chính mới" -# update_break_level: "(Could this update break old solutions of the level?)" -# update_break_component: "(Could this update break anything depending on this Component?)" -# update_break_system: "(Could this update break anything depending on this System?)" cla_prefix: "Để lưu thay đổi, bạn phải chấp thuận với chúng tôi trước" # cla_url: "CLA" # cla_suffix: "." @@ -75,6 +73,7 @@ module.exports = nativeDescription: "Tiếng Việt", englishDescription: "Vietn creating: "Tạo tài khoản..." sign_up: "Đăng ký" log_in: "đăng nhập với mật khẩu" +# social_signup: "Or, you can sign up through Facebook or G+:" home: slogan: "Học mã Javascript bằng chơi Games" @@ -151,7 +150,6 @@ module.exports = nativeDescription: "Tiếng Việt", englishDescription: "Vietn wizard_tab: "Wizard" password_tab: "Mật khẩu" emails_tab: "Emails" -# job_profile_tab: "Job Profile" # admin: "Admin" wizard_color: "Màu trang phục Wizard" new_password: "Mật khẩu mới" @@ -326,7 +324,6 @@ module.exports = nativeDescription: "Tiếng Việt", englishDescription: "Vietn # more: "More" # wiki: "Wiki" # live_chat: "Live Chat" -# level_publish: "Publish This Level (irreversible)?" # level_some_options: "Some Options?" # level_tab_thangs: "Thangs" # level_tab_scripts: "Scripts" @@ -361,7 +358,7 @@ module.exports = nativeDescription: "Tiếng Việt", englishDescription: "Vietn # thang_search_title: "Search Thang Types Here" # level_search_title: "Search Levels Here" # signup_to_create: "Sign Up to Create a New Content" -# read_only_warning: "Note: you can't save any edits here, because you're not logged in as an admin." +# read_only_warning2: "Note: you can't save any edits here, because you're not logged in." # article: # edit_btn_preview: "Preview" @@ -395,6 +392,7 @@ module.exports = nativeDescription: "Tiếng Việt", englishDescription: "Vietn # easy: "Easy" # medium: "Medium" # hard: "Hard" +# player: "Player" # about: # who_is_codecombat: "Who is CodeCombat?" @@ -599,6 +597,9 @@ module.exports = nativeDescription: "Tiếng Việt", englishDescription: "Vietn # simulate_all: "RESET AND SIMULATE GAMES" # games_simulated_by: "Games simulated by you:" # games_simulated_for: "Games simulated for you:" +# games_simulated: "Games simulated" +# games_played: "Games played" +# ratio: "Ratio" # leaderboard: "Leaderboard" # battle_as: "Battle as " # summary_your: "Your " @@ -663,3 +664,4 @@ module.exports = nativeDescription: "Tiếng Việt", englishDescription: "Vietn # leaderboard: "Leaderboard" # user_schema: "User Schema" # user_profile: "User Profile" +# patches: "Patches" diff --git a/app/locale/zh-HANS.coffee b/app/locale/zh-HANS.coffee index 023933929..c4c515d7e 100644 --- a/app/locale/zh-HANS.coffee +++ b/app/locale/zh-HANS.coffee @@ -3,9 +3,10 @@ module.exports = nativeDescription: "简体中文", englishDescription: "Chinese loading: "读取中……" saving: "保存中……" sending: "发送中……" -# send: "Send" + send: "发送" cancel: "取消" save: "保存" +# publish: "Publish" create: "创建" delay_1_sec: "1 秒" delay_3_sec: "3 秒" @@ -47,9 +48,6 @@ module.exports = nativeDescription: "简体中文", englishDescription: "Chinese versions: save_version_title: "保存新版本" new_major_version: "新的重要版本" -# update_break_level: "(Could this update break old solutions of the level?)" -# update_break_component: "(Could this update break anything depending on this Component?)" -# update_break_system: "(Could this update break anything depending on this System?)" cla_prefix: "要想保存更改,您必须先同意我们的" cla_url: "贡献者许可协议" cla_suffix: "。" @@ -75,6 +73,7 @@ module.exports = nativeDescription: "简体中文", englishDescription: "Chinese creating: "账户创建中……" sign_up: "注册" log_in: "登录" +# social_signup: "Or, you can sign up through Facebook or G+:" home: slogan: "通过游戏学习 Javascript" @@ -151,7 +150,6 @@ module.exports = nativeDescription: "简体中文", englishDescription: "Chinese wizard_tab: "巫师" password_tab: "密码" emails_tab: "邮件" -# job_profile_tab: "Job Profile" admin: "管理" wizard_color: "巫师 衣服 颜色" new_password: "新密码" @@ -318,15 +316,14 @@ module.exports = nativeDescription: "简体中文", englishDescription: "Chinese contact_us: "联系我们!" hipchat_prefix: "你也可以在这里找到我们" hipchat_url: "HipChat 房间。" -# back: "Back" + back: "后退" revert: "还原" revert_models: "还原模式" -# fork_title: "Fork New Version" -# fork_creating: "Creating Fork..." -# more: "More" -# wiki: "Wiki" -# live_chat: "Live Chat" -# level_publish: "Publish This Level (irreversible)?" + fork_title: "派生新版本" + fork_creating: "正在执行派生..." + more: "更多" + wiki: "维基" + live_chat: "在线聊天" level_some_options: "有哪些选项?" level_tab_thangs: "物体" level_tab_scripts: "脚本" @@ -334,11 +331,11 @@ module.exports = nativeDescription: "简体中文", englishDescription: "Chinese level_tab_components: "组件" level_tab_systems: "系统" level_tab_thangs_title: "目前所有物体" -# level_tab_thangs_all: "All" + level_tab_thangs_all: "所有" level_tab_thangs_conditions: "启动条件" level_tab_thangs_add: "增加物体" -# delete: "Delete" -# duplicate: "Duplicate" + delete: "删除" + duplicate: "复制" level_settings_title: "设置" level_component_tab_title: "目前所有组件" level_component_btn_new: "创建新的组件" @@ -360,8 +357,8 @@ module.exports = nativeDescription: "简体中文", englishDescription: "Chinese article_search_title: "在这里搜索物品" thang_search_title: "在这里搜索物品类型" level_search_title: "在这里搜索关卡" -# signup_to_create: "Sign Up to Create a New Content" - read_only_warning: "注意: 你无法保存这里的编辑结果, 因为你没有以管理员身份登录." + signup_to_create: "注册之后就可以创建一个新的关卡" +# read_only_warning2: "Note: you can't save any edits here, because you're not logged in." article: edit_btn_preview: "预览" @@ -395,6 +392,7 @@ module.exports = nativeDescription: "简体中文", englishDescription: "Chinese easy: "容易" medium: "中等" hard: "困难" +# player: "Player" about: who_is_codecombat: "什么是 CodeCombat?" @@ -599,6 +597,9 @@ module.exports = nativeDescription: "简体中文", englishDescription: "Chinese # simulate_all: "RESET AND SIMULATE GAMES" # games_simulated_by: "Games simulated by you:" # games_simulated_for: "Games simulated for you:" +# games_simulated: "Games simulated" +# games_played: "Games played" +# ratio: "Ratio" leaderboard: "排行榜" battle_as: "我要加入这一方 " summary_your: "你 " @@ -663,3 +664,4 @@ module.exports = nativeDescription: "简体中文", englishDescription: "Chinese leaderboard: "排行榜" # user_schema: "User Schema" # user_profile: "User Profile" +# patches: "Patches" diff --git a/app/locale/zh-HANT.coffee b/app/locale/zh-HANT.coffee index 17efa98e0..14acbe304 100644 --- a/app/locale/zh-HANT.coffee +++ b/app/locale/zh-HANT.coffee @@ -6,6 +6,7 @@ module.exports = nativeDescription: "繁体中文", englishDescription: "Chinese # send: "Send" cancel: "取消" save: "存檔" +# publish: "Publish" # create: "Create" delay_1_sec: "1 秒" delay_3_sec: "3 秒" @@ -47,9 +48,6 @@ module.exports = nativeDescription: "繁体中文", englishDescription: "Chinese # versions: # save_version_title: "Save New Version" # new_major_version: "New Major Version" -# update_break_level: "(Could this update break old solutions of the level?)" -# update_break_component: "(Could this update break anything depending on this Component?)" -# update_break_system: "(Could this update break anything depending on this System?)" # cla_prefix: "To save changes, first you must agree to our" # cla_url: "CLA" # cla_suffix: "." @@ -75,6 +73,7 @@ module.exports = nativeDescription: "繁体中文", englishDescription: "Chinese creating: "帳號建立中..." sign_up: "註冊" log_in: "登入" +# social_signup: "Or, you can sign up through Facebook or G+:" home: slogan: "通過玩遊戲學習Javascript 腳本語言" @@ -151,7 +150,6 @@ module.exports = nativeDescription: "繁体中文", englishDescription: "Chinese wizard_tab: "巫師" password_tab: "密碼" emails_tab: "郵件" -# job_profile_tab: "Job Profile" # admin: "Admin" wizard_color: "巫師 衣服 顏色" new_password: "新密碼" @@ -326,7 +324,6 @@ module.exports = nativeDescription: "繁体中文", englishDescription: "Chinese # more: "More" # wiki: "Wiki" # live_chat: "Live Chat" -# level_publish: "Publish This Level (irreversible)?" # level_some_options: "Some Options?" # level_tab_thangs: "Thangs" # level_tab_scripts: "Scripts" @@ -361,7 +358,7 @@ module.exports = nativeDescription: "繁体中文", englishDescription: "Chinese # thang_search_title: "Search Thang Types Here" # level_search_title: "Search Levels Here" # signup_to_create: "Sign Up to Create a New Content" -# read_only_warning: "Note: you can't save any edits here, because you're not logged in as an admin." +# read_only_warning2: "Note: you can't save any edits here, because you're not logged in." # article: # edit_btn_preview: "Preview" @@ -395,6 +392,7 @@ module.exports = nativeDescription: "繁体中文", englishDescription: "Chinese # easy: "Easy" # medium: "Medium" # hard: "Hard" +# player: "Player" about: who_is_codecombat: "什麼是CodeCombat?" @@ -599,6 +597,9 @@ module.exports = nativeDescription: "繁体中文", englishDescription: "Chinese # simulate_all: "RESET AND SIMULATE GAMES" # games_simulated_by: "Games simulated by you:" # games_simulated_for: "Games simulated for you:" +# games_simulated: "Games simulated" +# games_played: "Games played" +# ratio: "Ratio" # leaderboard: "Leaderboard" # battle_as: "Battle as " # summary_your: "Your " @@ -663,3 +664,4 @@ module.exports = nativeDescription: "繁体中文", englishDescription: "Chinese # leaderboard: "Leaderboard" # user_schema: "User Schema" # user_profile: "User Profile" +# patches: "Patches" diff --git a/app/locale/zh.coffee b/app/locale/zh.coffee index dcd0038a7..3499c6e6c 100644 --- a/app/locale/zh.coffee +++ b/app/locale/zh.coffee @@ -6,6 +6,7 @@ module.exports = nativeDescription: "中文", englishDescription: "Chinese", tra # send: "Send" cancel: "退出" save: "保存" +# publish: "Publish" # create: "Create" # delay_1_sec: "1 second" # delay_3_sec: "3 seconds" @@ -47,9 +48,6 @@ module.exports = nativeDescription: "中文", englishDescription: "Chinese", tra # versions: # save_version_title: "Save New Version" # new_major_version: "New Major Version" -# update_break_level: "(Could this update break old solutions of the level?)" -# update_break_component: "(Could this update break anything depending on this Component?)" -# update_break_system: "(Could this update break anything depending on this System?)" # cla_prefix: "To save changes, first you must agree to our" # cla_url: "CLA" # cla_suffix: "." @@ -75,6 +73,7 @@ module.exports = nativeDescription: "中文", englishDescription: "Chinese", tra creating: "账户在创新中" sign_up: "注册" log_in: "以密码登录" +# social_signup: "Or, you can sign up through Facebook or G+:" home: slogan: "通过玩儿游戏学到Javascript脚本语言" @@ -151,7 +150,6 @@ module.exports = nativeDescription: "中文", englishDescription: "Chinese", tra # wizard_tab: "Wizard" # password_tab: "Password" # emails_tab: "Emails" -# job_profile_tab: "Job Profile" # admin: "Admin" # wizard_color: "Wizard Clothes Color" # new_password: "New Password" @@ -326,7 +324,6 @@ module.exports = nativeDescription: "中文", englishDescription: "Chinese", tra # more: "More" # wiki: "Wiki" # live_chat: "Live Chat" -# level_publish: "Publish This Level (irreversible)?" # level_some_options: "Some Options?" # level_tab_thangs: "Thangs" # level_tab_scripts: "Scripts" @@ -361,7 +358,7 @@ module.exports = nativeDescription: "中文", englishDescription: "Chinese", tra # thang_search_title: "Search Thang Types Here" # level_search_title: "Search Levels Here" # signup_to_create: "Sign Up to Create a New Content" -# read_only_warning: "Note: you can't save any edits here, because you're not logged in as an admin." +# read_only_warning2: "Note: you can't save any edits here, because you're not logged in." # article: # edit_btn_preview: "Preview" @@ -395,6 +392,7 @@ module.exports = nativeDescription: "中文", englishDescription: "Chinese", tra # easy: "Easy" # medium: "Medium" # hard: "Hard" +# player: "Player" # about: # who_is_codecombat: "Who is CodeCombat?" @@ -599,6 +597,9 @@ module.exports = nativeDescription: "中文", englishDescription: "Chinese", tra # simulate_all: "RESET AND SIMULATE GAMES" # games_simulated_by: "Games simulated by you:" # games_simulated_for: "Games simulated for you:" +# games_simulated: "Games simulated" +# games_played: "Games played" +# ratio: "Ratio" # leaderboard: "Leaderboard" # battle_as: "Battle as " # summary_your: "Your " @@ -663,3 +664,4 @@ module.exports = nativeDescription: "中文", englishDescription: "Chinese", tra # leaderboard: "Leaderboard" # user_schema: "User Schema" # user_profile: "User Profile" +# patches: "Patches" diff --git a/app/models/CocoModel.coffee b/app/models/CocoModel.coffee index e63e1cd0a..c93708ee2 100644 --- a/app/models/CocoModel.coffee +++ b/app/models/CocoModel.coffee @@ -21,7 +21,7 @@ class CocoModel extends Backbone.Model type: -> @constructor.className - + clone: (withChanges=true) -> # Backbone does not support nested documents clone = super() @@ -207,20 +207,20 @@ class CocoModel extends Backbone.Model return true if permission.access in ['owner', 'write'] return false - + getDelta: -> differ = deltasLib.makeJSONDiffer() differ.diff @_revertAttributes, @attributes - + applyDelta: (delta) -> newAttributes = $.extend(true, {}, @attributes) jsondiffpatch.patch newAttributes, delta @set newAttributes - + getExpandedDelta: -> delta = @getDelta() deltasLib.expandDelta(delta, @_revertAttributes, @schema()) - + addPatchToAcceptOnSave: (patch) -> @acceptedPatches ?= [] @acceptedPatches.push patch diff --git a/app/schemas/models/user.coffee b/app/schemas/models/user.coffee index 6bb3939e6..d07cc9ccd 100644 --- a/app/schemas/models/user.coffee +++ b/app/schemas/models/user.coffee @@ -59,7 +59,7 @@ UserSchema = c.object {}, lookingFor: {title: 'Looking For', type: 'string', enum: ['Full-time', 'Part-time', 'Remote', 'Contracting', 'Internship'], default: 'Full-time', description: 'What kind of developer position do you want?'} jobTitle: {type: 'string', maxLength: 50, title: 'Desired Job Title', description: 'What role are you looking for? Ex.: "Full Stack Engineer", "Front-End Developer", "iOS Developer"', default: 'Software Developer'} active: {title: 'Active', type: 'boolean', description: 'Want interview offers right now?'} - updated: c.date {title: 'Last Updated', description: 'How fresh your profile appears to employers. The fresher, the better. Profiles go inactive after 30 days.'} + updated: c.date {title: 'Last Updated', description: 'How fresh your profile appears to employers. Profiles go inactive after 4 weeks.'} name: c.shortString {title: 'Name', description: 'Name you want employers to see, like "Nick Winter".'} city: c.shortString {title: 'City', description: 'City you want to work in (or live in now), like "San Francisco" or "Lubbock, TX".', default: 'Defaultsville, CA', format: 'city'} country: c.shortString {title: 'Country', description: 'Country you want to work in (or live in now), like "USA" or "France".', default: 'USA', format: 'country'} @@ -74,6 +74,7 @@ UserSchema = c.object {}, employer: c.shortString {title: 'Employer', description: 'Name of your employer.'} role: c.shortString {title: 'Job Title', description: 'What was your job title or role?'} duration: c.shortString {title: 'Duration', description: 'When did you hold this gig? Ex.: "Feb 2013 - present".'} + description: {type: 'string', title: 'Description', description: 'What did you do there? (140 chars)', maxLength: 140} education: c.array {title: 'Education', description: 'List your academic ordeals.'}, c.object {title: 'Ordeal', description: 'Some education that befell you.', required: ['school', 'degree', 'duration']}, school: c.shortString {title: 'School', description: 'Name of your school.'} diff --git a/app/schemas/subscriptions/app.coffee b/app/schemas/subscriptions/app.coffee index 7d0673751..02471c801 100644 --- a/app/schemas/subscriptions/app.coffee +++ b/app/schemas/subscriptions/app.coffee @@ -2,11 +2,21 @@ module.exports = "application:idle-changed": {} # TODO schema + "fbapi-loaded": + {} # TODO schema + "logging-in-with-facebook": {} # TODO schema "facebook-logged-in": - {} # TODO schema + title: "Facebook logged in" + $schema: "http://json-schema.org/draft-04/schema#" + description: "Published when you successfully logged in with facebook" + type: "object" + properties: + response: + type: "string" + required: ["response"] "gapi-loaded": {} # TODO schema @@ -15,4 +25,11 @@ module.exports = {} # TODO schema "gplus-logged-in": - {} # TODO schema + title: "G+ logged in" + $schema: "http://json-schema.org/draft-04/schema#" + description: "Published when you successfully logged in with G+" + type: "object" + properties: + authResult: + type: "string" + required: ["authResult"] diff --git a/app/schemas/subscriptions/bus.coffee b/app/schemas/subscriptions/bus.coffee index 549793f3b..91569ae7f 100644 --- a/app/schemas/subscriptions/bus.coffee +++ b/app/schemas/subscriptions/bus.coffee @@ -9,19 +9,63 @@ module.exports = $ref: "bus" "bus:connected": - {} # TODO schema + title: "Bus Connected" + $schema: "http://json-schema.org/draft-04/schema#" + description: "Published when a Bus has connected" + type: "object" + properties: + bus: + $ref: "bus" "bus:disconnected": - {} # TODO schema + title: "Bus Disconnected" + $schema: "http://json-schema.org/draft-04/schema#" + description: "Published when a Bus has disconnected" + type: "object" + properties: + bus: + $ref: "bus" "bus:new-message": - {} # TODO schema + title: "Message sent" + $schema: "http://json-schema.org/draft-04/schema#" + description: "A new message was sent" + type: "object" + properties: + message: + type: "string" + bus: + $ref: "bus" "bus:player-joined": - {} # TODO schema + title: "Player joined" + $schema: "http://json-schema.org/draft-04/schema#" + description: "A new player has joined" + type: "object" + properties: + player: + type: "object" + bus: + $ref: "bus" "bus:player-left": - {} # TODO schema + title: "Player left" + $schema: "http://json-schema.org/draft-04/schema#" + description: "A player has left" + type: "object" + properties: + player: + type: "object" + bus: + $ref: "bus" "bus:player-states-changed": - {} # TODO schema \ No newline at end of file + title: "Player state changes" + $schema: "http://json-schema.org/draft-04/schema#" + description: "State of the players has changed" + type: "object" + properties: + player: + type: "array" + bus: + $ref: "bus" diff --git a/app/styles/account/profile.sass b/app/styles/account/profile.sass index 0d0f4e450..57c15b0fc 100644 --- a/app/styles/account/profile.sass +++ b/app/styles/account/profile.sass @@ -33,6 +33,7 @@ .job-profile-container width: 100% height: 100% + min-height: 600px padding: 0 display: table diff --git a/app/styles/contribute_classes.sass b/app/styles/contribute_classes.sass index 9244aca55..e4b8ff7fb 100644 --- a/app/styles/contribute_classes.sass +++ b/app/styles/contribute_classes.sass @@ -49,9 +49,15 @@ &:hover background-color: rgba(200, 244, 255, 0.2) - h4 - text-align: center + a:not(.has-github) + cursor: default + text-decoration: none + img max-width: 100px max-height: 100px + .caption + background-color: transparent + h4 + text-align: center diff --git a/app/styles/home.sass b/app/styles/home.sass index e2ba1fdb0..2c49541c7 100644 --- a/app/styles/home.sass +++ b/app/styles/home.sass @@ -7,6 +7,9 @@ text-align: center margin-top: 0 + #front-screenshot + margin: 15px 0 40px 150px + #trailer-wrapper position: relative margin: 0 auto 40px @@ -101,6 +104,8 @@ font-size: 30px #trailer-wrapper display: none + #front-screenshot + display: none #mobile-trailer-wrapper display: inline-block diff --git a/app/styles/play/ladder.sass b/app/styles/play/ladder.sass index 149caeac1..195cc814b 100644 --- a/app/styles/play/ladder.sass +++ b/app/styles/play/ladder.sass @@ -28,6 +28,9 @@ .ellipsis-row text-align: center + + .simulator-leaderboard-cell + text-align: center // friend column diff --git a/app/styles/play/level.sass b/app/styles/play/level.sass index 756e56af7..03b78c558 100644 --- a/app/styles/play/level.sass +++ b/app/styles/play/level.sass @@ -3,6 +3,8 @@ body.is-playing background-color: black + .footer + background-color: black #level-view margin: 0 auto diff --git a/app/templates/about.jade b/app/templates/about.jade index 869d5331e..ab7e09a41 100644 --- a/app/templates/about.jade +++ b/app/templates/about.jade @@ -157,7 +157,8 @@ block content .col-sm-8 - h3 Glen De Cauwsemaecker + h3 + a(href="http://www.glendc.com/") Glen De Cauwsemaecker p(data-i18n="about.glen_description") | Programmer and passionate game developer, diff --git a/app/templates/account/profile.jade b/app/templates/account/profile.jade index 6fee4c8af..e070c49ac 100644 --- a/app/templates/account/profile.jade +++ b/app/templates/account/profile.jade @@ -13,7 +13,7 @@ block content button.btn.edit-settings-button#toggle-job-profile-approved i.icon-cog span(data-i18n='account_profile.approved').approved Approved - span(data-i18n='account_profile.approved').not-approved Not Approved + span(data-i18n='account_profile.not_approved').not-approved Not Approved if user.get('jobProfile') - var profile = user.get('jobProfile'); @@ -64,11 +64,13 @@ block content div.duration.pull-right= job.duration | #{job.role} at #{job.employer} .clearfix + if job.description + div!= marked(job.description) if profile.education.length h3.experience-header img.header-icon(src="/images/pages/account/profile/education.png", alt="") - span(data-i18n="account_profile.work_experience") Education + span(data-i18n="account_profile.education") Education each school in profile.education div.duration.pull-right= school.duration | #{school.degree} at #{school.school} diff --git a/app/templates/contribute/adventurer.jade b/app/templates/contribute/adventurer.jade index 0cbe1e866..3b9367620 100644 --- a/app/templates/contribute/adventurer.jade +++ b/app/templates/contribute/adventurer.jade @@ -53,30 +53,12 @@ block content span(data-i18n="contribute.adventurer_join_suf") | so if you prefer to be notified those ways, sign up there! - if me.attributes.anonymous - div#sign-up.alert.alert-info - strong(data-i18n="contribute.alert_account_message_intro") - | Hey there! - span - span(data-i18n="contribute.alert_account_message_pref") - | To subscribe for class emails, you'll need to - a(data-toggle="coco-modal", data-target="modal/signup", data-i18n="contribute.alert_account_message_create_url") - | create an account - span - span(data-i18n="contribute.alert_account_message_suf") - | first. + .contributor-signup-anonymous + .contributor-signup(data-contributor-class-id="tester", data-contributor-class-name="adventurer") - label.checkbox(for="tester").well - input(type='checkbox', name="tester", id="tester") - span(data-i18n="contribute.adventurer_subscribe_desc") - | Get emails when there are new levels to test. - .saved-notification ✓ Saved - - //#Contributors - // h3(data-i18n="contribute.brave_adventurers") - // | Our Brave Adventurers: - // ul.adventurers - // li Kieizroe - // li ... many, many more + //h3(data-i18n="contribute.brave_adventurers") + // | Our Brave Adventurers: + // + //#contributor-list div.clearfix diff --git a/app/templates/contribute/ambassador.jade b/app/templates/contribute/ambassador.jade index dc1048ac6..2d1f65564 100644 --- a/app/templates/contribute/ambassador.jade +++ b/app/templates/contribute/ambassador.jade @@ -47,29 +47,12 @@ block content | solving levels can summon higher level wizards to help them. | This will be a great way for ambassadors to do their thing. We'll keep you posted! - if me.attributes.anonymous - div#sign-up.alert.alert-info - strong(data-i18n="contribute.alert_account_message_intro") - | Hey there! - span - span(data-i18n="contribute.alert_account_message_pref") - | To subscribe for class emails, you'll need to - a(data-toggle="coco-modal", data-target="modal/signup", data-i18n="contribute.alert_account_message_create_url") - | create an account - span - span(data-i18n="contribute.alert_account_message_suf") - | first. + .contributor-signup-anonymous + .contributor-signup(data-contributor-class-id="support", data-contributor-class-name="ambassador") - label.checkbox(for="support").well - input(type='checkbox', name="support", id="support") - span(data-i18n="contribute.ambassador_subscribe_desc") - | Get emails on support updates and multiplayer developments. - .saved-notification ✓ Saved - - //#Contributors - // h3(data-i18n="contribute.helpful_ambassadors") - // | Our Helpful Ambassadorsd: - // ul.ambassadors - // li + //h3(data-i18n="contribute.helpful_ambassadors") + // | Our Helpful Ambassadorsd: + // + //#contributor-list div.clearfix diff --git a/app/templates/contribute/archmage.jade b/app/templates/contribute/archmage.jade index db7dad7db..ae982472e 100644 --- a/app/templates/contribute/archmage.jade +++ b/app/templates/contribute/archmage.jade @@ -57,37 +57,12 @@ block content span(data-i18n="contribute.join_desc_4") | and we'll go from there! - if me.attributes.anonymous - div#sign-up.alert.alert-info - strong(data-i18n="contribute.alert_account_message_intro") - | Hey there! - span - span(data-i18n="contribute.alert_account_message_pref") - | To subscribe for class emails, you'll need to - a(data-toggle="coco-modal", data-target="modal/signup", data-i18n="contribute.alert_account_message_create_url") - | create an account - span - span(data-i18n="contribute.alert_account_message_suf") - | first. + .contributor-signup-anonymous + .contributor-signup(data-contributor-class-id="developer", data-contributor-class-name="archmage") - label.checkbox(for="developer").well - input(type='checkbox', name="developer", id="developer") - span(data-i18n="contribute.archmage_subscribe_desc") - | Get emails on new coding opportunities and announcements. - .saved-notification ✓ Saved + h3(data-i18n="contribute.powerful_archmages") + | Our Powerful Archmages: - #Contributors - h3(data-i18n="contribute.powerful_archmages") - | Our Powerful Archmages: - .row - for contributor in contributors - .col-xs-6.col-md-3 - .thumbnail - if contributor.avatar - img.img-responsive(src="/images/pages/contribute/archmage/" + contributor.avatar + "_small.png", alt="") - else - img.img-responsive(src="/images/pages/contribute/archmage.png", alt="") - .caption - h4= contributor.name + #contributor-list div.clearfix diff --git a/app/templates/contribute/artisan.jade b/app/templates/contribute/artisan.jade index 9e6d1320d..54a27327b 100644 --- a/app/templates/contribute/artisan.jade +++ b/app/templates/contribute/artisan.jade @@ -54,38 +54,13 @@ block content li a(href="http://discourse.codecombat.com", data-i18n="contribute.artisan_join_step4") Post your levels on the forum for feedback. - if me.attributes.anonymous - div#sign-up.alert.alert-info - strong(data-i18n="contribute.alert_account_message_intro") - | Hey there! - span - span(data-i18n="contribute.alert_account_message_pref") - | To subscribe for class emails, you'll need to - a(data-toggle="coco-modal", data-target="modal/signup", data-i18n="contribute.alert_account_message_create_url") - | create an account - span - span(data-i18n="contribute.alert_account_message_suf") - | first. + .contributor-signup-anonymous + .contributor-signup(data-contributor-class-id="level_creator", data-contributor-class-name="artisan") - label.checkbox(for="level_creator").well - input(type='checkbox', name="level_creator", id="level_creator") - span(data-i18n="contribute.artisan_subscribe_desc") - | Get emails on level editor updates and announcements. - .saved-notification ✓ Saved + h3(data-i18n="contribute.creative_artisans") + | Our Creative Artisans: - #Contributors - h3(data-i18n="contribute.creative_artisans") - | Our Creative Artisans: - .row - for contributor in contributors - .col-xs-6.col-md-3 - .thumbnail - if contributor.avatar - img.img-responsive(src="/images/pages/contribute/artisan/" + contributor.avatar + "_small.png", alt="") - else - img.img-responsive(src="/images/pages/contribute/artisan.png", alt="") - .caption - h4= contributor.name + #contributor-list div.clearfix diff --git a/app/templates/contribute/contribute.jade b/app/templates/contribute/contribute.jade index ffb7045a6..800b383e7 100644 --- a/app/templates/contribute/contribute.jade +++ b/app/templates/contribute/contribute.jade @@ -37,18 +37,7 @@ block content | - Nick, George, Scott, Michael, Jeremy and Glen hr - if me.attributes.anonymous - div#sign-up.alert.alert-info - strong(data-i18n="contribute.alert_account_message_intro") - | Hey there! - span - span(data-i18n="contribute.alert_account_message_pref") - | To subscribe for class emails, you'll need to - a(data-toggle="coco-modal", data-target="modal/signup", data-i18n="contribute.alert_account_message_create_url") - | create an account - span - span(data-i18n="contribute.alert_account_message_suf") - | first. + .contributor-signup-anonymous #archmage.header-scrolling-fix .class_image @@ -69,13 +58,7 @@ block content p.lead(data-i18n="contribute.more_about_archmage") | Learn More About Becoming an Archmage - label.checkbox(for="developer").well - input(type='checkbox', name="developer", id="developer") - span(data-i18n="contribute.archmage_subscribe_desc") - | Get emails on new coding opportunities and announcements. - .saved-notification - | ✓ - span(data-i18n="contribute.saved") Saved + .contributor-signup(data-contributor-class-id="developer", data-contributor-class-name="archmage") #artisan.header-scrolling-fix @@ -102,13 +85,7 @@ block content p.lead(data-i18n="contribute.more_about_artisan") | Learn More About Becoming An Artisan - label.checkbox(for="level_creator").well - input(type='checkbox', name="level_creator", id="level_creator") - span(data-i18n="contribute.artisan_subscribe_desc") - | Get emails on level editor updates and announcements. - .saved-notification - | ✓ - span(data-i18n="contribute.saved") Saved + .contributor-signup(data-contributor-class-id="level_creator", data-contributor-class-name="artisan") #adventurer.header-scrolling-fix @@ -130,13 +107,7 @@ block content p.lead(data-i18n="contribute.more_about_adventurer") | Learn More About Becoming an Adventurer - label.checkbox(for="tester").well - input(type='checkbox', name="tester", id="tester") - span(data-i18n="contribute.adventurer_subscribe_desc") - | Get emails when there are new levels to test. - .saved-notification - | ✓ - span(data-i18n="contribute.saved") Saved + .contributor-signup(data-contributor-class-id="tester", data-contributor-class-name="adventurer") #scribe.header-scrolling-fix @@ -162,13 +133,7 @@ block content p.lead(data-i18n="contribute.more_about_scribe") | Learn More About Becoming a Scribe - label.checkbox(for="article_editor").well - input(type='checkbox', name="article_editor", id="article_editor") - span(data-i18n="contribute.scribe_subscribe_desc") - | Get emails about article writing announcements. - .saved-notification - | ✓ - span(data-i18n="contribute.saved") Saved + .contributor-signup(data-contributor-class-id="article_editor", data-contributor-class-name="scribe") #diplomat.header-scrolling-fix @@ -191,14 +156,8 @@ block content p.lead(data-i18n="contribute.more_about_diplomat") | Learn More About Becoming a Diplomat - label.checkbox(for="translator").well - input(type='checkbox', name="translator", id="translator") - span(data-i18n="contribute.diplomat_subscribe_desc") - | Get emails about i18n developments and levels to translate. - .saved-notification - | ✓ - span(data-i18n="contribute.saved") Saved - + .contributor-signup(data-contributor-class-id="translator", data-contributor-class-name="diplomat") + #ambassador.header-scrolling-fix .class_image @@ -218,13 +177,7 @@ block content p.lead(data-i18n="contribute.more_about_ambassador") | Learn More About Becoming an Ambassador - label.checkbox(for="support").well - input(type='checkbox', name="support", id="support") - span(data-i18n="contribute.ambassador_subscribe_desc") - | Get emails on support updates and multiplayer developments. - .saved-notification - | ✓ - span(data-i18n="contribute.saved") Saved + .contributor-signup(data-contributor-class-id="support", data-contributor-class-name="ambassador") #counselor.header-scrolling-fix diff --git a/app/templates/contribute/contributor_list.jade b/app/templates/contribute/contributor_list.jade new file mode 100644 index 000000000..32e5ac9e3 --- /dev/null +++ b/app/templates/contribute/contributor_list.jade @@ -0,0 +1,13 @@ +.row + for contributor in contributors + .col-xs-6.col-md-3 + .thumbnail + - var src = "/images/pages/contribute/" + contributorClassName + ".png"; + - if(contributor.avatar) + - src = src.replace(contributorClassName, contributorClassName + "/" + contributor.avatar + "_small"); + - if(contributor.id) + - src = "/db/user/" + contributor.id + "/avatar?s=100&fallback=" + src; + a(href=contributor.github ? "https://github.com/codecombat/codecombat/commits?author=" + contributor.github : null, class=contributor.github ? 'has-github' : '') + img.img-responsive(src=src, alt=contributor.name) + .caption + h4= contributor.name diff --git a/app/templates/contribute/contributor_signup.jade b/app/templates/contribute/contributor_signup.jade new file mode 100644 index 000000000..2b9a8f188 --- /dev/null +++ b/app/templates/contribute/contributor_signup.jade @@ -0,0 +1,5 @@ +label.checkbox(for=contributorClassID).well + input(type='checkbox', name=contributorClassID, id=contributorClassID) + span(data-i18n="contribute.#{contributorClassName}_subscribe_desc") + .saved-notification ✓ Saved + diff --git a/app/templates/contribute/contributor_signup_anonymous.jade b/app/templates/contribute/contributor_signup_anonymous.jade new file mode 100644 index 000000000..5ee89a23a --- /dev/null +++ b/app/templates/contribute/contributor_signup_anonymous.jade @@ -0,0 +1,12 @@ +if me.attributes.anonymous + div#sign-up.alert.alert-info + strong(data-i18n="contribute.alert_account_message_intro") + | Hey there! + span + span(data-i18n="contribute.alert_account_message_pref") + | To subscribe for class emails, you'll need to + a(data-toggle="coco-modal", data-target="modal/signup", data-i18n="contribute.alert_account_message_create_url") + | create an account + span + span(data-i18n="contribute.alert_account_message_suf") + | first. diff --git a/app/templates/contribute/diplomat.jade b/app/templates/contribute/diplomat.jade index 3c161e778..1150bdda7 100644 --- a/app/templates/contribute/diplomat.jade +++ b/app/templates/contribute/diplomat.jade @@ -44,51 +44,37 @@ block content | , edit it online, and submit a pull request. Also, check this box below to | keep up-to-date on new internationalization developments! - if me.attributes.anonymous - div#sign-up.alert.alert-info - strong(data-i18n="contribute.alert_account_message_intro") - | Hey there! - span - span(data-i18n="contribute.alert_account_message_pref") - | To subscribe for class emails, you'll need to - a(data-toggle="coco-modal", data-target="modal/signup", data-i18n="contribute.alert_account_message_create_url") - | create an account - span - span(data-i18n="contribute.alert_account_message_suf") - | first. + .contributor-signup-anonymous + .contributor-signup(data-contributor-class-id="translator", data-contributor-class-name="diplomat") - label.checkbox(for="translator").well - input(type='checkbox', name="translator", id="translator") - span(data-i18n="contribute.diplomat_subscribe_desc") - | Get emails about i18n developments and levels to translate. - .saved-notification ✓ Saved + h3(data-i18n="contribute.translating_diplomats") + | Our Translating Diplomats: - #Contributors - h3(data-i18n="contribute.translating_diplomats") - | Our Translating Diplomats: - ul.diplomats - li Turkish - Nazım Gediz Aydındoğmuş, cobaimelan, wakeup - li Brazilian Portuguese - Gutenberg Barros, Kieizroe, Matthew Burt, brunoporto, cassiocardoso - li Portugal Portuguese - Matthew Burt, ReiDuKuduro - li German - Dirk, faabsen, HiroP0, Anon, bkimminich - li Thai - Kamolchanok Jittrepit - li Vietnamese - An Nguyen Hoang Thien - li Dutch - Glen De Cauwsemaecker, Guido Zuidhof, Ruben Vereecken, Jasper D'haene - li Greek - Stergios - li Latin American Spanish - Jesús Ruppel, Matthew Burt, Mariano Luzza - li Spain Spanish - Matthew Burt, DanielRodriguezRivero, Anon, Pouyio - li French - Xeonarno, Elfisen, Armaldio, MartinDelille, pstweb, veritable, jaybi, xavismeh, Anon, Feugy - li Hungarian - ferpeter, csuvsaregal, atlantisguru, Anon - li Japanese - g1itch, kengos - li Chinese - Adam23, spacepope, yangxuan8282, Cheng Zheng - li Polish - Anon, Kacper Ciepielewski - li Danish - Einar Rasmussen, sorsjen, Randi Hillerøe, Anon - li Slovak - Anon - li Persian - Reza Habibi (Rehb) - li Czech - vanous - li Russian - fess89, ser-storchak, Mr A - li Ukrainian - fess89 - li Italian - flauta - li Norwegian - bardeh + //#contributor-list + // TODO: collect CodeCombat userids for these guys so we can include a tiled list + ul.diplomats + li Turkish - Nazım Gediz Aydındoğmuş, cobaimelan, wakeup + li Brazilian Portuguese - Gutenberg Barros, Kieizroe, Matthew Burt, brunoporto, cassiocardoso + li Portugal Portuguese - Matthew Burt, ReiDuKuduro + li German - Dirk, faabsen, HiroP0, Anon, bkimminich + li Thai - Kamolchanok Jittrepit + li Vietnamese - An Nguyen Hoang Thien + li Dutch - Glen De Cauwsemaecker, Guido Zuidhof, Ruben Vereecken, Jasper D'haene + li Greek - Stergios + li Latin American Spanish - Jesús Ruppel, Matthew Burt, Mariano Luzza + li Spain Spanish - Matthew Burt, DanielRodriguezRivero, Anon, Pouyio + li French - Xeonarno, Elfisen, Armaldio, MartinDelille, pstweb, veritable, jaybi, xavismeh, Anon, Feugy + li Hungarian - ferpeter, csuvsaregal, atlantisguru, Anon + li Japanese - g1itch, kengos + li Chinese - Adam23, spacepope, yangxuan8282, Cheng Zheng + li Polish - Anon, Kacper Ciepielewski + li Danish - Einar Rasmussen, sorsjen, Randi Hillerøe, Anon + li Slovak - Anon + li Persian - Reza Habibi (Rehb) + li Czech - vanous + li Russian - fess89, ser-storchak, Mr A + li Ukrainian - fess89 + li Italian - flauta + li Norwegian - bardeh div.clearfix diff --git a/app/templates/contribute/scribe.jade b/app/templates/contribute/scribe.jade index eafab49b6..92155143c 100644 --- a/app/templates/contribute/scribe.jade +++ b/app/templates/contribute/scribe.jade @@ -44,37 +44,12 @@ block content | tell us a little about yourself, your experience with programming and | what sort of things you'd like to write about. We'll go from there! - if me.attributes.anonymous - div#sign-up.alert.alert-info - strong(data-i18n="contribute.alert_account_message_intro") - | Hey there! - span - span(data-i18n="contribute.alert_account_message_pref") - | To subscribe for class emails, you'll need to - a(data-toggle="coco-modal", data-target="modal/signup", data-i18n="contribute.alert_account_message_create_url") - | create an account - span - span(data-i18n="contribute.alert_account_message_suf") - | first. + .contributor-signup-anonymous + .contributor-signup(data-contributor-class-id="article_editor", data-contributor-class-name="scribe") - label.checkbox(for="article_editor").well - input(type='checkbox', name="article_editor", id="article_editor") - span(data-i18n="contribute.scribe_subscribe_desc") - | Get emails about article writing announcements. - .saved-notification ✓ Saved - - #Contributors - h3(data-i18n="contribute.diligent_scribes") - | Our Diligent Scribes: - ul.scribes - li Ryan Faidley - li Glen De Cauwsemaecker - li Mischa Lewis-Norelle - li Tavio - li Ronnie Cheng - li engstrom - li Dman19993 - li mattinsler - + h3(data-i18n="contribute.diligent_scribes") + | Our Diligent Scribes: + + #contributor-list(data-contributor-class-name="scribe") div.clearfix diff --git a/app/templates/home.jade b/app/templates/home.jade index dfd523f0c..0fa7022e5 100644 --- a/app/templates/home.jade +++ b/app/templates/home.jade @@ -4,21 +4,29 @@ block content h1#site-slogan(data-i18n="home.slogan") Learn to Code JavaScript by Playing a Game - //- if language is Chinese, we use youku, because China can't visit youtube. - //- otherwise, we use youtube. - if languageName == "zh-HANS" - #trailer-wrapper - <embed src="http://player.youku.com/player.php/sid/XNjk2Mzg5NjYw/v.swf" style="margin-left:15px; margin-top:8px;"allowFullScreen="true" quality="high" width="920" height="518" wmode="opaque"></embed> - img(src="/images/pages/home/video_border.png") - #mobile-trailer-wrapper - <embed src="http://player.youku.com/player.php/sid/XNjk2Mzg5NjYw/v.swf" style="margin-left:15px; margin-top:8px;"allowFullScreen="true" quality="high" width="280" height="158" wmode="opaque"></embed> - else - #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> - 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 + if frontPageContent == 'video' + //- if language is Chinese, we use youku, because China can't visit youtube. + //- otherwise, we use youtube. + if languageName == "zh-HANS" + #trailer-wrapper + <embed src="http://player.youku.com/player.php/sid/XNjk2Mzg5NjYw/v.swf" style="margin-left:15px; margin-top:8px;"allowFullScreen="true" quality="high" width="920" height="518" wmode="opaque"></embed> + img(src="/images/pages/home/video_border.png") + #mobile-trailer-wrapper + <embed src="http://player.youku.com/player.php/sid/XNjk2Mzg5NjYw/v.swf" style="margin-left:15px; margin-top:8px;"allowFullScreen="true" quality="high" width="280" height="158" wmode="opaque"></embed> + else + #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> + 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 + + else if frontPageContent == 'screenshot' + #front-screenshot + img(src="/images/pages/home/front_screenshot_01.png", alt="") + + else if frontPageContent == 'nothing' + p .alert.alert-danger.lt-ie10 strong(data-i18n="home.no_ie") CodeCombat does not run in Internet Explorer 9 or older. Sorry! diff --git a/app/templates/play/ladder.jade b/app/templates/play/ladder.jade index 1fe679657..2a749292f 100644 --- a/app/templates/play/ladder.jade +++ b/app/templates/play/ladder.jade @@ -57,4 +57,33 @@ block content p.simulation-count span(data-i18n="ladder.games_simulated_for") Games simulated for you: | - span#simulated-for-you= me.get('simulatedFor') || 0 \ No newline at end of file + span#simulated-for-you= me.get('simulatedFor') || 0 + + table.table.table-bordered.table-condensed.table-hover + tr + th(data-i18n="general.player").name-col-cell Player + th(data-i18n="ladder.games_simulated") Games simulated + th(data-i18n="ladder.games_played") Games played + th(data-i18n="ladder.ratio") Ratio + - var topSimulators = simulatorsLeaderboardData.topSimulators.models; + - var showJustTop = simulatorsLeaderboardData.inTopSimulators() || me.get('anonymous'); + - if(!showJustTop) topSimulators = topSimulators.slice(0, 10); + for user in topSimulators + - var myRow = user.id == me.id + tr(class=myRow ? "success" : "") + td.name-col-cell= user.get('name') || "Anonymous" + td.simulator-leaderboard-cell= user.get('simulatedBy') + td.simulator-leaderboard-cell= user.get('simulatedFor') + td.simulator-leaderboard-cell= Math.round((user.get('simulatedBy') / user.get('simulatedFor')) * 10) / 10 + + if !showJustTop && simulatorsLeaderboardData.nearbySimulators().length + tr(class="active") + td(colspan=4).ellipsis-row ... + for user in simulatorsLeaderboardData.nearbySimulators() + - var myRow = user.id == me.id + - var ratio = user.get('simulatedBy') / user.get('simulatedFor'); + tr(class=myRow ? "success" : "") + td.name-col-cell= user.get('name') || "Anonymous" + td.simulator-leaderboard-cell= user.get('simulatedBy') + td.simulator-leaderboard-cell= user.get('simulatedFor') + td.simulator-leaderboard-cell= _.isNaN(ratio) || ratio == Infinity ? '' : ratio.toFixed(1) \ No newline at end of file diff --git a/app/templates/play/level/modal/infinite_loop.jade b/app/templates/play/level/modal/infinite_loop.jade index bb563ba2e..b2128482b 100644 --- a/app/templates/play/level/modal/infinite_loop.jade +++ b/app/templates/play/level/modal/infinite_loop.jade @@ -8,5 +8,6 @@ block modal-body-content p(data-i18n="play_level.infinite_loop_explanation") The initial code to build the world never finished running. It's probably either really slow or has an infinite loop. Or there might be a bug. You can either try running this code again or reset the code to the default state. If that doesn't fix it, please let us know. block modal-footer-content - a(href='#', data-dismiss="modal", aria-hidden="true", data-i18n="play_level.infinite_loop_wait").btn#restart-level-infinite-loop-retry-button Try Again - a(href='#', data-dismiss="modal", aria-hidden="true", data-i18n="play_level.infinite_loop_reload").btn.btn-primary#restart-level-infinite-loop-confirm-button Reset Level + a(href='#', data-dismiss="modal", aria-hidden="true", data-i18n="play_level.infinite_loop_try_again").btn#restart-level-infinite-loop-retry-button Try Again + a(href='#', data-dismiss="modal", aria-hidden="true", data-i18n="play_level.infinite_loop_reset_level").btn.btn-danger#restart-level-infinite-loop-confirm-button Reset Level + a(href='#', data-dismiss="modal", aria-hidden="true", data-i18n="play_level.infinite_loop_comment_out").btn.btn-primary#restart-level-infinite-loop-comment-button Comment Out My Code diff --git a/app/views/account/job_profile_view.coffee b/app/views/account/job_profile_view.coffee index 940d52ffe..d5e112acc 100644 --- a/app/views/account/job_profile_view.coffee +++ b/app/views/account/job_profile_view.coffee @@ -10,9 +10,7 @@ module.exports = class JobProfileView extends CocoView 'lookingFor', 'active', 'name', 'city', 'country', 'skills', 'experience', 'shortDescription', 'longDescription', 'work', 'education', 'visa', 'projects', 'links', 'jobTitle', 'photoURL' ] - readOnlySettings: [ - 'updated' - ] + readOnlySettings: [] #['updated'] afterRender: -> super() diff --git a/app/views/account/settings_view.coffee b/app/views/account/settings_view.coffee index 0665a7c9c..5e1d606da 100644 --- a/app/views/account/settings_view.coffee +++ b/app/views/account/settings_view.coffee @@ -81,6 +81,7 @@ module.exports = class SettingsView extends View schema = _.cloneDeep me.schema() schema.properties = _.pick me.schema().properties, 'photoURL' schema.required = ['photoURL'] + console.log 'have data', data, 'schema', schema treemaOptions = filePath: "db/user/#{me.id}" schema: schema @@ -88,8 +89,8 @@ module.exports = class SettingsView extends View callbacks: {change: @onPictureChanged} @pictureTreema = @$el.find('#picture-treema').treema treemaOptions - @pictureTreema.build() - @pictureTreema.open() + @pictureTreema?.build() + @pictureTreema?.open() @$el.find('.gravatar-fallback').toggle not me.get 'photoURL' onPictureChanged: (e) => diff --git a/app/views/contribute/adventurer_view.coffee b/app/views/contribute/adventurer_view.coffee index cdb711e98..9428a8624 100644 --- a/app/views/contribute/adventurer_view.coffee +++ b/app/views/contribute/adventurer_view.coffee @@ -4,4 +4,5 @@ template = require 'templates/contribute/adventurer' module.exports = class AdventurerView extends ContributeClassView id: "adventurer-view" - template: template \ No newline at end of file + template: template + contributorClassName: 'adventurer' diff --git a/app/views/contribute/ambassador_view.coffee b/app/views/contribute/ambassador_view.coffee index 669951176..6ea7a68cd 100644 --- a/app/views/contribute/ambassador_view.coffee +++ b/app/views/contribute/ambassador_view.coffee @@ -5,3 +5,4 @@ template = require 'templates/contribute/ambassador' module.exports = class AmbassadorView extends ContributeClassView id: "ambassador-view" template: template + contributorClassName: 'ambassador' diff --git a/app/views/contribute/archmage_view.coffee b/app/views/contribute/archmage_view.coffee index ec18303f8..7ac7508ca 100644 --- a/app/views/contribute/archmage_view.coffee +++ b/app/views/contribute/archmage_view.coffee @@ -4,28 +4,30 @@ template = require 'templates/contribute/archmage' module.exports = class ArchmageView extends ContributeClassView id: "archmage-view" template: template + contributorClassName: 'archmage' contributors: [ - {name: "Tom Steinbrecher", avatar: "tom"} - {name: "Sébastien Moratinos", avatar: "sebastien"} - {name: "deepak1556", avatar: "deepak"} - {name: "Ronnie Cheng", avatar: "ronald"} - {name: "Chloe Fan", avatar: "chloe"} - {name: "Rachel Xiang", avatar: "rachel"} - {name: "Dan Ristic", avatar: "dan"} - {name: "Brad Dickason", avatar: "brad"} + {id: "52bfc3ecb7ec628868001297", name: "Tom Steinbrecher", github: "TomSteinbrecher"} + {id: "5272806093680c5817033f73", name: "Sébastien Moratinos", github: "smoratinos"} + {name: "deepak1556", avatar: "deepak", github: "deepak1556"} + {name: "Ronnie Cheng", avatar: "ronald", github: "rhc2104"} + {name: "Chloe Fan", avatar: "chloe", github: "chloester"} + {name: "Rachel Xiang", avatar: "rachel", github: "rdxiang"} + {name: "Dan Ristic", avatar: "dan", github: "dristic"} + {name: "Brad Dickason", avatar: "brad", github: "bdickason"} {name: "Rebecca Saines", avatar: "becca"} - {name: "Laura Watiker", avatar: "laura"} - {name: "Shiying Zheng", avatar: "shiying"} - {name: "Mischa Lewis-Norelle", avatar: "mischa"} + {name: "Laura Watiker", avatar: "laura", github: "lwatiker"} + {name: "Shiying Zheng", avatar: "shiying", github: "shiyingzheng"} + {name: "Mischa Lewis-Norelle", avatar: "mischa", github: "mlewisno"} {name: "Paul Buser", avatar: "paul"} {name: "Benjamin Stern", avatar: "ben"} {name: "Alex Cotsarelis", avatar: "alex"} {name: "Ken Stanley", avatar: "ken"} - {name: "devast8a", avatar: ""} - {name: "phansch", avatar: ""} - {name: "Zach Martin", avatar: ""} + {name: "devast8a", avatar: "", github: "devast8a"} + {name: "phansch", avatar: "", github: "phansch"} + {name: "Zach Martin", avatar: "", github: "zachster01"} {name: "David Golds", avatar: ""} - {name: "gabceb", avatar: ""} - {name: "MDP66", avatar: ""} + {name: "gabceb", avatar: "", github: "gabceb"} + {name: "MDP66", avatar: "", github: "MDP66"} + {name: "Alexandru Caciulescu", avatar: "", github: "Darredevil"} ] diff --git a/app/views/contribute/artisan_view.coffee b/app/views/contribute/artisan_view.coffee index b7d184d57..dbad64902 100644 --- a/app/views/contribute/artisan_view.coffee +++ b/app/views/contribute/artisan_view.coffee @@ -5,10 +5,11 @@ template = require 'templates/contribute/artisan' module.exports = class ArtisanView extends ContributeClassView id: "artisan-view" template: template + contributorClassName: 'artisan' contributors: [ {name: "Sootn", avatar: ""} - {name: "Zach Martin", avatar: ""} + {name: "Zach Martin", avatar: "", github: "zachster01"} {name: "Aftermath", avatar: ""} {name: "mcdavid1991", avatar: ""} {name: "dwhittaker", avatar: ""} @@ -19,6 +20,6 @@ module.exports = class ArtisanView extends ContributeClassView {name: "Axandre Oge", avatar: "axandre"} {name: "Katharine Chan", avatar: "katharine"} {name: "Derek Wong", avatar: "derek"} - {name: "Alexandru Caciulescu", avatar: ""} - {name: "Prabh Simran Singh Baweja", avatar: ""} + {name: "Alexandru Caciulescu", avatar: "", github: "Darredevil"} + {name: "Prabh Simran Singh Baweja", avatar: "", github: "prabh27"} ] diff --git a/app/views/contribute/contribute_class_view.coffee b/app/views/contribute/contribute_class_view.coffee index 5442ff719..246499694 100644 --- a/app/views/contribute/contribute_class_view.coffee +++ b/app/views/contribute/contribute_class_view.coffee @@ -1,6 +1,9 @@ SignupModalView = require 'views/modal/signup_modal' View = require 'views/kinds/RootView' {me} = require('lib/auth') +contributorSignupAnonymousTemplate = require 'templates/contribute/contributor_signup_anonymous' +contributorSignupTemplate = require 'templates/contribute/contributor_signup' +contributorListTemplate = require 'templates/contribute/contributor_list' module.exports = class ContributeClassView extends View navPrefix: '/contribute' @@ -16,6 +19,12 @@ module.exports = class ContributeClassView extends View afterRender: -> super() + @$el.find('.contributor-signup-anonymous').replaceWith(contributorSignupAnonymousTemplate(me: me)) + @$el.find('.contributor-signup').each -> + context = me: me, contributorClassID: $(@).data('contributor-class-id'), contributorClassName: $(@).data('contributor-class-name') + $(@).replaceWith(contributorSignupTemplate(context)) + @$el.find('#contributor-list').replaceWith(contributorListTemplate(contributors: @contributors, contributorClassName: @contributorClassName)) + checkboxes = @$el.find('input[type="checkbox"]').toArray() _.forEach checkboxes, (el) -> el = $(el) diff --git a/app/views/contribute/counselor_view.coffee b/app/views/contribute/counselor_view.coffee index b589c4ed9..6e5a6be2c 100644 --- a/app/views/contribute/counselor_view.coffee +++ b/app/views/contribute/counselor_view.coffee @@ -5,3 +5,4 @@ template = require 'templates/contribute/counselor' module.exports = class CounselorView extends ContributeClassView id: "counselor-view" template: template + contributorClassName: 'counselor' diff --git a/app/views/contribute/diplomat_view.coffee b/app/views/contribute/diplomat_view.coffee index 6b159bfed..0769af517 100644 --- a/app/views/contribute/diplomat_view.coffee +++ b/app/views/contribute/diplomat_view.coffee @@ -5,3 +5,4 @@ template = require 'templates/contribute/diplomat' module.exports = class DiplomatView extends ContributeClassView id: "diplomat-view" template: template + contributorClassName: 'diplomat' diff --git a/app/views/contribute/scribe_view.coffee b/app/views/contribute/scribe_view.coffee index 2aedbbb98..7f87a3275 100644 --- a/app/views/contribute/scribe_view.coffee +++ b/app/views/contribute/scribe_view.coffee @@ -5,3 +5,14 @@ template = require 'templates/contribute/scribe' module.exports = class ScribeView extends ContributeClassView id: "scribe-view" template: template + contributorClassName: 'scribe' + + contributors: [ + {name: "Ryan Faidley"} + {name: "Mischa Lewis-Norelle", github: "mlewisno"} + {name: "Tavio"} + {name: "Ronnie Cheng", github: "rhc2104"} + {name: "engstrom"} + {name: "Dman19993"} + {name: "mattinsler"} + ] diff --git a/app/views/editor/level/save_view.coffee b/app/views/editor/level/save_view.coffee index 33d94370b..f47b07657 100644 --- a/app/views/editor/level/save_view.coffee +++ b/app/views/editor/level/save_view.coffee @@ -28,7 +28,7 @@ module.exports = class LevelSaveView extends SaveVersionModal context.hasChanges = (context.levelNeedsSave or context.modifiedComponents.length or context.modifiedSystems.length) @lastContext = context context - + afterRender: -> super() changeEls = @$el.find('.changes-stub') @@ -37,8 +37,11 @@ module.exports = class LevelSaveView extends SaveVersionModal models = models.concat @lastContext.modifiedSystems for changeEl, i in changeEls model = models[i] - deltaView = new DeltaView({model:model}) - @insertSubView(deltaView, $(changeEl)) + try + deltaView = new DeltaView({model:model}) + @insertSubView(deltaView, $(changeEl)) + catch e + console.error "Couldn't create delta view:", e shouldSaveEntity: (m) -> return true if m.hasLocalChanges() diff --git a/app/views/home_view.coffee b/app/views/home_view.coffee index d3f5494a9..1e314aed0 100644 --- a/app/views/home_view.coffee +++ b/app/views/home_view.coffee @@ -4,6 +4,7 @@ WizardSprite = require 'lib/surface/WizardSprite' ThangType = require 'models/ThangType' Simulator = require 'lib/simulator/Simulator' {me} = require '/lib/auth' +application = require 'application' module.exports = class HomeView extends View id: 'home-view' @@ -16,14 +17,18 @@ module.exports = class HomeView extends View getRenderData: -> c = super() if $.browser - majorVersion = parseInt($.browser.version.split('.')[0]) + majorVersion = $.browser.versionNumber c.isOldBrowser = true if $.browser.mozilla && majorVersion < 21 c.isOldBrowser = true if $.browser.chrome && majorVersion < 17 - c.isOldBrowser = true if $.browser.safari && majorVersion < 536 + c.isOldBrowser = true if $.browser.safari && majorVersion < 6 else console.warn 'no more jquery browser version...' c.isEnglish = (me.get('preferredLanguage') or 'en').startsWith 'en' c.languageName = me.get('preferredLanguage') + # A/B test: https://github.com/codecombat/codecombat/issues/769 + c.frontPageContent = {0: "video", 1: "screenshot", 2: "nothing"}[me.get('testGroupNumber') % 3] + application.tracker.identify frontPageContent: c.frontPageContent + application.tracker.trackEvent 'Front Page Content', frontPageContent: c.frontPageContent c afterRender: -> @@ -40,4 +45,4 @@ module.exports = class HomeView extends View href = playLink.attr("href").split("/") href[href.length-1] = lastLevel if href.length isnt 0 href = href.join("/") - playLink.attr("href", href) \ No newline at end of file + playLink.attr("href", href) diff --git a/app/views/modal/save_version_modal.coffee b/app/views/modal/save_version_modal.coffee index 8c49327f5..fda6b3951 100644 --- a/app/views/modal/save_version_modal.coffee +++ b/app/views/modal/save_version_modal.coffee @@ -31,8 +31,11 @@ module.exports = class SaveVersionModal extends ModalView super() @$el.find(if me.get('signedCLA') then '#accept-cla-wrapper' else '#save-version-button').hide() changeEl = @$el.find('.changes-stub') - deltaView = new DeltaView({model:@model}) - @insertSubView(deltaView, changeEl) + try + deltaView = new DeltaView({model:@model}) + @insertSubView(deltaView, changeEl) + catch e + console.error "Couldn't create delta view:", e @$el.find('.commit-message input').attr('placeholder', $.i18n.t('general.commit_msg')) onClickSaveButton: -> @@ -61,7 +64,7 @@ module.exports = class SaveVersionModal extends ModalView res.success => @hide() - + onClickCLALink: -> window.open('/cla', 'cla', 'height=800,width=900') @@ -79,4 +82,4 @@ module.exports = class SaveVersionModal extends ModalView @$el.find('#save-version-button').show() onAgreeFailed: => - @$el.find('#agreement-button').text('Failed').prop('disabled', false) \ No newline at end of file + @$el.find('#agreement-button').text('Failed').prop('disabled', false) diff --git a/app/views/play/ladder/ladder_tab.coffee b/app/views/play/ladder/ladder_tab.coffee index b9fddcf38..59d04b102 100644 --- a/app/views/play/ladder/ladder_tab.coffee +++ b/app/views/play/ladder/ladder_tab.coffee @@ -41,7 +41,7 @@ module.exports = class LadderTabView extends CocoView checkFriends: -> return if @checked or (not window.FB) or (not window.gapi) @checked = true - + @addSomethingToLoad("facebook_status") FB.getLoginStatus (response) => @facebookStatus = response.status @@ -65,7 +65,7 @@ module.exports = class LadderTabView extends CocoView loadFacebookFriends: -> @addSomethingToLoad("facebook_friends") FB.api '/me/friends', @onFacebookFriendsLoaded - + onFacebookFriendsLoaded: (response) => @facebookData = response.data @loadFacebookFriendSessions() @@ -89,7 +89,7 @@ module.exports = class LadderTabView extends CocoView friend.otherTeam = if friend.team is 'humans' then 'ogres' else 'humans' friend.imageSource = "http://graph.facebook.com/#{friend.facebookID}/picture" @facebookFriendSessions = result - + # GOOGLE PLUS onConnectGPlus: -> @@ -98,10 +98,10 @@ module.exports = class LadderTabView extends CocoView application.gplusHandler.reauthorize() onConnectedWithGPlus: -> location.reload() if @connecting - + gplusSessionStateLoaded: -> if application.gplusHandler.loggedIn - @addSomethingToLoad("gplus_friends") + @addSomethingToLoad("gplus_friends", 0) # this might not load ever, so we can't wait for it application.gplusHandler.loadFriends @gplusFriendsLoaded gplusFriendsLoaded: (friends) => @@ -127,7 +127,7 @@ module.exports = class LadderTabView extends CocoView friend.otherTeam = if friend.team is 'humans' then 'ogres' else 'humans' friend.imageSource = friendsMap[friend.gplusID].image.url @gplusFriendSessions = result - + # LADDER LOADING refreshLadder: -> @@ -140,7 +140,7 @@ module.exports = class LadderTabView extends CocoView render: -> super() - + @$el.find('.histogram-display').each (i, el) => histogramWrapper = $(el) team = _.find @teams, name: histogramWrapper.data('team-name') @@ -149,7 +149,7 @@ module.exports = class LadderTabView extends CocoView $.get("/db/level/#{@level.get('slug')}/histogram_data?team=#{team.name.toLowerCase()}", (data) -> histogramData = data) ).then => @generateHistogram(histogramWrapper, histogramData, team.name.toLowerCase()) - + getRenderData: -> ctx = super() ctx.level = @level @@ -166,7 +166,7 @@ module.exports = class LadderTabView extends CocoView #renders twice, hack fix if $("#"+histogramElement.attr("id")).has("svg").length then return histogramData = histogramData.map (d) -> d*100 - + margin = top: 20 right: 20 @@ -175,17 +175,17 @@ module.exports = class LadderTabView extends CocoView 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) @@ -194,25 +194,25 @@ module.exports = class LadderTabView extends CocoView 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)})") - + .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 + if playerScore = @leaderboards[teamName].session?.get('totalScore') + playerScore *= 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) @@ -220,7 +220,7 @@ module.exports = class LadderTabView extends CocoView 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") @@ -230,14 +230,14 @@ module.exports = class LadderTabView extends CocoView .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: -> allFriendSessions = (@facebookFriendSessions or []).concat(@gplusFriendSessions or []) sessions = _.uniq allFriendSessions, false, (session) -> session._id @@ -249,11 +249,11 @@ class LeaderboardData extends CocoClass ### Consolidates what you need to load for a leaderboard into a single Backbone Model-like object. ### - + constructor: (@level, @team, @session) -> super() @fetch() - + fetch: -> @topPlayers = new LeaderboardCollection(@level, {order:-1, scoreOffset: HIGHEST_SCORE, team: @team, limit: 20}) promises = [] @@ -279,7 +279,7 @@ class LeaderboardData extends CocoClass @trigger 'sync', @ # 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. - + onFail: (resource, jqxhr) => return if @destroyed @trigger 'error', @, jqxhr diff --git a/app/views/play/ladder_view.coffee b/app/views/play/ladder_view.coffee index 58366fa58..2b8e3a2b8 100644 --- a/app/views/play/ladder_view.coffee +++ b/app/views/play/ladder_view.coffee @@ -10,6 +10,8 @@ application = require 'application' LadderTabView = require './ladder/ladder_tab' MyMatchesTabView = require './ladder/my_matches_tab' LadderPlayModal = require './ladder/play_modal' +SimulatorsLeaderboardCollection = require 'collections/SimulatorsLeaderboardCollection' +CocoClass = require 'lib/CocoClass' HIGHEST_SCORE = 1000000 @@ -42,6 +44,8 @@ module.exports = class LadderView extends RootView @sessions.fetch({}) @addResourceToLoad(@sessions, 'your_sessions') @addResourceToLoad(@level, 'level') + @simulatorsLeaderboardData = new SimulatorsLeaderboardData(me) + @addResourceToLoad(@simulatorsLeaderboardData, 'top_simulators') @simulator = new Simulator() @listenTo(@simulator, 'statusUpdate', @updateSimulationStatus) @teams = [] @@ -58,6 +62,8 @@ module.exports = class LadderView extends RootView ctx.teams = @teams ctx.levelID = @levelID ctx.levelDescription = marked(@level.get('description')) if @level.get('description') + ctx.simulatorsLeaderboardData = @simulatorsLeaderboardData + ctx._ = _ ctx afterRender: -> @@ -121,17 +127,17 @@ module.exports = class LadderView extends RootView onClickPlayButton: (e) -> @showPlayModal($(e.target).closest('.play-button').data('team')) - + resimulateAllSessions: -> postData = originalLevelID: @level.get('original') levelMajorVersion: @level.get('version').major console.log postData - + $.ajax url: '/queue/scoring/resimulateAllSessions' method: 'POST' - data: postData + data: postData complete: (jqxhr) -> console.log jqxhr.responseText @@ -156,3 +162,53 @@ module.exports = class LadderView extends RootView clearInterval @refreshInterval @simulator.destroy() super() + +class SimulatorsLeaderboardData extends CocoClass + ### + Consolidates what you need to load for a leaderboard into a single Backbone Model-like object. + ### + + constructor: (@me) -> + super() + @fetch() + + fetch: -> + @topSimulators = new SimulatorsLeaderboardCollection({order:-1, scoreOffset: -1, limit: 20}) + promises = [] + promises.push @topSimulators.fetch() + unless @me.get('anonymous') + score = @me.get('simulatedBy') or 0 + @playersAbove = new SimulatorsLeaderboardCollection({order:1, scoreOffset: score, limit: 4}) + promises.push @playersAbove.fetch() + if score + @playersBelow = new SimulatorsLeaderboardCollection({order:-1, scoreOffset: score, limit: 4}) + promises.push @playersBelow.fetch() + @promise = $.when(promises...) + @promise.then @onLoad + @promise.fail @onFail + @promise + + onLoad: => + return if @destroyed + @loaded = true + @trigger 'sync', @ + + onFail: (resource, jqxhr) => + return if @destroyed + @trigger 'error', @, jqxhr + + inTopSimulators: -> + return me.id in (user.id for user in @topSimulators.models) + + nearbySimulators: -> + l = [] + above = @playersAbove.models + above.reverse() + l = l.concat(above) + l.push @me + l = l.concat(@playersBelow.models) if @playersBelow + l + + allResources: -> + resources = [@topSimulators, @playersAbove, @playersBelow] + return (r for r in resources when r) diff --git a/app/views/play/level/level_loading_view.coffee b/app/views/play/level/level_loading_view.coffee index 8035c5d14..f242acec3 100644 --- a/app/views/play/level/level_loading_view.coffee +++ b/app/views/play/level/level_loading_view.coffee @@ -44,4 +44,4 @@ module.exports = class LevelLoadingView extends View onUnveilEnded: => return if @destroyed - Backbone.Mediator.publish 'onLoadingViewUnveiled', view: @ + Backbone.Mediator.publish 'level:loading-view-unveiled', view: @ diff --git a/app/views/play/level/modal/infinite_loop_modal.coffee b/app/views/play/level/modal/infinite_loop_modal.coffee index f26185103..ff89e229f 100644 --- a/app/views/play/level/modal/infinite_loop_modal.coffee +++ b/app/views/play/level/modal/infinite_loop_modal.coffee @@ -8,3 +8,4 @@ module.exports = class InfiniteLoopModal extends View events: 'click #restart-level-infinite-loop-retry-button': -> Backbone.Mediator.publish 'tome:cast-spell' 'click #restart-level-infinite-loop-confirm-button': -> Backbone.Mediator.publish 'restart-level' + 'click #restart-level-infinite-loop-comment-button': -> Backbone.Mediator.publish 'tome:comment-my-code' diff --git a/app/views/play/level/tome/spell.coffee b/app/views/play/level/tome/spell.coffee index 832d59623..573ff9206 100644 --- a/app/views/play/level/tome/spell.coffee +++ b/app/views/play/level/tome/spell.coffee @@ -90,8 +90,10 @@ module.exports = class Spell problems: jshint_W040: {level: "ignore"} jshint_W030: {level: "ignore"} # aether_NoEffect instead - jshint_W038: {level: "ignore"} #eliminates hoisting problems - jshint_W091: {level: "ignore"} #eliminates more hoisting problems + jshint_W038: {level: "ignore"} # eliminates hoisting problems + jshint_W091: {level: "ignore"} # eliminates more hoisting problems + jshint_E043: {level: "ignore"} # https://github.com/codecombat/codecombat/issues/813 -- since we can't actually tell JSHint to really ignore things + jshint_Unknown: {level: "ignore"} # E043 also triggers Unknown, so ignore that, too aether_MissingThis: {level: (if thang.requiresThis then 'error' else 'warning')} language: aceConfig.language ? 'javascript' functionName: @name diff --git a/app/views/play/level/tome/spell_view.coffee b/app/views/play/level/tome/spell_view.coffee index 5a8dd6a57..4951b6915 100644 --- a/app/views/play/level/tome/spell_view.coffee +++ b/app/views/play/level/tome/spell_view.coffee @@ -82,7 +82,7 @@ module.exports = class SpellView extends View @ace.setShowPrintMargin false @ace.setShowInvisibles aceConfig.invisibles @ace.setBehavioursEnabled aceConfig.behaviors - @ace.setAnimatedScroll true + @ace.setAnimatedScroll true @ace.setKeyboardHandler @keyBindings[aceConfig.keyBindings ? 'default'] @toggleControls null, @writable @aceSession.selection.on 'changeCursor', @onCursorActivity diff --git a/app/views/play/level/tome/tome_view.coffee b/app/views/play/level/tome/tome_view.coffee index e7cc1d7e8..26246b26c 100644 --- a/app/views/play/level/tome/tome_view.coffee +++ b/app/views/play/level/tome/tome_view.coffee @@ -51,6 +51,7 @@ module.exports = class TomeView extends View 'tome:change-language': 'updateLanguageForAllSpells' 'surface:sprite-selected': 'onSpriteSelected' 'god:new-world-created': 'onNewWorld' + 'tome:comment-my-code': 'onCommentMyCode' events: 'click #spell-view': 'onSpellViewClick' @@ -78,6 +79,14 @@ module.exports = class TomeView extends View @thangList.adjustThangs @spells, thangs @spellList.adjustSpells @spells + onCommentMyCode: (e) -> + for spellKey, spell of @spells when spell.canWrite() + console.log "Commenting out", spellKey + commentedSource = 'return; // Commented out to stop infinite loop.\n' + spell.getSource() + spell.view.updateACEText commentedSource + spell.view.recompile false + @cast() + createWorker: -> return # In progress @@ -130,7 +139,7 @@ module.exports = class TomeView extends View @thangSpells[thang.id].push spellKey unless method.cloneOf skipProtectAPI = @getQueryVariable "skip_protect_api", not @options.ladderGame - skipFlow = @getQueryVariable "skip_flow", @options.levelID is 'brawlwood' + skipFlow = @getQueryVariable "skip_flow", @options.levelID is 'brawlwood' or @options.levelID is 'resource-gathering-multiplayer' spell = @spells[spellKey] = new Spell programmableMethod: method, spellKey: spellKey, pathComponents: pathPrefixComponents.concat(pathComponents), session: @options.session, supermodel: @supermodel, skipFlow: skipFlow, skipProtectAPI: skipProtectAPI, worker: @worker for thangID, spellKeys of @thangSpells thang = world.getThangByID thangID diff --git a/app/views/play/level_view.coffee b/app/views/play/level_view.coffee index ea5270c2e..56a9607e2 100644 --- a/app/views/play/level_view.coffee +++ b/app/views/play/level_view.coffee @@ -77,7 +77,7 @@ module.exports = class PlayLevelView extends View me.set 'hourOfCode', true me.save() $('body').append($("<img src='http://code.org/api/hour/begin_codecombat.png' style='visibility: hidden;'>")) - window.tracker?.trackEvent 'Hour of Code Begin', {} + application.tracker?.trackEvent 'Hour of Code Begin', {} @isEditorPreview = @getQueryVariable 'dev' @sessionID = @getQueryVariable 'session' @@ -94,6 +94,7 @@ module.exports = class PlayLevelView extends View setTimeout f, 100 else @load() + application.tracker?.trackEvent 'Started Level Load', level: @levelID, label: @levelID onLevelLoadError: (e) -> application.router.navigate "/play?not_found=#{@levelID}", {trigger: true} @@ -107,6 +108,7 @@ module.exports = class PlayLevelView extends View @load() load: -> + @loadStartTime = new Date() @levelLoader = new LevelLoader supermodel: @supermodel, levelID: @levelID, sessionID: @sessionID, opponentSessionID: @getQueryVariable('opponent'), team: @getQueryVariable("team") @listenToOnce(@levelLoader, 'loaded-all', @onLevelLoaderLoaded) @listenTo(@levelLoader, 'progress', @onLevelLoaderProgressChanged) @@ -210,6 +212,11 @@ module.exports = class PlayLevelView extends View onLoadingViewUnveiled: (e) -> @removeSubView @loadingView @loadingView = null + unless @isEditorPreview + @loadEndTime = new Date() + loadDuration = @loadEndTime - @loadStartTime + application.tracker?.trackEvent 'Finished Level Load', level: @levelID, label: @levelID, loadDuration: loadDuration + application.tracker?.trackTiming loadDuration, 'Level Load Time', @levelID, @levelID onSupermodelLoadedOne: => @modelsLoaded ?= 0 @@ -273,18 +280,25 @@ module.exports = class PlayLevelView extends View $('#level-done-button').show() @showVictory() if e.showModal setTimeout(@preloadNextLevel, 3000) + return if @victorySeen + @victorySeen = true + victoryTime = (new Date()) - @loadEndTime + if victoryTime > 10 * 1000 # Don't track it if we're reloading an already-beaten level + application.tracker?.trackEvent 'Saw Victory', level: @world.name, label: @world.name + application.tracker?.trackTiming victoryTime, 'Level Victory Time', @levelID, @levelID, 100 showVictory: -> - options = {level: @level, supermodel: @supermodel, session:@session} + options = {level: @level, supermodel: @supermodel, session: @session} docs = new VictoryModal(options) @openModalView(docs) - window.tracker?.trackEvent 'Saw Victory', level: @world.name, label: @world.name + if me.get('anonymous') + window.nextLevelURL = @getNextLevelID() # Signup will go here on completion instead of reloading. onRestartLevel: -> @tome.reloadAllCode() Backbone.Mediator.publish 'level:restarted' $('#level-done-button', @$el).hide() - window.tracker?.trackEvent 'Confirmed Restart', level: @world.name, label: @world.name + application.tracker?.trackEvent 'Confirmed Restart', level: @world.name, label: @world.name onNewWorld: (e) -> @world = e.world @@ -292,14 +306,13 @@ module.exports = class PlayLevelView extends View onInfiniteLoop: (e) -> return unless e.firstWorld @openModalView new InfiniteLoopModal() - window.tracker?.trackEvent 'Saw Initial Infinite Loop', level: @world.name, label: @world.name + application.tracker?.trackEvent 'Saw Initial Infinite Loop', level: @world.name, label: @world.name onPlayNextLevel: -> - nextLevel = @getNextLevel() - nextLevelID = nextLevel.get('slug') or nextLevel.id - url = "/play/level/#{nextLevelID}" + nextLevelID = @getNextLevelID() + nextLevelURL = @getNextLevelURL() Backbone.Mediator.publish 'router:navigate', { - route: url, + route: nextLevelURL, viewClass: PlayLevelView, viewArgs: [{supermodel:@supermodel}, nextLevelID]} @@ -308,6 +321,12 @@ module.exports = class PlayLevelView extends View levels = @supermodel.getModels(Level) return l for l in levels when l.get('original') is nextLevelOriginal + getNextLevelID: -> + nextLevel = @getNextLevel() + nextLevelID = nextLevel.get('slug') or nextLevel.id + + getNextLevelURL: -> "/play/level/#{@getNextLevelID()}" + onHighlightDom: (e) -> if e.delay delay = e.delay @@ -472,5 +491,6 @@ module.exports = class PlayLevelView extends View clearInterval(@pointerInterval) @bus?.destroy() #@instance.save() unless @instance.loading + delete window.nextLevelURL console.profileEnd?() if PROFILE_ME super() diff --git a/app/views/play/spectate_view.coffee b/app/views/play/spectate_view.coffee index 7a3058212..93db38908 100644 --- a/app/views/play/spectate_view.coffee +++ b/app/views/play/spectate_view.coffee @@ -208,8 +208,9 @@ module.exports = class SpectateLevelView extends View @loadingView?.unveil() onLoadingViewUnveiled: (e) -> - @removeSubView @loadingView - @loadingView = null + # Don't remove it; we want its decoration around on large screens. + #@removeSubView @loadingView + #@loadingView = null onSupermodelLoadedOne: => @modelsLoaded ?= 0 diff --git a/app/views/play_view.coffee b/app/views/play_view.coffee index 349f900c7..3a61c9a8b 100644 --- a/app/views/play_view.coffee +++ b/app/views/play_view.coffee @@ -204,6 +204,14 @@ module.exports = class PlayView extends View image: '/file/db/level/526fd3043c637ece50001bb2/the_herd_icon.png' description: "Transfer a stack of ogres while preserving their honor. - by Alexandru" } + { + name: 'Find the Spy' + difficulty: 2 + id: 'find-the-spy' + image: '/file/db/level/526ae95c1e5cd30000000008/zone_of_danger_icon.png' + description: "Identify the spies hidden among your soldiers - by Nathan Gossett" + } + #{ # name: 'Enemy Artillery' # difficulty: 1 diff --git a/bower.json b/bower.json index 2c7d15146..24a139f6d 100644 --- a/bower.json +++ b/bower.json @@ -42,7 +42,8 @@ "jquery.tablesorter": "~2.15.13", "treema": ">=0.0.1", "bootstrap": "~3.1.1", - "validated-backbone-mediator": "~0.1.3" + "validated-backbone-mediator": "~0.1.3", + "jquery.browser": "~0.0.6" }, "overrides": { "backbone": { @@ -58,7 +59,11 @@ "main": "lib/underscore.string.js" }, "jsondiffpatch": { - "main": ["build/bundle-full.js", "build/formatters.js", "src/formatters/html.css"] + "main": [ + "build/bundle-full.js", + "build/formatters.js", + "src/formatters/html.css" + ] }, "jquery.tablesorter": { "main": [ diff --git a/scripts/windows/coco-dev-setup/batch/config/localized/license-ru.coco b/scripts/windows/coco-dev-setup/batch/config/localized/license-ru.coco new file mode 100644 index 000000000..48ad97ea1 --- /dev/null +++ b/scripts/windows/coco-dev-setup/batch/config/localized/license-ru.coco @@ -0,0 +1,10 @@ + +��業��� MIT (���) + +Copyright (c) 2014 CodeCombat Inc. � ��㣨� ���⭨�� + +������ ��業��� ࠧ�蠥� ��栬, ����稢訬 ����� ������� �ணࠬ����� ���ᯥ祭�� � ᮯ������饩 ���㬥��樨 (� ���쭥�襬 ����㥬묨 <�ணࠬ���� ���ᯥ祭��>), ������������ �ᯮ�짮���� �ணࠬ���� ���ᯥ祭�� ��� ��࠭�祭��, ������ ����࠭�祭��� �ࠢ� �� �ᯮ�짮�����, ��������, ���������, ����������, �㡫�����, �����࠭����, �㡫�業������ �/��� �த��� ����� �ணࠬ����� ���ᯥ祭��, ⠪�� ��� � ��栬, ����� �।��⠢����� ������ �ணࠬ���� ���ᯥ祭��, �� ᮡ���� ����� ����: + +��������� ��� 㢥�������� �� ����� �ࠢ� � ����� ���� ������ ���� ����祭� �� �� ����� ��� ���稬� ��� ������� �ணࠬ����� ���ᯥ祭��. + +������ ����������� ����������� ��������������� <��� ����>, ��� �����-���� ��������, ���� ���������� ��� ���������������, �������, �� �� ������������� ���������� �������� �����������, ������������ �� ��� ����������� ���������� � ���������� ��������� ����. �� � ����� ������ ������ ��� ��������������� �� ����� ��������������� �� ����� � ���������� ������, ������� ��� ������ ���������� �� ����������� ����������, �������� ��� �����, ��������� ��, ������� �������� ��� ��������� � ����������� ������������ ��� �������������� ������������ ����������� ��� ����� ���������� � ����������� ������������. \ No newline at end of file diff --git a/scripts/windows/coco-dev-setup/batch/config/localized/readme-nl.coco b/scripts/windows/coco-dev-setup/batch/config/localized/readme-nl.coco index 40665c28c..97258bb1b 100755 --- a/scripts/windows/coco-dev-setup/batch/config/localized/readme-nl.coco +++ b/scripts/windows/coco-dev-setup/batch/config/localized/readme-nl.coco @@ -7,23 +7,24 @@ ============================================================================= -Congratulations, you are now part of the CodeCombat community. -Now that your Develop Environment has been setup, you are ready to start -contributing and help us make this world a better place. - -Do you have questions or would you like to meet us? -Talk with us on hipchat @ https://www.hipchat.com/g3plnOKqa - -Another way to reach is, is by visiting our forum. -You can find it @ http://discourse.codecombat.com/ - -You can read about the latest developments on our blog site. -This one can be found @ http://blog.codecombat.com/ - -Last but not least, you can find most of our documentation -and information on our wiki @ https://github.com/codecombat/codecombat/wiki - -We hope you'll enjoy yourself within our community, just as much as us. +Gefeliciteerd, je bent nu een deel van de CodeCombat gemeenschap. +Nu dat je ontwikkelingsomgeving volledig klaar is kun je beginnen met bijdragen +en ons helpen de wereld een betere plek te maken. + +Heb je enige vragen of wil je ons ontmoeten? +Praat met ons op hipchat @ https://www.hipchat.com/g3plnOKqa + +Je kunt ons ook bereiken via de forums. +Deze zijn te vinden @ http://discourse.codecombat.com/ + +De laatste ontwikkelingen kun je ook altijd volgen op onze blog. +Deze is te vinden @ http://blog.codecombat.com/ + +Tenslotte kun je de meeste documentatie en informatie vinden +op onze wiki @ https://github.com/codecombat/codecombat/wiki + +We hopen dat je het naar je zin zult hebben en net zoveel plezier zult beleven als wij. - Nick, George, Scott, Michael, Jeremy and Glen + diff --git a/scripts/windows/coco-dev-setup/batch/config/localized/readme-ru.coco b/scripts/windows/coco-dev-setup/batch/config/localized/readme-ru.coco new file mode 100644 index 000000000..c62f89900 --- /dev/null +++ b/scripts/windows/coco-dev-setup/batch/config/localized/readme-ru.coco @@ -0,0 +1,29 @@ + _____ _ _____ _ _ + / __ \ | | / __ \ | | | | + | / \/ ___ __| | ___ | / \/ ___ _ __ ___ | |__ __ _| |_ + | | / _ \ / _` |/ _ \ | | / _ \| '_ ` _ \| '_ \ / _` | __| + | \__/\ (_) | (_| | __/ | \__/\ (_) | | | | | | |_) | (_| | |_ + \____/\___/ \__,_|\___| \____/\___/|_| |_| |_|_.__/ \__,_|\__| + +============================================================================= + +����ࠢ�塞, ⥯��� �� ���� ᮮ���⢠ CodeCombat. +������, ����� ��� �।� ࠧࠡ��稪� ��⠭������, �� ��⮢� ����� +������ ����� � ������ ��� ᤥ���� ��� ��� ����. + +� ��� ���� ������ ��� �� �⥫� �� � ���� ���������? +�������� � ���� � hipchat @ https://www.hipchat.com/g3plnOKqa + +�� ���� ᯮᮡ ���⨦���� �⮣� - ���饭�� ��襣� ��㬠. +�� ����� ���� ��� @ http://discourse.codecombat.com/ + +�� ����� ������ � ������ ���⨦����� � ��襬 �����. +��� ����� ���� @ http://blog.codecombat.com/ + +� ������, �� �� �� ���祭��, - �� ����� ���� ������� ���� ���㬥��樨 +� ���ଠ樨 � ��襩 ���� @ https://github.com/codecombat/codecombat/wiki + +�� ��������, �� �� �㤥� ��������� � ��襬 ᮮ���⢥ ⠪ ��, ��� � ��. + + + - ���, ���द, �����, ������, ���६� � ���� diff --git a/scripts/windows/coco-dev-setup/batch/config/localized/tips-ru.coco b/scripts/windows/coco-dev-setup/batch/config/localized/tips-ru.coco new file mode 100644 index 000000000..90d791d16 --- /dev/null +++ b/scripts/windows/coco-dev-setup/batch/config/localized/tips-ru.coco @@ -0,0 +1,7 @@ + 1) ����� �������� �����, ��������, �⢥砩� �����⥫쭮 � �ࠢ��쭮 + 2) ����� ��⠭��騪 ��室���� � �⠤�� ���� � ����� ᮤ�ঠ�� ���� + 3) �� ����� ᮮ���� � ����� @ 'https://github.com/codecombat/codecombat/issues' + 4) ���� ������/�।�������? �������� � ���� � HipChat �१ CodeCombat.com + + �� ����� ���� ��蠣���� �㪮����⢮ ��� ������� ��⠭��騪� � ��襩 ����. + github.com/codecombat/codecombat/wiki/Setup-on-Windows:-a-step-by-step-guide \ No newline at end of file diff --git a/scripts/windows/coco-dev-setup/batch/localization/ru.coco b/scripts/windows/coco-dev-setup/batch/localization/ru.coco index 150391711..9914b5d44 100644 --- a/scripts/windows/coco-dev-setup/batch/localization/ru.coco +++ b/scripts/windows/coco-dev-setup/batch/localization/ru.coco @@ -3,19 +3,19 @@ <global> <native>�������</native> <description>Russian</description> - <tips>Before we start the installation, here are some tips:</tips> - <exit>Press any key to exit...</exit> + <tips>����� ���, ��� �� ������ ���������, ��� ��������� �������:</tips> + <exit>������� Enter ��� ������...</exit> </global> <language> - <choosen>You have choosen ������� as your language.</choosen> + <choosen>�� ������� ������� � �������� ������ �����.</choosen> <feedback>C ������� ������� �� ����� �������� �� �������.</feedback> </language> <license> - <s1>In order to continue the installation of the developers environment</s1> - <s2>you will have to read and agree with the following license:</s2> - <q1>Have you read the license and do you agree with it?</q1> - <a1>This setup can't happen without an agreement.</a1> - <a2>Installation and Setup of the CodeCombat environment is cancelled.</a2> + <s1>��� ����, ����� ���������� ��������� ����� ������������</s1> + <s2>�� ������ ��������� � ����������� �� ��������� ���������:</s2> + <q1>�� ��������� �������� � �������� � ���?</q1> + <a1>������ ��������� �� �������� ��� ��������.</a1> + <a2>��������� � ��������� ����� CodeCombat ��������.</a2> </license> <install> <system> @@ -38,7 +38,7 @@ <downloading>�����������...</downloading> <installing>���������������...</installing> <unzipping>���������������...</unzipping> - <cleaning>���������...</cleaning> + <cleaning>�����������...</cleaning> <mongodbpath>����������, ���������� ������ ����, ���� ������ ���� ���������� MongoDB</mongodbpath> </process> </install> @@ -53,7 +53,7 @@ <question>�� ������ �������� ��������� Local Git ������� ��������������?</question> <consequence>���������, ��� �� ��������� ��������� ����������� ����� �����������.</consequence> <donotclose>�� ���������� ��� ����, ����������.</donotclose> - <wait>����� �� ������ ������, ������� ����� ������� ��� �����������...</wait> + <wait>����� �� ������ ������, ������� Enter ��� �����������...</wait> </skip> <process> <path>����������, ������� ������ ���� �� ������ CodeCombat ����������� git: </path> diff --git a/server/commons/Handler.coffee b/server/commons/Handler.coffee index 23909b6a2..b486b79b0 100644 --- a/server/commons/Handler.coffee +++ b/server/commons/Handler.coffee @@ -21,7 +21,7 @@ module.exports = class Handler hasAccessToDocument: (req, document, method=null) -> return true if req.user?.isAdmin() if @modelClass.schema.uses_coco_permissions - return document.hasPermissionsForMethod(req.user, method or req.method) + return document.hasPermissionsForMethod?(req.user, method or req.method) return true formatEntity: (req, document) -> document?.toObject() diff --git a/server/commons/queue.coffee b/server/commons/queue.coffee index 64b71ae64..0703427d4 100644 --- a/server/commons/queue.coffee +++ b/server/commons/queue.coffee @@ -250,7 +250,7 @@ class MongoQueue extends events.EventEmitter @emit 'error',err,data else @emit 'update',err,data - log.info "The message visibility time was updated" + #log.info "The message visibility time was updated" callback? err, data diff --git a/server/levels/level_handler.coffee b/server/levels/level_handler.coffee index f0c6d225b..b5ee6330e 100644 --- a/server/levels/level_handler.coffee +++ b/server/levels/level_handler.coffee @@ -5,7 +5,7 @@ SessionHandler = require('./sessions/level_session_handler') Feedback = require('./feedbacks/LevelFeedback') Handler = require('../commons/Handler') mongoose = require('mongoose') - +async = require 'async' LevelHandler = class LevelHandler extends Handler modelClass: Level jsonSchema: require '../../app/schemas/models/level' @@ -220,7 +220,7 @@ LevelHandler = class LevelHandler extends Handler userMap[u._id] = u[serviceProperty] for u in userResults session[serviceProperty] = userMap[session.creator] for session in sessionResults res.send(sessionResults) - + getRandomSessionPair: (req, res, slugOrID) -> findParameters = {} if Handler.isID slugOrID @@ -235,32 +235,34 @@ LevelHandler = class LevelHandler extends Handler query.exec (err, level) => return @sendDatabaseError(res, err) if err return @sendNotFoundError(res) unless level? - + sessionsQueryParameters = level: original: level.original.toString() majorVersion: level.version.major submitted:true - - query = Session - .find(sessionsQueryParameters) - .select('team') - .lean() - - query.exec (err, resultSessions) => - return @sendDatabaseError res, err if err? or not resultSessions - - teamSessions = _.groupBy resultSessions, 'team' - sessions = [] - numberOfTeams = 0 - for team of teamSessions - numberOfTeams += 1 - sessions.push _.sample(teamSessions[team]) - if numberOfTeams != 2 then return @sendDatabaseError res, "There aren't sessions of 2 teams, so cannot choose random opponents!" - - @sendSuccess res, sessions - - + + query = Session.find(sessionsQueryParameters).distinct("team") + query.exec (err, teams) => + return @sendDatabaseError res, err if err? or not teams + findTop20Players = (sessionQueryParams, team, cb) -> + sessionQueryParams["team"] = team + Session.aggregate [ + {$match: sessionQueryParams} + {$project: {"totalScore":1}} + {$sort: {"totalScore":-1}} + {$limit: 20} + ], cb + + async.map teams, findTop20Players.bind(@, sessionsQueryParameters), (err, map) => + if err? then return @sendDatabaseError(res, err) + sessions = [] + for mapItem in map + sessions.push _.sample(mapItem) + if map.length != 2 then return @sendDatabaseError res, "There aren't sessions of 2 teams, so cannot choose random opponents!" + @sendSuccess res, sessions + + getFeedback: (req, res, id) -> return @sendNotFoundError(res) unless req.user @fetchLevelByIDAndHandleErrors id, req, res, (err, level) => diff --git a/server/queues/scoring.coffee b/server/queues/scoring.coffee index db4dd1609..86d7686d7 100644 --- a/server/queues/scoring.coffee +++ b/server/queues/scoring.coffee @@ -206,8 +206,8 @@ generateAndSendTaskPairsToTheQueue = (sessionToRankAgainst,submittedSession, cal taskPairs = generateTaskPairs(sessionToRankAgainst, submittedSession) sendEachTaskPairToTheQueue taskPairs, (taskPairError) -> if taskPairError? then return callback taskPairError - console.log "Sent task pairs to the queue!" - console.log taskPairs + #console.log "Sent task pairs to the queue!" + #console.log taskPairs callback null, {"message": "All task pairs were succesfully sent to the queue"} @@ -306,6 +306,7 @@ getSessionInformation = (sessionIDString, callback) -> module.exports.processTaskResult = (req, res) -> + originalSessionID = req.body?.originalSessionID async.waterfall [ verifyClientResponse.bind(@,req.body) fetchTaskLog.bind(@) @@ -323,9 +324,13 @@ module.exports.processTaskResult = (req, res) -> addNewSessionsToQueue.bind(@) ], (err, results) -> if err is "shouldn't continue" - sendResponseObject req, res, {"message":"The scores were updated successfully, person lost so no more games are being inserted!"} + markSessionAsDoneRanking originalSessionID, (err) -> + if err? then return sendResponseObject req, res, {"error":"There was an error marking the session as done ranking"} + sendResponseObject req, res, {"message":"The scores were updated successfully, person lost so no more games are being inserted!"} else if err is "no session was found" - sendResponseObject req, res, {"message":"There were no more games to rank (game is at top)!"} + markSessionAsDoneRanking originalSessionID, (err) -> + if err? then return sendResponseObject req, res, {"error":"There was an error marking the session as done ranking"} + sendResponseObject req, res, {"message":"There were no more games to rank (game is at top)!"} else if err? errors.serverError res, "There was an error:#{err}" else @@ -333,11 +338,11 @@ module.exports.processTaskResult = (req, res) -> verifyClientResponse = (responseObject, callback) -> #TODO: better verification - unless typeof responseObject is "object" + if typeof responseObject isnt "object" or responseObject?.originalSessionID?.length isnt 24 callback "The response to that query is required to be a JSON object." else @clientResponseObject = responseObject - log.info "Verified client response!" + #log.info "Verified client response!" callback null, responseObject fetchTaskLog = (responseObject, callback) -> @@ -347,18 +352,18 @@ fetchTaskLog = (responseObject, callback) -> .findOne(findParameters) query.exec (err, taskLog) => @taskLog = taskLog - log.info "Fetched task log!" + #log.info "Fetched task log!" callback err, taskLog.toObject() checkTaskLog = (taskLog, callback) -> if taskLog.calculationTimeMS then return callback "That computational task has already been performed" if hasTaskTimedOut taskLog.sentDate then return callback "The task has timed out" - log.info "Checked task log" + #log.info "Checked task log" callback null deleteQueueMessage = (callback) -> scoringTaskQueue.deleteMessage @clientResponseObject.receiptHandle, (err) -> - log.info "Deleted queue message" + #log.info "Deleted queue message" callback err fetchLevelSession = (callback) -> @@ -369,7 +374,7 @@ fetchLevelSession = (callback) -> .lean() query.exec (err, session) => @levelSession = session - log.info "Fetched level session" + #log.info "Fetched level session" callback err @@ -378,7 +383,7 @@ checkSubmissionDate = (callback) -> if Number(supposedSubmissionDate) isnt Number(@levelSession.submitDate) callback "The game has been resubmitted. Removing from queue..." else - log.info "Checked submission date" + #log.info "Checked submission date" callback null logTaskComputation = (callback) -> @@ -387,7 +392,7 @@ logTaskComputation = (callback) -> @taskLog.calculationTimeMS = @clientResponseObject.calculationTimeMS @taskLog.sessions = @clientResponseObject.sessions @taskLog.save (err, saved) -> - log.info "Logged task computation" + #log.info "Logged task computation" callback err updateSessions = (callback) -> @@ -403,7 +408,7 @@ updateSessions = (callback) -> saveNewScoresToDatabase = (newScoreArray, callback) -> async.eachSeries newScoreArray, updateScoreInSession, (err) -> - log.info "Saved new scores to database" + #log.info "Saved new scores to database" callback err,newScoreArray @@ -421,7 +426,7 @@ updateScoreInSession = (scoreObject,callback) -> $push: {scoreHistory: {$each: [scoreHistoryAddition], $slice: -1000}} LevelSession.update {"_id": scoreObject.id}, updateObject, callback - log.info "New total score for session #{scoreObject.id} is #{updateObject.totalScore}" + #log.info "New total score for session #{scoreObject.id} is #{updateObject.totalScore}" indexNewScoreArray = (newScoreArray, callback) -> newScoresObject = _.indexBy newScoreArray, 'id' @@ -440,8 +445,8 @@ addMatchToSessions = (newScoreObject, callback) -> matchObject.opponents[sessionID].metrics = {} matchObject.opponents[sessionID].metrics.rank = Number(newScoreObject[sessionID].gameRanking) - log.info "Match object computed, result: #{matchObject}" - log.info "Writing match object to database..." + #log.info "Match object computed, result: #{matchObject}" + #log.info "Writing match object to database..." #use bind with async to do the writes sessionIDs = _.pluck @clientResponseObject.sessions, 'sessionID' async.each sessionIDs, updateMatchesInSession.bind(@,matchObject), (err) -> callback err @@ -457,7 +462,7 @@ updateMatchesInSession = (matchObject, sessionID, callback) -> sessionUpdateObject = $push: {matches: {$each: [currentMatchObject], $slice: -200}} - log.info "Updating session #{sessionID}" + #log.info "Updating session #{sessionID}" LevelSession.update {"_id":sessionID}, sessionUpdateObject, callback updateUserSimulationCounts = (reqUserID,callback) -> @@ -493,7 +498,7 @@ determineIfSessionShouldContinueAndUpdateLog = (cb) -> totalNumberOfGamesPlayed = updatedSession.numberOfWinsAndTies + updatedSession.numberOfLosses if totalNumberOfGamesPlayed < 10 - console.log "Number of games played is less than 10, continuing..." + #console.log "Number of games played is less than 10, continuing..." cb null else ratio = (updatedSession.numberOfLosses) / (totalNumberOfGamesPlayed) @@ -501,7 +506,7 @@ determineIfSessionShouldContinueAndUpdateLog = (cb) -> cb "shouldn't continue" console.log "Ratio(#{ratio}) is bad, ending simulation" else - console.log "Ratio(#{ratio}) is good, so continuing simulations" + #console.log "Ratio(#{ratio}) is good, so continuing simulations" cb null @@ -547,11 +552,11 @@ findNearestBetterSessionID = (cb) -> .select(selectString) .lean() - console.log "Finding session with score near #{opponentSessionTotalScore}" + #console.log "Finding session with score near #{opponentSessionTotalScore}" query.exec (err, session) -> if err? then return cb err, session unless session then return cb "no session was found" - console.log "Found session with score #{session.totalScore}" + #console.log "Found session with score #{session.totalScore}" cb err, session._id @@ -587,7 +592,7 @@ generateTaskPairs = (submittedSessions, sessionToScore) -> teams = ['ogres','humans'] opposingTeams = _.pull teams, sessionToScore.team if String(session._id) isnt String(sessionToScore._id) and session.team in opposingTeams - console.log "Adding game to taskPairs!" + #console.log "Adding game to taskPairs!" taskPairs.push [sessionToScore._id,String session._id] return taskPairs @@ -625,3 +630,9 @@ retrieveOldSessionData = (sessionID, callback) -> "totalScore":session.totalScore ? (25 - 1.8*(25/3)) "id": sessionID callback err, oldScoreObject + +markSessionAsDoneRanking = (sessionID, cb) -> + #console.log "Marking session as done ranking..." + LevelSession.update {"_id":sessionID}, {"isRanking":false}, cb + + diff --git a/server/users/User.coffee b/server/users/User.coffee index 0d3c42a92..b827a6916 100644 --- a/server/users/User.coffee +++ b/server/users/User.coffee @@ -62,7 +62,7 @@ UserSchema.statics.updateMailChimp = (doc, callback) -> doc.updatedMailChimp = true callback?() - mc.lists.subscribe params, onSuccess, onFailure + mc?.lists.subscribe params, onSuccess, onFailure UserSchema.pre('save', (next) -> diff --git a/server/users/user_handler.coffee b/server/users/user_handler.coffee index 9023e3d94..0c128e31a 100644 --- a/server/users/user_handler.coffee +++ b/server/users/user_handler.coffee @@ -154,6 +154,33 @@ UserHandler = class UserHandler extends Handler res.send(if otherUser then otherUser._id else JSON.stringify('')) res.end() + getSimulatorLeaderboard: (req, res) -> + @validateSimulateLeaderboardRequestParameters(req) + + query = {} + sortOrder = -1 + limit = if req.query.limit > 30 then 30 else req.query.limit + if req.query.scoreOffset isnt -1 + simulatedByQuery = {} + simulatedByQuery[if req.query.order is 1 then "$gt" else "$lte"] = req.query.scoreOffset + query.simulatedBy = simulatedByQuery + sortOrder = 1 if req.query.order is 1 + else + query.simulatedBy = {"$exists": true} + + leaderboardQuery = User.find(query).select("name simulatedBy simulatedFor").sort({"simulatedBy":sortOrder}).limit(limit) + leaderboardQuery.exec (err, otherUsers) -> + otherUsers = _.reject otherUsers, _id: req.user._id if req.query.scoreOffset isnt -1 + otherUsers ?= [] + res.send(otherUsers) + res.end() + + + validateSimulateLeaderboardRequestParameters: (req) -> + req.query.order = parseInt(req.query.order) ? -1 + req.query.scoreOffset = parseFloat(req.query.scoreOffset) ? 100000 + req.query.limit = parseInt(req.query.limit) ? 20 + post: (req, res) -> return @sendBadInputError(res, 'No input.') if _.isEmpty(req.body) return @sendBadInputError(res, 'Must have an anonymous user to post with.') unless req.user @@ -174,6 +201,7 @@ UserHandler = class UserHandler extends Handler return @nameToID(req, res, args[0]) if args[1] is 'nameToID' return @getLevelSessions(req, res, args[0]) if args[1] is 'level.sessions' return @getCandidates(req, res) if args[1] is 'candidates' + return @getSimulatorLeaderboard(req, res, args[0]) if args[1] is 'simulatorLeaderboard' return @sendNotFoundError(res) super(arguments...) @@ -198,7 +226,10 @@ UserHandler = class UserHandler extends Handler @modelClass.findById(id).exec (err, document) => return @sendDatabaseError(res, err) if err photoURL = document?.get('photoURL') - photoURL ||= @buildGravatarURL document + if photoURL + photoURL = "/file/#{photoURL}" + else + photoURL = @buildGravatarURL document, req.query.s, req.query.fallback res.redirect photoURL res.end() @@ -239,10 +270,11 @@ UserHandler = class UserHandler extends Handler obj.jobProfile = _.pick obj.jobProfile, subfields obj - buildGravatarURL: (user) -> + buildGravatarURL: (user, size, fallback) -> emailHash = @buildEmailHash user - defaultAvatar = "http://codecombat.com/file/db/thang.type/52a00d55cf1818f2be00000b/portrait.png" - "https://www.gravatar.com/avatar/#{emailHash}?default=#{defaultAvatar}" + fallback ?= "http://codecombat.com/file/db/thang.type/52a00d55cf1818f2be00000b/portrait.png" + fallback = "http://codecombat.com#{fallback}" unless /^http/.test fallback + "https://www.gravatar.com/avatar/#{emailHash}?s=#{size}&default=#{fallback}" buildEmailHash: (user) -> # emailHash is used by gravatar diff --git a/test/server/functional/file.spec.coffee b/test/server/functional/file.spec.coffee index cbabfb14e..0fb58ffd8 100644 --- a/test/server/functional/file.spec.coffee +++ b/test/server/functional/file.spec.coffee @@ -27,15 +27,6 @@ describe '/file', -> dropGridFS -> done() - it 'can\'t be created by ordinary users.', (done) -> - func = (err, res, body) -> - expect(res.statusCode).toBe(403) - expect(body.metadata).toBeUndefined() - done() - - loginJoe -> - request.post(options, func) - it 'can\'t be created if invalid (property path is required)', (done) -> func = (err, res, body) -> expect(res.statusCode).toBe(422)