Merge branch 'master' of git://github.com/GlenDC/codecombat into GlenDC-master

This commit is contained in:
Nick Winter 2014-01-12 12:01:56 -08:00
commit 1572228aa5
32 changed files with 984 additions and 471 deletions

View file

@ -68,6 +68,13 @@ module.exports = nativeDescription: "français", englishDescription: "French", t
# campaign_player_created_description: "... in which you battle against the creativity of your fellow <a href=\"/contribute#artisan\">Artisan Wizards</a>." # campaign_player_created_description: "... in which you battle against the creativity of your fellow <a href=\"/contribute#artisan\">Artisan Wizards</a>."
# level_difficulty: "Difficulty: " # level_difficulty: "Difficulty: "
contribute:
character_classes_title: "Classes de personnages"
page_title: "Contribuer"
introduction_desc_intro: "Nous avons de grands espoirs pour CodeCombat."
alert_account_message_intro: "Salut!"
archmage_subscribe_descr: "Recevoir des courriels sur de nouvelles opportunités et des annonces de programmation."
contact: contact:
contact_us: "Contacter CodeCombat" contact_us: "Contacter CodeCombat"
# welcome: "Good to hear from you! Use this form to send us email." # welcome: "Good to hear from you! Use this form to send us email."
@ -80,6 +87,11 @@ module.exports = nativeDescription: "français", englishDescription: "French", t
# sending: "Sending..." # sending: "Sending..."
# send: "Send Feedback" # send: "Send Feedback"
# #
classes:
archmage_title: "Archmage"
archmage_title_description: "(Codeur)"
archmage_email_description: "Obtenez des courriels au sujet des nouvelles et des annonces sur les CodeCombat général."
diplomat_suggestion: diplomat_suggestion:
title: "Aidez à traduire CodeCombat!" title: "Aidez à traduire CodeCombat!"
sub_heading: "Nous avons besoin de vos connaissances des langues." sub_heading: "Nous avons besoin de vos connaissances des langues."
@ -181,4 +193,10 @@ module.exports = nativeDescription: "français", englishDescription: "French", t
# hud_continue: "Continue (press shift-space)" # hud_continue: "Continue (press shift-space)"
editor: editor:
new_component_title: "creér un composant" new_component_title: "Créer un nouveau composant"
new_component_field_system: "Système"
new_component_field_name: "Nom"
new_component_btn_cancel: "Annuler"
new_component_btn_create: "Créer"
level_btn_save: "Sauver"
level_component_edit_title: "Editer le composant"

View file

