mirror of
https://github.com/codeninjasllc/codecombat.git
synced 2025-01-05 12:12:26 -05:00
Merge branch 'master' into production
This commit is contained in:
commit
a5630c97c0
16 changed files with 580 additions and 490 deletions
|
@ -17,11 +17,10 @@ module.exports = class CocoRouter extends Backbone.Router
|
||||||
if window.serverConfig.picoCTF
|
if window.serverConfig.picoCTF
|
||||||
return @routeDirectly 'play/CampaignView', ['picoctf'], {}
|
return @routeDirectly 'play/CampaignView', ['picoctf'], {}
|
||||||
# Testing new home page
|
# Testing new home page
|
||||||
group = me.getHomepageGroup()
|
# group = me.getHomepageGroup()
|
||||||
return @routeDirectly('HomeView', [], { withTeacherNote: true }) if group is 'home-with-note'
|
# return @routeDirectly('NewHomeView', [], { jumbotron: 'student' }) if group is 'new-home-student'
|
||||||
return @routeDirectly('NewHomeView', [], { jumbotron: 'student' }) if group is 'new-home-student'
|
# return @routeDirectly('NewHomeView', [], { jumbotron: 'characters' }) if group is 'new-home-characters'
|
||||||
return @routeDirectly('NewHomeView', [], { jumbotron: 'characters' }) if group is 'new-home-characters'
|
return @routeDirectly('NewHomeView', [])
|
||||||
return @routeDirectly('HomeView', [])
|
|
||||||
|
|
||||||
'about': go('AboutView')
|
'about': go('AboutView')
|
||||||
|
|
||||||
|
|
|
@ -28,11 +28,17 @@ module.exports = class SpriteBuilder
|
||||||
anim.initialize(mode ? createjs.MovieClip.INDEPENDENT, startPosition ? 0, loops ? true, labels)
|
anim.initialize(mode ? createjs.MovieClip.INDEPENDENT, startPosition ? 0, loops ? true, labels)
|
||||||
for tweenData in animData.tweens
|
for tweenData in animData.tweens
|
||||||
tween = createjs.Tween
|
tween = createjs.Tween
|
||||||
|
stopped = false
|
||||||
for func in tweenData
|
for func in tweenData
|
||||||
args = _.cloneDeep(func.a)
|
args = _.cloneDeep(func.a)
|
||||||
@dereferenceArgs(args, locals)
|
@dereferenceArgs(args, locals)
|
||||||
tween = tween[func.n](args...)
|
if tween[func.n]
|
||||||
anim.timeline.addTween(tween)
|
tween = tween[func.n](args...)
|
||||||
|
else
|
||||||
|
# If we, say, skipped a shadow get(), then the wait() may not be present
|
||||||
|
stopped = true
|
||||||
|
break
|
||||||
|
anim.timeline.addTween(tween) unless stopped
|
||||||
|
|
||||||
anim.nominalBounds = new createjs.Rectangle(animData.bounds...)
|
anim.nominalBounds = new createjs.Rectangle(animData.bounds...)
|
||||||
if animData.frameBounds
|
if animData.frameBounds
|
||||||
|
|
|
@ -4,7 +4,7 @@ module.exports = nativeDescription: "Deutsch (Deutschland)", englishDescription:
|
||||||
no_ie: "CodeCombat läuft nicht im IE 8 oder älteren Browsern. Tut uns leid!" # Warning that only shows up in IE8 and older
|
no_ie: "CodeCombat läuft nicht im IE 8 oder älteren Browsern. Tut uns leid!" # Warning that only shows up in IE8 and older
|
||||||
no_mobile: "CodeCombat ist nicht für Mobilgeräte optimiert und funktioniert möglicherweise nicht." # Warning that shows up on mobile devices
|
no_mobile: "CodeCombat ist nicht für Mobilgeräte optimiert und funktioniert möglicherweise nicht." # Warning that shows up on mobile devices
|
||||||
play: "Spielen" # The big play button that opens up the campaign view.
|
play: "Spielen" # 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: "Spiele die Kampagnen Version" # Shows up under big play button if you only play /courses
|
||||||
old_browser: "Oh! Dein Browser ist zu alt für CodeCombat. Tut uns leid!" # Warning that shows up on really old Firefox/Chrome/Safari
|
old_browser: "Oh! Dein Browser ist zu alt für CodeCombat. Tut uns leid!" # Warning that shows up on really old Firefox/Chrome/Safari
|
||||||
old_browser_suffix: "Du kannst es trotzdem versuchen, aber es wird wahrscheinlich nicht funktionieren."
|
old_browser_suffix: "Du kannst es trotzdem versuchen, aber es wird wahrscheinlich nicht funktionieren."
|
||||||
ipad_browser: "Die schlechte Nachricht: CodeCombat läuft auf dem iPad nicht im Browser. Die gute Nachricht: Unsere iPad App wartet gerade auf die Zustimmung von Apple."
|
ipad_browser: "Die schlechte Nachricht: CodeCombat läuft auf dem iPad nicht im Browser. Die gute Nachricht: Unsere iPad App wartet gerade auf die Zustimmung von Apple."
|
||||||
|
@ -17,7 +17,7 @@ module.exports = nativeDescription: "Deutsch (Deutschland)", englishDescription:
|
||||||
nav:
|
nav:
|
||||||
play: "Spielen" # The top nav bar entry where players choose which levels to play
|
play: "Spielen" # The top nav bar entry where players choose which levels to play
|
||||||
community: "Community"
|
community: "Community"
|
||||||
# courses: "Courses"
|
courses: "Kurse"
|
||||||
editor: "Editor"
|
editor: "Editor"
|
||||||
blog: "Blog"
|
blog: "Blog"
|
||||||
forum: "Forum"
|
forum: "Forum"
|
||||||
|
@ -75,7 +75,7 @@ module.exports = nativeDescription: "Deutsch (Deutschland)", englishDescription:
|
||||||
subscription_required: "Abonnement benötigt"
|
subscription_required: "Abonnement benötigt"
|
||||||
anonymous: "Anonymer Spieler"
|
anonymous: "Anonymer Spieler"
|
||||||
level_difficulty: "Schwierigkeit: "
|
level_difficulty: "Schwierigkeit: "
|
||||||
# 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: "Spiele die Klassenraum-Version" # Choose a level in campaign version that you also can play in one of your courses
|
||||||
campaign_beginner: "Anfängerkampagne"
|
campaign_beginner: "Anfängerkampagne"
|
||||||
awaiting_levels_adventurer_prefix: "Wir veröffentlichen fünf Levels pro Woche." # {change}
|
awaiting_levels_adventurer_prefix: "Wir veröffentlichen fünf Levels pro Woche." # {change}
|
||||||
awaiting_levels_adventurer: "Registriere dich als ein Abenteurer"
|
awaiting_levels_adventurer: "Registriere dich als ein Abenteurer"
|
||||||
|
@ -114,9 +114,9 @@ module.exports = nativeDescription: "Deutsch (Deutschland)", englishDescription:
|
||||||
log_in: "mit Passwort einloggen"
|
log_in: "mit Passwort einloggen"
|
||||||
required: "Du musst dich vorher einloggen diesen Dienst zu nutzen"
|
required: "Du musst dich vorher einloggen diesen Dienst zu nutzen"
|
||||||
login_switch: "Hast du schon einen Account?"
|
login_switch: "Hast du schon einen Account?"
|
||||||
# school_name: "School Name and City"
|
school_name: "Schulname und Stadt"
|
||||||
# optional: "optional"
|
optional: "optional"
|
||||||
# school_name_placeholder: "Example High School, Springfield, IL"
|
school_name_placeholder: "Beispiel Gymnasium, Musterdorf, DE"
|
||||||
|
|
||||||
recover:
|
recover:
|
||||||
recover_account_title: "Account-Wiederherstellung"
|
recover_account_title: "Account-Wiederherstellung"
|
||||||
|
@ -166,7 +166,7 @@ module.exports = nativeDescription: "Deutsch (Deutschland)", englishDescription:
|
||||||
withdrawn: "zurückgezogen"
|
withdrawn: "zurückgezogen"
|
||||||
accept: "Akzeptieren"
|
accept: "Akzeptieren"
|
||||||
reject: "Verwerfen"
|
reject: "Verwerfen"
|
||||||
# withdraw: "Withdraw"
|
withdraw: "Zurückziehen"
|
||||||
submitter: "Übermittler"
|
submitter: "Übermittler"
|
||||||
submitted: "Übermittelt"
|
submitted: "Übermittelt"
|
||||||
commit_msg: "Übertrage Nachricht"
|
commit_msg: "Übertrage Nachricht"
|
||||||
|
@ -221,10 +221,10 @@ module.exports = nativeDescription: "Deutsch (Deutschland)", englishDescription:
|
||||||
years: "Jahre"
|
years: "Jahre"
|
||||||
|
|
||||||
play_level:
|
play_level:
|
||||||
# completed_level: "Completed Level:"
|
completed_level: "Abgeschlossene Level:"
|
||||||
# course: "Course:"
|
course: "Kurse:"
|
||||||
done: "Fertig"
|
done: "Fertig"
|
||||||
# next_level: "Next Level:"
|
next_level: "Nächster Level:"
|
||||||
next_game: "Nächstes Spiel"
|
next_game: "Nächstes Spiel"
|
||||||
show_menu: "Menü anzeigen"
|
show_menu: "Menü anzeigen"
|
||||||
home: "Startseite" # Not used any more, will be removed soon.
|
home: "Startseite" # Not used any more, will be removed soon.
|
||||||
|
@ -287,9 +287,9 @@ module.exports = nativeDescription: "Deutsch (Deutschland)", englishDescription:
|
||||||
time_goto: "Gehe zu:"
|
time_goto: "Gehe zu:"
|
||||||
non_user_code_problem_title: "Level konnte nicht geladen werden"
|
non_user_code_problem_title: "Level konnte nicht geladen werden"
|
||||||
infinite_loop_title: "Unendliche Schleife entdeckt"
|
infinite_loop_title: "Unendliche Schleife entdeckt"
|
||||||
# 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: "Der eingegebene Code für die Erschaffung dieser Welt findet kein Ende.Er ist entwerder sehr langsam oder hat eine unendliche Schleife. Oder es gibt einen Bug. Du kannst entweder versuchen den Code nochmal zu start oder den Code zum Ursprungscode zurücksetzen. Falls das nicht hilft, dann lass es uns bitte wissen."
|
||||||
# check_dev_console: "You can also open the developer console to see what might be going wrong."
|
check_dev_console: "Du kannst auch die Entwicklerkonsole öffnen um zu sehen was schief lief."
|
||||||
# check_dev_console_link: "(instructions)"
|
check_dev_console_link: "(Instruktionen)"
|
||||||
infinite_loop_try_again: "Erneut versuchen"
|
infinite_loop_try_again: "Erneut versuchen"
|
||||||
infinite_loop_reset_level: "Level zurücksetzen"
|
infinite_loop_reset_level: "Level zurücksetzen"
|
||||||
infinite_loop_comment_out: "Meinen Code auskommentieren"
|
infinite_loop_comment_out: "Meinen Code auskommentieren"
|
||||||
|
@ -297,7 +297,7 @@ module.exports = nativeDescription: "Deutsch (Deutschland)", englishDescription:
|
||||||
tip_scrub_shortcut: "Spule vor und zurück mit Strg+[ und Strg+]" # {change}
|
tip_scrub_shortcut: "Spule vor und zurück mit Strg+[ und Strg+]" # {change}
|
||||||
tip_guide_exists: "Klicke auf die Anleitung am oberen Ende der Seite für nützliche Informationen."
|
tip_guide_exists: "Klicke auf die Anleitung am oberen Ende der Seite für nützliche Informationen."
|
||||||
tip_open_source: "CodeCombat ist 100% quelloffen!"
|
tip_open_source: "CodeCombat ist 100% quelloffen!"
|
||||||
# tip_tell_friends: "Enjoying CodeCombat? Tell your friends about us!"
|
tip_tell_friends: "Gefällt dir CodeCombat? Dann erzähl es deinen Freunden!"
|
||||||
tip_beta_launch: "CodeCombat startete seine Beta im Oktober 2013."
|
tip_beta_launch: "CodeCombat startete seine Beta im Oktober 2013."
|
||||||
tip_think_solution: "Denke über die Lösung nach, nicht über das Problem."
|
tip_think_solution: "Denke über die Lösung nach, nicht über das Problem."
|
||||||
tip_theory_practice: "In der Theorie gibt es keinen Unterschied zwischen Theorie und Praxis. In der Praxis schon. - Yogi Berra"
|
tip_theory_practice: "In der Theorie gibt es keinen Unterschied zwischen Theorie und Praxis. In der Praxis schon. - Yogi Berra"
|
||||||
|
@ -339,10 +339,10 @@ module.exports = nativeDescription: "Deutsch (Deutschland)", englishDescription:
|
||||||
# tip_hate_computers: "That's the thing about people who think they hate computers. What they really hate is lousy programmers. - Larry Niven"
|
# tip_hate_computers: "That's the thing about people who think they hate computers. What they really hate is lousy programmers. - Larry Niven"
|
||||||
tip_open_source_contribute: "Du kannst dabei helfen, CodeCombat zu verbessern."
|
tip_open_source_contribute: "Du kannst dabei helfen, CodeCombat zu verbessern."
|
||||||
# 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: "Mach dich von allem frei, Neo. Angst, Zweifel, Misstrauen. Du musst deinen Geist befreien! - Morpheus"
|
||||||
# tip_strong_opponents: "Even the strongest of opponents always has a weakness. - Itachi Uchiha"
|
tip_strong_opponents: "Auch die stärksten Gegner haben immer ihre Schwächen. - 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: "Before you start coding, you can always plan with a sheet of paper and a pen."
|
||||||
# tip_solve_then_write: "First, solve the problem. Then, write the code. - John Johnson"
|
tip_solve_then_write: "Als Erstes, löse dass Problem. Dann, schreibe den Code. - John Johnson"
|
||||||
|
|
||||||
game_menu:
|
game_menu:
|
||||||
inventory_tab: "Inventar"
|
inventory_tab: "Inventar"
|
||||||
|
@ -407,10 +407,10 @@ module.exports = nativeDescription: "Deutsch (Deutschland)", englishDescription:
|
||||||
feature4: "<strong>{{gems}} Bonusedelsteine</strong> jeden Monat!"
|
feature4: "<strong>{{gems}} Bonusedelsteine</strong> jeden Monat!"
|
||||||
feature5: "Videoanleitungen"
|
feature5: "Videoanleitungen"
|
||||||
feature6: "Premium Emailsupport"
|
feature6: "Premium Emailsupport"
|
||||||
# feature7: "Private <strong>Clans</strong>"
|
feature7: "Private <strong>Klans</strong>"
|
||||||
free: "Kostenlos"
|
free: "Kostenlos"
|
||||||
month: "Monat"
|
month: "Monat"
|
||||||
# must_be_logged: "You must be logged in first. Please create an account or log in from the menu above."
|
must_be_logged: "Du musst eingeloggt sein. Bitte kreiere einen Account oder logge dich oben im Menü ein."
|
||||||
subscribe_title: "Abonnieren"
|
subscribe_title: "Abonnieren"
|
||||||
unsubscribe: "Abmelden"
|
unsubscribe: "Abmelden"
|
||||||
confirm_unsubscribe: "Abmeldung bestätigen"
|
confirm_unsubscribe: "Abmeldung bestätigen"
|
||||||
|
@ -429,7 +429,7 @@ module.exports = nativeDescription: "Deutsch (Deutschland)", englishDescription:
|
||||||
parent_email_sent: "Email gesendet!"
|
parent_email_sent: "Email gesendet!"
|
||||||
parent_email_title: "Wie lautet die Emailadresse deiner Eltern?"
|
parent_email_title: "Wie lautet die Emailadresse deiner Eltern?"
|
||||||
parents: "Für Eltern"
|
parents: "Für Eltern"
|
||||||
parents_title: "Liebe Eltern: Ihr kind erlernt das Programmieren. Wollen Sie es nicht dabei unterstützen?"
|
parents_title: "Liebe Eltern: Ihr Kind erlernt das Programmieren. Wollen Sie es nicht dabei unterstützen?"
|
||||||
parents_blurb1: "Ihr Kind hat __nLevels__ Level gemeistert und dabei Grundkenntnisse des Programmierens erlangt. Fördern Sie ihr Kind weiterhin, indem sie mit einem Abonnement weitere Herausforderungen freischalten."
|
parents_blurb1: "Ihr Kind hat __nLevels__ Level gemeistert und dabei Grundkenntnisse des Programmierens erlangt. Fördern Sie ihr Kind weiterhin, indem sie mit einem Abonnement weitere Herausforderungen freischalten."
|
||||||
parents_blurb1a: "Das Programmieren entwickelt sich zunehmend zu einem Grundwerkzeug, dass in immer mehr Berufen benötigt wird und ohne Zweifel sich im Leben als eine sehr nützliche Fähigkeit erweisen wird."
|
parents_blurb1a: "Das Programmieren entwickelt sich zunehmend zu einem Grundwerkzeug, dass in immer mehr Berufen benötigt wird und ohne Zweifel sich im Leben als eine sehr nützliche Fähigkeit erweisen wird."
|
||||||
parents_blurb2: "Für {{price}} im Monat, bekommt Ihr Kind jede Woche neue Herausforderungen sowie persönlichen Email Support von erfahrenen Programmierern."
|
parents_blurb2: "Für {{price}} im Monat, bekommt Ihr Kind jede Woche neue Herausforderungen sowie persönlichen Email Support von erfahrenen Programmierern."
|
||||||
|
@ -499,8 +499,8 @@ module.exports = nativeDescription: "Deutsch (Deutschland)", englishDescription:
|
||||||
skill_docs:
|
skill_docs:
|
||||||
writable: "beschreibbar" # Hover over "attack" in Your Skills while playing a level to see most of this
|
writable: "beschreibbar" # Hover over "attack" in Your Skills while playing a level to see most of this
|
||||||
read_only: "schreibgeschützt"
|
read_only: "schreibgeschützt"
|
||||||
# action: "Action"
|
action: "Aktion"
|
||||||
# spell: "Spell"
|
spell: "Zaubersprüche"
|
||||||
action_name: "Name"
|
action_name: "Name"
|
||||||
action_cooldown: "Benötigt"
|
action_cooldown: "Benötigt"
|
||||||
action_specific_cooldown: "Cooldown"
|
action_specific_cooldown: "Cooldown"
|
||||||
|
@ -582,9 +582,9 @@ module.exports = nativeDescription: "Deutsch (Deutschland)", englishDescription:
|
||||||
who_for_1: "Wir empfehlen CodeCombat Schülern im Alter von 9 Jahren und älter. Es werden keine Vorkenntnisse vorausgesetzt." # {change}
|
who_for_1: "Wir empfehlen CodeCombat Schülern im Alter von 9 Jahren und älter. Es werden keine Vorkenntnisse vorausgesetzt." # {change}
|
||||||
who_for_2: "Wir haben CodeCombat so gestalltet, dass es sowohl Jungen als auch Mädchen ansprechend finden." # {change}
|
who_for_2: "Wir haben CodeCombat so gestalltet, dass es sowohl Jungen als auch Mädchen ansprechend finden." # {change}
|
||||||
more_info_title: "Wo kann ich mehr Information finden?"
|
more_info_title: "Wo kann ich mehr Information finden?"
|
||||||
# more_info_1: "Our"
|
more_info_1: "Unser"
|
||||||
# more_info_2: "teachers forum"
|
more_info_2: "Lehrerforum"
|
||||||
# more_info_3: "is a good place to connect with fellow educators who are using CodeCombat."
|
more_info_3: "ist eine gute Anlaufstelle, um mit anderen Lehrer in Kontakt zu treten, die CodeCombat benutzen."
|
||||||
|
|
||||||
teachers_survey:
|
teachers_survey:
|
||||||
title: "Lehrerumfrage"
|
title: "Lehrerumfrage"
|
||||||
|
@ -606,16 +606,16 @@ module.exports = nativeDescription: "Deutsch (Deutschland)", englishDescription:
|
||||||
# description_2: "teachers"
|
# description_2: "teachers"
|
||||||
# description_3: "page."
|
# description_3: "page."
|
||||||
# description_4: "Please fill out this quick survey and we’ll email you setup instructions."
|
# description_4: "Please fill out this quick survey and we’ll email you setup instructions."
|
||||||
# email: "Email Address"
|
email: "Email Addresse"
|
||||||
# school: "Name of School"
|
school: "Name der Schule"
|
||||||
# location: "Name of City"
|
location: "Name der Stadt"
|
||||||
# age_students: "How old are your students?"
|
age_students: "Wie alt sind ihre Schüler?"
|
||||||
# under: "Under"
|
under: "Unter"
|
||||||
# other: "Other:"
|
other: "Andere:"
|
||||||
# amount_students: "How many students do you teach?"
|
amount_students: "Wieviele Schüler unterrichten Sie?"
|
||||||
# hear_about: "How did you hear about CodeCombat?"
|
hear_about: "Wie sind Sie auf CodeCombat aufmerksam geworden?"
|
||||||
# fill_fields: "Please fill out all fields."
|
fill_fields: "Bitte füllen Sie alle Felder aus."
|
||||||
# thanks: "Thanks! We'll send you setup instructions shortly."
|
thanks: "Danke! Wir werden ihnen bald Setup-Instruktionen zuschicken."
|
||||||
|
|
||||||
versions:
|
versions:
|
||||||
save_version_title: "Neue Version speichern"
|
save_version_title: "Neue Version speichern"
|
||||||
|
@ -660,7 +660,7 @@ module.exports = nativeDescription: "Deutsch (Deutschland)", englishDescription:
|
||||||
password_tab: "Passwort"
|
password_tab: "Passwort"
|
||||||
emails_tab: "Emails"
|
emails_tab: "Emails"
|
||||||
admin: "Admin"
|
admin: "Admin"
|
||||||
# manage_subscription: "Click here to manage your subscription."
|
manage_subscription: "Klicken Sie hier um ihr Abo zu verwalten."
|
||||||
new_password: "Neues Passwort"
|
new_password: "Neues Passwort"
|
||||||
new_password_verify: "Passwort verifizieren"
|
new_password_verify: "Passwort verifizieren"
|
||||||
type_in_email: "Email eingeben um das Löschen des Accounts zu bestätigen"
|
type_in_email: "Email eingeben um das Löschen des Accounts zu bestätigen"
|
||||||
|
@ -691,7 +691,7 @@ module.exports = nativeDescription: "Deutsch (Deutschland)", englishDescription:
|
||||||
keyboard_shortcuts: "Tastaturkürzel"
|
keyboard_shortcuts: "Tastaturkürzel"
|
||||||
space: "Leertaste"
|
space: "Leertaste"
|
||||||
enter: "Eingabetaste"
|
enter: "Eingabetaste"
|
||||||
# press_enter: "press enter"
|
press_enter: "Drück die Eingabetaste"
|
||||||
escape: "Escape"
|
escape: "Escape"
|
||||||
shift: "Umschalttaste"
|
shift: "Umschalttaste"
|
||||||
run_code: "Starte aktuellen Code."
|
run_code: "Starte aktuellen Code."
|
||||||
|
@ -718,7 +718,7 @@ module.exports = nativeDescription: "Deutsch (Deutschland)", englishDescription:
|
||||||
article_editor_prefix: "Hast du einen Fehler in unseren Dokus gefunden? Willst du Anleitungen für deine Kreationen erstellen? Schau dir den"
|
article_editor_prefix: "Hast du einen Fehler in unseren Dokus gefunden? Willst du Anleitungen für deine Kreationen erstellen? Schau dir den"
|
||||||
article_editor_suffix: "und hilf CodeCombat Spielern, das meiste aus ihrer Spielzeit herauszuholen."
|
article_editor_suffix: "und hilf CodeCombat Spielern, das meiste aus ihrer Spielzeit herauszuholen."
|
||||||
find_us: "Finde uns auf diesen Seiten"
|
find_us: "Finde uns auf diesen Seiten"
|
||||||
# social_github: "Check out all our code on GitHub"
|
social_github: "Schau dir all unseren Code auf GitHub an"
|
||||||
social_blog: "Lese den CodeCombat Blog auf Sett"
|
social_blog: "Lese den CodeCombat Blog auf Sett"
|
||||||
social_discource: "Schließe dich den Diskussionen in unserem Discourse Forum an"
|
social_discource: "Schließe dich den Diskussionen in unserem Discourse Forum an"
|
||||||
social_facebook: "Like CodeCombat auf Facebook"
|
social_facebook: "Like CodeCombat auf Facebook"
|
||||||
|
@ -727,51 +727,51 @@ module.exports = nativeDescription: "Deutsch (Deutschland)", englishDescription:
|
||||||
social_hipchat: "Chatte mit uns in unserem öffentlichen CodeCombat Slack Raum"
|
social_hipchat: "Chatte mit uns in unserem öffentlichen CodeCombat Slack Raum"
|
||||||
contribute_to_the_project: "Trage zu diesem Projekt bei"
|
contribute_to_the_project: "Trage zu diesem Projekt bei"
|
||||||
|
|
||||||
# clans:
|
clans:
|
||||||
# clan: "Clan"
|
clan: "Clan"
|
||||||
# clans: "Clans"
|
clans: "Clans"
|
||||||
# new_name: "New clan name"
|
new_name: "Neuer Clanname"
|
||||||
# new_description: "New clan description"
|
new_description: "Neue Clanbeschreibung"
|
||||||
# make_private: "Make clan private"
|
make_private: "Mach deinen Clan private"
|
||||||
# subs_only: "subscribers only"
|
subs_only: "Nur für Abonnenten"
|
||||||
# create_clan: "Create New Clan"
|
create_clan: "Erstelle einen neuen Clan"
|
||||||
# private_preview: "Preview"
|
private_preview: "Vorschau"
|
||||||
# private_clans: "Private Clans"
|
private_clans: "Private Clans"
|
||||||
# public_clans: "Public Clans"
|
public_clans: "Öffentliche Clans"
|
||||||
# my_clans: "My Clans"
|
my_clans: "Meine Clans"
|
||||||
# clan_name: "Clan Name"
|
clan_name: "Clanname"
|
||||||
# name: "Name"
|
name: "Name"
|
||||||
# chieftain: "Chieftain"
|
chieftain: "Häuptling"
|
||||||
# type: "Type"
|
# type: "Type"
|
||||||
# edit_clan_name: "Edit Clan Name"
|
edit_clan_name: "Clannamen bearbeiten"
|
||||||
# edit_clan_description: "Edit Clan Description"
|
edit_clan_description: "Clanbeschreibung bearbeiten"
|
||||||
# edit_name: "edit name"
|
edit_name: "Namen bearbeiten"
|
||||||
# edit_description: "edit description"
|
edit_description: "Beschreibung bearbeiten"
|
||||||
# private: "(private)"
|
private: "(privat)"
|
||||||
# summary: "Summary"
|
summary: "Zusammenfassung"
|
||||||
# average_level: "Average Level"
|
average_level: "Leveldurchschnitt"
|
||||||
# average_achievements: "Average Achievements"
|
average_achievements: "Errungenschaftsdurchschnitt"
|
||||||
# delete_clan: "Delete Clan"
|
delete_clan: "Clan löschen"
|
||||||
# leave_clan: "Leave Clan"
|
leave_clan: "Clan verlassen"
|
||||||
# join_clan: "Join Clan"
|
join_clan: "Clan beitreten"
|
||||||
# invite_1: "Invite:"
|
invite_1: "Einladen:"
|
||||||
# invite_2: "*Invite players to this Clan by sending them this link."
|
invite_2: "*Lade Spieler zu diesem Clan ein, indem du ihnen diesen Links sendest."
|
||||||
# members: "Members"
|
members: "Mitglieder"
|
||||||
# progress: "Progress"
|
progress: "Fortschritt"
|
||||||
# not_started_1: "not started"
|
not_started_1: "nicht gestartet"
|
||||||
# started_1: "started"
|
started_1: "gestartet"
|
||||||
# complete_1: "complete"
|
complete_1: "abgeschlossen"
|
||||||
# exp_levels: "Expand levels"
|
# exp_levels: "Expand levels"
|
||||||
# rem_hero: "Remove Hero"
|
rem_hero: "Held entfernen"
|
||||||
# status: "Status"
|
status: "Status"
|
||||||
# complete_2: "Complete"
|
complete_2: "Abgeschlossen"
|
||||||
# started_2: "Started"
|
started_2: "Gestartet"
|
||||||
# not_started_2: "Not Started"
|
not_started_2: "Nicht gestartet"
|
||||||
# view_solution: "Click to view solution."
|
view_solution: "Klicke um die Lösung zu sehen."
|
||||||
# view_attempt: "Click to view attempt."
|
# view_attempt: "Click to view attempt."
|
||||||
# latest_achievement: "Latest Achievement"
|
latest_achievement: "Letzte Errungenschaft"
|
||||||
# playtime: "Playtime"
|
playtime: "Spielzeit"
|
||||||
# last_played: "Last played"
|
last_played: "Zuletzt gespielt"
|
||||||
# leagues_explanation: "Play in a league against other clan members in these multiplayer arena instances."
|
# leagues_explanation: "Play in a league against other clan members in these multiplayer arena instances."
|
||||||
# track_concepts1: "Track concepts"
|
# track_concepts1: "Track concepts"
|
||||||
# track_concepts2a: "learned by each student"
|
# track_concepts2a: "learned by each student"
|
||||||
|
@ -1071,7 +1071,7 @@ module.exports = nativeDescription: "Deutsch (Deutschland)", englishDescription:
|
||||||
level_tab_thangs_all: "Alle"
|
level_tab_thangs_all: "Alle"
|
||||||
level_tab_thangs_conditions: "Startbedingungen"
|
level_tab_thangs_conditions: "Startbedingungen"
|
||||||
level_tab_thangs_add: "Thangs hinzufügen"
|
level_tab_thangs_add: "Thangs hinzufügen"
|
||||||
# level_tab_thangs_search: "Search thangs"
|
level_tab_thangs_search: "Thangs suchen"
|
||||||
add_components: "Kommentar hinzufügen"
|
add_components: "Kommentar hinzufügen"
|
||||||
component_configs: "Komponenten Konfiguration"
|
component_configs: "Komponenten Konfiguration"
|
||||||
config_thang: "Doppelklicke, um Thang zu konfigurieren"
|
config_thang: "Doppelklicke, um Thang zu konfigurieren"
|
||||||
|
@ -1274,7 +1274,7 @@ module.exports = nativeDescription: "Deutsch (Deutschland)", englishDescription:
|
||||||
no_achievements: "Noch keine Erfolge verdient."
|
no_achievements: "Noch keine Erfolge verdient."
|
||||||
favorite_prefix: "Lieblingssprache ist "
|
favorite_prefix: "Lieblingssprache ist "
|
||||||
favorite_postfix: "."
|
favorite_postfix: "."
|
||||||
# not_member_of_clans: "Not a member of any clans yet."
|
not_member_of_clans: "Noch kein Mitglied eines Clans."
|
||||||
|
|
||||||
achievements:
|
achievements:
|
||||||
last_earned: "Zuletzt erhalten"
|
last_earned: "Zuletzt erhalten"
|
||||||
|
@ -1354,7 +1354,7 @@ module.exports = nativeDescription: "Deutsch (Deutschland)", englishDescription:
|
||||||
bad_input: "Falsche Eingabe."
|
bad_input: "Falsche Eingabe."
|
||||||
server_error: "Server Fehler."
|
server_error: "Server Fehler."
|
||||||
unknown: "Unbekannter Fehler."
|
unknown: "Unbekannter Fehler."
|
||||||
# error: "ERROR"
|
error: "FEHLER"
|
||||||
|
|
||||||
resources:
|
resources:
|
||||||
sessions: "Sessions"
|
sessions: "Sessions"
|
||||||
|
@ -1396,7 +1396,7 @@ module.exports = nativeDescription: "Deutsch (Deutschland)", englishDescription:
|
||||||
user_remarks: "Benutzerkommentare"
|
user_remarks: "Benutzerkommentare"
|
||||||
versions: "Versionen"
|
versions: "Versionen"
|
||||||
items: "Gegenstände"
|
items: "Gegenstände"
|
||||||
# hero: "Hero"
|
hero: "Held"
|
||||||
heroes: "Helden"
|
heroes: "Helden"
|
||||||
achievement: "Achievement"
|
achievement: "Achievement"
|
||||||
clas: "CLAs"
|
clas: "CLAs"
|
||||||
|
@ -1406,46 +1406,46 @@ module.exports = nativeDescription: "Deutsch (Deutschland)", englishDescription:
|
||||||
campaigns: "Kampagne"
|
campaigns: "Kampagne"
|
||||||
poll: "Umfrage"
|
poll: "Umfrage"
|
||||||
user_polls_record: "Umfrageergebnisse"
|
user_polls_record: "Umfrageergebnisse"
|
||||||
# course: "Course"
|
course: "Kurs"
|
||||||
# courses: "Courses"
|
courses: "Kurse"
|
||||||
# course_instance: "Course Instance"
|
course_instance: "Kursinstanz"
|
||||||
# course_instances: "Course Instances"
|
course_instances: "Kursinstanzen"
|
||||||
# classroom: "Classroom"
|
classroom: "Klassenraum"
|
||||||
# classrooms: "Classrooms"
|
classrooms: "Klassenräume"
|
||||||
# clan: "Clan"
|
clan: "Clan"
|
||||||
# clans: "Clans"
|
clans: "Clans"
|
||||||
# members: "Members"
|
members: "Mitglieder"
|
||||||
# users: "Users"
|
users: "Benutzer"
|
||||||
|
|
||||||
# concepts:
|
concepts:
|
||||||
# advanced_strings: "Advanced Strings"
|
advanced_strings: "Erweiterte Strings"
|
||||||
# algorithms: "Algorithms"
|
algorithms: "Algorithmen"
|
||||||
# arguments: "Arguments"
|
arguments: "Argumente"
|
||||||
# arithmetic: "Arithmetic"
|
arithmetic: "Arithmetic"
|
||||||
# arrays: "Arrays"
|
arrays: "Arrays"
|
||||||
# basic_syntax: "Basic Syntax"
|
basic_syntax: "Grundlegende Syntax"
|
||||||
# boolean_logic: "Boolean Logic"
|
boolean_logic: "Boole'sche Logik"
|
||||||
# break_statements: "Break Statements"
|
break_statements: "Break Anweisungen"
|
||||||
# classes: "Classes"
|
classes: "Klassen"
|
||||||
# continue_statements: "Continue Statements"
|
continue_statements: "Continue Anweisungen"
|
||||||
# for_loops: "For Loops"
|
for_loops: "For Schleifen"
|
||||||
# functions: "Functions"
|
functions: "Funktionen"
|
||||||
# graphics: "Graphics"
|
graphics: "Graphiken"
|
||||||
# if_statements: "If Statements"
|
if_statements: "If Anweisungen"
|
||||||
# input_handling: "Input Handling"
|
input_handling: "Eingabebehandlung"
|
||||||
# math_operations: "Math Operations"
|
math_operations: "Mathematische Operationen"
|
||||||
# object_literals: "Object Literals"
|
# object_literals: "Object Literals"
|
||||||
# parameters: "Parameters"
|
parameters: "Parameter"
|
||||||
# strings: "Strings"
|
strings: "Strings"
|
||||||
# variables: "Variables"
|
variables: "Variablen"
|
||||||
# vectors: "Vectors"
|
vectors: "Vektoren"
|
||||||
# while_loops: "Loops"
|
while_loops: "while-Schleifen"
|
||||||
# recursion: "Recursion"
|
recursion: "Rekursionen"
|
||||||
|
|
||||||
delta:
|
delta:
|
||||||
added: "hinzugefügt"
|
added: "hinzugefügt"
|
||||||
modified: "modifiziert"
|
modified: "modifiziert"
|
||||||
# not_modified: "Not Modified"
|
not_modified: "nicht modifiziert"
|
||||||
deleted: "gelöscht"
|
deleted: "gelöscht"
|
||||||
moved_index: "Verschobener Index"
|
moved_index: "Verschobener Index"
|
||||||
text_diff: "Text Diff"
|
text_diff: "Text Diff"
|
||||||
|
|
|
@ -14,6 +14,66 @@
|
||||||
for_developers: "For Developers" # Not currently shown on home page.
|
for_developers: "For Developers" # Not currently shown on home page.
|
||||||
or_ipad: "Or download for iPad"
|
or_ipad: "Or download for iPad"
|
||||||
|
|
||||||
|
new_home:
|
||||||
|
slogan: "The most engaging game for learning programming."
|
||||||
|
classroom_edition: "Classroom Edition:"
|
||||||
|
learn_to_code: "Learn to code:"
|
||||||
|
teacher: "Teacher"
|
||||||
|
student: "Student"
|
||||||
|
play_now: "Play Now"
|
||||||
|
im_a_teacher: "I'm a Teacher"
|
||||||
|
im_a_student: "I'm a Student"
|
||||||
|
learn_more: "Learn more"
|
||||||
|
classroom_in_a_box: "A classroom in-a-box for teaching computer science."
|
||||||
|
codecombat_is: "CodeCombat is a platform for students to learn computer science while playing through a real game."
|
||||||
|
our_courses: "Our courses have been specifically playtested to excel in a classroom setting, even by teachers with little to no prior programming experience."
|
||||||
|
designed_with: "Designed with teachers in mind"
|
||||||
|
real_code: "Real, typed code"
|
||||||
|
from_the_first_level: "from the first level"
|
||||||
|
getting_students: "Getting students to typed code as quickly as possible is critical to learning programming syntax and proper structure."
|
||||||
|
educator_resources: "Educator resources"
|
||||||
|
course_guides: "and course guides"
|
||||||
|
teaching_computer_science: "Teaching computer science does not require a costly degree, because we provide tools to support educators of all backgrounds."
|
||||||
|
accessible_to: "Accessible to"
|
||||||
|
everyone: "everyone"
|
||||||
|
democratizing: "Democratizing the process of learning coding is at the core of our philosophy. Everyone should be able to learn to code."
|
||||||
|
forgot_learning: "I think they actually forgot that they were actually learning something."
|
||||||
|
wanted_to_do: " Coding is something I've always wanted to do, and I never thought I would be able to learn it in school."
|
||||||
|
why_games: "Why is learning through games important?"
|
||||||
|
games_reward: "Games reward the productive struggle."
|
||||||
|
encourage: "Gaming is a medium that encourages interaction, discovery, and trial-and-error. A good game challenges the player to master skills over time, which is the same critical process students go through as they learn."
|
||||||
|
excel: "Games excel at rewarding"
|
||||||
|
struggle: "productive struggle"
|
||||||
|
kind_of_struggle: "the kind of struggle that results in learning that’s engaging and"
|
||||||
|
motivating: "motivating"
|
||||||
|
not_tedious: "not tedious."
|
||||||
|
gaming_is_good: "Studies suggest gaming is good for children’s brains. (it’s true!)"
|
||||||
|
game_based: "When game-based learning systems are"
|
||||||
|
compared: "compared"
|
||||||
|
conventional: "against conventional assessment methods, the difference is clear: games are better at helping students retain knowledge, concentrate and"
|
||||||
|
perform_at_higher_level: "perform at a higher level of achievement"
|
||||||
|
feedback: "Games also provide real-time feedback that allows students to adjust their solution path and understand concepts more holistically, instead of being limited to just “correct” or “incorrect” answers."
|
||||||
|
real_game: "A real game, played with real coding."
|
||||||
|
great_game: "A great game is more than just badges and achievements - it’s about a player’s journey, well-designed puzzles, and the ability to tackle challenges with agency and confidence."
|
||||||
|
agency: "CodeCombat is a game that gives players that agency and confidence with our robust typed code engine, which helps beginner and advanced students alike write proper, valid code."
|
||||||
|
curious: "Curious? Request a demo and we'll show you the ropes"
|
||||||
|
create_class: "Or create a class and see it for yourself!"
|
||||||
|
request_demo: "Request a Demo"
|
||||||
|
create_a_class: "Create a Class"
|
||||||
|
have_an_account: "Already have an account?"
|
||||||
|
logged_in_as: "You are currently logged in as"
|
||||||
|
view_my_classes: "View my classes"
|
||||||
|
computer_science: "Computer science courses for all ages"
|
||||||
|
show_me_lesson_time: "Show me lesson time estimates for:"
|
||||||
|
curriculum: "Total curriculum hours:"
|
||||||
|
ffa: "Free for all students"
|
||||||
|
lesson_time: "Lesson time:"
|
||||||
|
coming_soon: "Coming soon!"
|
||||||
|
courses_available_in: "Courses are available in JavaScript, Python, and Java (coming soon!)"
|
||||||
|
boast: "Boasts riddles that are complex enough to fascinate gamers and coders alike."
|
||||||
|
winning: "A winning combination of RPG gameplay and programming homework that pulls off making kid-friendly education legitimately enjoyable."
|
||||||
|
run_class:"Everything you need to run a computer science class in your school today, no CS background required."
|
||||||
|
|
||||||
nav:
|
nav:
|
||||||
play: "Levels" # The top nav bar entry where players choose which levels to play
|
play: "Levels" # The top nav bar entry where players choose which levels to play
|
||||||
community: "Community"
|
community: "Community"
|
||||||
|
@ -348,7 +408,10 @@
|
||||||
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: "Before you start coding, you can always plan with a sheet of paper and a pen."
|
||||||
tip_solve_then_write: "First, solve the problem. Then, write the code. - John Johnson"
|
tip_solve_then_write: "First, solve the problem. Then, write the code. - John Johnson"
|
||||||
|
tip_compiler_ignores_comments: "Sometimes I think that the compiler ignores my comments."
|
||||||
|
tip_understand_recursion: "The only way to understand recursion is to understand recursion."
|
||||||
|
tip_life_and_polymorphism: "Open Source is like a totally polymorphic heterogeneous structure: All types are welcome."
|
||||||
|
|
||||||
game_menu:
|
game_menu:
|
||||||
inventory_tab: "Inventory"
|
inventory_tab: "Inventory"
|
||||||
save_load_tab: "Save/Load"
|
save_load_tab: "Save/Load"
|
||||||
|
@ -554,8 +617,8 @@
|
||||||
careers_link: "Careers"
|
careers_link: "Careers"
|
||||||
press_link: "Press"
|
press_link: "Press"
|
||||||
mission_title: "Our mission: make programming accessible to every student on Earth."
|
mission_title: "Our mission: make programming accessible to every student on Earth."
|
||||||
mission_description_1: "Programming is magic. It's the ability to create things from pure imagination. We started CodeCombat to give learners the feeling of wizardly power at their fingertips by using typed code."
|
mission_description_1: "<strong>Programming is magic</strong>. It's the ability to create things from pure imagination. We started CodeCombat to give learners the feeling of wizardly power at their fingertips by using <strong>typed code</strong>." # {change}
|
||||||
mission_description_2: "As it turns out, that enables them to learn faster too. WAY faster. It's like having a conversation instead of reading a manual. We want to bring that conversation to every school and to every student, because everyone should have the chance to learn the magic of programming."
|
mission_description_2: "As it turns out, that enables them to learn faster too. WAY faster. It's like having a conversation instead of reading a manual. We want to bring that conversation to every school and to <strong>every student</strong>, because everyone should have the chance to learn the magic of programming." # {change}
|
||||||
team_title: "Meet the CodeCombat team"
|
team_title: "Meet the CodeCombat team"
|
||||||
team_values: "We value open and respectful dialog, where the best idea wins. Our decisions are grounded in customer research and our process is focused on delivering tangible results for them. Everyone is hands-on, from our CEO to our Github contributors, because we value growth and learning in our team."
|
team_values: "We value open and respectful dialog, where the best idea wins. Our decisions are grounded in customer research and our process is focused on delivering tangible results for them. Everyone is hands-on, from our CEO to our Github contributors, because we value growth and learning in our team."
|
||||||
nick_title: "Cofounder, CEO"
|
nick_title: "Cofounder, CEO"
|
||||||
|
|
|
@ -4,7 +4,7 @@ module.exports = nativeDescription: "magyar", englishDescription: "Hungarian", t
|
||||||
no_ie: "A CodeCombat nem támogatja az Internet Explorer 8, vagy korábbi verzióit. Bocsi!" # Warning that only shows up in IE8 and older
|
no_ie: "A CodeCombat nem támogatja az Internet Explorer 8, vagy korábbi verzióit. Bocsi!" # Warning that only shows up in IE8 and older
|
||||||
no_mobile: "A CodeCombat nem mobil eszközökre lett tervezve. Valószínűleg nem működik helyesen." # Warning that shows up on mobile devices
|
no_mobile: "A CodeCombat nem mobil eszközökre lett tervezve. Valószínűleg nem működik helyesen." # Warning that shows up on mobile devices
|
||||||
play: "Játssz!" # The big play button that opens up the campaign view.
|
play: "Játssz!" # 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: "Játssz a kampányban!" # Shows up under big play button if you only play /courses
|
||||||
old_browser: "Hohó, a böngésződ már túl régi ahhoz, hogy a CodeCombat futhasson rajta. Bocsi!" # Warning that shows up on really old Firefox/Chrome/Safari
|
old_browser: "Hohó, a böngésződ már túl régi ahhoz, hogy a CodeCombat futhasson rajta. Bocsi!" # Warning that shows up on really old Firefox/Chrome/Safari
|
||||||
old_browser_suffix: "Megpróbálhatod éppen, da valószínűleg nem fog működni.."
|
old_browser_suffix: "Megpróbálhatod éppen, da valószínűleg nem fog működni.."
|
||||||
ipad_browser: "Rossz hír. CodeCombat nem fut iPadon böngészőben. Jó hír: a hivatalos iPad applikációnk csak az Apple jóváhagyására vár."
|
ipad_browser: "Rossz hír. CodeCombat nem fut iPadon böngészőben. Jó hír: a hivatalos iPad applikációnk csak az Apple jóváhagyására vár."
|
||||||
|
@ -17,7 +17,7 @@ module.exports = nativeDescription: "magyar", englishDescription: "Hungarian", t
|
||||||
nav:
|
nav:
|
||||||
play: "Játék" # The top nav bar entry where players choose which levels to play
|
play: "Játék" # The top nav bar entry where players choose which levels to play
|
||||||
community: "Közösség"
|
community: "Közösség"
|
||||||
# courses: "Courses"
|
courses: "Kurzusok"
|
||||||
editor: "Szerkesztő"
|
editor: "Szerkesztő"
|
||||||
blog: "Blog"
|
blog: "Blog"
|
||||||
forum: "Fórum"
|
forum: "Fórum"
|
||||||
|
@ -33,11 +33,11 @@ module.exports = nativeDescription: "magyar", englishDescription: "Hungarian", t
|
||||||
contact: "Kapcsolat"
|
contact: "Kapcsolat"
|
||||||
twitter_follow: "Követés"
|
twitter_follow: "Követés"
|
||||||
teachers: "Tanárok"
|
teachers: "Tanárok"
|
||||||
# careers: "Careers"
|
careers: "Karier"
|
||||||
|
|
||||||
modal:
|
modal:
|
||||||
close: "Mégse"
|
close: "Mégse"
|
||||||
okay: "OK"
|
okay: "Oké"
|
||||||
|
|
||||||
not_found:
|
not_found:
|
||||||
page_not_found: "Az oldal nem található"
|
page_not_found: "Az oldal nem található"
|
||||||
|
@ -52,7 +52,7 @@ module.exports = nativeDescription: "magyar", englishDescription: "Hungarian", t
|
||||||
|
|
||||||
play:
|
play:
|
||||||
play_as: "Játssz mint" # Ladder page
|
play_as: "Játssz mint" # Ladder page
|
||||||
# compete: "Compete!" # Course details page
|
compete: "Mérkőzz!" # Course details page
|
||||||
spectate: "Néző" # Ladder page
|
spectate: "Néző" # Ladder page
|
||||||
players: "Játékosok" # Hover over a level on /play
|
players: "Játékosok" # Hover over a level on /play
|
||||||
hours_played: "Játékidő" # Hover over a level on /play
|
hours_played: "Játékidő" # Hover over a level on /play
|
||||||
|
@ -68,14 +68,14 @@ module.exports = nativeDescription: "magyar", englishDescription: "Hungarian", t
|
||||||
achievements: "Eredmények" # Tooltip on achievement list button from /play
|
achievements: "Eredmények" # Tooltip on achievement list button from /play
|
||||||
account: "Fiók" # Tooltip on account button from /play
|
account: "Fiók" # Tooltip on account button from /play
|
||||||
settings: "Beállítások" # Tooltip on settings button from /play
|
settings: "Beállítások" # Tooltip on settings button from /play
|
||||||
# poll: "Poll" # Tooltip on poll button from /play
|
poll: "Kérdőív" # Tooltip on poll button from /play
|
||||||
next: "Következő" # Go from choose hero to choose inventory before playing a level
|
next: "Következő" # Go from choose hero to choose inventory before playing a level
|
||||||
change_hero: "Hős váltás" # Go back from choose inventory to choose hero
|
change_hero: "Hős váltás" # Go back from choose inventory to choose hero
|
||||||
buy_gems: "Vásárolj Drágköveket"
|
buy_gems: "Vásárolj Drágköveket"
|
||||||
subscription_required: "Előfizetést igényel"
|
subscription_required: "Előfizetést igényel"
|
||||||
anonymous: "Anonímusz Játékos"
|
anonymous: "Anonímusz Játékos"
|
||||||
level_difficulty: "Nehézség: "
|
level_difficulty: "Nehézség: "
|
||||||
# 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: "Osztálytermi változat" # Choose a level in campaign version that you also can play in one of your courses
|
||||||
campaign_beginner: "Kezdő Kampány"
|
campaign_beginner: "Kezdő Kampány"
|
||||||
awaiting_levels_adventurer_prefix: "Minden héten öt új pályát teszünk elérhetővé." # {change}
|
awaiting_levels_adventurer_prefix: "Minden héten öt új pályát teszünk elérhetővé." # {change}
|
||||||
awaiting_levels_adventurer: "Jelentkezz fel mint Kalandor"
|
awaiting_levels_adventurer: "Jelentkezz fel mint Kalandor"
|
||||||
|
@ -114,9 +114,9 @@ module.exports = nativeDescription: "magyar", englishDescription: "Hungarian", t
|
||||||
log_in: "Belépés meglévő fiókkal"
|
log_in: "Belépés meglévő fiókkal"
|
||||||
required: "Csak akkor mehetsz arra, ha már bejelentkeztél."
|
required: "Csak akkor mehetsz arra, ha már bejelentkeztél."
|
||||||
login_switch: "Már van fiókod?"
|
login_switch: "Már van fiókod?"
|
||||||
# school_name: "School Name and City"
|
school_name: "Iskolád neve és városa"
|
||||||
# optional: "optional"
|
optional: "nem kötelező"
|
||||||
# school_name_placeholder: "Example High School, Springfield, IL"
|
school_name_placeholder: "Példa Suli, Abaszentfűzikeresztkút"
|
||||||
|
|
||||||
recover:
|
recover:
|
||||||
recover_account_title: "Meglévő fiók visszaállítása"
|
recover_account_title: "Meglévő fiók visszaállítása"
|
||||||
|
@ -152,7 +152,7 @@ module.exports = nativeDescription: "magyar", englishDescription: "Hungarian", t
|
||||||
unwatch: "Követés vége"
|
unwatch: "Követés vége"
|
||||||
submit_patch: "Kiegészítés bemutatása"
|
submit_patch: "Kiegészítés bemutatása"
|
||||||
submit_changes: "Változások véglegesítése"
|
submit_changes: "Változások véglegesítése"
|
||||||
# save_changes: "Save Changes"
|
save_changes: "Változások mentése"
|
||||||
|
|
||||||
general:
|
general:
|
||||||
and: "és"
|
and: "és"
|
||||||
|
@ -164,9 +164,9 @@ module.exports = nativeDescription: "magyar", englishDescription: "Hungarian", t
|
||||||
accepted: "Elfogadva"
|
accepted: "Elfogadva"
|
||||||
rejected: "Elutasítva"
|
rejected: "Elutasítva"
|
||||||
withdrawn: "Visszavon"
|
withdrawn: "Visszavon"
|
||||||
# accept: "Accept"
|
accept: "Eldogad"
|
||||||
# reject: "Reject"
|
reject: "Visszautasít"
|
||||||
# withdraw: "Withdraw"
|
withdraw: "Vissazvon"
|
||||||
submitter: "Beküldő"
|
submitter: "Beküldő"
|
||||||
submitted: "Beküldött"
|
submitted: "Beküldött"
|
||||||
commit_msg: "Üzenet feladása"
|
commit_msg: "Üzenet feladása"
|
||||||
|
@ -221,12 +221,12 @@ module.exports = nativeDescription: "magyar", englishDescription: "Hungarian", t
|
||||||
years: "évek"
|
years: "évek"
|
||||||
|
|
||||||
play_level:
|
play_level:
|
||||||
# completed_level: "Completed Level:"
|
completed_level: "Teljesített pálya:"
|
||||||
# course: "Course:"
|
# course: "Course:"
|
||||||
done: "Kész"
|
done: "Kész"
|
||||||
# next_level: "Next Level:"
|
next_level: "Következő pálya:"
|
||||||
# next_game: "Next game"
|
next_game: "Következő játék"
|
||||||
# show_menu: "Show game menu"
|
show_menu: "Játék Menü"
|
||||||
home: "Kezdőlap" # Not used any more, will be removed soon.
|
home: "Kezdőlap" # Not used any more, will be removed soon.
|
||||||
level: "Pálya" # Like "Level: Dungeons of Kithgard"
|
level: "Pálya" # Like "Level: Dungeons of Kithgard"
|
||||||
skip: "Ugrás"
|
skip: "Ugrás"
|
||||||
|
@ -256,14 +256,14 @@ module.exports = nativeDescription: "magyar", englishDescription: "Hungarian", t
|
||||||
victory_saving_progress: "Folyamat mentése"
|
victory_saving_progress: "Folyamat mentése"
|
||||||
victory_go_home: "Vissza a kezdőoldalra"
|
victory_go_home: "Vissza a kezdőoldalra"
|
||||||
victory_review: "Mondd el a véleményedet!"
|
victory_review: "Mondd el a véleményedet!"
|
||||||
# victory_review_placeholder: "How was the level?"
|
victory_review_placeholder: "Milyen volt a pálya?"
|
||||||
victory_hour_of_code_done: "Készen vagy?"
|
victory_hour_of_code_done: "Készen vagy?"
|
||||||
victory_hour_of_code_done_yes: "Igen, ez volt életem kódja!"
|
victory_hour_of_code_done_yes: "Igen, ez volt életem kódja!"
|
||||||
victory_experience_gained: "Szerzett tapasztalat"
|
victory_experience_gained: "Szerzett tapasztalat"
|
||||||
victory_gems_gained: "Szerzett Drágakövek"
|
victory_gems_gained: "Szerzett Drágakövek"
|
||||||
# victory_new_item: "New Item"
|
victory_new_item: "Új tárgy"
|
||||||
# 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: "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_become_a_viking: "Become a Viking"
|
victory_become_a_viking: "Legyél Viking"
|
||||||
guide_title: "Útmutató"
|
guide_title: "Útmutató"
|
||||||
tome_cast_button_run: "Futtatás"
|
tome_cast_button_run: "Futtatás"
|
||||||
tome_cast_button_running: "Futás..."
|
tome_cast_button_running: "Futás..."
|
||||||
|
@ -285,11 +285,11 @@ module.exports = nativeDescription: "magyar", englishDescription: "Hungarian", t
|
||||||
time_current: "Most:"
|
time_current: "Most:"
|
||||||
time_total: "Maximum:"
|
time_total: "Maximum:"
|
||||||
time_goto: "Menj"
|
time_goto: "Menj"
|
||||||
# non_user_code_problem_title: "Unable to Load Level"
|
non_user_code_problem_title: "Nem sikerült betölteni a pályát"
|
||||||
# infinite_loop_title: "Infinite Loop Detected"
|
infinite_loop_title: "Végtelen ciklust észleltünk"
|
||||||
# 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: "A kezdeti kód, ami a világot építi fel, nem fejeződött be. Valószínűleg vagy nagyon lassú, vagy végtelen ciklust tartalmaz. Esetleg hibát tartalmaz. Megpróbálkozhatsz a kód újrafuttatásával, vagy állítsd vissza a kódot a kezdő állapotba. Ha ez sem segít, kérlek tudasd velünk!"
|
||||||
# check_dev_console: "You can also open the developer console to see what might be going wrong."
|
check_dev_console: "Továbbá megnyithatod a böngésző konzolját is (developer console), hogy lásd mi a hiba."
|
||||||
# check_dev_console_link: "(instructions)"
|
check_dev_console_link: "(útmatató)"
|
||||||
infinite_loop_try_again: "Próbáld meg újra!"
|
infinite_loop_try_again: "Próbáld meg újra!"
|
||||||
infinite_loop_reset_level: "Pálya újrakezdés"
|
infinite_loop_reset_level: "Pálya újrakezdés"
|
||||||
infinite_loop_comment_out: "Tegye a kódom kommentárba"
|
infinite_loop_comment_out: "Tegye a kódom kommentárba"
|
||||||
|
@ -297,7 +297,7 @@ module.exports = nativeDescription: "magyar", englishDescription: "Hungarian", t
|
||||||
tip_scrub_shortcut: "Ctrl+[ és Ctrl+] visszatekerés és gyors-előre." # {change}
|
tip_scrub_shortcut: "Ctrl+[ és Ctrl+] visszatekerés és gyors-előre." # {change}
|
||||||
tip_guide_exists: "Hasznos információkért kattints az oldal tetején az útmutatóra.."
|
tip_guide_exists: "Hasznos információkért kattints az oldal tetején az útmutatóra.."
|
||||||
tip_open_source: "A CodeCombat 100%-osan nyitott forráskódú."
|
tip_open_source: "A CodeCombat 100%-osan nyitott forráskódú."
|
||||||
# tip_tell_friends: "Enjoying CodeCombat? Tell your friends about us!"
|
tip_tell_friends: "Élvezed a CodeCombat-ot? Mesélj rólunk a barátaidnak!"
|
||||||
tip_beta_launch: "CodeCombat Béta teszt 2013 Októberétől elérhető."
|
tip_beta_launch: "CodeCombat Béta teszt 2013 Októberétől elérhető."
|
||||||
tip_think_solution: "A megoldásra gondolj, ne a problémára!"
|
tip_think_solution: "A megoldásra gondolj, ne a problémára!"
|
||||||
tip_theory_practice: "Elméletben nincs különbség elmélet és gyakorlat között. A gyakorlatban viszont van. - Yogi Berra"
|
tip_theory_practice: "Elméletben nincs különbség elmélet és gyakorlat között. A gyakorlatban viszont van. - Yogi Berra"
|
||||||
|
@ -326,7 +326,7 @@ module.exports = nativeDescription: "magyar", englishDescription: "Hungarian", t
|
||||||
tip_extrapolation: "Csak két fajta ember létezik. Az egyik, aki extrapolál hiányos adatokból..."
|
tip_extrapolation: "Csak két fajta ember létezik. Az egyik, aki extrapolál hiányos adatokból..."
|
||||||
tip_superpower: "A programozás képessége van legközelebb a szuperképességekhez."
|
tip_superpower: "A programozás képessége van legközelebb a szuperképességekhez."
|
||||||
tip_control_destiny: "A valódi nyílt forráskódban, jogodban áll irányítani a sorsod. - Linus Torvalds"
|
tip_control_destiny: "A valódi nyílt forráskódban, jogodban áll irányítani a sorsod. - Linus Torvalds"
|
||||||
# tip_no_code: "No code is faster than no code."
|
tip_no_code: "Semmilyen kód nem gyorsabb a semmi-kódnál."
|
||||||
tip_code_never_lies: "A kód sosem hazudik, a kommentek néha. — Ron Jeffries"
|
tip_code_never_lies: "A kód sosem hazudik, a kommentek néha. — Ron Jeffries"
|
||||||
tip_reusable_software: "Mielőtt a szoftware újrafelhasználható lesz, előbb használhatónak kell lennie."
|
tip_reusable_software: "Mielőtt a szoftware újrafelhasználható lesz, előbb használhatónak kell lennie."
|
||||||
tip_optimization_operator: "Minden nyelvben van egy optimalizáló operátor. A legtöbb nyelvben ez a ‘//’"
|
tip_optimization_operator: "Minden nyelvben van egy optimalizáló operátor. A legtöbb nyelvben ez a ‘//’"
|
||||||
|
@ -337,12 +337,12 @@ module.exports = nativeDescription: "magyar", englishDescription: "Hungarian", t
|
||||||
# tip_google: "Have a problem you can't solve? Google it!"
|
# tip_google: "Have a problem you can't solve? Google it!"
|
||||||
# tip_adding_evil: "Adding a pinch of evil."
|
# tip_adding_evil: "Adding a pinch of evil."
|
||||||
# tip_hate_computers: "That's the thing about people who think they hate computers. What they really hate is lousy programmers. - Larry Niven"
|
# tip_hate_computers: "That's the thing about people who think they hate computers. What they really hate is lousy programmers. - Larry Niven"
|
||||||
# tip_open_source_contribute: "You can help CodeCombat improve!"
|
tip_open_source_contribute: "Segíthetsz a CodeCombat fejlesztésében!"
|
||||||
# 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: "A legerősebb ellenfélnek is van gyengéje. - 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: "Mielőtt nekiállsz kódolni, mindig segítségül hívhatsz a tervezéshez papírt és ceruzát."
|
||||||
# tip_solve_then_write: "First, solve the problem. Then, write the code. - John Johnson"
|
tip_solve_then_write: "Először, old meg a problémát, aztán állj neki kódolni! - John Johnson"
|
||||||
|
|
||||||
game_menu:
|
game_menu:
|
||||||
inventory_tab: "Raktár"
|
inventory_tab: "Raktár"
|
||||||
|
@ -407,10 +407,10 @@ module.exports = nativeDescription: "magyar", englishDescription: "Hungarian", t
|
||||||
feature4: "<strong>{{gems}} bónusz drágakő</strong> minden hónapban!"
|
feature4: "<strong>{{gems}} bónusz drágakő</strong> minden hónapban!"
|
||||||
feature5: "Videó oktatóanyagok"
|
feature5: "Videó oktatóanyagok"
|
||||||
feature6: "Prémium email támogatás"
|
feature6: "Prémium email támogatás"
|
||||||
# feature7: "Private <strong>Clans</strong>"
|
feature7: "Privát <strong>Klánok</strong>"
|
||||||
free: "Ingyenes"
|
free: "Ingyenes"
|
||||||
month: "hónap"
|
month: "hónap"
|
||||||
# must_be_logged: "You must be logged in first. Please create an account or log in from the menu above."
|
must_be_logged: "Ehhez be kell jelentkezned. Kérlek regisztrálj, vagy lépj be a fenti menüben!"
|
||||||
subscribe_title: "Feliratkozás"
|
subscribe_title: "Feliratkozás"
|
||||||
unsubscribe: "Leiratkozás"
|
unsubscribe: "Leiratkozás"
|
||||||
confirm_unsubscribe: "Leiratkozás megerősítése"
|
confirm_unsubscribe: "Leiratkozás megerősítése"
|
||||||
|
@ -499,8 +499,8 @@ module.exports = nativeDescription: "magyar", englishDescription: "Hungarian", t
|
||||||
skill_docs:
|
skill_docs:
|
||||||
writable: "írható" # Hover over "attack" in Your Skills while playing a level to see most of this
|
writable: "írható" # Hover over "attack" in Your Skills while playing a level to see most of this
|
||||||
read_only: "csak olvasható"
|
read_only: "csak olvasható"
|
||||||
# action: "Action"
|
action: "Akció"
|
||||||
# spell: "Spell"
|
spell: "Varázsige"
|
||||||
action_name: "név"
|
action_name: "név"
|
||||||
action_cooldown: "Újratöltés"
|
action_cooldown: "Újratöltés"
|
||||||
action_specific_cooldown: "Speciális újratöltés"
|
action_specific_cooldown: "Speciális újratöltés"
|
||||||
|
@ -528,7 +528,7 @@ module.exports = nativeDescription: "magyar", englishDescription: "Hungarian", t
|
||||||
editor_config_title: "Szerkesztő Beállítások"
|
editor_config_title: "Szerkesztő Beállítások"
|
||||||
editor_config_keybindings_label: "Gyors-billentyűk"
|
editor_config_keybindings_label: "Gyors-billentyűk"
|
||||||
# editor_config_keybindings_default: "Default (Ace)"
|
# editor_config_keybindings_default: "Default (Ace)"
|
||||||
# editor_config_keybindings_description: "Adds additional shortcuts known from the common editors."
|
editor_config_keybindings_description: "Ismert szerkesztők billyentyű kombinációit használhatod."
|
||||||
editor_config_livecompletion_label: "Automatikus kód-kitöltés"
|
editor_config_livecompletion_label: "Automatikus kód-kitöltés"
|
||||||
editor_config_livecompletion_description: "Gépelés közben automatikus kód-kitöltés javaslatok megmutatása."
|
editor_config_livecompletion_description: "Gépelés közben automatikus kód-kitöltés javaslatok megmutatása."
|
||||||
editor_config_invisibles_label: "Láthatatlan karakterek"
|
editor_config_invisibles_label: "Láthatatlan karakterek"
|
||||||
|
@ -625,7 +625,7 @@ module.exports = nativeDescription: "magyar", englishDescription: "Hungarian", t
|
||||||
cla_url: "CLA"
|
cla_url: "CLA"
|
||||||
cla_suffix: "tartalmát."
|
cla_suffix: "tartalmát."
|
||||||
cla_agree: "ELFOGADOM"
|
cla_agree: "ELFOGADOM"
|
||||||
# owner_approve: "An owner will need to approve it before your changes will become visible."
|
owner_approve: "Minden tulajdonosnak jóvá kell hagynia, mielőtt a változtatásaid láthatóvá válnak."
|
||||||
|
|
||||||
contact:
|
contact:
|
||||||
contact_us: "Lépj kapcsolatba velünk"
|
contact_us: "Lépj kapcsolatba velünk"
|
||||||
|
@ -633,7 +633,7 @@ module.exports = nativeDescription: "magyar", englishDescription: "Hungarian", t
|
||||||
forum_prefix: "Ha publikus dologról van szó, megpróbálhatod a "
|
forum_prefix: "Ha publikus dologról van szó, megpróbálhatod a "
|
||||||
forum_page: "fórumban"
|
forum_page: "fórumban"
|
||||||
forum_suffix: " is."
|
forum_suffix: " is."
|
||||||
# faq_prefix: "There's also a"
|
faq_prefix: "Továbbá van egy"
|
||||||
faq: "GYIK"
|
faq: "GYIK"
|
||||||
subscribe_prefix: "Ha segítségre van szükséged egy pályán, "
|
subscribe_prefix: "Ha segítségre van szükséged egy pályán, "
|
||||||
subscribe: "vásárolj CodeCombat előfizetést"
|
subscribe: "vásárolj CodeCombat előfizetést"
|
||||||
|
@ -651,21 +651,21 @@ module.exports = nativeDescription: "magyar", englishDescription: "Hungarian", t
|
||||||
picture_tab: "Kép"
|
picture_tab: "Kép"
|
||||||
delete_account_tab: "Fiók törlése"
|
delete_account_tab: "Fiók törlése"
|
||||||
wrong_email: "Rossz email-cím"
|
wrong_email: "Rossz email-cím"
|
||||||
# wrong_password: "Wrong Password"
|
wrong_password: "Hibás jelszó"
|
||||||
upload_picture: "Tölts föl egy képet"
|
upload_picture: "Tölts föl egy képet"
|
||||||
delete_this_account: "Fiók végleges törlése"
|
delete_this_account: "Fiók végleges törlése"
|
||||||
# reset_progress_tab: "Reset All Progress"
|
reset_progress_tab: "Eredmények törlése"
|
||||||
# reset_your_progress: "Clear all your progress and start over"
|
reset_your_progress: "Törli az össze eredményed. Tiszta lappal kezdhetsz újra."
|
||||||
# god_mode: "God Mode"
|
# god_mode: "God Mode"
|
||||||
password_tab: "Jelszó"
|
password_tab: "Jelszó"
|
||||||
emails_tab: "Levelek"
|
emails_tab: "Levelek"
|
||||||
admin: "Adminisztrátor"
|
admin: "Adminisztrátor"
|
||||||
# manage_subscription: "Click here to manage your subscription."
|
manage_subscription: "Kattints ide az előfizetések kezeléséhez."
|
||||||
new_password: "Új jelszó"
|
new_password: "Új jelszó"
|
||||||
new_password_verify: "Új jelszó megismétlése"
|
new_password_verify: "Új jelszó megismétlése"
|
||||||
type_in_email: "Írd be az email-címed a törlés megerősítéséhez"
|
type_in_email: "Írd be az email-címed a törlés megerősítéséhez"
|
||||||
# type_in_email_progress: "Type in your email to confirm deleting your progress."
|
type_in_email_progress: "Add meg az email címedet az eredmények törléséhez!"
|
||||||
# type_in_password: "Also, type in your password."
|
type_in_password: "Továbbá add meg a jelszavad is!"
|
||||||
email_subscriptions: "Hírlevél feliratkozások"
|
email_subscriptions: "Hírlevél feliratkozások"
|
||||||
email_subscriptions_none: "Nem kérek email értesítéseket."
|
email_subscriptions_none: "Nem kérek email értesítéseket."
|
||||||
email_announcements: "Bejelentések"
|
email_announcements: "Bejelentések"
|
||||||
|
@ -691,7 +691,7 @@ module.exports = nativeDescription: "magyar", englishDescription: "Hungarian", t
|
||||||
keyboard_shortcuts: "Billentyűparancsok"
|
keyboard_shortcuts: "Billentyűparancsok"
|
||||||
space: "Szünet"
|
space: "Szünet"
|
||||||
enter: "Enter"
|
enter: "Enter"
|
||||||
# press_enter: "press enter"
|
press_enter: "Nyomj Entert"
|
||||||
escape: "Kilépés"
|
escape: "Kilépés"
|
||||||
# shift: "Shift"
|
# shift: "Shift"
|
||||||
run_code: "Aktuális kód futtatása."
|
run_code: "Aktuális kód futtatása."
|
||||||
|
@ -705,7 +705,7 @@ module.exports = nativeDescription: "magyar", englishDescription: "Hungarian", t
|
||||||
# toggle_debug: "Toggle debug display."
|
# toggle_debug: "Toggle debug display."
|
||||||
# toggle_grid: "Toggle grid overlay."
|
# toggle_grid: "Toggle grid overlay."
|
||||||
# toggle_pathfinding: "Toggle pathfinding overlay."
|
# toggle_pathfinding: "Toggle pathfinding overlay."
|
||||||
# beautify: "Beautify your code by standardizing its formatting."
|
beautify: "A kód kicsinosítása és szabványos formátumra hozása."
|
||||||
maximize_editor: "Maximális/Minimális kód szerkesztő."
|
maximize_editor: "Maximális/Minimális kód szerkesztő."
|
||||||
|
|
||||||
community:
|
community:
|
||||||
|
@ -1047,8 +1047,8 @@ module.exports = nativeDescription: "magyar", englishDescription: "Hungarian", t
|
||||||
# indoor: "Indoor"
|
# indoor: "Indoor"
|
||||||
desert: "Sivatag"
|
desert: "Sivatag"
|
||||||
grassy: "Füves"
|
grassy: "Füves"
|
||||||
# mountain: "Mountain"
|
mountain: "Hegyes"
|
||||||
# glacier: "Glacier"
|
glacier: "Gleccser"
|
||||||
small: "Kicsi"
|
small: "Kicsi"
|
||||||
large: "Nagy"
|
large: "Nagy"
|
||||||
fork_title: "Új Verzió villára vétele"
|
fork_title: "Új Verzió villára vétele"
|
||||||
|
@ -1228,7 +1228,7 @@ module.exports = nativeDescription: "magyar", englishDescription: "Hungarian", t
|
||||||
choose_opponent: "Válassz ellenfelet!"
|
choose_opponent: "Válassz ellenfelet!"
|
||||||
select_your_language: "Válassz nyelvet!"
|
select_your_language: "Válassz nyelvet!"
|
||||||
tutorial_play: "Gyakorlójáték"
|
tutorial_play: "Gyakorlójáték"
|
||||||
# tutorial_recommended: "Recommended if you've never played before"
|
tutorial_recommended: "Javasolt, ha még sohasem játszottál."
|
||||||
tutorial_skip: "Gyakorlójáték átugrása"
|
tutorial_skip: "Gyakorlójáték átugrása"
|
||||||
tutorial_not_sure: "Nem érted mi folyik?"
|
tutorial_not_sure: "Nem érted mi folyik?"
|
||||||
tutorial_play_first: "Játssz egy gyakorlójátékot először!"
|
tutorial_play_first: "Játssz egy gyakorlójátékot először!"
|
||||||
|
@ -1269,12 +1269,12 @@ module.exports = nativeDescription: "magyar", englishDescription: "Hungarian", t
|
||||||
status: "Státusz"
|
status: "Státusz"
|
||||||
status_completed: "Befejezett"
|
status_completed: "Befejezett"
|
||||||
status_unfinished: "Folyamatban lévő"
|
status_unfinished: "Folyamatban lévő"
|
||||||
# no_singleplayer: "No Singleplayer games played yet."
|
no_singleplayer: "Még nem játszott egyjátékos játékot."
|
||||||
# no_multiplayer: "No Multiplayer games played yet."
|
no_multiplayer: "Még nem játszott többjátékos játékot."
|
||||||
# no_achievements: "No Achievements earned yet."
|
# no_achievements: "No Achievements earned yet."
|
||||||
favorite_prefix: "A kedvenc nyelv "
|
favorite_prefix: "A kedvenc nyelv "
|
||||||
favorite_postfix: "."
|
favorite_postfix: "."
|
||||||
# not_member_of_clans: "Not a member of any clans yet."
|
not_member_of_clans: "Még egy Klánnak sem tagja."
|
||||||
|
|
||||||
achievements:
|
achievements:
|
||||||
last_earned: "Utolsónak megszerzett"
|
last_earned: "Utolsónak megszerzett"
|
||||||
|
@ -1342,18 +1342,18 @@ module.exports = nativeDescription: "magyar", englishDescription: "Hungarian", t
|
||||||
# you_can2: "purchase a prepaid code"
|
# you_can2: "purchase a prepaid code"
|
||||||
# you_can3: "that can be applied to your own account or given to others."
|
# you_can3: "that can be applied to your own account or given to others."
|
||||||
|
|
||||||
# loading_error:
|
loading_error:
|
||||||
# could_not_load: "Error loading from server"
|
# could_not_load: "Error loading from server"
|
||||||
# connection_failure: "Connection failed."
|
connection_failure: "Kapcsolat megszakadt."
|
||||||
# unauthorized: "You need to be signed in. Do you have cookies disabled?"
|
# unauthorized: "You need to be signed in. Do you have cookies disabled?"
|
||||||
# forbidden: "You do not have the permissions."
|
# forbidden: "You do not have the permissions."
|
||||||
# not_found: "Not found."
|
not_found: "Nem található."
|
||||||
# not_allowed: "Method not allowed."
|
# not_allowed: "Method not allowed."
|
||||||
# timeout: "Server timeout."
|
# timeout: "Server timeout."
|
||||||
# conflict: "Resource conflict."
|
# conflict: "Resource conflict."
|
||||||
# bad_input: "Bad input."
|
bad_input: "Hibás bemenet."
|
||||||
# server_error: "Server error."
|
server_error: "Szerver hiba."
|
||||||
# unknown: "Unknown error."
|
unknown: "Ismeretlen hiba."
|
||||||
# error: "ERROR"
|
# error: "ERROR"
|
||||||
|
|
||||||
# resources:
|
# resources:
|
||||||
|
@ -1417,45 +1417,45 @@ module.exports = nativeDescription: "magyar", englishDescription: "Hungarian", t
|
||||||
# members: "Members"
|
# members: "Members"
|
||||||
# users: "Users"
|
# users: "Users"
|
||||||
|
|
||||||
# concepts:
|
concepts:
|
||||||
# advanced_strings: "Advanced Strings"
|
# advanced_strings: "Advanced Strings"
|
||||||
# algorithms: "Algorithms"
|
algorithms: "Algoritmusok"
|
||||||
# arguments: "Arguments"
|
arguments: "Argumentumok"
|
||||||
# arithmetic: "Arithmetic"
|
# arithmetic: "Arithmetic"
|
||||||
# arrays: "Arrays"
|
arrays: "Tömbök"
|
||||||
# basic_syntax: "Basic Syntax"
|
basic_syntax: "Alap Szintaxis"
|
||||||
# boolean_logic: "Boolean Logic"
|
# boolean_logic: "Boolean Logic"
|
||||||
# break_statements: "Break Statements"
|
# break_statements: "Break Statements"
|
||||||
# classes: "Classes"
|
# classes: "Classes"
|
||||||
# continue_statements: "Continue Statements"
|
# continue_statements: "Continue Statements"
|
||||||
# for_loops: "For Loops"
|
# for_loops: "For Loops"
|
||||||
# functions: "Functions"
|
functions: "Függvények"
|
||||||
# graphics: "Graphics"
|
graphics: "Grafika"
|
||||||
# if_statements: "If Statements"
|
if_statements: "Feltételes elágazás"
|
||||||
# input_handling: "Input Handling"
|
# input_handling: "Input Handling"
|
||||||
# math_operations: "Math Operations"
|
math_operations: "Matematikai műveletek"
|
||||||
# object_literals: "Object Literals"
|
# object_literals: "Object Literals"
|
||||||
# parameters: "Parameters"
|
parameters: "Paraméterek"
|
||||||
# strings: "Strings"
|
strings: "Szövegek"
|
||||||
# variables: "Variables"
|
variables: "Változók"
|
||||||
# vectors: "Vectors"
|
# vectors: "Vectors"
|
||||||
# while_loops: "Loops"
|
# while_loops: "Loops"
|
||||||
# recursion: "Recursion"
|
recursion: "Rekurzió"
|
||||||
|
|
||||||
# delta:
|
delta:
|
||||||
# added: "Added"
|
added: "Hozzáadott"
|
||||||
# modified: "Modified"
|
modified: "Módosított"
|
||||||
# not_modified: "Not Modified"
|
not_modified: "Nem Módosított"
|
||||||
# deleted: "Deleted"
|
deleted: "Törölt"
|
||||||
# moved_index: "Moved Index"
|
# moved_index: "Moved Index"
|
||||||
# text_diff: "Text Diff"
|
text_diff: "Szöveg Különbség"
|
||||||
# merge_conflict_with: "MERGE CONFLICT WITH"
|
# merge_conflict_with: "MERGE CONFLICT WITH"
|
||||||
# no_changes: "No Changes"
|
no_changes: "Nincs Változás"
|
||||||
|
|
||||||
multiplayer:
|
multiplayer:
|
||||||
multiplayer_title: "Többjátékos beállítások" # We'll be changing this around significantly soon. Until then, it's not important to translate.
|
multiplayer_title: "Többjátékos beállítások" # We'll be changing this around significantly soon. Until then, it's not important to translate.
|
||||||
# multiplayer_toggle: "Enable multiplayer"
|
multiplayer_toggle: "Többjátékos mód engedélyezése"
|
||||||
# multiplayer_toggle_description: "Allow others to join your game."
|
multiplayer_toggle_description: "Megengeded másoknak, hogy a játékodhoz csatlakozzanak."
|
||||||
multiplayer_link_description: "Add oda ezt a linket bárkinek, és csatlakozhatnak hozzád."
|
multiplayer_link_description: "Add oda ezt a linket bárkinek, és csatlakozhatnak hozzád."
|
||||||
multiplayer_hint_label: "Tipp:"
|
multiplayer_hint_label: "Tipp:"
|
||||||
multiplayer_hint: " Kattints a linkre, és Ctrl+C-vel (vagy ⌘+C-vel) másold a vágólapra!"
|
multiplayer_hint: " Kattints a linkre, és Ctrl+C-vel (vagy ⌘+C-vel) másold a vágólapra!"
|
||||||
|
|
|
@ -4,7 +4,7 @@ module.exports = nativeDescription: "Italiano", englishDescription: "Italian", t
|
||||||
no_ie: "CodeCombat non supporta Internet Explorer 8 o browser precedenti. Ci dispiace!" # Warning that only shows up in IE8 and older
|
no_ie: "CodeCombat non supporta Internet Explorer 8 o browser precedenti. Ci dispiace!" # Warning that only shows up in IE8 and older
|
||||||
no_mobile: "CodeCombat non è stato progettato per dispositivi mobili e potrebbe non funzionare!" # Warning that shows up on mobile devices
|
no_mobile: "CodeCombat non è stato progettato per dispositivi mobili e potrebbe non funzionare!" # Warning that shows up on mobile devices
|
||||||
play: "Gioca" # The big play button that opens up the campaign view.
|
play: "Gioca" # 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: "Gioca la versione Campagna" # Shows up under big play button if you only play /courses
|
||||||
old_browser: "Accidenti, il tuo browser è troppo vecchio per giocare a CodeCombat. Ci spiace!" # Warning that shows up on really old Firefox/Chrome/Safari
|
old_browser: "Accidenti, il tuo browser è troppo vecchio per giocare a CodeCombat. Ci spiace!" # Warning that shows up on really old Firefox/Chrome/Safari
|
||||||
old_browser_suffix: "Puoi provare lo stesso, ma probabilmente non funzionerà."
|
old_browser_suffix: "Puoi provare lo stesso, ma probabilmente non funzionerà."
|
||||||
ipad_browser: "Cattiva notizia: CodeCombat non funziona nel browser di iPad. Buona notizia: la nostra app nativa per iPad è in attesa di approvazione da Apple."
|
ipad_browser: "Cattiva notizia: CodeCombat non funziona nel browser di iPad. Buona notizia: la nostra app nativa per iPad è in attesa di approvazione da Apple."
|
||||||
|
@ -114,7 +114,7 @@ module.exports = nativeDescription: "Italiano", englishDescription: "Italian", t
|
||||||
log_in: "Accedi con la password"
|
log_in: "Accedi con la password"
|
||||||
required: "Effettua l'accesso per proseguire."
|
required: "Effettua l'accesso per proseguire."
|
||||||
login_switch: "Hai già un account?"
|
login_switch: "Hai già un account?"
|
||||||
# school_name: "School Name and City"
|
school_name: "Nome scuola e città"
|
||||||
# optional: "optional"
|
# optional: "optional"
|
||||||
# school_name_placeholder: "Example High School, Springfield, IL"
|
# school_name_placeholder: "Example High School, Springfield, IL"
|
||||||
|
|
||||||
|
@ -736,7 +736,7 @@ module.exports = nativeDescription: "Italiano", englishDescription: "Italian", t
|
||||||
subs_only: "solo per abbonati"
|
subs_only: "solo per abbonati"
|
||||||
create_clan: "Crea nuovo clan"
|
create_clan: "Crea nuovo clan"
|
||||||
private_preview: "Anteprima"
|
private_preview: "Anteprima"
|
||||||
# private_clans: "Private Clans"
|
private_clans: "Clan privati"
|
||||||
public_clans: "Clan pubblici"
|
public_clans: "Clan pubblici"
|
||||||
my_clans: "I miei clan"
|
my_clans: "I miei clan"
|
||||||
clan_name: "Nome clan"
|
clan_name: "Nome clan"
|
||||||
|
@ -790,7 +790,7 @@ module.exports = nativeDescription: "Italiano", englishDescription: "Italian", t
|
||||||
courses:
|
courses:
|
||||||
course: "Corso"
|
course: "Corso"
|
||||||
courses: "corsi"
|
courses: "corsi"
|
||||||
# create_new_class: "Create New Class"
|
create_new_class: "Crea una nuova classe"
|
||||||
not_enrolled: "Non fai parte di questo corso."
|
not_enrolled: "Non fai parte di questo corso."
|
||||||
visit_pref: "Per favore, visita la pagina"
|
visit_pref: "Per favore, visita la pagina"
|
||||||
visit_suf: "per iscriverti."
|
visit_suf: "per iscriverti."
|
||||||
|
@ -879,8 +879,8 @@ module.exports = nativeDescription: "Italiano", englishDescription: "Italian", t
|
||||||
# keep_using: "Keep Using"
|
# keep_using: "Keep Using"
|
||||||
# switch_to: "Switch To"
|
# switch_to: "Switch To"
|
||||||
# greetings: "Greetings!"
|
# greetings: "Greetings!"
|
||||||
# learn_p: "Learn Python"
|
learn_p: "Apprendi Python"
|
||||||
# learn_j: "Learn JavaScript"
|
learn_j: "Apprendi JavaScript"
|
||||||
# language_cannot_change: "Language cannot be changed once students join a class."
|
# language_cannot_change: "Language cannot be changed once students join a class."
|
||||||
# back_classrooms: "Back to my classrooms"
|
# back_classrooms: "Back to my classrooms"
|
||||||
# back_courses: "Back to my courses"
|
# back_courses: "Back to my courses"
|
||||||
|
@ -890,29 +890,27 @@ module.exports = nativeDescription: "Italiano", englishDescription: "Italian", t
|
||||||
# remove_student: "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: "Maestro"
|
||||||
# complete: "Complete"
|
complete: "Completo"
|
||||||
# none: "None"
|
play_campaign_title: "Gioca la Campagna"
|
||||||
# save: "Save"
|
play_campaign_description: "Sei pronto per il passo successivo! Esplora centinaia di livelli impegnativi, impara abilità di programmazione avanzate, e competi nelle arene multigiocatore!"
|
||||||
# play_campaign_title: "Play the Campaign"
|
create_account_title: "Crea un account"
|
||||||
# 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_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"
|
||||||
# arena_soon_title: "Arena Coming Soon"
|
arena_soon_title: "L'arena è in arrivo"
|
||||||
# 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: "Ask your teacher to enroll you in the next course."
|
||||||
# next_course: "Next Course"
|
next_course: "Prossimo corso"
|
||||||
# coming_soon1: "Coming soon"
|
coming_soon1: "Prossimamente"
|
||||||
# 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: "Livelli disponibili"
|
||||||
# welcome_to_courses: "Adventurers, welcome to Courses!"
|
# welcome_to_courses: "Adventurers, welcome to Courses!"
|
||||||
# ready_to_play: "Ready to play?"
|
ready_to_play: "Pronto a giocare?"
|
||||||
# start_new_game: "Start New Game"
|
start_new_game: "Avvia un nuovo gioco"
|
||||||
# play_now_learn_header: "Play now to learn"
|
play_now_learn_header: "Gioca ora per imparare"
|
||||||
# play_now_learn_1: "basic syntax to control your character"
|
# play_now_learn_1: "basic syntax to control your character"
|
||||||
# play_now_learn_2: "while loops to solve pesky puzzles"
|
# play_now_learn_2: "while loops to solve pesky puzzles"
|
||||||
# play_now_learn_3: "strings & variables to customize actions"
|
# play_now_learn_3: "strings & variables to customize actions"
|
||||||
|
@ -925,7 +923,7 @@ module.exports = nativeDescription: "Italiano", englishDescription: "Italian", t
|
||||||
# ready_for_more_3: "Learn even more programming!"
|
# ready_for_more_3: "Learn even more programming!"
|
||||||
# saved_games: "Saved Games"
|
# saved_games: "Saved Games"
|
||||||
# hoc: "Hour of Code"
|
# hoc: "Hour of Code"
|
||||||
# my_classes: "My Classes"
|
my_classes: "Le mie Classi"
|
||||||
# class_added: "Class successfully added!"
|
# class_added: "Class successfully added!"
|
||||||
# view_class: "view class"
|
# view_class: "view class"
|
||||||
# view_levels: "view levels"
|
# view_levels: "view levels"
|
||||||
|
@ -934,15 +932,15 @@ module.exports = nativeDescription: "Italiano", englishDescription: "Italian", t
|
||||||
# enter_c_code: "<Enter Class Code>"
|
# enter_c_code: "<Enter Class Code>"
|
||||||
# join: "Join"
|
# join: "Join"
|
||||||
# joining: "Joining class"
|
# joining: "Joining class"
|
||||||
# course_complete: "Course Complete"
|
course_complete: "Corso completato"
|
||||||
# play_arena: "Play Arena"
|
# play_arena: "Play Arena"
|
||||||
# start: "Start"
|
start: "Avvia"
|
||||||
# last_level: "Last Level"
|
last_level: "Ultimo Livello"
|
||||||
# welcome_to_hoc: "Adventurers, welcome to our Hour of Code!"
|
# welcome_to_hoc: "Adventurers, welcome to our Hour of Code!"
|
||||||
# logged_in_as: "Logged in as:"
|
# logged_in_as: "Logged in as:"
|
||||||
# not_you: "Not you?"
|
# not_you: "Not you?"
|
||||||
# welcome_back: "Hi adventurer, welcome back!"
|
welcome_back: "Salve avventuriero, bentornato!"
|
||||||
# continue_playing: "Continue Playing"
|
continue_playing: "Continua a giocare"
|
||||||
# more_options: "More options:"
|
# more_options: "More options:"
|
||||||
# option1_header: "Option 1: Invite students via email"
|
# option1_header: "Option 1: Invite students via 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."
|
||||||
|
|
|
@ -4,7 +4,7 @@ module.exports = nativeDescription: "日本語", englishDescription: "Japanese",
|
||||||
no_ie: "大変申し訳ありませんが、ご利用のブラウザ(IE8以下)はサポートされていません。(ChromeやFirefoxをご利用ください)" # Warning that only shows up in IE8 and older
|
no_ie: "大変申し訳ありませんが、ご利用のブラウザ(IE8以下)はサポートされていません。(ChromeやFirefoxをご利用ください)" # 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: "ゲーム<br>スタート" # The big play button that opens up the campaign view.
|
play: "ゲーム<br>スタート" # 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 の承認待ちとなっています。"
|
||||||
|
@ -33,7 +33,7 @@ module.exports = nativeDescription: "日本語", englishDescription: "Japanese",
|
||||||
contact: "お問い合わせ"
|
contact: "お問い合わせ"
|
||||||
twitter_follow: "フォロー"
|
twitter_follow: "フォロー"
|
||||||
teachers: "教育関係者"
|
teachers: "教育関係者"
|
||||||
# careers: "Careers"
|
careers: "経歴"
|
||||||
|
|
||||||
modal:
|
modal:
|
||||||
close: "閉じる"
|
close: "閉じる"
|
||||||
|
@ -1091,17 +1091,17 @@ module.exports = nativeDescription: "日本語", englishDescription: "Japanese",
|
||||||
level_component_config_schema: "スキーマの設定"
|
level_component_config_schema: "スキーマの設定"
|
||||||
level_component_settings: "設定"
|
level_component_settings: "設定"
|
||||||
level_system_edit_title: "システムの編集"
|
level_system_edit_title: "システムの編集"
|
||||||
# create_system_title: "Create New System"
|
create_system_title: "新しいシステムの作成"
|
||||||
# new_component_title: "Create New Component"
|
new_component_title: "新しい部品の作成"
|
||||||
# new_component_field_system: "System"
|
new_component_field_system: "システム"
|
||||||
# new_article_title: "Create a New Article"
|
new_article_title: "新しい記事の作成"
|
||||||
# new_thang_title: "Create a New Thang Type"
|
new_thang_title: "新しいサングの型の作成"
|
||||||
# new_level_title: "Create a New Level"
|
new_level_title: "新しいレベルの作成"
|
||||||
# new_article_title_login: "Log In to Create a New Article"
|
new_article_title_login: "ログインして新しい記事の作成"
|
||||||
# new_thang_title_login: "Log In to Create a New Thang Type"
|
new_thang_title_login: "ログインして新しいサングの型の作成"
|
||||||
# new_level_title_login: "Log In to Create a New Level"
|
new_level_title_login: "ログインして新しいレベルの作成"
|
||||||
# new_achievement_title: "Create a New Achievement"
|
new_achievement_title: "新しい実績の作成"
|
||||||
# new_achievement_title_login: "Log In to Create a New Achievement"
|
new_achievement_title_login: "ログインして新しい実績の作成"
|
||||||
# new_poll_title: "Create a New Poll"
|
# new_poll_title: "Create a New Poll"
|
||||||
# new_poll_title_login: "Log In to Create a New Poll"
|
# new_poll_title_login: "Log In to Create a New Poll"
|
||||||
# article_search_title: "Search Articles Here"
|
# article_search_title: "Search Articles Here"
|
||||||
|
@ -1454,8 +1454,8 @@ module.exports = nativeDescription: "日本語", englishDescription: "Japanese",
|
||||||
|
|
||||||
multiplayer:
|
multiplayer:
|
||||||
multiplayer_title: "マルチプレイ設定" # We'll be changing this around significantly soon. Until then, it's not important to translate.
|
multiplayer_title: "マルチプレイ設定" # We'll be changing this around significantly soon. Until then, it's not important to translate.
|
||||||
# multiplayer_toggle: "Enable multiplayer"
|
multiplayer_toggle: "マルチプレーヤーを有効化"
|
||||||
# multiplayer_toggle_description: "Allow others to join your game."
|
multiplayer_toggle_description: "他のユーザーがゲームに参加することを許可"
|
||||||
multiplayer_link_description: "このURLを一緒にプレイしたい人に教えてください。"
|
multiplayer_link_description: "このURLを一緒にプレイしたい人に教えてください。"
|
||||||
multiplayer_hint_label: "ヒント:"
|
multiplayer_hint_label: "ヒント:"
|
||||||
multiplayer_hint: " リンクを選択後、 ⌘-C(MacOS) or Ctrl-C(Windows) でリンクをコピーできます。"
|
multiplayer_hint: " リンクを選択後、 ⌘-C(MacOS) or Ctrl-C(Windows) でリンクをコピーできます。"
|
||||||
|
|
|
@ -135,11 +135,12 @@ module.exports = class User extends CocoModel
|
||||||
@announcesActionAudioGroup
|
@announcesActionAudioGroup
|
||||||
|
|
||||||
getHomepageGroup: ->
|
getHomepageGroup: ->
|
||||||
return 'home-with-note' unless _.string.startsWith(me.get('preferredLanguage', true) or 'en-US', 'en')
|
# Only testing on en-US so localization issues are not a factor
|
||||||
|
return 'new-home-student' unless _.string.startsWith(me.get('preferredLanguage', true) or 'en-US', 'en')
|
||||||
return @homepageGroup if @homepageGroup
|
return @homepageGroup if @homepageGroup
|
||||||
group = me.get('testGroupNumber') % 4
|
group = me.get('testGroupNumber') % 4
|
||||||
@homepageGroup = switch group
|
@homepageGroup = switch group
|
||||||
when 0, 1 then 'home-with-note'
|
when 0, 1 then 'new-home-characters'
|
||||||
when 2, 3 then 'new-home-student'
|
when 2, 3 then 'new-home-student'
|
||||||
application.tracker.identify newHomepageGroup: @homepageGroup unless me.isAdmin()
|
application.tracker.identify newHomepageGroup: @homepageGroup unless me.isAdmin()
|
||||||
return @homepageGroup
|
return @homepageGroup
|
||||||
|
|
|
@ -43,8 +43,8 @@ block content
|
||||||
#mission-graphic-filler
|
#mission-graphic-filler
|
||||||
.col-sm-5.col-sm-offset-1
|
.col-sm-5.col-sm-offset-1
|
||||||
#mission-text.responsive-side-margins
|
#mission-text.responsive-side-margins
|
||||||
p(data-i18n="about.mission_description_1")
|
p(data-i18n="[html]about.mission_description_1")
|
||||||
p(data-i18n="about.mission_description_2")
|
p(data-i18n="[html]about.mission_description_2")
|
||||||
|
|
||||||
#team.anchor
|
#team.anchor
|
||||||
.text-center
|
.text-center
|
||||||
|
@ -68,7 +68,7 @@ block content
|
||||||
h6.label.team-name
|
h6.label.team-name
|
||||||
a(href="http://www.mattlott.com/" rel="external") Matt Lott
|
a(href="http://www.mattlott.com/" rel="external") Matt Lott
|
||||||
small(data-i18n="about.matt_title")
|
small(data-i18n="about.matt_title")
|
||||||
small(data-i18n="about.matt_blurb")
|
br
|
||||||
|
|
||||||
li
|
li
|
||||||
a(href="http://cat.zdh.com/" rel="external")
|
a(href="http://cat.zdh.com/" rel="external")
|
||||||
|
@ -220,7 +220,7 @@ block content
|
||||||
#story-languages
|
#story-languages
|
||||||
.text-center
|
.text-center
|
||||||
.text-h5(data-i18n="about.story_statistic_3c")
|
.text-h5(data-i18n="about.story_statistic_3c")
|
||||||
#language-icons.text-center
|
#language-icons.text-center(title="Clojure, CoffeeScript, JavaScript, Python, Java, Lua")
|
||||||
img.hidden-xs(src="/images/pages/about/languages.png")
|
img.hidden-xs(src="/images/pages/about/languages.png")
|
||||||
img.hidden-sm.hidden-md.hidden-lg(src="/images/pages/about/languages_group1.png")
|
img.hidden-sm.hidden-md.hidden-lg(src="/images/pages/about/languages_group1.png")
|
||||||
img.hidden-sm.hidden-md.hidden-lg(src="/images/pages/about/languages_group2.png")
|
img.hidden-sm.hidden-md.hidden-lg(src="/images/pages/about/languages_group2.png")
|
||||||
|
@ -246,20 +246,10 @@ block content
|
||||||
ul
|
ul
|
||||||
li.small(data-i18n="about.jobs_benefit_1")
|
li.small(data-i18n="about.jobs_benefit_1")
|
||||||
li.small(data-i18n="about.jobs_benefit_2")
|
li.small(data-i18n="about.jobs_benefit_2")
|
||||||
li.small(data-i18n="about.jobs_benefit_3")
|
|
||||||
li.small(data-i18n="about.jobs_benefit_4")
|
li.small(data-i18n="about.jobs_benefit_4")
|
||||||
li.small(data-i18n="about.jobs_benefit_5")
|
li.small(data-i18n="about.jobs_benefit_5")
|
||||||
li.small(data-i18n="about.jobs_benefit_6")
|
li.small(data-i18n="about.jobs_benefit_6")
|
||||||
.col-sm-6.col-md-5.col-lg-4
|
.col-sm-6.col-md-5.col-lg-4
|
||||||
.job-listing
|
|
||||||
h5 Software Engineer, iOS
|
|
||||||
.text-center
|
|
||||||
small.label
|
|
||||||
| San Francisco • Fulltime
|
|
||||||
p.small Want to write the first iPad app for CodeCombat? We’re looking for a product-focused engineer to translate our core gameplay and educational tools into an experience that feels like it was born on the iPad.
|
|
||||||
a.job-link.btn.btn-lg.btn-navy(href="https://jobs.lever.co/codecombat/eb190007-7195-49ee-a322-893b0d1cdcb4" rel="external")
|
|
||||||
span(data-i18n="about.learn_more")
|
|
||||||
.col-sm-6.col-md-5.col-md-offset-1.col-lg-4.col-lg-offset-0
|
|
||||||
.job-listing
|
.job-listing
|
||||||
h5 Head of Sales
|
h5 Head of Sales
|
||||||
.text-center
|
.text-center
|
||||||
|
@ -268,7 +258,7 @@ block content
|
||||||
p.small School districts are scrambling to offer computer science classes to all their students as a core subject. They have had no solution, because they can't afford to hire enough programming teachers – until now.
|
p.small School districts are scrambling to offer computer science classes to all their students as a core subject. They have had no solution, because they can't afford to hire enough programming teachers – until now.
|
||||||
a.job-link.btn.btn-lg.btn-navy(href="https://jobs.lever.co/codecombat/2d0194ed-7c69-4aab-b1f9-363ca4b9f04b" rel="external")
|
a.job-link.btn.btn-lg.btn-navy(href="https://jobs.lever.co/codecombat/2d0194ed-7c69-4aab-b1f9-363ca4b9f04b" rel="external")
|
||||||
span(data-i18n="about.learn_more")
|
span(data-i18n="about.learn_more")
|
||||||
.col-sm-6.col-md-5.col-lg-4
|
.col-sm-6.col-md-5.col-md-offset-1.col-lg-4.col-lg-offset-0
|
||||||
.job-listing
|
.job-listing
|
||||||
h5 Sales Representative
|
h5 Sales Representative
|
||||||
.text-center
|
.text-center
|
||||||
|
@ -277,7 +267,7 @@ block content
|
||||||
p.small School districts are scrambling to offer computer science classes to all their students as a core subject. They have had no solution, because they can't afford to hire enough programming teachers – until now.
|
p.small School districts are scrambling to offer computer science classes to all their students as a core subject. They have had no solution, because they can't afford to hire enough programming teachers – until now.
|
||||||
a.job-link.btn.btn-lg.btn-navy(href="https://jobs.lever.co/codecombat/3f6ff123-16ce-4ecb-aba3-dcf4e8927c47" rel="external")
|
a.job-link.btn.btn-lg.btn-navy(href="https://jobs.lever.co/codecombat/3f6ff123-16ce-4ecb-aba3-dcf4e8927c47" rel="external")
|
||||||
span(data-i18n="about.learn_more")
|
span(data-i18n="about.learn_more")
|
||||||
.col-sm-6.col-md-5.col-md-offset-1.col-lg-4.col-lg-offset-0
|
.col-sm-6.col-md-5.col-lg-4
|
||||||
.job-listing
|
.job-listing
|
||||||
h5(data-i18n="about.jobs_custom_title")
|
h5(data-i18n="about.jobs_custom_title")
|
||||||
p.small(data-i18n="about.jobs_custom_description")
|
p.small(data-i18n="about.jobs_custom_description")
|
||||||
|
|
|
@ -67,7 +67,7 @@ block content
|
||||||
h3 Active Classes 365 days
|
h3 Active Classes 365 days
|
||||||
.active-classes-chart-365.line-chart-container
|
.active-classes-chart-365.line-chart-container
|
||||||
|
|
||||||
h1#active-classes-table Active Classes
|
h1 Active Classes
|
||||||
table.table.table-striped.table-condensed
|
table.table.table-striped.table-condensed
|
||||||
tr
|
tr
|
||||||
th Day
|
th Day
|
||||||
|
@ -93,7 +93,35 @@ block content
|
||||||
h3 Monthly Recurring Revenue 365 days
|
h3 Monthly Recurring Revenue 365 days
|
||||||
.recurring-monthly-revenue-chart-365.line-chart-container
|
.recurring-monthly-revenue-chart-365.line-chart-container
|
||||||
|
|
||||||
h1#recurring-revenue-table Recurring Revenue
|
.school-sales
|
||||||
|
h3 School Sales
|
||||||
|
if view.schoolSales
|
||||||
|
table.table.table-striped.table-condensed
|
||||||
|
tr
|
||||||
|
th Amount
|
||||||
|
th(style='min-width:85px;') Created
|
||||||
|
th PaymentID
|
||||||
|
th PrepaidID
|
||||||
|
th Description
|
||||||
|
th Email
|
||||||
|
th School
|
||||||
|
each val, i in view.schoolSales
|
||||||
|
tr
|
||||||
|
td $#{val.amount / 100}
|
||||||
|
td= new Date(val.created).toISOString().substring(0, 10)
|
||||||
|
td= val._id
|
||||||
|
td= val.prepaidID
|
||||||
|
td= val.description
|
||||||
|
if val.user
|
||||||
|
td= val.user.emailLower
|
||||||
|
td= val.user.schoolName
|
||||||
|
else
|
||||||
|
td
|
||||||
|
td
|
||||||
|
else
|
||||||
|
div Loading ...
|
||||||
|
|
||||||
|
h1 Recurring Revenue
|
||||||
table.table.table-striped.table-condensed
|
table.table.table-striped.table-condensed
|
||||||
tr
|
tr
|
||||||
th(style='min-width:85px;') Day
|
th(style='min-width:85px;') Day
|
||||||
|
@ -106,22 +134,22 @@ block content
|
||||||
td $#{(val / 100).toFixed(2)}
|
td $#{(val / 100).toFixed(2)}
|
||||||
|
|
||||||
.tab-pane#tab_classroom
|
.tab-pane#tab_classroom
|
||||||
h3#classroom-daus-graph Classroom Daily Active Users 90 days
|
h3 Classroom Daily Active Users 90 days
|
||||||
.small Paid student: user.coursePrepaidID set and prepaid.properties.trialRequestID NOT set
|
.small Paid student: user.coursePrepaidID set and prepaid.properties.trialRequestID NOT set
|
||||||
.small Trial student: user.coursePrepaidID set and prepaid.properties.trialRequestID set
|
.small Trial student: user.coursePrepaidID set and prepaid.properties.trialRequestID set
|
||||||
.small Free student: not paid, not trial
|
.small Free student: not paid, not trial
|
||||||
.classroom-daily-active-users-chart-90.line-chart-container
|
.classroom-daily-active-users-chart-90.line-chart-container
|
||||||
|
|
||||||
h3#classroom-maus-graph Classroom Monthly Active Users 90 days
|
h3 Classroom Monthly Active Users 90 days
|
||||||
.classroom-monthly-active-users-chart-90.line-chart-container
|
.classroom-monthly-active-users-chart-90.line-chart-container
|
||||||
|
|
||||||
h3#classroom-daus-graph Classroom Daily Active Users 365 days
|
h3 Classroom Daily Active Users 365 days
|
||||||
.classroom-daily-active-users-chart-365.line-chart-container
|
.classroom-daily-active-users-chart-365.line-chart-container
|
||||||
|
|
||||||
h3#classroom-maus-graph Classroom Monthly Active Users 365 days
|
h3 Classroom Monthly Active Users 365 days
|
||||||
.classroom-monthly-active-users-chart-365.line-chart-container
|
.classroom-monthly-active-users-chart-365.line-chart-container
|
||||||
|
|
||||||
h3#enrollments-graph Enrollments Issued and Redeemed 90 days
|
h3 Enrollments Issued and Redeemed 90 days
|
||||||
.paid-courses-chart.line-chart-container
|
.paid-courses-chart.line-chart-container
|
||||||
|
|
||||||
#furthest-course
|
#furthest-course
|
||||||
|
@ -191,7 +219,7 @@ block content
|
||||||
else
|
else
|
||||||
div Loading ...
|
div Loading ...
|
||||||
|
|
||||||
#school-sales
|
.school-sales
|
||||||
h3 School Sales
|
h3 School Sales
|
||||||
if view.schoolSales
|
if view.schoolSales
|
||||||
table.table.table-striped.table-condensed
|
table.table.table-striped.table-condensed
|
||||||
|
@ -205,7 +233,7 @@ block content
|
||||||
th School
|
th School
|
||||||
each val, i in view.schoolSales
|
each val, i in view.schoolSales
|
||||||
tr
|
tr
|
||||||
td $#{Math.round(val.amount / 100, 2)}
|
td $#{val.amount / 100}
|
||||||
td= new Date(val.created).toISOString().substring(0, 10)
|
td= new Date(val.created).toISOString().substring(0, 10)
|
||||||
td= val._id
|
td= val._id
|
||||||
td= val.prepaidID
|
td= val.prepaidID
|
||||||
|
@ -236,7 +264,7 @@ block content
|
||||||
else
|
else
|
||||||
div Loading ...
|
div Loading ...
|
||||||
|
|
||||||
h1#active-users-table Active Users
|
h1 Active Users
|
||||||
if activeUsers.length > 0
|
if activeUsers.length > 0
|
||||||
- var eventNames = [];
|
- var eventNames = [];
|
||||||
each count, event in activeUsers[0].events
|
each count, event in activeUsers[0].events
|
||||||
|
@ -296,7 +324,7 @@ block content
|
||||||
h3 Campaign Monthly Active Users 365 days
|
h3 Campaign Monthly Active Users 365 days
|
||||||
.campaign-monthly-active-users-chart-365.line-chart-container
|
.campaign-monthly-active-users-chart-365.line-chart-container
|
||||||
|
|
||||||
h1#active-users-table Active Users
|
h1 Active Users
|
||||||
if activeUsers.length > 0
|
if activeUsers.length > 0
|
||||||
- var eventNames = [];
|
- var eventNames = [];
|
||||||
each count, event in activeUsers[0].events
|
each count, event in activeUsers[0].events
|
||||||
|
@ -321,13 +349,13 @@ block content
|
||||||
|
|
||||||
|
|
||||||
.tab-pane#tab_campaign_vs_classroom
|
.tab-pane#tab_campaign_vs_classroom
|
||||||
h3#campaign-vs-classroom-paid-maus-recent-graph Campaign vs Classroom Paid Monthly Active Users 90 days
|
h3 Campaign vs Classroom Paid Monthly Active Users 90 days
|
||||||
.campaign-vs-classroom-monthly-active-users-recent-chart.line-chart-container
|
.campaign-vs-classroom-monthly-active-users-recent-chart.line-chart-container
|
||||||
|
|
||||||
h3#campaign-vs-classroom-paid-maus-graph Campaign vs Classroom Paid Monthly Active Users 365 days
|
h3 Campaign vs Classroom Paid Monthly Active Users 365 days
|
||||||
.campaign-vs-classroom-monthly-active-users-chart.line-chart-container
|
.campaign-vs-classroom-monthly-active-users-chart.line-chart-container
|
||||||
|
|
||||||
h1#active-users-table Active Users
|
h1 Active Users
|
||||||
if activeUsers.length > 0
|
if activeUsers.length > 0
|
||||||
- var eventNames = [];
|
- var eventNames = [];
|
||||||
each count, event in activeUsers[0].events
|
each count, event in activeUsers[0].events
|
||||||
|
|
|
@ -5,174 +5,177 @@ block content
|
||||||
.container
|
.container
|
||||||
.row
|
.row
|
||||||
.col-lg-7.col-md-8
|
.col-lg-7.col-md-8
|
||||||
h1 The most engaging game for learning programming.
|
h1(data-i18n="new_home.slogan")
|
||||||
|
|
||||||
.col-lg-3.col-lg-offset-2.col-md-4
|
.col-lg-3.col-lg-offset-2.col-md-4
|
||||||
.well.text-center.hidden-md.hidden-lg
|
.well.text-center.hidden-md.hidden-lg
|
||||||
.row
|
.row
|
||||||
.col-xs-8
|
.col-xs-8
|
||||||
h6 Classroom Edition:
|
h6(data-i18n="new_home.classroom_edition")
|
||||||
.col-xs-4
|
.col-xs-4
|
||||||
h6 Learn to code:
|
h6(data-i18n="new_home.learn_to_code")
|
||||||
.row
|
.row
|
||||||
.col-xs-4
|
.col-xs-4
|
||||||
button#teacher-btn.btn.btn-primary.btn-lg.btn-block Teacher
|
button#teacher-btn.btn.btn-primary.btn-lg.btn-block(data-i18n="new_home.teacher")
|
||||||
.col-xs-4
|
.col-xs-4
|
||||||
a.btn.btn-forest.btn-lg.btn-block(href="/courses") Student
|
a.btn.btn-forest.btn-lg.btn-block(href="/courses", data-i18n="new_home.student")
|
||||||
.col-xs-4
|
.col-xs-4
|
||||||
a.btn.btn-gold.btn-lg.btn-block(href=view.playURL) Play Now
|
a.btn.btn-gold.btn-lg.btn-block(href=view.playURL, data-i18n="new_home.play_now")
|
||||||
|
|
||||||
.well.text-center.hidden-xs.hidden-sm
|
.well.text-center.hidden-xs.hidden-sm
|
||||||
h6#classroom-edition-header Classroom Edition:
|
h6#classroom-edition-header(data-i18n="new_home.classroom_edition")
|
||||||
div
|
div
|
||||||
button#teacher-btn.btn.btn-primary.btn-lg.btn-block I'm a Teacher
|
button#teacher-btn.btn.btn-primary.btn-lg.btn-block(data-i18n="new_home.im_a_teacher")
|
||||||
div
|
div
|
||||||
a.btn.btn-forest.btn-lg.btn-block(href="/courses") I'm a Student
|
a.btn.btn-forest.btn-lg.btn-block(href="/courses", data-i18n="new_home.im_a_student")
|
||||||
|
|
||||||
h6#learn-to-code-header Learn to code:
|
h6#learn-to-code-header(data-i18n="new_home.learn_to_code")
|
||||||
a.btn.btn-gold.btn-lg.btn-block(href=view.playURL) Play Now
|
a.btn.btn-gold.btn-lg.btn-block(href=view.playURL, data-i18n="new_home.play_now")
|
||||||
.row#learn-more-row
|
.row#learn-more-row
|
||||||
.col-xs-12.text-center
|
.col-xs-12.text-center
|
||||||
a#learn-more-link
|
a#learn-more-link
|
||||||
h6 Learn more
|
h6(data-i18n="new_home.learn_more")
|
||||||
h2
|
h2
|
||||||
span.glyphicon.glyphicon-chevron-down
|
span.glyphicon.glyphicon-chevron-down
|
||||||
|
|
||||||
|
|
||||||
.container#classroom-in-box-container
|
.container#classroom-in-box-container
|
||||||
#classroom-in-box-row.row
|
#classroom-in-box-row.row
|
||||||
.col-sm-6
|
.col-sm-6
|
||||||
h2.text-navy A classroom in-a-box for teaching computer science.
|
h2.text-navy(data-i18n="new_home.classroom_in_a_box")
|
||||||
.col-sm-6
|
.col-sm-6
|
||||||
p CodeCombat is a platform for students to learn computer science while playing through a real game.
|
p(data-i18n="new_home.codecombat_is")
|
||||||
p Our courses have been specifically playtested to excel in a classroom setting, even by teachers with little to no prior programming experience.
|
p(data-i18n="new_home.our_courses")
|
||||||
|
|
||||||
#feature-spread-row.row.text-center
|
#feature-spread-row.row.text-center
|
||||||
h3 Designed with teachers in mind
|
h3(data-i18n="new_home.designed_with")
|
||||||
.col-sm-4
|
.col-sm-4
|
||||||
img.img-circle(src="/images/pages/home/F1_typedcode.png")
|
img.img-circle(src="/images/pages/home/F1_typedcode.png")
|
||||||
h4
|
h4
|
||||||
| Real, typed code
|
span(data-i18n="new_home.real_code")
|
||||||
br
|
br
|
||||||
| from the first level
|
span(data-i18n="new_home.from_the_first_level")
|
||||||
p.small Getting students to typed code as quickly as possible is critical to learning programming syntax and proper structure.
|
p.small(data-i18n="new_home.getting_students")
|
||||||
|
|
||||||
.col-sm-4
|
.col-sm-4
|
||||||
img.img-circle(src="/images/pages/home/F2_teacherguides.png")
|
img.img-circle(src="/images/pages/home/F2_teacherguides.png")
|
||||||
h4
|
h4
|
||||||
| Educator resources
|
span(data-i18n="new_home.educator_resources")
|
||||||
br
|
br
|
||||||
| and course guides
|
span(data-i18n="new_home.course_guides")
|
||||||
p.small Teaching computer science does not require a costly degree, because we provide tools to support educators of all backgrounds.
|
p.small(data-i18n="new_home.teaching_computer_science")
|
||||||
|
|
||||||
.col-sm-4
|
.col-sm-4
|
||||||
img.img-circle(src="/images/pages/home/F3_accessible.png")
|
img.img-circle(src="/images/pages/home/F3_accessible.png")
|
||||||
h4
|
h4
|
||||||
| Accessible to
|
span(data-i18n="new_home.accessible_to")
|
||||||
br
|
br
|
||||||
| everyone
|
span(data-i18n="new_home.everyone")
|
||||||
p.small Democratizing the process of learning coding is at the core of our philosophy. Everyone should be able to learn to code.
|
p.small(data-i18n="new_home.democratizing")
|
||||||
|
|
||||||
.testimonials-rows
|
.testimonials-rows
|
||||||
.testimonials-filler-left
|
.testimonials-filler-left
|
||||||
.testimonials-filler-right
|
.testimonials-filler-right
|
||||||
.row
|
.row
|
||||||
.col-lg-offset-2.col-lg-7.col-sm-8
|
.col-lg-offset-2.col-lg-7.col-sm-8
|
||||||
blockquote
|
blockquote
|
||||||
h3 I think they actually forgot that they were actually learning something.
|
h3(data-i18n="new_home.forgot_learning")
|
||||||
|
|
||||||
.col-lg-2.col-sm-3.text-center
|
.col-lg-2.col-sm-3.text-center
|
||||||
img.img-circle(src="/images/pages/home/timmaki.png")
|
img.img-circle(src="/images/pages/home/timmaki.png")
|
||||||
h6 Tim Maki
|
h6 Tim Maki
|
||||||
.small Director of Technology, Tilton School
|
.small Director of Technology, Tilton School
|
||||||
|
|
||||||
.row
|
.row
|
||||||
.col-lg-7.col-sm-8.col-sm-push-4.col-lg-push-3
|
.col-lg-7.col-sm-8.col-sm-push-4.col-lg-push-3
|
||||||
blockquote
|
blockquote
|
||||||
h3 Coding is something I've always wanted to do, and I never thought I would be able to learn it in school.
|
h3(data-i18n="new_home.wanted_to_do")
|
||||||
|
|
||||||
.col-lg-2.col-sm-3.col-lg-offset-1.text-center.col-sm-pull-8.col-lg-pull-7
|
.col-lg-2.col-sm-3.col-lg-offset-1.text-center.col-sm-pull-8.col-lg-pull-7
|
||||||
img.img-circle(src="/images/pages/home/dylan.png")
|
img.img-circle(src="/images/pages/home/dylan.png")
|
||||||
h6 Dylan
|
h6 Dylan
|
||||||
.small 3rd Grader
|
.small 3rd Grader
|
||||||
|
|
||||||
|
|
||||||
h3.text-center Why is learning through games important?
|
h3.text-center(data-i18n="new_home.why_games")
|
||||||
|
|
||||||
#benefit-row-1.row
|
#benefit-row-1.row
|
||||||
#benefit-graphic-1.col-sm-6.col-sm-offset-1.col-sm-push-6
|
#benefit-graphic-1.col-sm-6.col-sm-offset-1.col-sm-push-6
|
||||||
h2 Games reward the productive struggle.
|
h2(data-i18n="new_home.games_reward")
|
||||||
img(src="/images/pages/home/G1_reward.png")
|
img(src="/images/pages/home/G1_reward.png")
|
||||||
#benefit-graphic-1-filler
|
#benefit-graphic-1-filler
|
||||||
|
|
||||||
.col-sm-5.col-sm-pull-6
|
|
||||||
p
|
|
||||||
| Gaming is a medium that encourages interaction, discovery, and trial-and-error.
|
|
||||||
| A good game challenges the player to master skills over time,
|
|
||||||
| which is the same critical process students go through as they learn.
|
|
||||||
p
|
|
||||||
| Games excel at rewarding “
|
|
||||||
a(href="http://blog.mindresearch.org/blog/game-based-learning-infographic-strong-math-practices" target="_blank") productive struggle
|
|
||||||
span.spr ” - the kind of struggle that results in learning that’s engaging and
|
|
||||||
a(href="http://www.gamesandlearning.org/2014/06/09/teachers-on-using-games-in-class/" target="_blank") motivating
|
|
||||||
| , not tedious.
|
|
||||||
|
|
||||||
|
.col-sm-5.col-sm-pull-6
|
||||||
|
p(data-i18n="new_home.encourage")
|
||||||
|
|
||||||
|
p
|
||||||
|
span.spr(data-i18n="new_home.excel")
|
||||||
|
span “
|
||||||
|
a(href="http://blog.mindresearch.org/blog/game-based-learning-infographic-strong-math-practices" target="_blank", data-i18n="new_home.struggle")
|
||||||
|
span ” -
|
||||||
|
span.spl.spr(data-i18n="new_home.kind_of_struggle")
|
||||||
|
a(href="http://www.gamesandlearning.org/2014/06/09/teachers-on-using-games-in-class/" target="_blank", data-i18n="new_home.motivating")
|
||||||
|
span ,
|
||||||
|
span.spl(data-i18n="new_home.not_tedious")
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#benefit-row-2.row
|
#benefit-row-2.row
|
||||||
#benefit-graphic-2.col-sm-6
|
#benefit-graphic-2.col-sm-6
|
||||||
h2 Studies suggest gaming is good for children’s brains. (it’s true!)
|
h2(data-i18n="new_home.gaming_is_good")
|
||||||
img(src="/images/pages/home/G2_brains.png")
|
img(src="/images/pages/home/G2_brains.png")
|
||||||
#benefit-graphic-2-filler
|
#benefit-graphic-2-filler
|
||||||
|
|
||||||
.col-sm-5.col-sm-offset-1
|
.col-sm-5.col-sm-offset-1
|
||||||
p
|
p
|
||||||
span.spr When game-based learning systems are
|
span.spr(data-i18n="new_home.game_based")
|
||||||
a(href="http://schoolsweek.co.uk/gaming-is-good-for-childrens-brains-study-suggests/" target="_blank") compared
|
a(href="http://schoolsweek.co.uk/gaming-is-good-for-childrens-brains-study-suggests/" target="_blank", data-i18n="new_home.compared")
|
||||||
span.spl.spr against conventional assessment methods, the difference is clear: games are better at helping students retain knowledge, concentrate and
|
span.spl.spr(data-i18n="new_home.conventional")
|
||||||
a(href="http://dev.k-12techdecisions.com/article/game_based_learning_is_where_vygotsky_meets_dweck/P3" target="_blank") perform at a higher level of achievement
|
a(href="http://dev.k-12techdecisions.com/article/game_based_learning_is_where_vygotsky_meets_dweck/P3" target="_blank", data-i18n="new_home.perform_at_higher_level")
|
||||||
| .
|
span .
|
||||||
p
|
p
|
||||||
| Games also provide real-time feedback that allows students to adjust their solution path and understand concepts more holistically, instead of being limited to just “correct” or “incorrect” answers.
|
span(data-i18n="new_home.feedback")
|
||||||
|
|
||||||
#benefit-row-3.row
|
#benefit-row-3.row
|
||||||
#benefit-graphic-3.col-sm-6.col-sm-offset-1.col-sm-push-6
|
#benefit-graphic-3.col-sm-6.col-sm-offset-1.col-sm-push-6
|
||||||
h2 A real game, played with real coding.
|
h2(data-i18n="new_home.real_game")
|
||||||
img(src="/images/pages/home/G3_game.png")
|
img(src="/images/pages/home/G3_game.png")
|
||||||
#benefit-graphic-3-filler
|
#benefit-graphic-3-filler
|
||||||
|
|
||||||
.col-sm-5.col-sm-pull-6
|
.col-sm-5.col-sm-pull-6
|
||||||
p
|
p
|
||||||
| A great game is more than just badges and achievements - it’s about a player’s journey, well-designed puzzles, and the ability to tackle challenges with agency and confidence.
|
span(data-i18n="new_home.great_game")
|
||||||
p
|
p
|
||||||
| CodeCombat is a game that gives players that agency and confidence with our robust typed code engine, which helps beginner and advanced students alike write proper, valid code.
|
span(data-i18n="new_home.agency")
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
.request-demo-row.text-center
|
.request-demo-row.text-center
|
||||||
h3 Curious? Request a demo and we'll show you the ropes
|
h3(data-i18n="new_home.curious")
|
||||||
h4 Or create a class and see it for yourself!
|
h4(data-i18n="new_home.create_class")
|
||||||
div
|
div
|
||||||
a.btn.btn-primary.btn-lg(href="/teachers/freetrial") Request a Demo
|
a.btn.btn-primary.btn-lg(href="/teachers/freetrial", data-i18n="new_home.request_demo")
|
||||||
a.btn.btn-primary-alt.btn-lg(href="/courses/teachers") Create a Class
|
a.btn.btn-primary-alt.btn-lg(href="/courses/teachers", data-i18n="new_home.create_a_class")
|
||||||
div
|
div
|
||||||
if me.isAnonymous()
|
if me.isAnonymous()
|
||||||
span.spr Already have an account?
|
span.spr(data-i18n="new_home.have_an_account")
|
||||||
a.login-button Login
|
a.login-button Login
|
||||||
else
|
else
|
||||||
span.spr You are currently logged in as #{me.broadName()}.
|
span.spr(data-i18n="new_home.logged_in_as")
|
||||||
a(href="/courses/teachers") View my classes
|
span= me.broadName()
|
||||||
span.spr.spl or
|
span.spr .
|
||||||
|
a(href="/courses/teachers", data-i18n="new_home.view_my_classes")
|
||||||
|
span.spr.spl(data-i18n="general.or")
|
||||||
a#logout-button logout
|
a#logout-button logout
|
||||||
|
|
||||||
h3.text-center Computer science courses for all ages
|
h3.text-center(data-i18n="new_home.computer_science")
|
||||||
h4.text-center
|
h4.text-center
|
||||||
span#school-level-label Show me lesson time estimates for:
|
span#school-level-label(data-i18n="new_home.show_me_lesson_time")
|
||||||
select#school-level-dropdown.form-control.text-navy
|
select#school-level-dropdown.form-control.text-navy
|
||||||
option(value='elementary') Elementary School
|
option(value='elementary', data-i18n="teachers_quote.elementary_school")
|
||||||
option(value='middle', selected=true) Middle School
|
option(value='middle', selected=true, data-i18n="teachers_quote.middle_school")
|
||||||
option(value='high') High School
|
option(value='high', data-i18n="teachers_quote.high_school")
|
||||||
h5.text-center#total-hours-header
|
h5.text-center#total-hours-header
|
||||||
span.spr Total curriculum hours:
|
span.spr(data-i18n="new_home.curriculum")
|
||||||
span#semester-duration
|
span#semester-duration
|
||||||
#courses-row.row
|
#courses-row.row
|
||||||
- var conceptsSeen = {};
|
- var conceptsSeen = {};
|
||||||
|
@ -182,7 +185,7 @@ block content
|
||||||
.media.course-details(data-course-slug=course.get('slug'))
|
.media.course-details(data-course-slug=course.get('slug'))
|
||||||
if courseIndex === 0
|
if courseIndex === 0
|
||||||
.free-course
|
.free-course
|
||||||
h6 Free for all students
|
h6(data-i18n="new_home.ffa")
|
||||||
.media-body(title=course.get('description'))
|
.media-body(title=course.get('description'))
|
||||||
h6.course-name= course.get('name') + ':'
|
h6.course-name= course.get('name') + ':'
|
||||||
p.small
|
p.small
|
||||||
|
@ -203,7 +206,7 @@ block content
|
||||||
img.media-object(src="/images/pages/home/course"+(courseIndex+1)+".png")
|
img.media-object(src="/images/pages/home/course"+(courseIndex+1)+".png")
|
||||||
- lastScreenshot = course.get('screenshot');
|
- lastScreenshot = course.get('screenshot');
|
||||||
h6.course-duration
|
h6.course-duration
|
||||||
span.spr Lesson time:
|
span.spr(data-i18n="new_home.lesson_time")
|
||||||
span.course-hours= course.get('duration') || 0
|
span.course-hours= course.get('duration') || 0
|
||||||
span.spl.unit(data-i18n="units.hours")
|
span.spl.unit(data-i18n="units.hours")
|
||||||
for upcomingCourse in ['Computer Science 6', 'Computer Science 7', 'Computer Science 8']
|
for upcomingCourse in ['Computer Science 6', 'Computer Science 7', 'Computer Science 8']
|
||||||
|
@ -211,22 +214,22 @@ block content
|
||||||
.media.disabled
|
.media.disabled
|
||||||
.media-body
|
.media-body
|
||||||
h6.course-name= upcomingCourse + ':'
|
h6.course-name= upcomingCourse + ':'
|
||||||
p.small Coming soon!
|
p.small(data-i18n="new_home.coming_soon")
|
||||||
img.media-object(src="/images/pages/home/inprogress.png")
|
img.media-object(src="/images/pages/home/inprogress.png")
|
||||||
|
|
||||||
.clearfix
|
.clearfix
|
||||||
.text-center
|
.text-center
|
||||||
h4
|
h4
|
||||||
img(src="/images/pages/home/course_languages.png")
|
img(src="/images/pages/home/course_languages.png")
|
||||||
div Courses are available in JavaScript, Python, and Java (coming soon!)
|
div(data-i18n="new_home.courses_available_in")
|
||||||
|
|
||||||
.testimonials-rows
|
.testimonials-rows
|
||||||
.testimonials-filler-left
|
.testimonials-filler-left
|
||||||
.testimonials-filler-right
|
.testimonials-filler-right
|
||||||
.row
|
.row
|
||||||
.col-lg-offset-2.col-lg-7.col-sm-8
|
.col-lg-offset-2.col-lg-7.col-sm-8
|
||||||
blockquote
|
blockquote
|
||||||
h3 Boasts riddles that are complex enough to fascinate gamers and coders alike.
|
h3(data-i18n="new_home.boast")
|
||||||
|
|
||||||
.col-lg-2.col-sm-3.text-center
|
.col-lg-2.col-sm-3.text-center
|
||||||
img.img-circle(src="/images/pages/home/opensource.png")
|
img.img-circle(src="/images/pages/home/opensource.png")
|
||||||
|
@ -236,18 +239,16 @@ block content
|
||||||
.row
|
.row
|
||||||
.col-lg-7.col-sm-8.col-sm-push-4.col-lg-push-3
|
.col-lg-7.col-sm-8.col-sm-push-4.col-lg-push-3
|
||||||
blockquote
|
blockquote
|
||||||
h3 A winning combination of RPG gameplay and programming homework that pulls off making kid-friendly education legitimately enjoyable.
|
h3(data-i18n="new_home.winning")
|
||||||
|
|
||||||
.col-lg-2.col-sm-3.col-lg-offset-1.text-center.col-sm-pull-8.col-lg-pull-7
|
.col-lg-2.col-sm-3.col-lg-offset-1.text-center.col-sm-pull-8.col-lg-pull-7
|
||||||
img.img-circle(src="/images/pages/home/pcmag.png")
|
img.img-circle(src="/images/pages/home/pcmag.png")
|
||||||
h6 PC Mag
|
h6 PC Mag
|
||||||
.small pcmag.com
|
.small pcmag.com
|
||||||
|
|
||||||
|
|
||||||
.request-demo-row.text-center
|
.request-demo-row.text-center
|
||||||
h3 Everything you need to run a computer science class in your school today, no CS background required.
|
h3(data-i18n="new_home.run_class")
|
||||||
p
|
p
|
||||||
a.btn.btn-primary.btn-lg(href="/teachers/freetrial") Request a Demo
|
a.btn.btn-primary.btn-lg(href="/teachers/freetrial", data-i18n="new_home.request_demo")
|
||||||
a.btn.btn-primary-alt.btn-lg(href="/courses/teachers") Create a Class
|
a.btn.btn-primary-alt.btn-lg(href="/courses/teachers", data-i18n="new_home.create_a_class")
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -88,3 +88,6 @@
|
||||||
strong.tip.rare(data-i18n='play_level.tip_free_your_mind') You have to let it all go, Neo. Fear, doubt, and disbelief. Free your mind. - Morpheus
|
strong.tip.rare(data-i18n='play_level.tip_free_your_mind') You have to let it all go, Neo. Fear, doubt, and disbelief. Free your mind. - Morpheus
|
||||||
strong.tip.rare(data-i18n='play_level.tip_strong_opponents') Even the strongest of opponents always has a weakness. - Itachi Uchiha
|
strong.tip.rare(data-i18n='play_level.tip_strong_opponents') Even the strongest of opponents always has a weakness. - Itachi Uchiha
|
||||||
strong.tip.rare(data-i18n='play_level.tip_paper_and_pen') Before you start coding, you can always plan with a sheet of paper and a pen.
|
strong.tip.rare(data-i18n='play_level.tip_paper_and_pen') Before you start coding, you can always plan with a sheet of paper and a pen.
|
||||||
|
strong.tip.rare(data-i18n='play_level.tip_compiler_ignores_comments') Sometimes I think that the compiler ignores my comments.
|
||||||
|
strong.tip.rare(data-i18n='play_level.tip_understand_recursion') The only way to understand recursion is to understand recursion.
|
||||||
|
strong.tip.rare(data-i18n='play_level.tip_open_source_and_polymorphism') Open Source projects are like totally polymorphic heterogeneous structures: All types are welcome.
|
|
@ -18,7 +18,7 @@ module.exports = class NewHomeView extends RootView
|
||||||
'click #learn-more-link': 'onClickLearnMoreLink'
|
'click #learn-more-link': 'onClickLearnMoreLink'
|
||||||
|
|
||||||
initialize: (options) ->
|
initialize: (options) ->
|
||||||
@jumbotron = options.jumbotron or utils.getQueryVariable('jumbotron') or 'student' # or 'characters'
|
@jumbotron = options.jumbotron or utils.getQueryVariable('jumbotron') or 'student'
|
||||||
@courses = new CocoCollection [], {url: "/db/course", model: Course}
|
@courses = new CocoCollection [], {url: "/db/course", model: Course}
|
||||||
@supermodel.loadCollection(@courses, 'courses')
|
@supermodel.loadCollection(@courses, 'courses')
|
||||||
|
|
||||||
|
|
|
@ -158,7 +158,7 @@ module.exports = class AnalyticsView extends RootView
|
||||||
return -1 if a.created > b.created
|
return -1 if a.created > b.created
|
||||||
return 0 if a.created is b.created
|
return 0 if a.created is b.created
|
||||||
1
|
1
|
||||||
@renderSelectors?('#school-sales')
|
@renderSelectors?('.school-sales')
|
||||||
}, 0).load()
|
}, 0).load()
|
||||||
|
|
||||||
@supermodel.addRequestResource({
|
@supermodel.addRequestResource({
|
||||||
|
@ -449,26 +449,11 @@ module.exports = class AnalyticsView extends RootView
|
||||||
eventDayDataMap['MAU classroom'][day] += count
|
eventDayDataMap['MAU classroom'][day] += count
|
||||||
|
|
||||||
campaignData = []
|
campaignData = []
|
||||||
classroomData = []
|
|
||||||
for event, entry of eventDayDataMap
|
for event, entry of eventDayDataMap
|
||||||
if event is 'MAU campaign'
|
continue unless event is 'MAU campaign'
|
||||||
for day, count of entry
|
for day, count of entry
|
||||||
campaignData.push day: day, value: count / 1000
|
campaignData.push day: day, value: count / 1000
|
||||||
else
|
|
||||||
for day, count of entry
|
|
||||||
classroomData.push day: day, value: count / 1000
|
|
||||||
campaignData.reverse()
|
campaignData.reverse()
|
||||||
classroomData.reverse()
|
|
||||||
|
|
||||||
points = @createLineChartPoints(days, classroomData)
|
|
||||||
chartLines.push
|
|
||||||
points: points
|
|
||||||
description: 'Classroom Monthly Active Users (in thousands)'
|
|
||||||
lineColor: 'red'
|
|
||||||
strokeWidth: 1
|
|
||||||
min: 0
|
|
||||||
max: _.max(points, 'y').y
|
|
||||||
showYScale: true
|
|
||||||
|
|
||||||
points = @createLineChartPoints(days, campaignData)
|
points = @createLineChartPoints(days, campaignData)
|
||||||
chartLines.push
|
chartLines.push
|
||||||
|
|
|
@ -23,8 +23,8 @@ try {
|
||||||
var endDay = new Date();
|
var endDay = new Date();
|
||||||
endDay = endDay.toISOString().substr(0, 10);
|
endDay = endDay.toISOString().substr(0, 10);
|
||||||
|
|
||||||
// startDay = '2015-03-01';
|
// startDay = '2015-06-01';
|
||||||
// endDay = '2015-06-01';
|
// endDay = '2015-08-01';
|
||||||
|
|
||||||
var activeUserEvents = ['Finished Signup', 'Started Level'];
|
var activeUserEvents = ['Finished Signup', 'Started Level'];
|
||||||
|
|
||||||
|
@ -59,36 +59,57 @@ function getActiveUserCounts(startDay, endDay, activeUserEvents) {
|
||||||
// Counts active users per day
|
// Counts active users per day
|
||||||
if (!startDay) return {};
|
if (!startDay) return {};
|
||||||
|
|
||||||
|
// Faster to request analytics db data in batches of days
|
||||||
|
var dayIncrement = 3;
|
||||||
|
var startDate = new Date(startDay + "T00:00:00.000Z");
|
||||||
|
var interimEndDate = new Date(startDay + "T00:00:00.000Z");
|
||||||
|
interimEndDate.setUTCDate(interimEndDate.getUTCDate() + dayIncrement);
|
||||||
|
var interimEndDay = interimEndDate.toISOString().substr(0, 10);
|
||||||
|
|
||||||
var cursor, doc;
|
var cursor, doc;
|
||||||
|
|
||||||
log("Finding active user log events..");
|
log("Finding active user log events..");
|
||||||
var startObj = objectIdWithTimestamp(ISODate(startDay + "T00:00:00.000Z"));
|
|
||||||
var endObj = objectIdWithTimestamp(ISODate(endDay + "T00:00:00.000Z"));
|
|
||||||
var queryParams = {$and: [
|
|
||||||
{_id: {$gte: startObj}},
|
|
||||||
{_id: {$lt: endObj}},
|
|
||||||
{'event': {$in: activeUserEvents}}
|
|
||||||
]};
|
|
||||||
cursor = logDB['log'].find(queryParams);
|
|
||||||
|
|
||||||
var campaignUserMap = {};
|
var campaignUserMap = {};
|
||||||
var dayUserMap = {};
|
var days = {};
|
||||||
|
var dayUserActiveMap = {};
|
||||||
var userIDs = [];
|
var userIDs = [];
|
||||||
while (cursor.hasNext()) {
|
while (startDay < endDay) {
|
||||||
doc = cursor.next();
|
var startObj = objectIdWithTimestamp(ISODate(startDay + "T00:00:00.000Z"));
|
||||||
var created = doc._id.getTimestamp().toISOString();
|
var endObj = objectIdWithTimestamp(ISODate(interimEndDay + "T00:00:00.000Z"));
|
||||||
var day = created.substring(0, 10);
|
var queryParams = {$and: [
|
||||||
var user = doc.user.valueOf();
|
{_id: {$gte: startObj}},
|
||||||
campaignUserMap[user] = true;
|
{_id: {$lt: endObj}},
|
||||||
if (!dayUserMap[day]) dayUserMap[day] = {};
|
{'event': {$in: activeUserEvents}}
|
||||||
dayUserMap[day][user] = true;
|
]};
|
||||||
userIDs.push(ObjectId(user));
|
cursor = logDB['log'].find(queryParams);
|
||||||
// if (userIDs.length % 100000 === 0) {
|
|
||||||
// log('Users so far: ' + userIDs.length);
|
while (cursor.hasNext()) {
|
||||||
// }
|
doc = cursor.next();
|
||||||
|
var created = doc._id.getTimestamp().toISOString();
|
||||||
|
var day = created.substring(0, 10);
|
||||||
|
var user = doc.user.valueOf();
|
||||||
|
days[day] = true;
|
||||||
|
campaignUserMap[user] = true;
|
||||||
|
if (!dayUserActiveMap[day]) dayUserActiveMap[day] = {};
|
||||||
|
dayUserActiveMap[day][user] = true;
|
||||||
|
userIDs.push(ObjectId(user));
|
||||||
|
// if (userIDs.length % 100000 === 0) {
|
||||||
|
// log('Users so far: ' + userIDs.length);
|
||||||
|
// }
|
||||||
|
}
|
||||||
|
startDate.setUTCDate(startDate.getUTCDate() + dayIncrement);
|
||||||
|
startDay = startDate.toISOString().substr(0, 10);
|
||||||
|
interimEndDate.setUTCDate(interimEndDate.getUTCDate() + dayIncrement);
|
||||||
|
interimEndDay = interimEndDate.toISOString().substr(0, 10);
|
||||||
|
if (interimEndDay.localeCompare(endDay) > 0) {
|
||||||
|
interimEndDay = endDay;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
log('User count: ' + userIDs.length);
|
log('User count: ' + userIDs.length);
|
||||||
|
|
||||||
|
days = Object.keys(days);
|
||||||
|
days.sort(function (a, b) {return a.localeCompare(b);});
|
||||||
|
|
||||||
log("Finding classroom members..");
|
log("Finding classroom members..");
|
||||||
var classroomUserObjectIds = [];
|
var classroomUserObjectIds = [];
|
||||||
var batchSize = 100000;
|
var batchSize = 100000;
|
||||||
|
@ -112,20 +133,20 @@ function getActiveUserCounts(startDay, endDay, activeUserEvents) {
|
||||||
// Trial user: prepaid.properties.trialRequestID means access was via trial
|
// Trial user: prepaid.properties.trialRequestID means access was via trial
|
||||||
// Free: not paid, not trial
|
// Free: not paid, not trial
|
||||||
log("Finding classroom users free/trial/paid status..");
|
log("Finding classroom users free/trial/paid status..");
|
||||||
var userEventMap = {};
|
var classroomUserEventMap = {};
|
||||||
var prepaidUsersMap = {};
|
var prepaidUsersMap = {};
|
||||||
var prepaidIDs = [];
|
var prepaidIDs = [];
|
||||||
cursor = db.users.find({_id: {$in: classroomUserObjectIds}}, {coursePrepaidID: 1});
|
cursor = db.users.find({_id: {$in: classroomUserObjectIds}}, {coursePrepaidID: 1});
|
||||||
while (cursor.hasNext()) {
|
while (cursor.hasNext()) {
|
||||||
doc = cursor.next();
|
doc = cursor.next();
|
||||||
if (doc.coursePrepaidID) {
|
if (doc.coursePrepaidID) {
|
||||||
userEventMap[doc._id.valueOf()] = 'DAU classroom paid';
|
classroomUserEventMap[doc._id.valueOf()] = 'DAU classroom paid';
|
||||||
if (!prepaidUsersMap[doc.coursePrepaidID.valueOf()]) prepaidUsersMap[doc.coursePrepaidID.valueOf()] = [];
|
if (!prepaidUsersMap[doc.coursePrepaidID.valueOf()]) prepaidUsersMap[doc.coursePrepaidID.valueOf()] = [];
|
||||||
prepaidUsersMap[doc.coursePrepaidID.valueOf()].push(doc._id.valueOf());
|
prepaidUsersMap[doc.coursePrepaidID.valueOf()].push(doc._id.valueOf());
|
||||||
prepaidIDs.push(doc.coursePrepaidID);
|
prepaidIDs.push(doc.coursePrepaidID);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
userEventMap[doc._id.valueOf()] = 'DAU classroom free';
|
classroomUserEventMap[doc._id.valueOf()] = 'DAU classroom free';
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
cursor = db.prepaids.find({_id: {$in: prepaidIDs}}, {properties: 1});
|
cursor = db.prepaids.find({_id: {$in: prepaidIDs}}, {properties: 1});
|
||||||
|
@ -133,7 +154,7 @@ function getActiveUserCounts(startDay, endDay, activeUserEvents) {
|
||||||
doc = cursor.next();
|
doc = cursor.next();
|
||||||
if (doc.properties && doc.properties.trialRequestID) {
|
if (doc.properties && doc.properties.trialRequestID) {
|
||||||
for (var i = 0; i < prepaidUsersMap[doc._id.valueOf()].length; i++) {
|
for (var i = 0; i < prepaidUsersMap[doc._id.valueOf()].length; i++) {
|
||||||
userEventMap[prepaidUsersMap[doc._id.valueOf()][i]] = 'DAU classroom trial';
|
classroomUserEventMap[prepaidUsersMap[doc._id.valueOf()][i]] = 'DAU classroom trial';
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -141,19 +162,20 @@ function getActiveUserCounts(startDay, endDay, activeUserEvents) {
|
||||||
// Campaign free/paid
|
// Campaign free/paid
|
||||||
// Monthly sub: recipient for payment.stripe.subscriptionID == 'basic'
|
// Monthly sub: recipient for payment.stripe.subscriptionID == 'basic'
|
||||||
// Yearly sub: recipient for paymen.stripe.gems == 42000
|
// Yearly sub: recipient for paymen.stripe.gems == 42000
|
||||||
|
// NOTE: payment.stripe.subscriptionID === basic from 2014-12-03 to 2015-03-13
|
||||||
// TODO: missing a number of corner cases here (e.g. cancelled sub, purchased via admin)
|
// TODO: missing a number of corner cases here (e.g. cancelled sub, purchased via admin)
|
||||||
var campaignUserIDs = [];
|
var campaignUserIDs = [];
|
||||||
for (var userID in campaignUserMap) {
|
for (var userID in campaignUserMap) {
|
||||||
if (campaignUserMap[userID]) campaignUserIDs.push(ObjectId(userID));
|
if (campaignUserMap[userID]) campaignUserIDs.push(ObjectId(userID));
|
||||||
}
|
}
|
||||||
log("Finding campaign paid users..");
|
log("Finding campaign paid users..");
|
||||||
var dayUserPaidMap = {};
|
var dayCampaignUserPaidMap = {};
|
||||||
batchSize = 100000;
|
batchSize = 100000;
|
||||||
for (var j = 0; j < campaignUserIDs.length / batchSize + 1; j++) {
|
for (var j = 0; j < campaignUserIDs.length / batchSize + 1; j++) {
|
||||||
cursor = db.payments.find({$and: [
|
cursor = db.payments.find({$and: [
|
||||||
{recipient: {$in: campaignUserIDs.slice(j * batchSize, j * batchSize + batchSize)}},
|
{recipient: {$in: campaignUserIDs.slice(j * batchSize, j * batchSize + batchSize)}},
|
||||||
{$or: [
|
{$or: [
|
||||||
{'stripe.subscriptionID': 'basic'},
|
{$and: [{amount: {$gt: 0}}, {gems: 3500}, {'stripe.subscriptionID': {$exists: true}}]},
|
||||||
{gems: 42000}
|
{gems: 42000}
|
||||||
]}
|
]}
|
||||||
]}, {created: 1, gems: 1, recipient: 1});
|
]}, {created: 1, gems: 1, recipient: 1});
|
||||||
|
@ -164,8 +186,8 @@ function getActiveUserCounts(startDay, endDay, activeUserEvents) {
|
||||||
var numDays = doc.gems === 42000 ? 365 : 30;
|
var numDays = doc.gems === 42000 ? 365 : 30;
|
||||||
for (var i = 0; i < numDays; i++) {
|
for (var i = 0; i < numDays; i++) {
|
||||||
day = currentDate.toISOString().substring(0, 10);
|
day = currentDate.toISOString().substring(0, 10);
|
||||||
if (!dayUserPaidMap[day]) dayUserPaidMap[day] = {};
|
if (!dayCampaignUserPaidMap[day]) dayCampaignUserPaidMap[day] = {};
|
||||||
dayUserPaidMap[day][userID] = true;
|
dayCampaignUserPaidMap[day][userID] = true;
|
||||||
currentDate.setUTCDate(currentDate.getUTCDate() + 1);
|
currentDate.setUTCDate(currentDate.getUTCDate() + 1);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -174,13 +196,16 @@ function getActiveUserCounts(startDay, endDay, activeUserEvents) {
|
||||||
log("Calculating DAUs..");
|
log("Calculating DAUs..");
|
||||||
var activeUsersCounts = {};
|
var activeUsersCounts = {};
|
||||||
var dailyEventNames = {};
|
var dailyEventNames = {};
|
||||||
for (day in dayUserMap) {
|
var userDayEventMap = {}
|
||||||
for (var user in dayUserMap[day]) {
|
for (day in dayUserActiveMap) {
|
||||||
var event = userEventMap[user] || (dayUserPaidMap[day] && dayUserPaidMap[day][user] ? 'DAU campaign paid' : 'DAU campaign free');
|
for (var user in dayUserActiveMap[day]) {
|
||||||
|
var event = classroomUserEventMap[user] || (dayCampaignUserPaidMap[day] && dayCampaignUserPaidMap[day][user] ? 'DAU campaign paid' : 'DAU campaign free');
|
||||||
dailyEventNames[event] = true;
|
dailyEventNames[event] = true;
|
||||||
if (!activeUsersCounts[day]) activeUsersCounts[day] = {};
|
if (!activeUsersCounts[day]) activeUsersCounts[day] = {};
|
||||||
if (!activeUsersCounts[day][event]) activeUsersCounts[day][event] = 0;
|
if (!activeUsersCounts[day][event]) activeUsersCounts[day][event] = 0;
|
||||||
activeUsersCounts[day][event]++;
|
activeUsersCounts[day][event]++;
|
||||||
|
if (!userDayEventMap[user]) userDayEventMap[user] = {};
|
||||||
|
userDayEventMap[user][day] = event;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// printjson(dailyEventNames)
|
// printjson(dailyEventNames)
|
||||||
|
@ -209,30 +234,27 @@ function getActiveUserCounts(startDay, endDay, activeUserEvents) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Calculate monthly actives for each day, starting when we have enough data
|
|
||||||
log("Calculating MAUs..");
|
log("Calculating MAUs..");
|
||||||
var days = [];
|
// Calculate monthly actives for each day, starting when we have enough data
|
||||||
for (var day in activeUsersCounts) {
|
// TODO: missing log data correction for MAUs
|
||||||
days.push(day);
|
for (var user in campaignUserMap) {
|
||||||
}
|
// For each day, starting when we have daysInMonth days of prior data
|
||||||
days.sort(function (a, b) {return a.localeCompare(b);});
|
for (var i = daysInMonth - 1; i < days.length; i++) {
|
||||||
// print('Num days', days.length);
|
var targetMonthlyDay = days[i];
|
||||||
|
var eventActiveMap = {}
|
||||||
// For each day, starting when we have daysInMonth days of prior data
|
// Find active events for the last daysInMonth days up to the current day
|
||||||
for (var i = daysInMonth - 1; i < days.length; i++) {
|
for (var j = i - daysInMonth + 1; j <= i; j++) {
|
||||||
// For the last daysInMonth days up to the current day
|
var targetDailyDay = days[j];
|
||||||
var targetMonthlyDay = days[i];
|
if (dayUserActiveMap[targetDailyDay][user]) {
|
||||||
for (var j = i - daysInMonth + 1; j <= i; j++) {
|
event = userDayEventMap[user][targetDailyDay];
|
||||||
var targetDailyDay = days[j];
|
eventActiveMap[event] = true;
|
||||||
// For each daily event
|
|
||||||
for (var event in dailyEventNames) {
|
|
||||||
// print(day, event, activeUsersCounts[day][event]);
|
|
||||||
var mauEvent = event.replace('DAU', 'MAU');
|
|
||||||
if (!activeUsersCounts[targetMonthlyDay][mauEvent]) activeUsersCounts[targetMonthlyDay][mauEvent] = 0
|
|
||||||
if (activeUsersCounts[targetDailyDay][event]) {
|
|
||||||
activeUsersCounts[targetMonthlyDay][mauEvent] += activeUsersCounts[targetDailyDay][event];
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
for (var event in eventActiveMap) {
|
||||||
|
var mauEvent = event.replace('DAU', 'MAU');
|
||||||
|
if (!activeUsersCounts[targetMonthlyDay][mauEvent]) activeUsersCounts[targetMonthlyDay][mauEvent] = 0;
|
||||||
|
activeUsersCounts[targetMonthlyDay][mauEvent]++;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -7,39 +7,33 @@
|
||||||
|
|
||||||
// TODO: Investigate school sales amount == zero. Manual input error?
|
// TODO: Investigate school sales amount == zero. Manual input error?
|
||||||
|
|
||||||
try {
|
var scriptStartTime = new Date();
|
||||||
var scriptStartTime = new Date();
|
var analyticsStringCache = {};
|
||||||
var analyticsStringCache = {};
|
|
||||||
|
|
||||||
var numDays = 40;
|
var numDays = 40;
|
||||||
var daysInMonth = 30;
|
var daysInMonth = 30;
|
||||||
|
|
||||||
var startDay = new Date();
|
var startDay = new Date();
|
||||||
today = startDay.toISOString().substr(0, 10);
|
today = startDay.toISOString().substr(0, 10);
|
||||||
startDay.setUTCDate(startDay.getUTCDate() - numDays);
|
startDay.setUTCDate(startDay.getUTCDate() - numDays);
|
||||||
startDay = startDay.toISOString().substr(0, 10);
|
startDay = startDay.toISOString().substr(0, 10);
|
||||||
|
|
||||||
log("Today is " + today);
|
log("Today is " + today);
|
||||||
log("Start day is " + startDay);
|
log("Start day is " + startDay);
|
||||||
|
|
||||||
log("Getting recurring revenue counts...");
|
log("Getting recurring revenue counts...");
|
||||||
var recurringRevenueCounts = getRecurringRevenueCounts(startDay);
|
var recurringRevenueCounts = getRecurringRevenueCounts(startDay);
|
||||||
// printjson(recurringRevenueCounts);
|
// printjson(recurringRevenueCounts);
|
||||||
log("Inserting recurring revenue counts...");
|
log("Inserting recurring revenue counts...");
|
||||||
for (var event in recurringRevenueCounts) {
|
for (var event in recurringRevenueCounts) {
|
||||||
for (var day in recurringRevenueCounts[event]) {
|
for (var day in recurringRevenueCounts[event]) {
|
||||||
if (today === day) continue; // Never save data for today because it's incomplete
|
if (today === day) continue; // Never save data for today because it's incomplete
|
||||||
// print(event, day, recurringRevenueCounts[event][day]);
|
// print(event, day, recurringRevenueCounts[event][day]);
|
||||||
insertEventCount(event, day, recurringRevenueCounts[event][day]);
|
insertEventCount(event, day, recurringRevenueCounts[event][day]);
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
log("Script runtime: " + (new Date() - scriptStartTime));
|
log("Script runtime: " + (new Date() - scriptStartTime));
|
||||||
}
|
|
||||||
catch(err) {
|
|
||||||
log("ERROR: " + err);
|
|
||||||
printjson(err);
|
|
||||||
}
|
|
||||||
|
|
||||||
function getRecurringRevenueCounts(startDay) {
|
function getRecurringRevenueCounts(startDay) {
|
||||||
if (!startDay) return {};
|
if (!startDay) return {};
|
||||||
|
@ -53,7 +47,7 @@ function getRecurringRevenueCounts(startDay) {
|
||||||
while (cursor.hasNext()) {
|
while (cursor.hasNext()) {
|
||||||
var doc = cursor.next();
|
var doc = cursor.next();
|
||||||
if (doc.created) {
|
if (doc.created) {
|
||||||
day = doc.created.substring(0, 10);
|
day = new Date(doc.created).toISOString().substring(0, 10);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
day = doc._id.getTimestamp().toISOString().substring(0, 10);
|
day = doc._id.getTimestamp().toISOString().substring(0, 10);
|
||||||
|
|
Loading…
Reference in a new issue