From f7ec30a586f9378adb2fdf25cc73cf749c51a498 Mon Sep 17 00:00:00 2001 From: Philippe Rigovanov Date: Mon, 23 Jun 2014 01:55:45 +0400 Subject: [PATCH 001/106] Update ru.coffee --- app/locale/ru.coffee | 54 ++++++++++++++++++++++---------------------- 1 file changed, 27 insertions(+), 27 deletions(-) diff --git a/app/locale/ru.coffee b/app/locale/ru.coffee index 7d1b28701..829df6a88 100644 --- a/app/locale/ru.coffee +++ b/app/locale/ru.coffee @@ -219,8 +219,8 @@ module.exports = nativeDescription: "русский", englishDescription: "Russi # next_links: "add any personal or social links." # next_photo: "add an optional professional photo." # next_active: "mark yourself open to offers to show up in searches." -# example_blog: "Blog" -# example_personal_site: "Personal Site" + example_blog: "Блог" + example_personal_site: "Персональный сайт" # links_header: "Personal Links" # links_blurb: "Link any other sites or profiles you want to highlight, like your GitHub, your LinkedIn, or your blog." # links_name: "Link Name" @@ -231,16 +231,16 @@ module.exports = nativeDescription: "русский", englishDescription: "Russi # basics_active_help: "Want interview offers right now?" # basics_job_title: "Desired Job Title" # basics_job_title_help: "What role are you looking for?" -# basics_city: "City" + basics_city: "Город" # basics_city_help: "City you want to work in (or live in now)." -# basics_country: "Country" + basics_country: "Страна" # basics_country_help: "Country you want to work in (or live in now)." # basics_visa: "US Work Status" # basics_visa_help: "Are you authorized to work in the US, or do you need visa sponsorship?" # basics_looking_for: "Looking For" -# basics_looking_for_full_time: "Full-time" -# basics_looking_for_part_time: "Part-time" -# basics_looking_for_remote: "Remote" + basics_looking_for_full_time: "Полная занятость" + basics_looking_for_part_time: "Частичная занятость" + basics_looking_for_remote: "Удаленная работа" # basics_looking_for_contracting: "Contracting" # basics_looking_for_internship: "Internship" # basics_looking_for_help: "What kind of developer position do you want?" @@ -266,9 +266,9 @@ module.exports = nativeDescription: "русский", englishDescription: "Russi # work_employer_help: "Name of your employer." # work_role: "Job Title" # work_role_help: "What was your job title or role?" -# work_duration: "Duration" + work_duration: "Продолжительность" # work_duration_help: "When did you hold this gig?" -# work_description: "Description" + work_description: "Описание" # work_description_help: "What did you do there? (140 chars; optional)" education: "Образование" # education_header: "Recount your academic ordeals" @@ -279,21 +279,21 @@ module.exports = nativeDescription: "русский", englishDescription: "Russi # education_degree_help: "What was your degree and field of study?" # education_duration: "Dates" # education_duration_help: "When?" -# education_description: "Description" + education_description: "Описание" # education_description_help: "Highlight anything about this educational experience. (140 chars; optional)" our_notes: "Наши заметки" projects: "Проекты" -# projects_header: "Add 3 projects" -# projects_header_2: "Projects (Top 3)" + projects_header: "Добавьте 3 проекта" + projects_header_2: "Проекты (3 самых лучших)" # projects_blurb: "Highlight your projects to amaze employers." -# project_name: "Project Name" + project_name: "Название Проекта" # project_name_help: "What was the project called?" -# project_description: "Description" + project_description: "Описание" # project_description_help: "Briefly describe the project." # project_picture: "Picture" # project_picture_help: "Upload a 230x115px or larger image showing off the project." -# project_link: "Link" -# project_link_help: "Link to the project." + project_link: "Ссылка" + project_link_help: "Ссылка на проект." # player_code: "Player Code" employers: @@ -302,7 +302,7 @@ module.exports = nativeDescription: "русский", englishDescription: "Russi # what_blurb: "CodeCombat is a multiplayer browser programming game. Players write code to control their forces in battle against other developers. We support JavaScript, Python, Lua, Clojure, CoffeeScript, and Io." # who: "Who Are the Players?" # who_blurb: "CodeCombateers are software developers who enjoy using their programming skills to play games. They range from college seniors at top 20 engineering programs to 20-year industry veterans." -# how: "How Do We Find Developers?" + how: "Как Мы Находим Разработчиков?" # how_blurb: "We host competitive tournaments to attract competitive software engieneers. We then use in-house algorithms to identify the best players among the top 5% of tournament winners." # why: "Why Hire Through Us?" # why_blurb_1: "We will save you time. Every CodeCombateer we feaure is " @@ -433,12 +433,12 @@ module.exports = nativeDescription: "русский", englishDescription: "Russi cast_spell: "Произнести текущее заклинание." # continue_script: "Continue past current script." # skip_scripts: "Skip past all skippable scripts." -# toggle_playback: "Toggle play/pause." -# scrub_playback: "Scrub back and forward through time." + toggle_playback: "Включить проигрывание/паузу." + scrub_playback: "Перемотка назад и вперед во времени." # single_scrub_playback: "Scrub back and forward through time by a single frame." # scrub_execution: "Scrub through current spell execution." -# toggle_debug: "Toggle debug display." -# toggle_grid: "Toggle grid overlay." + toggle_debug: "Включить отображение отладки." + toggle_grid: "Включить наложение сетки." # toggle_pathfinding: "Toggle pathfinding overlay." # beautify: "Beautify your code by standardizing its formatting." # move_wizard: "Move your Wizard around the level." @@ -448,7 +448,7 @@ module.exports = nativeDescription: "русский", englishDescription: "Russi av_entities_sub_title: "Сущности" av_entities_users_url: "Пользователи" av_entities_active_instances_url: "Активные экземпляры" -# av_entities_employer_list_url: "Employer List" + av_entities_employer_list_url: "Список работодателей" av_other_sub_title: "Другое" av_other_debug_base_url: "База (для отладки base.jade)" u_title: "Список пользователей" @@ -514,9 +514,9 @@ module.exports = nativeDescription: "русский", englishDescription: "Russi new_article_title: "Создать новую статью" new_thang_title: "Создать новый тип объектов" new_level_title: "Создать новый уровень" -# new_article_title_login: "Log In to Create a New Article" + new_article_title_login: "Войти чтобы создать новую статью" # new_thang_title_login: "Log In to Create a New Thang Type" -# new_level_title_login: "Log In to Create a New Level" + new_level_title_login: "Войти чтобы создать новый уровень" # new_achievement_title: "Create a New Achievement" # new_achievement_title_login: "Log In to Create a New Achievement" article_search_title: "Искать статьи" @@ -815,8 +815,8 @@ module.exports = nativeDescription: "русский", englishDescription: "Russi # prizes: "Prizes" # total_value: "Total Value" # in_cash: "in cash" -# custom_wizard: "Custom CodeCombat Wizard" -# custom_avatar: "Custom CodeCombat avatar" + custom_wizard: "Изменить CodeCombat волшебника" + custom_avatar: "Изменить CodeCombat аватар" # heap: "for six months of \"Startup\" access" # credits: "credits" # one_month_coupon: "coupon: choose either Rails or HTML" @@ -873,7 +873,7 @@ module.exports = nativeDescription: "русский", englishDescription: "Russi # thangs: "Thangs" # level_session: "Your Session" # opponent_session: "Opponent Session" -# article: "Article" + article: "Статья" # user_names: "User Names" # thang_names: "Thang Names" files: "Файлы" From 1fee6c7186ea567c1801ddd2a262a30ce52fca10 Mon Sep 17 00:00:00 2001 From: Philippe Rigovanov Date: Mon, 23 Jun 2014 02:10:40 +0400 Subject: [PATCH 002/106] Update server.coffee Removed unnecessary return statement in server.coffee. Functions will always return their final value. --- server.coffee | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/server.coffee b/server.coffee index 6021f2865..c59890489 100644 --- a/server.coffee +++ b/server.coffee @@ -12,7 +12,7 @@ module.exports.startServer = -> app = createAndConfigureApp() http.createServer(app).listen(app.get('port')) log.info("Express SSL server listening on port " + app.get('port')) - return app + app createAndConfigureApp = -> serverSetup.setupLogging() From f2898e3bc0291c139cb059e096cd36956f0cc8d4 Mon Sep 17 00:00:00 2001 From: Philippe Rigovanov Date: Thu, 26 Jun 2014 00:56:41 +0400 Subject: [PATCH 003/106] Update diplomat.jade added myself to diplomats --- app/templates/contribute/diplomat.jade | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/templates/contribute/diplomat.jade b/app/templates/contribute/diplomat.jade index 845da167d..e2e6a756c 100644 --- a/app/templates/contribute/diplomat.jade +++ b/app/templates/contribute/diplomat.jade @@ -72,7 +72,7 @@ block content li Slovak - Anon li Persian - Reza Habibi (Rehb) li Czech - vanous - li Russian - fess89, ser-storchak, Mr A + li Russian - fess89, ser-storchak, Mr A, a1ip li Ukrainian - fess89 li Italian - flauta li Norwegian - bardeh From e00959a885d07b884cff5c6cb4908eb8c8ed3ad2 Mon Sep 17 00:00:00 2001 From: Darredevil Date: Thu, 26 Jun 2014 02:09:25 +0300 Subject: [PATCH 004/106] Added joke tip --- app/templates/play/level/level_loading.jade | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/app/templates/play/level/level_loading.jade b/app/templates/play/level/level_loading.jade index 9cfc3622d..89e652a00 100644 --- a/app/templates/play/level/level_loading.jade +++ b/app/templates/play/level/level_loading.jade @@ -25,6 +25,7 @@ strong.tip(data-i18n='play_level.tip_impossible') It always seems impossible until it's done. - Nelson Mandela strong.tip.rare(data-i18n='play_level.tip_baby_coders') In the future, even babies will be Archmages. + strong.tip.rare(data-i18n='play_level.tip_joke') Q: How many programmers does it take to change a light bulb? A: None, it's a hardware problem. strong.tip.rare(data-i18n='play_level.tip_morale_improves') Loading will continue until morale improves. strong.tip.rare(data-i18n='play_level.tip_all_species') We believe in equal opportunities to learn programming for all species. strong.tip.rare(data-i18n='play_level.tip_reticulating') Reticulating spines. @@ -42,4 +43,4 @@ span= me.get('name') || 'Anoner' .errors - \ No newline at end of file + From e138d2eed61ae264264e0601f7ce282834dccd2d Mon Sep 17 00:00:00 2001 From: Philippe Rigovanov Date: Fri, 27 Jun 2014 04:11:46 +0400 Subject: [PATCH 005/106] Update ru.coffee With fixes from [M-r-A](https://github.com/M-r-A) --- app/locale/ru.coffee | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/app/locale/ru.coffee b/app/locale/ru.coffee index 829df6a88..894370bf9 100644 --- a/app/locale/ru.coffee +++ b/app/locale/ru.coffee @@ -286,7 +286,7 @@ module.exports = nativeDescription: "русский", englishDescription: "Russi projects_header: "Добавьте 3 проекта" projects_header_2: "Проекты (3 самых лучших)" # projects_blurb: "Highlight your projects to amaze employers." - project_name: "Название Проекта" + project_name: "Название проекта" # project_name_help: "What was the project called?" project_description: "Описание" # project_description_help: "Briefly describe the project." @@ -302,7 +302,7 @@ module.exports = nativeDescription: "русский", englishDescription: "Russi # what_blurb: "CodeCombat is a multiplayer browser programming game. Players write code to control their forces in battle against other developers. We support JavaScript, Python, Lua, Clojure, CoffeeScript, and Io." # who: "Who Are the Players?" # who_blurb: "CodeCombateers are software developers who enjoy using their programming skills to play games. They range from college seniors at top 20 engineering programs to 20-year industry veterans." - how: "Как Мы Находим Разработчиков?" + how: "Как мы находим разработчиков?" # how_blurb: "We host competitive tournaments to attract competitive software engieneers. We then use in-house algorithms to identify the best players among the top 5% of tournament winners." # why: "Why Hire Through Us?" # why_blurb_1: "We will save you time. Every CodeCombateer we feaure is " @@ -433,7 +433,7 @@ module.exports = nativeDescription: "русский", englishDescription: "Russi cast_spell: "Произнести текущее заклинание." # continue_script: "Continue past current script." # skip_scripts: "Skip past all skippable scripts." - toggle_playback: "Включить проигрывание/паузу." + toggle_playback: "Переключить проигрывание/паузу." scrub_playback: "Перемотка назад и вперед во времени." # single_scrub_playback: "Scrub back and forward through time by a single frame." # scrub_execution: "Scrub through current spell execution." @@ -514,7 +514,7 @@ module.exports = nativeDescription: "русский", englishDescription: "Russi new_article_title: "Создать новую статью" new_thang_title: "Создать новый тип объектов" new_level_title: "Создать новый уровень" - new_article_title_login: "Войти чтобы создать новую статью" + new_article_title_login: "Войти, чтобы создать новую статью" # new_thang_title_login: "Log In to Create a New Thang Type" new_level_title_login: "Войти чтобы создать новый уровень" # new_achievement_title: "Create a New Achievement" @@ -815,8 +815,8 @@ module.exports = nativeDescription: "русский", englishDescription: "Russi # prizes: "Prizes" # total_value: "Total Value" # in_cash: "in cash" - custom_wizard: "Изменить CodeCombat волшебника" - custom_avatar: "Изменить CodeCombat аватар" + custom_wizard: "Изменить волшебника CodeCombat" + custom_avatar: "Изменить аватар CodeCombat" # heap: "for six months of \"Startup\" access" # credits: "credits" # one_month_coupon: "coupon: choose either Rails or HTML" From dd6209cd998524db524790c1e7d41755e366a888 Mon Sep 17 00:00:00 2001 From: Philippe Rigovanov Date: Fri, 27 Jun 2014 04:33:05 +0400 Subject: [PATCH 006/106] Update ru.coffee With @M-r-A fixes --- app/locale/ru.coffee | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/app/locale/ru.coffee b/app/locale/ru.coffee index 894370bf9..1305e22b1 100644 --- a/app/locale/ru.coffee +++ b/app/locale/ru.coffee @@ -264,7 +264,7 @@ module.exports = nativeDescription: "русский", englishDescription: "Russi # work_blurb: "List your relevant work experience, most recent first." # work_employer: "Employer" # work_employer_help: "Name of your employer." -# work_role: "Job Title" + work_role: "Должность" # work_role_help: "What was your job title or role?" work_duration: "Продолжительность" # work_duration_help: "When did you hold this gig?" @@ -275,7 +275,7 @@ module.exports = nativeDescription: "русский", englishDescription: "Russi # education_blurb: "List your academic ordeals." # education_school: "School" # education_school_help: "Name of your school." -# education_degree: "Degree" + education_degree: "Степень" # education_degree_help: "What was your degree and field of study?" # education_duration: "Dates" # education_duration_help: "When?" @@ -871,7 +871,7 @@ module.exports = nativeDescription: "русский", englishDescription: "Russi components: "Компоненты" # thang: "Thang" # thangs: "Thangs" -# level_session: "Your Session" + level_session: "Ваша сессия" # opponent_session: "Opponent Session" article: "Статья" # user_names: "User Names" From 08a9b4f05b558b86c7de7b0e57c02f6e9ddb0c52 Mon Sep 17 00:00:00 2001 From: Imperadeiro98 Date: Thu, 3 Jul 2014 13:55:50 +0100 Subject: [PATCH 007/106] Update pt-PT.coffee --- app/locale/pt-PT.coffee | 46 ++++++++++++++++++++--------------------- 1 file changed, 23 insertions(+), 23 deletions(-) diff --git a/app/locale/pt-PT.coffee b/app/locale/pt-PT.coffee index 82293b01e..1c1a905b1 100644 --- a/app/locale/pt-PT.coffee +++ b/app/locale/pt-PT.coffee @@ -3,37 +3,37 @@ module.exports = nativeDescription: "Português europeu", englishDescription: "P loading: "A carregar..." saving: "A guardar..." sending: "A enviar..." -# send: "Send" + send: "Enviar" cancel: "Cancelar" save: "Guardar" -# publish: "Publish" - create: "Create" + publish: "Publicar" + create: "Criar" delay_1_sec: "1 segundo" delay_3_sec: "3 segundos" delay_5_sec: "5 segundos" manual: "Manual" - fork: "Fork" +# fork: "Fork" play: "Jogar" -# retry: "Retry" -# watch: "Watch" -# unwatch: "Unwatch" -# submit_patch: "Submit Patch" + retry: "Tentar novamente" +# watch: "Watch" +# unwatch: "Unwatch" +# submit_patch: "Submit Patch" -# units: -# second: "second" -# seconds: "seconds" -# minute: "minute" -# minutes: "minutes" -# hour: "hour" -# hours: "hours" -# day: "day" -# days: "days" -# week: "week" -# weeks: "weeks" -# month: "month" -# months: "months" -# year: "year" -# years: "years" + units: +# second: "second" +# seconds: "seconds" +# minute: "minute" +# minutes: "minutes" +# hour: "hour" +# hours: "hours" +# day: "day" +# days: "days" +# week: "week" +# weeks: "weeks" +# month: "month" +# months: "months" +# year: "year" +# years: "years" modal: close: "Fechar" From 3b04343034ed04ffde4b69c99f682331eec1ff58 Mon Sep 17 00:00:00 2001 From: Imperadeiro98 Date: Thu, 3 Jul 2014 14:06:40 +0100 Subject: [PATCH 008/106] Update pt-PT.coffee --- app/locale/pt-PT.coffee | 50 ++++++++++++++++++++--------------------- 1 file changed, 25 insertions(+), 25 deletions(-) diff --git a/app/locale/pt-PT.coffee b/app/locale/pt-PT.coffee index 1c1a905b1..db9a8fe60 100644 --- a/app/locale/pt-PT.coffee +++ b/app/locale/pt-PT.coffee @@ -20,20 +20,20 @@ module.exports = nativeDescription: "Português europeu", englishDescription: "P # submit_patch: "Submit Patch" units: -# second: "second" -# seconds: "seconds" -# minute: "minute" -# minutes: "minutes" -# hour: "hour" -# hours: "hours" -# day: "day" -# days: "days" -# week: "week" -# weeks: "weeks" -# month: "month" -# months: "months" -# year: "year" -# years: "years" + second: "segundo" + seconds: "segundos" + minute: "minuto" + minutes: "minutos" + hour: "hora" + hours: "horas" + day: "dia" + days: "dias" + week: "semana" + weeks: "semanas" + month: "mês" + months: "meses" + year: "ano" + years: "anos" modal: close: "Fechar" @@ -43,42 +43,42 @@ module.exports = nativeDescription: "Português europeu", englishDescription: "P page_not_found: "Página não encontrada" nav: - play: "Jogar" -# community: "Community" + play: "Níveis" + community: "Comunidade" editor: "Editor" blog: "Blog" forum: "Fórum" -# account: "Account" + account: "Conta" admin: "Administrador" home: "Início" contribute: "Contribuir" legal: "Legal" about: "Sobre" - contact: "Contacto" + contact: "Contacte" twitter_follow: "Seguir" employers: "Patrões" versions: save_version_title: "Guardar Nova Versão" new_major_version: "Nova Versão Principal" - cla_prefix: "Para guardar as alterações, precisas concordar com o nosso" + cla_prefix: "Para guardar as alterações, precisa de concordar com o nosso" cla_url: "CLA" cla_suffix: "." cla_agree: "EU CONCORDO" login: - sign_up: "Criar conta" - log_in: "Iniciar sessão" -# logging_in: "Logging In" + sign_up: "Criar Conta" + log_in: "Iniciar Sessão" + logging_in: "A Iniciar Sessão" log_out: "Sair" recover: "recuperar conta" recover: - recover_account_title: "Recuperar conta" - send_password: "Recuperar password" + recover_account_title: "Recuperar Conta" + send_password: "Enviar Password de Recuperação" signup: - create_account_title: "Cria uma conta para guardar o teu progresso." +# create_account_title: "Create Account to Save Progress" description: "É grátis. Só precisamos de umas coisas e fica tudo pronto:" email_announcements: "Receber anúncios por e-mail" coppa: "13+ ou não-EUA " From dbdd8c672cac82d4d310c96876bc4221d1a65138 Mon Sep 17 00:00:00 2001 From: Imperadeiro98 Date: Thu, 3 Jul 2014 14:11:30 +0100 Subject: [PATCH 009/106] Update pt-PT.coffee --- app/locale/pt-PT.coffee | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/locale/pt-PT.coffee b/app/locale/pt-PT.coffee index db9a8fe60..e268a325c 100644 --- a/app/locale/pt-PT.coffee +++ b/app/locale/pt-PT.coffee @@ -78,7 +78,7 @@ module.exports = nativeDescription: "Português europeu", englishDescription: "P send_password: "Enviar Password de Recuperação" signup: -# create_account_title: "Create Account to Save Progress" + create_account_title: "Criar uma conta para guardar o teu progresso" description: "É grátis. Só precisamos de umas coisas e fica tudo pronto:" email_announcements: "Receber anúncios por e-mail" coppa: "13+ ou não-EUA " From b5ef1742f45897a2ba66d3e9b0ee1dfa706b1f6c Mon Sep 17 00:00:00 2001 From: Imperadeiro98 Date: Sat, 5 Jul 2014 19:11:06 +0100 Subject: [PATCH 010/106] Update pt-PT.coffee --- app/locale/pt-PT.coffee | 84 ++++++++++++++++++++--------------------- 1 file changed, 42 insertions(+), 42 deletions(-) diff --git a/app/locale/pt-PT.coffee b/app/locale/pt-PT.coffee index e268a325c..4f9bd57cc 100644 --- a/app/locale/pt-PT.coffee +++ b/app/locale/pt-PT.coffee @@ -78,53 +78,53 @@ module.exports = nativeDescription: "Português europeu", englishDescription: "P send_password: "Enviar Password de Recuperação" signup: - create_account_title: "Criar uma conta para guardar o teu progresso" - description: "É grátis. Só precisamos de umas coisas e fica tudo pronto:" + create_account_title: "Criar Conta para Guardar Progresso" + description: "É grátis. Só são necessárias umas coisas e fica tudo pronto:" email_announcements: "Receber anúncios por e-mail" coppa: "13+ ou não-EUA " coppa_why: "(Porquê?)" - creating: "A criar conta..." + creating: "A Criar Conta..." sign_up: "Registar" log_in: "iniciar sessão com palavra-passe" -# social_signup: "Or, you can sign up through Facebook or G+:" -# required: "You need to log in before you can go that way." + social_signup: "Ou pode registar-se através do Facebook ou do Google+:" + required: "Precisa de iniciar sessão antes de prosseguir dessa forma." home: slogan: "Aprende a Programar ao Jogar um Jogo" - no_ie: "O CodeCombat não corre em Internet Explorer 9 ou anterior. Desculpa!" - no_mobile: "O CodeCombat não foi desenhado para dispositivos móveis e pode não funcionar!" + no_ie: "O CodeCombat não funciona no Internet Explorer 9 ou anterior. Desculpe!" + no_mobile: "O CodeCombat não foi feito para dispositivos móveis e pode não funcionar!" play: "Jogar" - old_browser: "Ups, o teu browser é demasiado antigo para correr o CodeCombat. Desculpa!" - old_browser_suffix: "Mesmo assim podes tentar, mas provavelmente não vai funcionar." + old_browser: "Ups, o seu navegador é demasiado antigo para que o CodeCombat funcione. Desculpe!" + old_browser_suffix: "Mesmo assim pode tentar, mas provavelmente não irá funcionar." campaign: "Campanha" for_beginners: "Para Iniciantes" - multiplayer: "Multiplayer" + multiplayer: "Multijogador" for_developers: "Para Programadores" play: - choose_your_level: "Escolhe o Teu Nível" - adventurer_prefix: "Podes saltar para um dos níveis abaixo, ou discutir os níveis " - adventurer_forum: "no fórum de Aventureiro" + choose_your_level: "Escolha o Seu Nível" + adventurer_prefix: "Pode saltar para um dos níveis abaixo, ou discutir os níveis no " + adventurer_forum: "fórum do Aventureiro" adventurer_suffix: "." campaign_beginner: "Campanha para Iniciantes" - campaign_beginner_description: "... onde aprendes a feitiçaria da programação." - campaign_dev: "Níveis mais Difíceis" - campaign_dev_description: "... onde aprendes a interface enquanto fazes coisas um bocadinho mais difíceis." + campaign_beginner_description: "... onde aprende a feitiçaria da programação." + campaign_dev: "Níveis mais Difíceis Aleatórios" + campaign_dev_description: "... onde aprende a interface enquanto faz coisas um bocadinho mais difíceis." campaign_multiplayer: "Arenas Multijogador" - campaign_multiplayer_description: "... onde programas frente-a-frente contra outros jogadores." + campaign_multiplayer_description: "... onde programa frente-a-frente contra outros jogadores." campaign_player_created: "Criados por Jogadores" - campaign_player_created_description: "... onde combates contra a criatividade dos teus colegas Feiticeiros Artesãos." + campaign_player_created_description: "... onde combate contra a criatividade dos seus colegas Feiticeiros Artesãos." level_difficulty: "Dificuldade: " - play_as: "Jogar como " + play_as: "Jogar Como" spectate: "Observar" contact: - contact_us: "Contactar o CodeCombat" - welcome: "É bom ter notícias tuas! Usa este formulário para nos enviares um e-mail." - contribute_prefix: "Se estás interessado em contribuir, dá uma olhadela à nossa " + contact_us: "Contacte o CodeCombat" + welcome: "É bom ter notícias suas! Use este formulário para nos enviar um e-mail. " + contribute_prefix: "Se está interessado em contribuir, dê uma olhadela à nossa " contribute_page: "página de contribuição" contribute_suffix: "!" - forum_prefix: "Para algo público, por favor, usa o " + forum_prefix: "Para algo público, por favor use o " forum_page: "nosso fórum" forum_suffix: " como alternativa." send: "Enviar Feedback" @@ -132,42 +132,42 @@ module.exports = nativeDescription: "Português europeu", englishDescription: "P # recruitment_reminder: "Use this form to reach out to candidates you are interested in interviewing. Remember that CodeCombat charges 15% of first-year salary. The fee is due upon hiring the employee and is refundable for 90 days if the employee does not remain employed. Part time, remote, and contract employees are free, as are interns." diplomat_suggestion: - title: "Ajuda a traduzir o CodeCombat!" - sub_heading: "Precisamos das tuas habilidades linguísticas." - pitch_body: "Desenvolvemos o CodeCombat em Inglês, mas já temos jogadores em todo o mundo. Muitos deles querem jogar em Português e não falam Inglês, por isso, se sabes falar ambas, por favor considera registares-te como Diplomata para ajudares a traduzir o website do CodeCombat e todos os níveis para Português." - missing_translations: "Enquanto não conseguimos traduzir tudo para Português, irás ver em Inglês o que não estiver disponível em Português." - learn_more: "Sabe mais sobre ser um Diplomata" - subscribe_as_diplomat: "Subscrever como Diplomata" + title: "Ajude a traduzir o CodeCombat!" + sub_heading: "Precisamos das suas habilidades linguísticas." + pitch_body: "Desenvolvemos o CodeCombat em Inglês, mas já temos jogadores em todo o mundo. Muitos deles querem jogar em Português e não falam Inglês, por isso, se sabe falar ambas, por favor considere registar-se como Diplomata para ajudar a traduzir o website do CodeCombat e todos os níveis para Português." + missing_translations: "Enquanto não conseguirmos traduzir tudo para Português, irá ver em Inglês o que não estiver disponível em Português." + learn_more: "Saiba mais sobre ser um Diplomata" + subscribe_as_diplomat: "Subscreva-se como Diplomata" wizard_settings: - title: "Definições do Wizard" - customize_avatar: "Altera o teu Avatar" -# active: "Active" -# color: "Color" -# group: "Group" + title: "Definições do Feiticeiro" + customize_avatar: "Personalize o Seu Avatar" + active: "Ativo" + color: "Cor" + group: "Grupo" clothes: "Roupas" trim: "Pormenores" cloud: "Nuvem" -# team: "Team" + team: "Equipa" spell: "Feitiço" boots: "Botas" - hue: "Matiz" + hue: "Tom" saturation: "Saturação" lightness: "Brilho" account_settings: title: "Definições da Conta" - not_logged_in: "Inicia sessão ou cria uma conta para alterares as tuas definições." - autosave: "As alterações guardam-se automaticamente" + not_logged_in: "Inicie sessão ou crie uma conta para alterar as suas definições." + autosave: "Alterações Guardam Automaticamente" me_tab: "Eu" picture_tab: "Fotografia" -# upload_picture: "Upload a picture" + upload_picture: "Anexar uma fotografia" wizard_tab: "Feiticeiro" password_tab: "Palavra-passe" emails_tab: "E-mails" - admin: "Admin" - wizard_color: "Cor das roupas do feiticeiro" - new_password: "Nova palavra-passe" + admin: "Administrador" + wizard_color: "Cor das Roupas do Feiticeiro" + new_password: "Nova Palavra-passe" new_password_verify: "Verificar" email_subscriptions: "Subscrições de E-mail" email_announcements: "Anúncios" From cc8fec92831a7119b49774af3aea5e8f44d4d74d Mon Sep 17 00:00:00 2001 From: Imperadeiro98 Date: Sat, 5 Jul 2014 19:11:58 +0100 Subject: [PATCH 011/106] Update pt-PT.coffee --- app/locale/pt-PT.coffee | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/locale/pt-PT.coffee b/app/locale/pt-PT.coffee index 4f9bd57cc..dc5b0cfdf 100644 --- a/app/locale/pt-PT.coffee +++ b/app/locale/pt-PT.coffee @@ -17,7 +17,7 @@ module.exports = nativeDescription: "Português europeu", englishDescription: "P retry: "Tentar novamente" # watch: "Watch" # unwatch: "Unwatch" -# submit_patch: "Submit Patch" + submit_patch: "Submeter Versão" units: second: "segundo" From 94a6e3961b6b7abed8c59c194f112870952779b0 Mon Sep 17 00:00:00 2001 From: Scott Erickson Date: Sat, 5 Jul 2014 13:54:41 -0700 Subject: [PATCH 012/106] Added a button in the level editor to choose which team to play when editing a ladder level. --- app/templates/editor/level/edit.jade | 17 ++++++++++++++--- app/views/editor/level/edit.coffee | 3 +++ 2 files changed, 17 insertions(+), 3 deletions(-) diff --git a/app/templates/editor/level/edit.jade b/app/templates/editor/level/edit.jade index c2dfbac6f..d04b8f4bd 100644 --- a/app/templates/editor/level/edit.jade +++ b/app/templates/editor/level/edit.jade @@ -47,9 +47,20 @@ block header a span.glyphicon-floppy-disk.glyphicon - li(title="⌃↩ or ⌘↩: Play preview of current level")#play-button - a - span.glyphicon-play.glyphicon + if level.get('type') === 'ladder' + li.dropdown + a(data-toggle='dropdown') + span.glyphicon-play.glyphicon + ul.dropdown-menu + li.dropdown-header Play As Which Team? + li + for team in ['humans', 'ogres'] + a.play-with-team-button(data-team=team)= team + + else + li(title="⌃↩ or ⌘↩: Play preview of current level")#play-button + a + span.glyphicon-play.glyphicon li.dropdown a(data-toggle='dropdown') span.glyphicon-chevron-down.glyphicon diff --git a/app/views/editor/level/edit.coffee b/app/views/editor/level/edit.coffee index c81e7f708..eb9e879c0 100644 --- a/app/views/editor/level/edit.coffee +++ b/app/views/editor/level/edit.coffee @@ -25,6 +25,7 @@ module.exports = class EditorLevelView extends View events: 'click #play-button': 'onPlayLevel' + 'click .play-with-team-button': 'onPlayLevel' 'click #commit-level-start-button': 'startCommittingLevel' 'click #fork-level-start-button': 'startForkingLevel' 'click #level-history-button': 'showVersionHistory' @@ -77,6 +78,7 @@ module.exports = class EditorLevelView extends View @$el.find('#level-watch-button').find('> span').toggleClass('secret') if @level.watching() onPlayLevel: (e) -> + team = $(e.target).data('team') sendLevel = => @childWindow.Backbone.Mediator.publish 'level-reload-from-data', level: @level, supermodel: @supermodel if @childWindow and not @childWindow.closed @@ -85,6 +87,7 @@ module.exports = class EditorLevelView extends View else # Create a new Window with a blank LevelView scratchLevelID = @level.get('slug') + '?dev=true' + scratchLevelID += "&team=#{team}" if team @childWindow = window.open("/play/level/#{scratchLevelID}", 'child_window', 'width=1024,height=560,left=10,top=10,location=0,menubar=0,scrollbars=0,status=0,titlebar=0,toolbar=0', true) @childWindow.onPlayLevelViewLoaded = (e) => sendLevel() # still a hack @childWindow.focus() From 183b744d078e27eac029e260491d9ebc5ebad638 Mon Sep 17 00:00:00 2001 From: Imperadeiro98 Date: Sat, 5 Jul 2014 22:10:21 +0100 Subject: [PATCH 013/106] Update pt-PT.coffee --- app/locale/pt-PT.coffee | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/locale/pt-PT.coffee b/app/locale/pt-PT.coffee index dc5b0cfdf..5af00744f 100644 --- a/app/locale/pt-PT.coffee +++ b/app/locale/pt-PT.coffee @@ -56,7 +56,7 @@ module.exports = nativeDescription: "Português europeu", englishDescription: "P about: "Sobre" contact: "Contacte" twitter_follow: "Seguir" - employers: "Patrões" + employers: "Empregadores" versions: save_version_title: "Guardar Nova Versão" From e3bb93c4f57f6c0b9c48299e62deddbb17c6fcda Mon Sep 17 00:00:00 2001 From: Imperadeiro98 Date: Sun, 6 Jul 2014 10:01:55 +0100 Subject: [PATCH 014/106] Update pt-PT.coffee --- app/locale/pt-PT.coffee | 80 ++++++++++++++++++++++------------------- 1 file changed, 43 insertions(+), 37 deletions(-) diff --git a/app/locale/pt-PT.coffee b/app/locale/pt-PT.coffee index 5af00744f..6905f574f 100644 --- a/app/locale/pt-PT.coffee +++ b/app/locale/pt-PT.coffee @@ -103,7 +103,7 @@ module.exports = nativeDescription: "Português europeu", englishDescription: "P play: choose_your_level: "Escolha o Seu Nível" - adventurer_prefix: "Pode saltar para um dos níveis abaixo, ou discutir os níveis no " + adventurer_prefix: "Pode saltar para um dos níveis abaixo ou discutir os níveis no " adventurer_forum: "fórum do Aventureiro" adventurer_suffix: "." campaign_beginner: "Campanha para Iniciantes" @@ -171,32 +171,32 @@ module.exports = nativeDescription: "Português europeu", englishDescription: "P new_password_verify: "Verificar" email_subscriptions: "Subscrições de E-mail" email_announcements: "Anúncios" - email_announcements_description: "Recebe e-mails sobre as últimas novidades e desenvolvimentos no CodeCombat." + email_announcements_description: "Receba e-mails sobre as últimas novidades e desenvolvimentos no CodeCombat." email_notifications: "Notificações" # email_notifications_summary: "Controls for personalized, automatic email notifications related to your CodeCombat activity." -# email_any_notes: "Any Notifications" -# email_any_notes_description: "Disable to stop all activity notification emails." -# email_recruit_notes: "Job Opportunities" -# email_recruit_notes_description: "If you play really well, we may contact you about getting you a (better) job." - contributor_emails: "E-mails para Contribuintes" + email_any_notes: "Quaisquer Notificações" + email_any_notes_description: "Desative para parar de receber todos os e-mails de notificação de atividade." + email_recruit_notes: "Oportunidades de Emprego" + email_recruit_notes_description: "Se joga muito bem, podemos contactá-lo para lhe arranjar um (melhor) emprego." + contributor_emails: "Subscrições de E-mail (Contribuintes)" contribute_prefix: "Estamos à procura de pessoas para se juntarem a nós! Visita a " contribute_page: "página de contribuição" - contribute_suffix: " para mais informação." - email_toggle: "Alternar todos" - error_saving: "Erro ao guardar" - saved: "Alterações guardadas" + contribute_suffix: " para mais informações." + email_toggle: "Alternar Todos" + error_saving: "Erro ao Guardar" + saved: "Alterações Guardadas" password_mismatch: "As palavras-passe não coincidem." -# job_profile: "Job Profile" -# job_profile_approved: "Your job profile has been approved by CodeCombat. Employers will be able to see it until you either mark it inactive or it has not been changed for four weeks." -# job_profile_explanation: "Hi! Fill this out, and we will get in touch about finding you a software developer job." -# sample_profile: "See a sample profile" -# view_profile: "View Your Profile" + job_profile: "Perfil de Emprego" + job_profile_approved: "O seu perfil de emprego foi aprovado pelo CodeCombat. Os empregadores poderão vê-lo até que o defina como inativo ou não o tenha alterado à 4 semanas." + job_profile_explanation: "Olá! Preencha isto e entraremos em contacto consigo sobre encontrar um emprego de desenvolvedor de software para si." + sample_profile: "Veja um exemplo de perfil" + view_profile: "Veja o Seu Perfil" account_profile: -# settings: "Settings" -# edit_profile: "Edit Profile" -# done_editing: "Done Editing" - profile_for_prefix: "Perfil de " + settings: "Definições" + edit_profile: "Editar Perfil" + done_editing: "Concluir a Edição" + profile_for_prefix: "Perfil para " profile_for_suffix: "" # featured: "Featured" # not_featured: "Not Featured" @@ -282,6 +282,7 @@ module.exports = nativeDescription: "Português europeu", englishDescription: "P # education_description: "Description" # education_description_help: "Highlight anything about this educational experience. (140 chars; optional)" # our_notes: "Our Notes" +# remarks: "Remarks" # projects: "Projects" # projects_header: "Add 3 projects" # projects_header_2: "Projects (Top 3)" @@ -296,33 +297,38 @@ module.exports = nativeDescription: "Português europeu", englishDescription: "P # project_link_help: "Link to the project." # player_code: "Player Code" -# employers: -# want_to_hire_our_players: "Hire CodeCombat Players" -# what: "What is CodeCombat?" + employers: + want_to_hire_our_players: "Contratar Jogadores do CodeCombat" + what: "O Que é o CodeCombat?" # what_blurb: "CodeCombat is a multiplayer browser programming game. Players write code to control their forces in battle against other developers. We support JavaScript, Python, Lua, Clojure, CoffeeScript, and Io." -# who: "Who Are the Players?" + who: "Quem São os Jogadores?" # who_blurb: "CodeCombateers are software developers who enjoy using their programming skills to play games. They range from college seniors at top 20 engineering programs to 20-year industry veterans." -# how: "How Do We Find Developers?" + how: "Como Encontramos Desenvolvedores?" # how_blurb: "We host competitive tournaments to attract competitive software engieneers. We then use in-house algorithms to identify the best players among the top 5% of tournament winners." -# why: "Why Hire Through Us?" + why: "Porquê Contratar Através de Nós?" # why_blurb_1: "We will save you time. Every CodeCombateer we feaure is " +# cost: "How much do we charge?" +# cost_blurb: "We charge 15% of first year's salary and offer a 100% money back guarantee for 90 days. We don't charge for candidates who are already actively being interviewed at your company." +# response: "What's the response rate?" +# response_blurb: "Almost every developer you contact on CodeCombat will respond to inquires whether or not they want to interivew. If you would like help finding a candidate for your role, we can make recommendations." # why_blurb_2: "looking for work" # why_blurb_3: ", has " # why_blurb_4: "demonstrated top notch technical skills" # why_blurb_5: ", and has been " # why_blurb_6: "personally screened by us" # why_blurb_7: ". Stop screening and start hiring." -# see_candidates: "Click here to see our candidates" -# candidate_name: "Name" -# candidate_location: "Location" -# candidate_looking_for: "Looking For" -# candidate_role: "Role" -# candidate_top_skills: "Top Skills" -# candidate_years_experience: "Yrs Exp" -# candidate_last_updated: "Last Updated" -# featured_developers: "Featured Developers" -# other_developers: "Other Developers" -# inactive_developers: "Inactive Developers" + see_candidates: "Clique aqui para ver os nossos candidatos" + candidate_name: "Nome" + candidate_location: "Localização" + candidate_looking_for: "À Procura de" + candidate_role: "Cargo" + candidate_top_skills: "Principais Habilidades" + candidate_years_experience: "Anos de Experiência" + candidate_last_updated: "Última Vez Atualizado" + candidate_who: "Quem" + featured_developers: "Desenvolvedores em Destaque" + other_developers: "Outros Desenvolvedores" + inactive_developers: "Desenvolvedores Inativos" play_level: done: "Concluir" From 21c180e2060b7c6d4f3f514ed474b2b248ccdc8f Mon Sep 17 00:00:00 2001 From: Imperadeiro98 Date: Sun, 6 Jul 2014 11:11:44 +0100 Subject: [PATCH 015/106] Update pt-PT.coffee --- app/locale/pt-PT.coffee | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/locale/pt-PT.coffee b/app/locale/pt-PT.coffee index 6905f574f..9b6321e6d 100644 --- a/app/locale/pt-PT.coffee +++ b/app/locale/pt-PT.coffee @@ -116,7 +116,7 @@ module.exports = nativeDescription: "Português europeu", englishDescription: "P campaign_player_created_description: "... onde combate contra a criatividade dos seus colegas Feiticeiros Artesãos." level_difficulty: "Dificuldade: " play_as: "Jogar Como" - spectate: "Observar" + spectate: "Espectar" contact: contact_us: "Contacte o CodeCombat" From cc0e81882499591b2fca8f1cf6a3fe6d402306a2 Mon Sep 17 00:00:00 2001 From: Inez KEMENES Date: Sun, 6 Jul 2014 16:26:51 +0200 Subject: [PATCH 016/106] Update hu.coffee --- app/locale/hu.coffee | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/app/locale/hu.coffee b/app/locale/hu.coffee index 24c6fe62a..f84949111 100644 --- a/app/locale/hu.coffee +++ b/app/locale/hu.coffee @@ -187,13 +187,13 @@ module.exports = nativeDescription: "magyar", englishDescription: "Hungarian", t saved: "Változtatások elmentve" password_mismatch: "A jelszavak nem egyeznek." job_profile: "Munkaköri leírás" - job_profile_approved: "Munkaköri leírásodat a Codecombat jóváhagyta. Munkaadók mindaddig láthatják, amíg meg nem jelölöd inaktíként, vagy négy hétig,ha addig nem kerül megváltoztatásra." + job_profile_approved: "Munkaköri leírásodat a Codecombat jóváhagyta. Munkaadók mindaddig láthatják, amíg meg nem jelölöd inaktívként, vagy négy hétig, ha addig nem kerül megváltoztatásra." job_profile_explanation: "Szió! Töltsd ki ezt és majd kapcsolatba lépünk veled és keresünk neked egy szoftware fejlesztői állást." sample_profile: "Nézz meg egy mintaprofilt!" view_profile: "Nézd meg a profilodat!" account_profile: -# settings: "Settings" + settings: "Beállítások" edit_profile: "Szerkeszd meg a profilodat" done_editing: "Szerkesztés kész" profile_for_prefix: "Profil " @@ -205,10 +205,10 @@ module.exports = nativeDescription: "magyar", englishDescription: "Hungarian", t contact: "Kapcsolat" active: "Azonnali interjú ajánlatokat keresek" inactive: "Most éppen nem keresek interjú ajánlatokat" -# complete: "complete" + complete: "befejezve" next: "Következő" next_city: "Város?" -# next_country: "pick your country." + next_country: "válaszd ki az országot." next_name: "Név?" next_short_description: "adj egy rövid leírást." # next_long_description: "describe your desired position." @@ -231,16 +231,16 @@ module.exports = nativeDescription: "magyar", englishDescription: "Hungarian", t # basics_active_help: "Want interview offers right now?" # basics_job_title: "Desired Job Title" # basics_job_title_help: "What role are you looking for?" -# basics_city: "City" -# basics_city_help: "City you want to work in (or live in now)." -# basics_country: "Country" + basics_city: "Város" + basics_city_help: "A város, ahol dolgozni akarsz (vagy ahol élsz)" + basics_country: "Ország" # basics_country_help: "Country you want to work in (or live in now)." # basics_visa: "US Work Status" # basics_visa_help: "Are you authorized to work in the US, or do you need visa sponsorship?" # basics_looking_for: "Looking For" -# basics_looking_for_full_time: "Full-time" -# basics_looking_for_part_time: "Part-time" -# basics_looking_for_remote: "Remote" + basics_looking_for_full_time: "Teljes munkaidőben" + basics_looking_for_part_time: "Részmunkaidőben" + basics_looking_for_remote: "Távmunkában" # basics_looking_for_contracting: "Contracting" # basics_looking_for_internship: "Internship" # basics_looking_for_help: "What kind of developer position do you want?" From 37a28cf8265d750092bf636734c5675ac7488de4 Mon Sep 17 00:00:00 2001 From: Scott Erickson Date: Sun, 6 Jul 2014 09:35:28 -0700 Subject: [PATCH 017/106] Tweaked the styling for guides to only center emphasized lines immediately after an image. Made the styling also show up on the level editor. --- app/styles/play/level/modal/docs.sass | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/styles/play/level/modal/docs.sass b/app/styles/play/level/modal/docs.sass index 51be8378d..f0fe9fd43 100644 --- a/app/styles/play/level/modal/docs.sass +++ b/app/styles/play/level/modal/docs.sass @@ -1,4 +1,4 @@ -#docs-modal .modal-dialog +#docs-modal .modal-dialog, #settings-treema .treema-markdown width: 800px .tab-content @@ -11,7 +11,7 @@ display: block margin: 0 auto - em + img + em display: block margin: 0 auto text-align: center From 128008daa159aeb7e5f9e2669a8814bac9d7e931 Mon Sep 17 00:00:00 2001 From: Ruben Vereecken Date: Sun, 6 Jul 2014 21:48:31 +0200 Subject: [PATCH 018/106] Hid the progress bar on load failed --- app/views/kinds/CocoView.coffee | 2 ++ 1 file changed, 2 insertions(+) diff --git a/app/views/kinds/CocoView.coffee b/app/views/kinds/CocoView.coffee index 541d02657..21b432dd7 100644 --- a/app/views/kinds/CocoView.coffee +++ b/app/views/kinds/CocoView.coffee @@ -137,12 +137,14 @@ module.exports = class CocoView extends Backbone.View resourceIndex: r.rid, responseText: r.jqxhr?.responseText })).i18n() + @$el.find('.progress').hide() onRetryResource: (e) -> res = @supermodel.getResource($(e.target).data('resource-index')) # different views may respond to this call, and not all have the resource to reload return unless res and res.isFailed res.load() + @$el.find('.progress').show() $(e.target).closest('.loading-error-alert').remove() # Modals From a2740279bc03e018626cdf6d4e13d3c9a9e5f251 Mon Sep 17 00:00:00 2001 From: Scott Erickson Date: Sun, 6 Jul 2014 15:00:51 -0700 Subject: [PATCH 019/106] Added styling for tables in the guide. --- app/styles/play/level/modal/docs.sass | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/app/styles/play/level/modal/docs.sass b/app/styles/play/level/modal/docs.sass index f0fe9fd43..f126a182d 100644 --- a/app/styles/play/level/modal/docs.sass +++ b/app/styles/play/level/modal/docs.sass @@ -18,4 +18,8 @@ hr border-color: #5c5c5c - width: 80% \ No newline at end of file + width: 80% + + table + width: 80% + margin: 20px 10% \ No newline at end of file From 850712442d1c0481f4b653e228f0384e75959e29 Mon Sep 17 00:00:00 2001 From: Scott Erickson Date: Sun, 6 Jul 2014 15:01:20 -0700 Subject: [PATCH 020/106] Added underscore.string to the worker. --- app/assets/javascripts/workers/worker_world.js | 2 +- config.coffee | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/app/assets/javascripts/workers/worker_world.js b/app/assets/javascripts/workers/worker_world.js index 605ddeacd..78331cbb8 100644 --- a/app/assets/javascripts/workers/worker_world.js +++ b/app/assets/javascripts/workers/worker_world.js @@ -63,7 +63,7 @@ var console = { console.error = console.warn = console.info = console.debug = console.log; self.console = console; -self.importScripts('/javascripts/world.js', '/javascripts/lodash.js', '/javascripts/aether.js'); +self.importScripts('/javascripts/lodash.js', '/javascripts/world.js', '/javascripts/aether.js'); var restricted = ["XMLHttpRequest", "importScripts", "Worker"]; for(var i = 0; i < restricted.length; ++i) { diff --git a/config.coffee b/config.coffee index 697a621de..940a8e688 100644 --- a/config.coffee +++ b/config.coffee @@ -18,6 +18,7 @@ exports.config = |(app[\/\\]lib[\/\\]utils.coffee) |(vendor[\/\\]scripts[\/\\]Box2dWeb-2.1.a.3) |(vendor[\/\\]scripts[\/\\]string_score.js) + |(bower_components[\/\\]underscore.string) )/// 'javascripts/app.js': /^app/ 'javascripts/vendor.js': ///^( From aea1d0e8f2f58ce3b9d86dae583603a53c1aa0ac Mon Sep 17 00:00:00 2001 From: Scott Erickson Date: Sun, 6 Jul 2014 15:01:39 -0700 Subject: [PATCH 021/106] Changed the angel logigng to use info instead of log, to more easily differentiate. --- app/lib/Angel.coffee | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/lib/Angel.coffee b/app/lib/Angel.coffee index 5c079d3b3..4beeffa97 100644 --- a/app/lib/Angel.coffee +++ b/app/lib/Angel.coffee @@ -34,7 +34,7 @@ module.exports = class Angel extends CocoClass # say: debugging stuff, usually off; log: important performance indicators, keep on say: (args...) -> #@log args... - log: (args...) -> console.log "|#{@shared.godNick}'s #{@nick}|", args... + log: (args...) -> console.info "|#{@shared.godNick}'s #{@nick}|", args... testWorker: => return if @destroyed From d9d1d25c3c70fe31c32715e6ec236ab06c7151d3 Mon Sep 17 00:00:00 2001 From: Imperadeiro98 Date: Mon, 7 Jul 2014 13:31:03 +0100 Subject: [PATCH 022/106] Update pt-PT.coffee --- app/locale/pt-PT.coffee | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/locale/pt-PT.coffee b/app/locale/pt-PT.coffee index 9b6321e6d..70e69d186 100644 --- a/app/locale/pt-PT.coffee +++ b/app/locale/pt-PT.coffee @@ -90,7 +90,7 @@ module.exports = nativeDescription: "Português europeu", englishDescription: "P required: "Precisa de iniciar sessão antes de prosseguir dessa forma." home: - slogan: "Aprende a Programar ao Jogar um Jogo" + slogan: "Aprenda a Programar ao Jogar um Jogo" no_ie: "O CodeCombat não funciona no Internet Explorer 9 ou anterior. Desculpe!" no_mobile: "O CodeCombat não foi feito para dispositivos móveis e pode não funcionar!" play: "Jogar" From 3151db6fc5d4c5e73b76b94791fbf9d2507749e7 Mon Sep 17 00:00:00 2001 From: Michael Schmatz Date: Mon, 7 Jul 2014 09:49:13 -0700 Subject: [PATCH 023/106] Hide briefcase when no work history --- app/templates/employers.jade | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/app/templates/employers.jade b/app/templates/employers.jade index 01f6debd7..243d3998a 100644 --- a/app/templates/employers.jade +++ b/app/templates/employers.jade @@ -130,8 +130,9 @@ block content img(src="/images/pages/employer/education.png") | #{curated.education} td.work_column - img(src="/images/pages/employer/briefcase.png") - | #{workHistory} + if workHistory + img(src="/images/pages/employer/briefcase.png") + | #{workHistory} else td Hi From 86a3fbacd10346dda57e2a6d8f9da47b39f001d2 Mon Sep 17 00:00:00 2001 From: Scott Erickson Date: Mon, 7 Jul 2014 10:09:12 -0700 Subject: [PATCH 024/106] Made the CocoCollection more strict about setting the model property. --- app/collections/CocoCollection.coffee | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/app/collections/CocoCollection.coffee b/app/collections/CocoCollection.coffee index 817b0700f..bb051811c 100644 --- a/app/collections/CocoCollection.coffee +++ b/app/collections/CocoCollection.coffee @@ -1,7 +1,12 @@ +CocoModel = require 'models/CocoModel' + module.exports = class CocoCollection extends Backbone.Collection loaded: false + model: null initialize: -> + if not @model + console.error @constructor.name, 'does not have a model defined. This will not do!' super() @once 'sync', => @loaded = true From 12543cf4ddef747f74e5db1424a614de69b50f1c Mon Sep 17 00:00:00 2001 From: Scott Erickson Date: Mon, 7 Jul 2014 10:10:32 -0700 Subject: [PATCH 025/106] Added the foundation of a component docs view. --- app/styles/docs/components.sass | 2 ++ app/templates/docs/components.jade | 6 ++++++ app/views/docs/components_view.coffee | 26 ++++++++++++++++++++++++++ 3 files changed, 34 insertions(+) create mode 100644 app/styles/docs/components.sass create mode 100644 app/templates/docs/components.jade create mode 100644 app/views/docs/components_view.coffee diff --git a/app/styles/docs/components.sass b/app/styles/docs/components.sass new file mode 100644 index 000000000..177b11a39 --- /dev/null +++ b/app/styles/docs/components.sass @@ -0,0 +1,2 @@ +#docs-components-view + color: saddlebrown \ No newline at end of file diff --git a/app/templates/docs/components.jade b/app/templates/docs/components.jade new file mode 100644 index 000000000..20c3afb27 --- /dev/null +++ b/app/templates/docs/components.jade @@ -0,0 +1,6 @@ +extends /templates/base + +block content + ul + for component in components + li= component.get('name') \ No newline at end of file diff --git a/app/views/docs/components_view.coffee b/app/views/docs/components_view.coffee new file mode 100644 index 000000000..f80decee3 --- /dev/null +++ b/app/views/docs/components_view.coffee @@ -0,0 +1,26 @@ +RootView = require 'views/kinds/RootView' +template = require 'templates/docs/components' +CocoCollection = require 'collections/CocoCollection' +LevelComponent = require 'models/LevelComponent' + +class ComponentDocsCollection extends CocoCollection + url: '/db/level.component?project=name,description,dependencies,propertyDocumentation' + model: LevelComponent + +module.exports = class UnnamedView extends RootView + id: 'docs-components-view' + template: template + + constructor: (options) -> + super(options) + @componentDocs = new ComponentDocsCollection() + @supermodel.loadCollection @componentDocs, 'components' + + onLoaded: -> + console.log 'we have the components...', (c.get('name') for c in @componentDocs.models) + super() + + getRenderData: -> + c = super() + c.components = @componentDocs.models + c From b76239b4e9e1c78821da0bde21d1feb7a2b5ec88 Mon Sep 17 00:00:00 2001 From: Michael Schmatz Date: Mon, 7 Jul 2014 10:29:34 -0700 Subject: [PATCH 026/106] Replaced candidate avatars on employer page --- app/models/User.coffee | 4 ++-- app/templates/employers.jade | 2 +- server/users/user_handler.coffee | 2 ++ 3 files changed, 5 insertions(+), 3 deletions(-) diff --git a/app/models/User.coffee b/app/models/User.coffee index 9766a85aa..1086e1373 100644 --- a/app/models/User.coffee +++ b/app/models/User.coffee @@ -21,14 +21,14 @@ module.exports = class User extends CocoModel lang: -> @get('preferredLanguage') or 'en-US' - getPhotoURL: (size=80, useJobProfilePhoto=false) -> + getPhotoURL: (size=80, useJobProfilePhoto=false, useEmployerPageAvatar=false) -> photoURL = if useJobProfilePhoto then @get('jobProfile')?.photoURL else null photoURL ||= @get('photoURL') if photoURL prefix = if photoURL.search(/\?/) is -1 then '?' else '&' return "#{photoURL}#{prefix}s=#{size}" if photoURL.search('http') isnt -1 # legacy return "/file/#{photoURL}#{prefix}s=#{size}" - return "/db/user/#{@id}/avatar?s=#{size}" + return "/db/user/#{@id}/avatar?s=#{size}&employerPageAvatar=#{useEmployerPageAvatar}" @getByID = (id, properties, force) -> {me} = require 'lib/auth' diff --git a/app/templates/employers.jade b/app/templates/employers.jade index 243d3998a..790058be5 100644 --- a/app/templates/employers.jade +++ b/app/templates/employers.jade @@ -112,7 +112,7 @@ block content tr.candidate-row(data-candidate-id=candidate.id, id=candidate.id, class=expired ? "expired" : "") td(rowspan=2) .candidate-picture - img(src=candidate.getPhotoURL(50), alt=profile.name, title=profile.name, width=50) + img(src=candidate.getPhotoURL(50,false,true), alt=profile.name, title=profile.name, width=50) if curated && curated.shortDescription td.candidate-description #{curated.shortDescription} else diff --git a/server/users/user_handler.coffee b/server/users/user_handler.coffee index ac43fda1c..f8b608255 100644 --- a/server/users/user_handler.coffee +++ b/server/users/user_handler.coffee @@ -221,6 +221,8 @@ UserHandler = class UserHandler extends Handler photoURL = document?.get('photoURL') if photoURL photoURL = "/file/#{photoURL}" + else if req.query.employerPageAvatar is "true" + photoURL = @buildGravatarURL document, req.query.s, "/images/pages/employer/anon_user.png" else photoURL = @buildGravatarURL document, req.query.s, req.query.fallback res.redirect photoURL From 03053745804419dc6a17375810b410a7d288fbe8 Mon Sep 17 00:00:00 2001 From: Michael Schmatz Date: Mon, 7 Jul 2014 10:42:16 -0700 Subject: [PATCH 027/106] Add featured field to curation --- app/schemas/models/user.coffee | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/app/schemas/models/user.coffee b/app/schemas/models/user.coffee index a144494e1..b85d9f2bd 100644 --- a/app/schemas/models/user.coffee +++ b/app/schemas/models/user.coffee @@ -147,6 +147,10 @@ UserSchema = c.object {}, title: 'Seniority' type: 'string' enum: ['College Student', 'Recent Grad', 'Junior', 'Senior', 'Management'] + featured: + title: 'Featured' + type: 'boolean' + description: 'Should this candidate be prominently featured on the site?' jobProfileApproved: {title: 'Job Profile Approved', type: 'boolean', description: 'Whether your profile has been approved by CodeCombat.'} jobProfileNotes: {type: 'string', maxLength: 1000, title: 'Our Notes', description: 'CodeCombat\'s notes on the candidate.', format: 'markdown', default: ''} employerAt: c.shortString {description: 'If given employer permissions to view job candidates, for which employer?'} From 02890d5a6da009f81fa421eeba4e32fb88f73f49 Mon Sep 17 00:00:00 2001 From: Scott Erickson Date: Mon, 7 Jul 2014 14:22:11 -0700 Subject: [PATCH 028/106] Enabled edits to components by non-admins (creation is still off limits). --- server/levels/components/level_component_handler.coffee | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/server/levels/components/level_component_handler.coffee b/server/levels/components/level_component_handler.coffee index 810fa3e86..889619d8d 100644 --- a/server/levels/components/level_component_handler.coffee +++ b/server/levels/components/level_component_handler.coffee @@ -22,7 +22,7 @@ LevelComponentHandler = class LevelComponentHandler extends Handler props hasAccess: (req) -> - req.method is 'GET' or req.user?.isAdmin() + req.method in ['GET', 'PUT'] or req.user?.isAdmin() module.exports = new LevelComponentHandler() From 2a309c149ce896a5fe3674201e8240fdb8459bc1 Mon Sep 17 00:00:00 2001 From: Scott Erickson Date: Mon, 7 Jul 2014 15:19:22 -0700 Subject: [PATCH 029/106] Enabled submitting patches for thangs and articles. --- app/templates/editor/article/edit.jade | 3 +++ app/views/editor/article/edit.coffee | 8 +++++--- app/views/editor/thang/edit.coffee | 4 ++-- 3 files changed, 10 insertions(+), 5 deletions(-) diff --git a/app/templates/editor/article/edit.jade b/app/templates/editor/article/edit.jade index d61460e60..f882cea08 100644 --- a/app/templates/editor/article/edit.jade +++ b/app/templates/editor/article/edit.jade @@ -23,6 +23,9 @@ block content #article-view + h3 Patches + .patches-view + hr div#error-view diff --git a/app/views/editor/article/edit.coffee b/app/views/editor/article/edit.coffee index 1511ba155..ae9083a2a 100644 --- a/app/views/editor/article/edit.coffee +++ b/app/views/editor/article/edit.coffee @@ -1,9 +1,9 @@ View = require 'views/kinds/RootView' VersionHistoryView = require './versions_view' -ErrorView = require '../../error_view' template = require 'templates/editor/article/edit' Article = require 'models/Article' SaveVersionModal = require 'views/modal/save_version_modal' +PatchesView = require 'views/editor/patches_view' module.exports = class ArticleEditView extends View id: 'editor-article-edit-view' @@ -37,7 +37,7 @@ module.exports = class ArticleEditView extends View @article.fetch() @listenToOnce(@article, 'sync', @buildTreema) @pushChangesToPreview = _.throttle(@pushChangesToPreview, 500) - + buildTreema: -> return if @treema? or (not @article.loaded) unless @article.attributes.body @@ -68,13 +68,15 @@ module.exports = class ArticleEditView extends View getRenderData: (context={}) -> context = super(context) context.article = @article - context.authorized = me.isAdmin() or @article.hasWriteAccess(me) + context.authorized = not me.get('anonymous') context afterRender: -> super() return if @startsLoading @showReadOnly() if me.get('anonymous') + @patchesView = @insertSubView(new PatchesView(@article), @$el.find('.patches-view')) + @patchesView.load() openPreview: -> @preview = window.open('/editor/article/x/preview', 'preview', 'height=800,width=600') diff --git a/app/views/editor/thang/edit.coffee b/app/views/editor/thang/edit.coffee index 39fe787ba..3f6e624ce 100644 --- a/app/views/editor/thang/edit.coffee +++ b/app/views/editor/thang/edit.coffee @@ -58,7 +58,7 @@ module.exports = class ThangTypeEditView extends View context = super(context) context.thangType = @thangType context.animations = @getAnimationNames() - context.authorized = me.isAdmin() or @thangType.hasWriteAccess(me) + context.authorized = not me.get('anonymous') context getAnimationNames: -> @@ -350,7 +350,7 @@ module.exports = class ThangTypeEditView extends View schema: schema files: @files filePath: "db/thang.type/#{@thangType.get('original')}" - readOnly: true unless me.isAdmin() or @thangType.hasWriteAccess(me) + readOnly: me.get('anonymous') callbacks: change: @pushChangesToPreview select: @onSelectNode From 61e6c8dfc3083f5bd8fa8d4008d63c6c13a0df01 Mon Sep 17 00:00:00 2001 From: Scott Erickson Date: Mon, 7 Jul 2014 16:05:23 -0700 Subject: [PATCH 030/106] Fixed the gold view not showing numbers until the first change. --- app/views/play/level/gold_view.coffee | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/views/play/level/gold_view.coffee b/app/views/play/level/gold_view.coffee index f7168b386..a004f7252 100644 --- a/app/views/play/level/gold_view.coffee +++ b/app/views/play/level/gold_view.coffee @@ -15,7 +15,7 @@ module.exports = class GoldView extends View @teamGold = {} @teamGoldEarned = {} @shownOnce = false - + onGoldChanged: (e) -> return if @teamGold[e.team] is e.gold and @teamGoldEarned[e.team] is e.goldEarned @teamGold[e.team] = e.gold @@ -24,7 +24,7 @@ module.exports = class GoldView extends View unless goldEl.length teamEl = teamTemplate team: e.team @$el[if e.team is 'humans' then 'prepend' else 'append'](teamEl) - goldEl = $('.gold-amount.team-' + e.team, teamEl) + goldEl = @$el.find('.gold-amount.team-' + e.team) text = '' + e.gold if e.goldEarned and e.goldEarned > e.gold text += " (#{e.goldEarned})" From 908772d8fee604f1eb34d488dbaf9c0bc2f318f4 Mon Sep 17 00:00:00 2001 From: Scott Erickson Date: Mon, 7 Jul 2014 16:44:18 -0700 Subject: [PATCH 031/106] Fixed an instance where a level loading callback was erroring if called before the surface was built. --- app/views/play/level_view.coffee | 1 + 1 file changed, 1 insertion(+) diff --git a/app/views/play/level_view.coffee b/app/views/play/level_view.coffee index 88b6955e6..008dfba23 100644 --- a/app/views/play/level_view.coffee +++ b/app/views/play/level_view.coffee @@ -274,6 +274,7 @@ module.exports = class PlayLevelView extends View # Once Surface is Loaded #################################################### onLevelStarted: -> + return unless @surface? @loadingView.showReady() if window.currentModal and not window.currentModal.destroyed return Backbone.Mediator.subscribeOnce 'modal-closed', @onLevelStarted, @ From 49c8360d5b569a0f0d54bee93873dcd397053fd1 Mon Sep 17 00:00:00 2001 From: Scott Erickson Date: Mon, 7 Jul 2014 16:53:34 -0700 Subject: [PATCH 032/106] Fixed me emitting 'me:synced' and anything listening for that. --- app/lib/auth.coffee | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/lib/auth.coffee b/app/lib/auth.coffee index b19fbc668..6d218608d 100644 --- a/app/lib/auth.coffee +++ b/app/lib/auth.coffee @@ -12,7 +12,7 @@ init = -> me.set 'testGroupNumber', Math.floor(Math.random() * 256) me.patch() - Backbone.listenTo(me, 'sync', Backbone.Mediator.publish('me:synced', {me: me})) + Backbone.listenTo(me, 'sync', -> Backbone.Mediator.publish('me:synced', {me: me})) module.exports.createUser = (userObject, failure=backboneFailure, nextURL=null) -> user = new User(userObject) From 1263d4724ac889249d14facf4918df837f7fcb4f Mon Sep 17 00:00:00 2001 From: Scott Erickson Date: Mon, 7 Jul 2014 16:56:47 -0700 Subject: [PATCH 033/106] Fixed the title in the gold view to handle when goldEarned isn't available. --- app/views/play/level/gold_view.coffee | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/app/views/play/level/gold_view.coffee b/app/views/play/level/gold_view.coffee index a004f7252..42ef28572 100644 --- a/app/views/play/level/gold_view.coffee +++ b/app/views/play/level/gold_view.coffee @@ -34,7 +34,13 @@ module.exports = class GoldView extends View @shownOnce = true updateTitle: -> - @$el.attr 'title', ("Team '#{team}' has #{gold} now of #{@teamGoldEarned[team]} gold earned." for team, gold of @teamGold).join ' ' + strings = [] + for team, gold of @teamGold + if @teamGoldEarned[team] + strings.push "Team '#{team}' has #{gold} now of #{@teamGoldEarned[team]} gold earned." + else + strings.push "Team '#{team}' has #{gold} gold." + @$el.attr 'title', strings.join ' ' onSetLetterbox: (e) -> @$el.toggle not e.on if @shownOnce From 5d00aedac7fcafb53876ac45a642a5b5b496ddd7 Mon Sep 17 00:00:00 2001 From: Scott Erickson Date: Mon, 7 Jul 2014 18:13:19 -0700 Subject: [PATCH 034/106] Widened the click area on the wizard settings view for color config. --- app/styles/account/wizard-settings.sass | 4 ++++ app/templates/account/wizard_settings.jade | 2 +- app/templates/modal/wizard_settings.jade | 2 +- app/views/account/wizard_settings_view.coffee | 5 +++++ 4 files changed, 11 insertions(+), 2 deletions(-) diff --git a/app/styles/account/wizard-settings.sass b/app/styles/account/wizard-settings.sass index 83ca4f2ce..9a93d6613 100644 --- a/app/styles/account/wizard-settings.sass +++ b/app/styles/account/wizard-settings.sass @@ -8,9 +8,13 @@ width: 450px margin: 0 auto + label + cursor: pointer + #color-settings table float: left width: 250px + cursor: pointer .minicolors-input display: none diff --git a/app/templates/account/wizard_settings.jade b/app/templates/account/wizard_settings.jade index f0c95410e..192f758c4 100644 --- a/app/templates/account/wizard_settings.jade +++ b/app/templates/account/wizard_settings.jade @@ -1,5 +1,5 @@ #color-settings - table.table.table-bordered + table.table.table-bordered.table-hover tr th(data-i18n="wizard_settings.active") Active th(data-i18n="wizard_settings.color") Color diff --git a/app/templates/modal/wizard_settings.jade b/app/templates/modal/wizard_settings.jade index a301884ec..ea22506ec 100644 --- a/app/templates/modal/wizard_settings.jade +++ b/app/templates/modal/wizard_settings.jade @@ -17,4 +17,4 @@ block modal-body-wait-content .progress-bar block modal-footer-content - button.btn.btn-primary.btn-large#wizard-settings-done(type="button") Done + button.btn.btn-primary.btn-large#wizard-settings-done(data-dismiss="modal", type="button") Done diff --git a/app/views/account/wizard_settings_view.coffee b/app/views/account/wizard_settings_view.coffee index 6e441654f..0c014fa22 100644 --- a/app/views/account/wizard_settings_view.coffee +++ b/app/views/account/wizard_settings_view.coffee @@ -11,6 +11,11 @@ module.exports = class WizardSettingsView extends CocoView startsLoading: true events: + 'click .color-group': (e) -> + return if $(e.target).closest('.minicolors')[0] + return if $(e.target).closest('.color-group-checkbox')[0] + return if $(e.target).closest('label')[0] + $(e.target).closest('.color-group').find('.color-group-checkbox').click() 'change .color-group-checkbox': (e) -> colorGroup = $(e.target).closest('.color-group') @updateColorSettings(colorGroup) From 05560662dd82baa771cae174b70ca385cd1ca656 Mon Sep 17 00:00:00 2001 From: Michael Schmatz Date: Mon, 7 Jul 2014 19:34:35 -0700 Subject: [PATCH 035/106] Various fixes to employer page/profile view --- app/locale/en.coffee | 2 +- app/schemas/models/user.coffee | 2 +- app/styles/employers.sass | 11 ++- app/templates/account/profile.jade | 2 +- app/templates/employers.jade | 109 ++++++++++++++--------------- app/views/employers_view.coffee | 7 +- 6 files changed, 73 insertions(+), 60 deletions(-) diff --git a/app/locale/en.coffee b/app/locale/en.coffee index 7094f735e..5653c44c2 100644 --- a/app/locale/en.coffee +++ b/app/locale/en.coffee @@ -236,7 +236,7 @@ basics_country: "Country" basics_country_help: "Country you want to work in (or live in now)." basics_visa: "US Work Status" - basics_visa_help: "Are you authorized to work in the US, or do you need visa sponsorship?" + basics_visa_help: "Are you authorized to work in the US, or do you need visa sponsorship? (If you live in Canada or Australia, mark authorized.)" basics_looking_for: "Looking For" basics_looking_for_full_time: "Full-time" basics_looking_for_part_time: "Part-time" diff --git a/app/schemas/models/user.coffee b/app/schemas/models/user.coffee index b85d9f2bd..895b51974 100644 --- a/app/schemas/models/user.coffee +++ b/app/schemas/models/user.coffee @@ -83,7 +83,7 @@ UserSchema = c.object {}, experience: {type: 'integer', title: 'Years of Experience', minimum: 0, description: 'How many years of professional experience (getting paid) developing software do you have?'} shortDescription: {type: 'string', maxLength: 140, title: 'Short Description', description: 'Who are you, and what are you looking for? 140 characters max.', default: 'Programmer seeking to build great software.'} longDescription: {type: 'string', maxLength: 600, title: 'Description', description: 'Describe yourself to potential employers. Keep it short and to the point. We recommend outlining the position that would most interest you. Tasteful markdown okay; 600 characters max.', format: 'markdown', default: '* I write great code.\n* You need great code?\n* Great!'} - visa: c.shortString {title: 'US Work Status', description: 'Are you authorized to work in the US, or do you need visa sponsorship?', enum: ['Authorized to work in the US', 'Need visa sponsorship'], default: 'Authorized to work in the US'} + visa: c.shortString {title: 'US Work Status', description: 'Are you authorized to work in the US, or do you need visa sponsorship? (If you live in Canada or Australia, mark authorized.)', enum: ['Authorized to work in the US', 'Need visa sponsorship'], default: 'Authorized to work in the US'} work: c.array {title: 'Work Experience', description: 'List your relevant work experience, most recent first.'}, c.object {title: 'Job', description: 'Some work experience you had.', required: ['employer', 'role', 'duration']}, employer: c.shortString {title: 'Employer', description: 'Name of your employer.'} diff --git a/app/styles/employers.sass b/app/styles/employers.sass index c9f519ce8..a73387eb2 100644 --- a/app/styles/employers.sass +++ b/app/styles/employers.sass @@ -17,15 +17,24 @@ margin-bottom: 10px .panel-heading background-color: darkgrey + cursor: pointer .panel-body background-color: darkgrey + border-radius: 4px + border-top-left-radius: 0px + border-top-right-radius: 0px + .panel + border: 1px red + border-radius: 0px #filters .filter_section - width: 16% + width: 25% display: inline-block vertical-align: top margin-bottom: 10px + label input + margin-right: 10px .get-started-button vertical-align: text-bottom margin-left: 10px diff --git a/app/templates/account/profile.jade b/app/templates/account/profile.jade index de9dcca11..c4ef36448 100644 --- a/app/templates/account/profile.jade +++ b/app/templates/account/profile.jade @@ -155,7 +155,7 @@ block content select.form-control(name='root[visa]') option(value='Authorized to work in the US', selected=profile.visa == 'Authorized to work in the US') Authorized to work in the US option(value='Need visa sponsorship', selected=profile.visa == 'Need visa sponsorship') Need visa sponsorship - p.help-block(data-i18n="account_profile.basics_visa_help") Are you authorized to work in the US, or do you need visa sponsorship? + p.help-block(data-i18n="account_profile.basics_visa_help") Are you authorized to work in the US, or do you need visa sponsorship? (If you live in Canada or Australia, mark authorized.) .form-group label.control-label(data-i18n="account_profile.basics_looking_for") Looking For select.form-control(name='root[lookingFor]') diff --git a/app/templates/employers.jade b/app/templates/employers.jade index 790058be5..7301fbfda 100644 --- a/app/templates/employers.jade +++ b/app/templates/employers.jade @@ -24,75 +24,71 @@ block content .panel-collapse.collapse.in#collapseOne .panel-body form#filters - .filter_section#screened_filter - h4 Screened - input(type="checkbox" name="phoneScreenFilter" value="true") - | Phone Screened - br - input(type="checkbox" name="phoneScreenFilter" value="false") - | Not Phone Screened .filter_section#visa_filter h4 Visa - input(type="checkbox" name="visa" value="Authorized to work in the US") - | US Authorized + label + input(type="checkbox" name="visa" value="Authorized to work in the US") + | US Authorized br - input(type="checkbox" name="visa" value="Need visa sponsorship") - | Not Authorized + label + input(type="checkbox" name="visa" value="Need visa sponsorship") + | Not Authorized .filter_section#school_filter h4 School - input(type="checkbox" name="schoolFilter" value="Top 20 Eng.") - | Top 20 Eng. + label + input(type="checkbox" name="schoolFilter" value="Top 20 Eng.") + | Top 20 Eng. br - input(type="checkbox" name="schoolFilter" value="Other US") - | Other US + label + input(type="checkbox" name="schoolFilter" value="Other US") + | Other US br - input(type="checkbox" name="schoolFilter" value="Other Intl.") - | Other Intl. - .filter_section#location_filter - h4 Location - input(type="checkbox" name="locationFilter" value="Bay Area") - | Bay Area - br - input(type="checkbox" name="locationFilter" value="New York") - | New York - br - input(type="checkbox" name="locationFilter" value="Other US") - | Other US - br - input(type="checkbox" name="locationFilter" value="International") - | International + label + input(type="checkbox" name="schoolFilter" value="Other Intl.") + | Other Intl. .filter_section#role_filter h4 Role - input(type="checkbox" name="roleFilter" value="Web Developer") - | Web Developer + label + input(type="checkbox" name="roleFilter" value="Web Developer") + | Web Developer br - input(type="checkbox" name="roleFilter" value="Software Developer") - | Software Developer + label + input(type="checkbox" name="roleFilter" value="Software Developer") + | Software Developer br - input(type="checkbox" name="roleFilter" value="iOS Developer") - | iOS Developer + label + input(type="checkbox" name="roleFilter" value="iOS Developer") + | iOS Developer br - input(type="checkbox" name="roleFilter" value="Android Developer") - | Android Developer + label + input(type="checkbox" name="roleFilter" value="Android Developer") + | Android Developer br - input(type="checkbox" name="roleFilter" value="Project Manager") - | Project Developer + label + input(type="checkbox" name="roleFilter" value="Project Manager") + | Project Developer .filter_section#seniority_filter h4 Seniority - input(type="checkbox" name="seniorityFilter" value="College Student") - | College Student + label + input(type="checkbox" name="seniorityFilter" value="Management") + | Management br - input(type="checkbox" name="seniorityFilter" value="Recent Grad") - | Recent Grad + label + input(type="checkbox" name="seniorityFilter" value="Senior") + | Senior br - input(type="checkbox" name="seniorityFilter" value="Junior") - | Junior + label + input(type="checkbox" name="seniorityFilter" value="Junior") + | Junior br - input(type="checkbox" name="seniorityFilter" value="Senior") - | Senior + label + input(type="checkbox" name="seniorityFilter" value="Recent Grad") + | Recent Grad br - input(type="checkbox" name="seniorityFilter" value="Management") - | Management + label + input(type="checkbox" name="seniorityFilter" value="College Student") + | College Student + //input#select_all_checkbox(type="checkbox" name="select_all" checked) //| Select all button.btn#filter-button Filter @@ -108,11 +104,15 @@ block content - var profileAge = (new Date() - new Date(profile.updated)) / 86400 / 1000; - var expired = profileAge > 2 * 30.4; - var curated = profile.curated; - + tr.candidate-row(data-candidate-id=candidate.id, id=candidate.id, class=expired ? "expired" : "") - td(rowspan=2) + td(rowspan=3) .candidate-picture img(src=candidate.getPhotoURL(50,false,true), alt=profile.name, title=profile.name, width=50) + td + strong + | #{profile.name} + tr.description_row(data-candidate-id=candidate.id) if curated && curated.shortDescription td.candidate-description #{curated.shortDescription} else @@ -122,7 +122,7 @@ block content - var workHistory = curated.workHistory.join(","); td.tag_column img(src="/images/pages/employer/tag.png") - | #{curated.mainTag} + | #{profile.jobTitle} td.location_column img(src="/images/pages/employer/location.png") | #{curated.location} @@ -133,8 +133,7 @@ block content if workHistory img(src="/images/pages/employer/briefcase.png") | #{workHistory} - else - td Hi + if !isEmployer && !me.isAdmin() div#info_wrapper diff --git a/app/views/employers_view.coffee b/app/views/employers_view.coffee index 5b7bd2710..a4473b53b 100644 --- a/app/views/employers_view.coffee +++ b/app/views/employers_view.coffee @@ -121,13 +121,18 @@ module.exports = class EmployersView extends View getRenderData: -> ctx = super() ctx.isEmployer = @isEmployer() - ctx.candidates = _.sortBy @candidates.models, (c) -> -1 * c.get('jobProfile').experience + ctx.candidates = _.sortBy @candidates.models, (c) -> c.get('jobProfile').curated?.featured + ctx.candidates = _.sortBy ctx.candidates, (c) -> -1 * c.get('jobProfile').experience + ctx.candidates = _.sortBy ctx.candidates, (c) -> not c.get('jobProfile').curated? ctx.activeCandidates = _.filter ctx.candidates, (c) -> c.get('jobProfile').active ctx.inactiveCandidates = _.reject ctx.candidates, (c) -> c.get('jobProfile').active ctx.featuredCandidates = _.filter ctx.activeCandidates, (c) -> c.get('jobProfileApproved') + unless @isEmployer() or me.isAdmin() ctx.featuredCandidates = _.filter ctx.featuredCandidates, (c) -> c.get('jobProfile').curated ctx.featuredCandidates = ctx.featuredCandidates.slice(0,7) + if me.isAdmin() + ctx.featuredCandidates = ctx.candidates ctx.otherCandidates = _.reject ctx.activeCandidates, (c) -> c.get('jobProfileApproved') ctx.remarks = {} ctx.remarks[remark.get('user')] = remark for remark in @remarks.models From 30671d82f6ad6aea510330c6a4dd64772df608e5 Mon Sep 17 00:00:00 2001 From: Michael Schmatz Date: Mon, 7 Jul 2014 19:52:31 -0700 Subject: [PATCH 036/106] Removed PM and Management from filters --- app/schemas/models/user.coffee | 4 ++-- app/templates/employers.jade | 8 -------- 2 files changed, 2 insertions(+), 10 deletions(-) diff --git a/app/schemas/models/user.coffee b/app/schemas/models/user.coffee index 895b51974..20346378b 100644 --- a/app/schemas/models/user.coffee +++ b/app/schemas/models/user.coffee @@ -142,11 +142,11 @@ UserSchema = c.object {}, roleFilter: title: 'Role' type: 'string' - enum: ['Web Developer', 'Software Developer', 'iOS Developer', 'Android Developer', 'Project Manager'] + enum: ['Web Developer', 'Software Developer', 'iOS Developer', 'Android Developer'] seniorityFilter: title: 'Seniority' type: 'string' - enum: ['College Student', 'Recent Grad', 'Junior', 'Senior', 'Management'] + enum: ['College Student', 'Recent Grad', 'Junior', 'Senior'] featured: title: 'Featured' type: 'boolean' diff --git a/app/templates/employers.jade b/app/templates/employers.jade index 7301fbfda..31ab8477e 100644 --- a/app/templates/employers.jade +++ b/app/templates/employers.jade @@ -63,16 +63,8 @@ block content label input(type="checkbox" name="roleFilter" value="Android Developer") | Android Developer - br - label - input(type="checkbox" name="roleFilter" value="Project Manager") - | Project Developer .filter_section#seniority_filter h4 Seniority - label - input(type="checkbox" name="seniorityFilter" value="Management") - | Management - br label input(type="checkbox" name="seniorityFilter" value="Senior") | Senior From 318b72d965129605ddd60d788be4eae48726c5e1 Mon Sep 17 00:00:00 2001 From: Nick Winter Date: Mon, 7 Jul 2014 20:01:05 -0700 Subject: [PATCH 037/106] Fixed #1273 with new Aeher version with new Filbert version. --- bower.json | 2 +- package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/bower.json b/bower.json index beb943ad0..357b9d431 100644 --- a/bower.json +++ b/bower.json @@ -32,7 +32,7 @@ "firepad": "~0.1.2", "marked": "~0.3.0", "moment": "~2.5.0", - "aether": "~0.2.9", + "aether": "~0.2.22", "underscore.string": "~2.3.3", "firebase": "~1.0.2", "catiline": "~2.9.3", diff --git a/package.json b/package.json index 32568f23e..cba6e383e 100644 --- a/package.json +++ b/package.json @@ -65,7 +65,7 @@ "redis": "", "webworker-threads": "~0.4.11", "node-gyp": "~0.13.0", - "aether": "~0.2.9", + "aether": "~0.2.22", "JASON": "~0.1.3", "JQDeferred": "~2.1.0" }, From 9313541f9f5aca6beee90c8d1db651d45e3b96a1 Mon Sep 17 00:00:00 2001 From: Michael Schmatz Date: Mon, 7 Jul 2014 20:01:59 -0700 Subject: [PATCH 038/106] Fixed targeting on employers CSS --- app/styles/employers.sass | 6 +++--- app/templates/employers.jade | 10 +++++----- app/views/employers_view.coffee | 1 + 3 files changed, 9 insertions(+), 8 deletions(-) diff --git a/app/styles/employers.sass b/app/styles/employers.sass index a73387eb2..c88e1e3c6 100644 --- a/app/styles/employers.sass +++ b/app/styles/employers.sass @@ -1,6 +1,6 @@ #employers-view - button + .employer-button background: #fce232 /* Old browsers */ background: -moz-linear-gradient(top, #fce232 0%, #ea8e2b 100%) background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#fce232), color-stop(100%,#ea8e2b)) @@ -42,13 +42,13 @@ #filter-button, #create-alert-button float: right - #login-link, #logout-button + #login-link, #logout-link float: right color: #333333 display: inline-block :visited color: #333333 - #logout-button:hover + #logout-link:hover cursor: pointer #tagline, .hiring-call-to-action diff --git a/app/templates/employers.jade b/app/templates/employers.jade index 31ab8477e..38e9f2852 100644 --- a/app/templates/employers.jade +++ b/app/templates/employers.jade @@ -7,10 +7,10 @@ block content if !isEmployer && !me.isAdmin() #tagline h1(data-i18n="employers.hire_developers_not_credentials") Hire developers, not credentials. - button.btn.get-started-button Get started + button.btn.get-started-button.employer-button Get started else if !me.get('anonymous') - a#logout-button(data-i18n="login.log_out") Logout + a#logout-link(data-i18n="login.log_out") Logout br #filter .panel-group#filter_panel @@ -83,7 +83,7 @@ block content //input#select_all_checkbox(type="checkbox" name="select_all" checked) //| Select all - button.btn#filter-button Filter + button.btn.employer-button#filter-button Filter p#results #{numberOfCandidates} results //button.btn#create-alert-button Create Alert if candidates.length @@ -131,7 +131,7 @@ block content div#info_wrapper span.hiring-call-to-action h2#start-hiring(data-i18n="employers.start_hiring") Start hiring. - button.btn.get-started-button Get started + button.btn.get-started-button.employer-button Get started h2#hiring-reasons.hiring-call-to-action(data-i18n="employers.reasons") 3 reasons you should hire through us: .reasons#top_row @@ -153,7 +153,7 @@ block content p(data-i18n="employers.pass_screen_blurb") All of these developers have ranked in our programming competitions. One employer found that 5x as many of our devs passed their technical screen than hiring from Hacker News. span.hiring-call-to-action h2(data-i18n="employers.make_hiring_easier") Make my hiring easier, please. - button.btn.get-started-button Get started + button.btn.get-started-button.employer-button Get started .reasons#bottom_row .reason_long img.employer_icon(src="/images/pages/employer/employer_icon1.png") diff --git a/app/views/employers_view.coffee b/app/views/employers_view.coffee index a4473b53b..9c236a398 100644 --- a/app/views/employers_view.coffee +++ b/app/views/employers_view.coffee @@ -21,6 +21,7 @@ module.exports = class EmployersView extends View events: 'click tbody tr': 'onCandidateClicked' + 'click #logout-link': 'logoutAccount' 'change #filters input': 'onFilterChanged' 'click #filter-button': 'applyFilters' 'change #select_all_checkbox': 'handleSelectAllChange' From cef8fe074a0de8c7667a0f9443b59642d19ec871 Mon Sep 17 00:00:00 2001 From: Michael Schmatz Date: Mon, 7 Jul 2014 20:03:02 -0700 Subject: [PATCH 039/106] Add mobile developer to the schema --- app/schemas/models/user.coffee | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/schemas/models/user.coffee b/app/schemas/models/user.coffee index 20346378b..2c4a0b8eb 100644 --- a/app/schemas/models/user.coffee +++ b/app/schemas/models/user.coffee @@ -142,7 +142,7 @@ UserSchema = c.object {}, roleFilter: title: 'Role' type: 'string' - enum: ['Web Developer', 'Software Developer', 'iOS Developer', 'Android Developer'] + enum: ['Web Developer', 'Software Developer', 'iOS Developer', 'Android Developer', 'Mobile Developer'] seniorityFilter: title: 'Seniority' type: 'string' From 285c7ff049477c66c2bf1b7f2b19ebf609ead898 Mon Sep 17 00:00:00 2001 From: Michael Schmatz Date: Mon, 7 Jul 2014 20:05:28 -0700 Subject: [PATCH 040/106] Added school changes to schema --- app/schemas/models/user.coffee | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/schemas/models/user.coffee b/app/schemas/models/user.coffee index 2c4a0b8eb..0bfbcc52d 100644 --- a/app/schemas/models/user.coffee +++ b/app/schemas/models/user.coffee @@ -134,7 +134,7 @@ UserSchema = c.object {}, schoolFilter: title: 'School' type: 'string' - enum: ['Top 20 Eng.', 'Other US', 'Other Intl.'] + enum: ['Top 20 Eng.', 'Other US', 'Other Intl.','Top School', 'Other'] locationFilter: title: 'Location' type: 'string' From 30745a25ca3622a5d2084119b8711482d1823dc3 Mon Sep 17 00:00:00 2001 From: Michael Schmatz Date: Mon, 7 Jul 2014 20:24:29 -0700 Subject: [PATCH 041/106] Consolidated iOS and Android into Mobile --- app/schemas/models/user.coffee | 2 +- app/templates/employers.jade | 8 ++------ 2 files changed, 3 insertions(+), 7 deletions(-) diff --git a/app/schemas/models/user.coffee b/app/schemas/models/user.coffee index 0bfbcc52d..87884bb93 100644 --- a/app/schemas/models/user.coffee +++ b/app/schemas/models/user.coffee @@ -142,7 +142,7 @@ UserSchema = c.object {}, roleFilter: title: 'Role' type: 'string' - enum: ['Web Developer', 'Software Developer', 'iOS Developer', 'Android Developer', 'Mobile Developer'] + enum: ['Web Developer', 'Software Developer', 'Mobile Developer'] seniorityFilter: title: 'Seniority' type: 'string' diff --git a/app/templates/employers.jade b/app/templates/employers.jade index 38e9f2852..5f3121cce 100644 --- a/app/templates/employers.jade +++ b/app/templates/employers.jade @@ -57,12 +57,8 @@ block content | Software Developer br label - input(type="checkbox" name="roleFilter" value="iOS Developer") - | iOS Developer - br - label - input(type="checkbox" name="roleFilter" value="Android Developer") - | Android Developer + input(type="checkbox" name="roleFilter" value="Mobile Developer") + | Mobile Developer .filter_section#seniority_filter h4 Seniority label From 08b9a8fdaaa101ca38586701e6f5e539adf841f6 Mon Sep 17 00:00:00 2001 From: Michael Schmatz Date: Mon, 7 Jul 2014 21:04:12 -0700 Subject: [PATCH 042/106] Various changes to education filter --- app/schemas/models/user.coffee | 2 +- app/templates/employers.jade | 14 +++++--------- app/views/employers_view.coffee | 6 +++--- 3 files changed, 9 insertions(+), 13 deletions(-) diff --git a/app/schemas/models/user.coffee b/app/schemas/models/user.coffee index 87884bb93..edb2279bb 100644 --- a/app/schemas/models/user.coffee +++ b/app/schemas/models/user.coffee @@ -134,7 +134,7 @@ UserSchema = c.object {}, schoolFilter: title: 'School' type: 'string' - enum: ['Top 20 Eng.', 'Other US', 'Other Intl.','Top School', 'Other'] + enum: ['Top School', 'Other'] locationFilter: title: 'Location' type: 'string' diff --git a/app/templates/employers.jade b/app/templates/employers.jade index 5f3121cce..547cee9bf 100644 --- a/app/templates/employers.jade +++ b/app/templates/employers.jade @@ -34,18 +34,14 @@ block content input(type="checkbox" name="visa" value="Need visa sponsorship") | Not Authorized .filter_section#school_filter - h4 School + h4 Education label - input(type="checkbox" name="schoolFilter" value="Top 20 Eng.") - | Top 20 Eng. + input(type="checkbox" name="schoolFilter" value="Top School") + | Top School br label - input(type="checkbox" name="schoolFilter" value="Other US") - | Other US - br - label - input(type="checkbox" name="schoolFilter" value="Other Intl.") - | Other Intl. + input(type="checkbox" name="schoolFilter" value="Other") + | Other .filter_section#role_filter h4 Role label diff --git a/app/views/employers_view.coffee b/app/views/employers_view.coffee index 9c236a398..54279d21c 100644 --- a/app/views/employers_view.coffee +++ b/app/views/employers_view.coffee @@ -112,10 +112,10 @@ module.exports = class EmployersView extends View @filters = phoneScreenFilter: [true, false] visa: ['Authorized to work in the US', 'Need visa sponsorship'] - schoolFilter: ['Top 20 Eng.', 'Other US', 'Other Intl.'] + schoolFilter: ['Top 20 Eng.', 'Other US', 'Other Intl.', 'Top School', 'Other'] locationFilter: ['Bay Area', 'New York', 'Other US', 'International'] - roleFilter: ['Web Developer', 'Software Developer', 'iOS Developer', 'Android Developer', 'Project Manager'] - seniorityFilter: ['College Student', 'Recent Grad', 'Junior', 'Senior', 'Management'] + roleFilter: ['Web Developer', 'Software Developer', 'Mobile Developer'] + seniorityFilter: ['College Student', 'Recent Grad', 'Junior', 'Senior'] @defaultFilters = _.cloneDeep @filters From e294f344c4e6bf04f98a9eb92e7358451b2b5141 Mon Sep 17 00:00:00 2001 From: Michael Schmatz Date: Mon, 7 Jul 2014 21:29:48 -0700 Subject: [PATCH 043/106] Move featured candidates to top of sort --- app/views/employers_view.coffee | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/app/views/employers_view.coffee b/app/views/employers_view.coffee index 54279d21c..df9c0522d 100644 --- a/app/views/employers_view.coffee +++ b/app/views/employers_view.coffee @@ -112,7 +112,7 @@ module.exports = class EmployersView extends View @filters = phoneScreenFilter: [true, false] visa: ['Authorized to work in the US', 'Need visa sponsorship'] - schoolFilter: ['Top 20 Eng.', 'Other US', 'Other Intl.', 'Top School', 'Other'] + schoolFilter: ['Top School', 'Other'] locationFilter: ['Bay Area', 'New York', 'Other US', 'International'] roleFilter: ['Web Developer', 'Software Developer', 'Mobile Developer'] seniorityFilter: ['College Student', 'Recent Grad', 'Junior', 'Senior'] @@ -122,9 +122,9 @@ module.exports = class EmployersView extends View getRenderData: -> ctx = super() ctx.isEmployer = @isEmployer() - ctx.candidates = _.sortBy @candidates.models, (c) -> c.get('jobProfile').curated?.featured - ctx.candidates = _.sortBy ctx.candidates, (c) -> -1 * c.get('jobProfile').experience + ctx.candidates = _.sortBy @candidates.models, (c) -> -1 * c.get('jobProfile').experience ctx.candidates = _.sortBy ctx.candidates, (c) -> not c.get('jobProfile').curated? + ctx.candidates = _.sortBy ctx.candidates, (c) -> c.get('jobProfile').curated?.featured ctx.activeCandidates = _.filter ctx.candidates, (c) -> c.get('jobProfile').active ctx.inactiveCandidates = _.reject ctx.candidates, (c) -> c.get('jobProfile').active ctx.featuredCandidates = _.filter ctx.activeCandidates, (c) -> c.get('jobProfileApproved') From e71ca28f02f96bd79e39cf2631bd16991c0eef19 Mon Sep 17 00:00:00 2001 From: Michael Schmatz Date: Mon, 7 Jul 2014 21:43:30 -0700 Subject: [PATCH 044/106] Implement candidate filter counts next to filters --- app/templates/employers.jade | 22 +++++++++++----------- app/views/employers_view.coffee | 17 ++++++++++++++++- 2 files changed, 27 insertions(+), 12 deletions(-) diff --git a/app/templates/employers.jade b/app/templates/employers.jade index 547cee9bf..3b3bfc661 100644 --- a/app/templates/employers.jade +++ b/app/templates/employers.jade @@ -28,50 +28,50 @@ block content h4 Visa label input(type="checkbox" name="visa" value="Authorized to work in the US") - | US Authorized + | US Authorized (#{candidatesInFilter("visa","Authorized to work in the US")}) br label input(type="checkbox" name="visa" value="Need visa sponsorship") - | Not Authorized + | Not Authorized (#{candidatesInFilter("visa","Need visa sponsorship")}) .filter_section#school_filter h4 Education label input(type="checkbox" name="schoolFilter" value="Top School") - | Top School + | Top School (#{candidatesInFilter("schoolFilter","Top School")}) br label input(type="checkbox" name="schoolFilter" value="Other") - | Other + | Other (#{candidatesInFilter("schoolFilter","Other")}) .filter_section#role_filter h4 Role label input(type="checkbox" name="roleFilter" value="Web Developer") - | Web Developer + | Web Developer (#{candidatesInFilter("roleFilter","Web Developer")}) br label input(type="checkbox" name="roleFilter" value="Software Developer") - | Software Developer + | Software Developer (#{candidatesInFilter("roleFilter","Software Developer")}) br label input(type="checkbox" name="roleFilter" value="Mobile Developer") - | Mobile Developer + | Mobile Developer (#{candidatesInFilter("roleFilter","Mobile Developer")}) .filter_section#seniority_filter h4 Seniority label input(type="checkbox" name="seniorityFilter" value="Senior") - | Senior + | Senior (#{candidatesInFilter("seniorityFilter","Senior")}) br label input(type="checkbox" name="seniorityFilter" value="Junior") - | Junior + | Junior (#{candidatesInFilter("seniorityFilter","Junior")}) br label input(type="checkbox" name="seniorityFilter" value="Recent Grad") - | Recent Grad + | Recent Grad (#{candidatesInFilter("seniorityFilter","Recent Grad")}) br label input(type="checkbox" name="seniorityFilter" value="College Student") - | College Student + | College Student (#{candidatesInFilter("seniorityFilter","College Student")}) //input#select_all_checkbox(type="checkbox" name="select_all" checked) //| Select all diff --git a/app/views/employers_view.coffee b/app/views/employers_view.coffee index df9c0522d..050887ed3 100644 --- a/app/views/employers_view.coffee +++ b/app/views/employers_view.coffee @@ -118,10 +118,24 @@ module.exports = class EmployersView extends View seniorityFilter: ['College Student', 'Recent Grad', 'Junior', 'Senior'] @defaultFilters = _.cloneDeep @filters - + candidatesInFilter: (filterName, filterValue) => + candidates = @getActiveAndApprovedCandidates() + if filterName and filterValue + if filterName is 'visa' + return (_.filter candidates, (c) -> c.get('jobProfile').visa is filterValue).length + else + return (_.filter candidates, (c) -> c.get('jobProfile').curated?[filterName] is filterValue).length + else + return Math.floor(Math.random() * 500) + + getActiveAndApprovedCandidates: => + candidates = _.filter @candidates.models, (c) -> c.get('jobProfile').active + return _.filter candidates, (c) -> c.get('jobProfileApproved') + getRenderData: -> ctx = super() ctx.isEmployer = @isEmployer() + #If you change the candidates displayed, change candidatesInFilter() ctx.candidates = _.sortBy @candidates.models, (c) -> -1 * c.get('jobProfile').experience ctx.candidates = _.sortBy ctx.candidates, (c) -> not c.get('jobProfile').curated? ctx.candidates = _.sortBy ctx.candidates, (c) -> c.get('jobProfile').curated?.featured @@ -134,6 +148,7 @@ module.exports = class EmployersView extends View ctx.featuredCandidates = ctx.featuredCandidates.slice(0,7) if me.isAdmin() ctx.featuredCandidates = ctx.candidates + ctx.candidatesInFilter = @candidatesInFilter ctx.otherCandidates = _.reject ctx.activeCandidates, (c) -> c.get('jobProfileApproved') ctx.remarks = {} ctx.remarks[remark.get('user')] = remark for remark in @remarks.models From aa40257034daf1314fdf03a819f2e480e29cc606 Mon Sep 17 00:00:00 2001 From: Michael Schmatz Date: Mon, 7 Jul 2014 23:23:36 -0700 Subject: [PATCH 045/106] Table styling/ copy edit --- app/styles/employers.sass | 13 ++++++- app/styles/recruitment_base.sass | 36 ++++++++++++++++++- app/templates/employers.jade | 11 +++--- app/templates/modal/auth.jade | 26 +++++++++----- .../modal/employer_signup_modal.jade | 19 +++------- app/views/employers_view.coffee | 3 +- app/views/kinds/ModalView.coffee | 4 +++ app/views/modal/auth_modal.coffee | 3 +- 8 files changed, 82 insertions(+), 33 deletions(-) diff --git a/app/styles/employers.sass b/app/styles/employers.sass index c88e1e3c6..78437d593 100644 --- a/app/styles/employers.sass +++ b/app/styles/employers.sass @@ -146,10 +146,21 @@ margin-top: 10px padding-bottom: 5px padding-top: 10px + .candidate-name-cell + position: relative + top: 10px + //refactor later, bad practice + + .border_row border-bottom: 1px solid #d3d3d3 vertical-align: bottom - padding-top: 0px + td + padding-top: 0px + padding-bottom: 5px + .description_row td + padding-bottom: 0px + padding-top: 15px #results display: inline-block diff --git a/app/styles/recruitment_base.sass b/app/styles/recruitment_base.sass index 06bfe815c..f6c6e1062 100644 --- a/app/styles/recruitment_base.sass +++ b/app/styles/recruitment_base.sass @@ -18,4 +18,38 @@ #employer-content-area - margin: auto \ No newline at end of file + margin: auto + +.employer-modal-background-wrapper + background-color: white + border: 2px #333333 solid + border-radius: 4px + h1, h2, h3, h4, h5 + color: black + font-family: Arial, Helvetica, sans-serif + .input-large + font-size: 28px + height: 60px + border: 2px rgb(231,231,231) solid + box-shadow: none + width: 70% + margin-left: 15% + #create-account-button, #contract-agreement-button, #login-button + background: #fce232 /* Old browsers */ + background: -moz-linear-gradient(top, #fce232 0%, #ea8e2b 100%) + background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#fce232), color-stop(100%,#ea8e2b)) + background: -webkit-linear-gradient(top, #fce232 0%,#ea8e2b 100%) + background: -o-linear-gradient(top, #fce232 0%,#ea8e2b 100%) + background: -ms-linear-gradient(top, #fce232 0%,#ea8e2b 100%) + background: linear-gradient(to bottom, #fce232 0%,#ea8e2b 100%) + filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#fce232', endColorstr='#ea8e2b',GradientType=0 ) + height: 60px + font-size: 24px + color: black + .login-link + text-decoration: underline + #login-button + margin-left: 40% + width: 20% + + \ No newline at end of file diff --git a/app/templates/employers.jade b/app/templates/employers.jade index 3b3bfc661..8d066ab19 100644 --- a/app/templates/employers.jade +++ b/app/templates/employers.jade @@ -93,9 +93,10 @@ block content td(rowspan=3) .candidate-picture img(src=candidate.getPhotoURL(50,false,true), alt=profile.name, title=profile.name, width=50) - td - strong - | #{profile.name} + if !isntEmployer + td.candidate-name-cell + strong + | #{profile.name} tr.description_row(data-candidate-id=candidate.id) if curated && curated.shortDescription td.candidate-description #{curated.shortDescription} @@ -136,9 +137,7 @@ block content h3(data-i18n="employers.weeding") We've done the weeding for you. //this will break in i18n. Fix the inlining p(data-i18n="employers.weeding_blurb") - | Every candidate that has a - span.glyphicon.glyphicon-earphone - | icon has already gone through a phone screen with us. We only feature developers that we would work with. + | We only feature developers that we would work with. We've reviewed each profile (in addition to meeting with many of the candidates.) .reason img(class="employer_icon" src="/images/pages/employer/employer_icon3.png") h3(data-i18n="employers.pass_screen") They will pass your technical screen. diff --git a/app/templates/modal/auth.jade b/app/templates/modal/auth.jade index 626ca4827..7edff3fff 100644 --- a/app/templates/modal/auth.jade +++ b/app/templates/modal/auth.jade @@ -19,12 +19,19 @@ block modal-body-content p(data-i18n="signup.description") It's free. Just need a couple things and you'll be good to go: form.form - .form-group - label.control-label(for="email", data-i18n="general.email") Email - input#email.input-large.form-control(name="email", type="email", value=formValues.email) - .form-group - label.control-label(for="password", data-i18n="general.password") Password - input#password.input-large.form-control(name="password", type="password", value=formValues.password) + if onEmployersPage + .form-group + input#email.input-large.form-control(name="email", type="email", value=formValues.email, placeholder="Email") + .form-group + input#password.input-large.form-control(name="password", type="password", value=formValues.password, placeholder="Password") + + else + .form-group + label.control-label(for="email", data-i18n="general.email") Email + input#email.input-large.form-control(name="email", type="email", value=formValues.email) + .form-group + label.control-label(for="password", data-i18n="general.password") Password + input#password.input-large.form-control(name="password", type="password", value=formValues.password) if mode === 'signup' .form-group.checkbox @@ -38,8 +45,11 @@ block modal-body-content a(href="https://en.wikipedia.org/wiki/Children's_Online_Privacy_Protection_Act", data-i18n="signup.coppa_why", target="_blank") (Why?) if mode === 'login' - input.btn.btn-info.btn-large#login-button(value=translate("login.log_in"), type="submit") - .btn.btn-default.btn-large#switch-to-signup-button(data-i18n="login.sign_up") Create Account + if onEmployersPage + input.btn.btn-info.btn-large#login-button(value=translate("login.log_in"), type="submit") + else + input.btn.btn-info.btn-large#login-button(value=translate("login.log_in"), type="submit") + .btn.btn-default.btn-large#switch-to-signup-button(data-i18n="login.sign_up") Create Account if mode === 'signup' input.btn.btn-info.btn-large#signup-button(value=translate("signup.sign_up"), type="submit") diff --git a/app/templates/modal/employer_signup_modal.jade b/app/templates/modal/employer_signup_modal.jade index d6a627ddf..8d0429137 100644 --- a/app/templates/modal/employer_signup_modal.jade +++ b/app/templates/modal/employer_signup_modal.jade @@ -2,7 +2,7 @@ extends /templates/modal/modal_base block modal-header-content if userIsAnonymous || !userIsAuthorized - h3(data-i18n="employer_signup.title") Sign up to hire CodeCombat players! + h3(data-i18n="employer_signup.title") Sign Up to Hire CodeCombat Players else h3 CodeCombat Placement Agreement @@ -13,28 +13,17 @@ block modal-body-content else if sentMoreInfoEmail | Thanks! You should receive an email from George shortly. else - h4(data-i18n="employer_signup.sub_heading") Let us find your next brilliant developers. - p Create an account to get started! .form#signup-form .form-group - label.control-label(for="signup-email", data-i18n="general.email") Email - input#signup-email.form-control.input-large(name="email",type="email") - .form-group - label.control-label(for="signup-password", data-i18n="general.password") Password - input#signup-password.input-large.form-control(name="password", type="password") + input#signup-email.form-control.input-large(name="email",type="email" placeholder="Email") + .form-group + input#signup-password.input-large.form-control(name="password", type="password" placeholder="Password") .modal-footer.linkedin button.btn.btn-primary(id="create-account-button") Create Account br br | Already have a CodeCombat account? a.login-link(data-toggle="coco-modal", data-target="modal/auth") Log in to continue! - h4 Want more information first? - p Enter your email and George, our CEO, will contact you shortly. - .form - .form-group - label.control-label(for="more-info-email", data-i18n="general.email") Email - input#more-info-email.form-control.input-large(name="more-info-email",type="email") - button.btn.btn-primary(id="more-info-button") Send me more information! else if !userIsAuthorized .modal-footer.linkedin p Please sign into your LinkedIn account to verify your identity. diff --git a/app/views/employers_view.coffee b/app/views/employers_view.coffee index 050887ed3..984e18365 100644 --- a/app/views/employers_view.coffee +++ b/app/views/employers_view.coffee @@ -155,6 +155,7 @@ module.exports = class EmployersView extends View ctx.moment = moment ctx._ = _ ctx.numberOfCandidates = ctx.featuredCandidates.length + ctx.isntEmployer = not (@isEmployer() or me.isAdmin()) ctx isEmployer: -> @@ -179,7 +180,7 @@ module.exports = class EmployersView extends View # $('.nano').nanoScroller({scrollTo: $(window.location.hash)}) checkForEmployerSignupHash: => - if window.location.hash is '#employerSignupLoggingIn' and not ('employer' in me.get('permissions')) + if window.location.hash is '#employerSignupLoggingIn' and not ('employer' in me.get('permissions')) and not me.isAdmin() @openModalView application.router.getView('modal/employer_signup', '_modal') window.location.hash = '' diff --git a/app/views/kinds/ModalView.coffee b/app/views/kinds/ModalView.coffee index ad25b3c09..b2fecf1ce 100644 --- a/app/views/kinds/ModalView.coffee +++ b/app/views/kinds/ModalView.coffee @@ -32,6 +32,10 @@ module.exports = class ModalView extends CocoView afterRender: -> super() + if Backbone.history.fragment is "employers" + $(@$el).find(".background-wrapper").each -> + $(this).addClass("employer-modal-background-wrapper").removeClass("background-wrapper") + if @modalWidthPercent @$el.find('.modal-dialog').css width: "#{@modalWidthPercent}%" @$el.on 'hide.bs.modal', => diff --git a/app/views/modal/auth_modal.coffee b/app/views/modal/auth_modal.coffee index 81edc7dd4..5f486281e 100644 --- a/app/views/modal/auth_modal.coffee +++ b/app/views/modal/auth_modal.coffee @@ -30,8 +30,9 @@ module.exports = class AuthModalView extends View application.tracker.trackEvent 'Started Signup', authModalTitle: c.title, descriptionOn: c.descriptionOn c.mode = @mode c.formValues = @previousFormInputs or {} + c.onEmployersPage = Backbone.history.fragment is "employers" c - + afterInsert: -> super() _.delay application.router.renderLoginButtons, 500 From bbc793b003895702e665194e2e00779d1bb238b1 Mon Sep 17 00:00:00 2001 From: Michael Schmatz Date: Tue, 8 Jul 2014 10:42:36 -0700 Subject: [PATCH 046/106] Fixed modal popping up when logging out sometimes --- app/views/employers_view.coffee | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/app/views/employers_view.coffee b/app/views/employers_view.coffee index 984e18365..c611c60f0 100644 --- a/app/views/employers_view.coffee +++ b/app/views/employers_view.coffee @@ -300,7 +300,9 @@ module.exports = class EmployersView extends View 8: '✓': filterSelectExactMatch '✗': filterSelectExactMatch - + logoutAccount: -> + window.location.hash = '' + super() onCandidateClicked: (e) -> id = $(e.target).closest('tr').data('candidate-id') if id and (@isEmployer() or me.isAdmin()) From 21d056ff013d47e85dcf6dfd65d2fcef0b89f757 Mon Sep 17 00:00:00 2001 From: Michael Schmatz Date: Tue, 8 Jul 2014 11:19:14 -0700 Subject: [PATCH 047/106] Instant application of filters --- app/templates/employers.jade | 1 - app/views/employers_view.coffee | 1 + 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/app/templates/employers.jade b/app/templates/employers.jade index 8d066ab19..00c925657 100644 --- a/app/templates/employers.jade +++ b/app/templates/employers.jade @@ -75,7 +75,6 @@ block content //input#select_all_checkbox(type="checkbox" name="select_all" checked) //| Select all - button.btn.employer-button#filter-button Filter p#results #{numberOfCandidates} results //button.btn#create-alert-button Create Alert if candidates.length diff --git a/app/views/employers_view.coffee b/app/views/employers_view.coffee index c611c60f0..13713a7a2 100644 --- a/app/views/employers_view.coffee +++ b/app/views/employers_view.coffee @@ -70,6 +70,7 @@ module.exports = class EmployersView extends View for filterName, filterValues of @filters if filterValues.length is 0 @filters[filterName] = @defaultFilters[filterName] + @applyFilters() openSignupModal: -> @openModalView new EmployerSignupView From 3ff66d7807c5dd15326c516d1e1c0f08e0f07b45 Mon Sep 17 00:00:00 2001 From: Michael Schmatz Date: Tue, 8 Jul 2014 16:26:51 -0700 Subject: [PATCH 048/106] Removed empty file and unused function --- server/queues/sendwithus.coffee | 0 server/routes/mail.coffee | 15 +-------------- 2 files changed, 1 insertion(+), 14 deletions(-) delete mode 100644 server/queues/sendwithus.coffee diff --git a/server/queues/sendwithus.coffee b/server/queues/sendwithus.coffee deleted file mode 100644 index e69de29bb..000000000 diff --git a/server/routes/mail.coffee b/server/routes/mail.coffee index f5885a38a..5742b2b65 100644 --- a/server/routes/mail.coffee +++ b/server/routes/mail.coffee @@ -15,20 +15,7 @@ sendwithus = require '../sendwithus' module.exports.setup = (app) -> app.all config.mail.mailchimpWebhook, handleMailchimpWebHook app.get '/mail/cron/ladder-update', handleLadderUpdate - -getAllLadderScores = (next) -> - query = Level.find({type: 'ladder'}) - .select('levelID') - .lean() - query.exec (err, levels) -> - if err - log.error 'Couldn\'t fetch ladder levels. Error: ', err - return next [] - for level in levels - for team in ['humans', 'ogres'] - 'I ... am not doing this.' - # Query to get sessions to make histogram - # db.level.sessions.find({'submitted': true, 'levelID': 'brawlwood', team: 'ogres'}, {'_id': 0, 'totalScore': 1}) + DEBUGGING = false LADDER_PREGAME_INTERVAL = 2 * 3600 * 1000 # Send emails two hours before players last submitted. From 02ccade43fdab5ef84367863d7a0d127f0091849 Mon Sep 17 00:00:00 2001 From: Michael Schmatz Date: Tue, 8 Jul 2014 16:28:45 -0700 Subject: [PATCH 049/106] Removed extraneous code --- server/routes/mail.coffee | 14 +------------- 1 file changed, 1 insertion(+), 13 deletions(-) diff --git a/server/routes/mail.coffee b/server/routes/mail.coffee index 5742b2b65..4fdcef128 100644 --- a/server/routes/mail.coffee +++ b/server/routes/mail.coffee @@ -1,16 +1,12 @@ mail = require '../commons/mail' User = require '../users/User' errors = require '../commons/errors' -#request = require 'request' config = require '../../server_config' LevelSession = require '../levels/sessions/LevelSession' Level = require '../levels/Level' log = require 'winston' sendwithus = require '../sendwithus' -#badLog = (text) -> -# console.log text -# request.post 'http://requestb.in/1brdpaz1', { form: {log: text} } module.exports.setup = (app) -> app.all config.mail.mailchimpWebhook, handleMailchimpWebHook @@ -82,14 +78,10 @@ sendLadderUpdateEmail = (session, now, daysAgo) -> matches = _.filter session.matches, (match) -> match.date >= getTimeFromDaysAgo now, daysAgo defeats = _.filter matches, (match) -> match.metrics.rank is 1 and match.opponents[0].metrics.rank is 0 victories = _.filter matches, (match) -> match.metrics.rank is 0 and match.opponents[0].metrics.rank is 1 - #ties = _.filter matches, (match) -> match.metrics.rank is 0 and match.opponents[0].metrics.rank is 0 + defeat = _.last defeats victory = _.last victories - #log.info "#{user.name} had #{matches.length} matches from last #{daysAgo} days out of #{session.matches.length} total matches. #{defeats.length} defeats, #{victories.length} victories, and #{ties.length} ties." - #matchInfos = ("\t#{match.date}\t#{match.date >= getTimeFromDaysAgo(now, daysAgo)}\t#{match.metrics.rank}\t#{match.opponents[0].metrics.rank}" for match in session.matches) - #log.info "Matches:\n#{matchInfos.join('\n')}" - sendEmail = (defeatContext, victoryContext) -> # TODO: do something with the preferredLanguage? context = @@ -161,7 +153,6 @@ getScoreHistoryGraphURL = (session, daysAgo) -> handleMailchimpWebHook = (req, res) -> post = req.body - #badLog("Got post data: #{JSON.stringify(post, null, '\t')}") unless post.type in ['unsubscribe', 'profile'] res.send 'Bad post type' @@ -200,11 +191,8 @@ module.exports.handleProfileUpdate = handleProfileUpdate = (user, post) -> user.set 'mailChimp.email', post.data.email user.set 'mailChimp.euid', post.data.id -# badLog("Updating user object to: #{JSON.stringify(user.toObject(), null, '\t')}") module.exports.handleUnsubscribe = handleUnsubscribe = (user) -> user.set 'emailSubscriptions', [] for emailGroup in mail.NEWS_GROUPS user.setEmailSubscription emailGroup, false - -# badLog("Unsubscribing user object to: #{JSON.stringify(user.toObject(), null, '\t')}") From 31be904b03bbeca97976730489919b8fdb70364d Mon Sep 17 00:00:00 2001 From: Nick Winter Date: Tue, 8 Jul 2014 16:43:30 -0700 Subject: [PATCH 050/106] Working on flippable tile highlight bounds marks. --- app/lib/surface/Mark.coffee | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/app/lib/surface/Mark.coffee b/app/lib/surface/Mark.coffee index 54853f506..ff4631aec 100644 --- a/app/lib/surface/Mark.coffee +++ b/app/lib/surface/Mark.coffee @@ -72,11 +72,14 @@ module.exports = class Mark extends CocoClass color = "rgba(#{colors[0]}, #{colors[1]}, #{colors[2]}, 0.5)" [w, h] = [@sprite.thang.width * Camera.PPM, @sprite.thang.height * Camera.PPM * @camera.y2x] - if @sprite.thang.drawsBoundsStyle is 'border-text' - shape = new createjs.Shape() + if @sprite.thang.drawsBoundsStyle in ['border-text', 'corner-text'] + @drawsBoundsBorderShape = shape = new createjs.Shape() shape.graphics.setStrokeStyle 5 shape.graphics.beginStroke color - shape.graphics.beginFill color.replace('0.5', '0.25') + if @sprite.thang.drawsBoundsStyle is 'border-text' + shape.graphics.beginFill color.replace('0.5', '0.25') + else + shape.graphics.beginFill color if @sprite.thang.shape in ['ellipsoid', 'disc'] shape.drawEllipse 0, 0, w, h else @@ -101,7 +104,7 @@ module.exports = class Mark extends CocoClass else console.warn @sprite.thang.id, 'didn\'t know how to draw bounds style:', @sprite.thang.drawsBoundsStyle - if w > 0 and h > 0 + if w > 0 and h > 0 and @sprite.thang.drawsBoundsStyle is 'border-text' @mark.cache -w / 2, -h / 2, w, h, 2 @lastWidth = @sprite.thang.width @lastHeight = @sprite.thang.height @@ -226,13 +229,12 @@ module.exports = class Mark extends CocoClass @highlightTween = createjs.Tween.get(@mark).to({}, @highlightDelay).call => @mark.visible = true @highlightDelay = @highlightTween = null + @updateAlpha @alpha if @name in ['shadow', 'bounds'] true updatePosition: (pos) -> if @sprite?.thang and @name in ['shadow', 'debug', 'target', 'selection', 'repair'] pos = @camera.worldToSurface x: @sprite.thang.pos.x, y: @sprite.thang.pos.y - if @name is 'shadow' - @updateAlpha @alpha else pos ?= @sprite?.imageObject @mark.x = pos.x @@ -248,7 +250,9 @@ module.exports = class Mark extends CocoClass if @name is 'shadow' worldZ = @sprite.thang.pos.z - @sprite.thang.depth / 2 + @sprite.getBobOffset() @mark.alpha = @alpha * 0.451 / Math.sqrt(worldZ / 2 + 1) - else if @name isnt 'bounds' + else if @name is 'bounds' + @drawsBoundsBorderShape?.alpha = Math.floor @sprite.thang.alpha # Stop drawing bounds as soon as alpha is reduced at all + else @mark.alpha = @alpha updateRotation: -> From c19a31a58c6890ded6dbeb80dacd7d7ec187faeb Mon Sep 17 00:00:00 2001 From: Nick Winter Date: Tue, 8 Jul 2014 18:51:10 -0700 Subject: [PATCH 051/106] Fixed some wizard positioning issues in multiplayer. --- app/lib/surface/SpriteBoss.coffee | 2 ++ app/views/play/level_view.coffee | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/app/lib/surface/SpriteBoss.coffee b/app/lib/surface/SpriteBoss.coffee index 1483481a7..cab039d97 100644 --- a/app/lib/surface/SpriteBoss.coffee +++ b/app/lib/surface/SpriteBoss.coffee @@ -111,6 +111,8 @@ module.exports = class SpriteBoss extends CocoClass sprite.targetPos = if opponent.team is 'ogres' then {x: 52, y: 52} else {x: 28, y: 28} else if opponent.levelSlug is 'dungeon-arena' sprite.targetPos = if opponent.team is 'ogres' then {x: 72, y: 39} else {x: 9, y: 39} + else if opponent.levelSlug is 'criss-cross' + sprite.targetPos = if opponent.team is 'ogres' then {x: 50, y: 12} else {x: 0, y: 40} else sprite.targetPos = if opponent.team is 'ogres' then {x: 52, y: 28} else {x: 20, y: 28} diff --git a/app/views/play/level_view.coffee b/app/views/play/level_view.coffee index 008dfba23..70a93f6b2 100644 --- a/app/views/play/level_view.coffee +++ b/app/views/play/level_view.coffee @@ -281,7 +281,7 @@ module.exports = class PlayLevelView extends View @surface.showLevel() if @otherSession # TODO: colorize name and cloud by team, colorize wizard by user's color config - @surface.createOpponentWizard id: @otherSession.get('creator'), name: @otherSession.get('creatorName'), team: @otherSession.get('team') + @surface.createOpponentWizard id: @otherSession.get('creator'), name: @otherSession.get('creatorName'), team: @otherSession.get('team'), levelSlug: @level.get('slug') @loadingView?.unveil() onLoadingViewUnveiled: (e) -> From 928e4362bae63fd36d221cba50fd64ac03a9c6b4 Mon Sep 17 00:00:00 2001 From: Nick Winter Date: Tue, 8 Jul 2014 20:47:22 -0700 Subject: [PATCH 052/106] Made some style tweaks to the employers page to move the filters into a sidebar when authorized. --- app/styles/employers.sass | 95 ++++++++------ app/templates/employers.jade | 217 ++++++++++++++++---------------- app/views/employers_view.coffee | 7 +- 3 files changed, 171 insertions(+), 148 deletions(-) diff --git a/app/styles/employers.sass b/app/styles/employers.sass index 78437d593..48ff80e10 100644 --- a/app/styles/employers.sass +++ b/app/styles/employers.sass @@ -1,4 +1,13 @@ #employers-view + .artisanal-claim + font-variant: small-caps + text-align: center + font-size: 20px + font-weight: bold + font-family: Copperplate, "Copperplate Gothic Light", fantasy + border-top: 1px solid #DBDBDB + border-bottom: 1px solid #DBDBDB + margin-bottom: 5px .employer-button background: #fce232 /* Old browsers */ @@ -14,13 +23,17 @@ //filter panels #filter + border: 2px solid #CBCBCB margin-bottom: 10px .panel-heading - background-color: darkgrey + background-color: #D9D9D9 cursor: pointer + border-top-left-radius: 0px + border-top-right-radius: 0px + #folder-icon + margin-right: 5px .panel-body - background-color: darkgrey - border-radius: 4px + background-color: #D9D9D9 border-top-left-radius: 0px border-top-right-radius: 0px .panel @@ -28,13 +41,24 @@ border-radius: 0px #filters + margin-bottom: 10px .filter_section - width: 25% + min-width: 25% + margin-right: 10px display: inline-block vertical-align: top - margin-bottom: 10px - label input - margin-right: 10px + + h4 + margin-bottom: 5px + + label + display: block + font-weight: normal + margin-bottom: 0 + cursor: pointer + input + margin-right: 5px + .get-started-button vertical-align: text-bottom margin-left: 10px @@ -82,7 +106,6 @@ height: 150px padding-right: 15px - .reason width: 33% padding-left: 3% @@ -108,9 +131,6 @@ #bottom_row height: auto #candidate-table - width: 96% - margin-left: 2% - margin-right: 2% background-color: #E7E7E7 table cursor: pointer @@ -118,49 +138,48 @@ margin-left: 2% margin-right: 2% margin-bottom: 30px - .tag_column - width: 25% + .tag_column, .location_column, .education_column, .work_column + width: 33% display: inline-block - .location_column - display: inline-block - width: 25% - .education_column - display: inline-block - width: 25% - .work_column - display: inline-block - width: 25% + img + margin-right: 5px + vertical-align: top tr .candidate-picture - width: 50px - height: 50px + width: 100px + height: 100px border-radius: 5px overflow: hidden margin-right: 10px + img + border-radius: 5px .candidate-description width: 100% vertical-align: bottom - td - margin-bottom: 10px - margin-top: 10px + td.candidate-description padding-bottom: 5px - padding-top: 10px - .candidate-name-cell - position: relative - top: 10px - //refactor later, bad practice - - + td.candidate-name-cell + padding-top: 15px + padding-bottom: 5px + font-size: 18px + .border_row border-bottom: 1px solid #d3d3d3 vertical-align: bottom td - padding-top: 0px - padding-bottom: 5px - .description_row td - padding-bottom: 0px + padding-top: 5px + padding-bottom: 15px + + .teaser-profiles #candidate-table table + .tag_column, .location_column, .education_column, .work_column + width: 25% + tr + .candidate-description padding-top: 15px + .candidate-picture + width: 50px + height: 50px #results display: inline-block diff --git a/app/templates/employers.jade b/app/templates/employers.jade index 00c925657..6c7010d29 100644 --- a/app/templates/employers.jade +++ b/app/templates/employers.jade @@ -1,6 +1,8 @@ extends /templates/recruitment_base block content + .artisanal-claim + | Always 100% Pre-Screened if me.get('anonymous') a#login-link Login br @@ -12,114 +14,117 @@ block content if !me.get('anonymous') a#logout-link(data-i18n="login.log_out") Logout br - #filter - .panel-group#filter_panel - a#filter-link(data-toggle="collapse" data-target="#collapseOne") - .panel.panel-default - .panel-heading - h4.panel-title - - span.glyphicon.glyphicon-folder-open#folder-icon - | Filter - .panel-collapse.collapse.in#collapseOne - .panel-body - form#filters - .filter_section#visa_filter - h4 Visa - label - input(type="checkbox" name="visa" value="Authorized to work in the US") - | US Authorized (#{candidatesInFilter("visa","Authorized to work in the US")}) - br - label - input(type="checkbox" name="visa" value="Need visa sponsorship") - | Not Authorized (#{candidatesInFilter("visa","Need visa sponsorship")}) - .filter_section#school_filter - h4 Education - label - input(type="checkbox" name="schoolFilter" value="Top School") - | Top School (#{candidatesInFilter("schoolFilter","Top School")}) - br - label - input(type="checkbox" name="schoolFilter" value="Other") - | Other (#{candidatesInFilter("schoolFilter","Other")}) - .filter_section#role_filter - h4 Role - label - input(type="checkbox" name="roleFilter" value="Web Developer") - | Web Developer (#{candidatesInFilter("roleFilter","Web Developer")}) - br - label - input(type="checkbox" name="roleFilter" value="Software Developer") - | Software Developer (#{candidatesInFilter("roleFilter","Software Developer")}) - br - label - input(type="checkbox" name="roleFilter" value="Mobile Developer") - | Mobile Developer (#{candidatesInFilter("roleFilter","Mobile Developer")}) - .filter_section#seniority_filter - h4 Seniority - label - input(type="checkbox" name="seniorityFilter" value="Senior") - | Senior (#{candidatesInFilter("seniorityFilter","Senior")}) - br - label - input(type="checkbox" name="seniorityFilter" value="Junior") - | Junior (#{candidatesInFilter("seniorityFilter","Junior")}) - br - label - input(type="checkbox" name="seniorityFilter" value="Recent Grad") - | Recent Grad (#{candidatesInFilter("seniorityFilter","Recent Grad")}) - br - label - input(type="checkbox" name="seniorityFilter" value="College Student") - | College Student (#{candidatesInFilter("seniorityFilter","College Student")}) - - //input#select_all_checkbox(type="checkbox" name="select_all" checked) - //| Select all - p#results #{numberOfCandidates} results - //button.btn#create-alert-button Create Alert - if candidates.length - #candidate-table - table - tbody - for candidate, index in featuredCandidates - - var profile = candidate.get('jobProfile'); - - var authorized = candidate.id; // If we have the id, then we are authorized. - - var profileAge = (new Date() - new Date(profile.updated)) / 86400 / 1000; - - var expired = profileAge > 2 * 30.4; - - var curated = profile.curated; - - tr.candidate-row(data-candidate-id=candidate.id, id=candidate.id, class=expired ? "expired" : "") - td(rowspan=3) - .candidate-picture - img(src=candidate.getPhotoURL(50,false,true), alt=profile.name, title=profile.name, width=50) - if !isntEmployer - td.candidate-name-cell - strong - | #{profile.name} - tr.description_row(data-candidate-id=candidate.id) - if curated && curated.shortDescription - td.candidate-description #{curated.shortDescription} - else - td.candidate-description #{profile.shortDescription} - tr.border_row(data-candidate-id=candidate.id) - if curated - - var workHistory = curated.workHistory.join(","); - td.tag_column - img(src="/images/pages/employer/tag.png") - | #{profile.jobTitle} - td.location_column - img(src="/images/pages/employer/location.png") - | #{curated.location} - td.education_column - img(src="/images/pages/employer/education.png") - | #{curated.education} - td.work_column - if workHistory - img(src="/images/pages/employer/briefcase.png") - | #{workHistory} + .row + - var fullProfiles = isEmployer || me.isAdmin(); + #candidates-column(class=fullProfiles ? "full-profiles col-md-9" : "teaser-profiles col-md-12") + if candidates.length + #candidate-table + table + tbody + for candidate, index in featuredCandidates + - var profile = candidate.get('jobProfile'); + - var authorized = candidate.id; // If we have the id, then we are authorized. + - var profileAge = (new Date() - new Date(profile.updated)) / 86400 / 1000; + - var expired = profileAge > 2 * 30.4; + - var curated = profile.curated; + - var photoSize = fullProfiles ? 100 : 50; + + tr.candidate-row(data-candidate-id=candidate.id, id=candidate.id, class=expired ? "expired" : "") + td(rowspan=3) + .candidate-picture + img(src=candidate.getPhotoURL(photoSize, false, true), alt=profile.name, title=profile.name, width=photoSize) + if fullProfiles + td.candidate-name-cell + strong= profile.name + | - + span= profile.jobTitle + tr.description_row(data-candidate-id=candidate.id) + if curated && curated.shortDescription + td.candidate-description #{curated.shortDescription} + else + td.candidate-description #{profile.shortDescription} + tr.border_row(data-candidate-id=candidate.id) + if curated + - var workHistory = curated.workHistory.join(","); + if !fullProfiles + td.tag_column + img(src="/images/pages/employer/tag.png") + | #{profile.jobTitle} + td.location_column + img(src="/images/pages/employer/location.png") + | #{curated.location} + td.education_column + img(src="/images/pages/employer/education.png") + | #{curated.education} + td.work_column + if workHistory + img(src="/images/pages/employer/briefcase.png") + | #{workHistory} + if fullProfiles + .col-md-3 + #filter + .panel-group#filter_panel + a#filter-link(data-toggle="collapse" data-target="#collapseOne") + .panel.panel-default + .panel-heading + h4.panel-title + span.glyphicon.glyphicon-folder-open#folder-icon + | Filter + .panel-collapse.collapse.in#collapseOne + .panel-body + p + strong We've already technically screened all our candidates + | , but you can also filter further: + form#filters + .filter_section#visa_filter + h4 Visa + label + input(type="checkbox" name="visa" value="Authorized to work in the US") + | US Authorized (#{candidatesInFilter("visa","Authorized to work in the US")}) + label + input(type="checkbox" name="visa" value="Need visa sponsorship") + | Not Authorized (#{candidatesInFilter("visa","Need visa sponsorship")}) + .filter_section#school_filter + h4 Education + label + input(type="checkbox" name="schoolFilter" value="Top School") + | Top School (#{candidatesInFilter("schoolFilter","Top School")}) + label + input(type="checkbox" name="schoolFilter" value="Other") + | Other (#{candidatesInFilter("schoolFilter","Other")}) + .filter_section#role_filter + h4 Role + label + input(type="checkbox" name="roleFilter" value="Web Developer") + | Web Developer (#{candidatesInFilter("roleFilter","Web Developer")}) + label + input(type="checkbox" name="roleFilter" value="Software Developer") + | Software Developer (#{candidatesInFilter("roleFilter","Software Developer")}) + label + input(type="checkbox" name="roleFilter" value="Mobile Developer") + | Mobile Developer (#{candidatesInFilter("roleFilter","Mobile Developer")}) + .filter_section#seniority_filter + h4 Experience + label + input(type="checkbox" name="seniorityFilter" value="Senior") + | Senior (#{candidatesInFilter("seniorityFilter","Senior")}) + label + input(type="checkbox" name="seniorityFilter" value="Junior") + | Junior (#{candidatesInFilter("seniorityFilter","Junior")}) + label + input(type="checkbox" name="seniorityFilter" value="Recent Grad") + | Recent Grad (#{candidatesInFilter("seniorityFilter","Recent Grad")}) + label + input(type="checkbox" name="seniorityFilter" value="College Student") + | College Student (#{candidatesInFilter("seniorityFilter","College Student")}) + + //input#select_all_checkbox(type="checkbox" name="select_all" checked) + //| Select all + p#results #{numberOfCandidates} results + //button.btn#create-alert-button Create Alert - if !isEmployer && !me.isAdmin() + if !fullProfiles div#info_wrapper span.hiring-call-to-action h2#start-hiring(data-i18n="employers.start_hiring") Start hiring. diff --git a/app/views/employers_view.coffee b/app/views/employers_view.coffee index 13713a7a2..03ba35c85 100644 --- a/app/views/employers_view.coffee +++ b/app/views/employers_view.coffee @@ -128,11 +128,11 @@ module.exports = class EmployersView extends View return (_.filter candidates, (c) -> c.get('jobProfile').curated?[filterName] is filterValue).length else return Math.floor(Math.random() * 500) - + getActiveAndApprovedCandidates: => candidates = _.filter @candidates.models, (c) -> c.get('jobProfile').active return _.filter candidates, (c) -> c.get('jobProfileApproved') - + getRenderData: -> ctx = super() ctx.isEmployer = @isEmployer() @@ -143,7 +143,7 @@ module.exports = class EmployersView extends View ctx.activeCandidates = _.filter ctx.candidates, (c) -> c.get('jobProfile').active ctx.inactiveCandidates = _.reject ctx.candidates, (c) -> c.get('jobProfile').active ctx.featuredCandidates = _.filter ctx.activeCandidates, (c) -> c.get('jobProfileApproved') - + unless @isEmployer() or me.isAdmin() ctx.featuredCandidates = _.filter ctx.featuredCandidates, (c) -> c.get('jobProfile').curated ctx.featuredCandidates = ctx.featuredCandidates.slice(0,7) @@ -156,7 +156,6 @@ module.exports = class EmployersView extends View ctx.moment = moment ctx._ = _ ctx.numberOfCandidates = ctx.featuredCandidates.length - ctx.isntEmployer = not (@isEmployer() or me.isAdmin()) ctx isEmployer: -> From 4d50a6d76ac1a7ddbae22effffae62d272006344 Mon Sep 17 00:00:00 2001 From: gosnat Date: Wed, 9 Jul 2014 08:02:58 -0500 Subject: [PATCH 053/106] Update play_view.coffee Added "Guide Everyone Home" level --- app/views/play_view.coffee | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/app/views/play_view.coffee b/app/views/play_view.coffee index 4db520f00..4dea0a4f6 100644 --- a/app/views/play_view.coffee +++ b/app/views/play_view.coffee @@ -248,6 +248,13 @@ module.exports = class PlayView extends View image: '/file/db/level/529662dfe0df8f0000000007/grab_the_mushroom_icon.png' description: 'Collect a hundred mushrooms in just five lines of code - by Nathan Gossett' } + { + name: 'Guide Everyone Home' + difficulty: 2 + id: 'guide-everyone-home' + image: '/file/db/level/52740644904ac0411700067c/rescue_mission_icon.png' + description: 'Fetch the wizards teleporting into the area - by Nathan Gossett' + } ] context.campaigns = [ From a7690f0931a6eee1eff9fb7381d84f536e95bfc2 Mon Sep 17 00:00:00 2001 From: Scott Erickson Date: Wed, 9 Jul 2014 10:10:43 -0700 Subject: [PATCH 054/106] Fixed #1198 --- server/patches/patch_handler.coffee | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/server/patches/patch_handler.coffee b/server/patches/patch_handler.coffee index f9c3a2224..bb376bbdf 100644 --- a/server/patches/patch_handler.coffee +++ b/server/patches/patch_handler.coffee @@ -62,7 +62,7 @@ PatchHandler = class PatchHandler extends Handler return unless watchers?.length User.find({_id: {$in: watchers}}).select({email: 1, name: 1}).exec (err, watchers) => for watcher in watchers - @sendPatchCreatedEmail req.user, watcher, doc, doc.targetLoaded, req.body.editPath + @sendPatchCreatedEmail req.user, watcher, doc, doc.targetLoaded, req.headers['x-current-path'] sendPatchCreatedEmail: (patchCreator, watcher, patch, target, editPath) -> # return if watcher._id is patchCreator._id From 3fbce8334ddddb6a2f2aa02e6ee9582eb9f2452e Mon Sep 17 00:00:00 2001 From: Scott Erickson Date: Wed, 9 Jul 2014 10:47:02 -0700 Subject: [PATCH 055/106] Fixed #1276 --- app/views/account/wizard_settings_view.coffee | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/views/account/wizard_settings_view.coffee b/app/views/account/wizard_settings_view.coffee index 0c014fa22..7035cdc45 100644 --- a/app/views/account/wizard_settings_view.coffee +++ b/app/views/account/wizard_settings_view.coffee @@ -52,7 +52,7 @@ module.exports = class WizardSettingsView extends CocoView exists: wizardSettings[name] rgb: hslToHex(hsl) } - c.colorGroups = (f(colorName) for colorName in _.keys colorGroups) + c.colorGroups = (f(colorName) for colorName in _.keys colorGroups when colorName isnt 'team') c afterRender: -> From ac95d775e68f5b3aab31f7c57bbdf19550c4f3bb Mon Sep 17 00:00:00 2001 From: Ruben Vereecken Date: Wed, 9 Jul 2014 20:23:05 +0200 Subject: [PATCH 056/106] Users can now be gotten by slug --- app/lib/utils.coffee | 2 ++ app/models/User.coffee | 23 +++++++++++++++++++++++ app/schemas/models/user.coffee | 8 ++++++-- server/users/User.coffee | 3 +++ server/users/user_handler.coffee | 2 +- test/app/models/User.spec.coffee | 0 6 files changed, 35 insertions(+), 3 deletions(-) create mode 100644 test/app/models/User.spec.coffee diff --git a/app/lib/utils.coffee b/app/lib/utils.coffee index a63a1274d..430a9d8fb 100644 --- a/app/lib/utils.coffee +++ b/app/lib/utils.coffee @@ -76,6 +76,8 @@ module.exports.getByPath = (target, path) -> obj = obj[piece] obj +module.exports.isID = (id) -> _.isString(id) and id.length is 24 and id.match(/[a-f0-9]/gi)?.length is 24 + module.exports.round = _.curry (digits, n) -> n = +n.toFixed(digits) diff --git a/app/models/User.coffee b/app/models/User.coffee index 1086e1373..cdaf1e86a 100644 --- a/app/models/User.coffee +++ b/app/models/User.coffee @@ -1,6 +1,7 @@ GRAVATAR_URL = 'https://www.gravatar.com/' cache = {} CocoModel = require './CocoModel' +util = require 'lib/utils' module.exports = class User extends CocoModel @className: 'User' @@ -45,6 +46,28 @@ module.exports = class User extends CocoModel cache[id] = user user + # callbacks can be either success or error + @getByIDOrSlug: (idOrSlug, force, callbacks={}) -> + {me} = require 'lib/auth' + isID = util.isID idOrSlug + if me.id is idOrSlug or me.slug is idOrSlug + callbacks.success me if callbacks.success? + return me + cached = cache[idOrSlug] + user = cached or new @ _id: idOrSlug + if force or not cached + user.loading = true + user.fetch + success: -> + user.loading = false + Backbone.Mediator.publish 'user:fetched' + callbacks.success user if callbacks.success? + error: -> + user.loading = false + callbacks.error user if callbacks.error? + cache[idOrSlug] = user + user + getEnabledEmails: -> @migrateEmails() emails = _.clone(@get('emails')) or {} diff --git a/app/schemas/models/user.coffee b/app/schemas/models/user.coffee index edb2279bb..b34ec1dea 100644 --- a/app/schemas/models/user.coffee +++ b/app/schemas/models/user.coffee @@ -1,8 +1,12 @@ c = require './../schemas' emailSubscriptions = ['announcement', 'tester', 'level_creator', 'developer', 'article_editor', 'translator', 'support', 'notification'] -UserSchema = c.object {}, - name: c.shortString({title: 'Display Name', default: ''}) +UserSchema = c.object + title: 'User' + +c.extendNamedProperties UserSchema # let's have the name be the first property + +_.extend UserSchema.properties, email: c.shortString({title: 'Email', format: 'email'}) firstName: c.shortString({title: 'First Name'}) lastName: c.shortString({title: 'Last Name'}) diff --git a/server/users/User.coffee b/server/users/User.coffee index 421335a21..fc7440ef3 100644 --- a/server/users/User.coffee +++ b/server/users/User.coffee @@ -4,6 +4,7 @@ crypto = require 'crypto' {salt, isProduction} = require '../../server_config' mail = require '../commons/mail' log = require 'winston' +plugins = require '../plugins/plugins' sendwithus = require '../sendwithus' @@ -136,6 +137,8 @@ UserSchema.statics.hashPassword = (password) -> shasum.update(salt + password) shasum.digest('hex') +UserSchema.plugin plugins.NamedPlugin + module.exports = User = mongoose.model('User', UserSchema) AchievablePlugin = require '../plugins/achievements' diff --git a/server/users/user_handler.coffee b/server/users/user_handler.coffee index f8b608255..45b0253f0 100644 --- a/server/users/user_handler.coffee +++ b/server/users/user_handler.coffee @@ -116,7 +116,7 @@ UserHandler = class UserHandler extends Handler ] getById: (req, res, id) -> - if req.user?._id.equals(id) + if Handler.isID(id) and req.user?._id.equals(id) return @sendSuccess(res, @formatEntity(req, req.user, 256)) super(req, res, id) diff --git a/test/app/models/User.spec.coffee b/test/app/models/User.spec.coffee new file mode 100644 index 000000000..e69de29bb From 44e5c2826c6703775cb0830f6e0442988be8ae4e Mon Sep 17 00:00:00 2001 From: Nick Winter Date: Wed, 9 Jul 2014 11:59:21 -0700 Subject: [PATCH 057/106] Proper Treema node behavior for different code languages in default code, property documentation, and snippets. --- app/schemas/models/level_component.coffee | 19 +++++------- app/schemas/schemas.coffee | 8 ++--- app/treema-ext.coffee | 36 +++++++++++++++++------ 3 files changed, 37 insertions(+), 26 deletions(-) diff --git a/app/schemas/models/level_component.coffee b/app/schemas/models/level_component.coffee index b97cb7d1e..a974d6dc7 100644 --- a/app/schemas/models/level_component.coffee +++ b/app/schemas/models/level_component.coffee @@ -33,6 +33,7 @@ PropertyDocumentationSchema = c.object { title: 'Language Descriptions', description: 'Property descriptions by code language.', additionalProperties: {type: 'string', description: 'Description of the property.', maxLength: 1000, format: 'markdown'} + format: 'code-languages-object' } ] args: c.array {title: 'Arguments', description: 'If this property has type "function", then provide documentation for any function arguments.'}, c.FunctionArgumentSchema @@ -44,19 +45,11 @@ PropertyDocumentationSchema = c.object { type: 'object', title: 'Language Examples', description: 'Examples by code language.', - additionalProperties: {type: 'string', description: 'An example code block.', format: 'javascript'} # TODO: not JS + additionalProperties: {type: 'string', description: 'An example code block.', format: 'code'} + format: 'code-languages-object' } ] - snippets: c.object { - title: 'Snippets', - description: 'List of snippets for the respective programming languages' - }, - javascript: c.object {title: 'JavaScript'}, c.codeSnippet 'javascript' - coffeescript: c.object {title: 'CoffeeScript'}, c.codeSnippet 'coffee' - python: c.object {title: 'Python'}, c.codeSnippet 'python' - clojure: c.object {title: 'Clojure'}, c.codeSnippet 'clojure' - lua: c.object {title: 'Lua'}, c.codeSnippet 'lua' - io: c.object {title: 'IO'}, c.codeSnippet 'io' + snippets: {type: 'object', title: 'Snippets', description: 'List of snippets for the respective programming languages', additionalProperties: c.codeSnippet, format: 'code-languages-object'} returns: c.object { title: 'Return Value' description: 'Optional documentation of any return value.' @@ -71,7 +64,8 @@ PropertyDocumentationSchema = c.object { type: 'object', title: 'Language Examples', description: 'Example return values by code language.', - additionalProperties: c.shortString(description: 'Example return value.', format: 'javascript') # TODO: not JS + additionalProperties: c.shortString(description: 'Example return value.', format: 'code') + format: 'code-languages-object' } ] description: @@ -82,6 +76,7 @@ PropertyDocumentationSchema = c.object { title: 'Language Descriptions', description: 'Example return values by code language.', additionalProperties: {type: 'string', description: 'Description of the return value.', maxLength: 1000} + format: 'code-languages-object' } ] diff --git a/app/schemas/schemas.coffee b/app/schemas/schemas.coffee index 8474a9be0..7b8775b68 100644 --- a/app/schemas/schemas.coffee +++ b/app/schemas/schemas.coffee @@ -186,11 +186,9 @@ me.FunctionArgumentSchema = me.object { description: 'Default value of the argument. (Your code should set this.)' 'default': null -me.codeSnippet = (mode) -> - return snippet = - code: {type: 'string', title: 'Snippet', default: '', description: 'Code snippet. Use ${1:defaultValue} syntax to add flexible arguments'} - # code: {type: 'string', format: 'ace', aceMode: 'ace/mode/'+mode, title: 'Snippet', default: '', description: 'Code snippet. Use ${1:defaultValue} syntax to add flexible arguments'} - tab: {type: 'string', title: 'Tab Trigger', description: 'Tab completion text. Will be expanded to the snippet if typed and hit tab.'} +me.codeSnippet = + code: {type: 'string', title: 'Snippet', default: '', description: 'Code snippet. Use ${1:defaultValue} syntax to add flexible arguments'} + tab: {type: 'string', title: 'Tab Trigger', description: 'Tab completion text. Will be expanded to the snippet if typed and hit tab.'} me.activity = me.object {description: 'Stats on an activity'}, first: me.date() diff --git a/app/treema-ext.coffee b/app/treema-ext.coffee index 0bb6772e6..a56b4a45a 100644 --- a/app/treema-ext.coffee +++ b/app/treema-ext.coffee @@ -197,14 +197,28 @@ class ImageFileTreema extends TreemaNode.nodeMap.string @flushChanges() @refreshDisplay() -class CoffeeTreema extends TreemaNode.nodeMap.ace + +codeLanguages = + javascript: 'ace/mode/javascript' + coffeescript: 'ace/mode/coffee' + python: 'ace/mode/python' + clojure: 'ace/mode/clojure' + lua: 'ace/mode/lua' + io: 'ace/mode/text' + +class CodeLanguagesObjectTreema extends TreemaNode.nodeMap.object + childPropertiesAvailable: -> + (key for key in _.keys(codeLanguages) when not @data[key]?) + +class CodeTreema extends TreemaNode.nodeMap.ace constructor: -> super(arguments...) - @schema.aceMode = 'ace/mode/coffee' - @schema.aceTabSize = 2 + @schema.aceTabSize = 4 buildValueForEditing: (valEl) -> super(valEl) + if not @schema.aceMode and mode = codeLanguages[@keyForParent] + @editor.getSession().setMode mode @editor.on('change', @onEditorChange) valEl @@ -213,15 +227,18 @@ class CoffeeTreema extends TreemaNode.nodeMap.ace @flushChanges() @getRoot().broadcastChanges() -class JavaScriptTreema extends CoffeeTreema +class CoffeeTreema extends CodeTreema + constructor: -> + super(arguments...) + @schema.aceMode = 'ace/mode/coffee' + @schema.aceTabSize = 2 + +class JavaScriptTreema extends CodeTreema constructor: -> super(arguments...) @schema.aceMode = 'ace/mode/javascript' @schema.aceTabSize = 4 -KB = 1024 -MB = 1024*1024 - class InternationalizationNode extends TreemaNode.nodeMap.object findLanguageName: (languageCode) -> @@ -246,8 +263,7 @@ class InternationalizationNode extends TreemaNode.nodeMap.object #this must be filled out in order for the i18n node to work childPropertiesAvailable: -> - return _.keys locale - + (key for key in _.keys(locale) when not @data[key]?) class LatestVersionCollection extends CocoCollection @@ -395,6 +411,8 @@ module.exports.setup = -> TreemaNode.setNodeSubclass('date-time', DateTimeTreema) TreemaNode.setNodeSubclass('version', VersionTreema) TreemaNode.setNodeSubclass('markdown', LiveEditingMarkup) + TreemaNode.setNodeSubclass('code-languages-object', CodeLanguagesObjectTreema) + TreemaNode.setNodeSubclass('code', CodeTreema) TreemaNode.setNodeSubclass('coffee', CoffeeTreema) TreemaNode.setNodeSubclass('javascript', JavaScriptTreema) TreemaNode.setNodeSubclass('image-file', ImageFileTreema) From d74a778f67bc289fa0d2355e2bf23bfbcc4fe5f9 Mon Sep 17 00:00:00 2001 From: Scott Erickson Date: Wed, 9 Jul 2014 12:19:49 -0700 Subject: [PATCH 058/106] Made creating components open to everyone! --- app/templates/editor/level/component/new.jade | 5 ++++- app/templates/editor/level/components_tab.jade | 2 +- app/views/editor/level/component/new.coffee | 7 ++++++- server/levels/components/level_component_handler.coffee | 4 ---- 4 files changed, 11 insertions(+), 7 deletions(-) diff --git a/app/templates/editor/level/component/new.jade b/app/templates/editor/level/component/new.jade index 6af6f987c..139ecb616 100644 --- a/app/templates/editor/level/component/new.jade +++ b/app/templates/editor/level/component/new.jade @@ -7,7 +7,10 @@ block modal-body-content form.form .form-group label(for="level-component-system", data-i18n="editor.new_component_field_system").control-label System - input.form-control#level-component-system(name="system", type="text") + select.form-control#level-component-system(name='system') + for system in systems + option(value=system)= system + //input.form-control#level-component-system(name="system", type="text") .form-group label(for="level-component-name", data-i18n="general.name").control-label Name input.form-control#level-component-name(name="name", type="text") diff --git a/app/templates/editor/level/components_tab.jade b/app/templates/editor/level/components_tab.jade index d457ade2a..235cb9f71 100644 --- a/app/templates/editor/level/components_tab.jade +++ b/app/templates/editor/level/components_tab.jade @@ -6,7 +6,7 @@ #components-treema.nano-content .edit-component-container - if me.isAdmin() + if !me.get('anonymous') button.btn.btn-primary#create-new-component-button-no-select span.icon-plus span.text(data-i18n="editor.level_component_btn_new") Create New Component diff --git a/app/views/editor/level/component/new.coffee b/app/views/editor/level/component/new.coffee index 072a69df6..a1f2985ce 100644 --- a/app/views/editor/level/component/new.coffee +++ b/app/views/editor/level/component/new.coffee @@ -13,7 +13,12 @@ module.exports = class LevelComponentNewView extends View events: 'click #new-level-component-submit': 'makeNewLevelComponent' 'submit form': 'makeNewLevelComponent' - + + getRenderData: -> + c = super() + c.systems = LevelComponent.schema.properties.system.enum + c + makeNewLevelComponent: (e) -> e.preventDefault() system = @$el.find('#level-component-system').val() diff --git a/server/levels/components/level_component_handler.coffee b/server/levels/components/level_component_handler.coffee index 889619d8d..0dd44ec4a 100644 --- a/server/levels/components/level_component_handler.coffee +++ b/server/levels/components/level_component_handler.coffee @@ -21,8 +21,4 @@ LevelComponentHandler = class LevelComponentHandler extends Handler props.push('official') if req.user?.isAdmin() props - hasAccess: (req) -> - req.method in ['GET', 'PUT'] or req.user?.isAdmin() - - module.exports = new LevelComponentHandler() From ea4523bf6a0c560ff7b013d4262fa03c9a00f27b Mon Sep 17 00:00:00 2001 From: Ruben Vereecken Date: Wed, 9 Jul 2014 21:29:57 +0200 Subject: [PATCH 059/106] Test coverage for GETting users by slug --- test/server/functional/user.spec.coffee | 70 ++++++++++++++++++------- 1 file changed, 52 insertions(+), 18 deletions(-) diff --git a/test/server/functional/user.spec.coffee b/test/server/functional/user.spec.coffee index 5395566a4..8f1bedbcd 100644 --- a/test/server/functional/user.spec.coffee +++ b/test/server/functional/user.spec.coffee @@ -44,20 +44,6 @@ describe 'User.updateMailChimp', -> describe 'POST /db/user', -> - createAnonNameUser = (done)-> - request.post getURL('/auth/logout'), -> - request.get getURL('/auth/whoami'), -> - req = request.post(getURL('/db/user'), (err, response) -> - expect(response.statusCode).toBe(200) - request.get getURL('/auth/whoami'), (request, response, body) -> - res = JSON.parse(response.body) - expect(res.anonymous).toBeTruthy() - expect(res.name).toEqual('Jim') - done() - ) - form = req.form() - form.append('name', 'Jim') - it 'preparing test : clears the db first', (done) -> clearModels [User], (err) -> throw err if err @@ -105,11 +91,32 @@ describe 'POST /db/user', -> done() it 'should allow setting anonymous user name', (done) -> - createAnonNameUser(done) - - it 'should allow multiple anonymous users with same name', (done) -> - createAnonNameUser(done) + request.post getURL('/auth/logout'), -> + request.get getURL('/auth/whoami'), -> + req = request.post(getURL('/db/user'), (err, response) -> + expect(response.statusCode).toBe(200) + request.get getURL('/auth/whoami'), (request, response, body) -> + res = JSON.parse(response.body) + expect(res.anonymous).toBeTruthy() + expect(res.name).toEqual('Jim') + done() + ) + form = req.form() + form.append('name', 'Jim') + it 'should not allow multiple anonymous users with same name anymore', (done) -> + request.post getURL('/auth/logout'), -> + request.get getURL('/auth/whoami'), -> + req = request.post(getURL('/db/user'), (err, response) -> + expect(response.statusCode).toBe(409) + request.get getURL('/auth/whoami'), (request, response, body) -> + res = JSON.parse(response.body) + expect(res.anonymous).toBeTruthy() + expect(res.name).not.toEqual('Jim') + done() + ) + form = req.form() + form.append('name', 'Jim') it 'should not allow setting existing user name to anonymous user', (done) -> @@ -267,3 +274,30 @@ describe 'GET /db/user', -> expect(response.statusCode).toBe(422) done() ) + + it 'can fetch myself by id completely', (done) -> + loginSam (sam) -> + request.get {url: getURL(urlUser + '/' + sam.id)}, (err, response) -> + expect(err).toBeNull() + expect(response.statusCode).toBe(200) + done() + + # TODO Ruben should be able to fetch other users but probably with restricted data access + # Add to the test case above an extra data check + + it 'can fetch myself by slug completely', (done) -> + loginSam (sam) -> + request.get {url: getURL(urlUser + '/sam')}, (err, response) -> + expect(err).toBeNull() + expect(response.statusCode).toBe(200) + guy = JSON.parse response.body + expect(guy._id).toBe sam.get('_id').toHexString() + expect(guy.name).toBe sam.get 'name' + done() + + + + + + + From a8353cb7ffa77a2386a6d3ad74892593cfb44ea0 Mon Sep 17 00:00:00 2001 From: Ruben Vereecken Date: Wed, 9 Jul 2014 21:33:25 +0200 Subject: [PATCH 060/106] Anonymous users can have the same name --- server/plugins/plugins.coffee | 2 +- test/server/functional/user.spec.coffee | 40 ++++++++++--------------- 2 files changed, 17 insertions(+), 25 deletions(-) diff --git a/server/plugins/plugins.coffee b/server/plugins/plugins.coffee index e36bb16de..872df064a 100644 --- a/server/plugins/plugins.coffee +++ b/server/plugins/plugins.coffee @@ -41,7 +41,7 @@ module.exports.NamedPlugin = (schema) -> err.response = {message: ' is a reserved name', property: 'name'} err.code = 422 return next(err) - if newSlug isnt @get('slug') + if newSlug not in [@get('slug'), ""] and not @get 'anonymous' @set('slug', newSlug) @checkSlugConflicts(next) else diff --git a/test/server/functional/user.spec.coffee b/test/server/functional/user.spec.coffee index 8f1bedbcd..4b0e4ffca 100644 --- a/test/server/functional/user.spec.coffee +++ b/test/server/functional/user.spec.coffee @@ -44,6 +44,20 @@ describe 'User.updateMailChimp', -> describe 'POST /db/user', -> + createAnonNameUser = (name, done)-> + request.post getURL('/auth/logout'), -> + request.get getURL('/auth/whoami'), -> + req = request.post(getURL('/db/user'), (err, response) -> + expect(response.statusCode).toBe(200) + request.get getURL('/auth/whoami'), (request, response, body) -> + res = JSON.parse(response.body) + expect(res.anonymous).toBeTruthy() + expect(res.name).toEqual(name) + done() + ) + form = req.form() + form.append('name', name) + it 'preparing test : clears the db first', (done) -> clearModels [User], (err) -> throw err if err @@ -91,32 +105,10 @@ describe 'POST /db/user', -> done() it 'should allow setting anonymous user name', (done) -> - request.post getURL('/auth/logout'), -> - request.get getURL('/auth/whoami'), -> - req = request.post(getURL('/db/user'), (err, response) -> - expect(response.statusCode).toBe(200) - request.get getURL('/auth/whoami'), (request, response, body) -> - res = JSON.parse(response.body) - expect(res.anonymous).toBeTruthy() - expect(res.name).toEqual('Jim') - done() - ) - form = req.form() - form.append('name', 'Jim') + createAnonNameUser('Jim', done) it 'should not allow multiple anonymous users with same name anymore', (done) -> - request.post getURL('/auth/logout'), -> - request.get getURL('/auth/whoami'), -> - req = request.post(getURL('/db/user'), (err, response) -> - expect(response.statusCode).toBe(409) - request.get getURL('/auth/whoami'), (request, response, body) -> - res = JSON.parse(response.body) - expect(res.anonymous).toBeTruthy() - expect(res.name).not.toEqual('Jim') - done() - ) - form = req.form() - form.append('name', 'Jim') + createAnonNameUser('Jim', done) it 'should not allow setting existing user name to anonymous user', (done) -> From 4309bfbe672bac3f4289812d8ec6aba5cff8f709 Mon Sep 17 00:00:00 2001 From: Darredevil Date: Wed, 9 Jul 2014 23:01:53 +0300 Subject: [PATCH 061/106] new Documentation page --- app/styles/docs/components.sass | 30 ++++++++++++++++++++++++++- app/templates/docs/components.jade | 23 +++++++++++++++++--- app/views/docs/components_view.coffee | 1 + 3 files changed, 50 insertions(+), 4 deletions(-) diff --git a/app/styles/docs/components.sass b/app/styles/docs/components.sass index 177b11a39..63146250d 100644 --- a/app/styles/docs/components.sass +++ b/app/styles/docs/components.sass @@ -1,2 +1,30 @@ #docs-components-view - color: saddlebrown \ No newline at end of file + color: saddlebrown + +.main + position : relative + + .left + bottom: 10em + left: 10em + overflow-y: scroll + overflow-x: hidden + position: fixed + top: 5em + white-space: nowrap + width: 20% + -webkit-overflow-scrolling: touch + + .right + left: 28em + bottom: 10em + position: fixed + overflow-y: scroll + overflow-x: hidden + right: 10em + top: 5em + //width: 80% + -webkit-overflow-scrolling: touch + + .specialList + list-style-type: none \ No newline at end of file diff --git a/app/templates/docs/components.jade b/app/templates/docs/components.jade index 20c3afb27..ceb0b5d72 100644 --- a/app/templates/docs/components.jade +++ b/app/templates/docs/components.jade @@ -1,6 +1,23 @@ extends /templates/base + block content - ul - for component in components - li= component.get('name') \ No newline at end of file + div.main + div.left + ul + for component in components + li= component.get('name') + ul + each doc in component.attributes.propertyDocumentation + a(href="##{component.get('name')}#{doc.name}") + li + | #{doc.name} + + div.right + ul + for component in components + each doc in component.attributes.propertyDocumentation + li(id="#{component.get('name')}#{doc.name}") + | #{doc.name} + ul.specialList + li=doc.description diff --git a/app/views/docs/components_view.coffee b/app/views/docs/components_view.coffee index f80decee3..14f942e44 100644 --- a/app/views/docs/components_view.coffee +++ b/app/views/docs/components_view.coffee @@ -18,6 +18,7 @@ module.exports = class UnnamedView extends RootView onLoaded: -> console.log 'we have the components...', (c.get('name') for c in @componentDocs.models) + console.log 'we have the attributes...', (c.attributes for c in @componentDocs.models) super() getRenderData: -> From 0ee0b2d5e384ebd2aec30881d36a4403871d980d Mon Sep 17 00:00:00 2001 From: Alphir Date: Wed, 9 Jul 2014 22:13:05 +0200 Subject: [PATCH 062/106] Update fr.coffee --- app/locale/fr.coffee | 84 ++++++++++++++++++++++---------------------- 1 file changed, 42 insertions(+), 42 deletions(-) diff --git a/app/locale/fr.coffee b/app/locale/fr.coffee index 5a55252d0..45dc5903b 100644 --- a/app/locale/fr.coffee +++ b/app/locale/fr.coffee @@ -235,7 +235,7 @@ module.exports = nativeDescription: "français", englishDescription: "French", t basics_city_help: "Ville dans laquelle vous souhaitez travailler (ou dans laquelle vous vivez actuellement)." basics_country: "Pays" basics_country_help: "Pays dans lequel vous souhaitez travailler (ou dans lequel vous vivez actuellement)." - basics_visa: "Status de travail aux Etats-Unis" + basics_visa: "Statut de travail aux Etats-Unis" basics_visa_help: "Etes vous autorisé à travailler aux Etats-Unis ou avez vous besoin d'un parrainage pour le visa ?" basics_looking_for: "Recherche" basics_looking_for_full_time: "Temps plein" @@ -248,60 +248,60 @@ module.exports = nativeDescription: "français", englishDescription: "French", t name_anonymous: "Developpeur Anonyme" name_help: "Le nom que vous souhaitez que l'employeur voie, par exemple 'Chuck Norris'." short_description_header: "Décrivez vous en quelques mots" -# short_description_blurb: "Add a tagline to help an employer quickly learn more about you." + short_description_blurb: "Ajoutez une phrase d'accroche pour permettre à un employeur d'en savoir plus sur vous." short_description: "Description courte" short_description_help: "Qui êtes vous et que recherchez vous ? 140 caractères max." skills_header: "Compétences" skills_help: "Notez vos compétence de développement par ordre de maitrise." long_description_header: "Détaillez votre poste souhaité" -# long_description_blurb: "Tell employers how awesome you are and what role you want." -# long_description: "Self Description" -# long_description_help: "Describe yourself to potential employers. Keep it short and to the point. We recommend outlining the position that would most interest you. Tasteful markdown okay; 600 characters max." + long_description_blurb: "Faites savoir aux employeurs combien vous êtes génial et quel poste vous voulez." + long_description: "Biographie" + long_description_help: "Décrivez-vous aux potentiels employeurs. Soyez bref et direct. Nous vous recommandons de bien indiquer quel poste vous intéresse le plus. 600 caractères max." work_experience: "Experience de travail" -# work_header: "Chronicle your work history" -# work_years: "Years of Experience" -# work_years_help: "How many years of professional experience (getting paid) developing software do you have?" -# work_blurb: "List your relevant work experience, most recent first." -# work_employer: "Employer" -# work_employer_help: "Name of your employer." -# work_role: "Job Title" -# work_role_help: "What was your job title or role?" -# work_duration: "Duration" + work_header: "Présentez votre parcours professionnel" + work_years: "Années d'expérience" + work_years_help: "Combien d'années d'expérience professionnelle (salarié) avez-vous dans le développement logiciel ?" + work_blurb: "Lister vos missions les plus pertinentes, les plus récentes en premier." + work_employer: "Employeur" + work_employer_help: "Nom de votre employeur." + work_role: "Titre du poste" + work_role_help: "Quel était l'intitulé de votre mission ou votre poste ?" + work_duration: "Durée" # work_duration_help: "When did you hold this gig?" -# work_description: "Description" -# work_description_help: "What did you do there? (140 chars; optional)" + work_description: "Description" + work_description_help: "Qu'est-ce que vous y avez fait ? (140 carac.; optionel)" education: "Education" -# education_header: "Recount your academic ordeals" -# education_blurb: "List your academic ordeals." -# education_school: "School" -# education_school_help: "Name of your school." -# education_degree: "Degree" -# education_degree_help: "What was your degree and field of study?" -# education_duration: "Dates" -# education_duration_help: "When?" -# education_description: "Description" -# education_description_help: "Highlight anything about this educational experience. (140 chars; optional)" + education_header: "Racontez vos exploits scolaires" + education_blurb: "Lister vos exploits scolaires." + education_school: "Etablissement" + education_school_help: "Nom de l'établissement." + education_degree: "Diplôme" + education_degree_help: "Quel était votre diplôme et votre domaine d'étude ?" + education_duration: "Dates" + education_duration_help: "Quand ?" + education_description: "Description" + education_description_help: "Mettez en avant ce que vous voulez à propos de votre parcours scolaire. (140 carac.; optionel)" our_notes: "Notes" projects: "Projets" -# projects_header: "Add 3 projects" -# projects_header_2: "Projects (Top 3)" -# projects_blurb: "Highlight your projects to amaze employers." -# project_name: "Project Name" -# project_name_help: "What was the project called?" -# project_description: "Description" -# project_description_help: "Briefly describe the project." -# project_picture: "Picture" -# project_picture_help: "Upload a 230x115px or larger image showing off the project." -# project_link: "Link" -# project_link_help: "Link to the project." + projects_header: "Ajoutez 3 projets" + projects_header_2: "Projets (Top 3)" + projects_blurb: "Mettez en avant vos projets pour épater les employeurs." + project_name: "Nom du projet" + project_name_help: "Comment avez-vous appelé votre projet ?" + project_description: "Description" + project_description_help: "Décrivez brièvement le projet." + project_picture: "Image" + project_picture_help: "Chargez une image de 230x115px oou plus grande pour présenter votre projet." + project_link: "Lien" + project_link_help: "Lien vers le projet." # player_code: "Player Code" employers: -# want_to_hire_our_players: "Hire CodeCombat Players" -# what: "What is CodeCombat?" -# what_blurb: "CodeCombat is a multiplayer browser programming game. Players write code to control their forces in battle against other developers. We support JavaScript, Python, Lua, Clojure, CoffeeScript, and Io." -# who: "Who Are the Players?" -# who_blurb: "CodeCombateers are software developers who enjoy using their programming skills to play games. They range from college seniors at top 20 engineering programs to 20-year industry veterans." + want_to_hire_our_players: "Embaucher un Joueur CodeCombat" + what: "Qu'est-ce que CodeCombat?" + what_blurb: "CodeCombat est un jeu de programmation multijoueur par navigateur. Les Joueurs écrivent le code pour contrôler leurs troupes dans des batailles contre d'autres développeurs. Nous prenons en charge JavaScript, Python, Lua, Clojure, CoffeeScript, et Io." + who: "Qui sont les Joueurs ?" + who_blurb: "CodeCombatants sont des développeurs logiciel qui aiment utiliser leurs compétences en programmation pour jouer. Ils sont tout aussi bien des étudiants issus des 20 meilleures écoles d'ingénieurs que des vétérans dans le milieu depuis plus de 20 ans." # how: "How Do We Find Developers?" # how_blurb: "We host competitive tournaments to attract competitive software engieneers. We then use in-house algorithms to identify the best players among the top 5% of tournament winners." # why: "Why Hire Through Us?" From 0ed8d2b3711e42e4466a898902da5ef2bbadc513 Mon Sep 17 00:00:00 2001 From: Nick Winter Date: Wed, 9 Jul 2014 13:41:42 -0700 Subject: [PATCH 063/106] Merged in the full-screen editor, and fixed a spell palette multi-language bug while at it. --- app/styles/play/level.sass | 6 ++++ app/styles/play/level/tome/problem_alert.sass | 28 +++++++++++++++---- app/styles/play/level/tome/spell.sass | 17 ++++++++++- app/styles/play/level/tome/spell_debug.sass | 10 +++++-- app/styles/play/level/tome/spell_list.sass | 9 ++++-- .../play/level/tome/spell_list_entry.sass | 25 ++++++++++++++--- .../level/tome/spell_list_entry_thangs.sass | 11 ++++++-- app/styles/play/level/tome/spell_palette.sass | 15 +++++++++- app/styles/play/level/tome/tome.sass | 12 ++++++-- app/templates/play/level/tome/spell.jade | 1 + .../play/level/tome/spell_list_tab_entry.jade | 5 ++++ .../play/level/tome/spell_palette.jade | 1 + app/views/play/level/modal/docs_modal.coffee | 1 - .../play/level/tome/doc_formatter.coffee | 3 +- .../tome/spell_list_tab_entry_view.coffee | 9 ++++++ bower.json | 6 +++- 16 files changed, 135 insertions(+), 24 deletions(-) diff --git a/app/styles/play/level.sass b/app/styles/play/level.sass index 64ea6e43a..3abc58d24 100644 --- a/app/styles/play/level.sass +++ b/app/styles/play/level.sass @@ -37,6 +37,12 @@ body.is-playing right: 0 top: 0px bottom: 0 + transition: width 0.5s ease-in-out + &.fullscreen-editor + position: fixed + width: 100% + height: 100% + z-index: 20 #pointer position: absolute diff --git a/app/styles/play/level/tome/problem_alert.sass b/app/styles/play/level/tome/problem_alert.sass index df410f680..d26a3ad5b 100644 --- a/app/styles/play/level/tome/problem_alert.sass +++ b/app/styles/play/level/tome/problem_alert.sass @@ -6,13 +6,14 @@ bottom: -120px left: 10px right: 10px - background: transparent url(/images/level/code_editor_error_background.png) no-repeat - background-size: 100% 100% + background: transparent border: 0 padding: 18px 35px 18px 14px text-shadow: none color: white word-wrap: break-word + border-image: url(/images/level/code_editor_error_background.png) 16 20 fill round + border-width: 16px 20px .close @include opacity(0.80) @@ -30,11 +31,28 @@ //&.alert-error &.alert-warning - background-image: url(/images/level/code_editor_warning_background.png) + border-image-source: url(/images/level/code_editor_warning_background.png) &.alert-info - background-image: url(/images/level/code_editor_info_background.png) + border-image-source: url(/images/level/code_editor_info_background.png) &.alert-style // Do we ever want to do this for style? - background-image: url(/images/level/code_editor_info_background.png) + border-image-source: url(/images/level/code_editor_info_background.png) + +html.no-borderimage + .problem-alert + border-width: 0 + border-image: none + background: transparent url(/images/level/code_editor_error_background.png) no-repeat + background-size: 100% 100% + + &.alert-warning + background-image: url(/images/level/code_editor_warning_background.png) + + &.alert-info + background-image: url(/images/level/code_editor_info_background.png) + + &.alert-style + // Do we ever want to do this for style? + background-image: url(/images/level/code_editor_info_background.png) \ No newline at end of file diff --git a/app/styles/play/level/tome/spell.sass b/app/styles/play/level/tome/spell.sass index 73d727457..291403dc0 100644 --- a/app/styles/play/level/tome/spell.sass +++ b/app/styles/play/level/tome/spell.sass @@ -26,6 +26,13 @@ top: 0 height: 100% width: 100% + + span.code-background + border-width: 22px + border-image: url(/images/level/code_editor_background.png) 22 fill round + + img.code-background + display: none .save-status display: none @@ -64,7 +71,7 @@ .ace_gutter background-color: rgba(255, 255, 255, 0.25) - width: 40px + width: 47px margin-left: 4px border-bottom: 1px dotted #2f261d @@ -133,3 +140,11 @@ .ace_searchbtn, .ace_replacebtn padding: 0px 4px + +html.no-borderimage + #spell-view + span.code-background + display: none + img.code-background + display: block + diff --git a/app/styles/play/level/tome/spell_debug.sass b/app/styles/play/level/tome/spell_debug.sass index 976675c2e..d06143caa 100644 --- a/app/styles/play/level/tome/spell_debug.sass +++ b/app/styles/play/level/tome/spell_debug.sass @@ -6,8 +6,8 @@ min-width: 250px max-width: 400px padding: 10px - background: transparent url(/images/level/popover_background.png) - background-size: 100% 100% + border-image: url(/images/level/popover_background.png) 18 fill round + border-width: 8px .progress position: relative span @@ -15,4 +15,10 @@ display: block color: black width: 100% + +html.no-borderimage + .spell-debug-view + background: transparent url(/images/level/popover_background.png) + background-size: 100% 100% + border: 0 diff --git a/app/styles/play/level/tome/spell_list.sass b/app/styles/play/level/tome/spell_list.sass index 0af5f314f..0692a47a0 100644 --- a/app/styles/play/level/tome/spell_list.sass +++ b/app/styles/play/level/tome/spell_list.sass @@ -8,6 +8,11 @@ left: 0% right: 10% padding: 4% - background: transparent url(/images/level/popover_background.png) - background-size: 100% 100% + border-image: url(/images/level/popover_background.png) 18 fill round + border-width: 15px +html.no-borderimage + #spell-list-view + background: transparent url(/images/level/popover_background.png) + background-size: 100% 100% + border: 0 \ No newline at end of file diff --git a/app/styles/play/level/tome/spell_list_entry.sass b/app/styles/play/level/tome/spell_list_entry.sass index 8d036dd57..8f8683c41 100644 --- a/app/styles/play/level/tome/spell_list_entry.sass +++ b/app/styles/play/level/tome/spell_list_entry.sass @@ -17,15 +17,15 @@ width: -webkit-calc(100% - 100px) width: calc(100% - 100px) padding: 0px 8px - background: transparent url(/images/level/code_editor_tab_background.png) no-repeat - background-size: 100% 100% + border-width: 3px + border-image: url(/images/level/code_editor_tab_background.png) 4 fill repeat text-align: center &.read-only background: linear-gradient(to bottom, rgba(0,0,0,0.2) 0%,rgba(0,0,0,0.2) 100%), url(/images/level/code_editor_tab_background.png) background-size: 100% 100% - .spell-list-button, .thang-avatar-wrapper, .reload-code, .beautify-code + .spell-list-button, .thang-avatar-wrapper, .reload-code, .beautify-code, .fullscreen-code width: $childSize height: $childSize margin: $childMargin @@ -41,6 +41,15 @@ .beautify-code float: right + .fullscreen-code + float: right + &:not(.maximized) + .icon-resize-small + display: none + &.maximized + .icon-fullscreen + display: none + .btn.btn-small background: transparent padding: 0 @@ -49,7 +58,7 @@ border-color: transparent @include box-shadow(none) - .icon-chevron-down, .icon-repeat, .icon-magnet + .icon-chevron-down, .icon-repeat, .icon-magnet, .icon-fullscreen, .icon-resize-small margin-top: 7px .thang-avatar-wrapper @@ -94,3 +103,11 @@ .thang-avatar-wrapper margin: 0 5px 0 0 //margin: 2px 10px 2px 5px + + +html.no-borderimage + .spell-list-entry-view.spell-tab + border-width: 0 + border-image: none + background: transparent url(/images/level/code_editor_tab_background.png) no-repeat + background-size: 100% 100% \ No newline at end of file diff --git a/app/styles/play/level/tome/spell_list_entry_thangs.sass b/app/styles/play/level/tome/spell_list_entry_thangs.sass index 0f005675a..5398423f9 100644 --- a/app/styles/play/level/tome/spell_list_entry_thangs.sass +++ b/app/styles/play/level/tome/spell_list_entry_thangs.sass @@ -10,8 +10,8 @@ max-height: 500px overflow: scroll padding: 4% - background: transparent url(/images/level/popover_background.png) - background-size: 100% 100% + border-image: url(/images/level/popover_background.png) 18 fill round + border-width: 15px .thang-avatar-view cursor: pointer @@ -20,4 +20,9 @@ display: inline-block - +html.no-borderimage + .spell-list-entry-view + .spell-list-entry-thangs-view + background: transparent url(/images/level/popover_background.png) + background-size: 100% 100% + border: 0 \ No newline at end of file diff --git a/app/styles/play/level/tome/spell_palette.sass b/app/styles/play/level/tome/spell_palette.sass index 5e19cc0ce..3e2f78794 100644 --- a/app/styles/play/level/tome/spell_palette.sass +++ b/app/styles/play/level/tome/spell_palette.sass @@ -17,13 +17,20 @@ z-index: 0 //overflow-y: auto - img + .code-palette-background position: absolute left: 0 top: 0 width: 100% height: 100% z-index: -1 + + span.code-palette-background + border-width: 25px + border-image: url(/images/level/code_palette_background.png) 25 fill round + + img.code-palette-background + display: none &.disabled @include opacity(0.80) @@ -86,3 +93,9 @@ &.io background-image: url(/images/pages/home/language_logo_io.png) +html.no-borderimage + #spell-palette-view + span.code-palette-background + display: none + img.code-palette-background + display: block \ No newline at end of file diff --git a/app/styles/play/level/tome/tome.sass b/app/styles/play/level/tome/tome.sass index 773005d64..370cc293d 100644 --- a/app/styles/play/level/tome/tome.sass +++ b/app/styles/play/level/tome/tome.sass @@ -37,9 +37,8 @@ .popover padding: 10px 10px 30px 10px - background: transparent url(/images/level/popover_background.png) - background-size: 100% 100% - border: 0 + border-image: url(/images/level/popover_background.png) 18 fill round + border-width: 15px @include box-shadow(0 0 0 #000) h1:not(.not-code), h2:not(.not-code), h3:not(.not-code), h4:not(.not-code), h5:not(.not-code), h6:not(.not-code) @@ -70,3 +69,10 @@ pre display: inline-block padding: 5px + +html.no-borderimage + #tome-view + .popover + background: transparent url(/images/level/popover_background.png) + background-size: 100% 100% + border: 0 diff --git a/app/templates/play/level/tome/spell.jade b/app/templates/play/level/tome/spell.jade index 85fcdbda0..32a97806d 100644 --- a/app/templates/play/level/tome/spell.jade +++ b/app/templates/play/level/tome/spell.jade @@ -1,4 +1,5 @@ img(src="/images/level/code_editor_background.png").code-background +span.code-background div.ace diff --git a/app/templates/play/level/tome/spell_list_tab_entry.jade b/app/templates/play/level/tome/spell_list_tab_entry.jade index 8ebad097f..9199b8a48 100644 --- a/app/templates/play/level/tome/spell_list_tab_entry.jade +++ b/app/templates/play/level/tome/spell_list_tab_entry.jade @@ -4,10 +4,15 @@ code #{methodSignature} +.btn.btn-small.fullscreen-code(title="Expand code editor") + i.icon-fullscreen + i.icon-resize-small + .btn.btn-small.reload-code(title="Reload original code for " + spell.name) i.icon-repeat .btn.btn-small.beautify-code(title="Ctrl+Shift+B: Beautify code for " + spell.name) i.icon-magnet + .clearfix \ No newline at end of file diff --git a/app/templates/play/level/tome/spell_palette.jade b/app/templates/play/level/tome/spell_palette.jade index 2164a970b..2344bfdaf 100644 --- a/app/templates/play/level/tome/spell_palette.jade +++ b/app/templates/play/level/tome/spell_palette.jade @@ -1,4 +1,5 @@ img(src="/images/level/code_palette_background.png").code-palette-background +span.code-palette-background .code-language-logo ul(class="nav nav-pills" + (tabbed ? ' multiple-tabs' : '')) each slug, group in entryGroupSlugs diff --git a/app/views/play/level/modal/docs_modal.coffee b/app/views/play/level/modal/docs_modal.coffee index 72aa6b8d0..9970b8916 100644 --- a/app/views/play/level/modal/docs_modal.coffee +++ b/app/views/play/level/modal/docs_modal.coffee @@ -8,7 +8,6 @@ utils = require 'lib/utils' module.exports = class DocsModal extends View template: template id: 'docs-modal' - plain: true shortcuts: 'enter': 'hide' diff --git a/app/views/play/level/tome/doc_formatter.coffee b/app/views/play/level/tome/doc_formatter.coffee index 2d256c3ad..d159d08e4 100644 --- a/app/views/play/level/tome/doc_formatter.coffee +++ b/app/views/play/level/tome/doc_formatter.coffee @@ -83,7 +83,7 @@ module.exports = class DocFormatter @doc.title = if @options.shortenize then @doc.shorterName else @doc.shortName # Grab the language-specific documentation for some sub-properties, if we have it. - toTranslate = [{obj: @doc, prop: 'example'}, {obj: @doc, prop: 'returns'}] + toTranslate = [{obj: @doc, prop: 'description'}, {obj: @doc, prop: 'example'}, {obj: @doc, prop: 'returns'}] for arg in (@doc.args ? []) toTranslate.push {obj: arg, prop: 'example'}, {obj: arg, prop: 'description'} for {obj, prop} in toTranslate @@ -93,6 +93,7 @@ module.exports = class DocFormatter obj[prop] = null formatPopover: -> + console.log "gotta do the popover", @doc content = popoverTemplate doc: @doc, language: @options.language, value: @formatValue(), marked: marked, argumentExamples: (arg.example or arg.default or arg.name for arg in @doc.args ? []) owner = if @doc.owner is 'this' then @options.thang else window[@doc.owner] content = content.replace /#{spriteName}/g, @options.thang.type ? @options.thang.spriteName # Prefer type, and excluded the quotes we'd get with @formatValue diff --git a/app/views/play/level/tome/spell_list_tab_entry_view.coffee b/app/views/play/level/tome/spell_list_tab_entry_view.coffee index 1938cc1e4..32d4682b1 100644 --- a/app/views/play/level/tome/spell_list_tab_entry_view.coffee +++ b/app/views/play/level/tome/spell_list_tab_entry_view.coffee @@ -18,6 +18,7 @@ module.exports = class SpellListTabEntryView extends SpellListEntryView 'click .spell-list-button': 'onDropdownClick' 'click .reload-code': 'onCodeReload' 'click .beautify-code': 'onBeautifyClick' + 'click .fullscreen-code': 'onFullscreenClick' constructor: (options) -> super options @@ -86,6 +87,14 @@ module.exports = class SpellListTabEntryView extends SpellListEntryView return unless @controlsEnabled Backbone.Mediator.publish 'spell-beautify', spell: @spell + onFullscreenClick: -> + unless $('.fullscreen-code').hasClass 'maximized' + $('#code-area').addClass 'fullscreen-editor' + $('.fullscreen-code').addClass 'maximized' + else + $('#code-area').removeClass 'fullscreen-editor' + $('.fullscreen-code').removeClass 'maximized' + updateReloadButton: -> changed = @spell.hasChanged null, @spell.getSource() @$el.find('.reload-code').css('display', if changed then 'inline-block' else 'none') diff --git a/bower.json b/bower.json index 357b9d431..e979e2f49 100644 --- a/bower.json +++ b/bower.json @@ -44,7 +44,8 @@ "bootstrap": "~3.1.1", "validated-backbone-mediator": "~0.1.3", "jquery.browser": "~0.0.6", - "zatanna": "~0.0.2" + "zatanna": "~0.0.2", + "modernizr": "~2.8.3" }, "overrides": { "backbone": { @@ -81,6 +82,9 @@ "./dist/fonts/glyphicons-halflings-regular.ttf", "./dist/fonts/glyphicons-halflings-regular.woff" ] + }, + "modernizr": { + "main": "modernizr.js" } } } From bcf3c19f8190873fadc7e7c033c28beb1081f71b Mon Sep 17 00:00:00 2001 From: Nick Winter Date: Wed, 9 Jul 2014 15:32:57 -0700 Subject: [PATCH 064/106] Some slight improvements to the components docs page; still don't know how to get it to be full-height with independently scrolling columsn, though. --- app/styles/docs/components.sass | 36 ++++++++++------------------ app/templates/docs/components.jade | 38 +++++++++++++++--------------- 2 files changed, 31 insertions(+), 43 deletions(-) diff --git a/app/styles/docs/components.sass b/app/styles/docs/components.sass index 63146250d..fc1dec4f5 100644 --- a/app/styles/docs/components.sass +++ b/app/styles/docs/components.sass @@ -1,30 +1,18 @@ #docs-components-view color: saddlebrown -.main - position : relative + .row - .left - bottom: 10em - left: 10em - overflow-y: scroll - overflow-x: hidden - position: fixed - top: 5em - white-space: nowrap - width: 20% - -webkit-overflow-scrolling: touch + .index-column, .documentation-column + overflow-y: scroll + overflow-x: hidden + min-height: 600px - .right - left: 28em - bottom: 10em - position: fixed - overflow-y: scroll - overflow-x: hidden - right: 10em - top: 5em - //width: 80% - -webkit-overflow-scrolling: touch + > ul + padding: 0px 20px 20px 20px - .specialList - list-style-type: none \ No newline at end of file + + .documentation-column + + .specialList + list-style-type: none diff --git a/app/templates/docs/components.jade b/app/templates/docs/components.jade index ceb0b5d72..0e546da7e 100644 --- a/app/templates/docs/components.jade +++ b/app/templates/docs/components.jade @@ -2,22 +2,22 @@ extends /templates/base block content - div.main - div.left - ul - for component in components - li= component.get('name') - ul - each doc in component.attributes.propertyDocumentation - a(href="##{component.get('name')}#{doc.name}") - li - | #{doc.name} - - div.right - ul - for component in components - each doc in component.attributes.propertyDocumentation - li(id="#{component.get('name')}#{doc.name}") - | #{doc.name} - ul.specialList - li=doc.description + .row + .col-xs-3.index-column.nano + ul.nav.nav-list.list-group.nano-content + for component in components + li= component.get('name') + ul + each doc in component.attributes.propertyDocumentation + a(href="##{component.get('name')}#{doc.name}") + li + | #{doc.name} + .col-xs-9.documentation-column.nano + ul.nano-content + for component in components + each doc in component.attributes.propertyDocumentation + li(id="#{component.get('name')}#{doc.name}") + | #{doc.name} + ul.specialList + li=doc.description + \ No newline at end of file From 8700da65707133e50274c9905ecc4d0fc406c5e4 Mon Sep 17 00:00:00 2001 From: nemoyatpeace Date: Thu, 10 Jul 2014 09:19:59 +0800 Subject: [PATCH 065/106] Update play_view.coffee Added my level to the page. --- app/views/play_view.coffee | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/app/views/play_view.coffee b/app/views/play_view.coffee index 4dea0a4f6..4d9d84fef 100644 --- a/app/views/play_view.coffee +++ b/app/views/play_view.coffee @@ -255,6 +255,13 @@ module.exports = class PlayView extends View image: '/file/db/level/52740644904ac0411700067c/rescue_mission_icon.png' description: 'Fetch the wizards teleporting into the area - by Nathan Gossett' } + { + name: "Let's go Fly a Kite" + difficulty: 3 + id: 'lets-go-fly-a-kite' + image: '/file/db/level/526711d9add4f8965f000002/hunter_triplets_icon.png' + description: 'There is a horde of ogres marching on your village. Stay out of reach and use your bow to take them out! - by Danny Whittaker' + } ] context.campaigns = [ From a310afc750216df2a0d5719db0ae701b8e76b6df Mon Sep 17 00:00:00 2001 From: Ruben Vereecken Date: Thu, 10 Jul 2014 10:07:36 +0200 Subject: [PATCH 066/106] Corrected sending errors in auth --- server/routes/auth.coffee | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) diff --git a/server/routes/auth.coffee b/server/routes/auth.coffee index 5c3298f44..25c67e778 100644 --- a/server/routes/auth.coffee +++ b/server/routes/auth.coffee @@ -159,15 +159,11 @@ module.exports.setup = (app) -> module.exports.loginUser = loginUser = (req, res, user, send=true, next=null) -> user.save((err) -> - if err - return @sendDatabaseError(res, err) + return errors.serverError res, err if err? req.logIn(user, (err) -> - if err - return @sendDatabaseError(res, err) - - if send - return @sendSuccess(res, user) + return errors.serverError res, err if err? + return res.send user if send next() if next ) ) From 6e593b2ec0efe7fc16460981e74ea645d0ccb53b Mon Sep 17 00:00:00 2001 From: Ruben Vereecken Date: Thu, 10 Jul 2014 10:46:34 +0200 Subject: [PATCH 067/106] User name slugs can now be unset by emptying their name --- server/plugins/plugins.coffee | 4 +++- test/server/functional/user.spec.coffee | 11 +++++++---- 2 files changed, 10 insertions(+), 5 deletions(-) diff --git a/server/plugins/plugins.coffee b/server/plugins/plugins.coffee index 872df064a..7716f0d98 100644 --- a/server/plugins/plugins.coffee +++ b/server/plugins/plugins.coffee @@ -41,9 +41,11 @@ module.exports.NamedPlugin = (schema) -> err.response = {message: ' is a reserved name', property: 'name'} err.code = 422 return next(err) - if newSlug not in [@get('slug'), ""] and not @get 'anonymous' + if newSlug not in [@get('slug'), ''] and not @get 'anonymous' @set('slug', newSlug) @checkSlugConflicts(next) + else if newSlug is '' and @get 'slug' + @set 'slug', undefined else next() ) diff --git a/test/server/functional/user.spec.coffee b/test/server/functional/user.spec.coffee index 4b0e4ffca..b60b944f4 100644 --- a/test/server/functional/user.spec.coffee +++ b/test/server/functional/user.spec.coffee @@ -107,7 +107,7 @@ describe 'POST /db/user', -> it 'should allow setting anonymous user name', (done) -> createAnonNameUser('Jim', done) - it 'should not allow multiple anonymous users with same name anymore', (done) -> + it 'should allow multiple anonymous users with same name', (done) -> createAnonNameUser('Jim', done) it 'should not allow setting existing user name to anonymous user', (done) -> @@ -274,9 +274,6 @@ describe 'GET /db/user', -> expect(response.statusCode).toBe(200) done() - # TODO Ruben should be able to fetch other users but probably with restricted data access - # Add to the test case above an extra data check - it 'can fetch myself by slug completely', (done) -> loginSam (sam) -> request.get {url: getURL(urlUser + '/sam')}, (err, response) -> @@ -287,6 +284,12 @@ describe 'GET /db/user', -> expect(guy.name).toBe sam.get 'name' done() + # TODO Ruben should be able to fetch other users but probably with restricted data access + # Add to the test case above an extra data check + + xit 'can unset name and undefine slug' + + xit 'can fetch another user with restricted fields' From 9ee373428f3c5bcae8466360c19e2d6c0ec387e0 Mon Sep 17 00:00:00 2001 From: Nick Winter Date: Thu, 10 Jul 2014 08:31:34 -0700 Subject: [PATCH 068/106] Fixed some schema issues related to snippets and code languages. --- app/lib/surface/CocoSprite.coffee | 2 +- app/schemas/models/level_component.coffee | 12 ++++++++---- app/schemas/schemas.coffee | 10 +++++++--- app/views/play/level/tome/doc_formatter.coffee | 1 - 4 files changed, 16 insertions(+), 9 deletions(-) diff --git a/app/lib/surface/CocoSprite.coffee b/app/lib/surface/CocoSprite.coffee index 1f18a4f6b..24c5dc67b 100644 --- a/app/lib/surface/CocoSprite.coffee +++ b/app/lib/surface/CocoSprite.coffee @@ -698,7 +698,7 @@ module.exports = CocoSprite = class CocoSprite extends CocoClass AudioPlayer.playInterfaceSound 'coin_1', 0.25 if @thang.actionActivated and (action = @thang.getActionName()) isnt 'say' @playSound action, withDelay, volume - if @thang.sayMessage and withDelay # don't play sayMessages while scrubbing, annoying + if @thang.sayMessage and withDelay and not @thang.silent # don't play sayMessages while scrubbing, annoying offsetFrames = Math.abs(@thang.sayStartTime - @thang.world.age) / @thang.world.dt if offsetFrames <= 2 # or (not withDelay and offsetFrames < 30) sound = AudioPlayer.soundForDialogue @thang.sayMessage, @thangType.get 'soundTriggers' diff --git a/app/schemas/models/level_component.coffee b/app/schemas/models/level_component.coffee index a974d6dc7..738e954ce 100644 --- a/app/schemas/models/level_component.coffee +++ b/app/schemas/models/level_component.coffee @@ -27,27 +27,29 @@ PropertyDocumentationSchema = c.object { type: c.shortString(title: 'Type', description: 'Intended type of the property.') description: oneOf: [ - {title: 'Description', type: 'string', description: 'Description of the property.', maxLength: 1000, format: 'markdown'} { type: 'object', title: 'Language Descriptions', description: 'Property descriptions by code language.', additionalProperties: {type: 'string', description: 'Description of the property.', maxLength: 1000, format: 'markdown'} format: 'code-languages-object' + default: {javascript: ''} } + {title: 'Description', type: 'string', description: 'Description of the property.', maxLength: 1000, format: 'markdown'} ] args: c.array {title: 'Arguments', description: 'If this property has type "function", then provide documentation for any function arguments.'}, c.FunctionArgumentSchema owner: {title: 'Owner', type: 'string', description: 'Owner of the property, like "this" or "Math".'} example: oneOf: [ - {title: 'Example', type: 'string', description: 'An optional example code block.', format: 'javascript'} { type: 'object', title: 'Language Examples', description: 'Examples by code language.', additionalProperties: {type: 'string', description: 'An example code block.', format: 'code'} format: 'code-languages-object' + default: {javascript: ''} } + {title: 'Example', type: 'string', description: 'An optional example code block.', format: 'javascript'} ] snippets: {type: 'object', title: 'Snippets', description: 'List of snippets for the respective programming languages', additionalProperties: c.codeSnippet, format: 'code-languages-object'} returns: c.object { @@ -59,25 +61,27 @@ PropertyDocumentationSchema = c.object { type: c.shortString(title: 'Type', description: 'Type of the return value') example: oneOf: [ - c.shortString(title: 'Example', description: 'Example return value') { type: 'object', title: 'Language Examples', description: 'Example return values by code language.', additionalProperties: c.shortString(description: 'Example return value.', format: 'code') format: 'code-languages-object' + default: {javascript: ''} } + c.shortString(title: 'Example', description: 'Example return value') ] description: oneOf: [ - {title: 'Description', type: 'string', description: 'Description of the return value.', maxLength: 1000} { type: 'object', title: 'Language Descriptions', description: 'Example return values by code language.', additionalProperties: {type: 'string', description: 'Description of the return value.', maxLength: 1000} format: 'code-languages-object' + default: {javascript: ''} } + {title: 'Description', type: 'string', description: 'Description of the return value.', maxLength: 1000} ] DependencySchema = c.object { diff --git a/app/schemas/schemas.coffee b/app/schemas/schemas.coffee index 7b8775b68..65045a2e7 100644 --- a/app/schemas/schemas.coffee +++ b/app/schemas/schemas.coffee @@ -163,30 +163,34 @@ me.FunctionArgumentSchema = me.object { type: me.shortString(title: 'Type', description: 'Intended type of the argument.') example: oneOf: [ - me.shortString(title: 'Example', description: 'Example value for the argument.') { type: 'object', title: 'Language Examples', description: 'Examples by code language.', additionalProperties: me.shortString(description: 'Example value for the argument.') + format: 'code-languages-object' + default: {javascript: ''} } + me.shortString(title: 'Example', description: 'Example value for the argument.') ] description: oneOf: [ - {title: 'Description', type: 'string', description: 'Description of the argument.', maxLength: 1000} { type: 'object', title: 'Language Descriptions', description: 'Example argument descriptions by code language.', additionalProperties: {type: 'string', description: 'Description of the argument.', maxLength: 1000} + format: 'code-languages-object' + default: {javascript: ''} } + {title: 'Description', type: 'string', description: 'Description of the argument.', maxLength: 1000} ] 'default': title: 'Default' description: 'Default value of the argument. (Your code should set this.)' 'default': null -me.codeSnippet = +me.codeSnippet = me.object {description: 'A language-specific code snippet'}, code: {type: 'string', title: 'Snippet', default: '', description: 'Code snippet. Use ${1:defaultValue} syntax to add flexible arguments'} tab: {type: 'string', title: 'Tab Trigger', description: 'Tab completion text. Will be expanded to the snippet if typed and hit tab.'} diff --git a/app/views/play/level/tome/doc_formatter.coffee b/app/views/play/level/tome/doc_formatter.coffee index d159d08e4..dab9a0ee8 100644 --- a/app/views/play/level/tome/doc_formatter.coffee +++ b/app/views/play/level/tome/doc_formatter.coffee @@ -93,7 +93,6 @@ module.exports = class DocFormatter obj[prop] = null formatPopover: -> - console.log "gotta do the popover", @doc content = popoverTemplate doc: @doc, language: @options.language, value: @formatValue(), marked: marked, argumentExamples: (arg.example or arg.default or arg.name for arg in @doc.args ? []) owner = if @doc.owner is 'this' then @options.thang else window[@doc.owner] content = content.replace /#{spriteName}/g, @options.thang.type ? @options.thang.spriteName # Prefer type, and excluded the quotes we'd get with @formatValue From 94210fc461471379908655ae0b97997a3a26e446 Mon Sep 17 00:00:00 2001 From: Ruben Vereecken Date: Thu, 10 Jul 2014 18:00:32 +0200 Subject: [PATCH 069/106] Anonymous users are now silently renamed upon signup in case of conflict --- server/users/User.coffee | 41 +++++++++++++++----- server/users/user_handler.coffee | 3 +- test/server/functional/user.spec.coffee | 51 +++++++++++++++++-------- 3 files changed, 68 insertions(+), 27 deletions(-) diff --git a/server/users/User.coffee b/server/users/User.coffee index fc7440ef3..13f4c11fb 100644 --- a/server/users/User.coffee +++ b/server/users/User.coffee @@ -30,6 +30,9 @@ UserSchema.methods.isAdmin = -> p = @get('permissions') return p and 'admin' in p +UserSchema.methods.isAnonymous = -> + @get 'anonymous' + UserSchema.methods.trackActivity = (activityName, increment) -> now = new Date() increment ?= parseInt increment or 1 @@ -109,6 +112,30 @@ UserSchema.statics.updateMailChimp = (doc, callback) -> mc?.lists.subscribe params, onSuccess, onFailure +UserSchema.statics.unconflictName = unconflictName = (name, done) -> + User.findOne {slug: _.str.slugify(name)}, (err, otherUser) -> + return done err if err? + return done null, name unless otherUser + suffix = _.random(0, 9) + '' + unconflictName name + suffix, done + +UserSchema.methods.register = (done) -> + @set('anonymous', false) + @set('permissions', ['admin']) if not isProduction + if (name = @get 'name')? and name isnt '' + unconflictName name, (err, uniqueName) => + return done err if err + @set 'name', uniqueName + done() + else done() + data = + email_id: sendwithus.templates.welcome_email + recipient: + address: @get 'email' + sendwithus.api.send data, (err, result) -> + log.error "sendwithus post-save error: #{err}, result: #{result}" if err + + UserSchema.pre('save', (next) -> @set('emailLower', @get('email')?.toLowerCase()) @set('nameLower', @get('name')?.toLowerCase()) @@ -116,16 +143,10 @@ UserSchema.pre('save', (next) -> if @get('password') @set('passwordHash', User.hashPassword(pwd)) @set('password', undefined) - if @get('email') and @get('anonymous') - @set('anonymous', false) - @set('permissions', ['admin']) if not isProduction - data = - email_id: sendwithus.templates.welcome_email - recipient: - address: @get 'email' - sendwithus.api.send data, (err, result) -> - log.error "sendwithus post-save error: #{err}, result: #{result}" if err - next() + if @get('email') and @get('anonymous') # a user registers + @register next + else + next() ) UserSchema.post 'save', (doc) -> diff --git a/server/users/user_handler.coffee b/server/users/user_handler.coffee index 45b0253f0..c145855b9 100644 --- a/server/users/user_handler.coffee +++ b/server/users/user_handler.coffee @@ -104,7 +104,8 @@ UserHandler = class UserHandler extends Handler return callback(null, req, user) unless req.body.name nameLower = req.body.name?.toLowerCase() return callback(null, req, user) unless nameLower - return callback(null, req, user) if nameLower is user.get('nameLower') and not user.get('anonymous') + return callback(null, req, user) if user.get 'anonymous' # anonymous users can have any name + return callback(null, req, user) if nameLower is user.get('nameLower') User.findOne({nameLower: nameLower, anonymous: false}).exec (err, otherUser) -> log.error "Database error setting user name: #{err}" if err return callback(res: 'Database error.', code: 500) if err diff --git a/test/server/functional/user.spec.coffee b/test/server/functional/user.spec.coffee index b60b944f4..e8bfb2b51 100644 --- a/test/server/functional/user.spec.coffee +++ b/test/server/functional/user.spec.coffee @@ -110,24 +110,13 @@ describe 'POST /db/user', -> it 'should allow multiple anonymous users with same name', (done) -> createAnonNameUser('Jim', done) - it 'should not allow setting existing user name to anonymous user', (done) -> - - createAnonUser = -> - request.post getURL('/auth/logout'), -> - request.get getURL('/auth/whoami'), -> - req = request.post(getURL('/db/user'), (err, response) -> - expect(response.statusCode).toBe(409) - done() - ) - form = req.form() - form.append('name', 'Jim') - + it 'should allow setting existing user name to anonymous user', (done) -> req = request.post(getURL('/db/user'), (err, response, body) -> expect(response.statusCode).toBe(200) request.get getURL('/auth/whoami'), (request, response, body) -> res = JSON.parse(response.body) expect(res.anonymous).toBeFalsy() - createAnonUser() + createAnonNameUser 'Jim', done ) form = req.form() form.append('email', 'new@user.com') @@ -212,6 +201,39 @@ ghlfarghlarghlfarghlarghlfarghlarghlfarghlarghlfarghlarghlfarghlarghlfarghlarghl form.append('email', 'New@email.com') form.append('name', 'Wilhelm') + it 'should not allow two users with the same name slug', (done) -> + loginSam (sam) -> + samsName = sam.get 'name' + sam.set 'name', 'admin' + request.put {uri:getURL(urlUser + '/' + sam.id), json: sam.toObject()}, (err, response) -> + expect(err).toBeNull() + expect(response.statusCode).toBe 409 + + sam.set 'name', samsName + done() + + it 'should silently rename an anonymous user if their name conflicts upon signup', (done) -> + request.post getURL('/auth/logout'), -> + request.get getURL('/auth/whoami'), -> + req = request.post getURL('/db/user'), (err, response) -> + expect(response.statusCode).toBe(200) + request.get getURL('/auth/whoami'), (err, response) -> + expect(err).toBeNull() + guy = JSON.parse(response.body) + expect(guy.anonymous).toBeTruthy() + expect(guy.name).toEqual 'admin' + + guy.email = 'blub@blub' # Email means registration + req = request.post {url: getURL('/db/user'), json: guy}, (err, response) -> + expect(err).toBeNull() + finalGuy = response.body + expect(finalGuy.anonymous).toBeFalsy() + expect(finalGuy.name).not.toEqual guy.name + expect(finalGuy.name.length).toBe guy.name.length + 1 + done() + form = req.form() + form.append('name', 'admin') + describe 'GET /db/user', -> it 'logs in as admin', (done) -> @@ -293,6 +315,3 @@ describe 'GET /db/user', -> - - - From 9e296b7c3d6ca1b9efcf58e5aded43213dc2eab4 Mon Sep 17 00:00:00 2001 From: Ruben Vereecken Date: Thu, 10 Jul 2014 18:24:02 +0200 Subject: [PATCH 070/106] Added a test case for unsetting slugs (and fixed related bug) --- server/plugins/plugins.coffee | 1 + test/server/functional/user.spec.coffee | 18 ++++++++++++++++-- 2 files changed, 17 insertions(+), 2 deletions(-) diff --git a/server/plugins/plugins.coffee b/server/plugins/plugins.coffee index 7716f0d98..2fdce3bef 100644 --- a/server/plugins/plugins.coffee +++ b/server/plugins/plugins.coffee @@ -46,6 +46,7 @@ module.exports.NamedPlugin = (schema) -> @checkSlugConflicts(next) else if newSlug is '' and @get 'slug' @set 'slug', undefined + next() else next() ) diff --git a/test/server/functional/user.spec.coffee b/test/server/functional/user.spec.coffee index e8bfb2b51..2bbb3a1ab 100644 --- a/test/server/functional/user.spec.coffee +++ b/test/server/functional/user.spec.coffee @@ -209,6 +209,7 @@ ghlfarghlarghlfarghlarghlfarghlarghlfarghlarghlfarghlarghlfarghlarghlfarghlarghl expect(err).toBeNull() expect(response.statusCode).toBe 409 + # Restore Sam sam.set 'name', samsName done() @@ -234,6 +235,21 @@ ghlfarghlarghlfarghlarghlfarghlarghlfarghlarghlfarghlarghlfarghlarghlfarghlarghl form = req.form() form.append('name', 'admin') + it 'should be able to unset a slug by setting an empty name', (done) -> + loginSam (sam) -> + samsName = sam.get 'name' + sam.set 'name', '' + request.put {uri:getURL(urlUser + '/' + sam.id), json: sam.toObject()}, (err, response) -> + expect(err).toBeNull() + expect(response.statusCode).toBe 200 + newSam = response.body + + # Restore Sam + sam.set 'name', samsName + request.put {uri:getURL(urlUser + '/' + sam.id), json: sam.toObject()}, (err, response) -> + expect(err).toBeNull() + done() + describe 'GET /db/user', -> it 'logs in as admin', (done) -> @@ -309,8 +325,6 @@ describe 'GET /db/user', -> # TODO Ruben should be able to fetch other users but probably with restricted data access # Add to the test case above an extra data check - xit 'can unset name and undefine slug' - xit 'can fetch another user with restricted fields' From 2eeb7ec5aa584aec93d1b8e226ca6e4ceb3599f2 Mon Sep 17 00:00:00 2001 From: Michael Schmatz Date: Thu, 10 Jul 2014 10:42:17 -0700 Subject: [PATCH 071/106] Make random games come from all levels --- server/queues/scoring.coffee | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/server/queues/scoring.coffee b/server/queues/scoring.coffee index 4a57234c1..3d67ef25a 100644 --- a/server/queues/scoring.coffee +++ b/server/queues/scoring.coffee @@ -125,11 +125,12 @@ module.exports.getTwoGames = (req, res) -> #if userIsAnonymous req then return errors.unauthorized(res, 'You need to be logged in to get games.') humansGameID = req.body.humansGameID ogresGameID = req.body.ogresGameID - + ladderGameIDs = ['greed','criss-cross','brawlwood','dungeon-arena','gold-rush'] + levelID = _.sample ladderGameIDs unless ogresGameID and humansGameID #fetch random games here queryParams = - 'levelID': 'greed' + 'levelID': levelID 'submitted': true 'team': 'humans' selection = 'team totalScore transpiledCode submittedCodeLanguage teamSpells levelID creatorName creator submitDate' @@ -140,7 +141,7 @@ module.exports.getTwoGames = (req, res) -> return res.end() humanSkipCount = Math.floor(Math.random() * numberOfHumans) ogreCountParams = - 'levelID': 'greed' + 'levelID': levelID 'submitted': true 'team': 'ogres' LevelSession.count ogreCountParams, (err, numberOfOgres) => @@ -161,7 +162,7 @@ module.exports.getTwoGames = (req, res) -> if err? then return errors.serverError(res, "Couldn't select a random session! #{err}") randomSession = randomSession[0] queryParams = - 'levelID': 'greed' + 'levelID': levelID 'submitted': true 'team': 'ogres' query = LevelSession From e18b906e043f455d0a201d663dd5112342f0d193 Mon Sep 17 00:00:00 2001 From: Scott Erickson Date: Thu, 10 Jul 2014 11:13:11 -0700 Subject: [PATCH 072/106] Name conflicts migration script. --- .../migrations/2014-07-09-name-conflicts.js | 52 +++++++++++++++++++ 1 file changed, 52 insertions(+) create mode 100644 scripts/mongodb/migrations/2014-07-09-name-conflicts.js diff --git a/scripts/mongodb/migrations/2014-07-09-name-conflicts.js b/scripts/mongodb/migrations/2014-07-09-name-conflicts.js new file mode 100644 index 000000000..cf8c81f66 --- /dev/null +++ b/scripts/mongodb/migrations/2014-07-09-name-conflicts.js @@ -0,0 +1,52 @@ +load('bower_components/lodash/dist/lodash.js'); +load('bower_components/underscore.string/dist/underscore.string.min.js'); + +var slugs = {}; +var num = 0; + +var unconflictName; + +unconflictName = function(name) { + var otherUser, suffix; + otherUser = db.users.findOne({ + slug: _.string.slugify(name) + }); + if (!otherUser) { + return name; + } + suffix = _.random(0, 9) + ''; + return unconflictName(name + suffix); +}; + +var params = { + name:1, + emails:1, + email:1, + slug:1, + dateCreated:1 +}; + +db.users.find({anonymous:false}, params).sort({_id:1}).forEach(function (user) { + num += 1; + var slug = _.string.slugify(user.name); + if(!slug) return; + var update = {}; + if(slugs[slug]) { + originalName = slugs[slug]; + conflictingName = user.name; + availableName = unconflictName(conflictingName); + conflictingSlug = slug; + slug = _.string.slugify(availableName); + update.name = availableName; + update.nameLower = availableName.toLowerCase(); + if (!(user.emails && user.emails.anyNotes === false)) + db.changedEmails.insert({email:user.email, user:user._id, name:user.name}); + print(_.str.sprintf('\n\n\tConflict! Username "%s" conflicts with "%s" (both sluggify to "%s"). Changing to "%s"\n\n\n', + conflictingName, originalName, conflictingSlug, availableName)); + } + update.slug = slug; + slugs[slug] = user.name; + if(user.slug) return; + print(_.str.sprintf('Setting user %s (%s) to slug %s with update %s', user.name, user.dateCreated, slug, JSON.stringify({$set:update}))); + db.users.update({_id:user._id}, {$set:update}); +}); \ No newline at end of file From efa2bee08c01b1c33cafce8bbaccfed28b5f775c Mon Sep 17 00:00:00 2001 From: Jayant Jain Date: Sun, 22 Jun 2014 19:11:15 +0530 Subject: [PATCH 073/106] Adds shortcuts for undo/redo for thangs tab view --- app/views/editor/level/thangs_tab_view.coffee | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/app/views/editor/level/thangs_tab_view.coffee b/app/views/editor/level/thangs_tab_view.coffee index 8e905654a..e2d0d4ac8 100644 --- a/app/views/editor/level/thangs_tab_view.coffee +++ b/app/views/editor/level/thangs_tab_view.coffee @@ -57,6 +57,8 @@ module.exports = class ThangsTabView extends View 'delete, del, backspace': 'deleteSelectedExtantThang' 'left': -> @moveAddThangSelection -1 'right': -> @moveAddThangSelection 1 + 'ctrl+z': 'undoAction' + 'ctrl+shift+z': 'redoAction' constructor: (options) -> super options @@ -450,6 +452,12 @@ module.exports = class ThangsTabView extends View $('#add-thangs-column').toggle() @onWindowResize e + undoAction: (e) -> + @thangsTreema.undo() + + redoAction: (e) -> + @thangsTreema.redo() + class ThangsNode extends TreemaNode.nodeMap.array valueClass: 'treema-array-replacement' getChildren: -> From c40da260f04d68e4fc185404a3a42b1788addfe5 Mon Sep 17 00:00:00 2001 From: Jayant Jain Date: Tue, 24 Jun 2014 16:00:29 +0530 Subject: [PATCH 074/106] Adds initial modal and view for terrain generator --- app/styles/terrain_randomise.sass | 148 ++++++++++++++++++ app/templates/modal/terrain_randomise.jade | 14 ++ .../modal/terrain_randomise_modal.coffee | 29 ++++ 3 files changed, 191 insertions(+) create mode 100644 app/styles/terrain_randomise.sass create mode 100644 app/templates/modal/terrain_randomise.jade create mode 100644 app/views/modal/terrain_randomise_modal.coffee diff --git a/app/styles/terrain_randomise.sass b/app/styles/terrain_randomise.sass new file mode 100644 index 000000000..3022f10c1 --- /dev/null +++ b/app/styles/terrain_randomise.sass @@ -0,0 +1,148 @@ +#terrain-randomise-modal + #noob-view p + font-size: 30px + + #skip-tutorial-button + font-size: 16px + + .tutorial-suggestion + text-align: center + font-size: 18px + margin: 10px 0 30px + + .play-option + margin-bottom: 15px + width: 100% + height: 100px + overflow: hidden + background: white + border: 1px solid #333 + position: relative + + -webkit-transition: opacity 0.3s ease-in-out + -moz-transition: opacity 0.3s ease-in-out + -ms-transition: opacity 0.3s ease-in-out + -o-transition: opacity 0.3s ease-in-out + transition: opacity 0.3s ease-in-out + + opacity: 0.4 + + border-radius: 5px + .only-one + -webkit-transition: opacity 0.3s ease-in-out + -moz-transition: opacity 0.3s ease-in-out + -ms-transition: opacity 0.3s ease-in-out + -o-transition: opacity 0.3s ease-in-out + transition: opacity 0.3s ease-in-out + opacity: 0 + + .play-option:hover + opacity: 1 + .only-one + opacity: 1 + + .my-icon + position: relative + left: 0 + top: -10px + z-index: 1 + + .my-team-icon + height: 60px + position: relative + top: -10px + left: 10px + z-index: 0 + + .opponent-team-icon + height: 60px + position: relative + top: 10px + right: 10px + z-index: 0 + float: right + -moz-transform: scaleX(-1) + -o-transform: scaleX(-1) + -webkit-transform: scaleX(-1) + transform: scaleX(-1) + filter: FlipH + -ms-filter: "FlipH" + + .opponent-icon + position: relative + float: right + right: 0 + top: -10px + -moz-transform: scaleX(-1) + -o-transform: scaleX(-1) + -webkit-transform: scaleX(-1) + transform: scaleX(-1) + filter: FlipH + -ms-filter: "FlipH" + z-index: 1 + + .name-label + border-bottom: 20px solid lightslategray + height: 0 + width: 40% + position: absolute + bottom: 0 + color: black + font-weight: bold + text-align: center + z-index: 2 + + span + position: relative + top: 1px + + .my-name + border-right: 15px solid transparent + left: 0 + span + left: 3px + + .preset-size + border-left: 15px solid transparent + right: 0 + //text-align: right + span + right: 3px + + .preset-name + border-top: 25px solid darkgray + border-left: 20px solid transparent + border-right: 20px solid transparent + height: 0 + width: 30% + position: absolute + left: 35% + top: 0 + color: black + text-align: center + font-size: 18px + font-weight: bold + + span + position: relative + top: -25px + + .easy-option .preset-name + border-top: 25px solid limegreen + + .medium-option .preset-name + border-top: 25px solid darkorange + + .hard-option .preset-name + border-top: 25px solid black + color: white + + .vs + position: absolute + left: 40% + right: 40% + text-align: center + top: 35px + font-size: 40px + font-weight: bolder + color: black \ No newline at end of file diff --git a/app/templates/modal/terrain_randomise.jade b/app/templates/modal/terrain_randomise.jade new file mode 100644 index 000000000..e2bbd23f6 --- /dev/null +++ b/app/templates/modal/terrain_randomise.jade @@ -0,0 +1,14 @@ +extends /templates/modal/modal_base + +block modal-header-content + h3(data-i18n="editor.pick_a_terrain") Pick a Terrain + +block modal-body-content + div#normal-view + a(href="#") + div.play-option(data-preset-type="grassy", data-preset-size="small") + div.preset-size.name-label + span(data-i18n="ladder.small") Small + div.preset-name + span(data-i18n="ladder.grassy") Grassy + //- for model in models \ No newline at end of file diff --git a/app/views/modal/terrain_randomise_modal.coffee b/app/views/modal/terrain_randomise_modal.coffee new file mode 100644 index 000000000..6dba35042 --- /dev/null +++ b/app/views/modal/terrain_randomise_modal.coffee @@ -0,0 +1,29 @@ +ModalView = require 'views/kinds/ModalView' +template = require 'templates/modal/terrain_randomise' +CocoModel = require 'models/CocoModel' + +module.exports = class TerrainRandomiseModal extends ModalView + id: 'terrain-randomise-modal' + template: template + thangs = [] + + events: + 'click .play-option': 'onRandomise' + + onRevertModel: (e) -> + id = $(e.target).val() + CocoModel.backedUp[id].revert() + $(e.target).closest('tr').remove() + @reloadOnClose = true + + onRandomise: (e) -> + + getRenderData: -> + c = super() + models = _.values CocoModel.backedUp + models = (m for m in models when m.hasLocalChanges()) + c.models = models + c + + onHidden: -> + location.reload() if @reloadOnClose From 813ecaa59c1350f05b2dd350bbf920b9ba6ff1f7 Mon Sep 17 00:00:00 2001 From: Jayant Jain Date: Tue, 24 Jun 2014 16:05:14 +0530 Subject: [PATCH 075/106] Adds randomise option to dropdown on editor page --- app/templates/editor/level/edit.jade | 2 ++ 1 file changed, 2 insertions(+) diff --git a/app/templates/editor/level/edit.jade b/app/templates/editor/level/edit.jade index d04b8f4bd..e446f7613 100644 --- a/app/templates/editor/level/edit.jade +++ b/app/templates/editor/level/edit.jade @@ -79,6 +79,8 @@ block header a(data-i18n="common.fork")#fork-level-start-button Fork li(class=anonymous ? "disabled": "") a(data-toggle="coco-modal", data-target="modal/revert", data-i18n="editor.revert")#revert-button Revert + li(class=anonymous ? "disabled": "") + a(data-toggle="coco-modal", data-target="modal/terrain_randomise", data-i18n="editor.randomise")#randomise-button Randomise li(class=anonymous ? "disabled": "") a(data-i18n="editor.pop_i18n")#pop-level-i18n-button Populate i18n li.divider From 1436a4dac75b9157218e0bfab278248c7e017ae8 Mon Sep 17 00:00:00 2001 From: Jayant Jain Date: Tue, 24 Jun 2014 16:15:39 +0530 Subject: [PATCH 076/106] Cleans up some css for terrain generator modal --- app/styles/terrain_randomise.sass | 28 ++++------------------ app/templates/modal/terrain_randomise.jade | 2 +- 2 files changed, 5 insertions(+), 25 deletions(-) diff --git a/app/styles/terrain_randomise.sass b/app/styles/terrain_randomise.sass index 3022f10c1..e6cf29bec 100644 --- a/app/styles/terrain_randomise.sass +++ b/app/styles/terrain_randomise.sass @@ -1,16 +1,6 @@ #terrain-randomise-modal - #noob-view p - font-size: 30px - - #skip-tutorial-button - font-size: 16px - - .tutorial-suggestion - text-align: center - font-size: 18px - margin: 10px 0 30px - - .play-option + + .choose-option margin-bottom: 15px width: 100% height: 100px @@ -36,7 +26,7 @@ transition: opacity 0.3s ease-in-out opacity: 0 - .play-option:hover + .choose-option:hover opacity: 1 .only-one opacity: 1 @@ -135,14 +125,4 @@ .hard-option .preset-name border-top: 25px solid black - color: white - - .vs - position: absolute - left: 40% - right: 40% - text-align: center - top: 35px - font-size: 40px - font-weight: bolder - color: black \ No newline at end of file + color: white \ No newline at end of file diff --git a/app/templates/modal/terrain_randomise.jade b/app/templates/modal/terrain_randomise.jade index e2bbd23f6..680af187c 100644 --- a/app/templates/modal/terrain_randomise.jade +++ b/app/templates/modal/terrain_randomise.jade @@ -6,7 +6,7 @@ block modal-header-content block modal-body-content div#normal-view a(href="#") - div.play-option(data-preset-type="grassy", data-preset-size="small") + div.choose-option(data-preset-type="grassy", data-preset-size="small") div.preset-size.name-label span(data-i18n="ladder.small") Small div.preset-name From 74205b31d2ce69a3558798f9bf1e259600947e66 Mon Sep 17 00:00:00 2001 From: Jayant Jain Date: Thu, 26 Jun 2014 18:32:31 +0530 Subject: [PATCH 077/106] Adds code for passing randomised thangs to thang view --- app/views/editor/level/thangs_tab_view.coffee | 6 ++++++ app/views/modal/terrain_randomise_modal.coffee | 13 ++++++++++++- 2 files changed, 18 insertions(+), 1 deletion(-) diff --git a/app/views/editor/level/thangs_tab_view.coffee b/app/views/editor/level/thangs_tab_view.coffee index e2d0d4ac8..f68965bc3 100644 --- a/app/views/editor/level/thangs_tab_view.coffee +++ b/app/views/editor/level/thangs_tab_view.coffee @@ -43,6 +43,7 @@ module.exports = class ThangsTabView extends View 'sprite:mouse-up': 'onSpriteMouseUp' 'sprite:double-clicked': 'onSpriteDoubleClicked' 'surface:stage-mouse-up': 'onStageMouseUp' + 'randomise:terrain-generated': 'onRandomiseTerrain' events: 'click #extant-thangs-filter button': 'onFilterExtantThangs' @@ -223,6 +224,11 @@ module.exports = class ThangsTabView extends View return unless e.thang @editThang thangID: e.thang.id + onRandomiseTerrain: (e) -> + console.log e + for thang in e.thangs + console.log thang.id, thang.pos + # TODO: figure out a good way to have all Surface clicks and Treema clicks just proxy in one direction, so we can maintain only one way of handling selection and deletion onExtantThangSelected: (e) -> @selectedExtantSprite?.setNameLabel? null unless @selectedExtantSprite is e.sprite diff --git a/app/views/modal/terrain_randomise_modal.coffee b/app/views/modal/terrain_randomise_modal.coffee index 6dba35042..0b5f96426 100644 --- a/app/views/modal/terrain_randomise_modal.coffee +++ b/app/views/modal/terrain_randomise_modal.coffee @@ -8,7 +8,7 @@ module.exports = class TerrainRandomiseModal extends ModalView thangs = [] events: - 'click .play-option': 'onRandomise' + 'click .choose-option': 'onRandomise' onRevertModel: (e) -> id = $(e.target).val() @@ -17,6 +17,17 @@ module.exports = class TerrainRandomiseModal extends ModalView @reloadOnClose = true onRandomise: (e) -> + @thangs = [] + @thangs.push { + 'id':'Grass01' + 'pos':{ + 'x':20 + 'y':20 + } + } + Backbone.Mediator.publish('randomise:terrain-generated', + 'thangs': @thangs + ) getRenderData: -> c = super() From 38bed0ee93649b8e67cc65416c25fa57f857a30c Mon Sep 17 00:00:00 2001 From: Jayant Jain Date: Thu, 26 Jun 2014 21:40:11 +0530 Subject: [PATCH 078/106] Random thangs are now created and positioned in the thangs view --- app/views/editor/level/thangs_tab_view.coffee | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/app/views/editor/level/thangs_tab_view.coffee b/app/views/editor/level/thangs_tab_view.coffee index f68965bc3..bcc398bbc 100644 --- a/app/views/editor/level/thangs_tab_view.coffee +++ b/app/views/editor/level/thangs_tab_view.coffee @@ -228,6 +228,8 @@ module.exports = class ThangsTabView extends View console.log e for thang in e.thangs console.log thang.id, thang.pos + @selectAddThangType thang.id + @addThang @addThangType, thang.pos # TODO: figure out a good way to have all Surface clicks and Treema clicks just proxy in one direction, so we can maintain only one way of handling selection and deletion onExtantThangSelected: (e) -> @@ -280,6 +282,7 @@ module.exports = class ThangsTabView extends View @selectAddThang {target: icons[nextSelectedIndex]} selectAddThangType: (type, @cloneSourceThang) -> + console.log type if _.isString type type = _.find @supermodel.getModels(ThangType), (m) -> m.get('name') is type pos = @addThangSprite?.thang.pos # Maintain old sprite's pos if we have it @@ -397,6 +400,7 @@ module.exports = class ThangsTabView extends View @editThang thangID: id if id addThang: (thangType, pos) -> + console.log thangType, pos thangID = Thang.nextID(thangType.get('name'), @world) until thangID and not @thangsTreema.get "id=#{thangID}" if @cloneSourceThang components = _.cloneDeep @thangsTreema.get "id=#{@cloneSourceThang.id}/components" From b401b0489378d7b82d96615280e12b6dff0d0e41 Mon Sep 17 00:00:00 2001 From: Jayant Jain Date: Sat, 28 Jun 2014 10:20:55 +0530 Subject: [PATCH 079/106] Adds randomiseFloor and randomiseBorder functions --- app/templates/modal/terrain_randomise.jade | 2 +- .../modal/terrain_randomise_modal.coffee | 94 +++++++++++++++++-- 2 files changed, 88 insertions(+), 8 deletions(-) diff --git a/app/templates/modal/terrain_randomise.jade b/app/templates/modal/terrain_randomise.jade index 680af187c..799b4312c 100644 --- a/app/templates/modal/terrain_randomise.jade +++ b/app/templates/modal/terrain_randomise.jade @@ -6,7 +6,7 @@ block modal-header-content block modal-body-content div#normal-view a(href="#") - div.choose-option(data-preset-type="grassy", data-preset-size="small") + div.choose-option(data-preset-type="dungeon", data-preset-size="small") div.preset-size.name-label span(data-i18n="ladder.small") Small div.preset-name diff --git a/app/views/modal/terrain_randomise_modal.coffee b/app/views/modal/terrain_randomise_modal.coffee index 0b5f96426..35562ef81 100644 --- a/app/views/modal/terrain_randomise_modal.coffee +++ b/app/views/modal/terrain_randomise_modal.coffee @@ -2,6 +2,34 @@ ModalView = require 'views/kinds/ModalView' template = require 'templates/modal/terrain_randomise' CocoModel = require 'models/CocoModel' +presets = { + 'dungeon': { + 'type':'dungeon' + 'borders':['Dungeon Wall'] + 'floors':['Dungeon Floor'] + 'decorations':[] + } +} + +sizes = { + 'small': { + 'x':80 + 'y':68 + } + 'large': { + 'x':160 + 'y':136 + } + 'floorSize': { + 'x':20 + 'y':20 + } + 'borderSize': { + 'x':4 + 'y':4 + } +} + module.exports = class TerrainRandomiseModal extends ModalView id: 'terrain-randomise-modal' template: template @@ -18,16 +46,68 @@ module.exports = class TerrainRandomiseModal extends ModalView onRandomise: (e) -> @thangs = [] - @thangs.push { - 'id':'Grass01' - 'pos':{ - 'x':20 - 'y':20 - } - } + target = $(e.target) + presetType = target.attr 'data-preset-type' + presetSize = target.attr 'data-preset-size' + @randomiseThangs presetType, presetSize + Backbone.Mediator.publish('randomise:terrain-generated', 'thangs': @thangs ) + + randomiseThangs: (presetName, presetSize) -> + preset = presets[presetName] + presetSize = sizes[presetSize] + @thangs = [] + @randomiseFloor preset, presetSize + @randomiseBorder preset, presetSize + + randomiseFloor: (preset, presetSize) -> + for i in _.range(0, presetSize.x, sizes.floorSize.x) + for j in _.range(0, presetSize.y, sizes.floorSize.y) + @thangs.push { + 'id': @getRandomThang(preset.floors) + 'pos': { + 'x': i + 'y': j + } + } + + randomiseBorder: (preset, presetSize) -> + for i in _.range(0-sizes.floorSize.x/2+sizes.borderSize.x, presetSize.x-sizes.floorSize.x/2, sizes.borderSize.x) + @thangs.push { + 'id': @getRandomThang(preset.borders) + 'pos': { + 'x': i + 'y': 0-sizes.floorSize.x/2 + } + } + @thangs.push { + 'id': @getRandomThang(preset.borders) + 'pos': { + 'x': i + 'y': presetSize.y - sizes.borderSize.y + } + } + + for i in _.range(0-sizes.floorSize.y/2, presetSize.y-sizes.borderSize.y, sizes.borderSize.y) + @thangs.push { + 'id': @getRandomThang(preset.borders) + 'pos': { + 'x': 0-sizes.floorSize.x/2+sizes.borderSize.x + 'y': i + } + } + @thangs.push { + 'id': @getRandomThang(preset.borders) + 'pos': { + 'x': presetSize.x - sizes.borderSize.x - sizes.floorSize.x/2 + 'y': i + } + } + + getRandomThang: (thangList) -> + return thangList[_.random(0, thangList.length-1)] getRenderData: -> c = super() From dbe464df1637b490a1933a3d1de700624c6d83ca Mon Sep 17 00:00:00 2001 From: Jayant Jain Date: Sat, 28 Jun 2014 10:22:15 +0530 Subject: [PATCH 080/106] Removes console logs --- app/views/editor/level/thangs_tab_view.coffee | 4 ---- 1 file changed, 4 deletions(-) diff --git a/app/views/editor/level/thangs_tab_view.coffee b/app/views/editor/level/thangs_tab_view.coffee index bcc398bbc..010b38b50 100644 --- a/app/views/editor/level/thangs_tab_view.coffee +++ b/app/views/editor/level/thangs_tab_view.coffee @@ -225,9 +225,7 @@ module.exports = class ThangsTabView extends View @editThang thangID: e.thang.id onRandomiseTerrain: (e) -> - console.log e for thang in e.thangs - console.log thang.id, thang.pos @selectAddThangType thang.id @addThang @addThangType, thang.pos @@ -282,7 +280,6 @@ module.exports = class ThangsTabView extends View @selectAddThang {target: icons[nextSelectedIndex]} selectAddThangType: (type, @cloneSourceThang) -> - console.log type if _.isString type type = _.find @supermodel.getModels(ThangType), (m) -> m.get('name') is type pos = @addThangSprite?.thang.pos # Maintain old sprite's pos if we have it @@ -400,7 +397,6 @@ module.exports = class ThangsTabView extends View @editThang thangID: id if id addThang: (thangType, pos) -> - console.log thangType, pos thangID = Thang.nextID(thangType.get('name'), @world) until thangID and not @thangsTreema.get "id=#{thangID}" if @cloneSourceThang components = _.cloneDeep @thangsTreema.get "id=#{@cloneSourceThang.id}/components" From da0b0d9830d1c748ac35271ce73877995d1fdd31 Mon Sep 17 00:00:00 2001 From: Jayant Jain Date: Fri, 4 Jul 2014 01:04:21 +0530 Subject: [PATCH 081/106] Big terrain generator commit - 1.Adds method for randomising decorations/doodads 2.Creates presets 3.Adds thang clusters which can be used to create presets easily --- app/templates/modal/terrain_randomise.jade | 2 +- .../modal/terrain_randomise_modal.coffee | 89 +++++++++++++++++-- 2 files changed, 82 insertions(+), 9 deletions(-) diff --git a/app/templates/modal/terrain_randomise.jade b/app/templates/modal/terrain_randomise.jade index 799b4312c..680af187c 100644 --- a/app/templates/modal/terrain_randomise.jade +++ b/app/templates/modal/terrain_randomise.jade @@ -6,7 +6,7 @@ block modal-header-content block modal-body-content div#normal-view a(href="#") - div.choose-option(data-preset-type="dungeon", data-preset-size="small") + div.choose-option(data-preset-type="grassy", data-preset-size="small") div.preset-size.name-label span(data-i18n="ladder.small") Small div.preset-name diff --git a/app/views/modal/terrain_randomise_modal.coffee b/app/views/modal/terrain_randomise_modal.coffee index 35562ef81..e7bdc4a73 100644 --- a/app/views/modal/terrain_randomise_modal.coffee +++ b/app/views/modal/terrain_randomise_modal.coffee @@ -2,12 +2,51 @@ ModalView = require 'views/kinds/ModalView' template = require 'templates/modal/terrain_randomise' CocoModel = require 'models/CocoModel' +clusters = { + 'rocks': ['Rock 1', 'Rock 2', 'Rock 3', 'Rock 4', 'Rock 5', 'Rock Cluster 1', 'Rock Cluster 2', 'Rock Cluster 3'] + 'trees': ['Tree 1', 'Tree 2', 'Tree 3', 'Tree 4'] + 'shrubs': ['Shrub 1', 'Shrub 2', 'Shrub 3'] + 'houses': ['House 1', 'House 2', 'House 3', 'House 4'] + 'animals': ['Cow', 'Horse'] + 'wood': ['Firewood 1', 'Firewood 2', 'Firewood 3', 'Barrel'] + 'farm': ['Farm'] +} + presets = { - 'dungeon': { - 'type':'dungeon' - 'borders':['Dungeon Wall'] - 'floors':['Dungeon Floor'] - 'decorations':[] + # 'dungeon': { + # 'type':'dungeon' + # 'borders':['Dungeon Wall'] + # 'floors':['Dungeon Floor'] + # 'decorations':[] + # } + 'grassy': { + 'type':'grassy' + 'borders':['Tree 1', 'Tree 2', 'Tree 3'] + 'floors':['Grass01', 'Grass02', 'Grass03'] + 'decorations': { + 'house': { + 'num':[1,2] #min-max + 'width': 20 + 'height': 20 + 'clusters': { + 'houses':[1,1] + 'trees':[1,2] + 'shrubs':[0,3] + 'rocks':[1,2] + } + } + 'farm': { + 'num':[1,2] #min-max + 'width': 20 + 'height': 20 + 'clusters': { + 'farm':[1,1] + 'shrubs':[2,3] + 'wood':[2,4] + 'animals':[2,3] + } + } + } } } @@ -45,12 +84,12 @@ module.exports = class TerrainRandomiseModal extends ModalView @reloadOnClose = true onRandomise: (e) -> - @thangs = [] target = $(e.target) presetType = target.attr 'data-preset-type' presetSize = target.attr 'data-preset-size' @randomiseThangs presetType, presetSize - + # console.log target, target.attr 'data-preset-type' + # console.log target.attr 'data-preset-size' Backbone.Mediator.publish('randomise:terrain-generated', 'thangs': @thangs ) @@ -61,6 +100,8 @@ module.exports = class TerrainRandomiseModal extends ModalView @thangs = [] @randomiseFloor preset, presetSize @randomiseBorder preset, presetSize + @randomiseDecorations preset, presetSize + # console.log _.range(0, presetSize.x, sizes.floorSize) randomiseFloor: (preset, presetSize) -> for i in _.range(0, presetSize.x, sizes.floorSize.x) @@ -106,9 +147,41 @@ module.exports = class TerrainRandomiseModal extends ModalView } } + randomiseDecorations: (preset, presetSize)-> + console.log preset.decorations + for name, decoration of preset.decorations + console.log 'here', decoration + for num in _.range(_.random(decoration.num[0], decoration.num[1])) + center = + { + 'x':_.random(decoration.width, presetSize.x - decoration.width), + 'y':_.random(decoration.height, presetSize.y - decoration.height) + } + min = + { + 'x':center.x - decoration.width/2 + 'y':center.y - decoration.height/2 + } + max = + { + 'x':center.x + decoration.width/2 + 'y':center.y + decoration.height/2 + } + console.log center, min, max + for cluster, range of decoration.clusters + for i in _.range(_.random(range[0], range[1])) + @thangs.push { + 'id':@getRandomThang(clusters[cluster]) + 'pos':{ + 'x':_.random(min.x, max.x) + 'y':_.random(min.y, max.y) + } + } + + getRandomThang: (thangList) -> return thangList[_.random(0, thangList.length-1)] - + getRenderData: -> c = super() models = _.values CocoModel.backedUp From 5fb4f161d0e99c950ad1d08222095a9a5e9b0913 Mon Sep 17 00:00:00 2001 From: Jayant Jain Date: Thu, 10 Jul 2014 21:18:51 +0530 Subject: [PATCH 082/106] Removes console logs --- app/views/modal/terrain_randomise_modal.coffee | 6 ------ 1 file changed, 6 deletions(-) diff --git a/app/views/modal/terrain_randomise_modal.coffee b/app/views/modal/terrain_randomise_modal.coffee index e7bdc4a73..94b4676fb 100644 --- a/app/views/modal/terrain_randomise_modal.coffee +++ b/app/views/modal/terrain_randomise_modal.coffee @@ -88,8 +88,6 @@ module.exports = class TerrainRandomiseModal extends ModalView presetType = target.attr 'data-preset-type' presetSize = target.attr 'data-preset-size' @randomiseThangs presetType, presetSize - # console.log target, target.attr 'data-preset-type' - # console.log target.attr 'data-preset-size' Backbone.Mediator.publish('randomise:terrain-generated', 'thangs': @thangs ) @@ -101,7 +99,6 @@ module.exports = class TerrainRandomiseModal extends ModalView @randomiseFloor preset, presetSize @randomiseBorder preset, presetSize @randomiseDecorations preset, presetSize - # console.log _.range(0, presetSize.x, sizes.floorSize) randomiseFloor: (preset, presetSize) -> for i in _.range(0, presetSize.x, sizes.floorSize.x) @@ -148,9 +145,7 @@ module.exports = class TerrainRandomiseModal extends ModalView } randomiseDecorations: (preset, presetSize)-> - console.log preset.decorations for name, decoration of preset.decorations - console.log 'here', decoration for num in _.range(_.random(decoration.num[0], decoration.num[1])) center = { @@ -167,7 +162,6 @@ module.exports = class TerrainRandomiseModal extends ModalView 'x':center.x + decoration.width/2 'y':center.y + decoration.height/2 } - console.log center, min, max for cluster, range of decoration.clusters for i in _.range(_.random(range[0], range[1])) @thangs.push { From a76a79bb9d33c160d51657abf44dd3a0aeb0bcf6 Mon Sep 17 00:00:00 2001 From: Jayant Jain Date: Fri, 11 Jul 2014 01:07:03 +0530 Subject: [PATCH 083/106] Fixes bug with placing addThang after randomise --- app/views/editor/level/thangs_tab_view.coffee | 1 + 1 file changed, 1 insertion(+) diff --git a/app/views/editor/level/thangs_tab_view.coffee b/app/views/editor/level/thangs_tab_view.coffee index 010b38b50..e594b00be 100644 --- a/app/views/editor/level/thangs_tab_view.coffee +++ b/app/views/editor/level/thangs_tab_view.coffee @@ -228,6 +228,7 @@ module.exports = class ThangsTabView extends View for thang in e.thangs @selectAddThangType thang.id @addThang @addThangType, thang.pos + @selectAddThangType null # TODO: figure out a good way to have all Surface clicks and Treema clicks just proxy in one direction, so we can maintain only one way of handling selection and deletion onExtantThangSelected: (e) -> From d6928eb1c4223876b99c22e44c598f7e4e7366d3 Mon Sep 17 00:00:00 2001 From: Jayant Jain Date: Fri, 11 Jul 2014 01:43:51 +0530 Subject: [PATCH 084/106] Removes okay button, hides modal upon generation --- app/templates/modal/terrain_randomise.jade | 3 ++- app/views/modal/terrain_randomise_modal.coffee | 1 + 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/app/templates/modal/terrain_randomise.jade b/app/templates/modal/terrain_randomise.jade index 680af187c..9ac509c68 100644 --- a/app/templates/modal/terrain_randomise.jade +++ b/app/templates/modal/terrain_randomise.jade @@ -11,4 +11,5 @@ block modal-body-content span(data-i18n="ladder.small") Small div.preset-name span(data-i18n="ladder.grassy") Grassy - //- for model in models \ No newline at end of file + //- for model in models +block modal-footer diff --git a/app/views/modal/terrain_randomise_modal.coffee b/app/views/modal/terrain_randomise_modal.coffee index 94b4676fb..d737f929f 100644 --- a/app/views/modal/terrain_randomise_modal.coffee +++ b/app/views/modal/terrain_randomise_modal.coffee @@ -91,6 +91,7 @@ module.exports = class TerrainRandomiseModal extends ModalView Backbone.Mediator.publish('randomise:terrain-generated', 'thangs': @thangs ) + @hide() randomiseThangs: (presetName, presetSize) -> preset = presets[presetName] From cf63989ee3778fc09d482d6d9727bffb3312b0d8 Mon Sep 17 00:00:00 2001 From: Scott Erickson Date: Thu, 10 Jul 2014 14:18:35 -0700 Subject: [PATCH 085/106] Tweak to make sure errors are noticed. --- scripts/mongodb/migrations/2014-07-09-name-conflicts.js | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/scripts/mongodb/migrations/2014-07-09-name-conflicts.js b/scripts/mongodb/migrations/2014-07-09-name-conflicts.js index cf8c81f66..bf15c1a9e 100644 --- a/scripts/mongodb/migrations/2014-07-09-name-conflicts.js +++ b/scripts/mongodb/migrations/2014-07-09-name-conflicts.js @@ -48,5 +48,9 @@ db.users.find({anonymous:false}, params).sort({_id:1}).forEach(function (user) { slugs[slug] = user.name; if(user.slug) return; print(_.str.sprintf('Setting user %s (%s) to slug %s with update %s', user.name, user.dateCreated, slug, JSON.stringify({$set:update}))); - db.users.update({_id:user._id}, {$set:update}); + var res = db.users.update({_id:user._id}, {$set:update}); + if(res.hasWriteError()) { + print("\n\n\n\n\n\n\n\n\n\nOH NOOOOOOOOO\n\n\n\n\n\n\n"); + db.changedEmails.insert({email:user.email, user:user._id, name:user.name, error:true}); + } }); \ No newline at end of file From f17e24013bfd69a729bf3ba9cd89393fc966bf5e Mon Sep 17 00:00:00 2001 From: Nick Winter Date: Thu, 10 Jul 2014 14:22:08 -0700 Subject: [PATCH 086/106] Fixed #1217 (scaleFactor, debug shapes). --- app/lib/surface/CocoSprite.coffee | 32 ++++++++++++++++++------------- app/lib/surface/Mark.coffee | 3 +++ app/lib/surface/SpriteBoss.coffee | 2 +- app/views/play_view.coffee | 8 ++++++++ 4 files changed, 31 insertions(+), 14 deletions(-) diff --git a/app/lib/surface/CocoSprite.coffee b/app/lib/surface/CocoSprite.coffee index 24c5dc67b..ea0a89fea 100644 --- a/app/lib/surface/CocoSprite.coffee +++ b/app/lib/surface/CocoSprite.coffee @@ -45,8 +45,10 @@ module.exports = CocoSprite = class CocoSprite extends CocoClass # Scale numbers baseScaleX: 1 # scale + flip (for current action) / resolutionFactor. baseScaleY: 1 # These numbers rarely change, so keep them around. - scaleFactor: 1 # Current scale adjustment. This can change rapidly. - targetScaleFactor: 1 # What the scaleFactor is going toward during a tween. + scaleFactorX: 1 # Current scale adjustment. This can change rapidly. + scaleFactorY: 1 + targetScaleFactorX: 1 # What the scaleFactor is going toward during a tween. + targetScaleFactorY: 1 # ACTION STATE # Actions have relations. If you say 'move', 'move_side' may play because of a direction @@ -104,7 +106,10 @@ module.exports = CocoSprite = class CocoSprite extends CocoClass finishSetup: -> @updateBaseScale() - @scaleFactor = @thang.scaleFactor if @thang?.scaleFactor + @scaleFactorX = @thang.scaleFactorX if @thang?.scaleFactorX? + @scaleFactorX = @thang.scaleFactor if @thang?.scaleFactor? + @scaleFactorY = @thang.scaleFactorY if @thang?.scaleFactorY? + @scaleFactorY = @thang.scaleFactor if @thang?.scaleFactor? @update true # Reflect initial scale and other state setUpRasterImage: -> @@ -212,7 +217,7 @@ module.exports = CocoSprite = class CocoSprite extends CocoClass # Gets the sprite to reflect what the current state of the thangs and surface are return if @stillLoading @updatePosition() - frameChanged = frameChanged or @targetScaleFactor isnt @scaleFactor + frameChanged = frameChanged or @targetScaleFactorX isnt @scaleFactorX or @targetScaleFactorY isnt @scaleFactorY if frameChanged @handledDisplayEvents = {} @updateScale() # must happen before rotation @@ -351,14 +356,16 @@ module.exports = CocoSprite = class CocoSprite extends CocoClass scaleX = 0.5 + 0.5 * (90 - angle) / 90 # console.error 'No thang for', @ unless @thang - # TODO: support using scaleFactorX/Y from the thang object - @imageObject.scaleX = @baseScaleX * @scaleFactor * scaleX - @imageObject.scaleY = @baseScaleY * @scaleFactor * scaleY + @imageObject.scaleX = @baseScaleX * @scaleFactorX * scaleX + @imageObject.scaleY = @baseScaleY * @scaleFactorY * scaleY - if @thang and (@thang.scaleFactor or 1) isnt @targetScaleFactor + newScaleFactorX = @thang?.scaleFactorX ? @thang?.scaleFactor ? 1 + newScaleFactorY = @thang?.scaleFactorY ? @thang?.scaleFactor ? 1 + if @thang and (newScaleFactorX isnt @targetScaleFactorX or newScaleFactorY isnt @targetScaleFactorY) + @targetScaleFactorX = newScaleFactorX + @targetScaleFactorY = newScaleFactorY createjs.Tween.removeTweens(@) - createjs.Tween.get(@).to({scaleFactor: @thang.scaleFactor or 1}, 2000, createjs.Ease.elasticOut) - @targetScaleFactor = @thang.scaleFactor or 1 + createjs.Tween.get(@).to({scaleFactorX: @targetScaleFactorX, scaleFactorY: @targetScaleFactorY}, 2000, createjs.Ease.elasticOut) updateAlpha: -> @imageObject.alpha = if @hiding then 0 else 1 @@ -536,9 +543,8 @@ module.exports = CocoSprite = class CocoSprite extends CocoClass pos.x *= scale pos.y *= scale if @thang and prop isnt 'registration' - scaleFactor = @thang.scaleFactor ? 1 - pos.x *= @thang.scaleFactorX ? scaleFactor - pos.y *= @thang.scaleFactorY ? scaleFactor + pos.x *= @thang.scaleFactorX ? @thang.scaleFactor ? 1 + pos.y *= @thang.scaleFactorY ? @thang.scaleFactor ? 1 # We might need to do this, but I don't have a good test case yet. TODO: figure out. #if prop isnt @registration # pos.x *= if @getActionProp 'flipX' then -1 else 1 diff --git a/app/lib/surface/Mark.coffee b/app/lib/surface/Mark.coffee index ff4631aec..11511634e 100644 --- a/app/lib/surface/Mark.coffee +++ b/app/lib/surface/Mark.coffee @@ -257,6 +257,9 @@ module.exports = class Mark extends CocoClass updateRotation: -> if @name is 'debug' or (@name is 'shadow' and @sprite.thang?.shape in ['rectangle', 'box']) + rot = @sprite.thang.rotation * 180 / Math.PI + unless @mark.rotation is rot + console.log @toString(), "updating rotation", @name, @sprite.thang?.shape, @sprite.thang?.rotation, "to", rot, "from", @mark.rotation @mark.rotation = @sprite.thang.rotation * 180 / Math.PI updateScale: -> diff --git a/app/lib/surface/SpriteBoss.coffee b/app/lib/surface/SpriteBoss.coffee index cab039d97..2c2664a6b 100644 --- a/app/lib/surface/SpriteBoss.coffee +++ b/app/lib/surface/SpriteBoss.coffee @@ -11,7 +11,7 @@ module.exports = class SpriteBoss extends CocoClass subscriptions: 'bus:player-joined': 'onPlayerJoined' 'bus:player-left': 'onPlayerLeft' -# 'level-set-debug': 'onSetDebug' + 'level-set-debug': 'onSetDebug' 'level-highlight-sprites': 'onHighlightSprites' 'surface:stage-mouse-down': 'onStageMouseDown' 'level-select-sprite': 'onSelectSprite' diff --git a/app/views/play_view.coffee b/app/views/play_view.coffee index 4d9d84fef..bd7a412e7 100644 --- a/app/views/play_view.coffee +++ b/app/views/play_view.coffee @@ -143,6 +143,14 @@ module.exports = class PlayView extends View ] arenas = [ + #{ + # name: 'Criss-Cross' + # difficulty: 4 + # id: 'criss-cross' + # image: '/file/db/level/528aea2d7f37fc4e0700016b/its_a_trap_icon.png' + # description: 'Participate in a bidding war with opponents to reach the other side!' + # levelPath: 'ladder' + #} { name: 'Greed' difficulty: 4 From ad2e01ee61a9c390fe4c8c9ff97962a2fb712ccd Mon Sep 17 00:00:00 2001 From: Scott Erickson Date: Thu, 10 Jul 2014 14:31:25 -0700 Subject: [PATCH 087/106] Fixed a couple tests. --- test/server/functional/level_component.spec.coffee | 11 +++-------- 1 file changed, 3 insertions(+), 8 deletions(-) diff --git a/test/server/functional/level_component.spec.coffee b/test/server/functional/level_component.spec.coffee index d34ec82cb..697c14df7 100644 --- a/test/server/functional/level_component.spec.coffee +++ b/test/server/functional/level_component.spec.coffee @@ -21,14 +21,8 @@ describe 'LevelComponent', -> expect(err).toBeNull() done() - it 'can\'t be created by ordinary users.', (done) -> + it 'can be created by ordinary users.', (done) -> loginJoe -> - request.post {uri: url, json: component}, (err, res, body) -> - expect(res.statusCode).toBe(403) - done() - - it 'can be created by an admin.', (done) -> - loginAdmin -> request.post {uri: url, json: component}, (err, res, body) -> expect(res.statusCode).toBe(200) expect(body._id).toBeDefined() @@ -105,7 +99,8 @@ describe 'LevelComponent', -> components[0].official = true loginJoe -> request.post {uri: url, json: components[0]}, (err, res, body) -> - expect(res.statusCode).toBe(403) + expect(res.statusCode).toBe(200) + expect(body.official).toBe(false) done() it 'official property is editable by an admin.', (done) -> From 80e7b7664e37041f5b4ae75b0411a7eed2480901 Mon Sep 17 00:00:00 2001 From: Michael Schmatz Date: Thu, 10 Jul 2014 15:42:44 -0700 Subject: [PATCH 088/106] Changed employer artisanal message font --- app/styles/employers.sass | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/styles/employers.sass b/app/styles/employers.sass index 48ff80e10..bfb518ef8 100644 --- a/app/styles/employers.sass +++ b/app/styles/employers.sass @@ -1,10 +1,10 @@ #employers-view .artisanal-claim - font-variant: small-caps + //font-variant: small-caps text-align: center font-size: 20px font-weight: bold - font-family: Copperplate, "Copperplate Gothic Light", fantasy + font-family: Arial, Helvetica, sans-serif border-top: 1px solid #DBDBDB border-bottom: 1px solid #DBDBDB margin-bottom: 5px From 3d5cd295192739e89f174feaac5d85b00d17afb2 Mon Sep 17 00:00:00 2001 From: Nick Winter Date: Thu, 10 Jul 2014 17:35:52 -0700 Subject: [PATCH 089/106] Removed some logging. --- app/lib/surface/Mark.coffee | 3 --- 1 file changed, 3 deletions(-) diff --git a/app/lib/surface/Mark.coffee b/app/lib/surface/Mark.coffee index 11511634e..ff4631aec 100644 --- a/app/lib/surface/Mark.coffee +++ b/app/lib/surface/Mark.coffee @@ -257,9 +257,6 @@ module.exports = class Mark extends CocoClass updateRotation: -> if @name is 'debug' or (@name is 'shadow' and @sprite.thang?.shape in ['rectangle', 'box']) - rot = @sprite.thang.rotation * 180 / Math.PI - unless @mark.rotation is rot - console.log @toString(), "updating rotation", @name, @sprite.thang?.shape, @sprite.thang?.rotation, "to", rot, "from", @mark.rotation @mark.rotation = @sprite.thang.rotation * 180 / Math.PI updateScale: -> From 45545796a0890ba2e25cfbae8ccb181207aec2cc Mon Sep 17 00:00:00 2001 From: Nick Winter Date: Thu, 10 Jul 2014 19:17:51 -0700 Subject: [PATCH 090/106] Fixes, tweaks, and i18n for the employers page. --- .../images/pages/employer/anon_user.png | Bin 1028 -> 1134 bytes .../images/pages/employer/artisanal_claim.png | Bin 0 -> 3943 bytes app/locale/en.coffee | 45 +++-- app/styles/employers.sass | 47 +++-- app/templates/account/profile.jade | 2 +- app/templates/employers.jade | 179 ++++++++++-------- 6 files changed, 157 insertions(+), 116 deletions(-) create mode 100644 app/assets/images/pages/employer/artisanal_claim.png diff --git a/app/assets/images/pages/employer/anon_user.png b/app/assets/images/pages/employer/anon_user.png index 34c2f197ba1134e92593ea0417aef714abd2a21e..7191d604fe61b67f4861bd16ba983d130383cd20 100644 GIT binary patch delta 1112 zcmV-e1gHCi2<`|WiBL{Q4GJ0x0000DNk~Le0001F0001F2nGNE0C3`!RFNSke*_Ro zL_t(|+U%V%avCudhNbldC^J->69gtM(iysRtWOZ=(qT^ExJ&2w1i>c=IRQ(LhxG}v zX>b{i5WQIT5XQh7cJ+R(-an(E@C*|A_PwVkOK+7DK}q{G*wfSZ9rMvLtzp{P+Miw+#&C0Z~X;%i$N`M>&f}Z$G3!^L%jFEvd79g*) z2m*0YVK)P0C?`NLC^k$@`&e;TNweA1rm5xfAr}kT4Wr?>YjR@~8((q(!V6YwGV2Cu(_Bhe-y;ItanNT1*9ROe{ewTDUYh3+FUW0^7F|;TwGbmQLjaWddCp99RVT|AR-Td*f%Cr-A61yitCeuKKh71T!UK2!cli^v@Mhf3mq1Bif363uep;#Dmq6cdIjfAP90t*9vrl4nX9>Mu+T^og4rov03#8 znfI-tSo)dne@`x#4{0S9B35x!d^s<=BGa#c!L`>^2how$ZV?xz1qK!rEijxzY437h z`?lY&1xBf&2mHrDt1P>k`YLl+y58(seMNh$LsX3}x1D;4wpd4BdGlM=XKdS%6Q9SV$ssmT zL_t(|+SHj#XcJKshG!;8r;TYEEzLu0?LrGJO_~Q-6_kn~Me(uofuLR3Zp2mTLia*J z3L*-{7b57!g+fKCA}TI)kw=SFv{q7*nlw;IOGsm0<9|aCRIE-iXObK^oCI?2{mz{; z_nvdZa|(#Z<7tOE0zC|MLQTK@edhhFyk{VCPJold7-qtQ&_bQ<>~?!6b&h)ozrv}#%fq$n4|4c!RZFZI#e2#!SGcz+2rapi^5rF$vR#x();8RmmPYJ*ulb@U| zEiKF^p)mL=Ik?4Q86ntNe+J3HQ9t()oSs|NsK+zaa9WiD{*HiSjvQR4)7_VQ%KgWf zS7mo$avieS>|%3sa|{h{8@^fh=15d~J~7`Y0BQU4TDVkrgjI@A-LF*?pAh zHVQx0PtLO2E+vXIrNDW$=T!<^?z@t!ICxW26Ekfx-Aok+@9OGecjWCd-HsZKMy;BU z_@|&&;Y3lin@lG5f6szhrn|#tvxTr7&ZZ%%fEx@3*6G{2ySw+9&E~tP61S8xF$%Rq zR;x7~kH;4=UIP4ClHCA@3~SfS4u^xaS!Xht%rS*(@gU6D^z`&|*l+AyOD2=$fdiHq zcKvGw@E(?%0Nzc}iXi}2uw7>rBZ6STEFyrcEb#jJdS*5_f1OU21}C9I0IpN3pF|KZ zV8#Q1z+2d8DwRtA6CBXSBJf$j4pg!sMgZ)daufkPVKp5B_!As2Na4Q6<#LUnJsak# zNKnYJl^^u`{U7iW=Y9e2?d|P=xee%@T$Ks}*bn$g1}_vJi2=Zq)eK#1)F+U}ec5y$200000NkvXXu0mjfs!Yx< diff --git a/app/assets/images/pages/employer/artisanal_claim.png b/app/assets/images/pages/employer/artisanal_claim.png new file mode 100644 index 0000000000000000000000000000000000000000..4a4918ff7f0e07d8b28fa1b9a5ba74e2623e242f GIT binary patch literal 3943 zcmaJ^c_5VQ8viCrLSZPK$TSLNnHl?7!;mFQ_TrRb27@tUW~?QX$W|#*2}#*X7_xJ0 zVeFD*-w7f6p5~73>D>Fr?S6lJ-@81&-}`Lu`#xW|sqqD_Lw_6s0Dwzh4`l`btjs1L zaPR>0jp>eZVt$TObZjW*1Sg6QnuG;3F$4!JL?4fK#+qT#7(dTOtSSJoh~q45C^kkH zl^qFqY4o0qv@f2x#|5Zr_!7~MZdeM$0qczOP=hX%RYD;+j2hHh-Ux0))W*8t^!!O! zbAMwCM}Id*BnGOX4pH@0W)k4B6g0#a@9sfX_Em%amqB0ET1dWXTzbGF6 zk2INLhW(Ge|C5+(;YY;6%&=sF7s-(sI46<4rHIPfBrKXjAXyLy?!UZf>O!Cp$SwpT zL|gl(*C66XXh)pK-r(7vC?g|feGf7P?cs>kN2x)XJkmHEMp;fqQ&Co15ebKD=^zj~ za+=zT@;X|&D0v-(HVUDw^9ze2IC|l+9+Y2L%zv<&zs2q)1fIxT8HFX`ys;Qv5&;kS zX}B`(_qr(lmhW#Y=J&cN{T2&jDg)aK?|+5+*AO#@_L~1BFSGMc`eQwqIZt9H_g(j^ zPypcQ(no1p`1Z{u8j|`9`0j)>lgZZhdHcwbn7ifsV)#*4Z!N(^nnjKnS=p@~o_`2rLrYV1=+7*XCd++n} z$*#VR(tPifD0gUU)>N-+L6Br~;h!dZ`%*5F)6YY`)!lM5wgi(%aymiNF4T;7&PfR% zBjs`!a3>H=%z9YzHV@DPB8i&rLB2%Wy9rk99TDF8N{;&qh6_PC;{#fOEP(xuU>1Oj zIWf}3K9$z*B-Cwbm$^~N7_nphH3vV-1YUF}W*vAc22jbIRUiNm4FLdZ_-Xh3aFg@G zASHTLHt8T30G>6pCuwwzD=I1`MhR;euSmbC(6_rZfE@=duFv;3lx$0E7oPC1xw0e_xAfAjo-KSrD{T){f(bHsf zZiB-+gRp|0cMjA@YwtGv)c!@Sja{a*si1CM!1Q{4qjy^&dw@rL-u(_T;?9`zVJpqf zZO*obyWL#OQ;;?Z;sHkwR%b&Wz7XI$2$h!(uQ2eOowy8&zi^Gm%u2kK&sj4b$sR43 z9>n2nooLP*Ep*h~^}b2#lIck>E@bRR1DD80s};Vn$BZ9kZ)J{{s5!a{dsOB+8LlXJ zj!q}2r!5G#EKJ!wiZ-u4^i|~XU9Ldg%8){Q#&_fI8qop^Dq=uaYdGTqSnTS{z?KXt z6H-lrXZr0qv5yrIx0B6H?=;j#8svu-jIwza!-kSn@%bM@F~eyJbN+e8vE(z7;@P_a zb2I6#zTGzs`m%?cWYXRyO{6jeVPXLbTP2MMN?ft!*yt4wpy!j_jVJW@_o8wDU__Cm zrV?$_+aGg}v$!_D*)v%F$b4~&Y+9bp7b|g>%x=DgV0LpAknn*>iLRvSp0JR=jvTe_ zlp3zxA{tFT*b;iTAbnAib+m-bPz%@cwI(D!;5y`%6)Ho?MD7-!oAJ^5#K!K3%;4H* ze2fGzNivF0-~wf)ZJ%pW{P`m-3(3&!G_SGG zjpWOE2g&HohT2WjIC%O+xpXA7s=h3>U41D-Nch}KWAGqvQCB~Ec9_*|zd`j}%XR%* zkZWQc90=dTS19{!9q z^$h}mGR{E>*ZnPu>tkTUo8Mje_rl8}&6~A3wc(lc!F5FDV$YO%_=sL`xJyAlQn2D& z5Y+7BH;MiNXRSHghs#GY`^{;^%guH72E&Q2R|Dg_Q@LzMPc9v2-#%CKDZ;ae|7Oag z@KE8htm&qso6@PHR;93~ooDRthvXEh8My1ir1FifSOKC7Lw_0Gu8VbOJw?Gc_2$9Q znGG>N&J@sJM;g+f6OPf=9>7xDk)u933Z7F&@!K!U*3N$uphsIOH^;?^1^QIsjQ!KIM4;-0?Y=;M zmMYx@;K}I&%Y_=(;)&_Y?48Z^Sus=5i~8Tgf)@r>uH*FN)DDGG2h46rvMvTu!TaXJ zQN0A7tckb-KSBp|YD%h_y)}bIj-{%2LUU1S%>z*bmhR&p`e-78oC#v)H;@5>agt6(!GCruOwXb6%9|R|&nv-B2+oQe>8r%f_jzRa^4p-RyPr zD~*H;lEbEt28Sx_g`~lyYUqqL+0Pn(Ci0q8MzJtF(nw@%)Pjjp?SG|}gsFmj13XRAB zUbzI#%ZRt|qcw(LeP?wxDpCEk7JR*cA1`6nQn#%s_#;L2EqpnwK!kL#R$@+fIoYRt zfJJ9uWii<$$8km#vUD_;f99c!_10pAg#Y=GH@>H*E>3R^s?E`0tQ)>u>2JaF1U=TP zosmUrh~B)6YegKW?93Rq7{9BPm&Z>p%h*u*vSQ+BCa>tG)GZnJi0yA8_r4zk28LMy z)9FX5g-yj?%aRh0g9MYOS#t@oWm#d1Q*2=!O=*e2!x6(t;=_co&6@SV$;Y6wpl!{& z?U!i9+h3(W7nU>fwEHj`qMqCjAIzAlwLgUmXV)}P7(Y~fdqIfg%5QFLkrHF<Otf|uM`PsF`*B>kWu83i#cxLIjhTY_x9WUDEVpXm)TP?X~VYsqvwRA4vO{&p- z!R|Dk#3MrOvWjM;iqp3k)el2v;>nqgO&Q;sXbSMk(DK2S4OT~S0O%t!lzQq8*eG%{ z0HB)6es6XJYdPb7Z*O-#)(bm+^V*{MEvolnmJm-8(U(jivYD!HJ-6D<{ZsU)R*?U&iV?oBUawHd)zho5Y*B*4-k-vPXa17rgRHP;(&xNcG<5!nCycNkzf1 z#+MD1FLN|1Le}eXXwZ@+SA|Yz=nA3?^>ISxid^U83Lr;>*+h z^}fRqX@Q-54yeuKd-mJkcNi?Z-&HHo4;b9^3*FAx#NKRH=~B9+olSMUC4Mn9AU4!s znezUR`K-0-l?cYUTpwomKAfi2RWM7SxtyN&jfddAPn=vuA1n+W^Z&TI6CWSnP+t1w zdg-0Lw7z}A{&_-+NiAXn$-d0+r%BZAqLjd9q6hk$Jf}DXuHPiT)L2sD9msV{0tXdN zFzT94WH-!SLK2yR+BDkCdJH8&RUlUlu<&cT$i^M7GCpZVVc7{W6sa><$X_9tca{VLS#MoA(1|?|8V4 zUGLqH4}uS>;;r}?0vGm*$Ui=$DBNLTwty;D=FcfyorT62Apo(OAb`4Z_yz0}D8`UV z=E2^HmphdQ>gG|N}>&*$}o@+@m}dI)*)vG_kn-*NTG_nYou`@g~%9B{z8y3S+uctOja O^7=Z)sBA6!pnm~3j14*f literal 0 HcmV?d00001 diff --git a/app/locale/en.coffee b/app/locale/en.coffee index 5653c44c2..69373ccfb 100644 --- a/app/locale/en.coffee +++ b/app/locale/en.coffee @@ -281,7 +281,7 @@ education_duration_help: "When?" education_description: "Description" education_description_help: "Highlight anything about this educational experience. (140 chars; optional)" - our_notes: "Our Notes" + our_notes: "CodeCombat's Notes" remarks: "Remarks" projects: "Projects" projects_header: "Add 3 projects" @@ -298,26 +298,37 @@ player_code: "Player Code" employers: - want_to_hire_our_players: "Hire CodeCombat Players" + hire_developers_not_credentials: "Hire developers, not credentials." + get_started: "Get Started" + already_screened: "We've already technically screened all our candidates" + filter_further: ", but you can also filter further:" + filter_visa: "Visa" + filter_visa_yes: "US Authorized" + filter_visa_no: "Not Authorized" + filter_education_top: "Top School" + filter_education_other: "Other" + filter_role_web_developer: "Web Developer" + filter_role_software_developer: "Software Developer" + filter_role_mobile_developer: "Mobile Developer" + filter_experience: "Experience" + filter_experience_senior: "Senior" + filter_experience_junior: "Junior" + filter_experience_recent_grad: "Recent Grad" + filter_experience_student: "College Student" + filter_results: "results" + start_hiring: "Start hiring." + reasons: "Three reasons you should hire through us:" + everyone_looking: "Everyone here is looking for their next opportunity." + everyone_looking_blurb: "Forget about 20% LinkedIn InMail response rates. Everyone that we list on this site wants to find their next position and will respond to your request for an introduction." + weeding: "Sit back; we've done the weeding for you." + weeding_blurb: "Every player that we list has been screened for technical ability. We also perform phone screens for select candidates and make notes on their profiles to save you time." + pass_screen: "They will pass your technical screen." + pass_screen_blurb: "Review each candidate's code before reaching out. One employer found that 5x as many of our devs passed their technical screen than hiring from Hacker News." + make_hiring_easier: "Make my hiring easier, please." what: "What is CodeCombat?" what_blurb: "CodeCombat is a multiplayer browser programming game. Players write code to control their forces in battle against other developers. We support JavaScript, Python, Lua, Clojure, CoffeeScript, and Io." - who: "Who Are the Players?" - who_blurb: "CodeCombateers are CTOs, VPs of Engineering, and graduates of top 20 engineering schools. Our advanced players enjoy playing with difficult code and solving problems." - how: "How Do We Find Developers?" - how_blurb: "We host competitive tournaments to attract competitive software engieneers. We then use in-house algorithms to identify the best players among the top 5% of tournament winners." - why: "Why Hire Through Us?" - why_blurb_1: "We will save you time. Every CodeCombateer we feaure is " cost: "How much do we charge?" cost_blurb: "We charge 15% of first year's salary and offer a 100% money back guarantee for 90 days. We don't charge for candidates who are already actively being interviewed at your company." - response: "What's the response rate?" - response_blurb: "Almost every developer you contact on CodeCombat will respond to inquires whether or not they want to interivew. If you would like help finding a candidate for your role, we can make recommendations." - why_blurb_2: "looking for work" - why_blurb_3: ", has " - why_blurb_4: "demonstrated top notch technical skills" - why_blurb_5: ", and has been " - why_blurb_6: "personally screened by us" - why_blurb_7: ". Stop screening and start hiring." - see_candidates: "Click here to see our candidates" candidate_name: "Name" candidate_location: "Location" candidate_looking_for: "Looking For" diff --git a/app/styles/employers.sass b/app/styles/employers.sass index bfb518ef8..32c1d1de3 100644 --- a/app/styles/employers.sass +++ b/app/styles/employers.sass @@ -1,13 +1,8 @@ #employers-view .artisanal-claim - //font-variant: small-caps - text-align: center - font-size: 20px - font-weight: bold - font-family: Arial, Helvetica, sans-serif - border-top: 1px solid #DBDBDB - border-bottom: 1px solid #DBDBDB + background: transparent url(/images/pages/employer/artisanal_claim.png) no-repeat center margin-bottom: 5px + height: 24px .employer-button background: #fce232 /* Old browsers */ @@ -20,7 +15,15 @@ filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#fce232', endColorstr='#ea8e2b',GradientType=0 ) vertical-align: text-bottom margin-left: 30px - + + #filter-column + margin-left: 0px + padding-right: 0 + + #candidates-column + padding-left: 5px + padding-right: 5px + //filter panels #filter border: 2px solid #CBCBCB @@ -32,10 +35,12 @@ border-top-right-radius: 0px #folder-icon margin-right: 5px + color: #919191 .panel-body background-color: #D9D9D9 border-top-left-radius: 0px border-top-right-radius: 0px + padding: 5px 10px 10px 10px .panel border: 1px red border-radius: 0px @@ -67,11 +72,13 @@ float: right #login-link, #logout-link - float: right - color: #333333 + position: absolute + right: 10px + top: -25px + color: black display: inline-block :visited - color: #333333 + color: black #logout-link:hover cursor: pointer @@ -113,6 +120,7 @@ display: inline-block vertical-align: top .employer_icon + display: block width: 125px margin: 0px auto @@ -146,17 +154,26 @@ vertical-align: top tr .candidate-picture - width: 100px - height: 100px + background-color: transparent + background-size: cover + background-repeat: no-repeat + background-position: center + width: 75px + height: 75px border-radius: 5px overflow: hidden margin-right: 10px - img - border-radius: 5px + &.anonymous + background-size: contain .candidate-description width: 100% vertical-align: bottom + div + text-overflow: ellipsis + overflow: hidden + height: 17px + td.candidate-description padding-bottom: 5px td.candidate-name-cell diff --git a/app/templates/account/profile.jade b/app/templates/account/profile.jade index c4ef36448..11c0d6956 100644 --- a/app/templates/account/profile.jade +++ b/app/templates/account/profile.jade @@ -397,7 +397,7 @@ block content if user.get('jobProfileNotes') || me.isAdmin() div(class="our-notes-section" + (editing ? " deemphasized" : "")) - h3.experience-header(data-i18n="account_profile.our_notes") Our Notes + h3.experience-header(data-i18n="account_profile.our_notes") CodeCombat's Notes - var notes = user.get('jobProfileNotes') || ''; if me.isAdmin() textarea#job-profile-notes!= notes diff --git a/app/templates/employers.jade b/app/templates/employers.jade index 6c7010d29..cc07bc618 100644 --- a/app/templates/employers.jade +++ b/app/templates/employers.jade @@ -2,20 +2,96 @@ extends /templates/recruitment_base block content .artisanal-claim - | Always 100% Pre-Screened if me.get('anonymous') - a#login-link Login + a#login-link(data-i18n="login.log_in") Log In br if !isEmployer && !me.isAdmin() #tagline h1(data-i18n="employers.hire_developers_not_credentials") Hire developers, not credentials. - button.btn.get-started-button.employer-button Get started + button.btn.get-started-button.employer-button(data-i18n="employers.get_started") Get Started else if !me.get('anonymous') - a#logout-link(data-i18n="login.log_out") Logout + a#logout-link(data-i18n="login.log_out") Log Out br .row - var fullProfiles = isEmployer || me.isAdmin(); + + if fullProfiles + #filter-column.col-md-3 + #filter + .panel-group#filter_panel + a#filter-link(data-toggle="collapse" data-target="#collapseOne") + .panel.panel-default + .panel-heading + h4.panel-title + span.glyphicon.glyphicon-folder-open#folder-icon + | Filter + .panel-collapse.collapse.in#collapseOne + .panel-body + p + strong(data-i18n="employers.already_screened") We've already technically screened all our candidates + span(data-i18n="employers.filter_further") , but you can also filter further: + form#filters + .filter_section#visa_filter + h4(data-i18n="employers.filter_visa") Visa + label + input(type="checkbox" name="visa" value="Authorized to work in the US") + span(data-i18n="employers.filter_visa_yes") US Authorized + | (#{candidatesInFilter("visa","Authorized to work in the US")}) + label + input(type="checkbox" name="visa" value="Need visa sponsorship") + span(data-i18n="employers.filter_visa_no") Not Authorized + | (#{candidatesInFilter("visa","Need visa sponsorship")}) + .filter_section#school_filter + h4(data-i18n="account_profile.education") Education + label + input(type="checkbox" name="schoolFilter" value="Top School") + span(data-i18n="employers.filter_education_top") Top School + | (#{candidatesInFilter("schoolFilter","Top School")}) + label + input(type="checkbox" name="schoolFilter" value="Other") + span(data-i18n="employers.filter_education_other") Other + | (#{candidatesInFilter("schoolFilter","Other")}) + .filter_section#role_filter + h4(data-i18n="employers.candidate_role") Role + label + input(type="checkbox" name="roleFilter" value="Web Developer") + span(data-i18n="employers.filter_role_web_developer") Web Developer + | (#{candidatesInFilter("roleFilter","Web Developer")}) + label + input(type="checkbox" name="roleFilter" value="Software Developer") + span(data-i18n="employers.filter_role_software_developer") Software Developer + | (#{candidatesInFilter("roleFilter","Software Developer")}) + label + input(type="checkbox" name="roleFilter" value="Mobile Developer") + span(data-i18n="employers.filter_role_mobile_developer") Mobile Developer + | (#{candidatesInFilter("roleFilter","Mobile Developer")}) + .filter_section#seniority_filter + h4(data-i18n="employers.filter_experience") Experience + label + input(type="checkbox" name="seniorityFilter" value="Senior") + span(data-i18n="employers.filter_experience_senior") Senior + | (#{candidatesInFilter("seniorityFilter","Senior")}) + label + input(type="checkbox" name="seniorityFilter" value="Junior") + span(data-i18n="employers.filter_experience_junior") Junior + | (#{candidatesInFilter("seniorityFilter","Junior")}) + label + input(type="checkbox" name="seniorityFilter" value="Recent Grad") + span(data-i18n="employers.filter_experience_recent_grad") Recent Grad + | (#{candidatesInFilter("seniorityFilter","Recent Grad")}) + label + input(type="checkbox" name="seniorityFilter" value="College Student") + span(data-i18n="employers.filter_experience_student") College Student + | (#{candidatesInFilter("seniorityFilter","College Student")}) + + //input#select_all_checkbox(type="checkbox" name="select_all" checked) + //| Select all + p#results + | #{numberOfCandidates} + span(data-i18n="employers.results") results + //button.btn#create-alert-button Create Alert + #candidates-column(class=fullProfiles ? "full-profiles col-md-9" : "teaser-profiles col-md-12") if candidates.length #candidate-table @@ -27,12 +103,12 @@ block content - var profileAge = (new Date() - new Date(profile.updated)) / 86400 / 1000; - var expired = profileAge > 2 * 30.4; - var curated = profile.curated; - - var photoSize = fullProfiles ? 100 : 50; + - var photoSize = fullProfiles ? 75 : 50; tr.candidate-row(data-candidate-id=candidate.id, id=candidate.id, class=expired ? "expired" : "") td(rowspan=3) - .candidate-picture - img(src=candidate.getPhotoURL(photoSize, false, true), alt=profile.name, title=profile.name, width=photoSize) + - var photoURL = candidate.getPhotoURL(photoSize, false, true); + div(class="candidate-picture " + (/^\/file/.test(photoURL) ? "" : "anonymous"), style='background-image: url(' + encodeURI(photoURL) + ')') if fullProfiles td.candidate-name-cell strong= profile.name @@ -40,9 +116,11 @@ block content span= profile.jobTitle tr.description_row(data-candidate-id=candidate.id) if curated && curated.shortDescription - td.candidate-description #{curated.shortDescription} + td.candidate-description + div #{curated.shortDescription} else - td.candidate-description #{profile.shortDescription} + td.candidate-description + div #{profile.shortDescription} tr.border_row(data-candidate-id=candidate.id) if curated - var workHistory = curated.workHistory.join(","); @@ -60,95 +138,30 @@ block content if workHistory img(src="/images/pages/employer/briefcase.png") | #{workHistory} - if fullProfiles - .col-md-3 - #filter - .panel-group#filter_panel - a#filter-link(data-toggle="collapse" data-target="#collapseOne") - .panel.panel-default - .panel-heading - h4.panel-title - span.glyphicon.glyphicon-folder-open#folder-icon - | Filter - .panel-collapse.collapse.in#collapseOne - .panel-body - p - strong We've already technically screened all our candidates - | , but you can also filter further: - form#filters - .filter_section#visa_filter - h4 Visa - label - input(type="checkbox" name="visa" value="Authorized to work in the US") - | US Authorized (#{candidatesInFilter("visa","Authorized to work in the US")}) - label - input(type="checkbox" name="visa" value="Need visa sponsorship") - | Not Authorized (#{candidatesInFilter("visa","Need visa sponsorship")}) - .filter_section#school_filter - h4 Education - label - input(type="checkbox" name="schoolFilter" value="Top School") - | Top School (#{candidatesInFilter("schoolFilter","Top School")}) - label - input(type="checkbox" name="schoolFilter" value="Other") - | Other (#{candidatesInFilter("schoolFilter","Other")}) - .filter_section#role_filter - h4 Role - label - input(type="checkbox" name="roleFilter" value="Web Developer") - | Web Developer (#{candidatesInFilter("roleFilter","Web Developer")}) - label - input(type="checkbox" name="roleFilter" value="Software Developer") - | Software Developer (#{candidatesInFilter("roleFilter","Software Developer")}) - label - input(type="checkbox" name="roleFilter" value="Mobile Developer") - | Mobile Developer (#{candidatesInFilter("roleFilter","Mobile Developer")}) - .filter_section#seniority_filter - h4 Experience - label - input(type="checkbox" name="seniorityFilter" value="Senior") - | Senior (#{candidatesInFilter("seniorityFilter","Senior")}) - label - input(type="checkbox" name="seniorityFilter" value="Junior") - | Junior (#{candidatesInFilter("seniorityFilter","Junior")}) - label - input(type="checkbox" name="seniorityFilter" value="Recent Grad") - | Recent Grad (#{candidatesInFilter("seniorityFilter","Recent Grad")}) - label - input(type="checkbox" name="seniorityFilter" value="College Student") - | College Student (#{candidatesInFilter("seniorityFilter","College Student")}) - - //input#select_all_checkbox(type="checkbox" name="select_all" checked) - //| Select all - p#results #{numberOfCandidates} results - //button.btn#create-alert-button Create Alert - if !fullProfiles div#info_wrapper span.hiring-call-to-action h2#start-hiring(data-i18n="employers.start_hiring") Start hiring. - button.btn.get-started-button.employer-button Get started + button.btn.get-started-button.employer-button(data-i18n="employers.get_started") Get Started - h2#hiring-reasons.hiring-call-to-action(data-i18n="employers.reasons") 3 reasons you should hire through us: + h2#hiring-reasons.hiring-call-to-action(data-i18n="employers.reasons") Three reasons you should hire through us: .reasons#top_row .reason img.employer_icon(src="/images/pages/employer/employer_icon2.png") - h3(data-i18n="employers.everyone_looking") Everyone here is looking for work. + h3(data-i18n="employers.everyone_looking") Everyone here is looking for their next opportunity. p(data-i18n="employers.everyone_looking_blurb") Forget about 20% LinkedIn InMail response rates. Everyone that we list on this site wants to find their next position and will respond to your request for an introduction. .reason img.employer_icon(src="/images/pages/employer/employer_icon6.png") - h3(data-i18n="employers.weeding") We've done the weeding for you. - //this will break in i18n. Fix the inlining - p(data-i18n="employers.weeding_blurb") - | We only feature developers that we would work with. We've reviewed each profile (in addition to meeting with many of the candidates.) + h3(data-i18n="employers.weeding") Sit back; we've done the weeding for you. + p(data-i18n="employers.weeding_blurb") Every player that we list has been screened for technical ability. We also perform phone screens for select candidates and make notes on their profiles to save you time. .reason img(class="employer_icon" src="/images/pages/employer/employer_icon3.png") h3(data-i18n="employers.pass_screen") They will pass your technical screen. - p(data-i18n="employers.pass_screen_blurb") All of these developers have ranked in our programming competitions. One employer found that 5x as many of our devs passed their technical screen than hiring from Hacker News. + p(data-i18n="employers.pass_screen_blurb") Review each candidate's code before reaching out. One employer found that 5x as many of our devs passed their technical screen than hiring from Hacker News. span.hiring-call-to-action h2(data-i18n="employers.make_hiring_easier") Make my hiring easier, please. - button.btn.get-started-button.employer-button Get started + button.btn.get-started-button.employer-button(data-i18n="employers.get_started") Get Started .reasons#bottom_row .reason_long img.employer_icon(src="/images/pages/employer/employer_icon1.png") @@ -158,5 +171,5 @@ block content .reason_long img.employer_icon(src="/images/pages/employer/employer_icon5.png") .reason_text - h3(data-i18n="employers.cost") Who Are the Players? - p(data-i18n="employers.cost_blurb") CodeCombateers are CTOs, VPs of Engineering, and graduates of top 20 engineering schools. No junior developers here. Our players enjoy playing with code and solving problems. + h3(data-i18n="employers.cost") How much do we charge? + p(data-i18n="employers.cost_blurb") We charge 15% of first year's salary and offer a 100% money back guarantee for 90 days. We don't charge for candidates who are already actively being interviewed at your company. From 65e39ad4e3bd17db96c9069e25bf6e7e0d40dd5a Mon Sep 17 00:00:00 2001 From: Nick Winter Date: Thu, 10 Jul 2014 19:24:44 -0700 Subject: [PATCH 091/106] Propagated i18n updates. --- app/locale/ar.coffee | 56 ++++++++++++++++++++---------- app/locale/bg.coffee | 54 ++++++++++++++++++++--------- app/locale/ca.coffee | 54 ++++++++++++++++++++--------- app/locale/cs.coffee | 54 ++++++++++++++++++++--------- app/locale/da.coffee | 54 ++++++++++++++++++++--------- app/locale/de-AT.coffee | 56 ++++++++++++++++++++---------- app/locale/de-CH.coffee | 57 +++++++++++++++++++++---------- app/locale/de-DE.coffee | 56 ++++++++++++++++++++---------- app/locale/de.coffee | 56 ++++++++++++++++++++---------- app/locale/el.coffee | 64 +++++++++++++++++++++++------------ app/locale/en-AU.coffee | 56 ++++++++++++++++++++---------- app/locale/en-GB.coffee | 56 ++++++++++++++++++++---------- app/locale/en-US.coffee | 56 ++++++++++++++++++++---------- app/locale/es-419.coffee | 52 ++++++++++++++++++++-------- app/locale/es-ES.coffee | 52 ++++++++++++++++++++-------- app/locale/es.coffee | 54 ++++++++++++++++++++--------- app/locale/fa.coffee | 54 ++++++++++++++++++++--------- app/locale/fi.coffee | 56 ++++++++++++++++++++---------- app/locale/fr.coffee | 50 +++++++++++++++++++-------- app/locale/he.coffee | 54 ++++++++++++++++++++--------- app/locale/hi.coffee | 56 ++++++++++++++++++++---------- app/locale/hu.coffee | 54 ++++++++++++++++++++--------- app/locale/id.coffee | 56 ++++++++++++++++++++---------- app/locale/it.coffee | 54 ++++++++++++++++++++--------- app/locale/ja.coffee | 54 ++++++++++++++++++++--------- app/locale/ko.coffee | 54 ++++++++++++++++++++--------- app/locale/lt.coffee | 56 ++++++++++++++++++++---------- app/locale/ms.coffee | 54 ++++++++++++++++++++--------- app/locale/nb.coffee | 54 ++++++++++++++++++++--------- app/locale/nl-BE.coffee | 52 ++++++++++++++++++++-------- app/locale/nl-NL.coffee | 52 ++++++++++++++++++++-------- app/locale/nl.coffee | 52 ++++++++++++++++++++-------- app/locale/nn.coffee | 56 ++++++++++++++++++++---------- app/locale/no.coffee | 54 ++++++++++++++++++++--------- app/locale/pl.coffee | 54 ++++++++++++++++++++--------- app/locale/pt-BR.coffee | 52 ++++++++++++++++++++-------- app/locale/pt-PT.coffee | 58 +++++++++++++++++++------------ app/locale/pt.coffee | 54 ++++++++++++++++++++--------- app/locale/ro.coffee | 54 ++++++++++++++++++++--------- app/locale/ru.coffee | 58 +++++++++++++++++++++---------- app/locale/sk.coffee | 54 ++++++++++++++++++++--------- app/locale/sl.coffee | 56 ++++++++++++++++++++---------- app/locale/sr.coffee | 54 ++++++++++++++++++++--------- app/locale/sv.coffee | 54 ++++++++++++++++++++--------- app/locale/th.coffee | 56 ++++++++++++++++++++---------- app/locale/tr.coffee | 54 ++++++++++++++++++++--------- app/locale/uk.coffee | 52 ++++++++++++++++++++-------- app/locale/ur.coffee | 56 ++++++++++++++++++++---------- app/locale/vi.coffee | 54 ++++++++++++++++++++--------- app/locale/zh-HANS.coffee | 54 ++++++++++++++++++++--------- app/locale/zh-HANT.coffee | 54 ++++++++++++++++++++--------- app/locale/zh-WUU-HANS.coffee | 56 ++++++++++++++++++++---------- app/locale/zh-WUU-HANT.coffee | 54 ++++++++++++++++++++--------- app/locale/zh.coffee | 54 ++++++++++++++++++++--------- 54 files changed, 2067 insertions(+), 884 deletions(-) diff --git a/app/locale/ar.coffee b/app/locale/ar.coffee index d20da4015..329ce4a32 100644 --- a/app/locale/ar.coffee +++ b/app/locale/ar.coffee @@ -90,7 +90,7 @@ module.exports = nativeDescription: "العربية", englishDescription: "Arabi # required: "You need to log in before you can go that way." # home: -# slogan: "Learn to Code JavaScript by Playing a Game" +# slogan: "Learn to Code by Playing a Game" # no_ie: "CodeCombat does not run in Internet Explorer 9 or older. Sorry!" # no_mobile: "CodeCombat wasn't designed for mobile devices and may not work!" # play: "Play" @@ -236,7 +236,7 @@ module.exports = nativeDescription: "العربية", englishDescription: "Arabi # basics_country: "Country" # basics_country_help: "Country you want to work in (or live in now)." # basics_visa: "US Work Status" -# basics_visa_help: "Are you authorized to work in the US, or do you need visa sponsorship?" +# basics_visa_help: "Are you authorized to work in the US, or do you need visa sponsorship? (If you live in Canada or Australia, mark authorized.)" # basics_looking_for: "Looking For" # basics_looking_for_full_time: "Full-time" # basics_looking_for_part_time: "Part-time" @@ -281,7 +281,8 @@ module.exports = nativeDescription: "العربية", englishDescription: "Arabi # education_duration_help: "When?" # education_description: "Description" # education_description_help: "Highlight anything about this educational experience. (140 chars; optional)" -# our_notes: "Our Notes" +# our_notes: "CodeCombat's Notes" +# remarks: "Remarks" # projects: "Projects" # projects_header: "Add 3 projects" # projects_header_2: "Projects (Top 3)" @@ -297,22 +298,37 @@ module.exports = nativeDescription: "العربية", englishDescription: "Arabi # player_code: "Player Code" # employers: -# want_to_hire_our_players: "Hire CodeCombat Players" +# hire_developers_not_credentials: "Hire developers, not credentials." +# get_started: "Get Started" +# already_screened: "We've already technically screened all our candidates" +# filter_further: ", but you can also filter further:" +# filter_visa: "Visa" +# filter_visa_yes: "US Authorized" +# filter_visa_no: "Not Authorized" +# filter_education_top: "Top School" +# filter_education_other: "Other" +# filter_role_web_developer: "Web Developer" +# filter_role_software_developer: "Software Developer" +# filter_role_mobile_developer: "Mobile Developer" +# filter_experience: "Experience" +# filter_experience_senior: "Senior" +# filter_experience_junior: "Junior" +# filter_experience_recent_grad: "Recent Grad" +# filter_experience_student: "College Student" +# filter_results: "results" +# start_hiring: "Start hiring." +# reasons: "Three reasons you should hire through us:" +# everyone_looking: "Everyone here is looking for their next opportunity." +# everyone_looking_blurb: "Forget about 20% LinkedIn InMail response rates. Everyone that we list on this site wants to find their next position and will respond to your request for an introduction." +# weeding: "Sit back; we've done the weeding for you." +# weeding_blurb: "Every player that we list has been screened for technical ability. We also perform phone screens for select candidates and make notes on their profiles to save you time." +# pass_screen: "They will pass your technical screen." +# pass_screen_blurb: "Review each candidate's code before reaching out. One employer found that 5x as many of our devs passed their technical screen than hiring from Hacker News." +# make_hiring_easier: "Make my hiring easier, please." # what: "What is CodeCombat?" # what_blurb: "CodeCombat is a multiplayer browser programming game. Players write code to control their forces in battle against other developers. We support JavaScript, Python, Lua, Clojure, CoffeeScript, and Io." -# who: "Who Are the Players?" -# who_blurb: "CodeCombateers are software developers who enjoy using their programming skills to play games. They range from college seniors at top 20 engineering programs to 20-year industry veterans." -# how: "How Do We Find Developers?" -# how_blurb: "We host competitive tournaments to attract competitive software engieneers. We then use in-house algorithms to identify the best players among the top 5% of tournament winners." -# why: "Why Hire Through Us?" -# why_blurb_1: "We will save you time. Every CodeCombateer we feaure is " -# why_blurb_2: "looking for work" -# why_blurb_3: ", has " -# why_blurb_4: "demonstrated top notch technical skills" -# why_blurb_5: ", and has been " -# why_blurb_6: "personally screened by us" -# why_blurb_7: ". Stop screening and start hiring." -# see_candidates: "Click here to see our candidates" +# cost: "How much do we charge?" +# cost_blurb: "We charge 15% of first year's salary and offer a 100% money back guarantee for 90 days. We don't charge for candidates who are already actively being interviewed at your company." # candidate_name: "Name" # candidate_location: "Location" # candidate_looking_for: "Looking For" @@ -320,6 +336,7 @@ module.exports = nativeDescription: "العربية", englishDescription: "Arabi # candidate_top_skills: "Top Skills" # candidate_years_experience: "Yrs Exp" # candidate_last_updated: "Last Updated" +# candidate_who: "Who" # featured_developers: "Featured Developers" # other_developers: "Other Developers" # inactive_developers: "Inactive Developers" @@ -382,6 +399,8 @@ module.exports = nativeDescription: "العربية", englishDescription: "Arabi # editor_config_keybindings_label: "Key Bindings" # editor_config_keybindings_default: "Default (Ace)" # editor_config_keybindings_description: "Adds additional shortcuts known from the common editors." +# editor_config_livecompletion_label: "Live Autocompletion" +# editor_config_livecompletion_description: "Displays autocomplete suggestions while typing." # editor_config_invisibles_label: "Show Invisibles" # editor_config_invisibles_description: "Displays invisibles such as spaces or tabs." # editor_config_indentguides_label: "Show Indent Guides" @@ -418,6 +437,7 @@ module.exports = nativeDescription: "العربية", englishDescription: "Arabi # tip_impossible: "It always seems impossible until it's done. - Nelson Mandela" # tip_talk_is_cheap: "Talk is cheap. Show me the code. - Linus Torvalds" # tip_first_language: "The most disastrous thing that you can ever learn is your first programming language. - Alan Kay" +# tip_hardware_problem: "Q: How many programmers does it take to change a light bulb? A: None, it's a hardware problem." # time_current: "Now:" # time_total: "Max:" # time_goto: "Go to:" @@ -882,6 +902,8 @@ module.exports = nativeDescription: "العربية", englishDescription: "Arabi # document: "Document" # sprite_sheet: "Sprite Sheet" # candidate_sessions: "Candidate Sessions" +# user_remark: "User Remark" +# versions: "Versions" # delta: # added: "Added" diff --git a/app/locale/bg.coffee b/app/locale/bg.coffee index 583c3dbb9..2c71d71a8 100644 --- a/app/locale/bg.coffee +++ b/app/locale/bg.coffee @@ -236,7 +236,7 @@ module.exports = nativeDescription: "български език", englishDescri # basics_country: "Country" # basics_country_help: "Country you want to work in (or live in now)." # basics_visa: "US Work Status" -# basics_visa_help: "Are you authorized to work in the US, or do you need visa sponsorship?" +# basics_visa_help: "Are you authorized to work in the US, or do you need visa sponsorship? (If you live in Canada or Australia, mark authorized.)" # basics_looking_for: "Looking For" # basics_looking_for_full_time: "Full-time" # basics_looking_for_part_time: "Part-time" @@ -281,7 +281,8 @@ module.exports = nativeDescription: "български език", englishDescri # education_duration_help: "When?" # education_description: "Description" # education_description_help: "Highlight anything about this educational experience. (140 chars; optional)" -# our_notes: "Our Notes" +# our_notes: "CodeCombat's Notes" +# remarks: "Remarks" # projects: "Projects" # projects_header: "Add 3 projects" # projects_header_2: "Projects (Top 3)" @@ -297,22 +298,37 @@ module.exports = nativeDescription: "български език", englishDescri # player_code: "Player Code" # employers: -# want_to_hire_our_players: "Hire CodeCombat Players" +# hire_developers_not_credentials: "Hire developers, not credentials." +# get_started: "Get Started" +# already_screened: "We've already technically screened all our candidates" +# filter_further: ", but you can also filter further:" +# filter_visa: "Visa" +# filter_visa_yes: "US Authorized" +# filter_visa_no: "Not Authorized" +# filter_education_top: "Top School" +# filter_education_other: "Other" +# filter_role_web_developer: "Web Developer" +# filter_role_software_developer: "Software Developer" +# filter_role_mobile_developer: "Mobile Developer" +# filter_experience: "Experience" +# filter_experience_senior: "Senior" +# filter_experience_junior: "Junior" +# filter_experience_recent_grad: "Recent Grad" +# filter_experience_student: "College Student" +# filter_results: "results" +# start_hiring: "Start hiring." +# reasons: "Three reasons you should hire through us:" +# everyone_looking: "Everyone here is looking for their next opportunity." +# everyone_looking_blurb: "Forget about 20% LinkedIn InMail response rates. Everyone that we list on this site wants to find their next position and will respond to your request for an introduction." +# weeding: "Sit back; we've done the weeding for you." +# weeding_blurb: "Every player that we list has been screened for technical ability. We also perform phone screens for select candidates and make notes on their profiles to save you time." +# pass_screen: "They will pass your technical screen." +# pass_screen_blurb: "Review each candidate's code before reaching out. One employer found that 5x as many of our devs passed their technical screen than hiring from Hacker News." +# make_hiring_easier: "Make my hiring easier, please." # what: "What is CodeCombat?" # what_blurb: "CodeCombat is a multiplayer browser programming game. Players write code to control their forces in battle against other developers. We support JavaScript, Python, Lua, Clojure, CoffeeScript, and Io." -# who: "Who Are the Players?" -# who_blurb: "CodeCombateers are software developers who enjoy using their programming skills to play games. They range from college seniors at top 20 engineering programs to 20-year industry veterans." -# how: "How Do We Find Developers?" -# how_blurb: "We host competitive tournaments to attract competitive software engieneers. We then use in-house algorithms to identify the best players among the top 5% of tournament winners." -# why: "Why Hire Through Us?" -# why_blurb_1: "We will save you time. Every CodeCombateer we feaure is " -# why_blurb_2: "looking for work" -# why_blurb_3: ", has " -# why_blurb_4: "demonstrated top notch technical skills" -# why_blurb_5: ", and has been " -# why_blurb_6: "personally screened by us" -# why_blurb_7: ". Stop screening and start hiring." -# see_candidates: "Click here to see our candidates" +# cost: "How much do we charge?" +# cost_blurb: "We charge 15% of first year's salary and offer a 100% money back guarantee for 90 days. We don't charge for candidates who are already actively being interviewed at your company." # candidate_name: "Name" # candidate_location: "Location" # candidate_looking_for: "Looking For" @@ -320,6 +336,7 @@ module.exports = nativeDescription: "български език", englishDescri # candidate_top_skills: "Top Skills" # candidate_years_experience: "Yrs Exp" # candidate_last_updated: "Last Updated" +# candidate_who: "Who" # featured_developers: "Featured Developers" # other_developers: "Other Developers" # inactive_developers: "Inactive Developers" @@ -382,6 +399,8 @@ module.exports = nativeDescription: "български език", englishDescri # editor_config_keybindings_label: "Key Bindings" # editor_config_keybindings_default: "Default (Ace)" # editor_config_keybindings_description: "Adds additional shortcuts known from the common editors." +# editor_config_livecompletion_label: "Live Autocompletion" +# editor_config_livecompletion_description: "Displays autocomplete suggestions while typing." # editor_config_invisibles_label: "Show Invisibles" # editor_config_invisibles_description: "Displays invisibles such as spaces or tabs." # editor_config_indentguides_label: "Show Indent Guides" @@ -418,6 +437,7 @@ module.exports = nativeDescription: "български език", englishDescri # tip_impossible: "It always seems impossible until it's done. - Nelson Mandela" # tip_talk_is_cheap: "Talk is cheap. Show me the code. - Linus Torvalds" # tip_first_language: "The most disastrous thing that you can ever learn is your first programming language. - Alan Kay" +# tip_hardware_problem: "Q: How many programmers does it take to change a light bulb? A: None, it's a hardware problem." # time_current: "Now:" # time_total: "Max:" # time_goto: "Go to:" @@ -882,6 +902,8 @@ module.exports = nativeDescription: "български език", englishDescri # document: "Document" # sprite_sheet: "Sprite Sheet" # candidate_sessions: "Candidate Sessions" +# user_remark: "User Remark" +# versions: "Versions" # delta: # added: "Added" diff --git a/app/locale/ca.coffee b/app/locale/ca.coffee index 458b6922b..963ab4e9d 100644 --- a/app/locale/ca.coffee +++ b/app/locale/ca.coffee @@ -236,7 +236,7 @@ module.exports = nativeDescription: "Català", englishDescription: "Catalan", tr # basics_country: "Country" # basics_country_help: "Country you want to work in (or live in now)." # basics_visa: "US Work Status" -# basics_visa_help: "Are you authorized to work in the US, or do you need visa sponsorship?" +# basics_visa_help: "Are you authorized to work in the US, or do you need visa sponsorship? (If you live in Canada or Australia, mark authorized.)" # basics_looking_for: "Looking For" # basics_looking_for_full_time: "Full-time" # basics_looking_for_part_time: "Part-time" @@ -281,7 +281,8 @@ module.exports = nativeDescription: "Català", englishDescription: "Catalan", tr # education_duration_help: "When?" # education_description: "Description" # education_description_help: "Highlight anything about this educational experience. (140 chars; optional)" -# our_notes: "Our Notes" +# our_notes: "CodeCombat's Notes" +# remarks: "Remarks" # projects: "Projects" # projects_header: "Add 3 projects" # projects_header_2: "Projects (Top 3)" @@ -297,22 +298,37 @@ module.exports = nativeDescription: "Català", englishDescription: "Catalan", tr # player_code: "Player Code" # employers: -# want_to_hire_our_players: "Hire CodeCombat Players" +# hire_developers_not_credentials: "Hire developers, not credentials." +# get_started: "Get Started" +# already_screened: "We've already technically screened all our candidates" +# filter_further: ", but you can also filter further:" +# filter_visa: "Visa" +# filter_visa_yes: "US Authorized" +# filter_visa_no: "Not Authorized" +# filter_education_top: "Top School" +# filter_education_other: "Other" +# filter_role_web_developer: "Web Developer" +# filter_role_software_developer: "Software Developer" +# filter_role_mobile_developer: "Mobile Developer" +# filter_experience: "Experience" +# filter_experience_senior: "Senior" +# filter_experience_junior: "Junior" +# filter_experience_recent_grad: "Recent Grad" +# filter_experience_student: "College Student" +# filter_results: "results" +# start_hiring: "Start hiring." +# reasons: "Three reasons you should hire through us:" +# everyone_looking: "Everyone here is looking for their next opportunity." +# everyone_looking_blurb: "Forget about 20% LinkedIn InMail response rates. Everyone that we list on this site wants to find their next position and will respond to your request for an introduction." +# weeding: "Sit back; we've done the weeding for you." +# weeding_blurb: "Every player that we list has been screened for technical ability. We also perform phone screens for select candidates and make notes on their profiles to save you time." +# pass_screen: "They will pass your technical screen." +# pass_screen_blurb: "Review each candidate's code before reaching out. One employer found that 5x as many of our devs passed their technical screen than hiring from Hacker News." +# make_hiring_easier: "Make my hiring easier, please." # what: "What is CodeCombat?" # what_blurb: "CodeCombat is a multiplayer browser programming game. Players write code to control their forces in battle against other developers. We support JavaScript, Python, Lua, Clojure, CoffeeScript, and Io." -# who: "Who Are the Players?" -# who_blurb: "CodeCombateers are software developers who enjoy using their programming skills to play games. They range from college seniors at top 20 engineering programs to 20-year industry veterans." -# how: "How Do We Find Developers?" -# how_blurb: "We host competitive tournaments to attract competitive software engieneers. We then use in-house algorithms to identify the best players among the top 5% of tournament winners." -# why: "Why Hire Through Us?" -# why_blurb_1: "We will save you time. Every CodeCombateer we feaure is " -# why_blurb_2: "looking for work" -# why_blurb_3: ", has " -# why_blurb_4: "demonstrated top notch technical skills" -# why_blurb_5: ", and has been " -# why_blurb_6: "personally screened by us" -# why_blurb_7: ". Stop screening and start hiring." -# see_candidates: "Click here to see our candidates" +# cost: "How much do we charge?" +# cost_blurb: "We charge 15% of first year's salary and offer a 100% money back guarantee for 90 days. We don't charge for candidates who are already actively being interviewed at your company." # candidate_name: "Name" # candidate_location: "Location" # candidate_looking_for: "Looking For" @@ -320,6 +336,7 @@ module.exports = nativeDescription: "Català", englishDescription: "Catalan", tr # candidate_top_skills: "Top Skills" # candidate_years_experience: "Yrs Exp" # candidate_last_updated: "Last Updated" +# candidate_who: "Who" # featured_developers: "Featured Developers" # other_developers: "Other Developers" # inactive_developers: "Inactive Developers" @@ -382,6 +399,8 @@ module.exports = nativeDescription: "Català", englishDescription: "Catalan", tr # editor_config_keybindings_label: "Key Bindings" # editor_config_keybindings_default: "Default (Ace)" # editor_config_keybindings_description: "Adds additional shortcuts known from the common editors." +# editor_config_livecompletion_label: "Live Autocompletion" +# editor_config_livecompletion_description: "Displays autocomplete suggestions while typing." # editor_config_invisibles_label: "Show Invisibles" # editor_config_invisibles_description: "Displays invisibles such as spaces or tabs." # editor_config_indentguides_label: "Show Indent Guides" @@ -418,6 +437,7 @@ module.exports = nativeDescription: "Català", englishDescription: "Catalan", tr # tip_impossible: "It always seems impossible until it's done. - Nelson Mandela" # tip_talk_is_cheap: "Talk is cheap. Show me the code. - Linus Torvalds" # tip_first_language: "The most disastrous thing that you can ever learn is your first programming language. - Alan Kay" +# tip_hardware_problem: "Q: How many programmers does it take to change a light bulb? A: None, it's a hardware problem." # time_current: "Now:" # time_total: "Max:" # time_goto: "Go to:" @@ -882,6 +902,8 @@ module.exports = nativeDescription: "Català", englishDescription: "Catalan", tr # document: "Document" # sprite_sheet: "Sprite Sheet" # candidate_sessions: "Candidate Sessions" +# user_remark: "User Remark" +# versions: "Versions" # delta: # added: "Added" diff --git a/app/locale/cs.coffee b/app/locale/cs.coffee index 038d1116e..33a31ceac 100644 --- a/app/locale/cs.coffee +++ b/app/locale/cs.coffee @@ -236,7 +236,7 @@ module.exports = nativeDescription: "čeština", englishDescription: "Czech", tr # basics_country: "Country" # basics_country_help: "Country you want to work in (or live in now)." # basics_visa: "US Work Status" -# basics_visa_help: "Are you authorized to work in the US, or do you need visa sponsorship?" +# basics_visa_help: "Are you authorized to work in the US, or do you need visa sponsorship? (If you live in Canada or Australia, mark authorized.)" # basics_looking_for: "Looking For" # basics_looking_for_full_time: "Full-time" # basics_looking_for_part_time: "Part-time" @@ -281,7 +281,8 @@ module.exports = nativeDescription: "čeština", englishDescription: "Czech", tr # education_duration_help: "When?" # education_description: "Description" # education_description_help: "Highlight anything about this educational experience. (140 chars; optional)" -# our_notes: "Our Notes" +# our_notes: "CodeCombat's Notes" +# remarks: "Remarks" # projects: "Projects" # projects_header: "Add 3 projects" # projects_header_2: "Projects (Top 3)" @@ -297,22 +298,37 @@ module.exports = nativeDescription: "čeština", englishDescription: "Czech", tr # player_code: "Player Code" # employers: -# want_to_hire_our_players: "Hire CodeCombat Players" +# hire_developers_not_credentials: "Hire developers, not credentials." +# get_started: "Get Started" +# already_screened: "We've already technically screened all our candidates" +# filter_further: ", but you can also filter further:" +# filter_visa: "Visa" +# filter_visa_yes: "US Authorized" +# filter_visa_no: "Not Authorized" +# filter_education_top: "Top School" +# filter_education_other: "Other" +# filter_role_web_developer: "Web Developer" +# filter_role_software_developer: "Software Developer" +# filter_role_mobile_developer: "Mobile Developer" +# filter_experience: "Experience" +# filter_experience_senior: "Senior" +# filter_experience_junior: "Junior" +# filter_experience_recent_grad: "Recent Grad" +# filter_experience_student: "College Student" +# filter_results: "results" +# start_hiring: "Start hiring." +# reasons: "Three reasons you should hire through us:" +# everyone_looking: "Everyone here is looking for their next opportunity." +# everyone_looking_blurb: "Forget about 20% LinkedIn InMail response rates. Everyone that we list on this site wants to find their next position and will respond to your request for an introduction." +# weeding: "Sit back; we've done the weeding for you." +# weeding_blurb: "Every player that we list has been screened for technical ability. We also perform phone screens for select candidates and make notes on their profiles to save you time." +# pass_screen: "They will pass your technical screen." +# pass_screen_blurb: "Review each candidate's code before reaching out. One employer found that 5x as many of our devs passed their technical screen than hiring from Hacker News." +# make_hiring_easier: "Make my hiring easier, please." # what: "What is CodeCombat?" # what_blurb: "CodeCombat is a multiplayer browser programming game. Players write code to control their forces in battle against other developers. We support JavaScript, Python, Lua, Clojure, CoffeeScript, and Io." -# who: "Who Are the Players?" -# who_blurb: "CodeCombateers are software developers who enjoy using their programming skills to play games. They range from college seniors at top 20 engineering programs to 20-year industry veterans." -# how: "How Do We Find Developers?" -# how_blurb: "We host competitive tournaments to attract competitive software engieneers. We then use in-house algorithms to identify the best players among the top 5% of tournament winners." -# why: "Why Hire Through Us?" -# why_blurb_1: "We will save you time. Every CodeCombateer we feaure is " -# why_blurb_2: "looking for work" -# why_blurb_3: ", has " -# why_blurb_4: "demonstrated top notch technical skills" -# why_blurb_5: ", and has been " -# why_blurb_6: "personally screened by us" -# why_blurb_7: ". Stop screening and start hiring." -# see_candidates: "Click here to see our candidates" +# cost: "How much do we charge?" +# cost_blurb: "We charge 15% of first year's salary and offer a 100% money back guarantee for 90 days. We don't charge for candidates who are already actively being interviewed at your company." # candidate_name: "Name" # candidate_location: "Location" # candidate_looking_for: "Looking For" @@ -320,6 +336,7 @@ module.exports = nativeDescription: "čeština", englishDescription: "Czech", tr # candidate_top_skills: "Top Skills" # candidate_years_experience: "Yrs Exp" # candidate_last_updated: "Last Updated" +# candidate_who: "Who" # featured_developers: "Featured Developers" # other_developers: "Other Developers" # inactive_developers: "Inactive Developers" @@ -382,6 +399,8 @@ module.exports = nativeDescription: "čeština", englishDescription: "Czech", tr # editor_config_keybindings_label: "Key Bindings" # editor_config_keybindings_default: "Default (Ace)" # editor_config_keybindings_description: "Adds additional shortcuts known from the common editors." +# editor_config_livecompletion_label: "Live Autocompletion" +# editor_config_livecompletion_description: "Displays autocomplete suggestions while typing." # editor_config_invisibles_label: "Show Invisibles" # editor_config_invisibles_description: "Displays invisibles such as spaces or tabs." # editor_config_indentguides_label: "Show Indent Guides" @@ -418,6 +437,7 @@ module.exports = nativeDescription: "čeština", englishDescription: "Czech", tr # tip_impossible: "It always seems impossible until it's done. - Nelson Mandela" # tip_talk_is_cheap: "Talk is cheap. Show me the code. - Linus Torvalds" # tip_first_language: "The most disastrous thing that you can ever learn is your first programming language. - Alan Kay" +# tip_hardware_problem: "Q: How many programmers does it take to change a light bulb? A: None, it's a hardware problem." # time_current: "Now:" # time_total: "Max:" # time_goto: "Go to:" @@ -882,6 +902,8 @@ module.exports = nativeDescription: "čeština", englishDescription: "Czech", tr # document: "Document" # sprite_sheet: "Sprite Sheet" # candidate_sessions: "Candidate Sessions" +# user_remark: "User Remark" +# versions: "Versions" # delta: # added: "Added" diff --git a/app/locale/da.coffee b/app/locale/da.coffee index ac2f76026..d6fb0dfd3 100644 --- a/app/locale/da.coffee +++ b/app/locale/da.coffee @@ -236,7 +236,7 @@ module.exports = nativeDescription: "dansk", englishDescription: "Danish", trans # basics_country: "Country" # basics_country_help: "Country you want to work in (or live in now)." # basics_visa: "US Work Status" -# basics_visa_help: "Are you authorized to work in the US, or do you need visa sponsorship?" +# basics_visa_help: "Are you authorized to work in the US, or do you need visa sponsorship? (If you live in Canada or Australia, mark authorized.)" # basics_looking_for: "Looking For" # basics_looking_for_full_time: "Full-time" # basics_looking_for_part_time: "Part-time" @@ -281,7 +281,8 @@ module.exports = nativeDescription: "dansk", englishDescription: "Danish", trans # education_duration_help: "When?" # education_description: "Description" # education_description_help: "Highlight anything about this educational experience. (140 chars; optional)" -# our_notes: "Our Notes" +# our_notes: "CodeCombat's Notes" +# remarks: "Remarks" # projects: "Projects" # projects_header: "Add 3 projects" # projects_header_2: "Projects (Top 3)" @@ -297,22 +298,37 @@ module.exports = nativeDescription: "dansk", englishDescription: "Danish", trans # player_code: "Player Code" # employers: -# want_to_hire_our_players: "Hire CodeCombat Players" +# hire_developers_not_credentials: "Hire developers, not credentials." +# get_started: "Get Started" +# already_screened: "We've already technically screened all our candidates" +# filter_further: ", but you can also filter further:" +# filter_visa: "Visa" +# filter_visa_yes: "US Authorized" +# filter_visa_no: "Not Authorized" +# filter_education_top: "Top School" +# filter_education_other: "Other" +# filter_role_web_developer: "Web Developer" +# filter_role_software_developer: "Software Developer" +# filter_role_mobile_developer: "Mobile Developer" +# filter_experience: "Experience" +# filter_experience_senior: "Senior" +# filter_experience_junior: "Junior" +# filter_experience_recent_grad: "Recent Grad" +# filter_experience_student: "College Student" +# filter_results: "results" +# start_hiring: "Start hiring." +# reasons: "Three reasons you should hire through us:" +# everyone_looking: "Everyone here is looking for their next opportunity." +# everyone_looking_blurb: "Forget about 20% LinkedIn InMail response rates. Everyone that we list on this site wants to find their next position and will respond to your request for an introduction." +# weeding: "Sit back; we've done the weeding for you." +# weeding_blurb: "Every player that we list has been screened for technical ability. We also perform phone screens for select candidates and make notes on their profiles to save you time." +# pass_screen: "They will pass your technical screen." +# pass_screen_blurb: "Review each candidate's code before reaching out. One employer found that 5x as many of our devs passed their technical screen than hiring from Hacker News." +# make_hiring_easier: "Make my hiring easier, please." # what: "What is CodeCombat?" # what_blurb: "CodeCombat is a multiplayer browser programming game. Players write code to control their forces in battle against other developers. We support JavaScript, Python, Lua, Clojure, CoffeeScript, and Io." -# who: "Who Are the Players?" -# who_blurb: "CodeCombateers are software developers who enjoy using their programming skills to play games. They range from college seniors at top 20 engineering programs to 20-year industry veterans." -# how: "How Do We Find Developers?" -# how_blurb: "We host competitive tournaments to attract competitive software engieneers. We then use in-house algorithms to identify the best players among the top 5% of tournament winners." -# why: "Why Hire Through Us?" -# why_blurb_1: "We will save you time. Every CodeCombateer we feaure is " -# why_blurb_2: "looking for work" -# why_blurb_3: ", has " -# why_blurb_4: "demonstrated top notch technical skills" -# why_blurb_5: ", and has been " -# why_blurb_6: "personally screened by us" -# why_blurb_7: ". Stop screening and start hiring." -# see_candidates: "Click here to see our candidates" +# cost: "How much do we charge?" +# cost_blurb: "We charge 15% of first year's salary and offer a 100% money back guarantee for 90 days. We don't charge for candidates who are already actively being interviewed at your company." # candidate_name: "Name" # candidate_location: "Location" # candidate_looking_for: "Looking For" @@ -320,6 +336,7 @@ module.exports = nativeDescription: "dansk", englishDescription: "Danish", trans # candidate_top_skills: "Top Skills" # candidate_years_experience: "Yrs Exp" # candidate_last_updated: "Last Updated" +# candidate_who: "Who" # featured_developers: "Featured Developers" # other_developers: "Other Developers" # inactive_developers: "Inactive Developers" @@ -382,6 +399,8 @@ module.exports = nativeDescription: "dansk", englishDescription: "Danish", trans editor_config_keybindings_label: "Tastaturgenveje" # editor_config_keybindings_default: "Default (Ace)" # editor_config_keybindings_description: "Adds additional shortcuts known from the common editors." +# editor_config_livecompletion_label: "Live Autocompletion" +# editor_config_livecompletion_description: "Displays autocomplete suggestions while typing." # editor_config_invisibles_label: "Show Invisibles" # editor_config_invisibles_description: "Displays invisibles such as spaces or tabs." # editor_config_indentguides_label: "Show Indent Guides" @@ -418,6 +437,7 @@ module.exports = nativeDescription: "dansk", englishDescription: "Danish", trans # tip_impossible: "It always seems impossible until it's done. - Nelson Mandela" # tip_talk_is_cheap: "Talk is cheap. Show me the code. - Linus Torvalds" # tip_first_language: "The most disastrous thing that you can ever learn is your first programming language. - Alan Kay" +# tip_hardware_problem: "Q: How many programmers does it take to change a light bulb? A: None, it's a hardware problem." # time_current: "Now:" # time_total: "Max:" # time_goto: "Go to:" @@ -882,6 +902,8 @@ module.exports = nativeDescription: "dansk", englishDescription: "Danish", trans # document: "Document" # sprite_sheet: "Sprite Sheet" # candidate_sessions: "Candidate Sessions" +# user_remark: "User Remark" +# versions: "Versions" # delta: # added: "Added" diff --git a/app/locale/de-AT.coffee b/app/locale/de-AT.coffee index f8234ceb5..482c2eeab 100644 --- a/app/locale/de-AT.coffee +++ b/app/locale/de-AT.coffee @@ -90,7 +90,7 @@ module.exports = nativeDescription: "Deutsch (Österreich)", englishDescription: # required: "You need to log in before you can go that way." # home: -# slogan: "Learn to Code JavaScript by Playing a Game" +# slogan: "Learn to Code by Playing a Game" # no_ie: "CodeCombat does not run in Internet Explorer 9 or older. Sorry!" # no_mobile: "CodeCombat wasn't designed for mobile devices and may not work!" # play: "Play" @@ -236,7 +236,7 @@ module.exports = nativeDescription: "Deutsch (Österreich)", englishDescription: # basics_country: "Country" # basics_country_help: "Country you want to work in (or live in now)." # basics_visa: "US Work Status" -# basics_visa_help: "Are you authorized to work in the US, or do you need visa sponsorship?" +# basics_visa_help: "Are you authorized to work in the US, or do you need visa sponsorship? (If you live in Canada or Australia, mark authorized.)" # basics_looking_for: "Looking For" # basics_looking_for_full_time: "Full-time" # basics_looking_for_part_time: "Part-time" @@ -281,7 +281,8 @@ module.exports = nativeDescription: "Deutsch (Österreich)", englishDescription: # education_duration_help: "When?" # education_description: "Description" # education_description_help: "Highlight anything about this educational experience. (140 chars; optional)" -# our_notes: "Our Notes" +# our_notes: "CodeCombat's Notes" +# remarks: "Remarks" # projects: "Projects" # projects_header: "Add 3 projects" # projects_header_2: "Projects (Top 3)" @@ -297,22 +298,37 @@ module.exports = nativeDescription: "Deutsch (Österreich)", englishDescription: # player_code: "Player Code" # employers: -# want_to_hire_our_players: "Hire CodeCombat Players" +# hire_developers_not_credentials: "Hire developers, not credentials." +# get_started: "Get Started" +# already_screened: "We've already technically screened all our candidates" +# filter_further: ", but you can also filter further:" +# filter_visa: "Visa" +# filter_visa_yes: "US Authorized" +# filter_visa_no: "Not Authorized" +# filter_education_top: "Top School" +# filter_education_other: "Other" +# filter_role_web_developer: "Web Developer" +# filter_role_software_developer: "Software Developer" +# filter_role_mobile_developer: "Mobile Developer" +# filter_experience: "Experience" +# filter_experience_senior: "Senior" +# filter_experience_junior: "Junior" +# filter_experience_recent_grad: "Recent Grad" +# filter_experience_student: "College Student" +# filter_results: "results" +# start_hiring: "Start hiring." +# reasons: "Three reasons you should hire through us:" +# everyone_looking: "Everyone here is looking for their next opportunity." +# everyone_looking_blurb: "Forget about 20% LinkedIn InMail response rates. Everyone that we list on this site wants to find their next position and will respond to your request for an introduction." +# weeding: "Sit back; we've done the weeding for you." +# weeding_blurb: "Every player that we list has been screened for technical ability. We also perform phone screens for select candidates and make notes on their profiles to save you time." +# pass_screen: "They will pass your technical screen." +# pass_screen_blurb: "Review each candidate's code before reaching out. One employer found that 5x as many of our devs passed their technical screen than hiring from Hacker News." +# make_hiring_easier: "Make my hiring easier, please." # what: "What is CodeCombat?" # what_blurb: "CodeCombat is a multiplayer browser programming game. Players write code to control their forces in battle against other developers. We support JavaScript, Python, Lua, Clojure, CoffeeScript, and Io." -# who: "Who Are the Players?" -# who_blurb: "CodeCombateers are software developers who enjoy using their programming skills to play games. They range from college seniors at top 20 engineering programs to 20-year industry veterans." -# how: "How Do We Find Developers?" -# how_blurb: "We host competitive tournaments to attract competitive software engieneers. We then use in-house algorithms to identify the best players among the top 5% of tournament winners." -# why: "Why Hire Through Us?" -# why_blurb_1: "We will save you time. Every CodeCombateer we feaure is " -# why_blurb_2: "looking for work" -# why_blurb_3: ", has " -# why_blurb_4: "demonstrated top notch technical skills" -# why_blurb_5: ", and has been " -# why_blurb_6: "personally screened by us" -# why_blurb_7: ". Stop screening and start hiring." -# see_candidates: "Click here to see our candidates" +# cost: "How much do we charge?" +# cost_blurb: "We charge 15% of first year's salary and offer a 100% money back guarantee for 90 days. We don't charge for candidates who are already actively being interviewed at your company." # candidate_name: "Name" # candidate_location: "Location" # candidate_looking_for: "Looking For" @@ -320,6 +336,7 @@ module.exports = nativeDescription: "Deutsch (Österreich)", englishDescription: # candidate_top_skills: "Top Skills" # candidate_years_experience: "Yrs Exp" # candidate_last_updated: "Last Updated" +# candidate_who: "Who" # featured_developers: "Featured Developers" # other_developers: "Other Developers" # inactive_developers: "Inactive Developers" @@ -382,6 +399,8 @@ module.exports = nativeDescription: "Deutsch (Österreich)", englishDescription: # editor_config_keybindings_label: "Key Bindings" # editor_config_keybindings_default: "Default (Ace)" # editor_config_keybindings_description: "Adds additional shortcuts known from the common editors." +# editor_config_livecompletion_label: "Live Autocompletion" +# editor_config_livecompletion_description: "Displays autocomplete suggestions while typing." # editor_config_invisibles_label: "Show Invisibles" # editor_config_invisibles_description: "Displays invisibles such as spaces or tabs." # editor_config_indentguides_label: "Show Indent Guides" @@ -418,6 +437,7 @@ module.exports = nativeDescription: "Deutsch (Österreich)", englishDescription: # tip_impossible: "It always seems impossible until it's done. - Nelson Mandela" # tip_talk_is_cheap: "Talk is cheap. Show me the code. - Linus Torvalds" # tip_first_language: "The most disastrous thing that you can ever learn is your first programming language. - Alan Kay" +# tip_hardware_problem: "Q: How many programmers does it take to change a light bulb? A: None, it's a hardware problem." # time_current: "Now:" # time_total: "Max:" # time_goto: "Go to:" @@ -882,6 +902,8 @@ module.exports = nativeDescription: "Deutsch (Österreich)", englishDescription: # document: "Document" # sprite_sheet: "Sprite Sheet" # candidate_sessions: "Candidate Sessions" +# user_remark: "User Remark" +# versions: "Versions" # delta: # added: "Added" diff --git a/app/locale/de-CH.coffee b/app/locale/de-CH.coffee index 87347663e..0e045f99c 100644 --- a/app/locale/de-CH.coffee +++ b/app/locale/de-CH.coffee @@ -197,7 +197,7 @@ module.exports = nativeDescription: "Deutsch (Schweiz)", englishDescription: "Ge edit_profile: "Profil bearbeite" done_editing: "Fertig mit bearbeite" profile_for_prefix: "Profil für " -# profile_for_suffix: "" +# profile_for_suffix: "" # featured: "Featured" # not_featured: "Not Featured" # looking_for: "Looking for:" @@ -212,6 +212,7 @@ module.exports = nativeDescription: "Deutsch (Schweiz)", englishDescription: "Ge next_name: "Name?" next_short_description: "schriibe e churzi Beschriibig." next_long_description: "beschriib dini Wunschstell." +# next_skills: "list at least five skills." # next_work: "chronicle your work history." # next_education: "recount your educational ordeals." next_projects: "Zeig üs bis zu drü Projekt a dene du scho gschaffet hesch." @@ -235,7 +236,7 @@ module.exports = nativeDescription: "Deutsch (Schweiz)", englishDescription: "Ge # basics_country: "Country" # basics_country_help: "Country you want to work in (or live in now)." # basics_visa: "US Work Status" -# basics_visa_help: "Are you authorized to work in the US, or do you need visa sponsorship?" +# basics_visa_help: "Are you authorized to work in the US, or do you need visa sponsorship? (If you live in Canada or Australia, mark authorized.)" # basics_looking_for: "Looking For" # basics_looking_for_full_time: "Full-time" # basics_looking_for_part_time: "Part-time" @@ -280,7 +281,8 @@ module.exports = nativeDescription: "Deutsch (Schweiz)", englishDescription: "Ge # education_duration_help: "When?" # education_description: "Description" # education_description_help: "Highlight anything about this educational experience. (140 chars; optional)" -# our_notes: "Our Notes" +# our_notes: "CodeCombat's Notes" +# remarks: "Remarks" # projects: "Projects" # projects_header: "Add 3 projects" # projects_header_2: "Projects (Top 3)" @@ -296,22 +298,37 @@ module.exports = nativeDescription: "Deutsch (Schweiz)", englishDescription: "Ge # player_code: "Player Code" # employers: -# want_to_hire_our_players: "Hire CodeCombat Players" +# hire_developers_not_credentials: "Hire developers, not credentials." +# get_started: "Get Started" +# already_screened: "We've already technically screened all our candidates" +# filter_further: ", but you can also filter further:" +# filter_visa: "Visa" +# filter_visa_yes: "US Authorized" +# filter_visa_no: "Not Authorized" +# filter_education_top: "Top School" +# filter_education_other: "Other" +# filter_role_web_developer: "Web Developer" +# filter_role_software_developer: "Software Developer" +# filter_role_mobile_developer: "Mobile Developer" +# filter_experience: "Experience" +# filter_experience_senior: "Senior" +# filter_experience_junior: "Junior" +# filter_experience_recent_grad: "Recent Grad" +# filter_experience_student: "College Student" +# filter_results: "results" +# start_hiring: "Start hiring." +# reasons: "Three reasons you should hire through us:" +# everyone_looking: "Everyone here is looking for their next opportunity." +# everyone_looking_blurb: "Forget about 20% LinkedIn InMail response rates. Everyone that we list on this site wants to find their next position and will respond to your request for an introduction." +# weeding: "Sit back; we've done the weeding for you." +# weeding_blurb: "Every player that we list has been screened for technical ability. We also perform phone screens for select candidates and make notes on their profiles to save you time." +# pass_screen: "They will pass your technical screen." +# pass_screen_blurb: "Review each candidate's code before reaching out. One employer found that 5x as many of our devs passed their technical screen than hiring from Hacker News." +# make_hiring_easier: "Make my hiring easier, please." # what: "What is CodeCombat?" # what_blurb: "CodeCombat is a multiplayer browser programming game. Players write code to control their forces in battle against other developers. We support JavaScript, Python, Lua, Clojure, CoffeeScript, and Io." -# who: "Who Are the Players?" -# who_blurb: "CodeCombateers are software developers who enjoy using their programming skills to play games. They range from college seniors at top 20 engineering programs to 20-year industry veterans." -# how: "How Do We Find Developers?" -# how_blurb: "We host competitive tournaments to attract competitive software engieneers. We then use in-house algorithms to identify the best players among the top 5% of tournament winners." -# why: "Why Hire Through Us?" -# why_blurb_1: "We will save you time. Every CodeCombateer we feaure is " -# why_blurb_2: "looking for work" -# why_blurb_3: ", has " -# why_blurb_4: "demonstrated top notch technical skills" -# why_blurb_5: ", and has been " -# why_blurb_6: "personally screened by us" -# why_blurb_7: ". Stop screening and start hiring." -# see_candidates: "Click here to see our candidates" +# cost: "How much do we charge?" +# cost_blurb: "We charge 15% of first year's salary and offer a 100% money back guarantee for 90 days. We don't charge for candidates who are already actively being interviewed at your company." # candidate_name: "Name" # candidate_location: "Location" # candidate_looking_for: "Looking For" @@ -319,6 +336,7 @@ module.exports = nativeDescription: "Deutsch (Schweiz)", englishDescription: "Ge # candidate_top_skills: "Top Skills" # candidate_years_experience: "Yrs Exp" # candidate_last_updated: "Last Updated" +# candidate_who: "Who" # featured_developers: "Featured Developers" # other_developers: "Other Developers" # inactive_developers: "Inactive Developers" @@ -381,6 +399,8 @@ module.exports = nativeDescription: "Deutsch (Schweiz)", englishDescription: "Ge # editor_config_keybindings_label: "Key Bindings" # editor_config_keybindings_default: "Default (Ace)" # editor_config_keybindings_description: "Adds additional shortcuts known from the common editors." +# editor_config_livecompletion_label: "Live Autocompletion" +# editor_config_livecompletion_description: "Displays autocomplete suggestions while typing." # editor_config_invisibles_label: "Show Invisibles" # editor_config_invisibles_description: "Displays invisibles such as spaces or tabs." # editor_config_indentguides_label: "Show Indent Guides" @@ -417,6 +437,7 @@ module.exports = nativeDescription: "Deutsch (Schweiz)", englishDescription: "Ge # tip_impossible: "It always seems impossible until it's done. - Nelson Mandela" # tip_talk_is_cheap: "Talk is cheap. Show me the code. - Linus Torvalds" # tip_first_language: "The most disastrous thing that you can ever learn is your first programming language. - Alan Kay" +# tip_hardware_problem: "Q: How many programmers does it take to change a light bulb? A: None, it's a hardware problem." # time_current: "Now:" # time_total: "Max:" # time_goto: "Go to:" @@ -881,6 +902,8 @@ module.exports = nativeDescription: "Deutsch (Schweiz)", englishDescription: "Ge # document: "Document" # sprite_sheet: "Sprite Sheet" # candidate_sessions: "Candidate Sessions" +# user_remark: "User Remark" +# versions: "Versions" # delta: # added: "Added" diff --git a/app/locale/de-DE.coffee b/app/locale/de-DE.coffee index 76884e25e..59dbeab1f 100644 --- a/app/locale/de-DE.coffee +++ b/app/locale/de-DE.coffee @@ -236,7 +236,7 @@ module.exports = nativeDescription: "Deutsch (Deutschland)", englishDescription: basics_country: "Land" basics_country_help: "Land in dem du arbeiten möchtest (oder jetzt lebst)." # basics_visa: "US Work Status" -# basics_visa_help: "Are you authorized to work in the US, or do you need visa sponsorship?" +# basics_visa_help: "Are you authorized to work in the US, or do you need visa sponsorship? (If you live in Canada or Australia, mark authorized.)" # basics_looking_for: "Looking For" basics_looking_for_full_time: "Vollzeit" basics_looking_for_part_time: "Teilzeit" @@ -281,7 +281,8 @@ module.exports = nativeDescription: "Deutsch (Deutschland)", englishDescription: education_duration_help: "Wann?" education_description: "Beschreibung" # education_description_help: "Highlight anything about this educational experience. (140 chars; optional)" -# our_notes: "Our Notes" +# our_notes: "CodeCombat's Notes" +# remarks: "Remarks" projects: "Projekte" projects_header: "Füge 3 Projekte hinzu" projects_header_2: "Projekte (Top 3)" @@ -297,22 +298,37 @@ module.exports = nativeDescription: "Deutsch (Deutschland)", englishDescription: player_code: "Spieler Code" employers: - want_to_hire_our_players: "Stelle CodeCombat Spieler ein" +# hire_developers_not_credentials: "Hire developers, not credentials." +# get_started: "Get Started" +# already_screened: "We've already technically screened all our candidates" +# filter_further: ", but you can also filter further:" +# filter_visa: "Visa" +# filter_visa_yes: "US Authorized" +# filter_visa_no: "Not Authorized" +# filter_education_top: "Top School" +# filter_education_other: "Other" +# filter_role_web_developer: "Web Developer" +# filter_role_software_developer: "Software Developer" +# filter_role_mobile_developer: "Mobile Developer" +# filter_experience: "Experience" +# filter_experience_senior: "Senior" +# filter_experience_junior: "Junior" +# filter_experience_recent_grad: "Recent Grad" +# filter_experience_student: "College Student" +# filter_results: "results" +# start_hiring: "Start hiring." +# reasons: "Three reasons you should hire through us:" +# everyone_looking: "Everyone here is looking for their next opportunity." +# everyone_looking_blurb: "Forget about 20% LinkedIn InMail response rates. Everyone that we list on this site wants to find their next position and will respond to your request for an introduction." +# weeding: "Sit back; we've done the weeding for you." +# weeding_blurb: "Every player that we list has been screened for technical ability. We also perform phone screens for select candidates and make notes on their profiles to save you time." +# pass_screen: "They will pass your technical screen." +# pass_screen_blurb: "Review each candidate's code before reaching out. One employer found that 5x as many of our devs passed their technical screen than hiring from Hacker News." +# make_hiring_easier: "Make my hiring easier, please." what: "Was ist CodeCombat?" # what_blurb: "CodeCombat is a multiplayer browser programming game. Players write code to control their forces in battle against other developers. We support JavaScript, Python, Lua, Clojure, CoffeeScript, and Io." -# who: "Who Are the Players?" -# who_blurb: "CodeCombateers are software developers who enjoy using their programming skills to play games. They range from college seniors at top 20 engineering programs to 20-year industry veterans." -# how: "How Do We Find Developers?" -# how_blurb: "We host competitive tournaments to attract competitive software engieneers. We then use in-house algorithms to identify the best players among the top 5% of tournament winners." -# why: "Why Hire Through Us?" -# why_blurb_1: "We will save you time. Every CodeCombateer we feaure is " -# why_blurb_2: "looking for work" -# why_blurb_3: ", has " -# why_blurb_4: "demonstrated top notch technical skills" -# why_blurb_5: ", and has been " -# why_blurb_6: "personally screened by us" -# why_blurb_7: ". Stop screening and start hiring." -# see_candidates: "Click here to see our candidates" +# cost: "How much do we charge?" +# cost_blurb: "We charge 15% of first year's salary and offer a 100% money back guarantee for 90 days. We don't charge for candidates who are already actively being interviewed at your company." candidate_name: "Name" # candidate_location: "Location" # candidate_looking_for: "Looking For" @@ -320,6 +336,7 @@ module.exports = nativeDescription: "Deutsch (Deutschland)", englishDescription: # candidate_top_skills: "Top Skills" # candidate_years_experience: "Yrs Exp" # candidate_last_updated: "Last Updated" +# candidate_who: "Who" # featured_developers: "Featured Developers" # other_developers: "Other Developers" # inactive_developers: "Inactive Developers" @@ -382,6 +399,8 @@ module.exports = nativeDescription: "Deutsch (Deutschland)", englishDescription: editor_config_keybindings_label: "Tastenbelegung" editor_config_keybindings_default: "Standard (Ace)" editor_config_keybindings_description: "Fügt zusätzliche Tastenkombinationen, bekannt aus anderen Editoren, hinzu" +# editor_config_livecompletion_label: "Live Autocompletion" +# editor_config_livecompletion_description: "Displays autocomplete suggestions while typing." editor_config_invisibles_label: "Zeige unsichtbare Zeichen" editor_config_invisibles_description: "Zeigt unsichtbare Zeichen wie Leertasten an." editor_config_indentguides_label: "Zeige Einrückungshilfe" @@ -418,6 +437,7 @@ module.exports = nativeDescription: "Deutsch (Deutschland)", englishDescription: tip_impossible: "Es wirkt immer unmöglich bis es vollbracht ist. - Nelson Mandela" tip_talk_is_cheap: "Reden ist billig. Zeig mir den Code. - Linus Torvalds" tip_first_language: "Das schwierigste, das du jemals lernen wirst, ist die erste Programmiersprache. - Alan Kay" +# tip_hardware_problem: "Q: How many programmers does it take to change a light bulb? A: None, it's a hardware problem." time_current: "Aktuell" time_total: "Total" time_goto: "Gehe zu" @@ -643,7 +663,7 @@ module.exports = nativeDescription: "Deutsch (Deutschland)", englishDescription: # nutshell_description: "Any resources we provide in the Level Editor are free to use as you like for creating Levels. But we reserve the right to restrict distribution of the Levels themselves (that are created on codecombat.com) so that they may be charged for in the future, if that's what ends up happening." canonical: "Die englische Version dieses Dokuments ist die definitive, kanonische Version. Sollte es Unterschiede zwischen den Übersetzungen geben, dann hat das englische Dokument Vorrang." -# contribute: + contribute: # page_title: "Contributing" character_classes_title: "Charakter Klassen" # introduction_desc_intro: "We have high hopes for CodeCombat." @@ -882,6 +902,8 @@ module.exports = nativeDescription: "Deutsch (Deutschland)", englishDescription: document: "Dokument" sprite_sheet: "Sprite Sheet" candidate_sessions: "Kandidat-Sessions" +# user_remark: "User Remark" +# versions: "Versions" delta: added: "hinzugefügt" diff --git a/app/locale/de.coffee b/app/locale/de.coffee index 41396ba00..a2f22679c 100644 --- a/app/locale/de.coffee +++ b/app/locale/de.coffee @@ -236,7 +236,7 @@ module.exports = nativeDescription: "Deutsch", englishDescription: "German", tra basics_country: "Land" basics_country_help: "Land in dem du arbeiten möchtest (oder jetzt lebst)." # basics_visa: "US Work Status" -# basics_visa_help: "Are you authorized to work in the US, or do you need visa sponsorship?" +# basics_visa_help: "Are you authorized to work in the US, or do you need visa sponsorship? (If you live in Canada or Australia, mark authorized.)" # basics_looking_for: "Looking For" basics_looking_for_full_time: "Vollzeit" basics_looking_for_part_time: "Teilzeit" @@ -281,7 +281,8 @@ module.exports = nativeDescription: "Deutsch", englishDescription: "German", tra education_duration_help: "Wann?" education_description: "Beschreibung" # education_description_help: "Highlight anything about this educational experience. (140 chars; optional)" -# our_notes: "Our Notes" +# our_notes: "CodeCombat's Notes" +# remarks: "Remarks" projects: "Projekte" projects_header: "Füge 3 Projekte hinzu" projects_header_2: "Projekte (Top 3)" @@ -297,22 +298,37 @@ module.exports = nativeDescription: "Deutsch", englishDescription: "German", tra player_code: "Spieler Code" employers: - want_to_hire_our_players: "Stelle CodeCombat Spieler ein" +# hire_developers_not_credentials: "Hire developers, not credentials." +# get_started: "Get Started" +# already_screened: "We've already technically screened all our candidates" +# filter_further: ", but you can also filter further:" +# filter_visa: "Visa" +# filter_visa_yes: "US Authorized" +# filter_visa_no: "Not Authorized" +# filter_education_top: "Top School" +# filter_education_other: "Other" +# filter_role_web_developer: "Web Developer" +# filter_role_software_developer: "Software Developer" +# filter_role_mobile_developer: "Mobile Developer" +# filter_experience: "Experience" +# filter_experience_senior: "Senior" +# filter_experience_junior: "Junior" +# filter_experience_recent_grad: "Recent Grad" +# filter_experience_student: "College Student" +# filter_results: "results" +# start_hiring: "Start hiring." +# reasons: "Three reasons you should hire through us:" +# everyone_looking: "Everyone here is looking for their next opportunity." +# everyone_looking_blurb: "Forget about 20% LinkedIn InMail response rates. Everyone that we list on this site wants to find their next position and will respond to your request for an introduction." +# weeding: "Sit back; we've done the weeding for you." +# weeding_blurb: "Every player that we list has been screened for technical ability. We also perform phone screens for select candidates and make notes on their profiles to save you time." +# pass_screen: "They will pass your technical screen." +# pass_screen_blurb: "Review each candidate's code before reaching out. One employer found that 5x as many of our devs passed their technical screen than hiring from Hacker News." +# make_hiring_easier: "Make my hiring easier, please." what: "Was ist CodeCombat?" # what_blurb: "CodeCombat is a multiplayer browser programming game. Players write code to control their forces in battle against other developers. We support JavaScript, Python, Lua, Clojure, CoffeeScript, and Io." -# who: "Who Are the Players?" -# who_blurb: "CodeCombateers are software developers who enjoy using their programming skills to play games. They range from college seniors at top 20 engineering programs to 20-year industry veterans." -# how: "How Do We Find Developers?" -# how_blurb: "We host competitive tournaments to attract competitive software engieneers. We then use in-house algorithms to identify the best players among the top 5% of tournament winners." -# why: "Why Hire Through Us?" -# why_blurb_1: "We will save you time. Every CodeCombateer we feaure is " -# why_blurb_2: "looking for work" -# why_blurb_3: ", has " -# why_blurb_4: "demonstrated top notch technical skills" -# why_blurb_5: ", and has been " -# why_blurb_6: "personally screened by us" -# why_blurb_7: ". Stop screening and start hiring." -# see_candidates: "Click here to see our candidates" +# cost: "How much do we charge?" +# cost_blurb: "We charge 15% of first year's salary and offer a 100% money back guarantee for 90 days. We don't charge for candidates who are already actively being interviewed at your company." candidate_name: "Name" # candidate_location: "Location" # candidate_looking_for: "Looking For" @@ -320,6 +336,7 @@ module.exports = nativeDescription: "Deutsch", englishDescription: "German", tra # candidate_top_skills: "Top Skills" # candidate_years_experience: "Yrs Exp" # candidate_last_updated: "Last Updated" +# candidate_who: "Who" # featured_developers: "Featured Developers" # other_developers: "Other Developers" # inactive_developers: "Inactive Developers" @@ -382,6 +399,8 @@ module.exports = nativeDescription: "Deutsch", englishDescription: "German", tra editor_config_keybindings_label: "Tastenbelegung" editor_config_keybindings_default: "Standard (Ace)" editor_config_keybindings_description: "Fügt zusätzliche Tastenkombinationen, bekannt aus anderen Editoren, hinzu" +# editor_config_livecompletion_label: "Live Autocompletion" +# editor_config_livecompletion_description: "Displays autocomplete suggestions while typing." editor_config_invisibles_label: "Zeige unsichtbare Zeichen" editor_config_invisibles_description: "Zeigt unsichtbare Zeichen wie Leertasten an." editor_config_indentguides_label: "Zeige Einrückungshilfe" @@ -418,6 +437,7 @@ module.exports = nativeDescription: "Deutsch", englishDescription: "German", tra tip_impossible: "Es wirkt immer unmöglich bis es vollbracht ist. - Nelson Mandela" tip_talk_is_cheap: "Reden ist billig. Zeig mir den Code. - Linus Torvalds" tip_first_language: "Das schwierigste, das du jemals lernen wirst, ist die erste Programmiersprache. - Alan Kay" +# tip_hardware_problem: "Q: How many programmers does it take to change a light bulb? A: None, it's a hardware problem." time_current: "Aktuell" time_total: "Total" time_goto: "Gehe zu" @@ -643,7 +663,7 @@ module.exports = nativeDescription: "Deutsch", englishDescription: "German", tra # nutshell_description: "Any resources we provide in the Level Editor are free to use as you like for creating Levels. But we reserve the right to restrict distribution of the Levels themselves (that are created on codecombat.com) so that they may be charged for in the future, if that's what ends up happening." canonical: "Die englische Version dieses Dokuments ist die definitive, kanonische Version. Sollte es Unterschiede zwischen den Übersetzungen geben, dann hat das englische Dokument Vorrang." -# contribute: + contribute: # page_title: "Contributing" character_classes_title: "Charakter Klassen" # introduction_desc_intro: "We have high hopes for CodeCombat." @@ -882,6 +902,8 @@ module.exports = nativeDescription: "Deutsch", englishDescription: "German", tra document: "Dokument" sprite_sheet: "Sprite Sheet" candidate_sessions: "Kandidat-Sessions" +# user_remark: "User Remark" +# versions: "Versions" delta: added: "hinzugefügt" diff --git a/app/locale/el.coffee b/app/locale/el.coffee index 37bd3bd04..4583ce9dc 100644 --- a/app/locale/el.coffee +++ b/app/locale/el.coffee @@ -43,7 +43,7 @@ module.exports = nativeDescription: "ελληνικά", englishDescription: "Gre page_not_found: "Η σελίδα δεν βρέθηκε" nav: -# play: "Επίπεδα" + play: "Επίπεδα" # community: "Community" # editor: "Editor" blog: "Μπλόγκ" @@ -59,12 +59,12 @@ module.exports = nativeDescription: "ελληνικά", englishDescription: "Gre # employers: "Employers" # versions: - save_version_title: "Αποθήκευση νέας έκδοσης" +# save_version_title: "Save New Version" # new_major_version: "New Major Version" - cla_prefix: "Για να αποθηκεύσετε, πρώτα πρέπει να συμφωνήσετε στα" +# cla_prefix: "To save changes, first you must agree to our" # cla_url: "CLA" # cla_suffix: "." - cla_agree: "ΣΥΜΦΩΝΩ" +# cla_agree: "I AGREE" login: sign_up: "Δημιούργησε Λογαριασμό" @@ -148,7 +148,7 @@ module.exports = nativeDescription: "ελληνικά", englishDescription: "Gre clothes: "Ρούχα" # trim: "Trim" cloud: "Σύννεφο" -# team: "Ομάδα" + team: "Ομάδα" spell: "Ξόρκι" boots: "Μπότες" hue: "Απόχρωση" @@ -236,7 +236,7 @@ module.exports = nativeDescription: "ελληνικά", englishDescription: "Gre # basics_country: "Country" # basics_country_help: "Country you want to work in (or live in now)." # basics_visa: "US Work Status" -# basics_visa_help: "Are you authorized to work in the US, or do you need visa sponsorship?" +# basics_visa_help: "Are you authorized to work in the US, or do you need visa sponsorship? (If you live in Canada or Australia, mark authorized.)" # basics_looking_for: "Looking For" # basics_looking_for_full_time: "Full-time" # basics_looking_for_part_time: "Part-time" @@ -281,7 +281,8 @@ module.exports = nativeDescription: "ελληνικά", englishDescription: "Gre # education_duration_help: "When?" # education_description: "Description" # education_description_help: "Highlight anything about this educational experience. (140 chars; optional)" -# our_notes: "Our Notes" +# our_notes: "CodeCombat's Notes" +# remarks: "Remarks" # projects: "Projects" # projects_header: "Add 3 projects" # projects_header_2: "Projects (Top 3)" @@ -297,22 +298,37 @@ module.exports = nativeDescription: "ελληνικά", englishDescription: "Gre # player_code: "Player Code" # employers: -# want_to_hire_our_players: "Hire CodeCombat Players" +# hire_developers_not_credentials: "Hire developers, not credentials." +# get_started: "Get Started" +# already_screened: "We've already technically screened all our candidates" +# filter_further: ", but you can also filter further:" +# filter_visa: "Visa" +# filter_visa_yes: "US Authorized" +# filter_visa_no: "Not Authorized" +# filter_education_top: "Top School" +# filter_education_other: "Other" +# filter_role_web_developer: "Web Developer" +# filter_role_software_developer: "Software Developer" +# filter_role_mobile_developer: "Mobile Developer" +# filter_experience: "Experience" +# filter_experience_senior: "Senior" +# filter_experience_junior: "Junior" +# filter_experience_recent_grad: "Recent Grad" +# filter_experience_student: "College Student" +# filter_results: "results" +# start_hiring: "Start hiring." +# reasons: "Three reasons you should hire through us:" +# everyone_looking: "Everyone here is looking for their next opportunity." +# everyone_looking_blurb: "Forget about 20% LinkedIn InMail response rates. Everyone that we list on this site wants to find their next position and will respond to your request for an introduction." +# weeding: "Sit back; we've done the weeding for you." +# weeding_blurb: "Every player that we list has been screened for technical ability. We also perform phone screens for select candidates and make notes on their profiles to save you time." +# pass_screen: "They will pass your technical screen." +# pass_screen_blurb: "Review each candidate's code before reaching out. One employer found that 5x as many of our devs passed their technical screen than hiring from Hacker News." +# make_hiring_easier: "Make my hiring easier, please." # what: "What is CodeCombat?" # what_blurb: "CodeCombat is a multiplayer browser programming game. Players write code to control their forces in battle against other developers. We support JavaScript, Python, Lua, Clojure, CoffeeScript, and Io." -# who: "Who Are the Players?" -# who_blurb: "CodeCombateers are software developers who enjoy using their programming skills to play games. They range from college seniors at top 20 engineering programs to 20-year industry veterans." -# how: "How Do We Find Developers?" -# how_blurb: "We host competitive tournaments to attract competitive software engieneers. We then use in-house algorithms to identify the best players among the top 5% of tournament winners." -# why: "Why Hire Through Us?" -# why_blurb_1: "We will save you time. Every CodeCombateer we feaure is " -# why_blurb_2: "looking for work" -# why_blurb_3: ", has " -# why_blurb_4: "demonstrated top notch technical skills" -# why_blurb_5: ", and has been " -# why_blurb_6: "personally screened by us" -# why_blurb_7: ". Stop screening and start hiring." -# see_candidates: "Click here to see our candidates" +# cost: "How much do we charge?" +# cost_blurb: "We charge 15% of first year's salary and offer a 100% money back guarantee for 90 days. We don't charge for candidates who are already actively being interviewed at your company." # candidate_name: "Name" # candidate_location: "Location" # candidate_looking_for: "Looking For" @@ -320,6 +336,7 @@ module.exports = nativeDescription: "ελληνικά", englishDescription: "Gre # candidate_top_skills: "Top Skills" # candidate_years_experience: "Yrs Exp" # candidate_last_updated: "Last Updated" +# candidate_who: "Who" # featured_developers: "Featured Developers" # other_developers: "Other Developers" # inactive_developers: "Inactive Developers" @@ -382,6 +399,8 @@ module.exports = nativeDescription: "ελληνικά", englishDescription: "Gre # editor_config_keybindings_label: "Key Bindings" # editor_config_keybindings_default: "Default (Ace)" # editor_config_keybindings_description: "Adds additional shortcuts known from the common editors." +# editor_config_livecompletion_label: "Live Autocompletion" +# editor_config_livecompletion_description: "Displays autocomplete suggestions while typing." # editor_config_invisibles_label: "Show Invisibles" # editor_config_invisibles_description: "Displays invisibles such as spaces or tabs." # editor_config_indentguides_label: "Show Indent Guides" @@ -418,6 +437,7 @@ module.exports = nativeDescription: "ελληνικά", englishDescription: "Gre # tip_impossible: "It always seems impossible until it's done. - Nelson Mandela" # tip_talk_is_cheap: "Talk is cheap. Show me the code. - Linus Torvalds" # tip_first_language: "The most disastrous thing that you can ever learn is your first programming language. - Alan Kay" +# tip_hardware_problem: "Q: How many programmers does it take to change a light bulb? A: None, it's a hardware problem." # time_current: "Now:" # time_total: "Max:" # time_goto: "Go to:" @@ -882,6 +902,8 @@ module.exports = nativeDescription: "ελληνικά", englishDescription: "Gre # document: "Document" # sprite_sheet: "Sprite Sheet" # candidate_sessions: "Candidate Sessions" +# user_remark: "User Remark" +# versions: "Versions" # delta: # added: "Added" diff --git a/app/locale/en-AU.coffee b/app/locale/en-AU.coffee index 6ff6b88fa..8f073d7d7 100644 --- a/app/locale/en-AU.coffee +++ b/app/locale/en-AU.coffee @@ -90,7 +90,7 @@ module.exports = nativeDescription: "English (AU)", englishDescription: "English # required: "You need to log in before you can go that way." # home: -# slogan: "Learn to Code JavaScript by Playing a Game" +# slogan: "Learn to Code by Playing a Game" # no_ie: "CodeCombat does not run in Internet Explorer 9 or older. Sorry!" # no_mobile: "CodeCombat wasn't designed for mobile devices and may not work!" # play: "Play" @@ -236,7 +236,7 @@ module.exports = nativeDescription: "English (AU)", englishDescription: "English # basics_country: "Country" # basics_country_help: "Country you want to work in (or live in now)." # basics_visa: "US Work Status" -# basics_visa_help: "Are you authorized to work in the US, or do you need visa sponsorship?" +# basics_visa_help: "Are you authorized to work in the US, or do you need visa sponsorship? (If you live in Canada or Australia, mark authorized.)" # basics_looking_for: "Looking For" # basics_looking_for_full_time: "Full-time" # basics_looking_for_part_time: "Part-time" @@ -281,7 +281,8 @@ module.exports = nativeDescription: "English (AU)", englishDescription: "English # education_duration_help: "When?" # education_description: "Description" # education_description_help: "Highlight anything about this educational experience. (140 chars; optional)" -# our_notes: "Our Notes" +# our_notes: "CodeCombat's Notes" +# remarks: "Remarks" # projects: "Projects" # projects_header: "Add 3 projects" # projects_header_2: "Projects (Top 3)" @@ -297,22 +298,37 @@ module.exports = nativeDescription: "English (AU)", englishDescription: "English # player_code: "Player Code" # employers: -# want_to_hire_our_players: "Hire CodeCombat Players" +# hire_developers_not_credentials: "Hire developers, not credentials." +# get_started: "Get Started" +# already_screened: "We've already technically screened all our candidates" +# filter_further: ", but you can also filter further:" +# filter_visa: "Visa" +# filter_visa_yes: "US Authorized" +# filter_visa_no: "Not Authorized" +# filter_education_top: "Top School" +# filter_education_other: "Other" +# filter_role_web_developer: "Web Developer" +# filter_role_software_developer: "Software Developer" +# filter_role_mobile_developer: "Mobile Developer" +# filter_experience: "Experience" +# filter_experience_senior: "Senior" +# filter_experience_junior: "Junior" +# filter_experience_recent_grad: "Recent Grad" +# filter_experience_student: "College Student" +# filter_results: "results" +# start_hiring: "Start hiring." +# reasons: "Three reasons you should hire through us:" +# everyone_looking: "Everyone here is looking for their next opportunity." +# everyone_looking_blurb: "Forget about 20% LinkedIn InMail response rates. Everyone that we list on this site wants to find their next position and will respond to your request for an introduction." +# weeding: "Sit back; we've done the weeding for you." +# weeding_blurb: "Every player that we list has been screened for technical ability. We also perform phone screens for select candidates and make notes on their profiles to save you time." +# pass_screen: "They will pass your technical screen." +# pass_screen_blurb: "Review each candidate's code before reaching out. One employer found that 5x as many of our devs passed their technical screen than hiring from Hacker News." +# make_hiring_easier: "Make my hiring easier, please." # what: "What is CodeCombat?" # what_blurb: "CodeCombat is a multiplayer browser programming game. Players write code to control their forces in battle against other developers. We support JavaScript, Python, Lua, Clojure, CoffeeScript, and Io." -# who: "Who Are the Players?" -# who_blurb: "CodeCombateers are software developers who enjoy using their programming skills to play games. They range from college seniors at top 20 engineering programs to 20-year industry veterans." -# how: "How Do We Find Developers?" -# how_blurb: "We host competitive tournaments to attract competitive software engieneers. We then use in-house algorithms to identify the best players among the top 5% of tournament winners." -# why: "Why Hire Through Us?" -# why_blurb_1: "We will save you time. Every CodeCombateer we feaure is " -# why_blurb_2: "looking for work" -# why_blurb_3: ", has " -# why_blurb_4: "demonstrated top notch technical skills" -# why_blurb_5: ", and has been " -# why_blurb_6: "personally screened by us" -# why_blurb_7: ". Stop screening and start hiring." -# see_candidates: "Click here to see our candidates" +# cost: "How much do we charge?" +# cost_blurb: "We charge 15% of first year's salary and offer a 100% money back guarantee for 90 days. We don't charge for candidates who are already actively being interviewed at your company." # candidate_name: "Name" # candidate_location: "Location" # candidate_looking_for: "Looking For" @@ -320,6 +336,7 @@ module.exports = nativeDescription: "English (AU)", englishDescription: "English # candidate_top_skills: "Top Skills" # candidate_years_experience: "Yrs Exp" # candidate_last_updated: "Last Updated" +# candidate_who: "Who" # featured_developers: "Featured Developers" # other_developers: "Other Developers" # inactive_developers: "Inactive Developers" @@ -382,6 +399,8 @@ module.exports = nativeDescription: "English (AU)", englishDescription: "English # editor_config_keybindings_label: "Key Bindings" # editor_config_keybindings_default: "Default (Ace)" # editor_config_keybindings_description: "Adds additional shortcuts known from the common editors." +# editor_config_livecompletion_label: "Live Autocompletion" +# editor_config_livecompletion_description: "Displays autocomplete suggestions while typing." # editor_config_invisibles_label: "Show Invisibles" # editor_config_invisibles_description: "Displays invisibles such as spaces or tabs." # editor_config_indentguides_label: "Show Indent Guides" @@ -418,6 +437,7 @@ module.exports = nativeDescription: "English (AU)", englishDescription: "English # tip_impossible: "It always seems impossible until it's done. - Nelson Mandela" # tip_talk_is_cheap: "Talk is cheap. Show me the code. - Linus Torvalds" # tip_first_language: "The most disastrous thing that you can ever learn is your first programming language. - Alan Kay" +# tip_hardware_problem: "Q: How many programmers does it take to change a light bulb? A: None, it's a hardware problem." # time_current: "Now:" # time_total: "Max:" # time_goto: "Go to:" @@ -882,6 +902,8 @@ module.exports = nativeDescription: "English (AU)", englishDescription: "English # document: "Document" # sprite_sheet: "Sprite Sheet" # candidate_sessions: "Candidate Sessions" +# user_remark: "User Remark" +# versions: "Versions" # delta: # added: "Added" diff --git a/app/locale/en-GB.coffee b/app/locale/en-GB.coffee index e6b48b373..cea2078f9 100644 --- a/app/locale/en-GB.coffee +++ b/app/locale/en-GB.coffee @@ -90,7 +90,7 @@ module.exports = nativeDescription: "English (UK)", englishDescription: "English # required: "You need to log in before you can go that way." # home: -# slogan: "Learn to Code JavaScript by Playing a Game" +# slogan: "Learn to Code by Playing a Game" # no_ie: "CodeCombat does not run in Internet Explorer 9 or older. Sorry!" # no_mobile: "CodeCombat wasn't designed for mobile devices and may not work!" # play: "Play" @@ -236,7 +236,7 @@ module.exports = nativeDescription: "English (UK)", englishDescription: "English # basics_country: "Country" # basics_country_help: "Country you want to work in (or live in now)." # basics_visa: "US Work Status" -# basics_visa_help: "Are you authorized to work in the US, or do you need visa sponsorship?" +# basics_visa_help: "Are you authorized to work in the US, or do you need visa sponsorship? (If you live in Canada or Australia, mark authorized.)" # basics_looking_for: "Looking For" # basics_looking_for_full_time: "Full-time" # basics_looking_for_part_time: "Part-time" @@ -281,7 +281,8 @@ module.exports = nativeDescription: "English (UK)", englishDescription: "English # education_duration_help: "When?" # education_description: "Description" # education_description_help: "Highlight anything about this educational experience. (140 chars; optional)" -# our_notes: "Our Notes" +# our_notes: "CodeCombat's Notes" +# remarks: "Remarks" # projects: "Projects" # projects_header: "Add 3 projects" # projects_header_2: "Projects (Top 3)" @@ -297,22 +298,37 @@ module.exports = nativeDescription: "English (UK)", englishDescription: "English # player_code: "Player Code" # employers: -# want_to_hire_our_players: "Hire CodeCombat Players" +# hire_developers_not_credentials: "Hire developers, not credentials." +# get_started: "Get Started" +# already_screened: "We've already technically screened all our candidates" +# filter_further: ", but you can also filter further:" +# filter_visa: "Visa" +# filter_visa_yes: "US Authorized" +# filter_visa_no: "Not Authorized" +# filter_education_top: "Top School" +# filter_education_other: "Other" +# filter_role_web_developer: "Web Developer" +# filter_role_software_developer: "Software Developer" +# filter_role_mobile_developer: "Mobile Developer" +# filter_experience: "Experience" +# filter_experience_senior: "Senior" +# filter_experience_junior: "Junior" +# filter_experience_recent_grad: "Recent Grad" +# filter_experience_student: "College Student" +# filter_results: "results" +# start_hiring: "Start hiring." +# reasons: "Three reasons you should hire through us:" +# everyone_looking: "Everyone here is looking for their next opportunity." +# everyone_looking_blurb: "Forget about 20% LinkedIn InMail response rates. Everyone that we list on this site wants to find their next position and will respond to your request for an introduction." +# weeding: "Sit back; we've done the weeding for you." +# weeding_blurb: "Every player that we list has been screened for technical ability. We also perform phone screens for select candidates and make notes on their profiles to save you time." +# pass_screen: "They will pass your technical screen." +# pass_screen_blurb: "Review each candidate's code before reaching out. One employer found that 5x as many of our devs passed their technical screen than hiring from Hacker News." +# make_hiring_easier: "Make my hiring easier, please." # what: "What is CodeCombat?" # what_blurb: "CodeCombat is a multiplayer browser programming game. Players write code to control their forces in battle against other developers. We support JavaScript, Python, Lua, Clojure, CoffeeScript, and Io." -# who: "Who Are the Players?" -# who_blurb: "CodeCombateers are software developers who enjoy using their programming skills to play games. They range from college seniors at top 20 engineering programs to 20-year industry veterans." -# how: "How Do We Find Developers?" -# how_blurb: "We host competitive tournaments to attract competitive software engieneers. We then use in-house algorithms to identify the best players among the top 5% of tournament winners." -# why: "Why Hire Through Us?" -# why_blurb_1: "We will save you time. Every CodeCombateer we feaure is " -# why_blurb_2: "looking for work" -# why_blurb_3: ", has " -# why_blurb_4: "demonstrated top notch technical skills" -# why_blurb_5: ", and has been " -# why_blurb_6: "personally screened by us" -# why_blurb_7: ". Stop screening and start hiring." -# see_candidates: "Click here to see our candidates" +# cost: "How much do we charge?" +# cost_blurb: "We charge 15% of first year's salary and offer a 100% money back guarantee for 90 days. We don't charge for candidates who are already actively being interviewed at your company." # candidate_name: "Name" # candidate_location: "Location" # candidate_looking_for: "Looking For" @@ -320,6 +336,7 @@ module.exports = nativeDescription: "English (UK)", englishDescription: "English # candidate_top_skills: "Top Skills" # candidate_years_experience: "Yrs Exp" # candidate_last_updated: "Last Updated" +# candidate_who: "Who" # featured_developers: "Featured Developers" # other_developers: "Other Developers" # inactive_developers: "Inactive Developers" @@ -382,6 +399,8 @@ module.exports = nativeDescription: "English (UK)", englishDescription: "English # editor_config_keybindings_label: "Key Bindings" # editor_config_keybindings_default: "Default (Ace)" # editor_config_keybindings_description: "Adds additional shortcuts known from the common editors." +# editor_config_livecompletion_label: "Live Autocompletion" +# editor_config_livecompletion_description: "Displays autocomplete suggestions while typing." # editor_config_invisibles_label: "Show Invisibles" # editor_config_invisibles_description: "Displays invisibles such as spaces or tabs." # editor_config_indentguides_label: "Show Indent Guides" @@ -418,6 +437,7 @@ module.exports = nativeDescription: "English (UK)", englishDescription: "English # tip_impossible: "It always seems impossible until it's done. - Nelson Mandela" # tip_talk_is_cheap: "Talk is cheap. Show me the code. - Linus Torvalds" # tip_first_language: "The most disastrous thing that you can ever learn is your first programming language. - Alan Kay" +# tip_hardware_problem: "Q: How many programmers does it take to change a light bulb? A: None, it's a hardware problem." # time_current: "Now:" # time_total: "Max:" # time_goto: "Go to:" @@ -882,6 +902,8 @@ module.exports = nativeDescription: "English (UK)", englishDescription: "English # document: "Document" # sprite_sheet: "Sprite Sheet" # candidate_sessions: "Candidate Sessions" +# user_remark: "User Remark" +# versions: "Versions" # delta: # added: "Added" diff --git a/app/locale/en-US.coffee b/app/locale/en-US.coffee index 362e522ed..ce19759c6 100644 --- a/app/locale/en-US.coffee +++ b/app/locale/en-US.coffee @@ -90,7 +90,7 @@ module.exports = nativeDescription: "English (US)", englishDescription: "English # required: "You need to log in before you can go that way." # home: -# slogan: "Learn to Code JavaScript by Playing a Game" +# slogan: "Learn to Code by Playing a Game" # no_ie: "CodeCombat does not run in Internet Explorer 9 or older. Sorry!" # no_mobile: "CodeCombat wasn't designed for mobile devices and may not work!" # play: "Play" @@ -236,7 +236,7 @@ module.exports = nativeDescription: "English (US)", englishDescription: "English # basics_country: "Country" # basics_country_help: "Country you want to work in (or live in now)." # basics_visa: "US Work Status" -# basics_visa_help: "Are you authorized to work in the US, or do you need visa sponsorship?" +# basics_visa_help: "Are you authorized to work in the US, or do you need visa sponsorship? (If you live in Canada or Australia, mark authorized.)" # basics_looking_for: "Looking For" # basics_looking_for_full_time: "Full-time" # basics_looking_for_part_time: "Part-time" @@ -281,7 +281,8 @@ module.exports = nativeDescription: "English (US)", englishDescription: "English # education_duration_help: "When?" # education_description: "Description" # education_description_help: "Highlight anything about this educational experience. (140 chars; optional)" -# our_notes: "Our Notes" +# our_notes: "CodeCombat's Notes" +# remarks: "Remarks" # projects: "Projects" # projects_header: "Add 3 projects" # projects_header_2: "Projects (Top 3)" @@ -297,22 +298,37 @@ module.exports = nativeDescription: "English (US)", englishDescription: "English # player_code: "Player Code" # employers: -# want_to_hire_our_players: "Hire CodeCombat Players" +# hire_developers_not_credentials: "Hire developers, not credentials." +# get_started: "Get Started" +# already_screened: "We've already technically screened all our candidates" +# filter_further: ", but you can also filter further:" +# filter_visa: "Visa" +# filter_visa_yes: "US Authorized" +# filter_visa_no: "Not Authorized" +# filter_education_top: "Top School" +# filter_education_other: "Other" +# filter_role_web_developer: "Web Developer" +# filter_role_software_developer: "Software Developer" +# filter_role_mobile_developer: "Mobile Developer" +# filter_experience: "Experience" +# filter_experience_senior: "Senior" +# filter_experience_junior: "Junior" +# filter_experience_recent_grad: "Recent Grad" +# filter_experience_student: "College Student" +# filter_results: "results" +# start_hiring: "Start hiring." +# reasons: "Three reasons you should hire through us:" +# everyone_looking: "Everyone here is looking for their next opportunity." +# everyone_looking_blurb: "Forget about 20% LinkedIn InMail response rates. Everyone that we list on this site wants to find their next position and will respond to your request for an introduction." +# weeding: "Sit back; we've done the weeding for you." +# weeding_blurb: "Every player that we list has been screened for technical ability. We also perform phone screens for select candidates and make notes on their profiles to save you time." +# pass_screen: "They will pass your technical screen." +# pass_screen_blurb: "Review each candidate's code before reaching out. One employer found that 5x as many of our devs passed their technical screen than hiring from Hacker News." +# make_hiring_easier: "Make my hiring easier, please." # what: "What is CodeCombat?" # what_blurb: "CodeCombat is a multiplayer browser programming game. Players write code to control their forces in battle against other developers. We support JavaScript, Python, Lua, Clojure, CoffeeScript, and Io." -# who: "Who Are the Players?" -# who_blurb: "CodeCombateers are software developers who enjoy using their programming skills to play games. They range from college seniors at top 20 engineering programs to 20-year industry veterans." -# how: "How Do We Find Developers?" -# how_blurb: "We host competitive tournaments to attract competitive software engieneers. We then use in-house algorithms to identify the best players among the top 5% of tournament winners." -# why: "Why Hire Through Us?" -# why_blurb_1: "We will save you time. Every CodeCombateer we feaure is " -# why_blurb_2: "looking for work" -# why_blurb_3: ", has " -# why_blurb_4: "demonstrated top notch technical skills" -# why_blurb_5: ", and has been " -# why_blurb_6: "personally screened by us" -# why_blurb_7: ". Stop screening and start hiring." -# see_candidates: "Click here to see our candidates" +# cost: "How much do we charge?" +# cost_blurb: "We charge 15% of first year's salary and offer a 100% money back guarantee for 90 days. We don't charge for candidates who are already actively being interviewed at your company." # candidate_name: "Name" # candidate_location: "Location" # candidate_looking_for: "Looking For" @@ -320,6 +336,7 @@ module.exports = nativeDescription: "English (US)", englishDescription: "English # candidate_top_skills: "Top Skills" # candidate_years_experience: "Yrs Exp" # candidate_last_updated: "Last Updated" +# candidate_who: "Who" # featured_developers: "Featured Developers" # other_developers: "Other Developers" # inactive_developers: "Inactive Developers" @@ -382,6 +399,8 @@ module.exports = nativeDescription: "English (US)", englishDescription: "English # editor_config_keybindings_label: "Key Bindings" # editor_config_keybindings_default: "Default (Ace)" # editor_config_keybindings_description: "Adds additional shortcuts known from the common editors." +# editor_config_livecompletion_label: "Live Autocompletion" +# editor_config_livecompletion_description: "Displays autocomplete suggestions while typing." # editor_config_invisibles_label: "Show Invisibles" # editor_config_invisibles_description: "Displays invisibles such as spaces or tabs." # editor_config_indentguides_label: "Show Indent Guides" @@ -418,6 +437,7 @@ module.exports = nativeDescription: "English (US)", englishDescription: "English # tip_impossible: "It always seems impossible until it's done. - Nelson Mandela" # tip_talk_is_cheap: "Talk is cheap. Show me the code. - Linus Torvalds" # tip_first_language: "The most disastrous thing that you can ever learn is your first programming language. - Alan Kay" +# tip_hardware_problem: "Q: How many programmers does it take to change a light bulb? A: None, it's a hardware problem." # time_current: "Now:" # time_total: "Max:" # time_goto: "Go to:" @@ -882,6 +902,8 @@ module.exports = nativeDescription: "English (US)", englishDescription: "English # document: "Document" # sprite_sheet: "Sprite Sheet" # candidate_sessions: "Candidate Sessions" +# user_remark: "User Remark" +# versions: "Versions" # delta: # added: "Added" diff --git a/app/locale/es-419.coffee b/app/locale/es-419.coffee index a4fa878ec..6c8fb4120 100644 --- a/app/locale/es-419.coffee +++ b/app/locale/es-419.coffee @@ -236,7 +236,7 @@ module.exports = nativeDescription: "español (América Latina)", englishDescrip # basics_country: "Country" # basics_country_help: "Country you want to work in (or live in now)." # basics_visa: "US Work Status" -# basics_visa_help: "Are you authorized to work in the US, or do you need visa sponsorship?" +# basics_visa_help: "Are you authorized to work in the US, or do you need visa sponsorship? (If you live in Canada or Australia, mark authorized.)" # basics_looking_for: "Looking For" # basics_looking_for_full_time: "Full-time" # basics_looking_for_part_time: "Part-time" @@ -282,6 +282,7 @@ module.exports = nativeDescription: "español (América Latina)", englishDescrip # education_description: "Description" # education_description_help: "Highlight anything about this educational experience. (140 chars; optional)" our_notes: "Nuestras Notas" +# remarks: "Remarks" projects: "Proyectos" # projects_header: "Add 3 projects" # projects_header_2: "Projects (Top 3)" @@ -297,22 +298,37 @@ module.exports = nativeDescription: "español (América Latina)", englishDescrip # player_code: "Player Code" employers: - want_to_hire_our_players: "¿Quiere contratar a nuestros jugadores expertos de CodeCombat?" +# hire_developers_not_credentials: "Hire developers, not credentials." +# get_started: "Get Started" +# already_screened: "We've already technically screened all our candidates" +# filter_further: ", but you can also filter further:" +# filter_visa: "Visa" +# filter_visa_yes: "US Authorized" +# filter_visa_no: "Not Authorized" +# filter_education_top: "Top School" +# filter_education_other: "Other" +# filter_role_web_developer: "Web Developer" +# filter_role_software_developer: "Software Developer" +# filter_role_mobile_developer: "Mobile Developer" +# filter_experience: "Experience" +# filter_experience_senior: "Senior" +# filter_experience_junior: "Junior" +# filter_experience_recent_grad: "Recent Grad" +# filter_experience_student: "College Student" +# filter_results: "results" +# start_hiring: "Start hiring." +# reasons: "Three reasons you should hire through us:" +# everyone_looking: "Everyone here is looking for their next opportunity." +# everyone_looking_blurb: "Forget about 20% LinkedIn InMail response rates. Everyone that we list on this site wants to find their next position and will respond to your request for an introduction." +# weeding: "Sit back; we've done the weeding for you." +# weeding_blurb: "Every player that we list has been screened for technical ability. We also perform phone screens for select candidates and make notes on their profiles to save you time." +# pass_screen: "They will pass your technical screen." +# pass_screen_blurb: "Review each candidate's code before reaching out. One employer found that 5x as many of our devs passed their technical screen than hiring from Hacker News." +# make_hiring_easier: "Make my hiring easier, please." # what: "What is CodeCombat?" # what_blurb: "CodeCombat is a multiplayer browser programming game. Players write code to control their forces in battle against other developers. We support JavaScript, Python, Lua, Clojure, CoffeeScript, and Io." -# who: "Who Are the Players?" -# who_blurb: "CodeCombateers are software developers who enjoy using their programming skills to play games. They range from college seniors at top 20 engineering programs to 20-year industry veterans." -# how: "How Do We Find Developers?" -# how_blurb: "We host competitive tournaments to attract competitive software engieneers. We then use in-house algorithms to identify the best players among the top 5% of tournament winners." -# why: "Why Hire Through Us?" -# why_blurb_1: "We will save you time. Every CodeCombateer we feaure is " -# why_blurb_2: "looking for work" -# why_blurb_3: ", has " -# why_blurb_4: "demonstrated top notch technical skills" -# why_blurb_5: ", and has been " -# why_blurb_6: "personally screened by us" -# why_blurb_7: ". Stop screening and start hiring." -# see_candidates: "Click here to see our candidates" +# cost: "How much do we charge?" +# cost_blurb: "We charge 15% of first year's salary and offer a 100% money back guarantee for 90 days. We don't charge for candidates who are already actively being interviewed at your company." candidate_name: "Nombre" candidate_location: "Ubicación" candidate_looking_for: "Buscando" @@ -320,6 +336,7 @@ module.exports = nativeDescription: "español (América Latina)", englishDescrip candidate_top_skills: "Mejores Habilidades" candidate_years_experience: "Años de Exp" candidate_last_updated: "Última Actualización" +# candidate_who: "Who" # featured_developers: "Featured Developers" # other_developers: "Other Developers" # inactive_developers: "Inactive Developers" @@ -382,6 +399,8 @@ module.exports = nativeDescription: "español (América Latina)", englishDescrip editor_config_keybindings_label: "Atajos de Teclado" editor_config_keybindings_default: "Default (As)" editor_config_keybindings_description: "Añade atajos adicionales conocidos de los editores comunes." +# editor_config_livecompletion_label: "Live Autocompletion" +# editor_config_livecompletion_description: "Displays autocomplete suggestions while typing." editor_config_invisibles_label: "Mostrar Invisibles" editor_config_invisibles_description: "Visualiza invisibles tales como espacios o tabulaciones." editor_config_indentguides_label: "Mostrar guías de indentación" @@ -418,6 +437,7 @@ module.exports = nativeDescription: "español (América Latina)", englishDescrip tip_impossible: "Siempre parece imposible hasta que se hace. - Nelson Mandela" tip_talk_is_cheap: "Hablar es barato. Muestrame el código. - Linus Torvalds" tip_first_language: "La cosa más desastroza que puedes aprender es tu primer lenguaje de programación. - Alan Kay" +# tip_hardware_problem: "Q: How many programmers does it take to change a light bulb? A: None, it's a hardware problem." time_current: "Ahora:" time_total: "Max:" time_goto: "Ir a:" @@ -882,6 +902,8 @@ module.exports = nativeDescription: "español (América Latina)", englishDescrip # document: "Document" # sprite_sheet: "Sprite Sheet" # candidate_sessions: "Candidate Sessions" +# user_remark: "User Remark" +# versions: "Versions" # delta: # added: "Added" diff --git a/app/locale/es-ES.coffee b/app/locale/es-ES.coffee index 2065b88a4..a011e016e 100644 --- a/app/locale/es-ES.coffee +++ b/app/locale/es-ES.coffee @@ -236,7 +236,7 @@ module.exports = nativeDescription: "español (ES)", englishDescription: "Spanis basics_country: "País" basics_country_help: "País en la que quieres trabajar (o en la que vives actualmente)." # basics_visa: "US Work Status" -# basics_visa_help: "Are you authorized to work in the US, or do you need visa sponsorship?" +# basics_visa_help: "Are you authorized to work in the US, or do you need visa sponsorship? (If you live in Canada or Australia, mark authorized.)" # basics_looking_for: "Looking For" basics_looking_for_full_time: "Full-time (tiempo completo)" # basics_looking_for_part_time: "Part-time" @@ -282,6 +282,7 @@ module.exports = nativeDescription: "español (ES)", englishDescription: "Spanis education_description: "Descripción" # education_description_help: "Highlight anything about this educational experience. (140 chars; optional)" our_notes: "Nuestras notas" +# remarks: "Remarks" projects: "Proyectos" # projects_header: "Add 3 projects" # projects_header_2: "Projects (Top 3)" @@ -297,22 +298,37 @@ module.exports = nativeDescription: "español (ES)", englishDescription: "Spanis # player_code: "Player Code" employers: - want_to_hire_our_players: "¿Quieres contratar jugadores expertos de CodeCombat?" +# hire_developers_not_credentials: "Hire developers, not credentials." +# get_started: "Get Started" +# already_screened: "We've already technically screened all our candidates" +# filter_further: ", but you can also filter further:" +# filter_visa: "Visa" +# filter_visa_yes: "US Authorized" +# filter_visa_no: "Not Authorized" +# filter_education_top: "Top School" +# filter_education_other: "Other" +# filter_role_web_developer: "Web Developer" +# filter_role_software_developer: "Software Developer" +# filter_role_mobile_developer: "Mobile Developer" +# filter_experience: "Experience" +# filter_experience_senior: "Senior" +# filter_experience_junior: "Junior" +# filter_experience_recent_grad: "Recent Grad" +# filter_experience_student: "College Student" +# filter_results: "results" +# start_hiring: "Start hiring." +# reasons: "Three reasons you should hire through us:" +# everyone_looking: "Everyone here is looking for their next opportunity." +# everyone_looking_blurb: "Forget about 20% LinkedIn InMail response rates. Everyone that we list on this site wants to find their next position and will respond to your request for an introduction." +# weeding: "Sit back; we've done the weeding for you." +# weeding_blurb: "Every player that we list has been screened for technical ability. We also perform phone screens for select candidates and make notes on their profiles to save you time." +# pass_screen: "They will pass your technical screen." +# pass_screen_blurb: "Review each candidate's code before reaching out. One employer found that 5x as many of our devs passed their technical screen than hiring from Hacker News." +# make_hiring_easier: "Make my hiring easier, please." what: "¿Qué es CodeCombat?" # what_blurb: "CodeCombat is a multiplayer browser programming game. Players write code to control their forces in battle against other developers. We support JavaScript, Python, Lua, Clojure, CoffeeScript, and Io." - who: "¿Quiénes son los jugadores?" -# who_blurb: "CodeCombateers are software developers who enjoy using their programming skills to play games. They range from college seniors at top 20 engineering programs to 20-year industry veterans." -# how: "How Do We Find Developers?" -# how_blurb: "We host competitive tournaments to attract competitive software engieneers. We then use in-house algorithms to identify the best players among the top 5% of tournament winners." -# why: "Why Hire Through Us?" -# why_blurb_1: "We will save you time. Every CodeCombateer we feaure is " -# why_blurb_2: "looking for work" -# why_blurb_3: ", has " -# why_blurb_4: "demonstrated top notch technical skills" -# why_blurb_5: ", and has been " -# why_blurb_6: "personally screened by us" -# why_blurb_7: ". Stop screening and start hiring." - see_candidates: "Click aquí para ver a nuestros candidatos" +# cost: "How much do we charge?" +# cost_blurb: "We charge 15% of first year's salary and offer a 100% money back guarantee for 90 days. We don't charge for candidates who are already actively being interviewed at your company." candidate_name: "Nombre" candidate_location: "Ubicación" candidate_looking_for: "Buscando" @@ -320,6 +336,7 @@ module.exports = nativeDescription: "español (ES)", englishDescription: "Spanis candidate_top_skills: "Mejores Habilidades" candidate_years_experience: "Años Exp" candidate_last_updated: "Última actualización" +# candidate_who: "Who" # featured_developers: "Featured Developers" # other_developers: "Other Developers" # inactive_developers: "Inactive Developers" @@ -382,6 +399,8 @@ module.exports = nativeDescription: "español (ES)", englishDescription: "Spanis editor_config_keybindings_label: "Atajos de teclado" editor_config_keybindings_default: "Actual (Ace)" editor_config_keybindings_description: "Permite el uso de atajos de teclado de algunos editores conocidos." +# editor_config_livecompletion_label: "Live Autocompletion" +# editor_config_livecompletion_description: "Displays autocomplete suggestions while typing." editor_config_invisibles_label: "Mostrar elementos invisibles" editor_config_invisibles_description: "Se pueden ver elementos invisibles como espacios o tabulaciones." editor_config_indentguides_label: "Mostrar guías de sangría" @@ -418,6 +437,7 @@ module.exports = nativeDescription: "español (ES)", englishDescription: "Spanis tip_impossible: "Siempre parece imposible, hasta que se hace. - Nelson Mandela" tip_talk_is_cheap: "Hablar es fácil. Enséñame el código. - Linus Torvalds" tip_first_language: "La cosa más desastrosa que puedes aprender es tu primer lenguaje de programación. - Alan Kay" +# tip_hardware_problem: "Q: How many programmers does it take to change a light bulb? A: None, it's a hardware problem." time_current: "Ahora:" time_total: "Máx:" time_goto: "Ir a:" @@ -882,6 +902,8 @@ module.exports = nativeDescription: "español (ES)", englishDescription: "Spanis # document: "Document" # sprite_sheet: "Sprite Sheet" # candidate_sessions: "Candidate Sessions" +# user_remark: "User Remark" +# versions: "Versions" delta: added: "Añadido" diff --git a/app/locale/es.coffee b/app/locale/es.coffee index ef5f74793..80a6e5284 100644 --- a/app/locale/es.coffee +++ b/app/locale/es.coffee @@ -236,7 +236,7 @@ module.exports = nativeDescription: "español", englishDescription: "Spanish", t # basics_country: "Country" # basics_country_help: "Country you want to work in (or live in now)." # basics_visa: "US Work Status" -# basics_visa_help: "Are you authorized to work in the US, or do you need visa sponsorship?" +# basics_visa_help: "Are you authorized to work in the US, or do you need visa sponsorship? (If you live in Canada or Australia, mark authorized.)" # basics_looking_for: "Looking For" # basics_looking_for_full_time: "Full-time" # basics_looking_for_part_time: "Part-time" @@ -281,7 +281,8 @@ module.exports = nativeDescription: "español", englishDescription: "Spanish", t # education_duration_help: "When?" # education_description: "Description" # education_description_help: "Highlight anything about this educational experience. (140 chars; optional)" -# our_notes: "Our Notes" +# our_notes: "CodeCombat's Notes" +# remarks: "Remarks" # projects: "Projects" # projects_header: "Add 3 projects" # projects_header_2: "Projects (Top 3)" @@ -297,22 +298,37 @@ module.exports = nativeDescription: "español", englishDescription: "Spanish", t # player_code: "Player Code" # employers: -# want_to_hire_our_players: "Hire CodeCombat Players" +# hire_developers_not_credentials: "Hire developers, not credentials." +# get_started: "Get Started" +# already_screened: "We've already technically screened all our candidates" +# filter_further: ", but you can also filter further:" +# filter_visa: "Visa" +# filter_visa_yes: "US Authorized" +# filter_visa_no: "Not Authorized" +# filter_education_top: "Top School" +# filter_education_other: "Other" +# filter_role_web_developer: "Web Developer" +# filter_role_software_developer: "Software Developer" +# filter_role_mobile_developer: "Mobile Developer" +# filter_experience: "Experience" +# filter_experience_senior: "Senior" +# filter_experience_junior: "Junior" +# filter_experience_recent_grad: "Recent Grad" +# filter_experience_student: "College Student" +# filter_results: "results" +# start_hiring: "Start hiring." +# reasons: "Three reasons you should hire through us:" +# everyone_looking: "Everyone here is looking for their next opportunity." +# everyone_looking_blurb: "Forget about 20% LinkedIn InMail response rates. Everyone that we list on this site wants to find their next position and will respond to your request for an introduction." +# weeding: "Sit back; we've done the weeding for you." +# weeding_blurb: "Every player that we list has been screened for technical ability. We also perform phone screens for select candidates and make notes on their profiles to save you time." +# pass_screen: "They will pass your technical screen." +# pass_screen_blurb: "Review each candidate's code before reaching out. One employer found that 5x as many of our devs passed their technical screen than hiring from Hacker News." +# make_hiring_easier: "Make my hiring easier, please." # what: "What is CodeCombat?" # what_blurb: "CodeCombat is a multiplayer browser programming game. Players write code to control their forces in battle against other developers. We support JavaScript, Python, Lua, Clojure, CoffeeScript, and Io." -# who: "Who Are the Players?" -# who_blurb: "CodeCombateers are software developers who enjoy using their programming skills to play games. They range from college seniors at top 20 engineering programs to 20-year industry veterans." -# how: "How Do We Find Developers?" -# how_blurb: "We host competitive tournaments to attract competitive software engieneers. We then use in-house algorithms to identify the best players among the top 5% of tournament winners." -# why: "Why Hire Through Us?" -# why_blurb_1: "We will save you time. Every CodeCombateer we feaure is " -# why_blurb_2: "looking for work" -# why_blurb_3: ", has " -# why_blurb_4: "demonstrated top notch technical skills" -# why_blurb_5: ", and has been " -# why_blurb_6: "personally screened by us" -# why_blurb_7: ". Stop screening and start hiring." -# see_candidates: "Click here to see our candidates" +# cost: "How much do we charge?" +# cost_blurb: "We charge 15% of first year's salary and offer a 100% money back guarantee for 90 days. We don't charge for candidates who are already actively being interviewed at your company." # candidate_name: "Name" # candidate_location: "Location" # candidate_looking_for: "Looking For" @@ -320,6 +336,7 @@ module.exports = nativeDescription: "español", englishDescription: "Spanish", t # candidate_top_skills: "Top Skills" # candidate_years_experience: "Yrs Exp" # candidate_last_updated: "Last Updated" +# candidate_who: "Who" # featured_developers: "Featured Developers" # other_developers: "Other Developers" # inactive_developers: "Inactive Developers" @@ -382,6 +399,8 @@ module.exports = nativeDescription: "español", englishDescription: "Spanish", t # editor_config_keybindings_label: "Key Bindings" # editor_config_keybindings_default: "Default (Ace)" # editor_config_keybindings_description: "Adds additional shortcuts known from the common editors." +# editor_config_livecompletion_label: "Live Autocompletion" +# editor_config_livecompletion_description: "Displays autocomplete suggestions while typing." # editor_config_invisibles_label: "Show Invisibles" # editor_config_invisibles_description: "Displays invisibles such as spaces or tabs." # editor_config_indentguides_label: "Show Indent Guides" @@ -418,6 +437,7 @@ module.exports = nativeDescription: "español", englishDescription: "Spanish", t # tip_impossible: "It always seems impossible until it's done. - Nelson Mandela" # tip_talk_is_cheap: "Talk is cheap. Show me the code. - Linus Torvalds" # tip_first_language: "The most disastrous thing that you can ever learn is your first programming language. - Alan Kay" +# tip_hardware_problem: "Q: How many programmers does it take to change a light bulb? A: None, it's a hardware problem." # time_current: "Now:" # time_total: "Max:" # time_goto: "Go to:" @@ -882,6 +902,8 @@ module.exports = nativeDescription: "español", englishDescription: "Spanish", t # document: "Document" # sprite_sheet: "Sprite Sheet" # candidate_sessions: "Candidate Sessions" +# user_remark: "User Remark" +# versions: "Versions" # delta: # added: "Added" diff --git a/app/locale/fa.coffee b/app/locale/fa.coffee index 7d24100ff..5b1ca0e81 100644 --- a/app/locale/fa.coffee +++ b/app/locale/fa.coffee @@ -236,7 +236,7 @@ module.exports = nativeDescription: "فارسی", englishDescription: "Persian", # basics_country: "Country" # basics_country_help: "Country you want to work in (or live in now)." # basics_visa: "US Work Status" -# basics_visa_help: "Are you authorized to work in the US, or do you need visa sponsorship?" +# basics_visa_help: "Are you authorized to work in the US, or do you need visa sponsorship? (If you live in Canada or Australia, mark authorized.)" # basics_looking_for: "Looking For" # basics_looking_for_full_time: "Full-time" # basics_looking_for_part_time: "Part-time" @@ -281,7 +281,8 @@ module.exports = nativeDescription: "فارسی", englishDescription: "Persian", # education_duration_help: "When?" # education_description: "Description" # education_description_help: "Highlight anything about this educational experience. (140 chars; optional)" -# our_notes: "Our Notes" +# our_notes: "CodeCombat's Notes" +# remarks: "Remarks" # projects: "Projects" # projects_header: "Add 3 projects" # projects_header_2: "Projects (Top 3)" @@ -297,22 +298,37 @@ module.exports = nativeDescription: "فارسی", englishDescription: "Persian", # player_code: "Player Code" # employers: -# want_to_hire_our_players: "Hire CodeCombat Players" +# hire_developers_not_credentials: "Hire developers, not credentials." +# get_started: "Get Started" +# already_screened: "We've already technically screened all our candidates" +# filter_further: ", but you can also filter further:" +# filter_visa: "Visa" +# filter_visa_yes: "US Authorized" +# filter_visa_no: "Not Authorized" +# filter_education_top: "Top School" +# filter_education_other: "Other" +# filter_role_web_developer: "Web Developer" +# filter_role_software_developer: "Software Developer" +# filter_role_mobile_developer: "Mobile Developer" +# filter_experience: "Experience" +# filter_experience_senior: "Senior" +# filter_experience_junior: "Junior" +# filter_experience_recent_grad: "Recent Grad" +# filter_experience_student: "College Student" +# filter_results: "results" +# start_hiring: "Start hiring." +# reasons: "Three reasons you should hire through us:" +# everyone_looking: "Everyone here is looking for their next opportunity." +# everyone_looking_blurb: "Forget about 20% LinkedIn InMail response rates. Everyone that we list on this site wants to find their next position and will respond to your request for an introduction." +# weeding: "Sit back; we've done the weeding for you." +# weeding_blurb: "Every player that we list has been screened for technical ability. We also perform phone screens for select candidates and make notes on their profiles to save you time." +# pass_screen: "They will pass your technical screen." +# pass_screen_blurb: "Review each candidate's code before reaching out. One employer found that 5x as many of our devs passed their technical screen than hiring from Hacker News." +# make_hiring_easier: "Make my hiring easier, please." # what: "What is CodeCombat?" # what_blurb: "CodeCombat is a multiplayer browser programming game. Players write code to control their forces in battle against other developers. We support JavaScript, Python, Lua, Clojure, CoffeeScript, and Io." -# who: "Who Are the Players?" -# who_blurb: "CodeCombateers are software developers who enjoy using their programming skills to play games. They range from college seniors at top 20 engineering programs to 20-year industry veterans." -# how: "How Do We Find Developers?" -# how_blurb: "We host competitive tournaments to attract competitive software engieneers. We then use in-house algorithms to identify the best players among the top 5% of tournament winners." -# why: "Why Hire Through Us?" -# why_blurb_1: "We will save you time. Every CodeCombateer we feaure is " -# why_blurb_2: "looking for work" -# why_blurb_3: ", has " -# why_blurb_4: "demonstrated top notch technical skills" -# why_blurb_5: ", and has been " -# why_blurb_6: "personally screened by us" -# why_blurb_7: ". Stop screening and start hiring." -# see_candidates: "Click here to see our candidates" +# cost: "How much do we charge?" +# cost_blurb: "We charge 15% of first year's salary and offer a 100% money back guarantee for 90 days. We don't charge for candidates who are already actively being interviewed at your company." # candidate_name: "Name" # candidate_location: "Location" # candidate_looking_for: "Looking For" @@ -320,6 +336,7 @@ module.exports = nativeDescription: "فارسی", englishDescription: "Persian", # candidate_top_skills: "Top Skills" # candidate_years_experience: "Yrs Exp" # candidate_last_updated: "Last Updated" +# candidate_who: "Who" # featured_developers: "Featured Developers" # other_developers: "Other Developers" # inactive_developers: "Inactive Developers" @@ -382,6 +399,8 @@ module.exports = nativeDescription: "فارسی", englishDescription: "Persian", # editor_config_keybindings_label: "Key Bindings" # editor_config_keybindings_default: "Default (Ace)" # editor_config_keybindings_description: "Adds additional shortcuts known from the common editors." +# editor_config_livecompletion_label: "Live Autocompletion" +# editor_config_livecompletion_description: "Displays autocomplete suggestions while typing." # editor_config_invisibles_label: "Show Invisibles" # editor_config_invisibles_description: "Displays invisibles such as spaces or tabs." # editor_config_indentguides_label: "Show Indent Guides" @@ -418,6 +437,7 @@ module.exports = nativeDescription: "فارسی", englishDescription: "Persian", # tip_impossible: "It always seems impossible until it's done. - Nelson Mandela" # tip_talk_is_cheap: "Talk is cheap. Show me the code. - Linus Torvalds" # tip_first_language: "The most disastrous thing that you can ever learn is your first programming language. - Alan Kay" +# tip_hardware_problem: "Q: How many programmers does it take to change a light bulb? A: None, it's a hardware problem." # time_current: "Now:" # time_total: "Max:" # time_goto: "Go to:" @@ -882,6 +902,8 @@ module.exports = nativeDescription: "فارسی", englishDescription: "Persian", # document: "Document" # sprite_sheet: "Sprite Sheet" # candidate_sessions: "Candidate Sessions" +# user_remark: "User Remark" +# versions: "Versions" # delta: # added: "Added" diff --git a/app/locale/fi.coffee b/app/locale/fi.coffee index 96a330fa0..83148a058 100644 --- a/app/locale/fi.coffee +++ b/app/locale/fi.coffee @@ -90,7 +90,7 @@ module.exports = nativeDescription: "suomi", englishDescription: "Finnish", tran # required: "You need to log in before you can go that way." # home: -# slogan: "Learn to Code JavaScript by Playing a Game" +# slogan: "Learn to Code by Playing a Game" # no_ie: "CodeCombat does not run in Internet Explorer 9 or older. Sorry!" # no_mobile: "CodeCombat wasn't designed for mobile devices and may not work!" # play: "Play" @@ -236,7 +236,7 @@ module.exports = nativeDescription: "suomi", englishDescription: "Finnish", tran # basics_country: "Country" # basics_country_help: "Country you want to work in (or live in now)." # basics_visa: "US Work Status" -# basics_visa_help: "Are you authorized to work in the US, or do you need visa sponsorship?" +# basics_visa_help: "Are you authorized to work in the US, or do you need visa sponsorship? (If you live in Canada or Australia, mark authorized.)" # basics_looking_for: "Looking For" # basics_looking_for_full_time: "Full-time" # basics_looking_for_part_time: "Part-time" @@ -281,7 +281,8 @@ module.exports = nativeDescription: "suomi", englishDescription: "Finnish", tran # education_duration_help: "When?" # education_description: "Description" # education_description_help: "Highlight anything about this educational experience. (140 chars; optional)" -# our_notes: "Our Notes" +# our_notes: "CodeCombat's Notes" +# remarks: "Remarks" # projects: "Projects" # projects_header: "Add 3 projects" # projects_header_2: "Projects (Top 3)" @@ -297,22 +298,37 @@ module.exports = nativeDescription: "suomi", englishDescription: "Finnish", tran # player_code: "Player Code" # employers: -# want_to_hire_our_players: "Hire CodeCombat Players" +# hire_developers_not_credentials: "Hire developers, not credentials." +# get_started: "Get Started" +# already_screened: "We've already technically screened all our candidates" +# filter_further: ", but you can also filter further:" +# filter_visa: "Visa" +# filter_visa_yes: "US Authorized" +# filter_visa_no: "Not Authorized" +# filter_education_top: "Top School" +# filter_education_other: "Other" +# filter_role_web_developer: "Web Developer" +# filter_role_software_developer: "Software Developer" +# filter_role_mobile_developer: "Mobile Developer" +# filter_experience: "Experience" +# filter_experience_senior: "Senior" +# filter_experience_junior: "Junior" +# filter_experience_recent_grad: "Recent Grad" +# filter_experience_student: "College Student" +# filter_results: "results" +# start_hiring: "Start hiring." +# reasons: "Three reasons you should hire through us:" +# everyone_looking: "Everyone here is looking for their next opportunity." +# everyone_looking_blurb: "Forget about 20% LinkedIn InMail response rates. Everyone that we list on this site wants to find their next position and will respond to your request for an introduction." +# weeding: "Sit back; we've done the weeding for you." +# weeding_blurb: "Every player that we list has been screened for technical ability. We also perform phone screens for select candidates and make notes on their profiles to save you time." +# pass_screen: "They will pass your technical screen." +# pass_screen_blurb: "Review each candidate's code before reaching out. One employer found that 5x as many of our devs passed their technical screen than hiring from Hacker News." +# make_hiring_easier: "Make my hiring easier, please." # what: "What is CodeCombat?" # what_blurb: "CodeCombat is a multiplayer browser programming game. Players write code to control their forces in battle against other developers. We support JavaScript, Python, Lua, Clojure, CoffeeScript, and Io." -# who: "Who Are the Players?" -# who_blurb: "CodeCombateers are software developers who enjoy using their programming skills to play games. They range from college seniors at top 20 engineering programs to 20-year industry veterans." -# how: "How Do We Find Developers?" -# how_blurb: "We host competitive tournaments to attract competitive software engieneers. We then use in-house algorithms to identify the best players among the top 5% of tournament winners." -# why: "Why Hire Through Us?" -# why_blurb_1: "We will save you time. Every CodeCombateer we feaure is " -# why_blurb_2: "looking for work" -# why_blurb_3: ", has " -# why_blurb_4: "demonstrated top notch technical skills" -# why_blurb_5: ", and has been " -# why_blurb_6: "personally screened by us" -# why_blurb_7: ". Stop screening and start hiring." -# see_candidates: "Click here to see our candidates" +# cost: "How much do we charge?" +# cost_blurb: "We charge 15% of first year's salary and offer a 100% money back guarantee for 90 days. We don't charge for candidates who are already actively being interviewed at your company." # candidate_name: "Name" # candidate_location: "Location" # candidate_looking_for: "Looking For" @@ -320,6 +336,7 @@ module.exports = nativeDescription: "suomi", englishDescription: "Finnish", tran # candidate_top_skills: "Top Skills" # candidate_years_experience: "Yrs Exp" # candidate_last_updated: "Last Updated" +# candidate_who: "Who" # featured_developers: "Featured Developers" # other_developers: "Other Developers" # inactive_developers: "Inactive Developers" @@ -382,6 +399,8 @@ module.exports = nativeDescription: "suomi", englishDescription: "Finnish", tran # editor_config_keybindings_label: "Key Bindings" # editor_config_keybindings_default: "Default (Ace)" # editor_config_keybindings_description: "Adds additional shortcuts known from the common editors." +# editor_config_livecompletion_label: "Live Autocompletion" +# editor_config_livecompletion_description: "Displays autocomplete suggestions while typing." # editor_config_invisibles_label: "Show Invisibles" # editor_config_invisibles_description: "Displays invisibles such as spaces or tabs." # editor_config_indentguides_label: "Show Indent Guides" @@ -418,6 +437,7 @@ module.exports = nativeDescription: "suomi", englishDescription: "Finnish", tran # tip_impossible: "It always seems impossible until it's done. - Nelson Mandela" # tip_talk_is_cheap: "Talk is cheap. Show me the code. - Linus Torvalds" # tip_first_language: "The most disastrous thing that you can ever learn is your first programming language. - Alan Kay" +# tip_hardware_problem: "Q: How many programmers does it take to change a light bulb? A: None, it's a hardware problem." # time_current: "Now:" # time_total: "Max:" # time_goto: "Go to:" @@ -882,6 +902,8 @@ module.exports = nativeDescription: "suomi", englishDescription: "Finnish", tran # document: "Document" # sprite_sheet: "Sprite Sheet" # candidate_sessions: "Candidate Sessions" +# user_remark: "User Remark" +# versions: "Versions" # delta: # added: "Added" diff --git a/app/locale/fr.coffee b/app/locale/fr.coffee index 45dc5903b..af1a2116d 100644 --- a/app/locale/fr.coffee +++ b/app/locale/fr.coffee @@ -282,6 +282,7 @@ module.exports = nativeDescription: "français", englishDescription: "French", t education_description: "Description" education_description_help: "Mettez en avant ce que vous voulez à propos de votre parcours scolaire. (140 carac.; optionel)" our_notes: "Notes" +# remarks: "Remarks" projects: "Projets" projects_header: "Ajoutez 3 projets" projects_header_2: "Projets (Top 3)" @@ -297,22 +298,37 @@ module.exports = nativeDescription: "français", englishDescription: "French", t # player_code: "Player Code" employers: - want_to_hire_our_players: "Embaucher un Joueur CodeCombat" +# hire_developers_not_credentials: "Hire developers, not credentials." +# get_started: "Get Started" +# already_screened: "We've already technically screened all our candidates" +# filter_further: ", but you can also filter further:" +# filter_visa: "Visa" +# filter_visa_yes: "US Authorized" +# filter_visa_no: "Not Authorized" +# filter_education_top: "Top School" +# filter_education_other: "Other" +# filter_role_web_developer: "Web Developer" +# filter_role_software_developer: "Software Developer" +# filter_role_mobile_developer: "Mobile Developer" +# filter_experience: "Experience" +# filter_experience_senior: "Senior" +# filter_experience_junior: "Junior" +# filter_experience_recent_grad: "Recent Grad" +# filter_experience_student: "College Student" +# filter_results: "results" +# start_hiring: "Start hiring." +# reasons: "Three reasons you should hire through us:" +# everyone_looking: "Everyone here is looking for their next opportunity." +# everyone_looking_blurb: "Forget about 20% LinkedIn InMail response rates. Everyone that we list on this site wants to find their next position and will respond to your request for an introduction." +# weeding: "Sit back; we've done the weeding for you." +# weeding_blurb: "Every player that we list has been screened for technical ability. We also perform phone screens for select candidates and make notes on their profiles to save you time." +# pass_screen: "They will pass your technical screen." +# pass_screen_blurb: "Review each candidate's code before reaching out. One employer found that 5x as many of our devs passed their technical screen than hiring from Hacker News." +# make_hiring_easier: "Make my hiring easier, please." what: "Qu'est-ce que CodeCombat?" what_blurb: "CodeCombat est un jeu de programmation multijoueur par navigateur. Les Joueurs écrivent le code pour contrôler leurs troupes dans des batailles contre d'autres développeurs. Nous prenons en charge JavaScript, Python, Lua, Clojure, CoffeeScript, et Io." - who: "Qui sont les Joueurs ?" - who_blurb: "CodeCombatants sont des développeurs logiciel qui aiment utiliser leurs compétences en programmation pour jouer. Ils sont tout aussi bien des étudiants issus des 20 meilleures écoles d'ingénieurs que des vétérans dans le milieu depuis plus de 20 ans." -# how: "How Do We Find Developers?" -# how_blurb: "We host competitive tournaments to attract competitive software engieneers. We then use in-house algorithms to identify the best players among the top 5% of tournament winners." -# why: "Why Hire Through Us?" -# why_blurb_1: "We will save you time. Every CodeCombateer we feaure is " -# why_blurb_2: "looking for work" -# why_blurb_3: ", has " -# why_blurb_4: "demonstrated top notch technical skills" -# why_blurb_5: ", and has been " -# why_blurb_6: "personally screened by us" -# why_blurb_7: ". Stop screening and start hiring." -# see_candidates: "Click here to see our candidates" +# cost: "How much do we charge?" +# cost_blurb: "We charge 15% of first year's salary and offer a 100% money back guarantee for 90 days. We don't charge for candidates who are already actively being interviewed at your company." candidate_name: "Nom" candidate_location: "Localisation" candidate_looking_for: "Poste pour" @@ -320,6 +336,7 @@ module.exports = nativeDescription: "français", englishDescription: "French", t candidate_top_skills: "Talents/Aptitudes" candidate_years_experience: "Années d'expérience" candidate_last_updated: "Dernière mise à jour" +# candidate_who: "Who" # featured_developers: "Featured Developers" # other_developers: "Other Developers" # inactive_developers: "Inactive Developers" @@ -382,6 +399,8 @@ module.exports = nativeDescription: "français", englishDescription: "French", t editor_config_keybindings_label: "Raccourcis clavier" editor_config_keybindings_default: "Par défault (Ace)" editor_config_keybindings_description: "Ajouter de nouveaux raccourcis connus depuis l'éditeur commun." +# editor_config_livecompletion_label: "Live Autocompletion" +# editor_config_livecompletion_description: "Displays autocomplete suggestions while typing." editor_config_invisibles_label: "Afficher les caractères non-imprimables" editor_config_invisibles_description: "Permet d'afficher les caractères comme les espaces et les tabulations." editor_config_indentguides_label: "Montrer les indentations" @@ -418,6 +437,7 @@ module.exports = nativeDescription: "français", englishDescription: "French", t # tip_impossible: "It always seems impossible until it's done. - Nelson Mandela" # tip_talk_is_cheap: "Talk is cheap. Show me the code. - Linus Torvalds" # tip_first_language: "The most disastrous thing that you can ever learn is your first programming language. - Alan Kay" +# tip_hardware_problem: "Q: How many programmers does it take to change a light bulb? A: None, it's a hardware problem." time_current: "Maintenant:" time_total: "Max:" time_goto: "Allez a:" @@ -882,6 +902,8 @@ module.exports = nativeDescription: "français", englishDescription: "French", t document: "Document" # sprite_sheet: "Sprite Sheet" # candidate_sessions: "Candidate Sessions" +# user_remark: "User Remark" +# versions: "Versions" delta: added: "Ajouté" diff --git a/app/locale/he.coffee b/app/locale/he.coffee index e1a583ecd..e512e32fc 100644 --- a/app/locale/he.coffee +++ b/app/locale/he.coffee @@ -236,7 +236,7 @@ module.exports = nativeDescription: "עברית", englishDescription: "Hebrew", # basics_country: "Country" # basics_country_help: "Country you want to work in (or live in now)." # basics_visa: "US Work Status" -# basics_visa_help: "Are you authorized to work in the US, or do you need visa sponsorship?" +# basics_visa_help: "Are you authorized to work in the US, or do you need visa sponsorship? (If you live in Canada or Australia, mark authorized.)" # basics_looking_for: "Looking For" # basics_looking_for_full_time: "Full-time" # basics_looking_for_part_time: "Part-time" @@ -281,7 +281,8 @@ module.exports = nativeDescription: "עברית", englishDescription: "Hebrew", # education_duration_help: "When?" # education_description: "Description" # education_description_help: "Highlight anything about this educational experience. (140 chars; optional)" -# our_notes: "Our Notes" +# our_notes: "CodeCombat's Notes" +# remarks: "Remarks" # projects: "Projects" # projects_header: "Add 3 projects" # projects_header_2: "Projects (Top 3)" @@ -297,22 +298,37 @@ module.exports = nativeDescription: "עברית", englishDescription: "Hebrew", # player_code: "Player Code" # employers: -# want_to_hire_our_players: "Hire CodeCombat Players" +# hire_developers_not_credentials: "Hire developers, not credentials." +# get_started: "Get Started" +# already_screened: "We've already technically screened all our candidates" +# filter_further: ", but you can also filter further:" +# filter_visa: "Visa" +# filter_visa_yes: "US Authorized" +# filter_visa_no: "Not Authorized" +# filter_education_top: "Top School" +# filter_education_other: "Other" +# filter_role_web_developer: "Web Developer" +# filter_role_software_developer: "Software Developer" +# filter_role_mobile_developer: "Mobile Developer" +# filter_experience: "Experience" +# filter_experience_senior: "Senior" +# filter_experience_junior: "Junior" +# filter_experience_recent_grad: "Recent Grad" +# filter_experience_student: "College Student" +# filter_results: "results" +# start_hiring: "Start hiring." +# reasons: "Three reasons you should hire through us:" +# everyone_looking: "Everyone here is looking for their next opportunity." +# everyone_looking_blurb: "Forget about 20% LinkedIn InMail response rates. Everyone that we list on this site wants to find their next position and will respond to your request for an introduction." +# weeding: "Sit back; we've done the weeding for you." +# weeding_blurb: "Every player that we list has been screened for technical ability. We also perform phone screens for select candidates and make notes on their profiles to save you time." +# pass_screen: "They will pass your technical screen." +# pass_screen_blurb: "Review each candidate's code before reaching out. One employer found that 5x as many of our devs passed their technical screen than hiring from Hacker News." +# make_hiring_easier: "Make my hiring easier, please." # what: "What is CodeCombat?" # what_blurb: "CodeCombat is a multiplayer browser programming game. Players write code to control their forces in battle against other developers. We support JavaScript, Python, Lua, Clojure, CoffeeScript, and Io." -# who: "Who Are the Players?" -# who_blurb: "CodeCombateers are software developers who enjoy using their programming skills to play games. They range from college seniors at top 20 engineering programs to 20-year industry veterans." -# how: "How Do We Find Developers?" -# how_blurb: "We host competitive tournaments to attract competitive software engieneers. We then use in-house algorithms to identify the best players among the top 5% of tournament winners." -# why: "Why Hire Through Us?" -# why_blurb_1: "We will save you time. Every CodeCombateer we feaure is " -# why_blurb_2: "looking for work" -# why_blurb_3: ", has " -# why_blurb_4: "demonstrated top notch technical skills" -# why_blurb_5: ", and has been " -# why_blurb_6: "personally screened by us" -# why_blurb_7: ". Stop screening and start hiring." -# see_candidates: "Click here to see our candidates" +# cost: "How much do we charge?" +# cost_blurb: "We charge 15% of first year's salary and offer a 100% money back guarantee for 90 days. We don't charge for candidates who are already actively being interviewed at your company." # candidate_name: "Name" # candidate_location: "Location" # candidate_looking_for: "Looking For" @@ -320,6 +336,7 @@ module.exports = nativeDescription: "עברית", englishDescription: "Hebrew", # candidate_top_skills: "Top Skills" # candidate_years_experience: "Yrs Exp" # candidate_last_updated: "Last Updated" +# candidate_who: "Who" # featured_developers: "Featured Developers" # other_developers: "Other Developers" # inactive_developers: "Inactive Developers" @@ -382,6 +399,8 @@ module.exports = nativeDescription: "עברית", englishDescription: "Hebrew", # editor_config_keybindings_label: "Key Bindings" # editor_config_keybindings_default: "Default (Ace)" # editor_config_keybindings_description: "Adds additional shortcuts known from the common editors." +# editor_config_livecompletion_label: "Live Autocompletion" +# editor_config_livecompletion_description: "Displays autocomplete suggestions while typing." # editor_config_invisibles_label: "Show Invisibles" # editor_config_invisibles_description: "Displays invisibles such as spaces or tabs." # editor_config_indentguides_label: "Show Indent Guides" @@ -418,6 +437,7 @@ module.exports = nativeDescription: "עברית", englishDescription: "Hebrew", # tip_impossible: "It always seems impossible until it's done. - Nelson Mandela" # tip_talk_is_cheap: "Talk is cheap. Show me the code. - Linus Torvalds" # tip_first_language: "The most disastrous thing that you can ever learn is your first programming language. - Alan Kay" +# tip_hardware_problem: "Q: How many programmers does it take to change a light bulb? A: None, it's a hardware problem." # time_current: "Now:" # time_total: "Max:" # time_goto: "Go to:" @@ -882,6 +902,8 @@ module.exports = nativeDescription: "עברית", englishDescription: "Hebrew", # document: "Document" # sprite_sheet: "Sprite Sheet" # candidate_sessions: "Candidate Sessions" +# user_remark: "User Remark" +# versions: "Versions" # delta: # added: "Added" diff --git a/app/locale/hi.coffee b/app/locale/hi.coffee index 18e9e5684..57fc1b082 100644 --- a/app/locale/hi.coffee +++ b/app/locale/hi.coffee @@ -90,7 +90,7 @@ module.exports = nativeDescription: "मानक हिन्दी", englishDe # required: "You need to log in before you can go that way." # home: -# slogan: "Learn to Code JavaScript by Playing a Game" +# slogan: "Learn to Code by Playing a Game" # no_ie: "CodeCombat does not run in Internet Explorer 9 or older. Sorry!" # no_mobile: "CodeCombat wasn't designed for mobile devices and may not work!" # play: "Play" @@ -236,7 +236,7 @@ module.exports = nativeDescription: "मानक हिन्दी", englishDe # basics_country: "Country" # basics_country_help: "Country you want to work in (or live in now)." # basics_visa: "US Work Status" -# basics_visa_help: "Are you authorized to work in the US, or do you need visa sponsorship?" +# basics_visa_help: "Are you authorized to work in the US, or do you need visa sponsorship? (If you live in Canada or Australia, mark authorized.)" # basics_looking_for: "Looking For" # basics_looking_for_full_time: "Full-time" # basics_looking_for_part_time: "Part-time" @@ -281,7 +281,8 @@ module.exports = nativeDescription: "मानक हिन्दी", englishDe # education_duration_help: "When?" # education_description: "Description" # education_description_help: "Highlight anything about this educational experience. (140 chars; optional)" -# our_notes: "Our Notes" +# our_notes: "CodeCombat's Notes" +# remarks: "Remarks" # projects: "Projects" # projects_header: "Add 3 projects" # projects_header_2: "Projects (Top 3)" @@ -297,22 +298,37 @@ module.exports = nativeDescription: "मानक हिन्दी", englishDe # player_code: "Player Code" # employers: -# want_to_hire_our_players: "Hire CodeCombat Players" +# hire_developers_not_credentials: "Hire developers, not credentials." +# get_started: "Get Started" +# already_screened: "We've already technically screened all our candidates" +# filter_further: ", but you can also filter further:" +# filter_visa: "Visa" +# filter_visa_yes: "US Authorized" +# filter_visa_no: "Not Authorized" +# filter_education_top: "Top School" +# filter_education_other: "Other" +# filter_role_web_developer: "Web Developer" +# filter_role_software_developer: "Software Developer" +# filter_role_mobile_developer: "Mobile Developer" +# filter_experience: "Experience" +# filter_experience_senior: "Senior" +# filter_experience_junior: "Junior" +# filter_experience_recent_grad: "Recent Grad" +# filter_experience_student: "College Student" +# filter_results: "results" +# start_hiring: "Start hiring." +# reasons: "Three reasons you should hire through us:" +# everyone_looking: "Everyone here is looking for their next opportunity." +# everyone_looking_blurb: "Forget about 20% LinkedIn InMail response rates. Everyone that we list on this site wants to find their next position and will respond to your request for an introduction." +# weeding: "Sit back; we've done the weeding for you." +# weeding_blurb: "Every player that we list has been screened for technical ability. We also perform phone screens for select candidates and make notes on their profiles to save you time." +# pass_screen: "They will pass your technical screen." +# pass_screen_blurb: "Review each candidate's code before reaching out. One employer found that 5x as many of our devs passed their technical screen than hiring from Hacker News." +# make_hiring_easier: "Make my hiring easier, please." # what: "What is CodeCombat?" # what_blurb: "CodeCombat is a multiplayer browser programming game. Players write code to control their forces in battle against other developers. We support JavaScript, Python, Lua, Clojure, CoffeeScript, and Io." -# who: "Who Are the Players?" -# who_blurb: "CodeCombateers are software developers who enjoy using their programming skills to play games. They range from college seniors at top 20 engineering programs to 20-year industry veterans." -# how: "How Do We Find Developers?" -# how_blurb: "We host competitive tournaments to attract competitive software engieneers. We then use in-house algorithms to identify the best players among the top 5% of tournament winners." -# why: "Why Hire Through Us?" -# why_blurb_1: "We will save you time. Every CodeCombateer we feaure is " -# why_blurb_2: "looking for work" -# why_blurb_3: ", has " -# why_blurb_4: "demonstrated top notch technical skills" -# why_blurb_5: ", and has been " -# why_blurb_6: "personally screened by us" -# why_blurb_7: ". Stop screening and start hiring." -# see_candidates: "Click here to see our candidates" +# cost: "How much do we charge?" +# cost_blurb: "We charge 15% of first year's salary and offer a 100% money back guarantee for 90 days. We don't charge for candidates who are already actively being interviewed at your company." # candidate_name: "Name" # candidate_location: "Location" # candidate_looking_for: "Looking For" @@ -320,6 +336,7 @@ module.exports = nativeDescription: "मानक हिन्दी", englishDe # candidate_top_skills: "Top Skills" # candidate_years_experience: "Yrs Exp" # candidate_last_updated: "Last Updated" +# candidate_who: "Who" # featured_developers: "Featured Developers" # other_developers: "Other Developers" # inactive_developers: "Inactive Developers" @@ -382,6 +399,8 @@ module.exports = nativeDescription: "मानक हिन्दी", englishDe # editor_config_keybindings_label: "Key Bindings" # editor_config_keybindings_default: "Default (Ace)" # editor_config_keybindings_description: "Adds additional shortcuts known from the common editors." +# editor_config_livecompletion_label: "Live Autocompletion" +# editor_config_livecompletion_description: "Displays autocomplete suggestions while typing." # editor_config_invisibles_label: "Show Invisibles" # editor_config_invisibles_description: "Displays invisibles such as spaces or tabs." # editor_config_indentguides_label: "Show Indent Guides" @@ -418,6 +437,7 @@ module.exports = nativeDescription: "मानक हिन्दी", englishDe # tip_impossible: "It always seems impossible until it's done. - Nelson Mandela" # tip_talk_is_cheap: "Talk is cheap. Show me the code. - Linus Torvalds" # tip_first_language: "The most disastrous thing that you can ever learn is your first programming language. - Alan Kay" +# tip_hardware_problem: "Q: How many programmers does it take to change a light bulb? A: None, it's a hardware problem." # time_current: "Now:" # time_total: "Max:" # time_goto: "Go to:" @@ -882,6 +902,8 @@ module.exports = nativeDescription: "मानक हिन्दी", englishDe # document: "Document" # sprite_sheet: "Sprite Sheet" # candidate_sessions: "Candidate Sessions" +# user_remark: "User Remark" +# versions: "Versions" # delta: # added: "Added" diff --git a/app/locale/hu.coffee b/app/locale/hu.coffee index f84949111..84c761e11 100644 --- a/app/locale/hu.coffee +++ b/app/locale/hu.coffee @@ -236,7 +236,7 @@ module.exports = nativeDescription: "magyar", englishDescription: "Hungarian", t basics_country: "Ország" # basics_country_help: "Country you want to work in (or live in now)." # basics_visa: "US Work Status" -# basics_visa_help: "Are you authorized to work in the US, or do you need visa sponsorship?" +# basics_visa_help: "Are you authorized to work in the US, or do you need visa sponsorship? (If you live in Canada or Australia, mark authorized.)" # basics_looking_for: "Looking For" basics_looking_for_full_time: "Teljes munkaidőben" basics_looking_for_part_time: "Részmunkaidőben" @@ -281,7 +281,8 @@ module.exports = nativeDescription: "magyar", englishDescription: "Hungarian", t # education_duration_help: "When?" # education_description: "Description" # education_description_help: "Highlight anything about this educational experience. (140 chars; optional)" -# our_notes: "Our Notes" +# our_notes: "CodeCombat's Notes" +# remarks: "Remarks" projects: "Projektek" # projects_header: "Add 3 projects" # projects_header_2: "Projects (Top 3)" @@ -297,22 +298,37 @@ module.exports = nativeDescription: "magyar", englishDescription: "Hungarian", t # player_code: "Player Code" employers: - want_to_hire_our_players: "Akarsz szakértő CodeCombat játékosokat alkalmazni?" +# hire_developers_not_credentials: "Hire developers, not credentials." +# get_started: "Get Started" +# already_screened: "We've already technically screened all our candidates" +# filter_further: ", but you can also filter further:" +# filter_visa: "Visa" +# filter_visa_yes: "US Authorized" +# filter_visa_no: "Not Authorized" +# filter_education_top: "Top School" +# filter_education_other: "Other" +# filter_role_web_developer: "Web Developer" +# filter_role_software_developer: "Software Developer" +# filter_role_mobile_developer: "Mobile Developer" +# filter_experience: "Experience" +# filter_experience_senior: "Senior" +# filter_experience_junior: "Junior" +# filter_experience_recent_grad: "Recent Grad" +# filter_experience_student: "College Student" +# filter_results: "results" +# start_hiring: "Start hiring." +# reasons: "Three reasons you should hire through us:" +# everyone_looking: "Everyone here is looking for their next opportunity." +# everyone_looking_blurb: "Forget about 20% LinkedIn InMail response rates. Everyone that we list on this site wants to find their next position and will respond to your request for an introduction." +# weeding: "Sit back; we've done the weeding for you." +# weeding_blurb: "Every player that we list has been screened for technical ability. We also perform phone screens for select candidates and make notes on their profiles to save you time." +# pass_screen: "They will pass your technical screen." +# pass_screen_blurb: "Review each candidate's code before reaching out. One employer found that 5x as many of our devs passed their technical screen than hiring from Hacker News." +# make_hiring_easier: "Make my hiring easier, please." # what: "What is CodeCombat?" # what_blurb: "CodeCombat is a multiplayer browser programming game. Players write code to control their forces in battle against other developers. We support JavaScript, Python, Lua, Clojure, CoffeeScript, and Io." -# who: "Who Are the Players?" -# who_blurb: "CodeCombateers are software developers who enjoy using their programming skills to play games. They range from college seniors at top 20 engineering programs to 20-year industry veterans." -# how: "How Do We Find Developers?" -# how_blurb: "We host competitive tournaments to attract competitive software engieneers. We then use in-house algorithms to identify the best players among the top 5% of tournament winners." -# why: "Why Hire Through Us?" -# why_blurb_1: "We will save you time. Every CodeCombateer we feaure is " -# why_blurb_2: "looking for work" -# why_blurb_3: ", has " -# why_blurb_4: "demonstrated top notch technical skills" -# why_blurb_5: ", and has been " -# why_blurb_6: "personally screened by us" -# why_blurb_7: ". Stop screening and start hiring." -# see_candidates: "Click here to see our candidates" +# cost: "How much do we charge?" +# cost_blurb: "We charge 15% of first year's salary and offer a 100% money back guarantee for 90 days. We don't charge for candidates who are already actively being interviewed at your company." candidate_name: "Név" # candidate_location: "Location" candidate_looking_for: "Keres" @@ -320,6 +336,7 @@ module.exports = nativeDescription: "magyar", englishDescription: "Hungarian", t # candidate_top_skills: "Top Skills" # candidate_years_experience: "Yrs Exp" candidate_last_updated: "Legutóbb napra-készre hozva" +# candidate_who: "Who" # featured_developers: "Featured Developers" # other_developers: "Other Developers" # inactive_developers: "Inactive Developers" @@ -382,6 +399,8 @@ module.exports = nativeDescription: "magyar", englishDescription: "Hungarian", t # editor_config_keybindings_label: "Key Bindings" # editor_config_keybindings_default: "Default (Ace)" # editor_config_keybindings_description: "Adds additional shortcuts known from the common editors." +# editor_config_livecompletion_label: "Live Autocompletion" +# editor_config_livecompletion_description: "Displays autocomplete suggestions while typing." # editor_config_invisibles_label: "Show Invisibles" # editor_config_invisibles_description: "Displays invisibles such as spaces or tabs." # editor_config_indentguides_label: "Show Indent Guides" @@ -418,6 +437,7 @@ module.exports = nativeDescription: "magyar", englishDescription: "Hungarian", t tip_impossible: "Mindig lehetetlennek tűnik, amíg meg nem tetted. - Nelson Mandela" tip_talk_is_cheap: "Dumálni könnyű. Mutasd a kódot!. - Linus Torvalds" # tip_first_language: "The most disastrous thing that you can ever learn is your first programming language. - Alan Kay" +# tip_hardware_problem: "Q: How many programmers does it take to change a light bulb? A: None, it's a hardware problem." time_current: "Most:" # time_total: "Max:" # time_goto: "Go to:" @@ -882,6 +902,8 @@ module.exports = nativeDescription: "magyar", englishDescription: "Hungarian", t # document: "Document" # sprite_sheet: "Sprite Sheet" # candidate_sessions: "Candidate Sessions" +# user_remark: "User Remark" +# versions: "Versions" # delta: # added: "Added" diff --git a/app/locale/id.coffee b/app/locale/id.coffee index 222406a1b..6951b4b67 100644 --- a/app/locale/id.coffee +++ b/app/locale/id.coffee @@ -90,7 +90,7 @@ module.exports = nativeDescription: "Bahasa Indonesia", englishDescription: "Ind # required: "You need to log in before you can go that way." # home: -# slogan: "Learn to Code JavaScript by Playing a Game" +# slogan: "Learn to Code by Playing a Game" # no_ie: "CodeCombat does not run in Internet Explorer 9 or older. Sorry!" # no_mobile: "CodeCombat wasn't designed for mobile devices and may not work!" # play: "Play" @@ -236,7 +236,7 @@ module.exports = nativeDescription: "Bahasa Indonesia", englishDescription: "Ind # basics_country: "Country" # basics_country_help: "Country you want to work in (or live in now)." # basics_visa: "US Work Status" -# basics_visa_help: "Are you authorized to work in the US, or do you need visa sponsorship?" +# basics_visa_help: "Are you authorized to work in the US, or do you need visa sponsorship? (If you live in Canada or Australia, mark authorized.)" # basics_looking_for: "Looking For" # basics_looking_for_full_time: "Full-time" # basics_looking_for_part_time: "Part-time" @@ -281,7 +281,8 @@ module.exports = nativeDescription: "Bahasa Indonesia", englishDescription: "Ind # education_duration_help: "When?" # education_description: "Description" # education_description_help: "Highlight anything about this educational experience. (140 chars; optional)" -# our_notes: "Our Notes" +# our_notes: "CodeCombat's Notes" +# remarks: "Remarks" # projects: "Projects" # projects_header: "Add 3 projects" # projects_header_2: "Projects (Top 3)" @@ -297,22 +298,37 @@ module.exports = nativeDescription: "Bahasa Indonesia", englishDescription: "Ind # player_code: "Player Code" # employers: -# want_to_hire_our_players: "Hire CodeCombat Players" +# hire_developers_not_credentials: "Hire developers, not credentials." +# get_started: "Get Started" +# already_screened: "We've already technically screened all our candidates" +# filter_further: ", but you can also filter further:" +# filter_visa: "Visa" +# filter_visa_yes: "US Authorized" +# filter_visa_no: "Not Authorized" +# filter_education_top: "Top School" +# filter_education_other: "Other" +# filter_role_web_developer: "Web Developer" +# filter_role_software_developer: "Software Developer" +# filter_role_mobile_developer: "Mobile Developer" +# filter_experience: "Experience" +# filter_experience_senior: "Senior" +# filter_experience_junior: "Junior" +# filter_experience_recent_grad: "Recent Grad" +# filter_experience_student: "College Student" +# filter_results: "results" +# start_hiring: "Start hiring." +# reasons: "Three reasons you should hire through us:" +# everyone_looking: "Everyone here is looking for their next opportunity." +# everyone_looking_blurb: "Forget about 20% LinkedIn InMail response rates. Everyone that we list on this site wants to find their next position and will respond to your request for an introduction." +# weeding: "Sit back; we've done the weeding for you." +# weeding_blurb: "Every player that we list has been screened for technical ability. We also perform phone screens for select candidates and make notes on their profiles to save you time." +# pass_screen: "They will pass your technical screen." +# pass_screen_blurb: "Review each candidate's code before reaching out. One employer found that 5x as many of our devs passed their technical screen than hiring from Hacker News." +# make_hiring_easier: "Make my hiring easier, please." # what: "What is CodeCombat?" # what_blurb: "CodeCombat is a multiplayer browser programming game. Players write code to control their forces in battle against other developers. We support JavaScript, Python, Lua, Clojure, CoffeeScript, and Io." -# who: "Who Are the Players?" -# who_blurb: "CodeCombateers are software developers who enjoy using their programming skills to play games. They range from college seniors at top 20 engineering programs to 20-year industry veterans." -# how: "How Do We Find Developers?" -# how_blurb: "We host competitive tournaments to attract competitive software engieneers. We then use in-house algorithms to identify the best players among the top 5% of tournament winners." -# why: "Why Hire Through Us?" -# why_blurb_1: "We will save you time. Every CodeCombateer we feaure is " -# why_blurb_2: "looking for work" -# why_blurb_3: ", has " -# why_blurb_4: "demonstrated top notch technical skills" -# why_blurb_5: ", and has been " -# why_blurb_6: "personally screened by us" -# why_blurb_7: ". Stop screening and start hiring." -# see_candidates: "Click here to see our candidates" +# cost: "How much do we charge?" +# cost_blurb: "We charge 15% of first year's salary and offer a 100% money back guarantee for 90 days. We don't charge for candidates who are already actively being interviewed at your company." # candidate_name: "Name" # candidate_location: "Location" # candidate_looking_for: "Looking For" @@ -320,6 +336,7 @@ module.exports = nativeDescription: "Bahasa Indonesia", englishDescription: "Ind # candidate_top_skills: "Top Skills" # candidate_years_experience: "Yrs Exp" # candidate_last_updated: "Last Updated" +# candidate_who: "Who" # featured_developers: "Featured Developers" # other_developers: "Other Developers" # inactive_developers: "Inactive Developers" @@ -382,6 +399,8 @@ module.exports = nativeDescription: "Bahasa Indonesia", englishDescription: "Ind # editor_config_keybindings_label: "Key Bindings" # editor_config_keybindings_default: "Default (Ace)" # editor_config_keybindings_description: "Adds additional shortcuts known from the common editors." +# editor_config_livecompletion_label: "Live Autocompletion" +# editor_config_livecompletion_description: "Displays autocomplete suggestions while typing." # editor_config_invisibles_label: "Show Invisibles" # editor_config_invisibles_description: "Displays invisibles such as spaces or tabs." # editor_config_indentguides_label: "Show Indent Guides" @@ -418,6 +437,7 @@ module.exports = nativeDescription: "Bahasa Indonesia", englishDescription: "Ind # tip_impossible: "It always seems impossible until it's done. - Nelson Mandela" # tip_talk_is_cheap: "Talk is cheap. Show me the code. - Linus Torvalds" # tip_first_language: "The most disastrous thing that you can ever learn is your first programming language. - Alan Kay" +# tip_hardware_problem: "Q: How many programmers does it take to change a light bulb? A: None, it's a hardware problem." # time_current: "Now:" # time_total: "Max:" # time_goto: "Go to:" @@ -882,6 +902,8 @@ module.exports = nativeDescription: "Bahasa Indonesia", englishDescription: "Ind # document: "Document" # sprite_sheet: "Sprite Sheet" # candidate_sessions: "Candidate Sessions" +# user_remark: "User Remark" +# versions: "Versions" # delta: # added: "Added" diff --git a/app/locale/it.coffee b/app/locale/it.coffee index 35e60ccfb..783e6c297 100644 --- a/app/locale/it.coffee +++ b/app/locale/it.coffee @@ -236,7 +236,7 @@ module.exports = nativeDescription: "Italiano", englishDescription: "Italian", t # basics_country: "Country" # basics_country_help: "Country you want to work in (or live in now)." # basics_visa: "US Work Status" -# basics_visa_help: "Are you authorized to work in the US, or do you need visa sponsorship?" +# basics_visa_help: "Are you authorized to work in the US, or do you need visa sponsorship? (If you live in Canada or Australia, mark authorized.)" # basics_looking_for: "Looking For" # basics_looking_for_full_time: "Full-time" # basics_looking_for_part_time: "Part-time" @@ -281,7 +281,8 @@ module.exports = nativeDescription: "Italiano", englishDescription: "Italian", t # education_duration_help: "When?" # education_description: "Description" # education_description_help: "Highlight anything about this educational experience. (140 chars; optional)" -# our_notes: "Our Notes" +# our_notes: "CodeCombat's Notes" +# remarks: "Remarks" # projects: "Projects" # projects_header: "Add 3 projects" # projects_header_2: "Projects (Top 3)" @@ -297,22 +298,37 @@ module.exports = nativeDescription: "Italiano", englishDescription: "Italian", t # player_code: "Player Code" # employers: -# want_to_hire_our_players: "Hire CodeCombat Players" +# hire_developers_not_credentials: "Hire developers, not credentials." +# get_started: "Get Started" +# already_screened: "We've already technically screened all our candidates" +# filter_further: ", but you can also filter further:" +# filter_visa: "Visa" +# filter_visa_yes: "US Authorized" +# filter_visa_no: "Not Authorized" +# filter_education_top: "Top School" +# filter_education_other: "Other" +# filter_role_web_developer: "Web Developer" +# filter_role_software_developer: "Software Developer" +# filter_role_mobile_developer: "Mobile Developer" +# filter_experience: "Experience" +# filter_experience_senior: "Senior" +# filter_experience_junior: "Junior" +# filter_experience_recent_grad: "Recent Grad" +# filter_experience_student: "College Student" +# filter_results: "results" +# start_hiring: "Start hiring." +# reasons: "Three reasons you should hire through us:" +# everyone_looking: "Everyone here is looking for their next opportunity." +# everyone_looking_blurb: "Forget about 20% LinkedIn InMail response rates. Everyone that we list on this site wants to find their next position and will respond to your request for an introduction." +# weeding: "Sit back; we've done the weeding for you." +# weeding_blurb: "Every player that we list has been screened for technical ability. We also perform phone screens for select candidates and make notes on their profiles to save you time." +# pass_screen: "They will pass your technical screen." +# pass_screen_blurb: "Review each candidate's code before reaching out. One employer found that 5x as many of our devs passed their technical screen than hiring from Hacker News." +# make_hiring_easier: "Make my hiring easier, please." # what: "What is CodeCombat?" # what_blurb: "CodeCombat is a multiplayer browser programming game. Players write code to control their forces in battle against other developers. We support JavaScript, Python, Lua, Clojure, CoffeeScript, and Io." -# who: "Who Are the Players?" -# who_blurb: "CodeCombateers are software developers who enjoy using their programming skills to play games. They range from college seniors at top 20 engineering programs to 20-year industry veterans." -# how: "How Do We Find Developers?" -# how_blurb: "We host competitive tournaments to attract competitive software engieneers. We then use in-house algorithms to identify the best players among the top 5% of tournament winners." -# why: "Why Hire Through Us?" -# why_blurb_1: "We will save you time. Every CodeCombateer we feaure is " -# why_blurb_2: "looking for work" -# why_blurb_3: ", has " -# why_blurb_4: "demonstrated top notch technical skills" -# why_blurb_5: ", and has been " -# why_blurb_6: "personally screened by us" -# why_blurb_7: ". Stop screening and start hiring." -# see_candidates: "Click here to see our candidates" +# cost: "How much do we charge?" +# cost_blurb: "We charge 15% of first year's salary and offer a 100% money back guarantee for 90 days. We don't charge for candidates who are already actively being interviewed at your company." # candidate_name: "Name" # candidate_location: "Location" # candidate_looking_for: "Looking For" @@ -320,6 +336,7 @@ module.exports = nativeDescription: "Italiano", englishDescription: "Italian", t # candidate_top_skills: "Top Skills" # candidate_years_experience: "Yrs Exp" # candidate_last_updated: "Last Updated" +# candidate_who: "Who" # featured_developers: "Featured Developers" # other_developers: "Other Developers" # inactive_developers: "Inactive Developers" @@ -382,6 +399,8 @@ module.exports = nativeDescription: "Italiano", englishDescription: "Italian", t # editor_config_keybindings_label: "Key Bindings" # editor_config_keybindings_default: "Default (Ace)" # editor_config_keybindings_description: "Adds additional shortcuts known from the common editors." +# editor_config_livecompletion_label: "Live Autocompletion" +# editor_config_livecompletion_description: "Displays autocomplete suggestions while typing." # editor_config_invisibles_label: "Show Invisibles" # editor_config_invisibles_description: "Displays invisibles such as spaces or tabs." # editor_config_indentguides_label: "Show Indent Guides" @@ -418,6 +437,7 @@ module.exports = nativeDescription: "Italiano", englishDescription: "Italian", t # tip_impossible: "It always seems impossible until it's done. - Nelson Mandela" # tip_talk_is_cheap: "Talk is cheap. Show me the code. - Linus Torvalds" # tip_first_language: "The most disastrous thing that you can ever learn is your first programming language. - Alan Kay" +# tip_hardware_problem: "Q: How many programmers does it take to change a light bulb? A: None, it's a hardware problem." # time_current: "Now:" # time_total: "Max:" # time_goto: "Go to:" @@ -882,6 +902,8 @@ module.exports = nativeDescription: "Italiano", englishDescription: "Italian", t # document: "Document" # sprite_sheet: "Sprite Sheet" # candidate_sessions: "Candidate Sessions" +# user_remark: "User Remark" +# versions: "Versions" # delta: # added: "Added" diff --git a/app/locale/ja.coffee b/app/locale/ja.coffee index 8f19ae524..b4a088cb0 100644 --- a/app/locale/ja.coffee +++ b/app/locale/ja.coffee @@ -236,7 +236,7 @@ module.exports = nativeDescription: "日本語", englishDescription: "Japanese", # basics_country: "Country" # basics_country_help: "Country you want to work in (or live in now)." # basics_visa: "US Work Status" -# basics_visa_help: "Are you authorized to work in the US, or do you need visa sponsorship?" +# basics_visa_help: "Are you authorized to work in the US, or do you need visa sponsorship? (If you live in Canada or Australia, mark authorized.)" # basics_looking_for: "Looking For" # basics_looking_for_full_time: "Full-time" # basics_looking_for_part_time: "Part-time" @@ -281,7 +281,8 @@ module.exports = nativeDescription: "日本語", englishDescription: "Japanese", # education_duration_help: "When?" # education_description: "Description" # education_description_help: "Highlight anything about this educational experience. (140 chars; optional)" -# our_notes: "Our Notes" +# our_notes: "CodeCombat's Notes" +# remarks: "Remarks" # projects: "Projects" # projects_header: "Add 3 projects" # projects_header_2: "Projects (Top 3)" @@ -297,22 +298,37 @@ module.exports = nativeDescription: "日本語", englishDescription: "Japanese", # player_code: "Player Code" employers: - want_to_hire_our_players: "CodeCombatのエキスパートプレイヤーをお探しですか?" +# hire_developers_not_credentials: "Hire developers, not credentials." +# get_started: "Get Started" +# already_screened: "We've already technically screened all our candidates" +# filter_further: ", but you can also filter further:" +# filter_visa: "Visa" +# filter_visa_yes: "US Authorized" +# filter_visa_no: "Not Authorized" +# filter_education_top: "Top School" +# filter_education_other: "Other" +# filter_role_web_developer: "Web Developer" +# filter_role_software_developer: "Software Developer" +# filter_role_mobile_developer: "Mobile Developer" +# filter_experience: "Experience" +# filter_experience_senior: "Senior" +# filter_experience_junior: "Junior" +# filter_experience_recent_grad: "Recent Grad" +# filter_experience_student: "College Student" +# filter_results: "results" +# start_hiring: "Start hiring." +# reasons: "Three reasons you should hire through us:" +# everyone_looking: "Everyone here is looking for their next opportunity." +# everyone_looking_blurb: "Forget about 20% LinkedIn InMail response rates. Everyone that we list on this site wants to find their next position and will respond to your request for an introduction." +# weeding: "Sit back; we've done the weeding for you." +# weeding_blurb: "Every player that we list has been screened for technical ability. We also perform phone screens for select candidates and make notes on their profiles to save you time." +# pass_screen: "They will pass your technical screen." +# pass_screen_blurb: "Review each candidate's code before reaching out. One employer found that 5x as many of our devs passed their technical screen than hiring from Hacker News." +# make_hiring_easier: "Make my hiring easier, please." # what: "What is CodeCombat?" # what_blurb: "CodeCombat is a multiplayer browser programming game. Players write code to control their forces in battle against other developers. We support JavaScript, Python, Lua, Clojure, CoffeeScript, and Io." -# who: "Who Are the Players?" -# who_blurb: "CodeCombateers are software developers who enjoy using their programming skills to play games. They range from college seniors at top 20 engineering programs to 20-year industry veterans." -# how: "How Do We Find Developers?" -# how_blurb: "We host competitive tournaments to attract competitive software engieneers. We then use in-house algorithms to identify the best players among the top 5% of tournament winners." -# why: "Why Hire Through Us?" -# why_blurb_1: "We will save you time. Every CodeCombateer we feaure is " -# why_blurb_2: "looking for work" -# why_blurb_3: ", has " -# why_blurb_4: "demonstrated top notch technical skills" -# why_blurb_5: ", and has been " -# why_blurb_6: "personally screened by us" -# why_blurb_7: ". Stop screening and start hiring." -# see_candidates: "Click here to see our candidates" +# cost: "How much do we charge?" +# cost_blurb: "We charge 15% of first year's salary and offer a 100% money back guarantee for 90 days. We don't charge for candidates who are already actively being interviewed at your company." candidate_name: "名前" candidate_location: "勤務地" candidate_looking_for: "希望" @@ -320,6 +336,7 @@ module.exports = nativeDescription: "日本語", englishDescription: "Japanese", candidate_top_skills: "得意分野" candidate_years_experience: "経験年数" candidate_last_updated: "最終更新日時" +# candidate_who: "Who" # featured_developers: "Featured Developers" # other_developers: "Other Developers" # inactive_developers: "Inactive Developers" @@ -382,6 +399,8 @@ module.exports = nativeDescription: "日本語", englishDescription: "Japanese", # editor_config_keybindings_label: "Key Bindings" # editor_config_keybindings_default: "Default (Ace)" # editor_config_keybindings_description: "Adds additional shortcuts known from the common editors." +# editor_config_livecompletion_label: "Live Autocompletion" +# editor_config_livecompletion_description: "Displays autocomplete suggestions while typing." # editor_config_invisibles_label: "Show Invisibles" # editor_config_invisibles_description: "Displays invisibles such as spaces or tabs." # editor_config_indentguides_label: "Show Indent Guides" @@ -418,6 +437,7 @@ module.exports = nativeDescription: "日本語", englishDescription: "Japanese", # tip_impossible: "It always seems impossible until it's done. - Nelson Mandela" # tip_talk_is_cheap: "Talk is cheap. Show me the code. - Linus Torvalds" # tip_first_language: "The most disastrous thing that you can ever learn is your first programming language. - Alan Kay" +# tip_hardware_problem: "Q: How many programmers does it take to change a light bulb? A: None, it's a hardware problem." # time_current: "Now:" # time_total: "Max:" # time_goto: "Go to:" @@ -882,6 +902,8 @@ module.exports = nativeDescription: "日本語", englishDescription: "Japanese", # document: "Document" # sprite_sheet: "Sprite Sheet" # candidate_sessions: "Candidate Sessions" +# user_remark: "User Remark" +# versions: "Versions" # delta: # added: "Added" diff --git a/app/locale/ko.coffee b/app/locale/ko.coffee index e54338064..bb32495d4 100644 --- a/app/locale/ko.coffee +++ b/app/locale/ko.coffee @@ -236,7 +236,7 @@ module.exports = nativeDescription: "한국어", englishDescription: "Korean", t # basics_country: "Country" # basics_country_help: "Country you want to work in (or live in now)." # basics_visa: "US Work Status" -# basics_visa_help: "Are you authorized to work in the US, or do you need visa sponsorship?" +# basics_visa_help: "Are you authorized to work in the US, or do you need visa sponsorship? (If you live in Canada or Australia, mark authorized.)" # basics_looking_for: "Looking For" # basics_looking_for_full_time: "Full-time" # basics_looking_for_part_time: "Part-time" @@ -281,7 +281,8 @@ module.exports = nativeDescription: "한국어", englishDescription: "Korean", t # education_duration_help: "When?" # education_description: "Description" # education_description_help: "Highlight anything about this educational experience. (140 chars; optional)" -# our_notes: "Our Notes" +# our_notes: "CodeCombat's Notes" +# remarks: "Remarks" # projects: "Projects" # projects_header: "Add 3 projects" # projects_header_2: "Projects (Top 3)" @@ -297,22 +298,37 @@ module.exports = nativeDescription: "한국어", englishDescription: "Korean", t # player_code: "Player Code" # employers: -# want_to_hire_our_players: "Hire CodeCombat Players" +# hire_developers_not_credentials: "Hire developers, not credentials." +# get_started: "Get Started" +# already_screened: "We've already technically screened all our candidates" +# filter_further: ", but you can also filter further:" +# filter_visa: "Visa" +# filter_visa_yes: "US Authorized" +# filter_visa_no: "Not Authorized" +# filter_education_top: "Top School" +# filter_education_other: "Other" +# filter_role_web_developer: "Web Developer" +# filter_role_software_developer: "Software Developer" +# filter_role_mobile_developer: "Mobile Developer" +# filter_experience: "Experience" +# filter_experience_senior: "Senior" +# filter_experience_junior: "Junior" +# filter_experience_recent_grad: "Recent Grad" +# filter_experience_student: "College Student" +# filter_results: "results" +# start_hiring: "Start hiring." +# reasons: "Three reasons you should hire through us:" +# everyone_looking: "Everyone here is looking for their next opportunity." +# everyone_looking_blurb: "Forget about 20% LinkedIn InMail response rates. Everyone that we list on this site wants to find their next position and will respond to your request for an introduction." +# weeding: "Sit back; we've done the weeding for you." +# weeding_blurb: "Every player that we list has been screened for technical ability. We also perform phone screens for select candidates and make notes on their profiles to save you time." +# pass_screen: "They will pass your technical screen." +# pass_screen_blurb: "Review each candidate's code before reaching out. One employer found that 5x as many of our devs passed their technical screen than hiring from Hacker News." +# make_hiring_easier: "Make my hiring easier, please." # what: "What is CodeCombat?" # what_blurb: "CodeCombat is a multiplayer browser programming game. Players write code to control their forces in battle against other developers. We support JavaScript, Python, Lua, Clojure, CoffeeScript, and Io." -# who: "Who Are the Players?" -# who_blurb: "CodeCombateers are software developers who enjoy using their programming skills to play games. They range from college seniors at top 20 engineering programs to 20-year industry veterans." -# how: "How Do We Find Developers?" -# how_blurb: "We host competitive tournaments to attract competitive software engieneers. We then use in-house algorithms to identify the best players among the top 5% of tournament winners." -# why: "Why Hire Through Us?" -# why_blurb_1: "We will save you time. Every CodeCombateer we feaure is " -# why_blurb_2: "looking for work" -# why_blurb_3: ", has " -# why_blurb_4: "demonstrated top notch technical skills" -# why_blurb_5: ", and has been " -# why_blurb_6: "personally screened by us" -# why_blurb_7: ". Stop screening and start hiring." -# see_candidates: "Click here to see our candidates" +# cost: "How much do we charge?" +# cost_blurb: "We charge 15% of first year's salary and offer a 100% money back guarantee for 90 days. We don't charge for candidates who are already actively being interviewed at your company." # candidate_name: "Name" # candidate_location: "Location" # candidate_looking_for: "Looking For" @@ -320,6 +336,7 @@ module.exports = nativeDescription: "한국어", englishDescription: "Korean", t # candidate_top_skills: "Top Skills" # candidate_years_experience: "Yrs Exp" # candidate_last_updated: "Last Updated" +# candidate_who: "Who" # featured_developers: "Featured Developers" # other_developers: "Other Developers" # inactive_developers: "Inactive Developers" @@ -382,6 +399,8 @@ module.exports = nativeDescription: "한국어", englishDescription: "Korean", t editor_config_keybindings_label: "단축키 설정" editor_config_keybindings_default: "기본(Ace)" editor_config_keybindings_description: "일반적인 에디터와 마찬가지인 단축키 설정" +# editor_config_livecompletion_label: "Live Autocompletion" +# editor_config_livecompletion_description: "Displays autocomplete suggestions while typing." editor_config_invisibles_label: "투명 설정" editor_config_invisibles_description: "스페이스, 탭 설정" editor_config_indentguides_label: "들여쓰기 가이드 보기" @@ -418,6 +437,7 @@ module.exports = nativeDescription: "한국어", englishDescription: "Korean", t # tip_impossible: "It always seems impossible until it's done. - Nelson Mandela" # tip_talk_is_cheap: "Talk is cheap. Show me the code. - Linus Torvalds" # tip_first_language: "The most disastrous thing that you can ever learn is your first programming language. - Alan Kay" +# tip_hardware_problem: "Q: How many programmers does it take to change a light bulb? A: None, it's a hardware problem." # time_current: "Now:" # time_total: "Max:" # time_goto: "Go to:" @@ -882,6 +902,8 @@ module.exports = nativeDescription: "한국어", englishDescription: "Korean", t # document: "Document" # sprite_sheet: "Sprite Sheet" # candidate_sessions: "Candidate Sessions" +# user_remark: "User Remark" +# versions: "Versions" # delta: # added: "Added" diff --git a/app/locale/lt.coffee b/app/locale/lt.coffee index 1c868c296..6c3df3e2c 100644 --- a/app/locale/lt.coffee +++ b/app/locale/lt.coffee @@ -90,7 +90,7 @@ module.exports = nativeDescription: "lietuvių kalba", englishDescription: "Lith # required: "You need to log in before you can go that way." # home: -# slogan: "Learn to Code JavaScript by Playing a Game" +# slogan: "Learn to Code by Playing a Game" # no_ie: "CodeCombat does not run in Internet Explorer 9 or older. Sorry!" # no_mobile: "CodeCombat wasn't designed for mobile devices and may not work!" # play: "Play" @@ -236,7 +236,7 @@ module.exports = nativeDescription: "lietuvių kalba", englishDescription: "Lith # basics_country: "Country" # basics_country_help: "Country you want to work in (or live in now)." # basics_visa: "US Work Status" -# basics_visa_help: "Are you authorized to work in the US, or do you need visa sponsorship?" +# basics_visa_help: "Are you authorized to work in the US, or do you need visa sponsorship? (If you live in Canada or Australia, mark authorized.)" # basics_looking_for: "Looking For" # basics_looking_for_full_time: "Full-time" # basics_looking_for_part_time: "Part-time" @@ -281,7 +281,8 @@ module.exports = nativeDescription: "lietuvių kalba", englishDescription: "Lith # education_duration_help: "When?" # education_description: "Description" # education_description_help: "Highlight anything about this educational experience. (140 chars; optional)" -# our_notes: "Our Notes" +# our_notes: "CodeCombat's Notes" +# remarks: "Remarks" # projects: "Projects" # projects_header: "Add 3 projects" # projects_header_2: "Projects (Top 3)" @@ -297,22 +298,37 @@ module.exports = nativeDescription: "lietuvių kalba", englishDescription: "Lith # player_code: "Player Code" # employers: -# want_to_hire_our_players: "Hire CodeCombat Players" +# hire_developers_not_credentials: "Hire developers, not credentials." +# get_started: "Get Started" +# already_screened: "We've already technically screened all our candidates" +# filter_further: ", but you can also filter further:" +# filter_visa: "Visa" +# filter_visa_yes: "US Authorized" +# filter_visa_no: "Not Authorized" +# filter_education_top: "Top School" +# filter_education_other: "Other" +# filter_role_web_developer: "Web Developer" +# filter_role_software_developer: "Software Developer" +# filter_role_mobile_developer: "Mobile Developer" +# filter_experience: "Experience" +# filter_experience_senior: "Senior" +# filter_experience_junior: "Junior" +# filter_experience_recent_grad: "Recent Grad" +# filter_experience_student: "College Student" +# filter_results: "results" +# start_hiring: "Start hiring." +# reasons: "Three reasons you should hire through us:" +# everyone_looking: "Everyone here is looking for their next opportunity." +# everyone_looking_blurb: "Forget about 20% LinkedIn InMail response rates. Everyone that we list on this site wants to find their next position and will respond to your request for an introduction." +# weeding: "Sit back; we've done the weeding for you." +# weeding_blurb: "Every player that we list has been screened for technical ability. We also perform phone screens for select candidates and make notes on their profiles to save you time." +# pass_screen: "They will pass your technical screen." +# pass_screen_blurb: "Review each candidate's code before reaching out. One employer found that 5x as many of our devs passed their technical screen than hiring from Hacker News." +# make_hiring_easier: "Make my hiring easier, please." # what: "What is CodeCombat?" # what_blurb: "CodeCombat is a multiplayer browser programming game. Players write code to control their forces in battle against other developers. We support JavaScript, Python, Lua, Clojure, CoffeeScript, and Io." -# who: "Who Are the Players?" -# who_blurb: "CodeCombateers are software developers who enjoy using their programming skills to play games. They range from college seniors at top 20 engineering programs to 20-year industry veterans." -# how: "How Do We Find Developers?" -# how_blurb: "We host competitive tournaments to attract competitive software engieneers. We then use in-house algorithms to identify the best players among the top 5% of tournament winners." -# why: "Why Hire Through Us?" -# why_blurb_1: "We will save you time. Every CodeCombateer we feaure is " -# why_blurb_2: "looking for work" -# why_blurb_3: ", has " -# why_blurb_4: "demonstrated top notch technical skills" -# why_blurb_5: ", and has been " -# why_blurb_6: "personally screened by us" -# why_blurb_7: ". Stop screening and start hiring." -# see_candidates: "Click here to see our candidates" +# cost: "How much do we charge?" +# cost_blurb: "We charge 15% of first year's salary and offer a 100% money back guarantee for 90 days. We don't charge for candidates who are already actively being interviewed at your company." # candidate_name: "Name" # candidate_location: "Location" # candidate_looking_for: "Looking For" @@ -320,6 +336,7 @@ module.exports = nativeDescription: "lietuvių kalba", englishDescription: "Lith # candidate_top_skills: "Top Skills" # candidate_years_experience: "Yrs Exp" # candidate_last_updated: "Last Updated" +# candidate_who: "Who" # featured_developers: "Featured Developers" # other_developers: "Other Developers" # inactive_developers: "Inactive Developers" @@ -382,6 +399,8 @@ module.exports = nativeDescription: "lietuvių kalba", englishDescription: "Lith # editor_config_keybindings_label: "Key Bindings" # editor_config_keybindings_default: "Default (Ace)" # editor_config_keybindings_description: "Adds additional shortcuts known from the common editors." +# editor_config_livecompletion_label: "Live Autocompletion" +# editor_config_livecompletion_description: "Displays autocomplete suggestions while typing." # editor_config_invisibles_label: "Show Invisibles" # editor_config_invisibles_description: "Displays invisibles such as spaces or tabs." # editor_config_indentguides_label: "Show Indent Guides" @@ -418,6 +437,7 @@ module.exports = nativeDescription: "lietuvių kalba", englishDescription: "Lith # tip_impossible: "It always seems impossible until it's done. - Nelson Mandela" # tip_talk_is_cheap: "Talk is cheap. Show me the code. - Linus Torvalds" # tip_first_language: "The most disastrous thing that you can ever learn is your first programming language. - Alan Kay" +# tip_hardware_problem: "Q: How many programmers does it take to change a light bulb? A: None, it's a hardware problem." # time_current: "Now:" # time_total: "Max:" # time_goto: "Go to:" @@ -882,6 +902,8 @@ module.exports = nativeDescription: "lietuvių kalba", englishDescription: "Lith # document: "Document" # sprite_sheet: "Sprite Sheet" # candidate_sessions: "Candidate Sessions" +# user_remark: "User Remark" +# versions: "Versions" # delta: # added: "Added" diff --git a/app/locale/ms.coffee b/app/locale/ms.coffee index 008d2863f..5c97c5b2f 100644 --- a/app/locale/ms.coffee +++ b/app/locale/ms.coffee @@ -236,7 +236,7 @@ module.exports = nativeDescription: "Bahasa Melayu", englishDescription: "Bahasa # basics_country: "Country" # basics_country_help: "Country you want to work in (or live in now)." # basics_visa: "US Work Status" -# basics_visa_help: "Are you authorized to work in the US, or do you need visa sponsorship?" +# basics_visa_help: "Are you authorized to work in the US, or do you need visa sponsorship? (If you live in Canada or Australia, mark authorized.)" # basics_looking_for: "Looking For" # basics_looking_for_full_time: "Full-time" # basics_looking_for_part_time: "Part-time" @@ -281,7 +281,8 @@ module.exports = nativeDescription: "Bahasa Melayu", englishDescription: "Bahasa # education_duration_help: "When?" # education_description: "Description" # education_description_help: "Highlight anything about this educational experience. (140 chars; optional)" -# our_notes: "Our Notes" +# our_notes: "CodeCombat's Notes" +# remarks: "Remarks" # projects: "Projects" # projects_header: "Add 3 projects" # projects_header_2: "Projects (Top 3)" @@ -297,22 +298,37 @@ module.exports = nativeDescription: "Bahasa Melayu", englishDescription: "Bahasa # player_code: "Player Code" # employers: -# want_to_hire_our_players: "Hire CodeCombat Players" +# hire_developers_not_credentials: "Hire developers, not credentials." +# get_started: "Get Started" +# already_screened: "We've already technically screened all our candidates" +# filter_further: ", but you can also filter further:" +# filter_visa: "Visa" +# filter_visa_yes: "US Authorized" +# filter_visa_no: "Not Authorized" +# filter_education_top: "Top School" +# filter_education_other: "Other" +# filter_role_web_developer: "Web Developer" +# filter_role_software_developer: "Software Developer" +# filter_role_mobile_developer: "Mobile Developer" +# filter_experience: "Experience" +# filter_experience_senior: "Senior" +# filter_experience_junior: "Junior" +# filter_experience_recent_grad: "Recent Grad" +# filter_experience_student: "College Student" +# filter_results: "results" +# start_hiring: "Start hiring." +# reasons: "Three reasons you should hire through us:" +# everyone_looking: "Everyone here is looking for their next opportunity." +# everyone_looking_blurb: "Forget about 20% LinkedIn InMail response rates. Everyone that we list on this site wants to find their next position and will respond to your request for an introduction." +# weeding: "Sit back; we've done the weeding for you." +# weeding_blurb: "Every player that we list has been screened for technical ability. We also perform phone screens for select candidates and make notes on their profiles to save you time." +# pass_screen: "They will pass your technical screen." +# pass_screen_blurb: "Review each candidate's code before reaching out. One employer found that 5x as many of our devs passed their technical screen than hiring from Hacker News." +# make_hiring_easier: "Make my hiring easier, please." # what: "What is CodeCombat?" # what_blurb: "CodeCombat is a multiplayer browser programming game. Players write code to control their forces in battle against other developers. We support JavaScript, Python, Lua, Clojure, CoffeeScript, and Io." -# who: "Who Are the Players?" -# who_blurb: "CodeCombateers are software developers who enjoy using their programming skills to play games. They range from college seniors at top 20 engineering programs to 20-year industry veterans." -# how: "How Do We Find Developers?" -# how_blurb: "We host competitive tournaments to attract competitive software engieneers. We then use in-house algorithms to identify the best players among the top 5% of tournament winners." -# why: "Why Hire Through Us?" -# why_blurb_1: "We will save you time. Every CodeCombateer we feaure is " -# why_blurb_2: "looking for work" -# why_blurb_3: ", has " -# why_blurb_4: "demonstrated top notch technical skills" -# why_blurb_5: ", and has been " -# why_blurb_6: "personally screened by us" -# why_blurb_7: ". Stop screening and start hiring." -# see_candidates: "Click here to see our candidates" +# cost: "How much do we charge?" +# cost_blurb: "We charge 15% of first year's salary and offer a 100% money back guarantee for 90 days. We don't charge for candidates who are already actively being interviewed at your company." # candidate_name: "Name" # candidate_location: "Location" # candidate_looking_for: "Looking For" @@ -320,6 +336,7 @@ module.exports = nativeDescription: "Bahasa Melayu", englishDescription: "Bahasa # candidate_top_skills: "Top Skills" # candidate_years_experience: "Yrs Exp" # candidate_last_updated: "Last Updated" +# candidate_who: "Who" # featured_developers: "Featured Developers" # other_developers: "Other Developers" # inactive_developers: "Inactive Developers" @@ -382,6 +399,8 @@ module.exports = nativeDescription: "Bahasa Melayu", englishDescription: "Bahasa # editor_config_keybindings_label: "Key Bindings" # editor_config_keybindings_default: "Default (Ace)" # editor_config_keybindings_description: "Adds additional shortcuts known from the common editors." +# editor_config_livecompletion_label: "Live Autocompletion" +# editor_config_livecompletion_description: "Displays autocomplete suggestions while typing." # editor_config_invisibles_label: "Show Invisibles" # editor_config_invisibles_description: "Displays invisibles such as spaces or tabs." # editor_config_indentguides_label: "Show Indent Guides" @@ -418,6 +437,7 @@ module.exports = nativeDescription: "Bahasa Melayu", englishDescription: "Bahasa # tip_impossible: "It always seems impossible until it's done. - Nelson Mandela" # tip_talk_is_cheap: "Talk is cheap. Show me the code. - Linus Torvalds" # tip_first_language: "The most disastrous thing that you can ever learn is your first programming language. - Alan Kay" +# tip_hardware_problem: "Q: How many programmers does it take to change a light bulb? A: None, it's a hardware problem." # time_current: "Now:" # time_total: "Max:" # time_goto: "Go to:" @@ -882,6 +902,8 @@ module.exports = nativeDescription: "Bahasa Melayu", englishDescription: "Bahasa # document: "Document" # sprite_sheet: "Sprite Sheet" # candidate_sessions: "Candidate Sessions" +# user_remark: "User Remark" +# versions: "Versions" # delta: # added: "Added" diff --git a/app/locale/nb.coffee b/app/locale/nb.coffee index 7fbf4a07c..a56bcf571 100644 --- a/app/locale/nb.coffee +++ b/app/locale/nb.coffee @@ -236,7 +236,7 @@ module.exports = nativeDescription: "Norsk Bokmål", englishDescription: "Norweg # basics_country: "Country" # basics_country_help: "Country you want to work in (or live in now)." # basics_visa: "US Work Status" -# basics_visa_help: "Are you authorized to work in the US, or do you need visa sponsorship?" +# basics_visa_help: "Are you authorized to work in the US, or do you need visa sponsorship? (If you live in Canada or Australia, mark authorized.)" # basics_looking_for: "Looking For" # basics_looking_for_full_time: "Full-time" # basics_looking_for_part_time: "Part-time" @@ -281,7 +281,8 @@ module.exports = nativeDescription: "Norsk Bokmål", englishDescription: "Norweg # education_duration_help: "When?" # education_description: "Description" # education_description_help: "Highlight anything about this educational experience. (140 chars; optional)" -# our_notes: "Our Notes" +# our_notes: "CodeCombat's Notes" +# remarks: "Remarks" # projects: "Projects" # projects_header: "Add 3 projects" # projects_header_2: "Projects (Top 3)" @@ -297,22 +298,37 @@ module.exports = nativeDescription: "Norsk Bokmål", englishDescription: "Norweg # player_code: "Player Code" # employers: -# want_to_hire_our_players: "Hire CodeCombat Players" +# hire_developers_not_credentials: "Hire developers, not credentials." +# get_started: "Get Started" +# already_screened: "We've already technically screened all our candidates" +# filter_further: ", but you can also filter further:" +# filter_visa: "Visa" +# filter_visa_yes: "US Authorized" +# filter_visa_no: "Not Authorized" +# filter_education_top: "Top School" +# filter_education_other: "Other" +# filter_role_web_developer: "Web Developer" +# filter_role_software_developer: "Software Developer" +# filter_role_mobile_developer: "Mobile Developer" +# filter_experience: "Experience" +# filter_experience_senior: "Senior" +# filter_experience_junior: "Junior" +# filter_experience_recent_grad: "Recent Grad" +# filter_experience_student: "College Student" +# filter_results: "results" +# start_hiring: "Start hiring." +# reasons: "Three reasons you should hire through us:" +# everyone_looking: "Everyone here is looking for their next opportunity." +# everyone_looking_blurb: "Forget about 20% LinkedIn InMail response rates. Everyone that we list on this site wants to find their next position and will respond to your request for an introduction." +# weeding: "Sit back; we've done the weeding for you." +# weeding_blurb: "Every player that we list has been screened for technical ability. We also perform phone screens for select candidates and make notes on their profiles to save you time." +# pass_screen: "They will pass your technical screen." +# pass_screen_blurb: "Review each candidate's code before reaching out. One employer found that 5x as many of our devs passed their technical screen than hiring from Hacker News." +# make_hiring_easier: "Make my hiring easier, please." # what: "What is CodeCombat?" # what_blurb: "CodeCombat is a multiplayer browser programming game. Players write code to control their forces in battle against other developers. We support JavaScript, Python, Lua, Clojure, CoffeeScript, and Io." -# who: "Who Are the Players?" -# who_blurb: "CodeCombateers are software developers who enjoy using their programming skills to play games. They range from college seniors at top 20 engineering programs to 20-year industry veterans." -# how: "How Do We Find Developers?" -# how_blurb: "We host competitive tournaments to attract competitive software engieneers. We then use in-house algorithms to identify the best players among the top 5% of tournament winners." -# why: "Why Hire Through Us?" -# why_blurb_1: "We will save you time. Every CodeCombateer we feaure is " -# why_blurb_2: "looking for work" -# why_blurb_3: ", has " -# why_blurb_4: "demonstrated top notch technical skills" -# why_blurb_5: ", and has been " -# why_blurb_6: "personally screened by us" -# why_blurb_7: ". Stop screening and start hiring." -# see_candidates: "Click here to see our candidates" +# cost: "How much do we charge?" +# cost_blurb: "We charge 15% of first year's salary and offer a 100% money back guarantee for 90 days. We don't charge for candidates who are already actively being interviewed at your company." # candidate_name: "Name" # candidate_location: "Location" # candidate_looking_for: "Looking For" @@ -320,6 +336,7 @@ module.exports = nativeDescription: "Norsk Bokmål", englishDescription: "Norweg # candidate_top_skills: "Top Skills" # candidate_years_experience: "Yrs Exp" # candidate_last_updated: "Last Updated" +# candidate_who: "Who" # featured_developers: "Featured Developers" # other_developers: "Other Developers" # inactive_developers: "Inactive Developers" @@ -382,6 +399,8 @@ module.exports = nativeDescription: "Norsk Bokmål", englishDescription: "Norweg # editor_config_keybindings_label: "Key Bindings" # editor_config_keybindings_default: "Default (Ace)" # editor_config_keybindings_description: "Adds additional shortcuts known from the common editors." +# editor_config_livecompletion_label: "Live Autocompletion" +# editor_config_livecompletion_description: "Displays autocomplete suggestions while typing." # editor_config_invisibles_label: "Show Invisibles" # editor_config_invisibles_description: "Displays invisibles such as spaces or tabs." # editor_config_indentguides_label: "Show Indent Guides" @@ -418,6 +437,7 @@ module.exports = nativeDescription: "Norsk Bokmål", englishDescription: "Norweg # tip_impossible: "It always seems impossible until it's done. - Nelson Mandela" # tip_talk_is_cheap: "Talk is cheap. Show me the code. - Linus Torvalds" # tip_first_language: "The most disastrous thing that you can ever learn is your first programming language. - Alan Kay" +# tip_hardware_problem: "Q: How many programmers does it take to change a light bulb? A: None, it's a hardware problem." # time_current: "Now:" # time_total: "Max:" # time_goto: "Go to:" @@ -882,6 +902,8 @@ module.exports = nativeDescription: "Norsk Bokmål", englishDescription: "Norweg # document: "Document" # sprite_sheet: "Sprite Sheet" # candidate_sessions: "Candidate Sessions" +# user_remark: "User Remark" +# versions: "Versions" # delta: # added: "Added" diff --git a/app/locale/nl-BE.coffee b/app/locale/nl-BE.coffee index ab53bcce0..d0fa2550e 100644 --- a/app/locale/nl-BE.coffee +++ b/app/locale/nl-BE.coffee @@ -236,7 +236,7 @@ module.exports = nativeDescription: "Nederlands (België)", englishDescription: # basics_country: "Country" # basics_country_help: "Country you want to work in (or live in now)." # basics_visa: "US Work Status" -# basics_visa_help: "Are you authorized to work in the US, or do you need visa sponsorship?" +# basics_visa_help: "Are you authorized to work in the US, or do you need visa sponsorship? (If you live in Canada or Australia, mark authorized.)" # basics_looking_for: "Looking For" # basics_looking_for_full_time: "Full-time" # basics_looking_for_part_time: "Part-time" @@ -282,6 +282,7 @@ module.exports = nativeDescription: "Nederlands (België)", englishDescription: # education_description: "Description" # education_description_help: "Highlight anything about this educational experience. (140 chars; optional)" our_notes: "Onze notities" +# remarks: "Remarks" projects: "Projecten" # projects_header: "Add 3 projects" # projects_header_2: "Projects (Top 3)" @@ -297,22 +298,37 @@ module.exports = nativeDescription: "Nederlands (België)", englishDescription: # player_code: "Player Code" employers: - want_to_hire_our_players: "Wil je expert CodeCombat spelers aanwerven? " +# hire_developers_not_credentials: "Hire developers, not credentials." +# get_started: "Get Started" +# already_screened: "We've already technically screened all our candidates" +# filter_further: ", but you can also filter further:" +# filter_visa: "Visa" +# filter_visa_yes: "US Authorized" +# filter_visa_no: "Not Authorized" +# filter_education_top: "Top School" +# filter_education_other: "Other" +# filter_role_web_developer: "Web Developer" +# filter_role_software_developer: "Software Developer" +# filter_role_mobile_developer: "Mobile Developer" +# filter_experience: "Experience" +# filter_experience_senior: "Senior" +# filter_experience_junior: "Junior" +# filter_experience_recent_grad: "Recent Grad" +# filter_experience_student: "College Student" +# filter_results: "results" +# start_hiring: "Start hiring." +# reasons: "Three reasons you should hire through us:" +# everyone_looking: "Everyone here is looking for their next opportunity." +# everyone_looking_blurb: "Forget about 20% LinkedIn InMail response rates. Everyone that we list on this site wants to find their next position and will respond to your request for an introduction." +# weeding: "Sit back; we've done the weeding for you." +# weeding_blurb: "Every player that we list has been screened for technical ability. We also perform phone screens for select candidates and make notes on their profiles to save you time." +# pass_screen: "They will pass your technical screen." +# pass_screen_blurb: "Review each candidate's code before reaching out. One employer found that 5x as many of our devs passed their technical screen than hiring from Hacker News." +# make_hiring_easier: "Make my hiring easier, please." # what: "What is CodeCombat?" # what_blurb: "CodeCombat is a multiplayer browser programming game. Players write code to control their forces in battle against other developers. We support JavaScript, Python, Lua, Clojure, CoffeeScript, and Io." -# who: "Who Are the Players?" -# who_blurb: "CodeCombateers are software developers who enjoy using their programming skills to play games. They range from college seniors at top 20 engineering programs to 20-year industry veterans." -# how: "How Do We Find Developers?" -# how_blurb: "We host competitive tournaments to attract competitive software engieneers. We then use in-house algorithms to identify the best players among the top 5% of tournament winners." -# why: "Why Hire Through Us?" -# why_blurb_1: "We will save you time. Every CodeCombateer we feaure is " -# why_blurb_2: "looking for work" -# why_blurb_3: ", has " -# why_blurb_4: "demonstrated top notch technical skills" -# why_blurb_5: ", and has been " -# why_blurb_6: "personally screened by us" -# why_blurb_7: ". Stop screening and start hiring." -# see_candidates: "Click here to see our candidates" +# cost: "How much do we charge?" +# cost_blurb: "We charge 15% of first year's salary and offer a 100% money back guarantee for 90 days. We don't charge for candidates who are already actively being interviewed at your company." candidate_name: "Naam" candidate_location: "Locatie" candidate_looking_for: "Zoekt naar" @@ -320,6 +336,7 @@ module.exports = nativeDescription: "Nederlands (België)", englishDescription: candidate_top_skills: "Beste vaardigheden" candidate_years_experience: "Jaren ervaring" candidate_last_updated: "Laatst aangepast" +# candidate_who: "Who" # featured_developers: "Featured Developers" # other_developers: "Other Developers" # inactive_developers: "Inactive Developers" @@ -382,6 +399,8 @@ module.exports = nativeDescription: "Nederlands (België)", englishDescription: editor_config_keybindings_label: "Toets instellingen" editor_config_keybindings_default: "Standaard (Ace)" editor_config_keybindings_description: "Voeg extra shortcuts toe van de gebruikelijke editors." +# editor_config_livecompletion_label: "Live Autocompletion" +# editor_config_livecompletion_description: "Displays autocomplete suggestions while typing." editor_config_invisibles_label: "Toon onzichtbare" editor_config_invisibles_description: "Toon onzichtbare whitespace karakters." editor_config_indentguides_label: "Toon inspringing regels" @@ -418,6 +437,7 @@ module.exports = nativeDescription: "Nederlands (België)", englishDescription: tip_impossible: "Het lijkt altijd onmogelijk tot het gedaan wordt. - Nelson Mandela" tip_talk_is_cheap: "Je kunt het goed uitleggen, maar toon me de code. - Linus Torvalds" tip_first_language: "Het ergste dat je kan leren is je eerste programmeertaal. - Alan Kay" +# tip_hardware_problem: "Q: How many programmers does it take to change a light bulb? A: None, it's a hardware problem." time_current: "Nu:" time_total: "Maximum:" time_goto: "Ga naar:" @@ -882,6 +902,8 @@ module.exports = nativeDescription: "Nederlands (België)", englishDescription: # document: "Document" # sprite_sheet: "Sprite Sheet" # candidate_sessions: "Candidate Sessions" +# user_remark: "User Remark" +# versions: "Versions" # delta: # added: "Added" diff --git a/app/locale/nl-NL.coffee b/app/locale/nl-NL.coffee index acbd7856a..cffcdbb90 100644 --- a/app/locale/nl-NL.coffee +++ b/app/locale/nl-NL.coffee @@ -236,7 +236,7 @@ module.exports = nativeDescription: "Nederlands (Nederland)", englishDescription # basics_country: "Country" # basics_country_help: "Country you want to work in (or live in now)." # basics_visa: "US Work Status" -# basics_visa_help: "Are you authorized to work in the US, or do you need visa sponsorship?" +# basics_visa_help: "Are you authorized to work in the US, or do you need visa sponsorship? (If you live in Canada or Australia, mark authorized.)" # basics_looking_for: "Looking For" # basics_looking_for_full_time: "Full-time" # basics_looking_for_part_time: "Part-time" @@ -282,6 +282,7 @@ module.exports = nativeDescription: "Nederlands (Nederland)", englishDescription # education_description: "Description" # education_description_help: "Highlight anything about this educational experience. (140 chars; optional)" our_notes: "Onze notities" +# remarks: "Remarks" projects: "Projecten" # projects_header: "Add 3 projects" # projects_header_2: "Projects (Top 3)" @@ -297,22 +298,37 @@ module.exports = nativeDescription: "Nederlands (Nederland)", englishDescription # player_code: "Player Code" employers: - want_to_hire_our_players: "Wil je expert CodeCombat spelers aanwerven? " +# hire_developers_not_credentials: "Hire developers, not credentials." +# get_started: "Get Started" +# already_screened: "We've already technically screened all our candidates" +# filter_further: ", but you can also filter further:" +# filter_visa: "Visa" +# filter_visa_yes: "US Authorized" +# filter_visa_no: "Not Authorized" +# filter_education_top: "Top School" +# filter_education_other: "Other" +# filter_role_web_developer: "Web Developer" +# filter_role_software_developer: "Software Developer" +# filter_role_mobile_developer: "Mobile Developer" +# filter_experience: "Experience" +# filter_experience_senior: "Senior" +# filter_experience_junior: "Junior" +# filter_experience_recent_grad: "Recent Grad" +# filter_experience_student: "College Student" +# filter_results: "results" +# start_hiring: "Start hiring." +# reasons: "Three reasons you should hire through us:" +# everyone_looking: "Everyone here is looking for their next opportunity." +# everyone_looking_blurb: "Forget about 20% LinkedIn InMail response rates. Everyone that we list on this site wants to find their next position and will respond to your request for an introduction." +# weeding: "Sit back; we've done the weeding for you." +# weeding_blurb: "Every player that we list has been screened for technical ability. We also perform phone screens for select candidates and make notes on their profiles to save you time." +# pass_screen: "They will pass your technical screen." +# pass_screen_blurb: "Review each candidate's code before reaching out. One employer found that 5x as many of our devs passed their technical screen than hiring from Hacker News." +# make_hiring_easier: "Make my hiring easier, please." # what: "What is CodeCombat?" # what_blurb: "CodeCombat is a multiplayer browser programming game. Players write code to control their forces in battle against other developers. We support JavaScript, Python, Lua, Clojure, CoffeeScript, and Io." -# who: "Who Are the Players?" -# who_blurb: "CodeCombateers are software developers who enjoy using their programming skills to play games. They range from college seniors at top 20 engineering programs to 20-year industry veterans." -# how: "How Do We Find Developers?" -# how_blurb: "We host competitive tournaments to attract competitive software engieneers. We then use in-house algorithms to identify the best players among the top 5% of tournament winners." -# why: "Why Hire Through Us?" -# why_blurb_1: "We will save you time. Every CodeCombateer we feaure is " -# why_blurb_2: "looking for work" -# why_blurb_3: ", has " -# why_blurb_4: "demonstrated top notch technical skills" -# why_blurb_5: ", and has been " -# why_blurb_6: "personally screened by us" -# why_blurb_7: ". Stop screening and start hiring." -# see_candidates: "Click here to see our candidates" +# cost: "How much do we charge?" +# cost_blurb: "We charge 15% of first year's salary and offer a 100% money back guarantee for 90 days. We don't charge for candidates who are already actively being interviewed at your company." candidate_name: "Naam" candidate_location: "Locatie" candidate_looking_for: "Zoekt naar" @@ -320,6 +336,7 @@ module.exports = nativeDescription: "Nederlands (Nederland)", englishDescription candidate_top_skills: "Beste vaardigheden" candidate_years_experience: "Jaren ervaring" candidate_last_updated: "Laatst aangepast" +# candidate_who: "Who" # featured_developers: "Featured Developers" # other_developers: "Other Developers" # inactive_developers: "Inactive Developers" @@ -382,6 +399,8 @@ module.exports = nativeDescription: "Nederlands (Nederland)", englishDescription editor_config_keybindings_label: "Toets instellingen" editor_config_keybindings_default: "Standaard (Ace)" editor_config_keybindings_description: "Voeg extra shortcuts toe van de gebruikelijke editors." +# editor_config_livecompletion_label: "Live Autocompletion" +# editor_config_livecompletion_description: "Displays autocomplete suggestions while typing." editor_config_invisibles_label: "Toon onzichtbare" editor_config_invisibles_description: "Toon onzichtbare whitespace karakters." editor_config_indentguides_label: "Toon inspringing regels" @@ -418,6 +437,7 @@ module.exports = nativeDescription: "Nederlands (Nederland)", englishDescription tip_impossible: "Het lijkt altijd onmogelijk tot het gedaan wordt. - Nelson Mandela" tip_talk_is_cheap: "Je kunt het goed uitleggen, maar toon me de code. - Linus Torvalds" tip_first_language: "Het ergste dat je kan leren is je eerste programmeertaal. - Alan Kay" +# tip_hardware_problem: "Q: How many programmers does it take to change a light bulb? A: None, it's a hardware problem." time_current: "Nu:" time_total: "Maximum:" time_goto: "Ga naar:" @@ -882,6 +902,8 @@ module.exports = nativeDescription: "Nederlands (Nederland)", englishDescription # document: "Document" # sprite_sheet: "Sprite Sheet" # candidate_sessions: "Candidate Sessions" +# user_remark: "User Remark" +# versions: "Versions" # delta: # added: "Added" diff --git a/app/locale/nl.coffee b/app/locale/nl.coffee index ecc068641..a3dffd22a 100644 --- a/app/locale/nl.coffee +++ b/app/locale/nl.coffee @@ -236,7 +236,7 @@ module.exports = nativeDescription: "Nederlands", englishDescription: "Dutch", t # basics_country: "Country" # basics_country_help: "Country you want to work in (or live in now)." # basics_visa: "US Work Status" -# basics_visa_help: "Are you authorized to work in the US, or do you need visa sponsorship?" +# basics_visa_help: "Are you authorized to work in the US, or do you need visa sponsorship? (If you live in Canada or Australia, mark authorized.)" # basics_looking_for: "Looking For" # basics_looking_for_full_time: "Full-time" # basics_looking_for_part_time: "Part-time" @@ -282,6 +282,7 @@ module.exports = nativeDescription: "Nederlands", englishDescription: "Dutch", t # education_description: "Description" # education_description_help: "Highlight anything about this educational experience. (140 chars; optional)" our_notes: "Onze notities" +# remarks: "Remarks" projects: "Projecten" # projects_header: "Add 3 projects" # projects_header_2: "Projects (Top 3)" @@ -297,22 +298,37 @@ module.exports = nativeDescription: "Nederlands", englishDescription: "Dutch", t # player_code: "Player Code" employers: - want_to_hire_our_players: "Wil je expert CodeCombat spelers aanwerven? " +# hire_developers_not_credentials: "Hire developers, not credentials." +# get_started: "Get Started" +# already_screened: "We've already technically screened all our candidates" +# filter_further: ", but you can also filter further:" +# filter_visa: "Visa" +# filter_visa_yes: "US Authorized" +# filter_visa_no: "Not Authorized" +# filter_education_top: "Top School" +# filter_education_other: "Other" +# filter_role_web_developer: "Web Developer" +# filter_role_software_developer: "Software Developer" +# filter_role_mobile_developer: "Mobile Developer" +# filter_experience: "Experience" +# filter_experience_senior: "Senior" +# filter_experience_junior: "Junior" +# filter_experience_recent_grad: "Recent Grad" +# filter_experience_student: "College Student" +# filter_results: "results" +# start_hiring: "Start hiring." +# reasons: "Three reasons you should hire through us:" +# everyone_looking: "Everyone here is looking for their next opportunity." +# everyone_looking_blurb: "Forget about 20% LinkedIn InMail response rates. Everyone that we list on this site wants to find their next position and will respond to your request for an introduction." +# weeding: "Sit back; we've done the weeding for you." +# weeding_blurb: "Every player that we list has been screened for technical ability. We also perform phone screens for select candidates and make notes on their profiles to save you time." +# pass_screen: "They will pass your technical screen." +# pass_screen_blurb: "Review each candidate's code before reaching out. One employer found that 5x as many of our devs passed their technical screen than hiring from Hacker News." +# make_hiring_easier: "Make my hiring easier, please." # what: "What is CodeCombat?" # what_blurb: "CodeCombat is a multiplayer browser programming game. Players write code to control their forces in battle against other developers. We support JavaScript, Python, Lua, Clojure, CoffeeScript, and Io." -# who: "Who Are the Players?" -# who_blurb: "CodeCombateers are software developers who enjoy using their programming skills to play games. They range from college seniors at top 20 engineering programs to 20-year industry veterans." -# how: "How Do We Find Developers?" -# how_blurb: "We host competitive tournaments to attract competitive software engieneers. We then use in-house algorithms to identify the best players among the top 5% of tournament winners." -# why: "Why Hire Through Us?" -# why_blurb_1: "We will save you time. Every CodeCombateer we feaure is " -# why_blurb_2: "looking for work" -# why_blurb_3: ", has " -# why_blurb_4: "demonstrated top notch technical skills" -# why_blurb_5: ", and has been " -# why_blurb_6: "personally screened by us" -# why_blurb_7: ". Stop screening and start hiring." - see_candidates: "Klik om je kandidaten te zien" +# cost: "How much do we charge?" +# cost_blurb: "We charge 15% of first year's salary and offer a 100% money back guarantee for 90 days. We don't charge for candidates who are already actively being interviewed at your company." candidate_name: "Naam" candidate_location: "Locatie" candidate_looking_for: "Zoekt naar" @@ -320,6 +336,7 @@ module.exports = nativeDescription: "Nederlands", englishDescription: "Dutch", t candidate_top_skills: "Beste vaardigheden" candidate_years_experience: "Jaren ervaring" candidate_last_updated: "Laatst aangepast" +# candidate_who: "Who" # featured_developers: "Featured Developers" # other_developers: "Other Developers" # inactive_developers: "Inactive Developers" @@ -382,6 +399,8 @@ module.exports = nativeDescription: "Nederlands", englishDescription: "Dutch", t editor_config_keybindings_label: "Toets instellingen" editor_config_keybindings_default: "Standaard (Ace)" editor_config_keybindings_description: "Voeg extra shortcuts toe van de gebruikelijke editors." +# editor_config_livecompletion_label: "Live Autocompletion" +# editor_config_livecompletion_description: "Displays autocomplete suggestions while typing." editor_config_invisibles_label: "Toon onzichtbare" editor_config_invisibles_description: "Toon onzichtbare (spatie) karakters." editor_config_indentguides_label: "Toon inspringing regels" @@ -418,6 +437,7 @@ module.exports = nativeDescription: "Nederlands", englishDescription: "Dutch", t tip_impossible: "Het lijkt altijd onmogelijk tot het gedaan wordt. - Nelson Mandela" tip_talk_is_cheap: "Je kunt het goed uitleggen, maar toon me de code. - Linus Torvalds" tip_first_language: "Het ergste dat je kan leren is je eerste programmeertaal. - Alan Kay" +# tip_hardware_problem: "Q: How many programmers does it take to change a light bulb? A: None, it's a hardware problem." time_current: "Nu:" time_total: "Maximum:" time_goto: "Ga naar:" @@ -882,6 +902,8 @@ module.exports = nativeDescription: "Nederlands", englishDescription: "Dutch", t # document: "Document" # sprite_sheet: "Sprite Sheet" # candidate_sessions: "Candidate Sessions" +# user_remark: "User Remark" +# versions: "Versions" # delta: # added: "Added" diff --git a/app/locale/nn.coffee b/app/locale/nn.coffee index 6da4706fa..8b208c04c 100644 --- a/app/locale/nn.coffee +++ b/app/locale/nn.coffee @@ -90,7 +90,7 @@ module.exports = nativeDescription: "Norwegian Nynorsk", englishDescription: "No # required: "You need to log in before you can go that way." # home: -# slogan: "Learn to Code JavaScript by Playing a Game" +# slogan: "Learn to Code by Playing a Game" # no_ie: "CodeCombat does not run in Internet Explorer 9 or older. Sorry!" # no_mobile: "CodeCombat wasn't designed for mobile devices and may not work!" # play: "Play" @@ -236,7 +236,7 @@ module.exports = nativeDescription: "Norwegian Nynorsk", englishDescription: "No # basics_country: "Country" # basics_country_help: "Country you want to work in (or live in now)." # basics_visa: "US Work Status" -# basics_visa_help: "Are you authorized to work in the US, or do you need visa sponsorship?" +# basics_visa_help: "Are you authorized to work in the US, or do you need visa sponsorship? (If you live in Canada or Australia, mark authorized.)" # basics_looking_for: "Looking For" # basics_looking_for_full_time: "Full-time" # basics_looking_for_part_time: "Part-time" @@ -281,7 +281,8 @@ module.exports = nativeDescription: "Norwegian Nynorsk", englishDescription: "No # education_duration_help: "When?" # education_description: "Description" # education_description_help: "Highlight anything about this educational experience. (140 chars; optional)" -# our_notes: "Our Notes" +# our_notes: "CodeCombat's Notes" +# remarks: "Remarks" # projects: "Projects" # projects_header: "Add 3 projects" # projects_header_2: "Projects (Top 3)" @@ -297,22 +298,37 @@ module.exports = nativeDescription: "Norwegian Nynorsk", englishDescription: "No # player_code: "Player Code" # employers: -# want_to_hire_our_players: "Hire CodeCombat Players" +# hire_developers_not_credentials: "Hire developers, not credentials." +# get_started: "Get Started" +# already_screened: "We've already technically screened all our candidates" +# filter_further: ", but you can also filter further:" +# filter_visa: "Visa" +# filter_visa_yes: "US Authorized" +# filter_visa_no: "Not Authorized" +# filter_education_top: "Top School" +# filter_education_other: "Other" +# filter_role_web_developer: "Web Developer" +# filter_role_software_developer: "Software Developer" +# filter_role_mobile_developer: "Mobile Developer" +# filter_experience: "Experience" +# filter_experience_senior: "Senior" +# filter_experience_junior: "Junior" +# filter_experience_recent_grad: "Recent Grad" +# filter_experience_student: "College Student" +# filter_results: "results" +# start_hiring: "Start hiring." +# reasons: "Three reasons you should hire through us:" +# everyone_looking: "Everyone here is looking for their next opportunity." +# everyone_looking_blurb: "Forget about 20% LinkedIn InMail response rates. Everyone that we list on this site wants to find their next position and will respond to your request for an introduction." +# weeding: "Sit back; we've done the weeding for you." +# weeding_blurb: "Every player that we list has been screened for technical ability. We also perform phone screens for select candidates and make notes on their profiles to save you time." +# pass_screen: "They will pass your technical screen." +# pass_screen_blurb: "Review each candidate's code before reaching out. One employer found that 5x as many of our devs passed their technical screen than hiring from Hacker News." +# make_hiring_easier: "Make my hiring easier, please." # what: "What is CodeCombat?" # what_blurb: "CodeCombat is a multiplayer browser programming game. Players write code to control their forces in battle against other developers. We support JavaScript, Python, Lua, Clojure, CoffeeScript, and Io." -# who: "Who Are the Players?" -# who_blurb: "CodeCombateers are software developers who enjoy using their programming skills to play games. They range from college seniors at top 20 engineering programs to 20-year industry veterans." -# how: "How Do We Find Developers?" -# how_blurb: "We host competitive tournaments to attract competitive software engieneers. We then use in-house algorithms to identify the best players among the top 5% of tournament winners." -# why: "Why Hire Through Us?" -# why_blurb_1: "We will save you time. Every CodeCombateer we feaure is " -# why_blurb_2: "looking for work" -# why_blurb_3: ", has " -# why_blurb_4: "demonstrated top notch technical skills" -# why_blurb_5: ", and has been " -# why_blurb_6: "personally screened by us" -# why_blurb_7: ". Stop screening and start hiring." -# see_candidates: "Click here to see our candidates" +# cost: "How much do we charge?" +# cost_blurb: "We charge 15% of first year's salary and offer a 100% money back guarantee for 90 days. We don't charge for candidates who are already actively being interviewed at your company." # candidate_name: "Name" # candidate_location: "Location" # candidate_looking_for: "Looking For" @@ -320,6 +336,7 @@ module.exports = nativeDescription: "Norwegian Nynorsk", englishDescription: "No # candidate_top_skills: "Top Skills" # candidate_years_experience: "Yrs Exp" # candidate_last_updated: "Last Updated" +# candidate_who: "Who" # featured_developers: "Featured Developers" # other_developers: "Other Developers" # inactive_developers: "Inactive Developers" @@ -382,6 +399,8 @@ module.exports = nativeDescription: "Norwegian Nynorsk", englishDescription: "No # editor_config_keybindings_label: "Key Bindings" # editor_config_keybindings_default: "Default (Ace)" # editor_config_keybindings_description: "Adds additional shortcuts known from the common editors." +# editor_config_livecompletion_label: "Live Autocompletion" +# editor_config_livecompletion_description: "Displays autocomplete suggestions while typing." # editor_config_invisibles_label: "Show Invisibles" # editor_config_invisibles_description: "Displays invisibles such as spaces or tabs." # editor_config_indentguides_label: "Show Indent Guides" @@ -418,6 +437,7 @@ module.exports = nativeDescription: "Norwegian Nynorsk", englishDescription: "No # tip_impossible: "It always seems impossible until it's done. - Nelson Mandela" # tip_talk_is_cheap: "Talk is cheap. Show me the code. - Linus Torvalds" # tip_first_language: "The most disastrous thing that you can ever learn is your first programming language. - Alan Kay" +# tip_hardware_problem: "Q: How many programmers does it take to change a light bulb? A: None, it's a hardware problem." # time_current: "Now:" # time_total: "Max:" # time_goto: "Go to:" @@ -882,6 +902,8 @@ module.exports = nativeDescription: "Norwegian Nynorsk", englishDescription: "No # document: "Document" # sprite_sheet: "Sprite Sheet" # candidate_sessions: "Candidate Sessions" +# user_remark: "User Remark" +# versions: "Versions" # delta: # added: "Added" diff --git a/app/locale/no.coffee b/app/locale/no.coffee index 9764e3f23..12fea1777 100644 --- a/app/locale/no.coffee +++ b/app/locale/no.coffee @@ -236,7 +236,7 @@ module.exports = nativeDescription: "Norsk", englishDescription: "Norwegian", tr # basics_country: "Country" # basics_country_help: "Country you want to work in (or live in now)." # basics_visa: "US Work Status" -# basics_visa_help: "Are you authorized to work in the US, or do you need visa sponsorship?" +# basics_visa_help: "Are you authorized to work in the US, or do you need visa sponsorship? (If you live in Canada or Australia, mark authorized.)" # basics_looking_for: "Looking For" # basics_looking_for_full_time: "Full-time" # basics_looking_for_part_time: "Part-time" @@ -281,7 +281,8 @@ module.exports = nativeDescription: "Norsk", englishDescription: "Norwegian", tr # education_duration_help: "When?" # education_description: "Description" # education_description_help: "Highlight anything about this educational experience. (140 chars; optional)" -# our_notes: "Our Notes" +# our_notes: "CodeCombat's Notes" +# remarks: "Remarks" # projects: "Projects" # projects_header: "Add 3 projects" # projects_header_2: "Projects (Top 3)" @@ -297,22 +298,37 @@ module.exports = nativeDescription: "Norsk", englishDescription: "Norwegian", tr # player_code: "Player Code" # employers: -# want_to_hire_our_players: "Hire CodeCombat Players" +# hire_developers_not_credentials: "Hire developers, not credentials." +# get_started: "Get Started" +# already_screened: "We've already technically screened all our candidates" +# filter_further: ", but you can also filter further:" +# filter_visa: "Visa" +# filter_visa_yes: "US Authorized" +# filter_visa_no: "Not Authorized" +# filter_education_top: "Top School" +# filter_education_other: "Other" +# filter_role_web_developer: "Web Developer" +# filter_role_software_developer: "Software Developer" +# filter_role_mobile_developer: "Mobile Developer" +# filter_experience: "Experience" +# filter_experience_senior: "Senior" +# filter_experience_junior: "Junior" +# filter_experience_recent_grad: "Recent Grad" +# filter_experience_student: "College Student" +# filter_results: "results" +# start_hiring: "Start hiring." +# reasons: "Three reasons you should hire through us:" +# everyone_looking: "Everyone here is looking for their next opportunity." +# everyone_looking_blurb: "Forget about 20% LinkedIn InMail response rates. Everyone that we list on this site wants to find their next position and will respond to your request for an introduction." +# weeding: "Sit back; we've done the weeding for you." +# weeding_blurb: "Every player that we list has been screened for technical ability. We also perform phone screens for select candidates and make notes on their profiles to save you time." +# pass_screen: "They will pass your technical screen." +# pass_screen_blurb: "Review each candidate's code before reaching out. One employer found that 5x as many of our devs passed their technical screen than hiring from Hacker News." +# make_hiring_easier: "Make my hiring easier, please." # what: "What is CodeCombat?" # what_blurb: "CodeCombat is a multiplayer browser programming game. Players write code to control their forces in battle against other developers. We support JavaScript, Python, Lua, Clojure, CoffeeScript, and Io." -# who: "Who Are the Players?" -# who_blurb: "CodeCombateers are software developers who enjoy using their programming skills to play games. They range from college seniors at top 20 engineering programs to 20-year industry veterans." -# how: "How Do We Find Developers?" -# how_blurb: "We host competitive tournaments to attract competitive software engieneers. We then use in-house algorithms to identify the best players among the top 5% of tournament winners." -# why: "Why Hire Through Us?" -# why_blurb_1: "We will save you time. Every CodeCombateer we feaure is " -# why_blurb_2: "looking for work" -# why_blurb_3: ", has " -# why_blurb_4: "demonstrated top notch technical skills" -# why_blurb_5: ", and has been " -# why_blurb_6: "personally screened by us" -# why_blurb_7: ". Stop screening and start hiring." -# see_candidates: "Click here to see our candidates" +# cost: "How much do we charge?" +# cost_blurb: "We charge 15% of first year's salary and offer a 100% money back guarantee for 90 days. We don't charge for candidates who are already actively being interviewed at your company." # candidate_name: "Name" # candidate_location: "Location" # candidate_looking_for: "Looking For" @@ -320,6 +336,7 @@ module.exports = nativeDescription: "Norsk", englishDescription: "Norwegian", tr # candidate_top_skills: "Top Skills" # candidate_years_experience: "Yrs Exp" # candidate_last_updated: "Last Updated" +# candidate_who: "Who" # featured_developers: "Featured Developers" # other_developers: "Other Developers" # inactive_developers: "Inactive Developers" @@ -382,6 +399,8 @@ module.exports = nativeDescription: "Norsk", englishDescription: "Norwegian", tr # editor_config_keybindings_label: "Key Bindings" # editor_config_keybindings_default: "Default (Ace)" # editor_config_keybindings_description: "Adds additional shortcuts known from the common editors." +# editor_config_livecompletion_label: "Live Autocompletion" +# editor_config_livecompletion_description: "Displays autocomplete suggestions while typing." # editor_config_invisibles_label: "Show Invisibles" # editor_config_invisibles_description: "Displays invisibles such as spaces or tabs." # editor_config_indentguides_label: "Show Indent Guides" @@ -418,6 +437,7 @@ module.exports = nativeDescription: "Norsk", englishDescription: "Norwegian", tr # tip_impossible: "It always seems impossible until it's done. - Nelson Mandela" # tip_talk_is_cheap: "Talk is cheap. Show me the code. - Linus Torvalds" # tip_first_language: "The most disastrous thing that you can ever learn is your first programming language. - Alan Kay" +# tip_hardware_problem: "Q: How many programmers does it take to change a light bulb? A: None, it's a hardware problem." # time_current: "Now:" # time_total: "Max:" # time_goto: "Go to:" @@ -882,6 +902,8 @@ module.exports = nativeDescription: "Norsk", englishDescription: "Norwegian", tr # document: "Document" # sprite_sheet: "Sprite Sheet" # candidate_sessions: "Candidate Sessions" +# user_remark: "User Remark" +# versions: "Versions" # delta: # added: "Added" diff --git a/app/locale/pl.coffee b/app/locale/pl.coffee index 14ed9cec5..b5b4c1fc1 100644 --- a/app/locale/pl.coffee +++ b/app/locale/pl.coffee @@ -236,7 +236,7 @@ module.exports = nativeDescription: "język polski", englishDescription: "Polish # basics_country: "Country" # basics_country_help: "Country you want to work in (or live in now)." # basics_visa: "US Work Status" -# basics_visa_help: "Are you authorized to work in the US, or do you need visa sponsorship?" +# basics_visa_help: "Are you authorized to work in the US, or do you need visa sponsorship? (If you live in Canada or Australia, mark authorized.)" # basics_looking_for: "Looking For" # basics_looking_for_full_time: "Full-time" # basics_looking_for_part_time: "Part-time" @@ -281,7 +281,8 @@ module.exports = nativeDescription: "język polski", englishDescription: "Polish # education_duration_help: "When?" # education_description: "Description" # education_description_help: "Highlight anything about this educational experience. (140 chars; optional)" -# our_notes: "Our Notes" +# our_notes: "CodeCombat's Notes" +# remarks: "Remarks" # projects: "Projects" # projects_header: "Add 3 projects" # projects_header_2: "Projects (Top 3)" @@ -297,22 +298,37 @@ module.exports = nativeDescription: "język polski", englishDescription: "Polish # player_code: "Player Code" # employers: -# want_to_hire_our_players: "Hire CodeCombat Players" +# hire_developers_not_credentials: "Hire developers, not credentials." +# get_started: "Get Started" +# already_screened: "We've already technically screened all our candidates" +# filter_further: ", but you can also filter further:" +# filter_visa: "Visa" +# filter_visa_yes: "US Authorized" +# filter_visa_no: "Not Authorized" +# filter_education_top: "Top School" +# filter_education_other: "Other" +# filter_role_web_developer: "Web Developer" +# filter_role_software_developer: "Software Developer" +# filter_role_mobile_developer: "Mobile Developer" +# filter_experience: "Experience" +# filter_experience_senior: "Senior" +# filter_experience_junior: "Junior" +# filter_experience_recent_grad: "Recent Grad" +# filter_experience_student: "College Student" +# filter_results: "results" +# start_hiring: "Start hiring." +# reasons: "Three reasons you should hire through us:" +# everyone_looking: "Everyone here is looking for their next opportunity." +# everyone_looking_blurb: "Forget about 20% LinkedIn InMail response rates. Everyone that we list on this site wants to find their next position and will respond to your request for an introduction." +# weeding: "Sit back; we've done the weeding for you." +# weeding_blurb: "Every player that we list has been screened for technical ability. We also perform phone screens for select candidates and make notes on their profiles to save you time." +# pass_screen: "They will pass your technical screen." +# pass_screen_blurb: "Review each candidate's code before reaching out. One employer found that 5x as many of our devs passed their technical screen than hiring from Hacker News." +# make_hiring_easier: "Make my hiring easier, please." # what: "What is CodeCombat?" # what_blurb: "CodeCombat is a multiplayer browser programming game. Players write code to control their forces in battle against other developers. We support JavaScript, Python, Lua, Clojure, CoffeeScript, and Io." -# who: "Who Are the Players?" -# who_blurb: "CodeCombateers are software developers who enjoy using their programming skills to play games. They range from college seniors at top 20 engineering programs to 20-year industry veterans." -# how: "How Do We Find Developers?" -# how_blurb: "We host competitive tournaments to attract competitive software engieneers. We then use in-house algorithms to identify the best players among the top 5% of tournament winners." -# why: "Why Hire Through Us?" -# why_blurb_1: "We will save you time. Every CodeCombateer we feaure is " -# why_blurb_2: "looking for work" -# why_blurb_3: ", has " -# why_blurb_4: "demonstrated top notch technical skills" -# why_blurb_5: ", and has been " -# why_blurb_6: "personally screened by us" -# why_blurb_7: ". Stop screening and start hiring." -# see_candidates: "Click here to see our candidates" +# cost: "How much do we charge?" +# cost_blurb: "We charge 15% of first year's salary and offer a 100% money back guarantee for 90 days. We don't charge for candidates who are already actively being interviewed at your company." # candidate_name: "Name" # candidate_location: "Location" # candidate_looking_for: "Looking For" @@ -320,6 +336,7 @@ module.exports = nativeDescription: "język polski", englishDescription: "Polish # candidate_top_skills: "Top Skills" # candidate_years_experience: "Yrs Exp" # candidate_last_updated: "Last Updated" +# candidate_who: "Who" # featured_developers: "Featured Developers" # other_developers: "Other Developers" # inactive_developers: "Inactive Developers" @@ -382,6 +399,8 @@ module.exports = nativeDescription: "język polski", englishDescription: "Polish editor_config_keybindings_label: "Przypisania klawiszy" editor_config_keybindings_default: "Domyślny (Ace)" editor_config_keybindings_description: "Dodaje skróty znane z popularnych edytorów." +# editor_config_livecompletion_label: "Live Autocompletion" +# editor_config_livecompletion_description: "Displays autocomplete suggestions while typing." editor_config_invisibles_label: "Pokaż białe znaki" editor_config_invisibles_description: "Wyświetla białe znaki takie jak spacja czy tabulator." editor_config_indentguides_label: "Pokaż linijki wcięć" @@ -418,6 +437,7 @@ module.exports = nativeDescription: "język polski", englishDescription: "Polish # tip_impossible: "It always seems impossible until it's done. - Nelson Mandela" # tip_talk_is_cheap: "Talk is cheap. Show me the code. - Linus Torvalds" # tip_first_language: "The most disastrous thing that you can ever learn is your first programming language. - Alan Kay" +# tip_hardware_problem: "Q: How many programmers does it take to change a light bulb? A: None, it's a hardware problem." # time_current: "Now:" # time_total: "Max:" # time_goto: "Go to:" @@ -882,6 +902,8 @@ module.exports = nativeDescription: "język polski", englishDescription: "Polish # document: "Document" # sprite_sheet: "Sprite Sheet" # candidate_sessions: "Candidate Sessions" +# user_remark: "User Remark" +# versions: "Versions" # delta: # added: "Added" diff --git a/app/locale/pt-BR.coffee b/app/locale/pt-BR.coffee index c994afc46..5d2401c91 100644 --- a/app/locale/pt-BR.coffee +++ b/app/locale/pt-BR.coffee @@ -236,7 +236,7 @@ module.exports = nativeDescription: "português do Brasil", englishDescription: basics_country: "País" # basics_country_help: "Country you want to work in (or live in now)." # basics_visa: "US Work Status" -# basics_visa_help: "Are you authorized to work in the US, or do you need visa sponsorship?" +# basics_visa_help: "Are you authorized to work in the US, or do you need visa sponsorship? (If you live in Canada or Australia, mark authorized.)" # basics_looking_for: "Looking For" # basics_looking_for_full_time: "Full-time" # basics_looking_for_part_time: "Part-time" @@ -282,6 +282,7 @@ module.exports = nativeDescription: "português do Brasil", englishDescription: # education_description: "Description" # education_description_help: "Highlight anything about this educational experience. (140 chars; optional)" our_notes: "Nossas notas" +# remarks: "Remarks" projects: "Projetos" # projects_header: "Add 3 projects" # projects_header_2: "Projects (Top 3)" @@ -297,22 +298,37 @@ module.exports = nativeDescription: "português do Brasil", englishDescription: # player_code: "Player Code" # employers: -# want_to_hire_our_players: "Hire CodeCombat Players" +# hire_developers_not_credentials: "Hire developers, not credentials." +# get_started: "Get Started" +# already_screened: "We've already technically screened all our candidates" +# filter_further: ", but you can also filter further:" +# filter_visa: "Visa" +# filter_visa_yes: "US Authorized" +# filter_visa_no: "Not Authorized" +# filter_education_top: "Top School" +# filter_education_other: "Other" +# filter_role_web_developer: "Web Developer" +# filter_role_software_developer: "Software Developer" +# filter_role_mobile_developer: "Mobile Developer" +# filter_experience: "Experience" +# filter_experience_senior: "Senior" +# filter_experience_junior: "Junior" +# filter_experience_recent_grad: "Recent Grad" +# filter_experience_student: "College Student" +# filter_results: "results" +# start_hiring: "Start hiring." +# reasons: "Three reasons you should hire through us:" +# everyone_looking: "Everyone here is looking for their next opportunity." +# everyone_looking_blurb: "Forget about 20% LinkedIn InMail response rates. Everyone that we list on this site wants to find their next position and will respond to your request for an introduction." +# weeding: "Sit back; we've done the weeding for you." +# weeding_blurb: "Every player that we list has been screened for technical ability. We also perform phone screens for select candidates and make notes on their profiles to save you time." +# pass_screen: "They will pass your technical screen." +# pass_screen_blurb: "Review each candidate's code before reaching out. One employer found that 5x as many of our devs passed their technical screen than hiring from Hacker News." +# make_hiring_easier: "Make my hiring easier, please." # what: "What is CodeCombat?" # what_blurb: "CodeCombat is a multiplayer browser programming game. Players write code to control their forces in battle against other developers. We support JavaScript, Python, Lua, Clojure, CoffeeScript, and Io." -# who: "Who Are the Players?" -# who_blurb: "CodeCombateers are software developers who enjoy using their programming skills to play games. They range from college seniors at top 20 engineering programs to 20-year industry veterans." -# how: "How Do We Find Developers?" -# how_blurb: "We host competitive tournaments to attract competitive software engieneers. We then use in-house algorithms to identify the best players among the top 5% of tournament winners." -# why: "Why Hire Through Us?" -# why_blurb_1: "We will save you time. Every CodeCombateer we feaure is " -# why_blurb_2: "looking for work" -# why_blurb_3: ", has " -# why_blurb_4: "demonstrated top notch technical skills" -# why_blurb_5: ", and has been " -# why_blurb_6: "personally screened by us" -# why_blurb_7: ". Stop screening and start hiring." -# see_candidates: "Click here to see our candidates" +# cost: "How much do we charge?" +# cost_blurb: "We charge 15% of first year's salary and offer a 100% money back guarantee for 90 days. We don't charge for candidates who are already actively being interviewed at your company." # candidate_name: "Name" # candidate_location: "Location" # candidate_looking_for: "Looking For" @@ -320,6 +336,7 @@ module.exports = nativeDescription: "português do Brasil", englishDescription: # candidate_top_skills: "Top Skills" # candidate_years_experience: "Yrs Exp" # candidate_last_updated: "Last Updated" +# candidate_who: "Who" # featured_developers: "Featured Developers" # other_developers: "Other Developers" # inactive_developers: "Inactive Developers" @@ -382,6 +399,8 @@ module.exports = nativeDescription: "português do Brasil", englishDescription: editor_config_keybindings_label: "Teclas de Atalho" editor_config_keybindings_default: "Padrão (Ace)" editor_config_keybindings_description: "Adicionar atalhos conhecidos de editores comuns." +# editor_config_livecompletion_label: "Live Autocompletion" +# editor_config_livecompletion_description: "Displays autocomplete suggestions while typing." editor_config_invisibles_label: "Mostrar Invisíveis" editor_config_invisibles_description: "Mostrar invisíveis como espaços e tabs." editor_config_indentguides_label: "Mostrar Linhas de Identação" @@ -418,6 +437,7 @@ module.exports = nativeDescription: "português do Brasil", englishDescription: # tip_impossible: "It always seems impossible until it's done. - Nelson Mandela" # tip_talk_is_cheap: "Talk is cheap. Show me the code. - Linus Torvalds" # tip_first_language: "The most disastrous thing that you can ever learn is your first programming language. - Alan Kay" +# tip_hardware_problem: "Q: How many programmers does it take to change a light bulb? A: None, it's a hardware problem." # time_current: "Now:" # time_total: "Max:" # time_goto: "Go to:" @@ -882,6 +902,8 @@ module.exports = nativeDescription: "português do Brasil", englishDescription: # document: "Document" # sprite_sheet: "Sprite Sheet" # candidate_sessions: "Candidate Sessions" +# user_remark: "User Remark" +# versions: "Versions" # delta: # added: "Added" diff --git a/app/locale/pt-PT.coffee b/app/locale/pt-PT.coffee index 70e69d186..ccfd1d33c 100644 --- a/app/locale/pt-PT.coffee +++ b/app/locale/pt-PT.coffee @@ -12,11 +12,11 @@ module.exports = nativeDescription: "Português europeu", englishDescription: "P delay_3_sec: "3 segundos" delay_5_sec: "5 segundos" manual: "Manual" -# fork: "Fork" +# fork: "Fork" play: "Jogar" retry: "Tentar novamente" -# watch: "Watch" -# unwatch: "Unwatch" +# watch: "Watch" +# unwatch: "Unwatch" submit_patch: "Submeter Versão" units: @@ -236,7 +236,7 @@ module.exports = nativeDescription: "Português europeu", englishDescription: "P # basics_country: "Country" # basics_country_help: "Country you want to work in (or live in now)." # basics_visa: "US Work Status" -# basics_visa_help: "Are you authorized to work in the US, or do you need visa sponsorship?" +# basics_visa_help: "Are you authorized to work in the US, or do you need visa sponsorship? (If you live in Canada or Australia, mark authorized.)" # basics_looking_for: "Looking For" # basics_looking_for_full_time: "Full-time" # basics_looking_for_part_time: "Part-time" @@ -281,7 +281,7 @@ module.exports = nativeDescription: "Português europeu", englishDescription: "P # education_duration_help: "When?" # education_description: "Description" # education_description_help: "Highlight anything about this educational experience. (140 chars; optional)" -# our_notes: "Our Notes" +# our_notes: "CodeCombat's Notes" # remarks: "Remarks" # projects: "Projects" # projects_header: "Add 3 projects" @@ -298,26 +298,37 @@ module.exports = nativeDescription: "Português europeu", englishDescription: "P # player_code: "Player Code" employers: - want_to_hire_our_players: "Contratar Jogadores do CodeCombat" +# hire_developers_not_credentials: "Hire developers, not credentials." +# get_started: "Get Started" +# already_screened: "We've already technically screened all our candidates" +# filter_further: ", but you can also filter further:" +# filter_visa: "Visa" +# filter_visa_yes: "US Authorized" +# filter_visa_no: "Not Authorized" +# filter_education_top: "Top School" +# filter_education_other: "Other" +# filter_role_web_developer: "Web Developer" +# filter_role_software_developer: "Software Developer" +# filter_role_mobile_developer: "Mobile Developer" +# filter_experience: "Experience" +# filter_experience_senior: "Senior" +# filter_experience_junior: "Junior" +# filter_experience_recent_grad: "Recent Grad" +# filter_experience_student: "College Student" +# filter_results: "results" +# start_hiring: "Start hiring." +# reasons: "Three reasons you should hire through us:" +# everyone_looking: "Everyone here is looking for their next opportunity." +# everyone_looking_blurb: "Forget about 20% LinkedIn InMail response rates. Everyone that we list on this site wants to find their next position and will respond to your request for an introduction." +# weeding: "Sit back; we've done the weeding for you." +# weeding_blurb: "Every player that we list has been screened for technical ability. We also perform phone screens for select candidates and make notes on their profiles to save you time." +# pass_screen: "They will pass your technical screen." +# pass_screen_blurb: "Review each candidate's code before reaching out. One employer found that 5x as many of our devs passed their technical screen than hiring from Hacker News." +# make_hiring_easier: "Make my hiring easier, please." what: "O Que é o CodeCombat?" # what_blurb: "CodeCombat is a multiplayer browser programming game. Players write code to control their forces in battle against other developers. We support JavaScript, Python, Lua, Clojure, CoffeeScript, and Io." - who: "Quem São os Jogadores?" -# who_blurb: "CodeCombateers are software developers who enjoy using their programming skills to play games. They range from college seniors at top 20 engineering programs to 20-year industry veterans." - how: "Como Encontramos Desenvolvedores?" -# how_blurb: "We host competitive tournaments to attract competitive software engieneers. We then use in-house algorithms to identify the best players among the top 5% of tournament winners." - why: "Porquê Contratar Através de Nós?" -# why_blurb_1: "We will save you time. Every CodeCombateer we feaure is " # cost: "How much do we charge?" # cost_blurb: "We charge 15% of first year's salary and offer a 100% money back guarantee for 90 days. We don't charge for candidates who are already actively being interviewed at your company." -# response: "What's the response rate?" -# response_blurb: "Almost every developer you contact on CodeCombat will respond to inquires whether or not they want to interivew. If you would like help finding a candidate for your role, we can make recommendations." -# why_blurb_2: "looking for work" -# why_blurb_3: ", has " -# why_blurb_4: "demonstrated top notch technical skills" -# why_blurb_5: ", and has been " -# why_blurb_6: "personally screened by us" -# why_blurb_7: ". Stop screening and start hiring." - see_candidates: "Clique aqui para ver os nossos candidatos" candidate_name: "Nome" candidate_location: "Localização" candidate_looking_for: "À Procura de" @@ -388,6 +399,8 @@ module.exports = nativeDescription: "Português europeu", englishDescription: "P editor_config_keybindings_label: "Atalhos de Teclado" editor_config_keybindings_default: "Predefinição (Ace)" editor_config_keybindings_description: "Adiciona atalhos de teclado de acordo com o editor escolhido" +# editor_config_livecompletion_label: "Live Autocompletion" +# editor_config_livecompletion_description: "Displays autocomplete suggestions while typing." editor_config_invisibles_label: "Mostrar Invisíveis" editor_config_invisibles_description: "Mostra caracteres invisíveis como espaços e tabulações" editor_config_indentguides_label: "Mostrar Guias" @@ -424,6 +437,7 @@ module.exports = nativeDescription: "Português europeu", englishDescription: "P # tip_impossible: "It always seems impossible until it's done. - Nelson Mandela" # tip_talk_is_cheap: "Talk is cheap. Show me the code. - Linus Torvalds" # tip_first_language: "The most disastrous thing that you can ever learn is your first programming language. - Alan Kay" +# tip_hardware_problem: "Q: How many programmers does it take to change a light bulb? A: None, it's a hardware problem." # time_current: "Now:" # time_total: "Max:" # time_goto: "Go to:" @@ -888,6 +902,8 @@ module.exports = nativeDescription: "Português europeu", englishDescription: "P # document: "Document" # sprite_sheet: "Sprite Sheet" # candidate_sessions: "Candidate Sessions" +# user_remark: "User Remark" +# versions: "Versions" # delta: # added: "Added" diff --git a/app/locale/pt.coffee b/app/locale/pt.coffee index f2c55aa9f..dd75d506b 100644 --- a/app/locale/pt.coffee +++ b/app/locale/pt.coffee @@ -236,7 +236,7 @@ module.exports = nativeDescription: "português", englishDescription: "Portugues # basics_country: "Country" # basics_country_help: "Country you want to work in (or live in now)." # basics_visa: "US Work Status" -# basics_visa_help: "Are you authorized to work in the US, or do you need visa sponsorship?" +# basics_visa_help: "Are you authorized to work in the US, or do you need visa sponsorship? (If you live in Canada or Australia, mark authorized.)" # basics_looking_for: "Looking For" # basics_looking_for_full_time: "Full-time" # basics_looking_for_part_time: "Part-time" @@ -281,7 +281,8 @@ module.exports = nativeDescription: "português", englishDescription: "Portugues # education_duration_help: "When?" # education_description: "Description" # education_description_help: "Highlight anything about this educational experience. (140 chars; optional)" -# our_notes: "Our Notes" +# our_notes: "CodeCombat's Notes" +# remarks: "Remarks" # projects: "Projects" # projects_header: "Add 3 projects" # projects_header_2: "Projects (Top 3)" @@ -297,22 +298,37 @@ module.exports = nativeDescription: "português", englishDescription: "Portugues # player_code: "Player Code" # employers: -# want_to_hire_our_players: "Hire CodeCombat Players" +# hire_developers_not_credentials: "Hire developers, not credentials." +# get_started: "Get Started" +# already_screened: "We've already technically screened all our candidates" +# filter_further: ", but you can also filter further:" +# filter_visa: "Visa" +# filter_visa_yes: "US Authorized" +# filter_visa_no: "Not Authorized" +# filter_education_top: "Top School" +# filter_education_other: "Other" +# filter_role_web_developer: "Web Developer" +# filter_role_software_developer: "Software Developer" +# filter_role_mobile_developer: "Mobile Developer" +# filter_experience: "Experience" +# filter_experience_senior: "Senior" +# filter_experience_junior: "Junior" +# filter_experience_recent_grad: "Recent Grad" +# filter_experience_student: "College Student" +# filter_results: "results" +# start_hiring: "Start hiring." +# reasons: "Three reasons you should hire through us:" +# everyone_looking: "Everyone here is looking for their next opportunity." +# everyone_looking_blurb: "Forget about 20% LinkedIn InMail response rates. Everyone that we list on this site wants to find their next position and will respond to your request for an introduction." +# weeding: "Sit back; we've done the weeding for you." +# weeding_blurb: "Every player that we list has been screened for technical ability. We also perform phone screens for select candidates and make notes on their profiles to save you time." +# pass_screen: "They will pass your technical screen." +# pass_screen_blurb: "Review each candidate's code before reaching out. One employer found that 5x as many of our devs passed their technical screen than hiring from Hacker News." +# make_hiring_easier: "Make my hiring easier, please." # what: "What is CodeCombat?" # what_blurb: "CodeCombat is a multiplayer browser programming game. Players write code to control their forces in battle against other developers. We support JavaScript, Python, Lua, Clojure, CoffeeScript, and Io." -# who: "Who Are the Players?" -# who_blurb: "CodeCombateers are software developers who enjoy using their programming skills to play games. They range from college seniors at top 20 engineering programs to 20-year industry veterans." -# how: "How Do We Find Developers?" -# how_blurb: "We host competitive tournaments to attract competitive software engieneers. We then use in-house algorithms to identify the best players among the top 5% of tournament winners." -# why: "Why Hire Through Us?" -# why_blurb_1: "We will save you time. Every CodeCombateer we feaure is " -# why_blurb_2: "looking for work" -# why_blurb_3: ", has " -# why_blurb_4: "demonstrated top notch technical skills" -# why_blurb_5: ", and has been " -# why_blurb_6: "personally screened by us" -# why_blurb_7: ". Stop screening and start hiring." -# see_candidates: "Click here to see our candidates" +# cost: "How much do we charge?" +# cost_blurb: "We charge 15% of first year's salary and offer a 100% money back guarantee for 90 days. We don't charge for candidates who are already actively being interviewed at your company." # candidate_name: "Name" # candidate_location: "Location" # candidate_looking_for: "Looking For" @@ -320,6 +336,7 @@ module.exports = nativeDescription: "português", englishDescription: "Portugues # candidate_top_skills: "Top Skills" # candidate_years_experience: "Yrs Exp" # candidate_last_updated: "Last Updated" +# candidate_who: "Who" # featured_developers: "Featured Developers" # other_developers: "Other Developers" # inactive_developers: "Inactive Developers" @@ -382,6 +399,8 @@ module.exports = nativeDescription: "português", englishDescription: "Portugues # editor_config_keybindings_label: "Key Bindings" # editor_config_keybindings_default: "Default (Ace)" # editor_config_keybindings_description: "Adds additional shortcuts known from the common editors." +# editor_config_livecompletion_label: "Live Autocompletion" +# editor_config_livecompletion_description: "Displays autocomplete suggestions while typing." # editor_config_invisibles_label: "Show Invisibles" # editor_config_invisibles_description: "Displays invisibles such as spaces or tabs." # editor_config_indentguides_label: "Show Indent Guides" @@ -418,6 +437,7 @@ module.exports = nativeDescription: "português", englishDescription: "Portugues # tip_impossible: "It always seems impossible until it's done. - Nelson Mandela" # tip_talk_is_cheap: "Talk is cheap. Show me the code. - Linus Torvalds" # tip_first_language: "The most disastrous thing that you can ever learn is your first programming language. - Alan Kay" +# tip_hardware_problem: "Q: How many programmers does it take to change a light bulb? A: None, it's a hardware problem." # time_current: "Now:" # time_total: "Max:" # time_goto: "Go to:" @@ -882,6 +902,8 @@ module.exports = nativeDescription: "português", englishDescription: "Portugues # document: "Document" # sprite_sheet: "Sprite Sheet" # candidate_sessions: "Candidate Sessions" +# user_remark: "User Remark" +# versions: "Versions" # delta: # added: "Added" diff --git a/app/locale/ro.coffee b/app/locale/ro.coffee index 23f636da2..2f2ad4c65 100644 --- a/app/locale/ro.coffee +++ b/app/locale/ro.coffee @@ -236,7 +236,7 @@ module.exports = nativeDescription: "limba română", englishDescription: "Roman # basics_country: "Country" # basics_country_help: "Country you want to work in (or live in now)." # basics_visa: "US Work Status" -# basics_visa_help: "Are you authorized to work in the US, or do you need visa sponsorship?" +# basics_visa_help: "Are you authorized to work in the US, or do you need visa sponsorship? (If you live in Canada or Australia, mark authorized.)" # basics_looking_for: "Looking For" # basics_looking_for_full_time: "Full-time" # basics_looking_for_part_time: "Part-time" @@ -281,7 +281,8 @@ module.exports = nativeDescription: "limba română", englishDescription: "Roman # education_duration_help: "When?" # education_description: "Description" # education_description_help: "Highlight anything about this educational experience. (140 chars; optional)" -# our_notes: "Our Notes" +# our_notes: "CodeCombat's Notes" +# remarks: "Remarks" # projects: "Projects" # projects_header: "Add 3 projects" # projects_header_2: "Projects (Top 3)" @@ -297,22 +298,37 @@ module.exports = nativeDescription: "limba română", englishDescription: "Roman # player_code: "Player Code" # employers: -# want_to_hire_our_players: "Hire CodeCombat Players" +# hire_developers_not_credentials: "Hire developers, not credentials." +# get_started: "Get Started" +# already_screened: "We've already technically screened all our candidates" +# filter_further: ", but you can also filter further:" +# filter_visa: "Visa" +# filter_visa_yes: "US Authorized" +# filter_visa_no: "Not Authorized" +# filter_education_top: "Top School" +# filter_education_other: "Other" +# filter_role_web_developer: "Web Developer" +# filter_role_software_developer: "Software Developer" +# filter_role_mobile_developer: "Mobile Developer" +# filter_experience: "Experience" +# filter_experience_senior: "Senior" +# filter_experience_junior: "Junior" +# filter_experience_recent_grad: "Recent Grad" +# filter_experience_student: "College Student" +# filter_results: "results" +# start_hiring: "Start hiring." +# reasons: "Three reasons you should hire through us:" +# everyone_looking: "Everyone here is looking for their next opportunity." +# everyone_looking_blurb: "Forget about 20% LinkedIn InMail response rates. Everyone that we list on this site wants to find their next position and will respond to your request for an introduction." +# weeding: "Sit back; we've done the weeding for you." +# weeding_blurb: "Every player that we list has been screened for technical ability. We also perform phone screens for select candidates and make notes on their profiles to save you time." +# pass_screen: "They will pass your technical screen." +# pass_screen_blurb: "Review each candidate's code before reaching out. One employer found that 5x as many of our devs passed their technical screen than hiring from Hacker News." +# make_hiring_easier: "Make my hiring easier, please." # what: "What is CodeCombat?" # what_blurb: "CodeCombat is a multiplayer browser programming game. Players write code to control their forces in battle against other developers. We support JavaScript, Python, Lua, Clojure, CoffeeScript, and Io." -# who: "Who Are the Players?" -# who_blurb: "CodeCombateers are software developers who enjoy using their programming skills to play games. They range from college seniors at top 20 engineering programs to 20-year industry veterans." -# how: "How Do We Find Developers?" -# how_blurb: "We host competitive tournaments to attract competitive software engieneers. We then use in-house algorithms to identify the best players among the top 5% of tournament winners." -# why: "Why Hire Through Us?" -# why_blurb_1: "We will save you time. Every CodeCombateer we feaure is " -# why_blurb_2: "looking for work" -# why_blurb_3: ", has " -# why_blurb_4: "demonstrated top notch technical skills" -# why_blurb_5: ", and has been " -# why_blurb_6: "personally screened by us" -# why_blurb_7: ". Stop screening and start hiring." -# see_candidates: "Click here to see our candidates" +# cost: "How much do we charge?" +# cost_blurb: "We charge 15% of first year's salary and offer a 100% money back guarantee for 90 days. We don't charge for candidates who are already actively being interviewed at your company." # candidate_name: "Name" # candidate_location: "Location" # candidate_looking_for: "Looking For" @@ -320,6 +336,7 @@ module.exports = nativeDescription: "limba română", englishDescription: "Roman # candidate_top_skills: "Top Skills" # candidate_years_experience: "Yrs Exp" # candidate_last_updated: "Last Updated" +# candidate_who: "Who" # featured_developers: "Featured Developers" # other_developers: "Other Developers" # inactive_developers: "Inactive Developers" @@ -382,6 +399,8 @@ module.exports = nativeDescription: "limba română", englishDescription: "Roman editor_config_keybindings_label: "Mapare taste" editor_config_keybindings_default: "Default (Ace)" editor_config_keybindings_description: "Adaugă comenzi rapide suplimentare cunoscute din editoarele obisnuite." +# editor_config_livecompletion_label: "Live Autocompletion" +# editor_config_livecompletion_description: "Displays autocomplete suggestions while typing." editor_config_invisibles_label: "Arată etichetele invizibile" editor_config_invisibles_description: "Arată spațiile și taburile invizibile." editor_config_indentguides_label: "Arată ghidul de indentare" @@ -418,6 +437,7 @@ module.exports = nativeDescription: "limba română", englishDescription: "Roman # tip_impossible: "It always seems impossible until it's done. - Nelson Mandela" # tip_talk_is_cheap: "Talk is cheap. Show me the code. - Linus Torvalds" # tip_first_language: "The most disastrous thing that you can ever learn is your first programming language. - Alan Kay" +# tip_hardware_problem: "Q: How many programmers does it take to change a light bulb? A: None, it's a hardware problem." # time_current: "Now:" # time_total: "Max:" # time_goto: "Go to:" @@ -882,6 +902,8 @@ module.exports = nativeDescription: "limba română", englishDescription: "Roman # document: "Document" # sprite_sheet: "Sprite Sheet" # candidate_sessions: "Candidate Sessions" +# user_remark: "User Remark" +# versions: "Versions" # delta: # added: "Added" diff --git a/app/locale/ru.coffee b/app/locale/ru.coffee index ed678bcbd..77fa0be45 100644 --- a/app/locale/ru.coffee +++ b/app/locale/ru.coffee @@ -236,7 +236,7 @@ module.exports = nativeDescription: "русский", englishDescription: "Russi basics_country: "Страна" # basics_country_help: "Country you want to work in (or live in now)." # basics_visa: "US Work Status" -# basics_visa_help: "Are you authorized to work in the US, or do you need visa sponsorship?" +# basics_visa_help: "Are you authorized to work in the US, or do you need visa sponsorship? (If you live in Canada or Australia, mark authorized.)" # basics_looking_for: "Looking For" basics_looking_for_full_time: "Полная занятость" basics_looking_for_part_time: "Частичная занятость" @@ -282,6 +282,7 @@ module.exports = nativeDescription: "русский", englishDescription: "Russi education_description: "Описание" # education_description_help: "Highlight anything about this educational experience. (140 chars; optional)" our_notes: "Наши заметки" +# remarks: "Remarks" projects: "Проекты" projects_header: "Добавьте 3 проекта" projects_header_2: "Проекты (3 самых лучших)" @@ -297,22 +298,37 @@ module.exports = nativeDescription: "русский", englishDescription: "Russi # player_code: "Player Code" employers: - want_to_hire_our_players: "Хотите нанимать игроков-экспертов CodeCombat?" +# hire_developers_not_credentials: "Hire developers, not credentials." +# get_started: "Get Started" +# already_screened: "We've already technically screened all our candidates" +# filter_further: ", but you can also filter further:" +# filter_visa: "Visa" +# filter_visa_yes: "US Authorized" +# filter_visa_no: "Not Authorized" +# filter_education_top: "Top School" +# filter_education_other: "Other" +# filter_role_web_developer: "Web Developer" +# filter_role_software_developer: "Software Developer" +# filter_role_mobile_developer: "Mobile Developer" +# filter_experience: "Experience" +# filter_experience_senior: "Senior" +# filter_experience_junior: "Junior" +# filter_experience_recent_grad: "Recent Grad" +# filter_experience_student: "College Student" +# filter_results: "results" +# start_hiring: "Start hiring." +# reasons: "Three reasons you should hire through us:" +# everyone_looking: "Everyone here is looking for their next opportunity." +# everyone_looking_blurb: "Forget about 20% LinkedIn InMail response rates. Everyone that we list on this site wants to find their next position and will respond to your request for an introduction." +# weeding: "Sit back; we've done the weeding for you." +# weeding_blurb: "Every player that we list has been screened for technical ability. We also perform phone screens for select candidates and make notes on their profiles to save you time." +# pass_screen: "They will pass your technical screen." +# pass_screen_blurb: "Review each candidate's code before reaching out. One employer found that 5x as many of our devs passed their technical screen than hiring from Hacker News." +# make_hiring_easier: "Make my hiring easier, please." # what: "What is CodeCombat?" # what_blurb: "CodeCombat is a multiplayer browser programming game. Players write code to control their forces in battle against other developers. We support JavaScript, Python, Lua, Clojure, CoffeeScript, and Io." -# who: "Who Are the Players?" -# who_blurb: "CodeCombateers are software developers who enjoy using their programming skills to play games. They range from college seniors at top 20 engineering programs to 20-year industry veterans." - how: "Как мы находим разработчиков?" -# how_blurb: "We host competitive tournaments to attract competitive software engieneers. We then use in-house algorithms to identify the best players among the top 5% of tournament winners." -# why: "Why Hire Through Us?" -# why_blurb_1: "We will save you time. Every CodeCombateer we feaure is " -# why_blurb_2: "looking for work" -# why_blurb_3: ", has " -# why_blurb_4: "demonstrated top notch technical skills" -# why_blurb_5: ", and has been " -# why_blurb_6: "personally screened by us" -# why_blurb_7: ". Stop screening and start hiring." - see_candidates: "Щёлкните, чтобы посмотреть наших кандидатов" +# cost: "How much do we charge?" +# cost_blurb: "We charge 15% of first year's salary and offer a 100% money back guarantee for 90 days. We don't charge for candidates who are already actively being interviewed at your company." candidate_name: "Имя" candidate_location: "Местонахождение" candidate_looking_for: "Ищет" @@ -320,6 +336,7 @@ module.exports = nativeDescription: "русский", englishDescription: "Russi candidate_top_skills: "Лучшие навыки" candidate_years_experience: "Лет опыта" candidate_last_updated: "Последнее обновление" +# candidate_who: "Who" # featured_developers: "Featured Developers" # other_developers: "Other Developers" # inactive_developers: "Inactive Developers" @@ -382,6 +399,8 @@ module.exports = nativeDescription: "русский", englishDescription: "Russi editor_config_keybindings_label: "Сочетания клавиш" editor_config_keybindings_default: "По умолчанию (Ace)" editor_config_keybindings_description: "Добавляет дополнительные сочетания, известные из популярных редакторов." +# editor_config_livecompletion_label: "Live Autocompletion" +# editor_config_livecompletion_description: "Displays autocomplete suggestions while typing." editor_config_invisibles_label: "Показывать непечатные символы" editor_config_invisibles_description: "Отображение непечатных символов, таких как пробелы или табуляции." editor_config_indentguides_label: "Показывать направляющие отступов" @@ -418,6 +437,7 @@ module.exports = nativeDescription: "русский", englishDescription: "Russi tip_impossible: "Это всегда кажется невозможным, пока не сделано. - Nelson Mandela" tip_talk_is_cheap: "Слова ничего не стоят. Покажи мне код. - Linus Torvalds" tip_first_language: "Наиболее катастрофическая вещь, которую вы можете выучить - ваш первый язык программирования. - Alan Kay" +# tip_hardware_problem: "Q: How many programmers does it take to change a light bulb? A: None, it's a hardware problem." time_current: "Текущее:" time_total: "Максимальное:" time_goto: "Перейти на:" @@ -815,13 +835,13 @@ module.exports = nativeDescription: "русский", englishDescription: "Russi # prizes: "Prizes" # total_value: "Total Value" # in_cash: "in cash" - custom_wizard: "Изменить волшебника CodeCombat" - custom_avatar: "Изменить аватар CodeCombat" +# custom_wizard: "Custom CodeCombat Wizard" +# custom_avatar: "Custom CodeCombat avatar" # heap: "for six months of \"Startup\" access" # credits: "credits" # one_month_coupon: "coupon: choose either Rails or HTML" # one_month_discount: "discount, 30% off: choose either Rails or HTML" - license: "лицензия" +# license: "license" # oreilly: "ebook of your choice" multiplayer_launch: @@ -882,6 +902,8 @@ module.exports = nativeDescription: "русский", englishDescription: "Russi document: "Документ" # sprite_sheet: "Sprite Sheet" # candidate_sessions: "Candidate Sessions" +# user_remark: "User Remark" +# versions: "Versions" delta: added: "Добавлено" diff --git a/app/locale/sk.coffee b/app/locale/sk.coffee index 06fc9ed5f..d2db15a1a 100644 --- a/app/locale/sk.coffee +++ b/app/locale/sk.coffee @@ -236,7 +236,7 @@ module.exports = nativeDescription: "slovenčina", englishDescription: "Slovak", # basics_country: "Country" # basics_country_help: "Country you want to work in (or live in now)." # basics_visa: "US Work Status" -# basics_visa_help: "Are you authorized to work in the US, or do you need visa sponsorship?" +# basics_visa_help: "Are you authorized to work in the US, or do you need visa sponsorship? (If you live in Canada or Australia, mark authorized.)" # basics_looking_for: "Looking For" # basics_looking_for_full_time: "Full-time" # basics_looking_for_part_time: "Part-time" @@ -281,7 +281,8 @@ module.exports = nativeDescription: "slovenčina", englishDescription: "Slovak", # education_duration_help: "When?" # education_description: "Description" # education_description_help: "Highlight anything about this educational experience. (140 chars; optional)" -# our_notes: "Our Notes" +# our_notes: "CodeCombat's Notes" +# remarks: "Remarks" # projects: "Projects" # projects_header: "Add 3 projects" # projects_header_2: "Projects (Top 3)" @@ -297,22 +298,37 @@ module.exports = nativeDescription: "slovenčina", englishDescription: "Slovak", # player_code: "Player Code" # employers: -# want_to_hire_our_players: "Hire CodeCombat Players" +# hire_developers_not_credentials: "Hire developers, not credentials." +# get_started: "Get Started" +# already_screened: "We've already technically screened all our candidates" +# filter_further: ", but you can also filter further:" +# filter_visa: "Visa" +# filter_visa_yes: "US Authorized" +# filter_visa_no: "Not Authorized" +# filter_education_top: "Top School" +# filter_education_other: "Other" +# filter_role_web_developer: "Web Developer" +# filter_role_software_developer: "Software Developer" +# filter_role_mobile_developer: "Mobile Developer" +# filter_experience: "Experience" +# filter_experience_senior: "Senior" +# filter_experience_junior: "Junior" +# filter_experience_recent_grad: "Recent Grad" +# filter_experience_student: "College Student" +# filter_results: "results" +# start_hiring: "Start hiring." +# reasons: "Three reasons you should hire through us:" +# everyone_looking: "Everyone here is looking for their next opportunity." +# everyone_looking_blurb: "Forget about 20% LinkedIn InMail response rates. Everyone that we list on this site wants to find their next position and will respond to your request for an introduction." +# weeding: "Sit back; we've done the weeding for you." +# weeding_blurb: "Every player that we list has been screened for technical ability. We also perform phone screens for select candidates and make notes on their profiles to save you time." +# pass_screen: "They will pass your technical screen." +# pass_screen_blurb: "Review each candidate's code before reaching out. One employer found that 5x as many of our devs passed their technical screen than hiring from Hacker News." +# make_hiring_easier: "Make my hiring easier, please." # what: "What is CodeCombat?" # what_blurb: "CodeCombat is a multiplayer browser programming game. Players write code to control their forces in battle against other developers. We support JavaScript, Python, Lua, Clojure, CoffeeScript, and Io." -# who: "Who Are the Players?" -# who_blurb: "CodeCombateers are software developers who enjoy using their programming skills to play games. They range from college seniors at top 20 engineering programs to 20-year industry veterans." -# how: "How Do We Find Developers?" -# how_blurb: "We host competitive tournaments to attract competitive software engieneers. We then use in-house algorithms to identify the best players among the top 5% of tournament winners." -# why: "Why Hire Through Us?" -# why_blurb_1: "We will save you time. Every CodeCombateer we feaure is " -# why_blurb_2: "looking for work" -# why_blurb_3: ", has " -# why_blurb_4: "demonstrated top notch technical skills" -# why_blurb_5: ", and has been " -# why_blurb_6: "personally screened by us" -# why_blurb_7: ". Stop screening and start hiring." -# see_candidates: "Click here to see our candidates" +# cost: "How much do we charge?" +# cost_blurb: "We charge 15% of first year's salary and offer a 100% money back guarantee for 90 days. We don't charge for candidates who are already actively being interviewed at your company." # candidate_name: "Name" # candidate_location: "Location" # candidate_looking_for: "Looking For" @@ -320,6 +336,7 @@ module.exports = nativeDescription: "slovenčina", englishDescription: "Slovak", # candidate_top_skills: "Top Skills" # candidate_years_experience: "Yrs Exp" # candidate_last_updated: "Last Updated" +# candidate_who: "Who" # featured_developers: "Featured Developers" # other_developers: "Other Developers" # inactive_developers: "Inactive Developers" @@ -382,6 +399,8 @@ module.exports = nativeDescription: "slovenčina", englishDescription: "Slovak", # editor_config_keybindings_label: "Key Bindings" # editor_config_keybindings_default: "Default (Ace)" # editor_config_keybindings_description: "Adds additional shortcuts known from the common editors." +# editor_config_livecompletion_label: "Live Autocompletion" +# editor_config_livecompletion_description: "Displays autocomplete suggestions while typing." # editor_config_invisibles_label: "Show Invisibles" # editor_config_invisibles_description: "Displays invisibles such as spaces or tabs." # editor_config_indentguides_label: "Show Indent Guides" @@ -418,6 +437,7 @@ module.exports = nativeDescription: "slovenčina", englishDescription: "Slovak", # tip_impossible: "It always seems impossible until it's done. - Nelson Mandela" # tip_talk_is_cheap: "Talk is cheap. Show me the code. - Linus Torvalds" # tip_first_language: "The most disastrous thing that you can ever learn is your first programming language. - Alan Kay" +# tip_hardware_problem: "Q: How many programmers does it take to change a light bulb? A: None, it's a hardware problem." # time_current: "Now:" # time_total: "Max:" # time_goto: "Go to:" @@ -882,6 +902,8 @@ module.exports = nativeDescription: "slovenčina", englishDescription: "Slovak", # document: "Document" # sprite_sheet: "Sprite Sheet" # candidate_sessions: "Candidate Sessions" +# user_remark: "User Remark" +# versions: "Versions" # delta: # added: "Added" diff --git a/app/locale/sl.coffee b/app/locale/sl.coffee index 953de4e2b..4323e23c1 100644 --- a/app/locale/sl.coffee +++ b/app/locale/sl.coffee @@ -90,7 +90,7 @@ module.exports = nativeDescription: "slovenščina", englishDescription: "Sloven # required: "You need to log in before you can go that way." # home: -# slogan: "Learn to Code JavaScript by Playing a Game" +# slogan: "Learn to Code by Playing a Game" # no_ie: "CodeCombat does not run in Internet Explorer 9 or older. Sorry!" # no_mobile: "CodeCombat wasn't designed for mobile devices and may not work!" # play: "Play" @@ -236,7 +236,7 @@ module.exports = nativeDescription: "slovenščina", englishDescription: "Sloven # basics_country: "Country" # basics_country_help: "Country you want to work in (or live in now)." # basics_visa: "US Work Status" -# basics_visa_help: "Are you authorized to work in the US, or do you need visa sponsorship?" +# basics_visa_help: "Are you authorized to work in the US, or do you need visa sponsorship? (If you live in Canada or Australia, mark authorized.)" # basics_looking_for: "Looking For" # basics_looking_for_full_time: "Full-time" # basics_looking_for_part_time: "Part-time" @@ -281,7 +281,8 @@ module.exports = nativeDescription: "slovenščina", englishDescription: "Sloven # education_duration_help: "When?" # education_description: "Description" # education_description_help: "Highlight anything about this educational experience. (140 chars; optional)" -# our_notes: "Our Notes" +# our_notes: "CodeCombat's Notes" +# remarks: "Remarks" # projects: "Projects" # projects_header: "Add 3 projects" # projects_header_2: "Projects (Top 3)" @@ -297,22 +298,37 @@ module.exports = nativeDescription: "slovenščina", englishDescription: "Sloven # player_code: "Player Code" # employers: -# want_to_hire_our_players: "Hire CodeCombat Players" +# hire_developers_not_credentials: "Hire developers, not credentials." +# get_started: "Get Started" +# already_screened: "We've already technically screened all our candidates" +# filter_further: ", but you can also filter further:" +# filter_visa: "Visa" +# filter_visa_yes: "US Authorized" +# filter_visa_no: "Not Authorized" +# filter_education_top: "Top School" +# filter_education_other: "Other" +# filter_role_web_developer: "Web Developer" +# filter_role_software_developer: "Software Developer" +# filter_role_mobile_developer: "Mobile Developer" +# filter_experience: "Experience" +# filter_experience_senior: "Senior" +# filter_experience_junior: "Junior" +# filter_experience_recent_grad: "Recent Grad" +# filter_experience_student: "College Student" +# filter_results: "results" +# start_hiring: "Start hiring." +# reasons: "Three reasons you should hire through us:" +# everyone_looking: "Everyone here is looking for their next opportunity." +# everyone_looking_blurb: "Forget about 20% LinkedIn InMail response rates. Everyone that we list on this site wants to find their next position and will respond to your request for an introduction." +# weeding: "Sit back; we've done the weeding for you." +# weeding_blurb: "Every player that we list has been screened for technical ability. We also perform phone screens for select candidates and make notes on their profiles to save you time." +# pass_screen: "They will pass your technical screen." +# pass_screen_blurb: "Review each candidate's code before reaching out. One employer found that 5x as many of our devs passed their technical screen than hiring from Hacker News." +# make_hiring_easier: "Make my hiring easier, please." # what: "What is CodeCombat?" # what_blurb: "CodeCombat is a multiplayer browser programming game. Players write code to control their forces in battle against other developers. We support JavaScript, Python, Lua, Clojure, CoffeeScript, and Io." -# who: "Who Are the Players?" -# who_blurb: "CodeCombateers are software developers who enjoy using their programming skills to play games. They range from college seniors at top 20 engineering programs to 20-year industry veterans." -# how: "How Do We Find Developers?" -# how_blurb: "We host competitive tournaments to attract competitive software engieneers. We then use in-house algorithms to identify the best players among the top 5% of tournament winners." -# why: "Why Hire Through Us?" -# why_blurb_1: "We will save you time. Every CodeCombateer we feaure is " -# why_blurb_2: "looking for work" -# why_blurb_3: ", has " -# why_blurb_4: "demonstrated top notch technical skills" -# why_blurb_5: ", and has been " -# why_blurb_6: "personally screened by us" -# why_blurb_7: ". Stop screening and start hiring." -# see_candidates: "Click here to see our candidates" +# cost: "How much do we charge?" +# cost_blurb: "We charge 15% of first year's salary and offer a 100% money back guarantee for 90 days. We don't charge for candidates who are already actively being interviewed at your company." # candidate_name: "Name" # candidate_location: "Location" # candidate_looking_for: "Looking For" @@ -320,6 +336,7 @@ module.exports = nativeDescription: "slovenščina", englishDescription: "Sloven # candidate_top_skills: "Top Skills" # candidate_years_experience: "Yrs Exp" # candidate_last_updated: "Last Updated" +# candidate_who: "Who" # featured_developers: "Featured Developers" # other_developers: "Other Developers" # inactive_developers: "Inactive Developers" @@ -382,6 +399,8 @@ module.exports = nativeDescription: "slovenščina", englishDescription: "Sloven # editor_config_keybindings_label: "Key Bindings" # editor_config_keybindings_default: "Default (Ace)" # editor_config_keybindings_description: "Adds additional shortcuts known from the common editors." +# editor_config_livecompletion_label: "Live Autocompletion" +# editor_config_livecompletion_description: "Displays autocomplete suggestions while typing." # editor_config_invisibles_label: "Show Invisibles" # editor_config_invisibles_description: "Displays invisibles such as spaces or tabs." # editor_config_indentguides_label: "Show Indent Guides" @@ -418,6 +437,7 @@ module.exports = nativeDescription: "slovenščina", englishDescription: "Sloven # tip_impossible: "It always seems impossible until it's done. - Nelson Mandela" # tip_talk_is_cheap: "Talk is cheap. Show me the code. - Linus Torvalds" # tip_first_language: "The most disastrous thing that you can ever learn is your first programming language. - Alan Kay" +# tip_hardware_problem: "Q: How many programmers does it take to change a light bulb? A: None, it's a hardware problem." # time_current: "Now:" # time_total: "Max:" # time_goto: "Go to:" @@ -882,6 +902,8 @@ module.exports = nativeDescription: "slovenščina", englishDescription: "Sloven # document: "Document" # sprite_sheet: "Sprite Sheet" # candidate_sessions: "Candidate Sessions" +# user_remark: "User Remark" +# versions: "Versions" # delta: # added: "Added" diff --git a/app/locale/sr.coffee b/app/locale/sr.coffee index 3bea2b668..801791e04 100644 --- a/app/locale/sr.coffee +++ b/app/locale/sr.coffee @@ -236,7 +236,7 @@ module.exports = nativeDescription: "српски", englishDescription: "Serbian # basics_country: "Country" # basics_country_help: "Country you want to work in (or live in now)." # basics_visa: "US Work Status" -# basics_visa_help: "Are you authorized to work in the US, or do you need visa sponsorship?" +# basics_visa_help: "Are you authorized to work in the US, or do you need visa sponsorship? (If you live in Canada or Australia, mark authorized.)" # basics_looking_for: "Looking For" # basics_looking_for_full_time: "Full-time" # basics_looking_for_part_time: "Part-time" @@ -281,7 +281,8 @@ module.exports = nativeDescription: "српски", englishDescription: "Serbian # education_duration_help: "When?" # education_description: "Description" # education_description_help: "Highlight anything about this educational experience. (140 chars; optional)" -# our_notes: "Our Notes" +# our_notes: "CodeCombat's Notes" +# remarks: "Remarks" # projects: "Projects" # projects_header: "Add 3 projects" # projects_header_2: "Projects (Top 3)" @@ -297,22 +298,37 @@ module.exports = nativeDescription: "српски", englishDescription: "Serbian # player_code: "Player Code" # employers: -# want_to_hire_our_players: "Hire CodeCombat Players" +# hire_developers_not_credentials: "Hire developers, not credentials." +# get_started: "Get Started" +# already_screened: "We've already technically screened all our candidates" +# filter_further: ", but you can also filter further:" +# filter_visa: "Visa" +# filter_visa_yes: "US Authorized" +# filter_visa_no: "Not Authorized" +# filter_education_top: "Top School" +# filter_education_other: "Other" +# filter_role_web_developer: "Web Developer" +# filter_role_software_developer: "Software Developer" +# filter_role_mobile_developer: "Mobile Developer" +# filter_experience: "Experience" +# filter_experience_senior: "Senior" +# filter_experience_junior: "Junior" +# filter_experience_recent_grad: "Recent Grad" +# filter_experience_student: "College Student" +# filter_results: "results" +# start_hiring: "Start hiring." +# reasons: "Three reasons you should hire through us:" +# everyone_looking: "Everyone here is looking for their next opportunity." +# everyone_looking_blurb: "Forget about 20% LinkedIn InMail response rates. Everyone that we list on this site wants to find their next position and will respond to your request for an introduction." +# weeding: "Sit back; we've done the weeding for you." +# weeding_blurb: "Every player that we list has been screened for technical ability. We also perform phone screens for select candidates and make notes on their profiles to save you time." +# pass_screen: "They will pass your technical screen." +# pass_screen_blurb: "Review each candidate's code before reaching out. One employer found that 5x as many of our devs passed their technical screen than hiring from Hacker News." +# make_hiring_easier: "Make my hiring easier, please." # what: "What is CodeCombat?" # what_blurb: "CodeCombat is a multiplayer browser programming game. Players write code to control their forces in battle against other developers. We support JavaScript, Python, Lua, Clojure, CoffeeScript, and Io." -# who: "Who Are the Players?" -# who_blurb: "CodeCombateers are software developers who enjoy using their programming skills to play games. They range from college seniors at top 20 engineering programs to 20-year industry veterans." -# how: "How Do We Find Developers?" -# how_blurb: "We host competitive tournaments to attract competitive software engieneers. We then use in-house algorithms to identify the best players among the top 5% of tournament winners." -# why: "Why Hire Through Us?" -# why_blurb_1: "We will save you time. Every CodeCombateer we feaure is " -# why_blurb_2: "looking for work" -# why_blurb_3: ", has " -# why_blurb_4: "demonstrated top notch technical skills" -# why_blurb_5: ", and has been " -# why_blurb_6: "personally screened by us" -# why_blurb_7: ". Stop screening and start hiring." -# see_candidates: "Click here to see our candidates" +# cost: "How much do we charge?" +# cost_blurb: "We charge 15% of first year's salary and offer a 100% money back guarantee for 90 days. We don't charge for candidates who are already actively being interviewed at your company." # candidate_name: "Name" # candidate_location: "Location" # candidate_looking_for: "Looking For" @@ -320,6 +336,7 @@ module.exports = nativeDescription: "српски", englishDescription: "Serbian # candidate_top_skills: "Top Skills" # candidate_years_experience: "Yrs Exp" # candidate_last_updated: "Last Updated" +# candidate_who: "Who" # featured_developers: "Featured Developers" # other_developers: "Other Developers" # inactive_developers: "Inactive Developers" @@ -382,6 +399,8 @@ module.exports = nativeDescription: "српски", englishDescription: "Serbian # editor_config_keybindings_label: "Key Bindings" # editor_config_keybindings_default: "Default (Ace)" # editor_config_keybindings_description: "Adds additional shortcuts known from the common editors." +# editor_config_livecompletion_label: "Live Autocompletion" +# editor_config_livecompletion_description: "Displays autocomplete suggestions while typing." # editor_config_invisibles_label: "Show Invisibles" # editor_config_invisibles_description: "Displays invisibles such as spaces or tabs." # editor_config_indentguides_label: "Show Indent Guides" @@ -418,6 +437,7 @@ module.exports = nativeDescription: "српски", englishDescription: "Serbian # tip_impossible: "It always seems impossible until it's done. - Nelson Mandela" # tip_talk_is_cheap: "Talk is cheap. Show me the code. - Linus Torvalds" # tip_first_language: "The most disastrous thing that you can ever learn is your first programming language. - Alan Kay" +# tip_hardware_problem: "Q: How many programmers does it take to change a light bulb? A: None, it's a hardware problem." # time_current: "Now:" # time_total: "Max:" # time_goto: "Go to:" @@ -882,6 +902,8 @@ module.exports = nativeDescription: "српски", englishDescription: "Serbian # document: "Document" # sprite_sheet: "Sprite Sheet" # candidate_sessions: "Candidate Sessions" +# user_remark: "User Remark" +# versions: "Versions" # delta: # added: "Added" diff --git a/app/locale/sv.coffee b/app/locale/sv.coffee index bc9240252..30fcc2758 100644 --- a/app/locale/sv.coffee +++ b/app/locale/sv.coffee @@ -236,7 +236,7 @@ module.exports = nativeDescription: "Svenska", englishDescription: "Swedish", tr # basics_country: "Country" # basics_country_help: "Country you want to work in (or live in now)." # basics_visa: "US Work Status" -# basics_visa_help: "Are you authorized to work in the US, or do you need visa sponsorship?" +# basics_visa_help: "Are you authorized to work in the US, or do you need visa sponsorship? (If you live in Canada or Australia, mark authorized.)" # basics_looking_for: "Looking For" # basics_looking_for_full_time: "Full-time" # basics_looking_for_part_time: "Part-time" @@ -281,7 +281,8 @@ module.exports = nativeDescription: "Svenska", englishDescription: "Swedish", tr # education_duration_help: "When?" # education_description: "Description" # education_description_help: "Highlight anything about this educational experience. (140 chars; optional)" -# our_notes: "Our Notes" +# our_notes: "CodeCombat's Notes" +# remarks: "Remarks" # projects: "Projects" # projects_header: "Add 3 projects" # projects_header_2: "Projects (Top 3)" @@ -297,22 +298,37 @@ module.exports = nativeDescription: "Svenska", englishDescription: "Swedish", tr # player_code: "Player Code" # employers: -# want_to_hire_our_players: "Hire CodeCombat Players" +# hire_developers_not_credentials: "Hire developers, not credentials." +# get_started: "Get Started" +# already_screened: "We've already technically screened all our candidates" +# filter_further: ", but you can also filter further:" +# filter_visa: "Visa" +# filter_visa_yes: "US Authorized" +# filter_visa_no: "Not Authorized" +# filter_education_top: "Top School" +# filter_education_other: "Other" +# filter_role_web_developer: "Web Developer" +# filter_role_software_developer: "Software Developer" +# filter_role_mobile_developer: "Mobile Developer" +# filter_experience: "Experience" +# filter_experience_senior: "Senior" +# filter_experience_junior: "Junior" +# filter_experience_recent_grad: "Recent Grad" +# filter_experience_student: "College Student" +# filter_results: "results" +# start_hiring: "Start hiring." +# reasons: "Three reasons you should hire through us:" +# everyone_looking: "Everyone here is looking for their next opportunity." +# everyone_looking_blurb: "Forget about 20% LinkedIn InMail response rates. Everyone that we list on this site wants to find their next position and will respond to your request for an introduction." +# weeding: "Sit back; we've done the weeding for you." +# weeding_blurb: "Every player that we list has been screened for technical ability. We also perform phone screens for select candidates and make notes on their profiles to save you time." +# pass_screen: "They will pass your technical screen." +# pass_screen_blurb: "Review each candidate's code before reaching out. One employer found that 5x as many of our devs passed their technical screen than hiring from Hacker News." +# make_hiring_easier: "Make my hiring easier, please." # what: "What is CodeCombat?" # what_blurb: "CodeCombat is a multiplayer browser programming game. Players write code to control their forces in battle against other developers. We support JavaScript, Python, Lua, Clojure, CoffeeScript, and Io." -# who: "Who Are the Players?" -# who_blurb: "CodeCombateers are software developers who enjoy using their programming skills to play games. They range from college seniors at top 20 engineering programs to 20-year industry veterans." -# how: "How Do We Find Developers?" -# how_blurb: "We host competitive tournaments to attract competitive software engieneers. We then use in-house algorithms to identify the best players among the top 5% of tournament winners." -# why: "Why Hire Through Us?" -# why_blurb_1: "We will save you time. Every CodeCombateer we feaure is " -# why_blurb_2: "looking for work" -# why_blurb_3: ", has " -# why_blurb_4: "demonstrated top notch technical skills" -# why_blurb_5: ", and has been " -# why_blurb_6: "personally screened by us" -# why_blurb_7: ". Stop screening and start hiring." -# see_candidates: "Click here to see our candidates" +# cost: "How much do we charge?" +# cost_blurb: "We charge 15% of first year's salary and offer a 100% money back guarantee for 90 days. We don't charge for candidates who are already actively being interviewed at your company." # candidate_name: "Name" # candidate_location: "Location" # candidate_looking_for: "Looking For" @@ -320,6 +336,7 @@ module.exports = nativeDescription: "Svenska", englishDescription: "Swedish", tr # candidate_top_skills: "Top Skills" # candidate_years_experience: "Yrs Exp" # candidate_last_updated: "Last Updated" +# candidate_who: "Who" # featured_developers: "Featured Developers" # other_developers: "Other Developers" # inactive_developers: "Inactive Developers" @@ -382,6 +399,8 @@ module.exports = nativeDescription: "Svenska", englishDescription: "Swedish", tr editor_config_keybindings_label: "Kortkommandon" editor_config_keybindings_default: "Standard (Ace)" editor_config_keybindings_description: "Lägger till ytterligare kortkommandon kända från vanliga redigerare." +# editor_config_livecompletion_label: "Live Autocompletion" +# editor_config_livecompletion_description: "Displays autocomplete suggestions while typing." editor_config_invisibles_label: "Visa osynliga" editor_config_invisibles_description: "Visar osynliga tecken såsom mellanrum och nyradstecken." editor_config_indentguides_label: "Visa indenteringsguider" @@ -418,6 +437,7 @@ module.exports = nativeDescription: "Svenska", englishDescription: "Swedish", tr # tip_impossible: "It always seems impossible until it's done. - Nelson Mandela" # tip_talk_is_cheap: "Talk is cheap. Show me the code. - Linus Torvalds" # tip_first_language: "The most disastrous thing that you can ever learn is your first programming language. - Alan Kay" +# tip_hardware_problem: "Q: How many programmers does it take to change a light bulb? A: None, it's a hardware problem." # time_current: "Now:" # time_total: "Max:" # time_goto: "Go to:" @@ -882,6 +902,8 @@ module.exports = nativeDescription: "Svenska", englishDescription: "Swedish", tr # document: "Document" # sprite_sheet: "Sprite Sheet" # candidate_sessions: "Candidate Sessions" +# user_remark: "User Remark" +# versions: "Versions" # delta: # added: "Added" diff --git a/app/locale/th.coffee b/app/locale/th.coffee index c8dc83823..fdc53c6d8 100644 --- a/app/locale/th.coffee +++ b/app/locale/th.coffee @@ -90,7 +90,7 @@ module.exports = nativeDescription: "ไทย", englishDescription: "Thai", tra # required: "You need to log in before you can go that way." home: -# slogan: "Learn to Code JavaScript by Playing a Game" +# slogan: "Learn to Code by Playing a Game" # no_ie: "CodeCombat does not run in Internet Explorer 9 or older. Sorry!" # no_mobile: "CodeCombat wasn't designed for mobile devices and may not work!" play: "เล่น" @@ -236,7 +236,7 @@ module.exports = nativeDescription: "ไทย", englishDescription: "Thai", tra # basics_country: "Country" # basics_country_help: "Country you want to work in (or live in now)." # basics_visa: "US Work Status" -# basics_visa_help: "Are you authorized to work in the US, or do you need visa sponsorship?" +# basics_visa_help: "Are you authorized to work in the US, or do you need visa sponsorship? (If you live in Canada or Australia, mark authorized.)" # basics_looking_for: "Looking For" # basics_looking_for_full_time: "Full-time" # basics_looking_for_part_time: "Part-time" @@ -281,7 +281,8 @@ module.exports = nativeDescription: "ไทย", englishDescription: "Thai", tra # education_duration_help: "When?" # education_description: "Description" # education_description_help: "Highlight anything about this educational experience. (140 chars; optional)" -# our_notes: "Our Notes" +# our_notes: "CodeCombat's Notes" +# remarks: "Remarks" # projects: "Projects" # projects_header: "Add 3 projects" # projects_header_2: "Projects (Top 3)" @@ -297,22 +298,37 @@ module.exports = nativeDescription: "ไทย", englishDescription: "Thai", tra # player_code: "Player Code" # employers: -# want_to_hire_our_players: "Hire CodeCombat Players" +# hire_developers_not_credentials: "Hire developers, not credentials." +# get_started: "Get Started" +# already_screened: "We've already technically screened all our candidates" +# filter_further: ", but you can also filter further:" +# filter_visa: "Visa" +# filter_visa_yes: "US Authorized" +# filter_visa_no: "Not Authorized" +# filter_education_top: "Top School" +# filter_education_other: "Other" +# filter_role_web_developer: "Web Developer" +# filter_role_software_developer: "Software Developer" +# filter_role_mobile_developer: "Mobile Developer" +# filter_experience: "Experience" +# filter_experience_senior: "Senior" +# filter_experience_junior: "Junior" +# filter_experience_recent_grad: "Recent Grad" +# filter_experience_student: "College Student" +# filter_results: "results" +# start_hiring: "Start hiring." +# reasons: "Three reasons you should hire through us:" +# everyone_looking: "Everyone here is looking for their next opportunity." +# everyone_looking_blurb: "Forget about 20% LinkedIn InMail response rates. Everyone that we list on this site wants to find their next position and will respond to your request for an introduction." +# weeding: "Sit back; we've done the weeding for you." +# weeding_blurb: "Every player that we list has been screened for technical ability. We also perform phone screens for select candidates and make notes on their profiles to save you time." +# pass_screen: "They will pass your technical screen." +# pass_screen_blurb: "Review each candidate's code before reaching out. One employer found that 5x as many of our devs passed their technical screen than hiring from Hacker News." +# make_hiring_easier: "Make my hiring easier, please." # what: "What is CodeCombat?" # what_blurb: "CodeCombat is a multiplayer browser programming game. Players write code to control their forces in battle against other developers. We support JavaScript, Python, Lua, Clojure, CoffeeScript, and Io." -# who: "Who Are the Players?" -# who_blurb: "CodeCombateers are software developers who enjoy using their programming skills to play games. They range from college seniors at top 20 engineering programs to 20-year industry veterans." -# how: "How Do We Find Developers?" -# how_blurb: "We host competitive tournaments to attract competitive software engieneers. We then use in-house algorithms to identify the best players among the top 5% of tournament winners." -# why: "Why Hire Through Us?" -# why_blurb_1: "We will save you time. Every CodeCombateer we feaure is " -# why_blurb_2: "looking for work" -# why_blurb_3: ", has " -# why_blurb_4: "demonstrated top notch technical skills" -# why_blurb_5: ", and has been " -# why_blurb_6: "personally screened by us" -# why_blurb_7: ". Stop screening and start hiring." -# see_candidates: "Click here to see our candidates" +# cost: "How much do we charge?" +# cost_blurb: "We charge 15% of first year's salary and offer a 100% money back guarantee for 90 days. We don't charge for candidates who are already actively being interviewed at your company." # candidate_name: "Name" # candidate_location: "Location" # candidate_looking_for: "Looking For" @@ -320,6 +336,7 @@ module.exports = nativeDescription: "ไทย", englishDescription: "Thai", tra # candidate_top_skills: "Top Skills" # candidate_years_experience: "Yrs Exp" # candidate_last_updated: "Last Updated" +# candidate_who: "Who" # featured_developers: "Featured Developers" # other_developers: "Other Developers" # inactive_developers: "Inactive Developers" @@ -382,6 +399,8 @@ module.exports = nativeDescription: "ไทย", englishDescription: "Thai", tra # editor_config_keybindings_label: "Key Bindings" # editor_config_keybindings_default: "Default (Ace)" # editor_config_keybindings_description: "Adds additional shortcuts known from the common editors." +# editor_config_livecompletion_label: "Live Autocompletion" +# editor_config_livecompletion_description: "Displays autocomplete suggestions while typing." # editor_config_invisibles_label: "Show Invisibles" # editor_config_invisibles_description: "Displays invisibles such as spaces or tabs." # editor_config_indentguides_label: "Show Indent Guides" @@ -418,6 +437,7 @@ module.exports = nativeDescription: "ไทย", englishDescription: "Thai", tra # tip_impossible: "It always seems impossible until it's done. - Nelson Mandela" # tip_talk_is_cheap: "Talk is cheap. Show me the code. - Linus Torvalds" # tip_first_language: "The most disastrous thing that you can ever learn is your first programming language. - Alan Kay" +# tip_hardware_problem: "Q: How many programmers does it take to change a light bulb? A: None, it's a hardware problem." # time_current: "Now:" # time_total: "Max:" # time_goto: "Go to:" @@ -882,6 +902,8 @@ module.exports = nativeDescription: "ไทย", englishDescription: "Thai", tra # document: "Document" # sprite_sheet: "Sprite Sheet" # candidate_sessions: "Candidate Sessions" +# user_remark: "User Remark" +# versions: "Versions" # delta: # added: "Added" diff --git a/app/locale/tr.coffee b/app/locale/tr.coffee index 5cd97dc2d..fe40f5120 100644 --- a/app/locale/tr.coffee +++ b/app/locale/tr.coffee @@ -236,7 +236,7 @@ module.exports = nativeDescription: "Türkçe", englishDescription: "Turkish", t # basics_country: "Country" # basics_country_help: "Country you want to work in (or live in now)." # basics_visa: "US Work Status" -# basics_visa_help: "Are you authorized to work in the US, or do you need visa sponsorship?" +# basics_visa_help: "Are you authorized to work in the US, or do you need visa sponsorship? (If you live in Canada or Australia, mark authorized.)" # basics_looking_for: "Looking For" # basics_looking_for_full_time: "Full-time" # basics_looking_for_part_time: "Part-time" @@ -281,7 +281,8 @@ module.exports = nativeDescription: "Türkçe", englishDescription: "Turkish", t # education_duration_help: "When?" # education_description: "Description" # education_description_help: "Highlight anything about this educational experience. (140 chars; optional)" -# our_notes: "Our Notes" +# our_notes: "CodeCombat's Notes" +# remarks: "Remarks" # projects: "Projects" # projects_header: "Add 3 projects" # projects_header_2: "Projects (Top 3)" @@ -297,22 +298,37 @@ module.exports = nativeDescription: "Türkçe", englishDescription: "Turkish", t # player_code: "Player Code" # employers: -# want_to_hire_our_players: "Hire CodeCombat Players" +# hire_developers_not_credentials: "Hire developers, not credentials." +# get_started: "Get Started" +# already_screened: "We've already technically screened all our candidates" +# filter_further: ", but you can also filter further:" +# filter_visa: "Visa" +# filter_visa_yes: "US Authorized" +# filter_visa_no: "Not Authorized" +# filter_education_top: "Top School" +# filter_education_other: "Other" +# filter_role_web_developer: "Web Developer" +# filter_role_software_developer: "Software Developer" +# filter_role_mobile_developer: "Mobile Developer" +# filter_experience: "Experience" +# filter_experience_senior: "Senior" +# filter_experience_junior: "Junior" +# filter_experience_recent_grad: "Recent Grad" +# filter_experience_student: "College Student" +# filter_results: "results" +# start_hiring: "Start hiring." +# reasons: "Three reasons you should hire through us:" +# everyone_looking: "Everyone here is looking for their next opportunity." +# everyone_looking_blurb: "Forget about 20% LinkedIn InMail response rates. Everyone that we list on this site wants to find their next position and will respond to your request for an introduction." +# weeding: "Sit back; we've done the weeding for you." +# weeding_blurb: "Every player that we list has been screened for technical ability. We also perform phone screens for select candidates and make notes on their profiles to save you time." +# pass_screen: "They will pass your technical screen." +# pass_screen_blurb: "Review each candidate's code before reaching out. One employer found that 5x as many of our devs passed their technical screen than hiring from Hacker News." +# make_hiring_easier: "Make my hiring easier, please." # what: "What is CodeCombat?" # what_blurb: "CodeCombat is a multiplayer browser programming game. Players write code to control their forces in battle against other developers. We support JavaScript, Python, Lua, Clojure, CoffeeScript, and Io." -# who: "Who Are the Players?" -# who_blurb: "CodeCombateers are software developers who enjoy using their programming skills to play games. They range from college seniors at top 20 engineering programs to 20-year industry veterans." -# how: "How Do We Find Developers?" -# how_blurb: "We host competitive tournaments to attract competitive software engieneers. We then use in-house algorithms to identify the best players among the top 5% of tournament winners." -# why: "Why Hire Through Us?" -# why_blurb_1: "We will save you time. Every CodeCombateer we feaure is " -# why_blurb_2: "looking for work" -# why_blurb_3: ", has " -# why_blurb_4: "demonstrated top notch technical skills" -# why_blurb_5: ", and has been " -# why_blurb_6: "personally screened by us" -# why_blurb_7: ". Stop screening and start hiring." -# see_candidates: "Click here to see our candidates" +# cost: "How much do we charge?" +# cost_blurb: "We charge 15% of first year's salary and offer a 100% money back guarantee for 90 days. We don't charge for candidates who are already actively being interviewed at your company." # candidate_name: "Name" # candidate_location: "Location" # candidate_looking_for: "Looking For" @@ -320,6 +336,7 @@ module.exports = nativeDescription: "Türkçe", englishDescription: "Turkish", t # candidate_top_skills: "Top Skills" # candidate_years_experience: "Yrs Exp" # candidate_last_updated: "Last Updated" +# candidate_who: "Who" # featured_developers: "Featured Developers" # other_developers: "Other Developers" # inactive_developers: "Inactive Developers" @@ -382,6 +399,8 @@ module.exports = nativeDescription: "Türkçe", englishDescription: "Turkish", t # editor_config_keybindings_label: "Key Bindings" editor_config_keybindings_default: "Varsayılan (Ace)" # editor_config_keybindings_description: "Adds additional shortcuts known from the common editors." +# editor_config_livecompletion_label: "Live Autocompletion" +# editor_config_livecompletion_description: "Displays autocomplete suggestions while typing." # editor_config_invisibles_label: "Show Invisibles" # editor_config_invisibles_description: "Displays invisibles such as spaces or tabs." # editor_config_indentguides_label: "Show Indent Guides" @@ -418,6 +437,7 @@ module.exports = nativeDescription: "Türkçe", englishDescription: "Turkish", t # tip_impossible: "It always seems impossible until it's done. - Nelson Mandela" # tip_talk_is_cheap: "Talk is cheap. Show me the code. - Linus Torvalds" # tip_first_language: "The most disastrous thing that you can ever learn is your first programming language. - Alan Kay" +# tip_hardware_problem: "Q: How many programmers does it take to change a light bulb? A: None, it's a hardware problem." time_current: "Şimdi:" time_total: "Max:" time_goto: "Git:" @@ -882,6 +902,8 @@ module.exports = nativeDescription: "Türkçe", englishDescription: "Turkish", t # document: "Document" # sprite_sheet: "Sprite Sheet" # candidate_sessions: "Candidate Sessions" +# user_remark: "User Remark" +# versions: "Versions" # delta: # added: "Added" diff --git a/app/locale/uk.coffee b/app/locale/uk.coffee index 11af81570..8b222c5e5 100644 --- a/app/locale/uk.coffee +++ b/app/locale/uk.coffee @@ -236,7 +236,7 @@ module.exports = nativeDescription: "українська мова", englishDesc # basics_country: "Country" # basics_country_help: "Country you want to work in (or live in now)." # basics_visa: "US Work Status" -# basics_visa_help: "Are you authorized to work in the US, or do you need visa sponsorship?" +# basics_visa_help: "Are you authorized to work in the US, or do you need visa sponsorship? (If you live in Canada or Australia, mark authorized.)" # basics_looking_for: "Looking For" # basics_looking_for_full_time: "Full-time" # basics_looking_for_part_time: "Part-time" @@ -282,6 +282,7 @@ module.exports = nativeDescription: "українська мова", englishDesc # education_description: "Description" # education_description_help: "Highlight anything about this educational experience. (140 chars; optional)" our_notes: "Наші примітки" +# remarks: "Remarks" projects: "Роботи" # projects_header: "Add 3 projects" # projects_header_2: "Projects (Top 3)" @@ -297,22 +298,37 @@ module.exports = nativeDescription: "українська мова", englishDesc # player_code: "Player Code" employers: - want_to_hire_our_players: "Бажаєш найняти досвідчених гравців CodeCombat?" +# hire_developers_not_credentials: "Hire developers, not credentials." +# get_started: "Get Started" +# already_screened: "We've already technically screened all our candidates" +# filter_further: ", but you can also filter further:" +# filter_visa: "Visa" +# filter_visa_yes: "US Authorized" +# filter_visa_no: "Not Authorized" +# filter_education_top: "Top School" +# filter_education_other: "Other" +# filter_role_web_developer: "Web Developer" +# filter_role_software_developer: "Software Developer" +# filter_role_mobile_developer: "Mobile Developer" +# filter_experience: "Experience" +# filter_experience_senior: "Senior" +# filter_experience_junior: "Junior" +# filter_experience_recent_grad: "Recent Grad" +# filter_experience_student: "College Student" +# filter_results: "results" +# start_hiring: "Start hiring." +# reasons: "Three reasons you should hire through us:" +# everyone_looking: "Everyone here is looking for their next opportunity." +# everyone_looking_blurb: "Forget about 20% LinkedIn InMail response rates. Everyone that we list on this site wants to find their next position and will respond to your request for an introduction." +# weeding: "Sit back; we've done the weeding for you." +# weeding_blurb: "Every player that we list has been screened for technical ability. We also perform phone screens for select candidates and make notes on their profiles to save you time." +# pass_screen: "They will pass your technical screen." +# pass_screen_blurb: "Review each candidate's code before reaching out. One employer found that 5x as many of our devs passed their technical screen than hiring from Hacker News." +# make_hiring_easier: "Make my hiring easier, please." # what: "What is CodeCombat?" # what_blurb: "CodeCombat is a multiplayer browser programming game. Players write code to control their forces in battle against other developers. We support JavaScript, Python, Lua, Clojure, CoffeeScript, and Io." -# who: "Who Are the Players?" -# who_blurb: "CodeCombateers are software developers who enjoy using their programming skills to play games. They range from college seniors at top 20 engineering programs to 20-year industry veterans." -# how: "How Do We Find Developers?" -# how_blurb: "We host competitive tournaments to attract competitive software engieneers. We then use in-house algorithms to identify the best players among the top 5% of tournament winners." -# why: "Why Hire Through Us?" -# why_blurb_1: "We will save you time. Every CodeCombateer we feaure is " -# why_blurb_2: "looking for work" -# why_blurb_3: ", has " -# why_blurb_4: "demonstrated top notch technical skills" -# why_blurb_5: ", and has been " -# why_blurb_6: "personally screened by us" -# why_blurb_7: ". Stop screening and start hiring." -# see_candidates: "Click here to see our candidates" +# cost: "How much do we charge?" +# cost_blurb: "We charge 15% of first year's salary and offer a 100% money back guarantee for 90 days. We don't charge for candidates who are already actively being interviewed at your company." candidate_name: "Ім‘я" candidate_location: "Розташування" candidate_looking_for: "Шукає" @@ -320,6 +336,7 @@ module.exports = nativeDescription: "українська мова", englishDesc candidate_top_skills: "Найкращі навички" candidate_years_experience: "років досвіду" candidate_last_updated: "Останнє оновлення" +# candidate_who: "Who" # featured_developers: "Featured Developers" # other_developers: "Other Developers" # inactive_developers: "Inactive Developers" @@ -382,6 +399,8 @@ module.exports = nativeDescription: "українська мова", englishDesc editor_config_keybindings_label: "Комбінаційї клавіш" editor_config_keybindings_default: "За замовчуванням (Ace)" editor_config_keybindings_description: "Додайте додаткові скорочення відомі Вам із загальних редакторів." +# editor_config_livecompletion_label: "Live Autocompletion" +# editor_config_livecompletion_description: "Displays autocomplete suggestions while typing." editor_config_invisibles_label: "Показати приховане" editor_config_invisibles_description: "Відображення прихованого, такого як відступи та знаки табуляції." editor_config_indentguides_label: "Показати відступи провідників" @@ -418,6 +437,7 @@ module.exports = nativeDescription: "українська мова", englishDesc tip_impossible: "Багато речей здаються нездійсненними до тих пір, поки їх не зробиш. - Нельсон Мандела" tip_talk_is_cheap: "Розмови нічого не варті. Покажи мені код. - Лінус Торвальдс" tip_first_language: "Найбільш катастрофічною річчю яку ви коли-небудь вчили є Ваша перша мова програмування. - Алан Кей" +# tip_hardware_problem: "Q: How many programmers does it take to change a light bulb? A: None, it's a hardware problem." time_current: "Зараз:" time_total: "Найбільше:" time_goto: "Перейти до:" @@ -882,6 +902,8 @@ module.exports = nativeDescription: "українська мова", englishDesc # document: "Document" # sprite_sheet: "Sprite Sheet" # candidate_sessions: "Candidate Sessions" +# user_remark: "User Remark" +# versions: "Versions" # delta: # added: "Added" diff --git a/app/locale/ur.coffee b/app/locale/ur.coffee index b426b75cf..814c472da 100644 --- a/app/locale/ur.coffee +++ b/app/locale/ur.coffee @@ -90,7 +90,7 @@ module.exports = nativeDescription: "اُردُو", englishDescription: "Urdu", # required: "You need to log in before you can go that way." # home: -# slogan: "Learn to Code JavaScript by Playing a Game" +# slogan: "Learn to Code by Playing a Game" # no_ie: "CodeCombat does not run in Internet Explorer 9 or older. Sorry!" # no_mobile: "CodeCombat wasn't designed for mobile devices and may not work!" # play: "Play" @@ -236,7 +236,7 @@ module.exports = nativeDescription: "اُردُو", englishDescription: "Urdu", # basics_country: "Country" # basics_country_help: "Country you want to work in (or live in now)." # basics_visa: "US Work Status" -# basics_visa_help: "Are you authorized to work in the US, or do you need visa sponsorship?" +# basics_visa_help: "Are you authorized to work in the US, or do you need visa sponsorship? (If you live in Canada or Australia, mark authorized.)" # basics_looking_for: "Looking For" # basics_looking_for_full_time: "Full-time" # basics_looking_for_part_time: "Part-time" @@ -281,7 +281,8 @@ module.exports = nativeDescription: "اُردُو", englishDescription: "Urdu", # education_duration_help: "When?" # education_description: "Description" # education_description_help: "Highlight anything about this educational experience. (140 chars; optional)" -# our_notes: "Our Notes" +# our_notes: "CodeCombat's Notes" +# remarks: "Remarks" # projects: "Projects" # projects_header: "Add 3 projects" # projects_header_2: "Projects (Top 3)" @@ -297,22 +298,37 @@ module.exports = nativeDescription: "اُردُو", englishDescription: "Urdu", # player_code: "Player Code" # employers: -# want_to_hire_our_players: "Hire CodeCombat Players" +# hire_developers_not_credentials: "Hire developers, not credentials." +# get_started: "Get Started" +# already_screened: "We've already technically screened all our candidates" +# filter_further: ", but you can also filter further:" +# filter_visa: "Visa" +# filter_visa_yes: "US Authorized" +# filter_visa_no: "Not Authorized" +# filter_education_top: "Top School" +# filter_education_other: "Other" +# filter_role_web_developer: "Web Developer" +# filter_role_software_developer: "Software Developer" +# filter_role_mobile_developer: "Mobile Developer" +# filter_experience: "Experience" +# filter_experience_senior: "Senior" +# filter_experience_junior: "Junior" +# filter_experience_recent_grad: "Recent Grad" +# filter_experience_student: "College Student" +# filter_results: "results" +# start_hiring: "Start hiring." +# reasons: "Three reasons you should hire through us:" +# everyone_looking: "Everyone here is looking for their next opportunity." +# everyone_looking_blurb: "Forget about 20% LinkedIn InMail response rates. Everyone that we list on this site wants to find their next position and will respond to your request for an introduction." +# weeding: "Sit back; we've done the weeding for you." +# weeding_blurb: "Every player that we list has been screened for technical ability. We also perform phone screens for select candidates and make notes on their profiles to save you time." +# pass_screen: "They will pass your technical screen." +# pass_screen_blurb: "Review each candidate's code before reaching out. One employer found that 5x as many of our devs passed their technical screen than hiring from Hacker News." +# make_hiring_easier: "Make my hiring easier, please." # what: "What is CodeCombat?" # what_blurb: "CodeCombat is a multiplayer browser programming game. Players write code to control their forces in battle against other developers. We support JavaScript, Python, Lua, Clojure, CoffeeScript, and Io." -# who: "Who Are the Players?" -# who_blurb: "CodeCombateers are software developers who enjoy using their programming skills to play games. They range from college seniors at top 20 engineering programs to 20-year industry veterans." -# how: "How Do We Find Developers?" -# how_blurb: "We host competitive tournaments to attract competitive software engieneers. We then use in-house algorithms to identify the best players among the top 5% of tournament winners." -# why: "Why Hire Through Us?" -# why_blurb_1: "We will save you time. Every CodeCombateer we feaure is " -# why_blurb_2: "looking for work" -# why_blurb_3: ", has " -# why_blurb_4: "demonstrated top notch technical skills" -# why_blurb_5: ", and has been " -# why_blurb_6: "personally screened by us" -# why_blurb_7: ". Stop screening and start hiring." -# see_candidates: "Click here to see our candidates" +# cost: "How much do we charge?" +# cost_blurb: "We charge 15% of first year's salary and offer a 100% money back guarantee for 90 days. We don't charge for candidates who are already actively being interviewed at your company." # candidate_name: "Name" # candidate_location: "Location" # candidate_looking_for: "Looking For" @@ -320,6 +336,7 @@ module.exports = nativeDescription: "اُردُو", englishDescription: "Urdu", # candidate_top_skills: "Top Skills" # candidate_years_experience: "Yrs Exp" # candidate_last_updated: "Last Updated" +# candidate_who: "Who" # featured_developers: "Featured Developers" # other_developers: "Other Developers" # inactive_developers: "Inactive Developers" @@ -382,6 +399,8 @@ module.exports = nativeDescription: "اُردُو", englishDescription: "Urdu", # editor_config_keybindings_label: "Key Bindings" # editor_config_keybindings_default: "Default (Ace)" # editor_config_keybindings_description: "Adds additional shortcuts known from the common editors." +# editor_config_livecompletion_label: "Live Autocompletion" +# editor_config_livecompletion_description: "Displays autocomplete suggestions while typing." # editor_config_invisibles_label: "Show Invisibles" # editor_config_invisibles_description: "Displays invisibles such as spaces or tabs." # editor_config_indentguides_label: "Show Indent Guides" @@ -418,6 +437,7 @@ module.exports = nativeDescription: "اُردُو", englishDescription: "Urdu", # tip_impossible: "It always seems impossible until it's done. - Nelson Mandela" # tip_talk_is_cheap: "Talk is cheap. Show me the code. - Linus Torvalds" # tip_first_language: "The most disastrous thing that you can ever learn is your first programming language. - Alan Kay" +# tip_hardware_problem: "Q: How many programmers does it take to change a light bulb? A: None, it's a hardware problem." # time_current: "Now:" # time_total: "Max:" # time_goto: "Go to:" @@ -882,6 +902,8 @@ module.exports = nativeDescription: "اُردُو", englishDescription: "Urdu", # document: "Document" # sprite_sheet: "Sprite Sheet" # candidate_sessions: "Candidate Sessions" +# user_remark: "User Remark" +# versions: "Versions" # delta: # added: "Added" diff --git a/app/locale/vi.coffee b/app/locale/vi.coffee index 032d39202..c2489165f 100644 --- a/app/locale/vi.coffee +++ b/app/locale/vi.coffee @@ -236,7 +236,7 @@ module.exports = nativeDescription: "Tiếng Việt", englishDescription: "Vietn # basics_country: "Country" # basics_country_help: "Country you want to work in (or live in now)." # basics_visa: "US Work Status" -# basics_visa_help: "Are you authorized to work in the US, or do you need visa sponsorship?" +# basics_visa_help: "Are you authorized to work in the US, or do you need visa sponsorship? (If you live in Canada or Australia, mark authorized.)" # basics_looking_for: "Looking For" # basics_looking_for_full_time: "Full-time" # basics_looking_for_part_time: "Part-time" @@ -281,7 +281,8 @@ module.exports = nativeDescription: "Tiếng Việt", englishDescription: "Vietn # education_duration_help: "When?" # education_description: "Description" # education_description_help: "Highlight anything about this educational experience. (140 chars; optional)" -# our_notes: "Our Notes" +# our_notes: "CodeCombat's Notes" +# remarks: "Remarks" # projects: "Projects" # projects_header: "Add 3 projects" # projects_header_2: "Projects (Top 3)" @@ -297,22 +298,37 @@ module.exports = nativeDescription: "Tiếng Việt", englishDescription: "Vietn # player_code: "Player Code" # employers: -# want_to_hire_our_players: "Hire CodeCombat Players" +# hire_developers_not_credentials: "Hire developers, not credentials." +# get_started: "Get Started" +# already_screened: "We've already technically screened all our candidates" +# filter_further: ", but you can also filter further:" +# filter_visa: "Visa" +# filter_visa_yes: "US Authorized" +# filter_visa_no: "Not Authorized" +# filter_education_top: "Top School" +# filter_education_other: "Other" +# filter_role_web_developer: "Web Developer" +# filter_role_software_developer: "Software Developer" +# filter_role_mobile_developer: "Mobile Developer" +# filter_experience: "Experience" +# filter_experience_senior: "Senior" +# filter_experience_junior: "Junior" +# filter_experience_recent_grad: "Recent Grad" +# filter_experience_student: "College Student" +# filter_results: "results" +# start_hiring: "Start hiring." +# reasons: "Three reasons you should hire through us:" +# everyone_looking: "Everyone here is looking for their next opportunity." +# everyone_looking_blurb: "Forget about 20% LinkedIn InMail response rates. Everyone that we list on this site wants to find their next position and will respond to your request for an introduction." +# weeding: "Sit back; we've done the weeding for you." +# weeding_blurb: "Every player that we list has been screened for technical ability. We also perform phone screens for select candidates and make notes on their profiles to save you time." +# pass_screen: "They will pass your technical screen." +# pass_screen_blurb: "Review each candidate's code before reaching out. One employer found that 5x as many of our devs passed their technical screen than hiring from Hacker News." +# make_hiring_easier: "Make my hiring easier, please." # what: "What is CodeCombat?" # what_blurb: "CodeCombat is a multiplayer browser programming game. Players write code to control their forces in battle against other developers. We support JavaScript, Python, Lua, Clojure, CoffeeScript, and Io." -# who: "Who Are the Players?" -# who_blurb: "CodeCombateers are software developers who enjoy using their programming skills to play games. They range from college seniors at top 20 engineering programs to 20-year industry veterans." -# how: "How Do We Find Developers?" -# how_blurb: "We host competitive tournaments to attract competitive software engieneers. We then use in-house algorithms to identify the best players among the top 5% of tournament winners." -# why: "Why Hire Through Us?" -# why_blurb_1: "We will save you time. Every CodeCombateer we feaure is " -# why_blurb_2: "looking for work" -# why_blurb_3: ", has " -# why_blurb_4: "demonstrated top notch technical skills" -# why_blurb_5: ", and has been " -# why_blurb_6: "personally screened by us" -# why_blurb_7: ". Stop screening and start hiring." -# see_candidates: "Click here to see our candidates" +# cost: "How much do we charge?" +# cost_blurb: "We charge 15% of first year's salary and offer a 100% money back guarantee for 90 days. We don't charge for candidates who are already actively being interviewed at your company." # candidate_name: "Name" # candidate_location: "Location" # candidate_looking_for: "Looking For" @@ -320,6 +336,7 @@ module.exports = nativeDescription: "Tiếng Việt", englishDescription: "Vietn # candidate_top_skills: "Top Skills" # candidate_years_experience: "Yrs Exp" # candidate_last_updated: "Last Updated" +# candidate_who: "Who" # featured_developers: "Featured Developers" # other_developers: "Other Developers" # inactive_developers: "Inactive Developers" @@ -382,6 +399,8 @@ module.exports = nativeDescription: "Tiếng Việt", englishDescription: "Vietn # editor_config_keybindings_label: "Key Bindings" # editor_config_keybindings_default: "Default (Ace)" # editor_config_keybindings_description: "Adds additional shortcuts known from the common editors." +# editor_config_livecompletion_label: "Live Autocompletion" +# editor_config_livecompletion_description: "Displays autocomplete suggestions while typing." # editor_config_invisibles_label: "Show Invisibles" # editor_config_invisibles_description: "Displays invisibles such as spaces or tabs." # editor_config_indentguides_label: "Show Indent Guides" @@ -418,6 +437,7 @@ module.exports = nativeDescription: "Tiếng Việt", englishDescription: "Vietn # tip_impossible: "It always seems impossible until it's done. - Nelson Mandela" # tip_talk_is_cheap: "Talk is cheap. Show me the code. - Linus Torvalds" # tip_first_language: "The most disastrous thing that you can ever learn is your first programming language. - Alan Kay" +# tip_hardware_problem: "Q: How many programmers does it take to change a light bulb? A: None, it's a hardware problem." # time_current: "Now:" # time_total: "Max:" # time_goto: "Go to:" @@ -882,6 +902,8 @@ module.exports = nativeDescription: "Tiếng Việt", englishDescription: "Vietn # document: "Document" # sprite_sheet: "Sprite Sheet" # candidate_sessions: "Candidate Sessions" +# user_remark: "User Remark" +# versions: "Versions" # delta: # added: "Added" diff --git a/app/locale/zh-HANS.coffee b/app/locale/zh-HANS.coffee index dfb9549bb..611fdba2e 100644 --- a/app/locale/zh-HANS.coffee +++ b/app/locale/zh-HANS.coffee @@ -236,7 +236,7 @@ module.exports = nativeDescription: "简体中文", englishDescription: "Chinese # basics_country: "Country" # basics_country_help: "Country you want to work in (or live in now)." # basics_visa: "US Work Status" -# basics_visa_help: "Are you authorized to work in the US, or do you need visa sponsorship?" +# basics_visa_help: "Are you authorized to work in the US, or do you need visa sponsorship? (If you live in Canada or Australia, mark authorized.)" # basics_looking_for: "Looking For" # basics_looking_for_full_time: "Full-time" # basics_looking_for_part_time: "Part-time" @@ -281,7 +281,8 @@ module.exports = nativeDescription: "简体中文", englishDescription: "Chinese # education_duration_help: "When?" # education_description: "Description" # education_description_help: "Highlight anything about this educational experience. (140 chars; optional)" -# our_notes: "Our Notes" +# our_notes: "CodeCombat's Notes" +# remarks: "Remarks" projects: "项目" # projects_header: "Add 3 projects" # projects_header_2: "Projects (Top 3)" @@ -297,22 +298,37 @@ module.exports = nativeDescription: "简体中文", englishDescription: "Chinese # player_code: "Player Code" employers: - want_to_hire_our_players: "想要雇用CodeCombat上的专业玩家?" +# hire_developers_not_credentials: "Hire developers, not credentials." +# get_started: "Get Started" +# already_screened: "We've already technically screened all our candidates" +# filter_further: ", but you can also filter further:" +# filter_visa: "Visa" +# filter_visa_yes: "US Authorized" +# filter_visa_no: "Not Authorized" +# filter_education_top: "Top School" +# filter_education_other: "Other" +# filter_role_web_developer: "Web Developer" +# filter_role_software_developer: "Software Developer" +# filter_role_mobile_developer: "Mobile Developer" +# filter_experience: "Experience" +# filter_experience_senior: "Senior" +# filter_experience_junior: "Junior" +# filter_experience_recent_grad: "Recent Grad" +# filter_experience_student: "College Student" +# filter_results: "results" +# start_hiring: "Start hiring." +# reasons: "Three reasons you should hire through us:" +# everyone_looking: "Everyone here is looking for their next opportunity." +# everyone_looking_blurb: "Forget about 20% LinkedIn InMail response rates. Everyone that we list on this site wants to find their next position and will respond to your request for an introduction." +# weeding: "Sit back; we've done the weeding for you." +# weeding_blurb: "Every player that we list has been screened for technical ability. We also perform phone screens for select candidates and make notes on their profiles to save you time." +# pass_screen: "They will pass your technical screen." +# pass_screen_blurb: "Review each candidate's code before reaching out. One employer found that 5x as many of our devs passed their technical screen than hiring from Hacker News." +# make_hiring_easier: "Make my hiring easier, please." # what: "What is CodeCombat?" # what_blurb: "CodeCombat is a multiplayer browser programming game. Players write code to control their forces in battle against other developers. We support JavaScript, Python, Lua, Clojure, CoffeeScript, and Io." -# who: "Who Are the Players?" -# who_blurb: "CodeCombateers are software developers who enjoy using their programming skills to play games. They range from college seniors at top 20 engineering programs to 20-year industry veterans." -# how: "How Do We Find Developers?" -# how_blurb: "We host competitive tournaments to attract competitive software engieneers. We then use in-house algorithms to identify the best players among the top 5% of tournament winners." -# why: "Why Hire Through Us?" -# why_blurb_1: "We will save you time. Every CodeCombateer we feaure is " -# why_blurb_2: "looking for work" -# why_blurb_3: ", has " -# why_blurb_4: "demonstrated top notch technical skills" -# why_blurb_5: ", and has been " -# why_blurb_6: "personally screened by us" -# why_blurb_7: ". Stop screening and start hiring." - see_candidates: "点击这里查看我们的忧患人" +# cost: "How much do we charge?" +# cost_blurb: "We charge 15% of first year's salary and offer a 100% money back guarantee for 90 days. We don't charge for candidates who are already actively being interviewed at your company." candidate_name: "姓名" candidate_location: "地点" candidate_looking_for: "寻找" @@ -320,6 +336,7 @@ module.exports = nativeDescription: "简体中文", englishDescription: "Chinese candidate_top_skills: "高级技能" candidate_years_experience: "多年工作经验" candidate_last_updated: "最后一次更新" +# candidate_who: "Who" # featured_developers: "Featured Developers" # other_developers: "Other Developers" # inactive_developers: "Inactive Developers" @@ -382,6 +399,8 @@ module.exports = nativeDescription: "简体中文", englishDescription: "Chinese editor_config_keybindings_label: "按键设置s" editor_config_keybindings_default: "默认 (Ace)" # editor_config_keybindings_description: "Adds additional shortcuts known from the common editors." +# editor_config_livecompletion_label: "Live Autocompletion" +# editor_config_livecompletion_description: "Displays autocomplete suggestions while typing." editor_config_invisibles_label: "显示隐藏的" editor_config_invisibles_description: "显示诸如空格或TAB键。" editor_config_indentguides_label: "显示缩进提示" @@ -418,6 +437,7 @@ module.exports = nativeDescription: "简体中文", englishDescription: "Chinese tip_impossible: "在事情未完成之前,一切都看似不可能. - 纳尔逊·曼德拉" tip_talk_is_cheap: "多说无用, 亮出你的代码. - Linus Torvalds" tip_first_language: "你所经历过最可怕的事情是你的第一门编程语言。 - Alan Kay" +# tip_hardware_problem: "Q: How many programmers does it take to change a light bulb? A: None, it's a hardware problem." time_current: "现在:" time_total: "最大:" time_goto: "跳到:" @@ -882,6 +902,8 @@ module.exports = nativeDescription: "简体中文", englishDescription: "Chinese # document: "Document" # sprite_sheet: "Sprite Sheet" # candidate_sessions: "Candidate Sessions" +# user_remark: "User Remark" +# versions: "Versions" # delta: # added: "Added" diff --git a/app/locale/zh-HANT.coffee b/app/locale/zh-HANT.coffee index 05ab6d070..3c0785dfe 100644 --- a/app/locale/zh-HANT.coffee +++ b/app/locale/zh-HANT.coffee @@ -236,7 +236,7 @@ module.exports = nativeDescription: "繁体中文", englishDescription: "Chinese # basics_country: "Country" # basics_country_help: "Country you want to work in (or live in now)." # basics_visa: "US Work Status" -# basics_visa_help: "Are you authorized to work in the US, or do you need visa sponsorship?" +# basics_visa_help: "Are you authorized to work in the US, or do you need visa sponsorship? (If you live in Canada or Australia, mark authorized.)" # basics_looking_for: "Looking For" # basics_looking_for_full_time: "Full-time" # basics_looking_for_part_time: "Part-time" @@ -281,7 +281,8 @@ module.exports = nativeDescription: "繁体中文", englishDescription: "Chinese # education_duration_help: "When?" # education_description: "Description" # education_description_help: "Highlight anything about this educational experience. (140 chars; optional)" -# our_notes: "Our Notes" +# our_notes: "CodeCombat's Notes" +# remarks: "Remarks" # projects: "Projects" # projects_header: "Add 3 projects" # projects_header_2: "Projects (Top 3)" @@ -297,22 +298,37 @@ module.exports = nativeDescription: "繁体中文", englishDescription: "Chinese # player_code: "Player Code" # employers: -# want_to_hire_our_players: "Hire CodeCombat Players" +# hire_developers_not_credentials: "Hire developers, not credentials." +# get_started: "Get Started" +# already_screened: "We've already technically screened all our candidates" +# filter_further: ", but you can also filter further:" +# filter_visa: "Visa" +# filter_visa_yes: "US Authorized" +# filter_visa_no: "Not Authorized" +# filter_education_top: "Top School" +# filter_education_other: "Other" +# filter_role_web_developer: "Web Developer" +# filter_role_software_developer: "Software Developer" +# filter_role_mobile_developer: "Mobile Developer" +# filter_experience: "Experience" +# filter_experience_senior: "Senior" +# filter_experience_junior: "Junior" +# filter_experience_recent_grad: "Recent Grad" +# filter_experience_student: "College Student" +# filter_results: "results" +# start_hiring: "Start hiring." +# reasons: "Three reasons you should hire through us:" +# everyone_looking: "Everyone here is looking for their next opportunity." +# everyone_looking_blurb: "Forget about 20% LinkedIn InMail response rates. Everyone that we list on this site wants to find their next position and will respond to your request for an introduction." +# weeding: "Sit back; we've done the weeding for you." +# weeding_blurb: "Every player that we list has been screened for technical ability. We also perform phone screens for select candidates and make notes on their profiles to save you time." +# pass_screen: "They will pass your technical screen." +# pass_screen_blurb: "Review each candidate's code before reaching out. One employer found that 5x as many of our devs passed their technical screen than hiring from Hacker News." +# make_hiring_easier: "Make my hiring easier, please." # what: "What is CodeCombat?" # what_blurb: "CodeCombat is a multiplayer browser programming game. Players write code to control their forces in battle against other developers. We support JavaScript, Python, Lua, Clojure, CoffeeScript, and Io." -# who: "Who Are the Players?" -# who_blurb: "CodeCombateers are software developers who enjoy using their programming skills to play games. They range from college seniors at top 20 engineering programs to 20-year industry veterans." -# how: "How Do We Find Developers?" -# how_blurb: "We host competitive tournaments to attract competitive software engieneers. We then use in-house algorithms to identify the best players among the top 5% of tournament winners." -# why: "Why Hire Through Us?" -# why_blurb_1: "We will save you time. Every CodeCombateer we feaure is " -# why_blurb_2: "looking for work" -# why_blurb_3: ", has " -# why_blurb_4: "demonstrated top notch technical skills" -# why_blurb_5: ", and has been " -# why_blurb_6: "personally screened by us" -# why_blurb_7: ". Stop screening and start hiring." -# see_candidates: "Click here to see our candidates" +# cost: "How much do we charge?" +# cost_blurb: "We charge 15% of first year's salary and offer a 100% money back guarantee for 90 days. We don't charge for candidates who are already actively being interviewed at your company." # candidate_name: "Name" # candidate_location: "Location" # candidate_looking_for: "Looking For" @@ -320,6 +336,7 @@ module.exports = nativeDescription: "繁体中文", englishDescription: "Chinese # candidate_top_skills: "Top Skills" # candidate_years_experience: "Yrs Exp" # candidate_last_updated: "Last Updated" +# candidate_who: "Who" # featured_developers: "Featured Developers" # other_developers: "Other Developers" # inactive_developers: "Inactive Developers" @@ -382,6 +399,8 @@ module.exports = nativeDescription: "繁体中文", englishDescription: "Chinese # editor_config_keybindings_label: "Key Bindings" # editor_config_keybindings_default: "Default (Ace)" # editor_config_keybindings_description: "Adds additional shortcuts known from the common editors." +# editor_config_livecompletion_label: "Live Autocompletion" +# editor_config_livecompletion_description: "Displays autocomplete suggestions while typing." # editor_config_invisibles_label: "Show Invisibles" # editor_config_invisibles_description: "Displays invisibles such as spaces or tabs." # editor_config_indentguides_label: "Show Indent Guides" @@ -418,6 +437,7 @@ module.exports = nativeDescription: "繁体中文", englishDescription: "Chinese # tip_impossible: "It always seems impossible until it's done. - Nelson Mandela" # tip_talk_is_cheap: "Talk is cheap. Show me the code. - Linus Torvalds" # tip_first_language: "The most disastrous thing that you can ever learn is your first programming language. - Alan Kay" +# tip_hardware_problem: "Q: How many programmers does it take to change a light bulb? A: None, it's a hardware problem." # time_current: "Now:" # time_total: "Max:" # time_goto: "Go to:" @@ -882,6 +902,8 @@ module.exports = nativeDescription: "繁体中文", englishDescription: "Chinese # document: "Document" # sprite_sheet: "Sprite Sheet" # candidate_sessions: "Candidate Sessions" +# user_remark: "User Remark" +# versions: "Versions" # delta: # added: "Added" diff --git a/app/locale/zh-WUU-HANS.coffee b/app/locale/zh-WUU-HANS.coffee index 8c7cc9ded..91a2eb0d1 100644 --- a/app/locale/zh-WUU-HANS.coffee +++ b/app/locale/zh-WUU-HANS.coffee @@ -90,7 +90,7 @@ module.exports = nativeDescription: "吴语", englishDescription: "Wuu (Simplifi # required: "You need to log in before you can go that way." # home: -# slogan: "Learn to Code JavaScript by Playing a Game" +# slogan: "Learn to Code by Playing a Game" # no_ie: "CodeCombat does not run in Internet Explorer 9 or older. Sorry!" # no_mobile: "CodeCombat wasn't designed for mobile devices and may not work!" # play: "Play" @@ -236,7 +236,7 @@ module.exports = nativeDescription: "吴语", englishDescription: "Wuu (Simplifi # basics_country: "Country" # basics_country_help: "Country you want to work in (or live in now)." # basics_visa: "US Work Status" -# basics_visa_help: "Are you authorized to work in the US, or do you need visa sponsorship?" +# basics_visa_help: "Are you authorized to work in the US, or do you need visa sponsorship? (If you live in Canada or Australia, mark authorized.)" # basics_looking_for: "Looking For" # basics_looking_for_full_time: "Full-time" # basics_looking_for_part_time: "Part-time" @@ -281,7 +281,8 @@ module.exports = nativeDescription: "吴语", englishDescription: "Wuu (Simplifi # education_duration_help: "When?" # education_description: "Description" # education_description_help: "Highlight anything about this educational experience. (140 chars; optional)" -# our_notes: "Our Notes" +# our_notes: "CodeCombat's Notes" +# remarks: "Remarks" # projects: "Projects" # projects_header: "Add 3 projects" # projects_header_2: "Projects (Top 3)" @@ -297,22 +298,37 @@ module.exports = nativeDescription: "吴语", englishDescription: "Wuu (Simplifi # player_code: "Player Code" # employers: -# want_to_hire_our_players: "Hire CodeCombat Players" +# hire_developers_not_credentials: "Hire developers, not credentials." +# get_started: "Get Started" +# already_screened: "We've already technically screened all our candidates" +# filter_further: ", but you can also filter further:" +# filter_visa: "Visa" +# filter_visa_yes: "US Authorized" +# filter_visa_no: "Not Authorized" +# filter_education_top: "Top School" +# filter_education_other: "Other" +# filter_role_web_developer: "Web Developer" +# filter_role_software_developer: "Software Developer" +# filter_role_mobile_developer: "Mobile Developer" +# filter_experience: "Experience" +# filter_experience_senior: "Senior" +# filter_experience_junior: "Junior" +# filter_experience_recent_grad: "Recent Grad" +# filter_experience_student: "College Student" +# filter_results: "results" +# start_hiring: "Start hiring." +# reasons: "Three reasons you should hire through us:" +# everyone_looking: "Everyone here is looking for their next opportunity." +# everyone_looking_blurb: "Forget about 20% LinkedIn InMail response rates. Everyone that we list on this site wants to find their next position and will respond to your request for an introduction." +# weeding: "Sit back; we've done the weeding for you." +# weeding_blurb: "Every player that we list has been screened for technical ability. We also perform phone screens for select candidates and make notes on their profiles to save you time." +# pass_screen: "They will pass your technical screen." +# pass_screen_blurb: "Review each candidate's code before reaching out. One employer found that 5x as many of our devs passed their technical screen than hiring from Hacker News." +# make_hiring_easier: "Make my hiring easier, please." # what: "What is CodeCombat?" # what_blurb: "CodeCombat is a multiplayer browser programming game. Players write code to control their forces in battle against other developers. We support JavaScript, Python, Lua, Clojure, CoffeeScript, and Io." -# who: "Who Are the Players?" -# who_blurb: "CodeCombateers are software developers who enjoy using their programming skills to play games. They range from college seniors at top 20 engineering programs to 20-year industry veterans." -# how: "How Do We Find Developers?" -# how_blurb: "We host competitive tournaments to attract competitive software engieneers. We then use in-house algorithms to identify the best players among the top 5% of tournament winners." -# why: "Why Hire Through Us?" -# why_blurb_1: "We will save you time. Every CodeCombateer we feaure is " -# why_blurb_2: "looking for work" -# why_blurb_3: ", has " -# why_blurb_4: "demonstrated top notch technical skills" -# why_blurb_5: ", and has been " -# why_blurb_6: "personally screened by us" -# why_blurb_7: ". Stop screening and start hiring." -# see_candidates: "Click here to see our candidates" +# cost: "How much do we charge?" +# cost_blurb: "We charge 15% of first year's salary and offer a 100% money back guarantee for 90 days. We don't charge for candidates who are already actively being interviewed at your company." # candidate_name: "Name" # candidate_location: "Location" # candidate_looking_for: "Looking For" @@ -320,6 +336,7 @@ module.exports = nativeDescription: "吴语", englishDescription: "Wuu (Simplifi # candidate_top_skills: "Top Skills" # candidate_years_experience: "Yrs Exp" # candidate_last_updated: "Last Updated" +# candidate_who: "Who" # featured_developers: "Featured Developers" # other_developers: "Other Developers" # inactive_developers: "Inactive Developers" @@ -382,6 +399,8 @@ module.exports = nativeDescription: "吴语", englishDescription: "Wuu (Simplifi # editor_config_keybindings_label: "Key Bindings" # editor_config_keybindings_default: "Default (Ace)" # editor_config_keybindings_description: "Adds additional shortcuts known from the common editors." +# editor_config_livecompletion_label: "Live Autocompletion" +# editor_config_livecompletion_description: "Displays autocomplete suggestions while typing." # editor_config_invisibles_label: "Show Invisibles" # editor_config_invisibles_description: "Displays invisibles such as spaces or tabs." # editor_config_indentguides_label: "Show Indent Guides" @@ -418,6 +437,7 @@ module.exports = nativeDescription: "吴语", englishDescription: "Wuu (Simplifi # tip_impossible: "It always seems impossible until it's done. - Nelson Mandela" # tip_talk_is_cheap: "Talk is cheap. Show me the code. - Linus Torvalds" # tip_first_language: "The most disastrous thing that you can ever learn is your first programming language. - Alan Kay" +# tip_hardware_problem: "Q: How many programmers does it take to change a light bulb? A: None, it's a hardware problem." # time_current: "Now:" # time_total: "Max:" # time_goto: "Go to:" @@ -882,6 +902,8 @@ module.exports = nativeDescription: "吴语", englishDescription: "Wuu (Simplifi # document: "Document" # sprite_sheet: "Sprite Sheet" # candidate_sessions: "Candidate Sessions" +# user_remark: "User Remark" +# versions: "Versions" # delta: # added: "Added" diff --git a/app/locale/zh-WUU-HANT.coffee b/app/locale/zh-WUU-HANT.coffee index 4180369c3..368667c74 100644 --- a/app/locale/zh-WUU-HANT.coffee +++ b/app/locale/zh-WUU-HANT.coffee @@ -236,7 +236,7 @@ module.exports = nativeDescription: "吳語", englishDescription: "Wuu (Traditio # basics_country: "Country" # basics_country_help: "Country you want to work in (or live in now)." # basics_visa: "US Work Status" -# basics_visa_help: "Are you authorized to work in the US, or do you need visa sponsorship?" +# basics_visa_help: "Are you authorized to work in the US, or do you need visa sponsorship? (If you live in Canada or Australia, mark authorized.)" # basics_looking_for: "Looking For" # basics_looking_for_full_time: "Full-time" # basics_looking_for_part_time: "Part-time" @@ -281,7 +281,8 @@ module.exports = nativeDescription: "吳語", englishDescription: "Wuu (Traditio # education_duration_help: "When?" # education_description: "Description" # education_description_help: "Highlight anything about this educational experience. (140 chars; optional)" -# our_notes: "Our Notes" +# our_notes: "CodeCombat's Notes" +# remarks: "Remarks" projects: "項目" # projects_header: "Add 3 projects" # projects_header_2: "Projects (Top 3)" @@ -297,22 +298,37 @@ module.exports = nativeDescription: "吳語", englishDescription: "Wuu (Traditio # player_code: "Player Code" employers: - want_to_hire_our_players: "想討用CodeCombat上個專業打手?" +# hire_developers_not_credentials: "Hire developers, not credentials." +# get_started: "Get Started" +# already_screened: "We've already technically screened all our candidates" +# filter_further: ", but you can also filter further:" +# filter_visa: "Visa" +# filter_visa_yes: "US Authorized" +# filter_visa_no: "Not Authorized" +# filter_education_top: "Top School" +# filter_education_other: "Other" +# filter_role_web_developer: "Web Developer" +# filter_role_software_developer: "Software Developer" +# filter_role_mobile_developer: "Mobile Developer" +# filter_experience: "Experience" +# filter_experience_senior: "Senior" +# filter_experience_junior: "Junior" +# filter_experience_recent_grad: "Recent Grad" +# filter_experience_student: "College Student" +# filter_results: "results" +# start_hiring: "Start hiring." +# reasons: "Three reasons you should hire through us:" +# everyone_looking: "Everyone here is looking for their next opportunity." +# everyone_looking_blurb: "Forget about 20% LinkedIn InMail response rates. Everyone that we list on this site wants to find their next position and will respond to your request for an introduction." +# weeding: "Sit back; we've done the weeding for you." +# weeding_blurb: "Every player that we list has been screened for technical ability. We also perform phone screens for select candidates and make notes on their profiles to save you time." +# pass_screen: "They will pass your technical screen." +# pass_screen_blurb: "Review each candidate's code before reaching out. One employer found that 5x as many of our devs passed their technical screen than hiring from Hacker News." +# make_hiring_easier: "Make my hiring easier, please." # what: "What is CodeCombat?" # what_blurb: "CodeCombat is a multiplayer browser programming game. Players write code to control their forces in battle against other developers. We support JavaScript, Python, Lua, Clojure, CoffeeScript, and Io." -# who: "Who Are the Players?" -# who_blurb: "CodeCombateers are software developers who enjoy using their programming skills to play games. They range from college seniors at top 20 engineering programs to 20-year industry veterans." -# how: "How Do We Find Developers?" -# how_blurb: "We host competitive tournaments to attract competitive software engieneers. We then use in-house algorithms to identify the best players among the top 5% of tournament winners." -# why: "Why Hire Through Us?" -# why_blurb_1: "We will save you time. Every CodeCombateer we feaure is " -# why_blurb_2: "looking for work" -# why_blurb_3: ", has " -# why_blurb_4: "demonstrated top notch technical skills" -# why_blurb_5: ", and has been " -# why_blurb_6: "personally screened by us" -# why_blurb_7: ". Stop screening and start hiring." -# see_candidates: "Click here to see our candidates" +# cost: "How much do we charge?" +# cost_blurb: "We charge 15% of first year's salary and offer a 100% money back guarantee for 90 days. We don't charge for candidates who are already actively being interviewed at your company." candidate_name: "名字" candidate_location: "地址" candidate_looking_for: "尋" @@ -320,6 +336,7 @@ module.exports = nativeDescription: "吳語", englishDescription: "Wuu (Traditio candidate_top_skills: "高級技能" candidate_years_experience: "多年工作經驗" candidate_last_updated: "塌爛遍改動" +# candidate_who: "Who" # featured_developers: "Featured Developers" # other_developers: "Other Developers" # inactive_developers: "Inactive Developers" @@ -382,6 +399,8 @@ module.exports = nativeDescription: "吳語", englishDescription: "Wuu (Traditio editor_config_keybindings_label: "捺鍵設定s" editor_config_keybindings_default: "默認 (Ace)" # editor_config_keybindings_description: "Adds additional shortcuts known from the common editors." +# editor_config_livecompletion_label: "Live Autocompletion" +# editor_config_livecompletion_description: "Displays autocomplete suggestions while typing." editor_config_invisibles_label: "顯示囥起個" editor_config_invisibles_description: "顯示像空格搭TAB許鍵。" editor_config_indentguides_label: "顯示縮進提醒" @@ -418,6 +437,7 @@ module.exports = nativeDescription: "吳語", englishDescription: "Wuu (Traditio tip_impossible: "事幹還朆下落之前,一切都扣搭嘸道理相。- 納爾遜·曼德拉" tip_talk_is_cheap: "甮七講八講,代碼摜出望爻。- 林納斯·托華兹" tip_first_language: "爾經歷着最䁨嗰事幹是爾個頭一門編程語言。 - Alan Kay" +# tip_hardware_problem: "Q: How many programmers does it take to change a light bulb? A: None, it's a hardware problem." time_current: "瑲朞:" time_total: "頂大:" time_goto: "轉到:" @@ -882,6 +902,8 @@ module.exports = nativeDescription: "吳語", englishDescription: "Wuu (Traditio # document: "Document" # sprite_sheet: "Sprite Sheet" # candidate_sessions: "Candidate Sessions" +# user_remark: "User Remark" +# versions: "Versions" # delta: # added: "Added" diff --git a/app/locale/zh.coffee b/app/locale/zh.coffee index 0a5bf7396..b9c9d40fb 100644 --- a/app/locale/zh.coffee +++ b/app/locale/zh.coffee @@ -236,7 +236,7 @@ module.exports = nativeDescription: "中文", englishDescription: "Chinese", tra # basics_country: "Country" # basics_country_help: "Country you want to work in (or live in now)." # basics_visa: "US Work Status" -# basics_visa_help: "Are you authorized to work in the US, or do you need visa sponsorship?" +# basics_visa_help: "Are you authorized to work in the US, or do you need visa sponsorship? (If you live in Canada or Australia, mark authorized.)" # basics_looking_for: "Looking For" # basics_looking_for_full_time: "Full-time" # basics_looking_for_part_time: "Part-time" @@ -281,7 +281,8 @@ module.exports = nativeDescription: "中文", englishDescription: "Chinese", tra # education_duration_help: "When?" # education_description: "Description" # education_description_help: "Highlight anything about this educational experience. (140 chars; optional)" -# our_notes: "Our Notes" +# our_notes: "CodeCombat's Notes" +# remarks: "Remarks" # projects: "Projects" # projects_header: "Add 3 projects" # projects_header_2: "Projects (Top 3)" @@ -297,22 +298,37 @@ module.exports = nativeDescription: "中文", englishDescription: "Chinese", tra # player_code: "Player Code" # employers: -# want_to_hire_our_players: "Hire CodeCombat Players" +# hire_developers_not_credentials: "Hire developers, not credentials." +# get_started: "Get Started" +# already_screened: "We've already technically screened all our candidates" +# filter_further: ", but you can also filter further:" +# filter_visa: "Visa" +# filter_visa_yes: "US Authorized" +# filter_visa_no: "Not Authorized" +# filter_education_top: "Top School" +# filter_education_other: "Other" +# filter_role_web_developer: "Web Developer" +# filter_role_software_developer: "Software Developer" +# filter_role_mobile_developer: "Mobile Developer" +# filter_experience: "Experience" +# filter_experience_senior: "Senior" +# filter_experience_junior: "Junior" +# filter_experience_recent_grad: "Recent Grad" +# filter_experience_student: "College Student" +# filter_results: "results" +# start_hiring: "Start hiring." +# reasons: "Three reasons you should hire through us:" +# everyone_looking: "Everyone here is looking for their next opportunity." +# everyone_looking_blurb: "Forget about 20% LinkedIn InMail response rates. Everyone that we list on this site wants to find their next position and will respond to your request for an introduction." +# weeding: "Sit back; we've done the weeding for you." +# weeding_blurb: "Every player that we list has been screened for technical ability. We also perform phone screens for select candidates and make notes on their profiles to save you time." +# pass_screen: "They will pass your technical screen." +# pass_screen_blurb: "Review each candidate's code before reaching out. One employer found that 5x as many of our devs passed their technical screen than hiring from Hacker News." +# make_hiring_easier: "Make my hiring easier, please." # what: "What is CodeCombat?" # what_blurb: "CodeCombat is a multiplayer browser programming game. Players write code to control their forces in battle against other developers. We support JavaScript, Python, Lua, Clojure, CoffeeScript, and Io." -# who: "Who Are the Players?" -# who_blurb: "CodeCombateers are software developers who enjoy using their programming skills to play games. They range from college seniors at top 20 engineering programs to 20-year industry veterans." -# how: "How Do We Find Developers?" -# how_blurb: "We host competitive tournaments to attract competitive software engieneers. We then use in-house algorithms to identify the best players among the top 5% of tournament winners." -# why: "Why Hire Through Us?" -# why_blurb_1: "We will save you time. Every CodeCombateer we feaure is " -# why_blurb_2: "looking for work" -# why_blurb_3: ", has " -# why_blurb_4: "demonstrated top notch technical skills" -# why_blurb_5: ", and has been " -# why_blurb_6: "personally screened by us" -# why_blurb_7: ". Stop screening and start hiring." -# see_candidates: "Click here to see our candidates" +# cost: "How much do we charge?" +# cost_blurb: "We charge 15% of first year's salary and offer a 100% money back guarantee for 90 days. We don't charge for candidates who are already actively being interviewed at your company." # candidate_name: "Name" # candidate_location: "Location" # candidate_looking_for: "Looking For" @@ -320,6 +336,7 @@ module.exports = nativeDescription: "中文", englishDescription: "Chinese", tra # candidate_top_skills: "Top Skills" # candidate_years_experience: "Yrs Exp" # candidate_last_updated: "Last Updated" +# candidate_who: "Who" # featured_developers: "Featured Developers" # other_developers: "Other Developers" # inactive_developers: "Inactive Developers" @@ -382,6 +399,8 @@ module.exports = nativeDescription: "中文", englishDescription: "Chinese", tra # editor_config_keybindings_label: "Key Bindings" # editor_config_keybindings_default: "Default (Ace)" # editor_config_keybindings_description: "Adds additional shortcuts known from the common editors." +# editor_config_livecompletion_label: "Live Autocompletion" +# editor_config_livecompletion_description: "Displays autocomplete suggestions while typing." # editor_config_invisibles_label: "Show Invisibles" # editor_config_invisibles_description: "Displays invisibles such as spaces or tabs." # editor_config_indentguides_label: "Show Indent Guides" @@ -418,6 +437,7 @@ module.exports = nativeDescription: "中文", englishDescription: "Chinese", tra # tip_impossible: "It always seems impossible until it's done. - Nelson Mandela" # tip_talk_is_cheap: "Talk is cheap. Show me the code. - Linus Torvalds" # tip_first_language: "The most disastrous thing that you can ever learn is your first programming language. - Alan Kay" +# tip_hardware_problem: "Q: How many programmers does it take to change a light bulb? A: None, it's a hardware problem." # time_current: "Now:" # time_total: "Max:" # time_goto: "Go to:" @@ -882,6 +902,8 @@ module.exports = nativeDescription: "中文", englishDescription: "Chinese", tra # document: "Document" # sprite_sheet: "Sprite Sheet" # candidate_sessions: "Candidate Sessions" +# user_remark: "User Remark" +# versions: "Versions" # delta: # added: "Added" From a979c3256771d644cc4bfc63ae256f4c4e6c0905 Mon Sep 17 00:00:00 2001 From: Imperadeiro98 Date: Fri, 11 Jul 2014 15:17:16 +0100 Subject: [PATCH 092/106] Update pt-PT.coffee --- app/locale/pt-PT.coffee | 62 ++++++++++++++++++++--------------------- 1 file changed, 31 insertions(+), 31 deletions(-) diff --git a/app/locale/pt-PT.coffee b/app/locale/pt-PT.coffee index ccfd1d33c..4c3a766fe 100644 --- a/app/locale/pt-PT.coffee +++ b/app/locale/pt-PT.coffee @@ -1,4 +1,4 @@ -module.exports = nativeDescription: "Português europeu", englishDescription: "Portuguese (Portugal)", translation: +module.exports = nativeDescription: "Português (Portugal)", englishDescription: "Portuguese (Portugal)", translation: common: loading: "A carregar..." saving: "A guardar..." @@ -12,11 +12,11 @@ module.exports = nativeDescription: "Português europeu", englishDescription: "P delay_3_sec: "3 segundos" delay_5_sec: "5 segundos" manual: "Manual" -# fork: "Fork" + fork: "Bifurcar" play: "Jogar" retry: "Tentar novamente" -# watch: "Watch" -# unwatch: "Unwatch" + watch: "Vigiar" + unwatch: "Desvigiar" submit_patch: "Submeter Versão" units: @@ -37,7 +37,7 @@ module.exports = nativeDescription: "Português europeu", englishDescription: "P modal: close: "Fechar" - okay: "Okay" + okay: "Ok" not_found: page_not_found: "Página não encontrada" @@ -81,7 +81,7 @@ module.exports = nativeDescription: "Português europeu", englishDescription: "P create_account_title: "Criar Conta para Guardar Progresso" description: "É grátis. Só são necessárias umas coisas e fica tudo pronto:" email_announcements: "Receber anúncios por e-mail" - coppa: "13+ ou não-EUA " + coppa: "Mais de 13 anos ou não estado-unidense " coppa_why: "(Porquê?)" creating: "A Criar Conta..." sign_up: "Registar" @@ -107,7 +107,7 @@ module.exports = nativeDescription: "Português europeu", englishDescription: "P adventurer_forum: "fórum do Aventureiro" adventurer_suffix: "." campaign_beginner: "Campanha para Iniciantes" - campaign_beginner_description: "... onde aprende a feitiçaria da programação." + campaign_beginner_description: "... onde aprende a magia da programação." campaign_dev: "Níveis mais Difíceis Aleatórios" campaign_dev_description: "... onde aprende a interface enquanto faz coisas um bocadinho mais difíceis." campaign_multiplayer: "Arenas Multijogador" @@ -236,7 +236,7 @@ module.exports = nativeDescription: "Português europeu", englishDescription: "P # basics_country: "Country" # basics_country_help: "Country you want to work in (or live in now)." # basics_visa: "US Work Status" -# basics_visa_help: "Are you authorized to work in the US, or do you need visa sponsorship? (If you live in Canada or Australia, mark authorized.)" +# basics_visa_help: "Are you authorized to work in the US, or do you need visa sponsorship?" # basics_looking_for: "Looking For" # basics_looking_for_full_time: "Full-time" # basics_looking_for_part_time: "Part-time" @@ -445,7 +445,7 @@ module.exports = nativeDescription: "Português europeu", englishDescription: "P # infinite_loop_reset_level: "Reset Level" # infinite_loop_comment_out: "Comment Out My Code" -# keyboard_shortcuts: + keyboard_shortcuts: # keyboard_shortcuts: "Keyboard Shortcuts" # space: "Space" # enter: "Enter" @@ -475,7 +475,7 @@ module.exports = nativeDescription: "Português europeu", englishDescription: "P lg_title: "Últimos Jogos" # clas: "CLAs" -# community: + community: # level_editor: "Level Editor" # main_title: "CodeCombat Community" # facebook: "Facebook" @@ -579,7 +579,7 @@ module.exports = nativeDescription: "Português europeu", englishDescription: "P hard: "Difícil" # player: "Player" -# about: + about: # who_is_codecombat: "Who is CodeCombat?" # why_codecombat: "Why CodeCombat?" # who_description_prefix: "together started CodeCombat in 2013. We also created " @@ -602,7 +602,7 @@ module.exports = nativeDescription: "Português europeu", englishDescription: "P # michael_description: "Programmer, sys-admin, and undergrad technical wunderkind, Michael is the person keeping our servers online." # glen_description: "Programmer and passionate game developer, with the motivation to make this world a better place, by developing things that matter. The word impossible can't be found in his dictionary. Learning new skills is his joy!" -# legal: + legal: # page_title: "Legal" # opensource_intro: "CodeCombat is free to play and completely open source." # opensource_description_prefix: "Check out " @@ -663,7 +663,7 @@ module.exports = nativeDescription: "Português europeu", englishDescription: "P # nutshell_description: "Any resources we provide in the Level Editor are free to use as you like for creating Levels. But we reserve the right to restrict distribution of the Levels themselves (that are created on codecombat.com) so that they may be charged for in the future, if that's what ends up happening." # canonical: "The English version of this document is the definitive, canonical version. If there are any discrepencies between translations, the English document takes precedence." -# contribute: + contribute: # page_title: "Contributing" # character_classes_title: "Character Classes" # introduction_desc_intro: "We have high hopes for CodeCombat." @@ -756,20 +756,20 @@ module.exports = nativeDescription: "Português europeu", englishDescription: "P # helpful_ambassadors: "Our Helpful Ambassadors:" classes: - archmage_title: "Archmage" - archmage_title_description: "(Coder)" - artisan_title: "Artisan" +# archmage_title: "Archmage" +# archmage_title_description: "(Coder)" + artisan_title: "Artesão" artisan_title_description: "(Construtor de Níveis)" - adventurer_title: "Adventurer" - adventurer_title_description: "(Play-tester de Níveis)" - scribe_title: "Scribe" + adventurer_title: "Aventureiro" + adventurer_title_description: "(Testador de Níveis)" + scribe_title: "Escrivão" scribe_title_description: "(Editor de Artigos)" - diplomat_title: "Diplomat" + diplomat_title: "Diplomata" diplomat_title_description: "(Tradutor)" - ambassador_title: "Ambassador" + ambassador_title: "Embaixador" ambassador_title_description: "(Suporte)" - counselor_title: "Counselor" - counselor_title_description: "(Expert/ Professor)" + counselor_title: "Conselheiro" + counselor_title_description: "(Especialista/Professor)" ladder: please_login: "Por favor, faz log in antes de jogar um jogo para o campeonato." @@ -824,7 +824,7 @@ module.exports = nativeDescription: "Português europeu", englishDescription: "P # rules: "Rules" # winners: "Winners" -# ladder_prizes: + ladder_prizes: # title: "Tournament Prizes" # blurb_1: "These prizes will be awarded according to" # blurb_2: "the tournament rules" @@ -858,7 +858,7 @@ module.exports = nativeDescription: "Português europeu", englishDescription: "P new_to_programming: ". Novo na programação? Faz a Campanha para Iniciantes para expandires as tuas capacidades." so_ready: "Estou mais que pronto para isto" -# loading_error: + loading_error: # could_not_load: "Error loading from server" # connection_failure: "Connection failed." # unauthorized: "You need to be signed in. Do you have cookies disabled?" @@ -868,12 +868,12 @@ module.exports = nativeDescription: "Português europeu", englishDescription: "P # timeout: "Server timeout." # conflict: "Resource conflict." # bad_input: "Bad input." -# server_error: "Server error." -# unknown: "Unknown error." + server_error: "Erro do servidor." + unknown: "Erro desconhecido." -# resources: -# your_sessions: "Your Sessions" -# level: "Level" + resources: + your_sessions: "As Suas Sessões" + level: "Nível" # social_network_apis: "Social Network APIs" # facebook_status: "Facebook Status" # facebook_friends: "Facebook Friends" @@ -905,7 +905,7 @@ module.exports = nativeDescription: "Português europeu", englishDescription: "P # user_remark: "User Remark" # versions: "Versions" -# delta: + delta: # added: "Added" # modified: "Modified" # deleted: "Deleted" From 6f94b0ce6f4011403bca3494b4359b17b0f93cf9 Mon Sep 17 00:00:00 2001 From: Imperadeiro98 Date: Fri, 11 Jul 2014 15:18:26 +0100 Subject: [PATCH 093/106] Update pt-PT.coffee --- app/locale/pt-PT.coffee | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/locale/pt-PT.coffee b/app/locale/pt-PT.coffee index 4c3a766fe..6628699db 100644 --- a/app/locale/pt-PT.coffee +++ b/app/locale/pt-PT.coffee @@ -236,7 +236,7 @@ module.exports = nativeDescription: "Português (Portugal)", englishDescription: # basics_country: "Country" # basics_country_help: "Country you want to work in (or live in now)." # basics_visa: "US Work Status" -# basics_visa_help: "Are you authorized to work in the US, or do you need visa sponsorship?" +# basics_visa_help: "Are you authorized to work in the US, or do you need visa sponsorship? (If you live in Canada or Australia, mark authorized.)" # basics_looking_for: "Looking For" # basics_looking_for_full_time: "Full-time" # basics_looking_for_part_time: "Part-time" From ef9ea0c4895342e6f4f299d740be175d06d2df48 Mon Sep 17 00:00:00 2001 From: Imperadeiro98 Date: Fri, 11 Jul 2014 18:12:12 +0100 Subject: [PATCH 094/106] Fixed a issue with headers There was a issue with the headers that is now corrected. --- app/locale/pt-PT.coffee | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/app/locale/pt-PT.coffee b/app/locale/pt-PT.coffee index 6628699db..abba1c8a8 100644 --- a/app/locale/pt-PT.coffee +++ b/app/locale/pt-PT.coffee @@ -325,7 +325,7 @@ module.exports = nativeDescription: "Português (Portugal)", englishDescription: # pass_screen: "They will pass your technical screen." # pass_screen_blurb: "Review each candidate's code before reaching out. One employer found that 5x as many of our devs passed their technical screen than hiring from Hacker News." # make_hiring_easier: "Make my hiring easier, please." - what: "O Que é o CodeCombat?" + what: "O que é o CodeCombat?" # what_blurb: "CodeCombat is a multiplayer browser programming game. Players write code to control their forces in battle against other developers. We support JavaScript, Python, Lua, Clojure, CoffeeScript, and Io." # cost: "How much do we charge?" # cost_blurb: "We charge 15% of first year's salary and offer a 100% money back guarantee for 90 days. We don't charge for candidates who are already actively being interviewed at your company." @@ -445,7 +445,7 @@ module.exports = nativeDescription: "Português (Portugal)", englishDescription: # infinite_loop_reset_level: "Reset Level" # infinite_loop_comment_out: "Comment Out My Code" - keyboard_shortcuts: +# keyboard_shortcuts: # keyboard_shortcuts: "Keyboard Shortcuts" # space: "Space" # enter: "Enter" @@ -475,7 +475,7 @@ module.exports = nativeDescription: "Português (Portugal)", englishDescription: lg_title: "Últimos Jogos" # clas: "CLAs" - community: +# community: # level_editor: "Level Editor" # main_title: "CodeCombat Community" # facebook: "Facebook" @@ -579,7 +579,7 @@ module.exports = nativeDescription: "Português (Portugal)", englishDescription: hard: "Difícil" # player: "Player" - about: +# about: # who_is_codecombat: "Who is CodeCombat?" # why_codecombat: "Why CodeCombat?" # who_description_prefix: "together started CodeCombat in 2013. We also created " @@ -602,7 +602,7 @@ module.exports = nativeDescription: "Português (Portugal)", englishDescription: # michael_description: "Programmer, sys-admin, and undergrad technical wunderkind, Michael is the person keeping our servers online." # glen_description: "Programmer and passionate game developer, with the motivation to make this world a better place, by developing things that matter. The word impossible can't be found in his dictionary. Learning new skills is his joy!" - legal: +# legal: # page_title: "Legal" # opensource_intro: "CodeCombat is free to play and completely open source." # opensource_description_prefix: "Check out " @@ -663,7 +663,7 @@ module.exports = nativeDescription: "Português (Portugal)", englishDescription: # nutshell_description: "Any resources we provide in the Level Editor are free to use as you like for creating Levels. But we reserve the right to restrict distribution of the Levels themselves (that are created on codecombat.com) so that they may be charged for in the future, if that's what ends up happening." # canonical: "The English version of this document is the definitive, canonical version. If there are any discrepencies between translations, the English document takes precedence." - contribute: +# contribute: # page_title: "Contributing" # character_classes_title: "Character Classes" # introduction_desc_intro: "We have high hopes for CodeCombat." @@ -824,7 +824,7 @@ module.exports = nativeDescription: "Português (Portugal)", englishDescription: # rules: "Rules" # winners: "Winners" - ladder_prizes: +# ladder_prizes: # title: "Tournament Prizes" # blurb_1: "These prizes will be awarded according to" # blurb_2: "the tournament rules" @@ -905,7 +905,7 @@ module.exports = nativeDescription: "Português (Portugal)", englishDescription: # user_remark: "User Remark" # versions: "Versions" - delta: +# delta: # added: "Added" # modified: "Modified" # deleted: "Deleted" From d4c21e0349db84ab5f394c47b7a836f54026f8b2 Mon Sep 17 00:00:00 2001 From: Imperadeiro98 Date: Fri, 11 Jul 2014 18:34:22 +0100 Subject: [PATCH 095/106] Update pt-PT.coffee --- app/locale/pt-PT.coffee | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/app/locale/pt-PT.coffee b/app/locale/pt-PT.coffee index abba1c8a8..439badbe0 100644 --- a/app/locale/pt-PT.coffee +++ b/app/locale/pt-PT.coffee @@ -858,7 +858,7 @@ module.exports = nativeDescription: "Português (Portugal)", englishDescription: new_to_programming: ". Novo na programação? Faz a Campanha para Iniciantes para expandires as tuas capacidades." so_ready: "Estou mais que pronto para isto" - loading_error: +# loading_error: # could_not_load: "Error loading from server" # connection_failure: "Connection failed." # unauthorized: "You need to be signed in. Do you have cookies disabled?" @@ -868,12 +868,12 @@ module.exports = nativeDescription: "Português (Portugal)", englishDescription: # timeout: "Server timeout." # conflict: "Resource conflict." # bad_input: "Bad input." - server_error: "Erro do servidor." - unknown: "Erro desconhecido." +# server_error: "Server error." +# unknown: "Unknown error." - resources: - your_sessions: "As Suas Sessões" - level: "Nível" +# resources: +# your_sessions: "Your Sessions" +# level: "Level" # social_network_apis: "Social Network APIs" # facebook_status: "Facebook Status" # facebook_friends: "Facebook Friends" From bad11f0eea9dc3bb9db7afbddb99f93744198685 Mon Sep 17 00:00:00 2001 From: Imperadeiro98 Date: Fri, 11 Jul 2014 19:08:14 +0100 Subject: [PATCH 096/106] Update pt-PT.coffee --- app/locale/pt-PT.coffee | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/app/locale/pt-PT.coffee b/app/locale/pt-PT.coffee index 439badbe0..e61cf9f08 100644 --- a/app/locale/pt-PT.coffee +++ b/app/locale/pt-PT.coffee @@ -445,7 +445,7 @@ module.exports = nativeDescription: "Português (Portugal)", englishDescription: # infinite_loop_reset_level: "Reset Level" # infinite_loop_comment_out: "Comment Out My Code" -# keyboard_shortcuts: +# keyboard_shortcuts: # keyboard_shortcuts: "Keyboard Shortcuts" # space: "Space" # enter: "Enter" @@ -475,7 +475,7 @@ module.exports = nativeDescription: "Português (Portugal)", englishDescription: lg_title: "Últimos Jogos" # clas: "CLAs" -# community: +# community: # level_editor: "Level Editor" # main_title: "CodeCombat Community" # facebook: "Facebook" @@ -579,7 +579,7 @@ module.exports = nativeDescription: "Português (Portugal)", englishDescription: hard: "Difícil" # player: "Player" -# about: +# about: # who_is_codecombat: "Who is CodeCombat?" # why_codecombat: "Why CodeCombat?" # who_description_prefix: "together started CodeCombat in 2013. We also created " @@ -602,7 +602,7 @@ module.exports = nativeDescription: "Português (Portugal)", englishDescription: # michael_description: "Programmer, sys-admin, and undergrad technical wunderkind, Michael is the person keeping our servers online." # glen_description: "Programmer and passionate game developer, with the motivation to make this world a better place, by developing things that matter. The word impossible can't be found in his dictionary. Learning new skills is his joy!" -# legal: +# legal: # page_title: "Legal" # opensource_intro: "CodeCombat is free to play and completely open source." # opensource_description_prefix: "Check out " @@ -663,7 +663,7 @@ module.exports = nativeDescription: "Português (Portugal)", englishDescription: # nutshell_description: "Any resources we provide in the Level Editor are free to use as you like for creating Levels. But we reserve the right to restrict distribution of the Levels themselves (that are created on codecombat.com) so that they may be charged for in the future, if that's what ends up happening." # canonical: "The English version of this document is the definitive, canonical version. If there are any discrepencies between translations, the English document takes precedence." -# contribute: +# contribute: # page_title: "Contributing" # character_classes_title: "Character Classes" # introduction_desc_intro: "We have high hopes for CodeCombat." @@ -824,7 +824,7 @@ module.exports = nativeDescription: "Português (Portugal)", englishDescription: # rules: "Rules" # winners: "Winners" -# ladder_prizes: +# ladder_prizes: # title: "Tournament Prizes" # blurb_1: "These prizes will be awarded according to" # blurb_2: "the tournament rules" @@ -858,7 +858,7 @@ module.exports = nativeDescription: "Português (Portugal)", englishDescription: new_to_programming: ". Novo na programação? Faz a Campanha para Iniciantes para expandires as tuas capacidades." so_ready: "Estou mais que pronto para isto" -# loading_error: +# loading_error: # could_not_load: "Error loading from server" # connection_failure: "Connection failed." # unauthorized: "You need to be signed in. Do you have cookies disabled?" @@ -871,7 +871,7 @@ module.exports = nativeDescription: "Português (Portugal)", englishDescription: # server_error: "Server error." # unknown: "Unknown error." -# resources: +# resources: # your_sessions: "Your Sessions" # level: "Level" # social_network_apis: "Social Network APIs" @@ -905,7 +905,7 @@ module.exports = nativeDescription: "Português (Portugal)", englishDescription: # user_remark: "User Remark" # versions: "Versions" -# delta: +# delta: # added: "Added" # modified: "Modified" # deleted: "Deleted" From ca78638a21071284ad915799c7ef3df0dd31ae4c Mon Sep 17 00:00:00 2001 From: dreamist Date: Sat, 12 Jul 2014 03:07:58 +0700 Subject: [PATCH 097/106] Update th.coffee One fix and a few more translations --- app/locale/th.coffee | 42 +++++++++++++++++++++--------------------- 1 file changed, 21 insertions(+), 21 deletions(-) diff --git a/app/locale/th.coffee b/app/locale/th.coffee index fdc53c6d8..f78ae1e8b 100644 --- a/app/locale/th.coffee +++ b/app/locale/th.coffee @@ -1,11 +1,11 @@ module.exports = nativeDescription: "ไทย", englishDescription: "Thai", translation: common: loading: "รอสักครู่..." -# saving: "Saving..." + saving: "กำลังบันทึก..." # sending: "Sending..." # send: "Send" cancel: "ยกเลิก" -# save: "Save" + save: "บันทึก" # publish: "Publish" # create: "Create" delay_1_sec: "1 วินาที" @@ -19,21 +19,21 @@ module.exports = nativeDescription: "ไทย", englishDescription: "Thai", tra # unwatch: "Unwatch" # submit_patch: "Submit Patch" -# units: -# second: "second" -# seconds: "seconds" -# minute: "minute" -# minutes: "minutes" -# hour: "hour" -# hours: "hours" -# day: "day" -# days: "days" -# week: "week" -# weeks: "weeks" -# month: "month" -# months: "months" -# year: "year" -# years: "years" + units: + second: "วินาที" + seconds: "วินาที" + minute: "นาที" + minutes: "นาที" + hour: "ชั่วโมง" + hours: "ชั่วโมง" + day: "วัน" + days: "วัน" + week: "สัปดาห์" + weeks: "สัปดาห์" + month: "เดือน" + months: "เดือน" + year: "ปี" + years: "ปี" modal: close: "ปิด" @@ -69,8 +69,8 @@ module.exports = nativeDescription: "ไทย", englishDescription: "Thai", tra login: sign_up: "ลงทะเบียนใหม่" log_in: "ลงชื่อเข้าใช้" -# logging_in: "Logging In" - log_out: "ลงชื่ื่อออก" + logging_in: "กำลังเข้าสู่ระบบ" + log_out: "ลงชื่อออก" recover: "กู้บัญชีการใช้งาน" # recover: @@ -78,12 +78,12 @@ module.exports = nativeDescription: "ไทย", englishDescription: "Thai", tra # send_password: "Send Recovery Password" signup: -# create_account_title: "Create Account to Save Progress" + create_account_title: "สร้างบัญชีใหม่เพื่อบันทึกความก้าวหน้า" # description: "It's free. Just need a couple things and you'll be good to go:" email_announcements: "รับข่าวสารผ่านทางอีเมลล์" # coppa: "13+ or non-USA " coppa_why: "(ทำไม?)" -# creating: "Creating Account..." + creating: "กำลังสร้างบัญชีใหม่..." sign_up: "สมัคร" log_in: "เข้าสู่ระบบด้วยรหัสผ่าน" # social_signup: "Or, you can sign up through Facebook or G+:" From fede037e89a0ae4421fa6ddbca1c25f9f4077171 Mon Sep 17 00:00:00 2001 From: Michael Schmatz Date: Fri, 11 Jul 2014 13:55:30 -0700 Subject: [PATCH 098/106] Fixed time NaN --- app/views/play/level/tome/spell_debug_view.coffee | 2 ++ 1 file changed, 2 insertions(+) diff --git a/app/views/play/level/tome/spell_debug_view.coffee b/app/views/play/level/tome/spell_debug_view.coffee index 8d08dca71..e69fadc98 100644 --- a/app/views/play/level/tome/spell_debug_view.coffee +++ b/app/views/play/level/tome/spell_debug_view.coffee @@ -38,6 +38,8 @@ module.exports = class DebugView extends View @lastFrameRequested = -1 @workerIsSimulating = false @spellHasChanged = false + @currentFrame = 0 + @frameRate = 10 #only time it won't be set is at very beginning @debouncedTooltipUpdate = _.debounce @updateTooltipProgress, 100 pad2: (num) -> From 17ba4bc8a7aa65a73e7bb16888e80db3ab384e28 Mon Sep 17 00:00:00 2001 From: Nick Winter Date: Fri, 11 Jul 2014 18:07:00 -0700 Subject: [PATCH 099/106] Starting to limit some property documentation to specific code languages. Fixed Criss-Cross squares on frame 0. Removed comment box highlighting from the gutter. --- app/lib/surface/Mark.coffee | 16 +++++++++------- app/schemas/models/level_component.coffee | 1 + app/treema-ext.coffee | 7 +++++++ app/views/play/level/tome/spell_view.coffee | 1 + 4 files changed, 18 insertions(+), 7 deletions(-) diff --git a/app/lib/surface/Mark.coffee b/app/lib/surface/Mark.coffee index ff4631aec..9752ca837 100644 --- a/app/lib/surface/Mark.coffee +++ b/app/lib/surface/Mark.coffee @@ -65,6 +65,8 @@ module.exports = class Mark extends CocoClass buildBounds: -> @mark = new createjs.Container() @mark.mouseChildren = false + style = @sprite.thang.drawsBoundsStyle + return if style is 'corner-text' and @sprite.thang.world.age is 0 # Confusingly make some semi-random colors that'll be consistent based on the drawsBoundsIndex @drawsBoundsIndex = @sprite.thang.drawsBoundsIndex @@ -72,11 +74,11 @@ module.exports = class Mark extends CocoClass color = "rgba(#{colors[0]}, #{colors[1]}, #{colors[2]}, 0.5)" [w, h] = [@sprite.thang.width * Camera.PPM, @sprite.thang.height * Camera.PPM * @camera.y2x] - if @sprite.thang.drawsBoundsStyle in ['border-text', 'corner-text'] + if style in ['border-text', 'corner-text'] @drawsBoundsBorderShape = shape = new createjs.Shape() shape.graphics.setStrokeStyle 5 shape.graphics.beginStroke color - if @sprite.thang.drawsBoundsStyle is 'border-text' + if style is 'border-text' shape.graphics.beginFill color.replace('0.5', '0.25') else shape.graphics.beginFill color @@ -88,13 +90,13 @@ module.exports = class Mark extends CocoClass shape.graphics.endFill() @mark.addChild shape - if @sprite.thang.drawsBoundsStyle is 'border-text' + if style is 'border-text' text = new createjs.Text '' + @drawsBoundsIndex, '20px Arial', color.replace('0.5', '1') text.regX = text.getMeasuredWidth() / 2 text.regY = text.getMeasuredHeight() / 2 text.shadow = new createjs.Shadow('#000000', 1, 1, 0) @mark.addChild text - else if @sprite.thang.drawsBoundsStyle is 'corner-text' + else if style is 'corner-text' return if @sprite.thang.world.age is 0 letter = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'[@drawsBoundsIndex % 26] text = new createjs.Text letter, '14px Arial', '#333333' # color.replace('0.5', '1') @@ -102,9 +104,9 @@ module.exports = class Mark extends CocoClass text.y = -h / 2 + 2 @mark.addChild text else - console.warn @sprite.thang.id, 'didn\'t know how to draw bounds style:', @sprite.thang.drawsBoundsStyle + console.warn @sprite.thang.id, 'didn\'t know how to draw bounds style:', style - if w > 0 and h > 0 and @sprite.thang.drawsBoundsStyle is 'border-text' + if w > 0 and h > 0 and style is 'border-text' @mark.cache -w / 2, -h / 2, w, h, 2 @lastWidth = @sprite.thang.width @lastHeight = @sprite.thang.height @@ -130,7 +132,7 @@ module.exports = class Mark extends CocoClass @mark.regX = width / 2 @mark.regY = height / 2 @mark.layerIndex = 10 - @mark.cache -1, 0, width+2, height # not actually faster than simple ellipse draw + @mark.cache -1, -1, width + 2, height + 2 # not actually faster than simple ellipse draw buildRadius: (range) -> alpha = 0.15 diff --git a/app/schemas/models/level_component.coffee b/app/schemas/models/level_component.coffee index 738e954ce..162abc617 100644 --- a/app/schemas/models/level_component.coffee +++ b/app/schemas/models/level_component.coffee @@ -23,6 +23,7 @@ PropertyDocumentationSchema = c.object { required: ['name', 'type', 'description'] }, name: {type: 'string', title: 'Name', description: 'Name of the property.'} + codeLanguages: c.array {title: 'Specific Code Languages', description: 'If present, then only the languages specified will show this documentation. Leave unset for language-independent documentation.', format: 'code-languages-array'}, c.shortString(title: 'Code Language', description: 'A specific code language to show this documentation for.', format: 'code-language') # not actual JS types, just whatever they describe... type: c.shortString(title: 'Type', description: 'Intended type of the property.') description: diff --git a/app/treema-ext.coffee b/app/treema-ext.coffee index a56b4a45a..314f30149 100644 --- a/app/treema-ext.coffee +++ b/app/treema-ext.coffee @@ -210,6 +210,12 @@ class CodeLanguagesObjectTreema extends TreemaNode.nodeMap.object childPropertiesAvailable: -> (key for key in _.keys(codeLanguages) when not @data[key]?) +class CodeLanguageTreema extends TreemaNode.nodeMap.string + buildValueForEditing: (valEl) -> + super(valEl) + valEl.find('input').autocomplete(source: _.keys(codeLanguages), minLength: 0, delay: 0, autoFocus: true) + valEl + class CodeTreema extends TreemaNode.nodeMap.ace constructor: -> super(arguments...) @@ -412,6 +418,7 @@ module.exports.setup = -> TreemaNode.setNodeSubclass('version', VersionTreema) TreemaNode.setNodeSubclass('markdown', LiveEditingMarkup) TreemaNode.setNodeSubclass('code-languages-object', CodeLanguagesObjectTreema) + TreemaNode.setNodeSubclass('code-language', CodeLanguageTreema) TreemaNode.setNodeSubclass('code', CodeTreema) TreemaNode.setNodeSubclass('coffee', CoffeeTreema) TreemaNode.setNodeSubclass('javascript', JavaScriptTreema) diff --git a/app/views/play/level/tome/spell_view.coffee b/app/views/play/level/tome/spell_view.coffee index 7c3114f59..745e3c9fe 100644 --- a/app/views/play/level/tome/spell_view.coffee +++ b/app/views/play/level/tome/spell_view.coffee @@ -599,6 +599,7 @@ module.exports = class SpellView extends View null highlightComments: -> + return # Slightly buggy and not that great, so let's not do it. lines = $(@ace.container).find('.ace_text-layer .ace_line_group') session = @aceSession top = Math.floor @ace.renderer.getScrollTopRow() From c62f5f3fa00161adf615e4dbc6168e8303719dd7 Mon Sep 17 00:00:00 2001 From: Nick Winter Date: Fri, 11 Jul 2014 18:42:55 -0700 Subject: [PATCH 100/106] Skipping docs for language-inappropriate entries in spell palette. --- app/views/play/level/tome/spell_palette_view.coffee | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/views/play/level/tome/spell_palette_view.coffee b/app/views/play/level/tome/spell_palette_view.coffee index 1924258e8..b2ace318b 100644 --- a/app/views/play/level/tome/spell_palette_view.coffee +++ b/app/views/play/level/tome/spell_palette_view.coffee @@ -57,6 +57,7 @@ module.exports = class SpellPaletteView extends View allDocs = {} for lc in lcs for doc in (lc.get('propertyDocumentation') ? []) + continue if doc.codeLanguages and not (@options.language in doc.codeLanguages) allDocs['__' + doc.name] ?= [] allDocs['__' + doc.name].push doc if doc.type is 'snippet' then doc.owner = 'snippets' @@ -83,7 +84,6 @@ module.exports = class SpellPaletteView extends View 'this': 'apiProperties' count = 0 propGroups = {} - console.log 'thang', @thang for owner, storage of propStorage props = _.reject @thang[storage] ? [], (prop) -> prop[0] is '_' # no private properties added = propGroups[owner] = _.sortBy(props).slice() From e3183650c59ada51a03cccac2f8de6a830caa309 Mon Sep 17 00:00:00 2001 From: Pete DiSalvo Date: Fri, 11 Jul 2014 22:10:13 -0400 Subject: [PATCH 101/106] Centered CoordinateDisplay background and label --- app/lib/surface/CoordinateDisplay.coffee | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/app/lib/surface/CoordinateDisplay.coffee b/app/lib/surface/CoordinateDisplay.coffee index 448671ce3..87302f37a 100644 --- a/app/lib/surface/CoordinateDisplay.coffee +++ b/app/lib/surface/CoordinateDisplay.coffee @@ -67,8 +67,10 @@ module.exports = class CoordinateDisplay extends createjs.Container radius = 2.5 width = @label.getMeasuredWidth() + 2 * margin height = @label.getMeasuredHeight() + 2 * margin - @label.regX = @background.regX = width / 2 - margin - @label.regY = @background.regY = height / 2 - margin + @label.regX = @background.regX = width / 2 + @label.regY = @background.regY = height / 2 + @label.regX -= margin + @label.regY -= margin @background.graphics .clear() .beginFill('rgba(0,0,0,0.4)') From 178e147565db0444a0e94159affff1db19fad21e Mon Sep 17 00:00:00 2001 From: Imperadeiro98 Date: Sat, 12 Jul 2014 08:54:16 +0100 Subject: [PATCH 102/106] Update pt-PT.coffee --- app/locale/pt-PT.coffee | 62 ++++++++++++++++++++--------------------- 1 file changed, 31 insertions(+), 31 deletions(-) diff --git a/app/locale/pt-PT.coffee b/app/locale/pt-PT.coffee index e61cf9f08..47bdd3772 100644 --- a/app/locale/pt-PT.coffee +++ b/app/locale/pt-PT.coffee @@ -128,8 +128,8 @@ module.exports = nativeDescription: "Português (Portugal)", englishDescription: forum_page: "nosso fórum" forum_suffix: " como alternativa." send: "Enviar Feedback" -# contact_candidate: "Contact Candidate" -# recruitment_reminder: "Use this form to reach out to candidates you are interested in interviewing. Remember that CodeCombat charges 15% of first-year salary. The fee is due upon hiring the employee and is refundable for 90 days if the employee does not remain employed. Part time, remote, and contract employees are free, as are interns." + contact_candidate: "Contactar Candidato" + recruitment_reminder: "Use este formulário para chegar a candidatos que esteja interessado em entrevistar. Lembre-se que o CodeCombat cobra 15% do salário do primeiro ano. A taxa é cobrada no momento da contratação do empregado e é reembolsável durante 90 dias, no caso de o trabalhador não se manter empregado. A empregados em part-time, no estrangeiro e a contrato não são aplicadas taxas, porque são internos." diplomat_suggestion: title: "Ajude a traduzir o CodeCombat!" @@ -173,7 +173,7 @@ module.exports = nativeDescription: "Português (Portugal)", englishDescription: email_announcements: "Anúncios" email_announcements_description: "Receba e-mails sobre as últimas novidades e desenvolvimentos no CodeCombat." email_notifications: "Notificações" -# email_notifications_summary: "Controls for personalized, automatic email notifications related to your CodeCombat activity." + email_notifications_summary: "Controle, de uma forma personalizada e automática, os e-mails de notificações relacionados com a sua atividade no CodeCombat." email_any_notes: "Quaisquer Notificações" email_any_notes_description: "Desative para parar de receber todos os e-mails de notificação de atividade." email_recruit_notes: "Oportunidades de Emprego" @@ -298,13 +298,13 @@ module.exports = nativeDescription: "Português (Portugal)", englishDescription: # player_code: "Player Code" employers: -# hire_developers_not_credentials: "Hire developers, not credentials." -# get_started: "Get Started" -# already_screened: "We've already technically screened all our candidates" -# filter_further: ", but you can also filter further:" -# filter_visa: "Visa" -# filter_visa_yes: "US Authorized" -# filter_visa_no: "Not Authorized" + hire_developers_not_credentials: "Contrate desenvolvedores, não cartas de recomendação." + get_started: "Começar" + already_screened: "Nós já selecionamos tecnicamente todos os nossos candidatos" + filter_further: ", mas ainda pode filtrar mais:" + filter_visa: "Visa" + filter_visa_yes: "Autorizado Para Trabalhar Nos EUA" + filter_visa_no: "Não Autorizado" # filter_education_top: "Top School" # filter_education_other: "Other" # filter_role_web_developer: "Web Developer" @@ -326,9 +326,9 @@ module.exports = nativeDescription: "Português (Portugal)", englishDescription: # pass_screen_blurb: "Review each candidate's code before reaching out. One employer found that 5x as many of our devs passed their technical screen than hiring from Hacker News." # make_hiring_easier: "Make my hiring easier, please." what: "O que é o CodeCombat?" -# what_blurb: "CodeCombat is a multiplayer browser programming game. Players write code to control their forces in battle against other developers. We support JavaScript, Python, Lua, Clojure, CoffeeScript, and Io." -# cost: "How much do we charge?" -# cost_blurb: "We charge 15% of first year's salary and offer a 100% money back guarantee for 90 days. We don't charge for candidates who are already actively being interviewed at your company." + what_blurb: "O CodeCombat é um jogo de programação, no navegador e multijogador. Os jogadores escrevem código para controlar as forças deles em batalha contra outros desenvolvedores. Nós suportamos JavaScript, Python, Lua, Clojure, CoffeeScript e Io." + cost: "Quanto é que cobramos?" + cost_blurb: "Cobramos 15% do salário do primeiro ano e ofereçemos uma garantia de devolução de 100% do dinheiro durante 90 dias. Não cobramos por candidatos que já estejam a ser ativamente entrevistados na sua companhia." candidate_name: "Nome" candidate_location: "Localização" candidate_looking_for: "À Procura de" @@ -347,29 +347,29 @@ module.exports = nativeDescription: "Português (Portugal)", englishDescription: customize_wizard: "Personalizar Feiticeiro" home: "Início" guide: "Guia" - multiplayer: "Multiplayer" + multiplayer: "Multijogador" restart: "Reiniciar" goals: "Objetivos" -# success: "Success!" -# incomplete: "Incomplete" -# timed_out: "Ran out of time" -# failing: "Failing" - action_timeline: "Linha do Tempo" - click_to_select: "Clica numa unidade para a selecionares." - reload_title: "Recarregar todo o código?" - reload_really: "Tens a certeza que queres recarregar este nível de volta ao início?" - reload_confirm: "Recarregar tudo" + success: "Successo!" + incomplete: "Incompletos" + timed_out: "Ficou sem tempo" + failing: "A falhar" + action_timeline: "Linha do Tempo de Ações" + click_to_select: "Clique numa unidade para selecioná-la." + reload_title: "Recarregar o Código Todo?" + reload_really: "Tem a certeza que quer recarregar este nível de volta ao início?" + reload_confirm: "Recarregar Tudo" victory_title_prefix: "" victory_title_suffix: " Concluído" - victory_sign_up: "Cria uma conta para guardar o teu progresso" - victory_sign_up_poke: "Queres guardar o teu código? Cria uma conta grátis!" - victory_rate_the_level: "Classifica este nível: " + victory_sign_up: "Criar Conta para Guardar Progresso" + victory_sign_up_poke: "Quer guardar o seu código? Crie uma conta grátis!" + victory_rate_the_level: "Classifique este nível: " victory_return_to_ladder: "Voltar à Classificação" - victory_play_next_level: "Jogar próximo nível" - victory_go_home: "Ir para o Inicio" - victory_review: "Conta-nos mais!" - victory_hour_of_code_done: "É tudo?" - victory_hour_of_code_done_yes: "Sim, a minha Hora de Código chegou ao fim!" + victory_play_next_level: "Jogar Próximo Nível" + victory_go_home: "Ir para o Início" + victory_review: "Conte-nos mais!" + victory_hour_of_code_done: "É Tudo?" + victory_hour_of_code_done_yes: "Sim, a minha Hora de Código™ chegou ao fim!" multiplayer_title: "Definições de Multiplayer" multiplayer_link_description: "Dá este link a alguém para se juntar a ti." multiplayer_hint_label: "Dica:" From 8cb7cd770c3d1104c5c29c3dce2a60f18d19f343 Mon Sep 17 00:00:00 2001 From: Scott Erickson Date: Sat, 12 Jul 2014 09:42:50 -0700 Subject: [PATCH 103/106] Fixed i18n population because mongoose has problems with empty objects. --- app/models/CocoModel.coffee | 2 +- scripts/mongodb/migrations/2014-07-09-name-conflicts.js | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/app/models/CocoModel.coffee b/app/models/CocoModel.coffee index 0d2846359..045843306 100644 --- a/app/models/CocoModel.coffee +++ b/app/models/CocoModel.coffee @@ -237,7 +237,7 @@ class CocoModel extends Backbone.Model data ?= $.extend true, {}, @attributes schema ?= @schema() or {} if schema.properties?.i18n and _.isPlainObject(data) and not data.i18n? - data.i18n = {} + data.i18n = {'-':'-'} # mongoose doesn't work with empty objects sum += 1 if _.isPlainObject data diff --git a/scripts/mongodb/migrations/2014-07-09-name-conflicts.js b/scripts/mongodb/migrations/2014-07-09-name-conflicts.js index bf15c1a9e..82c872052 100644 --- a/scripts/mongodb/migrations/2014-07-09-name-conflicts.js +++ b/scripts/mongodb/migrations/2014-07-09-name-conflicts.js @@ -46,7 +46,7 @@ db.users.find({anonymous:false}, params).sort({_id:1}).forEach(function (user) { } update.slug = slug; slugs[slug] = user.name; - if(user.slug) return; + if(user.slug === slug) return; print(_.str.sprintf('Setting user %s (%s) to slug %s with update %s', user.name, user.dateCreated, slug, JSON.stringify({$set:update}))); var res = db.users.update({_id:user._id}, {$set:update}); if(res.hasWriteError()) { From f4b22fedc9a1e1f28e2c2f77afd210175a64a1a0 Mon Sep 17 00:00:00 2001 From: Scott Erickson Date: Sat, 12 Jul 2014 09:55:26 -0700 Subject: [PATCH 104/106] Tweaking the visuals for the i18n treema node to mostly ignore the property required to get around mongoose not handling empty objects. --- app/treema-ext.coffee | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/app/treema-ext.coffee b/app/treema-ext.coffee index 314f30149..c7b6fac65 100644 --- a/app/treema-ext.coffee +++ b/app/treema-ext.coffee @@ -248,7 +248,14 @@ class JavaScriptTreema extends CodeTreema class InternationalizationNode extends TreemaNode.nodeMap.object findLanguageName: (languageCode) -> + # to get around mongoose emtpy object bug, there's a prop in the object which needs to be ignored + return '' if languageCode is '-' locale[languageCode]?.nativeDescription or "#{languageCode} Not Found" + + getChildren: -> + res = super(arguments...) + res = (r for r in res when r[0] isnt '-') + res getChildSchema: (key) -> #construct the child schema here From bc3b0645eae42d7bee82a1e81d92812af0548e5a Mon Sep 17 00:00:00 2001 From: Tery Lim Date: Sun, 13 Jul 2014 23:18:55 +0800 Subject: [PATCH 105/106] Remove extra require and minor cleanup --- server/queues/scoring.coffee | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/server/queues/scoring.coffee b/server/queues/scoring.coffee index 3d67ef25a..b92fe5017 100644 --- a/server/queues/scoring.coffee +++ b/server/queues/scoring.coffee @@ -5,7 +5,6 @@ async = require 'async' errors = require '../commons/errors' aws = require 'aws-sdk' db = require './../routes/db' -mongoose = require 'mongoose' queues = require '../commons/queue' LevelSession = require '../levels/sessions/LevelSession' Level = require '../levels/Level' @@ -21,7 +20,7 @@ module.exports.setup = (app) -> connectToScoringQueue() connectToScoringQueue = -> queues.initializeQueueClient -> queues.queueClient.registerQueue 'scoring', {}, (error, data) -> - if error? then throw new Error "There was an error registering the scoring queue: #{error}" + if error? then throw new Error "There was an error registering the scoring queue: #{error}" scoringTaskQueue = data log.info 'Connected to scoring task queue!' @@ -125,7 +124,7 @@ module.exports.getTwoGames = (req, res) -> #if userIsAnonymous req then return errors.unauthorized(res, 'You need to be logged in to get games.') humansGameID = req.body.humansGameID ogresGameID = req.body.ogresGameID - ladderGameIDs = ['greed','criss-cross','brawlwood','dungeon-arena','gold-rush'] + ladderGameIDs = ['greed', 'criss-cross', 'brawlwood', 'dungeon-arena', 'gold-rush'] levelID = _.sample ladderGameIDs unless ogresGameID and humansGameID #fetch random games here @@ -546,7 +545,6 @@ saveNewScoresToDatabase = (newScoreArray, callback) -> #log.info 'Saved new scores to database' callback err, newScoreArray - updateScoreInSession = (scoreObject, callback) -> LevelSession.findOne {'_id': scoreObject.id}, (err, session) -> if err? then return callback err, null From 8a7e7e82a0f007a4d752a8ab8725d878c772a1e2 Mon Sep 17 00:00:00 2001 From: Nick Winter Date: Sun, 13 Jul 2014 08:37:39 -0700 Subject: [PATCH 106/106] Let's try a heads-up whenever there's a JS error. --- app/initialize.coffee | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/app/initialize.coffee b/app/initialize.coffee index 5462242f4..b2d69ee13 100644 --- a/app/initialize.coffee +++ b/app/initialize.coffee @@ -18,6 +18,7 @@ definitionSchemas = 'misc': require './schemas/definitions/misc' init = -> + watchForErrors() path = document.location.pathname testing = path.startsWith '/test' demoing = path.startsWith '/demo' @@ -79,3 +80,16 @@ initializeServices = -> for service in services service = require service service() + +watchForErrors = -> + currentErrors = 0 + window.onerror = (msg, url, line, col, error) -> + return if currentErrors >= 3 + return unless me.isAdmin() or document.location.href.search(/codecombat.com/) is -1 or document.location.href.search(/\/editor\//) isnt -1 + ++currentErrors + msg = "Error: #{msg}
Check the JS console for more." + #msg += "\nLine: #{line}" if line? + #msg += "\nColumn: #{col}" if col? + #msg += "\nError: #{error}" if error? + #msg += "\nStack: #{stack}" if stack = error?.stack + noty text: msg, layout: 'topCenter', type: 'error', killer: false, timeout: 5000, dismissQueue: true, maxVisible: 3, callback: {onClose: -> --currentErrors}