mirror of
https://github.com/codeninjasllc/codecombat.git
synced 2025-05-03 01:14:46 -04:00
Merge remote-tracking branch 'codecombat/master'
This commit is contained in:
commit
750e22ae05
51 changed files with 812 additions and 1142 deletions
app
assets
core
lib/surface
locale
models
schemas/models
styles
templates
views
scripts/analytics/mongodb/queries
server
classrooms
commons
lib
queues/scoring
routes
trial_requests
users
spec
test/app/views/editor/level
BIN
app/assets/docs/CodeCombatCoursesGettingStartedGuide.pdf
Normal file → Executable file
BIN
app/assets/docs/CodeCombatCoursesGettingStartedGuide.pdf
Normal file → Executable file
Binary file not shown.
BIN
app/assets/docs/CodeCombatTeacherGuideCourse2.pdf
Executable file
BIN
app/assets/docs/CodeCombatTeacherGuideCourse2.pdf
Executable file
Binary file not shown.
|
@ -47,6 +47,10 @@
|
||||||
(window,document,"script","51a79585ee207206390002a2");
|
(window,document,"script","51a79585ee207206390002a2");
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
|
<!-- start Mixpanel --><script type="text/javascript">(function(e,b){if(!b.__SV){var a,f,i,g;window.mixpanel=b;b._i=[];b.init=function(a,e,d){function f(b,h){var a=h.split(".");2==a.length&&(b=b[a[0]],h=a[1]);b[h]=function(){b.push([h].concat(Array.prototype.slice.call(arguments,0)))}}var c=b;"undefined"!==typeof d?c=b[d]=[]:d="mixpanel";c.people=c.people||[];c.toString=function(b){var a="mixpanel";"mixpanel"!==d&&(a+="."+d);b||(a+=" (stub)");return a};c.people.toString=function(){return c.toString(1)+".people (stub)"};i="disable time_event track track_pageview track_links track_forms register register_once alias unregister identify name_tag set_config people.set people.set_once people.increment people.append people.union people.track_charge people.clear_charges people.delete_user".split(" ");
|
||||||
|
for(g=0;g<i.length;g++)f(c,i[g]);b._i.push([a,e,d])};b.__SV=1.2;a=e.createElement("script");a.type="text/javascript";a.async=!0;a.src="undefined"!==typeof MIXPANEL_CUSTOM_LIB_URL?MIXPANEL_CUSTOM_LIB_URL:"file:"===e.location.protocol&&"//cdn.mxpnl.com/libs/mixpanel-2-latest.min.js".match(/^\/\//)?"https://cdn.mxpnl.com/libs/mixpanel-2-latest.min.js":"//cdn.mxpnl.com/libs/mixpanel-2-latest.min.js";f=e.getElementsByTagName("script")[0];f.parentNode.insertBefore(a,f)}})(document,window.mixpanel||[]);
|
||||||
|
mixpanel.init("e71a4e60db7e1dc5e685be96776280f9");</script><!-- end Mixpanel -->
|
||||||
|
|
||||||
<script src="https://checkout.stripe.com/checkout.js"></script>
|
<script src="https://checkout.stripe.com/checkout.js"></script>
|
||||||
|
|
||||||
<!-- IE9 doesn't support defer attribute: https://github.com/h5bp/lazyweb-requests/issues/42 -->
|
<!-- IE9 doesn't support defer attribute: https://github.com/h5bp/lazyweb-requests/issues/42 -->
|
||||||
|
|
|
@ -64,7 +64,7 @@ module.exports = class Tracker
|
||||||
|
|
||||||
for userTrait in ['email', 'anonymous', 'dateCreated', 'name', 'testGroupNumber', 'gender', 'lastLevel', 'siteref', 'ageRange']
|
for userTrait in ['email', 'anonymous', 'dateCreated', 'name', 'testGroupNumber', 'gender', 'lastLevel', 'siteref', 'ageRange']
|
||||||
traits[userTrait] ?= me.get(userTrait)
|
traits[userTrait] ?= me.get(userTrait)
|
||||||
console.log 'Would identify', traits if debugAnalytics
|
console.log 'Would identify', me.id, traits if debugAnalytics
|
||||||
return unless @isProduction and not me.isAdmin()
|
return unless @isProduction and not me.isAdmin()
|
||||||
|
|
||||||
# Errorception
|
# Errorception
|
||||||
|
@ -76,19 +76,29 @@ module.exports = class Tracker
|
||||||
__insp?.push ['identify', me.id]
|
__insp?.push ['identify', me.id]
|
||||||
__insp?.push ['tagSession', traits]
|
__insp?.push ['tagSession', traits]
|
||||||
|
|
||||||
|
# Mixpanel
|
||||||
|
# https://mixpanel.com/help/reference/javascript
|
||||||
|
mixpanel.identify(me.id)
|
||||||
|
mixpanel.register(traits)
|
||||||
|
|
||||||
trackPageView: ->
|
trackPageView: ->
|
||||||
name = Backbone.history.getFragment()
|
name = Backbone.history.getFragment()
|
||||||
console.log "Would track analytics pageview: '/#{name}'" if debugAnalytics
|
url = "/#{name}"
|
||||||
|
console.log "Would track analytics pageview: #{url}" if debugAnalytics
|
||||||
@trackEventInternal 'Pageview', url: name unless me?.isAdmin() and @isProduction
|
@trackEventInternal 'Pageview', url: name unless me?.isAdmin() and @isProduction
|
||||||
return unless @isProduction and not me.isAdmin()
|
return unless @isProduction and not me.isAdmin()
|
||||||
|
|
||||||
# Google Analytics
|
# Google Analytics
|
||||||
# https://developers.google.com/analytics/devguides/collection/analyticsjs/pages
|
# https://developers.google.com/analytics/devguides/collection/analyticsjs/pages
|
||||||
ga? 'send', 'pageview', "/#{name}"
|
ga? 'send', 'pageview', url
|
||||||
|
|
||||||
trackEvent: (action, properties={}) =>
|
# Mixpanel
|
||||||
|
mixpanelIncludes = ['courses', 'courses/purchase', 'courses/teachers', 'courses/students', 'schools', 'teachers', 'teachers/freetrial']
|
||||||
|
mixpanel.track('page viewed', 'page name' : name, url : url) if name in mixpanelIncludes
|
||||||
|
|
||||||
|
trackEvent: (action, properties={}, includeIntegrations=[]) =>
|
||||||
@trackEventInternal action, _.cloneDeep properties unless me?.isAdmin() and @isProduction
|
@trackEventInternal action, _.cloneDeep properties unless me?.isAdmin() and @isProduction
|
||||||
console.log 'Tracking external analytics event:', action, properties if debugAnalytics
|
console.log 'Tracking external analytics event:', action, properties, includeIntegrations if debugAnalytics
|
||||||
return unless me and @isProduction and not me.isAdmin()
|
return unless me and @isProduction and not me.isAdmin()
|
||||||
|
|
||||||
# Google Analytics
|
# Google Analytics
|
||||||
|
@ -105,6 +115,10 @@ module.exports = class Tracker
|
||||||
# http://www.inspectlet.com/docs#tagging
|
# http://www.inspectlet.com/docs#tagging
|
||||||
__insp?.push ['tagSession', action: action, properies: properties]
|
__insp?.push ['tagSession', action: action, properies: properties]
|
||||||
|
|
||||||
|
# Mixpanel
|
||||||
|
# Only log explicit events for now
|
||||||
|
mixpanel.track(action, properties) if 'Mixpanel' in includeIntegrations
|
||||||
|
|
||||||
trackEventInternal: (event, properties) =>
|
trackEventInternal: (event, properties) =>
|
||||||
# Skipping heavily logged actions we don't use internally
|
# Skipping heavily logged actions we don't use internally
|
||||||
unless event in ['Simulator Result', 'Started Level Load', 'Finished Level Load']
|
unless event in ['Simulator Result', 'Started Level Load', 'Finished Level Load']
|
||||||
|
|
|
@ -42,6 +42,7 @@ module.exports = FacebookHandler = class FacebookHandler extends CocoClass
|
||||||
FB.api('/me', {fields: 'email,last_name,first_name,gender'}, @onReceiveMeInfo)
|
FB.api('/me', {fields: 'email,last_name,first_name,gender'}, @onReceiveMeInfo)
|
||||||
|
|
||||||
onReceiveMeInfo: (r) =>
|
onReceiveMeInfo: (r) =>
|
||||||
|
console.log "Got Facebook user info:", r
|
||||||
unless r.email
|
unless r.email
|
||||||
console.error('could not get data, since no email provided')
|
console.error('could not get data, since no email provided')
|
||||||
return
|
return
|
||||||
|
|
|
@ -15,7 +15,7 @@ module.exports = class Label extends CocoClass
|
||||||
@sprite = options.sprite
|
@sprite = options.sprite
|
||||||
@camera = options.camera
|
@camera = options.camera
|
||||||
@layer = options.layer
|
@layer = options.layer
|
||||||
@style = options.style ? Label.STYLE_SAY
|
@style = options.style ? (@sprite?.thang?.labelStyle || Label.STYLE_SAY)
|
||||||
console.error @toString(), 'needs a sprite.' unless @sprite
|
console.error @toString(), 'needs a sprite.' unless @sprite
|
||||||
console.error @toString(), 'needs a camera.' unless @camera
|
console.error @toString(), 'needs a camera.' unless @camera
|
||||||
console.error @toString(), 'needs a layer.' unless @layer
|
console.error @toString(), 'needs a layer.' unless @layer
|
||||||
|
|
|
@ -684,7 +684,10 @@ module.exports = Lank = class Lank extends CocoClass
|
||||||
return unless @thang
|
return unless @thang
|
||||||
blurb = if @thang.health <= 0 then null else @thang.sayMessage # Dead men tell no tales
|
blurb = if @thang.health <= 0 then null else @thang.sayMessage # Dead men tell no tales
|
||||||
blurb = null if blurb in ['For Thoktar!', 'Bones!', 'Behead!', 'Destroy!', 'Die, humans!'] # Let's just hear, not see, these ones.
|
blurb = null if blurb in ['For Thoktar!', 'Bones!', 'Behead!', 'Destroy!', 'Die, humans!'] # Let's just hear, not see, these ones.
|
||||||
labelStyle = if /Hero Placeholder/.test(@thang.id) then Label.STYLE_DIALOGUE else Label.STYLE_SAY
|
if /Hero Placeholder/.test(@thang.id)
|
||||||
|
labelStyle = Label.STYLE_DIALOGUE
|
||||||
|
else
|
||||||
|
labelStyle = @thang.labelStyle ? Label.STYLE_SAY
|
||||||
@addLabel 'say', labelStyle if blurb
|
@addLabel 'say', labelStyle if blurb
|
||||||
if @labels.say?.setText blurb
|
if @labels.say?.setText blurb
|
||||||
@notifySpeechUpdated blurb: blurb
|
@notifySpeechUpdated blurb: blurb
|
||||||
|
|
|
@ -990,8 +990,10 @@
|
||||||
getting_started_3: "You'll see student's progress below as they sign up and join your class."
|
getting_started_3: "You'll see student's progress below as they sign up and join your class."
|
||||||
additional_resources: "Additional Resources"
|
additional_resources: "Additional Resources"
|
||||||
additional_resources_1_pref: "Download/print our"
|
additional_resources_1_pref: "Download/print our"
|
||||||
additional_resources_1_mid: "Course 1 Teacher's Guide"
|
additional_resources_1_mid: "Course 1" # {change}
|
||||||
additional_resources_1_suff: "explanations and solutions to each level."
|
additional_resources_1_mid2: "and"
|
||||||
|
additional_resources_1_mid3: "Course 2"
|
||||||
|
additional_resources_1_suff: "teacher's guides with solutions for each level." # {change}
|
||||||
additional_resources_2_pref: "Complete our"
|
additional_resources_2_pref: "Complete our"
|
||||||
additional_resources_2_suff: "to get two free enrollments for the rest of our paid courses."
|
additional_resources_2_suff: "to get two free enrollments for the rest of our paid courses."
|
||||||
additional_resources_3_pref: "Visit our"
|
additional_resources_3_pref: "Visit our"
|
||||||
|
@ -1000,6 +1002,9 @@
|
||||||
additional_resources_4_pref: "Check out our"
|
additional_resources_4_pref: "Check out our"
|
||||||
additional_resources_4_mid: "Schools Page"
|
additional_resources_4_mid: "Schools Page"
|
||||||
additional_resources_4_suff: "to learn more about CodeCombat's classroom offerings."
|
additional_resources_4_suff: "to learn more about CodeCombat's classroom offerings."
|
||||||
|
educator_wiki_pref: "Or check out our new"
|
||||||
|
educator_wiki_mid: "educator wiki"
|
||||||
|
educator_wiki_suff: "to browse the guide online."
|
||||||
your_classes: "Your Classes"
|
your_classes: "Your Classes"
|
||||||
no_classes: "No classes yet!"
|
no_classes: "No classes yet!"
|
||||||
create_new_class1: "create new class"
|
create_new_class1: "create new class"
|
||||||
|
@ -1032,6 +1037,7 @@
|
||||||
ambassador_title: "Ambassador"
|
ambassador_title: "Ambassador"
|
||||||
ambassador_title_description: "(Support)"
|
ambassador_title_description: "(Support)"
|
||||||
ambassador_summary: "Tame our forum users and provide direction for those with questions. Our ambassadors represent CodeCombat to the world."
|
ambassador_summary: "Tame our forum users and provide direction for those with questions. Our ambassadors represent CodeCombat to the world."
|
||||||
|
teacher_title: "Teacher"
|
||||||
|
|
||||||
editor:
|
editor:
|
||||||
main_title: "CodeCombat Editors"
|
main_title: "CodeCombat Editors"
|
||||||
|
@ -1188,6 +1194,7 @@
|
||||||
ambassador_join_note_strong: "Note"
|
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!"
|
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!"
|
||||||
ambassador_subscribe_desc: "Get emails on support updates and multiplayer developments."
|
ambassador_subscribe_desc: "Get emails on support updates and multiplayer developments."
|
||||||
|
teacher_subscribe_desc: "Get emails on updates and announcements for teachers."
|
||||||
changes_auto_save: "Changes are saved automatically when you toggle checkboxes."
|
changes_auto_save: "Changes are saved automatically when you toggle checkboxes."
|
||||||
diligent_scribes: "Our Diligent Scribes:"
|
diligent_scribes: "Our Diligent Scribes:"
|
||||||
powerful_archmages: "Our Powerful Archmages:"
|
powerful_archmages: "Our Powerful Archmages:"
|
||||||
|
|
|
@ -660,7 +660,7 @@ module.exports = nativeDescription: "Español (América Latina)", englishDescrip
|
||||||
password_tab: "Contraseña"
|
password_tab: "Contraseña"
|
||||||
emails_tab: "Correos"
|
emails_tab: "Correos"
|
||||||
admin: "Admin"
|
admin: "Admin"
|
||||||
# manage_subscription: "Click here to manage your subscription."
|
manage_subscription: "Click aquí para administrar tu subscripción"
|
||||||
new_password: "Nueva Contraseña"
|
new_password: "Nueva Contraseña"
|
||||||
new_password_verify: "Verificar"
|
new_password_verify: "Verificar"
|
||||||
type_in_email: "Ingrese su correo electrónico para confirmar la eliminación de su cuenta."
|
type_in_email: "Ingrese su correo electrónico para confirmar la eliminación de su cuenta."
|
||||||
|
@ -865,26 +865,26 @@ module.exports = nativeDescription: "Español (América Latina)", englishDescrip
|
||||||
topics: "Tópicos"
|
topics: "Tópicos"
|
||||||
hours_content: "Horas de contenido:"
|
hours_content: "Horas de contenido:"
|
||||||
get_free: "Obtenga curso GRATIS"
|
get_free: "Obtenga curso GRATIS"
|
||||||
# enroll_paid: "Enroll Students in Paid Courses"
|
enroll_paid: "Anotar estudiantes en cursos pagos."
|
||||||
you_have1: "Tiene"
|
you_have1: "Tiene"
|
||||||
# you_have2: "unused paid enrollments"
|
# you_have2: "unused paid enrollments"
|
||||||
# use_one: "Use 1 paid enrollment for"
|
# use_one: "Use 1 paid enrollment for"
|
||||||
# use_multiple: "Use paid enrollments for the following students:"
|
# use_multiple: "Use paid enrollments for the following students:"
|
||||||
# already_enrolled: "already enrolled"
|
# already_enrolled: "already enrolled"
|
||||||
# licenses_remaining: "licenses remaining:"
|
licenses_remaining: "licencias restantes:"
|
||||||
# insufficient_enrollments: "insufficient paid enrollments"
|
# insufficient_enrollments: "insufficient paid enrollments"
|
||||||
# enroll_students: "Enroll Students"
|
# enroll_students: "Enroll Students"
|
||||||
# get_enrollments: "Get More Enrollments"
|
# get_enrollments: "Get More Enrollments"
|
||||||
# change_language: "Change Course Language"
|
change_language: "Cambiar idioma del curso"
|
||||||
keep_using: "Seguir Usando"
|
keep_using: "Seguir Usando"
|
||||||
switch_to: "Cambiar a"
|
switch_to: "Cambiar a"
|
||||||
greetings: "Saludos!"
|
greetings: "Saludos!"
|
||||||
learn_p: "Aprender Python"
|
learn_p: "Aprender Python"
|
||||||
learn_j: "Aprender JavaScript"
|
learn_j: "Aprender JavaScript"
|
||||||
# language_cannot_change: "Language cannot be changed once students join a class."
|
language_cannot_change: "El lenguaje no puede ser cambiado una vez que el estudiante ingreso a la clase."
|
||||||
# back_classrooms: "Back to my classrooms"
|
back_classrooms: "Volver a mis aulas"
|
||||||
# back_courses: "Back to my courses"
|
back_courses: "Volver a mis cursos"
|
||||||
# edit_details: "Edit class details"
|
edit_details: "Editar detallesde clase"
|
||||||
# enrolled_courses: "enrolled in paid courses:"
|
# enrolled_courses: "enrolled in paid courses:"
|
||||||
# purchase_enrollments: "Purchase Enrollments"
|
# purchase_enrollments: "Purchase Enrollments"
|
||||||
remove_student: "Quitar alumno"
|
remove_student: "Quitar alumno"
|
||||||
|
@ -898,14 +898,14 @@ module.exports = nativeDescription: "Español (América Latina)", englishDescrip
|
||||||
play_campaign_description: "Estas listo para dar el siguiente paso! Explora cientos de desafiantes niveles, aprende habilidades avanzadas de programación, y compite en arenas multijugador!"
|
play_campaign_description: "Estas listo para dar el siguiente paso! Explora cientos de desafiantes niveles, aprende habilidades avanzadas de programación, y compite en arenas multijugador!"
|
||||||
create_account_title: "Crea una Cuenta"
|
create_account_title: "Crea una Cuenta"
|
||||||
create_account_description: "Registrate gratis con una cuenta CodeCombat y obten acceso a mas niveles, mas habilidades de programacion, y mas diversion!"
|
create_account_description: "Registrate gratis con una cuenta CodeCombat y obten acceso a mas niveles, mas habilidades de programacion, y mas diversion!"
|
||||||
# preview_campaign_title: "Preview Campaign"
|
preview_campaign_title: "Previsualizar campaña"
|
||||||
# preview_campaign_description: "Take a sneak peek at all that CodeCombat has to offer before signing up for your FREE account."
|
# preview_campaign_description: "Take a sneak peek at all that CodeCombat has to offer before signing up for your FREE account."
|
||||||
arena: "Arena"
|
arena: "Arena"
|
||||||
# arena_soon_title: "Arena Coming Soon"
|
arena_soon_title: "Arena pronto disponible"
|
||||||
# arena_soon_description: "We are working on a multiplayer arena for classrooms at the end of"
|
# arena_soon_description: "We are working on a multiplayer arena for classrooms at the end of"
|
||||||
not_enrolled1: "No inscrito"
|
not_enrolled1: "No inscrito"
|
||||||
# not_enrolled2: "Ask your teacher to enroll you in the next course."
|
not_enrolled2: "Preguntale a tu maestro para anotarte en el proximo curso."
|
||||||
# next_course: "Next Course"
|
next_course: "Próximo curso"
|
||||||
coming_soon1: "Próximamente"
|
coming_soon1: "Próximamente"
|
||||||
coming_soon2: "Estamos trabajando duro para hacer mas cursos para ti!"
|
coming_soon2: "Estamos trabajando duro para hacer mas cursos para ti!"
|
||||||
available_levels: "Niveles Disponibles"
|
available_levels: "Niveles Disponibles"
|
||||||
|
@ -917,62 +917,62 @@ module.exports = nativeDescription: "Español (América Latina)", englishDescrip
|
||||||
# play_now_learn_2: "while loops to solve pesky puzzles"
|
# play_now_learn_2: "while loops to solve pesky puzzles"
|
||||||
play_now_learn_3: "cadenas & variables para personalizar acciones"
|
play_now_learn_3: "cadenas & variables para personalizar acciones"
|
||||||
play_now_learn_4: "como vencer a un ogro (habilidades importantes en la vida!)"
|
play_now_learn_4: "como vencer a un ogro (habilidades importantes en la vida!)"
|
||||||
# welcome_to_page: "Welcome to your Courses page!"
|
welcome_to_page: "¡Bienvenido a tu página de cursose!"
|
||||||
# completed_hoc: "Amazing! You've completed the Hour of Code course!"
|
completed_hoc: "¡Asombroso! ¡Has completado el curso de la hora de código!"
|
||||||
ready_for_more_header: "Listo para mas? Juega el modo campaña!"
|
ready_for_more_header: "Listo para mas? Juega el modo campaña!"
|
||||||
ready_for_more_1: "Usa las gemas para desbloquear nuevos objetos!"
|
ready_for_more_1: "Usa las gemas para desbloquear nuevos objetos!"
|
||||||
# ready_for_more_2: "Play through brand new worlds and challenges"
|
ready_for_more_2: "Juega atravez de nuevos mundos y desafios"
|
||||||
# ready_for_more_3: "Learn even more programming!"
|
ready_for_more_3: "¡Aprendé todavía más programando!"
|
||||||
saved_games: "Juegos Guardados"
|
saved_games: "Juegos Guardados"
|
||||||
# hoc: "Hour of Code"
|
hoc: "Hora del código"
|
||||||
my_classes: "Mis Clases"
|
my_classes: "Mis Clases"
|
||||||
# class_added: "Class successfully added!"
|
class_added: "Clase añadida satisfactoriamente!"
|
||||||
# view_class: "view class"
|
view_class: "ver clase"
|
||||||
view_levels: "ver niveles"
|
view_levels: "ver niveles"
|
||||||
# join_class: "Join A Class"
|
join_class: "Unirse a clase"
|
||||||
# ask_teacher_for_code: "Ask your teacher if you have a CodeCombat class code! If so, enter it below:"
|
ask_teacher_for_code: "Preguntalé a tu profesor si tu tienes un código de CodeCombat! Si lo tiene, ingresalo debajo:"
|
||||||
# enter_c_code: "<Enter Class Code>"
|
# enter_c_code: "<Enter Class Code>"
|
||||||
# join: "Join"
|
join: "Unirse"
|
||||||
# joining: "Joining class"
|
joining: "Uniendose a claseJoining class"
|
||||||
# course_complete: "Course Complete"
|
course_complete: "Curso completo"
|
||||||
# play_arena: "Play Arena"
|
play_arena: "Jugar Arena"
|
||||||
start: "Iniciar"
|
start: "Iniciar"
|
||||||
# last_level: "Last Level"
|
last_level: "Último nivel"
|
||||||
# welcome_to_hoc: "Adventurers, welcome to our Hour of Code!"
|
welcome_to_hoc: "Aventureros, bienvenidos a su Hora del Código!!"
|
||||||
# logged_in_as: "Logged in as:"
|
logged_in_as: "Logeado como:"
|
||||||
# not_you: "Not you?"
|
not_you: "No eres tú?"
|
||||||
# welcome_back: "Hi adventurer, welcome back!"
|
welcome_back: "Hola aventurero, bienvenido nuevamente!"
|
||||||
# continue_playing: "Continue Playing"
|
continue_playing: "Seguir jugando"
|
||||||
# more_options: "More options:"
|
more_options: "Másopciones:"
|
||||||
# option1_header: "Option 1: Invite students via email"
|
option1_header: "Opción 1: Invitar estudiantes vía email"
|
||||||
# option1_body: "Students will automatically be sent an invitation to join this class, and will need to create an account with a username and password."
|
# option1_body: "Students will automatically be sent an invitation to join this class, and will need to create an account with a username and password."
|
||||||
# option2_header: "Option 2: Send URL to your students"
|
option2_header: "Opción 2: Enviarles la URL a tus estudiantes"
|
||||||
# option2_body: "Students will be asked to enter an email address, username and password to create an account."
|
# option2_body: "Students will be asked to enter an email address, username and password to create an account."
|
||||||
# option3_header: "Option 3: Direct students to codecombat.com/courses"
|
option3_header: "Opción 3: Dirigir estudiantes a to codecombat.com/courses"
|
||||||
# option3_body: "Give students the following passcode to enter along with an email address, username and password when they create an account."
|
# option3_body: "Give students the following passcode to enter along with an email address, username and password when they create an account."
|
||||||
# thank_you_pref: "Thank you for your purchase! You can now assign"
|
thank_you_pref: "Gracias por tu compra! Ahora puedes asignar"
|
||||||
# thank_you_suff: "more students to paid courses."
|
thank_you_suff: "más estudiantes a cursos pagos."
|
||||||
# return_to_class: "Return to classroom"
|
# return_to_class: "Return to classroom"
|
||||||
# return_to_course_man: "Return to course management."
|
# return_to_course_man: "Return to course management."
|
||||||
# students_not_enrolled: "students not enrolled"
|
# students_not_enrolled: "students not enrolled"
|
||||||
# total_all_classes: "Total Across All Classes"
|
# total_all_classes: "Total Across All Classes"
|
||||||
# how_many_enrollments: "How many additional paid enrollments do you need?"
|
# how_many_enrollments: "How many additional paid enrollments do you need?"
|
||||||
# each_student_access: "Each student in a class will get access to Courses 2-4 once they are enrolled in paid courses. You may assign each course to each student individually."
|
# each_student_access: "Each student in a class will get access to Courses 2-4 once they are enrolled in paid courses. You may assign each course to each student individually."
|
||||||
# purchase_now: "Purchase Now"
|
purchase_now: "Comprar Ahora"
|
||||||
# enrollments: "enrollments"
|
# enrollments: "enrollments"
|
||||||
remove_student1: "Quitar alumno"
|
remove_student1: "Quitar alumno"
|
||||||
# are_you_sure: "Are you sure you want to remove this student from this class?"
|
are_you_sure: "¿Estás seguro que quieres quitar este alumno de tu clase?"
|
||||||
# remove_description1: "Student will lose access to this classroom and assigned classes. Progress and gameplay is NOT lost, and the student can be added back to the classroom at any time."
|
# remove_description1: "Student will lose access to this classroom and assigned classes. Progress and gameplay is NOT lost, and the student can be added back to the classroom at any time."
|
||||||
# remove_description2: "The activated paid license will not be returned."
|
# remove_description2: "The activated paid license will not be returned."
|
||||||
keep_student: "Mantener alumno"
|
keep_student: "Mantener alumno"
|
||||||
# removing_user: "Removing user"
|
removing_user: "Removiendo usuario"
|
||||||
# to_join_ask: "To join a class, ask your teacher for an unlock code."
|
to_join_ask: "Para ingresar a una clase, preguntale a tu maestro por un código de acceso."
|
||||||
# join_this_class: "Join Class"
|
join_this_class: "Ingresar clase"
|
||||||
# enter_here: "<enter unlock code here>"
|
enter_here: "<Ingresar el código aquí>"
|
||||||
# successfully_joined: "Successfully joined"
|
# successfully_joined: "Successfully joined"
|
||||||
# click_to_start: "Click here to start taking"
|
# click_to_start: "Click here to start taking"
|
||||||
# my_courses: "My Courses"
|
my_courses: "Mis Cursos"
|
||||||
# classroom: "Classroom"
|
classroom: "Aulas"
|
||||||
# use_school_email: "use your school email if you have one"
|
# use_school_email: "use your school email if you have one"
|
||||||
# unique_name: "a unique name no one has chosen"
|
# unique_name: "a unique name no one has chosen"
|
||||||
pick_something: "Escoge algo que recuerdes"
|
pick_something: "Escoge algo que recuerdes"
|
||||||
|
|
|
@ -4,7 +4,7 @@ module.exports = nativeDescription: "עברית", englishDescription: "Hebrew",
|
||||||
no_ie: "המשחק לא עובד באקפלורר 8 וישן יותר. סליחה!" # Warning that only shows up in IE8 and older
|
no_ie: "המשחק לא עובד באקפלורר 8 וישן יותר. סליחה!" # Warning that only shows up in IE8 and older
|
||||||
no_mobile: "המשחק לא עוצב לטלפונים ואולי לא יעבוד" # Warning that shows up on mobile devices
|
no_mobile: "המשחק לא עוצב לטלפונים ואולי לא יעבוד" # Warning that shows up on mobile devices
|
||||||
play: "שחק" # The big play button that opens up the campaign view.
|
play: "שחק" # The big play button that opens up the campaign view.
|
||||||
# play_campaign_version: "Play Campaign Version" # Shows up under big play button if you only play /courses
|
play_campaign_version: "שחק בגרסת המסע" # Shows up under big play button if you only play /courses
|
||||||
old_browser: "או או, נראה כי הדפדפן שלך יותר מידי ישן כדי להריץ את המשחק. סליחה!" # Warning that shows up on really old Firefox/Chrome/Safari
|
old_browser: "או או, נראה כי הדפדפן שלך יותר מידי ישן כדי להריץ את המשחק. סליחה!" # Warning that shows up on really old Firefox/Chrome/Safari
|
||||||
old_browser_suffix: "אתה יכול לנסות בכול מקרה אבל זה כנראה לא יעבוד."
|
old_browser_suffix: "אתה יכול לנסות בכול מקרה אבל זה כנראה לא יעבוד."
|
||||||
ipad_browser: "חדשות רעות: CodeCombat לא עובד בדפדפן של הiPad-. חדשות טובות: גרסת הiPad של המשחק ממתינה לאישור מחברת Apple."
|
ipad_browser: "חדשות רעות: CodeCombat לא עובד בדפדפן של הiPad-. חדשות טובות: גרסת הiPad של המשחק ממתינה לאישור מחברת Apple."
|
||||||
|
@ -17,7 +17,7 @@ module.exports = nativeDescription: "עברית", englishDescription: "Hebrew",
|
||||||
nav:
|
nav:
|
||||||
play: "שלבים" # The top nav bar entry where players choose which levels to play
|
play: "שלבים" # The top nav bar entry where players choose which levels to play
|
||||||
community: "קהילה"
|
community: "קהילה"
|
||||||
# courses: "Courses"
|
courses: "מסלולים"
|
||||||
editor: "עורך"
|
editor: "עורך"
|
||||||
blog: "בלוג"
|
blog: "בלוג"
|
||||||
forum: "פורום"
|
forum: "פורום"
|
||||||
|
@ -33,7 +33,7 @@ module.exports = nativeDescription: "עברית", englishDescription: "Hebrew",
|
||||||
contact: "צור קשר"
|
contact: "צור קשר"
|
||||||
twitter_follow: "עקוב אחרינו בטוויטר"
|
twitter_follow: "עקוב אחרינו בטוויטר"
|
||||||
teachers: "מורים"
|
teachers: "מורים"
|
||||||
# careers: "Careers"
|
careers: "קריירות"
|
||||||
|
|
||||||
modal:
|
modal:
|
||||||
close: "סגור"
|
close: "סגור"
|
||||||
|
@ -52,7 +52,7 @@ module.exports = nativeDescription: "עברית", englishDescription: "Hebrew",
|
||||||
|
|
||||||
play:
|
play:
|
||||||
play_as: "שחק בתור " # Ladder page
|
play_as: "שחק בתור " # Ladder page
|
||||||
# compete: "Compete!" # Course details page
|
compete: "הושלם!" # Course details page
|
||||||
spectate: "צופה" # Ladder page
|
spectate: "צופה" # Ladder page
|
||||||
players: "שחקנים" # Hover over a level on /play
|
players: "שחקנים" # Hover over a level on /play
|
||||||
hours_played: "שעות משחק" # Hover over a level on /play
|
hours_played: "שעות משחק" # Hover over a level on /play
|
||||||
|
@ -75,7 +75,7 @@ module.exports = nativeDescription: "עברית", englishDescription: "Hebrew",
|
||||||
subscription_required: "יש צורך במנוי"
|
subscription_required: "יש צורך במנוי"
|
||||||
anonymous: "משתמש אנונימי"
|
anonymous: "משתמש אנונימי"
|
||||||
level_difficulty: "רמת קושי: "
|
level_difficulty: "רמת קושי: "
|
||||||
# play_classroom_version: "Play Classroom Version" # Choose a level in campaign version that you also can play in one of your courses
|
play_classroom_version: "שיק בגרסה הכיתתית" # Choose a level in campaign version that you also can play in one of your courses
|
||||||
campaign_beginner: "מסע המתחילים"
|
campaign_beginner: "מסע המתחילים"
|
||||||
awaiting_levels_adventurer_prefix: ".אנחנו מוסיפים חמישה שלבים בכל שבוע" # {change}
|
awaiting_levels_adventurer_prefix: ".אנחנו מוסיפים חמישה שלבים בכל שבוע" # {change}
|
||||||
awaiting_levels_adventurer: "הירשם כהרפתקן"
|
awaiting_levels_adventurer: "הירשם כהרפתקן"
|
||||||
|
@ -83,7 +83,7 @@ module.exports = nativeDescription: "עברית", englishDescription: "Hebrew",
|
||||||
adjust_volume: "שנה ווליום"
|
adjust_volume: "שנה ווליום"
|
||||||
campaign_multiplayer: "זירות רב-המשתתפים"
|
campaign_multiplayer: "זירות רב-המשתתפים"
|
||||||
campaign_multiplayer_description: "..."
|
campaign_multiplayer_description: "..."
|
||||||
# campaign_old_multiplayer: "(Deprecated) Old Multiplayer Arenas"
|
campaign_old_multiplayer: "(לא מומלץ) זירות מרובי משתתפים ישנות"
|
||||||
# campaign_old_multiplayer_description: "Relics of a more civilized age. No simulations are run for these older, hero-less multiplayer arenas."
|
# campaign_old_multiplayer_description: "Relics of a more civilized age. No simulations are run for these older, hero-less multiplayer arenas."
|
||||||
|
|
||||||
share_progress_modal:
|
share_progress_modal:
|
||||||
|
@ -114,9 +114,9 @@ module.exports = nativeDescription: "עברית", englishDescription: "Hebrew",
|
||||||
log_in: "כנס עם סיסמה"
|
log_in: "כנס עם סיסמה"
|
||||||
required: ".יש להתחבר על מנת לגשת לשלב זה"
|
required: ".יש להתחבר על מנת לגשת לשלב זה"
|
||||||
login_switch: "? כבר יש לך משתמש"
|
login_switch: "? כבר יש לך משתמש"
|
||||||
# school_name: "School Name and City"
|
school_name: "שם בית ספר ועיר"
|
||||||
# optional: "optional"
|
optional: "רשות"
|
||||||
# school_name_placeholder: "Example High School, Springfield, IL"
|
school_name_placeholder: "לדוגמה: תיכון עירוני X, תל אביב."
|
||||||
|
|
||||||
recover:
|
recover:
|
||||||
recover_account_title: "שחזר סיסמה"
|
recover_account_title: "שחזר סיסמה"
|
||||||
|
@ -157,15 +157,15 @@ module.exports = nativeDescription: "עברית", englishDescription: "Hebrew",
|
||||||
general:
|
general:
|
||||||
and: "וגם"
|
and: "וגם"
|
||||||
name: "שם"
|
name: "שם"
|
||||||
date: "Date"
|
date: "תאריך"
|
||||||
body: "גוף"
|
body: "גוף"
|
||||||
version: "גרסה"
|
version: "גרסה"
|
||||||
pending: "ממתין"
|
pending: "ממתין"
|
||||||
accepted: "התקבל"
|
accepted: "התקבל"
|
||||||
rejected: "נדחה"
|
rejected: "נדחה"
|
||||||
withdrawn: "האוייב נסוג"
|
withdrawn: "האוייב נסוג"
|
||||||
# accept: "Accept"
|
accept: "מסכים"
|
||||||
# reject: "Reject"
|
reject: "דחה"
|
||||||
# withdraw: "Withdraw"
|
# withdraw: "Withdraw"
|
||||||
submitter: "מוסר"
|
submitter: "מוסר"
|
||||||
submitted: "נמסר"
|
submitted: "נמסר"
|
||||||
|
@ -221,12 +221,12 @@ module.exports = nativeDescription: "עברית", englishDescription: "Hebrew",
|
||||||
years: "שנים"
|
years: "שנים"
|
||||||
|
|
||||||
play_level:
|
play_level:
|
||||||
# completed_level: "Completed Level:"
|
completed_level: "שלב שהושלם:"
|
||||||
# course: "Course:"
|
course: "מסלול:"
|
||||||
done: "סיים"
|
done: "סיים"
|
||||||
# next_level: "Next Level:"
|
next_level: "השלב הבא:"
|
||||||
# next_game: "Next game"
|
next_game: "המשחק הבא"
|
||||||
# show_menu: "Show game menu"
|
show_menu: "הצג תפריט משחק"
|
||||||
home: "בית" # Not used any more, will be removed soon.
|
home: "בית" # Not used any more, will be removed soon.
|
||||||
level: "שלב" # Like "Level: Dungeons of Kithgard"
|
level: "שלב" # Like "Level: Dungeons of Kithgard"
|
||||||
skip: "דלג"
|
skip: "דלג"
|
||||||
|
@ -256,13 +256,13 @@ module.exports = nativeDescription: "עברית", englishDescription: "Hebrew",
|
||||||
victory_saving_progress: "שומר התקדמות"
|
victory_saving_progress: "שומר התקדמות"
|
||||||
victory_go_home: "חזור הביתה"
|
victory_go_home: "חזור הביתה"
|
||||||
victory_review: "!ספר לנו עוד"
|
victory_review: "!ספר לנו עוד"
|
||||||
# victory_review_placeholder: "How was the level?"
|
victory_review_placeholder: "איך היה השלב?"
|
||||||
victory_hour_of_code_done: "?סיימת"
|
victory_hour_of_code_done: "?סיימת"
|
||||||
victory_hour_of_code_done_yes: "שלי Hour of Code™! כן, סיימתי עם ה"
|
victory_hour_of_code_done_yes: "שלי Hour of Code™! כן, סיימתי עם ה"
|
||||||
victory_experience_gained: "שנצבר XP"
|
victory_experience_gained: "שנצבר XP"
|
||||||
victory_gems_gained: "אבני חן שנצברו"
|
victory_gems_gained: "אבני חן שנצברו"
|
||||||
victory_new_item: "חפץ חדש"
|
victory_new_item: "חפץ חדש"
|
||||||
# victory_viking_code_school: "Holy smokes, that was a hard level you just beat! If you aren't already a software developer, you should be. You just got fast-tracked for acceptance with Viking Code School, where you can take your skills to the next level and become a professional web developer in 14 weeks."
|
victory_viking_code_school: "אבוקדו קדוש, זה היה שלב קשה שסיימת! אם אתה עדיין לא מפתח תוכנה, אתה צריך להיות אחד. בדיוק עלית על הכביש המהיר בכדי להתקבל ל Viking Code School, שם תוכל לשאת את כישוריך לרמה הבאה ותוכל להפוך למפתח רשת מקצועי תוך 14 שבועות בלבד."
|
||||||
victory_become_a_viking: "הפוך לוויקינג"
|
victory_become_a_viking: "הפוך לוויקינג"
|
||||||
guide_title: "מדריך"
|
guide_title: "מדריך"
|
||||||
tome_cast_button_run: "הפעל"
|
tome_cast_button_run: "הפעל"
|
||||||
|
@ -297,7 +297,7 @@ module.exports = nativeDescription: "עברית", englishDescription: "Hebrew",
|
||||||
tip_scrub_shortcut: "Ctrl+[ ו Ctrl+] האץ אחורה וקדימה באמצעות" # {change}
|
tip_scrub_shortcut: "Ctrl+[ ו Ctrl+] האץ אחורה וקדימה באמצעות" # {change}
|
||||||
tip_guide_exists: ".לחץ על המדריך, בתוך תפריט המשחק (למעלה בקצה העמוד), למידע שימושי"
|
tip_guide_exists: ".לחץ על המדריך, בתוך תפריט המשחק (למעלה בקצה העמוד), למידע שימושי"
|
||||||
tip_open_source: "!הוא 100% קוד פתוח CodeCombat"
|
tip_open_source: "!הוא 100% קוד פתוח CodeCombat"
|
||||||
# tip_tell_friends: "Enjoying CodeCombat? Tell your friends about us!"
|
tip_tell_friends: "נהנה מCodeCombat? ספר לחבריךעלינו!"
|
||||||
tip_beta_launch: ".הפיץ את גרסת הבטא באוקטובר, 2013 CodeCombat"
|
tip_beta_launch: ".הפיץ את גרסת הבטא באוקטובר, 2013 CodeCombat"
|
||||||
tip_think_solution: ".תחשוב על הפתרון, לא על הבעיה"
|
tip_think_solution: ".תחשוב על הפתרון, לא על הבעיה"
|
||||||
tip_theory_practice: "תיאורטית, אין הבדל בין התאוריה לאימון. אבל באימון, יש. - יוגי ברה"
|
tip_theory_practice: "תיאורטית, אין הבדל בין התאוריה לאימון. אבל באימון, יש. - יוגי ברה"
|
||||||
|
@ -307,7 +307,7 @@ module.exports = nativeDescription: "עברית", englishDescription: "Hebrew",
|
||||||
tip_baby_coders: ".בעתיד, אפילו תינוקות יהיו כשפי על"
|
tip_baby_coders: ".בעתיד, אפילו תינוקות יהיו כשפי על"
|
||||||
tip_morale_improves: ".הטעינה תמשיך עד שהמורל ישתפר"
|
tip_morale_improves: ".הטעינה תמשיך עד שהמורל ישתפר"
|
||||||
tip_all_species: ".אנחנו מאמינים בשוויון הזדמנויות לכל היצורים בלמידת תכנות"
|
tip_all_species: ".אנחנו מאמינים בשוויון הזדמנויות לכל היצורים בלמידת תכנות"
|
||||||
# tip_reticulating: "Reticulating spines."
|
tip_reticulating: "Reticulating spines."
|
||||||
tip_harry: " ,תה' מכשף"
|
tip_harry: " ,תה' מכשף"
|
||||||
tip_great_responsibility: "עם כישרון גדול בתכנות באה גם אחריות דיבאגינג גדולה."
|
tip_great_responsibility: "עם כישרון גדול בתכנות באה גם אחריות דיבאגינג גדולה."
|
||||||
tip_munchkin: "אם לא תאכל את הירקות, מאצ'קין יבוא אליך בלילה כשאתה ישן."
|
tip_munchkin: "אם לא תאכל את הירקות, מאצ'קין יבוא אליך בלילה כשאתה ישן."
|
||||||
|
@ -410,7 +410,7 @@ module.exports = nativeDescription: "עברית", englishDescription: "Hebrew",
|
||||||
feature7: "פרטיים <strong>שבטים</strong>"
|
feature7: "פרטיים <strong>שבטים</strong>"
|
||||||
free: "חינם"
|
free: "חינם"
|
||||||
month: "חודש"
|
month: "חודש"
|
||||||
# must_be_logged: "You must be logged in first. Please create an account or log in from the menu above."
|
must_be_logged: "עליך להיות מחובר תחילה. אנא צור חשבון חדש או היכנס לחשבונך באמצעות התפריט למעלה."
|
||||||
subscribe_title: "רכוש מנוי"
|
subscribe_title: "רכוש מנוי"
|
||||||
unsubscribe: "הסר מנוי"
|
unsubscribe: "הסר מנוי"
|
||||||
confirm_unsubscribe: "אשר הסרת מנוי"
|
confirm_unsubscribe: "אשר הסרת מנוי"
|
||||||
|
@ -484,10 +484,10 @@ module.exports = nativeDescription: "עברית", englishDescription: "Hebrew",
|
||||||
blocks: "הגנה" # As in "this shield blocks this much damage"
|
blocks: "הגנה" # As in "this shield blocks this much damage"
|
||||||
backstab: "פגיעה בגב" # As in "this dagger does this much backstab damage"
|
backstab: "פגיעה בגב" # As in "this dagger does this much backstab damage"
|
||||||
skills: "מיומנויות"
|
skills: "מיומנויות"
|
||||||
# attack_1: "Deals"
|
attack_1: "מבצעים"
|
||||||
# attack_2: "of listed"
|
# attack_2: "of listed"
|
||||||
# attack_3: "weapon damage."
|
# attack_3: "weapon damage."
|
||||||
# health_1: "Gains"
|
health_1: "רווחים"
|
||||||
# health_2: "of listed"
|
# health_2: "of listed"
|
||||||
# health_3: "armor health."
|
# health_3: "armor health."
|
||||||
speed_1: "זז במהירות של"
|
speed_1: "זז במהירות של"
|
||||||
|
@ -499,8 +499,8 @@ module.exports = nativeDescription: "עברית", englishDescription: "Hebrew",
|
||||||
skill_docs:
|
skill_docs:
|
||||||
writable: "ניתן לכתיבה" # Hover over "attack" in Your Skills while playing a level to see most of this
|
writable: "ניתן לכתיבה" # Hover over "attack" in Your Skills while playing a level to see most of this
|
||||||
read_only: "לקריאה בלבד"
|
read_only: "לקריאה בלבד"
|
||||||
# action: "Action"
|
action: "פעולה"
|
||||||
# spell: "Spell"
|
spell: "כישוף"
|
||||||
action_name: "שם"
|
action_name: "שם"
|
||||||
action_cooldown: "לוקח"
|
action_cooldown: "לוקח"
|
||||||
action_specific_cooldown: ":זמן להתקררות"
|
action_specific_cooldown: ":זמן להתקררות"
|
||||||
|
|
|
@ -587,35 +587,35 @@ module.exports = nativeDescription: "日本語", englishDescription: "Japanese",
|
||||||
more_info_3: "でCodeCombatを使っている教育者の仲間とつながりましょう。"
|
more_info_3: "でCodeCombatを使っている教育者の仲間とつながりましょう。"
|
||||||
|
|
||||||
teachers_survey:
|
teachers_survey:
|
||||||
# title: "Teacher Survey"
|
title: "教師用アンケート"
|
||||||
# must_be_logged: "You must be logged in first. Please create an account or log in from the menu above."
|
must_be_logged: "最初にログインしてください。アカウントを作成するか、上記のメニューからログインしてください。"
|
||||||
# retrieving: "Retrieving information..."
|
retrieving: "情報を取得しています..."
|
||||||
# being_reviewed_1: "Your application for a free trial is being"
|
being_reviewed_1: "無料トライアルの申し込みが"
|
||||||
# being_reviewed_2: "reviewed."
|
being_reviewed_2: "レビューされています。"
|
||||||
# approved_1: "Your application for a free trial was"
|
approved_1: "無料トライアルの申し込みが"
|
||||||
# approved_2: "approved!"
|
approved_2: "承認されました!"
|
||||||
# approved_4: "You can now enroll your students on the"
|
approved_4: "以下のページで生徒を入会させることができます:"
|
||||||
# approved_5: "courses"
|
approved_5: "コース"
|
||||||
# approved_6: "page."
|
approved_6: "ページ。"
|
||||||
# denied_1: "Your application for a free trial has been"
|
denied_1: "無料トライアルの申し込みが"
|
||||||
# denied_2: "denied."
|
denied_2: "拒否されました。"
|
||||||
# contact_1: "Please contact"
|
contact_1: "お問い合わせください"
|
||||||
# contact_2: "if you have further questions."
|
contact_2: "ご質問がある場合は"
|
||||||
# description_1: "We offer free trials to teachers. You will be given 2 free enrollments which can be used to enroll students in paid courses."
|
description_1: "教師の方に無料トライアルを提供しています。有料コースで生徒さんを入会させるのに使用できる、2つの無料入会権が与えられます。"
|
||||||
# description_1b: "You can find more information on our"
|
description_1b: "詳細は以下のページで参照してください:"
|
||||||
# description_2: "teachers"
|
description_2: "教師用"
|
||||||
# description_3: "page."
|
description_3: "ページ。"
|
||||||
# description_4: "Please fill out this quick survey and we’ll email you setup instructions."
|
description_4: "この簡易アンケートに記入をお願いします。設定手順をメールにてお送りします。"
|
||||||
# email: "Email Address"
|
email: "電子メールアドレス"
|
||||||
school: "学校名"
|
school: "学校名"
|
||||||
location: "市町村"
|
location: "市町村"
|
||||||
# age_students: "How old are your students?"
|
age_students: "生徒さんの年齢を教えてください。"
|
||||||
# under: "Under"
|
under: "未満"
|
||||||
# other: "Other:"
|
other: "その他:"
|
||||||
# amount_students: "How many students do you teach?"
|
amount_students: "何人の生徒さんをお持ちですか?"
|
||||||
# hear_about: "How did you hear about CodeCombat?"
|
hear_about: "CodeCombatをどのようにお知りなりましたか?"
|
||||||
# fill_fields: "Please fill out all fields."
|
fill_fields: "全てのフィールドを記入してください。"
|
||||||
# thanks: "Thanks! We'll send you setup instructions shortly."
|
thanks: "ありがとうございます。設定の手順を追ってお送りします。"
|
||||||
|
|
||||||
versions:
|
versions:
|
||||||
save_version_title: "新しいバージョンをセーブ"
|
save_version_title: "新しいバージョンをセーブ"
|
||||||
|
@ -623,9 +623,9 @@ module.exports = nativeDescription: "日本語", englishDescription: "Japanese",
|
||||||
submitting_patch: "パッチを送信中..."
|
submitting_patch: "パッチを送信中..."
|
||||||
cla_prefix: "変更を適用するには, 私達のCLAに同意する必要があります。"
|
cla_prefix: "変更を適用するには, 私達のCLAに同意する必要があります。"
|
||||||
cla_url: "CLA"
|
cla_url: "CLA"
|
||||||
# cla_suffix: "."
|
cla_suffix: "。"
|
||||||
cla_agree: "同意する"
|
cla_agree: "同意する"
|
||||||
# owner_approve: "An owner will need to approve it before your changes will become visible."
|
owner_approve: "ユーザーは変更が実際に表示される前に同意する必要があります。"
|
||||||
|
|
||||||
contact:
|
contact:
|
||||||
contact_us: "お問い合わせ"
|
contact_us: "お問い合わせ"
|
||||||
|
@ -660,23 +660,23 @@ module.exports = nativeDescription: "日本語", englishDescription: "Japanese",
|
||||||
password_tab: "パスワード"
|
password_tab: "パスワード"
|
||||||
emails_tab: "メール"
|
emails_tab: "メール"
|
||||||
admin: "管理者"
|
admin: "管理者"
|
||||||
# manage_subscription: "Click here to manage your subscription."
|
manage_subscription: "購読を管理するにはここをクリックしてください。"
|
||||||
new_password: "新パスワード"
|
new_password: "新パスワード"
|
||||||
new_password_verify: "新パスワードを再入力"
|
new_password_verify: "新パスワードを再入力"
|
||||||
type_in_email: "アカウントの削除を確認するために、メールアドレスを入力して下さい。"
|
type_in_email: "アカウントの削除を確認するために、メールアドレスを入力して下さい。"
|
||||||
type_in_email_progress: "進捗を消すために、メールアドレスを入力してください。"
|
type_in_email_progress: "進捗を消すために、メールアドレスを入力してください。"
|
||||||
type_in_password: "そして、パスワードを入力してください。"
|
type_in_password: "そして、パスワードを入力してください。"
|
||||||
email_subscriptions: "ニュースレターの購読"
|
email_subscriptions: "ニュースレターの購読"
|
||||||
email_subscriptions_none: "No Email Subscriptions."
|
email_subscriptions_none: "ニュースレターの購読はありません。"
|
||||||
email_announcements: "お知らせ"
|
email_announcements: "お知らせ"
|
||||||
email_announcements_description: "CodeCombatの最新のニュースや進展をメールで受け取る"
|
email_announcements_description: "CodeCombatの最新のニュースや進展をメールで受け取る"
|
||||||
email_notifications: "通知"
|
email_notifications: "通知"
|
||||||
# email_notifications_summary: "Controls for personalized, automatic email notifications related to your CodeCombat activity."
|
email_notifications_summary: "CodeCombatアクティビティに関する自動電子メール通知の管理。"
|
||||||
# email_any_notes: "Any Notifications"
|
email_any_notes: "すべての通知"
|
||||||
# email_any_notes_description: "Disable to stop all activity notification emails."
|
email_any_notes_description: "アクティビティすべての通知メールを停止することを無効にします。"
|
||||||
email_news: "ニュース"
|
email_news: "ニュース"
|
||||||
email_recruit_notes: "求人"
|
email_recruit_notes: "求人"
|
||||||
# email_recruit_notes_description: "If you play really well, we may contact you about getting you a (better) job."
|
email_recruit_notes_description: "上手にプレイしてくれる場合、(更に良い)仕事を紹介するためにこちらから連絡を差し上げる場合があります。"
|
||||||
contributor_emails: "開発を手伝ってくれる人向けのメール"
|
contributor_emails: "開発を手伝ってくれる人向けのメール"
|
||||||
contribute_prefix: "私達は開発を手伝ってくれる人を探しています。 詳しくは "
|
contribute_prefix: "私達は開発を手伝ってくれる人を探しています。 詳しくは "
|
||||||
contribute_page: "こちらのページ"
|
contribute_page: "こちらのページ"
|
||||||
|
|
|
@ -4,20 +4,20 @@ module.exports = nativeDescription: "한국어", englishDescription: "Korean", t
|
||||||
no_ie: "죄송하지만 코드컴뱃은 인터넷 익스플로러 8에서는 동작하지 않습니다." # Warning that only shows up in IE8 and older
|
no_ie: "죄송하지만 코드컴뱃은 인터넷 익스플로러 8에서는 동작하지 않습니다." # Warning that only shows up in IE8 and older
|
||||||
no_mobile: "코드 컴뱃은 모바일 기기용으로 제작되지 않았습니다. 아마 동작하지 않을 가능성이 높습니다." # Warning that shows up on mobile devices
|
no_mobile: "코드 컴뱃은 모바일 기기용으로 제작되지 않았습니다. 아마 동작하지 않을 가능성이 높습니다." # Warning that shows up on mobile devices
|
||||||
play: "시작" # The big play button that opens up the campaign view.
|
play: "시작" # The big play button that opens up the campaign view.
|
||||||
# play_campaign_version: "Play Campaign Version" # Shows up under big play button if you only play /courses
|
play_campaign_version: "캠페인 버전 플레이" # Shows up under big play button if you only play /courses
|
||||||
old_browser: "브라우저가 너무 오래된 버전이라 코드 컴뱃을 실행할 수 없습니다." # Warning that shows up on really old Firefox/Chrome/Safari
|
old_browser: "브라우저가 너무 오래된 버전이라 코드 컴뱃을 실행할 수 없습니다." # Warning that shows up on really old Firefox/Chrome/Safari
|
||||||
old_browser_suffix: "시도해볼 수는 있겠지만..안될 수도 있습니다."
|
old_browser_suffix: "시도해볼 수는 있겠지만..안될 수도 있습니다."
|
||||||
# ipad_browser: "Bad news: CodeCombat doesn't run on iPad in the browser. Good news: our native iPad app is awaiting Apple approval."
|
ipad_browser: "슬픈 소식: 코드컴뱃은 아이패드의 브라우저에서 구동되지않습니다. 좋은 소식: 우리의 아이패드 앱은 애플의 승인을 기다리고있습니다 ."
|
||||||
campaign: "캠페인"
|
campaign: "캠페인"
|
||||||
for_beginners: "초보자용"
|
for_beginners: "초보자용"
|
||||||
multiplayer: "멀티플레이어" # Not currently shown on home page
|
multiplayer: "멀티플레이어" # Not currently shown on home page
|
||||||
for_developers: "개발자용" # Not currently shown on home page.
|
for_developers: "개발자용" # Not currently shown on home page.
|
||||||
# or_ipad: "Or download for iPad"
|
or_ipad: "또는 아이패드의 다운로드"
|
||||||
|
|
||||||
nav:
|
nav:
|
||||||
play: "레벨" # The top nav bar entry where players choose which levels to play
|
play: "레벨" # The top nav bar entry where players choose which levels to play
|
||||||
community: "커뮤니티"
|
community: "커뮤니티"
|
||||||
# courses: "Courses"
|
courses: "코스"
|
||||||
editor: "에디터"
|
editor: "에디터"
|
||||||
blog: "블로그"
|
blog: "블로그"
|
||||||
forum: "포럼"
|
forum: "포럼"
|
||||||
|
@ -33,7 +33,7 @@ module.exports = nativeDescription: "한국어", englishDescription: "Korean", t
|
||||||
contact: "문의"
|
contact: "문의"
|
||||||
twitter_follow: "팔로우"
|
twitter_follow: "팔로우"
|
||||||
teachers: "선생님들"
|
teachers: "선생님들"
|
||||||
# careers: "Careers"
|
careers: "채용"
|
||||||
|
|
||||||
modal:
|
modal:
|
||||||
close: "닫기"
|
close: "닫기"
|
||||||
|
@ -52,7 +52,7 @@ module.exports = nativeDescription: "한국어", englishDescription: "Korean", t
|
||||||
|
|
||||||
play:
|
play:
|
||||||
play_as: "Play As " # Ladder page
|
play_as: "Play As " # Ladder page
|
||||||
# compete: "Compete!" # Course details page
|
compete: "경쟁!" # Course details page
|
||||||
spectate: "관중모드" # Ladder page
|
spectate: "관중모드" # Ladder page
|
||||||
players: "플레이어" # Hover over a level on /play
|
players: "플레이어" # Hover over a level on /play
|
||||||
hours_played: "플레이한 시간" # Hover over a level on /play
|
hours_played: "플레이한 시간" # Hover over a level on /play
|
||||||
|
@ -68,14 +68,14 @@ module.exports = nativeDescription: "한국어", englishDescription: "Korean", t
|
||||||
achievements: "성취한 목표" # Tooltip on achievement list button from /play
|
achievements: "성취한 목표" # Tooltip on achievement list button from /play
|
||||||
account: "계정" # Tooltip on account button from /play
|
account: "계정" # Tooltip on account button from /play
|
||||||
settings: "설정" # Tooltip on settings button from /play
|
settings: "설정" # Tooltip on settings button from /play
|
||||||
# poll: "Poll" # Tooltip on poll button from /play
|
poll: "투표" # Tooltip on poll button from /play
|
||||||
next: "다음" # Go from choose hero to choose inventory before playing a level
|
next: "다음" # Go from choose hero to choose inventory before playing a level
|
||||||
change_hero: "영웅 교체" # Go back from choose inventory to choose hero
|
change_hero: "영웅 교체" # Go back from choose inventory to choose hero
|
||||||
buy_gems: "젬 구매"
|
buy_gems: "젬 구매"
|
||||||
# subscription_required: "Subscription Required"
|
subscription_required: "가입 필수"
|
||||||
anonymous: "이름없는 플레이어"
|
anonymous: "이름없는 플레이어"
|
||||||
level_difficulty: "난이도: "
|
level_difficulty: "난이도: "
|
||||||
# play_classroom_version: "Play Classroom Version" # Choose a level in campaign version that you also can play in one of your courses
|
play_classroom_version: "교실 버전 플레이" # Choose a level in campaign version that you also can play in one of your courses
|
||||||
campaign_beginner: "초보자 캠페인"
|
campaign_beginner: "초보자 캠페인"
|
||||||
awaiting_levels_adventurer_prefix: "매주 마다 새로운 레벨이 생깁니다."
|
awaiting_levels_adventurer_prefix: "매주 마다 새로운 레벨이 생깁니다."
|
||||||
awaiting_levels_adventurer: "모험자로 등록 하세요!"
|
awaiting_levels_adventurer: "모험자로 등록 하세요!"
|
||||||
|
@ -83,16 +83,16 @@ module.exports = nativeDescription: "한국어", englishDescription: "Korean", t
|
||||||
adjust_volume: "소리 조절"
|
adjust_volume: "소리 조절"
|
||||||
campaign_multiplayer: "멀티 플레이어 전투장"
|
campaign_multiplayer: "멀티 플레이어 전투장"
|
||||||
campaign_multiplayer_description: "... 이곳에서 당신은 다른 인간 플레이어들과 직접 결투할 수 있습니다."
|
campaign_multiplayer_description: "... 이곳에서 당신은 다른 인간 플레이어들과 직접 결투할 수 있습니다."
|
||||||
# campaign_old_multiplayer: "(Deprecated) Old Multiplayer Arenas"
|
campaign_old_multiplayer: "(추천하지 않습니다) 숙련된 멀티플레이어 경쟁"
|
||||||
# campaign_old_multiplayer_description: "Relics of a more civilized age. No simulations are run for these older, hero-less multiplayer arenas."
|
campaign_old_multiplayer_description: "더 문명화 된 시대의 유물. 어떤 시뮬레이션은 이러한 이전, 영웅없는 멀티 경기장에 대해 실행되지 않습니다."
|
||||||
|
|
||||||
share_progress_modal:
|
share_progress_modal:
|
||||||
# blurb: "You’re making great progress! Tell your parent how much you've learned with CodeCombat."
|
blurb: "당신은 큰 진전을 보이고있습니다! 당신이 코드컴뱃으로 얼마나 많이 배웠는지 부모님게 말하십시오."
|
||||||
email_invalid: "이메일 주소가 올바르지 않습니다."
|
email_invalid: "이메일 주소가 올바르지 않습니다."
|
||||||
# form_blurb: "Enter your parent's email below and we’ll show them!"
|
form_blurb: "아래에 부모님의 이메일을 입력하고 우리는 그것들을 보여줍니다!"
|
||||||
form_label: "이메일"
|
form_label: "이메일"
|
||||||
placeholder: "이메일"
|
placeholder: "이메일"
|
||||||
# title: "Excellent Work, Apprentice"
|
title: "우수한, 초심자"
|
||||||
|
|
||||||
login:
|
login:
|
||||||
sign_up: "계정 생성"
|
sign_up: "계정 생성"
|
||||||
|
@ -100,8 +100,8 @@ module.exports = nativeDescription: "한국어", englishDescription: "Korean", t
|
||||||
logging_in: "로그인 중"
|
logging_in: "로그인 중"
|
||||||
log_out: "로그아웃"
|
log_out: "로그아웃"
|
||||||
forgot_password: "비밀번호를 잊으셨나요?"
|
forgot_password: "비밀번호를 잊으셨나요?"
|
||||||
# authenticate_gplus: "Authenticate G+"
|
authenticate_gplus: "G+ 인증"
|
||||||
# load_profile: "Load G+ Profile"
|
load_profile: "G+ 프로필 불러오기"
|
||||||
finishing: "완료중.."
|
finishing: "완료중.."
|
||||||
sign_in_with_facebook: "Facebook으로 로그인"
|
sign_in_with_facebook: "Facebook으로 로그인"
|
||||||
sign_in_with_gplus: "G+로 로그인"
|
sign_in_with_gplus: "G+로 로그인"
|
||||||
|
@ -114,9 +114,9 @@ module.exports = nativeDescription: "한국어", englishDescription: "Korean", t
|
||||||
log_in: "비밀번호로 로그인"
|
log_in: "비밀번호로 로그인"
|
||||||
required: "진행하기 전에 로그인이 필요합니다."
|
required: "진행하기 전에 로그인이 필요합니다."
|
||||||
login_switch: "이미 계정이 있으신가요?"
|
login_switch: "이미 계정이 있으신가요?"
|
||||||
# school_name: "School Name and City"
|
school_name: "학교 이름과 도시"
|
||||||
# optional: "optional"
|
optional: "옵션"
|
||||||
# school_name_placeholder: "Example High School, Springfield, IL"
|
school_name_placeholder: "예시 고등학교, 스프링필드, IL"
|
||||||
|
|
||||||
recover:
|
recover:
|
||||||
recover_account_title: "계정 복구"
|
recover_account_title: "계정 복구"
|
||||||
|
@ -142,7 +142,7 @@ module.exports = nativeDescription: "한국어", englishDescription: "Korean", t
|
||||||
save: "저장"
|
save: "저장"
|
||||||
publish: "내보내기"
|
publish: "내보내기"
|
||||||
create: "생성"
|
create: "생성"
|
||||||
fork: "Fork"
|
fork: "포크"
|
||||||
play: "시작" # When used as an action verb, like "Play next level"
|
play: "시작" # When used as an action verb, like "Play next level"
|
||||||
retry: "재시도"
|
retry: "재시도"
|
||||||
actions: "행동"
|
actions: "행동"
|
||||||
|
@ -164,20 +164,20 @@ module.exports = nativeDescription: "한국어", englishDescription: "Korean", t
|
||||||
accepted: "적용됨"
|
accepted: "적용됨"
|
||||||
rejected: "거부됨"
|
rejected: "거부됨"
|
||||||
withdrawn: "취소됨"
|
withdrawn: "취소됨"
|
||||||
# accept: "Accept"
|
accept: "승인"
|
||||||
# reject: "Reject"
|
reject: "보류"
|
||||||
# withdraw: "Withdraw"
|
withdraw: "철수"
|
||||||
submitter: "제출자"
|
submitter: "제출자"
|
||||||
submitted: "제출됨"
|
submitted: "제출됨"
|
||||||
commit_msg: "커밋 메세지"
|
commit_msg: "커밋 메세지"
|
||||||
version_history: "버전 히스토리"
|
version_history: "버전 히스토리"
|
||||||
version_history_for: "버전 히스토리 : "
|
version_history_for: "버전 히스토리 : "
|
||||||
# select_changes: "Select two changes below to see the difference."
|
select_changes: "차이를 보기위해 두 가지 사항을 변경하도록 선택합니다."
|
||||||
# undo_prefix: "Undo"
|
undo_prefix: "되돌리기"
|
||||||
undo_shortcut: "(Ctrl+Z)"
|
undo_shortcut: "(Ctrl+Z)"
|
||||||
# redo_prefix: "Redo"
|
redo_prefix: "다시하기"
|
||||||
redo_shortcut: "(Ctrl+Shift+Z)"
|
redo_shortcut: "(Ctrl+Shift+Z)"
|
||||||
# play_preview: "Play preview of current level"
|
play_preview: "현재 수준의 미리보기 재생"
|
||||||
result: "결과"
|
result: "결과"
|
||||||
results: "결과들"
|
results: "결과들"
|
||||||
description: "설명"
|
description: "설명"
|
||||||
|
@ -221,12 +221,12 @@ module.exports = nativeDescription: "한국어", englishDescription: "Korean", t
|
||||||
years: "년"
|
years: "년"
|
||||||
|
|
||||||
play_level:
|
play_level:
|
||||||
# completed_level: "Completed Level:"
|
completed_level: "완료된 레벨:"
|
||||||
# course: "Course:"
|
course: "코스:"
|
||||||
done: "완료"
|
done: "완료"
|
||||||
# next_level: "Next Level:"
|
next_level: "다음 레벨:"
|
||||||
# next_game: "Next game"
|
next_game: "다음 게임"
|
||||||
# show_menu: "Show game menu"
|
show_menu: "게임 매뉴 보이기"
|
||||||
home: "홈" # Not used any more, will be removed soon.
|
home: "홈" # Not used any more, will be removed soon.
|
||||||
level: "레벨" # Like "Level: Dungeons of Kithgard"
|
level: "레벨" # Like "Level: Dungeons of Kithgard"
|
||||||
skip: "넘어가기"
|
skip: "넘어가기"
|
||||||
|
@ -256,40 +256,40 @@ module.exports = nativeDescription: "한국어", englishDescription: "Korean", t
|
||||||
victory_saving_progress: "저장하기"
|
victory_saving_progress: "저장하기"
|
||||||
victory_go_home: "홈으로"
|
victory_go_home: "홈으로"
|
||||||
victory_review: "리뷰를 남겨주세요"
|
victory_review: "리뷰를 남겨주세요"
|
||||||
# victory_review_placeholder: "How was the level?"
|
victory_review_placeholder: "어떤 레벨입니까?"
|
||||||
victory_hour_of_code_done: "정말 종료합니까?"
|
victory_hour_of_code_done: "정말 종료합니까?"
|
||||||
victory_hour_of_code_done_yes: "네 내 Hour of Code™ 완료했습니다!"
|
victory_hour_of_code_done_yes: "네 내 Hour of Code™ 완료했습니다!"
|
||||||
victory_experience_gained: "획득한 경험치"
|
victory_experience_gained: "획득한 경험치"
|
||||||
victory_gems_gained: "획득한 젬"
|
victory_gems_gained: "획득한 젬"
|
||||||
victory_new_item: "새로운 아이템"
|
victory_new_item: "새로운 아이템"
|
||||||
# victory_viking_code_school: "Holy smokes, that was a hard level you just beat! If you aren't already a software developer, you should be. You just got fast-tracked for acceptance with Viking Code School, where you can take your skills to the next level and become a professional web developer in 14 weeks."
|
victory_viking_code_school: "놀랍습니다, 당신은 그냥 이길 힘든 수준이었습니다! 이미 소프트웨어 개발자가 아닌 경우, 당신은 비이킹 코드 학교에서 빠르게 이해할것입니다, 당신이 다음 레벨에서 자신의 능력을 14주 동안 전문 웹 개발자가 될 수있는 곳입니다."
|
||||||
victory_become_a_viking: "바이킹이 되세요"
|
victory_become_a_viking: "바이킹이 되세요"
|
||||||
guide_title: "가이드"
|
guide_title: "가이드"
|
||||||
# tome_cast_button_run: "Run"
|
tome_cast_button_run: "실행"
|
||||||
# tome_cast_button_running: "Running"
|
tome_cast_button_running: "실행중"
|
||||||
# tome_cast_button_ran: "Ran"
|
tome_cast_button_ran: "실행됨"
|
||||||
# tome_submit_button: "Submit"
|
tome_submit_button: "적용"
|
||||||
# tome_reload_method: "Reload original code for this method" # Title text for individual method reload button.
|
tome_reload_method: "이 방법에 대한 원래의 코드를 다시불러오기" # Title text for individual method reload button.
|
||||||
# tome_select_method: "Select a Method"
|
tome_select_method: "방법 선택"
|
||||||
# tome_see_all_methods: "See all methods you can edit" # Title text for method list selector (shown when there are multiple programmable methods).
|
tome_see_all_methods: "편집 할 수있는 모든 방법을 참조하십시오" # Title text for method list selector (shown when there are multiple programmable methods).
|
||||||
tome_select_a_thang: "누군가를 선택하세요. "
|
tome_select_a_thang: "누군가를 선택하세요. "
|
||||||
tome_available_spells: "사용 가능한 마법"
|
tome_available_spells: "사용 가능한 마법"
|
||||||
# tome_your_skills: "Your Skills"
|
tome_your_skills: "당신의 스킬"
|
||||||
# tome_current_method: "Current Method"
|
tome_current_method: "최근 방법"
|
||||||
# code_saved: "Code Saved"
|
code_saved: "코드가 저장됨"
|
||||||
skip_tutorial: "넘기기 (esc)"
|
skip_tutorial: "넘기기 (esc)"
|
||||||
keyboard_shortcuts: "단축키"
|
keyboard_shortcuts: "단축키"
|
||||||
loading_ready: "준비!"
|
loading_ready: "준비!"
|
||||||
# loading_start: "Start Level"
|
loading_start: "레벨 시작"
|
||||||
problem_alert_title: "코드를 수정하세요"
|
problem_alert_title: "코드를 수정하세요"
|
||||||
time_current: "현재:"
|
time_current: "현재:"
|
||||||
time_total: "최대:"
|
time_total: "최대:"
|
||||||
# time_goto: "Go to:"
|
time_goto: "가기:"
|
||||||
# non_user_code_problem_title: "Unable to Load Level"
|
non_user_code_problem_title: "레벨을 로드 할 수 없습니다"
|
||||||
# infinite_loop_title: "Infinite Loop Detected"
|
infinite_loop_title: "무한 루프 감지"
|
||||||
# infinite_loop_description: "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."
|
infinite_loop_description: "세계를 구축하는 초기 코드는 결코 실행이 완료되지 않습니다. 아마도 하나의 정말 느리거나 또는 무한 루프가 있습니다. 혹은 버그일수있습니다. 당신은 다시 이 코드를 실행하려고하거나 기본 상태로 코드를 재설정 할 수 있습니다. 그게 해결되지 않으면, 저희에게 알려 주시기 바랍니다."
|
||||||
# check_dev_console: "You can also open the developer console to see what might be going wrong."
|
check_dev_console: "또한 잘못 갈 수를 알기 위해 개발자 콘솔을 열 수 있습니다."
|
||||||
# check_dev_console_link: "(instructions)"
|
check_dev_console_link: "(명령어)"
|
||||||
infinite_loop_try_again: "다시 시도해보세요."
|
infinite_loop_try_again: "다시 시도해보세요."
|
||||||
infinite_loop_reset_level: "레벨 리셋"
|
infinite_loop_reset_level: "레벨 리셋"
|
||||||
infinite_loop_comment_out: "내 코드를 일시적 주석처리하기"
|
infinite_loop_comment_out: "내 코드를 일시적 주석처리하기"
|
||||||
|
@ -297,7 +297,7 @@ module.exports = nativeDescription: "한국어", englishDescription: "Korean", t
|
||||||
tip_scrub_shortcut: "Ctrl+[, Ctrl+] 를 이용해 실행 속도를 빠르게 할 수 있어요"
|
tip_scrub_shortcut: "Ctrl+[, Ctrl+] 를 이용해 실행 속도를 빠르게 할 수 있어요"
|
||||||
tip_guide_exists: "화면 상단의 가이드를 클릭해보세요. 유용한 정보를 얻을 수 있습니다."
|
tip_guide_exists: "화면 상단의 가이드를 클릭해보세요. 유용한 정보를 얻을 수 있습니다."
|
||||||
tip_open_source: "코드 컴뱃은 100% 오픈 소스 기반입니다!"
|
tip_open_source: "코드 컴뱃은 100% 오픈 소스 기반입니다!"
|
||||||
# tip_tell_friends: "Enjoying CodeCombat? Tell your friends about us!"
|
tip_tell_friends: "코드 컴뱃을 즐기셨나요? 친구에게 알려주십시오"
|
||||||
tip_beta_launch: "코드 컴뱃은 2013년 10월에 베타 서비스를 출시했습니다."
|
tip_beta_launch: "코드 컴뱃은 2013년 10월에 베타 서비스를 출시했습니다."
|
||||||
tip_think_solution: "해결 방법을 고민해보세요, 문제를 고민하지 말구요"
|
tip_think_solution: "해결 방법을 고민해보세요, 문제를 고민하지 말구요"
|
||||||
# tip_theory_practice: "In theory, there is no difference between theory and practice. But in practice, there is. - Yogi Berra"
|
# tip_theory_practice: "In theory, there is no difference between theory and practice. But in practice, there is. - Yogi Berra"
|
||||||
|
@ -326,7 +326,7 @@ module.exports = nativeDescription: "한국어", englishDescription: "Korean", t
|
||||||
# tip_extrapolation: "There are only two kinds of people: those that can extrapolate from incomplete data..."
|
# tip_extrapolation: "There are only two kinds of people: those that can extrapolate from incomplete data..."
|
||||||
# tip_superpower: "Coding is the closest thing we have to a superpower."
|
# tip_superpower: "Coding is the closest thing we have to a superpower."
|
||||||
# tip_control_destiny: "In real open source, you have the right to control your own destiny. - Linus Torvalds"
|
# tip_control_destiny: "In real open source, you have the right to control your own destiny. - Linus Torvalds"
|
||||||
# tip_no_code: "No code is faster than no code."
|
tip_no_code: "코드가 없는것보다 빠른것은 없습니다."
|
||||||
tip_code_never_lies: "코드는 절대로 거짓말을 하지 않는다. 주석은 가끔 하지만. — Ron Jeffries"
|
tip_code_never_lies: "코드는 절대로 거짓말을 하지 않는다. 주석은 가끔 하지만. — Ron Jeffries"
|
||||||
# tip_reusable_software: "Before software can be reusable it first has to be usable."
|
# tip_reusable_software: "Before software can be reusable it first has to be usable."
|
||||||
# tip_optimization_operator: "Every language has an optimization operator. In most languages that operator is ‘//’"
|
# tip_optimization_operator: "Every language has an optimization operator. In most languages that operator is ‘//’"
|
||||||
|
@ -341,8 +341,8 @@ module.exports = nativeDescription: "한국어", englishDescription: "Korean", t
|
||||||
# tip_recurse: "To iterate is human, to recurse divine. - L. Peter Deutsch"
|
# tip_recurse: "To iterate is human, to recurse divine. - L. Peter Deutsch"
|
||||||
# tip_free_your_mind: "You have to let it all go, Neo. Fear, doubt, and disbelief. Free your mind. - Morpheus"
|
# tip_free_your_mind: "You have to let it all go, Neo. Fear, doubt, and disbelief. Free your mind. - Morpheus"
|
||||||
# tip_strong_opponents: "Even the strongest of opponents always has a weakness. - Itachi Uchiha"
|
# tip_strong_opponents: "Even the strongest of opponents always has a weakness. - Itachi Uchiha"
|
||||||
# tip_paper_and_pen: "Before you start coding, you can always plan with a sheet of paper and a pen."
|
tip_paper_and_pen: "코딩을 하기전에, 당신은 항상 종이와 펜으로 계획을 지니고 있어야합니다."
|
||||||
# tip_solve_then_write: "First, solve the problem. Then, write the code. - John Johnson"
|
tip_solve_then_write: "먼저, 문제를 해결하세요. 그러고, 코드를 쓰는겁니다. - John Johnson"
|
||||||
|
|
||||||
game_menu:
|
game_menu:
|
||||||
inventory_tab: "인벤토리"
|
inventory_tab: "인벤토리"
|
||||||
|
@ -355,24 +355,24 @@ module.exports = nativeDescription: "한국어", englishDescription: "Korean", t
|
||||||
auth_tab: "가입하기"
|
auth_tab: "가입하기"
|
||||||
inventory_caption: "장비 장착"
|
inventory_caption: "장비 장착"
|
||||||
choose_hero_caption: "영웅 및 언어 선택 "
|
choose_hero_caption: "영웅 및 언어 선택 "
|
||||||
# save_load_caption: "... and view history"
|
save_load_caption: "... 그리고 기록보기"
|
||||||
options_caption: "설정들을 바꾸기"
|
options_caption: "설정들을 바꾸기"
|
||||||
guide_caption: "문서들과 팁들"
|
guide_caption: "문서들과 팁들"
|
||||||
multiplayer_caption: "친구들과 플레이 하세요!"
|
multiplayer_caption: "친구들과 플레이 하세요!"
|
||||||
auth_caption: "진행사항을 저장하세요"
|
auth_caption: "진행사항을 저장하세요"
|
||||||
|
|
||||||
leaderboard:
|
leaderboard:
|
||||||
# view_other_solutions: "View Leaderboards"
|
view_other_solutions: "리더보드 보기"
|
||||||
scores: "점수"
|
scores: "점수"
|
||||||
top_players: "상위 플레이어"
|
top_players: "상위 플레이어"
|
||||||
day: "오늘"
|
day: "오늘"
|
||||||
week: "이번 주"
|
week: "이번 주"
|
||||||
# all: "All-Time"
|
all: "모든-시간"
|
||||||
# time: "Time"
|
time: "시간"
|
||||||
# damage_taken: "Damage Taken"
|
damage_taken: "데미지 정도"
|
||||||
# damage_dealt: "Damage Dealt"
|
damage_dealt: "죽음을 맞은 데미지"
|
||||||
# difficulty: "Difficulty"
|
difficulty: "난이도"
|
||||||
# gold_collected: "Gold Collected"
|
gold_collected: "수집된 골드"
|
||||||
|
|
||||||
inventory:
|
inventory:
|
||||||
equipped_item: "장착됨"
|
equipped_item: "장착됨"
|
||||||
|
@ -391,33 +391,33 @@ module.exports = nativeDescription: "한국어", englishDescription: "Korean", t
|
||||||
pile_gems: "gem 묶음"
|
pile_gems: "gem 묶음"
|
||||||
chest_gems: "gem 상자"
|
chest_gems: "gem 상자"
|
||||||
purchasing: "구매중..."
|
purchasing: "구매중..."
|
||||||
declined: "Your card was declined"
|
declined: "귀하의 카드가 거부되었습니다"
|
||||||
retrying: "서버에러, 다시 시도하세요."
|
retrying: "서버에러, 다시 시도하세요."
|
||||||
prompt_title: "gem 부족"
|
prompt_title: "gem 부족"
|
||||||
prompt_body: "gem이 더 필요하신가요?"
|
prompt_body: "gem이 더 필요하신가요?"
|
||||||
prompt_button: "Enter Shop"
|
prompt_button: "샵 앤터"
|
||||||
recovered: "gem 구매후 브라우져를 새로고침 하세요."
|
recovered: "gem 구매후 브라우져를 새로고침 하세요."
|
||||||
price: "x{{gems}} / 한달"
|
price: "x{{gems}} / 한달"
|
||||||
|
|
||||||
# subscribe:
|
subscribe:
|
||||||
# comparison_blurb: "Sharpen your skills with a CodeCombat subscription!"
|
# comparison_blurb: "Sharpen your skills with a CodeCombat subscription!"
|
||||||
# feature1: "110+ basic levels across 4 worlds"
|
# feature1: "110+ basic levels across 4 worlds"
|
||||||
# feature2: "10 powerful <strong>new heroes</strong> with unique skills!"
|
# feature2: "10 powerful <strong>new heroes</strong> with unique skills!"
|
||||||
# feature3: "80+ bonus levels"
|
feature3: "80+ 보너스 레벨들"
|
||||||
# feature4: "<strong>{{gems}} bonus gems</strong> every month!"
|
# feature4: "<strong>{{gems}} bonus gems</strong> every month!"
|
||||||
# feature5: "Video tutorials"
|
feature5: "영상 튜토리얼"
|
||||||
# feature6: "Premium email support"
|
feature6: "프리미엄 이메일 지원"
|
||||||
# feature7: "Private <strong>Clans</strong>"
|
# feature7: "Private <strong>Clans</strong>"
|
||||||
# free: "Free"
|
free: "프리"
|
||||||
# month: "month"
|
month: "달"
|
||||||
# must_be_logged: "You must be logged in first. Please create an account or log in from the menu above."
|
# must_be_logged: "You must be logged in first. Please create an account or log in from the menu above."
|
||||||
# subscribe_title: "Subscribe"
|
subscribe_title: "구독"
|
||||||
# unsubscribe: "Unsubscribe"
|
unsubscribe: "구독 해제"
|
||||||
# confirm_unsubscribe: "Confirm Unsubscribe"
|
confirm_unsubscribe: "구독 해제 확인"
|
||||||
# never_mind: "Never Mind, I Still Love You"
|
# never_mind: "Never Mind, I Still Love You"
|
||||||
# thank_you_months_prefix: "Thank you for supporting us these last"
|
# thank_you_months_prefix: "Thank you for supporting us these last"
|
||||||
# thank_you_months_suffix: "months."
|
# thank_you_months_suffix: "months."
|
||||||
# thank_you: "Thank you for supporting CodeCombat."
|
thank_you: "CodeCombat을 도와주셔서 감사합니다."
|
||||||
# sorry_to_see_you_go: "Sorry to see you go! Please let us know what we could have done better."
|
# sorry_to_see_you_go: "Sorry to see you go! Please let us know what we could have done better."
|
||||||
# unsubscribe_feedback_placeholder: "O, what have we done?"
|
# unsubscribe_feedback_placeholder: "O, what have we done?"
|
||||||
# parent_button: "Ask your parent"
|
# parent_button: "Ask your parent"
|
||||||
|
@ -496,29 +496,29 @@ module.exports = nativeDescription: "한국어", englishDescription: "Korean", t
|
||||||
# level_to_unlock: "Level to unlock:" # Label for which level you have to beat to unlock a particular hero (click a locked hero in the store to see)
|
# level_to_unlock: "Level to unlock:" # Label for which level you have to beat to unlock a particular hero (click a locked hero in the store to see)
|
||||||
# restricted_to_certain_heroes: "Only certain heroes can play this level."
|
# restricted_to_certain_heroes: "Only certain heroes can play this level."
|
||||||
|
|
||||||
# skill_docs:
|
skill_docs:
|
||||||
# writable: "writable" # Hover over "attack" in Your Skills while playing a level to see most of this
|
# writable: "writable" # Hover over "attack" in Your Skills while playing a level to see most of this
|
||||||
# read_only: "read-only"
|
# read_only: "read-only"
|
||||||
# action: "Action"
|
# action: "Action"
|
||||||
# spell: "Spell"
|
# spell: "Spell"
|
||||||
# action_name: "name"
|
action_name: "이름"
|
||||||
# action_cooldown: "Takes"
|
# action_cooldown: "Takes"
|
||||||
# action_specific_cooldown: "Cooldown"
|
# action_specific_cooldown: "Cooldown"
|
||||||
# action_damage: "Damage"
|
action_damage: "데미지"
|
||||||
# action_range: "Range"
|
action_range: "사거리"
|
||||||
# action_radius: "Radius"
|
# action_radius: "Radius"
|
||||||
# action_duration: "Duration"
|
# action_duration: "Duration"
|
||||||
# example: "Example"
|
example: "예제"
|
||||||
# ex: "ex" # Abbreviation of "example"
|
ex: "예시" # Abbreviation of "example"
|
||||||
# current_value: "Current Value"
|
# current_value: "Current Value"
|
||||||
# default_value: "Default value"
|
# default_value: "Default value"
|
||||||
# parameters: "Parameters"
|
# parameters: "Parameters"
|
||||||
# returns: "Returns"
|
returns: "뒤로가기"
|
||||||
# granted_by: "Granted by"
|
# granted_by: "Granted by"
|
||||||
|
|
||||||
# save_load:
|
save_load:
|
||||||
# granularity_saved_games: "Saved"
|
granularity_saved_games: "저장됨"
|
||||||
# granularity_change_history: "History"
|
granularity_change_history: "기록"
|
||||||
|
|
||||||
options:
|
options:
|
||||||
# general_options: "General Options" # Check out the Options tab in the Game Menu while playing a level
|
# general_options: "General Options" # Check out the Options tab in the Game Menu while playing a level
|
||||||
|
@ -586,20 +586,20 @@ module.exports = nativeDescription: "한국어", englishDescription: "Korean", t
|
||||||
# more_info_2: "teachers forum"
|
# more_info_2: "teachers forum"
|
||||||
# more_info_3: "is a good place to connect with fellow educators who are using CodeCombat."
|
# more_info_3: "is a good place to connect with fellow educators who are using CodeCombat."
|
||||||
|
|
||||||
# teachers_survey:
|
teachers_survey:
|
||||||
# title: "Teacher Survey"
|
# title: "Teacher Survey"
|
||||||
# must_be_logged: "You must be logged in first. Please create an account or log in from the menu above."
|
# must_be_logged: "You must be logged in first. Please create an account or log in from the menu above."
|
||||||
# retrieving: "Retrieving information..."
|
# retrieving: "Retrieving information..."
|
||||||
# being_reviewed_1: "Your application for a free trial is being"
|
# being_reviewed_1: "Your application for a free trial is being"
|
||||||
# being_reviewed_2: "reviewed."
|
being_reviewed_2: "검토됨."
|
||||||
# approved_1: "Your application for a free trial was"
|
# approved_1: "Your application for a free trial was"
|
||||||
# approved_2: "approved!"
|
# approved_2: "approved!"
|
||||||
# approved_4: "You can now enroll your students on the"
|
# approved_4: "You can now enroll your students on the"
|
||||||
# approved_5: "courses"
|
# approved_5: "courses"
|
||||||
# approved_6: "page."
|
approved_6: "페이지."
|
||||||
# denied_1: "Your application for a free trial has been"
|
# denied_1: "Your application for a free trial has been"
|
||||||
# denied_2: "denied."
|
denied_2: "거절됨."
|
||||||
# contact_1: "Please contact"
|
contact_1: "연락해주세요."
|
||||||
# contact_2: "if you have further questions."
|
# contact_2: "if you have further questions."
|
||||||
# description_1: "We offer free trials to teachers. You will be given 2 free enrollments which can be used to enroll students in paid courses."
|
# description_1: "We offer free trials to teachers. You will be given 2 free enrollments which can be used to enroll students in paid courses."
|
||||||
# description_1b: "You can find more information on our"
|
# description_1b: "You can find more information on our"
|
||||||
|
@ -620,7 +620,7 @@ module.exports = nativeDescription: "한국어", englishDescription: "Korean", t
|
||||||
versions:
|
versions:
|
||||||
save_version_title: "새로운 버전을 저장합니다"
|
save_version_title: "새로운 버전을 저장합니다"
|
||||||
new_major_version: "신규 버전"
|
new_major_version: "신규 버전"
|
||||||
# submitting_patch: "Submitting Patch..."
|
submitting_patch: "패치 적용중..."
|
||||||
cla_prefix: "변경사항을 저장하기 위해서는, 먼저 계약사항에 동의 하셔야 합니다."
|
cla_prefix: "변경사항을 저장하기 위해서는, 먼저 계약사항에 동의 하셔야 합니다."
|
||||||
cla_url: "CLA"
|
cla_url: "CLA"
|
||||||
cla_suffix: "."
|
cla_suffix: "."
|
||||||
|
|
|
@ -151,7 +151,7 @@ module.exports = nativeDescription: "lietuvių kalba", englishDescription: "Lith
|
||||||
watch: "Žiūrėti"
|
watch: "Žiūrėti"
|
||||||
unwatch: "Nebežiūrėti"
|
unwatch: "Nebežiūrėti"
|
||||||
submit_patch: "Pateikti pataisymą"
|
submit_patch: "Pateikti pataisymą"
|
||||||
submit_changes: "Pateikti pakeitimus"
|
submit_changes: "Išsaugoti pakeitimus"
|
||||||
save_changes: "Saugoti pakeitimus"
|
save_changes: "Saugoti pakeitimus"
|
||||||
|
|
||||||
general:
|
general:
|
||||||
|
@ -284,12 +284,12 @@ module.exports = nativeDescription: "lietuvių kalba", englishDescription: "Lith
|
||||||
problem_alert_title: "Taisyti kodą"
|
problem_alert_title: "Taisyti kodą"
|
||||||
time_current: "Dabar:"
|
time_current: "Dabar:"
|
||||||
time_total: "Max:"
|
time_total: "Max:"
|
||||||
# time_goto: "Go to:"
|
time_goto: "Eiti į:"
|
||||||
non_user_code_problem_title: "Nepavyko pakrauti lygio"
|
non_user_code_problem_title: "Nepavyko pakrauti lygio"
|
||||||
infinite_loop_title: "Pastebėtas begalinis ciklas!"
|
infinite_loop_title: "Pastebėtas begalinis ciklas!"
|
||||||
# infinite_loop_description: "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."
|
# infinite_loop_description: "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."
|
||||||
# check_dev_console: "You can also open the developer console to see what might be going wrong."
|
# check_dev_console: "You can also open the developer console to see what might be going wrong."
|
||||||
# check_dev_console_link: "(instructions)"
|
check_dev_console_link: "(instrukcijos)"
|
||||||
infinite_loop_try_again: "Bandyk dar kartą"
|
infinite_loop_try_again: "Bandyk dar kartą"
|
||||||
infinite_loop_reset_level: "Pradėti lygi išnaujo"
|
infinite_loop_reset_level: "Pradėti lygi išnaujo"
|
||||||
infinite_loop_comment_out: "Užkomentuoti mano kodą"
|
infinite_loop_comment_out: "Užkomentuoti mano kodą"
|
||||||
|
@ -308,7 +308,7 @@ module.exports = nativeDescription: "lietuvių kalba", englishDescription: "Lith
|
||||||
# tip_morale_improves: "Loading will continue until morale improves."
|
# tip_morale_improves: "Loading will continue until morale improves."
|
||||||
# tip_all_species: "We believe in equal opportunities to learn programming for all species."
|
# tip_all_species: "We believe in equal opportunities to learn programming for all species."
|
||||||
# tip_reticulating: "Reticulating spines."
|
# tip_reticulating: "Reticulating spines."
|
||||||
# tip_harry: "Yer a Wizard, "
|
tip_harry: "Tu esi Burtininkas, "
|
||||||
# tip_great_responsibility: "With great coding skill comes great debug responsibility."
|
# tip_great_responsibility: "With great coding skill comes great debug responsibility."
|
||||||
# tip_munchkin: "If you don't eat your vegetables, a munchkin will come after you while you're asleep."
|
# tip_munchkin: "If you don't eat your vegetables, a munchkin will come after you while you're asleep."
|
||||||
# tip_binary: "There are only 10 types of people in the world: those who understand binary, and those who don't."
|
# tip_binary: "There are only 10 types of people in the world: those who understand binary, and those who don't."
|
||||||
|
@ -577,115 +577,115 @@ module.exports = nativeDescription: "lietuvių kalba", englishDescription: "Lith
|
||||||
# carlos_title: "Region Manager, Brazil"
|
# carlos_title: "Region Manager, Brazil"
|
||||||
# carlos_blurb: "Celery Man"
|
# carlos_blurb: "Celery Man"
|
||||||
|
|
||||||
# teachers:
|
teachers:
|
||||||
# who_for_title: "Who is CodeCombat for?"
|
who_for_title: "Kam skirtas CodeCombat?"
|
||||||
# who_for_1: "We recommend CodeCombat for students aged 9 and up. No prior programming experience is needed. We've designed CodeCombat to appeal to both boys and girls."
|
who_for_1: "Mes rekomenduojame CodeCombat mokiniams nuo 9-erių metų. Nereikia turėti jokios programavimo patirties. Mes sukūrėme CodeCombat taip, kad patiktų ir berniukams ir mergaitėms."
|
||||||
# who_for_2: "Our Courses system allows teachers to set up classrooms, track progress and assign additional content to students through a dedicated interface."
|
who_for_2: "Mūsų Kursų sistema, suteikia galimybę pasiruošti pamokų užduotims, stebėti mokinių pasiekimus ir priskirti papildomą turinį mokiniams, per patogią sąsają."
|
||||||
# more_info_title: "Where can I find more information?"
|
more_info_title: "Kur galėčiau rasti daugiau informacijos?"
|
||||||
# more_info_1: "Our"
|
more_info_1: "Mūsų"
|
||||||
# more_info_2: "teachers forum"
|
more_info_2: "mokytojų forumas"
|
||||||
# more_info_3: "is a good place to connect with fellow educators who are using CodeCombat."
|
more_info_3: "patogi vieta susisiekti su kolegomis mokytojais kurie naudoja CodeCombat."
|
||||||
|
|
||||||
# teachers_survey:
|
teachers_survey:
|
||||||
# title: "Teacher Survey"
|
title: "Mokytojo Apklausa"
|
||||||
# must_be_logged: "You must be logged in first. Please create an account or log in from the menu above."
|
must_be_logged: "Turite būti prisijungę. Prašom susikurti paskyrą arba prisijungti viršutinėje meniu juostoje."
|
||||||
# retrieving: "Retrieving information..."
|
retrieving: "Renkama informacija..."
|
||||||
# being_reviewed_1: "Your application for a free trial is being"
|
being_reviewed_1: "Jūsų prašymas nemokamai bandomajai versijai gauti"
|
||||||
# being_reviewed_2: "reviewed."
|
being_reviewed_2: "peržiūrimas."
|
||||||
# approved_1: "Your application for a free trial was"
|
approved_1: "Jūsų prašymas nemokamai bandomajai versijai gauti"
|
||||||
# approved_2: "approved!"
|
approved_2: "patvirtintas!"
|
||||||
# approved_4: "You can now enroll your students on the"
|
approved_4: "Dabar galite nukreipti savo mokinius į"
|
||||||
# approved_5: "courses"
|
approved_5: "kursų"
|
||||||
# approved_6: "page."
|
approved_6: "puslapį."
|
||||||
# denied_1: "Your application for a free trial has been"
|
denied_1: "Jūsų prašymas nemokamai bandomajai versijai gauti"
|
||||||
# denied_2: "denied."
|
denied_2: "atmestas."
|
||||||
# contact_1: "Please contact"
|
contact_1: "Prašome susisiekti"
|
||||||
# contact_2: "if you have further questions."
|
contact_2: "jei turite daugiau klausimų."
|
||||||
# description_1: "We offer free trials to teachers. You will be given 2 free enrollments which can be used to enroll students in paid courses."
|
description_1: "Mokytojams mes siūlome, nemokamai išbandyti bandomają versiją. Jūs gausite 2 nemokamus pakvietimus, kuriuos galite panaudoti savo mokiniams mokamuose kursuose."
|
||||||
# description_1b: "You can find more information on our"
|
description_1b: "Daugiau informacijos rasite mūsų"
|
||||||
# description_2: "teachers"
|
description_2: "mokytojų"
|
||||||
# description_3: "page."
|
description_3: "puslapyje."
|
||||||
# description_4: "Please fill out this quick survey and we’ll email you setup instructions."
|
description_4: "Prašome užpildyti šią trumpą apklausos formą ir mes atsiųsime paruošimo instrukcijas el. paštu."
|
||||||
# email: "Email Address"
|
email: "El. pašto adresas"
|
||||||
# school: "Name of School"
|
school: "Mokyklos pavadinimas"
|
||||||
# location: "Name of City"
|
location: "Miestas"
|
||||||
# age_students: "How old are your students?"
|
age_students: "Kokio amžiaus jūsų mokiniai?"
|
||||||
# under: "Under"
|
under: "Mažiau nei"
|
||||||
# other: "Other:"
|
other: "Kita:"
|
||||||
# amount_students: "How many students do you teach?"
|
amount_students: "Kiek mokinių mokote?"
|
||||||
# hear_about: "How did you hear about CodeCombat?"
|
hear_about: "Iš kur sužinojote apie CodeCombat?"
|
||||||
# fill_fields: "Please fill out all fields."
|
fill_fields: "Prašome užpildyti visus laukus."
|
||||||
# thanks: "Thanks! We'll send you setup instructions shortly."
|
thanks: "Dėkojame! Netrukus atsiųsime paruošimo instrukcijas."
|
||||||
|
|
||||||
# versions:
|
versions:
|
||||||
# save_version_title: "Save New Version"
|
save_version_title: "Išsaugoti Naują Versiją"
|
||||||
# new_major_version: "New Major Version"
|
new_major_version: "Nauja Pagrindinė Versija"
|
||||||
# submitting_patch: "Submitting Patch..."
|
submitting_patch: "Pateikiamas Pataisymas..."
|
||||||
# cla_prefix: "To save changes, first you must agree to our"
|
cla_prefix: "Kad išsaugoti pakeitimus, turite sutikti su mūsų"
|
||||||
# cla_url: "CLA"
|
cla_url: "PLS" # In Lithuanian language full translation (Pagalbininko Licensinė Sutartis - PLS). If no translation needed here, just remove changes :)
|
||||||
# cla_suffix: "."
|
cla_suffix: "."
|
||||||
# cla_agree: "I AGREE"
|
cla_agree: "AŠ SUTINKU"
|
||||||
# owner_approve: "An owner will need to approve it before your changes will become visible."
|
owner_approve: "Sąvininkas pirmiausiai turi patvirtinti, kad jūsų pakeitimai būtų matomi."
|
||||||
|
|
||||||
# contact:
|
contact:
|
||||||
# contact_us: "Contact CodeCombat"
|
contact_us: "Susisiekti su CodeCombat"
|
||||||
# welcome: "Good to hear from you! Use this form to send us email. "
|
welcome: "Maloniai jus išklausysime! Naudokitės šia forma, kad išsiųstumėte mus elektroninį laišką."
|
||||||
# forum_prefix: "For anything public, please try "
|
forum_prefix: "Norint pasisakyti viešai, naudokitės "
|
||||||
# forum_page: "our forum"
|
forum_page: "mūsų forumu."
|
||||||
# forum_suffix: " instead."
|
forum_suffix: ""
|
||||||
# faq_prefix: "There's also a"
|
faq_prefix: "Taip pat turime vietą"
|
||||||
# faq: "FAQ"
|
faq: "DUK"
|
||||||
# subscribe_prefix: "If you need help figuring out a level, please"
|
subscribe_prefix: "Jei reikalinga pagalbos įveikiant lygį, prašome"
|
||||||
# subscribe: "buy a CodeCombat subscription"
|
subscribe: "įsigyti CodeCombat abonementą"
|
||||||
# subscribe_suffix: "and we'll be happy to help you with your code."
|
subscribe_suffix: "ir męs mielai jums padėsime."
|
||||||
# subscriber_support: "Since you're a CodeCombat subscriber, your email will get our priority support."
|
subscriber_support: "Kadangi turite CodeCombat abonementą, jūsų elektroniniai laiškai mums tampa įpatingai svarbūs."
|
||||||
# screenshot_included: "Screenshot included."
|
screenshot_included: "Ekrano kopija pridėta."
|
||||||
# where_reply: "Where should we reply?"
|
where_reply: "Kur mums atsakyti?"
|
||||||
# send: "Send Feedback"
|
send: "Siųsti užklausą"
|
||||||
|
|
||||||
# account_settings:
|
account_settings:
|
||||||
# title: "Account Settings"
|
title: "Paskyros Nustatymai"
|
||||||
# not_logged_in: "Log in or create an account to change your settings."
|
not_logged_in: "Norint pakeisti paskyros nustatymus turite prisijungti arba susikurti paskyrą."
|
||||||
# autosave: "Changes Save Automatically"
|
autosave: "Pakeitimai Išsaugomi Automatiškai"
|
||||||
# me_tab: "Me"
|
me_tab: "Aš"
|
||||||
# picture_tab: "Picture"
|
picture_tab: "Nuotrauka"
|
||||||
# delete_account_tab: "Delete Your Account"
|
delete_account_tab: "Pašalinti Mano Paskyrą"
|
||||||
# wrong_email: "Wrong Email"
|
wrong_email: "Neteisingas el. pašto adresas"
|
||||||
# wrong_password: "Wrong Password"
|
wrong_password: "Neteisingas slaptažodis"
|
||||||
# upload_picture: "Upload a picture"
|
upload_picture: "Įkelti nuotrauką"
|
||||||
# delete_this_account: "Delete this account permanently"
|
delete_this_account: "Tuoj pat pašalinti šią paskyrą"
|
||||||
# reset_progress_tab: "Reset All Progress"
|
reset_progress_tab: "Atstatyti Viską Išnaujo"
|
||||||
# reset_your_progress: "Clear all your progress and start over"
|
reset_your_progress: "Viską išvalyti ir pradėti išnaujo"
|
||||||
# god_mode: "God Mode"
|
god_mode: "God Mode(Dievo Režimas)"
|
||||||
# password_tab: "Password"
|
password_tab: "Slaptažodis"
|
||||||
# emails_tab: "Emails"
|
emails_tab: "Pranešimai"
|
||||||
# admin: "Admin"
|
admin: "Administratorius"
|
||||||
# manage_subscription: "Click here to manage your subscription."
|
manage_subscription: "Abonemento valdymas, spauskite čia."
|
||||||
# new_password: "New Password"
|
new_password: "Naujas slaptažodis"
|
||||||
# new_password_verify: "Verify"
|
new_password_verify: "Patvirtinimas"
|
||||||
# type_in_email: "Type in your email to confirm account deletion."
|
type_in_email: "Paskyros pašalinimo patvirtinimui, įveskite el. pašto adresą."
|
||||||
# type_in_email_progress: "Type in your email to confirm deleting your progress."
|
type_in_email_progress: "Norint pradėti išnaujo įveskite el. pašto adresą."
|
||||||
# type_in_password: "Also, type in your password."
|
type_in_password: "Taip pat, įveskite slaptažodį."
|
||||||
# email_subscriptions: "Email Subscriptions"
|
email_subscriptions: "El. pašto abonementai"
|
||||||
# email_subscriptions_none: "No Email Subscriptions."
|
email_subscriptions_none: "Nėra el. pašto abonementų."
|
||||||
# email_announcements: "Announcements"
|
email_announcements: "Skelbimai"
|
||||||
# email_announcements_description: "Get emails on the latest news and developments at CodeCombat."
|
email_announcements_description: "Gauk svarbiausią informaciją apie naujienas ir projekto vystymo eigą tiesiai iš CodeCombat."
|
||||||
# email_notifications: "Notifications"
|
email_notifications: "Pranešimai"
|
||||||
# email_notifications_summary: "Controls for personalized, automatic email notifications related to your CodeCombat activity."
|
email_notifications_summary: "Automatinių pranešimų, susijusių su CodeCombat veikla, valdymas."
|
||||||
# email_any_notes: "Any Notifications"
|
email_any_notes: "Visi pranešimai"
|
||||||
# email_any_notes_description: "Disable to stop all activity notification emails."
|
email_any_notes_description: "Nuimkite varnelę, kad nebegautumėte jokių pranešimų."
|
||||||
# email_news: "News"
|
email_news: "Naujienos"
|
||||||
# email_recruit_notes: "Job Opportunities"
|
email_recruit_notes: "Darbo Pasiūlymai"
|
||||||
# email_recruit_notes_description: "If you play really well, we may contact you about getting you a (better) job."
|
email_recruit_notes_description: "Jei viską atliksite tikrai gerai, mes galime pasiūlyti (geresnį) darbą."
|
||||||
# contributor_emails: "Contributor Class Emails"
|
contributor_emails: "Pranešimai Pagalbininkų Kategorijai"
|
||||||
# contribute_prefix: "We're looking for people to join our party! Check out the "
|
contribute_prefix: "Mes ieškome norinčių prisijungti prie mūsų grupės! Ieškantiems daugiau informacijos siūlome apsilankykti "
|
||||||
# contribute_page: "contribute page"
|
contribute_page: "pagalbininkų puslapyje."
|
||||||
# contribute_suffix: " to find out more."
|
contribute_suffix: ""
|
||||||
# email_toggle: "Toggle All"
|
email_toggle: "Perjungti visus"
|
||||||
# error_saving: "Error Saving"
|
error_saving: "Klaida Išsaugant"
|
||||||
# saved: "Changes Saved"
|
saved: "Pakeitimai Išsaugoti"
|
||||||
# password_mismatch: "Password does not match."
|
password_mismatch: "Slaptažodžiai nesutampa."
|
||||||
# password_repeat: "Please repeat your password."
|
password_repeat: "Pakartokite slaptažodį."
|
||||||
|
|
||||||
keyboard_shortcuts:
|
keyboard_shortcuts:
|
||||||
keyboard_shortcuts: "Mygtukai"
|
keyboard_shortcuts: "Mygtukai"
|
||||||
|
@ -727,65 +727,65 @@ module.exports = nativeDescription: "lietuvių kalba", englishDescription: "Lith
|
||||||
# social_hipchat: "Chat with us in the public CodeCombat Slack channel"
|
# social_hipchat: "Chat with us in the public CodeCombat Slack channel"
|
||||||
# contribute_to_the_project: "Contribute to the project"
|
# contribute_to_the_project: "Contribute to the project"
|
||||||
|
|
||||||
# clans:
|
clans:
|
||||||
# clan: "Clan"
|
clan: "Klanas"
|
||||||
# clans: "Clans"
|
clans: "Klanai"
|
||||||
# new_name: "New clan name"
|
new_name: "Klano pavadinimas"
|
||||||
# new_description: "New clan description"
|
new_description: "Klano aprašymas"
|
||||||
# make_private: "Make clan private"
|
make_private: "Privatus klanas"
|
||||||
# subs_only: "subscribers only"
|
subs_only: "tik abonentams"
|
||||||
# create_clan: "Create New Clan"
|
create_clan: "Sukurti Klaną"
|
||||||
# private_preview: "Preview"
|
private_preview: "Peržiūra"
|
||||||
# private_clans: "Private Clans"
|
private_clans: "Privatūs Klanai"
|
||||||
# public_clans: "Public Clans"
|
public_clans: "Vieši Klanai"
|
||||||
# my_clans: "My Clans"
|
my_clans: "Mano Klanai"
|
||||||
# clan_name: "Clan Name"
|
clan_name: "Klano Pavadinimas"
|
||||||
# name: "Name"
|
name: "Vardas"
|
||||||
# chieftain: "Chieftain"
|
chieftain: "Vadas"
|
||||||
# type: "Type"
|
type: "Tipas"
|
||||||
# edit_clan_name: "Edit Clan Name"
|
edit_clan_name: "Keisti Klano Pavadinimą"
|
||||||
# edit_clan_description: "Edit Clan Description"
|
edit_clan_description: "Keisti Klano Aprašymą"
|
||||||
# edit_name: "edit name"
|
edit_name: "keisti pavadinimą"
|
||||||
# edit_description: "edit description"
|
edit_description: "keisti aprašymą"
|
||||||
# private: "(private)"
|
private: "(privatus)"
|
||||||
# summary: "Summary"
|
summary: "Suvestinė"
|
||||||
# average_level: "Average Level"
|
average_level: "Lygių vidurkis"
|
||||||
# average_achievements: "Average Achievements"
|
average_achievements: "Pasiekimų vidurkis"
|
||||||
# delete_clan: "Delete Clan"
|
delete_clan: "Pašalinti klaną"
|
||||||
# leave_clan: "Leave Clan"
|
leave_clan: "Išeiti iš klano"
|
||||||
# join_clan: "Join Clan"
|
join_clan: "Prisijungti prie klano"
|
||||||
# invite_1: "Invite:"
|
invite_1: "Pakvietimas:"
|
||||||
# invite_2: "*Invite players to this Clan by sending them this link."
|
invite_2: "*Kvieskite žaidėjus į klaną nusiųsdami šią nuorodą."
|
||||||
# members: "Members"
|
members: "Nariai"
|
||||||
# progress: "Progress"
|
progress: "Pažanga"
|
||||||
# not_started_1: "not started"
|
not_started_1: "nepradėta"
|
||||||
# started_1: "started"
|
started_1: "pradėta"
|
||||||
# complete_1: "complete"
|
complete_1: "pabaigta"
|
||||||
# exp_levels: "Expand levels"
|
exp_levels: "Išplėsti lygius"
|
||||||
# rem_hero: "Remove Hero"
|
rem_hero: "Pašalinti Herojų"
|
||||||
# status: "Status"
|
status: "Būsena"
|
||||||
# complete_2: "Complete"
|
complete_2: "Pabaigta"
|
||||||
# started_2: "Started"
|
started_2: "Pradėta"
|
||||||
# not_started_2: "Not Started"
|
not_started_2: "Nepradėta"
|
||||||
# view_solution: "Click to view solution."
|
view_solution: "Peržiūrėti sprendimą."
|
||||||
# view_attempt: "Click to view attempt."
|
view_attempt: "Peržiūrėti bandymą."
|
||||||
# latest_achievement: "Latest Achievement"
|
latest_achievement: "Naujausias Pasiekimas"
|
||||||
# playtime: "Playtime"
|
playtime: "Viso žaista"
|
||||||
# last_played: "Last played"
|
last_played: "Paskutinį kartą žaista"
|
||||||
# leagues_explanation: "Play in a league against other clan members in these multiplayer arena instances."
|
leagues_explanation: "Pasirink lygą ir varžykis su kitų klanų nariais."
|
||||||
# track_concepts1: "Track concepts"
|
track_concepts1: "Sekite "
|
||||||
# track_concepts2a: "learned by each student"
|
track_concepts2a: "kitų mokinių idėjas"
|
||||||
# track_concepts2b: "learned by each member"
|
track_concepts2b: "kitų narių idėjas"
|
||||||
# track_concepts3a: "Track levels completed for each student"
|
track_concepts3a: "Stebėkite kitų mokinių įveiktus lygius"
|
||||||
# track_concepts3b: "Track levels completed for each member"
|
track_concepts3b: "Stebėkite kitų narių įveiktus lygius"
|
||||||
# track_concepts4a: "See your students'"
|
track_concepts4a: "Peržiūrėkite mokinių"
|
||||||
# track_concepts4b: "See your members'"
|
track_concepts4b: "Peržiūrėkite narių"
|
||||||
# track_concepts5: "solutions"
|
track_concepts5: "sprendimus"
|
||||||
# track_concepts6a: "Sort students by name or progress"
|
track_concepts6a: "Išrikiuokite mokinius pagal vardą arba pažangą"
|
||||||
# track_concepts6b: "Sort members by name or progress"
|
track_concepts6b: "Išrikiuokite narius pagal vardą arba pažangą"
|
||||||
# track_concepts7: "Requires invitation"
|
track_concepts7: "Norint tapti nariu"
|
||||||
# track_concepts8: "to join"
|
track_concepts8: "reikalingas kvietimas"
|
||||||
# private_require_sub: "Private clans require a subscription to create or join."
|
private_require_sub: "Norint sukurti privatų ar prisijungti prie privataus klano, reikalingas abonementas."
|
||||||
|
|
||||||
# courses:
|
# courses:
|
||||||
# course: "Course"
|
# course: "Course"
|
||||||
|
@ -1120,9 +1120,9 @@ module.exports = nativeDescription: "lietuvių kalba", englishDescription: "Lith
|
||||||
# add_system_title: "Add Systems to Level"
|
# add_system_title: "Add Systems to Level"
|
||||||
# done_adding: "Done Adding"
|
# done_adding: "Done Adding"
|
||||||
|
|
||||||
# article:
|
article:
|
||||||
# edit_btn_preview: "Preview"
|
edit_btn_preview: "Peržiūra"
|
||||||
# edit_article_title: "Edit Article"
|
edit_article_title: "Redaguoti straipsnį"
|
||||||
|
|
||||||
polls:
|
polls:
|
||||||
priority: "Prioritetas"
|
priority: "Prioritetas"
|
||||||
|
|
|
@ -4,7 +4,7 @@ module.exports = nativeDescription: "русский", englishDescription: "Russi
|
||||||
no_ie: "CodeCombat не работает в IE8 или более старых версиях. Нам очень жаль!" # Warning that only shows up in IE8 and older
|
no_ie: "CodeCombat не работает в IE8 или более старых версиях. Нам очень жаль!" # Warning that only shows up in IE8 and older
|
||||||
no_mobile: "CodeCombat не приспособлен для работы на мобильных устройствах и может не работать!" # Warning that shows up on mobile devices
|
no_mobile: "CodeCombat не приспособлен для работы на мобильных устройствах и может не работать!" # Warning that shows up on mobile devices
|
||||||
play: "Играть" # The big play button that opens up the campaign view.
|
play: "Играть" # The big play button that opens up the campaign view.
|
||||||
# play_campaign_version: "Play Campaign Version" # Shows up under big play button if you only play /courses
|
play_campaign_version: "Играть в кампанию" # Shows up under big play button if you only play /courses
|
||||||
old_browser: "Ой, ваш браузер слишком стар для запуска CodeCombat. Извините!" # Warning that shows up on really old Firefox/Chrome/Safari
|
old_browser: "Ой, ваш браузер слишком стар для запуска CodeCombat. Извините!" # Warning that shows up on really old Firefox/Chrome/Safari
|
||||||
old_browser_suffix: "Вы всё равно можете попробовать, но, скорее всего, это не будет работать."
|
old_browser_suffix: "Вы всё равно можете попробовать, но, скорее всего, это не будет работать."
|
||||||
ipad_browser: "Плохие новости: CodeCombat не запускается в браузере IPad. Хорошие новости: наше нативное приложение для IPad ожидает одобрения от Apple."
|
ipad_browser: "Плохие новости: CodeCombat не запускается в браузере IPad. Хорошие новости: наше нативное приложение для IPad ожидает одобрения от Apple."
|
||||||
|
@ -17,7 +17,7 @@ module.exports = nativeDescription: "русский", englishDescription: "Russi
|
||||||
nav:
|
nav:
|
||||||
play: "Уровни" # The top nav bar entry where players choose which levels to play
|
play: "Уровни" # The top nav bar entry where players choose which levels to play
|
||||||
community: "Сообщество"
|
community: "Сообщество"
|
||||||
# courses: "Courses"
|
courses: "Курсы"
|
||||||
editor: "Редактор"
|
editor: "Редактор"
|
||||||
blog: "Блог"
|
blog: "Блог"
|
||||||
forum: "Форум"
|
forum: "Форум"
|
||||||
|
@ -52,7 +52,7 @@ module.exports = nativeDescription: "русский", englishDescription: "Russi
|
||||||
|
|
||||||
play:
|
play:
|
||||||
play_as: "Играть за " # Ladder page
|
play_as: "Играть за " # Ladder page
|
||||||
# compete: "Compete!" # Course details page
|
compete: "Соревноваться!" # Course details page
|
||||||
spectate: "Наблюдать" # Ladder page
|
spectate: "Наблюдать" # Ladder page
|
||||||
players: "игроки" # Hover over a level on /play
|
players: "игроки" # Hover over a level on /play
|
||||||
hours_played: "часов сыграно" # Hover over a level on /play
|
hours_played: "часов сыграно" # Hover over a level on /play
|
||||||
|
@ -75,7 +75,7 @@ module.exports = nativeDescription: "русский", englishDescription: "Russi
|
||||||
subscription_required: "Требуется подписка"
|
subscription_required: "Требуется подписка"
|
||||||
anonymous: "Неизвестный игрок"
|
anonymous: "Неизвестный игрок"
|
||||||
level_difficulty: "Сложность: "
|
level_difficulty: "Сложность: "
|
||||||
# play_classroom_version: "Play Classroom Version" # Choose a level in campaign version that you also can play in one of your courses
|
play_classroom_version: "Играть в версию для работы в классе" # Choose a level in campaign version that you also can play in one of your courses
|
||||||
campaign_beginner: "Кампания для новичков"
|
campaign_beginner: "Кампания для новичков"
|
||||||
awaiting_levels_adventurer_prefix: "Мы выпускаем новые уровни каждую неделю."
|
awaiting_levels_adventurer_prefix: "Мы выпускаем новые уровни каждую неделю."
|
||||||
awaiting_levels_adventurer: "Зарегистрируйтесь в качестве Искателя приключений"
|
awaiting_levels_adventurer: "Зарегистрируйтесь в качестве Искателя приключений"
|
||||||
|
@ -83,7 +83,7 @@ module.exports = nativeDescription: "русский", englishDescription: "Russi
|
||||||
adjust_volume: "Регулировать громкость"
|
adjust_volume: "Регулировать громкость"
|
||||||
campaign_multiplayer: "Арены для мультиплеера"
|
campaign_multiplayer: "Арены для мультиплеера"
|
||||||
campaign_multiplayer_description: "... в которых вы соревнуетесь в программировании с другими игроками."
|
campaign_multiplayer_description: "... в которых вы соревнуетесь в программировании с другими игроками."
|
||||||
# campaign_old_multiplayer: "(Deprecated) Old Multiplayer Arenas"
|
campaign_old_multiplayer: "(Устаревшее) Старые многопользовательские арены"
|
||||||
# campaign_old_multiplayer_description: "Relics of a more civilized age. No simulations are run for these older, hero-less multiplayer arenas."
|
# campaign_old_multiplayer_description: "Relics of a more civilized age. No simulations are run for these older, hero-less multiplayer arenas."
|
||||||
|
|
||||||
share_progress_modal:
|
share_progress_modal:
|
||||||
|
@ -114,9 +114,9 @@ module.exports = nativeDescription: "русский", englishDescription: "Russi
|
||||||
log_in: "вход с паролем"
|
log_in: "вход с паролем"
|
||||||
required: "Войдите для того, чтобы продолжить."
|
required: "Войдите для того, чтобы продолжить."
|
||||||
login_switch: "Уже есть аккаунт?"
|
login_switch: "Уже есть аккаунт?"
|
||||||
# school_name: "School Name and City"
|
school_name: "Название школы and город"
|
||||||
# optional: "optional"
|
optional: "не обязательно"
|
||||||
# school_name_placeholder: "Example High School, Springfield, IL"
|
school_name_placeholder: "Школа № 2, город Электросталь, Московская область"
|
||||||
|
|
||||||
recover:
|
recover:
|
||||||
recover_account_title: "Восстановить аккаунт"
|
recover_account_title: "Восстановить аккаунт"
|
||||||
|
@ -166,7 +166,7 @@ module.exports = nativeDescription: "русский", englishDescription: "Russi
|
||||||
withdrawn: "Отозвано"
|
withdrawn: "Отозвано"
|
||||||
accept: "Принять"
|
accept: "Принять"
|
||||||
reject: "Отклонить"
|
reject: "Отклонить"
|
||||||
# withdraw: "Withdraw"
|
withdraw: "Изъять"
|
||||||
submitter: "Податель"
|
submitter: "Податель"
|
||||||
submitted: "Представлено"
|
submitted: "Представлено"
|
||||||
commit_msg: "Сопроводительное сообщение"
|
commit_msg: "Сопроводительное сообщение"
|
||||||
|
@ -221,10 +221,10 @@ module.exports = nativeDescription: "русский", englishDescription: "Russi
|
||||||
years: "лет"
|
years: "лет"
|
||||||
|
|
||||||
play_level:
|
play_level:
|
||||||
# completed_level: "Completed Level:"
|
completed_level: "Завершённый уровень:"
|
||||||
# course: "Course:"
|
course: "Курс:"
|
||||||
done: "Готово"
|
done: "Готово"
|
||||||
# next_level: "Next Level:"
|
next_level: "Следующий уровень:"
|
||||||
next_game: "Следующая игра"
|
next_game: "Следующая игра"
|
||||||
show_menu: "Показать меню игры"
|
show_menu: "Показать меню игры"
|
||||||
home: "На главную" # Not used any more, will be removed soon.
|
home: "На главную" # Not used any more, will be removed soon.
|
||||||
|
@ -342,7 +342,7 @@ module.exports = nativeDescription: "русский", englishDescription: "Russi
|
||||||
tip_free_your_mind: "Отвлекись от всего, Нео. Страх, неверие, сомнения отбрось — очисти свой разум. - Morpheus"
|
tip_free_your_mind: "Отвлекись от всего, Нео. Страх, неверие, сомнения отбрось — очисти свой разум. - Morpheus"
|
||||||
tip_strong_opponents: "Даже сильнейший противник имеет слабость. - Itachi Uchiha"
|
tip_strong_opponents: "Даже сильнейший противник имеет слабость. - Itachi Uchiha"
|
||||||
tip_paper_and_pen: "Прежде чем начать программировать, вы всегда можете попробовать с листом бумаги и ручкой."
|
tip_paper_and_pen: "Прежде чем начать программировать, вы всегда можете попробовать с листом бумаги и ручкой."
|
||||||
# tip_solve_then_write: "First, solve the problem. Then, write the code. - John Johnson"
|
tip_solve_then_write: "Сперва реши задачу, затем пиши код. - Джон Джонсон"
|
||||||
|
|
||||||
game_menu:
|
game_menu:
|
||||||
inventory_tab: "Инвентарь"
|
inventory_tab: "Инвентарь"
|
||||||
|
@ -594,15 +594,15 @@ module.exports = nativeDescription: "русский", englishDescription: "Russi
|
||||||
being_reviewed_2: "на рассмотрении." # {change}
|
being_reviewed_2: "на рассмотрении." # {change}
|
||||||
approved_1: "Ваша заявка на бесплатную пробную подписку была" # {change}
|
approved_1: "Ваша заявка на бесплатную пробную подписку была" # {change}
|
||||||
approved_2: "утверждена." # {change}
|
approved_2: "утверждена." # {change}
|
||||||
# approved_4: "You can now enroll your students on the"
|
approved_4: "Теперь вы можете регистрировать ваших учеников на"
|
||||||
# approved_5: "courses"
|
approved_5: "курсы"
|
||||||
# approved_6: "page."
|
approved_6: "страница."
|
||||||
denied_1: "Ваша заявка на бесплатную пробную подписку была" # {change}
|
denied_1: "Ваша заявка на бесплатную пробную подписку была" # {change}
|
||||||
denied_2: "отклонена." # {change}
|
denied_2: "отклонена." # {change}
|
||||||
contact_1: "Пожалуйста, свяжитесь с"
|
contact_1: "Пожалуйста, свяжитесь с"
|
||||||
contact_2: ", если у вас остались вопросы."
|
contact_2: ", если у вас остались вопросы."
|
||||||
description_1: "Мы предлагаем бесплатные подписки учителям в целях ознакомления. Вы можете найти больше информации на нашей странице"
|
description_1: "Мы предлагаем бесплатные подписки учителям в целях ознакомления. Вы можете найти больше информации на нашей странице"
|
||||||
# description_1b: "You can find more information on our"
|
description_1b: "Вы можете найти больше информации на"
|
||||||
description_2: "учителей"
|
description_2: "учителей"
|
||||||
description_3: ""
|
description_3: ""
|
||||||
description_4: "Пожалуйста, заполните эту маленькую анкету и мы вышлем вам инструкции по установке на email."
|
description_4: "Пожалуйста, заполните эту маленькую анкету и мы вышлем вам инструкции по установке на email."
|
||||||
|
@ -736,7 +736,7 @@ module.exports = nativeDescription: "русский", englishDescription: "Russi
|
||||||
subs_only: "только для подписчиков"
|
subs_only: "только для подписчиков"
|
||||||
create_clan: "Создать новый клан"
|
create_clan: "Создать новый клан"
|
||||||
private_preview: "Превью"
|
private_preview: "Превью"
|
||||||
# private_clans: "Private Clans"
|
private_clans: "Тайные кланы"
|
||||||
public_clans: "Публичные кланы"
|
public_clans: "Публичные кланы"
|
||||||
my_clans: "Мои кланы"
|
my_clans: "Мои кланы"
|
||||||
clan_name: "Имя клана"
|
clan_name: "Имя клана"
|
||||||
|
@ -768,7 +768,7 @@ module.exports = nativeDescription: "русский", englishDescription: "Russi
|
||||||
started_2: "Начат"
|
started_2: "Начат"
|
||||||
not_started_2: "Не начат"
|
not_started_2: "Не начат"
|
||||||
view_solution: "Нажмите, чтобы увидеть решение."
|
view_solution: "Нажмите, чтобы увидеть решение."
|
||||||
# view_attempt: "Click to view attempt."
|
view_attempt: "Нажмите чтобы посмотреть попытку."
|
||||||
latest_achievement: "Последнее достижение"
|
latest_achievement: "Последнее достижение"
|
||||||
playtime: "Время игры"
|
playtime: "Время игры"
|
||||||
last_played: "Последняя игра"
|
last_played: "Последняя игра"
|
||||||
|
@ -780,17 +780,17 @@ module.exports = nativeDescription: "русский", englishDescription: "Russi
|
||||||
# track_concepts3b: "Track levels completed for each member"
|
# track_concepts3b: "Track levels completed for each member"
|
||||||
# track_concepts4a: "See your students'"
|
# track_concepts4a: "See your students'"
|
||||||
# track_concepts4b: "See your members'"
|
# track_concepts4b: "See your members'"
|
||||||
# track_concepts5: "solutions"
|
track_concepts5: "решения"
|
||||||
# track_concepts6a: "Sort students by name or progress"
|
track_concepts6a: "Сортировать студентов по имени или прогрессу"
|
||||||
# track_concepts6b: "Sort members by name or progress"
|
track_concepts6b: "Сортировать членов по имени или прогрессу"
|
||||||
# track_concepts7: "Requires invitation"
|
track_concepts7: "Требуется приглашение"
|
||||||
# track_concepts8: "to join"
|
track_concepts8: "вступить"
|
||||||
# private_require_sub: "Private clans require a subscription to create or join."
|
private_require_sub: "Требуется подписка чтобы создать тайный клан или вступить в него."
|
||||||
|
|
||||||
courses:
|
courses:
|
||||||
course: "Курс"
|
course: "Курс"
|
||||||
courses: "Курсы"
|
courses: "Курсы"
|
||||||
# create_new_class: "Create New Class"
|
create_new_class: "Создать новый класс"
|
||||||
not_enrolled: "Вы не записаны на этот курс."
|
not_enrolled: "Вы не записаны на этот курс."
|
||||||
visit_pref: "Пожалуйста, зайдите на"
|
visit_pref: "Пожалуйста, зайдите на"
|
||||||
visit_suf: "страницу для записи."
|
visit_suf: "страницу для записи."
|
||||||
|
@ -865,151 +865,151 @@ module.exports = nativeDescription: "русский", englishDescription: "Russi
|
||||||
topics: "Темы"
|
topics: "Темы"
|
||||||
hours_content: "Много часов материала:"
|
hours_content: "Много часов материала:"
|
||||||
get_free: "Получить бесплатный курс"
|
get_free: "Получить бесплатный курс"
|
||||||
# enroll_paid: "Enroll Students in Paid Courses"
|
enroll_paid: "Записать учеников на платные курсы"
|
||||||
# you_have1: "You have"
|
you_have1: "У вас есть"
|
||||||
# you_have2: "unused paid enrollments"
|
# you_have2: "unused paid enrollments"
|
||||||
# use_one: "Use 1 paid enrollment for"
|
# use_one: "Use 1 paid enrollment for"
|
||||||
# use_multiple: "Use paid enrollments for the following students:"
|
# use_multiple: "Use paid enrollments for the following students:"
|
||||||
# already_enrolled: "already enrolled"
|
already_enrolled: "уже зачислен"
|
||||||
# licenses_remaining: "licenses remaining:"
|
# licenses_remaining: "licenses remaining:"
|
||||||
# insufficient_enrollments: "insufficient paid enrollments"
|
# insufficient_enrollments: "insufficient paid enrollments"
|
||||||
# enroll_students: "Enroll Students"
|
# enroll_students: "Enroll Students"
|
||||||
# get_enrollments: "Get More Enrollments"
|
# get_enrollments: "Get More Enrollments"
|
||||||
# change_language: "Change Course Language"
|
change_language: "Изменить язык программирования курса"
|
||||||
# keep_using: "Keep Using"
|
keep_using: "Продолжить использовать"
|
||||||
# switch_to: "Switch To"
|
switch_to: "Переключить на"
|
||||||
# greetings: "Greetings!"
|
greetings: "Поздравления!"
|
||||||
# learn_p: "Learn Python"
|
learn_p: "Изучать Python"
|
||||||
# learn_j: "Learn JavaScript"
|
learn_j: "Изучать JavaScript"
|
||||||
# language_cannot_change: "Language cannot be changed once students join a class."
|
language_cannot_change: "Язык не может быть изменён после того как ученик присоединился к классу."
|
||||||
# back_classrooms: "Back to my classrooms"
|
back_classrooms: "Назад к моим классам"
|
||||||
# back_courses: "Back to my courses"
|
back_courses: "Назад к моим курсам"
|
||||||
# edit_details: "Edit class details"
|
edit_details: "Редактировать описание класса"
|
||||||
# enrolled_courses: "enrolled in paid courses:"
|
# enrolled_courses: "enrolled in paid courses:"
|
||||||
# purchase_enrollments: "Purchase Enrollments"
|
# purchase_enrollments: "Purchase Enrollments"
|
||||||
# remove_student: "remove student"
|
remove_student: "удалить ученика"
|
||||||
# assign: "Assign"
|
# assign: "Assign"
|
||||||
# to_assign: "to assign paid courses."
|
# to_assign: "to assign paid courses."
|
||||||
# teacher: "Teacher"
|
teacher: "Учитель"
|
||||||
# complete: "Complete"
|
complete: "Завершить"
|
||||||
# none: "None"
|
# none: "None"
|
||||||
# save: "Save"
|
save: "Сохранить"
|
||||||
# play_campaign_title: "Play the Campaign"
|
play_campaign_title: "Играть в кампанию"
|
||||||
# play_campaign_description: "You’re ready to take the next step! Explore hundreds of challenging levels, learn advanced programming skills, and compete in multiplayer arenas!"
|
# play_campaign_description: "You’re ready to take the next step! Explore hundreds of challenging levels, learn advanced programming skills, and compete in multiplayer arenas!"
|
||||||
# create_account_title: "Create an Account"
|
create_account_title: "Создать учётную запись"
|
||||||
# create_account_description: "Sign up for a FREE CodeCombat account and gain access to more levels, more programming skills, and more fun!"
|
# create_account_description: "Sign up for a FREE CodeCombat account and gain access to more levels, more programming skills, and more fun!"
|
||||||
# preview_campaign_title: "Preview Campaign"
|
# preview_campaign_title: "Preview Campaign"
|
||||||
# preview_campaign_description: "Take a sneak peek at all that CodeCombat has to offer before signing up for your FREE account."
|
# preview_campaign_description: "Take a sneak peek at all that CodeCombat has to offer before signing up for your FREE account."
|
||||||
# arena: "Arena"
|
arena: "Арена"
|
||||||
# arena_soon_title: "Arena Coming Soon"
|
arena_soon_title: "Арена скоро появится"
|
||||||
# arena_soon_description: "We are working on a multiplayer arena for classrooms at the end of"
|
# arena_soon_description: "We are working on a multiplayer arena for classrooms at the end of"
|
||||||
# not_enrolled1: "Not enrolled"
|
# not_enrolled1: "Not enrolled"
|
||||||
# not_enrolled2: "Ask your teacher to enroll you in the next course."
|
not_enrolled2: "Попросите учителя зачислить вас на следующий курс."
|
||||||
# next_course: "Next Course"
|
next_course: "Следующий курс"
|
||||||
# coming_soon1: "Coming soon"
|
coming_soon1: "Скоро появится"
|
||||||
# coming_soon2: "We are hard at work making more courses for you!"
|
# coming_soon2: "We are hard at work making more courses for you!"
|
||||||
# available_levels: "Available Levels"
|
# available_levels: "Available Levels"
|
||||||
# welcome_to_courses: "Adventurers, welcome to Courses!"
|
welcome_to_courses: "Искатели приключений, добро пожаловать на курсы!"
|
||||||
# ready_to_play: "Ready to play?"
|
ready_to_play: "Готовы приступить к игре?"
|
||||||
# start_new_game: "Start New Game"
|
start_new_game: "Начать новую игру"
|
||||||
# play_now_learn_header: "Play now to learn"
|
play_now_learn_header: "Начать обучающую игру"
|
||||||
# play_now_learn_1: "basic syntax to control your character"
|
play_now_learn_1: "базовый синтаксис управления персонажем"
|
||||||
# play_now_learn_2: "while loops to solve pesky puzzles"
|
play_now_learn_2: "циклы while чтобы решать противные головоломки"
|
||||||
# play_now_learn_3: "strings & variables to customize actions"
|
play_now_learn_3: "строки и переменные чтобы настраивать действия"
|
||||||
# play_now_learn_4: "how to defeat an ogre (important life skills!)"
|
play_now_learn_4: "Как победить огра (важные жизненные навыки!)"
|
||||||
# welcome_to_page: "Welcome to your Courses page!"
|
welcome_to_page: "Добро пожаловать на вашу страницу курсов!"
|
||||||
# completed_hoc: "Amazing! You've completed the Hour of Code course!"
|
completed_hoc: "Изумительно! Вы прошли курс Час кода!"
|
||||||
# ready_for_more_header: "Ready for more? Play the campaign mode!"
|
ready_for_more_header: "Хотите продолжить? Играйте в режиме кампании!"
|
||||||
# ready_for_more_1: "Use gems to unlock new items!"
|
ready_for_more_1: "Используйте самоцветы чтобы разблокировать новые предметы!"
|
||||||
# ready_for_more_2: "Play through brand new worlds and challenges"
|
# ready_for_more_2: "Play through brand new worlds and challenges"
|
||||||
# ready_for_more_3: "Learn even more programming!"
|
ready_for_more_3: "Учитесь программировнию дальше!"
|
||||||
# saved_games: "Saved Games"
|
saved_games: "Сохранённые игры"
|
||||||
# hoc: "Hour of Code"
|
hoc: "Час кода"
|
||||||
# my_classes: "My Classes"
|
my_classes: "Мои классы"
|
||||||
# class_added: "Class successfully added!"
|
class_added: "Класс успешно добавлен!"
|
||||||
# view_class: "view class"
|
view_class: "смотреть класс"
|
||||||
# view_levels: "view levels"
|
view_levels: "смотреть уровни"
|
||||||
# join_class: "Join A Class"
|
join_class: "Присоединиться к классу"
|
||||||
# ask_teacher_for_code: "Ask your teacher if you have a CodeCombat class code! If so, enter it below:"
|
# ask_teacher_for_code: "Ask your teacher if you have a CodeCombat class code! If so, enter it below:"
|
||||||
# enter_c_code: "<Enter Class Code>"
|
# enter_c_code: "<Enter Class Code>"
|
||||||
# join: "Join"
|
# join: "Присоединиться"
|
||||||
# joining: "Joining class"
|
# joining: "Joining class"
|
||||||
# course_complete: "Course Complete"
|
course_complete: "Курс завершён"
|
||||||
# play_arena: "Play Arena"
|
play_arena: "Играть Арену"
|
||||||
# start: "Start"
|
# start: "Старт"
|
||||||
# last_level: "Last Level"
|
# last_level: "Последний уровень"
|
||||||
# welcome_to_hoc: "Adventurers, welcome to our Hour of Code!"
|
welcome_to_hoc: "Искатели приключений, добро пожаловать на Час кода!"
|
||||||
# logged_in_as: "Logged in as:"
|
# logged_in_as: "Logged in as:"
|
||||||
# not_you: "Not you?"
|
# not_you: "Не вы?"
|
||||||
# welcome_back: "Hi adventurer, welcome back!"
|
# welcome_back: "Привет, искатель приключений, добро пожаловать!"
|
||||||
# continue_playing: "Continue Playing"
|
# continue_playing: "Continue Playing"
|
||||||
# more_options: "More options:"
|
more_options: "Другие варианты:"
|
||||||
# option1_header: "Option 1: Invite students via email"
|
option1_header: "Вариант 1: Пригласить учеников по email"
|
||||||
# option1_body: "Students will automatically be sent an invitation to join this class, and will need to create an account with a username and password."
|
# option1_body: "Students will automatically be sent an invitation to join this class, and will need to create an account with a username and password."
|
||||||
# option2_header: "Option 2: Send URL to your students"
|
option2_header: "Вариант 2: Послать URL вашим ученикам"
|
||||||
# option2_body: "Students will be asked to enter an email address, username and password to create an account."
|
# option2_body: "Students will be asked to enter an email address, username and password to create an account."
|
||||||
# option3_header: "Option 3: Direct students to codecombat.com/courses"
|
option3_header: "Вариант 3: Направить учеников на codecombat.com/courses"
|
||||||
# option3_body: "Give students the following passcode to enter along with an email address, username and password when they create an account."
|
# option3_body: "Give students the following passcode to enter along with an email address, username and password when they create an account."
|
||||||
# thank_you_pref: "Thank you for your purchase! You can now assign"
|
# thank_you_pref: "Thank you for your purchase! You can now assign"
|
||||||
# thank_you_suff: "more students to paid courses."
|
# thank_you_suff: "more students to paid courses."
|
||||||
# return_to_class: "Return to classroom"
|
# return_to_class: "Return to classroom"
|
||||||
# return_to_course_man: "Return to course management."
|
return_to_course_man: "Вернуться к управлению курсом."
|
||||||
# students_not_enrolled: "students not enrolled"
|
# students_not_enrolled: "students not enrolled"
|
||||||
# total_all_classes: "Total Across All Classes"
|
total_all_classes: "Общее по всем классам"
|
||||||
# how_many_enrollments: "How many additional paid enrollments do you need?"
|
# how_many_enrollments: "How many additional paid enrollments do you need?"
|
||||||
# each_student_access: "Each student in a class will get access to Courses 2-4 once they are enrolled in paid courses. You may assign each course to each student individually."
|
# each_student_access: "Each student in a class will get access to Courses 2-4 once they are enrolled in paid courses. You may assign each course to each student individually."
|
||||||
# purchase_now: "Purchase Now"
|
# purchase_now: "Purchase Now"
|
||||||
# enrollments: "enrollments"
|
# enrollments: "enrollments"
|
||||||
# remove_student1: "Remove Student"
|
remove_student1: "Удалить ученика"
|
||||||
# are_you_sure: "Are you sure you want to remove this student from this class?"
|
# are_you_sure: "Are you sure you want to remove this student from this class?"
|
||||||
# remove_description1: "Student will lose access to this classroom and assigned classes. Progress and gameplay is NOT lost, and the student can be added back to the classroom at any time."
|
# remove_description1: "Student will lose access to this classroom and assigned classes. Progress and gameplay is NOT lost, and the student can be added back to the classroom at any time."
|
||||||
# remove_description2: "The activated paid license will not be returned."
|
# remove_description2: "The activated paid license will not be returned."
|
||||||
# keep_student: "Keep Student"
|
keep_student: "Оставить ученика"
|
||||||
# removing_user: "Removing user"
|
# removing_user: "Removing user"
|
||||||
# to_join_ask: "To join a class, ask your teacher for an unlock code."
|
# to_join_ask: "To join a class, ask your teacher for an unlock code."
|
||||||
# join_this_class: "Join Class"
|
# join_this_class: "Join Class"
|
||||||
# enter_here: "<enter unlock code here>"
|
# enter_here: "<Ввести здесь код разблокировки>"
|
||||||
# successfully_joined: "Successfully joined"
|
# successfully_joined: "Successfully joined"
|
||||||
# click_to_start: "Click here to start taking"
|
# click_to_start: "Click here to start taking"
|
||||||
# my_courses: "My Courses"
|
my_courses: "Мои курсы"
|
||||||
# classroom: "Classroom"
|
classroom: "Класс"
|
||||||
# use_school_email: "use your school email if you have one"
|
# use_school_email: "use your school email if you have one"
|
||||||
# unique_name: "a unique name no one has chosen"
|
# unique_name: "a unique name no one has chosen"
|
||||||
# pick_something: "pick something you can remember"
|
# pick_something: "pick something you can remember"
|
||||||
# class_code: "Class Code"
|
# class_code: "Class Code"
|
||||||
# optional_ask: "optional - ask your teacher to give you one!"
|
optional_ask: "Как вариант - попросите учителя дать вам какой-нибудь!"
|
||||||
# optional_school: "optional - what school do you go to?"
|
optional_school: "Не обязательное - в какую школу вы ходите?"
|
||||||
# start_playing: "Start Playing"
|
start_playing: "Начать играть"
|
||||||
# skip_this: "Skip this, I'll create an account later!"
|
skip_this: "Пропустить это, я создам учетную запись позже!"
|
||||||
# welcome: "Welcome"
|
welcome: "Добро пожаловать"
|
||||||
# getting_started: "Getting Started with Courses"
|
getting_started: "Начать проходить курсы"
|
||||||
# download_getting_started: "Download Getting Started Guide [PDF]"
|
# download_getting_started: "Download Getting Started Guide [PDF]"
|
||||||
# getting_started_1: "Create a new class by clicking the green 'Create New Class' button below."
|
# getting_started_1: "Create a new class by clicking the green 'Create New Class' button below."
|
||||||
# getting_started_2: "Once you've created a class, click the blue 'Add Students' button."
|
# getting_started_2: "Once you've created a class, click the blue 'Add Students' button."
|
||||||
# getting_started_3: "You'll see student's progress below as they sign up and join your class."
|
# getting_started_3: "You'll see student's progress below as they sign up and join your class."
|
||||||
# additional_resources: "Additional Resources"
|
additional_resources: "Дополнительные ресурсы"
|
||||||
# additional_resources_1_pref: "Download/print our"
|
additional_resources_1_pref: "Скачать/распечатать наш"
|
||||||
# additional_resources_1_mid: "Course 1 Teacher's Guide"
|
# additional_resources_1_mid: "Course 1 Teacher's Guide"
|
||||||
# additional_resources_1_suff: "explanations and solutions to each level."
|
# additional_resources_1_suff: "explanations and solutions to each level."
|
||||||
# additional_resources_2_pref: "Complete our"
|
# additional_resources_2_pref: "Complete our"
|
||||||
# additional_resources_2_suff: "to get two free enrollments for the rest of our paid courses."
|
# additional_resources_2_suff: "to get two free enrollments for the rest of our paid courses."
|
||||||
# additional_resources_3_pref: "Visit our"
|
additional_resources_3_pref: "Посетить наш"
|
||||||
# additional_resources_3_mid: "Teacher Forums"
|
# additional_resources_3_mid: "Teacher Forums"
|
||||||
# additional_resources_3_suff: "to connect to fellow educators who are using CodeCombat."
|
# additional_resources_3_suff: "to connect to fellow educators who are using CodeCombat."
|
||||||
# additional_resources_4_pref: "Check out our"
|
# additional_resources_4_pref: "Check out our"
|
||||||
# additional_resources_4_mid: "Schools Page"
|
# additional_resources_4_mid: "Schools Page"
|
||||||
# additional_resources_4_suff: "to learn more about CodeCombat's classroom offerings."
|
# additional_resources_4_suff: "to learn more about CodeCombat's classroom offerings."
|
||||||
# your_classes: "Your Classes"
|
your_classes: "Ваши классы"
|
||||||
# no_classes: "No classes yet!"
|
# no_classes: "No classes yet!"
|
||||||
# create_new_class1: "create new class"
|
create_new_class1: "создать новый класс"
|
||||||
# available_courses: "Available Courses"
|
# available_courses: "Available Courses"
|
||||||
# unused_enrollments: "Unused enrollments available:"
|
# unused_enrollments: "Unused enrollments available:"
|
||||||
# students_access: "All students get access to Introduction to Computer Science for free. One enrollment per student is required to assign them to paid CodeCombat courses. A single student does not need multiple enrollments to access all paid courses."
|
# students_access: "All students get access to Introduction to Computer Science for free. One enrollment per student is required to assign them to paid CodeCombat courses. A single student does not need multiple enrollments to access all paid courses."
|
||||||
# active_courses: "active courses"
|
# active_courses: "active courses"
|
||||||
# no_students: "No students yet!"
|
no_students: "Ещё нет учеников!"
|
||||||
# add_students1: "add students"
|
add_students1: "добавить учеников"
|
||||||
# view_edit: "view/edit"
|
view_edit: "смотреть/редактировать"
|
||||||
# students_enrolled: "students enrolled"
|
students_enrolled: "учеников зачислено"
|
||||||
# length: "Length:"
|
# length: "Length:"
|
||||||
|
|
||||||
classes:
|
classes:
|
||||||
|
@ -1254,11 +1254,11 @@ module.exports = nativeDescription: "русский", englishDescription: "Russi
|
||||||
rules: "Правила"
|
rules: "Правила"
|
||||||
winners: "Победители"
|
winners: "Победители"
|
||||||
league: "Лига"
|
league: "Лига"
|
||||||
# red_ai: "Red CPU" # "Red AI Wins", at end of multiplayer match playback
|
red_ai: "CPU красного" # "Red AI Wins", at end of multiplayer match playback
|
||||||
# blue_ai: "Blue CPU"
|
blue_ai: "CPU синего"
|
||||||
# wins: "Wins" # At end of multiplayer match playback
|
wins: "Победы" # At end of multiplayer match playback
|
||||||
# humans: "Red" # Ladder page display team name
|
humans: "Красный" # Ladder page display team name
|
||||||
# ogres: "Blue"
|
ogres: "Синий"
|
||||||
|
|
||||||
user:
|
user:
|
||||||
stats: "Характеристики"
|
stats: "Характеристики"
|
||||||
|
@ -1406,16 +1406,16 @@ module.exports = nativeDescription: "русский", englishDescription: "Russi
|
||||||
campaigns: "Кампании"
|
campaigns: "Кампании"
|
||||||
poll: "Опрос"
|
poll: "Опрос"
|
||||||
user_polls_record: "История опросов"
|
user_polls_record: "История опросов"
|
||||||
# course: "Course"
|
course: "Курс"
|
||||||
# courses: "Courses"
|
courses: "Курсы"
|
||||||
# course_instance: "Course Instance"
|
course_instance: "Экземпляр курса"
|
||||||
# course_instances: "Course Instances"
|
course_instances: "Экземпляры курса"
|
||||||
# classroom: "Classroom"
|
classroom: "Класс"
|
||||||
# classrooms: "Classrooms"
|
classrooms: "Классы"
|
||||||
# clan: "Clan"
|
clan: "Клан"
|
||||||
# clans: "Clans"
|
clans: "Кланы"
|
||||||
# members: "Members"
|
members: "Члены"
|
||||||
# users: "Users"
|
users: "пользователи"
|
||||||
|
|
||||||
concepts:
|
concepts:
|
||||||
advanced_strings: "Продвинутые строки"
|
advanced_strings: "Продвинутые строки"
|
||||||
|
|
|
@ -19,11 +19,11 @@ module.exports = class User extends CocoModel
|
||||||
broadName: ->
|
broadName: ->
|
||||||
name = @get('name')
|
name = @get('name')
|
||||||
return name if name
|
return name if name
|
||||||
name = _.filter([@get('firstName'), @get('lastName')]).join('')
|
name = _.filter([@get('firstName'), @get('lastName')]).join(' ')
|
||||||
return name if name
|
return name if name
|
||||||
email = @get('email')
|
email = @get('email')
|
||||||
return email if email
|
return email if email
|
||||||
return ''
|
return 'Anoner'
|
||||||
|
|
||||||
getPhotoURL: (size=80, useJobProfilePhoto=false, useEmployerPageAvatar=false) ->
|
getPhotoURL: (size=80, useJobProfilePhoto=false, useEmployerPageAvatar=false) ->
|
||||||
photoURL = if useJobProfilePhoto then @get('jobProfile')?.photoURL else null
|
photoURL = if useJobProfilePhoto then @get('jobProfile')?.photoURL else null
|
||||||
|
|
|
@ -79,6 +79,7 @@ _.extend UserSchema.properties,
|
||||||
archmageNews: {$ref: '#/definitions/emailSubscription'}
|
archmageNews: {$ref: '#/definitions/emailSubscription'}
|
||||||
artisanNews: {$ref: '#/definitions/emailSubscription'}
|
artisanNews: {$ref: '#/definitions/emailSubscription'}
|
||||||
diplomatNews: {$ref: '#/definitions/emailSubscription'}
|
diplomatNews: {$ref: '#/definitions/emailSubscription'}
|
||||||
|
teacherNews: {$ref: '#/definitions/emailSubscription'}
|
||||||
scribeNews: {$ref: '#/definitions/emailSubscription'}
|
scribeNews: {$ref: '#/definitions/emailSubscription'}
|
||||||
|
|
||||||
# notifications
|
# notifications
|
||||||
|
|
|
@ -1,344 +0,0 @@
|
||||||
@import "app/styles/bootstrap/variables"
|
|
||||||
|
|
||||||
#profile-view
|
|
||||||
$sideBackground: rgb(220, 220, 220)
|
|
||||||
#login-message
|
|
||||||
h1, h2, h3, h4
|
|
||||||
font-family: Arial, Helvetica, sans-serif
|
|
||||||
color: #333333
|
|
||||||
width: 100%
|
|
||||||
text-align: center
|
|
||||||
margin-top: 200px
|
|
||||||
.profile-control-bar
|
|
||||||
background-color: $sideBackground
|
|
||||||
width: 100%
|
|
||||||
text-align: center
|
|
||||||
|
|
||||||
.profile-completion-progress
|
|
||||||
width: 100%
|
|
||||||
height: 33px
|
|
||||||
margin-bottom: 0
|
|
||||||
border-radius: 0
|
|
||||||
background-color: darken($sideBackground, 15%)
|
|
||||||
|
|
||||||
.progress-bar
|
|
||||||
line-height: 33px
|
|
||||||
font-size: 16px
|
|
||||||
|
|
||||||
.progress-text
|
|
||||||
position: absolute
|
|
||||||
width: 100%
|
|
||||||
text-align: center
|
|
||||||
line-height: 33px
|
|
||||||
font-size: 16px
|
|
||||||
color: white
|
|
||||||
text-shadow: 0px 1px 0px black
|
|
||||||
|
|
||||||
button, a.btn
|
|
||||||
margin: 10px 2px 10px 2px
|
|
||||||
|
|
||||||
&:disabled
|
|
||||||
border-radius: 0
|
|
||||||
opacity: 1
|
|
||||||
|
|
||||||
i
|
|
||||||
margin-right: 5px
|
|
||||||
|
|
||||||
.sample-profile
|
|
||||||
position: absolute
|
|
||||||
right: 5px
|
|
||||||
|
|
||||||
.main-content-area
|
|
||||||
padding: 0
|
|
||||||
background-color: white
|
|
||||||
|
|
||||||
.flat-button
|
|
||||||
width: 100%
|
|
||||||
margin-bottom: 10px
|
|
||||||
background: rgb(78, 78, 78)
|
|
||||||
border: 0
|
|
||||||
border-radius: 0
|
|
||||||
padding: 10px
|
|
||||||
|
|
||||||
.public-profile-container
|
|
||||||
padding: 20px
|
|
||||||
|
|
||||||
img.profile-photo
|
|
||||||
width: 256px
|
|
||||||
border-radius: 6px
|
|
||||||
|
|
||||||
.job-profile-container
|
|
||||||
width: 100%
|
|
||||||
height: 100%
|
|
||||||
min-height: 600px
|
|
||||||
padding: 0
|
|
||||||
display: table
|
|
||||||
|
|
||||||
h1, h2, h3, h4, h5, h6
|
|
||||||
font-family: "Helvetica Neue", Helvetica, Arial, sans-serif
|
|
||||||
color: #555
|
|
||||||
|
|
||||||
ul.links, ul.projects, ul.sessions
|
|
||||||
margin: 0
|
|
||||||
padding: 0
|
|
||||||
|
|
||||||
li
|
|
||||||
list-style: none
|
|
||||||
|
|
||||||
.job-profile-row
|
|
||||||
height: 100%
|
|
||||||
display: table-row
|
|
||||||
$side-width: 250px
|
|
||||||
$side-padding: 5px
|
|
||||||
$middle-width: 524px
|
|
||||||
$middle-padding: 20px
|
|
||||||
|
|
||||||
.full-height-column
|
|
||||||
height: 100%
|
|
||||||
padding: $side-padding
|
|
||||||
display: table-cell
|
|
||||||
vertical-align: top
|
|
||||||
|
|
||||||
h3:first-child
|
|
||||||
margin: 5px 0 5px 0
|
|
||||||
|
|
||||||
.left-column
|
|
||||||
width: $side-width - 2 * $side-padding
|
|
||||||
padding: $side-padding
|
|
||||||
background-color: $sideBackground
|
|
||||||
|
|
||||||
.sub-column
|
|
||||||
width: $side-width - 2 * $side-padding
|
|
||||||
overflow-wrap: break-word
|
|
||||||
|
|
||||||
#profile-photo-container
|
|
||||||
position: relative
|
|
||||||
margin-bottom: 10px
|
|
||||||
|
|
||||||
img.profile-photo
|
|
||||||
width: $side-width - 2 * $side-padding
|
|
||||||
border-radius: 6px
|
|
||||||
|
|
||||||
.profile-caption
|
|
||||||
background-color: rgba(0, 0, 0, 0.5)
|
|
||||||
color: white
|
|
||||||
border-bottom-right-radius: 6px
|
|
||||||
border-bottom-left-radius: 6px
|
|
||||||
position: absolute
|
|
||||||
width: 100%
|
|
||||||
bottom: 0px
|
|
||||||
text-align: center
|
|
||||||
|
|
||||||
ul.links
|
|
||||||
text-align: center
|
|
||||||
li.has-icon
|
|
||||||
display: inline-block
|
|
||||||
img
|
|
||||||
margin: 0 0 10px 0
|
|
||||||
li.has-icon:not(:nth-child(5))
|
|
||||||
img
|
|
||||||
margin: 0 5px 10px 5px
|
|
||||||
|
|
||||||
#contact-candidate
|
|
||||||
margin-top: 20px
|
|
||||||
background-color: rgb(177, 55, 25)
|
|
||||||
padding: 15px
|
|
||||||
font-size: 20px
|
|
||||||
|
|
||||||
.middle-column
|
|
||||||
width: $middle-width - 2 * $middle-padding
|
|
||||||
padding-left: $middle-padding
|
|
||||||
padding-right: $middle-padding
|
|
||||||
background-color: white
|
|
||||||
|
|
||||||
.sub-column
|
|
||||||
width: $middle-width - 2 * $middle-padding
|
|
||||||
overflow-wrap: break-word
|
|
||||||
|
|
||||||
&.double-column
|
|
||||||
width: $middle-width + $side-width + 2 * $side-padding - 2 * $middle-padding
|
|
||||||
$middle-padding-double: 30px
|
|
||||||
padding-left: $middle-padding-double
|
|
||||||
padding-right: $middle-padding-double
|
|
||||||
|
|
||||||
.sub-column
|
|
||||||
width: $middle-width + $side-width + 2 * $side-padding - 2 * $middle-padding - 2 * $middle-padding-double
|
|
||||||
overflow-wrap: break-word
|
|
||||||
|
|
||||||
code
|
|
||||||
background-color: $sideBackground
|
|
||||||
color: #555
|
|
||||||
margin: 2px 0
|
|
||||||
display: inline-block
|
|
||||||
text-transform: lowercase
|
|
||||||
|
|
||||||
.long-description
|
|
||||||
margin-top: 10px
|
|
||||||
img
|
|
||||||
max-width: 524px - 60px
|
|
||||||
max-height: 200px
|
|
||||||
|
|
||||||
.experience-header
|
|
||||||
margin-top: 25px
|
|
||||||
|
|
||||||
.header-icon
|
|
||||||
margin-right: 10px
|
|
||||||
width: 32px
|
|
||||||
height: 32px
|
|
||||||
|
|
||||||
.experience-entry
|
|
||||||
margin-bottom: 15px
|
|
||||||
|
|
||||||
.duration
|
|
||||||
margin-left: 10px
|
|
||||||
margin-bottom: 10px
|
|
||||||
|
|
||||||
#job-profile-notes
|
|
||||||
width: 100%
|
|
||||||
height: 100px
|
|
||||||
|
|
||||||
#remark-treema
|
|
||||||
background-color: white
|
|
||||||
border: 0
|
|
||||||
padding-top: 0
|
|
||||||
|
|
||||||
.right-column
|
|
||||||
width: $side-width
|
|
||||||
background-color: $sideBackground
|
|
||||||
|
|
||||||
.sub-column
|
|
||||||
width: $side-width - 2 * $side-padding
|
|
||||||
overflow-wrap: break-word
|
|
||||||
|
|
||||||
> h3:first-child
|
|
||||||
background-color: white
|
|
||||||
padding: 5px 5px
|
|
||||||
margin: 5px 2px 5px 2px
|
|
||||||
|
|
||||||
ul.projects
|
|
||||||
li
|
|
||||||
margin-bottom: 10px
|
|
||||||
padding: 5px 3px
|
|
||||||
border: 2px solid $sideBackground
|
|
||||||
transition: .5s ease-in-out
|
|
||||||
position: relative
|
|
||||||
background-color: white
|
|
||||||
|
|
||||||
&:hover
|
|
||||||
border-color: rgb(100, 130, 255)
|
|
||||||
|
|
||||||
a
|
|
||||||
position: relative
|
|
||||||
z-index: 2
|
|
||||||
|
|
||||||
> a
|
|
||||||
position: absolute
|
|
||||||
width: 100%
|
|
||||||
height: 100%
|
|
||||||
top: 0
|
|
||||||
left: 0
|
|
||||||
z-index: 1
|
|
||||||
|
|
||||||
.project-image
|
|
||||||
width: 230px
|
|
||||||
height: 115px
|
|
||||||
background-size: cover
|
|
||||||
background-repeat: no-repeat
|
|
||||||
background-position: center
|
|
||||||
|
|
||||||
-webkit-filter: grayscale(100%)
|
|
||||||
-webkit-transition: .5s ease-in-out
|
|
||||||
-moz-filter: grayscale(100%)
|
|
||||||
-moz-transition: .5s ease-in-out
|
|
||||||
-o-filter: grayscale(100%)
|
|
||||||
-o-transition: .5s ease-in-out
|
|
||||||
filter: grayscale(100%)
|
|
||||||
transition: .5s ease-in-out
|
|
||||||
|
|
||||||
ul.projects li:hover .project-image, .project-image:hover
|
|
||||||
-webkit-filter: grayscale(0%)
|
|
||||||
-moz-filter: grayscale(0%)
|
|
||||||
-o-filter: grayscale(0%)
|
|
||||||
filter: grayscale(0%)
|
|
||||||
|
|
||||||
.main-content-area
|
|
||||||
|
|
||||||
.job-profile-container
|
|
||||||
.editable-section
|
|
||||||
position: relative
|
|
||||||
transition: box-shadow 0.5s easeInOutQuad
|
|
||||||
min-height: 30px
|
|
||||||
|
|
||||||
&.just-saved
|
|
||||||
box-shadow: 0px 0px 20px 0px #080
|
|
||||||
z-index: 1
|
|
||||||
|
|
||||||
.editable-form
|
|
||||||
display: none
|
|
||||||
background-color: white
|
|
||||||
padding: 5px 5px 5px 5px
|
|
||||||
|
|
||||||
.skill-array-item
|
|
||||||
display: inline-block
|
|
||||||
|
|
||||||
input
|
|
||||||
width: 120px
|
|
||||||
margin: 5px
|
|
||||||
|
|
||||||
.project-image
|
|
||||||
width: 210px
|
|
||||||
height: 105px
|
|
||||||
cursor: pointer
|
|
||||||
|
|
||||||
.editable-icon
|
|
||||||
display: none
|
|
||||||
|
|
||||||
.job-profile-container.editable-profile
|
|
||||||
|
|
||||||
.full-height-column.deemphasized
|
|
||||||
background-color: $sideBackground
|
|
||||||
|
|
||||||
.saving
|
|
||||||
opacity: 0.75
|
|
||||||
|
|
||||||
.editable-thinner
|
|
||||||
padding-right: 30px
|
|
||||||
|
|
||||||
.editable-icon
|
|
||||||
display: block
|
|
||||||
position: absolute
|
|
||||||
right: 5px
|
|
||||||
top: 5px
|
|
||||||
font-size: 20px
|
|
||||||
color: $blue
|
|
||||||
opacity: 0.5
|
|
||||||
|
|
||||||
.edit-label
|
|
||||||
color: $blue
|
|
||||||
font-weight: 300
|
|
||||||
|
|
||||||
.edit-example-button
|
|
||||||
background-color: transparentize($blue, 0.25)
|
|
||||||
|
|
||||||
.edit-example-text
|
|
||||||
color: $blue
|
|
||||||
|
|
||||||
code.edit-example-tag
|
|
||||||
color: $blue
|
|
||||||
|
|
||||||
.emphasized
|
|
||||||
outline: 1px solid $green
|
|
||||||
|
|
||||||
.editable-section.deemphasized:not(.just-saved), .our-notes-section.deemphasized
|
|
||||||
opacity: 0.5
|
|
||||||
|
|
||||||
.editable-section:hover
|
|
||||||
cursor: pointer
|
|
||||||
outline: 1px solid $blue
|
|
||||||
|
|
||||||
.editable-icon
|
|
||||||
opacity: 1.0
|
|
||||||
cursor: pointer
|
|
||||||
|
|
||||||
.editable-form
|
|
||||||
cursor: default
|
|
|
@ -1,74 +0,0 @@
|
||||||
#admin-candidates-view
|
|
||||||
|
|
||||||
h1, h2, h3
|
|
||||||
font: Arial
|
|
||||||
|
|
||||||
.see-candidates-header
|
|
||||||
margin: 30px
|
|
||||||
text-align: center
|
|
||||||
|
|
||||||
#see-candidates
|
|
||||||
cursor: pointer
|
|
||||||
|
|
||||||
.employer_icon
|
|
||||||
width: 125px
|
|
||||||
float: left
|
|
||||||
margin: 0px 15px 15px 0px
|
|
||||||
|
|
||||||
.information_row
|
|
||||||
height: 150px
|
|
||||||
padding-right: 15px
|
|
||||||
|
|
||||||
#leftside
|
|
||||||
width: 500px
|
|
||||||
float: left
|
|
||||||
|
|
||||||
#rightside
|
|
||||||
width: 500px
|
|
||||||
float: left
|
|
||||||
|
|
||||||
.tablesorter
|
|
||||||
//img
|
|
||||||
// display: none
|
|
||||||
|
|
||||||
.tablesorter-header
|
|
||||||
cursor: pointer
|
|
||||||
&:hover
|
|
||||||
color: black
|
|
||||||
|
|
||||||
&:first-child
|
|
||||||
// Make sure that "Developer #56" doesn't wrap onto second row
|
|
||||||
min-width: 110px
|
|
||||||
|
|
||||||
.tablesorter-headerAsc
|
|
||||||
background-color: #cfc
|
|
||||||
|
|
||||||
.tablesorter-headerDesc
|
|
||||||
background-color: #ccf
|
|
||||||
|
|
||||||
tr
|
|
||||||
cursor: pointer
|
|
||||||
|
|
||||||
tr.expired
|
|
||||||
opacity: 0.5
|
|
||||||
|
|
||||||
code
|
|
||||||
background-color: rgb(220, 220, 220)
|
|
||||||
color: #555
|
|
||||||
margin: 2px 0
|
|
||||||
display: inline-block
|
|
||||||
text-transform: lowercase
|
|
||||||
|
|
||||||
td:nth-child(3) select
|
|
||||||
min-width: 100px
|
|
||||||
td:nth-child(6) select
|
|
||||||
min-width: 50px
|
|
||||||
td:nth-child(7) select
|
|
||||||
min-width: 100px
|
|
||||||
|
|
||||||
#employers-view, #profile-view.viewed-by-employer
|
|
||||||
#outer-content-wrapper, #intermediate-content-wrapper, #inner-content-wrapper
|
|
||||||
background: #949494
|
|
||||||
|
|
||||||
.main-content-area
|
|
||||||
background-color: #EAEAEA
|
|
|
@ -18,9 +18,20 @@
|
||||||
.name-row
|
.name-row
|
||||||
@extend .body-row
|
@extend .body-row
|
||||||
max-width: 300px
|
max-width: 300px
|
||||||
|
.description-row
|
||||||
|
@extend .body-row
|
||||||
|
max-width: 520px
|
||||||
.small-name-row
|
.small-name-row
|
||||||
@extend .body-row
|
@extend .body-row
|
||||||
max-width: 200px
|
max-width: 200px
|
||||||
|
.watch-row
|
||||||
|
@extend .body-row
|
||||||
|
max-width: 80px
|
||||||
|
text-align: center
|
||||||
|
&.watching
|
||||||
|
opacity: 1.0
|
||||||
|
&.not-watching
|
||||||
|
opacity: 0.5
|
||||||
|
|
||||||
tr.mine
|
tr.mine
|
||||||
background-color: #f8ecaa
|
background-color: #f8ecaa
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
@import "app/styles/mixins"
|
@import "app/styles/mixins"
|
||||||
@import "app/styles/bootstrap/variables"
|
@import "app/styles/bootstrap/variables"
|
||||||
|
|
||||||
#ladder-home-view
|
#main-ladder-view
|
||||||
.level
|
.level
|
||||||
width: 100%
|
width: 100%
|
||||||
position: relative
|
position: relative
|
||||||
|
|
|
@ -1,52 +0,0 @@
|
||||||
@import "app/styles/mixins"
|
|
||||||
@import "app/styles/bootstrap/variables"
|
|
||||||
|
|
||||||
#employers-wrapper
|
|
||||||
background-color: #B4B4B4
|
|
||||||
height: 100%
|
|
||||||
#outer-content-wrapper, #intermediate-content-wrapper, #inner-content-wrapper
|
|
||||||
background: #B4B4B4
|
|
||||||
|
|
||||||
.navbar, #top-nav, .content.clearfix
|
|
||||||
background-color: #B4B4B4
|
|
||||||
|
|
||||||
.footer
|
|
||||||
border-top: none
|
|
||||||
background-color: #B4B4B4
|
|
||||||
padding-bottom: 50px
|
|
||||||
|
|
||||||
|
|
||||||
#employer-content-area
|
|
||||||
margin: auto
|
|
||||||
|
|
||||||
.employer-modal-background-wrapper
|
|
||||||
background-color: white
|
|
||||||
border: 2px #333333 solid
|
|
||||||
border-radius: 4px
|
|
||||||
h1, h2, h3, h4, h5
|
|
||||||
color: black
|
|
||||||
font-family: Arial, Helvetica, sans-serif
|
|
||||||
.input-large
|
|
||||||
font-size: 28px
|
|
||||||
height: 60px
|
|
||||||
border: 2px rgb(231,231,231) solid
|
|
||||||
box-shadow: none
|
|
||||||
width: 70%
|
|
||||||
margin-left: 15%
|
|
||||||
#create-account-button, #contract-agreement-button, #login-button
|
|
||||||
background: #fce232 /* Old browsers */
|
|
||||||
background: -moz-linear-gradient(top, #fce232 0%, #ea8e2b 100%)
|
|
||||||
background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#fce232), color-stop(100%,#ea8e2b))
|
|
||||||
background: -webkit-linear-gradient(top, #fce232 0%,#ea8e2b 100%)
|
|
||||||
background: -o-linear-gradient(top, #fce232 0%,#ea8e2b 100%)
|
|
||||||
background: -ms-linear-gradient(top, #fce232 0%,#ea8e2b 100%)
|
|
||||||
background: linear-gradient(to bottom, #fce232 0%,#ea8e2b 100%)
|
|
||||||
filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#fce232', endColorstr='#ea8e2b',GradientType=0 )
|
|
||||||
height: 60px
|
|
||||||
font-size: 24px
|
|
||||||
color: black
|
|
||||||
.login-link
|
|
||||||
text-decoration: underline
|
|
||||||
#login-button
|
|
||||||
margin-left: 40%
|
|
||||||
width: 20%
|
|
|
@ -159,7 +159,7 @@ else
|
||||||
| (Translator)
|
| (Translator)
|
||||||
input#email_diplomatNews(name="email_diplomatNews", type="checkbox", checked=subs.diplomatNews)
|
input#email_diplomatNews(name="email_diplomatNews", type="checkbox", checked=subs.diplomatNews)
|
||||||
span(data-i18n="contribute.diplomat_subscribe_desc").help-block Get emails about i18n developments and, eventually, levels to translate.
|
span(data-i18n="contribute.diplomat_subscribe_desc").help-block Get emails about i18n developments and, eventually, levels to translate.
|
||||||
|
|
||||||
.form-group.checkbox
|
.form-group.checkbox
|
||||||
label.control-label(for="email_ambassadorNews")
|
label.control-label(for="email_ambassadorNews")
|
||||||
span(data-i18n="classes.ambassador_title")
|
span(data-i18n="classes.ambassador_title")
|
||||||
|
@ -169,7 +169,13 @@ else
|
||||||
| (Support)
|
| (Support)
|
||||||
input#email_ambassadorNews(name="email_ambassadorNews", type="checkbox", checked=subs.ambassadorNews)
|
input#email_ambassadorNews(name="email_ambassadorNews", type="checkbox", checked=subs.ambassadorNews)
|
||||||
span(data-i18n="contribute.ambassador_subscribe_desc").help-block Get emails on support updates and multiplayer developments.
|
span(data-i18n="contribute.ambassador_subscribe_desc").help-block Get emails on support updates and multiplayer developments.
|
||||||
|
|
||||||
|
.form-group.checkbox
|
||||||
|
label.control-label(for="email_teacherNews")
|
||||||
|
span(data-i18n="classes.teacher_title")
|
||||||
|
input#email_teacherNews(name="email_teacherNews", type="checkbox", checked=subs.teacherNews)
|
||||||
|
span(data-i18n="contribute.teacher_subscribe_desc").help-block
|
||||||
|
|
||||||
button#toggle-all-btn.btn.btn-primary.form-control(data-i18n="account_settings.email_toggle") Toggle All
|
button#toggle-all-btn.btn.btn-primary.form-control(data-i18n="account_settings.email_toggle") Toggle All
|
||||||
|
|
||||||
.panel.panel-default
|
.panel.panel-default
|
||||||
|
|
|
@ -55,7 +55,7 @@ block content
|
||||||
for user in view.users.models
|
for user in view.users.models
|
||||||
.row
|
.row
|
||||||
.col-md-6
|
.col-md-6
|
||||||
.student-name= user.broadName() || 'Anoner'
|
.student-name= user.broadName()
|
||||||
.col-md-6
|
.col-md-6
|
||||||
if view.teacherMode
|
if view.teacherMode
|
||||||
a.remove-student-link.pull-right.text-uppercase(data-user-id=user.id)
|
a.remove-student-link.pull-right.text-uppercase(data-user-id=user.id)
|
||||||
|
|
|
@ -34,7 +34,13 @@ block content
|
||||||
li
|
li
|
||||||
span.spr(data-i18n="courses.additional_resources_1_pref")
|
span.spr(data-i18n="courses.additional_resources_1_pref")
|
||||||
a(href='http://codecombat.com/docs/CodeCombatTeacherGuideCourse1.pdf', data-i18n="courses.additional_resources_1_mid")
|
a(href='http://codecombat.com/docs/CodeCombatTeacherGuideCourse1.pdf', data-i18n="courses.additional_resources_1_mid")
|
||||||
span.spl(data-i18n="courses.additional_resources_1_suff")
|
span.spl.spr(data-i18n="courses.additional_resources_1_mid2")
|
||||||
|
a(href='http://codecombat.com/docs/CodeCombatTeacherGuideCourse2.pdf', data-i18n="courses.additional_resources_1_mid3")
|
||||||
|
span.spl.spr(data-i18n="courses.additional_resources_1_suff")
|
||||||
|
li
|
||||||
|
span.spr(data-i18n="courses.educator_wiki_pref")
|
||||||
|
a(href='https://sites.google.com/a/codecombat.com/teacher-guides/', data-i18n="courses.educator_wiki_mid")
|
||||||
|
span.spl(data-i18n="courses.educator_wiki_suff")
|
||||||
li
|
li
|
||||||
span.spr(data-i18n="courses.additional_resources_2_pref")
|
span.spr(data-i18n="courses.additional_resources_2_pref")
|
||||||
a(href='/teachers/freetrial', data-i18n="teachers_survey.title")
|
a(href='/teachers/freetrial', data-i18n="teachers_survey.title")
|
||||||
|
|
|
@ -1 +1,35 @@
|
||||||
extends /templates/common/table
|
extends /templates/common/table
|
||||||
|
|
||||||
|
block tableResultsHeader
|
||||||
|
tr
|
||||||
|
th(colspan=4)
|
||||||
|
span(data-i18n="general.results")
|
||||||
|
| Results
|
||||||
|
span
|
||||||
|
|: #{documents.length}
|
||||||
|
|
||||||
|
block tableHeader
|
||||||
|
tr
|
||||||
|
th(data-i18n="general.name") Name
|
||||||
|
th(data-i18n="general.description") Description
|
||||||
|
th(data-i18n="general.version") Version
|
||||||
|
th(data-i18n="common.watch") Watch
|
||||||
|
|
||||||
|
block tableBody
|
||||||
|
for document in documents
|
||||||
|
- var data = document.attributes;
|
||||||
|
tr(class=document.get('creator') == me.id ? 'mine' : '')
|
||||||
|
td(title=data.name).name-row
|
||||||
|
a(href="/editor/#{page}/#{data.slug || data._id}")
|
||||||
|
| #{data.name}
|
||||||
|
td(title=data.description).description-row
|
||||||
|
| #{data.description}
|
||||||
|
td #{data.version.major}.#{data.version.minor}
|
||||||
|
if document.watching()
|
||||||
|
td.watch-row.watching
|
||||||
|
span(aria-hidden="true").glyphicon.glyphicon-eye-open
|
||||||
|
span(data-i18n="common.watch").sr-only Watch
|
||||||
|
else
|
||||||
|
td.watch-row.not-watching
|
||||||
|
span(aria-hidden="true").glyphicon.glyphicon-eye-close
|
||||||
|
span(data-i18n="common.unwatch").sr-only Unwatch
|
|
@ -1,21 +0,0 @@
|
||||||
body
|
|
||||||
#fb-root
|
|
||||||
#employers-wrapper
|
|
||||||
block header
|
|
||||||
.nav
|
|
||||||
.content.clearfix
|
|
||||||
.navbar-header
|
|
||||||
a.navbar-brand(href='/')
|
|
||||||
img(src="/images/pages/base/recruitment_logo.png", title="CodeCombat - Learn how to code by playing a game", alt="CodeCombat")
|
|
||||||
block outer_content
|
|
||||||
#outer-content-wrapper
|
|
||||||
|
|
||||||
#intermediate-content-wrapper
|
|
||||||
|
|
||||||
#inner-content-wrapper
|
|
||||||
.main-content-area#employer-content-area
|
|
||||||
block content
|
|
||||||
p If this is showing, you dun goofed
|
|
||||||
|
|
||||||
block footer
|
|
||||||
.footer
|
|
|
@ -21,11 +21,11 @@ module.exports = class SalesView extends RootView
|
||||||
|
|
||||||
onClickLogin: (e) ->
|
onClickLogin: (e) ->
|
||||||
@openModalView new AuthModal(mode: 'login') if me.get('anonymous')
|
@openModalView new AuthModal(mode: 'login') if me.get('anonymous')
|
||||||
window.tracker?.trackEvent 'Started Login', category: 'Sales', label: 'Sales Login'
|
window.tracker?.trackEvent 'Started Login', category: 'Sales', label: 'Sales Login', ['Mixpanel']
|
||||||
|
|
||||||
onClickSignup: (e) ->
|
onClickSignup: (e) ->
|
||||||
@openModalView new AuthModal() if me.get('anonymous')
|
@openModalView new AuthModal() if me.get('anonymous')
|
||||||
window.tracker?.trackEvent 'Started Signup', category: 'Sales', label: 'Sales Create'
|
window.tracker?.trackEvent 'Started Signup', category: 'Sales', label: 'Sales Create', ['Mixpanel']
|
||||||
|
|
||||||
logoutRedirectURL: false
|
logoutRedirectURL: false
|
||||||
|
|
||||||
|
|
|
@ -82,3 +82,4 @@ module.exports = class TeachersFreeTrialView extends RootView
|
||||||
console.error 'Error saving trial request', response
|
console.error 'Error saving trial request', response
|
||||||
success: (model, response, options) =>
|
success: (model, response, options) =>
|
||||||
@refreshData()
|
@refreshData()
|
||||||
|
window.tracker?.trackEvent 'Submit Trial Request', category: 'Teachers', label: 'Trial Request', ['Mixpanel']
|
||||||
|
|
|
@ -7,7 +7,7 @@ class PendingPatchesCollection extends CocoCollection
|
||||||
url: '/db/patch?view=pending'
|
url: '/db/patch?view=pending'
|
||||||
model: Patch
|
model: Patch
|
||||||
|
|
||||||
module.exports = class PatchesView extends RootView
|
module.exports = class PendingPatchesView extends RootView
|
||||||
id: 'pending-patches-view'
|
id: 'pending-patches-view'
|
||||||
template: template
|
template: template
|
||||||
|
|
||||||
|
|
|
@ -43,6 +43,7 @@ module.exports = class SubscribeModal extends ModalView
|
||||||
@setupPaymentMethodsInfoPopover()
|
@setupPaymentMethodsInfoPopover()
|
||||||
if @basicProduct
|
if @basicProduct
|
||||||
@$el.find('.gem-amount').html $.i18n.t('subscribe.feature4').replace('{{gems}}', @basicProduct.get('gems'))
|
@$el.find('.gem-amount').html $.i18n.t('subscribe.feature4').replace('{{gems}}', @basicProduct.get('gems'))
|
||||||
|
@playSound 'game-menu-open'
|
||||||
|
|
||||||
setupParentButtonPopover: ->
|
setupParentButtonPopover: ->
|
||||||
popoverTitle = $.i18n.t 'subscribe.parent_email_title'
|
popoverTitle = $.i18n.t 'subscribe.parent_email_title'
|
||||||
|
@ -221,3 +222,7 @@ module.exports = class SubscribeModal extends ModalView
|
||||||
@state = 'unknown_error'
|
@state = 'unknown_error'
|
||||||
@stateMessage = "#{xhr.status}: #{xhr.responseText}"
|
@stateMessage = "#{xhr.status}: #{xhr.responseText}"
|
||||||
@render()
|
@render()
|
||||||
|
|
||||||
|
onHidden: ->
|
||||||
|
super()
|
||||||
|
@playSound 'game-menu-close'
|
||||||
|
|
|
@ -2,7 +2,7 @@ Classroom = require 'models/Classroom'
|
||||||
ModalView = require 'views/core/ModalView'
|
ModalView = require 'views/core/ModalView'
|
||||||
template = require 'templates/courses/classroom-settings-modal'
|
template = require 'templates/courses/classroom-settings-modal'
|
||||||
|
|
||||||
module.exports = class AddLevelSystemModal extends ModalView
|
module.exports = class ClassroomSettingsModal extends ModalView
|
||||||
id: 'classroom-settings-modal'
|
id: 'classroom-settings-modal'
|
||||||
template: template
|
template: template
|
||||||
|
|
||||||
|
|
|
@ -79,6 +79,7 @@ module.exports = class ClassroomView extends RootView
|
||||||
onLoaded: ->
|
onLoaded: ->
|
||||||
@teacherMode = me.isAdmin() or @classroom.get('ownerID') is me.id
|
@teacherMode = me.isAdmin() or @classroom.get('ownerID') is me.id
|
||||||
userSessions = @sessions.groupBy('creator')
|
userSessions = @sessions.groupBy('creator')
|
||||||
|
@users.remove(@users.where({ deleted: true }))
|
||||||
for user in @users.models
|
for user in @users.models
|
||||||
user.sessions = new CocoCollection(userSessions[user.id], { model: LevelSession })
|
user.sessions = new CocoCollection(userSessions[user.id], { model: LevelSession })
|
||||||
user.sessions.comparator = 'changed'
|
user.sessions.comparator = 'changed'
|
||||||
|
|
|
@ -4,7 +4,7 @@ auth = require 'core/auth'
|
||||||
forms = require 'core/forms'
|
forms = require 'core/forms'
|
||||||
User = require 'models/User'
|
User = require 'models/User'
|
||||||
|
|
||||||
module.exports = class StudentSignInModal extends ModalView
|
module.exports = class StudentLogInModal extends ModalView
|
||||||
id: 'student-log-in-modal'
|
id: 'student-log-in-modal'
|
||||||
template: template
|
template: template
|
||||||
|
|
||||||
|
|
|
@ -104,13 +104,11 @@ class SolutionsNode extends TreemaArrayNode
|
||||||
|
|
||||||
onClickFillDefaults: (e) =>
|
onClickFillDefaults: (e) =>
|
||||||
e.preventDefault()
|
e.preventDefault()
|
||||||
sources = {}
|
|
||||||
if source = @parent.data.source
|
|
||||||
sources.javascript = source
|
|
||||||
|
|
||||||
sources = { javascript: @parent.data.source }
|
sources = { javascript: @parent.data.source }
|
||||||
_.extend sources, @parent.data.languages or {}
|
_.extend sources, @parent.data.languages or {}
|
||||||
solutions = _.clone(@data)
|
solutions = _.clone(@data)
|
||||||
|
solutions = _.filter(solutions, (solution) -> not _.isEmpty(solution) )
|
||||||
for language in _.keys(sources)
|
for language in _.keys(sources)
|
||||||
source = sources[language]
|
source = sources[language]
|
||||||
solution = _.findWhere(solutions, {language: language})
|
solution = _.findWhere(solutions, {language: language})
|
||||||
|
@ -120,5 +118,5 @@ class SolutionsNode extends TreemaArrayNode
|
||||||
language: language
|
language: language
|
||||||
passes: true
|
passes: true
|
||||||
})
|
})
|
||||||
|
|
||||||
@set('/', solutions)
|
@set('/', solutions)
|
|
@ -6,6 +6,7 @@ module.exports = class LevelSearchView extends SearchView
|
||||||
model: require 'models/Level'
|
model: require 'models/Level'
|
||||||
modelURL: '/db/level'
|
modelURL: '/db/level'
|
||||||
tableTemplate: require 'templates/editor/level/table'
|
tableTemplate: require 'templates/editor/level/table'
|
||||||
|
projection: ['slug', 'name', 'description', 'version', 'watchers', 'creator']
|
||||||
page: 'level'
|
page: 'level'
|
||||||
|
|
||||||
getRenderData: ->
|
getRenderData: ->
|
||||||
|
|
|
@ -1,8 +1,8 @@
|
||||||
I18NEditModelView = require './I18NEditModelView'
|
I18NEditModelView = require './I18NEditModelView'
|
||||||
ThangType = require 'models/ThangType'
|
ThangType = require 'models/ThangType'
|
||||||
|
|
||||||
module.exports = class ThangTypeI18NView extends I18NEditModelView
|
module.exports = class I18NEditThangTypeView extends I18NEditModelView
|
||||||
id: 'thang-type-i18n-view'
|
id: 'i18n-thang-type-view'
|
||||||
modelClass: ThangType
|
modelClass: ThangType
|
||||||
|
|
||||||
buildTranslationList: ->
|
buildTranslationList: ->
|
||||||
|
|
|
@ -11,8 +11,8 @@ class LevelSessionsCollection extends CocoCollection
|
||||||
super()
|
super()
|
||||||
@url = "/db/user/#{me.id}/level.sessions?project=state.complete,levelID"
|
@url = "/db/user/#{me.id}/level.sessions?project=state.complete,levelID"
|
||||||
|
|
||||||
module.exports = class LadderHomeView extends RootView
|
module.exports = class MainLadderView extends RootView
|
||||||
id: 'ladder-home-view'
|
id: 'main-ladder-view'
|
||||||
template: template
|
template: template
|
||||||
|
|
||||||
constructor: (options) ->
|
constructor: (options) ->
|
||||||
|
|
|
@ -1,4 +0,0 @@
|
||||||
AuthModal = require 'views/core/AuthModal'
|
|
||||||
|
|
||||||
module.exports = class SignupModalView extends AuthModal
|
|
||||||
mode: 'signup'
|
|
|
@ -2,7 +2,7 @@ ModalView = require 'views/core/ModalView'
|
||||||
template = require 'templates/play/modal/share-progress-modal'
|
template = require 'templates/play/modal/share-progress-modal'
|
||||||
storage = require 'core/storage'
|
storage = require 'core/storage'
|
||||||
|
|
||||||
module.exports = class SubscribeModal extends ModalView
|
module.exports = class ShareProgressModal extends ModalView
|
||||||
id: 'share-progress-modal'
|
id: 'share-progress-modal'
|
||||||
template: template
|
template: template
|
||||||
plain: true
|
plain: true
|
||||||
|
|
|
@ -55,7 +55,7 @@
|
||||||
"aether": "~0.4.0",
|
"aether": "~0.4.0",
|
||||||
"async": "0.2.x",
|
"async": "0.2.x",
|
||||||
"aws-sdk": "~2.0.0",
|
"aws-sdk": "~2.0.0",
|
||||||
"bayesian-battle": "0.0.x",
|
"bayesian-battle": "0.0.7",
|
||||||
"coffee-script": "1.9.x",
|
"coffee-script": "1.9.x",
|
||||||
"connect": "2.7.x",
|
"connect": "2.7.x",
|
||||||
"express": "~3.0.6",
|
"express": "~3.0.6",
|
||||||
|
@ -98,7 +98,7 @@
|
||||||
"css-brunch": "^1.7.0",
|
"css-brunch": "^1.7.0",
|
||||||
"fs-extra": "^0.26.2",
|
"fs-extra": "^0.26.2",
|
||||||
"jade-brunch": "1.7.5",
|
"jade-brunch": "1.7.5",
|
||||||
"jasmine": "^2.3.2",
|
"jasmine": "^2.4.1",
|
||||||
"javascript-brunch": "> 1.0 < 1.8",
|
"javascript-brunch": "> 1.0 < 1.8",
|
||||||
"karma": "~0.13",
|
"karma": "~0.13",
|
||||||
"karma-chrome-launcher": "~0.1.2",
|
"karma-chrome-launcher": "~0.1.2",
|
||||||
|
|
|
@ -1,17 +1,108 @@
|
||||||
// Latest teacher trial requests
|
/* global ISODate */
|
||||||
|
// Latest approved teacher trial requests
|
||||||
|
|
||||||
// Usage:
|
// Usage:
|
||||||
// mongo <address>:<port>/<database> <script file> -u <username> -p <password>
|
// mongo <address>:<port>/<database> <script file> -u <username> -p <password>
|
||||||
|
|
||||||
var startDay = '2015-10-01';
|
var startDay = '2015-11-01';
|
||||||
var endDay = '2016-10-01';
|
var endDay = '2016-01-01';
|
||||||
print('Date range:', startDay, endDay);
|
print('Date range:', startDay, 'up to', endDay);
|
||||||
var userIDs = getTrialRequestApplicants(startDay, endDay);
|
|
||||||
print('Trial request applicants found:', userIDs.length);
|
var users = getUsers(startDay, endDay);
|
||||||
var userEmails = getUserEmails(userIDs);
|
print('Teachers found:', users.length);
|
||||||
print('User emails found:', userEmails.length);
|
print("User Id\tStudent Count\tTrial Type\tEmail\tName\tSchool");
|
||||||
for (var i = 0; i < userEmails.length; i++) {
|
for (var i = 0; i < users.length; i++) {
|
||||||
print(userEmails[i]);
|
if (users[i].schoolName) {
|
||||||
|
print(users[i].id, '\t', users[i].studentCount, '\t', users[i].type, '\t', users[i].email, '\t', users[i].name, '\t', users[i].schoolName);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function getUsers(startDay, endDay) {
|
||||||
|
var cursor, doc, userID;
|
||||||
|
|
||||||
|
// Find approved trial requests
|
||||||
|
var startObj = objectIdWithTimestamp(ISODate(startDay + "T00:00:00.000Z"));
|
||||||
|
var endObj = objectIdWithTimestamp(ISODate(endDay + "T00:00:00.000Z"))
|
||||||
|
cursor = db['trial.requests'].find(
|
||||||
|
{$and:
|
||||||
|
[
|
||||||
|
{_id: {$gte: startObj}},
|
||||||
|
{_id: {$lt: endObj}},
|
||||||
|
{status: 'approved'}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{applicant: 1, type: 1}
|
||||||
|
);
|
||||||
|
|
||||||
|
var userIDs = [];
|
||||||
|
var userTrialTypeMap = {};
|
||||||
|
var orphanedTrialRequests = [];
|
||||||
|
while (cursor.hasNext()) {
|
||||||
|
doc = cursor.next();
|
||||||
|
if (doc.applicant) {
|
||||||
|
userIDs.push(doc.applicant);
|
||||||
|
userID = doc.applicant.valueOf();
|
||||||
|
if (!userTrialTypeMap[userID] || userTrialTypeMap[userID] !== 'course') userTrialTypeMap[userID] = doc.type;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
orphanedTrialRequests.push(doc._id);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// May have orphaned trial requests due to previous external import of requests from Google form
|
||||||
|
if (orphanedTrialRequests.length > 0) {
|
||||||
|
cursor = db.prepaids.find({'properties.trialRequestID': {$in: orphanedTrialRequests}}, {creator: 1});
|
||||||
|
while (cursor.hasNext()) {
|
||||||
|
doc = cursor.next();
|
||||||
|
if (doc.creator) {
|
||||||
|
userIDs.push(doc.creator);
|
||||||
|
userID = doc.creator.valueOf();
|
||||||
|
if (!userTrialTypeMap[userID] || userTrialTypeMap[userID] !== 'course') userTrialTypeMap[userID] = doc.type;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
print('No creator!');
|
||||||
|
printjson(doc);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Find user class sizes
|
||||||
|
var userClassroomStudentsMap = {};
|
||||||
|
cursor = db.classrooms.find({ownerID: {$in: userIDs}}, {members: 1, ownerID: 1});
|
||||||
|
while (cursor.hasNext()) {
|
||||||
|
doc = cursor.next();
|
||||||
|
if (doc.members) {
|
||||||
|
userID = doc.ownerID.valueOf();
|
||||||
|
if (!userClassroomStudentsMap[userID]) userClassroomStudentsMap[userID] = 0;
|
||||||
|
userClassroomStudentsMap[userID] = doc.members.length;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Build user data
|
||||||
|
var users = [];
|
||||||
|
cursor = db['users'].find({$and: [{_id: {$in: userIDs}}, {deleted: {$exists: false}}, {anonymous: false}]}, {emailLower: 1, name: 1, schoolName: 1});
|
||||||
|
while (cursor.hasNext()) {
|
||||||
|
doc = cursor.next();
|
||||||
|
userID = doc._id.valueOf();
|
||||||
|
var userData = {
|
||||||
|
id: userID,
|
||||||
|
email: doc.emailLower,
|
||||||
|
name: doc.name || "",
|
||||||
|
schoolName: doc.schoolName || "",
|
||||||
|
studentCount: userClassroomStudentsMap[userID] || 0,
|
||||||
|
type: userTrialTypeMap[userID]
|
||||||
|
};
|
||||||
|
users.push(userData);
|
||||||
|
}
|
||||||
|
|
||||||
|
users.sort(function(a, b) {
|
||||||
|
if (a.studentCount > b.studentCount) return -1;
|
||||||
|
else if (a.studentCount === b.studentCount) return a.email.localeCompare(b.email);
|
||||||
|
return 1;
|
||||||
|
});
|
||||||
|
|
||||||
|
return users;
|
||||||
}
|
}
|
||||||
|
|
||||||
function objectIdWithTimestamp(timestamp) {
|
function objectIdWithTimestamp(timestamp) {
|
||||||
|
@ -24,60 +115,3 @@ function objectIdWithTimestamp(timestamp) {
|
||||||
return constructedObjectId
|
return constructedObjectId
|
||||||
}
|
}
|
||||||
|
|
||||||
function getTrialRequestApplicants(startDay, endDay) {
|
|
||||||
var startObj = objectIdWithTimestamp(ISODate(startDay + "T00:00:00.000Z"));
|
|
||||||
var endObj = objectIdWithTimestamp(ISODate(endDay + "T00:00:00.000Z"))
|
|
||||||
var cursor = db['trial.requests'].find(
|
|
||||||
{$and:
|
|
||||||
[
|
|
||||||
{_id: {$gte: startObj}},
|
|
||||||
{_id: {$lt: endObj}}
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{applicant: 1}
|
|
||||||
);
|
|
||||||
|
|
||||||
var applicantIDs = [];
|
|
||||||
var orphanedTrialRequests = [];
|
|
||||||
while (cursor.hasNext()) {
|
|
||||||
var myDoc = cursor.next();
|
|
||||||
if (myDoc.applicant) {
|
|
||||||
applicantIDs.push(myDoc.applicant);
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
orphanedTrialRequests.push(myDoc._id);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// May have orphaned trial requests due to previous external import of requests from Google form
|
|
||||||
if (orphanedTrialRequests.length > 0) {
|
|
||||||
cursor = db.prepaids.find({'properties.trialRequestID': {$in: orphanedTrialRequests}}, {creator: 1});
|
|
||||||
while (cursor.hasNext()) {
|
|
||||||
var myDoc = cursor.next();
|
|
||||||
if (myDoc.creator) {
|
|
||||||
applicantIDs.push(myDoc.creator);
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
print('No creator!');
|
|
||||||
printjson(myDoc);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return applicantIDs;
|
|
||||||
}
|
|
||||||
|
|
||||||
function getUserEmails(userIDs) {
|
|
||||||
var cursor = db['users'].find({_id: {$in: userIDs}}, {emailLower: 1});
|
|
||||||
|
|
||||||
var userEmails = [];
|
|
||||||
while (cursor.hasNext()) {
|
|
||||||
var myDoc = cursor.next();
|
|
||||||
if (myDoc.emailLower) {
|
|
||||||
userEmails.push(myDoc.emailLower);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
userEmails.sort()
|
|
||||||
return userEmails;
|
|
||||||
}
|
|
||||||
|
|
|
@ -4,6 +4,7 @@ config = require '../../server_config'
|
||||||
plugins = require '../plugins/plugins'
|
plugins = require '../plugins/plugins'
|
||||||
User = require '../users/User'
|
User = require '../users/User'
|
||||||
jsonSchema = require '../../app/schemas/models/classroom.schema'
|
jsonSchema = require '../../app/schemas/models/classroom.schema'
|
||||||
|
utils = require '../lib/utils'
|
||||||
|
|
||||||
ClassroomSchema = new mongoose.Schema {}, {strict: false, minimize: false, read:config.mongo.readpref}
|
ClassroomSchema = new mongoose.Schema {}, {strict: false, minimize: false, read:config.mongo.readpref}
|
||||||
|
|
||||||
|
@ -18,12 +19,10 @@ ClassroomSchema.statics.editableProperties = [
|
||||||
'aceConfig'
|
'aceConfig'
|
||||||
]
|
]
|
||||||
|
|
||||||
# 250 words; will want to use 4 code words once we get past 10M classrooms.
|
|
||||||
words = 'angry apple arm army art baby back bad bag ball bath bean bear bed bell best big bird bite blue boat book box boy bread burn bus cake car cat chair city class clock cloud coat coin cold cook cool corn crash cup dark day deep desk dish dog door down draw dream drink drop dry duck dust east eat egg enemy eye face false farm fast fear fight find fire flag floor fly food foot fork fox free fruit full fun funny game gate gift glass goat gold good green hair half hand happy heart heavy help hide hill home horse house ice idea iron jelly job jump key king lamp large last late lazy leaf left leg life light lion lock long luck map mean milk mix moon more most mouth music name neck net new next nice night north nose old only open page paint pan paper park party path pig pin pink place plane plant plate play point pool power pull push queen rain ready red rest rice ride right ring road rock room run sad safe salt same sand sell shake shape share sharp sheep shelf ship shirt shoe shop short show sick side silly sing sink sit size sky sleep slow small snow sock soft soup south space speed spell spoon star start step stone stop sweet swim sword table team thick thin thing think today tooth top town tree true turn type under want warm watch water west wide win word yes zoo'.split(' ')
|
|
||||||
|
|
||||||
ClassroomSchema.statics.generateNewCode = (done) ->
|
ClassroomSchema.statics.generateNewCode = (done) ->
|
||||||
tryCode = ->
|
tryCode = ->
|
||||||
codeCamel = _.map(_.sample(words, 3), (s) -> s[0].toUpperCase() + s.slice(1)).join('')
|
# Use 4 code words once we get past 10M classrooms
|
||||||
|
codeCamel = utils.getCodeCamel(3)
|
||||||
code = codeCamel.toLowerCase()
|
code = codeCamel.toLowerCase()
|
||||||
Classroom.findOne code: code, (err, classroom) ->
|
Classroom.findOne code: code, (err, classroom) ->
|
||||||
return done() if err
|
return done() if err
|
||||||
|
@ -31,8 +30,6 @@ ClassroomSchema.statics.generateNewCode = (done) ->
|
||||||
tryCode()
|
tryCode()
|
||||||
tryCode()
|
tryCode()
|
||||||
|
|
||||||
#ClassroomSchema.plugin plugins.NamedPlugin
|
|
||||||
|
|
||||||
ClassroomSchema.pre('save', (next) ->
|
ClassroomSchema.pre('save', (next) ->
|
||||||
return next() if @get('code')
|
return next() if @get('code')
|
||||||
Classroom.generateNewCode (code, codeCamel) =>
|
Classroom.generateNewCode (code, codeCamel) =>
|
||||||
|
|
|
@ -3,6 +3,6 @@ config = require '../../server_config'
|
||||||
module.exports.MAILCHIMP_LIST_ID = 'e9851239eb'
|
module.exports.MAILCHIMP_LIST_ID = 'e9851239eb'
|
||||||
module.exports.MAILCHIMP_GROUP_ID = '4529'
|
module.exports.MAILCHIMP_GROUP_ID = '4529'
|
||||||
|
|
||||||
# these two need to be parallel
|
# These two need to be parallel
|
||||||
module.exports.MAILCHIMP_GROUPS = ['Announcements', 'Adventurers', 'Artisans', 'Archmages', 'Scribes', 'Diplomats', 'Ambassadors']
|
module.exports.MAILCHIMP_GROUPS = ['Announcements', 'Adventurers', 'Artisans', 'Archmages', 'Scribes', 'Diplomats', 'Ambassadors', 'Teachers']
|
||||||
module.exports.NEWS_GROUPS = ['generalNews', 'adventurerNews', 'artisanNews', 'archmageNews', 'scribeNews', 'diplomatNews', 'ambassadorNews']
|
module.exports.NEWS_GROUPS = ['generalNews', 'adventurerNews', 'artisanNews', 'archmageNews', 'scribeNews', 'diplomatNews', 'ambassadorNews', 'teacherNews']
|
||||||
|
|
|
@ -6,6 +6,11 @@ config = require '../../server_config'
|
||||||
module.exports =
|
module.exports =
|
||||||
isID: (id) -> _.isString(id) and id.length is 24 and id.match(/[a-f0-9]/gi)?.length is 24
|
isID: (id) -> _.isString(id) and id.length is 24 and id.match(/[a-f0-9]/gi)?.length is 24
|
||||||
|
|
||||||
|
getCodeCamel: (numWords=3) ->
|
||||||
|
# 250 words
|
||||||
|
words = 'angry apple arm army art baby back bad bag ball bath bean bear bed bell best big bird bite blue boat book box boy bread burn bus cake car cat chair city class clock cloud coat coin cold cook cool corn crash cup dark day deep desk dish dog door down draw dream drink drop dry duck dust east eat egg enemy eye face false farm fast fear fight find fire flag floor fly food foot fork fox free fruit full fun funny game gate gift glass goat gold good green hair half hand happy heart heavy help hide hill home horse house ice idea iron jelly job jump key king lamp large last late lazy leaf left leg life light lion lock long luck map mean milk mix moon more most mouth music name neck net new next nice night north nose old only open page paint pan paper park party path pig pin pink place plane plant plate play point pool power pull push queen rain ready red rest rice ride right ring road rock room run sad safe salt same sand sell shake shape share sharp sheep shelf ship shirt shoe shop short show sick side silly sing sink sit size sky sleep slow small snow sock soft soup south space speed spell spoon star start step stone stop sweet swim sword table team thick thin thing think today tooth top town tree true turn type under want warm watch water west wide win word yes zoo'.split(' ')
|
||||||
|
_.map(_.sample(words, numWords), (s) -> s[0].toUpperCase() + s.slice(1)).join('')
|
||||||
|
|
||||||
objectIdFromTimestamp: (timestamp) ->
|
objectIdFromTimestamp: (timestamp) ->
|
||||||
# mongoDB ObjectId contains creation date in first 4 bytes
|
# mongoDB ObjectId contains creation date in first 4 bytes
|
||||||
# So, it can be used instead of a redundant created field
|
# So, it can be used instead of a redundant created field
|
||||||
|
|
|
@ -41,16 +41,13 @@ module.exports.formatSessionInformation = (session) ->
|
||||||
shouldUpdateLastOpponentSubmitDateForLeague: session.shouldUpdateLastOpponentSubmitDateForLeague
|
shouldUpdateLastOpponentSubmitDateForLeague: session.shouldUpdateLastOpponentSubmitDateForLeague
|
||||||
|
|
||||||
module.exports.calculateSessionScores = (callback) ->
|
module.exports.calculateSessionScores = (callback) ->
|
||||||
sessionIDs = _.pluck @clientResponseObject.sessions, 'sessionID'
|
sessionIDs = _.map @clientResponseObject.sessions, 'sessionID'
|
||||||
async.map sessionIDs, retrieveOldSessionData.bind(@), (err, oldScores) =>
|
async.map sessionIDs, retrieveOldSessionData.bind(@), (err, oldScores) =>
|
||||||
if err? then return callback err, {error: 'There was an error retrieving the old scores'}
|
if err? then return callback err, {error: 'There was an error retrieving the old scores'}
|
||||||
try
|
oldScoreArray = _.toArray putRankingFromMetricsIntoScoreObject @clientResponseObject, oldScores
|
||||||
oldScoreArray = _.toArray putRankingFromMetricsIntoScoreObject @clientResponseObject, oldScores
|
newScoreArray = updatePlayerSkills oldScoreArray
|
||||||
newScoreArray = updatePlayerSkills oldScoreArray
|
createSessionScoreUpdate.call @, scoreObject for scoreObject in newScoreArray
|
||||||
createSessionScoreUpdate.call @, scoreObject for scoreObject in newScoreArray
|
callback null, newScoreArray
|
||||||
callback err, newScoreArray
|
|
||||||
catch e
|
|
||||||
callback e
|
|
||||||
|
|
||||||
retrieveOldSessionData = (sessionID, callback) ->
|
retrieveOldSessionData = (sessionID, callback) ->
|
||||||
formatOldScoreObject = (session) =>
|
formatOldScoreObject = (session) =>
|
||||||
|
@ -151,7 +148,7 @@ module.exports.addMatchToSessionsAndUpdate = (newScoreObject, callback) ->
|
||||||
#log.info "Match object computed, result: #{JSON.stringify(matchObject, null, 2)}"
|
#log.info "Match object computed, result: #{JSON.stringify(matchObject, null, 2)}"
|
||||||
#log.info 'Writing match object to database...'
|
#log.info 'Writing match object to database...'
|
||||||
#use bind with async to do the writes
|
#use bind with async to do the writes
|
||||||
sessionIDs = _.pluck @clientResponseObject.sessions, 'sessionID'
|
sessionIDs = _.map @clientResponseObject.sessions, 'sessionID'
|
||||||
async.each sessionIDs, updateMatchesInSession.bind(@, matchObject), (err) ->
|
async.each sessionIDs, updateMatchesInSession.bind(@, matchObject), (err) ->
|
||||||
callback err
|
callback err
|
||||||
|
|
||||||
|
|
|
@ -8,6 +8,7 @@ errors = require '../commons/errors'
|
||||||
languages = require '../routes/languages'
|
languages = require '../routes/languages'
|
||||||
sendwithus = require '../sendwithus'
|
sendwithus = require '../sendwithus'
|
||||||
log = require 'winston'
|
log = require 'winston'
|
||||||
|
utils = require '../lib/utils'
|
||||||
|
|
||||||
module.exports.setup = (app) ->
|
module.exports.setup = (app) ->
|
||||||
authentication.serializeUser((user, done) -> done(null, user._id))
|
authentication.serializeUser((user, done) -> done(null, user._id))
|
||||||
|
@ -101,7 +102,10 @@ module.exports.setup = (app) ->
|
||||||
if not user
|
if not user
|
||||||
return errors.notFound(res, [{message: 'not found', property: 'email'}])
|
return errors.notFound(res, [{message: 'not found', property: 'email'}])
|
||||||
|
|
||||||
user.set('passwordReset', Math.random().toString(36).slice(2, 7).toUpperCase())
|
user.set('passwordReset', utils.getCodeCamel())
|
||||||
|
emailContent = "<h3>Your temporary password: <b>#{user.get('passwordReset')}</b></h3>"
|
||||||
|
emailContent += "<p>Reset your password at <a href=\"http://codecombat.com/account/settings\">http://codecombat.com/account/settings</a></p>"
|
||||||
|
emailContent += "<p>Your old password cannot be retrieved.</p>"
|
||||||
user.save (err) =>
|
user.save (err) =>
|
||||||
return errors.serverError(res) if err
|
return errors.serverError(res) if err
|
||||||
unless config.unittest
|
unless config.unittest
|
||||||
|
@ -111,8 +115,8 @@ module.exports.setup = (app) ->
|
||||||
address: req.body.email
|
address: req.body.email
|
||||||
email_data:
|
email_data:
|
||||||
subject: 'CodeCombat Recovery Password'
|
subject: 'CodeCombat Recovery Password'
|
||||||
title: 'Recovery Password'
|
title: ''
|
||||||
content: "<p>Your CodeCombat recovery password for email #{req.body.email} is: #{user.get('passwordReset')}</p><p>Log in at <a href=\"http://codecombat.com/account/settings\">http://codecombat.com/account/settings</a> and change it.</p><p>Hope this helps!</p>"
|
content: emailContent
|
||||||
sendwithus.api.send context, (err, result) ->
|
sendwithus.api.send context, (err, result) ->
|
||||||
if err
|
if err
|
||||||
console.error "Error sending password reset email: #{err.message or err}"
|
console.error "Error sending password reset email: #{err.message or err}"
|
||||||
|
|
|
@ -5,6 +5,7 @@ hipchat = require '../hipchat'
|
||||||
sendwithus = require '../sendwithus'
|
sendwithus = require '../sendwithus'
|
||||||
Prepaid = require '../prepaids/Prepaid'
|
Prepaid = require '../prepaids/Prepaid'
|
||||||
jsonSchema = require '../../app/schemas/models/trial_request.schema'
|
jsonSchema = require '../../app/schemas/models/trial_request.schema'
|
||||||
|
User = require '../users/User'
|
||||||
|
|
||||||
TrialRequestSchema = new mongoose.Schema {}, {strict: false, minimize: false, read:config.mongo.readpref}
|
TrialRequestSchema = new mongoose.Schema {}, {strict: false, minimize: false, read:config.mongo.readpref}
|
||||||
|
|
||||||
|
@ -32,6 +33,19 @@ TrialRequestSchema.post 'save', (doc) ->
|
||||||
sendwithus.api.send emailParams, (err, result) =>
|
sendwithus.api.send emailParams, (err, result) =>
|
||||||
log.error "sendwithus trial request approved error: #{err}, result: #{result}" if err
|
log.error "sendwithus trial request approved error: #{err}, result: #{result}" if err
|
||||||
|
|
||||||
|
# Subscribe to teacher news group
|
||||||
|
User.findById doc.get('applicant'), (err, user) =>
|
||||||
|
if err
|
||||||
|
log.error "Trial request user find error: #{err}"
|
||||||
|
return
|
||||||
|
emails = _.cloneDeep(user.get('emails') ? {})
|
||||||
|
emails.teacherNews ?= {}
|
||||||
|
emails.teacherNews.enabled = true
|
||||||
|
user.update {$set: {emails: emails}}, {}, (err) =>
|
||||||
|
if err
|
||||||
|
log.error "Trial request user update error: #{err}"
|
||||||
|
return
|
||||||
|
|
||||||
TrialRequestSchema.statics.privateProperties = []
|
TrialRequestSchema.statics.privateProperties = []
|
||||||
TrialRequestSchema.statics.editableProperties = [
|
TrialRequestSchema.statics.editableProperties = [
|
||||||
'created'
|
'created'
|
||||||
|
|
|
@ -76,6 +76,7 @@ emailNameMap =
|
||||||
diplomatNews: 'translator'
|
diplomatNews: 'translator'
|
||||||
ambassadorNews: 'support'
|
ambassadorNews: 'support'
|
||||||
anyNotes: 'notification'
|
anyNotes: 'notification'
|
||||||
|
teacherNews: 'teacher'
|
||||||
|
|
||||||
UserSchema.methods.setEmailSubscription = (newName, enabled) ->
|
UserSchema.methods.setEmailSubscription = (newName, enabled) ->
|
||||||
oldSubs = _.clone @get('emailSubscriptions')
|
oldSubs = _.clone @get('emailSubscriptions')
|
||||||
|
|
|
@ -38,43 +38,58 @@ if (database.generateMongoConnectionString() !== dbString) {
|
||||||
|
|
||||||
jasmine.DEFAULT_TIMEOUT_INTERVAL = 1000 * 120; // for long Stripe tests
|
jasmine.DEFAULT_TIMEOUT_INTERVAL = 1000 * 120; // for long Stripe tests
|
||||||
|
|
||||||
describe('Server Test Helper', function() {
|
var initialized = false;
|
||||||
it('starts the test server', function(done) {
|
beforeEach(function(done) {
|
||||||
var server = require('../../server');
|
if (initialized) {
|
||||||
server.startServer(done);
|
return done();
|
||||||
|
}
|
||||||
|
|
||||||
|
var async = require('async');
|
||||||
|
async.series([
|
||||||
|
function(cb) {
|
||||||
|
// Start the server
|
||||||
|
var server = require('../../server');
|
||||||
|
server.startServer(cb);
|
||||||
|
},
|
||||||
|
function(cb) {
|
||||||
|
// 5. Check actual database
|
||||||
|
var User = require('../../server/users/User');
|
||||||
|
User.find({}).count(function(err, count) {
|
||||||
|
// For this to serve as a line of defense against testing with the
|
||||||
|
// production DB, tests must be run with
|
||||||
|
expect(err).toBeNull();
|
||||||
|
expect(count).toBeLessThan(100);
|
||||||
|
if(err || count >= 100) {
|
||||||
|
// the only way to be sure we don't keep going with the tests
|
||||||
|
process.exit(1);
|
||||||
|
}
|
||||||
|
GLOBAL.mc.lists.subscribe = _.noop;
|
||||||
|
cb()
|
||||||
|
});
|
||||||
|
},
|
||||||
|
function(cb) {
|
||||||
|
// Clear db
|
||||||
|
var mongoose = require('mongoose');
|
||||||
|
mongoose.connection.db.command({dropDatabase:1}, function(err, result) {
|
||||||
|
if (err) { console.log(err); }
|
||||||
|
cb(err);
|
||||||
|
});
|
||||||
|
},
|
||||||
|
function(cb) {
|
||||||
|
// Initialize products
|
||||||
|
var request = require('request');
|
||||||
|
request.get(getURL('/db/products'), function(err, res, body) {
|
||||||
|
expect(err).toBe(null);
|
||||||
|
expect(res.statusCode).toBe(200);
|
||||||
|
cb(err);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
],
|
||||||
|
function(err) {
|
||||||
|
if (err) {
|
||||||
|
process.exit(1);
|
||||||
|
}
|
||||||
|
initialized = true;
|
||||||
|
done();
|
||||||
});
|
});
|
||||||
|
|
||||||
it('checks the db is fairly empty', function(done) {
|
|
||||||
// 5. Check actual database.
|
|
||||||
var User = require('../../server/users/User');
|
|
||||||
User.find({}).count(function(err, count) {
|
|
||||||
// For this to serve as a line of defense against testing with the
|
|
||||||
// production DB, tests must be run with
|
|
||||||
expect(err).toBeNull();
|
|
||||||
expect(count).toBeLessThan(100);
|
|
||||||
if(err || count >= 100) {
|
|
||||||
// the only way to be sure we don't keep going with the tests
|
|
||||||
process.exit(1);
|
|
||||||
}
|
|
||||||
GLOBAL.mc.lists.subscribe = _.noop;
|
|
||||||
done()
|
|
||||||
});
|
|
||||||
});
|
|
||||||
|
|
||||||
it('clears the db', function(done) {
|
|
||||||
var mongoose = require('mongoose');
|
|
||||||
mongoose.connection.db.command({dropDatabase:1}, function(err, result) {
|
|
||||||
if (err) { console.log(err); }
|
|
||||||
done();
|
|
||||||
});
|
|
||||||
});
|
|
||||||
|
|
||||||
it('initializes products', function(done) {
|
|
||||||
var request = require('request');
|
|
||||||
request.get(getURL('/db/products'), function(err, res, body) {
|
|
||||||
expect(err).toBe(null);
|
|
||||||
expect(res.statusCode).toBe(200);
|
|
||||||
done();
|
|
||||||
});
|
|
||||||
})
|
|
||||||
});
|
});
|
|
@ -134,7 +134,11 @@ describe 'Trial Requests', ->
|
||||||
expect(prepaid.get('type')).toEqual('course')
|
expect(prepaid.get('type')).toEqual('course')
|
||||||
expect(prepaid.get('creator')).toEqual(user.get('_id'))
|
expect(prepaid.get('creator')).toEqual(user.get('_id'))
|
||||||
expect(prepaid.get('maxRedeemers')).toEqual(2)
|
expect(prepaid.get('maxRedeemers')).toEqual(2)
|
||||||
done()
|
User.findById user._id, (err, user) =>
|
||||||
|
expect(err).toBeNull()
|
||||||
|
return done(err) if err
|
||||||
|
expect(user.get('emails')?.teacherNews?.enabled).toEqual(true)
|
||||||
|
done()
|
||||||
|
|
||||||
it 'Deny trial request', (done) ->
|
it 'Deny trial request', (done) ->
|
||||||
loginNewUser (user) ->
|
loginNewUser (user) ->
|
||||||
|
|
|
@ -8,6 +8,7 @@ describe 'LevelEditView', ->
|
||||||
view = new LevelEditView({}, 'something')
|
view = new LevelEditView({}, 'something')
|
||||||
request = jasmine.Ajax.requests.first()
|
request = jasmine.Ajax.requests.first()
|
||||||
request.respondWith {status: 200, responseText: JSON.stringify(emptyLevel)}
|
request.respondWith {status: 200, responseText: JSON.stringify(emptyLevel)}
|
||||||
|
me.set('anonymous', false) # otherwise button may be disabled an not fire
|
||||||
view.render()
|
view.render()
|
||||||
spyOn(view, 'openModalView')
|
spyOn(view, 'openModalView')
|
||||||
view.$el.find('#revert-button').click()
|
view.$el.find('#revert-button').click()
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue