diff --git a/README.md b/README.md index f8c7efc25..70cb246d7 100644 --- a/README.md +++ b/README.md @@ -10,7 +10,7 @@ It's both a startup and a community project, completely open source under the [M ### [Getting Started](https://github.com/codecombat/codecombat/wiki/Dev-Setup:-General-Information) -We've made it easy to fork the project, run a simple script that'll install all the dependencies, and get a local copy of CodeCombat running right away on [Mac](https://github.com/codecombat/codecombat/wiki/Dev-Setup:-Mac-and-Vagrant), [Linux](https://github.com/codecombat/codecombat/wiki/Dev-Setup:-Linux), or [Windows](https://github.com/codecombat/codecombat/wiki/Dev-Setup:-Windows). See [the docs for details](https://github.com/codecombat/codecombat/wiki/Developer-environment). +We've made it easy to fork the project, run a simple script that'll install all the dependencies, and get a local copy of CodeCombat running right away on [Mac](https://github.com/codecombat/codecombat/wiki/Dev-Setup:-Mac-and-Vagrant), [Linux](https://github.com/codecombat/codecombat/wiki/Dev-Setup:-Linux), or [Windows](https://github.com/codecombat/codecombat/wiki/Dev-Setup:-Windows). See [the docs for details](https://github.com/codecombat/codecombat/wiki/Dev-Setup:-General-Information). ### [Getting In Touch](https://github.com/codecombat/codecombat/wiki/Developer-organization) diff --git a/app/lib/world/names.coffee b/app/lib/world/names.coffee index b4655c8d1..e8b954ff8 100644 --- a/app/lib/world/names.coffee +++ b/app/lib/world/names.coffee @@ -637,3 +637,33 @@ module.exports.thangNames = thangNames = 'Ganju' 'Ralthora' ] + 'Skeleton': [ + 'Bloody Johnny' + 'Bone Daddy' + 'Bonejangles' + 'Bonesworth' + 'Bonette' + 'Doornail' + 'Drybones' + 'Grim' + 'Haskell' + 'Indiana Bones' + 'James Bone' + 'Kate' + 'Palatine' + 'Ribster' + 'Rusty' + 'Sacra' + 'Scraps' + 'Shelly' + 'Skeletor' + 'Skellington' + 'Skulldugger' + 'Skully' + 'Smitty' + 'Sphenoid' + 'Sternum' + 'Talus' + 'Ulna' + 'Yorick' + ] diff --git a/app/locale/ar.coffee b/app/locale/ar.coffee index f68d84aa2..3046f7cfa 100644 --- a/app/locale/ar.coffee +++ b/app/locale/ar.coffee @@ -323,6 +323,8 @@ module.exports = nativeDescription: "العربية", englishDescription: "Arabi # tip_reusable_software: "Before software can be reusable it first has to be usable." # tip_optimization_operator: "Every language has an optimization operator. In most languages that operator is ‘//’" # tip_lines_of_code: "Measuring programming progress by lines of code is like measuring aircraft building progress by weight. — Bill Gates" +# tip_source_code: "I want to change the world but they would not give me the source code." +# tip_javascript_java: "Java is to JavaScript what Car is to Carpet. - Chris Heilmann" # game_menu: # inventory_tab: "Inventory" @@ -369,6 +371,13 @@ module.exports = nativeDescription: "العربية", englishDescription: "Arabi # subscribe: # subscribe_title: "Subscribe" # unsubscribe: "Unsubscribe" +# confirm_unsubscribe: "Confirm Unsubscribe" +# never_mind: "Never Mind, I Still Love You" +# thank_you_months_prefix: "Thank you for supporting us these last" +# thank_you_months_suffix: "months." +# thank_you: "Thank you for supporting CodeCombat." +# sorry_to_see_you_go: "Sorry to see you go! Please let us know what we could have done better." +# unsubscribe_feedback_placeholder: "O, what have we done?" # levels: "Get more practice with bonus levels!" # heroes: "More powerful heroes!" # gems: "3500 bonus gems every month!" diff --git a/app/locale/bg.coffee b/app/locale/bg.coffee index 174b50364..485c9910b 100644 --- a/app/locale/bg.coffee +++ b/app/locale/bg.coffee @@ -323,6 +323,8 @@ module.exports = nativeDescription: "български език", englishDescri # tip_reusable_software: "Before software can be reusable it first has to be usable." # tip_optimization_operator: "Every language has an optimization operator. In most languages that operator is ‘//’" # tip_lines_of_code: "Measuring programming progress by lines of code is like measuring aircraft building progress by weight. — Bill Gates" +# tip_source_code: "I want to change the world but they would not give me the source code." +# tip_javascript_java: "Java is to JavaScript what Car is to Carpet. - Chris Heilmann" # game_menu: # inventory_tab: "Inventory" @@ -369,6 +371,13 @@ module.exports = nativeDescription: "български език", englishDescri # subscribe: # subscribe_title: "Subscribe" # unsubscribe: "Unsubscribe" +# confirm_unsubscribe: "Confirm Unsubscribe" +# never_mind: "Never Mind, I Still Love You" +# thank_you_months_prefix: "Thank you for supporting us these last" +# thank_you_months_suffix: "months." +# thank_you: "Thank you for supporting CodeCombat." +# sorry_to_see_you_go: "Sorry to see you go! Please let us know what we could have done better." +# unsubscribe_feedback_placeholder: "O, what have we done?" # levels: "Get more practice with bonus levels!" # heroes: "More powerful heroes!" # gems: "3500 bonus gems every month!" diff --git a/app/locale/ca.coffee b/app/locale/ca.coffee index 5d5bcd376..3bdb5766f 100644 --- a/app/locale/ca.coffee +++ b/app/locale/ca.coffee @@ -323,6 +323,8 @@ module.exports = nativeDescription: "Català", englishDescription: "Catalan", tr # tip_reusable_software: "Before software can be reusable it first has to be usable." # tip_optimization_operator: "Every language has an optimization operator. In most languages that operator is ‘//’" # tip_lines_of_code: "Measuring programming progress by lines of code is like measuring aircraft building progress by weight. — Bill Gates" +# tip_source_code: "I want to change the world but they would not give me the source code." +# tip_javascript_java: "Java is to JavaScript what Car is to Carpet. - Chris Heilmann" game_menu: inventory_tab: "Inventari" @@ -369,6 +371,13 @@ module.exports = nativeDescription: "Català", englishDescription: "Catalan", tr subscribe: subscribe_title: "Subscriu-te" # unsubscribe: "Unsubscribe" +# confirm_unsubscribe: "Confirm Unsubscribe" +# never_mind: "Never Mind, I Still Love You" +# thank_you_months_prefix: "Thank you for supporting us these last" +# thank_you_months_suffix: "months." +# thank_you: "Thank you for supporting CodeCombat." +# sorry_to_see_you_go: "Sorry to see you go! Please let us know what we could have done better." +# unsubscribe_feedback_placeholder: "O, what have we done?" # levels: "Get more practice with bonus levels!" # heroes: "More powerful heroes!" # gems: "3500 bonus gems every month!" diff --git a/app/locale/cs.coffee b/app/locale/cs.coffee index 0c2525177..1841766ee 100644 --- a/app/locale/cs.coffee +++ b/app/locale/cs.coffee @@ -323,6 +323,8 @@ module.exports = nativeDescription: "čeština", englishDescription: "Czech", tr # tip_reusable_software: "Before software can be reusable it first has to be usable." # tip_optimization_operator: "Every language has an optimization operator. In most languages that operator is ‘//’" # tip_lines_of_code: "Measuring programming progress by lines of code is like measuring aircraft building progress by weight. — Bill Gates" +# tip_source_code: "I want to change the world but they would not give me the source code." +# tip_javascript_java: "Java is to JavaScript what Car is to Carpet. - Chris Heilmann" game_menu: inventory_tab: "Inventář" @@ -369,6 +371,13 @@ module.exports = nativeDescription: "čeština", englishDescription: "Czech", tr subscribe: subscribe_title: "Předplacení" unsubscribe: "Zrušit předplacení" +# confirm_unsubscribe: "Confirm Unsubscribe" +# never_mind: "Never Mind, I Still Love You" +# thank_you_months_prefix: "Thank you for supporting us these last" +# thank_you_months_suffix: "months." +# thank_you: "Thank you for supporting CodeCombat." +# sorry_to_see_you_go: "Sorry to see you go! Please let us know what we could have done better." +# unsubscribe_feedback_placeholder: "O, what have we done?" levels: "Získejte více praxe s bonusovými úrovněmi!" heroes: "Více silnějších hrdinů!" gems: "3500 bonusových drahokamů každý měsíc!" diff --git a/app/locale/da.coffee b/app/locale/da.coffee index 8af523f98..166da1912 100644 --- a/app/locale/da.coffee +++ b/app/locale/da.coffee @@ -323,6 +323,8 @@ module.exports = nativeDescription: "dansk", englishDescription: "Danish", trans # tip_reusable_software: "Before software can be reusable it first has to be usable." # tip_optimization_operator: "Every language has an optimization operator. In most languages that operator is ‘//’" # tip_lines_of_code: "Measuring programming progress by lines of code is like measuring aircraft building progress by weight. — Bill Gates" +# tip_source_code: "I want to change the world but they would not give me the source code." +# tip_javascript_java: "Java is to JavaScript what Car is to Carpet. - Chris Heilmann" game_menu: # inventory_tab: "Inventory" @@ -369,6 +371,13 @@ module.exports = nativeDescription: "dansk", englishDescription: "Danish", trans # subscribe: # subscribe_title: "Subscribe" # unsubscribe: "Unsubscribe" +# confirm_unsubscribe: "Confirm Unsubscribe" +# never_mind: "Never Mind, I Still Love You" +# thank_you_months_prefix: "Thank you for supporting us these last" +# thank_you_months_suffix: "months." +# thank_you: "Thank you for supporting CodeCombat." +# sorry_to_see_you_go: "Sorry to see you go! Please let us know what we could have done better." +# unsubscribe_feedback_placeholder: "O, what have we done?" # levels: "Get more practice with bonus levels!" # heroes: "More powerful heroes!" # gems: "3500 bonus gems every month!" diff --git a/app/locale/de-AT.coffee b/app/locale/de-AT.coffee index e71c8cab8..2e3ef6179 100644 --- a/app/locale/de-AT.coffee +++ b/app/locale/de-AT.coffee @@ -323,6 +323,8 @@ module.exports = nativeDescription: "Deutsch (Österreich)", englishDescription: # tip_reusable_software: "Before software can be reusable it first has to be usable." # tip_optimization_operator: "Every language has an optimization operator. In most languages that operator is ‘//’" # tip_lines_of_code: "Measuring programming progress by lines of code is like measuring aircraft building progress by weight. — Bill Gates" +# tip_source_code: "I want to change the world but they would not give me the source code." +# tip_javascript_java: "Java is to JavaScript what Car is to Carpet. - Chris Heilmann" game_menu: inventory_tab: "Inventar" @@ -369,6 +371,13 @@ module.exports = nativeDescription: "Deutsch (Österreich)", englishDescription: # subscribe: # subscribe_title: "Subscribe" # unsubscribe: "Unsubscribe" +# confirm_unsubscribe: "Confirm Unsubscribe" +# never_mind: "Never Mind, I Still Love You" +# thank_you_months_prefix: "Thank you for supporting us these last" +# thank_you_months_suffix: "months." +# thank_you: "Thank you for supporting CodeCombat." +# sorry_to_see_you_go: "Sorry to see you go! Please let us know what we could have done better." +# unsubscribe_feedback_placeholder: "O, what have we done?" # levels: "Get more practice with bonus levels!" # heroes: "More powerful heroes!" # gems: "3500 bonus gems every month!" diff --git a/app/locale/de-CH.coffee b/app/locale/de-CH.coffee index af3da25d4..3e0db3d25 100644 --- a/app/locale/de-CH.coffee +++ b/app/locale/de-CH.coffee @@ -323,6 +323,8 @@ module.exports = nativeDescription: "Deutsch (Schweiz)", englishDescription: "Ge # tip_reusable_software: "Before software can be reusable it first has to be usable." # tip_optimization_operator: "Every language has an optimization operator. In most languages that operator is ‘//’" # tip_lines_of_code: "Measuring programming progress by lines of code is like measuring aircraft building progress by weight. — Bill Gates" +# tip_source_code: "I want to change the world but they would not give me the source code." +# tip_javascript_java: "Java is to JavaScript what Car is to Carpet. - Chris Heilmann" game_menu: # inventory_tab: "Inventory" @@ -369,6 +371,13 @@ module.exports = nativeDescription: "Deutsch (Schweiz)", englishDescription: "Ge # subscribe: # subscribe_title: "Subscribe" # unsubscribe: "Unsubscribe" +# confirm_unsubscribe: "Confirm Unsubscribe" +# never_mind: "Never Mind, I Still Love You" +# thank_you_months_prefix: "Thank you for supporting us these last" +# thank_you_months_suffix: "months." +# thank_you: "Thank you for supporting CodeCombat." +# sorry_to_see_you_go: "Sorry to see you go! Please let us know what we could have done better." +# unsubscribe_feedback_placeholder: "O, what have we done?" # levels: "Get more practice with bonus levels!" # heroes: "More powerful heroes!" # gems: "3500 bonus gems every month!" diff --git a/app/locale/de-DE.coffee b/app/locale/de-DE.coffee index 518bafa14..3f9a842a0 100644 --- a/app/locale/de-DE.coffee +++ b/app/locale/de-DE.coffee @@ -323,6 +323,8 @@ module.exports = nativeDescription: "Deutsch (Deutschland)", englishDescription: # tip_reusable_software: "Before software can be reusable it first has to be usable." # tip_optimization_operator: "Every language has an optimization operator. In most languages that operator is ‘//’" # tip_lines_of_code: "Measuring programming progress by lines of code is like measuring aircraft building progress by weight. — Bill Gates" +# tip_source_code: "I want to change the world but they would not give me the source code." +# tip_javascript_java: "Java is to JavaScript what Car is to Carpet. - Chris Heilmann" game_menu: inventory_tab: "Inventar" @@ -369,6 +371,13 @@ module.exports = nativeDescription: "Deutsch (Deutschland)", englishDescription: subscribe: subscribe_title: "Abonnieren" unsubscribe: "Abmelden" +# confirm_unsubscribe: "Confirm Unsubscribe" +# never_mind: "Never Mind, I Still Love You" +# thank_you_months_prefix: "Thank you for supporting us these last" +# thank_you_months_suffix: "months." +# thank_you: "Thank you for supporting CodeCombat." +# sorry_to_see_you_go: "Sorry to see you go! Please let us know what we could have done better." +# unsubscribe_feedback_placeholder: "O, what have we done?" levels: "25 weitere level! Und 5 neue jede Woche!" heroes: "Stärkere Helden!" gems: "3500 bonus Edelsteine jeden Monat!" diff --git a/app/locale/el.coffee b/app/locale/el.coffee index 01ecbc9ba..90a15556d 100644 --- a/app/locale/el.coffee +++ b/app/locale/el.coffee @@ -323,6 +323,8 @@ module.exports = nativeDescription: "Ελληνικά", englishDescription: "Gre # tip_reusable_software: "Before software can be reusable it first has to be usable." # tip_optimization_operator: "Every language has an optimization operator. In most languages that operator is ‘//’" # tip_lines_of_code: "Measuring programming progress by lines of code is like measuring aircraft building progress by weight. — Bill Gates" +# tip_source_code: "I want to change the world but they would not give me the source code." +# tip_javascript_java: "Java is to JavaScript what Car is to Carpet. - Chris Heilmann" game_menu: # inventory_tab: "Inventory" @@ -369,6 +371,13 @@ module.exports = nativeDescription: "Ελληνικά", englishDescription: "Gre # subscribe: # subscribe_title: "Subscribe" # unsubscribe: "Unsubscribe" +# confirm_unsubscribe: "Confirm Unsubscribe" +# never_mind: "Never Mind, I Still Love You" +# thank_you_months_prefix: "Thank you for supporting us these last" +# thank_you_months_suffix: "months." +# thank_you: "Thank you for supporting CodeCombat." +# sorry_to_see_you_go: "Sorry to see you go! Please let us know what we could have done better." +# unsubscribe_feedback_placeholder: "O, what have we done?" # levels: "Get more practice with bonus levels!" # heroes: "More powerful heroes!" # gems: "3500 bonus gems every month!" diff --git a/app/locale/en-AU.coffee b/app/locale/en-AU.coffee index 2d9895185..ca521867c 100644 --- a/app/locale/en-AU.coffee +++ b/app/locale/en-AU.coffee @@ -323,6 +323,8 @@ module.exports = nativeDescription: "English (AU)", englishDescription: "English # tip_reusable_software: "Before software can be reusable it first has to be usable." # tip_optimization_operator: "Every language has an optimization operator. In most languages that operator is ‘//’" # tip_lines_of_code: "Measuring programming progress by lines of code is like measuring aircraft building progress by weight. — Bill Gates" +# tip_source_code: "I want to change the world but they would not give me the source code." +# tip_javascript_java: "Java is to JavaScript what Car is to Carpet. - Chris Heilmann" # game_menu: # inventory_tab: "Inventory" @@ -369,6 +371,13 @@ module.exports = nativeDescription: "English (AU)", englishDescription: "English # subscribe: # subscribe_title: "Subscribe" # unsubscribe: "Unsubscribe" +# confirm_unsubscribe: "Confirm Unsubscribe" +# never_mind: "Never Mind, I Still Love You" +# thank_you_months_prefix: "Thank you for supporting us these last" +# thank_you_months_suffix: "months." +# thank_you: "Thank you for supporting CodeCombat." +# sorry_to_see_you_go: "Sorry to see you go! Please let us know what we could have done better." +# unsubscribe_feedback_placeholder: "O, what have we done?" # levels: "Get more practice with bonus levels!" # heroes: "More powerful heroes!" # gems: "3500 bonus gems every month!" diff --git a/app/locale/en-GB.coffee b/app/locale/en-GB.coffee index f8d610ac6..678377a36 100644 --- a/app/locale/en-GB.coffee +++ b/app/locale/en-GB.coffee @@ -323,6 +323,8 @@ module.exports = nativeDescription: "English (UK)", englishDescription: "English # tip_reusable_software: "Before software can be reusable it first has to be usable." # tip_optimization_operator: "Every language has an optimization operator. In most languages that operator is ‘//’" # tip_lines_of_code: "Measuring programming progress by lines of code is like measuring aircraft building progress by weight. — Bill Gates" +# tip_source_code: "I want to change the world but they would not give me the source code." +# tip_javascript_java: "Java is to JavaScript what Car is to Carpet. - Chris Heilmann" # game_menu: # inventory_tab: "Inventory" @@ -369,6 +371,13 @@ module.exports = nativeDescription: "English (UK)", englishDescription: "English # subscribe: # subscribe_title: "Subscribe" # unsubscribe: "Unsubscribe" +# confirm_unsubscribe: "Confirm Unsubscribe" +# never_mind: "Never Mind, I Still Love You" +# thank_you_months_prefix: "Thank you for supporting us these last" +# thank_you_months_suffix: "months." +# thank_you: "Thank you for supporting CodeCombat." +# sorry_to_see_you_go: "Sorry to see you go! Please let us know what we could have done better." +# unsubscribe_feedback_placeholder: "O, what have we done?" # levels: "Get more practice with bonus levels!" # heroes: "More powerful heroes!" # gems: "3500 bonus gems every month!" diff --git a/app/locale/en-US.coffee b/app/locale/en-US.coffee index d46ad4830..98a483b8f 100644 --- a/app/locale/en-US.coffee +++ b/app/locale/en-US.coffee @@ -323,6 +323,8 @@ module.exports = nativeDescription: "English (US)", englishDescription: "English # tip_reusable_software: "Before software can be reusable it first has to be usable." # tip_optimization_operator: "Every language has an optimization operator. In most languages that operator is ‘//’" # tip_lines_of_code: "Measuring programming progress by lines of code is like measuring aircraft building progress by weight. — Bill Gates" +# tip_source_code: "I want to change the world but they would not give me the source code." +# tip_javascript_java: "Java is to JavaScript what Car is to Carpet. - Chris Heilmann" # game_menu: # inventory_tab: "Inventory" @@ -369,6 +371,13 @@ module.exports = nativeDescription: "English (US)", englishDescription: "English # subscribe: # subscribe_title: "Subscribe" # unsubscribe: "Unsubscribe" +# confirm_unsubscribe: "Confirm Unsubscribe" +# never_mind: "Never Mind, I Still Love You" +# thank_you_months_prefix: "Thank you for supporting us these last" +# thank_you_months_suffix: "months." +# thank_you: "Thank you for supporting CodeCombat." +# sorry_to_see_you_go: "Sorry to see you go! Please let us know what we could have done better." +# unsubscribe_feedback_placeholder: "O, what have we done?" # levels: "Get more practice with bonus levels!" # heroes: "More powerful heroes!" # gems: "3500 bonus gems every month!" diff --git a/app/locale/en.coffee b/app/locale/en.coffee index 2d3e8b8bf..8568569b2 100644 --- a/app/locale/en.coffee +++ b/app/locale/en.coffee @@ -323,6 +323,8 @@ tip_reusable_software: "Before software can be reusable it first has to be usable." tip_optimization_operator: "Every language has an optimization operator. In most languages that operator is ‘//’" tip_lines_of_code: "Measuring programming progress by lines of code is like measuring aircraft building progress by weight. — Bill Gates" + tip_source_code: "I want to change the world but they would not give me the source code." + tip_javascript_java: "Java is to JavaScript what Car is to Carpet. - Chris Heilmann" game_menu: inventory_tab: "Inventory" @@ -369,6 +371,13 @@ subscribe: subscribe_title: "Subscribe" unsubscribe: "Unsubscribe" + confirm_unsubscribe: "Confirm Unsubscribe" + never_mind: "Never Mind, I Still Love You" + thank_you_months_prefix: "Thank you for supporting us these last" + thank_you_months_suffix: "months." + thank_you: "Thank you for supporting CodeCombat." + sorry_to_see_you_go: "Sorry to see you go! Please let us know what we could have done better." + unsubscribe_feedback_placeholder: "O, what have we done?" levels: "Get more practice with bonus levels!" heroes: "More powerful heroes!" gems: "3500 bonus gems every month!" diff --git a/app/locale/es-419.coffee b/app/locale/es-419.coffee index b2685ad0e..ea76ac31e 100644 --- a/app/locale/es-419.coffee +++ b/app/locale/es-419.coffee @@ -323,6 +323,8 @@ module.exports = nativeDescription: "Español (América Latina)", englishDescrip # tip_reusable_software: "Before software can be reusable it first has to be usable." # tip_optimization_operator: "Every language has an optimization operator. In most languages that operator is ‘//’" # tip_lines_of_code: "Measuring programming progress by lines of code is like measuring aircraft building progress by weight. — Bill Gates" +# tip_source_code: "I want to change the world but they would not give me the source code." +# tip_javascript_java: "Java is to JavaScript what Car is to Carpet. - Chris Heilmann" game_menu: inventory_tab: "Inventario" @@ -369,6 +371,13 @@ module.exports = nativeDescription: "Español (América Latina)", englishDescrip subscribe: subscribe_title: "Suscribirse" unsubscribe: "Des-suscribirse" +# confirm_unsubscribe: "Confirm Unsubscribe" +# never_mind: "Never Mind, I Still Love You" +# thank_you_months_prefix: "Thank you for supporting us these last" +# thank_you_months_suffix: "months." +# thank_you: "Thank you for supporting CodeCombat." +# sorry_to_see_you_go: "Sorry to see you go! Please let us know what we could have done better." +# unsubscribe_feedback_placeholder: "O, what have we done?" levels: "Adquirí más practica con un nivel bonus!" heroes: "Héroes más poderosos!" gems: "Bonus de 3500 todos los meses!" diff --git a/app/locale/es-ES.coffee b/app/locale/es-ES.coffee index 97cec6451..3d0fd1a34 100644 --- a/app/locale/es-ES.coffee +++ b/app/locale/es-ES.coffee @@ -323,6 +323,8 @@ module.exports = nativeDescription: "español (ES)", englishDescription: "Spanis # tip_reusable_software: "Before software can be reusable it first has to be usable." # tip_optimization_operator: "Every language has an optimization operator. In most languages that operator is ‘//’" # tip_lines_of_code: "Measuring programming progress by lines of code is like measuring aircraft building progress by weight. — Bill Gates" +# tip_source_code: "I want to change the world but they would not give me the source code." +# tip_javascript_java: "Java is to JavaScript what Car is to Carpet. - Chris Heilmann" game_menu: inventory_tab: "Inventario" @@ -369,6 +371,13 @@ module.exports = nativeDescription: "español (ES)", englishDescription: "Spanis subscribe: subscribe_title: "Suscríbete" # unsubscribe: "Unsubscribe" +# confirm_unsubscribe: "Confirm Unsubscribe" +# never_mind: "Never Mind, I Still Love You" +# thank_you_months_prefix: "Thank you for supporting us these last" +# thank_you_months_suffix: "months." +# thank_you: "Thank you for supporting CodeCombat." +# sorry_to_see_you_go: "Sorry to see you go! Please let us know what we could have done better." +# unsubscribe_feedback_placeholder: "O, what have we done?" levels: "¡Desbloquea 17 niveles adicionales! ¡5 nuevos cada semana!" heroes: "¡Más heroes poderosos!" gems: "¡3500 joyas adicionales cada mes!" diff --git a/app/locale/fa.coffee b/app/locale/fa.coffee index 1c8f2ec15..13deb176d 100644 --- a/app/locale/fa.coffee +++ b/app/locale/fa.coffee @@ -323,6 +323,8 @@ module.exports = nativeDescription: "فارسی", englishDescription: "Persian", # tip_reusable_software: "Before software can be reusable it first has to be usable." # tip_optimization_operator: "Every language has an optimization operator. In most languages that operator is ‘//’" # tip_lines_of_code: "Measuring programming progress by lines of code is like measuring aircraft building progress by weight. — Bill Gates" +# tip_source_code: "I want to change the world but they would not give me the source code." +# tip_javascript_java: "Java is to JavaScript what Car is to Carpet. - Chris Heilmann" # game_menu: # inventory_tab: "Inventory" @@ -369,6 +371,13 @@ module.exports = nativeDescription: "فارسی", englishDescription: "Persian", # subscribe: # subscribe_title: "Subscribe" # unsubscribe: "Unsubscribe" +# confirm_unsubscribe: "Confirm Unsubscribe" +# never_mind: "Never Mind, I Still Love You" +# thank_you_months_prefix: "Thank you for supporting us these last" +# thank_you_months_suffix: "months." +# thank_you: "Thank you for supporting CodeCombat." +# sorry_to_see_you_go: "Sorry to see you go! Please let us know what we could have done better." +# unsubscribe_feedback_placeholder: "O, what have we done?" # levels: "Get more practice with bonus levels!" # heroes: "More powerful heroes!" # gems: "3500 bonus gems every month!" diff --git a/app/locale/fi.coffee b/app/locale/fi.coffee index 53725ee44..4ad0f16da 100644 --- a/app/locale/fi.coffee +++ b/app/locale/fi.coffee @@ -323,6 +323,8 @@ module.exports = nativeDescription: "suomi", englishDescription: "Finnish", tran # tip_reusable_software: "Before software can be reusable it first has to be usable." # tip_optimization_operator: "Every language has an optimization operator. In most languages that operator is ‘//’" # tip_lines_of_code: "Measuring programming progress by lines of code is like measuring aircraft building progress by weight. — Bill Gates" +# tip_source_code: "I want to change the world but they would not give me the source code." +# tip_javascript_java: "Java is to JavaScript what Car is to Carpet. - Chris Heilmann" # game_menu: # inventory_tab: "Inventory" @@ -369,6 +371,13 @@ module.exports = nativeDescription: "suomi", englishDescription: "Finnish", tran # subscribe: # subscribe_title: "Subscribe" # unsubscribe: "Unsubscribe" +# confirm_unsubscribe: "Confirm Unsubscribe" +# never_mind: "Never Mind, I Still Love You" +# thank_you_months_prefix: "Thank you for supporting us these last" +# thank_you_months_suffix: "months." +# thank_you: "Thank you for supporting CodeCombat." +# sorry_to_see_you_go: "Sorry to see you go! Please let us know what we could have done better." +# unsubscribe_feedback_placeholder: "O, what have we done?" # levels: "Get more practice with bonus levels!" # heroes: "More powerful heroes!" # gems: "3500 bonus gems every month!" diff --git a/app/locale/fr.coffee b/app/locale/fr.coffee index aca640269..4fe5a942b 100644 --- a/app/locale/fr.coffee +++ b/app/locale/fr.coffee @@ -323,6 +323,8 @@ module.exports = nativeDescription: "français", englishDescription: "French", t # tip_reusable_software: "Before software can be reusable it first has to be usable." # tip_optimization_operator: "Every language has an optimization operator. In most languages that operator is ‘//’" # tip_lines_of_code: "Measuring programming progress by lines of code is like measuring aircraft building progress by weight. — Bill Gates" +# tip_source_code: "I want to change the world but they would not give me the source code." +# tip_javascript_java: "Java is to JavaScript what Car is to Carpet. - Chris Heilmann" game_menu: inventory_tab: "Inventaire" @@ -369,6 +371,13 @@ module.exports = nativeDescription: "français", englishDescription: "French", t subscribe: subscribe_title: "Inscription" unsubscribe: "Désinscription" +# confirm_unsubscribe: "Confirm Unsubscribe" +# never_mind: "Never Mind, I Still Love You" +# thank_you_months_prefix: "Thank you for supporting us these last" +# thank_you_months_suffix: "months." +# thank_you: "Thank you for supporting CodeCombat." +# sorry_to_see_you_go: "Sorry to see you go! Please let us know what we could have done better." +# unsubscribe_feedback_placeholder: "O, what have we done?" levels: "Débloquer 17 niveaux supplémentaires ! Et 5 nouveaux chaque semaines!" heroes: "Héros plus puissants!" gems: "3500 gemmes en bonus chaque mois !" diff --git a/app/locale/gl.coffee b/app/locale/gl.coffee index ba3431b37..5b581f7fd 100644 --- a/app/locale/gl.coffee +++ b/app/locale/gl.coffee @@ -323,6 +323,8 @@ module.exports = nativeDescription: "Galego", englishDescription: "Galician", tr # tip_reusable_software: "Before software can be reusable it first has to be usable." # tip_optimization_operator: "Every language has an optimization operator. In most languages that operator is ‘//’" # tip_lines_of_code: "Measuring programming progress by lines of code is like measuring aircraft building progress by weight. — Bill Gates" +# tip_source_code: "I want to change the world but they would not give me the source code." +# tip_javascript_java: "Java is to JavaScript what Car is to Carpet. - Chris Heilmann" game_menu: inventory_tab: "Inventario" @@ -369,6 +371,13 @@ module.exports = nativeDescription: "Galego", englishDescription: "Galician", tr # subscribe: # subscribe_title: "Subscribe" # unsubscribe: "Unsubscribe" +# confirm_unsubscribe: "Confirm Unsubscribe" +# never_mind: "Never Mind, I Still Love You" +# thank_you_months_prefix: "Thank you for supporting us these last" +# thank_you_months_suffix: "months." +# thank_you: "Thank you for supporting CodeCombat." +# sorry_to_see_you_go: "Sorry to see you go! Please let us know what we could have done better." +# unsubscribe_feedback_placeholder: "O, what have we done?" # levels: "Get more practice with bonus levels!" # heroes: "More powerful heroes!" # gems: "3500 bonus gems every month!" diff --git a/app/locale/he.coffee b/app/locale/he.coffee index 528091743..607e4dfb3 100644 --- a/app/locale/he.coffee +++ b/app/locale/he.coffee @@ -323,6 +323,8 @@ module.exports = nativeDescription: "עברית", englishDescription: "Hebrew", # tip_reusable_software: "Before software can be reusable it first has to be usable." # tip_optimization_operator: "Every language has an optimization operator. In most languages that operator is ‘//’" # tip_lines_of_code: "Measuring programming progress by lines of code is like measuring aircraft building progress by weight. — Bill Gates" +# tip_source_code: "I want to change the world but they would not give me the source code." +# tip_javascript_java: "Java is to JavaScript what Car is to Carpet. - Chris Heilmann" # game_menu: # inventory_tab: "Inventory" @@ -369,6 +371,13 @@ module.exports = nativeDescription: "עברית", englishDescription: "Hebrew", # subscribe: # subscribe_title: "Subscribe" # unsubscribe: "Unsubscribe" +# confirm_unsubscribe: "Confirm Unsubscribe" +# never_mind: "Never Mind, I Still Love You" +# thank_you_months_prefix: "Thank you for supporting us these last" +# thank_you_months_suffix: "months." +# thank_you: "Thank you for supporting CodeCombat." +# sorry_to_see_you_go: "Sorry to see you go! Please let us know what we could have done better." +# unsubscribe_feedback_placeholder: "O, what have we done?" # levels: "Get more practice with bonus levels!" # heroes: "More powerful heroes!" # gems: "3500 bonus gems every month!" diff --git a/app/locale/hi.coffee b/app/locale/hi.coffee index d46f87b1c..1d0866fd4 100644 --- a/app/locale/hi.coffee +++ b/app/locale/hi.coffee @@ -323,6 +323,8 @@ module.exports = nativeDescription: "मानक हिन्दी", englishDe # tip_reusable_software: "Before software can be reusable it first has to be usable." # tip_optimization_operator: "Every language has an optimization operator. In most languages that operator is ‘//’" # tip_lines_of_code: "Measuring programming progress by lines of code is like measuring aircraft building progress by weight. — Bill Gates" +# tip_source_code: "I want to change the world but they would not give me the source code." +# tip_javascript_java: "Java is to JavaScript what Car is to Carpet. - Chris Heilmann" # game_menu: # inventory_tab: "Inventory" @@ -369,6 +371,13 @@ module.exports = nativeDescription: "मानक हिन्दी", englishDe # subscribe: # subscribe_title: "Subscribe" # unsubscribe: "Unsubscribe" +# confirm_unsubscribe: "Confirm Unsubscribe" +# never_mind: "Never Mind, I Still Love You" +# thank_you_months_prefix: "Thank you for supporting us these last" +# thank_you_months_suffix: "months." +# thank_you: "Thank you for supporting CodeCombat." +# sorry_to_see_you_go: "Sorry to see you go! Please let us know what we could have done better." +# unsubscribe_feedback_placeholder: "O, what have we done?" # levels: "Get more practice with bonus levels!" # heroes: "More powerful heroes!" # gems: "3500 bonus gems every month!" diff --git a/app/locale/hu.coffee b/app/locale/hu.coffee index 571487c20..0b0c3373a 100644 --- a/app/locale/hu.coffee +++ b/app/locale/hu.coffee @@ -323,6 +323,8 @@ module.exports = nativeDescription: "magyar", englishDescription: "Hungarian", t # tip_reusable_software: "Before software can be reusable it first has to be usable." # tip_optimization_operator: "Every language has an optimization operator. In most languages that operator is ‘//’" # tip_lines_of_code: "Measuring programming progress by lines of code is like measuring aircraft building progress by weight. — Bill Gates" +# tip_source_code: "I want to change the world but they would not give me the source code." +# tip_javascript_java: "Java is to JavaScript what Car is to Carpet. - Chris Heilmann" game_menu: inventory_tab: "Raktár" @@ -369,6 +371,13 @@ module.exports = nativeDescription: "magyar", englishDescription: "Hungarian", t subscribe: subscribe_title: "Feliratkozás" unsubscribe: "Leiratkozás" +# confirm_unsubscribe: "Confirm Unsubscribe" +# never_mind: "Never Mind, I Still Love You" +# thank_you_months_prefix: "Thank you for supporting us these last" +# thank_you_months_suffix: "months." +# thank_you: "Thank you for supporting CodeCombat." +# sorry_to_see_you_go: "Sorry to see you go! Please let us know what we could have done better." +# unsubscribe_feedback_placeholder: "O, what have we done?" levels: "Gyakorolj a bónusz szinteken!" heroes: "Még erősebb hősök!" gems: "3500 búnusz drágakő havonta!" diff --git a/app/locale/id.coffee b/app/locale/id.coffee index b1ce678b6..5b4f0f114 100644 --- a/app/locale/id.coffee +++ b/app/locale/id.coffee @@ -323,6 +323,8 @@ module.exports = nativeDescription: "Bahasa Indonesia", englishDescription: "Ind # tip_reusable_software: "Before software can be reusable it first has to be usable." # tip_optimization_operator: "Every language has an optimization operator. In most languages that operator is ‘//’" # tip_lines_of_code: "Measuring programming progress by lines of code is like measuring aircraft building progress by weight. — Bill Gates" +# tip_source_code: "I want to change the world but they would not give me the source code." +# tip_javascript_java: "Java is to JavaScript what Car is to Carpet. - Chris Heilmann" # game_menu: # inventory_tab: "Inventory" @@ -369,6 +371,13 @@ module.exports = nativeDescription: "Bahasa Indonesia", englishDescription: "Ind # subscribe: # subscribe_title: "Subscribe" # unsubscribe: "Unsubscribe" +# confirm_unsubscribe: "Confirm Unsubscribe" +# never_mind: "Never Mind, I Still Love You" +# thank_you_months_prefix: "Thank you for supporting us these last" +# thank_you_months_suffix: "months." +# thank_you: "Thank you for supporting CodeCombat." +# sorry_to_see_you_go: "Sorry to see you go! Please let us know what we could have done better." +# unsubscribe_feedback_placeholder: "O, what have we done?" # levels: "Get more practice with bonus levels!" # heroes: "More powerful heroes!" # gems: "3500 bonus gems every month!" diff --git a/app/locale/it.coffee b/app/locale/it.coffee index 3ca374748..cdf8a99da 100644 --- a/app/locale/it.coffee +++ b/app/locale/it.coffee @@ -323,6 +323,8 @@ module.exports = nativeDescription: "Italiano", englishDescription: "Italian", t # tip_reusable_software: "Before software can be reusable it first has to be usable." # tip_optimization_operator: "Every language has an optimization operator. In most languages that operator is ‘//’" # tip_lines_of_code: "Measuring programming progress by lines of code is like measuring aircraft building progress by weight. — Bill Gates" +# tip_source_code: "I want to change the world but they would not give me the source code." +# tip_javascript_java: "Java is to JavaScript what Car is to Carpet. - Chris Heilmann" game_menu: inventory_tab: "Inventario" @@ -369,6 +371,13 @@ module.exports = nativeDescription: "Italiano", englishDescription: "Italian", t # subscribe: # subscribe_title: "Subscribe" # unsubscribe: "Unsubscribe" +# confirm_unsubscribe: "Confirm Unsubscribe" +# never_mind: "Never Mind, I Still Love You" +# thank_you_months_prefix: "Thank you for supporting us these last" +# thank_you_months_suffix: "months." +# thank_you: "Thank you for supporting CodeCombat." +# sorry_to_see_you_go: "Sorry to see you go! Please let us know what we could have done better." +# unsubscribe_feedback_placeholder: "O, what have we done?" # levels: "Get more practice with bonus levels!" # heroes: "More powerful heroes!" # gems: "3500 bonus gems every month!" diff --git a/app/locale/ja.coffee b/app/locale/ja.coffee index e9ec27d6a..df10c6a30 100644 --- a/app/locale/ja.coffee +++ b/app/locale/ja.coffee @@ -323,6 +323,8 @@ module.exports = nativeDescription: "日本語", englishDescription: "Japanese", # tip_reusable_software: "Before software can be reusable it first has to be usable." # tip_optimization_operator: "Every language has an optimization operator. In most languages that operator is ‘//’" # tip_lines_of_code: "Measuring programming progress by lines of code is like measuring aircraft building progress by weight. — Bill Gates" +# tip_source_code: "I want to change the world but they would not give me the source code." +# tip_javascript_java: "Java is to JavaScript what Car is to Carpet. - Chris Heilmann" game_menu: # inventory_tab: "Inventory" @@ -369,6 +371,13 @@ module.exports = nativeDescription: "日本語", englishDescription: "Japanese", # subscribe: # subscribe_title: "Subscribe" # unsubscribe: "Unsubscribe" +# confirm_unsubscribe: "Confirm Unsubscribe" +# never_mind: "Never Mind, I Still Love You" +# thank_you_months_prefix: "Thank you for supporting us these last" +# thank_you_months_suffix: "months." +# thank_you: "Thank you for supporting CodeCombat." +# sorry_to_see_you_go: "Sorry to see you go! Please let us know what we could have done better." +# unsubscribe_feedback_placeholder: "O, what have we done?" # levels: "Get more practice with bonus levels!" # heroes: "More powerful heroes!" # gems: "3500 bonus gems every month!" diff --git a/app/locale/ko.coffee b/app/locale/ko.coffee index 3a008703f..cee88dd99 100644 --- a/app/locale/ko.coffee +++ b/app/locale/ko.coffee @@ -323,6 +323,8 @@ module.exports = nativeDescription: "한국어", englishDescription: "Korean", t # tip_reusable_software: "Before software can be reusable it first has to be usable." # tip_optimization_operator: "Every language has an optimization operator. In most languages that operator is ‘//’" # tip_lines_of_code: "Measuring programming progress by lines of code is like measuring aircraft building progress by weight. — Bill Gates" +# tip_source_code: "I want to change the world but they would not give me the source code." +# tip_javascript_java: "Java is to JavaScript what Car is to Carpet. - Chris Heilmann" game_menu: # inventory_tab: "Inventory" @@ -369,6 +371,13 @@ module.exports = nativeDescription: "한국어", englishDescription: "Korean", t # subscribe: # subscribe_title: "Subscribe" # unsubscribe: "Unsubscribe" +# confirm_unsubscribe: "Confirm Unsubscribe" +# never_mind: "Never Mind, I Still Love You" +# thank_you_months_prefix: "Thank you for supporting us these last" +# thank_you_months_suffix: "months." +# thank_you: "Thank you for supporting CodeCombat." +# sorry_to_see_you_go: "Sorry to see you go! Please let us know what we could have done better." +# unsubscribe_feedback_placeholder: "O, what have we done?" # levels: "Get more practice with bonus levels!" # heroes: "More powerful heroes!" # gems: "3500 bonus gems every month!" diff --git a/app/locale/lt.coffee b/app/locale/lt.coffee index bfa2080f9..cc2e1d9ac 100644 --- a/app/locale/lt.coffee +++ b/app/locale/lt.coffee @@ -323,6 +323,8 @@ module.exports = nativeDescription: "lietuvių kalba", englishDescription: "Lith # tip_reusable_software: "Before software can be reusable it first has to be usable." # tip_optimization_operator: "Every language has an optimization operator. In most languages that operator is ‘//’" # tip_lines_of_code: "Measuring programming progress by lines of code is like measuring aircraft building progress by weight. — Bill Gates" +# tip_source_code: "I want to change the world but they would not give me the source code." +# tip_javascript_java: "Java is to JavaScript what Car is to Carpet. - Chris Heilmann" # game_menu: # inventory_tab: "Inventory" @@ -369,6 +371,13 @@ module.exports = nativeDescription: "lietuvių kalba", englishDescription: "Lith # subscribe: # subscribe_title: "Subscribe" # unsubscribe: "Unsubscribe" +# confirm_unsubscribe: "Confirm Unsubscribe" +# never_mind: "Never Mind, I Still Love You" +# thank_you_months_prefix: "Thank you for supporting us these last" +# thank_you_months_suffix: "months." +# thank_you: "Thank you for supporting CodeCombat." +# sorry_to_see_you_go: "Sorry to see you go! Please let us know what we could have done better." +# unsubscribe_feedback_placeholder: "O, what have we done?" # levels: "Get more practice with bonus levels!" # heroes: "More powerful heroes!" # gems: "3500 bonus gems every month!" diff --git a/app/locale/mk-MK.coffee b/app/locale/mk-MK.coffee index 9ba6f031f..5b9d17521 100644 --- a/app/locale/mk-MK.coffee +++ b/app/locale/mk-MK.coffee @@ -323,6 +323,8 @@ module.exports = nativeDescription: "Македонски", englishDescription: # tip_reusable_software: "Before software can be reusable it first has to be usable." # tip_optimization_operator: "Every language has an optimization operator. In most languages that operator is ‘//’" # tip_lines_of_code: "Measuring programming progress by lines of code is like measuring aircraft building progress by weight. — Bill Gates" +# tip_source_code: "I want to change the world but they would not give me the source code." +# tip_javascript_java: "Java is to JavaScript what Car is to Carpet. - Chris Heilmann" game_menu: # inventory_tab: "Inventory" @@ -369,6 +371,13 @@ module.exports = nativeDescription: "Македонски", englishDescription: subscribe: subscribe_title: "Зачлени се" unsubscribe: "Откажи членство" +# confirm_unsubscribe: "Confirm Unsubscribe" +# never_mind: "Never Mind, I Still Love You" +# thank_you_months_prefix: "Thank you for supporting us these last" +# thank_you_months_suffix: "months." +# thank_you: "Thank you for supporting CodeCombat." +# sorry_to_see_you_go: "Sorry to see you go! Please let us know what we could have done better." +# unsubscribe_feedback_placeholder: "O, what have we done?" levels: "Вежбај повеќе со дополнителни нивоа!" heroes: "Помоќни херои!" gems: "3500 скапоцени камења секој месец!" diff --git a/app/locale/ms.coffee b/app/locale/ms.coffee index 9ea609566..76e0a8701 100644 --- a/app/locale/ms.coffee +++ b/app/locale/ms.coffee @@ -323,6 +323,8 @@ module.exports = nativeDescription: "Bahasa Melayu", englishDescription: "Bahasa # tip_reusable_software: "Before software can be reusable it first has to be usable." # tip_optimization_operator: "Every language has an optimization operator. In most languages that operator is ‘//’" # tip_lines_of_code: "Measuring programming progress by lines of code is like measuring aircraft building progress by weight. — Bill Gates" +# tip_source_code: "I want to change the world but they would not give me the source code." +# tip_javascript_java: "Java is to JavaScript what Car is to Carpet. - Chris Heilmann" # game_menu: # inventory_tab: "Inventory" @@ -369,6 +371,13 @@ module.exports = nativeDescription: "Bahasa Melayu", englishDescription: "Bahasa # subscribe: # subscribe_title: "Subscribe" # unsubscribe: "Unsubscribe" +# confirm_unsubscribe: "Confirm Unsubscribe" +# never_mind: "Never Mind, I Still Love You" +# thank_you_months_prefix: "Thank you for supporting us these last" +# thank_you_months_suffix: "months." +# thank_you: "Thank you for supporting CodeCombat." +# sorry_to_see_you_go: "Sorry to see you go! Please let us know what we could have done better." +# unsubscribe_feedback_placeholder: "O, what have we done?" # levels: "Get more practice with bonus levels!" # heroes: "More powerful heroes!" # gems: "3500 bonus gems every month!" diff --git a/app/locale/nb.coffee b/app/locale/nb.coffee index ad7beb61b..d09b52fd5 100644 --- a/app/locale/nb.coffee +++ b/app/locale/nb.coffee @@ -323,6 +323,8 @@ module.exports = nativeDescription: "Norsk Bokmål", englishDescription: "Norweg # tip_reusable_software: "Before software can be reusable it first has to be usable." # tip_optimization_operator: "Every language has an optimization operator. In most languages that operator is ‘//’" # tip_lines_of_code: "Measuring programming progress by lines of code is like measuring aircraft building progress by weight. — Bill Gates" +# tip_source_code: "I want to change the world but they would not give me the source code." +# tip_javascript_java: "Java is to JavaScript what Car is to Carpet. - Chris Heilmann" game_menu: inventory_tab: "Utstyr" @@ -369,6 +371,13 @@ module.exports = nativeDescription: "Norsk Bokmål", englishDescription: "Norweg # subscribe: # subscribe_title: "Subscribe" # unsubscribe: "Unsubscribe" +# confirm_unsubscribe: "Confirm Unsubscribe" +# never_mind: "Never Mind, I Still Love You" +# thank_you_months_prefix: "Thank you for supporting us these last" +# thank_you_months_suffix: "months." +# thank_you: "Thank you for supporting CodeCombat." +# sorry_to_see_you_go: "Sorry to see you go! Please let us know what we could have done better." +# unsubscribe_feedback_placeholder: "O, what have we done?" # levels: "Get more practice with bonus levels!" # heroes: "More powerful heroes!" # gems: "3500 bonus gems every month!" diff --git a/app/locale/nl-BE.coffee b/app/locale/nl-BE.coffee index 364943354..d36620c99 100644 --- a/app/locale/nl-BE.coffee +++ b/app/locale/nl-BE.coffee @@ -323,6 +323,8 @@ module.exports = nativeDescription: "Nederlands (België)", englishDescription: # tip_reusable_software: "Before software can be reusable it first has to be usable." # tip_optimization_operator: "Every language has an optimization operator. In most languages that operator is ‘//’" # tip_lines_of_code: "Measuring programming progress by lines of code is like measuring aircraft building progress by weight. — Bill Gates" +# tip_source_code: "I want to change the world but they would not give me the source code." +# tip_javascript_java: "Java is to JavaScript what Car is to Carpet. - Chris Heilmann" game_menu: inventory_tab: "Inventaris" @@ -369,6 +371,13 @@ module.exports = nativeDescription: "Nederlands (België)", englishDescription: subscribe: # subscribe_title: "Subscribe" # unsubscribe: "Unsubscribe" +# confirm_unsubscribe: "Confirm Unsubscribe" +# never_mind: "Never Mind, I Still Love You" +# thank_you_months_prefix: "Thank you for supporting us these last" +# thank_you_months_suffix: "months." +# thank_you: "Thank you for supporting CodeCombat." +# sorry_to_see_you_go: "Sorry to see you go! Please let us know what we could have done better." +# unsubscribe_feedback_placeholder: "O, what have we done?" # levels: "Get more practice with bonus levels!" # heroes: "More powerful heroes!" gems: "Elke maand 3500 bonus juwelen!" diff --git a/app/locale/nl-NL.coffee b/app/locale/nl-NL.coffee index 65635198b..a115826e8 100644 --- a/app/locale/nl-NL.coffee +++ b/app/locale/nl-NL.coffee @@ -323,6 +323,8 @@ module.exports = nativeDescription: "Nederlands (Nederland)", englishDescription # tip_reusable_software: "Before software can be reusable it first has to be usable." # tip_optimization_operator: "Every language has an optimization operator. In most languages that operator is ‘//’" # tip_lines_of_code: "Measuring programming progress by lines of code is like measuring aircraft building progress by weight. — Bill Gates" +# tip_source_code: "I want to change the world but they would not give me the source code." +# tip_javascript_java: "Java is to JavaScript what Car is to Carpet. - Chris Heilmann" game_menu: inventory_tab: "Inventaris" @@ -369,6 +371,13 @@ module.exports = nativeDescription: "Nederlands (Nederland)", englishDescription subscribe: # subscribe_title: "Subscribe" # unsubscribe: "Unsubscribe" +# confirm_unsubscribe: "Confirm Unsubscribe" +# never_mind: "Never Mind, I Still Love You" +# thank_you_months_prefix: "Thank you for supporting us these last" +# thank_you_months_suffix: "months." +# thank_you: "Thank you for supporting CodeCombat." +# sorry_to_see_you_go: "Sorry to see you go! Please let us know what we could have done better." +# unsubscribe_feedback_placeholder: "O, what have we done?" # levels: "Get more practice with bonus levels!" # heroes: "More powerful heroes!" gems: "3500 extra edelstenen elke maand!" diff --git a/app/locale/nn.coffee b/app/locale/nn.coffee index abd524c7f..c5e738440 100644 --- a/app/locale/nn.coffee +++ b/app/locale/nn.coffee @@ -323,6 +323,8 @@ module.exports = nativeDescription: "Norwegian Nynorsk", englishDescription: "No # tip_reusable_software: "Before software can be reusable it first has to be usable." # tip_optimization_operator: "Every language has an optimization operator. In most languages that operator is ‘//’" # tip_lines_of_code: "Measuring programming progress by lines of code is like measuring aircraft building progress by weight. — Bill Gates" +# tip_source_code: "I want to change the world but they would not give me the source code." +# tip_javascript_java: "Java is to JavaScript what Car is to Carpet. - Chris Heilmann" # game_menu: # inventory_tab: "Inventory" @@ -369,6 +371,13 @@ module.exports = nativeDescription: "Norwegian Nynorsk", englishDescription: "No # subscribe: # subscribe_title: "Subscribe" # unsubscribe: "Unsubscribe" +# confirm_unsubscribe: "Confirm Unsubscribe" +# never_mind: "Never Mind, I Still Love You" +# thank_you_months_prefix: "Thank you for supporting us these last" +# thank_you_months_suffix: "months." +# thank_you: "Thank you for supporting CodeCombat." +# sorry_to_see_you_go: "Sorry to see you go! Please let us know what we could have done better." +# unsubscribe_feedback_placeholder: "O, what have we done?" # levels: "Get more practice with bonus levels!" # heroes: "More powerful heroes!" # gems: "3500 bonus gems every month!" diff --git a/app/locale/no.coffee b/app/locale/no.coffee index 72c06c055..05568aeac 100644 --- a/app/locale/no.coffee +++ b/app/locale/no.coffee @@ -323,6 +323,8 @@ module.exports = nativeDescription: "Norsk", englishDescription: "Norwegian", tr # tip_reusable_software: "Before software can be reusable it first has to be usable." # tip_optimization_operator: "Every language has an optimization operator. In most languages that operator is ‘//’" # tip_lines_of_code: "Measuring programming progress by lines of code is like measuring aircraft building progress by weight. — Bill Gates" +# tip_source_code: "I want to change the world but they would not give me the source code." +# tip_javascript_java: "Java is to JavaScript what Car is to Carpet. - Chris Heilmann" game_menu: # inventory_tab: "Inventory" @@ -369,6 +371,13 @@ module.exports = nativeDescription: "Norsk", englishDescription: "Norwegian", tr # subscribe: # subscribe_title: "Subscribe" # unsubscribe: "Unsubscribe" +# confirm_unsubscribe: "Confirm Unsubscribe" +# never_mind: "Never Mind, I Still Love You" +# thank_you_months_prefix: "Thank you for supporting us these last" +# thank_you_months_suffix: "months." +# thank_you: "Thank you for supporting CodeCombat." +# sorry_to_see_you_go: "Sorry to see you go! Please let us know what we could have done better." +# unsubscribe_feedback_placeholder: "O, what have we done?" # levels: "Get more practice with bonus levels!" # heroes: "More powerful heroes!" # gems: "3500 bonus gems every month!" diff --git a/app/locale/pl.coffee b/app/locale/pl.coffee index d5f1e561d..51ebbf0a5 100644 --- a/app/locale/pl.coffee +++ b/app/locale/pl.coffee @@ -323,6 +323,8 @@ module.exports = nativeDescription: "język polski", englishDescription: "Polish # tip_reusable_software: "Before software can be reusable it first has to be usable." # tip_optimization_operator: "Every language has an optimization operator. In most languages that operator is ‘//’" # tip_lines_of_code: "Measuring programming progress by lines of code is like measuring aircraft building progress by weight. — Bill Gates" +# tip_source_code: "I want to change the world but they would not give me the source code." +# tip_javascript_java: "Java is to JavaScript what Car is to Carpet. - Chris Heilmann" game_menu: inventory_tab: "Ekwipunek" @@ -369,6 +371,13 @@ module.exports = nativeDescription: "język polski", englishDescription: "Polish # subscribe: # subscribe_title: "Subscribe" # unsubscribe: "Unsubscribe" +# confirm_unsubscribe: "Confirm Unsubscribe" +# never_mind: "Never Mind, I Still Love You" +# thank_you_months_prefix: "Thank you for supporting us these last" +# thank_you_months_suffix: "months." +# thank_you: "Thank you for supporting CodeCombat." +# sorry_to_see_you_go: "Sorry to see you go! Please let us know what we could have done better." +# unsubscribe_feedback_placeholder: "O, what have we done?" # levels: "Get more practice with bonus levels!" # heroes: "More powerful heroes!" # gems: "3500 bonus gems every month!" diff --git a/app/locale/pt-BR.coffee b/app/locale/pt-BR.coffee index 344b6fb29..1813e9619 100644 --- a/app/locale/pt-BR.coffee +++ b/app/locale/pt-BR.coffee @@ -323,6 +323,8 @@ module.exports = nativeDescription: "Português do Brasil", englishDescription: # tip_reusable_software: "Before software can be reusable it first has to be usable." # tip_optimization_operator: "Every language has an optimization operator. In most languages that operator is ‘//’" # tip_lines_of_code: "Measuring programming progress by lines of code is like measuring aircraft building progress by weight. — Bill Gates" +# tip_source_code: "I want to change the world but they would not give me the source code." +# tip_javascript_java: "Java is to JavaScript what Car is to Carpet. - Chris Heilmann" game_menu: inventory_tab: "Inventário" @@ -369,6 +371,13 @@ module.exports = nativeDescription: "Português do Brasil", englishDescription: subscribe: subscribe_title: "Inscrever-se" unsubscribe: "Desinscrever-se" +# confirm_unsubscribe: "Confirm Unsubscribe" +# never_mind: "Never Mind, I Still Love You" +# thank_you_months_prefix: "Thank you for supporting us these last" +# thank_you_months_suffix: "months." +# thank_you: "Thank you for supporting CodeCombat." +# sorry_to_see_you_go: "Sorry to see you go! Please let us know what we could have done better." +# unsubscribe_feedback_placeholder: "O, what have we done?" levels: "Desbloqueie 17 níveis extras! Com 5 novos toda semana!" heroes: "Mais poderosos heróis!" gems: "3500 gemas bônus todo mês!" diff --git a/app/locale/pt-PT.coffee b/app/locale/pt-PT.coffee index 573b1cbdc..a035ff8b4 100644 --- a/app/locale/pt-PT.coffee +++ b/app/locale/pt-PT.coffee @@ -323,6 +323,8 @@ module.exports = nativeDescription: "Português (Portugal)", englishDescription: tip_reusable_software: "Antes de um software poder ser reutilizável, primeiro tem de ser utilizável." tip_optimization_operator: "Todas as linguagens têm um operador de otimização. Na maior parte delas esse operador é ‘//’." tip_lines_of_code: "Medir o progresso em programação pelo número de linhas de código é como medir o progresso da construção de um avião pelo peso. — Bill Gates" +# tip_source_code: "I want to change the world but they would not give me the source code." +# tip_javascript_java: "Java is to JavaScript what Car is to Carpet. - Chris Heilmann" game_menu: inventory_tab: "Inventário" @@ -369,6 +371,13 @@ module.exports = nativeDescription: "Português (Portugal)", englishDescription: subscribe: subscribe_title: "Subscrever" unsubscribe: "Cancelar Subscrição" +# confirm_unsubscribe: "Confirm Unsubscribe" +# never_mind: "Never Mind, I Still Love You" +# thank_you_months_prefix: "Thank you for supporting us these last" +# thank_you_months_suffix: "months." +# thank_you: "Thank you for supporting CodeCombat." +# sorry_to_see_you_go: "Sorry to see you go! Please let us know what we could have done better." +# unsubscribe_feedback_placeholder: "O, what have we done?" levels: "Pratica mais com níveis bónus!" heroes: "Heróis mais poderosos!" gems: "3500 gemas de bónus todos os meses!" diff --git a/app/locale/ro.coffee b/app/locale/ro.coffee index e32acaa71..2d13f066e 100644 --- a/app/locale/ro.coffee +++ b/app/locale/ro.coffee @@ -323,6 +323,8 @@ module.exports = nativeDescription: "limba română", englishDescription: "Roman # tip_reusable_software: "Before software can be reusable it first has to be usable." # tip_optimization_operator: "Every language has an optimization operator. In most languages that operator is ‘//’" # tip_lines_of_code: "Measuring programming progress by lines of code is like measuring aircraft building progress by weight. — Bill Gates" +# tip_source_code: "I want to change the world but they would not give me the source code." +# tip_javascript_java: "Java is to JavaScript what Car is to Carpet. - Chris Heilmann" game_menu: # inventory_tab: "Inventory" @@ -369,6 +371,13 @@ module.exports = nativeDescription: "limba română", englishDescription: "Roman # subscribe: # subscribe_title: "Subscribe" # unsubscribe: "Unsubscribe" +# confirm_unsubscribe: "Confirm Unsubscribe" +# never_mind: "Never Mind, I Still Love You" +# thank_you_months_prefix: "Thank you for supporting us these last" +# thank_you_months_suffix: "months." +# thank_you: "Thank you for supporting CodeCombat." +# sorry_to_see_you_go: "Sorry to see you go! Please let us know what we could have done better." +# unsubscribe_feedback_placeholder: "O, what have we done?" # levels: "Get more practice with bonus levels!" # heroes: "More powerful heroes!" # gems: "3500 bonus gems every month!" diff --git a/app/locale/ru.coffee b/app/locale/ru.coffee index faa650fdf..75727fdc4 100644 --- a/app/locale/ru.coffee +++ b/app/locale/ru.coffee @@ -323,6 +323,8 @@ module.exports = nativeDescription: "русский", englishDescription: "Russi tip_reusable_software: "Прежде, чем программное обеспечение станет повторно используемым, оно должно стать в принципе используемым." tip_optimization_operator: "В каждом языке есть оператор оптимизации. В большинстве языков это оператор ‘//’" tip_lines_of_code: "Измерение прогресса программирования в строках кода - это как измерять прогресс построения самолета по его весу. — Bill Gates" +# tip_source_code: "I want to change the world but they would not give me the source code." +# tip_javascript_java: "Java is to JavaScript what Car is to Carpet. - Chris Heilmann" game_menu: inventory_tab: "Инвентарь" @@ -369,6 +371,13 @@ module.exports = nativeDescription: "русский", englishDescription: "Russi subscribe: subscribe_title: "Подпишись" unsubscribe: "Отписаться" +# confirm_unsubscribe: "Confirm Unsubscribe" +# never_mind: "Never Mind, I Still Love You" +# thank_you_months_prefix: "Thank you for supporting us these last" +# thank_you_months_suffix: "months." +# thank_you: "Thank you for supporting CodeCombat." +# sorry_to_see_you_go: "Sorry to see you go! Please let us know what we could have done better." +# unsubscribe_feedback_placeholder: "O, what have we done?" levels: "Получите больше практики с бонусными уровнями!" heroes: "Более сильные герои!" gems: "3500 бонусных самоцветов каждый месяц!" diff --git a/app/locale/sk.coffee b/app/locale/sk.coffee index ec2b802fa..e1d7963f3 100644 --- a/app/locale/sk.coffee +++ b/app/locale/sk.coffee @@ -323,6 +323,8 @@ module.exports = nativeDescription: "slovenčina", englishDescription: "Slovak", # tip_reusable_software: "Before software can be reusable it first has to be usable." # tip_optimization_operator: "Every language has an optimization operator. In most languages that operator is ‘//’" # tip_lines_of_code: "Measuring programming progress by lines of code is like measuring aircraft building progress by weight. — Bill Gates" +# tip_source_code: "I want to change the world but they would not give me the source code." +# tip_javascript_java: "Java is to JavaScript what Car is to Carpet. - Chris Heilmann" # game_menu: # inventory_tab: "Inventory" @@ -369,6 +371,13 @@ module.exports = nativeDescription: "slovenčina", englishDescription: "Slovak", # subscribe: # subscribe_title: "Subscribe" # unsubscribe: "Unsubscribe" +# confirm_unsubscribe: "Confirm Unsubscribe" +# never_mind: "Never Mind, I Still Love You" +# thank_you_months_prefix: "Thank you for supporting us these last" +# thank_you_months_suffix: "months." +# thank_you: "Thank you for supporting CodeCombat." +# sorry_to_see_you_go: "Sorry to see you go! Please let us know what we could have done better." +# unsubscribe_feedback_placeholder: "O, what have we done?" # levels: "Get more practice with bonus levels!" # heroes: "More powerful heroes!" # gems: "3500 bonus gems every month!" diff --git a/app/locale/sl.coffee b/app/locale/sl.coffee index 212f332fe..3869c1bdd 100644 --- a/app/locale/sl.coffee +++ b/app/locale/sl.coffee @@ -323,6 +323,8 @@ module.exports = nativeDescription: "slovenščina", englishDescription: "Sloven # tip_reusable_software: "Before software can be reusable it first has to be usable." # tip_optimization_operator: "Every language has an optimization operator. In most languages that operator is ‘//’" # tip_lines_of_code: "Measuring programming progress by lines of code is like measuring aircraft building progress by weight. — Bill Gates" +# tip_source_code: "I want to change the world but they would not give me the source code." +# tip_javascript_java: "Java is to JavaScript what Car is to Carpet. - Chris Heilmann" # game_menu: # inventory_tab: "Inventory" @@ -369,6 +371,13 @@ module.exports = nativeDescription: "slovenščina", englishDescription: "Sloven # subscribe: # subscribe_title: "Subscribe" # unsubscribe: "Unsubscribe" +# confirm_unsubscribe: "Confirm Unsubscribe" +# never_mind: "Never Mind, I Still Love You" +# thank_you_months_prefix: "Thank you for supporting us these last" +# thank_you_months_suffix: "months." +# thank_you: "Thank you for supporting CodeCombat." +# sorry_to_see_you_go: "Sorry to see you go! Please let us know what we could have done better." +# unsubscribe_feedback_placeholder: "O, what have we done?" # levels: "Get more practice with bonus levels!" # heroes: "More powerful heroes!" # gems: "3500 bonus gems every month!" diff --git a/app/locale/sr.coffee b/app/locale/sr.coffee index a0981e382..92bf819db 100644 --- a/app/locale/sr.coffee +++ b/app/locale/sr.coffee @@ -323,6 +323,8 @@ module.exports = nativeDescription: "српски", englishDescription: "Serbian # tip_reusable_software: "Before software can be reusable it first has to be usable." # tip_optimization_operator: "Every language has an optimization operator. In most languages that operator is ‘//’" # tip_lines_of_code: "Measuring programming progress by lines of code is like measuring aircraft building progress by weight. — Bill Gates" +# tip_source_code: "I want to change the world but they would not give me the source code." +# tip_javascript_java: "Java is to JavaScript what Car is to Carpet. - Chris Heilmann" game_menu: # inventory_tab: "Inventory" @@ -369,6 +371,13 @@ module.exports = nativeDescription: "српски", englishDescription: "Serbian # subscribe: # subscribe_title: "Subscribe" # unsubscribe: "Unsubscribe" +# confirm_unsubscribe: "Confirm Unsubscribe" +# never_mind: "Never Mind, I Still Love You" +# thank_you_months_prefix: "Thank you for supporting us these last" +# thank_you_months_suffix: "months." +# thank_you: "Thank you for supporting CodeCombat." +# sorry_to_see_you_go: "Sorry to see you go! Please let us know what we could have done better." +# unsubscribe_feedback_placeholder: "O, what have we done?" # levels: "Get more practice with bonus levels!" # heroes: "More powerful heroes!" # gems: "3500 bonus gems every month!" diff --git a/app/locale/sv.coffee b/app/locale/sv.coffee index b8cb962a3..910aaff45 100644 --- a/app/locale/sv.coffee +++ b/app/locale/sv.coffee @@ -323,6 +323,8 @@ module.exports = nativeDescription: "Svenska", englishDescription: "Swedish", tr # tip_reusable_software: "Before software can be reusable it first has to be usable." # tip_optimization_operator: "Every language has an optimization operator. In most languages that operator is ‘//’" # tip_lines_of_code: "Measuring programming progress by lines of code is like measuring aircraft building progress by weight. — Bill Gates" +# tip_source_code: "I want to change the world but they would not give me the source code." +# tip_javascript_java: "Java is to JavaScript what Car is to Carpet. - Chris Heilmann" game_menu: inventory_tab: "Utrustning" @@ -369,6 +371,13 @@ module.exports = nativeDescription: "Svenska", englishDescription: "Swedish", tr # subscribe: # subscribe_title: "Subscribe" # unsubscribe: "Unsubscribe" +# confirm_unsubscribe: "Confirm Unsubscribe" +# never_mind: "Never Mind, I Still Love You" +# thank_you_months_prefix: "Thank you for supporting us these last" +# thank_you_months_suffix: "months." +# thank_you: "Thank you for supporting CodeCombat." +# sorry_to_see_you_go: "Sorry to see you go! Please let us know what we could have done better." +# unsubscribe_feedback_placeholder: "O, what have we done?" # levels: "Get more practice with bonus levels!" # heroes: "More powerful heroes!" # gems: "3500 bonus gems every month!" diff --git a/app/locale/th.coffee b/app/locale/th.coffee index 65d00e52f..6e69a6733 100644 --- a/app/locale/th.coffee +++ b/app/locale/th.coffee @@ -323,6 +323,8 @@ module.exports = nativeDescription: "ไทย", englishDescription: "Thai", tra # tip_reusable_software: "Before software can be reusable it first has to be usable." # tip_optimization_operator: "Every language has an optimization operator. In most languages that operator is ‘//’" # tip_lines_of_code: "Measuring programming progress by lines of code is like measuring aircraft building progress by weight. — Bill Gates" +# tip_source_code: "I want to change the world but they would not give me the source code." +# tip_javascript_java: "Java is to JavaScript what Car is to Carpet. - Chris Heilmann" game_menu: # inventory_tab: "Inventory" @@ -369,6 +371,13 @@ module.exports = nativeDescription: "ไทย", englishDescription: "Thai", tra # subscribe: # subscribe_title: "Subscribe" # unsubscribe: "Unsubscribe" +# confirm_unsubscribe: "Confirm Unsubscribe" +# never_mind: "Never Mind, I Still Love You" +# thank_you_months_prefix: "Thank you for supporting us these last" +# thank_you_months_suffix: "months." +# thank_you: "Thank you for supporting CodeCombat." +# sorry_to_see_you_go: "Sorry to see you go! Please let us know what we could have done better." +# unsubscribe_feedback_placeholder: "O, what have we done?" # levels: "Get more practice with bonus levels!" # heroes: "More powerful heroes!" # gems: "3500 bonus gems every month!" diff --git a/app/locale/tr.coffee b/app/locale/tr.coffee index 74d380c75..dc31d6b2f 100644 --- a/app/locale/tr.coffee +++ b/app/locale/tr.coffee @@ -323,6 +323,8 @@ module.exports = nativeDescription: "Türkçe", englishDescription: "Turkish", t # tip_reusable_software: "Before software can be reusable it first has to be usable." # tip_optimization_operator: "Every language has an optimization operator. In most languages that operator is ‘//’" # tip_lines_of_code: "Measuring programming progress by lines of code is like measuring aircraft building progress by weight. — Bill Gates" +# tip_source_code: "I want to change the world but they would not give me the source code." +# tip_javascript_java: "Java is to JavaScript what Car is to Carpet. - Chris Heilmann" game_menu: inventory_tab: "Envanter" @@ -369,6 +371,13 @@ module.exports = nativeDescription: "Türkçe", englishDescription: "Turkish", t # subscribe: # subscribe_title: "Subscribe" # unsubscribe: "Unsubscribe" +# confirm_unsubscribe: "Confirm Unsubscribe" +# never_mind: "Never Mind, I Still Love You" +# thank_you_months_prefix: "Thank you for supporting us these last" +# thank_you_months_suffix: "months." +# thank_you: "Thank you for supporting CodeCombat." +# sorry_to_see_you_go: "Sorry to see you go! Please let us know what we could have done better." +# unsubscribe_feedback_placeholder: "O, what have we done?" # levels: "Get more practice with bonus levels!" # heroes: "More powerful heroes!" # gems: "3500 bonus gems every month!" diff --git a/app/locale/uk.coffee b/app/locale/uk.coffee index 4454a735b..a88cd4e4d 100644 --- a/app/locale/uk.coffee +++ b/app/locale/uk.coffee @@ -323,6 +323,8 @@ module.exports = nativeDescription: "Українська", englishDescription: # tip_reusable_software: "Before software can be reusable it first has to be usable." # tip_optimization_operator: "Every language has an optimization operator. In most languages that operator is ‘//’" # tip_lines_of_code: "Measuring programming progress by lines of code is like measuring aircraft building progress by weight. — Bill Gates" +# tip_source_code: "I want to change the world but they would not give me the source code." +# tip_javascript_java: "Java is to JavaScript what Car is to Carpet. - Chris Heilmann" game_menu: inventory_tab: "Інвентар" @@ -369,6 +371,13 @@ module.exports = nativeDescription: "Українська", englishDescription: subscribe: subscribe_title: "Взяти абонемент" unsubscribe: "Скасувати абонемент" +# confirm_unsubscribe: "Confirm Unsubscribe" +# never_mind: "Never Mind, I Still Love You" +# thank_you_months_prefix: "Thank you for supporting us these last" +# thank_you_months_suffix: "months." +# thank_you: "Thank you for supporting CodeCombat." +# sorry_to_see_you_go: "Sorry to see you go! Please let us know what we could have done better." +# unsubscribe_feedback_placeholder: "O, what have we done?" levels: "Розблокуйте 25 рівнів! Та отримуйте 5 нових кожного тижня!" heroes: "Більше могутніх героїв!" gems: "Щомісячний бонус 3500 самоцвітів!" diff --git a/app/locale/ur.coffee b/app/locale/ur.coffee index 535006934..227711849 100644 --- a/app/locale/ur.coffee +++ b/app/locale/ur.coffee @@ -323,6 +323,8 @@ module.exports = nativeDescription: "اُردُو", englishDescription: "Urdu", # tip_reusable_software: "Before software can be reusable it first has to be usable." # tip_optimization_operator: "Every language has an optimization operator. In most languages that operator is ‘//’" # tip_lines_of_code: "Measuring programming progress by lines of code is like measuring aircraft building progress by weight. — Bill Gates" +# tip_source_code: "I want to change the world but they would not give me the source code." +# tip_javascript_java: "Java is to JavaScript what Car is to Carpet. - Chris Heilmann" # game_menu: # inventory_tab: "Inventory" @@ -369,6 +371,13 @@ module.exports = nativeDescription: "اُردُو", englishDescription: "Urdu", # subscribe: # subscribe_title: "Subscribe" # unsubscribe: "Unsubscribe" +# confirm_unsubscribe: "Confirm Unsubscribe" +# never_mind: "Never Mind, I Still Love You" +# thank_you_months_prefix: "Thank you for supporting us these last" +# thank_you_months_suffix: "months." +# thank_you: "Thank you for supporting CodeCombat." +# sorry_to_see_you_go: "Sorry to see you go! Please let us know what we could have done better." +# unsubscribe_feedback_placeholder: "O, what have we done?" # levels: "Get more practice with bonus levels!" # heroes: "More powerful heroes!" # gems: "3500 bonus gems every month!" diff --git a/app/locale/vi.coffee b/app/locale/vi.coffee index 51704b410..f30db598b 100644 --- a/app/locale/vi.coffee +++ b/app/locale/vi.coffee @@ -323,6 +323,8 @@ module.exports = nativeDescription: "Tiếng Việt", englishDescription: "Vietn # tip_reusable_software: "Before software can be reusable it first has to be usable." # tip_optimization_operator: "Every language has an optimization operator. In most languages that operator is ‘//’" # tip_lines_of_code: "Measuring programming progress by lines of code is like measuring aircraft building progress by weight. — Bill Gates" +# tip_source_code: "I want to change the world but they would not give me the source code." +# tip_javascript_java: "Java is to JavaScript what Car is to Carpet. - Chris Heilmann" game_menu: # inventory_tab: "Inventory" @@ -369,6 +371,13 @@ module.exports = nativeDescription: "Tiếng Việt", englishDescription: "Vietn # subscribe: # subscribe_title: "Subscribe" # unsubscribe: "Unsubscribe" +# confirm_unsubscribe: "Confirm Unsubscribe" +# never_mind: "Never Mind, I Still Love You" +# thank_you_months_prefix: "Thank you for supporting us these last" +# thank_you_months_suffix: "months." +# thank_you: "Thank you for supporting CodeCombat." +# sorry_to_see_you_go: "Sorry to see you go! Please let us know what we could have done better." +# unsubscribe_feedback_placeholder: "O, what have we done?" # levels: "Get more practice with bonus levels!" # heroes: "More powerful heroes!" # gems: "3500 bonus gems every month!" diff --git a/app/locale/zh-HANS.coffee b/app/locale/zh-HANS.coffee index b769ca7cb..1cc44e510 100644 --- a/app/locale/zh-HANS.coffee +++ b/app/locale/zh-HANS.coffee @@ -323,6 +323,8 @@ module.exports = nativeDescription: "简体中文", englishDescription: "Chinese # tip_reusable_software: "Before software can be reusable it first has to be usable." # tip_optimization_operator: "Every language has an optimization operator. In most languages that operator is ‘//’" # tip_lines_of_code: "Measuring programming progress by lines of code is like measuring aircraft building progress by weight. — Bill Gates" +# tip_source_code: "I want to change the world but they would not give me the source code." +# tip_javascript_java: "Java is to JavaScript what Car is to Carpet. - Chris Heilmann" game_menu: inventory_tab: "道具箱" @@ -369,6 +371,13 @@ module.exports = nativeDescription: "简体中文", englishDescription: "Chinese subscribe: subscribe_title: "订阅" unsubscribe: "取消订阅" +# confirm_unsubscribe: "Confirm Unsubscribe" +# never_mind: "Never Mind, I Still Love You" +# thank_you_months_prefix: "Thank you for supporting us these last" +# thank_you_months_suffix: "months." +# thank_you: "Thank you for supporting CodeCombat." +# sorry_to_see_you_go: "Sorry to see you go! Please let us know what we could have done better." +# unsubscribe_feedback_placeholder: "O, what have we done?" levels: "多解锁17个关卡!每周解锁5个新关卡!" heroes: "更多强大的英雄!" gems: "每月多3500宝石奖励!" diff --git a/app/locale/zh-HANT.coffee b/app/locale/zh-HANT.coffee index c0cd308cd..579af99f4 100644 --- a/app/locale/zh-HANT.coffee +++ b/app/locale/zh-HANT.coffee @@ -323,6 +323,8 @@ module.exports = nativeDescription: "繁体中文", englishDescription: "Chinese # tip_reusable_software: "Before software can be reusable it first has to be usable." # tip_optimization_operator: "Every language has an optimization operator. In most languages that operator is ‘//’" # tip_lines_of_code: "Measuring programming progress by lines of code is like measuring aircraft building progress by weight. — Bill Gates" +# tip_source_code: "I want to change the world but they would not give me the source code." +# tip_javascript_java: "Java is to JavaScript what Car is to Carpet. - Chris Heilmann" game_menu: inventory_tab: "倉庫" @@ -369,6 +371,13 @@ module.exports = nativeDescription: "繁体中文", englishDescription: "Chinese # subscribe: # subscribe_title: "Subscribe" # unsubscribe: "Unsubscribe" +# confirm_unsubscribe: "Confirm Unsubscribe" +# never_mind: "Never Mind, I Still Love You" +# thank_you_months_prefix: "Thank you for supporting us these last" +# thank_you_months_suffix: "months." +# thank_you: "Thank you for supporting CodeCombat." +# sorry_to_see_you_go: "Sorry to see you go! Please let us know what we could have done better." +# unsubscribe_feedback_placeholder: "O, what have we done?" # levels: "Get more practice with bonus levels!" # heroes: "More powerful heroes!" # gems: "3500 bonus gems every month!" diff --git a/app/locale/zh-WUU-HANS.coffee b/app/locale/zh-WUU-HANS.coffee index beea36af1..24fd6f414 100644 --- a/app/locale/zh-WUU-HANS.coffee +++ b/app/locale/zh-WUU-HANS.coffee @@ -323,6 +323,8 @@ module.exports = nativeDescription: "吴语", englishDescription: "Wuu (Simplifi # tip_reusable_software: "Before software can be reusable it first has to be usable." # tip_optimization_operator: "Every language has an optimization operator. In most languages that operator is ‘//’" # tip_lines_of_code: "Measuring programming progress by lines of code is like measuring aircraft building progress by weight. — Bill Gates" +# tip_source_code: "I want to change the world but they would not give me the source code." +# tip_javascript_java: "Java is to JavaScript what Car is to Carpet. - Chris Heilmann" # game_menu: # inventory_tab: "Inventory" @@ -369,6 +371,13 @@ module.exports = nativeDescription: "吴语", englishDescription: "Wuu (Simplifi # subscribe: # subscribe_title: "Subscribe" # unsubscribe: "Unsubscribe" +# confirm_unsubscribe: "Confirm Unsubscribe" +# never_mind: "Never Mind, I Still Love You" +# thank_you_months_prefix: "Thank you for supporting us these last" +# thank_you_months_suffix: "months." +# thank_you: "Thank you for supporting CodeCombat." +# sorry_to_see_you_go: "Sorry to see you go! Please let us know what we could have done better." +# unsubscribe_feedback_placeholder: "O, what have we done?" # levels: "Get more practice with bonus levels!" # heroes: "More powerful heroes!" # gems: "3500 bonus gems every month!" diff --git a/app/locale/zh-WUU-HANT.coffee b/app/locale/zh-WUU-HANT.coffee index c0e2deb40..5610c092c 100644 --- a/app/locale/zh-WUU-HANT.coffee +++ b/app/locale/zh-WUU-HANT.coffee @@ -323,6 +323,8 @@ module.exports = nativeDescription: "吳語", englishDescription: "Wuu (Traditio # tip_reusable_software: "Before software can be reusable it first has to be usable." # tip_optimization_operator: "Every language has an optimization operator. In most languages that operator is ‘//’" # tip_lines_of_code: "Measuring programming progress by lines of code is like measuring aircraft building progress by weight. — Bill Gates" +# tip_source_code: "I want to change the world but they would not give me the source code." +# tip_javascript_java: "Java is to JavaScript what Car is to Carpet. - Chris Heilmann" game_menu: # inventory_tab: "Inventory" @@ -369,6 +371,13 @@ module.exports = nativeDescription: "吳語", englishDescription: "Wuu (Traditio # subscribe: # subscribe_title: "Subscribe" # unsubscribe: "Unsubscribe" +# confirm_unsubscribe: "Confirm Unsubscribe" +# never_mind: "Never Mind, I Still Love You" +# thank_you_months_prefix: "Thank you for supporting us these last" +# thank_you_months_suffix: "months." +# thank_you: "Thank you for supporting CodeCombat." +# sorry_to_see_you_go: "Sorry to see you go! Please let us know what we could have done better." +# unsubscribe_feedback_placeholder: "O, what have we done?" # levels: "Get more practice with bonus levels!" # heroes: "More powerful heroes!" # gems: "3500 bonus gems every month!" diff --git a/app/styles/account/subscription-view.sass b/app/styles/account/subscription-view.sass index f95fc23c2..875d798c3 100644 --- a/app/styles/account/subscription-view.sass +++ b/app/styles/account/subscription-view.sass @@ -2,4 +2,17 @@ .start-subscription-button, .end-subscription-button margin-bottom: 20px float: left - width: 100% \ No newline at end of file + width: 100% + + .unsubscribe-feedback + width: 100% + + h3 + margin-top: 0 + + textarea + width: 100% + + button.btn + width: 100% + margin-top: 12px diff --git a/app/templates/account/subscription-view.jade b/app/templates/account/subscription-view.jade index 48f5873b8..95e3e6952 100644 --- a/app/templates/account/subscription-view.jade +++ b/app/templates/account/subscription-view.jade @@ -14,6 +14,20 @@ block content .panel-heading if subscribed button.end-subscription-button.btn.btn-lg.btn-warning(data-i18n="subscribe.unsubscribe") Unsubscribe + .unsubscribe-feedback.row.secret + .col-lg-7 + h3 + if monthsSubscribed > 1 + span(data-i18n="subscribe.thank_you_months_prefix") Thank you for supporting us these last + span.spl.spr= monthsSubscribed + span(data-i18n="subscribe.thank_you_months_suffix") months. + else + span(data-i18n="subscribe.thank_you") Thank you for supporting CodeCombat. + div(data-i18n="subscribe.sorry_to_see_you_go") Sorry to see you go! Please let us know what we could have done better. + textarea(rows=3, data-i18n="[placeholder]subscribe.unsubscribe_feedback_placeholder") + .col-lg-5 + button.cancel-end-subscription-button.btn.btn-lg.btn-default(data-i18n="subscribe.never_mind") Never Mind, I Still Love You + button.confirm-end-subscription-button.btn.btn-lg.btn-warning(data-i18n="subscribe.confirm_unsubscribe") Confirm Unsubscribe else if !me.isAnonymous() button.start-subscription-button.btn.btn-lg.btn-success(data-i18n="subscribe.subscribe_title") Subscribe diff --git a/app/templates/play/level/level_loading.jade b/app/templates/play/level/level_loading.jade index 40fb053e1..b7b75e3bd 100644 --- a/app/templates/play/level/level_loading.jade +++ b/app/templates/play/level/level_loading.jade @@ -54,6 +54,8 @@ strong.tip.rare(data-i18n='play_level.tip_brute_force') When in doubt, use brute force. - Ken Thompson strong.tip.rare(data-i18n='play_level.tip_extrapolation') There are only two kinds of people: those that can extrapolate from incomplete data... strong.tip.rare(data-i18n='play_level.tip_superpower') Coding is the closest thing we have to a superpower + strong.tip.rare(data-i18n='play_level.tip_source_code') I want to change the world but they would not give me the source code. + strong.tip.rare(data-i18n='play_level.tip_javascript_java') Java is to JavaScript what Car is to Carpet. - Chris Heilmann strong.tip.rare span(data-i18n='play_level.tip_harry') Yer a Wizard, span= me.get('name', true) diff --git a/app/views/account/SubscriptionView.coffee b/app/views/account/SubscriptionView.coffee index 0501f535d..20e683117 100644 --- a/app/views/account/SubscriptionView.coffee +++ b/app/views/account/SubscriptionView.coffee @@ -2,6 +2,7 @@ RootView = require 'views/core/RootView' template = require 'templates/account/subscription-view' CocoCollection = require 'collections/CocoCollection' SubscribeModal = require 'views/core/SubscribeModal' +Payment = require 'models/Payment' module.exports = class SubscriptionView extends RootView id: "subscription-view" @@ -10,6 +11,8 @@ module.exports = class SubscriptionView extends RootView events: 'click .start-subscription-button': 'onClickStartSubscription' 'click .end-subscription-button': 'onClickEndSubscription' + 'click .cancel-end-subscription-button': 'onClickCancelEndSubscription' + 'click .confirm-end-subscription-button': 'onClickConfirmEndSubscription' subscriptions: 'subscribe-modal:subscribed': 'onSubscribed' @@ -20,6 +23,8 @@ module.exports = class SubscriptionView extends RootView options = { url: "/db/user/#{me.id}/stripe" } options.success = (@stripeInfo) => @supermodel.addRequestResource('payment_info', options).load() + @payments = new CocoCollection([], { url: '/db/payment', model: Payment, comparator:'_id' }) + @supermodel.loadCollection(@payments, 'payments') getRenderData: -> c = super() @@ -33,6 +38,10 @@ module.exports = class SubscriptionView extends RootView c.cost = "$#{(subscription.plan.amount/100).toFixed(2)}" if card = @stripeInfo.cards?.data?[0] c.card = "#{card.brand}: x#{card.last4}" + if @payments?.loaded + c.monthsSubscribed = (x for x in @payments.models when not x.get('productID')).length # productID is for gem purchases + else + c.monthsSubscribed = null c.stripeInfo = @stripeInfo c.subscribed = me.get('stripe')?.planID @@ -47,8 +56,26 @@ module.exports = class SubscriptionView extends RootView document.location.reload() onClickEndSubscription: (e) -> - stripe = _.clone(me.get('stripe')) - delete stripe.planID - me.set('stripe', stripe) - me.patch({headers: {'X-Change-Plan': 'true'}}) - @listenToOnce me, 'sync', -> document.location.reload() + window.tracker?.trackEvent 'Unsubscribe Start', {} + @$el.find('.end-subscription-button').blur().addClass 'disabled', 250 + @$el.find('.unsubscribe-feedback').show(500).find('textarea').focus() + + onClickCancelEndSubscription: (e) -> + window.tracker?.trackEvent 'Unsubscribe Cancel', {} + @$el.find('.unsubscribe-feedback').hide(500).find('textarea').blur() + @$el.find('.end-subscription-button').focus().removeClass 'disabled', 250 + + onClickConfirmEndSubscription: (e) -> + message = @$el.find('.unsubscribe-feedback textarea').val().trim() + window.tracker?.trackEvent 'Unsubscribe End', message: message + removeStripe = => + stripe = _.clone(me.get('stripe')) + delete stripe.planID + me.set('stripe', stripe) + me.patch({headers: {'X-Change-Plan': 'true'}}) + @listenToOnce me, 'sync', -> document.location.reload() + if message + $.post '/contact', message: message, subject: 'Cancellation', (response) -> + removeStripe() + else + removeStripe() diff --git a/scripts/devSetup/bootstrap.sh b/scripts/devSetup/bootstrap.sh index 46099635c..6317d861c 100644 --- a/scripts/devSetup/bootstrap.sh +++ b/scripts/devSetup/bootstrap.sh @@ -31,7 +31,7 @@ function basicDependenciesErrorHandling { exit 1 ;; "git") - echo "Please install Git.(If you're running mac, this is included in the XCode command line tools." + echo "Please install Git (if you're running mac, this is included in the XCode command line tools)." esac } diff --git a/scripts/devSetup/configuration.py b/scripts/devSetup/configuration.py index 2eb0be39c..80ab85198 100644 --- a/scripts/devSetup/configuration.py +++ b/scripts/devSetup/configuration.py @@ -14,6 +14,3 @@ class Configuration(object): @property def mem_width(self): return self.system.virtual_memory_address_width - - - diff --git a/scripts/devSetup/dependency.py b/scripts/devSetup/dependency.py index 2cc726e86..6ef107dbf 100644 --- a/scripts/devSetup/dependency.py +++ b/scripts/devSetup/dependency.py @@ -10,4 +10,3 @@ class Dependency(object): raise NotImplementedError def install_dependencies(self): raise NotImplementedError - diff --git a/scripts/devSetup/directoryController.py b/scripts/devSetup/directoryController.py index 5087db888..bea7cbeea 100644 --- a/scripts/devSetup/directoryController.py +++ b/scripts/devSetup/directoryController.py @@ -50,6 +50,3 @@ class DirectoryController(object): shutil.rmtree(self.bin_directory + os.sep + "mongo",ignore_errors=True) def remove_tmp_directory(self): shutil.rmtree(self.tmp_directory) - - - diff --git a/scripts/devSetup/downloader.py b/scripts/devSetup/downloader.py index 477af3b44..2fe266489 100644 --- a/scripts/devSetup/downloader.py +++ b/scripts/devSetup/downloader.py @@ -38,4 +38,3 @@ class Downloader: else: stringToDisplay = '\r File size unknown. Read {0} bytes.'.format(amount_of_data_downloaded_so_far) print(stringToDisplay,end=' ') - diff --git a/scripts/devSetup/factories.py b/scripts/devSetup/factories.py index c4acfdc59..f76099b6f 100644 --- a/scripts/devSetup/factories.py +++ b/scripts/devSetup/factories.py @@ -71,7 +71,7 @@ class SetupFactory(object): print("NOTE: brunch may need to be run as sudo if it doesn't work (ulimit needs to be set higher than default)") print("") print("Before can play any levels you must update the database. See the Setup section here:") - print("https://github.com/codecombat/codecombat/wiki/Developer-environment#setup") + print("https://github.com/codecombat/codecombat/wiki/Dev-Setup:-Linux#installing-the-database") print("") print("Go to http://localhost:3000 to see your local CodeCombat in action!") def cleanup(self): @@ -145,7 +145,7 @@ class LinuxSetup(SetupFactory): exit(1) else: print("NodeJS and MongoDB installed successfully. " - "Staring MongoDB.") + "Starting MongoDB.") #try: #subprocess.check_call(["service", "mongod", "start"]) #except subprocess.CalledProcessError as err: @@ -169,4 +169,3 @@ class LinuxSetup(SetupFactory): return() else: exit(1) - diff --git a/scripts/devSetup/mongo.py b/scripts/devSetup/mongo.py index 46814ce8d..957e6cf58 100644 --- a/scripts/devSetup/mongo.py +++ b/scripts/devSetup/mongo.py @@ -105,5 +105,3 @@ class MacMongoDBDownloader(MongoDBDownloader): @property def download_url(self): return u"http://fastdl.mongodb.org/osx/mongodb-osx-x86_64-2.6.6.tgz" - - diff --git a/scripts/devSetup/node.py b/scripts/devSetup/node.py index d6915e8a0..9c8fc574f 100644 --- a/scripts/devSetup/node.py +++ b/scripts/devSetup/node.py @@ -60,7 +60,7 @@ class Node(Dependency): shutil.copytree(self.findUnzippedNodePath(),install_directory) wants_to_upgrade = True if self.check_if_executable_installed(u"npm"): - warning_string = u"A previous version of npm has been found. \nYou may experience problems if you have a version of npm that's too old.Would you like to upgrade?(y/n) " + warning_string = u"A previous version of npm has been found. \nYou may experience problems if you have a version of npm that's too old. Would you like to upgrade?(y/n) " from distutils.util import strtobool print(warning_string) #for bash script, you have to somehow redirect stdin to raw_input() @@ -158,5 +158,3 @@ class MacNodeDownloader(NodeDownloader): return u"http://nodejs.org/dist/v0.10.35/node-v0.10.35-darwin-x64.tar.gz" else: return u"http://nodejs.org/dist/v0.10.35/node-v0.10.35-darwin-x86.tar.gz" - - diff --git a/scripts/devSetup/repositoryInstaller.py b/scripts/devSetup/repositoryInstaller.py index 7262466fe..d612eb4b4 100644 --- a/scripts/devSetup/repositoryInstaller.py +++ b/scripts/devSetup/repositoryInstaller.py @@ -20,7 +20,7 @@ class RepositoryInstaller(): #http://stackoverflow.com/questions/9329243/xcode-4-4-and-later-install-command-line-tools if not self.checkIfCurlExecutableExists(): if self.config.system.operating_system == "linux": - raise errors.CoCoError("Curl is missing. Please install it(try 'sudo apt-get install curl')\nIf you are not using Ubuntu then please see your Linux Distribution's documentation for help installing curl.") + raise errors.CoCoError("Curl is missing. Please install it (try 'sudo apt-get install curl')\nIf you are not using Ubuntu then please see your Linux Distribution's documentation for help installing curl.") elif self.config.system.operating_system == "mac": raise errors.CoCoError("Curl is missing. Please install the Xcode command line tools.") raise errors.CoCoError(u"Git is missing. Please install git.") diff --git a/scripts/devSetup/setup.py b/scripts/devSetup/setup.py index 5c4165bdc..2d2c2ed97 100644 --- a/scripts/devSetup/setup.py +++ b/scripts/devSetup/setup.py @@ -40,9 +40,7 @@ def check_if_root(): raise errors.CoCoError(u"You need to be root. Run as sudo.") if __name__ == u"__main__": - print("Code Combat Development Environment Setup Script") + print("CodeCombat Development Environment Setup Script") check_if_root() setup = factories.constructSetup() setup.setup() - - diff --git a/server/achievements/Achievement.coffee b/server/achievements/Achievement.coffee index 33675e7ee..d3046546e 100644 --- a/server/achievements/Achievement.coffee +++ b/server/achievements/Achievement.coffee @@ -15,6 +15,22 @@ AchievementSchema = new mongoose.Schema({ userField: String }, {strict: false}) +AchievementSchema.index( + { + _fts: 'text' + _ftsx: 1 + }, + { + name: 'search index' + sparse: true + weights: {name: 1} + default_language: 'english' + 'language_override': 'language' + 'textIndexVersion': 2 + }) +AchievementSchema.index({i18nCoverage: 1}, {name: 'translation coverage index', sparse: true}) +AchievementSchema.index({slug: 1}, {name: 'slug index', sparse: true, unique: true}) + AchievementSchema.methods.objectifyQuery = -> try @set('query', JSON.parse(@get('query'))) if typeof @get('query') == 'string' diff --git a/server/analytics/AnalyticsLogEvent.coffee b/server/analytics/AnalyticsLogEvent.coffee index 18a146346..be9a5b461 100644 --- a/server/analytics/AnalyticsLogEvent.coffee +++ b/server/analytics/AnalyticsLogEvent.coffee @@ -11,6 +11,7 @@ AnalyticsLogEventSchema = new mongoose.Schema({ event: String properties: mongoose.Schema.Types.Mixed }, {strict: false}) + AnalyticsLogEventSchema.index({event: 1, _id: 1}) module.exports = AnalyticsLogEvent = mongoose.model('analytics.log.event', AnalyticsLogEventSchema) diff --git a/server/analytics/AnalyticsUsersActive.coffee b/server/analytics/AnalyticsUsersActive.coffee index 95614335d..8182a596d 100644 --- a/server/analytics/AnalyticsUsersActive.coffee +++ b/server/analytics/AnalyticsUsersActive.coffee @@ -7,4 +7,7 @@ AnalyticsUsersActiveSchema = new mongoose.Schema({ 'default': Date.now }, {strict: false}) +AnalyticsUsersActiveSchema.index({created: 1}) +AnalyticsUsersActiveSchema.index({creator: 1}) + module.exports = AnalyticsUsersActive = mongoose.model('analytics.users.active', AnalyticsUsersActiveSchema) diff --git a/server/articles/Article.coffee b/server/articles/Article.coffee index 1645b15b6..df242e771 100644 --- a/server/articles/Article.coffee +++ b/server/articles/Article.coffee @@ -3,6 +3,32 @@ plugins = require '../plugins/plugins' ArticleSchema = new mongoose.Schema(body: String, {strict: false}) +ArticleSchema.index( + { + index: 1 + _fts: 'text' + _ftsx: 1 + }, + { + name: 'search index' + sparse: true + weights: {body: 1, name: 1} + default_language: 'english' + 'language_override': 'searchLanguage' + 'textIndexVersion': 2 + }) +ArticleSchema.index( + { + original: 1 + 'version.major': -1 + 'version.minor': -1 + }, + { + name: 'version index' + unique: true + }) +ArticleSchema.index({slug: 1}, {name: 'slug index', sparse: true, unique: true}) + ArticleSchema.plugin(plugins.NamedPlugin) ArticleSchema.plugin(plugins.VersionedPlugin) ArticleSchema.plugin(plugins.SearchablePlugin, {searchable: ['body', 'name']}) diff --git a/server/campaigns/Campaign.coffee b/server/campaigns/Campaign.coffee index b0fad1371..b32d72cf1 100644 --- a/server/campaigns/Campaign.coffee +++ b/server/campaigns/Campaign.coffee @@ -3,6 +3,9 @@ plugins = require '../plugins/plugins' CampaignSchema = new mongoose.Schema(body: String, {strict: false}) +CampaignSchema.index({i18nCoverage: 1}, {name: 'translation coverage index', sparse: true}) +CampaignSchema.index({slug: 1}, {name: 'slug index', sparse: true, unique: true}) + CampaignSchema.plugin(plugins.NamedPlugin) CampaignSchema.plugin(plugins.TranslationCoveragePlugin) diff --git a/server/levels/Level.coffee b/server/levels/Level.coffee index 95d2bc4b7..b27264615 100644 --- a/server/levels/Level.coffee +++ b/server/levels/Level.coffee @@ -6,6 +6,32 @@ LevelSchema = new mongoose.Schema({ description: String }, {strict: false}) +LevelSchema.index( + { + index: 1 + _fts: 'text' + _ftsx: 1 + }, + { + name: 'search index' + sparse: true + weights: {description: 1, name: 1} + default_language: 'english' + 'language_override': 'searchLanguage' + 'textIndexVersion': 2 + }) +LevelSchema.index( + { + original: 1 + 'version.major': -1 + 'version.minor': -1 + }, + { + name: 'version index' + unique: true + }) +LevelSchema.index({slug: 1}, {name: 'slug index', sparse: true, unique: true}) + LevelSchema.plugin(plugins.NamedPlugin) LevelSchema.plugin(plugins.PermissionsPlugin) LevelSchema.plugin(plugins.VersionedPlugin) diff --git a/server/levels/components/LevelComponent.coffee b/server/levels/components/LevelComponent.coffee index a714129c0..46f36822f 100644 --- a/server/levels/components/LevelComponent.coffee +++ b/server/levels/components/LevelComponent.coffee @@ -7,6 +7,32 @@ LevelComponentSchema = new mongoose.Schema { system: String }, {strict: false} +LevelComponentSchema.index( + { + index: 1 + _fts: 'text' + _ftsx: 1 + }, + { + name: 'search index' + sparse: true + weights: {description: 1, name: 1, searchStrings: 1} + default_language: 'english' + 'language_override': 'searchLanguage' + 'textIndexVersion': 2 + }) +LevelComponentSchema.index( + { + original: 1 + 'version.major': -1 + 'version.minor': -1 + }, + { + name: 'version index' + unique: true + }) +LevelComponentSchema.index({slug: 1}, {name: 'slug index', sparse: true, unique: true}) + LevelComponentSchema.plugin plugins.NamedPlugin LevelComponentSchema.plugin plugins.PermissionsPlugin LevelComponentSchema.plugin plugins.VersionedPlugin diff --git a/server/levels/feedbacks/LevelFeedback.coffee b/server/levels/feedbacks/LevelFeedback.coffee index 523bf9120..8d004c48b 100644 --- a/server/levels/feedbacks/LevelFeedback.coffee +++ b/server/levels/feedbacks/LevelFeedback.coffee @@ -10,4 +10,7 @@ LevelFeedbackSchema = new mongoose.Schema({ 'default': Date.now }, {strict: false}) +LevelFeedbackSchema.index({created: 1}) +LevelFeedbackSchema.index({creator: 1}) + module.exports = LevelFeedback = mongoose.model('level.feedback', LevelFeedbackSchema) diff --git a/server/levels/sessions/LevelSession.coffee b/server/levels/sessions/LevelSession.coffee index 7832875c0..8285e6790 100644 --- a/server/levels/sessions/LevelSession.coffee +++ b/server/levels/sessions/LevelSession.coffee @@ -11,6 +11,20 @@ LevelSessionSchema = new mongoose.Schema({ type: Date 'default': Date.now }, {strict: false}) + +LevelSessionSchema.index({creator: 1}) +LevelSessionSchema.index({level: 1}) +LevelSessionSchema.index({levelID: 1}) +LevelSessionSchema.index({'level.majorVersion': 1}) +LevelSessionSchema.index({'level.original': 1}, {name: 'Level Original'}) +LevelSessionSchema.index({'level.original': 1, 'level.majorVersion': 1, 'creator': 1, 'team': 1}) +LevelSessionSchema.index({playtime: 1}, {name: 'Playtime'}) +LevelSessionSchema.index({submitDate: 1}) +LevelSessionSchema.index({submitted: 1}, {sparse: true}) +LevelSessionSchema.index({team: 1}, {sparse: true}) +LevelSessionSchema.index({totalScore: 1}, {sparse: true}) +LevelSessionSchema.index({user: 1, changed: -1}, {name: 'last played index', sparse: true}) + LevelSessionSchema.plugin(plugins.PermissionsPlugin) LevelSessionSchema.plugin(AchievablePlugin) diff --git a/server/levels/systems/LevelSystem.coffee b/server/levels/systems/LevelSystem.coffee index 87c4a2bab..0b0279baa 100644 --- a/server/levels/systems/LevelSystem.coffee +++ b/server/levels/systems/LevelSystem.coffee @@ -6,6 +6,32 @@ LevelSystemSchema = new mongoose.Schema { description: String }, {strict: false} +LevelSystemSchema.index( + { + index: 1 + _fts: 'text' + _ftsx: 1 + }, + { + name: 'search index' + sparse: true + weights: {description: 1, name: 1, name: 1} + default_language: 'english' + 'language_override': 'searchLanguage' + 'textIndexVersion': 2 + }) +LevelSystemSchema.index( + { + original: 1 + 'version.major': -1 + 'version.minor': -1 + }, + { + name: 'version index' + unique: true + }) +LevelSystemSchema.index({slug: 1}, {name: 'slug index', sparse: true, unique: true}) + LevelSystemSchema.plugin(plugins.NamedPlugin) LevelSystemSchema.plugin(plugins.PermissionsPlugin) LevelSystemSchema.plugin(plugins.VersionedPlugin) diff --git a/server/levels/thangs/ThangType.coffee b/server/levels/thangs/ThangType.coffee index 02259caa3..605cb97a9 100644 --- a/server/levels/thangs/ThangType.coffee +++ b/server/levels/thangs/ThangType.coffee @@ -5,6 +5,32 @@ ThangTypeSchema = new mongoose.Schema({ body: String, }, {strict: false}) +ThangTypeSchema.index( + { + index: 1 + _fts: 'text' + _ftsx: 1 + }, + { + name: 'search index' + sparse: true + weights: {name: 1} + default_language: 'english' + 'language_override': 'searchLanguage' + 'textIndexVersion': 2 + }) +ThangTypeSchema.index( + { + original: 1 + 'version.major': -1 + 'version.minor': -1 + }, + { + name: 'version index' + unique: true + }) +ThangTypeSchema.index({slug: 1}, {name: 'slug index', sparse: true, unique: true}) + ThangTypeSchema.plugin plugins.NamedPlugin ThangTypeSchema.plugin plugins.VersionedPlugin ThangTypeSchema.plugin plugins.SearchablePlugin, {searchable: ['name']} diff --git a/server/mail/sent/MailSent.coffee b/server/mail/sent/MailSent.coffee index f8479033a..f87bc6743 100644 --- a/server/mail/sent/MailSent.coffee +++ b/server/mail/sent/MailSent.coffee @@ -8,4 +8,6 @@ MailSent = new mongoose.Schema({ 'default': Date.now }, {strict: false}) +MailSent.index({user: 1}, {name: 'User'}) + module.exports = MailSent = mongoose.model('mail.sent', MailSent) diff --git a/server/queues/task/ScoringTask.coffee b/server/queues/task/ScoringTask.coffee index b6dcf27d9..e24a56130 100644 --- a/server/queues/task/ScoringTask.coffee +++ b/server/queues/task/ScoringTask.coffee @@ -9,4 +9,6 @@ ScoringTaskSchema = new mongoose.Schema( sessions: {type: Array, default: []} ) +ScoringTaskSchema.index({createdAt: 1}, {expireAfterSeconds: 3600}) + module.exports = mongoose.model('scoringTask', ScoringTaskSchema) diff --git a/server/routes/contact.coffee b/server/routes/contact.coffee index 37d7bfde9..0bc4fd465 100644 --- a/server/routes/contact.coffee +++ b/server/routes/contact.coffee @@ -59,8 +59,6 @@ createMailContext = (req, done) -> async.waterfall [ fetchRecentSessions.bind undefined, user, context # Can add other data-grabbing stuff here if we want. - # TODO: grab platform/browser/browser version/screen size from client - # TODO: try automatically including Surface screenshot if opening contact form from level? ], (err, results) -> console.error "Error getting contact message context for #{sender}: #{err}" if err if req.body.screenshotURL diff --git a/server/users/User.coffee b/server/users/User.coffee index 3253344d8..61596c6f5 100644 --- a/server/users/User.coffee +++ b/server/users/User.coffee @@ -19,6 +19,17 @@ UserSchema = new mongoose.Schema({ 'default': Date.now }, {strict: false}) +UserSchema.index({'dateCreated': 1}) +UserSchema.index({'emailLower': 1}, {unique: true, sparse: true, name: 'emailLower_1'}) +UserSchema.index({'facebookID': 1}, {sparse: true}) +UserSchema.index({'gplusID': 1}, {sparse: true}) +UserSchema.index({'iosIdentifierForVendor': 1}, {name: 'iOS identifier for vendor', sparse: true, unique: true}) +UserSchema.index({'mailChimp.leid': 1}, {sparse: true}) +UserSchema.index({'nameLower': 1}, {sparse: true, name: 'nameLower_1'}) +UserSchema.index({'simulatedBy': 1}) +UserSchema.index({'slug': 1}, {name: 'slug index', sparse: true, unique: true}) +UserSchema.index({'stripe.subscriptionID': 1}, {unique: true, sparse: true}) + UserSchema.post('init', -> @set('anonymous', false) if @get('email') ) @@ -266,9 +277,6 @@ UserSchema.statics.editableProperties = [ ] UserSchema.plugin plugins.NamedPlugin -UserSchema.index({'stripe.subscriptionID':1}, {unique: true, sparse: true}) -UserSchema.index({'emailLower':1}, {unique: true, sparse: true, name: 'emailLower_1'}) -UserSchema.index({'nameLower':1}, {unique: true, sparse: true, name: 'nameLower_1'}) module.exports = User = mongoose.model('User', UserSchema) diff --git a/server/users/remarks/UserRemark.coffee b/server/users/remarks/UserRemark.coffee index 445340c0b..15eb63a2b 100644 --- a/server/users/remarks/UserRemark.coffee +++ b/server/users/remarks/UserRemark.coffee @@ -8,4 +8,6 @@ UserRemarkSchema = new mongoose.Schema({ 'default': Date.now }, {strict: false}) +UserRemarkSchema.index({user: 1}, {name: 'User'}) + module.exports = UserRemark = mongoose.model('user.remark', UserRemarkSchema)