From 683b72f67aaaf53dac57889ad9cb9086b83c3074 Mon Sep 17 00:00:00 2001 From: GlenDC Date: Sat, 11 Jan 2014 17:25:04 +0100 Subject: [PATCH 1/3] First big fix for issue #23. The issue is as good as fixed besides some details I think. --- app/locale/fr.coffee | 20 +- app/templates/about.jade | 95 ++++- app/templates/account/settings.jade | 56 ++- app/templates/admin.jade | 12 +- app/templates/admin/level_sessions.jade | 2 +- app/templates/admin/users.jade | 2 +- app/templates/contribute/adventurer.jade | 72 ++-- app/templates/contribute/ambassador.jade | 55 ++- app/templates/contribute/archmage.jade | 82 ++-- app/templates/contribute/artisan.jade | 79 ++-- app/templates/contribute/contribute.jade | 400 +++++++++++------- app/templates/contribute/contribute_nav.jade | 37 +- app/templates/contribute/counselor.jade | 32 +- app/templates/contribute/diplomat.jade | 72 ++-- app/templates/contribute/scribe.jade | 66 ++- app/templates/editor.jade | 42 +- app/templates/editor/article/edit.jade | 8 +- app/templates/editor/article/table.jade | 12 +- .../editor/level/component/edit.jade | 6 +- app/templates/editor/level/component/new.jade | 8 +- .../editor/level/components_tab.jade | 4 +- app/templates/editor/level/edit.jade | 29 +- app/templates/editor/level/settings_tab.jade | 2 +- app/templates/editor/level/system/edit.jade | 6 +- app/templates/editor/level/system/new.jade | 6 +- app/templates/editor/level/systems_tab.jade | 6 +- app/templates/editor/level/table.jade | 14 +- app/templates/editor/level/thang/edit.jade | 6 +- app/templates/editor/level/thangs_tab.jade | 6 +- app/templates/legal.jade | 212 +++++++--- app/views/editor/level/component/edit.coffee | 2 +- app/views/editor/level/system/edit.coffee | 2 +- 32 files changed, 982 insertions(+), 471 deletions(-) diff --git a/app/locale/fr.coffee b/app/locale/fr.coffee index 9c95e101e..a21d3be12 100644 --- a/app/locale/fr.coffee +++ b/app/locale/fr.coffee @@ -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 Artisan Wizards." # 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_us: "Contacter CodeCombat" # welcome: "Good to hear from you! Use this form to send us email." @@ -88,7 +95,10 @@ module.exports = nativeDescription: "français", englishDescription: "French", t learn_more: "Apprenez en plus sur comment devenir un diplomate!" # subscribe_as_diplomat: "Subscribe as a Diplomat" # -# account_settings: + account_settings: + archmage_title_pref: "Archmage" + archmage_title_suf: "(Codeur)" + archmage_desc: "Obtenez des courriels au sujet des nouvelles et des annonces sur les CodeCombat général." # title: "Account Settings" # not_logged_in: "Log in or create an account to change your settings." # autosave: "Changes Save Automatically" @@ -181,4 +191,10 @@ module.exports = nativeDescription: "français", englishDescription: "French", t # hud_continue: "Continue (press shift-space)" editor: - new_component_title: "creér un composant" \ No newline at end of file + 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" \ No newline at end of file diff --git a/app/templates/about.jade b/app/templates/about.jade index d612cc0d2..1dfb30cf9 100644 --- a/app/templates/about.jade +++ b/app/templates/about.jade @@ -6,26 +6,74 @@ block content .span5 - h2 Who is CodeCombat? + h2(data-i18n="about.who_is_codecombat") + | Who is CodeCombat? - :markdown - [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. + p + 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 - 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. + p + 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. - a(href="/") Start wizarding now! + p.lead + 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 @@ -41,7 +89,9 @@ block content h3 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 @@ -52,7 +102,10 @@ block content h3 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 @@ -63,7 +116,10 @@ block content h3 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 @@ -74,7 +130,10 @@ block content h3 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 @@ -85,6 +144,8 @@ block content h3 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. diff --git a/app/templates/account/settings.jade b/app/templates/account/settings.jade index 04cf8489e..53d82793f 100644 --- a/app/templates/account/settings.jade +++ b/app/templates/account/settings.jade @@ -100,51 +100,69 @@ block content br .control-group - label.control-label(for="email_developer") Archmage + label.control-label(for="email_developer") + span(data-i18n="account_settings.archmage_title_pref") + | Archmage br - | (Coder) + span(data-i18n="account_settings.archmage_title_suf") + | (Coder) .controls 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="account_settings.archmage_desc").help-inline Get emails about general news and announcements about CodeCombat. .control-group - label.control-label(for="email_level_creator") Artisan + label.control-label(for="email_level_creator") + span(data-i18n="account_settings.artisan_title_pref") + | Artisan br - | (Level Builder) + span(data-i18n="account_settings.artisan_title_suf") + | (Level Builder) .controls 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="account_settings.artisan_desc").help-inline Get emails on level editor updates and announcements. .control-group - label.control-label(for="email_tester") Adventurer - br - | (Level Playtester) + label.control-label(for="email_tester") + span(data-i18n="account_settings.adventurer_title_pref") + | Adventurer + br + span(data-i18n="account_settings.adventurer_title_suf") + | (Level Playtester) .controls 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="account_settings.adventurer_desc").help-inline Get emails when there are new levels to test. .control-group - label.control-label(for="email_article_editor") Scribe + label.control-label(for="email_article_editor") + span(data-i18n="account_settings.scribe_title_pref") + | Scribe br - | (Artile Editor) + span(data-i18n="account_settings.scribe_title_suf") + | (Article Editor) .controls 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="account_settings.scribe_desc").help-inline Get emails about article writing announcements. .control-group - label.control-label(for="email_translator") Diplomat + label.control-label(for="email_translator") + span(data-i18n="account_settings.diplomat_title_pref") + | Diplomat br - | (Translator) + span(data-i18n="account_settings.diplomat_title_suf") + | (Translator) .controls 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="account_settings.diplomat_title_pref").help-inline Get emails about i18n developments and, eventually, levels to translate. .control-group - label.control-label(for="email_support") Ambassador + label.control-label(for="email_support") + span(data-i18n="account_settings.ambassador_title_pref") + | Ambassador br - | (Support) + span(data-i18n="account_settings.ambassador_title_suf") + | (Support) .controls 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="account_settings.ambassador_desc").help-inline Get emails on support updates and multiplayer developments. button.btn#toggle-all-button(data-i18n="account_settings.email_toggle") Toggle All diff --git a/app/templates/admin.jade b/app/templates/admin.jade index 11a94680f..43d6769c6 100644 --- a/app/templates/admin.jade +++ b/app/templates/admin.jade @@ -2,18 +2,18 @@ extends /templates/base 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 li - a(href='/admin/users') Users + a(href="/admin/users", data-i18n="admin.av_entities_users_url") Users 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 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) diff --git a/app/templates/admin/level_sessions.jade b/app/templates/admin/level_sessions.jade index 5c12db4b0..aac3aed6e 100644 --- a/app/templates/admin/level_sessions.jade +++ b/app/templates/admin/level_sessions.jade @@ -2,7 +2,7 @@ extends /templates/base block content - h1 Latest Games + h1(data-i18n="admin.lg_title") Latest Games each session in sessions - var url = '/play/level/'+session.get('levelID')+'?session='+session.id diff --git a/app/templates/admin/users.jade b/app/templates/admin/users.jade index 83daa2595..d12366f8b 100644 --- a/app/templates/admin/users.jade +++ b/app/templates/admin/users.jade @@ -2,7 +2,7 @@ extends /templates/base block content - h1 User List + h1(data-i18n="admin.u_title") User List table.table.table-striped.table-bordered.table-condensed#users tbody diff --git a/app/templates/contribute/adventurer.jade b/app/templates/contribute/adventurer.jade index 131a48212..5109e6f60 100644 --- a/app/templates/contribute/adventurer.jade +++ b/app/templates/contribute/adventurer.jade @@ -11,49 +11,73 @@ block content .class_image img(src="/images/pages/contribute/adventurer.png", alt="") - h2 Adventurer (Level Playtester) - p Let's be clear about your role: you are the tank. You're going to take heavy damage. + h2 + span(data-i18n="account_settings.adventurer_title_pref") Adventurer + span + span(data-i18n="account_settings.adventurer_title_suf") (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. | The pain will be enormous; making good games is a long process and no one gets | it right the first time. | If you can endure and have a high constitution score, then this class might be for you. - h4 Class Attributes + h4(data-i18n="contribute.class_attributes") Class Attributes 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. - 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. - h4 How To Join - p Either get together with (or recruit!) an Artisan and work with them, or - | check the box below to receive emails when there are new levels to test. - | We'll also be posting about levels to review on our networks like - a(href="http://discourse.codecombat.com/category/adventurer") our forum - | , - a(href="https://www.facebook.com/codecombat") Facebook - | , - a(href="https://twitter.com/CodeCombat") Twitter - | , and - a(href="https://plus.google.com/115285980638641924488/posts") Google+ - | , so if you prefer to be notified those ways, sign up there! + h4(data-i18n="contribute.how_to_join") How To Join + 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. + | We'll also be posting about levels to review on our networks like + span + a(href="http://discourse.codecombat.com/category/adventurer", data-i18n="contribute.adventurer_forum_url") + | our forum + span , + a(href="https://www.facebook.com/codecombat", data-i18n="contribute.adventurer_facebook_url") + | Facebook + span , + 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 div#sign-up.alert.alert-info - strong Hey there! - | To subscribe for class emails, you'll need to - a(data-toggle="coco-modal", data-target="modal/signup") create an account - | first . + strong(data-i18n="contribute.alert_account_message_intro") + | Hey there! + span + span(data-i18n="contribute.alert_account_message_pref") + | To subscribe for class emails, you'll need to + a(data-toggle="coco-modal", data-target="modal/signup", data-i18n="contribute.alert_account_message_create_url") + | create an account + span + span(data-i18n="contribute.alert_account_message_suf") + | first. label.checkbox(for="tester").well input(type='checkbox', name="tester", id="tester") - | Get emails when there are new levels to test. + span(data-i18n="contribute.adventurer_subscribe_desc") + | Get emails when there are new levels to test. .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 - h3 Our Brave Adventurers: + h3(data-i18n="contribute.brave_adventurers") + | Our Brave Adventurers: ul.adventurers li Kieizroe diff --git a/app/templates/contribute/ambassador.jade b/app/templates/contribute/ambassador.jade index 5983e5bc8..c5ccefc96 100644 --- a/app/templates/contribute/ambassador.jade +++ b/app/templates/contribute/ambassador.jade @@ -11,43 +11,62 @@ block content .class_image img(src="/images/pages/contribute/ambassador.png", alt="") - h2 Ambassador (Support) - p This is a community we're building, and you are the connections. + h2 + span(data-i18n="account_settings.ambassador_title_pref") Ambassador + span + span(data-i18n="account_settings.ambassador_title_suf") (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 | and help get acquainted with the game and learn from. | If you want to help people get involved and have fun, and get a good feel of the pulse of | CodeCombat and where we're going, then this class might be for you. - h4 Class Attributes + h4(data-i18n="contribute.class_attributes") Class Attributes 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 | 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 - a(title='Contact', tabindex=-1, data-toggle="coco-modal", data-target="modal/contact") Contact us - | , tell us a little about yourself, what you've done and what you'd - | be interested in doing. We'll go from there! + a(title='Contact', tabindex=-1, data-toggle="coco-modal", data-target="modal/contact", data-i18n="contact_us_url") + | 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! p - strong Note - | : One of our top priorities is to build multiplayer where players having difficulty - | solving levels can summon higher level wizards to help them. - | This will be a great way for ambassadors to do their thing. We'll keep you posted! + strong(data-i18n="contribute.ambassador_join_note_strong") + | 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. + | This will be a great way for ambassadors to do their thing. We'll keep you posted! if me.attributes.anonymous div#sign-up.alert.alert-info - strong Hey there! - | To subscribe for class emails, you'll need to - a(data-toggle="coco-modal", data-target="modal/signup") create an account - | first . + strong(data-i18n="contribute.alert_account_message_intro") + | Hey there! + span + span(data-i18n="contribute.alert_account_message_pref") + | To subscribe for class emails, you'll need to + a(data-toggle="coco-modal", data-target="modal/signup", data-i18n="contribute.alert_account_message_create_url") + | create an account + span + span(data-i18n="contribute.alert_account_message_suf") + | first. label.checkbox(for="support").well input(type='checkbox', name="support", id="support") - | Get emails on support updates and multiplayer developments. + span(data-i18n="contribute.ambassador_subscribe_desc") + | Get emails on support updates and multiplayer developments. .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 \ No newline at end of file diff --git a/app/templates/contribute/archmage.jade b/app/templates/contribute/archmage.jade index a442b6970..6caac2ff4 100644 --- a/app/templates/contribute/archmage.jade +++ b/app/templates/contribute/archmage.jade @@ -11,62 +11,82 @@ block content .class_image img(src="/images/pages/contribute/archmage.png", alt="") - h2 Archmage (Coder) - p One of the best parts about building games is they synthesize so many different things. + h2 + span(data-i18n="account_settings.archmage_title_pref") Archmage + span + span(data-i18n="account_settings.archmage_title_suf") (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 | more common aspects of programming, from low-level database management, | and server administration to user facing design and interface building. | There's a lot to do, and if you're an experienced programmer with a hankering | to really dive into the nitty-gritty of CodeCombat, this class might be for you. - - p Right now we have open-sourced two of our tools on the project: - 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. + | 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 - li Knowledge in + li + span(data-i18n="contribute.archmage_attribute_1_pref") Knowledge in a(href="http://coffeescript.org/") CoffeeScript - | , or a desire to learn. Most of our code is in this language. - | If you're a fan of Ruby or Python, you'll feel right at home. - | It's just JavaScript, but with a nicer syntax. - li Some experience in programming and personal initiative. + span(data-i18n="contribute.archmage_attribute_1_suf") + | , or a desire to learn. Most of our code is in this language. + | If you're a fan of Ruby or Python, you'll feel right at home. + | It's just JavaScript, but with a nicer syntax. + 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. - h4 How To Join + h4(data-i18n="contribute.how_to_join") How To Join p - | Anyone can help out! Just check out our - a(title='GitHub', tabindex=-1) GitHub - | to get started, and check the box below to mark yourself as a brave Archmage. - | 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 - | , tell us a little about yourself, what you've done and what you'd - | be interested in working on. We'll go from there! + span(data-i18n="contribute.join_desc_1") + | Anyone can help out! Just check out our + 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. + | 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", data-i18n="contribute.join_url_email") + | Email us + 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 div#sign-up.alert.alert-info - strong Hey there! - | To subscribe for class emails, you'll need to - a(data-toggle="coco-modal", data-target="modal/signup") create an account - | first . + strong(data-i18n="contribute.alert_account_message_intro") + | Hey there! + span + span(data-i18n="contribute.alert_account_message_pref") + | To subscribe for class emails, you'll need to + a(data-toggle="coco-modal", data-target="modal/signup", data-i18n="contribute.alert_account_message_create_url") + | create an account + span + span(data-i18n="contribute.alert_account_message_suf") + | first. 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. - .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 - h3 Our Magical Archmages: + h3(data-i18n="contribute.magical_archmages") + | Our Magical Archmages: ul.archmages li David Golds li Zach Martin li Tom Steinbrecher + li Glen De Cauwsemaecker li Mischa Lewis-Norelle li Sébastien Moratinos li Chloe Fan diff --git a/app/templates/contribute/artisan.jade b/app/templates/contribute/artisan.jade index 087f46bb6..a5aaa6c79 100644 --- a/app/templates/contribute/artisan.jade +++ b/app/templates/contribute/artisan.jade @@ -11,49 +11,76 @@ block content .class_image img(src="/images/pages/contribute/artisan.png", alt="") - h2 Artisan (Level Builder) - p We must construct additional levels! - | People be clamoring for more content, and we can only build so many ourselves. - | Right now your workstation is level one; our level editor is barely - | usable even by its creators, so be wary. - | If you have visions of campaigns spanning for-loops to - a(href="http://stackoverflow.com/questions/758088/seeking-contrived-example-code-continuations/758105#758105") Mondo Bizzaro - | to then this class might be for you. + h2 + span(data-i18n="account_settings.artisan_title_pref") Artisan + span + span(data-i18n="account_settings.artisan_title_suf") (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. + | Right now your workstation is level one; our level editor is barely + | usable even by its creators, so be wary. + | If you have visions of campaigns spanning for-loops to + 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. - h4 Class Attributes + h4(data-i18n="contribute.class_attributes") Class Attributes 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! - 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, | 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! - h4 How To Join - p 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) - | but be in touch with us and we'll see if we can make what you need. - | See the - a(href="https://docs.google.com/document/d/117tMcL95T1KY8BDisr0iGi5Frb2ZvBJTC0us5hyQkJY/edit?usp=sharing") preliminary documentation - | for more info, and please comment on it so we can make the whole system better. + h4(data-i18n="contribute.how_to_join") How To Join + 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) + | but be in touch with us and we'll see if we can make what you need. + | See the + 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. if me.attributes.anonymous div#sign-up.alert.alert-info - strong Hey there! - | To subscribe for class emails, you'll need to - a(data-toggle="coco-modal", data-target="modal/signup") create an account - | first . + strong(data-i18n="contribute.alert_account_message_intro") + | Hey there! + span + span(data-i18n="contribute.alert_account_message_pref") + | To subscribe for class emails, you'll need to + a(data-toggle="coco-modal", data-target="modal/signup", data-i18n="contribute.alert_account_message_create_url") + | create an account + span + span(data-i18n="contribute.alert_account_message_suf") + | first. label.checkbox(for="level_creator").well input(type='checkbox', name="level_creator", id="level_creator") - | Get emails on level editor updates and announcements. + span(data-i18n="contribute.artisan_subscribe_desc") + | Get emails on level editor updates and announcements. .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 - h3 Our Creative Artisans: + h3(data-i18n="contribute.creative_artisans") + | Our Creative Artisans: ul.artisans li Sootn li Zach Martin diff --git a/app/templates/contribute/contribute.jade b/app/templates/contribute/contribute.jade index c86b7c598..d89a991e2 100644 --- a/app/templates/contribute/contribute.jade +++ b/app/templates/contribute/contribute.jade @@ -9,40 +9,57 @@ block content div#contribute-main.class-main div#intro - h2 Contributing + h2(data-i18n="contribute.page_title") Contributing #homepage_screenshot img(src="/images/pages/contribute/contribute_header.png", alt="") p - strong We have high hopes for CodeCombat. - | We want to be where programmers of all stripes come to learn and play together, - | introduce others to the wonderful world of coding, - | and reflect the best parts of the community. - | We can't and don't want to do that alone; - | what makes projects like GitHub, Stack Overflow and Linux great are the people who - | use them and build on them. - | To that end, - a(href="https://github.com/codecombat/codecombat") CodeCombat is totally open source - | , and we aim to provide as many ways as possible for you to take part and - | make this project as much yours as ours. - p We hope you'll join our party! - p.signature - Nick, George, Scott, Michael, and Jeremy + 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, + | introduce others to the wonderful world of coding, + | and reflect the best parts of the community. + | We can't and don't want to do that alone; + | what makes projects like GitHub, Stack Overflow and Linux great are the people who + | use them and build on them. + | To that end, + 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 + | make this project as much yours as ours. + p(data-i18n="contribute.introduction_desc_ending") + | We hope you'll join our party! + p(data-i18n="contribute.introduction_desc_signature").signature + | - Nick, George, Scott, Michael, and Jeremy hr if me.attributes.anonymous div#sign-up.alert.alert-info - strong Hey there! - | To subscribe for class emails, you'll need to - a(data-toggle="coco-modal", data-target="modal/signup") create an account - | first . + strong(data-i18n="contribute.alert_account_message_intro") + | Hey there! + span + span(data-i18n="contribute.alert_account_message_pref") + | To subscribe for class emails, you'll need to + a(data-toggle="coco-modal", data-target="modal/signup", data-i18n="contribute.alert_account_message_create_url") + | create an account + span + span(data-i18n="contribute.alert_account_message_suf") + | first. #archmage .class_image.header-scrolling-fix img(src="/images/pages/contribute/archmage.png", alt="") - h3.header-scrolling-fix Archmage (Coder) - p One of the best parts about building games is they synthesize so many different things. + h3.header-scrolling-fix + span(data-i18n="account_settings.archmage_title_pref") Archmage + span + span(data-i18n="account_settings.archmage_title_suf") (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 | more common aspects of programming, from low-level database management, | and server administration to user facing design and interface building. @@ -50,34 +67,47 @@ block content | 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. - h4 Class Attributes + h4(data-i18n="contribute.class_attributes") Class Attributes ul - li Knowledge in + li + span(data-i18n="contribute.archmage_attribute_1_pref") Knowledge in a(href="http://coffeescript.org/") CoffeeScript - | , or a desire to learn. Most of our code is in this language. - | If you're a fan of Ruby or Python, you'll feel right at home. - | It's just JavaScript, but with a nicer syntax. - li Some experience in programming and personal initiative. + span(data-i18n="contribute.archmage_attribute_1_suf") + | , or a desire to learn. Most of our code is in this language. + | If you're a fan of Ruby or Python, you'll feel right at home. + | It's just JavaScript, but with a nicer syntax. + 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. - h4 How To Join + h4(data-i18n="contribute.how_to_join") How To Join p - | Anyone can help out! Just check out our - a(title='GitHub', href="https://github.com/codecombat/codecombat", tabindex=-1) GitHub - | 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? - a(title='Contact', tabindex=-1, data-toggle="coco-modal", data-target="modal/contact") Email us - | , or find us in our - a(href="http://www.hipchat.com/g3plnOKqa") public HipChat room - | and we'll go from there! + span(data-i18n="contribute.join_desc_1") + | Anyone can help out! Just check out our + 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. + | 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", data-i18n="contribute.join_url_email") + | Email us + 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! 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 input(type='checkbox', name="developer", id="developer") - | Get emails on new coding opportunities and announcements. + span(data-i18n="contribute.archmage_subscribe_desc") + | Get emails on new coding opportunities and announcements. .saved-notification ✓ Saved @@ -86,115 +116,163 @@ block content .class_image.header-scrolling-fix img(src="/images/pages/contribute/artisan.png", alt="") - h3.header-scrolling-fix Artisan (Level Builder) - p We must construct additional levels! - | People be clamoring for more content, and we can only build so many ourselves. - | Right now your workstation is level one; our level editor is barely - | usable even by its creators, so be wary. - | If you have visions of campaigns spanning for-loops to - a(href="http://stackoverflow.com/questions/758088/seeking-contrived-example-code-continuations/758105#758105") Mondo Bizzaro - | to then this class might be for you. + h3.header-scrolling-fix + span(data-i18n="account_settings.artisan_title_pref") Artisan + span + span(data-i18n="account_settings.artisan_title_suf") (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. + | Right now your workstation is level one; our level editor is barely + | usable even by its creators, so be wary. + | If you have visions of campaigns spanning for-loops to + 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. - h4 Class Attributes + h4(data-i18n="contribute.class_attributes") Class Attributes 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! - 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, | 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! - h4 How To Join - p 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) - | but be in touch with us and we'll see if we can make what you need. - | See the - a(href="https://docs.google.com/document/d/117tMcL95T1KY8BDisr0iGi5Frb2ZvBJTC0us5hyQkJY/edit?usp=sharing") preliminary documentation - | for more info, and please comment on it so we can make the whole system better. + h4(data-i18n="contribute.how_to_join") How To Join + 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) + | but be in touch with us and we'll see if we can make what you need. + | See the + 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. 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 input(type='checkbox', name="level_creator", id="level_creator") - | Get emails on level editor updates and announcements. + span(data-i18n="contribute.artisan_subscribe_desc") + | Get emails on level editor updates and announcements. .saved-notification ✓ Saved - #adventurer .class_image.header-scrolling-fix img(src="/images/pages/contribute/adventurer.png", alt="") - h3.header-scrolling-fix Adventurer (Level Playtester) - p Let's be clear about your role: you are the tank. You're going to take heavy damage. + h3.header-scrolling-fix + span(data-i18n="account_settings.adventurer_title_pref") Adventurer + span + span(data-i18n="account_settings.adventurer_title_suf") (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. | The pain will be enormous; making good games is a long process and no one gets | it right the first time. | If you can endure and have a high constitution score, then this class might be for you. - h4 Class Attributes + h4(data-i18n="contribute.class_attributes") Class Attributes 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. - 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. - h4 How To Join - p Either get together with (or recruit!) an Artisan and work with them, or - | check the box below to receive emails when there are new levels to test. - | We'll also be posting about levels to review on our networks like - a(href="http://discourse.codecombat.com/category/adventurer") our forum - | , - a(href="https://www.facebook.com/codecombat") Facebook - | , - a(href="https://twitter.com/CodeCombat") Twitter - | , and - a(href="https://plus.google.com/115285980638641924488/posts") Google+ - | , so if you prefer to be notified those ways, sign up there! + h4(data-i18n="contribute.how_to_join") How To Join + 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. + | We'll also be posting about levels to review on our networks like + span + a(href="http://discourse.codecombat.com/category/adventurer", data-i18n="contribute.adventurer_forum_url") + | our forum + span , + a(href="https://www.facebook.com/codecombat", data-i18n="contribute.adventurer_facebook_url") + | Facebook + span , + 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") - 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 input(type='checkbox', name="tester", id="tester") - | Get emails when there are new levels to test. + span(data-i18n="contribute.adventurer_subscribe_desc") + | Get emails when there are new levels to test. .saved-notification ✓ Saved - #scribe .class_image.header-scrolling-fix img(src="/images/pages/contribute/scribe.png", alt="") - h3.header-scrolling-fix Scribe (Article Editor) - p CodeCombat isn't just going to be a bunch of levels. - | It will also include a resource for knowledge, a wiki of programming concepts that levels can hook into. - | That way rather than each Artisan having to describe in detail what a comparison operator is, they - | can simply link their level to the Article describing them that is already written for the player's edification. - | Something along the lines of what the - a(href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide") Mozilla Developer Network - | has built. If your idea of fun is articulating the concepts of programming in Markdown form, - | then this class might be for you. + h3.header-scrolling-fix + span(data-i18n="account_settings.scribe_title_pref") Scribe + span + span(data-i18n="account_settings.scribe_title_suf") (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. + | That way rather than each Artisan having to describe in detail what a comparison operator is, they + | can simply link their level to the Article describing them that is already written for the player's edification. + | Something along the lines of what the + 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, + | then this class might be for you. - h4 Class Attributes + h4(data-i18n="contribute.class_attributes") Class Attributes 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. - h4 How To Join + h4(data-i18n="contribute.how_to_join") How To Join p - a(title='Contact', tabindex=-1, data-toggle="coco-modal", data-target="modal/contact") Contact us - | , 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! + a(title='Contact', tabindex=-1, data-toggle="coco-modal", data-target="modal/contact", data-i18n="contribute.contact_us_url") + | 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! 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 input(type='checkbox', name="article_editor", id="article_editor") - | Get emails about article writing announcements. + span(data-i18n="contribute.scribe_subscribe_desc") + | Get emails about article writing announcements. .saved-notification ✓ Saved @@ -204,82 +282,113 @@ block content .class_image.header-scrolling-fix img(src="/images/pages/contribute/diplomat.png", alt="") - h3.header-scrolling-fix Diplomat (Translator) - p So, if there's one thing we learned from the - a(href="blog.codecombat.com/post/64658141307/codecombat-in-y-combinator") launch in October - | , it's that there - | 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 - | another set of words to get CodeCombat as accessible across the world as possible. - | If you like getting sneak peeks at upcoming content and getting these levels to - | your fellow nationals ASAP, then this class might be for you. + h3.header-scrolling-fix + span(data-i18n="account_settings.diplomat_title_pref") Diplomat + span + span(data-i18n="account_settings.diplomat_title_suf") (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! + | We're building a corps of translators eager to turn one set of words into + | another set of words to get CodeCombat as accessible across the world as possible. + | If you like getting sneak peeks at upcoming content and getting these levels to + | your fellow nationals ASAP, then this class might be for you. - h4 Class Attributes + h4(data-i18n="contribute.class_attributes") Class Attributes 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! - h4 How to Join - p 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") this Google Doc - | , so check it out and add things for your language. Also, check this box below to - | keep up-to-date on new internationalization developments! + h4(data-i18n="contribute.how_to_join") How to Join + p + span(data-i18n="contribute.diplomat_join_pref") + | 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! 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 input(type='checkbox', name="translator", id="translator") - | Get emails about i18n developments and levels to translate. + span(data-i18n="contribute.diplomat_subscribe_desc") + | Get emails about i18n developments and levels to translate. .saved-notification ✓ Saved - #ambassador .class_image.header-scrolling-fix img(src="/images/pages/contribute/ambassador.png", alt="") - h3.header-scrolling-fix Ambassador (Support) - p This is a community we're building, and you are the connections. + h3.header-scrolling-fix + span(data-i18n="account_settings.ambassador_title_pref") Ambassador + span + span(data-i18n="account_settings.ambassador_title_suf") (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 | and help get acquainted with the game and learn from. | If you want to help people get involved and have fun, and get a good feel of the pulse of | CodeCombat and where we're going, then this class might be for you. - h4 Class Attributes + h4(data-i18n="contribute.class_attributes") Class Attributes 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 | 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 - a(title='Contact', tabindex=-1, data-toggle="coco-modal", data-target="modal/contact") Contact us - | , tell us a little about yourself, what you've done and what you'd - | be interested in doing. We'll go from there! + a(title='Contact', tabindex=-1, data-toggle="coco-modal", data-target="modal/contact", data-i18n="contact_us_url") + | 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! p - strong Note - | : One of our top priorities is to build multiplayer where players having difficulty - | solving levels can summon higher level wizards to help them. - | This will be a great way for ambassadors to do their thing. We'll keep you posted! + strong(data-i18n="contribute.ambassador_join_note_strong") + | 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. + | This will be a great way for ambassadors to do their thing. We'll keep you posted! 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 input(type='checkbox', name="support", id="support") - | Get emails on support updates and multiplayer developments. + span(data-i18n="contribute.ambassador_subscribe_desc") + | Get emails on support updates and multiplayer developments. .saved-notification ✓ Saved - #counselor .class_image.header-scrolling-fix img(src="/images/pages/contribute/counselor.png", alt="") - h3.header-scrolling-fix Counselor (Expert) - p Do you have life experience? + h3.header-scrolling-fix + span(data-i18n="account_settings.counselor_title_pref") Counselor + span + span(data-i18n="account_settings.counselor_title_suf") (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? | Of all these roles, this will probably take the least time, but | individually you may make the most difference. @@ -287,23 +396,30 @@ block content | game development, open source project management, technical recruiting, entrepreneurship, | 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 | this class might be for you. - h4 Class Attributes + h4(data-i18n="contribute.class_attributes") Class Attributes ul - li Experience, in any of the areas above or something you think might be helpful. - li A little bit of free time! + li(data-i18n="contribute.counselor_attribute_1") + | 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 - a(title='Contact', tabindex=-1, data-toggle="coco-modal", data-target="modal/contact") Contact us - | , tell us a little about yourself, what you've done and what you'd - | be interested in doing. We'll put you in our contact list and be in touch - | when we could use advice (not too often). + a(title='Contact', tabindex=-1, data-toggle="coco-modal", data-target="modal/contact", data-i18n="contact_us_url") + | 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 + | when we could use advice (not too often). 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 \ No newline at end of file diff --git a/app/templates/contribute/contribute_nav.jade b/app/templates/contribute/contribute_nav.jade index 13297dd53..bf210b8df 100644 --- a/app/templates/contribute/contribute_nav.jade +++ b/app/templates/contribute/contribute_nav.jade @@ -1,17 +1,38 @@ ul.contribute_class.affix.nav.nav-list.nav-pills#contribute-nav li - h3 Character Classes + h3(data-i18n="contribute.character_classes_title") Character Classes li - a(href=navPrefix + "#archmage") Archmage (Coder) + a(href=navPrefix + "#archmage") + span(data-i18n="account_settings.archmage_title_pref") Archmage + span + span(data-i18n="account_settings.archmage_title_suf") (Coder) li - a(href=navPrefix + "#artisan") Artisan (Level Builder) + a(href=navPrefix + "#artisan") + span(data-i18n="account_settings.artisan_title_pref") Artisan + span + span(data-i18n="account_settings.artisan_title_suf") (Level Builder) li - a(href=navPrefix + "#adventurer") Adventurer (Level Playtester) + a(href=navPrefix + "#adventurer") + span(data-i18n="account_settings.adventurer_title_pref") Adventurer + span + span(data-i18n="account_settings.adventurer_title_suf") (Level Playtester) li - a(href=navPrefix + "#scribe") Scribe (Article Editor) + a(href=navPrefix + "#scribe") + span(data-i18n="account_settings.scribe_title_pref") Scribe + span + span(data-i18n="account_settings.scribe_title_suf") (Article Editor) li - a(href=navPrefix + "#diplomat") Diplomat (Translator) + a(href=navPrefix + "#diplomat") + span(data-i18n="account_settings.diplomat_title_pref") Diplomat + span + span(data-i18n="account_settings.diplomat_title_suf") (Translator) li - a(href=navPrefix + "#ambassador") Ambassador (Support) + a(href=navPrefix + "#ambassador") + span(data-i18n="account_settings.ambassador_title_pref") Ambassador + span + span(data-i18n="account_settings.ambassador_title_suf") (Support) li - a(href=navPrefix + "#counselor") Counselor (Expert/Teacher) \ No newline at end of file + a(href=navPrefix + "#counselor") + span(data-i18n="account_settings.counselor_title_pref") Counselor + span + span(data-i18n="account_settings.counselor_title_suf") (Expert/Teacher) \ No newline at end of file diff --git a/app/templates/contribute/counselor.jade b/app/templates/contribute/counselor.jade index 2f9723631..eb5ee9c78 100644 --- a/app/templates/contribute/counselor.jade +++ b/app/templates/contribute/counselor.jade @@ -11,8 +11,12 @@ block content .class_image img(src="/images/pages/contribute/counselor.png", alt="") - h2 Counselor (Expert) - p Do you have life experience? + h2 + span(data-i18n="account_settings.counselor_title_pref") Counselor + span + span(data-i18n="account_settings.counselor_title_suf") (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? | Of all these roles, this will probably take the least time, but | individually you may make the most difference. @@ -20,20 +24,26 @@ block content | game development, open source project management, technical recruiting, entrepreneurship, | 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 | this class might be for you. - h4 Class Attributes + h4(data-i18n="contribute.class_attributes") Class Attributes ul - li Experience, in any of the areas above or something you think might be helpful. - li A little bit of free time! + li(data-i18n="contribute.counselor_attribute_1") + | 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 - a(title='Contact', tabindex=-1, data-toggle="coco-modal", data-target="modal/contact") Contact us - | , tell us a little about yourself, what you've done and what you'd - | be interested in doing. We'll put you in our contact list and be in touch - | when we could use advice (not too often). + a(title='Contact', tabindex=-1, data-toggle="coco-modal", data-target="modal/contact", data-i18n="contact_us_url") + | 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 + | when we could use advice (not too often). div.clearfix \ No newline at end of file diff --git a/app/templates/contribute/diplomat.jade b/app/templates/contribute/diplomat.jade index c39a96343..ca811398d 100644 --- a/app/templates/contribute/diplomat.jade +++ b/app/templates/contribute/diplomat.jade @@ -11,49 +11,73 @@ block content .class_image img(src="/images/pages/contribute/diplomat.png", alt="") - h2 Diplomat (Translator) - p So, if there's one thing we learned from the - a(href="blog.codecombat.com/post/64658141307/codecombat-in-y-combinator") launch in October - | , it's that there - | 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 - | another set of words to get CodeCombat as accessible across the world as possible. - | If you like getting sneak peeks at upcoming content and getting these levels to - | your fellow nationals ASAP, then this class might be for you. + h2 + span(data-i18n="account_settings.diplomat_title_pref") Diplomat + span + span(data-i18n="account_settings.diplomat_title_suf") (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! + | We're building a corps of translators eager to turn one set of words into + | another set of words to get CodeCombat as accessible across the world as possible. + | If you like getting sneak peeks at upcoming content and getting these levels to + | your fellow nationals ASAP, then this class might be for you. - h4 Class Attributes + h4(data-i18n="contribute.class_attributes") Class Attributes 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! - h4 How to Join - p 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") this Google Doc - | , so check it out and add things for your language. Also, check this box below to - | keep up-to-date on new internationalization developments! + h4(data-i18n="contribute.how_to_join") How to Join + p + span(data-i18n="contribute.diplomat_join_pref") + | 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! if me.attributes.anonymous div#sign-up.alert.alert-info - strong Hey there! - | To subscribe for class emails, you'll need to - a(data-toggle="coco-modal", data-target="modal/signup") create an account - | first . - + strong(data-i18n="contribute.alert_account_message_intro") + | Hey there! + span + span(data-i18n="contribute.alert_account_message_pref") + | To subscribe for class emails, you'll need to + a(data-toggle="coco-modal", data-target="modal/signup", data-i18n="contribute.alert_account_message_create_url") + | create an account + span + span(data-i18n="contribute.alert_account_message_suf") + | first. + label.checkbox(for="translator").well input(type='checkbox', name="translator", id="translator") - | Get emails about i18n developments and levels to translate. + span(data-i18n="contribute.diplomat_subscribe_desc") + | Get emails about i18n developments and levels to translate. .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 - h3 Our Translating Diplomats: + h3(data-i18n="contribute.translating_diplomates") + | Our Translating Diplomats: ul.diplomats li Turkish - Nazım Gediz Aydındoğmuş li Brazilian Portuguese - Gutenberg Barros, Kieizroe, Matthew Burt li Portugal Portuguese - Matthew Burt li German - Dirk, Anon li Thai - Kamolchanok Jittrepit + li Vietnamese - An Nguyen Hoang Thien li Greek - Stergios li Latin American Spanish - Jesús Ruppel, Matthew Burt, Mariano Luzza li Spain Spanish - Matthew Burt, Anon diff --git a/app/templates/contribute/scribe.jade b/app/templates/contribute/scribe.jade index 87de31771..df7966fab 100644 --- a/app/templates/contribute/scribe.jade +++ b/app/templates/contribute/scribe.jade @@ -11,44 +11,66 @@ block content .class_image img(src="/images/pages/contribute/scribe.png", alt="") - h2 Scribe (Article Editor) - p CodeCombat isn't just going to be a bunch of levels. - | It will also include a resource for knowledge, a wiki of programming concepts that levels can hook into. - | That way rather than each Artisan having to describe in detail what a comparison operator is, they - | can simply link their level to the Article describing them that is already written for the player's edification. - | Something along the lines of what the - a(href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide") Mozilla Developer Network - | has built. If your idea of fun is articulating the concepts of programming in Markdown form, - | then this class might be for you. + h2 + span(data-i18n="account_settings.scribe_title_pref") Scribe + span + span(data-i18n="account_settings.scribe_title_suf") (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. + | That way rather than each Artisan having to describe in detail what a comparison operator is, they + | can simply link their level to the Article describing them that is already written for the player's edification. + | Something along the lines of what the + 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, + | then this class might be for you. - h4 Class Attributes + h4(data-i18n="contribute.class_attributes") + | Class Attributes 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. - h4 How To Join + h4(data-i18n="contribute.how_to_join") How To Join p - a(title='Contact', tabindex=-1, data-toggle="coco-modal", data-target="modal/contact") Contact us - | , 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! + a(title='Contact', tabindex=-1, data-toggle="coco-modal", data-target="modal/contact", data-i18n="contribute.contact_us_url") + | 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! if me.attributes.anonymous div#sign-up.alert.alert-info - strong Hey there! - | To subscribe for class emails, you'll need to - a(data-toggle="coco-modal", data-target="modal/signup") create an account - | first . + strong(data-i18n="contribute.alert_account_message_intro") + | Hey there! + span + span(data-i18n="contribute.alert_account_message_pref") + | To subscribe for class emails, you'll need to + a(data-toggle="coco-modal", data-target="modal/signup", data-i18n="contribute.alert_account_message_create_url") + | create an account + span + span(data-i18n="contribute.alert_account_message_suf") + | first. label.checkbox(for="article_editor").well input(type='checkbox', name="article_editor", id="article_editor") - | Get emails about article writing announcements. + span(data-i18n="contribute.scribe_subscribe_desc") + | Get emails about article writing announcements. .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 - h3 Our Diligent Scribes: + h3(data-i18n="contribute.diligent_scribes") + | Our Diligent Scribes: ul.scribes li Ryan Faidley + li Glen De Cauwsemaecker div.clearfix \ No newline at end of file diff --git a/app/templates/editor.jade b/app/templates/editor.jade index 2ec22df04..f8e8c2bba 100644 --- a/app/templates/editor.jade +++ b/app/templates/editor.jade @@ -2,61 +2,67 @@ extends /templates/base block content - h3 Introducing The CodeCombat Level Editor + h3(data-i18n="editor.ep_intro_title") Introducing The CodeCombat Level Editor - p - | Since we launched the prototype in June, 2013, we've been hard at work making - | systems for producing much, much more content. - | The centerpiece of these efforts is the new - strong Level Editor - | , which makes building levels and their many constituent parts a snap. + 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 + | systems for producing much, much more content. + | The centerpiece of these efforts is the new + 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. div.images div img(src="/file/52602a6ba36ab808aa000007", alt="Articles").img-polaroid br - span.label.label-info Write Articles + span(data-i18n="editor.ep_img_desc_articles").label.label-info Write Articles div img(src="/file/526032dca36ab808aa000009", alt="Map").img-polaroid br - span.label.label-info Construct Maps + span(data-i18n="editor.ep_img_desc_maps").label.label-info Construct Maps div img(src="/file/52603311a36ab808aa00000c", alt="Scripting").img-polaroid br - span.label.label-info Build Scripts + span(data-i18n="editor.ep_img_desc_scripts").label.label-info Build Scripts div img(src="/file/52603434a36ab808aa00000e", alt="Units").img-polaroid 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, | 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. | 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 - h3 When Can I Use It? + h3(data-i18n="editor.ep_use_title") When Can I Use It? p + span(data-i18n="editor.ep_use_desc_pref") | 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, | so we're throwing it out there. | 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 - a(href="/contribute") contribute page + a(href="/contribute", data-i18n="editor.ep_use_contribute_url") contribute page | . hr 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() - 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-body \ No newline at end of file diff --git a/app/templates/editor/article/edit.jade b/app/templates/editor/article/edit.jade index 90ce0fb47..eb7f6b19d 100644 --- a/app/templates/editor/article/edit.jade +++ b/app/templates/editor/article/edit.jade @@ -1,10 +1,12 @@ extends /templates/base block content - button.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_preview").btn.btn-primary#preview-button Preview + 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 diff --git a/app/templates/editor/article/table.jade b/app/templates/editor/article/table.jade index 744dbd6c6..b5945b693 100644 --- a/app/templates/editor/article/table.jade +++ b/app/templates/editor/article/table.jade @@ -1,11 +1,15 @@ table.table tr - th(colspan=3) Results: #{documents.length} + th(colspan=3) + span(data-i18n="article.index_table_results") + | Results + span + |: #{documents.length} tr - th Name - th Body - th Version + th(data-i18n="article.index_table_name") Name + th(data-i18n="article.index_table_body") Body + th(data-i18n="article.index_table_version") Version for article in documents - article = article.attributes; diff --git a/app/templates/editor/level/component/edit.jade b/app/templates/editor/level/component/edit.jade index c604e0411..fe63ed317 100644 --- a/app/templates/editor/level/component/edit.jade +++ b/app/templates/editor/level/component/edit.jade @@ -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 diff --git a/app/templates/editor/level/component/new.jade b/app/templates/editor/level/component/new.jade index 4d6d0b08e..bb4965a79 100644 --- a/app/templates/editor/level/component/new.jade +++ b/app/templates/editor/level/component/new.jade @@ -6,14 +6,14 @@ block modal-header-content block modal-body-content form.form-horizontal .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 input#level-component-system.input-large(name="system", type="text") .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 input#level-component-name.input-large(name="name", type="text") block modal-footer-content - button.btn(data-dismiss="modal") Cancel - button.btn.btn-primary#new-level-component-submit Create + button(data-i18n="editor.new_component_btn_cancel").btn(data-dismiss="modal") Cancel + button(data-i18n="editor.new_component_btn_create").btn.btn-primary#new-level-component-submit Create diff --git a/app/templates/editor/level/components_tab.jade b/app/templates/editor/level/components_tab.jade index 7dda0d614..e97f47aa4 100644 --- a/app/templates/editor/level/components_tab.jade +++ b/app/templates/editor/level/components_tab.jade @@ -1,9 +1,9 @@ .components-container - h3 Current Components + h3(data-i18n="editor.level_component_tab_title") Current Components #components-treema .edit-component-container 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 diff --git a/app/templates/editor/level/edit.jade b/app/templates/editor/level/edit.jade index 797d44fe2..384b3c7ff 100644 --- a/app/templates/editor/level/edit.jade +++ b/app/templates/editor/level/edit.jade @@ -5,39 +5,40 @@ block outer_content .top-controls-area h2.level-title-header - span Level Editor: + span(data-i18n="editor.level_title") Level Editor + span : span.level-title #{level.attributes.name} .level-control-buttons - button.btn.btn-primary#commit-level-start-button Save - button.btn.btn-primary#fork-level-start-button Fork + button(data-i18n="editor.level_btn_save").btn.btn-primary#commit-level-start-button Save + button(data-i18n="editor.level_btn_fork").btn.btn-primary#fork-level-start-button Fork .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") i.icon-cog.icon-white ul.dropdown-menu li - span.dropdown-menu-header Some Options? + span(data-i18n="editor.level_some_options").dropdown-menu-header Some Options? li.divider li - a(data-delay="1000", href="#") 1 second - a(data-delay="3000", href="#") 3 seconds - a(data-delay="5000", href="#") 5 seconds - a(data-delay="90019001", href="#") Manual + a(data-delay="1000", href="#", data-i18n="editor.level_options_1_second") 1 second + a(data-delay="3000", href="#", data-i18n="editor.level_options_3_seconds") 3 seconds + a(data-delay="5000", href="#", data-i18n="editor.level_options_5_seconds") 5 seconds + a(data-delay="90019001", href="#", data-i18n="editor.level_options_manual") Manual .clearfix ul.nav.nav-tabs 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 - 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 - 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 - 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 - 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-pane.active#editor-level-thangs-tab-view diff --git a/app/templates/editor/level/settings_tab.jade b/app/templates/editor/level/settings_tab.jade index 9d19f5eb3..2d850c4c8 100644 --- a/app/templates/editor/level/settings_tab.jade +++ b/app/templates/editor/level/settings_tab.jade @@ -1,2 +1,2 @@ -h3 Settings +h3(data-i18n="editor.level_settings_title") Settings #settings-treema diff --git a/app/templates/editor/level/system/edit.jade b/app/templates/editor/level/system/edit.jade index 6fd8debfa..37a774d3d 100644 --- a/app/templates/editor/level/system/edit.jade +++ b/app/templates/editor/level/system/edit.jade @@ -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 diff --git a/app/templates/editor/level/system/new.jade b/app/templates/editor/level/system/new.jade index 1dd4fd41c..9632e748f 100644 --- a/app/templates/editor/level/system/new.jade +++ b/app/templates/editor/level/system/new.jade @@ -6,10 +6,10 @@ block modal-header-content block modal-body-content form.form-horizontal .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 input#level-system-name.input-large(name="name", type="text") block modal-footer-content - button.btn(data-dismiss="modal") Cancel - button.btn.btn-primary#new-level-system-submit Create + button(data-i18n="editor.create_system_btn_cancel").btn(data-dismiss="modal") Cancel + button(data-i18n="editor.create_system_btn_create").btn.btn-primary#new-level-system-submit Create diff --git a/app/templates/editor/level/systems_tab.jade b/app/templates/editor/level/systems_tab.jade index 0467520c1..f09edb2c6 100644 --- a/app/templates/editor/level/systems_tab.jade +++ b/app/templates/editor/level/systems_tab.jade @@ -1,11 +1,11 @@ .systems-container - h3 Current Systems + h3(data-i18n="editor.level_systems_tab_title") Current Systems #systems-treema .edit-system-container 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 -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 diff --git a/app/templates/editor/level/table.jade b/app/templates/editor/level/table.jade index 444c7d9b3..f727775b0 100644 --- a/app/templates/editor/level/table.jade +++ b/app/templates/editor/level/table.jade @@ -1,13 +1,17 @@ table.table tr - th(colspan=3) Results: #{documents.length} + th(colspan=3) + span(data-i18n="level.index_table_results") + | Results + span + |: #{documents.length} tr - th Name - th Description - th Version + th(data-i18n="level.index_table_name") Name + th(data-i18n="level.index_table_description") Description + th(data-i18n="level.index_table_version") Version - for level in documents + for level in documents - level = level.attributes; tr td diff --git a/app/templates/editor/level/thang/edit.jade b/app/templates/editor/level/thang/edit.jade index 1f2e693c8..beb9fbfa2 100644 --- a/app/templates/editor/level/thang/edit.jade +++ b/app/templates/editor/level/thang/edit.jade @@ -1,10 +1,12 @@ 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 a#thang-name-link span= thang.id input.hide(value=thang.id) - | ( Type: + | ( + span(data-i18n="editor.level_components_type") Type + | : a#thang-type-link span= thang.thangType input.hide(value=thang.thangType) diff --git a/app/templates/editor/level/thangs_tab.jade b/app/templates/editor/level/thangs_tab.jade index fe1415ec3..7b9539323 100644 --- a/app/templates/editor/level/thangs_tab.jade +++ b/app/templates/editor/level/thangs_tab.jade @@ -1,16 +1,16 @@ .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") .world-container.thangs-column - h3 World Starting Conditions + h3(data-i18n="editor.level_tab_thangs_conditions") World Starting Conditions #canvas-wrapper canvas(width=924, height=589)#surface #canvas-left-gradient.gradient #canvas-top-gradient.gradient .add-thangs-palette.thangs-column - h3 Add Thangs + h3(data-i18n="editor.level_tab_thangs_add") Add Thangs #thangs-list for thangType in thangTypes div.add-thang-palette-icon(data-thang-type=thangType.name) diff --git a/app/templates/legal.jade b/app/templates/legal.jade index d9f3adf12..a8d9171f2 100644 --- a/app/templates/legal.jade +++ b/app/templates/legal.jade @@ -2,83 +2,189 @@ extends /templates/base block content - h1 Legal + h1(data-i18n="legal.page_title") + | Legal hr - p.lead CodeCombat is free to play and completely open source. - p Check out - a(href="https://github.com/codecombat/codecombat") our GitHub - | , 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") our Archmage wiki - | for a list of the software that makes this game possible. + p(data-i18n="legal.opensource_intro").lead + | CodeCombat is free to play and completely open source. + p + span(data-i18n="legal.opensource_description_prefix") + | 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. hr div.aside.well - h3 Respectful Best Practices - p These are our promises to you, the player, in slightly less legalese. - h4 Privacy - 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. - h4 Security - 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. - h4 Email - p We will not inundate you with spam. Through - a(href='/account/settings') your email settings - | or through links in the emails we send, you can change your preferences and easily unsubscribe at any time. - h4 Cost - 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 Recruitment - :markdown - 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. + h3(data-i18n="legal.practices_title") + | Respectful Best Practices + p(data-i18n="legal.practices_description") + | These are our promises to you, the player, in slightly less legalese. + h4(data-i18n="legal.privacy_title") + | Privacy + p(data-i18n="legal.privacy_description") + | 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. + h4(data-i18n="legal.security_title") + | Security + p(data-i18n="legal.security_description") + | 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 - a(href="/cla") CLA - | , to which you should agree before contributing. + p + span(data-i18n="legal.contributor_description_prefix") + | 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 - a(href="http://opensource.org/licenses/MIT") MIT license - | . This includes all code in Systems and Components that are made available by CodeCombat for the purpose of creating levels. + p + span(data-i18n="legal.code_description_prefix") + | All code owned by CodeCombat or hosted on codecombat.com, + | both in the GitHub repository or in the codecombat.com database, + | is licensed under the + 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 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 - a(href="http://creativecommons.org/licenses/by/4.0/") Creative Commons Attribution 4.0 International License - | . Common content is anything made generally available by CodeCombat for the purpose of creating Levels. This includes: + p + span(data-i18n="legal.art_description_prefix") + | 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 - li Music - li Sound - li Artwork - li Sprites - li Any and all other non-code creative works that are made available when creating Levels. + li(data-i18n="legal.art_music") Music + li(data-i18n="legal.art_sound") Sound + li(data-i18n="legal.art_artwork") Artwork + li(data-i18n="legal.art_sprites") Sprites + 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 - li If used in a movie or another game, include codecombat.com in the credits. - 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. + li(data-i18n="legal.use_list_1") + | 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 - li Scripts - li Unit configuration - li Description - li 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_scripts") Scripts + li(data-i18n="legal.rights_unit") Unit configuration + li(data-i18n="legal.rights_description") Description + li(data-i18n="legal.rights_writings") Writings + 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. diff --git a/app/views/editor/level/component/edit.coffee b/app/views/editor/level/component/edit.coffee index 9ba8c4099..0a1cbf405 100644 --- a/app/views/editor/level/component/edit.coffee +++ b/app/views/editor/level/component/edit.coffee @@ -16,7 +16,7 @@ module.exports = class LevelComponentEditView extends View getRenderData: (context={}) => context = super(context) - context.editTitle = "Edit Component: #{@levelComponent.get('system')}.#{@levelComponent.get('name')}" + context.editTitle = "#{@levelComponent.get('system')}.#{@levelComponent.get('name')}" context afterRender: -> diff --git a/app/views/editor/level/system/edit.coffee b/app/views/editor/level/system/edit.coffee index e44aed842..39612be6d 100644 --- a/app/views/editor/level/system/edit.coffee +++ b/app/views/editor/level/system/edit.coffee @@ -16,7 +16,7 @@ module.exports = class LevelSystemEditView extends View getRenderData: (context={}) => context = super(context) - context.editTitle = "Edit System: #{@levelSystem.get('name')}" + context.editTitle = "#{@levelSystem.get('name')}" context afterRender: -> From 1032fdb1d310dc7e27810db7b89749698146e775 Mon Sep 17 00:00:00 2001 From: GlenDC Date: Sun, 12 Jan 2014 11:20:07 +0100 Subject: [PATCH 2/3] Enchangement for issue #23. Removed classes related ids from account_settings to classes category --- app/locale/fr.coffee | 10 +++--- app/templates/account/settings.jade | 36 ++++++++++---------- app/templates/contribute/adventurer.jade | 4 +-- app/templates/contribute/ambassador.jade | 4 +-- app/templates/contribute/archmage.jade | 4 +-- app/templates/contribute/artisan.jade | 4 +-- app/templates/contribute/contribute.jade | 28 +++++++-------- app/templates/contribute/contribute_nav.jade | 28 +++++++-------- app/templates/contribute/counselor.jade | 4 +-- app/templates/contribute/diplomat.jade | 4 +-- app/templates/contribute/scribe.jade | 4 +-- 11 files changed, 66 insertions(+), 64 deletions(-) diff --git a/app/locale/fr.coffee b/app/locale/fr.coffee index a21d3be12..31e59f40f 100644 --- a/app/locale/fr.coffee +++ b/app/locale/fr.coffee @@ -87,6 +87,11 @@ module.exports = nativeDescription: "français", englishDescription: "French", t # sending: "Sending..." # 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: title: "Aidez à traduire CodeCombat!" sub_heading: "Nous avons besoin de vos connaissances des langues." @@ -95,10 +100,7 @@ module.exports = nativeDescription: "français", englishDescription: "French", t learn_more: "Apprenez en plus sur comment devenir un diplomate!" # subscribe_as_diplomat: "Subscribe as a Diplomat" # - account_settings: - archmage_title_pref: "Archmage" - archmage_title_suf: "(Codeur)" - archmage_desc: "Obtenez des courriels au sujet des nouvelles et des annonces sur les CodeCombat général." +# account_settings: # title: "Account Settings" # not_logged_in: "Log in or create an account to change your settings." # autosave: "Changes Save Automatically" diff --git a/app/templates/account/settings.jade b/app/templates/account/settings.jade index 53d82793f..a6adab3e2 100644 --- a/app/templates/account/settings.jade +++ b/app/templates/account/settings.jade @@ -101,68 +101,68 @@ block content .control-group label.control-label(for="email_developer") - span(data-i18n="account_settings.archmage_title_pref") + span(data-i18n="classes.archmage_title") | Archmage br - span(data-i18n="account_settings.archmage_title_suf") + span(data-i18n="classes.archmage_title_description") | (Coder) .controls input#email_developer(name="email_developer", type="checkbox", checked=subs.developer) - span(data-i18n="account_settings.archmage_desc").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 label.control-label(for="email_level_creator") - span(data-i18n="account_settings.artisan_title_pref") + span(data-i18n="classes.artisan_title") | Artisan br - span(data-i18n="account_settings.artisan_title_suf") + span(data-i18n="classes.artisan_title_description") | (Level Builder) .controls input#email_level_creator(name="email_level_creator", type="checkbox", checked=subs.level_creator) - span(data-i18n="account_settings.artisan_desc").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 label.control-label(for="email_tester") - span(data-i18n="account_settings.adventurer_title_pref") + span(data-i18n="classes.adventurer_title") | Adventurer br - span(data-i18n="account_settings.adventurer_title_suf") + span(data-i18n="classes.adventurer_title_description") | (Level Playtester) .controls input#email_tester(name="email_tester", type="checkbox", checked=subs.tester) - span(data-i18n="account_settings.adventurer_desc").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 label.control-label(for="email_article_editor") - span(data-i18n="account_settings.scribe_title_pref") + span(data-i18n="classes.scribe_title") | Scribe br - span(data-i18n="account_settings.scribe_title_suf") + span(data-i18n="classes.scribe_title_description") | (Article Editor) .controls input#email_article_editor(name="email_article_editor", type="checkbox", checked=subs.article_editor) - span(data-i18n="account_settings.scribe_desc").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 label.control-label(for="email_translator") - span(data-i18n="account_settings.diplomat_title_pref") + span(data-i18n="classes.diplomat_title") | Diplomat br - span(data-i18n="account_settings.diplomat_title_suf") + span(data-i18n="classes.diplomat_title_description") | (Translator) .controls input#email_translator(name="email_translator", type="checkbox", checked=subs.translator) - span(data-i18n="account_settings.diplomat_title_pref").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 label.control-label(for="email_support") - span(data-i18n="account_settings.ambassador_title_pref") + span(data-i18n="classes.ambassador_title") | Ambassador br - span(data-i18n="account_settings.ambassador_title_suf") + span(data-i18n="classes.ambassador_title_description") | (Support) .controls input#email_support(name="email_support", type="checkbox", checked=subs.support) - span(data-i18n="account_settings.ambassador_desc").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 diff --git a/app/templates/contribute/adventurer.jade b/app/templates/contribute/adventurer.jade index 5109e6f60..024fa5ae8 100644 --- a/app/templates/contribute/adventurer.jade +++ b/app/templates/contribute/adventurer.jade @@ -12,9 +12,9 @@ block content img(src="/images/pages/contribute/adventurer.png", alt="") h2 - span(data-i18n="account_settings.adventurer_title_pref") Adventurer + span(data-i18n="classes.adventurer_title") Adventurer span - span(data-i18n="account_settings.adventurer_title_suf") (Level Playtester) + 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. diff --git a/app/templates/contribute/ambassador.jade b/app/templates/contribute/ambassador.jade index c5ccefc96..805063156 100644 --- a/app/templates/contribute/ambassador.jade +++ b/app/templates/contribute/ambassador.jade @@ -12,9 +12,9 @@ block content img(src="/images/pages/contribute/ambassador.png", alt="") h2 - span(data-i18n="account_settings.ambassador_title_pref") Ambassador + span(data-i18n="classes.ambassador_title") Ambassador span - span(data-i18n="account_settings.ambassador_title_suf") (Support) + 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 diff --git a/app/templates/contribute/archmage.jade b/app/templates/contribute/archmage.jade index 6caac2ff4..20a89f5f6 100644 --- a/app/templates/contribute/archmage.jade +++ b/app/templates/contribute/archmage.jade @@ -12,9 +12,9 @@ block content img(src="/images/pages/contribute/archmage.png", alt="") h2 - span(data-i18n="account_settings.archmage_title_pref") Archmage + span(data-i18n="classes.archmage_title") Archmage span - span(data-i18n="account_settings.archmage_title_suf") (Coder) + 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 diff --git a/app/templates/contribute/artisan.jade b/app/templates/contribute/artisan.jade index a5aaa6c79..d920b4001 100644 --- a/app/templates/contribute/artisan.jade +++ b/app/templates/contribute/artisan.jade @@ -12,9 +12,9 @@ block content img(src="/images/pages/contribute/artisan.png", alt="") h2 - span(data-i18n="account_settings.artisan_title_pref") Artisan + span(data-i18n="classes.artisan_title") Artisan span - span(data-i18n="account_settings.artisan_title_suf") (Level Builder) + span(data-i18n="classes.artisan_title_description") (Level Builder) p span(data-i18n="contribute.artisan_introduction_pref") | We must construct additional levels! diff --git a/app/templates/contribute/contribute.jade b/app/templates/contribute/contribute.jade index d89a991e2..18d3a8035 100644 --- a/app/templates/contribute/contribute.jade +++ b/app/templates/contribute/contribute.jade @@ -55,9 +55,9 @@ block content img(src="/images/pages/contribute/archmage.png", alt="") h3.header-scrolling-fix - span(data-i18n="account_settings.archmage_title_pref") Archmage + span(data-i18n="classes.archmage_title") Archmage span - span(data-i18n="account_settings.archmage_title_suf") (Coder) + 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 @@ -117,9 +117,9 @@ block content img(src="/images/pages/contribute/artisan.png", alt="") h3.header-scrolling-fix - span(data-i18n="account_settings.artisan_title_pref") Artisan + span(data-i18n="classes.artisan_title") Artisan span - span(data-i18n="account_settings.artisan_title_suf") (Level Builder) + span(data-i18n="classes.artisan_title_description") (Level Builder) p span(data-i18n="contribute.artisan_introduction_pref") | We must construct additional levels! @@ -177,9 +177,9 @@ block content img(src="/images/pages/contribute/adventurer.png", alt="") h3.header-scrolling-fix - span(data-i18n="account_settings.adventurer_title_pref") Adventurer + span(data-i18n="classes.adventurer_title") Adventurer span - span(data-i18n="account_settings.adventurer_title_suf") (Level Playtester) + 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. @@ -234,9 +234,9 @@ block content img(src="/images/pages/contribute/scribe.png", alt="") h3.header-scrolling-fix - span(data-i18n="account_settings.scribe_title_pref") Scribe + span(data-i18n="classes.scribe_title") Scribe span - span(data-i18n="account_settings.scribe_title_suf") (Article Editor) + 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. @@ -283,9 +283,9 @@ block content img(src="/images/pages/contribute/diplomat.png", alt="") h3.header-scrolling-fix - span(data-i18n="account_settings.diplomat_title_pref") Diplomat + span(data-i18n="classes.diplomat_title") Diplomat span - span(data-i18n="account_settings.diplomat_title_suf") (Translator) + 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 @@ -333,9 +333,9 @@ block content img(src="/images/pages/contribute/ambassador.png", alt="") h3.header-scrolling-fix - span(data-i18n="account_settings.ambassador_title_pref") Ambassador + span(data-i18n="classes.ambassador_title") Ambassador span - span(data-i18n="account_settings.ambassador_title_suf") (Support) + 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 @@ -384,9 +384,9 @@ block content img(src="/images/pages/contribute/counselor.png", alt="") h3.header-scrolling-fix - span(data-i18n="account_settings.counselor_title_pref") Counselor + span(data-i18n="classes.counselor_title") Counselor span - span(data-i18n="account_settings.counselor_title_suf") (Expert/Teacher) + 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? diff --git a/app/templates/contribute/contribute_nav.jade b/app/templates/contribute/contribute_nav.jade index bf210b8df..c7379e975 100644 --- a/app/templates/contribute/contribute_nav.jade +++ b/app/templates/contribute/contribute_nav.jade @@ -3,36 +3,36 @@ ul.contribute_class.affix.nav.nav-list.nav-pills#contribute-nav h3(data-i18n="contribute.character_classes_title") Character Classes li a(href=navPrefix + "#archmage") - span(data-i18n="account_settings.archmage_title_pref") Archmage + span(data-i18n="classes.archmage_title") Archmage span - span(data-i18n="account_settings.archmage_title_suf") (Coder) + span(data-i18n="classes.archmage_title_description") (Coder) li a(href=navPrefix + "#artisan") - span(data-i18n="account_settings.artisan_title_pref") Artisan + span(data-i18n="classes.artisan_title") Artisan span - span(data-i18n="account_settings.artisan_title_suf") (Level Builder) + span(data-i18n="classes.artisan_title_description") (Level Builder) li a(href=navPrefix + "#adventurer") - span(data-i18n="account_settings.adventurer_title_pref") Adventurer + span(data-i18n="classes.adventurer_title") Adventurer span - span(data-i18n="account_settings.adventurer_title_suf") (Level Playtester) + span(data-i18n="classes.adventurer_title_description") (Level Playtester) li a(href=navPrefix + "#scribe") - span(data-i18n="account_settings.scribe_title_pref") Scribe + span(data-i18n="classes.scribe_title") Scribe span - span(data-i18n="account_settings.scribe_title_suf") (Article Editor) + span(data-i18n="classes.scribe_title_description") (Article Editor) li a(href=navPrefix + "#diplomat") - span(data-i18n="account_settings.diplomat_title_pref") Diplomat + span(data-i18n="classes.diplomat_title") Diplomat span - span(data-i18n="account_settings.diplomat_title_suf") (Translator) + span(data-i18n="classes.diplomat_title_description") (Translator) li a(href=navPrefix + "#ambassador") - span(data-i18n="account_settings.ambassador_title_pref") Ambassador + span(data-i18n="classes.ambassador_title") Ambassador span - span(data-i18n="account_settings.ambassador_title_suf") (Support) + span(data-i18n="classes.ambassador_title_description") (Support) li a(href=navPrefix + "#counselor") - span(data-i18n="account_settings.counselor_title_pref") Counselor + span(data-i18n="classes.counselor_title") Counselor span - span(data-i18n="account_settings.counselor_title_suf") (Expert/Teacher) \ No newline at end of file + span(data-i18n="classes.counselor_title_description") (Expert/Teacher) \ No newline at end of file diff --git a/app/templates/contribute/counselor.jade b/app/templates/contribute/counselor.jade index eb5ee9c78..433985566 100644 --- a/app/templates/contribute/counselor.jade +++ b/app/templates/contribute/counselor.jade @@ -12,9 +12,9 @@ block content img(src="/images/pages/contribute/counselor.png", alt="") h2 - span(data-i18n="account_settings.counselor_title_pref") Counselor + span(data-i18n="classes.counselor_title") Counselor span - span(data-i18n="account_settings.counselor_title_suf") (Expert/Teacher) + 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? diff --git a/app/templates/contribute/diplomat.jade b/app/templates/contribute/diplomat.jade index ca811398d..f7d6339ae 100644 --- a/app/templates/contribute/diplomat.jade +++ b/app/templates/contribute/diplomat.jade @@ -12,9 +12,9 @@ block content img(src="/images/pages/contribute/diplomat.png", alt="") h2 - span(data-i18n="account_settings.diplomat_title_pref") Diplomat + span(data-i18n="classes.diplomat_title") Diplomat span - span(data-i18n="account_settings.diplomat_title_suf") (Translator) + 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 diff --git a/app/templates/contribute/scribe.jade b/app/templates/contribute/scribe.jade index df7966fab..dd5e8733b 100644 --- a/app/templates/contribute/scribe.jade +++ b/app/templates/contribute/scribe.jade @@ -12,9 +12,9 @@ block content img(src="/images/pages/contribute/scribe.png", alt="") h2 - span(data-i18n="account_settings.scribe_title_pref") Scribe + span(data-i18n="classes.scribe_title") Scribe span - span(data-i18n="account_settings.scribe_title_suf") (Article Editor) + 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. From acc6c2e4e6edfb2f232120bb9ed6d18cabebc9b4 Mon Sep 17 00:00:00 2001 From: Nick Winter Date: Sun, 12 Jan 2014 12:24:02 -0800 Subject: [PATCH 3/3] Fixed a couple typos. --- app/templates/about.jade | 2 +- app/templates/editor/article/edit.jade | 2 +- app/templates/editor/level/component/new.jade | 6 +++--- app/templates/editor/level/edit.jade | 2 +- app/templates/editor/level/system/new.jade | 4 ++-- 5 files changed, 8 insertions(+), 8 deletions(-) diff --git a/app/templates/about.jade b/app/templates/about.jade index 1dfb30cf9..b01292eb6 100644 --- a/app/templates/about.jade +++ b/app/templates/about.jade @@ -16,7 +16,7 @@ block content span , span(data-i18n="general.and") and span - a(href="http://scotterickson.info/") Nick + a(href="http://www.nickwinter.net") Nick span span(data-i18n="about.who_description_prefix") | together started CodeCombat in 2013. We also created diff --git a/app/templates/editor/article/edit.jade b/app/templates/editor/article/edit.jade index eb7f6b19d..a693e8560 100644 --- a/app/templates/editor/article/edit.jade +++ b/app/templates/editor/article/edit.jade @@ -2,7 +2,7 @@ extends /templates/base block content button(data-i18n="article.edit_btn_preview").btn.btn-primary#preview-button Preview - button(data-i18n="article.edit_btn_save").btn.btn-primary#save-button(data-toggle="coco-modal", data-target="modal/save_version") Save + button(data-toggle="coco-modal", data-target="modal/save_version", data-i18n="article.edit_btn_save").btn.btn-primary#save-button Save h3(data-i18n="article.edit_article_title") Edit Article span diff --git a/app/templates/editor/level/component/new.jade b/app/templates/editor/level/component/new.jade index bb4965a79..0cbbf74b0 100644 --- a/app/templates/editor/level/component/new.jade +++ b/app/templates/editor/level/component/new.jade @@ -6,14 +6,14 @@ block modal-header-content block modal-body-content form.form-horizontal .control-group - label(data-i18n="editor.new_component_field_system").control-label(for="level-component-system") System + label(for="level-component-system", data-i18n="editor.new_component_field_system").control-label System .controls input#level-component-system.input-large(name="system", type="text") .control-group - label(data-i18n="editor.new_component_field_name").control-label(for="level-component-name") Name + label(for="level-component-name", data-i18n="editor.new_component_field_name").control-label Name .controls input#level-component-name.input-large(name="name", type="text") block modal-footer-content - button(data-i18n="editor.new_component_btn_cancel").btn(data-dismiss="modal") Cancel + button(data-dismiss="modal", data-i18n="editor.new_component_btn_cancel").btn Cancel button(data-i18n="editor.new_component_btn_create").btn.btn-primary#new-level-component-submit Create diff --git a/app/templates/editor/level/edit.jade b/app/templates/editor/level/edit.jade index 384b3c7ff..04ca53dcd 100644 --- a/app/templates/editor/level/edit.jade +++ b/app/templates/editor/level/edit.jade @@ -13,7 +13,7 @@ block outer_content button(data-i18n="editor.level_btn_save").btn.btn-primary#commit-level-start-button Save button(data-i18n="editor.level_btn_fork").btn.btn-primary#fork-level-start-button Fork .btn-group.play-button-group - button(data-i18n="editor.level_btn_play")#play-button.btn.btn-inverse.banner(title="⌃↩ or ⌘↩: Play preview of current level") Play! + button(title="⌃↩ or ⌘↩: Play preview of current level", data-i18n="editor.level_btn_play")#play-button.btn.btn-inverse.banner Play! button.btn.btn-inverse.banner.dropdown-toggle(data-toggle="dropdown") i.icon-cog.icon-white diff --git a/app/templates/editor/level/system/new.jade b/app/templates/editor/level/system/new.jade index 9632e748f..bb7c2c098 100644 --- a/app/templates/editor/level/system/new.jade +++ b/app/templates/editor/level/system/new.jade @@ -6,10 +6,10 @@ block modal-header-content block modal-body-content form.form-horizontal .control-group - label(data-i18n="editor.create_system_field_name").control-label(for="level-system-name") Name + label(for="level-system-name", data-i18n="editor.create_system_field_name").control-label Name .controls input#level-system-name.input-large(name="name", type="text") block modal-footer-content - button(data-i18n="editor.create_system_btn_cancel").btn(data-dismiss="modal") Cancel + button(data-dismiss="modal", data-i18n="editor.create_system_btn_cancel").btn Cancel button(data-i18n="editor.create_system_btn_create").btn.btn-primary#new-level-system-submit Create