@ -6,26 +6,74 @@ block content
.span5 .span5
h2 Who is CodeCombat? h2(data-i18n="about.who_is_codecombat")
| Who is CodeCombat?
:markdown p
[George](http://georgesaines.com/), [Scott](http://scotterickson.info), and [Nick](http://www.nickwinter.net) together started CodeCombat in 2013. We also created [Skritter](http://www.skritter.com/) in 2008, growing it to the #1 web and iOS application for learning to write Chinese and Japanese characters. a(href="http://georgesaines.com/") George
span ,
a(href="http://scotterickson.info/") Scott
span ,
span(data-i18n="general.and") and
span
a(href="http://scotterickson.info/") Nick
span
span(data-i18n="about.who_description_prefix")
| together started CodeCombat in 2013. We also created
a(href="http://www.skritter.com/") Skritter
span
span(data-i18n="about.who_description_sufix")
| in 2008, growing it to the #1 web and iOS application
| for learning to write Chinese and Japanese characters.
p Now it's time to teach people to write code. p(data-i18n="about.who_description_ending")
| Now it's time to teach people to write code.
h2 Why CodeCombat? h2(data-i18n="about.why_codecombat")
| Why CodeCombat?
p When making Skritter, George didn't know how to program and was constantly frustrated by his inability to implement his ideas. Afterwards, he tried learning, but the lessons were too slow. His housemate, wanting to reskill and stop teaching, tried Codecademy, but "got bored." Each week another friend started Codecademy, then dropped off. We realized it was the same problem we'd solved with Skritter: people learning a skill via slow, intensive lessons when what they need is fast, extensive practice. We know how to fix that. p(data-i18n="about.why_paragraph_1")
| When making Skritter, George didn't know how to program and was constantly
| frustrated by his inability to implement his ideas. Afterwards,
| he tried learning, but the lessons were too slow. His housemate,
| wanting to reskill and stop teaching, tried Codecademy, but "got bored."
| Each week another friend started Codecademy, then dropped off.
| We realized it was the same problem we'd solved with Skritter:
| people learning a skill via slow, intensive lessons when what they need is fast,
| extensive practice. We know how to fix that.
p Need to learn to code? You don't need lessons. You need to write a lot of code and have a great time doing it. p(data-i18n="about.why_paragraph_2")
| Need to learn to code? You don't need lessons.
| You need to write a lot of code and have a great time doing it.
:markdown p
That's what programming is about. It's gotta be fun. Not fun like _yay a badge_ but fun like _NO MOM I HAVE TO FINISH THE LEVEL!_ That's why CodeCombat is a multiplayer game, not a gamified lesson course. We *won't* stop until you *can't* stop--but this time, that's a good thing. span(data-i18n="about.why_paragraph_3_prefix")
| That's what programming is about. It's gotta be fun.
| Not fun like
span
i(data-i18n="about.why_paragraph_3_italic")
| yay a badge
span
span(data-i18n="about.why_paragraph_3_center")
| but fun like
span
i(data-i18n="about.why_paragraph_3_italic_caps")
| NO MOM I HAVE TO FINISH THE LEVEL!
span
span(data-i18n="about.why_paragraph_3_sufix")
| That's why CodeCombat is a multiplayer game,
| not a gamified lesson course. We won't stop
| until you can't stop--but this time, that's a good thing.
p If you're going to get addicted to some game, get addicted to this one and become one of the wizards of the tech age. p(data-i18n="about.why_paragraph_4")
| If you're going to get addicted to some game,
| get addicted to this one and become one of the wizards of the tech age.
p.lead And hey, it's free. p.lead
a(href="/") Start wizarding now! span(data-i18n="about.why_ending")
| And hey, it's free.
a(href="/", data-i18n="about.why_ending_url")
| Start wizarding now!
ul.span5.team-column ul.span5.team-column
@ -41,7 +89,9 @@ block content
h3 h3
a(href="http://georgesaines.com") George Saines a(href="http://georgesaines.com") George Saines
p CEO, business guy, web designer, game designer, and champion of beginning programmers everywhere. p(data-i18n="about.george_description")
| CEO, business guy, web designer, game designer,
| and champion of beginning programmers everywhere.
li li
@ -52,7 +102,10 @@ block content
h3 h3
a(href="http://scotterickson.info") Scott Erickson a(href="http://scotterickson.info") Scott Erickson
p Programmer extraordinaire, software architect, kitchen wizard, and master of finances. Scott is the reasonable one. p(data-i18n="about.scott_description")
| Programmer extraordinaire, software architect,
| kitchen wizard, and master of finances.
| Scott is the reasonable one.
li li
@ -63,7 +116,10 @@ block content
h3 h3
a(href="http://www.nickwinter.net") Nick Winter a(href="http://www.nickwinter.net") Nick Winter
p Programming wizard, eccentric motivation mage, and upside-down experimenter. Nick can do anything and chooses to build CodeCombat. p(data-i18n="about.nick_description")
| Programming wizard, eccentric motivation mage,
| and upside-down experimenter.
| Nick can do anything and chooses to build CodeCombat.
li li
@ -74,7 +130,10 @@ block content
h3 h3
Jeremy Arns Jeremy Arns
p Customer support mage, usability tester, and community organizer, you've probably already spoken with Jeremy. p(data-i18n="about.jeremy_description")
| Customer support mage, usability tester,
| and community organizer, you've probably
| already spoken with Jeremy.
li li
@ -85,6 +144,8 @@ block content
h3 h3
a(href="http://michaelschmatz.com/") Michael Schmatz a(href="http://michaelschmatz.com/") Michael Schmatz
p Programmer, sys admin, and undergrad technical wunderkind, Michael is the person keeping our servers online. p(data-i18n="about.michael_description")
| Programmer, sys admin, and undergrad technical wunderkind,
| Michael is the person keeping our servers online.

View file

@ -100,51 +100,69 @@ block content
br br
.control-group .control-group
label.control-label(for="email_developer") Archmage label.control-label(for="email_developer")
span(data-i18n="classes.archmage_title")
| Archmage
br br
span(data-i18n="classes.archmage_title_description")
| (Coder) | (Coder)
.controls .controls
input#email_developer(name="email_developer", type="checkbox", checked=subs.developer) input#email_developer(name="email_developer", type="checkbox", checked=subs.developer)
span.help-inline Get emails about general news and announcements about CodeCombat. span(data-i18n="classes.archmage_email_description").help-inline Get emails about general news and announcements about CodeCombat.
.control-group .control-group
label.control-label(for="email_level_creator") Artisan label.control-label(for="email_level_creator")
span(data-i18n="classes.artisan_title")
| Artisan
br br
span(data-i18n="classes.artisan_title_description")
| (Level Builder) | (Level Builder)
.controls .controls
input#email_level_creator(name="email_level_creator", type="checkbox", checked=subs.level_creator) input#email_level_creator(name="email_level_creator", type="checkbox", checked=subs.level_creator)
span.help-inline Get emails on level editor updates and announcements. span(data-i18n="classes.artisan_email_description").help-inline Get emails on level editor updates and announcements.
.control-group .control-group
label.control-label(for="email_tester") Adventurer label.control-label(for="email_tester")
span(data-i18n="classes.adventurer_title")
| Adventurer
br br
span(data-i18n="classes.adventurer_title_description")
| (Level Playtester) | (Level Playtester)
.controls .controls
input#email_tester(name="email_tester", type="checkbox", checked=subs.tester) input#email_tester(name="email_tester", type="checkbox", checked=subs.tester)
span.help-inline Get emails when there are new levels to test. span(data-i18n="classes.adventurer_email_description").help-inline Get emails when there are new levels to test.
.control-group .control-group
label.control-label(for="email_article_editor") Scribe label.control-label(for="email_article_editor")
span(data-i18n="classes.scribe_title")
| Scribe
br br
| (Artile Editor) span(data-i18n="classes.scribe_title_description")
| (Article Editor)
.controls .controls
input#email_article_editor(name="email_article_editor", type="checkbox", checked=subs.article_editor) input#email_article_editor(name="email_article_editor", type="checkbox", checked=subs.article_editor)
span.help-inline Get emails about article writing announcements. span(data-i18n="classes.scribe_email_description").help-inline Get emails about article writing announcements.
.control-group .control-group
label.control-label(for="email_translator") Diplomat label.control-label(for="email_translator")
span(data-i18n="classes.diplomat_title")
| Diplomat
br br
span(data-i18n="classes.diplomat_title_description")
| (Translator) | (Translator)
.controls .controls
input#email_translator(name="email_translator", type="checkbox", checked=subs.translator) input#email_translator(name="email_translator", type="checkbox", checked=subs.translator)
span.help-inline Get emails about i18n developments and, eventually, levels to translate. span(data-i18n="classes.diplomat_email_description").help-inline Get emails about i18n developments and, eventually, levels to translate.
.control-group .control-group
label.control-label(for="email_support") Ambassador label.control-label(for="email_support")
span(data-i18n="classes.ambassador_title")
| Ambassador
br br
span(data-i18n="classes.ambassador_title_description")
| (Support) | (Support)
.controls .controls
input#email_support(name="email_support", type="checkbox", checked=subs.support) input#email_support(name="email_support", type="checkbox", checked=subs.support)
span.help-inline Get emails on support updates and multiplayer developments. span(data-i18n="classes.ambassador_description").help-inline Get emails on support updates and multiplayer developments.
button.btn#toggle-all-button(data-i18n="account_settings.email_toggle") Toggle All button.btn#toggle-all-button(data-i18n="account_settings.email_toggle") Toggle All

View file

@ -2,18 +2,18 @@ extends /templates/base
block content block content
h3 Admin Views h3(data-i18n="admin.av_title") Admin Views
h4 Entities h4(data-i18n="admin.av_entities_sub_title") Entities
ul ul
li li
a(href='/admin/users') Users a(href="/admin/users", data-i18n="admin.av_entities_users_url") Users
li li
a(href='/admin/level_sessions') Active Instances a(href="/admin/level_sessions", data-i18n="admin.av_entities_active_instances_url") Active Instances
h4 Other h4(data-i18n="admin.av_other_sub_title") Other
ul ul
li li
a(href='/admin/base') Base (for debugging base.jade) a(href="/admin/base", data-i18n="admin.av_other_debug_base_url") Base (for debugging base.jade)

View file

@ -2,7 +2,7 @@ extends /templates/base
block content block content
h1 Latest Games h1(data-i18n="admin.lg_title") Latest Games
each session in sessions each session in sessions
- var url = '/play/level/'+session.get('levelID')+'?session='+session.id - var url = '/play/level/'+session.get('levelID')+'?session='+session.id

View file

@ -2,7 +2,7 @@ extends /templates/base
block content block content
h1 User List h1(data-i18n="admin.u_title") User List
table.table.table-striped.table-bordered.table-condensed#users table.table.table-striped.table-bordered.table-condensed#users
tbody tbody

View file

@ -11,49 +11,73 @@ block content
.class_image .class_image
img(src="/images/pages/contribute/adventurer.png", alt="") img(src="/images/pages/contribute/adventurer.png", alt="")
h2 Adventurer (Level Playtester) h2
p Let's be clear about your role: you are the tank. You're going to take heavy damage. span(data-i18n="classes.adventurer_title") Adventurer
span
span(data-i18n="classes.adventurer_title_description") (Level Playtester)
p(data-i18n="account_settings.adventurer_introduction")
| Let's be clear about your role: you are the tank. You're going to take heavy damage.
| We need people to try out brand-new levels and help identify how to make things better. | We need people to try out brand-new levels and help identify how to make things better.
| The pain will be enormous; making good games is a long process and no one gets | The pain will be enormous; making good games is a long process and no one gets
| it right the first time. | it right the first time.
| If you can endure and have a high constitution score, then this class might be for you. | If you can endure and have a high constitution score, then this class might be for you.
h4 Class Attributes h4(data-i18n="contribute.class_attributes") Class Attributes
ul ul
li A thirst for learning. You want to learn how to code and we want to teach you how to code. li(data-i18n="account_settings.adventurer_attribute_1")
| A thirst for learning. You want to learn how to code and we want to teach you how to code.
| You'll probably be doing most of the teaching in this case, though. | You'll probably be doing most of the teaching in this case, though.
li Charismatic. Be gentle but articulate about what needs improving, and offer suggestions li(data-i18n="account_settings.adventurer_attribute_2")
| Charismatic. Be gentle but articulate about what needs improving, and offer suggestions
| on how to improve. | on how to improve.
h4 How To Join h4(data-i18n="contribute.how_to_join") How To Join
p Either get together with (or recruit!) an Artisan and work with them, or p
span(data-i18n="contribute.adventurer_join_pref")
| Either get together with (or recruit!) an Artisan and work with them, or
| check the box below to receive emails when there are new levels to test. | check the box below to receive emails when there are new levels to test.
| We'll also be posting about levels to review on our networks like | We'll also be posting about levels to review on our networks like
a(href="http://discourse.codecombat.com/category/adventurer") our forum span
| , a(href="http://discourse.codecombat.com/category/adventurer", data-i18n="contribute.adventurer_forum_url")
a(href="https://www.facebook.com/codecombat") Facebook | our forum
| , span ,
a(href="https://twitter.com/CodeCombat") Twitter a(href="https://www.facebook.com/codecombat", data-i18n="contribute.adventurer_facebook_url")
| , and | Facebook
a(href="https://plus.google.com/115285980638641924488/posts") Google+ span ,
| , so if you prefer to be notified those ways, sign up there! a(href="https://twitter.com/CodeCombat", data-i18n="contribute.adventurer_twitter_url")
| Twitter
span , and
a(href="https://plus.google.com/115285980638641924488/posts", data-i18n="contribute.adventurer_gplus_url")
| Google+
span ,
span(data-i18n="contribute.adventurer_join_suf")
| so if you prefer to be notified those ways, sign up there!
if me.attributes.anonymous if me.attributes.anonymous
div#sign-up.alert.alert-info div#sign-up.alert.alert-info
strong Hey there! strong(data-i18n="contribute.alert_account_message_intro")
| Hey there!
span
span(data-i18n="contribute.alert_account_message_pref")
| To subscribe for class emails, you'll need to | To subscribe for class emails, you'll need to
a(data-toggle="coco-modal", data-target="modal/signup") create an account a(data-toggle="coco-modal", data-target="modal/signup", data-i18n="contribute.alert_account_message_create_url")
| create an account
span
span(data-i18n="contribute.alert_account_message_suf")
| first. | first.
label.checkbox(for="tester").well label.checkbox(for="tester").well
input(type='checkbox', name="tester", id="tester") input(type='checkbox', name="tester", id="tester")
span(data-i18n="contribute.adventurer_subscribe_desc")
| Get emails when there are new levels to test. | Get emails when there are new levels to test.
.saved-notification ✓ Saved .saved-notification ✓ Saved
h4 Changes are saved automatically when you toggle checkboxes. h4(data-i18n="contribute.changes_auto_save")
| Changes are saved automatically when you toggle checkboxes.
#Contributors #Contributors
h3 Our Brave Adventurers: h3(data-i18n="contribute.brave_adventurers")
| Our Brave Adventurers:
ul.adventurers ul.adventurers
li Kieizroe li Kieizroe

View file

@ -11,43 +11,62 @@ block content
.class_image .class_image
img(src="/images/pages/contribute/ambassador.png", alt="") img(src="/images/pages/contribute/ambassador.png", alt="")
h2 Ambassador (Support) h2
p This is a community we're building, and you are the connections. span(data-i18n="classes.ambassador_title") Ambassador
span
span(data-i18n="classes.ambassador_title_description") (Support)
p(data-i18n="contribute.ambassador_introduction")
| This is a community we're building, and you are the connections.
| We've got Olark chats, emails, and social networks with lots of people to talk with | We've got Olark chats, emails, and social networks with lots of people to talk with
| and help get acquainted with the game and learn from. | and help get acquainted with the game and learn from.
| If you want to help people get involved and have fun, and get a good feel of the pulse of | If you want to help people get involved and have fun, and get a good feel of the pulse of
| CodeCombat and where we're going, then this class might be for you. | CodeCombat and where we're going, then this class might be for you.
h4 Class Attributes h4(data-i18n="contribute.class_attributes") Class Attributes
ul ul
li Communication skills. Be able to identify the problems players are having li(data-i18n="contribute.ambassador_attribute_1")
| Communication skills. Be able to identify the problems players are having
| and help them solve them. Also, keep the rest of us informed about what | and help them solve them. Also, keep the rest of us informed about what
| players are saying, what they like and don't like and want more of! | players are saying, what they like and don't like and want more of!
h4 How to Join h4(data-i18n="contribute.how_to_join") How to Join
p p
a(title='Contact', tabindex=-1, data-toggle="coco-modal", data-target="modal/contact") Contact us a(title='Contact', tabindex=-1, data-toggle="coco-modal", data-target="modal/contact", data-i18n="contact_us_url")
| , tell us a little about yourself, what you've done and what you'd | Contact us
span ,
span(data-i18n="contribute.ambassador_join_desc")
| tell us a little about yourself, what you've done and what you'd
| be interested in doing. We'll go from there! | be interested in doing. We'll go from there!
p p
strong Note strong(data-i18n="contribute.ambassador_join_note_strong")
| : One of our top priorities is to build multiplayer where players having difficulty | Note
span :
span(data-i18n="contribute.ambassador_join_note_desc")
| One of our top priorities is to build multiplayer where players having difficulty
| solving levels can summon higher level wizards to help them. | solving levels can summon higher level wizards to help them.
| This will be a great way for ambassadors to do their thing. We'll keep you posted! | This will be a great way for ambassadors to do their thing. We'll keep you posted!
if me.attributes.anonymous if me.attributes.anonymous
div#sign-up.alert.alert-info div#sign-up.alert.alert-info
strong Hey there! strong(data-i18n="contribute.alert_account_message_intro")
| Hey there!
span
span(data-i18n="contribute.alert_account_message_pref")
| To subscribe for class emails, you'll need to | To subscribe for class emails, you'll need to
a(data-toggle="coco-modal", data-target="modal/signup") create an account a(data-toggle="coco-modal", data-target="modal/signup", data-i18n="contribute.alert_account_message_create_url")
| create an account
span
span(data-i18n="contribute.alert_account_message_suf")
| first. | first.
label.checkbox(for="support").well label.checkbox(for="support").well
input(type='checkbox', name="support", id="support") input(type='checkbox', name="support", id="support")
span(data-i18n="contribute.ambassador_subscribe_desc")
| Get emails on support updates and multiplayer developments. | Get emails on support updates and multiplayer developments.
.saved-notification ✓ Saved .saved-notification ✓ Saved
h4 Changes are saved automatically when you toggle checkboxes. h4(data-i18n="contribute.changes_auto_save")
| Changes are saved automatically when you toggle checkboxes.
div.clearfix div.clearfix

View file

@ -11,62 +11,82 @@ block content
.class_image .class_image
img(src="/images/pages/contribute/archmage.png", alt="") img(src="/images/pages/contribute/archmage.png", alt="")
h2 Archmage (Coder) h2
p One of the best parts about building games is they synthesize so many different things. span(data-i18n="classes.archmage_title") Archmage
span
span(data-i18n="classes.archmage_title_description") (Coder)
p(data-i18n="contribute.archmage_introduction")
| One of the best parts about building games is they synthesize so many different things.
| Graphics, sound, real-time networking, social networking, and of course many of the | Graphics, sound, real-time networking, social networking, and of course many of the
| more common aspects of programming, from low-level database management, | more common aspects of programming, from low-level database management,
| and server administration to user facing design and interface building. | and server administration to user facing design and interface building.
| There's a lot to do, and if you're an experienced programmer with a hankering | There's a lot to do, and if you're an experienced programmer with a hankering
| to really dive into the nitty-gritty of CodeCombat, this class might be for you. | to really dive into the nitty-gritty of CodeCombat, this class might be for you.
| We would love to have your help building the best programming game ever.
p Right now we have open-sourced two of our tools on the project: h4(data-i18n="contribute.class_attributes") Class Attributes
a(href="https://github.com/codecombat/aether") Aether
| and
a(href="https://github.com/codecombat/treema") Treema
| . We are also open sourcing everything momentarily, so stay tuned for access to the main repo!
| We would love to have your help building out the best programming game ever.
h4 Class Attributes
ul ul
li Knowledge in li
span(data-i18n="contribute.archmage_attribute_1_pref") Knowledge in
a(href="http://coffeescript.org/") CoffeeScript a(href="http://coffeescript.org/") CoffeeScript
span(data-i18n="contribute.archmage_attribute_1_suf")
| , or a desire to learn. Most of our code is in this language. | , or a desire to learn. Most of our code is in this language.
| If you're a fan of Ruby or Python, you'll feel right at home. | If you're a fan of Ruby or Python, you'll feel right at home.
| It's just JavaScript, but with a nicer syntax. | It's just JavaScript, but with a nicer syntax.
li Some experience in programming and personal initiative. li(data-i18n="contribute.archmage_attribute_2")
| Some experience in programming and personal initiative.
| We'll help you get oriented, but we can't spend much time training you. | We'll help you get oriented, but we can't spend much time training you.
h4 How To Join h4(data-i18n="contribute.how_to_join") How To Join
p p
span(data-i18n="contribute.join_desc_1")
| Anyone can help out! Just check out our | Anyone can help out! Just check out our
a(title='GitHub', tabindex=-1) GitHub a(title='GitHub', href="https://github.com/codecombat/codecombat", tabindex=-1, data-i18n="contribute.join_url_github")
| to get started, and check the box below to mark yourself as a brave Archmage. | GitHub
span
span(data-i18n="contribute.join_desc_2")
| to get started, and check the box below to mark yourself as a brave Archmage and get the latest news by email.
| Want to chat about what to do or how to get more deeply involved? | Want to chat about what to do or how to get more deeply involved?
a(title='Contact', tabindex=-1, data-toggle="coco-modal", data-target="modal/contact") Contact us a(title='Contact', tabindex=-1, data-toggle="coco-modal", data-target="modal/contact", data-i18n="contribute.join_url_email")
| , tell us a little about yourself, what you've done and what you'd | Email us
| be interested in working on. We'll go from there! span(data-i18n="contribute.join_desc_3")
| , or find us in our
a(href="http://www.hipchat.com/g3plnOKqa", data-i18n="contribute.join_url_hipchat") public HipChat room
span
span(data-i18n="contribute.join_desc_4")
| and we'll go from there!
if me.attributes.anonymous if me.attributes.anonymous
div#sign-up.alert.alert-info div#sign-up.alert.alert-info
strong Hey there! strong(data-i18n="contribute.alert_account_message_intro")
| Hey there!
span
span(data-i18n="contribute.alert_account_message_pref")
| To subscribe for class emails, you'll need to | To subscribe for class emails, you'll need to
a(data-toggle="coco-modal", data-target="modal/signup") create an account a(data-toggle="coco-modal", data-target="modal/signup", data-i18n="contribute.alert_account_message_create_url")
| create an account
span
span(data-i18n="contribute.alert_account_message_suf")
| first. | first.
label.checkbox(for="developer").well label.checkbox(for="developer").well
input(type='checkbox', name="developer", id="developer") input(type='checkbox', name="developer", id="developer")
span(data-i18n="contribute.archmage_subscribe_desc")
| Get emails on new coding opportunities and announcements. | Get emails on new coding opportunities and announcements.
.saved-notification ✓ Saved .saved-notification ✓ Saved
h4 Changes are saved automatically when you toggle checkboxes. h4(data-i18n="contribute.changes_auto_save")
| Changes are saved automatically when you toggle checkboxes.
#Contributors #Contributors
h3 Our Magical Archmages: h3(data-i18n="contribute.magical_archmages")
| Our Magical Archmages:
ul.archmages ul.archmages
li David Golds li David Golds
li Zach Martin li Zach Martin
li Tom Steinbrecher li Tom Steinbrecher
li Glen De Cauwsemaecker
li Mischa Lewis-Norelle li Mischa Lewis-Norelle
li Sébastien Moratinos li Sébastien Moratinos
li Chloe Fan li Chloe Fan

View file

@ -11,49 +11,76 @@ block content
.class_image .class_image
img(src="/images/pages/contribute/artisan.png", alt="") img(src="/images/pages/contribute/artisan.png", alt="")
h2 Artisan (Level Builder) h2
p We must construct additional levels! span(data-i18n="classes.artisan_title") Artisan
span
span(data-i18n="classes.artisan_title_description") (Level Builder)
p
span(data-i18n="contribute.artisan_introduction_pref")
| We must construct additional levels!
| People be clamoring for more content, and we can only build so many ourselves. | People be clamoring for more content, and we can only build so many ourselves.
| Right now your workstation is level one; our level editor is barely | Right now your workstation is level one; our level editor is barely
| usable even by its creators, so be wary. | usable even by its creators, so be wary.
| If you have visions of campaigns spanning for-loops to | If you have visions of campaigns spanning for-loops to
a(href="http://stackoverflow.com/questions/758088/seeking-contrived-example-code-continuations/758105#758105") Mondo Bizzaro span
a(href="http://stackoverflow.com/questions/758088/seeking-contrived-example-code-continuations/758105#758105")
| Mondo Bizzaro
span
span(data-i18n="contribute.artisan_introduction_suf")
| to then this class might be for you. | to then this class might be for you.
h4 Class Attributes h4(data-i18n="contribute.class_attributes") Class Attributes
ul ul
li Any experience in building content like this would be nice, such as using li(data-i18n="contribute.artisan_attribute_1")
| Any experience in building content like this would be nice, such as using
| Blizzard's level editors. But not required! | Blizzard's level editors. But not required!
li A hankering to do a whole lot of testing and iteration. li(data-i18n="contribute.artisan_attribute_2")
| A hankering to do a whole lot of testing and iteration.
| To make good levels, you need to take it to others and watch them play it, | To make good levels, you need to take it to others and watch them play it,
| and be prepared to find a lot of things to fix. | and be prepared to find a lot of things to fix.
li For the time being, endurance en par with an Adventurer. li(data-i18n="contribute.artisan_attribute_3")
| For the time being, endurance en par with an Adventurer.
| Our Level Editor is super preliminary and frustrating to use. You have been warned! | Our Level Editor is super preliminary and frustrating to use. You have been warned!
h4 How To Join h4(data-i18n="contribute.how_to_join") How To Join
p The Level Editor is live! Go forth and fiddle with it. p
span(data-i18n="contribute.artisan_join_desc_pref")
| The Level Editor is live! Go forth and fiddle with it.
| Right now for the sake of security, you can't make Components (the most powerful part of level building) | Right now for the sake of security, you can't make Components (the most powerful part of level building)
| but be in touch with us and we'll see if we can make what you need. | but be in touch with us and we'll see if we can make what you need.
| See the | See the
a(href="https://docs.google.com/document/d/117tMcL95T1KY8BDisr0iGi5Frb2ZvBJTC0us5hyQkJY/edit?usp=sharing") preliminary documentation span
a(href="https://docs.google.com/document/d/117tMcL95T1KY8BDisr0iGi5Frb2ZvBJTC0us5hyQkJY/edit?usp=sharing", data-i18n="contribute.artisan_url_documentation")
| preliminary documentation
span
span(data-i18n="contribute.artisan_join_desc_suf")
| for more info, and please comment on it so we can make the whole system better. | for more info, and please comment on it so we can make the whole system better.
if me.attributes.anonymous if me.attributes.anonymous
div#sign-up.alert.alert-info div#sign-up.alert.alert-info
strong Hey there! strong(data-i18n="contribute.alert_account_message_intro")
| Hey there!
span
span(data-i18n="contribute.alert_account_message_pref")
| To subscribe for class emails, you'll need to | To subscribe for class emails, you'll need to
a(data-toggle="coco-modal", data-target="modal/signup") create an account a(data-toggle="coco-modal", data-target="modal/signup", data-i18n="contribute.alert_account_message_create_url")
| create an account
span
span(data-i18n="contribute.alert_account_message_suf")
| first. | first.
label.checkbox(for="level_creator").well label.checkbox(for="level_creator").well
input(type='checkbox', name="level_creator", id="level_creator") input(type='checkbox', name="level_creator", id="level_creator")
span(data-i18n="contribute.artisan_subscribe_desc")
| Get emails on level editor updates and announcements. | Get emails on level editor updates and announcements.
.saved-notification ✓ Saved .saved-notification ✓ Saved
h4 Changes are saved automatically when you toggle checkboxes. h4(data-i18n="contribute.changes_auto_save")
| Changes are saved automatically when you toggle checkboxes.
#Contributors #Contributors
h3 Our Creative Artisans: h3(data-i18n="contribute.creative_artisans")
| Our Creative Artisans:
ul.artisans ul.artisans
li Sootn li Sootn
li Zach Martin li Zach Martin

View file

@ -9,13 +9,16 @@ block content
div#contribute-main.class-main div#contribute-main.class-main
div#intro div#intro
h2 Contributing h2(data-i18n="contribute.page_title") Contributing
#homepage_screenshot #homepage_screenshot
img(src="/images/pages/contribute/contribute_header.png", alt="") img(src="/images/pages/contribute/contribute_header.png", alt="")
p p
strong We have high hopes for CodeCombat. strong(data-i18n="contribute.introduction_desc_intro")
| We have high hopes for CodeCombat.
|
span(data-i18n="contribute.introduction_desc_pref")
| We want to be where programmers of all stripes come to learn and play together, | We want to be where programmers of all stripes come to learn and play together,
| introduce others to the wonderful world of coding, | introduce others to the wonderful world of coding,
| and reflect the best parts of the community. | and reflect the best parts of the community.
@ -23,26 +26,40 @@ block content
| what makes projects like GitHub, Stack Overflow and Linux great are the people who | what makes projects like GitHub, Stack Overflow and Linux great are the people who
| use them and build on them. | use them and build on them.
| To that end, | To that end,
a(href="https://github.com/codecombat/codecombat") CodeCombat is totally open source a(href="https://github.com/codecombat/codecombat", data-i18n="contribute.introduction_desc_github_url")
| CodeCombat is totally open source
span(data-i18n="contribute.introduction_desc_suf")
| , and we aim to provide as many ways as possible for you to take part and | , and we aim to provide as many ways as possible for you to take part and
| make this project as much yours as ours. | make this project as much yours as ours.
p We hope you'll join our party! p(data-i18n="contribute.introduction_desc_ending")
p.signature - Nick, George, Scott, Michael, and Jeremy | We hope you'll join our party!
p(data-i18n="contribute.introduction_desc_signature").signature
| - Nick, George, Scott, Michael, and Jeremy
hr hr
if me.attributes.anonymous if me.attributes.anonymous
div#sign-up.alert.alert-info div#sign-up.alert.alert-info
strong Hey there! strong(data-i18n="contribute.alert_account_message_intro")
| Hey there!
span
span(data-i18n="contribute.alert_account_message_pref")
| To subscribe for class emails, you'll need to | To subscribe for class emails, you'll need to
a(data-toggle="coco-modal", data-target="modal/signup") create an account a(data-toggle="coco-modal", data-target="modal/signup", data-i18n="contribute.alert_account_message_create_url")
| create an account
span
span(data-i18n="contribute.alert_account_message_suf")
| first. | first.
#archmage #archmage
.class_image.header-scrolling-fix .class_image.header-scrolling-fix
img(src="/images/pages/contribute/archmage.png", alt="") img(src="/images/pages/contribute/archmage.png", alt="")
h3.header-scrolling-fix Archmage (Coder) h3.header-scrolling-fix
p One of the best parts about building games is they synthesize so many different things. span(data-i18n="classes.archmage_title") Archmage
span
span(data-i18n="classes.archmage_title_description") (Coder)
p(data-i18n="contribute.archmage_introduction")
| One of the best parts about building games is they synthesize so many different things.
| Graphics, sound, real-time networking, social networking, and of course many of the | Graphics, sound, real-time networking, social networking, and of course many of the
| more common aspects of programming, from low-level database management, | more common aspects of programming, from low-level database management,
| and server administration to user facing design and interface building. | and server administration to user facing design and interface building.
@ -50,33 +67,46 @@ block content
| to really dive into the nitty-gritty of CodeCombat, this class might be for you. | to really dive into the nitty-gritty of CodeCombat, this class might be for you.
| We would love to have your help building the best programming game ever. | We would love to have your help building the best programming game ever.
h4 Class Attributes h4(data-i18n="contribute.class_attributes") Class Attributes
ul ul
li Knowledge in li
span(data-i18n="contribute.archmage_attribute_1_pref") Knowledge in
a(href="http://coffeescript.org/") CoffeeScript a(href="http://coffeescript.org/") CoffeeScript
span(data-i18n="contribute.archmage_attribute_1_suf")
| , or a desire to learn. Most of our code is in this language. | , or a desire to learn. Most of our code is in this language.
| If you're a fan of Ruby or Python, you'll feel right at home. | If you're a fan of Ruby or Python, you'll feel right at home.
| It's just JavaScript, but with a nicer syntax. | It's just JavaScript, but with a nicer syntax.
li Some experience in programming and personal initiative. li(data-i18n="contribute.archmage_attribute_2")
| Some experience in programming and personal initiative.
| We'll help you get oriented, but we can't spend much time training you. | We'll help you get oriented, but we can't spend much time training you.
h4 How To Join h4(data-i18n="contribute.how_to_join") How To Join
p p
span(data-i18n="contribute.join_desc_1")
| Anyone can help out! Just check out our | Anyone can help out! Just check out our
a(title='GitHub', href="https://github.com/codecombat/codecombat", tabindex=-1) GitHub a(title='GitHub', href="https://github.com/codecombat/codecombat", tabindex=-1, data-i18n="contribute.join_url_github")
| GitHub
span
span(data-i18n="contribute.join_desc_2")
| to get started, and check the box below to mark yourself as a brave Archmage and get the latest news by email. | to get started, and check the box below to mark yourself as a brave Archmage and get the latest news by email.
| Want to chat about what to do or how to get more deeply involved? | Want to chat about what to do or how to get more deeply involved?
a(title='Contact', tabindex=-1, data-toggle="coco-modal", data-target="modal/contact") Email us a(title='Contact', tabindex=-1, data-toggle="coco-modal", data-target="modal/contact", data-i18n="contribute.join_url_email")
| Email us
span(data-i18n="contribute.join_desc_3")
| , or find us in our | , or find us in our
a(href="http://www.hipchat.com/g3plnOKqa") public HipChat room a(href="http://www.hipchat.com/g3plnOKqa", data-i18n="contribute.join_url_hipchat") public HipChat room
span
span(data-i18n="contribute.join_desc_4")
| and we'll go from there! | and we'll go from there!
a(href="/contribute/archmage") a(href="/contribute/archmage")
h3 Learn More About Becoming A Powerful Archmage h3(data-i18n="contribute.more_about_archmage")
| Learn More About Becoming A Powerful Archmage
label.checkbox(for="developer").well label.checkbox(for="developer").well
input(type='checkbox', name="developer", id="developer") input(type='checkbox', name="developer", id="developer")
span(data-i18n="contribute.archmage_subscribe_desc")
| Get emails on new coding opportunities and announcements. | Get emails on new coding opportunities and announcements.
.saved-notification ✓ Saved .saved-notification ✓ Saved
@ -86,114 +116,162 @@ block content
.class_image.header-scrolling-fix .class_image.header-scrolling-fix
img(src="/images/pages/contribute/artisan.png", alt="") img(src="/images/pages/contribute/artisan.png", alt="")
h3.header-scrolling-fix Artisan (Level Builder) h3.header-scrolling-fix
p We must construct additional levels! span(data-i18n="classes.artisan_title") Artisan
span
span(data-i18n="classes.artisan_title_description") (Level Builder)
p
span(data-i18n="contribute.artisan_introduction_pref")
| We must construct additional levels!
| People be clamoring for more content, and we can only build so many ourselves. | People be clamoring for more content, and we can only build so many ourselves.
| Right now your workstation is level one; our level editor is barely | Right now your workstation is level one; our level editor is barely
| usable even by its creators, so be wary. | usable even by its creators, so be wary.
| If you have visions of campaigns spanning for-loops to | If you have visions of campaigns spanning for-loops to
a(href="http://stackoverflow.com/questions/758088/seeking-contrived-example-code-continuations/758105#758105") Mondo Bizzaro span
a(href="http://stackoverflow.com/questions/758088/seeking-contrived-example-code-continuations/758105#758105")
| Mondo Bizzaro
span
span(data-i18n="contribute.artisan_introduction_suf")
| to then this class might be for you. | to then this class might be for you.
h4 Class Attributes h4(data-i18n="contribute.class_attributes") Class Attributes
ul ul
li Any experience in building content like this would be nice, such as using li(data-i18n="contribute.artisan_attribute_1")
| Any experience in building content like this would be nice, such as using
| Blizzard's level editors. But not required! | Blizzard's level editors. But not required!
li A hankering to do a whole lot of testing and iteration. li(data-i18n="contribute.artisan_attribute_2")
| A hankering to do a whole lot of testing and iteration.
| To make good levels, you need to take it to others and watch them play it, | To make good levels, you need to take it to others and watch them play it,
| and be prepared to find a lot of things to fix. | and be prepared to find a lot of things to fix.
li For the time being, endurance en par with an Adventurer. li(data-i18n="contribute.artisan_attribute_3")
| For the time being, endurance en par with an Adventurer.
| Our Level Editor is super preliminary and frustrating to use. You have been warned! | Our Level Editor is super preliminary and frustrating to use. You have been warned!
h4 How To Join h4(data-i18n="contribute.how_to_join") How To Join
p The Level Editor is live! Go forth and fiddle with it. p
span(data-i18n="contribute.artisan_join_desc_pref")
| The Level Editor is live! Go forth and fiddle with it.
| Right now for the sake of security, you can't make Components (the most powerful part of level building) | Right now for the sake of security, you can't make Components (the most powerful part of level building)
| but be in touch with us and we'll see if we can make what you need. | but be in touch with us and we'll see if we can make what you need.
| See the | See the
a(href="https://docs.google.com/document/d/117tMcL95T1KY8BDisr0iGi5Frb2ZvBJTC0us5hyQkJY/edit?usp=sharing") preliminary documentation span
a(href="https://docs.google.com/document/d/117tMcL95T1KY8BDisr0iGi5Frb2ZvBJTC0us5hyQkJY/edit?usp=sharing", data-i18n="contribute.artisan_url_documentation")
| preliminary documentation
span
span(data-i18n="contribute.artisan_join_desc_suf")
| for more info, and please comment on it so we can make the whole system better. | for more info, and please comment on it so we can make the whole system better.
a(href="/contribute/artisan") a(href="/contribute/artisan")
h3 Learn More About Becoming A Creative Artisan h3(data-i18n="contribute.more_about_artisan")
| Learn More About Becoming A Creative Artisan
label.checkbox(for="level_creator").well label.checkbox(for="level_creator").well
input(type='checkbox', name="level_creator", id="level_creator") input(type='checkbox', name="level_creator", id="level_creator")
span(data-i18n="contribute.artisan_subscribe_desc")
| Get emails on level editor updates and announcements. | Get emails on level editor updates and announcements.
.saved-notification ✓ Saved .saved-notification ✓ Saved
#adventurer #adventurer
.class_image.header-scrolling-fix .class_image.header-scrolling-fix
img(src="/images/pages/contribute/adventurer.png", alt="") img(src="/images/pages/contribute/adventurer.png", alt="")
h3.header-scrolling-fix Adventurer (Level Playtester) h3.header-scrolling-fix
p Let's be clear about your role: you are the tank. You're going to take heavy damage. span(data-i18n="classes.adventurer_title") Adventurer
span
span(data-i18n="classes.adventurer_title_description") (Level Playtester)
p(data-i18n="account_settings.adventurer_introduction")
| Let's be clear about your role: you are the tank. You're going to take heavy damage.
| We need people to try out brand-new levels and help identify how to make things better. | We need people to try out brand-new levels and help identify how to make things better.
| The pain will be enormous; making good games is a long process and no one gets | The pain will be enormous; making good games is a long process and no one gets
| it right the first time. | it right the first time.
| If you can endure and have a high constitution score, then this class might be for you. | If you can endure and have a high constitution score, then this class might be for you.
h4 Class Attributes h4(data-i18n="contribute.class_attributes") Class Attributes
ul ul
li A thirst for learning. You want to learn how to code and we want to teach you how to code. li(data-i18n="account_settings.adventurer_attribute_1")
| A thirst for learning. You want to learn how to code and we want to teach you how to code.
| You'll probably be doing most of the teaching in this case, though. | You'll probably be doing most of the teaching in this case, though.
li Charismatic. Be gentle but articulate about what needs improving, and offer suggestions li(data-i18n="account_settings.adventurer_attribute_2")
| Charismatic. Be gentle but articulate about what needs improving, and offer suggestions
| on how to improve. | on how to improve.
h4 How To Join h4(data-i18n="contribute.how_to_join") How To Join
p Either get together with (or recruit!) an Artisan and work with them, or p
span(data-i18n="contribute.adventurer_join_pref")
| Either get together with (or recruit!) an Artisan and work with them, or
| check the box below to receive emails when there are new levels to test. | check the box below to receive emails when there are new levels to test.
| We'll also be posting about levels to review on our networks like | We'll also be posting about levels to review on our networks like
a(href="http://discourse.codecombat.com/category/adventurer") our forum span
| , a(href="http://discourse.codecombat.com/category/adventurer", data-i18n="contribute.adventurer_forum_url")
a(href="https://www.facebook.com/codecombat") Facebook | our forum
| , span ,
a(href="https://twitter.com/CodeCombat") Twitter a(href="https://www.facebook.com/codecombat", data-i18n="contribute.adventurer_facebook_url")
| , and | Facebook
a(href="https://plus.google.com/115285980638641924488/posts") Google+ span ,
| , so if you prefer to be notified those ways, sign up there! a(href="https://twitter.com/CodeCombat", data-i18n="contribute.adventurer_twitter_url")
| Twitter
span , and
a(href="https://plus.google.com/115285980638641924488/posts", data-i18n="contribute.adventurer_gplus_url")
| Google+
span ,
span(data-i18n="contribute.adventurer_join_suf")
| so if you prefer to be notified those ways, sign up there!
a(href="/contribute/adventurer") a(href="/contribute/adventurer")
h3 Learn More About Becoming A Brave Adventurer h3(data-i18n="contribute.more_about_adventurer")
| Learn More About Becoming A Brave Adventurer
label.checkbox(for="tester").well label.checkbox(for="tester").well
input(type='checkbox', name="tester", id="tester") input(type='checkbox', name="tester", id="tester")
span(data-i18n="contribute.adventurer_subscribe_desc")
| Get emails when there are new levels to test. | Get emails when there are new levels to test.
.saved-notification ✓ Saved .saved-notification ✓ Saved
#scribe #scribe
.class_image.header-scrolling-fix .class_image.header-scrolling-fix
img(src="/images/pages/contribute/scribe.png", alt="") img(src="/images/pages/contribute/scribe.png", alt="")
h3.header-scrolling-fix Scribe (Article Editor) h3.header-scrolling-fix
p CodeCombat isn't just going to be a bunch of levels. span(data-i18n="classes.scribe_title") Scribe
span
span(data-i18n="classes.scribe_title_description") (Article Editor)
p
span(data-i18n="account_settings.scribe_introduction_pref")
| CodeCombat isn't just going to be a bunch of levels.
| It will also include a resource for knowledge, a wiki of programming concepts that levels can hook into. | It will also include a resource for knowledge, a wiki of programming concepts that levels can hook into.
| That way rather than each Artisan having to describe in detail what a comparison operator is, they | That way rather than each Artisan having to describe in detail what a comparison operator is, they
| can simply link their level to the Article describing them that is already written for the player's edification. | can simply link their level to the Article describing them that is already written for the player's edification.
| Something along the lines of what the | Something along the lines of what the
a(href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide") Mozilla Developer Network a(href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide", data-i18n="contribute.scribe_introduction_url_mozilla")
| Mozilla Developer Network
span(data-i18n="account_settings.scribe_introduction_suf")
| has built. If your idea of fun is articulating the concepts of programming in Markdown form, | has built. If your idea of fun is articulating the concepts of programming in Markdown form,
| then this class might be for you. | then this class might be for you.
h4 Class Attributes h4(data-i18n="contribute.class_attributes") Class Attributes
ul ul
li Skill in words is pretty much all you need. li(data-i18n="contribute.scribe_attribute_1")
| Skill in words is pretty much all you need.
| Not only grammar and spelling, but able to convey complicated ideas to others. | Not only grammar and spelling, but able to convey complicated ideas to others.
h4 How To Join h4(data-i18n="contribute.how_to_join") How To Join
p p
a(title='Contact', tabindex=-1, data-toggle="coco-modal", data-target="modal/contact") Contact us a(title='Contact', tabindex=-1, data-toggle="coco-modal", data-target="modal/contact", data-i18n="contribute.contact_us_url")
| , tell us a little about yourself, your experience with programming and | Contact us
span ,
span(data-i18n="contribute.scribe_join_description")
| tell us a little about yourself, your experience with programming and
| what sort of things you'd like to write about. We'll go from there! | what sort of things you'd like to write about. We'll go from there!
a(href="/contribute/scribe") a(href="/contribute/scribe")
h3 Learn More About Becoming A Diligent Scribe h3(data-i18n="contribute.more_about_scribe")
| Learn More About Becoming A Diligent Scribe
label.checkbox(for="article_editor").well label.checkbox(for="article_editor").well
input(type='checkbox', name="article_editor", id="article_editor") input(type='checkbox', name="article_editor", id="article_editor")
span(data-i18n="contribute.scribe_subscribe_desc")
| Get emails about article writing announcements. | Get emails about article writing announcements.
.saved-notification ✓ Saved .saved-notification ✓ Saved
@ -204,82 +282,113 @@ block content
.class_image.header-scrolling-fix .class_image.header-scrolling-fix
img(src="/images/pages/contribute/diplomat.png", alt="") img(src="/images/pages/contribute/diplomat.png", alt="")
h3.header-scrolling-fix Diplomat (Translator) h3.header-scrolling-fix
p So, if there's one thing we learned from the span(data-i18n="classes.diplomat_title") Diplomat
a(href="blog.codecombat.com/post/64658141307/codecombat-in-y-combinator") launch in October span
| , it's that there span(data-i18n="classes.diplomat_title_description") (Translator)
p
span(data-i18n="contribute.diplomat_introduction_pref")
| So, if there's one thing we learned from the
a(href="blog.codecombat.com/post/64658141307/codecombat-in-y-combinator", data-i18n="contribute.diplomat_launch_url")
| launch in October
span ,
span(data-i18n="contribute.diplomat_introduction_suf")
| it's that there
| is sizeable interest in CodeCombat in other countries, particularly Brazil! | is sizeable interest in CodeCombat in other countries, particularly Brazil!
| We're building a corps of translators eager to turn one set of words into | We're building a corps of translators eager to turn one set of words into
| another set of words to get CodeCombat as accessible across the world as possible. | another set of words to get CodeCombat as accessible across the world as possible.
| If you like getting sneak peeks at upcoming content and getting these levels to | If you like getting sneak peeks at upcoming content and getting these levels to
| your fellow nationals ASAP, then this class might be for you. | your fellow nationals ASAP, then this class might be for you.
h4 Class Attributes h4(data-i18n="contribute.class_attributes") Class Attributes
ul ul
li Fluency in English and the language you would like to translate to. li(data-i18n="contribute.diplomat_attribute_1")
| Fluency in English and the language you would like to translate to.
| When conveying complicated ideas, it's important to have a strong grasp in both! | When conveying complicated ideas, it's important to have a strong grasp in both!
h4 How to Join h4(data-i18n="contribute.how_to_join") How to Join
p We've started a lot of initial translations at p
a(href="https://docs.google.com/a/codecombat.com/spreadsheet/ccc?key=0AjsR1nOoMQ4MdFBqS1NqUmRTVG1hbEMxWTZEd1JrNXc&usp=drive_web#gid=0") this Google Doc span(data-i18n="contribute.diplomat_join_pref")
| , so check it out and add things for your language. Also, check this box below to | We've started a lot of initial translations at
a(href="https://docs.google.com/a/codecombat.com/spreadsheet/ccc?key=0AjsR1nOoMQ4MdFBqS1NqUmRTVG1hbEMxWTZEd1JrNXc&usp=drive_web#gid=0", data-i18n="contribute.diplomat_doc_url")
| this Google Doc
span ,
span(data-i18n="contribute.diplomat_join_suf")
| so check it out and add things for your language. Also, check this box below to
| keep up-to-date on new internationalization developments! | keep up-to-date on new internationalization developments!
a(href="/contribute/diplomat") a(href="/contribute/diplomat")
h3 Learn More About Becoming A Great Diplomat h3(data-i18n="contribute.more_about_diplomat")
| Learn More About Becoming A Great Diplomat
label.checkbox(for="translator").well label.checkbox(for="translator").well
input(type='checkbox', name="translator", id="translator") input(type='checkbox', name="translator", id="translator")
span(data-i18n="contribute.diplomat_subscribe_desc")
| Get emails about i18n developments and levels to translate. | Get emails about i18n developments and levels to translate.
.saved-notification ✓ Saved .saved-notification ✓ Saved
#ambassador #ambassador
.class_image.header-scrolling-fix .class_image.header-scrolling-fix
img(src="/images/pages/contribute/ambassador.png", alt="") img(src="/images/pages/contribute/ambassador.png", alt="")
h3.header-scrolling-fix Ambassador (Support) h3.header-scrolling-fix
p This is a community we're building, and you are the connections. span(data-i18n="classes.ambassador_title") Ambassador
span
span(data-i18n="classes.ambassador_title_description") (Support)
p(data-i18n="contribute.ambassador_introduction")
| This is a community we're building, and you are the connections.
| We've got Olark chats, emails, and social networks with lots of people to talk with | We've got Olark chats, emails, and social networks with lots of people to talk with
| and help get acquainted with the game and learn from. | and help get acquainted with the game and learn from.
| If you want to help people get involved and have fun, and get a good feel of the pulse of | If you want to help people get involved and have fun, and get a good feel of the pulse of
| CodeCombat and where we're going, then this class might be for you. | CodeCombat and where we're going, then this class might be for you.
h4 Class Attributes h4(data-i18n="contribute.class_attributes") Class Attributes
ul ul
li Communication skills. Be able to identify the problems players are having li(data-i18n="contribute.ambassador_attribute_1")
| Communication skills. Be able to identify the problems players are having
| and help them solve them. Also, keep the rest of us informed about what | and help them solve them. Also, keep the rest of us informed about what
| players are saying, what they like and don't like and want more of! | players are saying, what they like and don't like and want more of!
h4 How to Join h4(data-i18n="contribute.how_to_join") How to Join
p p
a(title='Contact', tabindex=-1, data-toggle="coco-modal", data-target="modal/contact") Contact us a(title='Contact', tabindex=-1, data-toggle="coco-modal", data-target="modal/contact", data-i18n="contact_us_url")
| , tell us a little about yourself, what you've done and what you'd | Contact us
span ,
span(data-i18n="contribute.ambassador_join_desc")
| tell us a little about yourself, what you've done and what you'd
| be interested in doing. We'll go from there! | be interested in doing. We'll go from there!
p p
strong Note strong(data-i18n="contribute.ambassador_join_note_strong")
| : One of our top priorities is to build multiplayer where players having difficulty | Note
span :
span(data-i18n="contribute.ambassador_join_note_desc")
| One of our top priorities is to build multiplayer where players having difficulty
| solving levels can summon higher level wizards to help them. | solving levels can summon higher level wizards to help them.
| This will be a great way for ambassadors to do their thing. We'll keep you posted! | This will be a great way for ambassadors to do their thing. We'll keep you posted!
a(href="/contribute/ambassador") a(href="/contribute/ambassador")
h3 Learn More About Becoming A Helpful Ambassador h3(data-i18n="contribute.more_about_ambassador")
| Learn More About Becoming A Helpful Ambassador
label.checkbox(for="support").well label.checkbox(for="support").well
input(type='checkbox', name="support", id="support") input(type='checkbox', name="support", id="support")
span(data-i18n="contribute.ambassador_subscribe_desc")
| Get emails on support updates and multiplayer developments. | Get emails on support updates and multiplayer developments.
.saved-notification ✓ Saved .saved-notification ✓ Saved
#counselor #counselor
.class_image.header-scrolling-fix .class_image.header-scrolling-fix
img(src="/images/pages/contribute/counselor.png", alt="") img(src="/images/pages/contribute/counselor.png", alt="")
h3.header-scrolling-fix Counselor (Expert) h3.header-scrolling-fix
p Do you have life experience? span(data-i18n="classes.counselor_title") Counselor
span
span(data-i18n="classes.counselor_title_description") (Expert/Teacher)
p(data-i18n="contribute.counselor_introduction_1")
| Do you have life experience?
| A different perspective on things that can help us decide how to shape CodeCombat? | A different perspective on things that can help us decide how to shape CodeCombat?
| Of all these roles, this will probably take the least time, but | Of all these roles, this will probably take the least time, but
| individually you may make the most difference. | individually you may make the most difference.
@ -287,23 +396,30 @@ block content
| game development, open source project management, technical recruiting, entrepreneurship, | game development, open source project management, technical recruiting, entrepreneurship,
| or design. | or design.
p Or really anything that is relevant to the development of CodeCombat. p(data-i18n="contribute.counselor_introduction_2")
| Or really anything that is relevant to the development of CodeCombat.
| If you have knowledge and want to share it to help grow this project, then | If you have knowledge and want to share it to help grow this project, then
| this class might be for you. | this class might be for you.
h4 Class Attributes h4(data-i18n="contribute.class_attributes") Class Attributes
ul ul
li Experience, in any of the areas above or something you think might be helpful. li(data-i18n="contribute.counselor_attribute_1")
li A little bit of free time! | Experience, in any of the areas above or something you think might be helpful.
li(data-i18n="contribute.counselor_attribute_2")
| A little bit of free time!
h4 How to Join h4(data-i18n="contribute.how_to_join") How to Join
p p
a(title='Contact', tabindex=-1, data-toggle="coco-modal", data-target="modal/contact") Contact us a(title='Contact', tabindex=-1, data-toggle="coco-modal", data-target="modal/contact", data-i18n="contact_us_url")
| , tell us a little about yourself, what you've done and what you'd | Contact us
span ,
span(data-i18n="contribute.counselor_join_desc")
| tell us a little about yourself, what you've done and what you'd
| be interested in doing. We'll put you in our contact list and be in touch | be interested in doing. We'll put you in our contact list and be in touch
| when we could use advice (not too often). | when we could use advice (not too often).
a(href="/contribute/counselor") a(href="/contribute/counselor")
h3 Learn More About Becoming A Valuable Counselor h3(data-i18n="contribute.more_about_counselor")
| Learn More About Becoming A Valuable Counselor
div.clearfix div.clearfix

View file

@ -1,17 +1,38 @@
ul.contribute_class.affix.nav.nav-list.nav-pills#contribute-nav ul.contribute_class.affix.nav.nav-list.nav-pills#contribute-nav
li li
h3 Character Classes h3(data-i18n="contribute.character_classes_title") Character Classes
li li
a(href=navPrefix + "#archmage") Archmage (Coder) a(href=navPrefix + "#archmage")
span(data-i18n="classes.archmage_title") Archmage
span
span(data-i18n="classes.archmage_title_description") (Coder)
li li
a(href=navPrefix + "#artisan") Artisan (Level Builder) a(href=navPrefix + "#artisan")
span(data-i18n="classes.artisan_title") Artisan
span
span(data-i18n="classes.artisan_title_description") (Level Builder)
li li
a(href=navPrefix + "#adventurer") Adventurer (Level Playtester) a(href=navPrefix + "#adventurer")
span(data-i18n="classes.adventurer_title") Adventurer
span
span(data-i18n="classes.adventurer_title_description") (Level Playtester)
li li
a(href=navPrefix + "#scribe") Scribe (Article Editor) a(href=navPrefix + "#scribe")
span(data-i18n="classes.scribe_title") Scribe
span
span(data-i18n="classes.scribe_title_description") (Article Editor)
li li
a(href=navPrefix + "#diplomat") Diplomat (Translator) a(href=navPrefix + "#diplomat")
span(data-i18n="classes.diplomat_title") Diplomat
span
span(data-i18n="classes.diplomat_title_description") (Translator)
li li
a(href=navPrefix + "#ambassador") Ambassador (Support) a(href=navPrefix + "#ambassador")
span(data-i18n="classes.ambassador_title") Ambassador
span
span(data-i18n="classes.ambassador_title_description") (Support)
li li
a(href=navPrefix + "#counselor") Counselor (Expert/Teacher) a(href=navPrefix + "#counselor")
span(data-i18n="classes.counselor_title") Counselor
span
span(data-i18n="classes.counselor_title_description") (Expert/Teacher)

View file

@ -11,8 +11,12 @@ block content
.class_image .class_image
img(src="/images/pages/contribute/counselor.png", alt="") img(src="/images/pages/contribute/counselor.png", alt="")
h2 Counselor (Expert) h2
p Do you have life experience? span(data-i18n="classes.counselor_title") Counselor
span
span(data-i18n="classes.counselor_title_description") (Expert/Teacher)
p(data-i18n="contribute.counselor_introduction_1")
| Do you have life experience?
| A different perspective on things that can help us decide how to shape CodeCombat? | A different perspective on things that can help us decide how to shape CodeCombat?
| Of all these roles, this will probably take the least time, but | Of all these roles, this will probably take the least time, but
| individually you may make the most difference. | individually you may make the most difference.
@ -20,19 +24,25 @@ block content
| game development, open source project management, technical recruiting, entrepreneurship, | game development, open source project management, technical recruiting, entrepreneurship,
| or design. | or design.
p Or really anything that is relevant to the development of CodeCombat. p(data-i18n="contribute.counselor_introduction_2")
| Or really anything that is relevant to the development of CodeCombat.
| If you have knowledge and want to share it to help grow this project, then | If you have knowledge and want to share it to help grow this project, then
| this class might be for you. | this class might be for you.
h4 Class Attributes h4(data-i18n="contribute.class_attributes") Class Attributes
ul ul
li Experience, in any of the areas above or something you think might be helpful. li(data-i18n="contribute.counselor_attribute_1")
li A little bit of free time! | Experience, in any of the areas above or something you think might be helpful.
li(data-i18n="contribute.counselor_attribute_2")
| A little bit of free time!
h4 How to Join h4(data-i18n="contribute.how_to_join") How to Join
p p
a(title='Contact', tabindex=-1, data-toggle="coco-modal", data-target="modal/contact") Contact us a(title='Contact', tabindex=-1, data-toggle="coco-modal", data-target="modal/contact", data-i18n="contact_us_url")
| , tell us a little about yourself, what you've done and what you'd | Contact us
span ,
span(data-i18n="contribute.counselor_join_desc")
| tell us a little about yourself, what you've done and what you'd
| be interested in doing. We'll put you in our contact list and be in touch | be interested in doing. We'll put you in our contact list and be in touch
| when we could use advice (not too often). | when we could use advice (not too often).

View file

@ -11,49 +11,73 @@ block content
.class_image .class_image
img(src="/images/pages/contribute/diplomat.png", alt="") img(src="/images/pages/contribute/diplomat.png", alt="")
h2 Diplomat (Translator) h2
p So, if there's one thing we learned from the span(data-i18n="classes.diplomat_title") Diplomat
a(href="blog.codecombat.com/post/64658141307/codecombat-in-y-combinator") launch in October span
| , it's that there span(data-i18n="classes.diplomat_title_description") (Translator)
p
span(data-i18n="contribute.diplomat_introduction_pref")
| So, if there's one thing we learned from the
a(href="blog.codecombat.com/post/64658141307/codecombat-in-y-combinator", data-i18n="contribute.diplomat_launch_url")
| launch in October
span ,
span(data-i18n="contribute.diplomat_introduction_suf")
| it's that there
| is sizeable interest in CodeCombat in other countries, particularly Brazil! | is sizeable interest in CodeCombat in other countries, particularly Brazil!
| We're building a corps of translators eager to turn one set of words into | We're building a corps of translators eager to turn one set of words into
| another set of words to get CodeCombat as accessible across the world as possible. | another set of words to get CodeCombat as accessible across the world as possible.
| If you like getting sneak peeks at upcoming content and getting these levels to | If you like getting sneak peeks at upcoming content and getting these levels to
| your fellow nationals ASAP, then this class might be for you. | your fellow nationals ASAP, then this class might be for you.
h4 Class Attributes h4(data-i18n="contribute.class_attributes") Class Attributes
ul ul
li Fluency in English and the language you would like to translate to. li(data-i18n="contribute.diplomat_attribute_1")
| Fluency in English and the language you would like to translate to.
| When conveying complicated ideas, it's important to have a strong grasp in both! | When conveying complicated ideas, it's important to have a strong grasp in both!
h4 How to Join h4(data-i18n="contribute.how_to_join") How to Join
p We've started a lot of initial translations at p
a(href="https://docs.google.com/a/codecombat.com/spreadsheet/ccc?key=0AjsR1nOoMQ4MdFBqS1NqUmRTVG1hbEMxWTZEd1JrNXc&usp=drive_web#gid=0") this Google Doc span(data-i18n="contribute.diplomat_join_pref")
| , so check it out and add things for your language. Also, check this box below to | We've started a lot of initial translations at
a(href="https://docs.google.com/a/codecombat.com/spreadsheet/ccc?key=0AjsR1nOoMQ4MdFBqS1NqUmRTVG1hbEMxWTZEd1JrNXc&usp=drive_web#gid=0", data-i18n="contribute.diplomat_doc_url")
| this Google Doc
span ,
span(data-i18n="contribute.diplomat_join_suf")
| so check it out and add things for your language. Also, check this box below to
| keep up-to-date on new internationalization developments! | keep up-to-date on new internationalization developments!
if me.attributes.anonymous if me.attributes.anonymous
div#sign-up.alert.alert-info div#sign-up.alert.alert-info
strong Hey there! strong(data-i18n="contribute.alert_account_message_intro")
| Hey there!
span
span(data-i18n="contribute.alert_account_message_pref")
| To subscribe for class emails, you'll need to | To subscribe for class emails, you'll need to
a(data-toggle="coco-modal", data-target="modal/signup") create an account a(data-toggle="coco-modal", data-target="modal/signup", data-i18n="contribute.alert_account_message_create_url")
| create an account
span
span(data-i18n="contribute.alert_account_message_suf")
| first. | first.
label.checkbox(for="translator").well label.checkbox(for="translator").well
input(type='checkbox', name="translator", id="translator") input(type='checkbox', name="translator", id="translator")
span(data-i18n="contribute.diplomat_subscribe_desc")
| Get emails about i18n developments and levels to translate. | Get emails about i18n developments and levels to translate.
.saved-notification ✓ Saved .saved-notification ✓ Saved
h4 Changes are saved automatically when you toggle checkboxes. h4(data-i18n="contribute.changes_auto_save")
| Changes are saved automatically when you toggle checkboxes.
#Contributors #Contributors
h3 Our Translating Diplomats: h3(data-i18n="contribute.translating_diplomates")
| Our Translating Diplomats:
ul.diplomats ul.diplomats
li Turkish - Nazım Gediz Aydındoğmuş li Turkish - Nazım Gediz Aydındoğmuş
li Brazilian Portuguese - Gutenberg Barros, Kieizroe, Matthew Burt li Brazilian Portuguese - Gutenberg Barros, Kieizroe, Matthew Burt
li Portugal Portuguese - Matthew Burt li Portugal Portuguese - Matthew Burt
li German - Dirk, Anon li German - Dirk, Anon
li Thai - Kamolchanok Jittrepit li Thai - Kamolchanok Jittrepit
li Vietnamese - An Nguyen Hoang Thien
li Greek - Stergios li Greek - Stergios
li Latin American Spanish - Jesús Ruppel, Matthew Burt, Mariano Luzza li Latin American Spanish - Jesús Ruppel, Matthew Burt, Mariano Luzza
li Spain Spanish - Matthew Burt, Anon li Spain Spanish - Matthew Burt, Anon

View file

@ -11,44 +11,66 @@ block content
.class_image .class_image
img(src="/images/pages/contribute/scribe.png", alt="") img(src="/images/pages/contribute/scribe.png", alt="")
h2 Scribe (Article Editor) h2
p CodeCombat isn't just going to be a bunch of levels. span(data-i18n="classes.scribe_title") Scribe
span
span(data-i18n="classes.scribe_title_description") (Article Editor)
p
span(data-i18n="account_settings.scribe_introduction_pref")
| CodeCombat isn't just going to be a bunch of levels.
| It will also include a resource for knowledge, a wiki of programming concepts that levels can hook into. | It will also include a resource for knowledge, a wiki of programming concepts that levels can hook into.
| That way rather than each Artisan having to describe in detail what a comparison operator is, they | That way rather than each Artisan having to describe in detail what a comparison operator is, they
| can simply link their level to the Article describing them that is already written for the player's edification. | can simply link their level to the Article describing them that is already written for the player's edification.
| Something along the lines of what the | Something along the lines of what the
a(href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide") Mozilla Developer Network a(href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide", data-i18n="contribute.scribe_introduction_url_mozilla")
| Mozilla Developer Network
span(data-i18n="account_settings.scribe_introduction_suf")
| has built. If your idea of fun is articulating the concepts of programming in Markdown form, | has built. If your idea of fun is articulating the concepts of programming in Markdown form,
| then this class might be for you. | then this class might be for you.
h4 Class Attributes h4(data-i18n="contribute.class_attributes")
| Class Attributes
ul ul
li Skill in words is pretty much all you need. li(data-i18n="contribute.scribe_attribute_1")
| Skill in words is pretty much all you need.
| Not only grammar and spelling, but able to convey complicated ideas to others. | Not only grammar and spelling, but able to convey complicated ideas to others.
h4 How To Join h4(data-i18n="contribute.how_to_join") How To Join
p p
a(title='Contact', tabindex=-1, data-toggle="coco-modal", data-target="modal/contact") Contact us a(title='Contact', tabindex=-1, data-toggle="coco-modal", data-target="modal/contact", data-i18n="contribute.contact_us_url")
| , tell us a little about yourself, your experience with programming and | Contact us
span ,
span(data-i18n="contribute.scribe_join_description")
| tell us a little about yourself, your experience with programming and
| what sort of things you'd like to write about. We'll go from there! | what sort of things you'd like to write about. We'll go from there!
if me.attributes.anonymous if me.attributes.anonymous
div#sign-up.alert.alert-info div#sign-up.alert.alert-info
strong Hey there! strong(data-i18n="contribute.alert_account_message_intro")
| Hey there!
span
span(data-i18n="contribute.alert_account_message_pref")
| To subscribe for class emails, you'll need to | To subscribe for class emails, you'll need to
a(data-toggle="coco-modal", data-target="modal/signup") create an account a(data-toggle="coco-modal", data-target="modal/signup", data-i18n="contribute.alert_account_message_create_url")
| create an account
span
span(data-i18n="contribute.alert_account_message_suf")
| first. | first.
label.checkbox(for="article_editor").well label.checkbox(for="article_editor").well
input(type='checkbox', name="article_editor", id="article_editor") input(type='checkbox', name="article_editor", id="article_editor")
span(data-i18n="contribute.scribe_subscribe_desc")
| Get emails about article writing announcements. | Get emails about article writing announcements.
.saved-notification ✓ Saved .saved-notification ✓ Saved
h4 Changes are saved automatically when you toggle checkboxes. h4(data-i18n="contribute.changes_auto_save")
| Changes are saved automatically when you toggle checkboxes.
#Contributors #Contributors
h3 Our Diligent Scribes: h3(data-i18n="contribute.diligent_scribes")
| Our Diligent Scribes:
ul.scribes ul.scribes
li Ryan Faidley li Ryan Faidley
li Glen De Cauwsemaecker
div.clearfix div.clearfix

View file

@ -2,61 +2,67 @@ extends /templates/base
block content block content
h3 Introducing The CodeCombat Level Editor h3(data-i18n="editor.ep_intro_title") Introducing The CodeCombat Level Editor
p p
span(data-i18n="editor.ep_intro_desc_top_pref")
| Since we launched the prototype in June, 2013, we've been hard at work making | Since we launched the prototype in June, 2013, we've been hard at work making
| systems for producing much, much more content. | systems for producing much, much more content.
| The centerpiece of these efforts is the new | The centerpiece of these efforts is the new
strong Level Editor strong
span(data-i18n="editor.ep_intro_desc_top_strong_editor")
| Level Editor
span(data-i18n="editor.ep_intro_desc_top_suf")
| , which makes building levels and their many constituent parts a snap. | , which makes building levels and their many constituent parts a snap.
div.images div.images
div div
img(src="/file/52602a6ba36ab808aa000007", alt="Articles").img-polaroid img(src="/file/52602a6ba36ab808aa000007", alt="Articles").img-polaroid
br br
span.label.label-info Write Articles span(data-i18n="editor.ep_img_desc_articles").label.label-info Write Articles
div div
img(src="/file/526032dca36ab808aa000009", alt="Map").img-polaroid img(src="/file/526032dca36ab808aa000009", alt="Map").img-polaroid
br br
span.label.label-info Construct Maps span(data-i18n="editor.ep_img_desc_maps").label.label-info Construct Maps
div div
img(src="/file/52603311a36ab808aa00000c", alt="Scripting").img-polaroid img(src="/file/52603311a36ab808aa00000c", alt="Scripting").img-polaroid
br br
span.label.label-info Build Scripts span(data-i18n="editor.ep_img_desc_scripts").label.label-info Build Scripts
div div
img(src="/file/52603434a36ab808aa00000e", alt="Units").img-polaroid img(src="/file/52603434a36ab808aa00000e", alt="Units").img-polaroid
br br
span.label.label-info Configure Units span(data-i18n="editor.ep_img_desc_units").label.label-info Configure Units
p#after-images p(data-i18n="editor.ep_intro_desc_bottom")#after-images
| Eventually, you'll be able to build all manners of challenges, with custom sounds, | Eventually, you'll be able to build all manners of challenges, with custom sounds,
| music, artwork, units, maps, scripts, documentation, and yes, even code. | music, artwork, units, maps, scripts, documentation, and yes, even code.
| It's got a long way to go, but it's just starting to get usable and we're itching to use it. | It's got a long way to go, but it's just starting to get usable and we're itching to use it.
| Expect (and demand!) new levels at regular intervals as we continue to grow. | Expect (and demand!) new levels at regular intervals as we continue to grow.
h3 Watch it In Action h3(data-i18n="editor.ep_watch_title") Watch it In Action
div.screencast-wrapper div.screencast-wrapper
<object width="640" height="400"><param name="movie" value="//www.youtube.com/v/H5u5ga5dHm8?hl=en_US&amp;version=3&amp;hd=1"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="//www.youtube.com/v/H5u5ga5dHm8?hl=en_US&amp;version=3&amp;hd=1" type="application/x-shockwave-flash" width="640" height="400" allowscriptaccess="always" allowfullscreen="true"></embed></object> <object width="640" height="400"><param name="movie" value="//www.youtube.com/v/H5u5ga5dHm8?hl=en_US&amp;version=3&amp;hd=1"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="//www.youtube.com/v/H5u5ga5dHm8?hl=en_US&amp;version=3&amp;hd=1" type="application/x-shockwave-flash" width="640" height="400" allowscriptaccess="always" allowfullscreen="true"></embed></object>
h3 When Can I Use It? h3(data-i18n="editor.ep_use_title") When Can I Use It?
p p
span(data-i18n="editor.ep_use_desc_pref")
| Now! We've opened it for general use, possibly against our better judgment. | Now! We've opened it for general use, possibly against our better judgment.
| It's still very broken, but we're seeking people to try it out and help us make it better, | It's still very broken, but we're seeking people to try it out and help us make it better,
| so we're throwing it out there. | so we're throwing it out there.
| Learn more about the role of | Learn more about the role of
a(href="/contribute#artisan") Artisan a(href="/contribute#artisan", data-i18n="editor.ep_use_artisan_url") Artisan
span(data-i18n="editor.ep_use_desc_suf")
| in the | in the
a(href="/contribute") contribute page a(href="/contribute", data-i18n="editor.ep_use_contribute_url") contribute page
| . | .
hr hr
div#editor-links div#editor-links
a(href="/editor/level").btn Edit Levels a(href="/editor/level", data-i18n="editor.ep_url_edit_levels").btn Edit Levels
if me.isAdmin() if me.isAdmin()
a(href="/editor/article").btn Edit Articles a(href="/editor/article", data-i18n="editor.ep_url_edit_articles").btn Edit Articles
.modal.hide.fade#image-modal .modal.hide.fade#image-modal
.modal-body .modal-body

View file

@ -1,10 +1,12 @@
extends /templates/base extends /templates/base
block content block content
button.btn.btn-primary#preview-button Preview button(data-i18n="article.edit_btn_preview").btn.btn-primary#preview-button Preview
button.btn.btn-primary#save-button(data-toggle="coco-modal", data-target="modal/save_version") Save button(data-i18n="article.edit_btn_save").btn.btn-primary#save-button(data-toggle="coco-modal", data-target="modal/save_version") Save
h3 Edit Article: "#{article.attributes.name}" h3(data-i18n="article.edit_article_title") Edit Article
span
|: "#{article.attributes.name}"
#article-treema #article-treema

View file

@ -1,11 +1,15 @@
table.table table.table
tr tr
th(colspan=3) Results: #{documents.length} th(colspan=3)
span(data-i18n="article.index_table_results")
| Results
span
|: #{documents.length}
tr tr
th Name th(data-i18n="article.index_table_name") Name
th Body th(data-i18n="article.index_table_body") Body
th Version th(data-i18n="article.index_table_version") Version
for article in documents for article in documents
- article = article.attributes; - article = article.attributes;

View file

@ -1,3 +1,7 @@
h3.edit-component-name= editTitle h3.edit-component-name
span(data-i18n="editor.level_component_edit_title")
| Edit Component
span :
| "#{editTitle}"
#edit-component-treema #edit-component-treema

View file

@ -6,14 +6,14 @@ block modal-header-content
block modal-body-content block modal-body-content
form.form-horizontal form.form-horizontal
.control-group .control-group
label.control-label(for="level-component-system") System label(data-i18n="editor.new_component_field_system").control-label(for="level-component-system") System
.controls .controls
input#level-component-system.input-large(name="system", type="text") input#level-component-system.input-large(name="system", type="text")
.control-group .control-group
label.control-label(for="level-component-name") Name label(data-i18n="editor.new_component_field_name").control-label(for="level-component-name") Name
.controls .controls
input#level-component-name.input-large(name="name", type="text") input#level-component-name.input-large(name="name", type="text")
block modal-footer-content block modal-footer-content
button.btn(data-dismiss="modal") Cancel button(data-i18n="editor.new_component_btn_cancel").btn(data-dismiss="modal") Cancel
button.btn.btn-primary#new-level-component-submit Create button(data-i18n="editor.new_component_btn_create").btn.btn-primary#new-level-component-submit Create

View file

@ -1,9 +1,9 @@
.components-container .components-container
h3 Current Components h3(data-i18n="editor.level_component_tab_title") Current Components
#components-treema #components-treema
.edit-component-container .edit-component-container
if me.isAdmin() if me.isAdmin()
button.btn.btn-primary#create-new-component-button Create New Component button(data-i18n="editor.level_component_btn_new").btn.btn-primary#create-new-component-button Create New Component
#editor-level-component-edit-view #editor-level-component-edit-view

View file

@ -5,39 +5,40 @@ block outer_content
.top-controls-area .top-controls-area
h2.level-title-header h2.level-title-header
span Level Editor: span(data-i18n="editor.level_title") Level Editor
span :
span.level-title #{level.attributes.name} span.level-title #{level.attributes.name}
.level-control-buttons .level-control-buttons
button.btn.btn-primary#commit-level-start-button Save button(data-i18n="editor.level_btn_save").btn.btn-primary#commit-level-start-button Save
button.btn.btn-primary#fork-level-start-button Fork button(data-i18n="editor.level_btn_fork").btn.btn-primary#fork-level-start-button Fork
.btn-group.play-button-group .btn-group.play-button-group
button#play-button.btn.btn-inverse.banner(title="⌃↩ or ⌘↩: Play preview of current level") Play! button(data-i18n="editor.level_btn_play")#play-button.btn.btn-inverse.banner(title="⌃↩ or ⌘↩: Play preview of current level") Play!
button.btn.btn-inverse.banner.dropdown-toggle(data-toggle="dropdown") button.btn.btn-inverse.banner.dropdown-toggle(data-toggle="dropdown")
i.icon-cog.icon-white i.icon-cog.icon-white
ul.dropdown-menu ul.dropdown-menu
li li
span.dropdown-menu-header Some Options? span(data-i18n="editor.level_some_options").dropdown-menu-header Some Options?
li.divider li.divider
li li
a(data-delay="1000", href="#") 1 second a(data-delay="1000", href="#", data-i18n="editor.level_options_1_second") 1 second
a(data-delay="3000", href="#") 3 seconds a(data-delay="3000", href="#", data-i18n="editor.level_options_3_seconds") 3 seconds
a(data-delay="5000", href="#") 5 seconds a(data-delay="5000", href="#", data-i18n="editor.level_options_5_seconds") 5 seconds
a(data-delay="90019001", href="#") Manual a(data-delay="90019001", href="#", data-i18n="editor.level_options_manual") Manual
.clearfix .clearfix
ul.nav.nav-tabs ul.nav.nav-tabs
li.active li.active
a(href="#editor-level-thangs-tab-view", data-toggle="tab") Thangs a(href="#editor-level-thangs-tab-view", data-toggle="tab", data-i18n="editor.level_tab_thangs") Thangs
li li
a(href="#editor-level-scripts-tab-view", data-toggle="tab") Scripts a(href="#editor-level-scripts-tab-view", data-toggle="tab", data-i18n="editor.level_tab_scripts") Scripts
li li
a(href="#editor-level-settings-tab-view", data-toggle="tab") Settings a(href="#editor-level-settings-tab-view", data-toggle="tab", data-i18n="editor.level_tab_settings") Settings
li li
a(href="#editor-level-components-tab-view", data-toggle="tab") Components a(href="#editor-level-components-tab-view", data-toggle="tab", data-i18n="editor.level_tab_components") Components
li li
a(href="#editor-level-systems-tab-view", data-toggle="tab") Systems a(href="#editor-level-systems-tab-view", data-toggle="tab", data-i18n="editor.level_tab_systems") Systems
div.tab-content div.tab-content
div.tab-pane.active#editor-level-thangs-tab-view div.tab-pane.active#editor-level-thangs-tab-view

View file

@ -1,2 +1,2 @@
h3 Settings h3(data-i18n="editor.level_settings_title") Settings
#settings-treema #settings-treema

View file

@ -1,3 +1,7 @@
h3.edit-system-name= editTitle h3.edit-system-name
span(data-i18n="editor.level_system_edit_title")
| Edit System
span :
| "#{editTitle}"
#edit-system-treema #edit-system-treema

View file

@ -6,10 +6,10 @@ block modal-header-content
block modal-body-content block modal-body-content
form.form-horizontal form.form-horizontal
.control-group .control-group
label.control-label(for="level-system-name") Name label(data-i18n="editor.create_system_field_name").control-label(for="level-system-name") Name
.controls .controls
input#level-system-name.input-large(name="name", type="text") input#level-system-name.input-large(name="name", type="text")
block modal-footer-content block modal-footer-content
button.btn(data-dismiss="modal") Cancel button(data-i18n="editor.create_system_btn_cancel").btn(data-dismiss="modal") Cancel
button.btn.btn-primary#new-level-system-submit Create button(data-i18n="editor.create_system_btn_create").btn.btn-primary#new-level-system-submit Create

View file

@ -1,11 +1,11 @@
.systems-container .systems-container
h3 Current Systems h3(data-i18n="editor.level_systems_tab_title") Current Systems
#systems-treema #systems-treema
.edit-system-container .edit-system-container
if me.isAdmin() if me.isAdmin()
button.btn.btn-primary#create-new-system-button Create New System button(data-i18n="editor.level_systems_btn_new").btn.btn-primary#create-new-system-button Create New System
#editor-level-system-edit-view #editor-level-system-edit-view
button.btn.btn-primary#add-system-button Add System button(data-i18n="editor.level_systems_btn_add").btn.btn-primary#add-system-button Add System

View file

@ -1,11 +1,15 @@
table.table table.table
tr tr
th(colspan=3) Results: #{documents.length} th(colspan=3)
span(data-i18n="level.index_table_results")
| Results
span
|: #{documents.length}
tr tr
th Name th(data-i18n="level.index_table_name") Name
th Description th(data-i18n="level.index_table_description") Description
th Version th(data-i18n="level.index_table_version") Version
for level in documents for level in documents
- level = level.attributes; - level = level.attributes;

View file

@ -1,10 +1,12 @@
div.well div.well
a#all-thangs-link Back To All Thangs a(data-i18n="editor.level_components_title")#all-thangs-link Back To All Thangs
span#thang-props span#thang-props
a#thang-name-link a#thang-name-link
span= thang.id span= thang.id
input.hide(value=thang.id) input.hide(value=thang.id)
| ( Type: | (
span(data-i18n="editor.level_components_type") Type
| :
a#thang-type-link a#thang-type-link
span= thang.thangType span= thang.thangType
input.hide(value=thang.thangType) input.hide(value=thang.thangType)

View file

@ -1,16 +1,16 @@
.thangs-container.thangs-column .thangs-container.thangs-column
h3 Current Thangs h3(data-i18n="editor.level_tab_thangs_title") Current Thangs
#thangs-treema(title="Double click to configure a thang") #thangs-treema(title="Double click to configure a thang")
.world-container.thangs-column .world-container.thangs-column
h3 World Starting Conditions h3(data-i18n="editor.level_tab_thangs_conditions") World Starting Conditions
#canvas-wrapper #canvas-wrapper
canvas(width=924, height=589)#surface canvas(width=924, height=589)#surface
#canvas-left-gradient.gradient #canvas-left-gradient.gradient
#canvas-top-gradient.gradient #canvas-top-gradient.gradient
.add-thangs-palette.thangs-column .add-thangs-palette.thangs-column
h3 Add Thangs h3(data-i18n="editor.level_tab_thangs_add") Add Thangs
#thangs-list #thangs-list
for thangType in thangTypes for thangType in thangTypes
div.add-thang-palette-icon(data-thang-type=thangType.name) div.add-thang-palette-icon(data-thang-type=thangType.name)

View file

@ -2,83 +2,189 @@ extends /templates/base
block content block content
h1 Legal h1(data-i18n="legal.page_title")
| Legal
hr hr
p.lead CodeCombat is free to play and completely open source. p(data-i18n="legal.opensource_intro").lead
p Check out | CodeCombat is free to play and completely open source.
a(href="https://github.com/codecombat/codecombat") our GitHub p
| , and help out if you like! CodeCombat is built on dozens of open source projects, and we love them. See span(data-i18n="legal.opensource_description_prefix")
a(href="https://github.com/codecombat/codecombat/wiki/Third-party-software-and-services") our Archmage wiki | Check out
a(href="https://github.com/codecombat/codecombat", data-i18n="github_url")
| our GitHub
span ,
span(data-i18n="legal.opensource_description_center")
| and help out if you like! CodeCombat is built on
| dozens of open source projects, and we love them. See
a(href="https://github.com/codecombat/codecombat/wiki/Third-party-software-and-services", data-i18n="archmage_wiki_url")
| our Archmage wiki
span
span(data-i18n="legal.opensource_description_sufix")
| for a list of the software that makes this game possible. | for a list of the software that makes this game possible.
hr hr
div.aside.well div.aside.well
h3 Respectful Best Practices h3(data-i18n="legal.practices_title")
p These are our promises to you, the player, in slightly less legalese. | Respectful Best Practices
h4 Privacy p(data-i18n="legal.practices_description")
p We will not sell any of your personal information. We intend to make money through recruitment eventually, but rest assured we will not distribute your personal information to interested companies without your explicit consent. | These are our promises to you, the player, in slightly less legalese.
h4 Security h4(data-i18n="legal.privacy_title")
p We strive to keep your personal information safe. As an open source project, our site is freely open to anyone to review and improve our security systems. | Privacy
h4 Email p(data-i18n="legal.privacy_description")
p We will not inundate you with spam. Through | We will not sell any of your personal information.
a(href='/account/settings') your email settings | We intend to make money through recruitment eventually,
| or through links in the emails we send, you can change your preferences and easily unsubscribe at any time. | but rest assured we will not distribute your personal
h4 Cost | information to interested companies without your explicit consent.
p Currently, CodeCombat is 100% free! One of our main goals is to keep it that way, so that as many people can play as possible, regardless of place in life. If the sky darkens, we might have to charge subscriptions or for some content, but we'd rather not. With any luck, we'll be able to sustain the company with: h4(data-i18n="legal.security_title")
h4 Recruitment | Security
:markdown p(data-i18n="legal.security_description")
Here on CodeCombat, you're going to become a powerful wizard--not just in the game, but also in real life. [No one can hire programmers fast enough](http://code.org/stats), so once you've sharpened your skills and if you agree, we will demo your best coding accomplishments to the thousands of employers who are drooling for the chance to hire you. They pay us a little, they pay you *a lot*, the site remains free and everybody's happy. That's the plan. | We strive to keep your personal information safe.
| As an open source project, our site is freely open
| to anyone to review and improve our security systems.
h4(data-i18n="legal.email_title")
| Email
p
span(data-i18n="legal.email_description_prefix")
| We will not inundate you with spam. Through
span
a(href='/account/settings', data-i18n="legal.email_settings_url")
| your email settings
span
span(data-i18n="legal.email_description_sufix")
| or through links in the emails we send,
| you can change your preferences and easily unsubscribe at any time.
h4(data-i18n="legal.cost_title")
| Cost
p(data-i18n="legal.cost_description")
| Currently, CodeCombat is 100% free! One of our main goals is to keep
| it that way, so that as many people can play as possible,
| regardless of place in life. If the sky darkens,
| we might have to charge subscriptions or for some content,
| but we'd rather not. With any luck, we'll be able to sustain the company with:
h4(data-i18n="legal.recruitment_title")
| Recruitment
span(data-i18n="legal.recruitment_description_prefix")
| Here on CodeCombat, you're going to become a powerful wizard--not
| just in the game, but also in real life.
span
a(href="", data-i18n="legal.url_hire_programmers")
| No one can hire programmers fast enough
span ,
span(data-i18n="legal.recruitment_description_sufix")
| so once you've sharpened your skills and if you agree,
| we will demo your best coding accomplishments to the thousands of
| employers who are drooling for the chance to hire you.
| They pay us a little, they pay you
span
i(data-i18n="legal.recruitment_description_italic")
| a lot
span ,
span(data-i18n="legal.recruitment_description_ending")
| the site remains free and everybody's happy. That's the plan.
h2 Copyrights and Licenses h2(data-i18n="legal.copyrights_title")
| Copyrights and Licenses
h3 Contributor License Agreement h3(data-i18n="legal.contributor_title")
| Contributor License Agreement
p All contributions, both on the site and on our GitHub repository, are subject to our p
a(href="/cla") CLA span(data-i18n="legal.contributor_description_prefix")
| , to which you should agree before contributing. | All contributions, both on the site and on our GitHub repository, are subject to our
span
a(href="/cla", data-i18n="legal.cla_url")
| CLA
span ,
span(data-i18n="legal.contributor_description_sufix")
| to which you should agree before contributing.
h3 Code - MIT h3(data-i18n="legal.code_title")
| Code - MIT
p All code owned by CodeCombat or hosted on codecombat.com, both in the GitHub repository or in the codecombat.com database, is licensed under the p
a(href="http://opensource.org/licenses/MIT") MIT license span(data-i18n="legal.code_description_prefix")
| . This includes all code in Systems and Components that are made available by CodeCombat for the purpose of creating levels. | All code owned by CodeCombat or hosted on codecombat.com,
| both in the GitHub repository or in the codecombat.com database,
| is licensed under the
span
a(href="http://opensource.org/licenses/MIT", data-i18n="legal.mit_license_url")
| MIT license
span .
span(data-i18n="legal.code_description_sufix")
| This includes all code in Systems and Components that are
| made available by CodeCombat for the purpose of creating levels.
h3 Art/Music - Creative Commons h3(data-i18n="legal.art_title")
| Art/Music - Creative Commons
a(rel='license', href='http://creativecommons.org/licenses/by/4.0/').cc-license-link a(rel='license', href='http://creativecommons.org/licenses/by/4.0/').cc-license-link
img(alt='Creative Commons License', style='border-width: 0; margin-left: 10px', src='http://i.creativecommons.org/l/by/4.0/88x31.png') img(alt='Creative Commons License', style='border-width: 0; margin-left: 10px', src='http://i.creativecommons.org/l/by/4.0/88x31.png')
p All common content is available under the p
a(href="http://creativecommons.org/licenses/by/4.0/") Creative Commons Attribution 4.0 International License span(data-i18n="legal.art_description_prefix")
| . Common content is anything made generally available by CodeCombat for the purpose of creating Levels. This includes: | All common content is available under the
span
a(href="http://creativecommons.org/licenses/by/4.0/", data-i18n="legal.cc_license_url")
| Creative Commons Attribution 4.0 International License
span .
span(data-i18n="legal.art_description_sufix")
| Common content is anything made generally available by CodeCombat
| for the purpose of creating Levels. This includes:
ul ul
li Music li(data-i18n="legal.art_music") Music
li Sound li(data-i18n="legal.art_sound") Sound
li Artwork li(data-i18n="legal.art_artwork") Artwork
li Sprites li(data-i18n="legal.art_sprites") Sprites
li Any and all other non-code creative works that are made available when creating Levels. li(data-i18n="legal.art_other")
| Any and all other non-code creative works that
| are made available when creating Levels.
p For attribution, please name and link to codecombat.com near where the source is used or where appropriate for the medium. For example: p(data-i18n="legal.art_paragraph_1")
| For attribution, please name and link to codecombat.com near
| where the source is used or where appropriate for the medium. For example:
ul ul
li If used in a movie or another game, include codecombat.com in the credits. li(data-i18n="legal.use_list_1")
li If used on a website, include a link near the usage, for example underneath an image, or in a general attributions page where you might also mention other Creative Commons works and open source software being used on the site. Something that's already clearly referencing CodeCombat, such as a blog post mentioning CodeCombat, does not need some separate attribution. | If used in a movie or another game, include codecombat.com in the credits.
li(data-i18n="legal.use_list_2")
| If used on a website, include a link near the usage,
| for example underneath an image, or in a general attributions
| page where you might also mention other Creative Commons works
| and open source software being used on the site. Something that's
| already clearly referencing CodeCombat, such as a blog post mentioning
| CodeCombat, does not need some separate attribution.
p If the content being used is created not by CodeCombat but instead by a user of codecombat.com, attribute them instead, and follow attribution directions provided in that resource's description if there are any. p(data-i18n="legal.art_paragraph_2")
| If the content being used is created not by CodeCombat
| but instead by a user of codecombat.com,
| attribute them instead, and follow attribution directions
| provided in that resource's description if there are any.
h3 Rights Reserved h3(data-i18n="legal.rights_title")
| Rights Reserved
p All rights are reserved for Levels themselves. This includes p(data-i18n="legal.rights_desc")
| All rights are reserved for Levels themselves. This includes
ul ul
li Scripts li(data-i18n="legal.rights_scripts") Scripts
li Unit configuration li(data-i18n="legal.rights_unit") Unit configuration
li Description li(data-i18n="legal.rights_description") Description
li Writings li(data-i18n="legal.rights_writings") Writings
li Media (sounds, music) and any other creative content made specifically for that Level and not made generally available when creating Levels. li(data-i18n="legal.rights_media")
| Media (sounds, music) and any other creative
| content made specifically for that Level and
| not made generally available when creating Levels.
h3 In a Nutshell h3(data-i18n="legal.nutshell_title")
| In a Nutshell
p Any resources we provide in the Level Editor are free to use as you like for creating Levels. But we reserve the right to restrict distribution of the Levels themselves (that are created on codecombat.com) so that they may be charged for in the future, if that's what ends up happening. p(data-i18n="legal.nutshell_description")
| Any resources we provide in the Level Editor are
| free to use as you like for creating Levels.
| But we reserve the right to restrict distribution of
| the Levels themselves (that are created on codecombat.com)
| so that they may be charged for in the future,
| if that's what ends up happening.

View file

@ -16,7 +16,7 @@ module.exports = class LevelComponentEditView extends View
getRenderData: (context={}) => getRenderData: (context={}) =>
context = super(context) context = super(context)
context.editTitle = "Edit Component: #{@levelComponent.get('system')}.#{@levelComponent.get('name')}" context.editTitle = "#{@levelComponent.get('system')}.#{@levelComponent.get('name')}"
context context
afterRender: -> afterRender: ->

View file

@ -16,7 +16,7 @@ module.exports = class LevelSystemEditView extends View
getRenderData: (context={}) => getRenderData: (context={}) =>
context = super(context) context = super(context)
context.editTitle = "Edit System: #{@levelSystem.get('name')}" context.editTitle = "#{@levelSystem.get('name')}"
context context
afterRender: -> afterRender: ->