From ba405b8fed5760ca05c174aa443885f1b4f19451 Mon Sep 17 00:00:00 2001 From: Ting-Kuan Date: Thu, 13 Feb 2014 09:21:40 -0500 Subject: [PATCH 01/51] Revise zh-tw translations. --- app/locale/zh-HANT.coffee | 72 +++++++++++++++++++-------------------- 1 file changed, 36 insertions(+), 36 deletions(-) diff --git a/app/locale/zh-HANT.coffee b/app/locale/zh-HANT.coffee index 31a9bc743..4bc71f9f5 100644 --- a/app/locale/zh-HANT.coffee +++ b/app/locale/zh-HANT.coffee @@ -3,14 +3,14 @@ module.exports = nativeDescription: "繁体中文", englishDescription: "Chinese loading: "Loading..." saving: "儲存中..." sending: "發送中...." - cancel: "退出" -# save: "Save" + cancel: "取消" + save: "存檔" delay_1_sec: "1 秒" delay_3_sec: "3 秒" delay_5_sec: "5 秒" - manual: "手動手动" + manual: "手動發動" # fork: "Fork" - play: "玩" + play: "播放" # Play timeline in a level. modal: close: "關閉" @@ -20,17 +20,17 @@ module.exports = nativeDescription: "繁体中文", englishDescription: "Chinese page_not_found: "找不到網頁" nav: - play: "玩" + play: "開始遊戲" editor: "編輯" - blog: "博客" - forum: "論壇" - admin: "超級管理員" + blog: "部落格" # Official blog + forum: "論壇" # Official forum + admin: "系統管理員" home: "首頁" contribute: "貢獻" - legal: "法律" + legal: "版權聲明" # Copyright about: "關於" contact: "聯繫我們" - twitter_follow: "關注" + twitter_follow: "在Twitter關注" # employers: "Employers" # versions: @@ -43,8 +43,8 @@ module.exports = nativeDescription: "繁体中文", englishDescription: "Chinese login: sign_up: "註冊" - log_in: "登錄" - log_out: "退出" + log_in: "登入" + log_out: "登出" recover: "找回帳戶" recover: @@ -53,51 +53,51 @@ module.exports = nativeDescription: "繁体中文", englishDescription: "Chinese signup: # create_account_title: "Create Account to Save Progress" - description: "這是免費的。超簡單的喲:" + description: "登入以儲存遊戲進度:" email_announcements: "通過郵件接收通知" coppa: "13歲以上或非美國公民" coppa_why: "爲什麽?" creating: "帳戶創建中..." sign_up: "註冊" - log_in: "登錄" + log_in: "登入" home: slogan: "通過玩遊戲學習Javascript 腳本語言" no_ie: "抱歉!Internet Explorer 9 等舊的瀏覽器打不開此網站" no_mobile: "CodeCombat 不是針對手機設備設計的,所以可能會出問題!" - play: "玩" + play: "開始遊戲" play: - choose_your_level: "選取難度" + choose_your_level: "選取關卡" adventurer_prefix: "你可以選擇以下任意關卡,或者討論以上的關卡 " adventurer_forum: "冒險家論壇" adventurer_suffix: "." - campaign_beginner: "新手作戰" + campaign_beginner: "新手指南" campaign_beginner_description: "...在這裡可以學到編程技巧。" campaign_dev: "隨機關卡" - campaign_dev_description: "...在這裡你可以學到做一些複雜功能的接口。" + campaign_dev_description: "...在這裡你可以學到做一些較複雜的程式技巧。" campaign_multiplayer: "多人競技場" - campaign_multiplayer_description: "...在這裡你可以和其他玩家們進行代碼近戰。" - campaign_player_created: "已創建的玩家" - campaign_player_created_description: "...在這裡你可以與你的小夥伴的創造力戰鬥 技術指導." + campaign_multiplayer_description: "...在這裡你可以和其他玩家進行對戰。" + campaign_player_created: "玩家建立的關卡" + campaign_player_created_description: "...挑戰同伴的創意 技術指導." level_difficulty: "難度" contact: contact_us: "聯繫我們" welcome: "很高興收到你的信!用這個表格給我們發電郵。 " - contribute_prefix: "如果你想貢獻代碼,請看 " - contribute_page: "貢獻代碼頁面" + contribute_prefix: "如果你想貢獻程式,請看 " + contribute_page: "程式貢獻頁面" contribute_suffix: "!" - forum_prefix: "對於任何公共部份,放手去做吧 " - forum_page: "我們的論壇" - forum_suffix: "代替。" + forum_prefix: "如果有任何問題, 請至" + forum_page: "論壇" + forum_suffix: "討論。" sending: "發送中。。。" send: "意見反饋" diplomat_suggestion: title: "幫我們翻譯CodeCombat" sub_heading: "我們需要您的語言技能" - pitch_body: "我們開發了CodeCombat的英文版,但是現在我們的玩家遍佈全球。很多人想玩中文(繁体)版的,卻不會說英文,所以如果你中英文都會,請考慮一下參加我們的翻譯工作,幫忙把 CodeCombat 網站還有所有的關卡翻譯成中文(繁体)。" + pitch_body: "我們開發了CodeCombat的英文版,但是現在我們的玩家遍佈全球。很多人想玩中文版的,卻不會說英文,所以如果你中英文都會,請考慮一下參加我們的翻譯工作,幫忙把 CodeCombat 網站還有所有的關卡翻譯成中文(繁体)。" missing_translations: "直至所有正體中文的翻譯完畢,當無法提供正體中文時還會以英文顯示。" learn_more: "關於成為外交官" subscribe_as_diplomat: "註冊成為外交官" @@ -107,21 +107,21 @@ module.exports = nativeDescription: "繁体中文", englishDescription: "Chinese # customize_avatar: "Customize Your Avatar" account_settings: - title: "帳戶設置" + title: "帳戶設定" not_logged_in: "登錄或創建一個帳戶來修改設置。" autosave: "自動保存修改" me_tab: "我" - picture_tab: "圖片" + picture_tab: "頭像" wizard_tab: "巫師" password_tab: "密碼" - emails_tab: "郵件" - gravatar_select: "選擇使用 Gravatar 照片" + emails_tab: "電子郵件" + gravatar_select: "選擇一個 Gravatar" gravatar_add_photos: "添加小圖和照片到一个 Gravatar 帳戶供你選擇。" gravatar_add_more_photos: "添加更多照片到你的 Gravatar 帳戶并查看。" wizard_color: "巫師 衣服 顏色" new_password: "新密碼" - new_password_verify: "核實" - email_subscriptions: "郵箱驗證" + new_password_verify: "確認密碼" + email_subscriptions: "訊息設定" email_announcements: "通知" email_announcements_description: "接收關於 CodeCombat 最近的新聞和發展的郵件。" contributor_emails: "貢獻者電郵" @@ -134,7 +134,7 @@ module.exports = nativeDescription: "繁体中文", englishDescription: "Chinese password_mismatch: "密碼不匹配。" account_profile: - edit_settings: "編輯設置" + edit_settings: "帳號設定" profile_for_prefix: "關於TA的基本資料:" # profile_for_suffix: "" profile: "基本資料" @@ -253,8 +253,8 @@ module.exports = nativeDescription: "繁体中文", englishDescription: "Chinese # version_history_for: "Version History for: " # results: "Results" # description: "Description" - email: "郵箱" - message: "留言" + email: "Email" + message: "訊息" # about: # who_is_codecombat: "Who is CodeCombat?" From 803770a08042e0b7405ede13964856f19dfb1db2 Mon Sep 17 00:00:00 2001 From: Ting-Kuan Date: Thu, 13 Feb 2014 14:32:08 -0500 Subject: [PATCH 02/51] Revise the phrasing of exisitng translations. Translate "about". --- app/locale/zh-HANT.coffee | 135 +++++++++++++++++++------------------- 1 file changed, 68 insertions(+), 67 deletions(-) diff --git a/app/locale/zh-HANT.coffee b/app/locale/zh-HANT.coffee index 4bc71f9f5..f12a105a0 100644 --- a/app/locale/zh-HANT.coffee +++ b/app/locale/zh-HANT.coffee @@ -9,7 +9,7 @@ module.exports = nativeDescription: "繁体中文", englishDescription: "Chinese delay_3_sec: "3 秒" delay_5_sec: "5 秒" manual: "手動發動" -# fork: "Fork" + fork: "Fork" play: "播放" # Play timeline in a level. modal: @@ -22,8 +22,8 @@ module.exports = nativeDescription: "繁体中文", englishDescription: "Chinese nav: play: "開始遊戲" editor: "編輯" - blog: "部落格" # Official blog - forum: "論壇" # Official forum + blog: "官方部落格" # Official blog + forum: "論壇" admin: "系統管理員" home: "首頁" contribute: "貢獻" @@ -31,7 +31,7 @@ module.exports = nativeDescription: "繁体中文", englishDescription: "Chinese about: "關於" contact: "聯繫我們" twitter_follow: "在Twitter關注" -# employers: "Employers" + employers: "招募訊息" # versions: # save_version_title: "Save New Version" @@ -45,19 +45,19 @@ module.exports = nativeDescription: "繁体中文", englishDescription: "Chinese sign_up: "註冊" log_in: "登入" log_out: "登出" - recover: "找回帳戶" + recover: "找回帳號" recover: - recover_account_title: "復原帳戶" -# send_password: "Send Recovery Password" + recover_account_title: "復原帳號" + send_password: "送出新密碼" signup: -# create_account_title: "Create Account to Save Progress" + create_account_title: "建立帳號儲存進度" description: "登入以儲存遊戲進度:" email_announcements: "通過郵件接收通知" coppa: "13歲以上或非美國公民" coppa_why: "爲什麽?" - creating: "帳戶創建中..." + creating: "帳號建立中..." sign_up: "註冊" log_in: "登入" @@ -107,91 +107,92 @@ module.exports = nativeDescription: "繁体中文", englishDescription: "Chinese # customize_avatar: "Customize Your Avatar" account_settings: - title: "帳戶設定" - not_logged_in: "登錄或創建一個帳戶來修改設置。" + title: "帳號設定" + not_logged_in: "登錄或建立一個帳號來修改設置。" autosave: "自動保存修改" me_tab: "我" picture_tab: "頭像" wizard_tab: "巫師" password_tab: "密碼" - emails_tab: "電子郵件" - gravatar_select: "選擇一個 Gravatar" - gravatar_add_photos: "添加小圖和照片到一个 Gravatar 帳戶供你選擇。" - gravatar_add_more_photos: "添加更多照片到你的 Gravatar 帳戶并查看。" + emails_tab: "郵件" + gravatar_select: "選擇一個Gravatar" + gravatar_add_photos: "上傳頭像到Gravatar" + # gravatar_add_more_photos: "Add thumbnails and photos to a Gravatar account for your email to choose an image." wizard_color: "巫師 衣服 顏色" new_password: "新密碼" new_password_verify: "確認密碼" - email_subscriptions: "訊息設定" + email_subscriptions: "訂閱" email_announcements: "通知" - email_announcements_description: "接收關於 CodeCombat 最近的新聞和發展的郵件。" + email_notifications_description: "接收帳號通知" + email_announcements_description: "接收關於 CodeCombat 的新聞和開發消息。" contributor_emails: "貢獻者電郵" contribute_prefix: "我們在尋找志同道合的人!請到 " contribute_page: "貢獻頁面" contribute_suffix: " 查看更多信息。" - email_toggle: "切換所有" - error_saving: "保存時出錯" - saved: "保存修改" - password_mismatch: "密碼不匹配。" + email_toggle: "全選" + error_saving: "保存時發生錯誤" + saved: "修改已儲存" + password_mismatch: "密碼不正確。" account_profile: edit_settings: "帳號設定" - profile_for_prefix: "關於TA的基本資料:" -# profile_for_suffix: "" + profile_for_prefix: "關於" + profile_for_suffix: "的基本資料" profile: "基本資料" user_not_found: "沒有找到用戶。檢查URL?" - gravatar_not_found_mine: "我們找不到TA的基本資料:" - gravatar_not_found_email_suffix: "." - gravatar_signup_prefix: "去註冊 " - gravatar_signup_suffix: " 去設置!" - gravatar_not_found_other: "哎呦,沒有與這個人的郵箱相關的資料。" - gravatar_contact: "聯繫" + gravatar_not_found_mine: "我們找不到有關" + gravatar_not_found_email_suffix: "的資料" + gravatar_signup_prefix: "請至" + gravatar_signup_suffix: " 註冊帳號" + gravatar_not_found_other: "哎呦,找不到這個地址的資料。" + gravatar_contact: "聯繫我們" gravatar_websites: "網站" gravatar_accounts: "顯示為" gravatar_profile_link: "完善 Gravatar 資料" play_level: - level_load_error: "關卡不能載入。" + level_load_error: "載入關卡時發生錯誤。" done: "完成" grid: "格子" customize_wizard: "自定義巫師" - home: "主頁" + home: "首頁" guide: "指南" multiplayer: "多人遊戲" restart: "重新開始" goals: "目標" action_timeline: "行動時間軸" click_to_select: "點擊選擇一個單元。" - reload_title: "重載所有代碼?" - reload_really: "確定重載這一關,返回開始處?" - reload_confirm: "重載所有" -# victory_title_prefix: "" + reload_title: "重新載入程式碼?" + reload_really: "確定重設所有的程式碼?" + reload_confirm: "重設所有程式碼" + victory_title_prefix: "" victory_title_suffix: " 完成" victory_sign_up: "保存進度" - victory_sign_up_poke: "想保存你的代碼?創建一個免費帳戶吧!" + victory_sign_up_poke: "想保存你的程式碼?建立一個免費帳號吧!" victory_rate_the_level: "評估關卡: " victory_play_next_level: "下一關" - victory_go_home: "返回主頁" - victory_review: "給我們反饋!" + victory_go_home: "返回首頁" + victory_review: "給我們回饋!" victory_hour_of_code_done: "你完成了嗎?" - victory_hour_of_code_done_yes: "是的,我完成了我的代碼!" - multiplayer_title: "多人遊戲設置" - multiplayer_link_description: "把這個鏈接告訴小夥伴們,一起玩吧。" + victory_hour_of_code_done_yes: "是的,我完成了我的程式碼!" + multiplayer_title: "多人遊戲設定" + multiplayer_link_description: "把這個連結告訴同伴們,一起玩吧。" multiplayer_hint_label: "提示:" - multiplayer_hint: " 點擊全選,然後按 Apple-C(苹果電腦)或 Ctrl-C 複製鏈接。" - multiplayer_coming_soon: "多人遊戲的更多特性!" + multiplayer_hint: " 點擊全選,然後按 ⌘-C 或 Ctrl-C 複製連結。" + multiplayer_coming_soon: "請期待更多的多人關卡!" guide_title: "指南" tome_minion_spells: "助手的咒語" - tome_read_only_spells: "只讀的咒語" - tome_other_units: "其他單元" + tome_read_only_spells: "唯讀的咒語" + tome_other_units: "其他單位" tome_cast_button_castable: "發動" tome_cast_button_casting: "發動中" tome_cast_button_cast: "咒語" tome_autocast_delay: "自動施法延遲" tome_select_spell: "選擇一個法術" - tome_select_a_thang: "選擇人物來 " + tome_select_a_thang: "選擇一個人物來施放" tome_available_spells: "可用的法術" hud_continue: "繼續 (按 shift-空格)" -# spell_saved: "Spell Saved" + spell_saved: "咒語已儲存" # admin: # av_title: "Admin Views" @@ -245,33 +246,33 @@ module.exports = nativeDescription: "繁体中文", englishDescription: "Chinese # general: # and: "and" - or: "或" - name: "名字" +# or: "或" +# name: "名字" # body: "Body" # version: "Version" # commit_msg: "Commit Message" # version_history_for: "Version History for: " # results: "Results" # description: "Description" - email: "Email" - message: "訊息" +# email: "Email" +# message: "訊息" -# about: -# who_is_codecombat: "Who is CodeCombat?" -# why_codecombat: "Why CodeCombat?" -# who_description_prefix: "together started CodeCombat in 2013. We also created " -# who_description_suffix: "in 2008, growing it to the #1 web and iOS application for learning to write Chinese and Japanese characters." -# who_description_ending: "Now it's time to teach people to write code." -# why_paragraph_1: "When making Skritter, George didn't know how to program and was constantly frustrated by his inability to implement his ideas. Afterwards, he tried learning, but the lessons were too slow. His housemate, wanting to reskill and stop teaching, tried Codecademy, but \"got bored.\" Each week another friend started Codecademy, then dropped off. We realized it was the same problem we'd solved with Skritter: people learning a skill via slow, intensive lessons when what they need is fast, extensive practice. We know how to fix that." -# why_paragraph_2: "Need to learn to code? You don't need lessons. You need to write a lot of code and have a great time doing it." -# why_paragraph_3_prefix: "That's what programming is about. It's gotta be fun. Not fun like" -# why_paragraph_3_italic: "yay a badge" -# why_paragraph_3_center: "but fun like" -# why_paragraph_3_italic_caps: "NO MOM I HAVE TO FINISH THE LEVEL!" -# why_paragraph_3_suffix: "That's why CodeCombat is a multiplayer game, not a gamified lesson course. We won't stop until you can't stop--but this time, that's a good thing." -# why_paragraph_4: "If you're going to get addicted to some game, get addicted to this one and become one of the wizards of the tech age." -# why_ending: "And hey, it's free. " -# why_ending_url: "Start wizarding now!" + about: + who_is_codecombat: "什麼是CodeCombat?" + why_codecombat: "為什麼使用CodeCombat?" + who_description_prefix: "在2013年共同創立了CodeCombat. 在2008年, 我們創立了" + who_description_suffix: ",排名第一的中、日文字的學習網頁及iOS系統應用程式。" + who_description_ending: "這次,我們將教大家如何寫程式。" + why_paragraph_1: "當我們在研發Skritter時,George不會寫程式,所以常常無法展現他的想法。他嘗試去學,然而課程成果緩慢。他的室友曾想學習新技能,試過Codecademy,但厭倦了。每周也都有其他朋友投入Codecademy,卻都以失敗告終。我們發現,這與我們藉由Skritter所想解決的問題是一致的─人們需要的不是繁瑣又密集的課程, 而是快速而大量的練習。我們知道該如何改善這個情況。" + why_paragraph_2: "想學程式嗎? 你不需要課程。你需要的只是大量的時間去\"玩\"程式。" + why_paragraph_3_prefix: "寫程式應該是有趣的。當然不是" + why_paragraph_3_italic: "「耶!拿到獎章了。」" + why_paragraph_3_center: "的有趣, 而是" + why_paragraph_3_italic_caps: "「媽我不要出去玩,我要寫完這段!」" + why_paragraph_3_suffix: "般引人入勝。這是為甚麼CodeCombat被設計成多人對戰「遊戲」,而不是遊戲化「課程」。在你對這遊戲無法自拔之前,我們是不會放棄的─幫然,這個遊戲,將是有益於你的。" + why_paragraph_4: "如果你要沉迷遊戲的話,就來沉迷CodeCombat,成為科技時代的魔法師吧!" + why_ending: "啊還有,他是免費的。" + why_ending_url: "那還等什麼? 馬上開始!" # george_description: "CEO, business guy, web designer, game designer, and champion of beginning programmers everywhere." # scott_description: "Programmer extraordinaire, software architect, kitchen wizard, and master of finances. Scott is the reasonable one." # nick_description: "Programming wizard, eccentric motivation mage, and upside-down experimenter. Nick can do anything and chooses to build CodeCombat." From 476cc8762831cf32d3f22f7a6dd2299d2ca663c0 Mon Sep 17 00:00:00 2001 From: Scott Erickson Date: Thu, 13 Feb 2014 16:42:35 -0800 Subject: [PATCH 03/51] Set up the ladder to be able to compete against other sessions. --- app/lib/LevelLoader.coffee | 22 ++++++++++++++----- app/templates/play/ladder.jade | 2 ++ app/views/play/ladder_view.coffee | 2 ++ app/views/play/level_view.coffee | 12 +++++++++- .../sessions/level_session_handler.coffee | 4 ++++ 5 files changed, 35 insertions(+), 7 deletions(-) diff --git a/app/lib/LevelLoader.coffee b/app/lib/LevelLoader.coffee index ca4ec7d18..92dea756a 100644 --- a/app/lib/LevelLoader.coffee +++ b/app/lib/LevelLoader.coffee @@ -22,7 +22,7 @@ module.exports = class LevelLoader extends CocoClass subscriptions: 'god:new-world-created': 'loadSoundsForWorld' - constructor: (@levelID, @supermodel, @sessionID, @team) -> + constructor: (@levelID, @supermodel, @sessionID, @team, @opponentSessionID) -> super() @loadSession() @loadLevelModels() @@ -47,11 +47,21 @@ module.exports = class LevelLoader extends CocoClass @session.url = -> url @session.fetch() @session.once 'sync', @onSessionLoaded, @ + + if @opponentSessionID + @opponentSession = new LevelSession() + @opponentSession.url = "/db/level_session/#{@opponentSessionID}" + @opponentSession.fetch() + @opponentSession.once 'sync', @onSessionLoaded, @ + + sessionsLoaded: -> + @session.loaded and ((not @opponentSession) or @opponentSession.loaded) onSessionLoaded: -> # TODO: maybe have all non versioned models do this? Or make it work to PUT/PATCH to relative urls - @session.url = -> '/db/level.session/' + @id - @update() + if @session.loaded + @session.url = -> '/db/level.session/' + @id + @update() if @sessionsLoaded() # Supermodel (Level) Loading @@ -100,7 +110,7 @@ module.exports = class LevelLoader extends CocoClass @notifyProgress() return if @updateCompleted - return unless @supermodel.finished() and @session.loaded + return unless @supermodel.finished() and @sessionsLoaded() @denormalizeSession() @loadLevelSounds() app.tracker.updatePlayState(@level, @session) @@ -194,14 +204,14 @@ module.exports = class LevelLoader extends CocoClass # everything else sound wise is loaded as needed as worlds are generated allDone: -> - @supermodel.finished() and @session.loaded and @spriteSheetsBuilt is @spriteSheetsToBuild + @supermodel.finished() and @sessionsLoaded() and @spriteSheetsBuilt is @spriteSheetsToBuild progress: -> return 0 unless @level.loaded overallProgress = 0 supermodelProgress = @supermodel.progress() overallProgress += supermodelProgress * 0.7 - overallProgress += 0.1 if @session.loaded + overallProgress += 0.1 if @sessionsLoaded() spriteMapProgress = if supermodelProgress is 1 then 0.2 else 0 spriteMapProgress *= @spriteSheetsBuilt / @spriteSheetsToBuild if @spriteSheetsToBuild overallProgress += spriteMapProgress diff --git a/app/templates/play/ladder.jade b/app/templates/play/ladder.jade index 24cbc4855..c82090c2d 100644 --- a/app/templates/play/ladder.jade +++ b/app/templates/play/ladder.jade @@ -22,6 +22,8 @@ block content tr td.score-cell= parseInt(session.get('totalScore')) td= session.get('creatorName') + td + a(href="/play/level/#{level.get('slug') || level.id}/?team=#{team.otherTeam}&opponent=#{session.id}") COMPETE //.challengers // h4 Challengers diff --git a/app/views/play/ladder_view.coffee b/app/views/play/ladder_view.coffee index 170aa4337..484d4f4db 100644 --- a/app/views/play/ladder_view.coffee +++ b/app/views/play/ladder_view.coffee @@ -83,10 +83,12 @@ module.exports = class LadderView extends RootView ctx.link = "/play/level/#{@level.get('name')}" ctx.teams = [] for team in @teams or [] + otherTeam = if team is 'ogres' then 'humans' else 'ogres' ctx.teams.push({ id: team name: _.string.titleize(team) leaderboard: @leaderboards[team] + otherTeam: otherTeam # easyChallenger: @challengers[team].easyPlayer.models[0] # mediumChallenger: @challengers[team].mediumPlayer.models[0] # hardChallenger: @challengers[team].hardPlayer.models[0] diff --git a/app/views/play/level_view.coffee b/app/views/play/level_view.coffee index 5505bff1f..66465c97d 100644 --- a/app/views/play/level_view.coffee +++ b/app/views/play/level_view.coffee @@ -104,7 +104,7 @@ module.exports = class PlayLevelView extends View @load() load: -> - @levelLoader = new LevelLoader(@levelID, @supermodel, @sessionID, @getQueryVariable("team")) + @levelLoader = new LevelLoader(@levelID, @supermodel, @sessionID, @getQueryVariable("team"), @getQueryVariable('opponent')) @levelLoader.once 'loaded-all', @onLevelLoaderLoaded @god = new God() @@ -124,6 +124,16 @@ module.exports = class PlayLevelView extends View @session = @levelLoader.session @world = @levelLoader.world @level = @levelLoader.level + + if s = @levelLoader.opponentSession + spells = s.get('teamSpells')?[s.get('team')] + opponentCode = s.get('code') + myCode = @session.get('code') + for spell in spells + continue unless c = opponentCode[spell] + myCode[spell] = c + @session.set('code', myCode) + @levelLoader.destroy() @levelLoader = null @loadingScreen.destroy() diff --git a/server/levels/sessions/level_session_handler.coffee b/server/levels/sessions/level_session_handler.coffee index 1b9f8a241..dbb3324f4 100644 --- a/server/levels/sessions/level_session_handler.coffee +++ b/server/levels/sessions/level_session_handler.coffee @@ -19,4 +19,8 @@ class LevelSessionHandler extends Handler documents = (@formatEntity(req, doc) for doc in documents) @sendSuccess(res, documents) + hasAccessToDocument: (req, document, method=null) -> + return true if req.method is 'GET' and document.get('totalScore') + super(arguments...) + module.exports = new LevelSessionHandler() From ca7376b794c645f47ad94d8fed4d1de958f6c0cb Mon Sep 17 00:00:00 2001 From: Michael Schmatz Date: Thu, 13 Feb 2014 17:10:01 -0800 Subject: [PATCH 04/51] Worked around mongoose toObject Also tried elementary memory leak fix --- app/views/home_view.coffee | 4 +++- server/queues/scoring.coffee | 2 ++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/app/views/home_view.coffee b/app/views/home_view.coffee index 42768929d..50f20db8c 100644 --- a/app/views/home_view.coffee +++ b/app/views/home_view.coffee @@ -146,7 +146,7 @@ module.exports = class HomeView extends View status: "incomplete" god.spells = @filterProgrammableComponents level.attributes.thangs, @generateSpellToSourceMap data.sessions god.createWorld() - + @god = god Backbone.Mediator.subscribe 'god:new-world-created', @onWorldCreated, @ onWorldCreated: (data) -> @@ -154,6 +154,8 @@ module.exports = class HomeView extends View taskResults = @translateGoalStatesIntoTaskResults data.goalStates console.log "Task Results" console.log taskResults + @god?.destroy() + $.ajax url: "/queue/scoring" data: taskResults diff --git a/server/queues/scoring.coffee b/server/queues/scoring.coffee index 80e1525f9..2c98b4c19 100644 --- a/server/queues/scoring.coffee +++ b/server/queues/scoring.coffee @@ -227,6 +227,7 @@ updateScoreInSession = (scoreObject,callback) -> LevelSession.findOne sessionObjectQuery, (err, session) -> return callback err, null if err? + session = session.toObject() updateObject = meanStrength: scoreObject.meanStrength standardDeviation: scoreObject.standardDeviation @@ -250,6 +251,7 @@ retrieveOldScoreMetrics = (sessionID, callback) -> LevelSession.findOne sessionQuery, (err, session) -> return callback err, {"error":"There was an error retrieving the session."} if err? + session = session.toObject() defaultScore = (25 - 1.8*(25/3)) defaultStandardDeviation = 25/3 From 6011ac0df44b6ae262ea7b9b71c923577219c73a Mon Sep 17 00:00:00 2001 From: Michael Schmatz Date: Thu, 13 Feb 2014 17:19:43 -0800 Subject: [PATCH 05/51] Changed subscription frequency to prevent multiple score registrations --- app/views/home_view.coffee | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/app/views/home_view.coffee b/app/views/home_view.coffee index 50f20db8c..55ebe4634 100644 --- a/app/views/home_view.coffee +++ b/app/views/home_view.coffee @@ -147,13 +147,11 @@ module.exports = class HomeView extends View god.spells = @filterProgrammableComponents level.attributes.thangs, @generateSpellToSourceMap data.sessions god.createWorld() @god = god - Backbone.Mediator.subscribe 'god:new-world-created', @onWorldCreated, @ + Backbone.Mediator.subscribeOnce 'god:new-world-created', @onWorldCreated, @ onWorldCreated: (data) -> return if @alreadyPostedResults taskResults = @translateGoalStatesIntoTaskResults data.goalStates - console.log "Task Results" - console.log taskResults @god?.destroy() $.ajax From db0695513eb65bfbc914b0737590dfe4b3719731 Mon Sep 17 00:00:00 2001 From: Michael Schmatz Date: Thu, 13 Feb 2014 17:30:59 -0800 Subject: [PATCH 06/51] Implemented reverse sorting of backbone collection --- app/views/play/ladder_view.coffee | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/app/views/play/ladder_view.coffee b/app/views/play/ladder_view.coffee index 484d4f4db..b97a40982 100644 --- a/app/views/play/ladder_view.coffee +++ b/app/views/play/ladder_view.coffee @@ -105,6 +105,10 @@ class LeaderboardData _.extend @, Backbone.Events @topPlayers = new LeaderboardCollection(@level, {order:-1, scoreOffset: HIGHEST_SCORE, team: @team, limit: if @session then 10 else 20}) @topPlayers.fetch() + @topPlayers.comparator = (model) -> + return -model.get('totalScore') + @topPlayers.sort() + @topPlayers.once 'sync', @leaderboardPartLoaded, @ # if @session From fc76846aa61b70fd3292cec7bb082ef656b9cb35 Mon Sep 17 00:00:00 2001 From: Michael Schmatz Date: Thu, 13 Feb 2014 17:34:31 -0800 Subject: [PATCH 07/51] Stopped parsing ladder as int --- app/templates/play/ladder.jade | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/templates/play/ladder.jade b/app/templates/play/ladder.jade index c82090c2d..02cd4cf23 100644 --- a/app/templates/play/ladder.jade +++ b/app/templates/play/ladder.jade @@ -20,7 +20,7 @@ block content table.table for session in team.leaderboard.topPlayers.models tr - td.score-cell= parseInt(session.get('totalScore')) + td.score-cell= session.get('totalScore') td= session.get('creatorName') td a(href="/play/level/#{level.get('slug') || level.id}/?team=#{team.otherTeam}&opponent=#{session.id}") COMPETE From 77dbcf9d8933dea513340e66fd7c5713a7b1adbd Mon Sep 17 00:00:00 2001 From: Nick Winter Date: Thu, 13 Feb 2014 17:34:57 -0800 Subject: [PATCH 08/51] Backbone 1.1.1 gets underscore as a dependency, which we don't want, so back to 1.1.0 in bower. --- bower.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bower.json b/bower.json index 6ecaaad97..be482292f 100644 --- a/bower.json +++ b/bower.json @@ -26,7 +26,7 @@ "dependencies": { "jquery": "~2.0.3", "lodash": "~2.4.1", - "backbone": "~1.1.0", + "backbone": "1.1.0", "jquery-mousewheel": "~3.1.9", "i18next": "~1.7.1", "firepad": "~0.1.2", From da866a418ca19f870bbf1cc16a9a7cd9e59511e2 Mon Sep 17 00:00:00 2001 From: Nick Winter Date: Thu, 13 Feb 2014 17:43:42 -0800 Subject: [PATCH 09/51] Fixed cast options clicking. --- app/views/play/level/tome/cast_button_view.coffee | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/app/views/play/level/tome/cast_button_view.coffee b/app/views/play/level/tome/cast_button_view.coffee index ee6df2db6..aee6f0d8f 100644 --- a/app/views/play/level/tome/cast_button_view.coffee +++ b/app/views/play/level/tome/cast_button_view.coffee @@ -11,7 +11,6 @@ module.exports = class CastButtonView extends View 'tome:cast-spells': 'onCastSpells' 'god:world-load-progress-changed': 'onWorldLoadProgressChanged' 'god:new-world-created': 'onNewWorld' - 'click .cast-options a': 'onCastOptionsClick' constructor: (options) -> super options @@ -31,6 +30,7 @@ module.exports = class CastButtonView extends View @castButtonGroup = $('.cast-button-group', @$el) @castOptions = $('.autocast-delays', @$el) @castButton.on 'click', @onCastButtonClick + @castOptions.find('a').on 'click', @onCastOptionsClick # TODO: use a User setting instead of localStorage delay = localStorage.getItem 'autocastDelay' delay ?= 5000 @@ -42,7 +42,8 @@ module.exports = class CastButtonView extends View onCastButtonClick: (e) -> Backbone.Mediator.publish 'tome:manual-cast', {} - onCastOptionsClick: (e) -> + onCastOptionsClick: (e) => + console.log 'cast options click', $(e.target) Backbone.Mediator.publish 'focus-editor' @castButtonGroup.removeClass 'open' @setAutocastDelay $(e.target).attr 'data-delay' @@ -89,3 +90,5 @@ module.exports = class CastButtonView extends View destroy: -> super() @castButton.off 'click', @onCastButtonClick + @castOptions.find('a').off 'click', @onCastOptionsClick + @onCastOptionsClick = null From 693fa06afbb5a32ece9801f491b479a1b08ac116 Mon Sep 17 00:00:00 2001 From: Scott Erickson Date: Fri, 14 Feb 2014 10:38:20 -0800 Subject: [PATCH 10/51] Fixed a bug in the competitor code session setting when the player has no code yet. --- app/views/play/level_view.coffee | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/views/play/level_view.coffee b/app/views/play/level_view.coffee index 66465c97d..b527bdf1e 100644 --- a/app/views/play/level_view.coffee +++ b/app/views/play/level_view.coffee @@ -128,7 +128,7 @@ module.exports = class PlayLevelView extends View if s = @levelLoader.opponentSession spells = s.get('teamSpells')?[s.get('team')] opponentCode = s.get('code') - myCode = @session.get('code') + myCode = @session.get('code') or {} for spell in spells continue unless c = opponentCode[spell] myCode[spell] = c From 7cec574e175af43b1e8da5267d8108e5fddd7a8e Mon Sep 17 00:00:00 2001 From: Michael Schmatz Date: Fri, 14 Feb 2014 10:49:16 -0800 Subject: [PATCH 11/51] Started simulator refactor --- app/lib/simulator/Simulator.coffee | 270 +++++++++++++++++++++++++++++ 1 file changed, 270 insertions(+) create mode 100644 app/lib/simulator/Simulator.coffee diff --git a/app/lib/simulator/Simulator.coffee b/app/lib/simulator/Simulator.coffee new file mode 100644 index 000000000..bbf9c1f3b --- /dev/null +++ b/app/lib/simulator/Simulator.coffee @@ -0,0 +1,270 @@ +SuperModel = require 'models/SuperModel' +LevelLoader = require 'lib/LevelLoader' +GoalManager = require 'lib/world/GoalManager' + +module.exports = class Simulator + constructor: -> + @retryDelayInSeconds = 10 + @taskURL = "/queue/scoring" + + + fetchAndSimulateTask: => + $.ajax + url: @taskURL + type: "GET" + error: @handleFetchTaskError + success: @setupSimulationAndLoadLevel + + cleanupSimulation: -> + + + handleFetchTaskError: (errorData) => + console.log "There were no games to score. Error: #{JSON.stringify errorData}" + console.log "Retrying in #{@retryDelayInSeconds}" + _.delay @fetchAndSimulateTask, @retryDelayInSeconds * 1000 + + + setupSimulationAndLoadLevel: (taskData) => + @task = new SimulationTask(taskData) + @superModel = new SuperModel() + @god = new God() + @levelLoader = new LevelLoader @task.getLevelName(), @superModel, @task.getFirstSessionID() + + @levelLoader.once 'loaded-all', @simulateGame + + + + simulateGame: => + @assignWorldAndLevelFromLevelLoaderAndDestroyIt() + @setupGod() + try + @commenceSimulationAndSetupCallback() + catch e + console.log "There was an error in simulation. Trying again in #{retryDelayInSeconds} seconds" + console.log "Error #{e}" + _.delay @fetchAndSimulateTask, @retryDelayInSeconds * 1000 + + assignWorldAndLevelFromLevelLoaderAndDestroyIt: -> + @world = @levelLoader.world + @level = @levelLoader.level + @levelLoader.destroy() + + + setupGod: -> + @god.level = @level.serialize @supermodel + @god.worldClassMap = world.classMap + @setupGoalManager() + @setupGodSpells() + + + setupGoalManager: -> + @god.goalManager = new GoalManager @world + @god.goalManager.goals = @fetchGoalsFromWorldNoteChain() + @god.goalManager.goalStates = @manuallyGenerateGoalStates() + + commenceSimulationAndSetupCallback: -> + @god.createWorld() + Backbone.Mediator.subscribeOnce 'god:new-world-created', @processResults, @ + + + processResults: (simulationResults) -> + taskResults = @formTaskResultsObject simulationResults + sendResultsBackToServer taskResults + + sendResultsBackToServer: (results) => + $.ajax + url: @taskURL + data: results + type: "PUT" + success: @handleTaskResultsTransferSuccess + error: @handleTaskResultsTransferError + complete: @cleanupAndSimulateAnotherTask() + + handleTaskResultsTransferSuccess: (result) -> + console.log "Task registration result: #{JSON.stringify result}" + + handleTaskResultsTransferError: (error) -> + console.log "Task registration error: #{JSON.stringify error}" + + cleanupAndSimulateAnotherTask: => + @cleanupSimulation() + @fetchAndSimulateTask() + + + + formTaskResultsObject: (simulationResults) -> + taskResults = + taskID: @task.getTaskID() + receiptHandle: @task.getReceiptHandle() + calculationTime: 500 + sessions: [] + + for session in @task.sessions + sessionResult = + sessionID: session.sessionID + sessionChangedTime: session.sessionChangedTime + metrics: + rank: @calculateSessionRank session.sessionID, simulationResults.goalStates + + taskResults.sessions.push sessionResult + + return taskResults + + + calculateSessionRank: (sessionID, goalStates) -> + humansDestroyed = goalStates["destroy-humans"].status is "success" + ogresDestroyed = goalStates["destroy-ogres"].status is "success" + console.log "Humans destroyed:#{humansDestroyed}" + console.log "Ogres destroyed:#{ogresDestroyed}" + console.log "Team Session Map: #{JSON.stringify @teamSessionMap}" + if humansDestroyed is ogresDestroyed + return 0 + else if humansDestroyed and @teamSessionMap["ogres"] is sessionID + return 0 + else if humansDestroyed and @teamSessionMap["ogres"] isnt sessionID + return 1 + else if ogresDestroyed and @teamSessionMap["humans"] is sessionID + return 0 + else + return 1 + + + + fetchGoalsFromWorldNoteChain: -> return @god.goalManager.world.scripts[0].noteChain[0].goals.add + + + manuallyGenerateGoalStates: -> + goalStates = + "destroy-humans": + keyFrame: 0 + killed: + "Human Base": false + status: "incomplete" + "destroy-ogres": + keyFrame:0 + killed: + "Ogre Base": false + status: "incomplete" + + + + setupGodSpells: -> + @generateSpellsObject() + @god.spells = @spells + + + generateSpellsObject: (currentUserCodeMap) -> + @userCodeMap = currentUserCodeMap + @spells = {} + for thang in @level.attributes.thangs + continue if @thangIsATemplate thang + @generateSpellKeyToSourceMapPropertiesFromThang thang + + + thangIsATemplate: (thang) -> + for component in thang.components + continue unless @componentHasProgrammableMethods component + for methodName, method of component.config.programmableMethods + return true if methodBelongsToTemplateThang method + + return false + + + componentHasProgrammableMethods: (component) -> component.config? and _.has component.config, 'programmableMethods' + + methodBelongsToTemplateThang: (method) -> typeof method is 'string' + + generateSpellKeyToSourceMapPropertiesFromThang: (thang) => + for component in thang.components + continue unless @componentHasProgrammableMethods component + + for methodName, method of component.config.programmableMethods + spellKey = @generateSpellKeyFromThangIDAndMethodName thang.id, methodName + + @createSpellAndAssignName spellKey, methodName + @createSpellThang thang, method, spellKey + @transpileSpell thang, spellKey, methodName + + + + + generateSpellKeyFromThangIDAndMethodName: (thang, methodName) -> + spellKeyComponents = [thang.id, methodName] + pathComponents[0] = _.string.slugify pathComponents[0] + pathComponents.join '/' + + createSpellAndAssignName: (spellKey, spellName) -> + @spells[spellKey] ?= {} + @spells[spellKey].name = methodName + + createSpellThang: (thang, method, spellKey) -> + @spells[spellKey].thangs ?= {} + @spells[spellKey].thangs[thang.id] ?= {} + @spells[spellKey].thangs[thang.id].aether = @createAether @spells[spellKey].name, method + + transpileSpell: (thang, spellKey, methodName) -> + slugifiedThangID = _.string.slugify thang.id + source = @currentUserCodeMap[slugifiedThangID]?[methodName] ? "" + @spells[spellKey].thangs[thang.id].aether.transpile source + + + + + + + + createAether: (methodName, method) -> + aetherOptions = + functionName: methodName + protectAPI: false + includeFlow: false + return new Aether aetherOptions + + + + + + + + + +class SimulationTask + constructor: (@rawData) -> + + + getLevelName: -> + levelName = @rawData.sessions?[0]?.levelID + return levelName if levelName? + @throwMalformedTaskError "The level name couldn't be deduced from the task." + + generateTeamToSessionMap: -> + teamSessionMap = {} + for session in @rawData.sessions + @throwMalformedTaskError "Two players share the same team" if teamSessionMap[session.team]? + teamSessionMap[session.team] = session.sessionID + + teamSessionMap + + throwMalformedTaskError: (errorString) -> + throw new Error "The task was malformed, reason: #{errorString}" + + getFirstSessionID: -> @rawData.sessions[0].sessionID + + getTaskID: -> @rawData.taskID + + getReceiptHandle: -> @rawData.receiptHandle + + getSessions: -> @rawData.sessions + + generateSpellKeyToSourceMap: -> + spellKeyToSourceMap = {} + + for session in @rawData.sessions + teamSpells = session.teamSpells[session.team] + _.merge spellKeyToSourceMap, _.pick(session.code, teamSpells) + + commonSpells = session.teamSpells["common"] + _.merge spellKeyToSourceMap, _.pick(session.code, commonSpells) if commonSpells? + + spellKeyToSourceMap + From 1349a590841a697c3bca1af17530108715a2e264 Mon Sep 17 00:00:00 2001 From: Scott Erickson Date: Fri, 14 Feb 2014 10:57:47 -0800 Subject: [PATCH 12/51] Refactored destroy functions to have super be the last thing. --- app/lib/GPlusHandler.coffee | 3 --- app/lib/LevelBus.coffee | 2 +- app/lib/LevelLoader.coffee | 3 ++- app/lib/scripts/ScriptManager.coffee | 2 +- app/lib/surface/Camera.coffee | 2 +- app/lib/surface/CocoSprite.coffee | 2 +- app/lib/surface/Dimmer.coffee | 3 --- app/lib/surface/Mark.coffee | 2 +- app/lib/surface/MusicPlayer.coffee | 3 ++- app/lib/surface/PointChooser.coffee | 2 +- app/lib/surface/RegionChooser.coffee | 2 +- app/lib/surface/SpriteBoss.coffee | 2 +- app/lib/surface/Surface.coffee | 2 +- app/views/editor/level/component/edit.coffee | 2 +- app/views/editor/level/system/edit.coffee | 2 +- app/views/editor/level/thangs_tab_view.coffee | 2 +- app/views/editor/thang/edit.coffee | 2 +- app/views/home_view.coffee | 2 +- app/views/modal/wizard_settings_modal.coffee | 2 +- app/views/play/level/hud_view.coffee | 2 +- app/views/play/level/level_chat_view.coffee | 2 +- app/views/play/level/modal/multiplayer_modal.coffee | 2 +- app/views/play/level/modal/victory_modal.coffee | 2 +- app/views/play/level/playback_view.coffee | 2 +- app/views/play/level/tome/cast_button_view.coffee | 2 +- app/views/play/level/tome/spell_debug_view.coffee | 2 +- app/views/play/level/tome/spell_list_entry_view.coffee | 2 +- app/views/play/level/tome/spell_list_view.coffee | 4 ++-- app/views/play/level/tome/spell_palette_view.coffee | 2 +- app/views/play/level/tome/spell_view.coffee | 2 +- app/views/play/level/tome/thang_list_entry_view.coffee | 2 +- app/views/play/level/tome/thang_list_view.coffee | 2 +- app/views/play/level/tome/tome_view.coffee | 3 +-- app/views/play/level_view.coffee | 3 +-- app/views/play/spectate_view.coffee | 2 +- 35 files changed, 36 insertions(+), 42 deletions(-) diff --git a/app/lib/GPlusHandler.coffee b/app/lib/GPlusHandler.coffee index 996b6ded0..4b3df9e5b 100644 --- a/app/lib/GPlusHandler.coffee +++ b/app/lib/GPlusHandler.coffee @@ -76,6 +76,3 @@ module.exports = GPlusHandler = class GPlusHandler extends CocoClass storage.save(CURRENT_USER_KEY, model.attributes) window.location.reload() }) - - destroy: -> - super() diff --git a/app/lib/LevelBus.coffee b/app/lib/LevelBus.coffee index fd459244b..6e5bff66a 100644 --- a/app/lib/LevelBus.coffee +++ b/app/lib/LevelBus.coffee @@ -234,8 +234,8 @@ module.exports = class LevelBus extends Bus tempSession.save(patch, {patch: true}) destroy: -> - super() @session.off 'change:multiplayer', @onMultiplayerChanged, @ + super() setTeamSpellMap: (spellMap) -> @teamSpellMap = spellMap diff --git a/app/lib/LevelLoader.coffee b/app/lib/LevelLoader.coffee index 92dea756a..bec45548f 100644 --- a/app/lib/LevelLoader.coffee +++ b/app/lib/LevelLoader.coffee @@ -223,8 +223,9 @@ module.exports = class LevelLoader extends CocoClass @trigger 'loaded-all' if @progress() is 1 destroy: -> - super() @world = null # don't hold onto garbage @supermodel.off 'loaded-one', @onSupermodelLoadedOne @onSupermodelLoadedOne = null @notifyProgress = null + super() + \ No newline at end of file diff --git a/app/lib/scripts/ScriptManager.coffee b/app/lib/scripts/ScriptManager.coffee index dee228362..a1011b534 100644 --- a/app/lib/scripts/ScriptManager.coffee +++ b/app/lib/scripts/ScriptManager.coffee @@ -120,8 +120,8 @@ module.exports = ScriptManager = class ScriptManager extends CocoClass @run() unless @worldLoading destroy: -> - super() @onEndAll() + super() # TRIGGERERING NOTES diff --git a/app/lib/surface/Camera.coffee b/app/lib/surface/Camera.coffee index 00ca79864..7e311a057 100644 --- a/app/lib/surface/Camera.coffee +++ b/app/lib/surface/Camera.coffee @@ -260,6 +260,6 @@ module.exports = class Camera extends CocoClass @locked = false destroy: -> - super() createjs.Tween.removeTweens @ @finishTween = null + super() diff --git a/app/lib/surface/CocoSprite.coffee b/app/lib/surface/CocoSprite.coffee index 8ab09e653..c843d3f00 100644 --- a/app/lib/surface/CocoSprite.coffee +++ b/app/lib/surface/CocoSprite.coffee @@ -77,12 +77,12 @@ module.exports = CocoSprite = class CocoSprite extends CocoClass @buildFromSpriteSheet @buildSpriteSheet() destroy: -> - super() mark.destroy() for name, mark of @marks label.destroy() for name, label of @labels @imageObject?.off 'animationend', @playNextAction @playNextAction = null @displayObject?.off() + super() toString: -> "" diff --git a/app/lib/surface/Dimmer.coffee b/app/lib/surface/Dimmer.coffee index aaa91a040..72c54c7a6 100644 --- a/app/lib/surface/Dimmer.coffee +++ b/app/lib/surface/Dimmer.coffee @@ -21,9 +21,6 @@ module.exports = class Dimmer extends CocoClass @highlightedThangIDs = [] @sprites = {} - destroy: -> - super() - toString: -> "" build: -> diff --git a/app/lib/surface/Mark.coffee b/app/lib/surface/Mark.coffee index b1e50549d..313531ef1 100644 --- a/app/lib/surface/Mark.coffee +++ b/app/lib/surface/Mark.coffee @@ -19,9 +19,9 @@ module.exports = class Mark extends CocoClass destroy: -> @mark?.parent?.removeChild @mark - super() @markSprite?.destroy() @sprite = null + super() toString: -> "" diff --git a/app/lib/surface/MusicPlayer.coffee b/app/lib/surface/MusicPlayer.coffee index aa7c8ad98..13cca1a17 100644 --- a/app/lib/surface/MusicPlayer.coffee +++ b/app/lib/surface/MusicPlayer.coffee @@ -50,5 +50,6 @@ module.exports = class MusicPlayer extends CocoClass @currentMusic.volume = if me.get('music') then 1.0 else 0.0 destroy: -> - super() me.off 'change:music', @onMusicSettingChanged, @ + super() + \ No newline at end of file diff --git a/app/lib/surface/PointChooser.coffee b/app/lib/surface/PointChooser.coffee index 4e23d5297..470b10c5f 100644 --- a/app/lib/surface/PointChooser.coffee +++ b/app/lib/surface/PointChooser.coffee @@ -7,8 +7,8 @@ module.exports = class PointChooser extends CocoClass @options.stage.addEventListener 'stagemousedown', @onMouseDown destroy: -> - super() @options.stage.removeEventListener 'stagemousedown', @onMouseDown + super() # Called also from WorldSelectModal setPoint: (@point) -> diff --git a/app/lib/surface/RegionChooser.coffee b/app/lib/surface/RegionChooser.coffee index 0e5fcf0c5..14eb47035 100644 --- a/app/lib/surface/RegionChooser.coffee +++ b/app/lib/surface/RegionChooser.coffee @@ -9,10 +9,10 @@ module.exports = class RegionChooser extends CocoClass @options.stage.addEventListener 'stagemouseup', @onMouseUp destroy: -> - super() @options.stage.removeEventListener 'stagemousedown', @onMouseDown @options.stage.removeEventListener 'stagemousemove', @onMouseMove @options.stage.removeEventListener 'stagemouseup', @onMouseUp + super() onMouseDown: (e) => return unless key.shift diff --git a/app/lib/surface/SpriteBoss.coffee b/app/lib/surface/SpriteBoss.coffee index f1e44d5bc..a389e8174 100644 --- a/app/lib/surface/SpriteBoss.coffee +++ b/app/lib/surface/SpriteBoss.coffee @@ -35,10 +35,10 @@ module.exports = class SpriteBoss extends CocoClass @spriteSheetCache = {} destroy: -> - super() @removeSprite sprite for thangID, sprite of @sprites @targetMark?.destroy() @selectionMark?.destroy() + super() toString: -> "" diff --git a/app/lib/surface/Surface.coffee b/app/lib/surface/Surface.coffee index 5f576afd0..884131f64 100644 --- a/app/lib/surface/Surface.coffee +++ b/app/lib/surface/Surface.coffee @@ -79,7 +79,6 @@ module.exports = Surface = class Surface extends CocoClass @initAudio() destroy: -> - super() @dead = true @camera?.destroy() createjs.Ticker.removeEventListener("tick", @tick) @@ -102,6 +101,7 @@ module.exports = Surface = class Surface extends CocoClass @tick = null @canvas.off 'mousewheel', @onMouseWheel @onMouseWheel = null + super() setWorld: (@world) -> @worldLoaded = true diff --git a/app/views/editor/level/component/edit.coffee b/app/views/editor/level/component/edit.coffee index ada2f8979..8eb591dbf 100644 --- a/app/views/editor/level/component/edit.coffee +++ b/app/views/editor/level/component/edit.coffee @@ -89,5 +89,5 @@ module.exports = class LevelComponentEditView extends View null destroy: -> - super() @editor?.destroy() + super() diff --git a/app/views/editor/level/system/edit.coffee b/app/views/editor/level/system/edit.coffee index 02c9872f7..52a48cad9 100644 --- a/app/views/editor/level/system/edit.coffee +++ b/app/views/editor/level/system/edit.coffee @@ -89,5 +89,5 @@ module.exports = class LevelSystemEditView extends View null destroy: -> - super() @editor?.destroy() + super() diff --git a/app/views/editor/level/thangs_tab_view.coffee b/app/views/editor/level/thangs_tab_view.coffee index 45fbb8d6e..afc46cf14 100644 --- a/app/views/editor/level/thangs_tab_view.coffee +++ b/app/views/editor/level/thangs_tab_view.coffee @@ -151,9 +151,9 @@ module.exports = class ThangsTabView extends View @surface.camera.zoomTo({x:262, y:-164}, 1.66, 0) destroy: -> - super() @selectAddThangType null @surface.destroy() + super() onViewSwitched: (e) -> @selectAddThang() diff --git a/app/views/editor/thang/edit.coffee b/app/views/editor/thang/edit.coffee index 52f01b932..de0cc062e 100644 --- a/app/views/editor/thang/edit.coffee +++ b/app/views/editor/thang/edit.coffee @@ -378,5 +378,5 @@ module.exports = class ThangTypeEditView extends View @showingSelectedNode = false destroy: -> + @camera?.destroy() super() - @camera?.destroy() \ No newline at end of file diff --git a/app/views/home_view.coffee b/app/views/home_view.coffee index 55ebe4634..4a0ac9f17 100644 --- a/app/views/home_view.coffee +++ b/app/views/home_view.coffee @@ -101,8 +101,8 @@ module.exports = class HomeView extends View @turnOnStageUpdates() destroy: -> - super() @wizardSprite?.destroy() + super() onSimulateButtonClick: (e) => @alreadyPostedResults = false diff --git a/app/views/modal/wizard_settings_modal.coffee b/app/views/modal/wizard_settings_modal.coffee index a915ac1dc..61a2b53ff 100644 --- a/app/views/modal/wizard_settings_modal.coffee +++ b/app/views/modal/wizard_settings_modal.coffee @@ -76,5 +76,5 @@ module.exports = class WizardSettingsView extends View me.save() destroy: -> - super() @wizardSprite?.destroy() + super() diff --git a/app/views/play/level/hud_view.coffee b/app/views/play/level/hud_view.coffee index a3282beb4..baf141a25 100644 --- a/app/views/play/level/hud_view.coffee +++ b/app/views/play/level/hud_view.coffee @@ -333,8 +333,8 @@ module.exports = class HUDView extends View ael destroy: -> - super() @stage?.stopTalking() @addMoreMessage = null @animateEnterButton = null clearInterval(@messageInterval) if @messageInterval + super() diff --git a/app/views/play/level/level_chat_view.coffee b/app/views/play/level/level_chat_view.coffee index d3ca03a90..06467fed7 100644 --- a/app/views/play/level/level_chat_view.coffee +++ b/app/views/play/level/level_chat_view.coffee @@ -121,8 +121,8 @@ module.exports = class LevelChatView extends View openPanel.scrollTop = openPanel.scrollHeight or 1000000 destroy: -> - super() key.deleteScope('level') @session.off 'change:multiplayer', @updateMultiplayerVisibility, @ clearInterval @clearOldMessagesInterval if @clearOldMessagesInterval @clearOldMessages = null + super() diff --git a/app/views/play/level/modal/multiplayer_modal.coffee b/app/views/play/level/modal/multiplayer_modal.coffee index 74c49add0..8a14cbaa7 100644 --- a/app/views/play/level/modal/multiplayer_modal.coffee +++ b/app/views/play/level/modal/multiplayer_modal.coffee @@ -53,5 +53,5 @@ module.exports = class MultiplayerModal extends View @session.set('multiplayer', multiplayer) destroy: -> - super() @session.off 'change:multiplayer', @updateLinkSection, @ + super() diff --git a/app/views/play/level/modal/victory_modal.coffee b/app/views/play/level/modal/victory_modal.coffee index 88059a3cb..8afcd7e4e 100644 --- a/app/views/play/level/modal/victory_modal.coffee +++ b/app/views/play/level/modal/victory_modal.coffee @@ -100,8 +100,8 @@ module.exports = class VictoryModal extends View Backbone.Mediator.publish 'level:victory-hidden' destroy: -> - super() @saveReview() if @$el.find('.review textarea').val() + super() # rating, review diff --git a/app/views/play/level/playback_view.coffee b/app/views/play/level/playback_view.coffee index 7053cc010..6650adc78 100644 --- a/app/views/play/level/playback_view.coffee +++ b/app/views/play/level/playback_view.coffee @@ -236,10 +236,10 @@ module.exports = class PlaybackView extends View $(document.activeElement).blur() destroy: -> - super() me.off('change:music', @updateMusicButton, @) $(window).off('resize', @onWindowResize) @onWindowResize = null @onProgressMouseOver = null @onProgressMouseLeave = null @onProgressMouseMove = null + super() diff --git a/app/views/play/level/tome/cast_button_view.coffee b/app/views/play/level/tome/cast_button_view.coffee index aee6f0d8f..0a80e6a47 100644 --- a/app/views/play/level/tome/cast_button_view.coffee +++ b/app/views/play/level/tome/cast_button_view.coffee @@ -88,7 +88,7 @@ module.exports = class CastButtonView extends View $(@).toggleClass('selected', parseInt($(@).attr('data-delay')) is delay) destroy: -> - super() @castButton.off 'click', @onCastButtonClick @castOptions.find('a').off 'click', @onCastOptionsClick @onCastOptionsClick = null + super() diff --git a/app/views/play/level/tome/spell_debug_view.coffee b/app/views/play/level/tome/spell_debug_view.coffee index c85edc748..618071788 100644 --- a/app/views/play/level/tome/spell_debug_view.coffee +++ b/app/views/play/level/tome/spell_debug_view.coffee @@ -136,6 +136,6 @@ module.exports = class DebugView extends View key: keys.join("."), value: value destroy: -> - super() @ace?.removeEventListener "mousemove", @onMouseMove @onMouseMove = null + super() diff --git a/app/views/play/level/tome/spell_list_entry_view.coffee b/app/views/play/level/tome/spell_list_entry_view.coffee index 248753b54..a2708c25c 100644 --- a/app/views/play/level/tome/spell_list_entry_view.coffee +++ b/app/views/play/level/tome/spell_list_entry_view.coffee @@ -103,6 +103,6 @@ module.exports = class SpellListEntryView extends View @lastSelectedThang = e.world.thangMap[@lastSelectedThang.id] if @lastSelectedThang destroy: -> - super() @avatar?.destroy() @hideThangs = null + super() diff --git a/app/views/play/level/tome/spell_list_view.coffee b/app/views/play/level/tome/spell_list_view.coffee index 11da21aef..b659708e4 100644 --- a/app/views/play/level/tome/spell_list_view.coffee +++ b/app/views/play/level/tome/spell_list_view.coffee @@ -89,6 +89,6 @@ module.exports = class SpellListView extends View @addSpellListEntries() destroy: -> - super() entry.destroy() for entry in @entries - @sortScoreForSpell = null \ No newline at end of file + @sortScoreForSpell = null + super() \ No newline at end of file diff --git a/app/views/play/level/tome/spell_palette_view.coffee b/app/views/play/level/tome/spell_palette_view.coffee index fa4164458..8d4a336a4 100644 --- a/app/views/play/level/tome/spell_palette_view.coffee +++ b/app/views/play/level/tome/spell_palette_view.coffee @@ -64,6 +64,6 @@ module.exports = class SpellPaletteView extends View @options.thang = @thang = e.selectedThang # Update our thang to the current version destroy: -> - super() entry.destroy() for entry in @entries @toggleBackground = null + super() diff --git a/app/views/play/level/tome/spell_view.coffee b/app/views/play/level/tome/spell_view.coffee index 5eef52557..3abb7aedb 100644 --- a/app/views/play/level/tome/spell_view.coffee +++ b/app/views/play/level/tome/spell_view.coffee @@ -507,7 +507,6 @@ module.exports = class SpellView extends View @recompile() if @spell.hasChangedSignificantly @getSource() destroy: -> - super() $(@ace?.container).find('.ace_gutter').off 'click', '.ace_error, .ace_warning, .ace_info', @onAnnotationClick @firepad?.dispose() @ace?.commands.removeCommand command for command in @aceCommands @@ -522,3 +521,4 @@ module.exports = class SpellView extends View @session.off 'change:multiplayer', @onMultiplayerChanged, @ for fat in ['notifySpellChanged', 'notifyEditingEnded', 'notifyEditingBegan', 'onFirepadLoaded', 'onLoaded', 'toggleBackground', 'setRecompileNeeded', 'onCursorActivity', 'highlightCurrentLine', 'updateAether', 'onCodeChangeMetaHandler', 'recompileIfNeeded', 'currentAutocastHandler'] @[fat] = null + super() diff --git a/app/views/play/level/tome/thang_list_entry_view.coffee b/app/views/play/level/tome/thang_list_entry_view.coffee index b3e9cfa66..0b05a7776 100644 --- a/app/views/play/level/tome/thang_list_entry_view.coffee +++ b/app/views/play/level/tome/thang_list_entry_view.coffee @@ -137,7 +137,7 @@ module.exports = class ThangListEntryView extends View @$el.toggleClass 'dead', currentThang.health <= 0 if currentThang.exists destroy: -> - super() @avatar?.destroy() @popover?.off 'mouseenter mouseleave' @popover?.find('code').off 'click' + super() diff --git a/app/views/play/level/tome/thang_list_view.coffee b/app/views/play/level/tome/thang_list_view.coffee index fd5f5121b..b1c061f20 100644 --- a/app/views/play/level/tome/thang_list_view.coffee +++ b/app/views/play/level/tome/thang_list_view.coffee @@ -82,7 +82,7 @@ module.exports = class ThangListView extends View @addThangListEntries() destroy: -> - super() entry.destroy() for entry in @entries @sortScoreForThang = null + super() diff --git a/app/views/play/level/tome/tome_view.coffee b/app/views/play/level/tome/tome_view.coffee index 66850663f..7154020cc 100644 --- a/app/views/play/level/tome/tome_view.coffee +++ b/app/views/play/level/tome/tome_view.coffee @@ -183,6 +183,5 @@ module.exports = class TomeView extends View Backbone.Mediator.publish 'tome:cast-spells', spells: @spells destroy: -> + spell.destroy() for spellKey, spell of @spells super() - for spellKey, spell of @spells - spell.destroy() diff --git a/app/views/play/level_view.coffee b/app/views/play/level_view.coffee index b527bdf1e..c3d4ac214 100644 --- a/app/views/play/level_view.coffee +++ b/app/views/play/level_view.coffee @@ -390,7 +390,6 @@ module.exports = class PlayLevelView extends View Backbone.Mediator.publish 'level:team-set', team: team destroy: -> - super() @supermodel.off 'error', @onLevelLoadError @levelLoader?.off 'loaded-all', @onLevelLoaderLoaded @levelLoader?.destroy() @@ -400,7 +399,6 @@ module.exports = class PlayLevelView extends View @scriptManager?.destroy() $(window).off('resize', @onWindowResize) delete window.world # not sure where this is set, but this is one way to clean it up - clearInterval(@pointerInterval) @bus?.destroy() #@instance.save() unless @instance.loading @@ -411,3 +409,4 @@ module.exports = class PlayLevelView extends View @onSupermodelLoadedOne = null @preloadNextLevel = null @saveScreenshot = null + super() diff --git a/app/views/play/spectate_view.coffee b/app/views/play/spectate_view.coffee index 8cc361a43..c9ef84612 100644 --- a/app/views/play/spectate_view.coffee +++ b/app/views/play/spectate_view.coffee @@ -320,7 +320,6 @@ module.exports = class SpectateLevelView extends View Backbone.Mediator.publish 'level:team-set', team: team destroy: -> - super() @levelLoader?.destroy() @surface?.destroy() @god?.destroy() @@ -334,3 +333,4 @@ module.exports = class SpectateLevelView extends View #@instance.save() unless @instance.loading console.profileEnd?() if PROFILE_ME @session.off 'change:multiplayer', @onMultiplayerChanged, @ + super() From 7faa401177b1152cd0ae83a716c18799e35cec14 Mon Sep 17 00:00:00 2001 From: Scott Erickson Date: Fri, 14 Feb 2014 13:31:26 -0800 Subject: [PATCH 13/51] Trying to improve memory by clearing out all properties of destroyed objects. --- app/lib/CocoClass.coffee | 4 +++- app/lib/surface/SpriteBoss.coffee | 2 +- app/views/kinds/CocoView.coffee | 4 +++- 3 files changed, 7 insertions(+), 3 deletions(-) diff --git a/app/lib/CocoClass.coffee b/app/lib/CocoClass.coffee index f06851d29..3e6bb6e53 100644 --- a/app/lib/CocoClass.coffee +++ b/app/lib/CocoClass.coffee @@ -19,10 +19,12 @@ module.exports = class CocoClass destroy: -> # teardown subscriptions, prevent new ones - @destroyed = true @stopListening?() @unsubscribeAll() @stopListeningToShortcuts() + @[key] = undefined for key of @ + @destroyed = true + @destroy = -> # subscriptions diff --git a/app/lib/surface/SpriteBoss.coffee b/app/lib/surface/SpriteBoss.coffee index a389e8174..4f25f85f5 100644 --- a/app/lib/surface/SpriteBoss.coffee +++ b/app/lib/surface/SpriteBoss.coffee @@ -144,8 +144,8 @@ module.exports = class SpriteBoss extends CocoClass removeSprite: (sprite) -> sprite.displayObject.parent.removeChild sprite.displayObject - sprite.destroy() delete @sprites[sprite.thang.id] + sprite.destroy() updateSounds: -> sprite.playSounds() for thangID, sprite of @sprites # hmm; doesn't work for sprites which we didn't add yet in adjustSpriteExistence diff --git a/app/views/kinds/CocoView.coffee b/app/views/kinds/CocoView.coffee index dcff0dee2..56c759a5b 100644 --- a/app/views/kinds/CocoView.coffee +++ b/app/views/kinds/CocoView.coffee @@ -36,13 +36,15 @@ module.exports = class CocoView extends Backbone.View super options destroy: -> - @destroyed = true @stopListening() @stopListeningToShortcuts() @undelegateEvents() # removes both events and subs view.destroy() for id, view of @subviews @modalClosed = null $('#modal-wrapper .modal').off 'hidden.bs.modal', @modalClosed + @[key] = undefined for key, value of @ + @destroyed = true + @destroy = -> afterInsert: -> From 55fcad2cc3c599876a3e8c4f58f9983f1f65e051 Mon Sep 17 00:00:00 2001 From: Scott Erickson Date: Fri, 14 Feb 2014 14:10:28 -0800 Subject: [PATCH 14/51] Fixed a couple bugs with the wizard. --- app/lib/surface/WizardSprite.coffee | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/lib/surface/WizardSprite.coffee b/app/lib/surface/WizardSprite.coffee index 4050fa6c0..5a3e62ce0 100644 --- a/app/lib/surface/WizardSprite.coffee +++ b/app/lib/surface/WizardSprite.coffee @@ -183,7 +183,7 @@ module.exports = class WizardSprite extends IndieSprite Takes into account whether the wizard is in transit or not, and the bobbing up and down. Eventually will also adjust based on where other wizards are. """ - @targetPos = @targetSprite.thang.pos if @targetSprite + @targetPos = @targetSprite.thang.pos if @targetSprite?.thang pos = _.clone(@targetPos) pos.z = @defaultPos().z + @getBobOffset() @adjustPositionToSideOfTarget(pos) if @targetSprite # be off to the side depending on placement in world @@ -213,7 +213,7 @@ module.exports = class WizardSprite extends IndieSprite targetPos.y += @spriteYOffset faceTarget: -> - if @targetSprite + if @targetSprite?.thang @pointToward(@targetSprite.thang.pos) updateMarks: -> From 13caae2690d843a40be42dc1055f8793c3293744 Mon Sep 17 00:00:00 2001 From: Scott Erickson Date: Fri, 14 Feb 2014 14:10:55 -0800 Subject: [PATCH 15/51] Fixed the massive memory leak. --- app/lib/God.coffee | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/lib/God.coffee b/app/lib/God.coffee index 2de4d6c96..7639e29ea 100644 --- a/app/lib/God.coffee +++ b/app/lib/God.coffee @@ -208,7 +208,7 @@ class Angel @purgatoryTimer = null if @worker worker = @worker - _.defer -> worker.terminate + _.defer -> worker.terminate() @worker.removeEventListener 'message', @onWorkerMessage @worker = null @ From 643cafc89f026f2e0dd66c03d8985654303b8a0a Mon Sep 17 00:00:00 2001 From: Michael Schmatz Date: Fri, 14 Feb 2014 14:55:30 -0800 Subject: [PATCH 16/51] Refactored level handler and level session schema --- app/lib/simulator/Simulator.coffee | 30 ++- server/levels/level_handler.coffee | 208 ++++++++++-------- .../sessions/level_session_schema.coffee | 159 +++++++++---- 3 files changed, 243 insertions(+), 154 deletions(-) diff --git a/app/lib/simulator/Simulator.coffee b/app/lib/simulator/Simulator.coffee index bbf9c1f3b..a22e43ee3 100644 --- a/app/lib/simulator/Simulator.coffee +++ b/app/lib/simulator/Simulator.coffee @@ -3,10 +3,10 @@ LevelLoader = require 'lib/LevelLoader' GoalManager = require 'lib/world/GoalManager' module.exports = class Simulator + constructor: -> @retryDelayInSeconds = 10 - @taskURL = "/queue/scoring" - + @taskURL = '/queue/scoring' fetchAndSimulateTask: => $.ajax @@ -15,48 +15,45 @@ module.exports = class Simulator error: @handleFetchTaskError success: @setupSimulationAndLoadLevel - cleanupSimulation: -> - - handleFetchTaskError: (errorData) => console.log "There were no games to score. Error: #{JSON.stringify errorData}" console.log "Retrying in #{@retryDelayInSeconds}" - _.delay @fetchAndSimulateTask, @retryDelayInSeconds * 1000 + @simulateAnotherTaskAfterDelay() + + simulateAnotherTaskAfterDelay: => + retryDelayInMilliseconds = @retryDelayInSeconds * 1000 + _.delay @fetchAndSimulateTask, retryDelayInMilliseconds setupSimulationAndLoadLevel: (taskData) => @task = new SimulationTask(taskData) @superModel = new SuperModel() @god = new God() + @levelLoader = new LevelLoader @task.getLevelName(), @superModel, @task.getFirstSessionID() - @levelLoader.once 'loaded-all', @simulateGame - - simulateGame: => @assignWorldAndLevelFromLevelLoaderAndDestroyIt() @setupGod() + try @commenceSimulationAndSetupCallback() - catch e - console.log "There was an error in simulation. Trying again in #{retryDelayInSeconds} seconds" - console.log "Error #{e}" - _.delay @fetchAndSimulateTask, @retryDelayInSeconds * 1000 + catch err + console.log "There was an error in simulation(#{err}). Trying again in #{retryDelayInSeconds} seconds" + @simulateAnotherTaskAfterDelay() assignWorldAndLevelFromLevelLoaderAndDestroyIt: -> @world = @levelLoader.world @level = @levelLoader.level @levelLoader.destroy() - setupGod: -> @god.level = @level.serialize @supermodel @god.worldClassMap = world.classMap @setupGoalManager() @setupGodSpells() - setupGoalManager: -> @god.goalManager = new GoalManager @world @god.goalManager.goals = @fetchGoalsFromWorldNoteChain() @@ -66,7 +63,6 @@ module.exports = class Simulator @god.createWorld() Backbone.Mediator.subscribeOnce 'god:new-world-created', @processResults, @ - processResults: (simulationResults) -> taskResults = @formTaskResultsObject simulationResults sendResultsBackToServer taskResults @@ -90,7 +86,7 @@ module.exports = class Simulator @cleanupSimulation() @fetchAndSimulateTask() - + cleanupSimulation: -> formTaskResultsObject: (simulationResults) -> taskResults = diff --git a/server/levels/level_handler.coffee b/server/levels/level_handler.coffee index a663e7ecc..50f88c192 100644 --- a/server/levels/level_handler.coffee +++ b/server/levels/level_handler.coffee @@ -21,6 +21,8 @@ LevelHandler = class LevelHandler extends Handler 'icon' ] + postEditableProperties: ['name'] + getByRelationship: (req, res, args...) -> return @getSession(req, res, args[0]) if args[1] is 'session' return @getLeaderboard(req, res, args[0]) if args[1] is 'leaderboard' @@ -28,108 +30,134 @@ LevelHandler = class LevelHandler extends Handler return @getFeedback(req, res, args[0]) if args[1] is 'feedback' return @sendNotFoundError(res) - getSession: (req, res, id) -> - @getDocumentForIdOrSlug id, (err, level) => - return @sendDatabaseError(res, err) if err - return @sendNotFoundError(res) unless level? - return @sendUnauthorizedError(res) unless @hasAccessToDocument(req, level) - - sessionQuery = { - level: {original: level.original.toString(), majorVersion: level.version.major} - creator: req.user.id - } - - # TODO: generalize this for levels that need teams - team = req.query.team - team ?= 'humans' if level.name is 'Project DotA' - sessionQuery.team = team if team - - Session.findOne(sessionQuery).exec (err, doc) => - return @sendDatabaseError(res, err) if err - if doc - @sendSuccess(res, doc) - return - - initVals = sessionQuery - initVals.state = {complete:false, scripts:{currentScript:null}} # will not save empty objects - initVals.permissions = [{target:req.user.id, access:'owner'}, {target:'public', access:'write'}] - initVals.team = team if team - session = new Session(initVals) - session.save (err) => - return @sendDatabaseError(res, err) if err - @sendSuccess(res, @formatEntity(req, session)) - # TODO: tying things like @formatEntity and saveChangesToDocument don't make sense - # associated with the handler, because the handler might return a different type - # of model, like in this case. Refactor to move that logic to the model instead. - - getAllSessions: (req, res, id) -> - @getDocumentForIdOrSlug id, (err, level) => - return @sendDatabaseError(res, err) if err - return @sendNotFoundError(res) unless level? - return @sendUnauthorizedError(res) unless @hasAccessToDocument(req, level) - - sessionQuery = { - level: {original: level.original.toString(), majorVersion: level.version.major} - #creator: req.user.id - submitted: true - } - Session.find sessionQuery, '_id totalScore submitted team creatorName', (err, results) => - return @sendDatabaseError(res, err) if err - res.send(results) - res.end() - - getLeaderboard: (req, res, id) -> - # stub handler -# [original, version] = id.split('.') -# version = parseInt version -# console.log 'get leaderboard for', original, version, req.query - [original, version] = id.split '.' - version = parseInt(version) or 0 - - req.query.order = parseInt(req.query.order) or -1 - req.query.scoreOffset = parseInt(req.query.scoreOffset) ? 100000 - req.query.team ?= 'humans' - req.query.limit ?= parseInt(req.query.limit) or 20 - - - if parseInt(req.query.order) is 1 - scoreQuery = {"$gte":parseFloat req.query.scoreOffset} - else - scoreQuery = {"$lte": parseFloat req.query.scoreOffset} - - sessionsQuery = - level: {original: original, majorVersion: version} - team: req.query.team - totalScore: scoreQuery - submitted: true - - sortObject = - "totalScore": parseInt(req.query.order) - query = Session.find(sessionsQuery).sort(sortObject).limit(parseInt req.query.limit) - Session.find sessionsQuery, 'totalScore creatorName creator', (err, resultSessions) => - return @sendDatabaseError(res, err) if err - if resultSessions - return @sendSuccess res, resultSessions - res.send([]) - - getFeedback: (req, res, id) -> + fetchLevelByIDAndHandleErrors: (id, req, res, callback) -> @getDocumentForIdOrSlug id, (err, level) => return @sendDatabaseError(res, err) if err return @sendNotFoundError(res) unless level? return @sendUnauthorizedError(res) unless @hasAccessToDocument(req, level, 'get') + callback err, level - feedbackQuery = { + getSession: (req, res, id) -> + @fetchLevelByIDAndHandleErrors id, req, res, (err, level) => + sessionQuery = + level: + original: level.original.toString() + majorVersion: level.version.major + creator: req.user.id + + # TODO: generalize this for levels that need teams + if req.query.team? + sessionQuery.team = req.query.team + else if level.name is 'Project DotA' + sessionQuery.team = 'humans' + + Session.findOne(sessionQuery).exec (err, doc) => + return @sendDatabaseError(res, err) if err + return @sendSuccess(res, doc) if doc? + @createAndSaveNewSession sessionQuery, req, res + + + createAndSaveNewSession: (sessionQuery, req, res) => + initVals = sessionQuery + + initVals.state = + complete:false + scripts: + currentScript:null # will not save empty objects + + initVals.permissions = [ + { + target:req.user.id + access:'owner' + } + { + target:'public' + access:'write' + } + ] + session = new Session(initVals) + + session.save (err) => + return @sendDatabaseError(res, err) if err + @sendSuccess(res, @formatEntity(req, session)) + # TODO: tying things like @formatEntity and saveChangesToDocument don't make sense + # associated with the handler, because the handler might return a different type + # of model, like in this case. Refactor to move that logic to the model instead. + + getAllSessions: (req, res, id) -> + @fetchLevelByIDAndHandleErrors id, req, res, (err, level) => + sessionQuery = + level: + original: level.original.toString() + majorVersion: level.version.major + submitted: true + + propertiesToReturn = [ + '_id' + 'totalScore' + 'submitted' + 'team' + 'creatorName' + ] + + query = Session + .find(sessionQuery) + .select(propertiesToReturn.join ' ') + + query.exec (err, results) => + if err then @sendDatabaseError(res, err) else @sendSuccess res, results + + getLeaderboard: (req, res, id) -> + @validateLeaderboardRequestParameters req + [original, version] = id.split '.' + version = parseInt(version) ? 0 + scoreQuery = {} + scoreQuery[if req.query.order is 1 then "$gte" else "$lte"] = req.query.scoreOffset + + sessionsQueryParameters = + level: + original: original + majorVersion: version + team: req.query.team + totalScore: scoreQuery + submitted: true + + sortParameters = + "totalScore": req.query.order + + selectProperties = [ + 'totalScore' + 'creatorName' + 'creator' + ] + + query = Session + .find(sessionsQueryParameters) + .limit(req.query.limit) + .sort(sortParameters) + .select(selectProperties.join ' ') + + query.exec (err, resultSessions) => + return @sendDatabaseError(res, err) if err + resultSessions ?= [] + @sendSuccess res, resultSessions + + validateLeaderboardRequestParameters: (req) -> + req.query.order = parseInt(req.query.order) ? -1 + req.query.scoreOffset = parseFloat(req.query.scoreOffset) ? 100000 + req.query.team ?= 'humans' + req.query.limit = parseInt(req.query.limit) ? 20 + + getFeedback: (req, res, id) -> + @fetchLevelByIDAndHandleErrors id, req, res, (err, level) => + feedbackQuery = creator: mongoose.Types.ObjectId(req.user.id.toString()) 'level.original': level.original.toString() 'level.majorVersion': level.version.major - } Feedback.findOne(feedbackQuery).exec (err, doc) => return @sendDatabaseError(res, err) if err return @sendNotFoundError(res) unless doc? @sendSuccess(res, doc) - return - - postEditableProperties: ['name'] module.exports = new LevelHandler() diff --git a/server/levels/sessions/level_session_schema.coffee b/server/levels/sessions/level_session_schema.coffee index 8f1a6beaa..4073d25ef 100644 --- a/server/levels/sessions/level_session_schema.coffee +++ b/server/levels/sessions/level_session_schema.coffee @@ -1,73 +1,138 @@ c = require '../../commons/schemas' -LevelSessionPlayerSchema = c.object { - id: c.objectId(links: [{rel: 'extra', href: "/db/user/{($)}"}]) - time: { type: 'Number' } - changes: { type: 'Number' } -} +LevelSessionPlayerSchema = c.object + id: c.objectId + links: [ + { + rel: 'extra' + href: "/db/user/{($)}" + } + ] + time: + type: 'Number' + changes: + type: 'Number' -LevelSessionLevelSchema = c.object {required: ['original', 'majorVersion']}, { + +LevelSessionLevelSchema = c.object {required: ['original', 'majorVersion']}, original: c.objectId({}) - majorVersion: {type: 'integer', minimum: 0, default: 0}} + majorVersion: + type: 'integer' + minimum: 0 + default: 0 -LevelSessionSchema = c.object { + +LevelSessionSchema = c.object title: "Session" description: "A single session for a given level." -} + _.extend LevelSessionSchema.properties, # denormalization - creatorName: { type: 'string' } - levelName: { type: 'string' } - levelID: { type: 'string' } - multiplayer: { type: 'boolean' } + creatorName: + type: 'string' + levelName: + type: 'string' + levelID: + type: 'string' + multiplayer: + type: 'boolean' + creator: c.objectId + links: + [ + { + rel: 'extra' + href: "/db/user/{($)}" + } + ] + created: c.date + title: 'Created' + readOnly: true + + changed: c.date + title: 'Changed' + readOnly: true - creator: c.objectId(links: [{rel: 'extra', href: "/db/user/{($)}"}]) - created: c.date( { title: 'Created', readOnly: true }) - changed: c.date( { title: 'Changed', readOnly: true }) team: c.shortString() level: LevelSessionLevelSchema - screenshot: { type: 'string' } - state: c.object {}, { - complete: { type: 'boolean' } - scripts: c.object {}, { - ended: { type: 'object', additionalProperties: { type: 'number' }} - currentScript: { type: ['null', 'string']} - currentScriptOffset: { type: 'number' }} - selected: { type: ['null', 'string'] } - playing: { type: 'boolean' } - frame: { type: 'number' } - thangs: { type: 'object', additionalProperties: { - title: 'Thang' + + screenshot: + type: 'string' + + state: c.object {}, + complete: + type: 'boolean' + scripts: c.object {}, + ended: + type: 'object' + additionalProperties: + type: 'number' + currentScript: + type: [ + 'null' + 'string' + ] + currentScriptOffset: + type: 'number' + + selected: + type: [ + 'null' + 'string' + ] + playing: + type: 'boolean' + frame: + type: 'number' + thangs: type: 'object' - properties: { - methods: { type: 'object', additionalProperties: { - title: 'Thang Method' - type: 'object' - properties: { - metrics: { type: 'object' } - source: { type: 'string' } - } - }} - } - }} - } + additionalProperties: + title: 'Thang' + type: 'object' + properties: + methods: + type: 'object' + additionalProperties: + title: 'Thang Method' + type: 'object' + properties: + metrics: + type: 'object' + source: + type: 'string' # TODO: specify this more - code: { type: 'object' } + code: + type: 'object' + teamSpells: type: 'object' additionalProperties: type: 'array' + players: + type: 'object' - players: { type: 'object' } - chat: { type: 'array' } + chat: + type: 'array' - meanStrength: {type: 'number', default: 25} - standardDeviation: {type:'number', default:25/3, minimum: 0} - totalScore: {type: 'number', default: 10} - submitted: {type: 'boolean', default: false, index:true} + meanStrength: + type: 'number' + default: 25 + + standardDeviation: + type:'number' + default:25/3 + minimum: 0 + + totalScore: + type: 'number' + default: 10 + + submitted: + type: 'boolean' + default: false + index:true c.extendBasicProperties LevelSessionSchema, 'level.session' c.extendPermissionsProperties LevelSessionSchema, 'level.session' From d55e4cd6247354c2285b5b2e3b067710ccf37c7d Mon Sep 17 00:00:00 2001 From: Scott Erickson Date: Fri, 14 Feb 2014 15:35:54 -0800 Subject: [PATCH 17/51] Made sure session objects are loaded from the server fresh, no caching. --- app/lib/LevelLoader.coffee | 5 ++++- app/lib/surface/SpriteBoss.coffee | 2 +- app/models/CocoModel.coffee | 2 +- 3 files changed, 6 insertions(+), 3 deletions(-) diff --git a/app/lib/LevelLoader.coffee b/app/lib/LevelLoader.coffee index bec45548f..8c4fc989d 100644 --- a/app/lib/LevelLoader.coffee +++ b/app/lib/LevelLoader.coffee @@ -45,7 +45,10 @@ module.exports = class LevelLoader extends CocoClass @session = new LevelSession() @session.url = -> url - @session.fetch() + + # Unless you specify cache:false, sometimes the browser will use a cached session + # and players will 'lose' code + @session.fetch({cache:false}) @session.once 'sync', @onSessionLoaded, @ if @opponentSessionID diff --git a/app/lib/surface/SpriteBoss.coffee b/app/lib/surface/SpriteBoss.coffee index 4f25f85f5..724889e52 100644 --- a/app/lib/surface/SpriteBoss.coffee +++ b/app/lib/surface/SpriteBoss.coffee @@ -252,7 +252,7 @@ module.exports = class SpriteBoss extends CocoClass # Marks updateSelection: -> - if @selectedSprite and (not @selectedSprite.thang.exists or not @world.getThangByID @selectedSprite.thang.id) + if @selectedSprite?.thang and (not @selectedSprite.thang.exists or not @world.getThangByID @selectedSprite.thang.id) @selectSprite null, null, null @updateTarget() return unless @selectionMark diff --git a/app/models/CocoModel.coffee b/app/models/CocoModel.coffee index 4f740d5e8..be012899d 100644 --- a/app/models/CocoModel.coffee +++ b/app/models/CocoModel.coffee @@ -81,7 +81,7 @@ class CocoModel extends Backbone.Model return super attrs, options fetch: -> - super() + super(arguments...) @loading = true markToRevert: -> From 63a5769bcf2c66d05581e7f8c5c3bb99a07c3e80 Mon Sep 17 00:00:00 2001 From: Michael Schmatz Date: Fri, 14 Feb 2014 15:50:42 -0800 Subject: [PATCH 18/51] Fixed various bugs in simulator and put in home view --- app/lib/simulator/Simulator.coffee | 63 +++--------- app/views/home_view.coffee | 160 +---------------------------- 2 files changed, 20 insertions(+), 203 deletions(-) diff --git a/app/lib/simulator/Simulator.coffee b/app/lib/simulator/Simulator.coffee index a22e43ee3..73bdb1043 100644 --- a/app/lib/simulator/Simulator.coffee +++ b/app/lib/simulator/Simulator.coffee @@ -1,6 +1,7 @@ SuperModel = require 'models/SuperModel' LevelLoader = require 'lib/LevelLoader' GoalManager = require 'lib/world/GoalManager' +God = require 'lib/God' module.exports = class Simulator @@ -27,10 +28,10 @@ module.exports = class Simulator setupSimulationAndLoadLevel: (taskData) => @task = new SimulationTask(taskData) - @superModel = new SuperModel() + @supermodel = new SuperModel() @god = new God() - @levelLoader = new LevelLoader @task.getLevelName(), @superModel, @task.getFirstSessionID() + @levelLoader = new LevelLoader @task.getLevelName(), @supermodel, @task.getFirstSessionID() @levelLoader.once 'loaded-all', @simulateGame simulateGame: => @@ -50,7 +51,7 @@ module.exports = class Simulator setupGod: -> @god.level = @level.serialize @supermodel - @god.worldClassMap = world.classMap + @god.worldClassMap = @world.classMap @setupGoalManager() @setupGodSpells() @@ -65,7 +66,7 @@ module.exports = class Simulator processResults: (simulationResults) -> taskResults = @formTaskResultsObject simulationResults - sendResultsBackToServer taskResults + @sendResultsBackToServer taskResults sendResultsBackToServer: (results) => $.ajax @@ -95,40 +96,33 @@ module.exports = class Simulator calculationTime: 500 sessions: [] - for session in @task.sessions + for session in @task.getSessions() sessionResult = sessionID: session.sessionID sessionChangedTime: session.sessionChangedTime metrics: - rank: @calculateSessionRank session.sessionID, simulationResults.goalStates + rank: @calculateSessionRank session.sessionID, simulationResults.goalStates, @task.generateTeamToSessionMap() taskResults.sessions.push sessionResult return taskResults - - calculateSessionRank: (sessionID, goalStates) -> + calculateSessionRank: (sessionID, goalStates, teamSessionMap) -> humansDestroyed = goalStates["destroy-humans"].status is "success" ogresDestroyed = goalStates["destroy-ogres"].status is "success" - console.log "Humans destroyed:#{humansDestroyed}" - console.log "Ogres destroyed:#{ogresDestroyed}" - console.log "Team Session Map: #{JSON.stringify @teamSessionMap}" if humansDestroyed is ogresDestroyed return 0 - else if humansDestroyed and @teamSessionMap["ogres"] is sessionID + else if humansDestroyed and teamSessionMap["ogres"] is sessionID return 0 - else if humansDestroyed and @teamSessionMap["ogres"] isnt sessionID + else if humansDestroyed and teamSessionMap["ogres"] isnt sessionID return 1 - else if ogresDestroyed and @teamSessionMap["humans"] is sessionID + else if ogresDestroyed and teamSessionMap["humans"] is sessionID return 0 else return 1 - - fetchGoalsFromWorldNoteChain: -> return @god.goalManager.world.scripts[0].noteChain[0].goals.add - manuallyGenerateGoalStates: -> goalStates = "destroy-humans": @@ -142,30 +136,25 @@ module.exports = class Simulator "Ogre Base": false status: "incomplete" - - setupGodSpells: -> @generateSpellsObject() @god.spells = @spells - - generateSpellsObject: (currentUserCodeMap) -> - @userCodeMap = currentUserCodeMap + generateSpellsObject: -> + @currentUserCodeMap = @task.generateSpellKeyToSourceMap() @spells = {} for thang in @level.attributes.thangs continue if @thangIsATemplate thang @generateSpellKeyToSourceMapPropertiesFromThang thang - thangIsATemplate: (thang) -> for component in thang.components continue unless @componentHasProgrammableMethods component for methodName, method of component.config.programmableMethods - return true if methodBelongsToTemplateThang method + return true if @methodBelongsToTemplateThang method return false - componentHasProgrammableMethods: (component) -> component.config? and _.has component.config, 'programmableMethods' methodBelongsToTemplateThang: (method) -> typeof method is 'string' @@ -181,17 +170,14 @@ module.exports = class Simulator @createSpellThang thang, method, spellKey @transpileSpell thang, spellKey, methodName - - - generateSpellKeyFromThangIDAndMethodName: (thang, methodName) -> spellKeyComponents = [thang.id, methodName] - pathComponents[0] = _.string.slugify pathComponents[0] - pathComponents.join '/' + spellKeyComponents[0] = _.string.slugify spellKeyComponents[0] + spellKeyComponents.join '/' createSpellAndAssignName: (spellKey, spellName) -> @spells[spellKey] ?= {} - @spells[spellKey].name = methodName + @spells[spellKey].name = spellName createSpellThang: (thang, method, spellKey) -> @spells[spellKey].thangs ?= {} @@ -203,12 +189,6 @@ module.exports = class Simulator source = @currentUserCodeMap[slugifiedThangID]?[methodName] ? "" @spells[spellKey].thangs[thang.id].aether.transpile source - - - - - - createAether: (methodName, method) -> aetherOptions = functionName: methodName @@ -216,18 +196,9 @@ module.exports = class Simulator includeFlow: false return new Aether aetherOptions - - - - - - - - class SimulationTask constructor: (@rawData) -> - getLevelName: -> levelName = @rawData.sessions?[0]?.levelID return levelName if levelName? diff --git a/app/views/home_view.coffee b/app/views/home_view.coffee index 55ebe4634..ec1f83b4b 100644 --- a/app/views/home_view.coffee +++ b/app/views/home_view.coffee @@ -2,10 +2,7 @@ View = require 'views/kinds/RootView' template = require 'templates/home' WizardSprite = require 'lib/surface/WizardSprite' ThangType = require 'models/ThangType' -LevelLoader = require 'lib/LevelLoader' -God = require 'lib/God' - -GoalManager = require 'lib/world/GoalManager' +Simulator = require 'lib/simulator/Simulator' module.exports = class HomeView extends View id: 'home-view' @@ -105,156 +102,5 @@ module.exports = class HomeView extends View @wizardSprite?.destroy() onSimulateButtonClick: (e) => - @alreadyPostedResults = false - console.log "Simulating world!" - $.ajax - url: "/queue/scoring" - type: "GET" - error: (data) => - console.log "There are no games to score. Error: #{JSON.stringify data}" - console.log "Retrying in ten seconds..." - _.delay @onSimulateButtonClick, 10000 - success: (data) => - console.log data - levelName = data.sessions[0].levelID - #TODO: Refactor. So much refactor. - @taskData = data - @teamSessionMap = @generateTeamSessionMap data - world = {} - god = new God() - levelLoader = new LevelLoader(levelName, @supermodel, data.sessions[0].sessionID) - levelLoader.once 'loaded-all', => - world = levelLoader.world - level = levelLoader.level - levelLoader.destroy() - god.level = level.serialize @supermodel - god.worldClassMap = world.classMap - god.goalManager = new GoalManager(world) - #move goals in here - goalsToAdd = god.goalManager.world.scripts[0].noteChain[0].goals.add - god.goalManager.goals = goalsToAdd - god.goalManager.goalStates = - "destroy-humans": - keyFrame: 0 - killed: - "Human Base": false - status: "incomplete" - "destroy-ogres": - keyFrame:0 - killed: - "Ogre Base": false - status: "incomplete" - god.spells = @filterProgrammableComponents level.attributes.thangs, @generateSpellToSourceMap data.sessions - god.createWorld() - @god = god - Backbone.Mediator.subscribeOnce 'god:new-world-created', @onWorldCreated, @ - - onWorldCreated: (data) -> - return if @alreadyPostedResults - taskResults = @translateGoalStatesIntoTaskResults data.goalStates - @god?.destroy() - - $.ajax - url: "/queue/scoring" - data: taskResults - type: 'PUT' - success: (result) => - console.log "TASK REGISTRATION RESULT:#{JSON.stringify result}" - error: (error) => - console.log "TASK REGISTRATION ERROR:#{JSON.stringify error}" - complete: (result) => - @alreadyPostedResults = true - @onSimulateButtonClick() - - - translateGoalStatesIntoTaskResults: (goalStates) => - taskResults = {} - taskResults = - taskID: @taskData.taskID - receiptHandle: @taskData.receiptHandle - calculationTime: 500 - sessions: [] - - for session in @taskData.sessions - sessionResult = - sessionID: session.sessionID - sessionChangedTime: session.sessionChangedTime - metrics: - rank: @calculateSessionRank session.sessionID, goalStates - taskResults.sessions.push sessionResult - taskResults - - calculateSessionRank: (sessionID, goalStates) -> - humansDestroyed = goalStates["destroy-humans"].status is "success" - ogresDestroyed = goalStates["destroy-ogres"].status is "success" - console.log "Humans destroyed:#{humansDestroyed}" - console.log "Ogres destroyed:#{ogresDestroyed}" - console.log "Team Session Map: #{JSON.stringify @teamSessionMap}" - if humansDestroyed is ogresDestroyed - return 0 - else if humansDestroyed and @teamSessionMap["ogres"] is sessionID - return 0 - else if humansDestroyed and @teamSessionMap["ogres"] isnt sessionID - return 1 - else if ogresDestroyed and @teamSessionMap["humans"] is sessionID - return 0 - else - return 1 - - - generateTeamSessionMap: (task) -> - teamSessionMap = {} - for session in @taskData.sessions - teamSessionMap[session.team] = session.sessionID - teamSessionMap - - - - filterProgrammableComponents: (thangs, spellToSourceMap) => - spells = {} - for thang in thangs - isTemplate = false - for component in thang.components - if component.config? and _.has component.config,'programmableMethods' - for methodName, method of component.config.programmableMethods - if typeof method is 'string' - isTemplate = true - break - - pathComponents = [thang.id,methodName] - pathComponents[0] = _.string.slugify pathComponents[0] - spellKey = pathComponents.join '/' - spells[spellKey] ?= {} - spells[spellKey].thangs ?= {} - spells[spellKey].name = methodName - thangID = _.string.slugify thang.id - spells[spellKey].thangs[thang.id] ?= {} - spells[spellKey].thangs[thang.id].aether = @createAether methodName, method - if spellToSourceMap[thangID]? then source = spellToSourceMap[thangID][methodName] else source = "" - spells[spellKey].thangs[thang.id].aether.transpile source - if isTemplate - break - - spells - - createAether : (methodName, method) -> - aetherOptions = - functionName: methodName - protectAPI: false - includeFlow: false - return new Aether aetherOptions - - generateSpellToSourceMap: (sessions) -> - spellKeyToSourceMap = {} - spellSources = {} - for session in sessions - teamSpells = session.teamSpells[session.team] - _.merge spellSources, _.pick(session.code, teamSpells) - - #merge common ones, this overwrites until the last session - commonSpells = session.teamSpells["common"] - if commonSpells? - _.merge spellSources, _.pick(session.code, commonSpells) - - spellSources - + simulator = new Simulator() + simulator.fetchAndSimulateTask() From 597ace25cc7f6eda3cae05aeb0e2f2f1c13bb7f3 Mon Sep 17 00:00:00 2001 From: Scott Erickson Date: Fri, 14 Feb 2014 16:08:01 -0800 Subject: [PATCH 19/51] Fixed the spell list tab entry view popover to not popover when using the dropdown. --- app/views/play/level/tome/spell_list_tab_entry_view.coffee | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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 0665c7afd..9c989b7aa 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 @@ -61,7 +61,7 @@ module.exports = class SpellListTabEntryView extends SpellListEntryView return unless found doc.owner = 'this' doc.shortName = doc.shorterName = doc.title = "this.#{doc.name}();" - @$el.popover( + @$el.find('code').popover( animation: true html: true placement: 'bottom' From 50f683534f0fb55b52253f170117b78e5179397f Mon Sep 17 00:00:00 2001 From: Nick Winter Date: Fri, 14 Feb 2014 16:52:50 -0800 Subject: [PATCH 20/51] Support for seeing this.now() in spell palette. --- app/lib/storage.coffee | 4 ++-- .../play/level/tome/problem_alert.jade | 4 ++-- .../tome/spell_palette_entry_popover.jade | 2 +- .../play/level/tome/problem_alert_view.coffee | 5 ++-- .../tome/spell_palette_entry_view.coffee | 1 + config.coffee | 24 +++++++++++++++---- 6 files changed, 28 insertions(+), 12 deletions(-) diff --git a/app/lib/storage.coffee b/app/lib/storage.coffee index 10ecaf1a7..78ea56111 100644 --- a/app/lib/storage.coffee +++ b/app/lib/storage.coffee @@ -11,5 +11,5 @@ module.exports.load = (key) -> module.exports.save = (key, value) -> s = JSON.stringify(value) localStorage.setItem(key, s) - -module.exports.remove = (key) -> localStorage.removeItem key \ No newline at end of file + +module.exports.remove = (key) -> localStorage.removeItem key diff --git a/app/templates/play/level/tome/problem_alert.jade b/app/templates/play/level/tome/problem_alert.jade index 6b7e8383a..e9cedca64 100644 --- a/app/templates/play/level/tome/problem_alert.jade +++ b/app/templates/play/level/tome/problem_alert.jade @@ -1,5 +1,5 @@ button.close(type="button", data-dismiss="alert") × -span.problem-message= message +span.problem-message!= message if hint br - span.problem-hint= hint \ No newline at end of file + span.problem-hint!= hint \ No newline at end of file diff --git a/app/templates/play/level/tome/spell_palette_entry_popover.jade b/app/templates/play/level/tome/spell_palette_entry_popover.jade index 1002593e1..d9371136f 100644 --- a/app/templates/play/level/tome/spell_palette_entry_popover.jade +++ b/app/templates/play/level/tome/spell_palette_entry_popover.jade @@ -17,7 +17,7 @@ else if doc.type == 'function' div code= doc.owner + '.' + doc.name + '(' + argumentExamples.join(', ') + ');' -if doc.type != 'function' && doc.type != 'snippet' +if (doc.type != 'function' && doc.type != 'snippet') || doc.name == 'now' p.value strong Current Value: pre diff --git a/app/views/play/level/tome/problem_alert_view.coffee b/app/views/play/level/tome/problem_alert_view.coffee index 9af5b97c0..59dd6ccc8 100644 --- a/app/views/play/level/tome/problem_alert_view.coffee +++ b/app/views/play/level/tome/problem_alert_view.coffee @@ -17,8 +17,9 @@ module.exports = class ProblemAlertView extends View getRenderData: (context={}) -> context = super context - context.message = @problem.aetherProblem.message.replace("\n", "
") - context.hint = @problem.aetherProblem.hint?.replace("\n", "
") + format = (s) -> s?.replace("\n", "
").replace('<', '<').replace('>', '>') + context.message = format @problem.aetherProblem.message + context.hint = format @problem.aetherProblem.hint context afterRender: -> diff --git a/app/views/play/level/tome/spell_palette_entry_view.coffee b/app/views/play/level/tome/spell_palette_entry_view.coffee index 0ef882854..7e435108c 100644 --- a/app/views/play/level/tome/spell_palette_entry_view.coffee +++ b/app/views/play/level/tome/spell_palette_entry_view.coffee @@ -98,6 +98,7 @@ module.exports = class SpellPaletteEntryView extends View content.replace /\#\{(.*?)\}/g, (s, properties) => @formatValue downTheChain(owner, properties.split('.')) formatValue: (v) -> + return @thang.now() if @doc.name is 'now' return '[Function]' if not v and @doc.type is 'function' unless v? if @doc.owner is 'this' diff --git a/config.coffee b/config.coffee index 79bed6163..3c4bb76d9 100644 --- a/config.coffee +++ b/config.coffee @@ -15,12 +15,26 @@ exports.config = javascripts: defaultExtension: 'coffee' joinTo: - 'javascripts/world.js': /^((app(\/|\\)lib(\/|\\)world(?!(\/|\\)test))|(app(\/|\\)lib(\/|\\)CocoClass.coffee)|(app(\/|\\)lib(\/|\\)utils.coffee)|(vendor(\/|\\)scripts(\/|\\)Box2dWeb-2.1.a.3)|(bower_components(\/|\\)lodash(\/|\\)dist(\/|\\)lodash.js)|(vendor(\/|\\)scripts(\/|\\)string_score.js)|(bower_components(\/|\\)aether(\/|\\)build(\/|\\)aether.js))/ + 'javascripts/world.js': ///^( + (app[\/\\]lib[\/\\]world(?![\/\\]test)) + |(app[\/\\]lib[\/\\]CocoClass.coffee) + |(app[\/\\]lib[\/\\]utils.coffee) + |(vendor[\/\\]scripts[\/\\]Box2dWeb-2.1.a.3) + |(vendor[\/\\]scripts[\/\\]string_score.js) + |(bower_components[\/\\]lodash[\/\\]dist[\/\\]lodash.js) + |(bower_components[\/\\]aether[\/\\]build[\/\\]aether.js) + )/// 'javascripts/app.js': /^app/ - 'javascripts/vendor.js': /^(vendor(\/|\\)(?!(scripts\/Box2d|scripts\/box2d))|bower_components)/ - 'javascripts/vendor_with_box2d.js': /^(vendor(\/|\\)(?!scripts\/box2d)|bower_components)/ # include box2dweb for profiling (and for IE9...) - 'test/javascripts/test.js': /^test(\/|\\)(?!vendor)/ - 'test/javascripts/test-vendor.js': /^test(\/|\\)(?=vendor)/ + 'javascripts/vendor.js': ///^( + vendor[\/\\](?!(scripts[\/\\]Box2d|scripts[\/\\]box2d)) + |bower_components + )/// + 'javascripts/vendor_with_box2d.js': ///^( + vendor[\/\\](?!scripts[\/\\]box2d) + |bower_components # include box2dweb for profiling (and for IE9...) + )/// + 'test/javascripts/test.js': /^test[\/\\](?!vendor)/ + 'test/javascripts/test-vendor.js': /^test[\/\\](?=vendor)/ order: before: [ 'bower_components/jquery/jquery.js' From c418e282ae7fb7be97fe82ed2f5192279ef3bdf8 Mon Sep 17 00:00:00 2001 From: Michael Schmatz Date: Fri, 14 Feb 2014 16:53:34 -0800 Subject: [PATCH 21/51] Put in pairwise simulation button --- app/lib/simulator/Simulator.coffee | 2 +- app/templates/play/ladder.jade | 4 +++- app/views/play/ladder_view.coffee | 15 +++++++++++++++ 3 files changed, 19 insertions(+), 2 deletions(-) diff --git a/app/lib/simulator/Simulator.coffee b/app/lib/simulator/Simulator.coffee index 73bdb1043..f8effe150 100644 --- a/app/lib/simulator/Simulator.coffee +++ b/app/lib/simulator/Simulator.coffee @@ -75,7 +75,7 @@ module.exports = class Simulator type: "PUT" success: @handleTaskResultsTransferSuccess error: @handleTaskResultsTransferError - complete: @cleanupAndSimulateAnotherTask() + complete: @cleanupAndSimulateAnotherTask handleTaskResultsTransferSuccess: (result) -> console.log "Task registration result: #{JSON.stringify result}" diff --git a/app/templates/play/ladder.jade b/app/templates/play/ladder.jade index 02cd4cf23..8c528dbdd 100644 --- a/app/templates/play/ladder.jade +++ b/app/templates/play/ladder.jade @@ -5,7 +5,9 @@ block content h3= level.get('name') div#level-description !{description} - + if me.isAdmin() + button.btn.btn-warning.btn-lg.highlight#simulate-button(style="margin-bottom:10px") Simulate all games + div#leaderboard-column ul.nav.nav-pills for team in teams diff --git a/app/views/play/ladder_view.coffee b/app/views/play/ladder_view.coffee index b97a40982..b920fd6c1 100644 --- a/app/views/play/ladder_view.coffee +++ b/app/views/play/ladder_view.coffee @@ -28,6 +28,21 @@ module.exports = class LadderView extends RootView id: 'ladder-view' template: require 'templates/play/ladder' startsLoading: true + + events: + 'click #simulate-button': 'onSimulateButtonClick' + + onSimulateButtonClick: (e) -> + submitIDs = _.pluck @leaderboards[@teams[0]].topPlayers.models, "id" + for ID in submitIDs + $.ajax + url: '/queue/scoring' + method: 'POST' + data: + session: ID + alert "Simulating all games!" + alert "(do not push more than once pls)" + constructor: (options, levelID) -> super(options) From 663a09ed4b68483b5b1ee8b52b3406fa66d90a6a Mon Sep 17 00:00:00 2001 From: Scott Erickson Date: Sat, 15 Feb 2014 09:22:13 -0800 Subject: [PATCH 22/51] Spell list updates based on the existence of thangs now. --- .../play/level/tome/spell_list_entry_view.coffee | 12 ++++++++---- app/views/play/level/tome/spell_list_view.coffee | 3 +++ app/views/play/level/tome/tome_view.coffee | 1 + 3 files changed, 12 insertions(+), 4 deletions(-) diff --git a/app/views/play/level/tome/spell_list_entry_view.coffee b/app/views/play/level/tome/spell_list_entry_view.coffee index a2708c25c..48820d742 100644 --- a/app/views/play/level/tome/spell_list_entry_view.coffee +++ b/app/views/play/level/tome/spell_list_entry_view.coffee @@ -31,7 +31,7 @@ module.exports = class SpellListEntryView extends View context = super context context.spell = @spell context.parameters = (@spell.parameters or []).join ', ' - context.thangNames = (thangID for thangID of @spell.thangs).join(', ') # + ", Marcus, Robert, Phoebe, Will Smith, Zap Brannigan, You, Gandaaaaalf" + context.thangNames = (thangID for thangID, spellThang of @spell.thangs when spellThang.thang.exists).join(', ') # + ", Marcus, Robert, Phoebe, Will Smith, Zap Brannigan, You, Gandaaaaalf" context.showTopDivider = @showTopDivider context @@ -40,12 +40,14 @@ module.exports = class SpellListEntryView extends View spellThang = _.find @spell.thangs, (spellThang) => spellThang.thang.id is @lastSelectedThang.id return spellThang if spellThang for thangID, spellThang of @spell.thangs + continue unless spellThang.thang.exists return spellThang # Just do the first one else - + afterRender: -> super() return unless @options.showTopDivider # Don't repeat Thang avatars when not changed from previous entry - return unless spellThang = @getPrimarySpellThang() + return @$el.hide() unless spellThang = @getPrimarySpellThang() + @$el.show() @avatar?.destroy() @avatar = new ThangAvatarView thang: spellThang.thang, includeName: false, supermodel: @supermodel @$el.prepend @avatar.el # Before rendering, so render can use parent for popover @@ -71,7 +73,9 @@ module.exports = class SpellListEntryView extends View showThangs: -> clearTimeout @hideThangsTimeout if @hideThangsTimeout return if @thangsView - @thangsView = new SpellListEntryThangsView thangs: (spellThang.thang for thangID, spellThang of @spell.thangs), thang: @getPrimarySpellThang().thang, spell: @spell, supermodel: @supermodel + spellThang = @getPrimarySpellThang() + return unless spellThang + @thangsView = new SpellListEntryThangsView thangs: (spellThang.thang for thangID, spellThang of @spell.thangs), thang: spellTHang.thang, spell: @spell, supermodel: @supermodel @thangsView.render() @$el.append @thangsView.el @thangsView.$el.mouseenter (e) => @onMouseEnterAvatar() diff --git a/app/views/play/level/tome/spell_list_view.coffee b/app/views/play/level/tome/spell_list_view.coffee index b659708e4..137219c96 100644 --- a/app/views/play/level/tome/spell_list_view.coffee +++ b/app/views/play/level/tome/spell_list_view.coffee @@ -66,6 +66,9 @@ module.exports = class SpellListView extends View for entry in newEntries @$el.append entry.el entry.render() # Render after appending so that we can access parent container for popover + + rerenderEntries: -> + entry.render() for entry in @entries onNewWorld: (e) -> @thang = e.world.thangMap[@thang.id] if @thang diff --git a/app/views/play/level/tome/tome_view.coffee b/app/views/play/level/tome/tome_view.coffee index 7154020cc..05cd4d113 100644 --- a/app/views/play/level/tome/tome_view.coffee +++ b/app/views/play/level/tome/tome_view.coffee @@ -134,6 +134,7 @@ module.exports = class TomeView extends View Backbone.Mediator.publish 'tome:cast-spells', spells: @spells onToggleSpellList: (e) -> + @spellList.rerenderEntries() @spellList.$el.toggle() onSpellViewClick: (e) -> From 7eee28422a61e4864d870a93a15e671d0f4628f3 Mon Sep 17 00:00:00 2001 From: Scott Erickson Date: Sat, 15 Feb 2014 10:31:24 -0800 Subject: [PATCH 23/51] Fixed the submitting of scores to only allow logged in users to get on the leaderboard. --- server/queues/scoring.coffee | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/server/queues/scoring.coffee b/server/queues/scoring.coffee index 2c98b4c19..5607d0ae8 100644 --- a/server/queues/scoring.coffee +++ b/server/queues/scoring.coffee @@ -29,6 +29,7 @@ throwScoringQueueRegistrationError = (error) -> throw new Error "There was an error registering the scoring queue." module.exports.createNewTask = (req, res) -> + return errors.forbidden res, "You need to be logged in to be added to the leaderboard" if isUserAnonymous req return errors.badInput res, "The session ID is invalid" unless typeof req.body.session is "string" LevelSession.findOne { "_id": req.body.session}, (err, sessionToScore) -> return errors.serverError res, "There was an error finding the given session." if err? @@ -87,7 +88,7 @@ module.exports.dispatchTaskToConsumer = (req, res) -> getUserIDFromRequest = (req) -> if req.user? then return req.user._id else return null -isUserAnonymous = (req) -> if req.user? then return req.user.anonymous else return true +isUserAnonymous = (req) -> if req.user? then return req.user.get('anonymous') else return true parseTaskQueueMessage = (req, res, message) -> From ac08490e860daadb2b725599a151576eb4448b4a Mon Sep 17 00:00:00 2001 From: Scott Erickson Date: Sat, 15 Feb 2014 12:06:47 -0800 Subject: [PATCH 24/51] Reworked the multiplayer modal a bit. --- app/templates/play/level/modal/multiplayer.jade | 14 ++++---------- 1 file changed, 4 insertions(+), 10 deletions(-) diff --git a/app/templates/play/level/modal/multiplayer.jade b/app/templates/play/level/modal/multiplayer.jade index 37696cb15..32e69b5ca 100644 --- a/app/templates/play/level/modal/multiplayer.jade +++ b/app/templates/play/level/modal/multiplayer.jade @@ -25,17 +25,11 @@ p(data-i18n="play_level.multiplayer_coming_soon") More multiplayer features to come! - if playableTeams.length > 1 - #multiplayer-team-selection - for team in playableTeams - h4 - if team == me.team - em= "Playing as " + team - else - a(href=joinLink + "&skip_protect_api=true&team=" + team)= "Play as " + team - if ladderGame - #submit-session-button.btn.btn-primary Update Ladder Score + if me.get('anonymous') + p Sign in or create an account and get your solution on the leaderboard! + else + #submit-session-button.btn.btn-primary Update Ladder Score .modal-footer a(href='#', data-dismiss="modal", aria-hidden="true", data-i18n="modal.close").btn.btn-primary Close From 185963f9992b1a408a97cfe85c38768e80c1af4d Mon Sep 17 00:00:00 2001 From: Esh2349 Date: Sun, 16 Feb 2014 00:20:59 +0300 Subject: [PATCH 25/51] ru.cofee small changes --- app/locale/ru.coffee | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/app/locale/ru.coffee b/app/locale/ru.coffee index b5ac0ffd5..8afed5cba 100644 --- a/app/locale/ru.coffee +++ b/app/locale/ru.coffee @@ -36,10 +36,10 @@ module.exports = nativeDescription: "русский язык", englishDescriptio # versions: save_version_title: "Сохранить новую версию" # new_major_version: "New Major Version" -# cla_prefix: "To save changes, first you must agree to our" +# cla_prefix: "Чтобы сохранить изменения, первым делом вы должны согласиться с нашим" # cla_url: "CLA" # cla_suffix: "." -# cla_agree: "I AGREE" +# cla_agree: "Я СОГЛАСЕН" login: sign_up: "Создать Профиль" @@ -103,7 +103,7 @@ module.exports = nativeDescription: "русский язык", englishDescriptio wizard_settings: title: "Мастер настройки" -# customize_avatar: "Customize Your Avatar" +# customize_avatar: "Изменить свой аватар" account_settings: title: "Настройки аккаунта" @@ -122,7 +122,7 @@ module.exports = nativeDescription: "русский язык", englishDescriptio new_password_verify: "Подтверждение пароля" email_subscriptions: "Email-подписки" email_announcements: "Оповещения" -# email_notifications_description: "Get periodic notifications for your account." +# email_notifications_description: "Получать периодические уведомления для вашего аккаунта." email_announcements_description: "Получать email-оповещения о последних новостях CodeCombat." contributor_emails: "Рассылки по классам участников" contribute_prefix: "Нам нужны люди, которые присоединятся к нашей команде! Зайдите на " @@ -191,7 +191,7 @@ module.exports = nativeDescription: "русский язык", englishDescriptio tome_select_a_thang: "Выбрать кого-нибудь для " tome_available_spells: "Доступные заклинания" hud_continue: "Продолжить (нажмите Shift+Space)" -# spell_saved: "Spell Saved" +# spell_saved: "Заклинание сохранено" # admin: # av_title: "Admin Views" @@ -244,15 +244,15 @@ module.exports = nativeDescription: "русский язык", englishDescriptio # edit_article_title: "Edit Article" general: -# and: "and" +# and: "и" or: "или" name: "Имя" # body: "Body" -# version: "Version" +# version: "Версия" # commit_msg: "Commit Message" # version_history_for: "Version History for: " -# results: "Results" -# description: "Description" +# results: "Результаты" +# description: "Описание" email: "Email" message: "Сообщение" From 8f938bf6fc0e3e48ef653ff386ccf92038bf63bb Mon Sep 17 00:00:00 2001 From: Scott Erickson Date: Sat, 15 Feb 2014 13:45:16 -0800 Subject: [PATCH 26/51] Scrolling with the mouse now zooms based on mouse position. --- app/lib/surface/Camera.coffee | 16 +++++++++++++++- app/lib/surface/Surface.coffee | 7 ++++++- 2 files changed, 21 insertions(+), 2 deletions(-) diff --git a/app/lib/surface/Camera.coffee b/app/lib/surface/Camera.coffee index 7e311a057..06487571b 100644 --- a/app/lib/surface/Camera.coffee +++ b/app/lib/surface/Camera.coffee @@ -148,7 +148,21 @@ module.exports = class Camera extends CocoClass onMouseScrolled: (e) -> ratio = 1 + 0.05 * Math.sqrt(Math.abs(e.deltaY)) ratio = 1 / ratio if e.deltaY > 0 - @zoomTo @target, @zoom * ratio, 0 + newZoom = @zoom * ratio + if e.surfacePos + # zoom based on mouse position, adjusting the target so the point under the mouse stays the same + mousePoint = @canvasToSurface(e.surfacePos) + ratioPosX = (mousePoint.x - @surfaceViewport.x) / @surfaceViewport.width + ratioPosY = (mousePoint.y - @surfaceViewport.y) / @surfaceViewport.height + newWidth = @canvasWidth / newZoom + newHeight = @canvasHeight / newZoom + newTargetX = mousePoint.x - (newWidth * ratioPosX) + (newWidth / 2) + newTargetY = mousePoint.y - (newHeight * ratioPosY) + (newHeight / 2) + target = {x: newTargetX, y:newTargetY} + else + target = @target + @zoomTo target, newZoom, 0 + onLevelRestarted: -> @setBounds(@firstBounds) diff --git a/app/lib/surface/Surface.coffee b/app/lib/surface/Surface.coffee index 884131f64..e503250d3 100644 --- a/app/lib/surface/Surface.coffee +++ b/app/lib/surface/Surface.coffee @@ -433,6 +433,7 @@ module.exports = Surface = class Surface extends CocoClass # uh onMouseMove: (e) => + @mouseSurfacePos = {x:e.stageX, y:e.stageY} return if @disabled Backbone.Mediator.publish 'surface:mouse-moved', x: e.stageX, y: e.stageY @@ -445,7 +446,11 @@ module.exports = Surface = class Surface extends CocoClass # https://github.com/brandonaaron/jquery-mousewheel e.preventDefault() return if @disabled - Backbone.Mediator.publish 'surface:mouse-scrolled', deltaX: e.deltaX, deltaY: e.deltaY unless @disabled + event = + deltaX: e.deltaX + deltaY: e.deltaY + surfacePos: @mouseSurfacePos + Backbone.Mediator.publish 'surface:mouse-scrolled', event unless @disabled hookUpChooseControls: -> chooserOptions = stage: @stage, surfaceLayer: @surfaceLayer, camera: @camera, restrictRatio: @options.choosing is 'ratio-region' From 0fb2018f2abb618c47d95d5915e29e521ebe33b6 Mon Sep 17 00:00:00 2001 From: Scott Erickson Date: Sat, 15 Feb 2014 14:09:30 -0800 Subject: [PATCH 27/51] Added project query param to getLatestVersion. --- server/commons/Handler.coffee | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/server/commons/Handler.coffee b/server/commons/Handler.coffee index 229b2df18..6d4c3ab23 100644 --- a/server/commons/Handler.coffee +++ b/server/commons/Handler.coffee @@ -2,6 +2,7 @@ async = require 'async' mongoose = require('mongoose') Grid = require 'gridfs-stream' errors = require './errors' +PROJECT = {original:1, name:1, version:1, description: 1, slug:1, kind: 1} module.exports = class Handler # subclasses should override these properties @@ -92,7 +93,6 @@ module.exports = class Handler unless @modelClass.schema.uses_coco_search return @sendNotFoundError(res) - project = {original:1, name:1, version:1, description: 1, slug:1, kind: 1} term = req.query.term matchedObjects = [] filters = [{filter: {index: true}}] @@ -110,11 +110,11 @@ module.exports = class Handler res.send matchedObjects res.end() if term - filter.project = project if req.query.project + filter.project = PROJECT if req.query.project @modelClass.textSearch term, filter, callback else args = [filter.filter] - args.push project if req.query.project + args.push PROJECT if req.query.project @modelClass.find(args...).limit(100).exec callback versions: (req, res, id) -> @@ -148,7 +148,9 @@ module.exports = class Handler query['version.major'] = majorVersion unless _.isNaN(majorVersion) query['version.minor'] = minorVersion unless _.isNaN(minorVersion) sort = { 'version.major': -1, 'version.minor': -1 } - @modelClass.findOne(query).sort(sort).exec (err, doc) => + args = [query] + args.push PROJECT if req.query.project + @modelClass.findOne(args...).sort(sort).exec (err, doc) => return @sendNotFoundError(res) unless doc? return @sendUnauthorizedError(res) unless @hasAccessToDocument(req, doc) res.send(doc) From 3c7cac8ba9384c09baf7a5d298a5241a16527363 Mon Sep 17 00:00:00 2001 From: Nick Winter Date: Sat, 15 Feb 2014 15:44:45 -0800 Subject: [PATCH 28/51] Trying to do some memory cleanup. --- app/lib/God.coffee | 3 +- app/lib/LevelLoader.coffee | 50 +++++++++++++++++------------ app/lib/simulator/Simulator.coffee | 10 ++++-- app/models/SuperModel.coffee | 7 ++-- app/views/play/level_view.coffee | 7 ++-- app/views/play/spectate_view.coffee | 2 +- 6 files changed, 48 insertions(+), 31 deletions(-) diff --git a/app/lib/God.coffee b/app/lib/God.coffee index 2de4d6c96..8fb534b45 100644 --- a/app/lib/God.coffee +++ b/app/lib/God.coffee @@ -110,7 +110,7 @@ module.exports = class God newWorld.findFirstChangedFrame @world @world = newWorld errorCount = (t for t in @world.thangs when t.errorsOut).length - Backbone.Mediator.publish('god:new-world-created', world: @world, firstWorld: @firstWorld, errorCount: errorCount, goalStates: @latestGoalStates) + Backbone.Mediator.publish('god:new-world-created', world: @world, firstWorld: @firstWorld, errorCount: errorCount, goalStates: @latestGoalStates, team: me.team) for scriptNote in @world.scriptNotes Backbone.Mediator.publish scriptNote.channel, scriptNote.event @goalManager?.world = newWorld @@ -130,6 +130,7 @@ module.exports = class God angel.destroy() for angel in @angels @dead = true Backbone.Mediator.unsubscribe('tome:cast-spells', @onTomeCast, @) + @goalManager.destroy() @goalManager = null @fillWorkerPool = null @simulateWorld = null diff --git a/app/lib/LevelLoader.coffee b/app/lib/LevelLoader.coffee index 92dea756a..8e31a358c 100644 --- a/app/lib/LevelLoader.coffee +++ b/app/lib/LevelLoader.coffee @@ -22,8 +22,15 @@ module.exports = class LevelLoader extends CocoClass subscriptions: 'god:new-world-created': 'loadSoundsForWorld' - constructor: (@levelID, @supermodel, @sessionID, @team, @opponentSessionID) -> + constructor: (options) -> super() + @supermodel = options.supermodel + @levelID = options.levelID + @sessionID = options.sessionID + @opponentSessionID = options.opponentSessionID + @team = options.team + @headless = options.headless + @loadSession() @loadLevelModels() @loadAudio() @@ -31,6 +38,7 @@ module.exports = class LevelLoader extends CocoClass _.defer @update # Lets everything else resolve first playJingle: -> + return if @headless jingles = ["ident_1", "ident_2"] AudioPlayer.playInterfaceSound jingles[Math.floor Math.random() * jingles.length] @@ -42,18 +50,18 @@ module.exports = class LevelLoader extends CocoClass else url = "/db/level/#{@levelID}/session" url += "?team=#{@team}" if @team - + @session = new LevelSession() @session.url = -> url @session.fetch() @session.once 'sync', @onSessionLoaded, @ - + if @opponentSessionID @opponentSession = new LevelSession() @opponentSession.url = "/db/level_session/#{@opponentSessionID}" @opponentSession.fetch() @opponentSession.once 'sync', @onSessionLoaded, @ - + sessionsLoaded: -> @session.loaded and ((not @opponentSession) or @opponentSession.loaded) @@ -71,6 +79,7 @@ module.exports = class LevelLoader extends CocoClass @supermodel.once 'error', @onSupermodelError, @ @level = @supermodel.getModel(Level, @levelID) or new Level _id: @levelID levelID = @levelID + headless = @headless @supermodel.shouldPopulate = (model) -> # if left unchecked, the supermodel would load this level @@ -78,6 +87,11 @@ module.exports = class LevelLoader extends CocoClass handles = [model.id, model.get 'slug'] return model.constructor.className isnt "Level" or levelID in handles + @supermodel.shouldLoadReference = (model) -> + #return false if headless and model.constructor.className is 'ThangType' + # would be great if we didn't have to load ThangTypes, but need their names + true + @supermodel.populateModel @level onSupermodelError: -> @@ -87,22 +101,11 @@ module.exports = class LevelLoader extends CocoClass onSupermodelLoadedOne: (e) -> @notifyProgress() -# if e.model.type() is 'ThangType' -# thangType = e.model -# options = {async: true} -# if thangType.get('name') is 'Wizard' -# options.colorConfig = me.get('wizard')?.colorConfig or {} -# building = thangType.buildSpriteSheet options -# if building -# @spriteSheetsToBuild += 1 -# thangType.once 'build-complete', => -# @spriteSheetsBuilt += 1 -# @notifyProgress() onSupermodelLoadedAll: -> @trigger 'loaded-supermodel' @stopListening(@supermodel) - @update() + @update?() # Things to do when either the Session or Supermodel load @@ -140,6 +143,7 @@ module.exports = class LevelLoader extends CocoClass @buildSpriteSheets() buildSpriteSheets: -> + return if @headless thangTypes = {} thangTypes[tt.get('name')] = tt for tt in @supermodel.getModels(ThangType) @@ -175,9 +179,11 @@ module.exports = class LevelLoader extends CocoClass # Initial Sound Loading loadAudio: -> + return if @headless AudioPlayer.preloadInterfaceSounds ["victory"] loadLevelSounds: -> + return if @headless scripts = @level.get 'scripts' return unless scripts @@ -194,6 +200,7 @@ module.exports = class LevelLoader extends CocoClass # Dynamic sound loading loadSoundsForWorld: (e) -> + return if @headless world = e.world thangTypes = @supermodel.getModels(ThangType) for [spriteName, message] in world.thangDialogueSounds() @@ -212,8 +219,11 @@ module.exports = class LevelLoader extends CocoClass supermodelProgress = @supermodel.progress() overallProgress += supermodelProgress * 0.7 overallProgress += 0.1 if @sessionsLoaded() - spriteMapProgress = if supermodelProgress is 1 then 0.2 else 0 - spriteMapProgress *= @spriteSheetsBuilt / @spriteSheetsToBuild if @spriteSheetsToBuild + if @headless + spriteMapProgress = 0.2 + else + spriteMapProgress = if supermodelProgress is 1 then 0.2 else 0 + spriteMapProgress *= @spriteSheetsBuilt / @spriteSheetsToBuild if @spriteSheetsToBuild overallProgress += spriteMapProgress return overallProgress @@ -223,8 +233,8 @@ module.exports = class LevelLoader extends CocoClass @trigger 'loaded-all' if @progress() is 1 destroy: -> - super() @world = null # don't hold onto garbage @supermodel.off 'loaded-one', @onSupermodelLoadedOne @onSupermodelLoadedOne = null - @notifyProgress = null + @update = null + super() diff --git a/app/lib/simulator/Simulator.coffee b/app/lib/simulator/Simulator.coffee index f8effe150..80da51754 100644 --- a/app/lib/simulator/Simulator.coffee +++ b/app/lib/simulator/Simulator.coffee @@ -29,9 +29,8 @@ module.exports = class Simulator setupSimulationAndLoadLevel: (taskData) => @task = new SimulationTask(taskData) @supermodel = new SuperModel() - @god = new God() - @levelLoader = new LevelLoader @task.getLevelName(), @supermodel, @task.getFirstSessionID() + @levelLoader = new LevelLoader supermodel: @supermodel, levelID: @task.getLevelName(), sessionID: @task.getFirstSessionID(), headless: true @levelLoader.once 'loaded-all', @simulateGame simulateGame: => @@ -48,8 +47,10 @@ module.exports = class Simulator @world = @levelLoader.world @level = @levelLoader.level @levelLoader.destroy() + @levelLoader = null setupGod: -> + @god = new God() @god.level = @level.serialize @supermodel @god.worldClassMap = @world.classMap @setupGoalManager() @@ -88,6 +89,10 @@ module.exports = class Simulator @fetchAndSimulateTask() cleanupSimulation: -> + @god.destroy() + @god = null + @world = null + @level = null formTaskResultsObject: (simulationResults) -> taskResults = @@ -234,4 +239,3 @@ class SimulationTask _.merge spellKeyToSourceMap, _.pick(session.code, commonSpells) if commonSpells? spellKeyToSourceMap - diff --git a/app/models/SuperModel.coffee b/app/models/SuperModel.coffee index c9ceebf03..c4e1c142c 100644 --- a/app/models/SuperModel.coffee +++ b/app/models/SuperModel.coffee @@ -15,8 +15,9 @@ class SuperModel @modelLoaded(model) if model.loaded # replace or overwrite - shouldPopulate: (url) -> return true - shouldSaveBackups: (model) -> return false + shouldLoadReference: (model) -> true + shouldPopulate: (url) -> true + shouldSaveBackups: (model) -> false modelErrored: (model) -> @trigger 'error' @@ -28,7 +29,7 @@ class SuperModel refs = model.getReferencedModels(model.attributes, schema.attributes) refs = [] unless @mustPopulate is model or @shouldPopulate(model) # console.log 'Loaded', model.get('name') - for ref, i in refs + for ref, i in refs when @shouldLoadReference ref ref.saveBackups = @shouldSaveBackups(ref) refURL = ref.url() continue if @models[refURL] diff --git a/app/views/play/level_view.coffee b/app/views/play/level_view.coffee index 66465c97d..55ef6dc8b 100644 --- a/app/views/play/level_view.coffee +++ b/app/views/play/level_view.coffee @@ -104,7 +104,7 @@ module.exports = class PlayLevelView extends View @load() load: -> - @levelLoader = new LevelLoader(@levelID, @supermodel, @sessionID, @getQueryVariable("team"), @getQueryVariable('opponent')) + @levelLoader = new LevelLoader supermodel: @supermodel, levelID: @levelID, sessionID: @sessionID, opponentSessionID: @getQueryVariable('opponent'), team: @getQueryVariable("team") @levelLoader.once 'loaded-all', @onLevelLoaderLoaded @god = new God() @@ -124,7 +124,7 @@ module.exports = class PlayLevelView extends View @session = @levelLoader.session @world = @levelLoader.world @level = @levelLoader.level - + if s = @levelLoader.opponentSession spells = s.get('teamSpells')?[s.get('team')] opponentCode = s.get('code') @@ -133,7 +133,7 @@ module.exports = class PlayLevelView extends View continue unless c = opponentCode[spell] myCode[spell] = c @session.set('code', myCode) - + @levelLoader.destroy() @levelLoader = null @loadingScreen.destroy() @@ -387,6 +387,7 @@ module.exports = class PlayLevelView extends View team = team?.team unless _.isString team team ?= 'humans' me.team = team + console.log "level:team-set to", team Backbone.Mediator.publish 'level:team-set', team: team destroy: -> diff --git a/app/views/play/spectate_view.coffee b/app/views/play/spectate_view.coffee index 8cc361a43..a38947913 100644 --- a/app/views/play/spectate_view.coffee +++ b/app/views/play/spectate_view.coffee @@ -90,7 +90,7 @@ module.exports = class SpectateLevelView extends View @load() load: -> - @levelLoader = new LevelLoader(@levelID, @supermodel, @sessionID) + @levelLoader = new LevelLoader supermodel: @supermodel, levelID: @levelID, sessionID: @sessionID, opponentSessionID: @getQueryVariable('opponent'), team: @getQueryVariable("team") @levelLoader.once 'loaded-all', @onLevelLoaderLoaded @god = new God() From addf4ca245d8e33cf06b9ece0c7288d574c6433d Mon Sep 17 00:00:00 2001 From: Nick Winter Date: Sat, 15 Feb 2014 17:29:54 -0800 Subject: [PATCH 29/51] Improved Simulator memory and performance. --- app/lib/CocoClass.coffee | 10 +++++----- app/lib/God.coffee | 8 ++++---- app/lib/LevelLoader.coffee | 16 ++++------------ app/lib/simulator/Simulator.coffee | 2 +- app/models/CocoModel.coffee | 17 ++++++++++------- app/models/Level.coffee | 8 ++++---- app/models/SuperModel.coffee | 3 ++- 7 files changed, 30 insertions(+), 34 deletions(-) diff --git a/app/lib/CocoClass.coffee b/app/lib/CocoClass.coffee index 3e6bb6e53..22dc25f64 100644 --- a/app/lib/CocoClass.coffee +++ b/app/lib/CocoClass.coffee @@ -6,7 +6,7 @@ makeScopeName = -> "class-scope-#{classCount++}" module.exports = class CocoClass subscriptions: {} shortcuts: {} - + # setup/teardown constructor: -> @@ -27,7 +27,7 @@ module.exports = class CocoClass @destroy = -> # subscriptions - + listenToSubscriptions: -> # for initting subscriptions return unless Backbone?.Mediator? @@ -48,7 +48,7 @@ module.exports = class CocoClass for channel, func of @subscriptions func = utils.normalizeFunc(func, @) Backbone.Mediator.unsubscribe(channel, func, @) - + # keymaster shortcuts listenToShortcuts: -> @@ -56,7 +56,7 @@ module.exports = class CocoClass for shortcut, func of @shortcuts func = utils.normalizeFunc(func, @) key(shortcut, @scope, _.bind(func, @)) - + stopListeningToShortcuts: -> return unless key? - key.deleteScope(@scope) \ No newline at end of file + key.deleteScope(@scope) diff --git a/app/lib/God.coffee b/app/lib/God.coffee index d6307a6b5..d2b1ce238 100644 --- a/app/lib/God.coffee +++ b/app/lib/God.coffee @@ -12,11 +12,11 @@ module.exports = class God @lastID = (if @lastID? then @lastID + 1 else Math.floor(@ids.length * Math.random())) % @ids.length @ids[@lastID] - maxAngels: 2 # how many concurrent web workers to use; if set past 8, make up more names - maxWorkerPoolSize: 2 # ~20MB per idle worker worldWaiting: false # whether we're waiting for a worker to free up and run the world - constructor: -> + constructor: (options) -> @id = God.nextID() + @maxAngels = options.maxAngels ? 2 # How many concurrent web workers to use; if set past 8, make up more names + @maxWorkerPoolSize = options.maxWorkerPoolSize ? 2 # ~20MB per idle worker @angels = [] @firstWorld = true Backbone.Mediator.subscribe 'tome:cast-spells', @onTomeCast, @ @@ -38,7 +38,7 @@ module.exports = class God getWorker: -> @fillWorkerPool() - worker = @workerPool.shift() + worker = @workerPool?.shift() return worker if worker @createWorker() diff --git a/app/lib/LevelLoader.coffee b/app/lib/LevelLoader.coffee index 4c46bdc67..e9a604e12 100644 --- a/app/lib/LevelLoader.coffee +++ b/app/lib/LevelLoader.coffee @@ -77,7 +77,6 @@ module.exports = class LevelLoader extends CocoClass # Supermodel (Level) Loading loadLevelModels: -> - @supermodel.once 'loaded-all', @onSupermodelLoadedAll, @ @supermodel.on 'loaded-one', @onSupermodelLoadedOne, @ @supermodel.once 'error', @onSupermodelError, @ @level = @supermodel.getModel(Level, @levelID) or new Level _id: @levelID @@ -90,10 +89,9 @@ module.exports = class LevelLoader extends CocoClass handles = [model.id, model.get 'slug'] return model.constructor.className isnt "Level" or levelID in handles - @supermodel.shouldLoadReference = (model) -> - #return false if headless and model.constructor.className is 'ThangType' - # would be great if we didn't have to load ThangTypes, but need their names - true + @supermodel.shouldLoadProjection = (model) -> + return true if headless and model.constructor.className is 'ThangType' + false @supermodel.populateModel @level @@ -105,11 +103,6 @@ module.exports = class LevelLoader extends CocoClass onSupermodelLoadedOne: (e) -> @notifyProgress() - onSupermodelLoadedAll: -> - @trigger 'loaded-supermodel' - @stopListening(@supermodel) - @update?() - # Things to do when either the Session or Supermodel load update: => @@ -236,8 +229,7 @@ module.exports = class LevelLoader extends CocoClass @trigger 'loaded-all' if @progress() is 1 destroy: -> - @world = null # don't hold onto garbage @supermodel.off 'loaded-one', @onSupermodelLoadedOne - @onSupermodelLoadedOne = null + @world = null # don't hold onto garbage @update = null super() diff --git a/app/lib/simulator/Simulator.coffee b/app/lib/simulator/Simulator.coffee index 64c415015..dcd9f55c4 100644 --- a/app/lib/simulator/Simulator.coffee +++ b/app/lib/simulator/Simulator.coffee @@ -29,6 +29,7 @@ module.exports = class Simulator setupSimulationAndLoadLevel: (taskData) => @task = new SimulationTask(taskData) @supermodel = new SuperModel() + @god = new God maxWorkerPoolSize: 1, maxAngels: 1 # Start loading worker. @levelLoader = new LevelLoader supermodel: @supermodel, levelID: @task.getLevelName(), sessionID: @task.getFirstSessionID(), headless: true @levelLoader.once 'loaded-all', @simulateGame @@ -50,7 +51,6 @@ module.exports = class Simulator @levelLoader = null setupGod: -> - @god = new God() @god.level = @level.serialize @supermodel @god.worldClassMap = @world.classMap @setupGoalManager() diff --git a/app/models/CocoModel.coffee b/app/models/CocoModel.coffee index be012899d..f4551b904 100644 --- a/app/models/CocoModel.coffee +++ b/app/models/CocoModel.coffee @@ -127,7 +127,7 @@ class CocoModel extends Backbone.Model #console.log "setting", prop, "to", sch.default, "from sch.default" if sch.default? @set prop, sch.default if sch.default? - getReferencedModels: (data, schema, path='/') -> + getReferencedModels: (data, schema, path='/', shouldLoadProjection=null) -> # returns unfetched model shells for every referenced doc in this model # OPTIMIZE so that when loading models, it doesn't cause the site to stutter data ?= @attributes @@ -136,18 +136,18 @@ class CocoModel extends Backbone.Model if $.isArray(data) and schema.items? for subData, i in data - models = models.concat(@getReferencedModels(subData, schema.items, path+i+'/')) + models = models.concat(@getReferencedModels(subData, schema.items, path+i+'/', shouldLoadProjection)) if $.isPlainObject(data) and schema.properties? for key, subData of data continue unless schema.properties[key] - models = models.concat(@getReferencedModels(subData, schema.properties[key], path+key+'/')) + models = models.concat(@getReferencedModels(subData, schema.properties[key], path+key+'/', shouldLoadProjection)) - model = CocoModel.getReferencedModel data, schema + model = CocoModel.getReferencedModel data, schema, shouldLoadProjection models.push model if model return models - @getReferencedModel: (data, schema) -> + @getReferencedModel: (data, schema, shouldLoadProjection=null) -> return null unless schema.links? linkObject = _.find schema.links, rel: "db" return null unless linkObject @@ -158,9 +158,9 @@ class CocoModel extends Backbone.Model link = link.replace('{(original)}', data.original) link = link.replace('{(majorVersion)}', '' + (data.majorVersion ? 0)) link = link.replace('{($)}', data) - @getOrMakeModelFromLink(link) + @getOrMakeModelFromLink(link, shouldLoadProjection) - @getOrMakeModelFromLink: (link) -> + @getOrMakeModelFromLink: (link, shouldLoadProjection=null) -> makeUrlFunc = (url) -> -> url modelUrl = link.split('/')[2] modelModule = _.string.classify(modelUrl) @@ -175,6 +175,9 @@ class CocoModel extends Backbone.Model return model = new Model() + if shouldLoadProjection? model + sep = if link.search(/\?/) is -1 then "?" else "&" + link += sep + "project=true" model.url = makeUrlFunc(link) return model diff --git a/app/models/Level.coffee b/app/models/Level.coffee index 654b16fe0..cb82d325a 100644 --- a/app/models/Level.coffee +++ b/app/models/Level.coffee @@ -106,13 +106,13 @@ module.exports = class Level extends CocoModel height = c.height if c.height? and c.height > height return {width:width, height:height} - getReferencedModels: (data, schema, path='/') -> - models = super data, schema, path + getReferencedModels: (data, schema, path='/', shouldLoadProjection=null) -> + models = super data, schema, path, shouldLoadProjection if path.match(/\/systems\/\d+\/config\//) and data?.indieSprites?.length # Ugh, we need to make sure we grab the IndieSprite ThangTypes for indieSprite in data.indieSprites link = "/db/thang_type/#{indieSprite.thangType}/version" - model = CocoModel.getOrMakeModelFromLink link + model = CocoModel.getOrMakeModelFromLink link, shouldLoadProjection models.push model if model else if path is '/' # We also we need to make sure we grab the Wizard ThangType and the Marks. Hackitrooooid! @@ -124,6 +124,6 @@ module.exports = class Level extends CocoModel ["Repair", "52bcc4591f766a891c000003"] ] link = "/db/thang_type/#{original}/version" - model = CocoModel.getOrMakeModelFromLink link + model = CocoModel.getOrMakeModelFromLink link, shouldLoadProjection models.push model if model models diff --git a/app/models/SuperModel.coffee b/app/models/SuperModel.coffee index c4e1c142c..36a7fab72 100644 --- a/app/models/SuperModel.coffee +++ b/app/models/SuperModel.coffee @@ -16,6 +16,7 @@ class SuperModel # replace or overwrite shouldLoadReference: (model) -> true + shouldLoadProjection: (model) -> false shouldPopulate: (url) -> true shouldSaveBackups: (model) -> false @@ -26,7 +27,7 @@ class SuperModel modelLoaded: (model) -> schema = model.schema() return schema.once('sync', => @modelLoaded(model)) unless schema.loaded - refs = model.getReferencedModels(model.attributes, schema.attributes) + refs = model.getReferencedModels(model.attributes, schema.attributes, '/', @shouldLoadProjection) refs = [] unless @mustPopulate is model or @shouldPopulate(model) # console.log 'Loaded', model.get('name') for ref, i in refs when @shouldLoadReference ref From be83b5420f1d32f384f85545b9a0728c965eddd0 Mon Sep 17 00:00:00 2001 From: Scott Erickson Date: Sat, 15 Feb 2014 17:36:27 -0800 Subject: [PATCH 30/51] Fixed the goals view, which wasn't being properly shown. --- app/views/play/level/goals_view.coffee | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/views/play/level/goals_view.coffee b/app/views/play/level/goals_view.coffee index 44e82d655..e314bee5e 100644 --- a/app/views/play/level/goals_view.coffee +++ b/app/views/play/level/goals_view.coffee @@ -46,11 +46,11 @@ module.exports = class GoalsView extends View li.prepend($('').addClass(stateIconMap[state.status])) list.append(li) goals.push goal - @$el.toggle goals.length > 0 + @$el.removeClass('secret') if goals.length > 0 render: -> super() - @$el.addClass('hide').addClass('expanded') + @$el.addClass('secret').addClass('expanded') onSetLetterbox: (e) -> @$el.toggle not e.on From f94456295efa98e218886cd57ee4ed2a0d978996 Mon Sep 17 00:00:00 2001 From: Nick Winter Date: Sat, 15 Feb 2014 17:38:45 -0800 Subject: [PATCH 31/51] God needs no options. --- app/lib/God.coffee | 1 + 1 file changed, 1 insertion(+) diff --git a/app/lib/God.coffee b/app/lib/God.coffee index d2b1ce238..4d3a195d8 100644 --- a/app/lib/God.coffee +++ b/app/lib/God.coffee @@ -15,6 +15,7 @@ module.exports = class God worldWaiting: false # whether we're waiting for a worker to free up and run the world constructor: (options) -> @id = God.nextID() + options ?= {} @maxAngels = options.maxAngels ? 2 # How many concurrent web workers to use; if set past 8, make up more names @maxWorkerPoolSize = options.maxWorkerPoolSize ? 2 # ~20MB per idle worker @angels = [] From bbe5399a971e04df7bc846f4f452e5c3f5af4b4d Mon Sep 17 00:00:00 2001 From: Scott Erickson Date: Sun, 16 Feb 2014 12:51:20 -0800 Subject: [PATCH 32/51] Fixed #370 --- app/lib/errors.coffee | 12 ++++++------ app/views/kinds/CocoView.coffee | 10 ++++++---- app/views/modal/login_modal.coffee | 1 - 3 files changed, 12 insertions(+), 11 deletions(-) diff --git a/app/lib/errors.coffee b/app/lib/errors.coffee index f979d1e35..372507d0c 100644 --- a/app/lib/errors.coffee +++ b/app/lib/errors.coffee @@ -16,18 +16,18 @@ module.exports.genericFailure = (jqxhr) -> error = module.exports.parseServerError(jqxhr.responseText) message = error.message message = error.property + ' ' + message if error.property - res = errorModalTemplate( - status:jqxhr.status - statusText:jqxhr.statusText - message: message - ) console.warn(jqxhr.status, jqxhr.statusText, error) - existingForm = $('.form-inline:visible:first') + existingForm = $('.form:visible:first') if existingForm[0] missingErrors = applyErrorsToForm(existingForm, [error]) for error in missingErrors existingForm.append($('
').text(error.message)) else + res = errorModalTemplate( + status:jqxhr.status + statusText:jqxhr.statusText + message: message + ) showErrorModal(res) module.exports.backboneFailure = (model, jqxhr, options) -> diff --git a/app/views/kinds/CocoView.coffee b/app/views/kinds/CocoView.coffee index 56c759a5b..117b8bc8f 100644 --- a/app/views/kinds/CocoView.coffee +++ b/app/views/kinds/CocoView.coffee @@ -144,12 +144,14 @@ module.exports = class CocoView extends Backbone.View # Loading ModalViews enableModalInProgress: (modal) -> - $('> div', modal).hide() - $('.wait', modal).show() + el = modal.find('.modal-content') + el.find('> div', modal).hide() + el.find('.wait', modal).show() disableModalInProgress: (modal) -> - $('> div', modal).show() - $('.wait', modal).hide() + el = modal.find('.modal-content') + el.find('> div', modal).show() + el.find('.wait', modal).hide() # Subscriptions diff --git a/app/views/modal/login_modal.coffee b/app/views/modal/login_modal.coffee index e53d1c3b9..26499bd62 100644 --- a/app/views/modal/login_modal.coffee +++ b/app/views/modal/login_modal.coffee @@ -36,7 +36,6 @@ module.exports = class LoginModalView extends View loginAccount: (e) => forms.clearFormAlerts(@$el) userObject = forms.formToObject @$el -# res = validateUser(userObject) res = tv4.validateMultiple userObject, User.schema.attributes return forms.applyErrorsToForm(@$el, res.errors) unless res.valid @enableModalInProgress(@$el) # TODO: part of forms From e3824d76989f971f1888e8685309665f7ef627e5 Mon Sep 17 00:00:00 2001 From: Nick Winter Date: Sun, 16 Feb 2014 15:30:00 -0800 Subject: [PATCH 33/51] Many improvements to the spell palette. --- app/lib/world/vector.coffee | 2 +- app/styles/play/level/hud.sass | 1 + app/styles/play/level/tome/spell_palette.sass | 30 ++++++++-- .../play/level/tome/spell_palette_entry.sass | 22 ++++--- app/styles/play/level/tome/tome.sass | 13 ++++- .../play/level/tome/spell_palette.jade | 11 +++- app/views/editor/level/save_view.coffee | 4 +- app/views/play/level/hud_view.coffee | 5 +- .../tome/spell_list_tab_entry_view.coffee | 3 +- .../tome/spell_palette_entry_view.coffee | 58 +++++++++++++++---- .../play/level/tome/spell_palette_view.coffee | 50 ++++++++++++---- app/views/play/level/tome/tome_view.coffee | 5 +- app/views/play/level_view.coffee | 1 - 13 files changed, 159 insertions(+), 46 deletions(-) diff --git a/app/lib/world/vector.coffee b/app/lib/world/vector.coffee index dd9efe891..72f761775 100644 --- a/app/lib/world/vector.coffee +++ b/app/lib/world/vector.coffee @@ -2,7 +2,7 @@ class Vector @className: "Vector" # Class methods for nondestructively operating - for name in ['add', 'subtract', 'multiply', 'divide'] + for name in ['add', 'subtract', 'multiply', 'divide', 'limit', 'normalize'] do (name) -> Vector[name] = (a, b, useZ) -> a.copy()[name](b, useZ) diff --git a/app/styles/play/level/hud.sass b/app/styles/play/level/hud.sass index 47d5376ae..a087f013c 100644 --- a/app/styles/play/level/hud.sass +++ b/app/styles/play/level/hud.sass @@ -89,6 +89,7 @@ margin: 8px 8px 0 0 overflow-y: scroll float: left + @include user-select(text) .prop img diff --git a/app/styles/play/level/tome/spell_palette.sass b/app/styles/play/level/tome/spell_palette.sass index ff697326d..e941f8def 100644 --- a/app/styles/play/level/tome/spell_palette.sass +++ b/app/styles/play/level/tome/spell_palette.sass @@ -6,12 +6,10 @@ left: 10px right: 10px height: 140px - padding-top: 50px - // Height and padding-top relate to .tab-content height - padding-left: 35px - padding-right: 60px - // Docs' popovers flicker when too far right, so we have big padding-right - // twilight: color: #E2E2E2 + // Height relates to .tab-content height + padding-top: 35px + padding-left: 12px + padding-right: 4px color: #333 // Get crazy with the backgrounds so that we can lower the opacity on the editor background above it, making a gradient of the disabled background color on the top around where it's usually covered background-color: transparent @@ -36,3 +34,23 @@ line-height: 16px margin: 0 4px font-weight: normal + + .nav > li > a + padding: 2px 20px 0px 20px + margin-bottom: 3px + + ul.nav.nav-pills + li.active a + background-color: transparent + &.multiple-tabs li.active a + background-color: lighten(rgb(230, 212, 146), 10%) + &.multiple-tabs li:not(.active) a + cursor: pointer + + //.nav-pills > li.active > a, .nav-pills > li.active > a:hover, .nav-pills > li.active > a:focus + // background-color: lighten(rgb(230, 212, 146), 10%) + + .property-entry-column + display: inline-block + margin-right: 3px + vertical-align: top diff --git a/app/styles/play/level/tome/spell_palette_entry.sass b/app/styles/play/level/tome/spell_palette_entry.sass index 9192ebcb0..f2ec74182 100644 --- a/app/styles/play/level/tome/spell_palette_entry.sass +++ b/app/styles/play/level/tome/spell_palette_entry.sass @@ -1,28 +1,32 @@ -@import "../../../bootstrap/mixins" +@import "app/styles/bootstrap/mixins" +@import "app/styles/mixins" .spell-palette-entry-view - display: inline-block - margin: 0px 4px + display: block + padding: 0px 4px font-family: Menlo, Monaco, Consolas, "Courier New", monospace font-size: 12px + border: 1px solid transparent + cursor: pointer + @include user-select(all) + + &:hover + border: 1px solid #BFF + + &.pinned + background-color: darken(#BFF, 20%) // Pulling these colors from the most relevant textmate-theme classes &.function - // twilight: color: #7587A6 color: #0000A2 &.object - // twilight: color: #AC885B color: rgb(6, 150, 14) &.string - // twilight: color: #CDA869 color: rgb(3, 106, 7) &.number - // twilight: color: #F9EE98 color: rgb(0, 0, 205) &.boolean - // twilight: color: #C9CEA8 color: rgb(88, 92, 246) &.undefined - // twilight: color: #CF6A4C color: rgb(197, 6, 11) diff --git a/app/styles/play/level/tome/tome.sass b/app/styles/play/level/tome/tome.sass index c8eaee5f3..1626dd134 100644 --- a/app/styles/play/level/tome/tome.sass +++ b/app/styles/play/level/tome/tome.sass @@ -1,15 +1,24 @@ -@import "../../../bootstrap/mixins" +@import "app/styles/bootstrap/mixins" +@import "app/styles/mixins" #tome-view height: 100% .popover padding: 10px - max-width: 400px + min-width: 400px background: transparent url(/images/level/popover_background.png) background-size: 100% 100% border: 0 + left: auto !important + top: auto !important + right: 100% + bottom: 151px @include box-shadow(0 0 0 #000) + @include user-select(text) + + &.pinned + @include box-shadow(0 0 500px white) h1:not(.not-code), h2:not(.not-code), h3:not(.not-code), h4:not(.not-code), h5:not(.not-code), h6:not(.not-code) font-family: Menlo, Monaco, Consolas, "Courier New", monospace diff --git a/app/templates/play/level/tome/spell_palette.jade b/app/templates/play/level/tome/spell_palette.jade index bf5c16aa3..19489b42c 100644 --- a/app/templates/play/level/tome/spell_palette.jade +++ b/app/templates/play/level/tome/spell_palette.jade @@ -1,3 +1,10 @@ img(src="/images/level/code_palette_background.png").code-palette-background -h4(data-i18n="play_level.tome_available_spells") Available Spells -.properties +ul(class="nav nav-pills" + (tabbed ? ' multiple-tabs' : '')) + each slug, group in entryGroupSlugs + li(class=group == "this" || slug == "available-spells" ? "active" : "") + a(data-toggle="pill", data-target='#palette-tab-' + slug) + h4= group +.tab-content + each slug, group in entryGroupSlugs + div(id="palette-tab-" + slug, class="tab-pane" + (group == "this" || slug == "available-spells" ? " active" : "")) + div(class="properties properties-" + slug) diff --git a/app/views/editor/level/save_view.coffee b/app/views/editor/level/save_view.coffee index 72c5306de..a1f0ee01b 100644 --- a/app/views/editor/level/save_view.coffee +++ b/app/views/editor/level/save_view.coffee @@ -16,7 +16,7 @@ module.exports = class LevelSaveView extends SaveVersionModal constructor: (options) -> super options @level = options.level - + getRenderData: (context={}) -> context = super(context) context.level = @level @@ -63,8 +63,8 @@ module.exports = class LevelSaveView extends SaveVersionModal console.log "Got errors:", JSON.parse(res.responseText) forms.applyErrorsToForm($(form), JSON.parse(res.responseText)) res.success => - @hide() modelsToSave = _.without modelsToSave, newModel unless modelsToSave.length url = "/editor/level/#{@level.get('slug') or @level.id}" document.location.href = url + @hide() # This will destroy everything, so do it last diff --git a/app/views/play/level/hud_view.coffee b/app/views/play/level/hud_view.coffee index baf141a25..a96f43acf 100644 --- a/app/views/play/level/hud_view.coffee +++ b/app/views/play/level/hud_view.coffee @@ -24,12 +24,15 @@ module.exports = class HUDView extends View 'god:new-world-created': 'onNewWorld' events: - 'click': -> Backbone.Mediator.publish 'focus-editor' + 'click': 'onClick' afterRender: -> super() @$el.addClass 'no-selection' + onClick: (e) -> + Backbone.Mediator.publish 'focus-editor' unless $(e.target).parents('.thang-props').length + onFrameChanged: (e) -> @timeProgress = e.progress @update() 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 9c989b7aa..9c5110d9b 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 @@ -64,7 +64,7 @@ module.exports = class SpellListTabEntryView extends SpellListEntryView @$el.find('code').popover( animation: true html: true - placement: 'bottom' + placement: 'left' trigger: 'hover' content: @formatPopover doc container: @$el.parent() @@ -126,4 +126,5 @@ module.exports = class SpellListTabEntryView extends SpellListEntryView destroy: -> @avatar?.destroy() + @$el.find('code').popover 'destroy' super() diff --git a/app/views/play/level/tome/spell_palette_entry_view.coffee b/app/views/play/level/tome/spell_palette_entry_view.coffee index 7e435108c..310e7c5d4 100644 --- a/app/views/play/level/tome/spell_palette_entry_view.coffee +++ b/app/views/play/level/tome/spell_palette_entry_view.coffee @@ -4,6 +4,7 @@ popoverTemplate = require 'templates/play/level/tome/spell_palette_entry_popover {me} = require 'lib/auth' filters = require 'lib/image_filter' {downTheChain} = require 'lib/world/world_utils' +window.Vector = require 'lib/world/vector' # So we can document it # If we use marked somewhere else, we'll have to make sure to preserve options marked.setOptions {gfm: true, sanitize: false, smartLists: true, breaks: true} @@ -41,16 +42,32 @@ safeJSONStringify = (input, maxDepth) -> output = input JSON.stringify output, null, 1 +# http://stackoverflow.com/a/987376/540620 +$.fn.selectText = -> + el = @[0] + if document.body.createTextRange + range = document.body.createTextRange() + range.moveToElementText(el) + range.select() + else if window.getSelection + selection = window.getSelection() + range = document.createRange() + range.selectNodeContents(el) + selection.removeAllRanges() + selection.addRange(range) + module.exports = class SpellPaletteEntryView extends View tagName: 'div' # Could also try instead of
, but would need to adjust colors className: 'spell-palette-entry-view' template: template + popoverPinned: false subscriptions: 'surface:frame-changed': "onFrameChanged" events: - 'mouseover': 'onMouseOver' + 'mouseenter': 'onMouseEnter' + 'mouseleave': 'onMouseLeave' 'click': 'onClick' constructor: (options) -> @@ -59,14 +76,14 @@ module.exports = class SpellPaletteEntryView extends View @doc = options.doc if _.isString @doc @doc = name: @doc, type: typeof @thang[@doc] - @doc.owner ?= 'this' if options.isSnippet - @doc.type = 'snippet' + @doc.type = @doc.owner = 'snippet' @doc.shortName = @doc.shorterName = @doc.title = @doc.name else + @doc.owner ?= 'this' suffix = if @doc.type is 'function' then '()' else '' @doc.shortName = "#{@doc.owner}.#{@doc.name}#{suffix};" - if @doc.owner is 'this' + if @doc.owner is 'this' or options.tabbify @doc.shorterName = "#{@doc.name}#{suffix}" else @doc.shorterName = @doc.shortName.replace ';', '' @@ -81,12 +98,12 @@ module.exports = class SpellPaletteEntryView extends View super() @$el.addClass(@doc.type) @$el.popover( - animation: true + animation: false html: true - placement: 'top' - trigger: 'hover' + placement: 'left' + trigger: 'manual' # Hover, until they click, which will then pin it until unclick. content: @formatPopover() - container: @$el.parent().parent().parent() + container: '#tome-view' ) @$el.on 'show.bs.popover', => Backbone.Mediator.publish 'tome:palette-hovered', thang: @thang, prop: @doc.name @@ -98,13 +115,14 @@ module.exports = class SpellPaletteEntryView extends View content.replace /\#\{(.*?)\}/g, (s, properties) => @formatValue downTheChain(owner, properties.split('.')) formatValue: (v) -> + return null if @doc.type is 'snippet' return @thang.now() if @doc.name is 'now' return '[Function]' if not v and @doc.type is 'function' unless v? if @doc.owner is 'this' v = @thang[@doc.name] else - v = window[@doc.owner][@doc.name] + v = window[@doc.owner][@doc.name] # grab Math or Vector if @doc.type is 'number' and not isNaN v if v == Math.round v return v @@ -121,12 +139,29 @@ module.exports = class SpellPaletteEntryView extends View return safeJSONStringify v, 2 v - onMouseOver: (e) -> + onMouseEnter: (e) -> # Make sure the doc has the updated Thang so it can regenerate its prop value @$el.data('bs.popover').options.content = @formatPopover() @$el.popover('setContent') + @$el.popover 'show' unless @popoverPinned + + onMouseLeave: (e) -> + @$el.popover 'hide' unless @popoverPinned + + togglePinned: -> + if @popoverPinned + @popoverPinned = false + @$el.add('#tome-view .popover').removeClass 'pinned' + @$el.popover 'hide' + else + @popoverPinned = true + @$el.add('#tome-view .popover').addClass 'pinned' onClick: (e) -> + unless @popoverPinned + $(e.target).selectText() + e.stopPropagation() # don't re-focus editor since we might want to select text + @togglePinned() Backbone.Mediator.publish 'tome:palette-clicked', thang: @thang, prop: @doc.name onFrameChanged: (e) -> @@ -134,5 +169,8 @@ module.exports = class SpellPaletteEntryView extends View @options.thang = @thang = e.selectedThang # Update our thang to the current version destroy: -> + $('.popover.pinned').remove() if @popoverPinned # @$el.popover('destroy') doesn't work + @togglePinned() if @popoverPinned + @$el.popover 'destroy' @$el.off() super() diff --git a/app/views/play/level/tome/spell_palette_view.coffee b/app/views/play/level/tome/spell_palette_view.coffee index 8d4a336a4..d5c83fe71 100644 --- a/app/views/play/level/tome/spell_palette_view.coffee +++ b/app/views/play/level/tome/spell_palette_view.coffee @@ -5,6 +5,8 @@ filters = require 'lib/image_filter' SpellPaletteEntryView = require './spell_palette_entry_view' LevelComponent = require 'models/LevelComponent' +N_ROWS = 4 + module.exports = class SpellPaletteView extends View id: 'spell-palette-view' template: template @@ -18,28 +20,56 @@ module.exports = class SpellPaletteView extends View constructor: (options) -> super options @thang = options.thang + @createPalette() + + getRenderData: -> + c = super() + c.entryGroups = @entryGroups + c.entryGroupSlugs = @entryGroupSlugs + c.tabbed = _.size(@entryGroups) > 1 + c afterRender: -> super() - @createPalette() + for group, entries of @entryGroups + groupSlug = @entryGroupSlugs[group] + for columnNumber, entryColumn of entries + col = $('
').appendTo @$el.find(".properties-#{groupSlug}") + for entry in entryColumn + col.append entry.el + entry.render() # Render after appending so that we can access parent container for popover createPalette: -> lcs = @supermodel.getModels LevelComponent allDocs = {} allDocs[doc.name] = doc for doc in (lc.get('propertyDocumentation') ? []) for lc in lcs - props = @thang.programmableProperties ? [] - snippets = @thang.programmableSnippets ? [] + props = _.sortBy @thang.programmableProperties ? [] + snippets = _.sortBy @thang.programmableSnippets ? [] shortenize = props.length + snippets.length > 6 + tabbify = props.length + snippets.length >= 10 @entries = [] - @entries.push @addEntry(allDocs[prop] ? prop, shortenize) for prop in props - @entries.push @addEntry(allDocs[prop] ? prop, shortenize, true) for prop in snippets + @entries.push @addEntry(allDocs[prop] ? prop, shortenize, tabbify) for prop in props + @entries.push @addEntry(allDocs[prop] ? prop, shortenize, tabbify, true) for prop in snippets + @entries = _.sortBy @entries, (entry) -> + order = ['this', 'Math', 'Vector', 'snippets'] + index = order.indexOf entry.doc.owner + index = String.fromCharCode if index is -1 then order.length else index + index += entry.doc.name + if tabbify and _.find @entries, ((entry) -> entry.doc.owner isnt 'this') + @entryGroups = _.groupBy @entries, (entry) -> entry.doc.owner + else + defaultGroup = $.i18n.t("play_level.tome_available_spells", defaultValue: "Available Spells") + @entryGroups = {} + @entryGroups[defaultGroup] = @entries + @entryGroupSlugs = {} + for group, entries of @entryGroups + @entryGroupSlugs[group] = _.string.slugify group + @entryGroups[group] = _.groupBy entries, (entry, i) -> Math.floor i / N_ROWS + null - addEntry: (doc, shortenize, isSnippet=false) -> - entry = new SpellPaletteEntryView doc: doc, thang: @thang, shortenize: shortenize, isSnippet: isSnippet - @$el.find('.properties').append entry.el - entry.render() # Render after appending so that we can access parent container for popover - entry + addEntry: (doc, shortenize, tabbify, isSnippet=false) -> + new SpellPaletteEntryView doc: doc, thang: @thang, shortenize: shortenize, tabbify: tabbify, isSnippet: isSnippet onDisableControls: (e) -> @toggleControls e, false onEnableControls: (e) -> @toggleControls e, true diff --git a/app/views/play/level/tome/tome_view.coffee b/app/views/play/level/tome/tome_view.coffee index 05cd4d113..621481d31 100644 --- a/app/views/play/level/tome/tome_view.coffee +++ b/app/views/play/level/tome/tome_view.coffee @@ -51,7 +51,7 @@ module.exports = class TomeView extends View events: 'click #spell-view': 'onSpellViewClick' - 'click': -> Backbone.Mediator.publish 'focus-editor' + 'click': 'onClick' afterRender: -> super() @@ -140,6 +140,9 @@ module.exports = class TomeView extends View onSpellViewClick: (e) -> @spellList.$el.hide() + onClick: (e) -> + Backbone.Mediator.publish 'focus-editor' unless $(e.target).parents('.popover').length + clearSpellView: -> @spellView?.dismiss() @spellView?.$el.after('
').detach() diff --git a/app/views/play/level_view.coffee b/app/views/play/level_view.coffee index 4ff8e096c..1d7d33fe7 100644 --- a/app/views/play/level_view.coffee +++ b/app/views/play/level_view.coffee @@ -387,7 +387,6 @@ module.exports = class PlayLevelView extends View team = team?.team unless _.isString team team ?= 'humans' me.team = team - console.log "level:team-set to", team Backbone.Mediator.publish 'level:team-set', team: team destroy: -> From c19c8f391232981e983ddba32b8cb5009f4fe17f Mon Sep 17 00:00:00 2001 From: Nick Winter Date: Sun, 16 Feb 2014 18:29:24 -0800 Subject: [PATCH 34/51] Fix for LevelLoader, selection udpating, and non-documentation tome popovers. --- app/lib/LevelLoader.coffee | 2 +- app/lib/Router.coffee | 2 +- app/lib/surface/SpriteBoss.coffee | 2 ++ app/styles/play/level/tome/tome.sass | 19 +++++++++++-------- 4 files changed, 15 insertions(+), 10 deletions(-) diff --git a/app/lib/LevelLoader.coffee b/app/lib/LevelLoader.coffee index e9a604e12..f76a7891b 100644 --- a/app/lib/LevelLoader.coffee +++ b/app/lib/LevelLoader.coffee @@ -101,7 +101,7 @@ module.exports = class LevelLoader extends CocoClass @$el.html('
' + msg + '
') onSupermodelLoadedOne: (e) -> - @notifyProgress() + @update() # Things to do when either the Session or Supermodel load diff --git a/app/lib/Router.coffee b/app/lib/Router.coffee index 613122fe5..3722ab79a 100644 --- a/app/lib/Router.coffee +++ b/app/lib/Router.coffee @@ -129,7 +129,7 @@ module.exports = class CocoRouter extends Backbone.Router view.render() closeCurrentView: -> - window.currentModal?.hide() + window.currentModal?.hide?() return unless window.currentView? if window.currentView.cache window.currentView.scrollY = window.scrollY diff --git a/app/lib/surface/SpriteBoss.coffee b/app/lib/surface/SpriteBoss.coffee index 724889e52..cf242ffcc 100644 --- a/app/lib/surface/SpriteBoss.coffee +++ b/app/lib/surface/SpriteBoss.coffee @@ -254,8 +254,10 @@ module.exports = class SpriteBoss extends CocoClass updateSelection: -> if @selectedSprite?.thang and (not @selectedSprite.thang.exists or not @world.getThangByID @selectedSprite.thang.id) @selectSprite null, null, null + @selectionMark?.toggle false @updateTarget() return unless @selectionMark + @selectedSprite = null unless @selectedSprite?.thang @selectionMark.toggle @selectedSprite? @selectionMark.setSprite @selectedSprite @selectionMark.update() diff --git a/app/styles/play/level/tome/tome.sass b/app/styles/play/level/tome/tome.sass index 1626dd134..633b1da6b 100644 --- a/app/styles/play/level/tome/tome.sass +++ b/app/styles/play/level/tome/tome.sass @@ -4,21 +4,24 @@ #tome-view height: 100% + > .popover + // Only those popovers which are our direct children (spell documentation) + left: auto !important + top: auto !important + right: 100% + bottom: 151px + @include user-select(text) + + &.pinned + @include box-shadow(0 0 500px white) + .popover padding: 10px min-width: 400px background: transparent url(/images/level/popover_background.png) background-size: 100% 100% border: 0 - left: auto !important - top: auto !important - right: 100% - bottom: 151px @include box-shadow(0 0 0 #000) - @include user-select(text) - - &.pinned - @include box-shadow(0 0 500px white) h1:not(.not-code), h2:not(.not-code), h3:not(.not-code), h4:not(.not-code), h5:not(.not-code), h6:not(.not-code) font-family: Menlo, Monaco, Consolas, "Courier New", monospace From 1b0f15b5f34cc0a11e3835d3a1c2d0ed270927f3 Mon Sep 17 00:00:00 2001 From: Nick Winter Date: Mon, 17 Feb 2014 08:15:53 -0800 Subject: [PATCH 35/51] More LevelLoader defense. --- app/lib/LevelLoader.coffee | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/lib/LevelLoader.coffee b/app/lib/LevelLoader.coffee index f76a7891b..dfae34788 100644 --- a/app/lib/LevelLoader.coffee +++ b/app/lib/LevelLoader.coffee @@ -109,7 +109,7 @@ module.exports = class LevelLoader extends CocoClass @notifyProgress() return if @updateCompleted - return unless @supermodel.finished() and @sessionsLoaded() + return unless @supermodel?.finished() and @sessionsLoaded() @denormalizeSession() @loadLevelSounds() app.tracker.updatePlayState(@level, @session) From 9b5387341439c957946536cce32f86b8096fd85f Mon Sep 17 00:00:00 2001 From: Michael Schmatz Date: Mon, 17 Feb 2014 08:51:07 -0800 Subject: [PATCH 36/51] Updated session schema for session aggregation --- .../sessions/level_session_schema.coffee | 39 ++++++++++++++++++- 1 file changed, 37 insertions(+), 2 deletions(-) diff --git a/server/levels/sessions/level_session_schema.coffee b/server/levels/sessions/level_session_schema.coffee index 4073d25ef..80892881f 100644 --- a/server/levels/sessions/level_session_schema.coffee +++ b/server/levels/sessions/level_session_schema.coffee @@ -100,11 +100,14 @@ _.extend LevelSessionSchema.properties, type: 'object' source: type: 'string' - - # TODO: specify this more + +# TODO: specify this more code: type: 'object' + submittedCode: + type: 'object' + teamSpells: type: 'object' additionalProperties: @@ -134,6 +137,38 @@ _.extend LevelSessionSchema.properties, default: false index:true + matches: + type: 'array' + items: + type: 'object' + properties: + date: c.date + title: 'Time' + metrics: + type: 'object' + properties: + rank: + type: 'number' + opponents: + type: 'array' + items: + type: 'object' + properties: + id: + type: ['object', 'string'] + codeSubmitDate: c.date + title: 'Submitted' + metrics: + type: 'object' + properties: + rank: + type: 'number' + + + + + + c.extendBasicProperties LevelSessionSchema, 'level.session' c.extendPermissionsProperties LevelSessionSchema, 'level.session' From 72b6bcb7edc68807bcbc99a1f63a108bdc0e53ee Mon Sep 17 00:00:00 2001 From: Scott Erickson Date: Mon, 17 Feb 2014 09:22:12 -0800 Subject: [PATCH 37/51] Temp fix for the number of thang types exploding recently. --- server/commons/Handler.coffee | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/server/commons/Handler.coffee b/server/commons/Handler.coffee index 6d4c3ab23..648be092f 100644 --- a/server/commons/Handler.coffee +++ b/server/commons/Handler.coffee @@ -3,6 +3,7 @@ mongoose = require('mongoose') Grid = require 'gridfs-stream' errors = require './errors' PROJECT = {original:1, name:1, version:1, description: 1, slug:1, kind: 1} +FETCH_LIMIT = 150 module.exports = class Handler # subclasses should override these properties @@ -115,14 +116,14 @@ module.exports = class Handler else args = [filter.filter] args.push PROJECT if req.query.project - @modelClass.find(args...).limit(100).exec callback + @modelClass.find(args...).limit(FETCH_LIMIT).exec callback versions: (req, res, id) -> # TODO: a flexible system for doing GAE-like cursors for these sort of paginating queries - # Keeping it simple for now and just allowing access to the first 100 results. + # Keeping it simple for now and just allowing access to the first FETCH_LIMIT results. query = {'original': mongoose.Types.ObjectId(id)} sort = {'created': -1} - @modelClass.find(query).limit(100).sort(sort).exec (err, results) => + @modelClass.find(query).limit(FETCH_LIMIT).sort(sort).exec (err, results) => for doc in results return @sendUnauthorizedError(res) unless @hasAccessToDocument(req, doc) res.send(results) From 302a13b6e72ebcfe7625f3ef88203f2e59ce489b Mon Sep 17 00:00:00 2001 From: Michael Schmatz Date: Mon, 17 Feb 2014 09:23:49 -0800 Subject: [PATCH 38/51] Added submitDate to session schema --- server/levels/sessions/level_session_schema.coffee | 9 ++++++--- server/queues/scoring.coffee | 8 ++++---- 2 files changed, 10 insertions(+), 7 deletions(-) diff --git a/server/levels/sessions/level_session_schema.coffee b/server/levels/sessions/level_session_schema.coffee index 80892881f..7cb8ec229 100644 --- a/server/levels/sessions/level_session_schema.coffee +++ b/server/levels/sessions/level_session_schema.coffee @@ -105,9 +105,6 @@ _.extend LevelSessionSchema.properties, code: type: 'object' - submittedCode: - type: 'object' - teamSpells: type: 'object' additionalProperties: @@ -137,6 +134,12 @@ _.extend LevelSessionSchema.properties, default: false index:true + submitDate: + type: 'date' + + submittedCode: + type: 'object' + matches: type: 'array' items: diff --git a/server/queues/scoring.coffee b/server/queues/scoring.coffee index 5607d0ae8..48eb6f5e8 100644 --- a/server/queues/scoring.coffee +++ b/server/queues/scoring.coffee @@ -174,7 +174,7 @@ module.exports.processTaskResult = (req, res) -> if loggingError? return errors.serverError res, "There as a problem logging the task computation: #{loggingError}" - updateScores clientResponseObject, (updatingScoresError, newScores) -> + updateSessions clientResponseObject, (updatingScoresError, newScores) -> if updatingScoresError? return errors.serverError res, "There was an error updating the scores.#{updatingScoresError}" @@ -204,10 +204,10 @@ logTaskComputation = (taskObject,taskLogObject, callback) -> taskLogObject.save callback -updateScores = (taskObject,callback) -> +updateSessions = (taskObject,callback) -> sessionIDs = _.pluck taskObject.sessions, 'sessionID' - async.map sessionIDs, retrieveOldScoreMetrics, (err, oldScores) -> + async.map sessionIDs, retrieveOldSessionData, (err, oldScores) -> callback err, {"error": "There was an error retrieving the old scores"} if err? oldScoreArray = _.toArray putRankingFromMetricsIntoScoreObject taskObject, oldScores @@ -245,7 +245,7 @@ putRankingFromMetricsIntoScoreObject = (taskObject,scoreObject) -> scoreObject -retrieveOldScoreMetrics = (sessionID, callback) -> +retrieveOldSessionData = (sessionID, callback) -> sessionQuery = "_id":sessionID From 3b5d881c461d4b3be6f8830d6f61a8171dfa0563 Mon Sep 17 00:00:00 2001 From: Michael Schmatz Date: Mon, 17 Feb 2014 09:24:46 -0800 Subject: [PATCH 39/51] Changed schema date to proper format --- server/levels/sessions/level_session_schema.coffee | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/server/levels/sessions/level_session_schema.coffee b/server/levels/sessions/level_session_schema.coffee index 7cb8ec229..a21c02844 100644 --- a/server/levels/sessions/level_session_schema.coffee +++ b/server/levels/sessions/level_session_schema.coffee @@ -135,7 +135,8 @@ _.extend LevelSessionSchema.properties, index:true submitDate: - type: 'date' + type: c.date + title: 'Submitted' submittedCode: type: 'object' From 88b4055af3a12971879c1f6324f1dffdc613565f Mon Sep 17 00:00:00 2001 From: alireza68 Date: Mon, 17 Feb 2014 21:17:56 +0330 Subject: [PATCH 40/51] Update fa.coffee I'll translate the rest soon --- app/locale/fa.coffee | 62 ++++++++++++++++++++++---------------------- 1 file changed, 31 insertions(+), 31 deletions(-) diff --git a/app/locale/fa.coffee b/app/locale/fa.coffee index af4d97351..aa9367059 100644 --- a/app/locale/fa.coffee +++ b/app/locale/fa.coffee @@ -5,10 +5,10 @@ module.exports = nativeDescription: "فارسی", englishDescription: "Persian", sending: "...در حال ارسال" cancel: "لغو" save: "ذخیره " -# delay_1_sec: "1 second" -# delay_3_sec: "3 seconds" -# delay_5_sec: "5 seconds" -# manual: "Manual" +# delay_1_sec: "1 ثانیه" +# delay_3_sec: "3 ثانیه" +# delay_5_sec: "5 ثانیه" +# manual: "دستی" # fork: "Fork" play: "سطوح" @@ -75,46 +75,46 @@ module.exports = nativeDescription: "فارسی", englishDescription: "Persian", campaign_beginner: "کمپین تازه کارها" campaign_beginner_description: ".که شما در آن می توانید جادوگری به وسیله برنامه نویسی را یادبگیرید..." campaign_dev: "مراحل سخت تصادفی" -# campaign_dev_description: "... in which you learn the interface while doing something a little harder." +# campaign_dev_description: "... جایی که میتونید طراحی ظاهر رو یاد بگیرید درحالی که فعالیت سخت تری انجام میدید" campaign_multiplayer: "مسابقات چند نفره" -# campaign_multiplayer_description: "... in which you code head-to-head against other players." +# campaign_multiplayer_description: "... جایی که کد رو به رو شدن با بقیه بازیکنان رو مینویسید." campaign_player_created: "ایجاد بازیکن" -# campaign_player_created_description: "... in which you battle against the creativity of your fellow Artisan Wizards." -# level_difficulty: "Difficulty: " +# campaign_player_created_description: "... جایی که در مقابل خلاقیت نیرو هاتون قرار میگیرید جادوگران آرتیزان." +# level_difficulty: "سختی: " contact: contact_us: "CodeCombatتماس با " welcome: "خوب است از شما بشنویم, از طریق این فرم برای ما ایمیل ارسال کنید" -# contribute_prefix: "If you're interested in contributing, check out our " -# contribute_page: "contribute page" +# contribute_prefix: "اگر علاقه مند به همکاری با ما هستید ، این صفحه را مطالعه کنید" +# contribute_page: "صفحه همکاری" # contribute_suffix: "!" -# forum_prefix: "For anything public, please try " -# forum_page: "our forum" -# forum_suffix: " instead." -# send: "Send Feedback" +# forum_prefix: "باری هر چیز عمومی، اینجا را مشاهده کنید " +# forum_page: "فاروم ما" +# forum_suffix: " به جای" +# send: "ارسال بازخورد" diplomat_suggestion: -# title: "Help translate CodeCombat!" -# sub_heading: "We need your language skills." - pitch_body: "We develop CodeCombat in English, but we already have players all over the world. Many of them want to play in Persian but don't speak English, so if you can speak both, please consider signing up to be a Diplomat and help translate both the CodeCombat website and all the levels into Persian." - missing_translations: "Until we can translate everything into Persian, you'll see English when Persian isn't available." -# learn_more: "Learn more about being a Diplomat" -# subscribe_as_diplomat: "Subscribe as a Diplomat" +# title: "کمک به ترجمه کمبت کد!" +# sub_heading: "ما توانایی زبان شما را نیاز داریم" + pitch_body: "ما کمبت کد را به زبان انگلیسی توسعه داده ایم اما بازیکنانی از سراسر دنیا داریم. خیلی از آنها دوست داند به فارسی بازیکنند اما انگلیسی صحبت نکنند, پس اگر به هر دو زبان میتوانید صحبت کنید, پس لطفاً به عنوان دیپلمات ثبت نامکنید و مارا در ترجمه بازی و تمام مراحل به فارسی یاری نمایید." + missing_translations: "تا زمانی که به مشغول ترجمه به فارسی هستیم , شما انگلیسی مشاهده میکنید بدون ترجمه فارسی." +# learn_more: "بیشتر درباره دیپلمات بودن بیاموزید" +# subscribe_as_diplomat: "به عنوان یک دیپلمات تعقیبمان کنید" # wizard_settings: -# title: "Wizard Settings" -# customize_avatar: "Customize Your Avatar" +# title: "تنظیمات جادویی" +# customize_avatar: "آواتار خود را شکل دهید" # account_settings: -# title: "Account Settings" -# not_logged_in: "Log in or create an account to change your settings." -# autosave: "Changes Save Automatically" -# me_tab: "Me" -# picture_tab: "Picture" -# wizard_tab: "Wizard" -# password_tab: "Password" -# emails_tab: "Emails" -# gravatar_select: "Select which Gravatar photo to use" +# title: "تنظیمات حساب کاربری" +# not_logged_in: "برای ایجاد تغییر وارد شوید یا ثبت نام نمایید" +# autosave: "تغییرات به طور خودکار ثبت شد" +# me_tab: "من" +# picture_tab: "تصاویر" +# wizard_tab: "جادو" +# password_tab: "کلمه عبور" +# emails_tab: "ایمیل ها" +# gravatar_select: " استفاده شود Gravatar انتخاب کنید کدام تصویر" # gravatar_add_photos: "Add thumbnails and photos to a Gravatar account for your email to choose an image." # gravatar_add_more_photos: "Add more photos to your Gravatar account to access them here." # wizard_color: "Wizard Clothes Color" From b1aa65833adf23d0ea35fa4d13d338a6654d8076 Mon Sep 17 00:00:00 2001 From: Andrew Wong Date: Mon, 17 Feb 2014 10:24:29 -0800 Subject: [PATCH 41/51] Consolidated text on contribute and removed padding to make the page not as spread out. Text on the contribute page was a redundant copy of each class' contribution page. The summary text was shortened and some vertical padding was removed. --- app/styles/contribute_classes.sass | 2 +- app/templates/contribute/contribute.jade | 280 ++++------------------- 2 files changed, 47 insertions(+), 235 deletions(-) diff --git a/app/styles/contribute_classes.sass b/app/styles/contribute_classes.sass index 14e0c8616..4a5893fb4 100644 --- a/app/styles/contribute_classes.sass +++ b/app/styles/contribute_classes.sass @@ -31,7 +31,7 @@ box-sizing: border-box .header-scrolling-fix - padding-top: 65px !important + padding-top: 20px !important .well padding: 5px 5px 5px 30px diff --git a/app/templates/contribute/contribute.jade b/app/templates/contribute/contribute.jade index bef44906c..934f069fe 100644 --- a/app/templates/contribute/contribute.jade +++ b/app/templates/contribute/contribute.jade @@ -58,51 +58,16 @@ block content span(data-i18n="classes.archmage_title") Archmage span span(data-i18n="classes.archmage_title_description") (Coder) - p(data-i18n="contribute.archmage_introduction") - | One of the best parts about building games is they synthesize so many different things. - | Graphics, sound, real-time networking, social networking, and of course many of the - | more common aspects of programming, from low-level database management, - | and server administration to user facing design and interface building. - | There's a lot to do, and if you're an experienced programmer with a hankering - | to really dive into the nitty-gritty of CodeCombat, this class might be for you. - | We would love to have your help building the best programming game ever. - - h4(data-i18n="contribute.class_attributes") Class Attributes - ul - li - span(data-i18n="contribute.archmage_attribute_1_pref") Knowledge in - a(href="http://coffeescript.org/") CoffeeScript - span(data-i18n="contribute.archmage_attribute_1_suf") - | , or a desire to learn. Most of our code is in this language. - | If you're a fan of Ruby or Python, you'll feel right at home. - | It's just JavaScript, but with a nicer syntax. - li(data-i18n="contribute.archmage_attribute_2") - | Some experience in programming and personal initiative. - | We'll help you get oriented, but we can't spend much time training you. - - h4(data-i18n="contribute.how_to_join") How To Join - - p - span(data-i18n="contribute.join_desc_1") - | Anyone can help out! Just check out our - a(title='GitHub', href="https://github.com/codecombat/codecombat", tabindex=-1) - | GitHub - span - span(data-i18n="contribute.join_desc_2") - | to get started, and check the box below to mark yourself as a brave Archmage and get the latest news by email. - | Want to chat about what to do or how to get more deeply involved? - a(title='Contact', tabindex=-1, data-toggle="coco-modal", data-target="modal/contact", data-i18n="contribute.join_url_email") - | Email us - span(data-i18n="contribute.join_desc_3") - | , or find us in our - a(href="http://www.hipchat.com/g3plnOKqa", data-i18n="contribute.join_url_hipchat") public HipChat room - span - span(data-i18n="contribute.join_desc_4") - | and we'll go from there! + p(data-i18n="contribute.archmage_summary") + | Interested in working on database management, server administration, user facing + | graphics and building interface? Want to help build a game to help other people learn + | what you are good at? We have a lot to do and if you are an experienced programmer and + | want to develop for CodeCombat, this class is for you. We would love your help + | building the best programming game ever. a(href="/contribute/archmage") h3(data-i18n="contribute.more_about_archmage") - | Learn More About Becoming A Powerful Archmage + | Learn More About Becoming An Archmage label.checkbox(for="developer").well input(type='checkbox', name="developer", id="developer") @@ -122,49 +87,21 @@ block content span span(data-i18n="classes.artisan_title_description") (Level Builder) p - span(data-i18n="contribute.artisan_introduction_pref") - | We must construct additional levels! - | People be clamoring for more content, and we can only build so many ourselves. - | Right now your workstation is level one; our level editor is barely - | usable even by its creators, so be wary. - | If you have visions of campaigns spanning for-loops to + span(data-i18n="contribute.artisan_summary_pref") + | Want to design levels and expand CodeCombat's arsenal? People are playing through our + | content at a pace faster than we can build! Right now, our level editor is barebone, + | so be wary. Making levels will be a little challenging and buggy. If you have visions + | of campaigns spanning for-loops to span a(href="http://stackoverflow.com/questions/758088/seeking-contrived-example-code-continuations/758105#758105") | Mondo Bizzaro span - span(data-i18n="contribute.artisan_introduction_suf") - | to then this class might be for you. - - h4(data-i18n="contribute.class_attributes") Class Attributes - ul - li(data-i18n="contribute.artisan_attribute_1") - | Any experience in building content like this would be nice, such as using - | Blizzard's level editors. But not required! - li(data-i18n="contribute.artisan_attribute_2") - | A hankering to do a whole lot of testing and iteration. - | To make good levels, you need to take it to others and watch them play it, - | and be prepared to find a lot of things to fix. - li(data-i18n="contribute.artisan_attribute_3") - | For the time being, endurance en par with an Adventurer. - | Our Level Editor is super preliminary and frustrating to use. You have been warned! - - h4(data-i18n="contribute.how_to_join") How To Join - p - span(data-i18n="contribute.artisan_join_desc") - | Use the Level Editor in these steps, give or take: - ul - li - a(href="https://github.com/codecombat/codecombat/wiki/Artisan-Home", data-i18n="contribute.artisan_join_step1") Read the documentation. - li - a(href="/editor/level", data-i18n="contribute.artisan_join_step2") Create a new level and explore existing levels. - li - a(href="http://www.hipchat.com/g3plnOKqa", data-i18n="contribute.artisan_join_step3") Find us in our public HipChat room for help. - li - a(href="http://discourse.codecombat.com", data-i18n="contribute.artisan_join_step4") Post your levels on the forum for feedback. + span(data-i18n="contribute.artisan_summary_suf") + | to then this class is for you. a(href="/contribute/artisan") h3(data-i18n="contribute.more_about_artisan") - | Learn More About Becoming A Creative Artisan + | Learn More About Becoming An Artisan label.checkbox(for="level_creator").well input(type='checkbox', name="level_creator", id="level_creator") @@ -183,49 +120,16 @@ block content span(data-i18n="classes.adventurer_title") Adventurer span span(data-i18n="classes.adventurer_title_description") (Level Playtester) - p(data-i18n="contribute.adventurer_introduction") - | Let's be clear about your role: you are the tank. You're going to take heavy damage. + p(data-i18n="contribute.adventurer_summary") + | Let us be clear about your role: you are the tank. You are going to take heavy damage. | We need people to try out brand-new levels and help identify how to make things better. | The pain will be enormous; making good games is a long process and no one gets | it right the first time. - | If you can endure and have a high constitution score, then this class might be for you. + | If you can endure and have a high constitution score, then this class is for you. - h4(data-i18n="contribute.class_attributes") Class Attributes - ul - li(data-i18n="contribute.adventurer_attribute_1") - | A thirst for learning. You want to learn how to code and we want to teach you how to code. - | You'll probably be doing most of the teaching in this case, though. - li(data-i18n="contribute.adventurer_attribute_2") - | Charismatic. Be gentle but articulate about what needs improving, and offer suggestions - | on how to improve. - - h4(data-i18n="contribute.how_to_join") How To Join - p - span(data-i18n="contribute.adventurer_join_pref") - | Either get together with (or recruit!) an Artisan and work with them, or - | check the box below to receive emails when there are new levels to test. - | We'll also be posting about levels to review on our networks like - span - a(href="http://discourse.codecombat.com/category/adventurer", data-i18n="contribute.adventurer_forum_url") - | our forum - span , - a(href="https://www.facebook.com/codecombat") - | Facebook - span , - a(href="https://twitter.com/CodeCombat") - | Twitter - span , - span(data=i18n="general.and") and - span - a(href="https://plus.google.com/115285980638641924488/posts") - | Google+ - span , - span(data-i18n="contribute.adventurer_join_suf") - | so if you prefer to be notified those ways, sign up there! - a(href="/contribute/adventurer") h3(data-i18n="contribute.more_about_adventurer") - | Learn More About Becoming A Brave Adventurer + | Learn More About Becoming An Adventurer label.checkbox(for="tester").well input(type='checkbox', name="tester", id="tester") @@ -245,36 +149,19 @@ block content span span(data-i18n="classes.scribe_title_description") (Article Editor) p - span(data-i18n="contribute.scribe_introduction_pref") - | CodeCombat isn't just going to be a bunch of levels. - | It will also include a resource for knowledge, a wiki of programming concepts that levels can hook into. - | That way rather than each Artisan having to describe in detail what a comparison operator is, they - | can simply link their level to the Article describing them that is already written for the player's edification. - | Something along the lines of what the + span(data-i18n="contribute.scribe_summary_pref") + | CodeCombat is not just going to be a bunch of levels. It will also be a resource of + | programming knowledge that players can hook into. That way, each Artisan can link + | to a detailed article that is already written for the player's edification. + | Documentation akin to the a(href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide", data-i18n="contribute.scribe_introduction_url_mozilla") | Mozilla Developer Network - span(data-i18n="contribute.scribe_introduction_suf") - | has built. If your idea of fun is articulating the concepts of programming in Markdown form, - | then this class might be for you. + span(data-i18n="contribute.scribe_summary_suf") + | has built. If you enjoy explaining programming concepts, then this class is for you. - h4(data-i18n="contribute.class_attributes") Class Attributes - ul - li(data-i18n="contribute.scribe_attribute_1") - | Skill in words is pretty much all you need. - | Not only grammar and spelling, but able to convey complicated ideas to others. - - h4(data-i18n="contribute.how_to_join") How To Join - p - a(title='Contact', tabindex=-1, data-toggle="coco-modal", data-target="modal/contact", data-i18n="contribute.contact_us_url") - | Contact us - span , - span(data-i18n="contribute.scribe_join_description") - | tell us a little about yourself, your experience with programming and - | what sort of things you'd like to write about. We'll go from there! - a(href="/contribute/scribe") h3(data-i18n="contribute.more_about_scribe") - | Learn More About Becoming A Diligent Scribe + | Learn More About Becoming A Scribe label.checkbox(for="article_editor").well input(type='checkbox', name="article_editor", id="article_editor") @@ -294,39 +181,16 @@ block content span span(data-i18n="classes.diplomat_title_description") (Translator) p - span(data-i18n="contribute.diplomat_introduction_pref") - | So, if there's one thing we learned from the - a(href="blog.codecombat.com/post/64658141307/codecombat-in-y-combinator", data-i18n="contribute.diplomat_launch_url") - | launch in October - span , - span(data-i18n="contribute.diplomat_introduction_suf") - | it's that there - | is sizeable interest in CodeCombat in other countries, particularly Brazil! - | We're building a corps of translators eager to turn one set of words into - | another set of words to get CodeCombat as accessible across the world as possible. - | If you like getting sneak peeks at upcoming content and getting these levels to - | your fellow nationals ASAP, then this class might be for you. + span(data-i18n="contribute.diplomat_summary") + | There is a large interest in CodeCombat in other countries that do not speak English! + | We are looking for translators who are willing to spend their time translating the + | site's corpus of words so that CodeCombat is accessible across the world as soon as + | possible. If you'd like to help getting CodeCombat international, then this class is + | for you. - h4(data-i18n="contribute.class_attributes") Class Attributes - ul - li(data-i18n="contribute.diplomat_attribute_1") - | Fluency in English and the language you would like to translate to. - | When conveying complicated ideas, it's important to have a strong grasp in both! - - h4(data-i18n="contribute.how_to_join") How to Join - p - span(data-i18n="contribute.diplomat_join_pref") - | We're keeping the up-to-date contribution instructions at - a(href="http://discourse.codecombat.com/t/category-definition-for-diplomat/60/14", data-i18n="contribute.diplomat_doc_url") - | this forum post - span , - span(data-i18n="contribute.diplomat_join_suf") - | so check it out and add things for your language. Also, check this box below to - | keep up-to-date on new internationalization developments! - a(href="/contribute/diplomat") h3(data-i18n="contribute.more_about_diplomat") - | Learn More About Becoming A Great Diplomat + | Learn More About Becoming A Diplomat label.checkbox(for="translator").well input(type='checkbox', name="translator", id="translator") @@ -345,41 +209,15 @@ block content span(data-i18n="classes.ambassador_title") Ambassador span span(data-i18n="classes.ambassador_title_description") (Support) - p(data-i18n="contribute.ambassador_introduction") - | This is a community we're building, and you are the connections. - | We've got Olark chats, emails, and social networks with lots of people to talk with - | and help get acquainted with the game and learn from. - | If you want to help people get involved and have fun, and get a good feel of the pulse of - | CodeCombat and where we're going, then this class might be for you. - - h4(data-i18n="contribute.class_attributes") Class Attributes - ul - li(data-i18n="contribute.ambassador_attribute_1") - | Communication skills. Be able to identify the problems players are having - | and help them solve them. Also, keep the rest of us informed about what - | players are saying, what they like and don't like and want more of! - - h4(data-i18n="contribute.how_to_join") How to Join - p - a(title='Contact', tabindex=-1, data-toggle="coco-modal", data-target="modal/contact", data-i18n="contribute.contact_us_url") - | Contact us - span , - span(data-i18n="contribute.ambassador_join_desc") - | tell us a little about yourself, what you've done and what you'd - | be interested in doing. We'll go from there! - - p - strong(data-i18n="contribute.ambassador_join_note_strong") - | Note - span : - span(data-i18n="contribute.ambassador_join_note_desc") - | One of our top priorities is to build multiplayer where players having difficulty - | solving levels can summon higher level wizards to help them. - | This will be a great way for ambassadors to do their thing. We'll keep you posted! + p(data-i18n="contribute.ambassador_summary") + | We are trying to build a community, and every community needs a support team when + | there are troubles. We have got chats, emails, and social networks so that our users + | can get acquainted with the game. If you want to help people get involved, have fun, + | and learn some programming, then this class is for you. a(href="/contribute/ambassador") h3(data-i18n="contribute.more_about_ambassador") - | Learn More About Becoming A Helpful Ambassador + | Learn More About Becoming An Ambassador label.checkbox(for="support").well input(type='checkbox', name="support", id="support") @@ -388,7 +226,6 @@ block content .saved-notification | ✓ span(data-i18n="contribute.saved") Saved - #counselor .class_image.header-scrolling-fix @@ -398,39 +235,14 @@ block content span(data-i18n="classes.counselor_title") Counselor span span(data-i18n="classes.counselor_title_description") (Expert/Teacher) - p(data-i18n="contribute.counselor_introduction_1") - | Do you have life experience? - | A different perspective on things that can help us decide how to shape CodeCombat? - | Of all these roles, this will probably take the least time, but - | individually you may make the most difference. - | We're on the lookout for wisened sages, particularly in areas like: teaching, - | game development, open source project management, technical recruiting, entrepreneurship, - | or design. - - p(data-i18n="contribute.counselor_introduction_2") - | Or really anything that is relevant to the development of CodeCombat. - | If you have knowledge and want to share it to help grow this project, then - | this class might be for you. + p(data-i18n="contribute.counselor_summary") + | None of the above roles fit what you are interested in? Do not worry, we are on the + | lookout for anybody who wants a hand in the development of CodeCombat! If you are + | interested in teaching, game development, open source management, or anything else + | that you think will be relevant to us, then this class is for you. - h4(data-i18n="contribute.class_attributes") Class Attributes - ul - li(data-i18n="contribute.counselor_attribute_1") - | Experience, in any of the areas above or something you think might be helpful. - li(data-i18n="contribute.counselor_attribute_2") - | A little bit of free time! - - h4(data-i18n="contribute.how_to_join") How to Join - p - a(title='Contact', tabindex=-1, data-toggle="coco-modal", data-target="modal/contact", data-i18n="contribute.contact_us_url") - | Contact us - span , - span(data-i18n="contribute.counselor_join_desc") - | tell us a little about yourself, what you've done and what you'd - | be interested in doing. We'll put you in our contact list and be in touch - | when we could use advice (not too often). - a(href="/contribute/counselor") h3(data-i18n="contribute.more_about_counselor") - | Learn More About Becoming A Valuable Counselor + | Learn More About Becoming A Counselor div.clearfix \ No newline at end of file From af510c7cc7fef99a734eb41a9c1e95f14f1164e9 Mon Sep 17 00:00:00 2001 From: Nick Winter Date: Mon, 17 Feb 2014 11:53:52 -0800 Subject: [PATCH 42/51] 60 FPS and support for independent world/surface frame rates. --- app/lib/God.coffee | 7 +++++-- app/lib/LevelLoader.coffee | 2 +- app/lib/surface/CocoSprite.coffee | 2 +- app/lib/surface/Surface.coffee | 25 +++++++++++++++---------- app/lib/world/thang_state.coffee | 22 +++++++++++++++++++++- app/lib/world/world_frame.coffee | 3 +++ 6 files changed, 46 insertions(+), 15 deletions(-) diff --git a/app/lib/God.coffee b/app/lib/God.coffee index 4d3a195d8..730c034a0 100644 --- a/app/lib/God.coffee +++ b/app/lib/God.coffee @@ -210,8 +210,11 @@ class Angel @purgatoryTimer = null if @worker worker = @worker - _.defer -> worker.terminate() - @worker.removeEventListener 'message', @onWorkerMessage + onWorkerMessage = @onWorkerMessage + _.delay -> + worker.terminate() + worker.removeEventListener 'message', onWorkerMessage + , 1000 @worker = null @ diff --git a/app/lib/LevelLoader.coffee b/app/lib/LevelLoader.coffee index dfae34788..aba6fae47 100644 --- a/app/lib/LevelLoader.coffee +++ b/app/lib/LevelLoader.coffee @@ -98,7 +98,7 @@ module.exports = class LevelLoader extends CocoClass onSupermodelError: -> msg = $.i18n.t('play_level.level_load_error', defaultValue: "Level could not be loaded.") - @$el.html('
' + msg + '
') + $('body').append('
' + msg + '
') onSupermodelLoadedOne: (e) -> @update() diff --git a/app/lib/surface/CocoSprite.coffee b/app/lib/surface/CocoSprite.coffee index c843d3f00..6246619db 100644 --- a/app/lib/surface/CocoSprite.coffee +++ b/app/lib/surface/CocoSprite.coffee @@ -140,8 +140,8 @@ module.exports = CocoSprite = class CocoSprite extends CocoClass @show() return @updateActionDirection() unless action.animation or action.container m = if action.container then "gotoAndStop" else "gotoAndPlay" - @imageObject[m] action.name @imageObject.framerate = action.framerate or 20 + @imageObject[m] action.name reg = @getOffset 'registration' @imageObject.regX = -reg.x @imageObject.regY = -reg.y diff --git a/app/lib/surface/Surface.coffee b/app/lib/surface/Surface.coffee index e503250d3..b0b1ee423 100644 --- a/app/lib/surface/Surface.coffee +++ b/app/lib/surface/Surface.coffee @@ -36,6 +36,7 @@ module.exports = Surface = class Surface extends CocoClass worldLoaded: false scrubbing: false debug: false + frameRate: 60 defaults: wizards: true @@ -190,7 +191,7 @@ module.exports = Surface = class Surface extends CocoClass createjs.Tween.removeTweens(@) @currentFrame = @scrubbingTo - @scrubbingTo = parseInt(progress * @world.totalFrames) + @scrubbingTo = Math.floor(progress * @world.totalFrames) @scrubbingPlaybackSpeed = Math.sqrt(Math.abs(@scrubbingTo - @currentFrame) * @world.dt / (scrubDuration or 0.5)) if scrubDuration t = createjs.Tween @@ -227,7 +228,7 @@ module.exports = Surface = class Surface extends CocoClass @onFrameChanged() getCurrentFrame: -> - return Math.max(0, Math.min(parseInt(@currentFrame), @world.totalFrames - 1)) + return Math.max(0, Math.min(Math.floor(@currentFrame), @world.totalFrames - 1)) getProgress: -> @currentFrame / @world.totalFrames @@ -344,8 +345,7 @@ module.exports = Surface = class Surface extends CocoClass @stage.addEventListener 'stagemousedown', @onMouseDown @canvas.on 'mousewheel', @onMouseWheel @hookUpChooseControls() if @options.choosing - console.log "Setting fps", @world.frameRate unless @world.frameRate is 30 - createjs.Ticker.setFPS @world.frameRate + createjs.Ticker.setFPS @frameRate showLevel: -> return if @dead @@ -467,16 +467,16 @@ module.exports = Surface = class Surface extends CocoClass @trailmaster.tick() if @trailmaster # Skip some frame updates unless we're playing and not at end (or we haven't drawn much yet) frameAdvanced = (@playing and @currentFrame < @world.totalFrames) or @totalFramesDrawn < 2 - ++@currentFrame if frameAdvanced + @currentFrame += @world.frameRate / @frameRate if frameAdvanced @updateSpriteSounds() if frameAdvanced break unless Dropper.drop() # these are skipped for dropped frames @updateState @currentFrame isnt oldFrame - @drawCurrentFrame() + @drawCurrentFrame e @onFrameChanged() - @updatePaths() if (@totalFramesDrawn % 2) is 0 or createjs.Ticker.getMeasuredFPS() > createjs.Ticker.getFPS() - 5 - Backbone.Mediator.publish('surface:ticked', {dt: @world.dt}) + @updatePaths() if (@totalFramesDrawn % 4) is 0 or createjs.Ticker.getMeasuredFPS() > createjs.Ticker.getFPS() - 5 + Backbone.Mediator.publish('surface:ticked', {dt: 1 / @frameRate}) mib = @stage.mouseInBounds if @mouseInBounds isnt mib Backbone.Mediator.publish('surface:mouse-' + (if mib then "over" else "out"), {}) @@ -484,6 +484,11 @@ module.exports = Surface = class Surface extends CocoClass updateSpriteSounds: -> @world.getFrame(@getCurrentFrame()).restoreState() + current = Math.max(0, Math.min(@currentFrame, @world.totalFrames - 1)) + if current - Math.floor(current) > 0.01 + next = Math.ceil current + ratio = current % 1 + @world.frames[next].restorePartialState ratio if next > 1 @spriteBoss.updateSounds() updateState: (frameChanged) -> @@ -492,9 +497,9 @@ module.exports = Surface = class Surface extends CocoClass @spriteBoss.update frameChanged @dimmer?.setSprites @spriteBoss.sprites - drawCurrentFrame: -> + drawCurrentFrame: (e) -> ++@totalFramesDrawn - @stage.update() + @stage.update e # paths - TODO: move to SpriteBoss? but only update on frame drawing instead of on every frame update? diff --git a/app/lib/world/thang_state.coffee b/app/lib/world/thang_state.coffee index a6ca7546c..964f25eda 100644 --- a/app/lib/world/thang_state.coffee +++ b/app/lib/world/thang_state.coffee @@ -67,7 +67,7 @@ module.exports = class ThangState restore: -> # Restore trackedProperties' values to @thang, retrieving them from @trackedPropertyValues if needed. Optimize it. - return @ if @thang._state is @ + return @ if @thang._state is @ and not @thang.partialState unless @hasRestored # Restoring in a deserialized World for first time props = [] for prop, propIndex in @trackedPropertyKeys @@ -81,6 +81,26 @@ module.exports = class ThangState else # Restoring later times for prop, propIndex in @trackedPropertyKeys @thang[prop] = @props[propIndex] + @thang.partialState = false + @ + + restorePartial: (ratio) -> + inverse = 1 - ratio + for prop, propIndex in @trackedPropertyKeys when prop is "pos" or prop is "rotation" + if @hasRestored + value = @props[propIndex] + else + type = @trackedPropertyTypes[propIndex] + storage = @trackedPropertyValues[propIndex] + value = @getStoredProp propIndex, type, storage + if prop is "pos" + @thang.pos = @thang.pos.copy() + @thang.pos.x = inverse * @thang.pos.x + ratio * value.x + @thang.pos.y = inverse * @thang.pos.y + ratio * value.y + @thang.pos.z = inverse * @thang.pos.z + ratio * value.z + else if prop is "rotation" + @thang.rotation = inverse * @thang.rotation + ratio * value + @thang.partialState = true @ serialize: (frameIndex, trackedPropertyIndices, trackedPropertyTypes, trackedPropertyValues, specialValuesToKeys, specialKeysToValues) -> diff --git a/app/lib/world/world_frame.coffee b/app/lib/world/world_frame.coffee index 997cf548f..fcac050a8 100644 --- a/app/lib/world/world_frame.coffee +++ b/app/lib/world/world_frame.coffee @@ -25,6 +25,9 @@ module.exports = class WorldFrame #console.log "Frame", @time, "restoring state for", thang.id, "and saying it don't exist" thang.exists = false + restorePartialState: (ratio) -> + thangState.restorePartial ratio for thangID, thangState of @thangStateMap + restoreStateForThang: (thang) -> thangState = @thangStateMap[thang.id] if not thangState From a4f4016c738b44aceb25f1b2a4f29434fcea3d1f Mon Sep 17 00:00:00 2001 From: Nick Winter Date: Mon, 17 Feb 2014 12:23:06 -0800 Subject: [PATCH 43/51] Updating i18n tags for new contribute summaries. --- app/locale/en.coffee | 25 ++++++--- app/styles/contribute_classes.sass | 5 +- app/templates/contribute/contribute.jade | 69 ++++++++++++------------ 3 files changed, 56 insertions(+), 43 deletions(-) diff --git a/app/locale/en.coffee b/app/locale/en.coffee index 57ba8d55d..7abca0c28 100644 --- a/app/locale/en.coffee +++ b/app/locale/en.coffee @@ -352,6 +352,7 @@ module.exports = nativeDescription: "English", englishDescription: "English", tr alert_account_message_pref: "To subscribe for class emails, you'll need to " alert_account_message_suf: "first." alert_account_message_create_url: "create an account" + archmage_summary: "Interested in working on game graphics, user interface design, database and server organization, multiplayer networking, physics, sound, or game engine performance? Want to help build a game to help other people learn what you are good at? We have a lot to do and if you are an experienced programmer and want to develop for CodeCombat, this class is for you. We would love your help building the best programming game ever." archmage_introduction: "One of the best parts about building games is they synthesize so many different things. Graphics, sound, real-time networking, social networking, and of course many of the more common aspects of programming, from low-level database management, and server administration to user facing design and interface building. There's a lot to do, and if you're an experienced programmer with a hankering to really dive into the nitty-gritty of CodeCombat, this class might be for you. We would love to have your help building the best programming game ever." class_attributes: "Class Attributes" archmage_attribute_1_pref: "Knowledge in " @@ -364,10 +365,12 @@ module.exports = nativeDescription: "English", englishDescription: "English", tr join_desc_4: "and we'll go from there!" join_url_email: "Email us" join_url_hipchat: "public HipChat room" - more_about_archmage: "Learn More About Becoming A Powerful Archmage" + more_about_archmage: "Learn More About Becoming an Archmage" archmage_subscribe_desc: "Get emails on new coding opportunities and announcements." + artisan_summary_pref: "Want to design levels and expand CodeCombat's arsenal? People are playing through our content at a pace faster than we can build! Right now, our level editor is barebone, so be wary. Making levels will be a little challenging and buggy. If you have visions of campaigns spanning for-loops to" + artisan_summary_suf: "then this class is for you." artisan_introduction_pref: "We must construct additional levels! People be clamoring for more content, and we can only build so many ourselves. Right now your workstation is level one; our level editor is barely usable even by its creators, so be wary. If you have visions of campaigns spanning for-loops to" - artisan_introduction_suf: "to then this class might be for you." + artisan_introduction_suf: "then this class might be for you." artisan_attribute_1: "Any experience in building content like this would be nice, such as using Blizzard's level editors. But not required!" artisan_attribute_2: "A hankering to do a whole lot of testing and iteration. To make good levels, you need to take it to others and watch them play it, and be prepared to find a lot of things to fix." artisan_attribute_3: "For the time being, endurance en par with an Adventurer. Our Level Editor is super preliminary and frustrating to use. You have been warned!" @@ -376,24 +379,28 @@ module.exports = nativeDescription: "English", englishDescription: "English", tr artisan_join_step2: "Create a new level and explore existing levels." artisan_join_step3: "Find us in our public HipChat room for help." artisan_join_step4: "Post your levels on the forum for feedback." - more_about_artisan: "Learn More About Becoming A Creative Artisan" + more_about_artisan: "Learn More About Becoming an Artisan" artisan_subscribe_desc: "Get emails on level editor updates and announcements." + adventurer_sumamry: "Let us be clear about your role: you are the tank. You are going to take heavy damage. We need people to try out brand-new levels and help identify how to make things better. The pain will be enormous; making good games is a long process and no one gets it right the first time. If you can endure and have a high constitution score, then this class is for you." adventurer_introduction: "Let's be clear about your role: you are the tank. You're going to take heavy damage. We need people to try out brand-new levels and help identify how to make things better. The pain will be enormous; making good games is a long process and no one gets it right the first time. If you can endure and have a high constitution score, then this class might be for you." adventurer_attribute_1: "A thirst for learning. You want to learn how to code and we want to teach you how to code. You'll probably be doing most of the teaching in this case, though." adventurer_attribute_2: "Charismatic. Be gentle but articulate about what needs improving, and offer suggestions on how to improve." adventurer_join_pref: "Either get together with (or recruit!) an Artisan and work with them, or check the box below to receive emails when there are new levels to test. We'll also be posting about levels to review on our networks like" adventurer_forum_url: "our forum" adventurer_join_suf: "so if you prefer to be notified those ways, sign up there!" - more_about_adventurer: "Learn More About Becoming A Brave Adventurer" + more_about_adventurer: "Learn More About Becoming an Adventurer" adventurer_subscribe_desc: "Get emails when there are new levels to test." + scribe_summary_pref: "CodeCombat is not just going to be a bunch of levels. It will also be a resource of programming knowledge that players can hook into. That way, each Artisan can link to a detailed article that for the player's edification: documentation akin to what the " + scribe_summary_sufx: " has built. If you enjoy explaining programming concepts, then this class is for you." scribe_introduction_pref: "CodeCombat isn't just going to be a bunch of levels. It will also include a resource for knowledge, a wiki of programming concepts that levels can hook into. That way rather than each Artisan having to describe in detail what a comparison operator is, they can simply link their level to the Article describing them that is already written for the player's edification. Something along the lines of what the " scribe_introduction_url_mozilla: "Mozilla Developer Network" scribe_introduction_suf: " has built. If your idea of fun is articulating the concepts of programming in Markdown form, then this class might be for you." scribe_attribute_1: "Skill in words is pretty much all you need. Not only grammar and spelling, but able to convey complicated ideas to others." contact_us_url: "Contact us" scribe_join_description: "tell us a little about yourself, your experience with programming and what sort of things you'd like to write about. We'll go from there!" - more_about_scribe: "Learn More About Becoming A Diligent Scribe" + more_about_scribe: "Learn More About Becoming a Scribe" scribe_subscribe_desc: "Get emails about article writing announcements." + diplomat_summary: "There is a large interest in CodeCombat in other countries that do not speak English! We are looking for translators who are willing to spend their time translating the site's corpus of words so that CodeCombat is accessible across the world as soon as possible. If you'd like to help getting CodeCombat international, then this class is for you." diplomat_introduction_pref: "So, if there's one thing we learned from the " diplomat_launch_url: "launch in October" diplomat_introduction_suf: "it's that there is sizeable interest in CodeCombat in other countries, particularly Brazil! We're building a corps of translators eager to turn one set of words into another set of words to get CodeCombat as accessible across the world as possible. If you like getting sneak peeks at upcoming content and getting these levels to your fellow nationals ASAP, then this class might be for you." @@ -401,21 +408,23 @@ module.exports = nativeDescription: "English", englishDescription: "English", tr diplomat_join_pref: "We've started a lot of initial translations at " diplomat_doc_url: "this forum post" diplomat_join_suf: "so check it out and add things for your language. Also, check this box below to keep up-to-date on new internationalization developments!" - more_about_diplomat: "Learn More About Becoming A Great Diplomat" + more_about_diplomat: "Learn More About Becoming a Diplomat" diplomat_subscribe_desc: "Get emails about i18n developments and levels to translate." + ambassador_summary: "We are trying to build a community, and every community needs a support team when there are troubles. We have got chats, emails, and social networks so that our users can get acquainted with the game. If you want to help people get involved, have fun, and learn some programming, then this class is for you." ambassador_introduction: "This is a community we're building, and you are the connections. We've got Olark chats, emails, and social networks with lots of people to talk with and help get acquainted with the game and learn from. If you want to help people get involved and have fun, and get a good feel of the pulse of CodeCombat and where we're going, then this class might be for you." ambassador_attribute_1: "Communication skills. Be able to identify the problems players are having and help them solve them. Also, keep the rest of us informed about what players are saying, what they like and don't like and want more of!" ambassador_join_desc: "tell us a little about yourself, what you've done and what you'd be interested in doing. We'll go from there!" ambassador_join_note_strong: "Note" ambassador_join_note_desc: "One of our top priorities is to build multiplayer where players having difficulty solving levels can summon higher level wizards to help them. This will be a great way for ambassadors to do their thing. We'll keep you posted!" - more_about_ambassador: "Learn More About Becoming A Helpful Ambassador" + more_about_ambassador: "Learn More About Becoming an Ambassador" ambassador_subscribe_desc: "Get emails on support updates and multiplayer developments." + counselor_summary: "None of the above roles fit what you are interested in? Do not worry, we are on the lookout for anybody who wants a hand in the development of CodeCombat! If you are interested in teaching, game development, open source management, or anything else that you think will be relevant to us, then this class is for you." counselor_introduction_1: "Do you have life experience? A different perspective on things that can help us decide how to shape CodeCombat? Of all these roles, this will probably take the least time, but individually you may make the most difference. We're on the lookout for wisened sages, particularly in areas like: teaching, game development, open source project management, technical recruiting, entrepreneurship, or design." counselor_introduction_2: "Or really anything that is relevant to the development of CodeCombat. If you have knowledge and want to share it to help grow this project, then this class might be for you." counselor_attribute_1: "Experience, in any of the areas above or something you think might be helpful." counselor_attribute_2: "A little bit of free time!" counselor_join_desc: "tell us a little about yourself, what you've done and what you'd be interested in doing. We'll put you in our contact list and be in touch when we could use advice (not too often)." - more_about_counselor: "Learn More About Becoming A Valuable Counselor" + more_about_counselor: "Learn More About Becoming a Counselor" changes_auto_save: "Changes are saved automatically when you toggle checkboxes." diligent_scribes: "Our Diligent Scribes:" powerful_archmages: "Our Powerful Archmages:" diff --git a/app/styles/contribute_classes.sass b/app/styles/contribute_classes.sass index 4a5893fb4..9244aca55 100644 --- a/app/styles/contribute_classes.sass +++ b/app/styles/contribute_classes.sass @@ -31,7 +31,10 @@ box-sizing: border-box .header-scrolling-fix - padding-top: 20px !important + // Padding: so that the anchors get scrolled properly below the top bar. + padding-top: 65px + // Margin: so that there isn't a huge space between classes + margin-top: -50px .well padding: 5px 5px 5px 30px diff --git a/app/templates/contribute/contribute.jade b/app/templates/contribute/contribute.jade index 934f069fe..02db104d3 100644 --- a/app/templates/contribute/contribute.jade +++ b/app/templates/contribute/contribute.jade @@ -50,8 +50,8 @@ block content span(data-i18n="contribute.alert_account_message_suf") | first. - #archmage - .class_image.header-scrolling-fix + #archmage.header-scrolling-fix + .class_image img.img-responsive(src="/images/pages/contribute/archmage.png", alt="") h3.header-scrolling-fix @@ -59,15 +59,15 @@ block content span span(data-i18n="classes.archmage_title_description") (Coder) p(data-i18n="contribute.archmage_summary") - | Interested in working on database management, server administration, user facing - | graphics and building interface? Want to help build a game to help other people learn - | what you are good at? We have a lot to do and if you are an experienced programmer and - | want to develop for CodeCombat, this class is for you. We would love your help + | Interested in working on game graphics, user interface design, database and server organization, + | multiplayer networking, physics, sound, or game engine performance? Want to help build a game to + | help other people learn what you are good at? We have a lot to do and if you are an experienced + | programmer and want to develop for CodeCombat, this class is for you. We would love your help | building the best programming game ever. a(href="/contribute/archmage") - h3(data-i18n="contribute.more_about_archmage") - | Learn More About Becoming An Archmage + p.lead(data-i18n="contribute.more_about_archmage") + | Learn More About Becoming an Archmage label.checkbox(for="developer").well input(type='checkbox', name="developer", id="developer") @@ -77,9 +77,9 @@ block content | ✓ span(data-i18n="contribute.saved") Saved - #artisan + #artisan.header-scrolling-fix - .class_image.header-scrolling-fix + .class_image img.img-responsive(src="/images/pages/contribute/artisan.png", alt="") h3.header-scrolling-fix @@ -97,10 +97,10 @@ block content | Mondo Bizzaro span span(data-i18n="contribute.artisan_summary_suf") - | to then this class is for you. + | then this class is for you. a(href="/contribute/artisan") - h3(data-i18n="contribute.more_about_artisan") + p.lead(data-i18n="contribute.more_about_artisan") | Learn More About Becoming An Artisan label.checkbox(for="level_creator").well @@ -111,9 +111,9 @@ block content | ✓ span(data-i18n="contribute.saved") Saved - #adventurer + #adventurer.header-scrolling-fix - .class_image.header-scrolling-fix + .class_image img.img-responsive(src="/images/pages/contribute/adventurer.png", alt="") h3.header-scrolling-fix @@ -128,8 +128,8 @@ block content | If you can endure and have a high constitution score, then this class is for you. a(href="/contribute/adventurer") - h3(data-i18n="contribute.more_about_adventurer") - | Learn More About Becoming An Adventurer + p.lead(data-i18n="contribute.more_about_adventurer") + | Learn More About Becoming an Adventurer label.checkbox(for="tester").well input(type='checkbox', name="tester", id="tester") @@ -139,9 +139,9 @@ block content | ✓ span(data-i18n="contribute.saved") Saved - #scribe + #scribe.header-scrolling-fix - .class_image.header-scrolling-fix + .class_image img.img-responsive(src="/images/pages/contribute/scribe.png", alt="") h3.header-scrolling-fix @@ -152,16 +152,16 @@ block content span(data-i18n="contribute.scribe_summary_pref") | CodeCombat is not just going to be a bunch of levels. It will also be a resource of | programming knowledge that players can hook into. That way, each Artisan can link - | to a detailed article that is already written for the player's edification. - | Documentation akin to the + | to a detailed article that for the player's edification: + | documentation akin to what the a(href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide", data-i18n="contribute.scribe_introduction_url_mozilla") | Mozilla Developer Network span(data-i18n="contribute.scribe_summary_suf") | has built. If you enjoy explaining programming concepts, then this class is for you. a(href="/contribute/scribe") - h3(data-i18n="contribute.more_about_scribe") - | Learn More About Becoming A Scribe + p.lead(data-i18n="contribute.more_about_scribe") + | Learn More About Becoming a Scribe label.checkbox(for="article_editor").well input(type='checkbox', name="article_editor", id="article_editor") @@ -171,9 +171,9 @@ block content | ✓ span(data-i18n="contribute.saved") Saved - #diplomat + #diplomat.header-scrolling-fix - .class_image.header-scrolling-fix + .class_image img.img-responsive(src="/images/pages/contribute/diplomat.png", alt="") h3.header-scrolling-fix @@ -189,8 +189,8 @@ block content | for you. a(href="/contribute/diplomat") - h3(data-i18n="contribute.more_about_diplomat") - | Learn More About Becoming A Diplomat + p.lead(data-i18n="contribute.more_about_diplomat") + | Learn More About Becoming a Diplomat label.checkbox(for="translator").well input(type='checkbox', name="translator", id="translator") @@ -200,9 +200,9 @@ block content | ✓ span(data-i18n="contribute.saved") Saved - #ambassador + #ambassador.header-scrolling-fix - .class_image.header-scrolling-fix + .class_image img.img-responsive(src="/images/pages/contribute/ambassador.png", alt="") h3.header-scrolling-fix @@ -216,8 +216,8 @@ block content | and learn some programming, then this class is for you. a(href="/contribute/ambassador") - h3(data-i18n="contribute.more_about_ambassador") - | Learn More About Becoming An Ambassador + p.lead(data-i18n="contribute.more_about_ambassador") + | Learn More About Becoming an Ambassador label.checkbox(for="support").well input(type='checkbox', name="support", id="support") @@ -226,9 +226,10 @@ block content .saved-notification | ✓ span(data-i18n="contribute.saved") Saved - #counselor - .class_image.header-scrolling-fix + #counselor.header-scrolling-fix + + .class_image img.img-responsive(src="/images/pages/contribute/counselor.png", alt="") h3.header-scrolling-fix @@ -242,7 +243,7 @@ block content | that you think will be relevant to us, then this class is for you. a(href="/contribute/counselor") - h3(data-i18n="contribute.more_about_counselor") - | Learn More About Becoming A Counselor + p.lead(data-i18n="contribute.more_about_counselor") + | Learn More About Becoming a Counselor div.clearfix \ No newline at end of file From b4f75c6274fb6403d3c2b4ba8daaa7ec6891c37d Mon Sep 17 00:00:00 2001 From: Michael Schmatz Date: Mon, 17 Feb 2014 12:28:13 -0800 Subject: [PATCH 44/51] Added titles and descriptions for schema --- .../levels/sessions/level_session_schema.coffee | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/server/levels/sessions/level_session_schema.coffee b/server/levels/sessions/level_session_schema.coffee index a21c02844..4e352412a 100644 --- a/server/levels/sessions/level_session_schema.coffee +++ b/server/levels/sessions/level_session_schema.coffee @@ -143,29 +143,43 @@ _.extend LevelSessionSchema.properties, matches: type: 'array' + title: 'Matches' + description: 'All of the matches a submitted session has played in its current state.' items: type: 'object' properties: date: c.date - title: 'Time' + title: 'Date computed' + description: 'The date a match was computed.' metrics: type: 'object' + title: 'Metrics' + description: 'Various information about the outcome of a match.' properties: rank: + title: 'Rank' + description: 'A 0-indexed ranking representing the player\'s standing in the outcome of a match' type: 'number' opponents: type: 'array' + title: 'Opponents' + description: 'An array containing information about the opponents\' sessions in a given match.' items: type: 'object' properties: id: + title: 'Opponent Session ID' + description: 'The session ID of an opponent.' type: ['object', 'string'] codeSubmitDate: c.date title: 'Submitted' + description: 'The date which the opponent submitted their session (used to check if the match can be replayed)' metrics: type: 'object' properties: rank: + title: 'Opponent Rank' + description: 'The opponent\'s ranking in a given match' type: 'number' From 95587452162458dff8eaeaf587293d65281d0908 Mon Sep 17 00:00:00 2001 From: Nick Winter Date: Mon, 17 Feb 2014 12:40:40 -0800 Subject: [PATCH 45/51] Saving some uncommented i18n tags. --- app/locale/da.coffee | 2 +- app/locale/de.coffee | 8 ++--- app/locale/el.coffee | 2 +- app/locale/es.coffee | 4 +-- app/locale/fa.coffee | 66 +++++++++++++++++++-------------------- app/locale/it.coffee | 6 ++-- app/locale/no.coffee | 2 +- app/locale/ru.coffee | 20 ++++++------ app/locale/zh-HANS.coffee | 4 +-- app/locale/zh-HANT.coffee | 8 ++--- 10 files changed, 61 insertions(+), 61 deletions(-) diff --git a/app/locale/da.coffee b/app/locale/da.coffee index 3703108f1..b41ca1ebf 100644 --- a/app/locale/da.coffee +++ b/app/locale/da.coffee @@ -164,7 +164,7 @@ module.exports = nativeDescription: "dansk", englishDescription: "Danish", trans reload_title: "Genindlæs alt kode?" reload_really: "Er du sikker på at du ønsker at genindlæse denne bane helt fra begyndelsen?" reload_confirm: "Genindlæs alt" -# victory_title_prefix: "" + victory_title_prefix: "" victory_title_suffix: " Færdig" victory_sign_up: "Opret dig for at gemme dit fremskridt" victory_sign_up_poke: "Ønsker du at gemme din kode? Opret en gratis konto!" diff --git a/app/locale/de.coffee b/app/locale/de.coffee index 1b55e2eb0..c764e499f 100644 --- a/app/locale/de.coffee +++ b/app/locale/de.coffee @@ -135,11 +135,11 @@ module.exports = nativeDescription: "Deutsch", englishDescription: "German", tra account_profile: edit_settings: "Einstellungen ändern" profile_for_prefix: "Profil von " -# profile_for_suffix: "" + profile_for_suffix: "" profile: "Profil" user_not_found: "Kein Nutzer gefunden. URL überprüft?" gravatar_not_found_mine: "Wir konnten dein Profil nicht finden, das mit folgender Email Adresse verbunden ist:" -# gravatar_not_found_email_suffix: "." + gravatar_not_found_email_suffix: "." gravatar_signup_prefix: "Melde dich an unter " gravatar_signup_suffix: " um los zu legen!" gravatar_not_found_other: "Leider ist kein Profil mit der Email Adresse verknüpft." @@ -163,7 +163,7 @@ module.exports = nativeDescription: "Deutsch", englishDescription: "German", tra reload_title: "Gesamten Code neu laden?" reload_really: "Bist Du sicher, dass Du das Level neu beginnen willst?" reload_confirm: "Alles neu laden" -# victory_title_prefix: "" + victory_title_prefix: "" victory_title_suffix: " Abgeschlossen" victory_sign_up: "Melde Dich an, um Fortschritte zu speichern" victory_sign_up_poke: "Möchtest Du Neuigkeiten per Mail erhalten? Erstelle einen kostenlosen Account und wir halten Dich auf dem Laufenden." @@ -216,7 +216,7 @@ module.exports = nativeDescription: "Deutsch", englishDescription: "German", tra hipchat_prefix: "Besuche uns auch in unserem" hipchat_url: "HipChat room." level_some_options: "Einige Einstellungsmöglichkeiten?" -# level_tab_thangs: "Thangs" # Things? # <= no Thangs are the components of the level. Check the editor if you're not sure what it is. + level_tab_thangs: "Thangs" # Things? # <= no Thangs are the components of the level. Check the editor if you're not sure what it is. # rather dont't translate it level_tab_scripts: "Skripte" level_tab_settings: "Einstellungen" diff --git a/app/locale/el.coffee b/app/locale/el.coffee index 382c33450..500ed2b88 100644 --- a/app/locale/el.coffee +++ b/app/locale/el.coffee @@ -123,7 +123,7 @@ module.exports = nativeDescription: "ελληνικά", englishDescription: "Gre email_subscriptions: "Συνδρομές Email" email_announcements: "Ανακοινώσεις" # email_notifications_description: "Get periodic notifications for your account." -# email_announcements_description: "Λάβετε emails για τα τελευταία νέα και τις εξελίξεις του CodeCombat." + email_announcements_description: "Λάβετε emails για τα τελευταία νέα και τις εξελίξεις του CodeCombat." contributor_emails: "Contributor Class Emails" contribute_prefix: "Αναζητούμε για ανθρώπους που θέλουν να " contribute_page: "Σελίδα συνεισφοράς" diff --git a/app/locale/es.coffee b/app/locale/es.coffee index ae1744d8d..b242c7af6 100644 --- a/app/locale/es.coffee +++ b/app/locale/es.coffee @@ -136,7 +136,7 @@ module.exports = nativeDescription: "español", englishDescription: "Spanish", t account_profile: edit_settings: "Editar Ajustes" profile_for_prefix: "Perfil de " -# profile_for_suffix: "" + profile_for_suffix: "" profile: "Perfil" user_not_found: "No se encontró al usuario. ¿Comprueba la URL?" gravatar_not_found_mine: "No podemos encontrar el prefil asociado con:" @@ -164,7 +164,7 @@ module.exports = nativeDescription: "español", englishDescription: "Spanish", t reload_title: "¿Recargar todo el código?" reload_really: "¿Estas seguro que quieres reiniciar el nivel?" reload_confirm: "Recargarlo todo" -# victory_title_prefix: "" + victory_title_prefix: "" victory_title_suffix: " Completo" victory_sign_up: "Regístrate para recibir actualizaciones." victory_sign_up_poke: "¿Buscas recivir las últimas noticias en tu email? Create una cuente gratuita y recibe la correspondencia." diff --git a/app/locale/fa.coffee b/app/locale/fa.coffee index aa9367059..593da860a 100644 --- a/app/locale/fa.coffee +++ b/app/locale/fa.coffee @@ -5,10 +5,10 @@ module.exports = nativeDescription: "فارسی", englishDescription: "Persian", sending: "...در حال ارسال" cancel: "لغو" save: "ذخیره " -# delay_1_sec: "1 ثانیه" -# delay_3_sec: "3 ثانیه" -# delay_5_sec: "5 ثانیه" -# manual: "دستی" + delay_1_sec: "1 ثانیه" + delay_3_sec: "3 ثانیه" + delay_5_sec: "5 ثانیه" + manual: "دستی" # fork: "Fork" play: "سطوح" @@ -75,47 +75,47 @@ module.exports = nativeDescription: "فارسی", englishDescription: "Persian", campaign_beginner: "کمپین تازه کارها" campaign_beginner_description: ".که شما در آن می توانید جادوگری به وسیله برنامه نویسی را یادبگیرید..." campaign_dev: "مراحل سخت تصادفی" -# campaign_dev_description: "... جایی که میتونید طراحی ظاهر رو یاد بگیرید درحالی که فعالیت سخت تری انجام میدید" + campaign_dev_description: "... جایی که میتونید طراحی ظاهر رو یاد بگیرید درحالی که فعالیت سخت تری انجام میدید" campaign_multiplayer: "مسابقات چند نفره" -# campaign_multiplayer_description: "... جایی که کد رو به رو شدن با بقیه بازیکنان رو مینویسید." + campaign_multiplayer_description: "... جایی که کد رو به رو شدن با بقیه بازیکنان رو مینویسید." campaign_player_created: "ایجاد بازیکن" -# campaign_player_created_description: "... جایی که در مقابل خلاقیت نیرو هاتون قرار میگیرید جادوگران آرتیزان." -# level_difficulty: "سختی: " + campaign_player_created_description: "... جایی که در مقابل خلاقیت نیرو هاتون قرار میگیرید جادوگران آرتیزان." + level_difficulty: "سختی: " contact: contact_us: "CodeCombatتماس با " welcome: "خوب است از شما بشنویم, از طریق این فرم برای ما ایمیل ارسال کنید" -# contribute_prefix: "اگر علاقه مند به همکاری با ما هستید ، این صفحه را مطالعه کنید" -# contribute_page: "صفحه همکاری" -# contribute_suffix: "!" -# forum_prefix: "باری هر چیز عمومی، اینجا را مشاهده کنید " -# forum_page: "فاروم ما" -# forum_suffix: " به جای" -# send: "ارسال بازخورد" + contribute_prefix: "اگر علاقه مند به همکاری با ما هستید ، این صفحه را مطالعه کنید" + contribute_page: "صفحه همکاری" + contribute_suffix: "!" + forum_prefix: "باری هر چیز عمومی، اینجا را مشاهده کنید " + forum_page: "فاروم ما" + forum_suffix: " به جای" + send: "ارسال بازخورد" diplomat_suggestion: -# title: "کمک به ترجمه کمبت کد!" -# sub_heading: "ما توانایی زبان شما را نیاز داریم" + title: "کمک به ترجمه کمبت کد!" + sub_heading: "ما توانایی زبان شما را نیاز داریم" pitch_body: "ما کمبت کد را به زبان انگلیسی توسعه داده ایم اما بازیکنانی از سراسر دنیا داریم. خیلی از آنها دوست داند به فارسی بازیکنند اما انگلیسی صحبت نکنند, پس اگر به هر دو زبان میتوانید صحبت کنید, پس لطفاً به عنوان دیپلمات ثبت نامکنید و مارا در ترجمه بازی و تمام مراحل به فارسی یاری نمایید." missing_translations: "تا زمانی که به مشغول ترجمه به فارسی هستیم , شما انگلیسی مشاهده میکنید بدون ترجمه فارسی." -# learn_more: "بیشتر درباره دیپلمات بودن بیاموزید" -# subscribe_as_diplomat: "به عنوان یک دیپلمات تعقیبمان کنید" + learn_more: "بیشتر درباره دیپلمات بودن بیاموزید" + subscribe_as_diplomat: "به عنوان یک دیپلمات تعقیبمان کنید" -# wizard_settings: -# title: "تنظیمات جادویی" -# customize_avatar: "آواتار خود را شکل دهید" + wizard_settings: + title: "تنظیمات جادویی" + customize_avatar: "آواتار خود را شکل دهید" -# account_settings: -# title: "تنظیمات حساب کاربری" -# not_logged_in: "برای ایجاد تغییر وارد شوید یا ثبت نام نمایید" -# autosave: "تغییرات به طور خودکار ثبت شد" -# me_tab: "من" -# picture_tab: "تصاویر" -# wizard_tab: "جادو" -# password_tab: "کلمه عبور" -# emails_tab: "ایمیل ها" -# gravatar_select: " استفاده شود Gravatar انتخاب کنید کدام تصویر" -# gravatar_add_photos: "Add thumbnails and photos to a Gravatar account for your email to choose an image." + account_settings: + title: "تنظیمات حساب کاربری" + not_logged_in: "برای ایجاد تغییر وارد شوید یا ثبت نام نمایید" + autosave: "تغییرات به طور خودکار ثبت شد" + me_tab: "من" + picture_tab: "تصاویر" + wizard_tab: "جادو" + password_tab: "کلمه عبور" + emails_tab: "ایمیل ها" + gravatar_select: " استفاده شود Gravatar انتخاب کنید کدام تصویر" + gravatar_add_photos: "Add thumbnails and photos to a Gravatar account for your email to choose an image." # gravatar_add_more_photos: "Add more photos to your Gravatar account to access them here." # wizard_color: "Wizard Clothes Color" # new_password: "New Password" diff --git a/app/locale/it.coffee b/app/locale/it.coffee index a41951cdd..249a2c9ae 100644 --- a/app/locale/it.coffee +++ b/app/locale/it.coffee @@ -164,7 +164,7 @@ module.exports = nativeDescription: "italiano", englishDescription: "Italian", t reload_title: "Ricarica tutto il codice?" reload_really: "Sei sicuro di voler ricominciare il livello?" reload_confirm: "Ricarica tutto" -# victory_title_prefix: "" + victory_title_prefix: "" victory_title_suffix: " Completato" victory_sign_up: "Registrati per gli aggiornamenti" victory_sign_up_poke: "Vuoi ricevere le ultime novità per email? Crea un account gratuito e ti terremo aggiornato!" @@ -313,7 +313,7 @@ module.exports = nativeDescription: "italiano", englishDescription: "Italian", t mit_license_url: "licenza MIT" code_description_suffix: "Ciò comprende tutto il codice in Sistemi e Componenti che è reso disponibile da CodeCombat allo scopo di creare nuovi livelli." art_title: "Grafica/musica - Creative Commons" - art_description_prefix: "Tutti i contenuti comuni sono resi disponibili con la" + art_description_prefix: "Tutti i contenuti comuni sono resi disponibili con la" cc_license_url: "Creative Commons Attribution 4.0 International License" art_description_suffix: "I contenuti comuni sono quelli resi disponibili da CodeCombat allo scopo di creare livelli. Ciò include:" art_music: "Musica" @@ -325,7 +325,7 @@ module.exports = nativeDescription: "italiano", englishDescription: "Italian", t art_paragraph_1: "Per l'attribuzione dei diritti, cita codecombat.com e metti un link nelle vicinanze della risorsa usata o dove è appropriato per l'oggetto in questione." use_list_1: "Se usato in un video o in un altro gioco, inserire codecombat.com nei crediti." use_list_2: "Se usato in un sito, inserire un link vicino alla risorsa; ad esempio sotto un'immagine, oppure in una apposita pagina di crediti dove potresti anche menzionare altri lavori CC e programmi OS usati nel sito. Se qualcosa fa già chiaro riferimento a CodeCombat, ad esempio un testo di blog che cita CodeCombat, non è necessario attribuire i crediti separatamente." -# art_paragraph_2: "Se il contenuto utilizzato non è stato creato da CodeCombat ma da un utente di codecombat.com, attribuiscilo a lui e segui le indicazioni dei crediti contenute nella descrizione di quella risorsa (se ci sono)." + art_paragraph_2: "Se il contenuto utilizzato non è stato creato da CodeCombat ma da un utente di codecombat.com, attribuiscilo a lui e segui le indicazioni dei crediti contenute nella descrizione di quella risorsa (se ci sono)." rights_title: "Diritti riservati" rights_desc: "Per i livelli stessi, tutti i diritti sono riservati. Ciò comprende" rights_scripts: "Script" diff --git a/app/locale/no.coffee b/app/locale/no.coffee index 2c971194d..4330d0bd7 100644 --- a/app/locale/no.coffee +++ b/app/locale/no.coffee @@ -164,7 +164,7 @@ module.exports = nativeDescription: "Norsk", englishDescription: "Norwegian", tr reload_title: "Laste All Koden på Nytt?" reload_really: "Er du sikker på at du vil laste dette nivået på nytt, tilbake til begynnelsen?" reload_confirm: "Last Alle på Nytt" -# victory_title_prefix: "" + victory_title_prefix: "" victory_title_suffix: " Ferdig" victory_sign_up: "Tegn deg på for Oppdateringer" victory_sign_up_poke: "Vil du ha siste nytt på epost? Opprett en gratis konto, så vil vi holde deg oppdatert!" diff --git a/app/locale/ru.coffee b/app/locale/ru.coffee index 8afed5cba..3d5313c7c 100644 --- a/app/locale/ru.coffee +++ b/app/locale/ru.coffee @@ -33,13 +33,13 @@ module.exports = nativeDescription: "русский язык", englishDescriptio twitter_follow: "Подписаться" employers: "Работодателям" -# versions: + versions: save_version_title: "Сохранить новую версию" # new_major_version: "New Major Version" -# cla_prefix: "Чтобы сохранить изменения, первым делом вы должны согласиться с нашим" + cla_prefix: "Чтобы сохранить изменения, первым делом вы должны согласиться с нашим" # cla_url: "CLA" # cla_suffix: "." -# cla_agree: "Я СОГЛАСЕН" + cla_agree: "Я СОГЛАСЕН" login: sign_up: "Создать Профиль" @@ -103,7 +103,7 @@ module.exports = nativeDescription: "русский язык", englishDescriptio wizard_settings: title: "Мастер настройки" -# customize_avatar: "Изменить свой аватар" + customize_avatar: "Изменить свой аватар" account_settings: title: "Настройки аккаунта" @@ -122,7 +122,7 @@ module.exports = nativeDescription: "русский язык", englishDescriptio new_password_verify: "Подтверждение пароля" email_subscriptions: "Email-подписки" email_announcements: "Оповещения" -# email_notifications_description: "Получать периодические уведомления для вашего аккаунта." + email_notifications_description: "Получать периодические уведомления для вашего аккаунта." email_announcements_description: "Получать email-оповещения о последних новостях CodeCombat." contributor_emails: "Рассылки по классам участников" contribute_prefix: "Нам нужны люди, которые присоединятся к нашей команде! Зайдите на " @@ -191,7 +191,7 @@ module.exports = nativeDescription: "русский язык", englishDescriptio tome_select_a_thang: "Выбрать кого-нибудь для " tome_available_spells: "Доступные заклинания" hud_continue: "Продолжить (нажмите Shift+Space)" -# spell_saved: "Заклинание сохранено" + spell_saved: "Заклинание сохранено" # admin: # av_title: "Admin Views" @@ -244,15 +244,15 @@ module.exports = nativeDescription: "русский язык", englishDescriptio # edit_article_title: "Edit Article" general: -# and: "и" + and: "и" or: "или" name: "Имя" # body: "Body" -# version: "Версия" + version: "Версия" # commit_msg: "Commit Message" # version_history_for: "Version History for: " -# results: "Результаты" -# description: "Описание" + results: "Результаты" + description: "Описание" email: "Email" message: "Сообщение" diff --git a/app/locale/zh-HANS.coffee b/app/locale/zh-HANS.coffee index e17085416..155b3e6e3 100644 --- a/app/locale/zh-HANS.coffee +++ b/app/locale/zh-HANS.coffee @@ -136,7 +136,7 @@ module.exports = nativeDescription: "简体中文", englishDescription: "Chinese account_profile: edit_settings: "编辑设置" profile_for_prefix: "关于TA的基本资料:" -# profile_for_suffix: "" + profile_for_suffix: "" profile: "基本资料" user_not_found: "没有找到用户。检查URL?" gravatar_not_found_mine: "我们找不到TA的基本资料:" @@ -164,7 +164,7 @@ module.exports = nativeDescription: "简体中文", englishDescription: "Chinese reload_title: "重载所有代码?" reload_really: "确定重载这一关,返回开始处吗?" reload_confirm: "重载所有" -# victory_title_prefix: "" + victory_title_prefix: "" victory_title_suffix: " 完成" victory_sign_up: "保存进度" victory_sign_up_poke: "想保存你的代码?创建一个免费账户吧!" diff --git a/app/locale/zh-HANT.coffee b/app/locale/zh-HANT.coffee index f12a105a0..4f18b48e2 100644 --- a/app/locale/zh-HANT.coffee +++ b/app/locale/zh-HANT.coffee @@ -244,10 +244,10 @@ module.exports = nativeDescription: "繁体中文", englishDescription: "Chinese # edit_btn_preview: "Preview" # edit_article_title: "Edit Article" -# general: + general: # and: "and" -# or: "或" -# name: "名字" + or: "或" + name: "名字" # body: "Body" # version: "Version" # commit_msg: "Commit Message" @@ -255,7 +255,7 @@ module.exports = nativeDescription: "繁体中文", englishDescription: "Chinese # results: "Results" # description: "Description" # email: "Email" -# message: "訊息" + message: "訊息" about: who_is_codecombat: "什麼是CodeCombat?" From cc4c0f0e8594386cbc4951b80853f9c3029a1e7b Mon Sep 17 00:00:00 2001 From: Nick Winter Date: Mon, 17 Feb 2014 12:42:04 -0800 Subject: [PATCH 46/51] Exported a few new en i18n tags to the other languages. --- app/locale/ar.coffee | 27 +++++++++----- app/locale/bg.coffee | 29 +++++++++------ app/locale/cs.coffee | 16 +++++++-- app/locale/da.coffee | 45 +++++++++++++---------- app/locale/de.coffee | 49 ++++++++++++++----------- app/locale/el.coffee | 37 +++++++++++-------- app/locale/en-AU.coffee | 25 ++++++++----- app/locale/en-GB.coffee | 25 ++++++++----- app/locale/en-US.coffee | 25 ++++++++----- app/locale/es-419.coffee | 33 ++++++++++------- app/locale/es-ES.coffee | 27 +++++++++----- app/locale/es.coffee | 31 ++++++++++------ app/locale/fa.coffee | 27 +++++++++----- app/locale/fi.coffee | 25 ++++++++----- app/locale/fr.coffee | 16 ++++++--- app/locale/he.coffee | 25 ++++++++----- app/locale/hi.coffee | 25 ++++++++----- app/locale/hu.coffee | 35 +++++++++++------- app/locale/id.coffee | 25 ++++++++----- app/locale/it.coffee | 17 ++++++--- app/locale/ja.coffee | 43 +++++++++++++--------- app/locale/ko.coffee | 25 ++++++++----- app/locale/lt.coffee | 25 ++++++++----- app/locale/ms-BA.coffee | 27 +++++++++----- app/locale/nb.coffee | 27 +++++++++----- app/locale/nl.coffee | 27 +++++++++----- app/locale/nn.coffee | 25 ++++++++----- app/locale/no.coffee | 29 +++++++++------ app/locale/pl.coffee | 31 ++++++++++------ app/locale/pt-BR.coffee | 12 +++++-- app/locale/pt-PT.coffee | 31 ++++++++++------ app/locale/pt.coffee | 27 +++++++++----- app/locale/ro.coffee | 25 ++++++++----- app/locale/ru.coffee | 27 +++++++++----- app/locale/sk.coffee | 29 +++++++++------ app/locale/sl.coffee | 25 ++++++++----- app/locale/sr.coffee | 31 ++++++++++------ app/locale/sv.coffee | 35 +++++++++++------- app/locale/th.coffee | 35 +++++++++++------- app/locale/tr.coffee | 31 ++++++++++------ app/locale/uk.coffee | 75 +++++++++++++++++---------------------- app/locale/ur.coffee | 25 ++++++++----- app/locale/vi.coffee | 25 ++++++++----- app/locale/zh-HANS.coffee | 37 +++++++++++-------- app/locale/zh-HANT.coffee | 38 ++++++++++++-------- app/locale/zh.coffee | 29 +++++++++------ 46 files changed, 876 insertions(+), 484 deletions(-) diff --git a/app/locale/ar.coffee b/app/locale/ar.coffee index 62f852c19..53c26035c 100644 --- a/app/locale/ar.coffee +++ b/app/locale/ar.coffee @@ -42,9 +42,9 @@ module.exports = nativeDescription: "العربية", englishDescription: "Arabi # cla_agree: "I AGREE" # login: +# sign_up: "Create Account" # log_in: "Log In" # log_out: "Log Out" -# sign_up: "Create An Account" # recover: "recover account" # recover: @@ -352,6 +352,7 @@ module.exports = nativeDescription: "العربية", englishDescription: "Arabi # alert_account_message_pref: "To subscribe for class emails, you'll need to " # alert_account_message_suf: "first." # alert_account_message_create_url: "create an account" +# archmage_summary: "Interested in working on game graphics, user interface design, database and server organization, multiplayer networking, physics, sound, or game engine performance? Want to help build a game to help other people learn what you are good at? We have a lot to do and if you are an experienced programmer and want to develop for CodeCombat, this class is for you. We would love your help building the best programming game ever." # archmage_introduction: "One of the best parts about building games is they synthesize so many different things. Graphics, sound, real-time networking, social networking, and of course many of the more common aspects of programming, from low-level database management, and server administration to user facing design and interface building. There's a lot to do, and if you're an experienced programmer with a hankering to really dive into the nitty-gritty of CodeCombat, this class might be for you. We would love to have your help building the best programming game ever." # class_attributes: "Class Attributes" # archmage_attribute_1_pref: "Knowledge in " @@ -364,10 +365,12 @@ module.exports = nativeDescription: "العربية", englishDescription: "Arabi # join_desc_4: "and we'll go from there!" # join_url_email: "Email us" # join_url_hipchat: "public HipChat room" -# more_about_archmage: "Learn More About Becoming A Powerful Archmage" +# more_about_archmage: "Learn More About Becoming an Archmage" # archmage_subscribe_desc: "Get emails on new coding opportunities and announcements." +# artisan_summary_pref: "Want to design levels and expand CodeCombat's arsenal? People are playing through our content at a pace faster than we can build! Right now, our level editor is barebone, so be wary. Making levels will be a little challenging and buggy. If you have visions of campaigns spanning for-loops to" +# artisan_summary_suf: "then this class is for you." # artisan_introduction_pref: "We must construct additional levels! People be clamoring for more content, and we can only build so many ourselves. Right now your workstation is level one; our level editor is barely usable even by its creators, so be wary. If you have visions of campaigns spanning for-loops to" -# artisan_introduction_suf: "to then this class might be for you." +# artisan_introduction_suf: "then this class might be for you." # artisan_attribute_1: "Any experience in building content like this would be nice, such as using Blizzard's level editors. But not required!" # artisan_attribute_2: "A hankering to do a whole lot of testing and iteration. To make good levels, you need to take it to others and watch them play it, and be prepared to find a lot of things to fix." # artisan_attribute_3: "For the time being, endurance en par with an Adventurer. Our Level Editor is super preliminary and frustrating to use. You have been warned!" @@ -376,24 +379,28 @@ module.exports = nativeDescription: "العربية", englishDescription: "Arabi # artisan_join_step2: "Create a new level and explore existing levels." # artisan_join_step3: "Find us in our public HipChat room for help." # artisan_join_step4: "Post your levels on the forum for feedback." -# more_about_artisan: "Learn More About Becoming A Creative Artisan" +# more_about_artisan: "Learn More About Becoming an Artisan" # artisan_subscribe_desc: "Get emails on level editor updates and announcements." +# adventurer_sumamry: "Let us be clear about your role: you are the tank. You are going to take heavy damage. We need people to try out brand-new levels and help identify how to make things better. The pain will be enormous; making good games is a long process and no one gets it right the first time. If you can endure and have a high constitution score, then this class is for you." # adventurer_introduction: "Let's be clear about your role: you are the tank. You're going to take heavy damage. We need people to try out brand-new levels and help identify how to make things better. The pain will be enormous; making good games is a long process and no one gets it right the first time. If you can endure and have a high constitution score, then this class might be for you." # adventurer_attribute_1: "A thirst for learning. You want to learn how to code and we want to teach you how to code. You'll probably be doing most of the teaching in this case, though." # adventurer_attribute_2: "Charismatic. Be gentle but articulate about what needs improving, and offer suggestions on how to improve." # adventurer_join_pref: "Either get together with (or recruit!) an Artisan and work with them, or check the box below to receive emails when there are new levels to test. We'll also be posting about levels to review on our networks like" # adventurer_forum_url: "our forum" # adventurer_join_suf: "so if you prefer to be notified those ways, sign up there!" -# more_about_adventurer: "Learn More About Becoming A Brave Adventurer" +# more_about_adventurer: "Learn More About Becoming an Adventurer" # adventurer_subscribe_desc: "Get emails when there are new levels to test." +# scribe_summary_pref: "CodeCombat is not just going to be a bunch of levels. It will also be a resource of programming knowledge that players can hook into. That way, each Artisan can link to a detailed article that for the player's edification: documentation akin to what the " +# scribe_summary_sufx: " has built. If you enjoy explaining programming concepts, then this class is for you." # scribe_introduction_pref: "CodeCombat isn't just going to be a bunch of levels. It will also include a resource for knowledge, a wiki of programming concepts that levels can hook into. That way rather than each Artisan having to describe in detail what a comparison operator is, they can simply link their level to the Article describing them that is already written for the player's edification. Something along the lines of what the " # scribe_introduction_url_mozilla: "Mozilla Developer Network" # scribe_introduction_suf: " has built. If your idea of fun is articulating the concepts of programming in Markdown form, then this class might be for you." # scribe_attribute_1: "Skill in words is pretty much all you need. Not only grammar and spelling, but able to convey complicated ideas to others." # contact_us_url: "Contact us" # scribe_join_description: "tell us a little about yourself, your experience with programming and what sort of things you'd like to write about. We'll go from there!" -# more_about_scribe: "Learn More About Becoming A Diligent Scribe" +# more_about_scribe: "Learn More About Becoming a Scribe" # scribe_subscribe_desc: "Get emails about article writing announcements." +# diplomat_summary: "There is a large interest in CodeCombat in other countries that do not speak English! We are looking for translators who are willing to spend their time translating the site's corpus of words so that CodeCombat is accessible across the world as soon as possible. If you'd like to help getting CodeCombat international, then this class is for you." # diplomat_introduction_pref: "So, if there's one thing we learned from the " # diplomat_launch_url: "launch in October" # diplomat_introduction_suf: "it's that there is sizeable interest in CodeCombat in other countries, particularly Brazil! We're building a corps of translators eager to turn one set of words into another set of words to get CodeCombat as accessible across the world as possible. If you like getting sneak peeks at upcoming content and getting these levels to your fellow nationals ASAP, then this class might be for you." @@ -401,21 +408,23 @@ module.exports = nativeDescription: "العربية", englishDescription: "Arabi # diplomat_join_pref: "We've started a lot of initial translations at " # diplomat_doc_url: "this forum post" # diplomat_join_suf: "so check it out and add things for your language. Also, check this box below to keep up-to-date on new internationalization developments!" -# more_about_diplomat: "Learn More About Becoming A Great Diplomat" +# more_about_diplomat: "Learn More About Becoming a Diplomat" # diplomat_subscribe_desc: "Get emails about i18n developments and levels to translate." +# ambassador_summary: "We are trying to build a community, and every community needs a support team when there are troubles. We have got chats, emails, and social networks so that our users can get acquainted with the game. If you want to help people get involved, have fun, and learn some programming, then this class is for you." # ambassador_introduction: "This is a community we're building, and you are the connections. We've got Olark chats, emails, and social networks with lots of people to talk with and help get acquainted with the game and learn from. If you want to help people get involved and have fun, and get a good feel of the pulse of CodeCombat and where we're going, then this class might be for you." # ambassador_attribute_1: "Communication skills. Be able to identify the problems players are having and help them solve them. Also, keep the rest of us informed about what players are saying, what they like and don't like and want more of!" # ambassador_join_desc: "tell us a little about yourself, what you've done and what you'd be interested in doing. We'll go from there!" # ambassador_join_note_strong: "Note" # ambassador_join_note_desc: "One of our top priorities is to build multiplayer where players having difficulty solving levels can summon higher level wizards to help them. This will be a great way for ambassadors to do their thing. We'll keep you posted!" -# more_about_ambassador: "Learn More About Becoming A Helpful Ambassador" +# more_about_ambassador: "Learn More About Becoming an Ambassador" # ambassador_subscribe_desc: "Get emails on support updates and multiplayer developments." +# counselor_summary: "None of the above roles fit what you are interested in? Do not worry, we are on the lookout for anybody who wants a hand in the development of CodeCombat! If you are interested in teaching, game development, open source management, or anything else that you think will be relevant to us, then this class is for you." # counselor_introduction_1: "Do you have life experience? A different perspective on things that can help us decide how to shape CodeCombat? Of all these roles, this will probably take the least time, but individually you may make the most difference. We're on the lookout for wisened sages, particularly in areas like: teaching, game development, open source project management, technical recruiting, entrepreneurship, or design." # counselor_introduction_2: "Or really anything that is relevant to the development of CodeCombat. If you have knowledge and want to share it to help grow this project, then this class might be for you." # counselor_attribute_1: "Experience, in any of the areas above or something you think might be helpful." # counselor_attribute_2: "A little bit of free time!" # counselor_join_desc: "tell us a little about yourself, what you've done and what you'd be interested in doing. We'll put you in our contact list and be in touch when we could use advice (not too often)." -# more_about_counselor: "Learn More About Becoming A Valuable Counselor" +# more_about_counselor: "Learn More About Becoming a Counselor" # changes_auto_save: "Changes are saved automatically when you toggle checkboxes." # diligent_scribes: "Our Diligent Scribes:" # powerful_archmages: "Our Powerful Archmages:" diff --git a/app/locale/bg.coffee b/app/locale/bg.coffee index 79e20f17a..78a7340a6 100644 --- a/app/locale/bg.coffee +++ b/app/locale/bg.coffee @@ -5,12 +5,12 @@ module.exports = nativeDescription: "български език", englishDescri # sending: "Sending..." # cancel: "Cancel" # save: "Save" -# fork: "Fork" -# play: "Play" # delay_1_sec: "1 second" # delay_3_sec: "3 seconds" # delay_5_sec: "5 seconds" # manual: "Manual" +# fork: "Fork" +# play: "Play" # modal: # close: "Close" @@ -352,6 +352,7 @@ module.exports = nativeDescription: "български език", englishDescri # alert_account_message_pref: "To subscribe for class emails, you'll need to " # alert_account_message_suf: "first." # alert_account_message_create_url: "create an account" +# archmage_summary: "Interested in working on game graphics, user interface design, database and server organization, multiplayer networking, physics, sound, or game engine performance? Want to help build a game to help other people learn what you are good at? We have a lot to do and if you are an experienced programmer and want to develop for CodeCombat, this class is for you. We would love your help building the best programming game ever." # archmage_introduction: "One of the best parts about building games is they synthesize so many different things. Graphics, sound, real-time networking, social networking, and of course many of the more common aspects of programming, from low-level database management, and server administration to user facing design and interface building. There's a lot to do, and if you're an experienced programmer with a hankering to really dive into the nitty-gritty of CodeCombat, this class might be for you. We would love to have your help building the best programming game ever." # class_attributes: "Class Attributes" # archmage_attribute_1_pref: "Knowledge in " @@ -364,10 +365,12 @@ module.exports = nativeDescription: "български език", englishDescri # join_desc_4: "and we'll go from there!" # join_url_email: "Email us" # join_url_hipchat: "public HipChat room" -# more_about_archmage: "Learn More About Becoming A Powerful Archmage" +# more_about_archmage: "Learn More About Becoming an Archmage" # archmage_subscribe_desc: "Get emails on new coding opportunities and announcements." +# artisan_summary_pref: "Want to design levels and expand CodeCombat's arsenal? People are playing through our content at a pace faster than we can build! Right now, our level editor is barebone, so be wary. Making levels will be a little challenging and buggy. If you have visions of campaigns spanning for-loops to" +# artisan_summary_suf: "then this class is for you." # artisan_introduction_pref: "We must construct additional levels! People be clamoring for more content, and we can only build so many ourselves. Right now your workstation is level one; our level editor is barely usable even by its creators, so be wary. If you have visions of campaigns spanning for-loops to" -# artisan_introduction_suf: "to then this class might be for you." +# artisan_introduction_suf: "then this class might be for you." # artisan_attribute_1: "Any experience in building content like this would be nice, such as using Blizzard's level editors. But not required!" # artisan_attribute_2: "A hankering to do a whole lot of testing and iteration. To make good levels, you need to take it to others and watch them play it, and be prepared to find a lot of things to fix." # artisan_attribute_3: "For the time being, endurance en par with an Adventurer. Our Level Editor is super preliminary and frustrating to use. You have been warned!" @@ -376,24 +379,28 @@ module.exports = nativeDescription: "български език", englishDescri # artisan_join_step2: "Create a new level and explore existing levels." # artisan_join_step3: "Find us in our public HipChat room for help." # artisan_join_step4: "Post your levels on the forum for feedback." -# more_about_artisan: "Learn More About Becoming A Creative Artisan" +# more_about_artisan: "Learn More About Becoming an Artisan" # artisan_subscribe_desc: "Get emails on level editor updates and announcements." +# adventurer_sumamry: "Let us be clear about your role: you are the tank. You are going to take heavy damage. We need people to try out brand-new levels and help identify how to make things better. The pain will be enormous; making good games is a long process and no one gets it right the first time. If you can endure and have a high constitution score, then this class is for you." # adventurer_introduction: "Let's be clear about your role: you are the tank. You're going to take heavy damage. We need people to try out brand-new levels and help identify how to make things better. The pain will be enormous; making good games is a long process and no one gets it right the first time. If you can endure and have a high constitution score, then this class might be for you." # adventurer_attribute_1: "A thirst for learning. You want to learn how to code and we want to teach you how to code. You'll probably be doing most of the teaching in this case, though." # adventurer_attribute_2: "Charismatic. Be gentle but articulate about what needs improving, and offer suggestions on how to improve." # adventurer_join_pref: "Either get together with (or recruit!) an Artisan and work with them, or check the box below to receive emails when there are new levels to test. We'll also be posting about levels to review on our networks like" # adventurer_forum_url: "our forum" # adventurer_join_suf: "so if you prefer to be notified those ways, sign up there!" -# more_about_adventurer: "Learn More About Becoming A Brave Adventurer" +# more_about_adventurer: "Learn More About Becoming an Adventurer" # adventurer_subscribe_desc: "Get emails when there are new levels to test." +# scribe_summary_pref: "CodeCombat is not just going to be a bunch of levels. It will also be a resource of programming knowledge that players can hook into. That way, each Artisan can link to a detailed article that for the player's edification: documentation akin to what the " +# scribe_summary_sufx: " has built. If you enjoy explaining programming concepts, then this class is for you." # scribe_introduction_pref: "CodeCombat isn't just going to be a bunch of levels. It will also include a resource for knowledge, a wiki of programming concepts that levels can hook into. That way rather than each Artisan having to describe in detail what a comparison operator is, they can simply link their level to the Article describing them that is already written for the player's edification. Something along the lines of what the " # scribe_introduction_url_mozilla: "Mozilla Developer Network" # scribe_introduction_suf: " has built. If your idea of fun is articulating the concepts of programming in Markdown form, then this class might be for you." # scribe_attribute_1: "Skill in words is pretty much all you need. Not only grammar and spelling, but able to convey complicated ideas to others." # contact_us_url: "Contact us" # scribe_join_description: "tell us a little about yourself, your experience with programming and what sort of things you'd like to write about. We'll go from there!" -# more_about_scribe: "Learn More About Becoming A Diligent Scribe" +# more_about_scribe: "Learn More About Becoming a Scribe" # scribe_subscribe_desc: "Get emails about article writing announcements." +# diplomat_summary: "There is a large interest in CodeCombat in other countries that do not speak English! We are looking for translators who are willing to spend their time translating the site's corpus of words so that CodeCombat is accessible across the world as soon as possible. If you'd like to help getting CodeCombat international, then this class is for you." # diplomat_introduction_pref: "So, if there's one thing we learned from the " # diplomat_launch_url: "launch in October" # diplomat_introduction_suf: "it's that there is sizeable interest in CodeCombat in other countries, particularly Brazil! We're building a corps of translators eager to turn one set of words into another set of words to get CodeCombat as accessible across the world as possible. If you like getting sneak peeks at upcoming content and getting these levels to your fellow nationals ASAP, then this class might be for you." @@ -401,21 +408,23 @@ module.exports = nativeDescription: "български език", englishDescri # diplomat_join_pref: "We've started a lot of initial translations at " # diplomat_doc_url: "this forum post" # diplomat_join_suf: "so check it out and add things for your language. Also, check this box below to keep up-to-date on new internationalization developments!" -# more_about_diplomat: "Learn More About Becoming A Great Diplomat" +# more_about_diplomat: "Learn More About Becoming a Diplomat" # diplomat_subscribe_desc: "Get emails about i18n developments and levels to translate." +# ambassador_summary: "We are trying to build a community, and every community needs a support team when there are troubles. We have got chats, emails, and social networks so that our users can get acquainted with the game. If you want to help people get involved, have fun, and learn some programming, then this class is for you." # ambassador_introduction: "This is a community we're building, and you are the connections. We've got Olark chats, emails, and social networks with lots of people to talk with and help get acquainted with the game and learn from. If you want to help people get involved and have fun, and get a good feel of the pulse of CodeCombat and where we're going, then this class might be for you." # ambassador_attribute_1: "Communication skills. Be able to identify the problems players are having and help them solve them. Also, keep the rest of us informed about what players are saying, what they like and don't like and want more of!" # ambassador_join_desc: "tell us a little about yourself, what you've done and what you'd be interested in doing. We'll go from there!" # ambassador_join_note_strong: "Note" # ambassador_join_note_desc: "One of our top priorities is to build multiplayer where players having difficulty solving levels can summon higher level wizards to help them. This will be a great way for ambassadors to do their thing. We'll keep you posted!" -# more_about_ambassador: "Learn More About Becoming A Helpful Ambassador" +# more_about_ambassador: "Learn More About Becoming an Ambassador" # ambassador_subscribe_desc: "Get emails on support updates and multiplayer developments." +# counselor_summary: "None of the above roles fit what you are interested in? Do not worry, we are on the lookout for anybody who wants a hand in the development of CodeCombat! If you are interested in teaching, game development, open source management, or anything else that you think will be relevant to us, then this class is for you." # counselor_introduction_1: "Do you have life experience? A different perspective on things that can help us decide how to shape CodeCombat? Of all these roles, this will probably take the least time, but individually you may make the most difference. We're on the lookout for wisened sages, particularly in areas like: teaching, game development, open source project management, technical recruiting, entrepreneurship, or design." # counselor_introduction_2: "Or really anything that is relevant to the development of CodeCombat. If you have knowledge and want to share it to help grow this project, then this class might be for you." # counselor_attribute_1: "Experience, in any of the areas above or something you think might be helpful." # counselor_attribute_2: "A little bit of free time!" # counselor_join_desc: "tell us a little about yourself, what you've done and what you'd be interested in doing. We'll put you in our contact list and be in touch when we could use advice (not too often)." -# more_about_counselor: "Learn More About Becoming A Valuable Counselor" +# more_about_counselor: "Learn More About Becoming a Counselor" # changes_auto_save: "Changes are saved automatically when you toggle checkboxes." # diligent_scribes: "Our Diligent Scribes:" # powerful_archmages: "Our Powerful Archmages:" diff --git a/app/locale/cs.coffee b/app/locale/cs.coffee index f08ad7d3a..abc4325c6 100644 --- a/app/locale/cs.coffee +++ b/app/locale/cs.coffee @@ -136,7 +136,7 @@ module.exports = nativeDescription: "čeština", englishDescription: "Czech", tr account_profile: edit_settings: "Editovat Nastavení" profile_for_prefix: "Profil pro " - profile_for_suffix: "" +# profile_for_suffix: "" profile: "Profil" user_not_found: "Uživatel nenalezen. Zkontrolujte adresu URL?" gravatar_not_found_mine: "Nenalezli jsme profil asociovaný s:" @@ -164,7 +164,7 @@ module.exports = nativeDescription: "čeština", englishDescription: "Czech", tr reload_title: "Znovunačíst veškerý kód?" reload_really: "Opravdu chcete resetovat tuto úroveň do počátečního stavu?" reload_confirm: "Znovu načíst vše" - victory_title_prefix: "" +# victory_title_prefix: "" victory_title_suffix: " Hotovo" victory_sign_up: "Přihlásit se pro uložení postupu" victory_sign_up_poke: "Chcete uložit váš kód? Vytvořte si účet zdarma!" @@ -238,6 +238,7 @@ module.exports = nativeDescription: "čeština", englishDescription: "Czech", tr create_system_title: "Vytvořit nový systém" new_component_title: "Vytvořit novou komponentu" new_component_field_system: "Systém" + article: edit_btn_preview: "Náhled" edit_article_title: "Editovat článek" @@ -351,6 +352,7 @@ module.exports = nativeDescription: "čeština", englishDescription: "Czech", tr alert_account_message_pref: "K přihlášení odebírání emailů si nejprve musíte " alert_account_message_suf: "vytvořit účet" alert_account_message_create_url: "." +# archmage_summary: "Interested in working on game graphics, user interface design, database and server organization, multiplayer networking, physics, sound, or game engine performance? Want to help build a game to help other people learn what you are good at? We have a lot to do and if you are an experienced programmer and want to develop for CodeCombat, this class is for you. We would love your help building the best programming game ever." archmage_introduction: "Jedna z nejlepších věcí na vytváření her je to, že se jedná o spojení různých procesů. Grafika, zvuk, síťování v reálném čase, mezilidské vztahy a samozřejmě také spousta běžných aspektů programování, od nízkoúrovňového managementu databáze přes administraci serverů až po tvorbu uživatelská rozhraní. Je zde spousta práce a pokud jste zkušený programátor a všeuměl připravený k ponoření se do hloubek CodeCombatu, tato skupina je pro vás. Budeme moc rádi za vaši pomoc při tvorbě té nejlepší programovací hry." class_attributes: "Vlastnosti" archmage_attribute_1_pref: "Znáte " @@ -365,6 +367,8 @@ module.exports = nativeDescription: "čeština", englishDescription: "Czech", tr join_url_hipchat: "veřejné HipChat chatovací místnosti" more_about_archmage: "Dozvědět se více o tom, jak se stát mocným Arcimágem" archmage_subscribe_desc: "Dostávat emailem oznámení a informacemi nových programovacích příležitostech" +# artisan_summary_pref: "Want to design levels and expand CodeCombat's arsenal? People are playing through our content at a pace faster than we can build! Right now, our level editor is barebone, so be wary. Making levels will be a little challenging and buggy. If you have visions of campaigns spanning for-loops to" +# artisan_summary_suf: "then this class is for you." artisan_introduction_pref: "Musíme vytvářet další úrovně! Lidé nás prosí o další obsah, ale sami zvládáme vytvořit jen málo. Naším prvním pracovním zastavením je první úroveň. Editor úrovní je tak-tak použitelný i pro jeho vlastní tvůrce. Máte-li vizi pro vytvoření vnořených úrovní alá " artisan_introduction_suf: "pak neváhejte, toto je vaše destinace." artisan_attribute_1: "Předchozí zkušenosti s vytvářením podobného obsahu by byly vítány, například z editorů úrovní Blizzardu, ale nejsou vyžadovány!" @@ -377,6 +381,7 @@ module.exports = nativeDescription: "čeština", englishDescription: "Czech", tr artisan_join_step4: "Zveřejněte vaši úroveň na fóru pro připomínkování." more_about_artisan: "Dozvědět se více o tom, jak se stát kreativním Řemeslníkem" artisan_subscribe_desc: "Dostávat emailem oznámení a informace o aktualizacích editoru úrovní." +# adventurer_sumamry: "Let us be clear about your role: you are the tank. You are going to take heavy damage. We need people to try out brand-new levels and help identify how to make things better. The pain will be enormous; making good games is a long process and no one gets it right the first time. If you can endure and have a high constitution score, then this class is for you." adventurer_introduction: "Ujasněme si dopředu jednu věc o vaší roli: budete jako tank. Projdete ohněm. Potřebujeme někoho, kdo odzkouší zbrusu nové úrovně a pomůže identifikovat kde je možno je zlepšit. Ten boj bude ohromný - tvorba her je dlouhý proces, který nikdo nezvládne na první pokus. Máte-li na to a vydržíte-li to, pak toto je vaše skupina." adventurer_attribute_1: "Touha po učení se. Vy se chcete naučit programovat a my vás to chceme naučit. Jenom, v tomto případě to budete vy, kdo bude vyučovat." adventurer_attribute_2: "Charismatický. Buďte mírný a pečlivě artikulujte co a jak je potřeba zlepšit." @@ -384,7 +389,9 @@ module.exports = nativeDescription: "čeština", englishDescription: "Czech", tr adventurer_forum_url: " našem fóru" adventurer_join_suf: "takže pokud chcete být v obraze, připojte se k nám!" more_about_adventurer: "Dozvědět se více o tom, jak se stát statečným Dobrodruhem" - adventurer_subscribe_desc: "Dostávat emailem oznámení a informace nových úrovních k testování." + adventurer_subscribe_desc: "Dostávat emailem oznámení a informace nových úrovních k testování." +# scribe_summary_pref: "CodeCombat is not just going to be a bunch of levels. It will also be a resource of programming knowledge that players can hook into. That way, each Artisan can link to a detailed article that for the player's edification: documentation akin to what the " +# scribe_summary_sufx: " has built. If you enjoy explaining programming concepts, then this class is for you." scribe_introduction_pref: "CodeCombat nebude pouze kupa úrovní. Bude také zahrnovat informační zdroje a wiki programovacích konceptů na které se úrovně mohou navázat. Takto, namísto toho aby každý Řemeslník musel sám do detailu popsatco který operátor dělá, mohou jednoduše nalinkovat svoji úroveň na článek existující k edukaci hráčů. Něco ve stylu " scribe_introduction_url_mozilla: "Mozilla Developer Network" scribe_introduction_suf: ". Jestliže vás baví popisovat a předávat koncept programování v Markdown editoru, pak tato role může být právě pro vás." @@ -393,6 +400,7 @@ module.exports = nativeDescription: "čeština", englishDescription: "Czech", tr scribe_join_description: "dejte nám o vás vědět, o vašich zkušenostech s programováním a o čm byste rádi psali. Od toho začneme!" more_about_scribe: "Dozvědět se více o tom, jak se stát pilným Pisálkem" scribe_subscribe_desc: "Dostávat emailem oznámení a informace o článcích." +# diplomat_summary: "There is a large interest in CodeCombat in other countries that do not speak English! We are looking for translators who are willing to spend their time translating the site's corpus of words so that CodeCombat is accessible across the world as soon as possible. If you'd like to help getting CodeCombat international, then this class is for you." diplomat_introduction_pref: "Jedna z věcí, kterou jsme zjistili během " diplomat_launch_url: "zahájení v Říjnu" diplomat_introduction_suf: "bylo, že o CodeCombat je velký zájem i v jiných zemích, obzvláště v Brazílii! Chystáme regiment překladatelů ke zpřístupnění CodeCombatu světu. Pokud chcete nakouknout pod pokličku, dozvědět se o připravovaných novinkách a zpřístupnit úrovně vašim národním kolegům, toto je role pro vás." @@ -402,6 +410,7 @@ module.exports = nativeDescription: "čeština", englishDescription: "Czech", tr diplomat_join_suf: ", tak si jej přečtěte a případně doplňte informace o vašem překladu. Přihlaste se také k odběru informací o vývoji v internacionalizaci!" more_about_diplomat: "Dozvědět se více o tom, jak se stát Diplomatem" diplomat_subscribe_desc: "Dostávat emailem oznámení a informace o internacionalizaci a o úrovních k překladu." +# ambassador_summary: "We are trying to build a community, and every community needs a support team when there are troubles. We have got chats, emails, and social networks so that our users can get acquainted with the game. If you want to help people get involved, have fun, and learn some programming, then this class is for you." ambassador_introduction: "Zde se tvoří komunita a vy jste její spojení. Využíváme chat, emaily a sociální sítě se spoustou lidí k informování a diskuzím a seznámení s naší hrou. Chcete-li pomoci lidem se přidat a pobavit se a získat dobrý náhled na CodeCombat a kam směřujeme, pak toto je vaše role." ambassador_attribute_1: "Komunikační schopnosti. Schopnost identifikovat problémy hráčů a pomoci jim je řešit. Naslouchat co hráči říkají, co mají rádi a co rádi nemají a komunikovat to zpět ostatním!" ambassador_join_desc: "dejte nám o sobě vědět, o tom co děláte a co byste rádi dělali. Od toho začneme!" @@ -409,6 +418,7 @@ module.exports = nativeDescription: "čeština", englishDescription: "Czech", tr ambassador_join_note_desc: "Jedna z našich priorit je vytvoření vícehráčové hry, kde hráč, který má problém s řešením úrovní může oslovit a požádat o pomoc zkušenější kouzelníky. To je přesně ten případ a místo pro pomoc Velvyslance . Dáme vám vědět více!" more_about_ambassador: "Dozvědět se více o tom, jak se stát nápomocným Velvyslancem" ambassador_subscribe_desc: "Dostávat emailem oznámení a informace o vývoji v podpoře a vícehráčové hře." +# counselor_summary: "None of the above roles fit what you are interested in? Do not worry, we are on the lookout for anybody who wants a hand in the development of CodeCombat! If you are interested in teaching, game development, open source management, or anything else that you think will be relevant to us, then this class is for you." counselor_introduction_1: "Máte životní zkušenosti? Máte odlišný náhled na věci a jste schopni nám tímto pomoci v dalším vývoji CodeCombatu? Jedna z důležitých rolí i když asi nejméně časově náročná, nicméně každá individualita je schopná udělat velký rozdíl. Hledáme zkušené odborníky, zvláště pak v oblastech vzdělávání, vývoji her managementu open source, source project management, náboru lidských zdrojů, podnikání nebo designu." counselor_introduction_2: "Nebo cokoliv, co je relevantní ve vývoji CodeCombatu. Máte-li znalosti a jste-li ochotni se o ně podělit pro další růst tohoto projektu , pak toto je role pro vás." counselor_attribute_1: "Zkušenosti ve výše zmíněných oblastech, nebo něco, čím byste mohli být nápomocni." diff --git a/app/locale/da.coffee b/app/locale/da.coffee index b41ca1ebf..f39b21ef5 100644 --- a/app/locale/da.coffee +++ b/app/locale/da.coffee @@ -136,7 +136,7 @@ module.exports = nativeDescription: "dansk", englishDescription: "Danish", trans account_profile: edit_settings: "Redigér Indstillinger" profile_for_prefix: "Profil for " - profile_for_suffix: "" +# profile_for_suffix: "" profile: "Profil" user_not_found: "Ingen bruger fundet. Tjek URL'en?" gravatar_not_found_mine: "Vi kunne ikke finde din profil associeret med:" @@ -164,7 +164,7 @@ module.exports = nativeDescription: "dansk", englishDescription: "Danish", trans reload_title: "Genindlæs alt kode?" reload_really: "Er du sikker på at du ønsker at genindlæse denne bane helt fra begyndelsen?" reload_confirm: "Genindlæs alt" - victory_title_prefix: "" +# victory_title_prefix: "" victory_title_suffix: " Færdig" victory_sign_up: "Opret dig for at gemme dit fremskridt" victory_sign_up_poke: "Ønsker du at gemme din kode? Opret en gratis konto!" @@ -252,9 +252,9 @@ module.exports = nativeDescription: "dansk", englishDescription: "Danish", trans version_history_for: "versionhistorie for: " results: "resultater" description: "beskrivelse" + or: "eller" email: "e-mail" message: "Besked" - or: "eller" about: who_is_codecombat: "Hvem er CodeCombat?" @@ -282,7 +282,7 @@ module.exports = nativeDescription: "dansk", englishDescription: "Danish", trans # page_title: "Legal" # opensource_intro: "CodeCombat is free to play and completely open source." # opensource_description_prefix: "Check out " - github_url: "vores GitHub" +# github_url: "our GitHub" # opensource_description_center: "and help out if you like! CodeCombat is built on dozens of open source projects, and we love them. See " # archmage_wiki_url: "our Archmage wiki" # opensource_description_suffix: "for a list of the software that makes this game possible." @@ -290,11 +290,11 @@ module.exports = nativeDescription: "dansk", englishDescription: "Danish", trans # practices_description: "These are our promises to you, the player, in slightly less legalese." # privacy_title: "Privacy" # privacy_description: "We will not sell any of your personal information. We intend to make money through recruitment eventually, but rest assured we will not distribute your personal information to interested companies without your explicit consent." - security_title: "Sikkerhed" +# security_title: "Security" # security_description: "We strive to keep your personal information safe. As an open source project, our site is freely open to anyone to review and improve our security systems." - email_title: "E-mail" +# email_title: "Email" # email_description_prefix: "We will not inundate you with spam. Through" - email_settings_url: "dine e-mail instillinger" +# email_settings_url: "your email settings" # email_description_suffix: "or through links in the emails we send, you can change your preferences and easily unsubscribe at any time." # cost_title: "Cost" # cost_description: "Currently, CodeCombat is 100% free! One of our main goals is to keep it that way, so that as many people can play as possible, regardless of place in life. If the sky darkens, we might have to charge subscriptions or for some content, but we'd rather not. With any luck, we'll be able to sustain the company with:" @@ -317,8 +317,8 @@ module.exports = nativeDescription: "dansk", englishDescription: "Danish", trans # art_description_prefix: "All common content is available under the" # cc_license_url: "Creative Commons Attribution 4.0 International License" # art_description_suffix: "Common content is anything made generally available by CodeCombat for the purpose of creating Levels. This includes:" - art_music: "Musik" - art_sound: "Lyd" +# art_music: "Music" +# art_sound: "Sound" # art_artwork: "Artwork" # art_sprites: "Sprites" # art_other: "Any and all other non-code creative works that are made available when creating Levels." @@ -335,7 +335,7 @@ module.exports = nativeDescription: "dansk", englishDescription: "Danish", trans # rights_writings: "Writings" # rights_media: "Media (sounds, music) and any other creative content made specifically for that Level and not made generally available when creating Levels." # rights_clarification: "To clarify, anything that is made available in the Level Editor for the purpose of making levels is under CC, whereas the content created with the Level Editor or uploaded in the course of creation of Levels is not." - nutshell_title: "I en nødeskal" +# nutshell_title: "In a Nutshell" # 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." @@ -352,6 +352,7 @@ module.exports = nativeDescription: "dansk", englishDescription: "Danish", trans # alert_account_message_pref: "To subscribe for class emails, you'll need to " # alert_account_message_suf: "first." # alert_account_message_create_url: "create an account" +# archmage_summary: "Interested in working on game graphics, user interface design, database and server organization, multiplayer networking, physics, sound, or game engine performance? Want to help build a game to help other people learn what you are good at? We have a lot to do and if you are an experienced programmer and want to develop for CodeCombat, this class is for you. We would love your help building the best programming game ever." # archmage_introduction: "One of the best parts about building games is they synthesize so many different things. Graphics, sound, real-time networking, social networking, and of course many of the more common aspects of programming, from low-level database management, and server administration to user facing design and interface building. There's a lot to do, and if you're an experienced programmer with a hankering to really dive into the nitty-gritty of CodeCombat, this class might be for you. We would love to have your help building the best programming game ever." # class_attributes: "Class Attributes" # archmage_attribute_1_pref: "Knowledge in " @@ -364,10 +365,12 @@ module.exports = nativeDescription: "dansk", englishDescription: "Danish", trans # join_desc_4: "and we'll go from there!" join_url_email: "Skriv til os" # join_url_hipchat: "public HipChat room" -# more_about_archmage: "Learn More About Becoming A Powerful Archmage" +# more_about_archmage: "Learn More About Becoming an Archmage" # archmage_subscribe_desc: "Get emails on new coding opportunities and announcements." +# artisan_summary_pref: "Want to design levels and expand CodeCombat's arsenal? People are playing through our content at a pace faster than we can build! Right now, our level editor is barebone, so be wary. Making levels will be a little challenging and buggy. If you have visions of campaigns spanning for-loops to" +# artisan_summary_suf: "then this class is for you." # artisan_introduction_pref: "We must construct additional levels! People be clamoring for more content, and we can only build so many ourselves. Right now your workstation is level one; our level editor is barely usable even by its creators, so be wary. If you have visions of campaigns spanning for-loops to" -# artisan_introduction_suf: "to then this class might be for you." +# artisan_introduction_suf: "then this class might be for you." # artisan_attribute_1: "Any experience in building content like this would be nice, such as using Blizzard's level editors. But not required!" # artisan_attribute_2: "A hankering to do a whole lot of testing and iteration. To make good levels, you need to take it to others and watch them play it, and be prepared to find a lot of things to fix." # artisan_attribute_3: "For the time being, endurance en par with an Adventurer. Our Level Editor is super preliminary and frustrating to use. You have been warned!" @@ -376,24 +379,28 @@ module.exports = nativeDescription: "dansk", englishDescription: "Danish", trans artisan_join_step2: "Lav en ny bane og udforsk eksisterende baner." # artisan_join_step3: "Find us in our public HipChat room for help." # artisan_join_step4: "Post your levels on the forum for feedback." -# more_about_artisan: "Learn More About Becoming A Creative Artisan" +# more_about_artisan: "Learn More About Becoming an Artisan" # artisan_subscribe_desc: "Get emails on level editor updates and announcements." +# adventurer_sumamry: "Let us be clear about your role: you are the tank. You are going to take heavy damage. We need people to try out brand-new levels and help identify how to make things better. The pain will be enormous; making good games is a long process and no one gets it right the first time. If you can endure and have a high constitution score, then this class is for you." # adventurer_introduction: "Let's be clear about your role: you are the tank. You're going to take heavy damage. We need people to try out brand-new levels and help identify how to make things better. The pain will be enormous; making good games is a long process and no one gets it right the first time. If you can endure and have a high constitution score, then this class might be for you." # adventurer_attribute_1: "A thirst for learning. You want to learn how to code and we want to teach you how to code. You'll probably be doing most of the teaching in this case, though." # adventurer_attribute_2: "Charismatic. Be gentle but articulate about what needs improving, and offer suggestions on how to improve." # adventurer_join_pref: "Either get together with (or recruit!) an Artisan and work with them, or check the box below to receive emails when there are new levels to test. We'll also be posting about levels to review on our networks like" # adventurer_forum_url: "our forum" # adventurer_join_suf: "so if you prefer to be notified those ways, sign up there!" -# more_about_adventurer: "Learn More About Becoming A Brave Adventurer" +# more_about_adventurer: "Learn More About Becoming an Adventurer" # adventurer_subscribe_desc: "Get emails when there are new levels to test." +# scribe_summary_pref: "CodeCombat is not just going to be a bunch of levels. It will also be a resource of programming knowledge that players can hook into. That way, each Artisan can link to a detailed article that for the player's edification: documentation akin to what the " +# scribe_summary_sufx: " has built. If you enjoy explaining programming concepts, then this class is for you." # scribe_introduction_pref: "CodeCombat isn't just going to be a bunch of levels. It will also include a resource for knowledge, a wiki of programming concepts that levels can hook into. That way rather than each Artisan having to describe in detail what a comparison operator is, they can simply link their level to the Article describing them that is already written for the player's edification. Something along the lines of what the " # scribe_introduction_url_mozilla: "Mozilla Developer Network" # scribe_introduction_suf: " has built. If your idea of fun is articulating the concepts of programming in Markdown form, then this class might be for you." # scribe_attribute_1: "Skill in words is pretty much all you need. Not only grammar and spelling, but able to convey complicated ideas to others." # contact_us_url: "Contact us" # scribe_join_description: "tell us a little about yourself, your experience with programming and what sort of things you'd like to write about. We'll go from there!" -# more_about_scribe: "Learn More About Becoming A Diligent Scribe" +# more_about_scribe: "Learn More About Becoming a Scribe" # scribe_subscribe_desc: "Get emails about article writing announcements." +# diplomat_summary: "There is a large interest in CodeCombat in other countries that do not speak English! We are looking for translators who are willing to spend their time translating the site's corpus of words so that CodeCombat is accessible across the world as soon as possible. If you'd like to help getting CodeCombat international, then this class is for you." # diplomat_introduction_pref: "So, if there's one thing we learned from the " # diplomat_launch_url: "launch in October" # diplomat_introduction_suf: "it's that there is sizeable interest in CodeCombat in other countries, particularly Brazil! We're building a corps of translators eager to turn one set of words into another set of words to get CodeCombat as accessible across the world as possible. If you like getting sneak peeks at upcoming content and getting these levels to your fellow nationals ASAP, then this class might be for you." @@ -401,21 +408,23 @@ module.exports = nativeDescription: "dansk", englishDescription: "Danish", trans # diplomat_join_pref: "We've started a lot of initial translations at " # diplomat_doc_url: "this forum post" # diplomat_join_suf: "so check it out and add things for your language. Also, check this box below to keep up-to-date on new internationalization developments!" -# more_about_diplomat: "Learn More About Becoming A Great Diplomat" +# more_about_diplomat: "Learn More About Becoming a Diplomat" # diplomat_subscribe_desc: "Get emails about i18n developments and levels to translate." +# ambassador_summary: "We are trying to build a community, and every community needs a support team when there are troubles. We have got chats, emails, and social networks so that our users can get acquainted with the game. If you want to help people get involved, have fun, and learn some programming, then this class is for you." # ambassador_introduction: "This is a community we're building, and you are the connections. We've got Olark chats, emails, and social networks with lots of people to talk with and help get acquainted with the game and learn from. If you want to help people get involved and have fun, and get a good feel of the pulse of CodeCombat and where we're going, then this class might be for you." # ambassador_attribute_1: "Communication skills. Be able to identify the problems players are having and help them solve them. Also, keep the rest of us informed about what players are saying, what they like and don't like and want more of!" # ambassador_join_desc: "tell us a little about yourself, what you've done and what you'd be interested in doing. We'll go from there!" # ambassador_join_note_strong: "Note" # ambassador_join_note_desc: "One of our top priorities is to build multiplayer where players having difficulty solving levels can summon higher level wizards to help them. This will be a great way for ambassadors to do their thing. We'll keep you posted!" -# more_about_ambassador: "Learn More About Becoming A Helpful Ambassador" +# more_about_ambassador: "Learn More About Becoming an Ambassador" # ambassador_subscribe_desc: "Get emails on support updates and multiplayer developments." +# counselor_summary: "None of the above roles fit what you are interested in? Do not worry, we are on the lookout for anybody who wants a hand in the development of CodeCombat! If you are interested in teaching, game development, open source management, or anything else that you think will be relevant to us, then this class is for you." # counselor_introduction_1: "Do you have life experience? A different perspective on things that can help us decide how to shape CodeCombat? Of all these roles, this will probably take the least time, but individually you may make the most difference. We're on the lookout for wisened sages, particularly in areas like: teaching, game development, open source project management, technical recruiting, entrepreneurship, or design." # counselor_introduction_2: "Or really anything that is relevant to the development of CodeCombat. If you have knowledge and want to share it to help grow this project, then this class might be for you." # counselor_attribute_1: "Experience, in any of the areas above or something you think might be helpful." # counselor_attribute_2: "A little bit of free time!" # counselor_join_desc: "tell us a little about yourself, what you've done and what you'd be interested in doing. We'll put you in our contact list and be in touch when we could use advice (not too often)." -# more_about_counselor: "Learn More About Becoming A Valuable Counselor" +# more_about_counselor: "Learn More About Becoming a Counselor" # changes_auto_save: "Changes are saved automatically when you toggle checkboxes." # diligent_scribes: "Our Diligent Scribes:" # powerful_archmages: "Our Powerful Archmages:" diff --git a/app/locale/de.coffee b/app/locale/de.coffee index c764e499f..a2825d676 100644 --- a/app/locale/de.coffee +++ b/app/locale/de.coffee @@ -2,7 +2,7 @@ module.exports = nativeDescription: "Deutsch", englishDescription: "German", tra common: loading: "Lade..." saving: "Speichere..." - sending: "Übertrage..." # or Sende... ? + sending: "Übertrage..." cancel: "Abbrechen" save: "Speichern" delay_1_sec: "1 Sekunde" @@ -36,10 +36,10 @@ module.exports = nativeDescription: "Deutsch", englishDescription: "German", tra versions: save_version_title: "Neue Version speichern" new_major_version: "Neue Hauptversion" - cla_prefix: "Damit Änderungen gespeichert werden können, musst du unsere Lizenzbedingungen (" # To save changes, first you must agree to our ... - cla_url: "CLA" # ? CLA: What is this? -> CodeCombat Individual Contributor License Agreement + cla_prefix: "Damit Änderungen gespeichert werden können, musst du unsere Lizenzbedingungen (" + cla_url: "CLA" cla_suffix: ") akzeptieren." - cla_agree: "Ich stimme zu" # die Bestimmungen / I agree the rules + cla_agree: "Ich stimme zu" login: sign_up: "Registrieren" @@ -122,6 +122,7 @@ module.exports = nativeDescription: "Deutsch", englishDescription: "German", tra new_password_verify: "Passwort verifizieren" email_subscriptions: "Email Abonnements" email_announcements: "Ankündigungen" +# email_notifications_description: "Get periodic notifications for your account." email_announcements_description: "Erhalte regelmäßig Mitteilungen für deinen Account." contributor_emails: "Unterstützer Email" contribute_prefix: "Wir suchen nach Leuten, die mitmachen! Schau dir die" @@ -135,7 +136,7 @@ module.exports = nativeDescription: "Deutsch", englishDescription: "German", tra account_profile: edit_settings: "Einstellungen ändern" profile_for_prefix: "Profil von " - profile_for_suffix: "" +# profile_for_suffix: "" profile: "Profil" user_not_found: "Kein Nutzer gefunden. URL überprüft?" gravatar_not_found_mine: "Wir konnten dein Profil nicht finden, das mit folgender Email Adresse verbunden ist:" @@ -163,7 +164,7 @@ module.exports = nativeDescription: "Deutsch", englishDescription: "German", tra reload_title: "Gesamten Code neu laden?" reload_really: "Bist Du sicher, dass Du das Level neu beginnen willst?" reload_confirm: "Alles neu laden" - victory_title_prefix: "" +# victory_title_prefix: "" victory_title_suffix: " Abgeschlossen" victory_sign_up: "Melde Dich an, um Fortschritte zu speichern" victory_sign_up_poke: "Möchtest Du Neuigkeiten per Mail erhalten? Erstelle einen kostenlosen Account und wir halten Dich auf dem Laufenden." @@ -212,12 +213,11 @@ module.exports = nativeDescription: "Deutsch", englishDescription: "German", tra level_title: "Level Editor" level_description: "Beinhaltet die Werkzeuge zum Scripten, Hochladen von Tönen und zur Konstruktion eigener Logik, damit jedes erdenkliches Level erstellt werden kann. Genau die Sachen, die wir selber benutzen!" security_notice: "Viele Hauptfunktionen der Editoren sind standardmäßig noch nicht aktiviert. Sobald die Sicherheit dieser Systeme gewährleistet ist, werden sie generell freigeschaltet. Falls Du diese Funktionen früher nutzen möchtest, " - contact_us: "setze dich mit uns in Verbindung!" # kontaktiere uns! + contact_us: "setze dich mit uns in Verbindung!" hipchat_prefix: "Besuche uns auch in unserem" hipchat_url: "HipChat room." level_some_options: "Einige Einstellungsmöglichkeiten?" - level_tab_thangs: "Thangs" # Things? # <= no Thangs are the components of the level. Check the editor if you're not sure what it is. -# rather dont't translate it + level_tab_thangs: "Thangs" level_tab_scripts: "Skripte" level_tab_settings: "Einstellungen" level_tab_components: "Komponenten" @@ -252,15 +252,15 @@ module.exports = nativeDescription: "Deutsch", englishDescription: "German", tra version_history_for: "Versionsgeschichte für: " results: "Ergebnisse" description: "Beschreibung" + or: "oder" email: "Email" message: "Nachricht" - or: "oder" about: - who_is_codecombat: "Wer ist CodeCombat?" # Wer steckt hinter CodeCombat # behind + who_is_codecombat: "Wer ist CodeCombat?" why_codecombat: "Warum CodeCombat?" who_description_prefix: "gründeten CodeCombat im Jahre 2013 zusammen. Wir entwickelten außerdem " - who_description_suffix: ", die meist benutzte (#1) Web and iOS Applikation 2008 zum Lernen des Schreibens von chinesischen und japanischen Schriftzeichen." # need improvements + who_description_suffix: ", die meist benutzte (#1) Web and iOS Applikation 2008 zum Lernen des Schreibens von chinesischen und japanischen Schriftzeichen." who_description_ending: "Nun ist es an der Zeit, den Leuten das Programmieren beizubringen." why_paragraph_1: "Als er Skritter machte, wusste George nicht wie man programmiert und war permanent darüber frustriert, dass er seine Ideen nicht umsetzen konnte. Danach versuchte er es zu lernen, aber das ging ihm zu langsam. Sein Mitbewohner versuchte Codecademy, als er sich umorientierte und aufhörte zu lehren, aber \"langweilte sich\". Jede Woche begann ein neuer Freund mit Codecademy und ließ es dann wieder bleiben. Wir erkannten, dass es das gleiche Problem war, welches wir mit Skritter gelöst hatten: Leute lernen eine Fähigkeit mittels langsamer, intersiver Lerneinheiten, wobei sie schnelle, umfassende Übung bräuchten. Wir kennen Abhilfe." why_paragraph_2: "Programmieren lernen? Du brauchst keine Stunden. Du musst einen Haufen Code schreiben und dabei Spaß haben." @@ -352,6 +352,7 @@ module.exports = nativeDescription: "Deutsch", englishDescription: "German", tra # alert_account_message_pref: "To subscribe for class emails, you'll need to " # alert_account_message_suf: "first." # alert_account_message_create_url: "create an account" +# archmage_summary: "Interested in working on game graphics, user interface design, database and server organization, multiplayer networking, physics, sound, or game engine performance? Want to help build a game to help other people learn what you are good at? We have a lot to do and if you are an experienced programmer and want to develop for CodeCombat, this class is for you. We would love your help building the best programming game ever." # archmage_introduction: "One of the best parts about building games is they synthesize so many different things. Graphics, sound, real-time networking, social networking, and of course many of the more common aspects of programming, from low-level database management, and server administration to user facing design and interface building. There's a lot to do, and if you're an experienced programmer with a hankering to really dive into the nitty-gritty of CodeCombat, this class might be for you. We would love to have your help building the best programming game ever." # class_attributes: "Class Attributes" # archmage_attribute_1_pref: "Knowledge in " @@ -364,10 +365,12 @@ module.exports = nativeDescription: "Deutsch", englishDescription: "German", tra # join_desc_4: "and we'll go from there!" # join_url_email: "Email us" # join_url_hipchat: "public HipChat room" -# more_about_archmage: "Learn More About Becoming A Powerful Archmage" +# more_about_archmage: "Learn More About Becoming an Archmage" # archmage_subscribe_desc: "Get emails on new coding opportunities and announcements." +# artisan_summary_pref: "Want to design levels and expand CodeCombat's arsenal? People are playing through our content at a pace faster than we can build! Right now, our level editor is barebone, so be wary. Making levels will be a little challenging and buggy. If you have visions of campaigns spanning for-loops to" +# artisan_summary_suf: "then this class is for you." # artisan_introduction_pref: "We must construct additional levels! People be clamoring for more content, and we can only build so many ourselves. Right now your workstation is level one; our level editor is barely usable even by its creators, so be wary. If you have visions of campaigns spanning for-loops to" -# artisan_introduction_suf: "to then this class might be for you." +# artisan_introduction_suf: "then this class might be for you." # artisan_attribute_1: "Any experience in building content like this would be nice, such as using Blizzard's level editors. But not required!" # artisan_attribute_2: "A hankering to do a whole lot of testing and iteration. To make good levels, you need to take it to others and watch them play it, and be prepared to find a lot of things to fix." # artisan_attribute_3: "For the time being, endurance en par with an Adventurer. Our Level Editor is super preliminary and frustrating to use. You have been warned!" @@ -376,24 +379,28 @@ module.exports = nativeDescription: "Deutsch", englishDescription: "German", tra # artisan_join_step2: "Create a new level and explore existing levels." # artisan_join_step3: "Find us in our public HipChat room for help." # artisan_join_step4: "Post your levels on the forum for feedback." -# more_about_artisan: "Learn More About Becoming A Creative Artisan" +# more_about_artisan: "Learn More About Becoming an Artisan" # artisan_subscribe_desc: "Get emails on level editor updates and announcements." +# adventurer_sumamry: "Let us be clear about your role: you are the tank. You are going to take heavy damage. We need people to try out brand-new levels and help identify how to make things better. The pain will be enormous; making good games is a long process and no one gets it right the first time. If you can endure and have a high constitution score, then this class is for you." # adventurer_introduction: "Let's be clear about your role: you are the tank. You're going to take heavy damage. We need people to try out brand-new levels and help identify how to make things better. The pain will be enormous; making good games is a long process and no one gets it right the first time. If you can endure and have a high constitution score, then this class might be for you." # adventurer_attribute_1: "A thirst for learning. You want to learn how to code and we want to teach you how to code. You'll probably be doing most of the teaching in this case, though." # adventurer_attribute_2: "Charismatic. Be gentle but articulate about what needs improving, and offer suggestions on how to improve." # adventurer_join_pref: "Either get together with (or recruit!) an Artisan and work with them, or check the box below to receive emails when there are new levels to test. We'll also be posting about levels to review on our networks like" # adventurer_forum_url: "our forum" # adventurer_join_suf: "so if you prefer to be notified those ways, sign up there!" -# more_about_adventurer: "Learn More About Becoming A Brave Adventurer" +# more_about_adventurer: "Learn More About Becoming an Adventurer" # adventurer_subscribe_desc: "Get emails when there are new levels to test." +# scribe_summary_pref: "CodeCombat is not just going to be a bunch of levels. It will also be a resource of programming knowledge that players can hook into. That way, each Artisan can link to a detailed article that for the player's edification: documentation akin to what the " +# scribe_summary_sufx: " has built. If you enjoy explaining programming concepts, then this class is for you." # scribe_introduction_pref: "CodeCombat isn't just going to be a bunch of levels. It will also include a resource for knowledge, a wiki of programming concepts that levels can hook into. That way rather than each Artisan having to describe in detail what a comparison operator is, they can simply link their level to the Article describing them that is already written for the player's edification. Something along the lines of what the " # scribe_introduction_url_mozilla: "Mozilla Developer Network" # scribe_introduction_suf: " has built. If your idea of fun is articulating the concepts of programming in Markdown form, then this class might be for you." # scribe_attribute_1: "Skill in words is pretty much all you need. Not only grammar and spelling, but able to convey complicated ideas to others." # contact_us_url: "Contact us" # scribe_join_description: "tell us a little about yourself, your experience with programming and what sort of things you'd like to write about. We'll go from there!" -# more_about_scribe: "Learn More About Becoming A Diligent Scribe" +# more_about_scribe: "Learn More About Becoming a Scribe" # scribe_subscribe_desc: "Get emails about article writing announcements." +# diplomat_summary: "There is a large interest in CodeCombat in other countries that do not speak English! We are looking for translators who are willing to spend their time translating the site's corpus of words so that CodeCombat is accessible across the world as soon as possible. If you'd like to help getting CodeCombat international, then this class is for you." # diplomat_introduction_pref: "So, if there's one thing we learned from the " # diplomat_launch_url: "launch in October" # diplomat_introduction_suf: "it's that there is sizeable interest in CodeCombat in other countries, particularly Brazil! We're building a corps of translators eager to turn one set of words into another set of words to get CodeCombat as accessible across the world as possible. If you like getting sneak peeks at upcoming content and getting these levels to your fellow nationals ASAP, then this class might be for you." @@ -401,21 +408,23 @@ module.exports = nativeDescription: "Deutsch", englishDescription: "German", tra # diplomat_join_pref: "We've started a lot of initial translations at " # diplomat_doc_url: "this forum post" # diplomat_join_suf: "so check it out and add things for your language. Also, check this box below to keep up-to-date on new internationalization developments!" -# more_about_diplomat: "Learn More About Becoming A Great Diplomat" +# more_about_diplomat: "Learn More About Becoming a Diplomat" # diplomat_subscribe_desc: "Get emails about i18n developments and levels to translate." +# ambassador_summary: "We are trying to build a community, and every community needs a support team when there are troubles. We have got chats, emails, and social networks so that our users can get acquainted with the game. If you want to help people get involved, have fun, and learn some programming, then this class is for you." # ambassador_introduction: "This is a community we're building, and you are the connections. We've got Olark chats, emails, and social networks with lots of people to talk with and help get acquainted with the game and learn from. If you want to help people get involved and have fun, and get a good feel of the pulse of CodeCombat and where we're going, then this class might be for you." # ambassador_attribute_1: "Communication skills. Be able to identify the problems players are having and help them solve them. Also, keep the rest of us informed about what players are saying, what they like and don't like and want more of!" # ambassador_join_desc: "tell us a little about yourself, what you've done and what you'd be interested in doing. We'll go from there!" # ambassador_join_note_strong: "Note" # ambassador_join_note_desc: "One of our top priorities is to build multiplayer where players having difficulty solving levels can summon higher level wizards to help them. This will be a great way for ambassadors to do their thing. We'll keep you posted!" -# more_about_ambassador: "Learn More About Becoming A Helpful Ambassador" +# more_about_ambassador: "Learn More About Becoming an Ambassador" # ambassador_subscribe_desc: "Get emails on support updates and multiplayer developments." +# counselor_summary: "None of the above roles fit what you are interested in? Do not worry, we are on the lookout for anybody who wants a hand in the development of CodeCombat! If you are interested in teaching, game development, open source management, or anything else that you think will be relevant to us, then this class is for you." # counselor_introduction_1: "Do you have life experience? A different perspective on things that can help us decide how to shape CodeCombat? Of all these roles, this will probably take the least time, but individually you may make the most difference. We're on the lookout for wisened sages, particularly in areas like: teaching, game development, open source project management, technical recruiting, entrepreneurship, or design." # counselor_introduction_2: "Or really anything that is relevant to the development of CodeCombat. If you have knowledge and want to share it to help grow this project, then this class might be for you." # counselor_attribute_1: "Experience, in any of the areas above or something you think might be helpful." # counselor_attribute_2: "A little bit of free time!" # counselor_join_desc: "tell us a little about yourself, what you've done and what you'd be interested in doing. We'll put you in our contact list and be in touch when we could use advice (not too often)." -# more_about_counselor: "Learn More About Becoming A Valuable Counselor" +# more_about_counselor: "Learn More About Becoming a Counselor" # changes_auto_save: "Changes are saved automatically when you toggle checkboxes." # diligent_scribes: "Our Diligent Scribes:" # powerful_archmages: "Our Powerful Archmages:" diff --git a/app/locale/el.coffee b/app/locale/el.coffee index 500ed2b88..a34cd5cf3 100644 --- a/app/locale/el.coffee +++ b/app/locale/el.coffee @@ -71,7 +71,7 @@ module.exports = nativeDescription: "ελληνικά", englishDescription: "Gre choose_your_level: "Διάλεξε την πίστα σου" adventurer_prefix: "Μπορείτε να μεταβείτε σε οποιοδήποτε επίπεδο κάτω, ή να συζητήσετε για τις πίστες στο " adventurer_forum: "Φόρουμ του \"Τυχοδιώκτη\"" -# adventurer_suffix: "" +# adventurer_suffix: "." campaign_beginner: "Εκστρατεία για Αρχάριους" campaign_beginner_description: "... στο οποίο μπορείτε να μάθετε τη μαγεία του προγραμματισμού" campaign_dev: "Τυχαία δυσκολότερα επίπεδα" @@ -90,7 +90,7 @@ module.exports = nativeDescription: "ελληνικά", englishDescription: "Gre contribute_suffix: "!" forum_prefix: "Για οτιδήποτε δημόσιο, δοκίμασε " forum_page: "το φόρουμ μας" - # forum_suffix: " instead." +# forum_suffix: " instead." send: "Αποστολή σχολίων" diplomat_suggestion: @@ -245,16 +245,16 @@ module.exports = nativeDescription: "ελληνικά", englishDescription: "Gre # general: # and: "and" - name: "Όνομα" +# name: "Name" # body: "Body" # version: "Version" # commit_msg: "Commit Message" # version_history_for: "Version History for: " # results: "Results" # description: "Description" - or: "ή" - email: "Email " - message: "Μήνυμα" +# or: "or" +# email: "Email" +# message: "Message" # about: # who_is_codecombat: "Who is CodeCombat?" @@ -352,6 +352,7 @@ module.exports = nativeDescription: "ελληνικά", englishDescription: "Gre # alert_account_message_pref: "To subscribe for class emails, you'll need to " # alert_account_message_suf: "first." # alert_account_message_create_url: "create an account" +# archmage_summary: "Interested in working on game graphics, user interface design, database and server organization, multiplayer networking, physics, sound, or game engine performance? Want to help build a game to help other people learn what you are good at? We have a lot to do and if you are an experienced programmer and want to develop for CodeCombat, this class is for you. We would love your help building the best programming game ever." # archmage_introduction: "One of the best parts about building games is they synthesize so many different things. Graphics, sound, real-time networking, social networking, and of course many of the more common aspects of programming, from low-level database management, and server administration to user facing design and interface building. There's a lot to do, and if you're an experienced programmer with a hankering to really dive into the nitty-gritty of CodeCombat, this class might be for you. We would love to have your help building the best programming game ever." # class_attributes: "Class Attributes" # archmage_attribute_1_pref: "Knowledge in " @@ -364,10 +365,12 @@ module.exports = nativeDescription: "ελληνικά", englishDescription: "Gre # join_desc_4: "and we'll go from there!" # join_url_email: "Email us" # join_url_hipchat: "public HipChat room" -# more_about_archmage: "Learn More About Becoming A Powerful Archmage" +# more_about_archmage: "Learn More About Becoming an Archmage" # archmage_subscribe_desc: "Get emails on new coding opportunities and announcements." +# artisan_summary_pref: "Want to design levels and expand CodeCombat's arsenal? People are playing through our content at a pace faster than we can build! Right now, our level editor is barebone, so be wary. Making levels will be a little challenging and buggy. If you have visions of campaigns spanning for-loops to" +# artisan_summary_suf: "then this class is for you." # artisan_introduction_pref: "We must construct additional levels! People be clamoring for more content, and we can only build so many ourselves. Right now your workstation is level one; our level editor is barely usable even by its creators, so be wary. If you have visions of campaigns spanning for-loops to" -# artisan_introduction_suf: "to then this class might be for you." +# artisan_introduction_suf: "then this class might be for you." # artisan_attribute_1: "Any experience in building content like this would be nice, such as using Blizzard's level editors. But not required!" # artisan_attribute_2: "A hankering to do a whole lot of testing and iteration. To make good levels, you need to take it to others and watch them play it, and be prepared to find a lot of things to fix." # artisan_attribute_3: "For the time being, endurance en par with an Adventurer. Our Level Editor is super preliminary and frustrating to use. You have been warned!" @@ -376,24 +379,28 @@ module.exports = nativeDescription: "ελληνικά", englishDescription: "Gre # artisan_join_step2: "Create a new level and explore existing levels." # artisan_join_step3: "Find us in our public HipChat room for help." # artisan_join_step4: "Post your levels on the forum for feedback." -# more_about_artisan: "Learn More About Becoming A Creative Artisan" +# more_about_artisan: "Learn More About Becoming an Artisan" # artisan_subscribe_desc: "Get emails on level editor updates and announcements." +# adventurer_sumamry: "Let us be clear about your role: you are the tank. You are going to take heavy damage. We need people to try out brand-new levels and help identify how to make things better. The pain will be enormous; making good games is a long process and no one gets it right the first time. If you can endure and have a high constitution score, then this class is for you." # adventurer_introduction: "Let's be clear about your role: you are the tank. You're going to take heavy damage. We need people to try out brand-new levels and help identify how to make things better. The pain will be enormous; making good games is a long process and no one gets it right the first time. If you can endure and have a high constitution score, then this class might be for you." # adventurer_attribute_1: "A thirst for learning. You want to learn how to code and we want to teach you how to code. You'll probably be doing most of the teaching in this case, though." # adventurer_attribute_2: "Charismatic. Be gentle but articulate about what needs improving, and offer suggestions on how to improve." # adventurer_join_pref: "Either get together with (or recruit!) an Artisan and work with them, or check the box below to receive emails when there are new levels to test. We'll also be posting about levels to review on our networks like" # adventurer_forum_url: "our forum" # adventurer_join_suf: "so if you prefer to be notified those ways, sign up there!" -# more_about_adventurer: "Learn More About Becoming A Brave Adventurer" +# more_about_adventurer: "Learn More About Becoming an Adventurer" # adventurer_subscribe_desc: "Get emails when there are new levels to test." +# scribe_summary_pref: "CodeCombat is not just going to be a bunch of levels. It will also be a resource of programming knowledge that players can hook into. That way, each Artisan can link to a detailed article that for the player's edification: documentation akin to what the " +# scribe_summary_sufx: " has built. If you enjoy explaining programming concepts, then this class is for you." # scribe_introduction_pref: "CodeCombat isn't just going to be a bunch of levels. It will also include a resource for knowledge, a wiki of programming concepts that levels can hook into. That way rather than each Artisan having to describe in detail what a comparison operator is, they can simply link their level to the Article describing them that is already written for the player's edification. Something along the lines of what the " # scribe_introduction_url_mozilla: "Mozilla Developer Network" # scribe_introduction_suf: " has built. If your idea of fun is articulating the concepts of programming in Markdown form, then this class might be for you." # scribe_attribute_1: "Skill in words is pretty much all you need. Not only grammar and spelling, but able to convey complicated ideas to others." # contact_us_url: "Contact us" # scribe_join_description: "tell us a little about yourself, your experience with programming and what sort of things you'd like to write about. We'll go from there!" -# more_about_scribe: "Learn More About Becoming A Diligent Scribe" +# more_about_scribe: "Learn More About Becoming a Scribe" # scribe_subscribe_desc: "Get emails about article writing announcements." +# diplomat_summary: "There is a large interest in CodeCombat in other countries that do not speak English! We are looking for translators who are willing to spend their time translating the site's corpus of words so that CodeCombat is accessible across the world as soon as possible. If you'd like to help getting CodeCombat international, then this class is for you." # diplomat_introduction_pref: "So, if there's one thing we learned from the " # diplomat_launch_url: "launch in October" # diplomat_introduction_suf: "it's that there is sizeable interest in CodeCombat in other countries, particularly Brazil! We're building a corps of translators eager to turn one set of words into another set of words to get CodeCombat as accessible across the world as possible. If you like getting sneak peeks at upcoming content and getting these levels to your fellow nationals ASAP, then this class might be for you." @@ -401,21 +408,23 @@ module.exports = nativeDescription: "ελληνικά", englishDescription: "Gre # diplomat_join_pref: "We've started a lot of initial translations at " # diplomat_doc_url: "this forum post" # diplomat_join_suf: "so check it out and add things for your language. Also, check this box below to keep up-to-date on new internationalization developments!" -# more_about_diplomat: "Learn More About Becoming A Great Diplomat" +# more_about_diplomat: "Learn More About Becoming a Diplomat" # diplomat_subscribe_desc: "Get emails about i18n developments and levels to translate." +# ambassador_summary: "We are trying to build a community, and every community needs a support team when there are troubles. We have got chats, emails, and social networks so that our users can get acquainted with the game. If you want to help people get involved, have fun, and learn some programming, then this class is for you." # ambassador_introduction: "This is a community we're building, and you are the connections. We've got Olark chats, emails, and social networks with lots of people to talk with and help get acquainted with the game and learn from. If you want to help people get involved and have fun, and get a good feel of the pulse of CodeCombat and where we're going, then this class might be for you." # ambassador_attribute_1: "Communication skills. Be able to identify the problems players are having and help them solve them. Also, keep the rest of us informed about what players are saying, what they like and don't like and want more of!" # ambassador_join_desc: "tell us a little about yourself, what you've done and what you'd be interested in doing. We'll go from there!" # ambassador_join_note_strong: "Note" # ambassador_join_note_desc: "One of our top priorities is to build multiplayer where players having difficulty solving levels can summon higher level wizards to help them. This will be a great way for ambassadors to do their thing. We'll keep you posted!" -# more_about_ambassador: "Learn More About Becoming A Helpful Ambassador" +# more_about_ambassador: "Learn More About Becoming an Ambassador" # ambassador_subscribe_desc: "Get emails on support updates and multiplayer developments." +# counselor_summary: "None of the above roles fit what you are interested in? Do not worry, we are on the lookout for anybody who wants a hand in the development of CodeCombat! If you are interested in teaching, game development, open source management, or anything else that you think will be relevant to us, then this class is for you." # counselor_introduction_1: "Do you have life experience? A different perspective on things that can help us decide how to shape CodeCombat? Of all these roles, this will probably take the least time, but individually you may make the most difference. We're on the lookout for wisened sages, particularly in areas like: teaching, game development, open source project management, technical recruiting, entrepreneurship, or design." # counselor_introduction_2: "Or really anything that is relevant to the development of CodeCombat. If you have knowledge and want to share it to help grow this project, then this class might be for you." # counselor_attribute_1: "Experience, in any of the areas above or something you think might be helpful." # counselor_attribute_2: "A little bit of free time!" # counselor_join_desc: "tell us a little about yourself, what you've done and what you'd be interested in doing. We'll put you in our contact list and be in touch when we could use advice (not too often)." -# more_about_counselor: "Learn More About Becoming A Valuable Counselor" +# more_about_counselor: "Learn More About Becoming a Counselor" # changes_auto_save: "Changes are saved automatically when you toggle checkboxes." # diligent_scribes: "Our Diligent Scribes:" # powerful_archmages: "Our Powerful Archmages:" diff --git a/app/locale/en-AU.coffee b/app/locale/en-AU.coffee index 58f1ed75f..6d19e5fca 100644 --- a/app/locale/en-AU.coffee +++ b/app/locale/en-AU.coffee @@ -352,6 +352,7 @@ module.exports = nativeDescription: "English (AU)", englishDescription: "English # alert_account_message_pref: "To subscribe for class emails, you'll need to " # alert_account_message_suf: "first." # alert_account_message_create_url: "create an account" +# archmage_summary: "Interested in working on game graphics, user interface design, database and server organization, multiplayer networking, physics, sound, or game engine performance? Want to help build a game to help other people learn what you are good at? We have a lot to do and if you are an experienced programmer and want to develop for CodeCombat, this class is for you. We would love your help building the best programming game ever." # archmage_introduction: "One of the best parts about building games is they synthesize so many different things. Graphics, sound, real-time networking, social networking, and of course many of the more common aspects of programming, from low-level database management, and server administration to user facing design and interface building. There's a lot to do, and if you're an experienced programmer with a hankering to really dive into the nitty-gritty of CodeCombat, this class might be for you. We would love to have your help building the best programming game ever." # class_attributes: "Class Attributes" # archmage_attribute_1_pref: "Knowledge in " @@ -364,10 +365,12 @@ module.exports = nativeDescription: "English (AU)", englishDescription: "English # join_desc_4: "and we'll go from there!" # join_url_email: "Email us" # join_url_hipchat: "public HipChat room" -# more_about_archmage: "Learn More About Becoming A Powerful Archmage" +# more_about_archmage: "Learn More About Becoming an Archmage" # archmage_subscribe_desc: "Get emails on new coding opportunities and announcements." +# artisan_summary_pref: "Want to design levels and expand CodeCombat's arsenal? People are playing through our content at a pace faster than we can build! Right now, our level editor is barebone, so be wary. Making levels will be a little challenging and buggy. If you have visions of campaigns spanning for-loops to" +# artisan_summary_suf: "then this class is for you." # artisan_introduction_pref: "We must construct additional levels! People be clamoring for more content, and we can only build so many ourselves. Right now your workstation is level one; our level editor is barely usable even by its creators, so be wary. If you have visions of campaigns spanning for-loops to" -# artisan_introduction_suf: "to then this class might be for you." +# artisan_introduction_suf: "then this class might be for you." # artisan_attribute_1: "Any experience in building content like this would be nice, such as using Blizzard's level editors. But not required!" # artisan_attribute_2: "A hankering to do a whole lot of testing and iteration. To make good levels, you need to take it to others and watch them play it, and be prepared to find a lot of things to fix." # artisan_attribute_3: "For the time being, endurance en par with an Adventurer. Our Level Editor is super preliminary and frustrating to use. You have been warned!" @@ -376,24 +379,28 @@ module.exports = nativeDescription: "English (AU)", englishDescription: "English # artisan_join_step2: "Create a new level and explore existing levels." # artisan_join_step3: "Find us in our public HipChat room for help." # artisan_join_step4: "Post your levels on the forum for feedback." -# more_about_artisan: "Learn More About Becoming A Creative Artisan" +# more_about_artisan: "Learn More About Becoming an Artisan" # artisan_subscribe_desc: "Get emails on level editor updates and announcements." +# adventurer_sumamry: "Let us be clear about your role: you are the tank. You are going to take heavy damage. We need people to try out brand-new levels and help identify how to make things better. The pain will be enormous; making good games is a long process and no one gets it right the first time. If you can endure and have a high constitution score, then this class is for you." # adventurer_introduction: "Let's be clear about your role: you are the tank. You're going to take heavy damage. We need people to try out brand-new levels and help identify how to make things better. The pain will be enormous; making good games is a long process and no one gets it right the first time. If you can endure and have a high constitution score, then this class might be for you." # adventurer_attribute_1: "A thirst for learning. You want to learn how to code and we want to teach you how to code. You'll probably be doing most of the teaching in this case, though." # adventurer_attribute_2: "Charismatic. Be gentle but articulate about what needs improving, and offer suggestions on how to improve." # adventurer_join_pref: "Either get together with (or recruit!) an Artisan and work with them, or check the box below to receive emails when there are new levels to test. We'll also be posting about levels to review on our networks like" # adventurer_forum_url: "our forum" # adventurer_join_suf: "so if you prefer to be notified those ways, sign up there!" -# more_about_adventurer: "Learn More About Becoming A Brave Adventurer" +# more_about_adventurer: "Learn More About Becoming an Adventurer" # adventurer_subscribe_desc: "Get emails when there are new levels to test." +# scribe_summary_pref: "CodeCombat is not just going to be a bunch of levels. It will also be a resource of programming knowledge that players can hook into. That way, each Artisan can link to a detailed article that for the player's edification: documentation akin to what the " +# scribe_summary_sufx: " has built. If you enjoy explaining programming concepts, then this class is for you." # scribe_introduction_pref: "CodeCombat isn't just going to be a bunch of levels. It will also include a resource for knowledge, a wiki of programming concepts that levels can hook into. That way rather than each Artisan having to describe in detail what a comparison operator is, they can simply link their level to the Article describing them that is already written for the player's edification. Something along the lines of what the " # scribe_introduction_url_mozilla: "Mozilla Developer Network" # scribe_introduction_suf: " has built. If your idea of fun is articulating the concepts of programming in Markdown form, then this class might be for you." # scribe_attribute_1: "Skill in words is pretty much all you need. Not only grammar and spelling, but able to convey complicated ideas to others." # contact_us_url: "Contact us" # scribe_join_description: "tell us a little about yourself, your experience with programming and what sort of things you'd like to write about. We'll go from there!" -# more_about_scribe: "Learn More About Becoming A Diligent Scribe" +# more_about_scribe: "Learn More About Becoming a Scribe" # scribe_subscribe_desc: "Get emails about article writing announcements." +# diplomat_summary: "There is a large interest in CodeCombat in other countries that do not speak English! We are looking for translators who are willing to spend their time translating the site's corpus of words so that CodeCombat is accessible across the world as soon as possible. If you'd like to help getting CodeCombat international, then this class is for you." # diplomat_introduction_pref: "So, if there's one thing we learned from the " # diplomat_launch_url: "launch in October" # diplomat_introduction_suf: "it's that there is sizeable interest in CodeCombat in other countries, particularly Brazil! We're building a corps of translators eager to turn one set of words into another set of words to get CodeCombat as accessible across the world as possible. If you like getting sneak peeks at upcoming content and getting these levels to your fellow nationals ASAP, then this class might be for you." @@ -401,21 +408,23 @@ module.exports = nativeDescription: "English (AU)", englishDescription: "English # diplomat_join_pref: "We've started a lot of initial translations at " # diplomat_doc_url: "this forum post" # diplomat_join_suf: "so check it out and add things for your language. Also, check this box below to keep up-to-date on new internationalization developments!" -# more_about_diplomat: "Learn More About Becoming A Great Diplomat" +# more_about_diplomat: "Learn More About Becoming a Diplomat" # diplomat_subscribe_desc: "Get emails about i18n developments and levels to translate." +# ambassador_summary: "We are trying to build a community, and every community needs a support team when there are troubles. We have got chats, emails, and social networks so that our users can get acquainted with the game. If you want to help people get involved, have fun, and learn some programming, then this class is for you." # ambassador_introduction: "This is a community we're building, and you are the connections. We've got Olark chats, emails, and social networks with lots of people to talk with and help get acquainted with the game and learn from. If you want to help people get involved and have fun, and get a good feel of the pulse of CodeCombat and where we're going, then this class might be for you." # ambassador_attribute_1: "Communication skills. Be able to identify the problems players are having and help them solve them. Also, keep the rest of us informed about what players are saying, what they like and don't like and want more of!" # ambassador_join_desc: "tell us a little about yourself, what you've done and what you'd be interested in doing. We'll go from there!" # ambassador_join_note_strong: "Note" # ambassador_join_note_desc: "One of our top priorities is to build multiplayer where players having difficulty solving levels can summon higher level wizards to help them. This will be a great way for ambassadors to do their thing. We'll keep you posted!" -# more_about_ambassador: "Learn More About Becoming A Helpful Ambassador" +# more_about_ambassador: "Learn More About Becoming an Ambassador" # ambassador_subscribe_desc: "Get emails on support updates and multiplayer developments." +# counselor_summary: "None of the above roles fit what you are interested in? Do not worry, we are on the lookout for anybody who wants a hand in the development of CodeCombat! If you are interested in teaching, game development, open source management, or anything else that you think will be relevant to us, then this class is for you." # counselor_introduction_1: "Do you have life experience? A different perspective on things that can help us decide how to shape CodeCombat? Of all these roles, this will probably take the least time, but individually you may make the most difference. We're on the lookout for wisened sages, particularly in areas like: teaching, game development, open source project management, technical recruiting, entrepreneurship, or design." # counselor_introduction_2: "Or really anything that is relevant to the development of CodeCombat. If you have knowledge and want to share it to help grow this project, then this class might be for you." # counselor_attribute_1: "Experience, in any of the areas above or something you think might be helpful." # counselor_attribute_2: "A little bit of free time!" # counselor_join_desc: "tell us a little about yourself, what you've done and what you'd be interested in doing. We'll put you in our contact list and be in touch when we could use advice (not too often)." -# more_about_counselor: "Learn More About Becoming A Valuable Counselor" +# more_about_counselor: "Learn More About Becoming a Counselor" # changes_auto_save: "Changes are saved automatically when you toggle checkboxes." # diligent_scribes: "Our Diligent Scribes:" # powerful_archmages: "Our Powerful Archmages:" diff --git a/app/locale/en-GB.coffee b/app/locale/en-GB.coffee index 8a5b53608..0fe25c123 100644 --- a/app/locale/en-GB.coffee +++ b/app/locale/en-GB.coffee @@ -352,6 +352,7 @@ module.exports = nativeDescription: "English (UK)", englishDescription: "English # alert_account_message_pref: "To subscribe for class emails, you'll need to " # alert_account_message_suf: "first." # alert_account_message_create_url: "create an account" +# archmage_summary: "Interested in working on game graphics, user interface design, database and server organization, multiplayer networking, physics, sound, or game engine performance? Want to help build a game to help other people learn what you are good at? We have a lot to do and if you are an experienced programmer and want to develop for CodeCombat, this class is for you. We would love your help building the best programming game ever." # archmage_introduction: "One of the best parts about building games is they synthesize so many different things. Graphics, sound, real-time networking, social networking, and of course many of the more common aspects of programming, from low-level database management, and server administration to user facing design and interface building. There's a lot to do, and if you're an experienced programmer with a hankering to really dive into the nitty-gritty of CodeCombat, this class might be for you. We would love to have your help building the best programming game ever." # class_attributes: "Class Attributes" # archmage_attribute_1_pref: "Knowledge in " @@ -364,10 +365,12 @@ module.exports = nativeDescription: "English (UK)", englishDescription: "English # join_desc_4: "and we'll go from there!" # join_url_email: "Email us" # join_url_hipchat: "public HipChat room" -# more_about_archmage: "Learn More About Becoming A Powerful Archmage" +# more_about_archmage: "Learn More About Becoming an Archmage" # archmage_subscribe_desc: "Get emails on new coding opportunities and announcements." +# artisan_summary_pref: "Want to design levels and expand CodeCombat's arsenal? People are playing through our content at a pace faster than we can build! Right now, our level editor is barebone, so be wary. Making levels will be a little challenging and buggy. If you have visions of campaigns spanning for-loops to" +# artisan_summary_suf: "then this class is for you." # artisan_introduction_pref: "We must construct additional levels! People be clamoring for more content, and we can only build so many ourselves. Right now your workstation is level one; our level editor is barely usable even by its creators, so be wary. If you have visions of campaigns spanning for-loops to" -# artisan_introduction_suf: "to then this class might be for you." +# artisan_introduction_suf: "then this class might be for you." # artisan_attribute_1: "Any experience in building content like this would be nice, such as using Blizzard's level editors. But not required!" # artisan_attribute_2: "A hankering to do a whole lot of testing and iteration. To make good levels, you need to take it to others and watch them play it, and be prepared to find a lot of things to fix." # artisan_attribute_3: "For the time being, endurance en par with an Adventurer. Our Level Editor is super preliminary and frustrating to use. You have been warned!" @@ -376,24 +379,28 @@ module.exports = nativeDescription: "English (UK)", englishDescription: "English # artisan_join_step2: "Create a new level and explore existing levels." # artisan_join_step3: "Find us in our public HipChat room for help." # artisan_join_step4: "Post your levels on the forum for feedback." -# more_about_artisan: "Learn More About Becoming A Creative Artisan" +# more_about_artisan: "Learn More About Becoming an Artisan" # artisan_subscribe_desc: "Get emails on level editor updates and announcements." +# adventurer_sumamry: "Let us be clear about your role: you are the tank. You are going to take heavy damage. We need people to try out brand-new levels and help identify how to make things better. The pain will be enormous; making good games is a long process and no one gets it right the first time. If you can endure and have a high constitution score, then this class is for you." # adventurer_introduction: "Let's be clear about your role: you are the tank. You're going to take heavy damage. We need people to try out brand-new levels and help identify how to make things better. The pain will be enormous; making good games is a long process and no one gets it right the first time. If you can endure and have a high constitution score, then this class might be for you." # adventurer_attribute_1: "A thirst for learning. You want to learn how to code and we want to teach you how to code. You'll probably be doing most of the teaching in this case, though." # adventurer_attribute_2: "Charismatic. Be gentle but articulate about what needs improving, and offer suggestions on how to improve." # adventurer_join_pref: "Either get together with (or recruit!) an Artisan and work with them, or check the box below to receive emails when there are new levels to test. We'll also be posting about levels to review on our networks like" # adventurer_forum_url: "our forum" # adventurer_join_suf: "so if you prefer to be notified those ways, sign up there!" -# more_about_adventurer: "Learn More About Becoming A Brave Adventurer" +# more_about_adventurer: "Learn More About Becoming an Adventurer" # adventurer_subscribe_desc: "Get emails when there are new levels to test." +# scribe_summary_pref: "CodeCombat is not just going to be a bunch of levels. It will also be a resource of programming knowledge that players can hook into. That way, each Artisan can link to a detailed article that for the player's edification: documentation akin to what the " +# scribe_summary_sufx: " has built. If you enjoy explaining programming concepts, then this class is for you." # scribe_introduction_pref: "CodeCombat isn't just going to be a bunch of levels. It will also include a resource for knowledge, a wiki of programming concepts that levels can hook into. That way rather than each Artisan having to describe in detail what a comparison operator is, they can simply link their level to the Article describing them that is already written for the player's edification. Something along the lines of what the " # scribe_introduction_url_mozilla: "Mozilla Developer Network" # scribe_introduction_suf: " has built. If your idea of fun is articulating the concepts of programming in Markdown form, then this class might be for you." # scribe_attribute_1: "Skill in words is pretty much all you need. Not only grammar and spelling, but able to convey complicated ideas to others." # contact_us_url: "Contact us" # scribe_join_description: "tell us a little about yourself, your experience with programming and what sort of things you'd like to write about. We'll go from there!" -# more_about_scribe: "Learn More About Becoming A Diligent Scribe" +# more_about_scribe: "Learn More About Becoming a Scribe" # scribe_subscribe_desc: "Get emails about article writing announcements." +# diplomat_summary: "There is a large interest in CodeCombat in other countries that do not speak English! We are looking for translators who are willing to spend their time translating the site's corpus of words so that CodeCombat is accessible across the world as soon as possible. If you'd like to help getting CodeCombat international, then this class is for you." # diplomat_introduction_pref: "So, if there's one thing we learned from the " # diplomat_launch_url: "launch in October" # diplomat_introduction_suf: "it's that there is sizeable interest in CodeCombat in other countries, particularly Brazil! We're building a corps of translators eager to turn one set of words into another set of words to get CodeCombat as accessible across the world as possible. If you like getting sneak peeks at upcoming content and getting these levels to your fellow nationals ASAP, then this class might be for you." @@ -401,21 +408,23 @@ module.exports = nativeDescription: "English (UK)", englishDescription: "English # diplomat_join_pref: "We've started a lot of initial translations at " # diplomat_doc_url: "this forum post" # diplomat_join_suf: "so check it out and add things for your language. Also, check this box below to keep up-to-date on new internationalization developments!" -# more_about_diplomat: "Learn More About Becoming A Great Diplomat" +# more_about_diplomat: "Learn More About Becoming a Diplomat" # diplomat_subscribe_desc: "Get emails about i18n developments and levels to translate." +# ambassador_summary: "We are trying to build a community, and every community needs a support team when there are troubles. We have got chats, emails, and social networks so that our users can get acquainted with the game. If you want to help people get involved, have fun, and learn some programming, then this class is for you." # ambassador_introduction: "This is a community we're building, and you are the connections. We've got Olark chats, emails, and social networks with lots of people to talk with and help get acquainted with the game and learn from. If you want to help people get involved and have fun, and get a good feel of the pulse of CodeCombat and where we're going, then this class might be for you." # ambassador_attribute_1: "Communication skills. Be able to identify the problems players are having and help them solve them. Also, keep the rest of us informed about what players are saying, what they like and don't like and want more of!" # ambassador_join_desc: "tell us a little about yourself, what you've done and what you'd be interested in doing. We'll go from there!" # ambassador_join_note_strong: "Note" # ambassador_join_note_desc: "One of our top priorities is to build multiplayer where players having difficulty solving levels can summon higher level wizards to help them. This will be a great way for ambassadors to do their thing. We'll keep you posted!" -# more_about_ambassador: "Learn More About Becoming A Helpful Ambassador" +# more_about_ambassador: "Learn More About Becoming an Ambassador" # ambassador_subscribe_desc: "Get emails on support updates and multiplayer developments." +# counselor_summary: "None of the above roles fit what you are interested in? Do not worry, we are on the lookout for anybody who wants a hand in the development of CodeCombat! If you are interested in teaching, game development, open source management, or anything else that you think will be relevant to us, then this class is for you." # counselor_introduction_1: "Do you have life experience? A different perspective on things that can help us decide how to shape CodeCombat? Of all these roles, this will probably take the least time, but individually you may make the most difference. We're on the lookout for wisened sages, particularly in areas like: teaching, game development, open source project management, technical recruiting, entrepreneurship, or design." # counselor_introduction_2: "Or really anything that is relevant to the development of CodeCombat. If you have knowledge and want to share it to help grow this project, then this class might be for you." # counselor_attribute_1: "Experience, in any of the areas above or something you think might be helpful." # counselor_attribute_2: "A little bit of free time!" # counselor_join_desc: "tell us a little about yourself, what you've done and what you'd be interested in doing. We'll put you in our contact list and be in touch when we could use advice (not too often)." -# more_about_counselor: "Learn More About Becoming A Valuable Counselor" +# more_about_counselor: "Learn More About Becoming a Counselor" # changes_auto_save: "Changes are saved automatically when you toggle checkboxes." # diligent_scribes: "Our Diligent Scribes:" # powerful_archmages: "Our Powerful Archmages:" diff --git a/app/locale/en-US.coffee b/app/locale/en-US.coffee index d96a40d63..baac82a69 100644 --- a/app/locale/en-US.coffee +++ b/app/locale/en-US.coffee @@ -352,6 +352,7 @@ module.exports = nativeDescription: "English (US)", englishDescription: "English # alert_account_message_pref: "To subscribe for class emails, you'll need to " # alert_account_message_suf: "first." # alert_account_message_create_url: "create an account" +# archmage_summary: "Interested in working on game graphics, user interface design, database and server organization, multiplayer networking, physics, sound, or game engine performance? Want to help build a game to help other people learn what you are good at? We have a lot to do and if you are an experienced programmer and want to develop for CodeCombat, this class is for you. We would love your help building the best programming game ever." # archmage_introduction: "One of the best parts about building games is they synthesize so many different things. Graphics, sound, real-time networking, social networking, and of course many of the more common aspects of programming, from low-level database management, and server administration to user facing design and interface building. There's a lot to do, and if you're an experienced programmer with a hankering to really dive into the nitty-gritty of CodeCombat, this class might be for you. We would love to have your help building the best programming game ever." # class_attributes: "Class Attributes" # archmage_attribute_1_pref: "Knowledge in " @@ -364,10 +365,12 @@ module.exports = nativeDescription: "English (US)", englishDescription: "English # join_desc_4: "and we'll go from there!" # join_url_email: "Email us" # join_url_hipchat: "public HipChat room" -# more_about_archmage: "Learn More About Becoming A Powerful Archmage" +# more_about_archmage: "Learn More About Becoming an Archmage" # archmage_subscribe_desc: "Get emails on new coding opportunities and announcements." +# artisan_summary_pref: "Want to design levels and expand CodeCombat's arsenal? People are playing through our content at a pace faster than we can build! Right now, our level editor is barebone, so be wary. Making levels will be a little challenging and buggy. If you have visions of campaigns spanning for-loops to" +# artisan_summary_suf: "then this class is for you." # artisan_introduction_pref: "We must construct additional levels! People be clamoring for more content, and we can only build so many ourselves. Right now your workstation is level one; our level editor is barely usable even by its creators, so be wary. If you have visions of campaigns spanning for-loops to" -# artisan_introduction_suf: "to then this class might be for you." +# artisan_introduction_suf: "then this class might be for you." # artisan_attribute_1: "Any experience in building content like this would be nice, such as using Blizzard's level editors. But not required!" # artisan_attribute_2: "A hankering to do a whole lot of testing and iteration. To make good levels, you need to take it to others and watch them play it, and be prepared to find a lot of things to fix." # artisan_attribute_3: "For the time being, endurance en par with an Adventurer. Our Level Editor is super preliminary and frustrating to use. You have been warned!" @@ -376,24 +379,28 @@ module.exports = nativeDescription: "English (US)", englishDescription: "English # artisan_join_step2: "Create a new level and explore existing levels." # artisan_join_step3: "Find us in our public HipChat room for help." # artisan_join_step4: "Post your levels on the forum for feedback." -# more_about_artisan: "Learn More About Becoming A Creative Artisan" +# more_about_artisan: "Learn More About Becoming an Artisan" # artisan_subscribe_desc: "Get emails on level editor updates and announcements." +# adventurer_sumamry: "Let us be clear about your role: you are the tank. You are going to take heavy damage. We need people to try out brand-new levels and help identify how to make things better. The pain will be enormous; making good games is a long process and no one gets it right the first time. If you can endure and have a high constitution score, then this class is for you." # adventurer_introduction: "Let's be clear about your role: you are the tank. You're going to take heavy damage. We need people to try out brand-new levels and help identify how to make things better. The pain will be enormous; making good games is a long process and no one gets it right the first time. If you can endure and have a high constitution score, then this class might be for you." # adventurer_attribute_1: "A thirst for learning. You want to learn how to code and we want to teach you how to code. You'll probably be doing most of the teaching in this case, though." # adventurer_attribute_2: "Charismatic. Be gentle but articulate about what needs improving, and offer suggestions on how to improve." # adventurer_join_pref: "Either get together with (or recruit!) an Artisan and work with them, or check the box below to receive emails when there are new levels to test. We'll also be posting about levels to review on our networks like" # adventurer_forum_url: "our forum" # adventurer_join_suf: "so if you prefer to be notified those ways, sign up there!" -# more_about_adventurer: "Learn More About Becoming A Brave Adventurer" +# more_about_adventurer: "Learn More About Becoming an Adventurer" # adventurer_subscribe_desc: "Get emails when there are new levels to test." +# scribe_summary_pref: "CodeCombat is not just going to be a bunch of levels. It will also be a resource of programming knowledge that players can hook into. That way, each Artisan can link to a detailed article that for the player's edification: documentation akin to what the " +# scribe_summary_sufx: " has built. If you enjoy explaining programming concepts, then this class is for you." # scribe_introduction_pref: "CodeCombat isn't just going to be a bunch of levels. It will also include a resource for knowledge, a wiki of programming concepts that levels can hook into. That way rather than each Artisan having to describe in detail what a comparison operator is, they can simply link their level to the Article describing them that is already written for the player's edification. Something along the lines of what the " # scribe_introduction_url_mozilla: "Mozilla Developer Network" # scribe_introduction_suf: " has built. If your idea of fun is articulating the concepts of programming in Markdown form, then this class might be for you." # scribe_attribute_1: "Skill in words is pretty much all you need. Not only grammar and spelling, but able to convey complicated ideas to others." # contact_us_url: "Contact us" # scribe_join_description: "tell us a little about yourself, your experience with programming and what sort of things you'd like to write about. We'll go from there!" -# more_about_scribe: "Learn More About Becoming A Diligent Scribe" +# more_about_scribe: "Learn More About Becoming a Scribe" # scribe_subscribe_desc: "Get emails about article writing announcements." +# diplomat_summary: "There is a large interest in CodeCombat in other countries that do not speak English! We are looking for translators who are willing to spend their time translating the site's corpus of words so that CodeCombat is accessible across the world as soon as possible. If you'd like to help getting CodeCombat international, then this class is for you." # diplomat_introduction_pref: "So, if there's one thing we learned from the " # diplomat_launch_url: "launch in October" # diplomat_introduction_suf: "it's that there is sizeable interest in CodeCombat in other countries, particularly Brazil! We're building a corps of translators eager to turn one set of words into another set of words to get CodeCombat as accessible across the world as possible. If you like getting sneak peeks at upcoming content and getting these levels to your fellow nationals ASAP, then this class might be for you." @@ -401,21 +408,23 @@ module.exports = nativeDescription: "English (US)", englishDescription: "English # diplomat_join_pref: "We've started a lot of initial translations at " # diplomat_doc_url: "this forum post" # diplomat_join_suf: "so check it out and add things for your language. Also, check this box below to keep up-to-date on new internationalization developments!" -# more_about_diplomat: "Learn More About Becoming A Great Diplomat" +# more_about_diplomat: "Learn More About Becoming a Diplomat" # diplomat_subscribe_desc: "Get emails about i18n developments and levels to translate." +# ambassador_summary: "We are trying to build a community, and every community needs a support team when there are troubles. We have got chats, emails, and social networks so that our users can get acquainted with the game. If you want to help people get involved, have fun, and learn some programming, then this class is for you." # ambassador_introduction: "This is a community we're building, and you are the connections. We've got Olark chats, emails, and social networks with lots of people to talk with and help get acquainted with the game and learn from. If you want to help people get involved and have fun, and get a good feel of the pulse of CodeCombat and where we're going, then this class might be for you." # ambassador_attribute_1: "Communication skills. Be able to identify the problems players are having and help them solve them. Also, keep the rest of us informed about what players are saying, what they like and don't like and want more of!" # ambassador_join_desc: "tell us a little about yourself, what you've done and what you'd be interested in doing. We'll go from there!" # ambassador_join_note_strong: "Note" # ambassador_join_note_desc: "One of our top priorities is to build multiplayer where players having difficulty solving levels can summon higher level wizards to help them. This will be a great way for ambassadors to do their thing. We'll keep you posted!" -# more_about_ambassador: "Learn More About Becoming A Helpful Ambassador" +# more_about_ambassador: "Learn More About Becoming an Ambassador" # ambassador_subscribe_desc: "Get emails on support updates and multiplayer developments." +# counselor_summary: "None of the above roles fit what you are interested in? Do not worry, we are on the lookout for anybody who wants a hand in the development of CodeCombat! If you are interested in teaching, game development, open source management, or anything else that you think will be relevant to us, then this class is for you." # counselor_introduction_1: "Do you have life experience? A different perspective on things that can help us decide how to shape CodeCombat? Of all these roles, this will probably take the least time, but individually you may make the most difference. We're on the lookout for wisened sages, particularly in areas like: teaching, game development, open source project management, technical recruiting, entrepreneurship, or design." # counselor_introduction_2: "Or really anything that is relevant to the development of CodeCombat. If you have knowledge and want to share it to help grow this project, then this class might be for you." # counselor_attribute_1: "Experience, in any of the areas above or something you think might be helpful." # counselor_attribute_2: "A little bit of free time!" # counselor_join_desc: "tell us a little about yourself, what you've done and what you'd be interested in doing. We'll put you in our contact list and be in touch when we could use advice (not too often)." -# more_about_counselor: "Learn More About Becoming A Valuable Counselor" +# more_about_counselor: "Learn More About Becoming a Counselor" # changes_auto_save: "Changes are saved automatically when you toggle checkboxes." # diligent_scribes: "Our Diligent Scribes:" # powerful_archmages: "Our Powerful Archmages:" diff --git a/app/locale/es-419.coffee b/app/locale/es-419.coffee index 21991bc76..f9a5ed998 100644 --- a/app/locale/es-419.coffee +++ b/app/locale/es-419.coffee @@ -245,16 +245,16 @@ module.exports = nativeDescription: "español (América Latina)", englishDescrip # general: # and: "and" - or: "o" - name: "Nombre" +# name: "Name" # body: "Body" # version: "Version" # commit_msg: "Commit Message" # version_history_for: "Version History for: " # results: "Results" # description: "Description" - email: "Email" - message: "Mensaje" +# or: "or" +# email: "Email" +# message: "Message" # about: # who_is_codecombat: "Who is CodeCombat?" @@ -352,6 +352,7 @@ module.exports = nativeDescription: "español (América Latina)", englishDescrip # alert_account_message_pref: "To subscribe for class emails, you'll need to " # alert_account_message_suf: "first." # alert_account_message_create_url: "create an account" +# archmage_summary: "Interested in working on game graphics, user interface design, database and server organization, multiplayer networking, physics, sound, or game engine performance? Want to help build a game to help other people learn what you are good at? We have a lot to do and if you are an experienced programmer and want to develop for CodeCombat, this class is for you. We would love your help building the best programming game ever." # archmage_introduction: "One of the best parts about building games is they synthesize so many different things. Graphics, sound, real-time networking, social networking, and of course many of the more common aspects of programming, from low-level database management, and server administration to user facing design and interface building. There's a lot to do, and if you're an experienced programmer with a hankering to really dive into the nitty-gritty of CodeCombat, this class might be for you. We would love to have your help building the best programming game ever." # class_attributes: "Class Attributes" # archmage_attribute_1_pref: "Knowledge in " @@ -364,10 +365,12 @@ module.exports = nativeDescription: "español (América Latina)", englishDescrip # join_desc_4: "and we'll go from there!" # join_url_email: "Email us" # join_url_hipchat: "public HipChat room" -# more_about_archmage: "Learn More About Becoming A Powerful Archmage" +# more_about_archmage: "Learn More About Becoming an Archmage" # archmage_subscribe_desc: "Get emails on new coding opportunities and announcements." +# artisan_summary_pref: "Want to design levels and expand CodeCombat's arsenal? People are playing through our content at a pace faster than we can build! Right now, our level editor is barebone, so be wary. Making levels will be a little challenging and buggy. If you have visions of campaigns spanning for-loops to" +# artisan_summary_suf: "then this class is for you." # artisan_introduction_pref: "We must construct additional levels! People be clamoring for more content, and we can only build so many ourselves. Right now your workstation is level one; our level editor is barely usable even by its creators, so be wary. If you have visions of campaigns spanning for-loops to" -# artisan_introduction_suf: "to then this class might be for you." +# artisan_introduction_suf: "then this class might be for you." # artisan_attribute_1: "Any experience in building content like this would be nice, such as using Blizzard's level editors. But not required!" # artisan_attribute_2: "A hankering to do a whole lot of testing and iteration. To make good levels, you need to take it to others and watch them play it, and be prepared to find a lot of things to fix." # artisan_attribute_3: "For the time being, endurance en par with an Adventurer. Our Level Editor is super preliminary and frustrating to use. You have been warned!" @@ -376,24 +379,28 @@ module.exports = nativeDescription: "español (América Latina)", englishDescrip # artisan_join_step2: "Create a new level and explore existing levels." # artisan_join_step3: "Find us in our public HipChat room for help." # artisan_join_step4: "Post your levels on the forum for feedback." -# more_about_artisan: "Learn More About Becoming A Creative Artisan" +# more_about_artisan: "Learn More About Becoming an Artisan" # artisan_subscribe_desc: "Get emails on level editor updates and announcements." +# adventurer_sumamry: "Let us be clear about your role: you are the tank. You are going to take heavy damage. We need people to try out brand-new levels and help identify how to make things better. The pain will be enormous; making good games is a long process and no one gets it right the first time. If you can endure and have a high constitution score, then this class is for you." # adventurer_introduction: "Let's be clear about your role: you are the tank. You're going to take heavy damage. We need people to try out brand-new levels and help identify how to make things better. The pain will be enormous; making good games is a long process and no one gets it right the first time. If you can endure and have a high constitution score, then this class might be for you." # adventurer_attribute_1: "A thirst for learning. You want to learn how to code and we want to teach you how to code. You'll probably be doing most of the teaching in this case, though." # adventurer_attribute_2: "Charismatic. Be gentle but articulate about what needs improving, and offer suggestions on how to improve." # adventurer_join_pref: "Either get together with (or recruit!) an Artisan and work with them, or check the box below to receive emails when there are new levels to test. We'll also be posting about levels to review on our networks like" # adventurer_forum_url: "our forum" # adventurer_join_suf: "so if you prefer to be notified those ways, sign up there!" -# more_about_adventurer: "Learn More About Becoming A Brave Adventurer" +# more_about_adventurer: "Learn More About Becoming an Adventurer" # adventurer_subscribe_desc: "Get emails when there are new levels to test." +# scribe_summary_pref: "CodeCombat is not just going to be a bunch of levels. It will also be a resource of programming knowledge that players can hook into. That way, each Artisan can link to a detailed article that for the player's edification: documentation akin to what the " +# scribe_summary_sufx: " has built. If you enjoy explaining programming concepts, then this class is for you." # scribe_introduction_pref: "CodeCombat isn't just going to be a bunch of levels. It will also include a resource for knowledge, a wiki of programming concepts that levels can hook into. That way rather than each Artisan having to describe in detail what a comparison operator is, they can simply link their level to the Article describing them that is already written for the player's edification. Something along the lines of what the " # scribe_introduction_url_mozilla: "Mozilla Developer Network" # scribe_introduction_suf: " has built. If your idea of fun is articulating the concepts of programming in Markdown form, then this class might be for you." # scribe_attribute_1: "Skill in words is pretty much all you need. Not only grammar and spelling, but able to convey complicated ideas to others." # contact_us_url: "Contact us" # scribe_join_description: "tell us a little about yourself, your experience with programming and what sort of things you'd like to write about. We'll go from there!" -# more_about_scribe: "Learn More About Becoming A Diligent Scribe" +# more_about_scribe: "Learn More About Becoming a Scribe" # scribe_subscribe_desc: "Get emails about article writing announcements." +# diplomat_summary: "There is a large interest in CodeCombat in other countries that do not speak English! We are looking for translators who are willing to spend their time translating the site's corpus of words so that CodeCombat is accessible across the world as soon as possible. If you'd like to help getting CodeCombat international, then this class is for you." # diplomat_introduction_pref: "So, if there's one thing we learned from the " # diplomat_launch_url: "launch in October" # diplomat_introduction_suf: "it's that there is sizeable interest in CodeCombat in other countries, particularly Brazil! We're building a corps of translators eager to turn one set of words into another set of words to get CodeCombat as accessible across the world as possible. If you like getting sneak peeks at upcoming content and getting these levels to your fellow nationals ASAP, then this class might be for you." @@ -401,21 +408,23 @@ module.exports = nativeDescription: "español (América Latina)", englishDescrip # diplomat_join_pref: "We've started a lot of initial translations at " # diplomat_doc_url: "this forum post" # diplomat_join_suf: "so check it out and add things for your language. Also, check this box below to keep up-to-date on new internationalization developments!" -# more_about_diplomat: "Learn More About Becoming A Great Diplomat" +# more_about_diplomat: "Learn More About Becoming a Diplomat" # diplomat_subscribe_desc: "Get emails about i18n developments and levels to translate." +# ambassador_summary: "We are trying to build a community, and every community needs a support team when there are troubles. We have got chats, emails, and social networks so that our users can get acquainted with the game. If you want to help people get involved, have fun, and learn some programming, then this class is for you." # ambassador_introduction: "This is a community we're building, and you are the connections. We've got Olark chats, emails, and social networks with lots of people to talk with and help get acquainted with the game and learn from. If you want to help people get involved and have fun, and get a good feel of the pulse of CodeCombat and where we're going, then this class might be for you." # ambassador_attribute_1: "Communication skills. Be able to identify the problems players are having and help them solve them. Also, keep the rest of us informed about what players are saying, what they like and don't like and want more of!" # ambassador_join_desc: "tell us a little about yourself, what you've done and what you'd be interested in doing. We'll go from there!" # ambassador_join_note_strong: "Note" # ambassador_join_note_desc: "One of our top priorities is to build multiplayer where players having difficulty solving levels can summon higher level wizards to help them. This will be a great way for ambassadors to do their thing. We'll keep you posted!" -# more_about_ambassador: "Learn More About Becoming A Helpful Ambassador" +# more_about_ambassador: "Learn More About Becoming an Ambassador" # ambassador_subscribe_desc: "Get emails on support updates and multiplayer developments." +# counselor_summary: "None of the above roles fit what you are interested in? Do not worry, we are on the lookout for anybody who wants a hand in the development of CodeCombat! If you are interested in teaching, game development, open source management, or anything else that you think will be relevant to us, then this class is for you." # counselor_introduction_1: "Do you have life experience? A different perspective on things that can help us decide how to shape CodeCombat? Of all these roles, this will probably take the least time, but individually you may make the most difference. We're on the lookout for wisened sages, particularly in areas like: teaching, game development, open source project management, technical recruiting, entrepreneurship, or design." # counselor_introduction_2: "Or really anything that is relevant to the development of CodeCombat. If you have knowledge and want to share it to help grow this project, then this class might be for you." # counselor_attribute_1: "Experience, in any of the areas above or something you think might be helpful." # counselor_attribute_2: "A little bit of free time!" # counselor_join_desc: "tell us a little about yourself, what you've done and what you'd be interested in doing. We'll put you in our contact list and be in touch when we could use advice (not too often)." -# more_about_counselor: "Learn More About Becoming A Valuable Counselor" +# more_about_counselor: "Learn More About Becoming a Counselor" # changes_auto_save: "Changes are saved automatically when you toggle checkboxes." # diligent_scribes: "Our Diligent Scribes:" # powerful_archmages: "Our Powerful Archmages:" diff --git a/app/locale/es-ES.coffee b/app/locale/es-ES.coffee index 4620e91ca..4e17c0943 100644 --- a/app/locale/es-ES.coffee +++ b/app/locale/es-ES.coffee @@ -194,14 +194,14 @@ module.exports = nativeDescription: "español (ES)", englishDescription: "Spanis spell_saved: "Hechizo guardado" # admin: - av_title: "Vista de Administrador" - av_entities_sub_title: "Entidades" - av_entities_users_url: "Usuarios" - av_entities_active_instances_url: "Instancias Activas" - av_other_sub_title: "Otras" - av_other_debug_base_url: "Base (para depurar base.jade)" - u_title: "Lista de Usuario" - lg_title: "Últimos juegos" +# av_title: "Admin Views" +# av_entities_sub_title: "Entities" +# av_entities_users_url: "Users" +# av_entities_active_instances_url: "Active Instances" +# av_other_sub_title: "Other" +# av_other_debug_base_url: "Base (for debugging base.jade)" +# u_title: "User List" +# lg_title: "Latest Games" editor: main_title: "Editores de CodeCombat" @@ -245,7 +245,6 @@ module.exports = nativeDescription: "español (ES)", englishDescription: "Spanis general: and: "y" - or: "o" name: "Nombre" body: "Cuerpo" version: "Versión" @@ -253,6 +252,7 @@ module.exports = nativeDescription: "español (ES)", englishDescription: "Spanis version_history_for: "Historial de las versiones de: " results: "Resultados" description: "Descripción" + or: "o" email: "Correo electrónico" message: "Mensaje" @@ -352,6 +352,7 @@ module.exports = nativeDescription: "español (ES)", englishDescription: "Spanis alert_account_message_pref: "Para suscribirte a los correos electrónicos de las distintas Clases, necesitarás " alert_account_message_suf: "primero." alert_account_message_create_url: "crear una cuenta" +# archmage_summary: "Interested in working on game graphics, user interface design, database and server organization, multiplayer networking, physics, sound, or game engine performance? Want to help build a game to help other people learn what you are good at? We have a lot to do and if you are an experienced programmer and want to develop for CodeCombat, this class is for you. We would love your help building the best programming game ever." archmage_introduction: "Una de las mejores partes de desarrollar juegos es que combinan cosas muy diferentes. Gráficos, sonido, uso de redes en tiempo real, redes sociales y por supuesto mucho de los aspectos comunes de la programación, desde gestión de bases de datos a bajo nivel y administración de servidores hasta diseño de experiencia del usuario y creación de interfaces. Hay un montón de cosas por hacer y si eres un programador experimentado con interés en conocer lo que se cuece en la trastienda de CodeCombat, esta Clase puede ser la ideal para ti. Nos encantaría recibir tu ayuda para crear el mejor juego de programación de la historia." class_attributes: "Atributos de las Clases" archmage_attribute_1_pref: "Conocimiento en " @@ -366,6 +367,8 @@ module.exports = nativeDescription: "español (ES)", englishDescription: "Spanis join_url_hipchat: "sala pública en HipChat" more_about_archmage: "Aprende más sobre convertirte en un poderoso Archimago" archmage_subscribe_desc: "Recibe correos sobre nuevos anuncios y oportunidades de codificar." +# artisan_summary_pref: "Want to design levels and expand CodeCombat's arsenal? People are playing through our content at a pace faster than we can build! Right now, our level editor is barebone, so be wary. Making levels will be a little challenging and buggy. If you have visions of campaigns spanning for-loops to" +# artisan_summary_suf: "then this class is for you." artisan_introduction_pref: "¡Debemos construir niveles adicionales! La gente clama por más contenido y solo podemos crear unos cuantos. Ahora mismo tu estación de trabajo es el nivel uno; nuestro editor de niveles es apenas usable por sus creadores, así que ten cuidado. Si tienes visiones de campañas que alcanzan el infinito" artisan_introduction_suf: "entonces esta Clase es ideal para ti." artisan_attribute_1: "Cualquier experiencia creando contenido similar estaría bien, como por ejemplo el editor de niveles de Blizzard. ¡Aunque no es necesaria!" @@ -378,6 +381,7 @@ module.exports = nativeDescription: "español (ES)", englishDescription: "Spanis artisan_join_step4: "Publica tus niveles en el foro para recibir comentarios críticos." more_about_artisan: "Aprende más sobre convertirte en un Artesano creativo" artisan_subscribe_desc: "Recibe correos sobre actualizaciones del editor de niveles y anuncios." +# adventurer_sumamry: "Let us be clear about your role: you are the tank. You are going to take heavy damage. We need people to try out brand-new levels and help identify how to make things better. The pain will be enormous; making good games is a long process and no one gets it right the first time. If you can endure and have a high constitution score, then this class is for you." adventurer_introduction: "Hablemos claro sobre tu papel: eres el tanque. Vas a recibir fuertes daños. Necesitamos gente para probar nuestros flamantes niveles y ayudar a mejorarlos. El dolor será enorme; hacer buenos juegos es un proceso largo y nadie lo consigue a la primera. Si puedes resistir y tener una puntuación alta en Resistencia, entonces esta Clase es para ti." adventurer_attribute_1: "Estar sediento de conocimientos. Quieres aprender a programar y nosotros queremos enseñarte cómo hacerlo. Aunque en este caso es más probable que seas tú el que esté haciendo la mayor parte de la enseñanza." adventurer_attribute_2: "Carismático. Se amable pero claro a la hora de desglosar qué necesita ser mejorado y sugiere de qué formas podría hacerse." @@ -386,6 +390,8 @@ module.exports = nativeDescription: "español (ES)", englishDescription: "Spanis adventurer_join_suf: "así que si prefieres estar informado en esa forma, ¡crea una cuenta allí!" more_about_adventurer: "Aprende más sobre cómo convertirte en un bravo Aventurero" adventurer_subscribe_desc: "Recibe correos cuando haya nuevos niveles para testar." +# scribe_summary_pref: "CodeCombat is not just going to be a bunch of levels. It will also be a resource of programming knowledge that players can hook into. That way, each Artisan can link to a detailed article that for the player's edification: documentation akin to what the " +# scribe_summary_sufx: " has built. If you enjoy explaining programming concepts, then this class is for you." scribe_introduction_pref: "CodeCombat no será solo un montón de niveles. También será una fuente de conocimientos, una wiki de conceptos de programación a la que los niveles se engancharan. De esa forma, en lugar de que cada Artesano tenga que describir en detalle qué es un operador de comparación, podrá simplemente enlazar el nivel al Artículo que los describe y que ya ha sido escrito para edificación del jugador. Algo en la línea de lo que la " scribe_introduction_url_mozilla: "Mozilla Developer Network" scribe_introduction_suf: " ha construido. Si tu idea de diversión es articular los conceptos de la programación de una forma sencilla, entonces esta clase es para ti." @@ -394,6 +400,7 @@ module.exports = nativeDescription: "español (ES)", englishDescription: "Spanis scribe_join_description: "cuéntanos más sobre ti, tu experiencia en el mundo de la programación y sobre qué cosas te gustaría escribir. ¡Y continuaremos a partir de ahí!" more_about_scribe: "Aprende más sobre convertirte en un Escriba diligente" scribe_subscribe_desc: "Recibe correos sobre anuncios de redacción de Artículos." +# diplomat_summary: "There is a large interest in CodeCombat in other countries that do not speak English! We are looking for translators who are willing to spend their time translating the site's corpus of words so that CodeCombat is accessible across the world as soon as possible. If you'd like to help getting CodeCombat international, then this class is for you." diplomat_introduction_pref: "Así, si hemos aprendido algo desde el " diplomat_launch_url: "lanzamiento en octubre" diplomat_introduction_suf: "hay un interés considerable en CodeCombat en otros paises, ¡especialmente Brasil! Estamos formando un cuerpo de traductores con ganas de traducir un grupo de palabras tras otro para hacer CodeCombat tan accesible para todo el mundo como sea posible. Si quieres recibir avances de próximos contenidos y quieres poner esos niveles a disposición de los que comparten tu idioma tan pronto como sea posible, entonces esta Clase es para ti." @@ -403,6 +410,7 @@ module.exports = nativeDescription: "español (ES)", englishDescription: "Spanis diplomat_join_suf: "así que échale un vistazo y añade cosas para tu idioma. También, marca la casilla de abajo para mantenerte al día en nuevos desarrollos de internacionalización!" more_about_diplomat: "Aprende más sobre cómo convertirte en un gran Diplomático" diplomat_subscribe_desc: "Recibe correos sobre nuevos niveles y desarrollos para traducir." +# ambassador_summary: "We are trying to build a community, and every community needs a support team when there are troubles. We have got chats, emails, and social networks so that our users can get acquainted with the game. If you want to help people get involved, have fun, and learn some programming, then this class is for you." ambassador_introduction: "Esta es una comunidad en construcción y tú eres parte de las conexiones. Tenemos chat Olark, correos electrónicos y las redes sociales con una gran cantidad de personas con quienes hablar, ayudar a familiarizarse con el juego y aprender. Si quieres ayudar a la gente a que se involucre, se divierta, y tenga buenas sensaciones sobre CodeCombat y hacia dónde vamos, entonces esta clase es para ti." ambassador_attribute_1: "Habilidades de comunicación. Ser capaz de identificar los problemas que los jugadores están teniendo y ayudarles a resolverlos. Además, mantener al resto de nosotros informados sobre lo que los jugadores están diciendo, lo que les gusta, lo que no ¡y de lo que quieren más!" ambassador_join_desc: "cuéntanos más sobre ti, que has hecho y qué estarías interesado en hacer. ¡Y continuaremos a partir de ahí!" @@ -410,6 +418,7 @@ module.exports = nativeDescription: "español (ES)", englishDescription: "Spanis ambassador_join_note_desc: "Una de nuestras principales prioridades es construir un modo multijugador donde los jugadores con mayores dificultades a la hora de resolver un nivel, puedan invocar a los magos más avanzados para que les ayuden. Será una buena manera de que los Embajadores puedan hacer su trabajo. ¡Te mantendremos informado!" more_about_ambassador: "Aprende más sobre cómo convertirte en un amable Embajador" ambassador_subscribe_desc: "Recibe correos sobre actualizaciones de soporte y desarrollo del multijugador." +# counselor_summary: "None of the above roles fit what you are interested in? Do not worry, we are on the lookout for anybody who wants a hand in the development of CodeCombat! If you are interested in teaching, game development, open source management, or anything else that you think will be relevant to us, then this class is for you." counselor_introduction_1: "¿Tienes mucha experiencia vital? ¿Una perspectiva diferente de las cosas que nos puede ayudar a decidir cómo moldear CodeCombat? De todos estos papeles, este es el que te llevará menos tiempo pero en el que marcarás más la diferencia. Estamos buscando eruditos particularmente en áreas como: enseñanza, desarrollo de juegos, gestión de proyectos de código abierto, contratación de técnicos, iniciativa empresarial o diseño." counselor_introduction_2: "O realmente cualquier cosa que sea relevante para el desarrollo de CodeCombat. Si tienes el conocimiento y quieres compartirlo para ayudar a que este proyecto crezca, entonces esta Clase es ideal para ti." counselor_attribute_1: "Experiencia en cualquiera de las áreas mencionadas, o en lo que creas que puede ser de utilidad." diff --git a/app/locale/es.coffee b/app/locale/es.coffee index b242c7af6..9c75c1c8a 100644 --- a/app/locale/es.coffee +++ b/app/locale/es.coffee @@ -136,7 +136,7 @@ module.exports = nativeDescription: "español", englishDescription: "Spanish", t account_profile: edit_settings: "Editar Ajustes" profile_for_prefix: "Perfil de " - profile_for_suffix: "" +# profile_for_suffix: "" profile: "Perfil" user_not_found: "No se encontró al usuario. ¿Comprueba la URL?" gravatar_not_found_mine: "No podemos encontrar el prefil asociado con:" @@ -164,7 +164,7 @@ module.exports = nativeDescription: "español", englishDescription: "Spanish", t reload_title: "¿Recargar todo el código?" reload_really: "¿Estas seguro que quieres reiniciar el nivel?" reload_confirm: "Recargarlo todo" - victory_title_prefix: "" +# victory_title_prefix: "" victory_title_suffix: " Completo" victory_sign_up: "Regístrate para recibir actualizaciones." victory_sign_up_poke: "¿Buscas recivir las últimas noticias en tu email? Create una cuente gratuita y recibe la correspondencia." @@ -245,7 +245,6 @@ module.exports = nativeDescription: "español", englishDescription: "Spanish", t general: # and: "and" - or: "o" name: "Nombre" # body: "Body" # version: "Version" @@ -253,6 +252,7 @@ module.exports = nativeDescription: "español", englishDescription: "Spanish", t # version_history_for: "Version History for: " # results: "Results" # description: "Description" + or: "o" email: "Email" message: "Mensaje" @@ -352,6 +352,7 @@ module.exports = nativeDescription: "español", englishDescription: "Spanish", t # alert_account_message_pref: "To subscribe for class emails, you'll need to " # alert_account_message_suf: "first." # alert_account_message_create_url: "create an account" +# archmage_summary: "Interested in working on game graphics, user interface design, database and server organization, multiplayer networking, physics, sound, or game engine performance? Want to help build a game to help other people learn what you are good at? We have a lot to do and if you are an experienced programmer and want to develop for CodeCombat, this class is for you. We would love your help building the best programming game ever." # archmage_introduction: "One of the best parts about building games is they synthesize so many different things. Graphics, sound, real-time networking, social networking, and of course many of the more common aspects of programming, from low-level database management, and server administration to user facing design and interface building. There's a lot to do, and if you're an experienced programmer with a hankering to really dive into the nitty-gritty of CodeCombat, this class might be for you. We would love to have your help building the best programming game ever." # class_attributes: "Class Attributes" # archmage_attribute_1_pref: "Knowledge in " @@ -364,10 +365,12 @@ module.exports = nativeDescription: "español", englishDescription: "Spanish", t # join_desc_4: "and we'll go from there!" # join_url_email: "Email us" # join_url_hipchat: "public HipChat room" -# more_about_archmage: "Learn More About Becoming A Powerful Archmage" +# more_about_archmage: "Learn More About Becoming an Archmage" # archmage_subscribe_desc: "Get emails on new coding opportunities and announcements." +# artisan_summary_pref: "Want to design levels and expand CodeCombat's arsenal? People are playing through our content at a pace faster than we can build! Right now, our level editor is barebone, so be wary. Making levels will be a little challenging and buggy. If you have visions of campaigns spanning for-loops to" +# artisan_summary_suf: "then this class is for you." # artisan_introduction_pref: "We must construct additional levels! People be clamoring for more content, and we can only build so many ourselves. Right now your workstation is level one; our level editor is barely usable even by its creators, so be wary. If you have visions of campaigns spanning for-loops to" -# artisan_introduction_suf: "to then this class might be for you." +# artisan_introduction_suf: "then this class might be for you." # artisan_attribute_1: "Any experience in building content like this would be nice, such as using Blizzard's level editors. But not required!" # artisan_attribute_2: "A hankering to do a whole lot of testing and iteration. To make good levels, you need to take it to others and watch them play it, and be prepared to find a lot of things to fix." # artisan_attribute_3: "For the time being, endurance en par with an Adventurer. Our Level Editor is super preliminary and frustrating to use. You have been warned!" @@ -376,24 +379,28 @@ module.exports = nativeDescription: "español", englishDescription: "Spanish", t # artisan_join_step2: "Create a new level and explore existing levels." # artisan_join_step3: "Find us in our public HipChat room for help." # artisan_join_step4: "Post your levels on the forum for feedback." -# more_about_artisan: "Learn More About Becoming A Creative Artisan" +# more_about_artisan: "Learn More About Becoming an Artisan" # artisan_subscribe_desc: "Get emails on level editor updates and announcements." +# adventurer_sumamry: "Let us be clear about your role: you are the tank. You are going to take heavy damage. We need people to try out brand-new levels and help identify how to make things better. The pain will be enormous; making good games is a long process and no one gets it right the first time. If you can endure and have a high constitution score, then this class is for you." # adventurer_introduction: "Let's be clear about your role: you are the tank. You're going to take heavy damage. We need people to try out brand-new levels and help identify how to make things better. The pain will be enormous; making good games is a long process and no one gets it right the first time. If you can endure and have a high constitution score, then this class might be for you." # adventurer_attribute_1: "A thirst for learning. You want to learn how to code and we want to teach you how to code. You'll probably be doing most of the teaching in this case, though." # adventurer_attribute_2: "Charismatic. Be gentle but articulate about what needs improving, and offer suggestions on how to improve." # adventurer_join_pref: "Either get together with (or recruit!) an Artisan and work with them, or check the box below to receive emails when there are new levels to test. We'll also be posting about levels to review on our networks like" # adventurer_forum_url: "our forum" # adventurer_join_suf: "so if you prefer to be notified those ways, sign up there!" -# more_about_adventurer: "Learn More About Becoming A Brave Adventurer" +# more_about_adventurer: "Learn More About Becoming an Adventurer" # adventurer_subscribe_desc: "Get emails when there are new levels to test." +# scribe_summary_pref: "CodeCombat is not just going to be a bunch of levels. It will also be a resource of programming knowledge that players can hook into. That way, each Artisan can link to a detailed article that for the player's edification: documentation akin to what the " +# scribe_summary_sufx: " has built. If you enjoy explaining programming concepts, then this class is for you." # scribe_introduction_pref: "CodeCombat isn't just going to be a bunch of levels. It will also include a resource for knowledge, a wiki of programming concepts that levels can hook into. That way rather than each Artisan having to describe in detail what a comparison operator is, they can simply link their level to the Article describing them that is already written for the player's edification. Something along the lines of what the " # scribe_introduction_url_mozilla: "Mozilla Developer Network" # scribe_introduction_suf: " has built. If your idea of fun is articulating the concepts of programming in Markdown form, then this class might be for you." # scribe_attribute_1: "Skill in words is pretty much all you need. Not only grammar and spelling, but able to convey complicated ideas to others." # contact_us_url: "Contact us" # scribe_join_description: "tell us a little about yourself, your experience with programming and what sort of things you'd like to write about. We'll go from there!" -# more_about_scribe: "Learn More About Becoming A Diligent Scribe" +# more_about_scribe: "Learn More About Becoming a Scribe" # scribe_subscribe_desc: "Get emails about article writing announcements." +# diplomat_summary: "There is a large interest in CodeCombat in other countries that do not speak English! We are looking for translators who are willing to spend their time translating the site's corpus of words so that CodeCombat is accessible across the world as soon as possible. If you'd like to help getting CodeCombat international, then this class is for you." # diplomat_introduction_pref: "So, if there's one thing we learned from the " # diplomat_launch_url: "launch in October" # diplomat_introduction_suf: "it's that there is sizeable interest in CodeCombat in other countries, particularly Brazil! We're building a corps of translators eager to turn one set of words into another set of words to get CodeCombat as accessible across the world as possible. If you like getting sneak peeks at upcoming content and getting these levels to your fellow nationals ASAP, then this class might be for you." @@ -401,21 +408,23 @@ module.exports = nativeDescription: "español", englishDescription: "Spanish", t # diplomat_join_pref: "We've started a lot of initial translations at " # diplomat_doc_url: "this forum post" # diplomat_join_suf: "so check it out and add things for your language. Also, check this box below to keep up-to-date on new internationalization developments!" -# more_about_diplomat: "Learn More About Becoming A Great Diplomat" +# more_about_diplomat: "Learn More About Becoming a Diplomat" # diplomat_subscribe_desc: "Get emails about i18n developments and levels to translate." +# ambassador_summary: "We are trying to build a community, and every community needs a support team when there are troubles. We have got chats, emails, and social networks so that our users can get acquainted with the game. If you want to help people get involved, have fun, and learn some programming, then this class is for you." # ambassador_introduction: "This is a community we're building, and you are the connections. We've got Olark chats, emails, and social networks with lots of people to talk with and help get acquainted with the game and learn from. If you want to help people get involved and have fun, and get a good feel of the pulse of CodeCombat and where we're going, then this class might be for you." # ambassador_attribute_1: "Communication skills. Be able to identify the problems players are having and help them solve them. Also, keep the rest of us informed about what players are saying, what they like and don't like and want more of!" # ambassador_join_desc: "tell us a little about yourself, what you've done and what you'd be interested in doing. We'll go from there!" # ambassador_join_note_strong: "Note" # ambassador_join_note_desc: "One of our top priorities is to build multiplayer where players having difficulty solving levels can summon higher level wizards to help them. This will be a great way for ambassadors to do their thing. We'll keep you posted!" -# more_about_ambassador: "Learn More About Becoming A Helpful Ambassador" +# more_about_ambassador: "Learn More About Becoming an Ambassador" # ambassador_subscribe_desc: "Get emails on support updates and multiplayer developments." +# counselor_summary: "None of the above roles fit what you are interested in? Do not worry, we are on the lookout for anybody who wants a hand in the development of CodeCombat! If you are interested in teaching, game development, open source management, or anything else that you think will be relevant to us, then this class is for you." # counselor_introduction_1: "Do you have life experience? A different perspective on things that can help us decide how to shape CodeCombat? Of all these roles, this will probably take the least time, but individually you may make the most difference. We're on the lookout for wisened sages, particularly in areas like: teaching, game development, open source project management, technical recruiting, entrepreneurship, or design." # counselor_introduction_2: "Or really anything that is relevant to the development of CodeCombat. If you have knowledge and want to share it to help grow this project, then this class might be for you." # counselor_attribute_1: "Experience, in any of the areas above or something you think might be helpful." # counselor_attribute_2: "A little bit of free time!" # counselor_join_desc: "tell us a little about yourself, what you've done and what you'd be interested in doing. We'll put you in our contact list and be in touch when we could use advice (not too often)." -# more_about_counselor: "Learn More About Becoming A Valuable Counselor" +# more_about_counselor: "Learn More About Becoming a Counselor" # changes_auto_save: "Changes are saved automatically when you toggle checkboxes." # diligent_scribes: "Our Diligent Scribes:" # powerful_archmages: "Our Powerful Archmages:" diff --git a/app/locale/fa.coffee b/app/locale/fa.coffee index 593da860a..657c7b357 100644 --- a/app/locale/fa.coffee +++ b/app/locale/fa.coffee @@ -245,7 +245,6 @@ module.exports = nativeDescription: "فارسی", englishDescription: "Persian", general: # and: "and" - or: "یا" name: "نام" # body: "Body" # version: "Version" @@ -253,6 +252,7 @@ module.exports = nativeDescription: "فارسی", englishDescription: "Persian", # version_history_for: "Version History for: " # results: "Results" # description: "Description" + or: "یا" email: "ایمیل" message: "پیام" @@ -352,6 +352,7 @@ module.exports = nativeDescription: "فارسی", englishDescription: "Persian", # alert_account_message_pref: "To subscribe for class emails, you'll need to " # alert_account_message_suf: "first." # alert_account_message_create_url: "create an account" +# archmage_summary: "Interested in working on game graphics, user interface design, database and server organization, multiplayer networking, physics, sound, or game engine performance? Want to help build a game to help other people learn what you are good at? We have a lot to do and if you are an experienced programmer and want to develop for CodeCombat, this class is for you. We would love your help building the best programming game ever." # archmage_introduction: "One of the best parts about building games is they synthesize so many different things. Graphics, sound, real-time networking, social networking, and of course many of the more common aspects of programming, from low-level database management, and server administration to user facing design and interface building. There's a lot to do, and if you're an experienced programmer with a hankering to really dive into the nitty-gritty of CodeCombat, this class might be for you. We would love to have your help building the best programming game ever." # class_attributes: "Class Attributes" # archmage_attribute_1_pref: "Knowledge in " @@ -364,10 +365,12 @@ module.exports = nativeDescription: "فارسی", englishDescription: "Persian", # join_desc_4: "and we'll go from there!" # join_url_email: "Email us" # join_url_hipchat: "public HipChat room" -# more_about_archmage: "Learn More About Becoming A Powerful Archmage" +# more_about_archmage: "Learn More About Becoming an Archmage" # archmage_subscribe_desc: "Get emails on new coding opportunities and announcements." +# artisan_summary_pref: "Want to design levels and expand CodeCombat's arsenal? People are playing through our content at a pace faster than we can build! Right now, our level editor is barebone, so be wary. Making levels will be a little challenging and buggy. If you have visions of campaigns spanning for-loops to" +# artisan_summary_suf: "then this class is for you." # artisan_introduction_pref: "We must construct additional levels! People be clamoring for more content, and we can only build so many ourselves. Right now your workstation is level one; our level editor is barely usable even by its creators, so be wary. If you have visions of campaigns spanning for-loops to" -# artisan_introduction_suf: "to then this class might be for you." +# artisan_introduction_suf: "then this class might be for you." # artisan_attribute_1: "Any experience in building content like this would be nice, such as using Blizzard's level editors. But not required!" # artisan_attribute_2: "A hankering to do a whole lot of testing and iteration. To make good levels, you need to take it to others and watch them play it, and be prepared to find a lot of things to fix." # artisan_attribute_3: "For the time being, endurance en par with an Adventurer. Our Level Editor is super preliminary and frustrating to use. You have been warned!" @@ -376,24 +379,28 @@ module.exports = nativeDescription: "فارسی", englishDescription: "Persian", # artisan_join_step2: "Create a new level and explore existing levels." # artisan_join_step3: "Find us in our public HipChat room for help." # artisan_join_step4: "Post your levels on the forum for feedback." -# more_about_artisan: "Learn More About Becoming A Creative Artisan" +# more_about_artisan: "Learn More About Becoming an Artisan" # artisan_subscribe_desc: "Get emails on level editor updates and announcements." +# adventurer_sumamry: "Let us be clear about your role: you are the tank. You are going to take heavy damage. We need people to try out brand-new levels and help identify how to make things better. The pain will be enormous; making good games is a long process and no one gets it right the first time. If you can endure and have a high constitution score, then this class is for you." # adventurer_introduction: "Let's be clear about your role: you are the tank. You're going to take heavy damage. We need people to try out brand-new levels and help identify how to make things better. The pain will be enormous; making good games is a long process and no one gets it right the first time. If you can endure and have a high constitution score, then this class might be for you." # adventurer_attribute_1: "A thirst for learning. You want to learn how to code and we want to teach you how to code. You'll probably be doing most of the teaching in this case, though." # adventurer_attribute_2: "Charismatic. Be gentle but articulate about what needs improving, and offer suggestions on how to improve." # adventurer_join_pref: "Either get together with (or recruit!) an Artisan and work with them, or check the box below to receive emails when there are new levels to test. We'll also be posting about levels to review on our networks like" # adventurer_forum_url: "our forum" # adventurer_join_suf: "so if you prefer to be notified those ways, sign up there!" -# more_about_adventurer: "Learn More About Becoming A Brave Adventurer" +# more_about_adventurer: "Learn More About Becoming an Adventurer" # adventurer_subscribe_desc: "Get emails when there are new levels to test." +# scribe_summary_pref: "CodeCombat is not just going to be a bunch of levels. It will also be a resource of programming knowledge that players can hook into. That way, each Artisan can link to a detailed article that for the player's edification: documentation akin to what the " +# scribe_summary_sufx: " has built. If you enjoy explaining programming concepts, then this class is for you." # scribe_introduction_pref: "CodeCombat isn't just going to be a bunch of levels. It will also include a resource for knowledge, a wiki of programming concepts that levels can hook into. That way rather than each Artisan having to describe in detail what a comparison operator is, they can simply link their level to the Article describing them that is already written for the player's edification. Something along the lines of what the " # scribe_introduction_url_mozilla: "Mozilla Developer Network" # scribe_introduction_suf: " has built. If your idea of fun is articulating the concepts of programming in Markdown form, then this class might be for you." # scribe_attribute_1: "Skill in words is pretty much all you need. Not only grammar and spelling, but able to convey complicated ideas to others." # contact_us_url: "Contact us" # scribe_join_description: "tell us a little about yourself, your experience with programming and what sort of things you'd like to write about. We'll go from there!" -# more_about_scribe: "Learn More About Becoming A Diligent Scribe" +# more_about_scribe: "Learn More About Becoming a Scribe" # scribe_subscribe_desc: "Get emails about article writing announcements." +# diplomat_summary: "There is a large interest in CodeCombat in other countries that do not speak English! We are looking for translators who are willing to spend their time translating the site's corpus of words so that CodeCombat is accessible across the world as soon as possible. If you'd like to help getting CodeCombat international, then this class is for you." # diplomat_introduction_pref: "So, if there's one thing we learned from the " # diplomat_launch_url: "launch in October" # diplomat_introduction_suf: "it's that there is sizeable interest in CodeCombat in other countries, particularly Brazil! We're building a corps of translators eager to turn one set of words into another set of words to get CodeCombat as accessible across the world as possible. If you like getting sneak peeks at upcoming content and getting these levels to your fellow nationals ASAP, then this class might be for you." @@ -401,21 +408,23 @@ module.exports = nativeDescription: "فارسی", englishDescription: "Persian", # diplomat_join_pref: "We've started a lot of initial translations at " # diplomat_doc_url: "this forum post" # diplomat_join_suf: "so check it out and add things for your language. Also, check this box below to keep up-to-date on new internationalization developments!" -# more_about_diplomat: "Learn More About Becoming A Great Diplomat" +# more_about_diplomat: "Learn More About Becoming a Diplomat" # diplomat_subscribe_desc: "Get emails about i18n developments and levels to translate." +# ambassador_summary: "We are trying to build a community, and every community needs a support team when there are troubles. We have got chats, emails, and social networks so that our users can get acquainted with the game. If you want to help people get involved, have fun, and learn some programming, then this class is for you." # ambassador_introduction: "This is a community we're building, and you are the connections. We've got Olark chats, emails, and social networks with lots of people to talk with and help get acquainted with the game and learn from. If you want to help people get involved and have fun, and get a good feel of the pulse of CodeCombat and where we're going, then this class might be for you." # ambassador_attribute_1: "Communication skills. Be able to identify the problems players are having and help them solve them. Also, keep the rest of us informed about what players are saying, what they like and don't like and want more of!" # ambassador_join_desc: "tell us a little about yourself, what you've done and what you'd be interested in doing. We'll go from there!" # ambassador_join_note_strong: "Note" # ambassador_join_note_desc: "One of our top priorities is to build multiplayer where players having difficulty solving levels can summon higher level wizards to help them. This will be a great way for ambassadors to do their thing. We'll keep you posted!" -# more_about_ambassador: "Learn More About Becoming A Helpful Ambassador" +# more_about_ambassador: "Learn More About Becoming an Ambassador" # ambassador_subscribe_desc: "Get emails on support updates and multiplayer developments." +# counselor_summary: "None of the above roles fit what you are interested in? Do not worry, we are on the lookout for anybody who wants a hand in the development of CodeCombat! If you are interested in teaching, game development, open source management, or anything else that you think will be relevant to us, then this class is for you." # counselor_introduction_1: "Do you have life experience? A different perspective on things that can help us decide how to shape CodeCombat? Of all these roles, this will probably take the least time, but individually you may make the most difference. We're on the lookout for wisened sages, particularly in areas like: teaching, game development, open source project management, technical recruiting, entrepreneurship, or design." # counselor_introduction_2: "Or really anything that is relevant to the development of CodeCombat. If you have knowledge and want to share it to help grow this project, then this class might be for you." # counselor_attribute_1: "Experience, in any of the areas above or something you think might be helpful." # counselor_attribute_2: "A little bit of free time!" # counselor_join_desc: "tell us a little about yourself, what you've done and what you'd be interested in doing. We'll put you in our contact list and be in touch when we could use advice (not too often)." -# more_about_counselor: "Learn More About Becoming A Valuable Counselor" +# more_about_counselor: "Learn More About Becoming a Counselor" # changes_auto_save: "Changes are saved automatically when you toggle checkboxes." # diligent_scribes: "Our Diligent Scribes:" # powerful_archmages: "Our Powerful Archmages:" diff --git a/app/locale/fi.coffee b/app/locale/fi.coffee index 58733af99..9d9f57fb2 100644 --- a/app/locale/fi.coffee +++ b/app/locale/fi.coffee @@ -352,6 +352,7 @@ module.exports = nativeDescription: "suomi", englishDescription: "Finnish", tran # alert_account_message_pref: "To subscribe for class emails, you'll need to " # alert_account_message_suf: "first." # alert_account_message_create_url: "create an account" +# archmage_summary: "Interested in working on game graphics, user interface design, database and server organization, multiplayer networking, physics, sound, or game engine performance? Want to help build a game to help other people learn what you are good at? We have a lot to do and if you are an experienced programmer and want to develop for CodeCombat, this class is for you. We would love your help building the best programming game ever." # archmage_introduction: "One of the best parts about building games is they synthesize so many different things. Graphics, sound, real-time networking, social networking, and of course many of the more common aspects of programming, from low-level database management, and server administration to user facing design and interface building. There's a lot to do, and if you're an experienced programmer with a hankering to really dive into the nitty-gritty of CodeCombat, this class might be for you. We would love to have your help building the best programming game ever." # class_attributes: "Class Attributes" # archmage_attribute_1_pref: "Knowledge in " @@ -364,10 +365,12 @@ module.exports = nativeDescription: "suomi", englishDescription: "Finnish", tran # join_desc_4: "and we'll go from there!" # join_url_email: "Email us" # join_url_hipchat: "public HipChat room" -# more_about_archmage: "Learn More About Becoming A Powerful Archmage" +# more_about_archmage: "Learn More About Becoming an Archmage" # archmage_subscribe_desc: "Get emails on new coding opportunities and announcements." +# artisan_summary_pref: "Want to design levels and expand CodeCombat's arsenal? People are playing through our content at a pace faster than we can build! Right now, our level editor is barebone, so be wary. Making levels will be a little challenging and buggy. If you have visions of campaigns spanning for-loops to" +# artisan_summary_suf: "then this class is for you." # artisan_introduction_pref: "We must construct additional levels! People be clamoring for more content, and we can only build so many ourselves. Right now your workstation is level one; our level editor is barely usable even by its creators, so be wary. If you have visions of campaigns spanning for-loops to" -# artisan_introduction_suf: "to then this class might be for you." +# artisan_introduction_suf: "then this class might be for you." # artisan_attribute_1: "Any experience in building content like this would be nice, such as using Blizzard's level editors. But not required!" # artisan_attribute_2: "A hankering to do a whole lot of testing and iteration. To make good levels, you need to take it to others and watch them play it, and be prepared to find a lot of things to fix." # artisan_attribute_3: "For the time being, endurance en par with an Adventurer. Our Level Editor is super preliminary and frustrating to use. You have been warned!" @@ -376,24 +379,28 @@ module.exports = nativeDescription: "suomi", englishDescription: "Finnish", tran # artisan_join_step2: "Create a new level and explore existing levels." # artisan_join_step3: "Find us in our public HipChat room for help." # artisan_join_step4: "Post your levels on the forum for feedback." -# more_about_artisan: "Learn More About Becoming A Creative Artisan" +# more_about_artisan: "Learn More About Becoming an Artisan" # artisan_subscribe_desc: "Get emails on level editor updates and announcements." +# adventurer_sumamry: "Let us be clear about your role: you are the tank. You are going to take heavy damage. We need people to try out brand-new levels and help identify how to make things better. The pain will be enormous; making good games is a long process and no one gets it right the first time. If you can endure and have a high constitution score, then this class is for you." # adventurer_introduction: "Let's be clear about your role: you are the tank. You're going to take heavy damage. We need people to try out brand-new levels and help identify how to make things better. The pain will be enormous; making good games is a long process and no one gets it right the first time. If you can endure and have a high constitution score, then this class might be for you." # adventurer_attribute_1: "A thirst for learning. You want to learn how to code and we want to teach you how to code. You'll probably be doing most of the teaching in this case, though." # adventurer_attribute_2: "Charismatic. Be gentle but articulate about what needs improving, and offer suggestions on how to improve." # adventurer_join_pref: "Either get together with (or recruit!) an Artisan and work with them, or check the box below to receive emails when there are new levels to test. We'll also be posting about levels to review on our networks like" # adventurer_forum_url: "our forum" # adventurer_join_suf: "so if you prefer to be notified those ways, sign up there!" -# more_about_adventurer: "Learn More About Becoming A Brave Adventurer" +# more_about_adventurer: "Learn More About Becoming an Adventurer" # adventurer_subscribe_desc: "Get emails when there are new levels to test." +# scribe_summary_pref: "CodeCombat is not just going to be a bunch of levels. It will also be a resource of programming knowledge that players can hook into. That way, each Artisan can link to a detailed article that for the player's edification: documentation akin to what the " +# scribe_summary_sufx: " has built. If you enjoy explaining programming concepts, then this class is for you." # scribe_introduction_pref: "CodeCombat isn't just going to be a bunch of levels. It will also include a resource for knowledge, a wiki of programming concepts that levels can hook into. That way rather than each Artisan having to describe in detail what a comparison operator is, they can simply link their level to the Article describing them that is already written for the player's edification. Something along the lines of what the " # scribe_introduction_url_mozilla: "Mozilla Developer Network" # scribe_introduction_suf: " has built. If your idea of fun is articulating the concepts of programming in Markdown form, then this class might be for you." # scribe_attribute_1: "Skill in words is pretty much all you need. Not only grammar and spelling, but able to convey complicated ideas to others." # contact_us_url: "Contact us" # scribe_join_description: "tell us a little about yourself, your experience with programming and what sort of things you'd like to write about. We'll go from there!" -# more_about_scribe: "Learn More About Becoming A Diligent Scribe" +# more_about_scribe: "Learn More About Becoming a Scribe" # scribe_subscribe_desc: "Get emails about article writing announcements." +# diplomat_summary: "There is a large interest in CodeCombat in other countries that do not speak English! We are looking for translators who are willing to spend their time translating the site's corpus of words so that CodeCombat is accessible across the world as soon as possible. If you'd like to help getting CodeCombat international, then this class is for you." # diplomat_introduction_pref: "So, if there's one thing we learned from the " # diplomat_launch_url: "launch in October" # diplomat_introduction_suf: "it's that there is sizeable interest in CodeCombat in other countries, particularly Brazil! We're building a corps of translators eager to turn one set of words into another set of words to get CodeCombat as accessible across the world as possible. If you like getting sneak peeks at upcoming content and getting these levels to your fellow nationals ASAP, then this class might be for you." @@ -401,21 +408,23 @@ module.exports = nativeDescription: "suomi", englishDescription: "Finnish", tran # diplomat_join_pref: "We've started a lot of initial translations at " # diplomat_doc_url: "this forum post" # diplomat_join_suf: "so check it out and add things for your language. Also, check this box below to keep up-to-date on new internationalization developments!" -# more_about_diplomat: "Learn More About Becoming A Great Diplomat" +# more_about_diplomat: "Learn More About Becoming a Diplomat" # diplomat_subscribe_desc: "Get emails about i18n developments and levels to translate." +# ambassador_summary: "We are trying to build a community, and every community needs a support team when there are troubles. We have got chats, emails, and social networks so that our users can get acquainted with the game. If you want to help people get involved, have fun, and learn some programming, then this class is for you." # ambassador_introduction: "This is a community we're building, and you are the connections. We've got Olark chats, emails, and social networks with lots of people to talk with and help get acquainted with the game and learn from. If you want to help people get involved and have fun, and get a good feel of the pulse of CodeCombat and where we're going, then this class might be for you." # ambassador_attribute_1: "Communication skills. Be able to identify the problems players are having and help them solve them. Also, keep the rest of us informed about what players are saying, what they like and don't like and want more of!" # ambassador_join_desc: "tell us a little about yourself, what you've done and what you'd be interested in doing. We'll go from there!" # ambassador_join_note_strong: "Note" # ambassador_join_note_desc: "One of our top priorities is to build multiplayer where players having difficulty solving levels can summon higher level wizards to help them. This will be a great way for ambassadors to do their thing. We'll keep you posted!" -# more_about_ambassador: "Learn More About Becoming A Helpful Ambassador" +# more_about_ambassador: "Learn More About Becoming an Ambassador" # ambassador_subscribe_desc: "Get emails on support updates and multiplayer developments." +# counselor_summary: "None of the above roles fit what you are interested in? Do not worry, we are on the lookout for anybody who wants a hand in the development of CodeCombat! If you are interested in teaching, game development, open source management, or anything else that you think will be relevant to us, then this class is for you." # counselor_introduction_1: "Do you have life experience? A different perspective on things that can help us decide how to shape CodeCombat? Of all these roles, this will probably take the least time, but individually you may make the most difference. We're on the lookout for wisened sages, particularly in areas like: teaching, game development, open source project management, technical recruiting, entrepreneurship, or design." # counselor_introduction_2: "Or really anything that is relevant to the development of CodeCombat. If you have knowledge and want to share it to help grow this project, then this class might be for you." # counselor_attribute_1: "Experience, in any of the areas above or something you think might be helpful." # counselor_attribute_2: "A little bit of free time!" # counselor_join_desc: "tell us a little about yourself, what you've done and what you'd be interested in doing. We'll put you in our contact list and be in touch when we could use advice (not too often)." -# more_about_counselor: "Learn More About Becoming A Valuable Counselor" +# more_about_counselor: "Learn More About Becoming a Counselor" # changes_auto_save: "Changes are saved automatically when you toggle checkboxes." # diligent_scribes: "Our Diligent Scribes:" # powerful_archmages: "Our Powerful Archmages:" diff --git a/app/locale/fr.coffee b/app/locale/fr.coffee index 1e7a2bd9b..d374da09a 100644 --- a/app/locale/fr.coffee +++ b/app/locale/fr.coffee @@ -136,7 +136,7 @@ module.exports = nativeDescription: "français", englishDescription: "French", t account_profile: edit_settings: "Éditer les préférences" profile_for_prefix: "Profil pour " - profile_for_suffix: "" +# profile_for_suffix: "" profile: "Profil" user_not_found: "Aucun utilisateur trouvé. Vérifier l'URL?" gravatar_not_found_mine: "Nous n'avons pas pu trouver votre profil associé à: " @@ -164,7 +164,7 @@ module.exports = nativeDescription: "français", englishDescription: "French", t reload_title: "Recharger tout le code?" reload_really: "Êtes-vous sûr de vouloir recharger ce niveau et retourner au début?" reload_confirm: "Tout recharger" - victory_title_prefix: "" +# victory_title_prefix: "" victory_title_suffix: " Terminé" victory_sign_up: "Inscrivez-vous pour recevoir les mises à jour" victory_sign_up_poke: "Vous voulez recevoir les dernières actualités par mail? Créez un compte gratuitement et nous vous tiendrons informés!" @@ -245,7 +245,6 @@ module.exports = nativeDescription: "français", englishDescription: "French", t general: and: "et" - or: "ou" name: "Nom" body: "Corps" version: "Version" @@ -253,6 +252,7 @@ module.exports = nativeDescription: "français", englishDescription: "French", t # version_history_for: "Version History for: " results: "Résultats" description: "Description" + or: "ou" email: "Email" message: "Message" @@ -352,6 +352,7 @@ module.exports = nativeDescription: "français", englishDescription: "French", t alert_account_message_pref: "Pour s'inscrire à la newsletter, vous devez d'abord " alert_account_message_suf: "." alert_account_message_create_url: "créer un compte" +# archmage_summary: "Interested in working on game graphics, user interface design, database and server organization, multiplayer networking, physics, sound, or game engine performance? Want to help build a game to help other people learn what you are good at? We have a lot to do and if you are an experienced programmer and want to develop for CodeCombat, this class is for you. We would love your help building the best programming game ever." archmage_introduction: "L'une des meilleures parties de la création d'un jeu est qu'il regroupe tant de choses différentes. Graphismes, sons, réseau en temps réel, réseaux sociaux, et bien sur bien d'autres aspects de la programmation, de la gestion bas niveau de base de données, et de l'administration de serveur à l'élaboration d'interfaces utilisateur. Il y a tant à faire, et si vous êtes un programmeur expérimenté avec une aspiration à vraiment plonger dans le fond de CodeCombat, cette classe est faite pour vous. Nous aimerions avoir votre aide pour le meilleur jeu de développement de tous les temps." class_attributes: "Attributs de classe" archmage_attribute_1_pref: "Connaissance en " @@ -366,6 +367,8 @@ module.exports = nativeDescription: "français", englishDescription: "French", t join_url_hipchat: "conversation publique HipChat" more_about_archmage: "En apprendre plus sur devenir un puissant archimage" archmage_subscribe_desc: "Recevoir un email sur les nouvelles possibilités de développement et des annonces." +# artisan_summary_pref: "Want to design levels and expand CodeCombat's arsenal? People are playing through our content at a pace faster than we can build! Right now, our level editor is barebone, so be wary. Making levels will be a little challenging and buggy. If you have visions of campaigns spanning for-loops to" +# artisan_summary_suf: "then this class is for you." artisan_introduction_pref: "Nous devons créer des niveaux additionnels! Les gens veulent plus de contenu, et nous ne pouvons pas tous les créer nous-mêmes. Maintenant votre station de travail est au niveau un ; notre éditeur de niveaux est à peine utilisable même par ses créateurs, donc méfiez-vous. Si vous avez des idées sur la boucle for de" artisan_introduction_suf: "cette classe est faite pour vous." artisan_attribute_1: "Une expérience dans la création de contenu comme celui-ci serait un plus, comme utiliser l'éditeur de niveaux de Blizzard. Mais ce n'est pas nécessaire!" @@ -378,6 +381,7 @@ module.exports = nativeDescription: "français", englishDescription: "French", t artisan_join_step4: "Postez vos niveaux dans le forum pour avoir des retours." more_about_artisan: "En apprendre plus sur comment devenir un Artisan créatif" artisan_subscribe_desc: "Recevoir un email sur les annonces et mises à jour de l'éditeur de niveaux." +# adventurer_sumamry: "Let us be clear about your role: you are the tank. You are going to take heavy damage. We need people to try out brand-new levels and help identify how to make things better. The pain will be enormous; making good games is a long process and no one gets it right the first time. If you can endure and have a high constitution score, then this class is for you." adventurer_introduction: "Soyons clair à propos de votre rôle : vous êtes le tank. Vous allez subir beaucoup de dommages. Nous avons besoin de gens pour essayer les nouveaux niveaux et aider à identifier comment améliorer les choses. La douleur sera énorme; faire de bons jeux est une longue tâche et personne n'y arrive du premier coup. Si vous pouvez résister et avez un gros score de constitution, alors cette classe est faite pour vous." adventurer_attribute_1: "Une soif d'apprendre. Vous voulez apprendre à développer et nous voulons vous apprendre. Vous allez toutefois faire la plupart de l'apprentissage." adventurer_attribute_2: "Charismatique. Soyez doux mais exprimez-vous sur ce qui a besoin d'être amélioré, et faites des propositions sur comment l'améliorer." @@ -386,6 +390,8 @@ module.exports = nativeDescription: "français", englishDescription: "French", t adventurer_join_suf: "si vous préférez être avertis ainsi, inscrivez-vous ici!" more_about_adventurer: "En apprendre plus sur devenir un brave Aventurier" adventurer_subscribe_desc: "Recevoir un email lorsqu'il y a de nouveaux niveaux à tester." +# scribe_summary_pref: "CodeCombat is not just going to be a bunch of levels. It will also be a resource of programming knowledge that players can hook into. That way, each Artisan can link to a detailed article that for the player's edification: documentation akin to what the " +# scribe_summary_sufx: " has built. If you enjoy explaining programming concepts, then this class is for you." scribe_introduction_pref: "CodeCombat n'est pas seulement un ensemble de niveaux. Il contiendra aussi des ressources pour la connaissance, un wiki des concepts de programmation que les niveaux pourront illustrer. Dans ce but, chaque Artisan pourra, au lieu d'avoir à décrire en détail ce qu'est un opérateur de comparaison, seulement lier son niveau à l'article qui le décrit et qui a été écrit pour aider les joueurs. Quelque chose dans le sens de ce que le " scribe_introduction_url_mozilla: "Mozilla Developer Network" scribe_introduction_suf: " a développé. Si votre définition de l'amusement passe par le format Markdown, alors cette classe est pour vous." @@ -394,6 +400,7 @@ module.exports = nativeDescription: "français", englishDescription: "French", t scribe_join_description: "parlez nous un peu de vous, de votre expérience en programmation et de quels sujets vous souhaitez traiter. Nous partirons de là!" more_about_scribe: "En apprendre plus sur comment devenir un Scribe assidu" scribe_subscribe_desc: "Recevoir un email sur les annonces d'écriture d'article." +# diplomat_summary: "There is a large interest in CodeCombat in other countries that do not speak English! We are looking for translators who are willing to spend their time translating the site's corpus of words so that CodeCombat is accessible across the world as soon as possible. If you'd like to help getting CodeCombat international, then this class is for you." diplomat_introduction_pref: "Si nous avons appris quelque chose du " diplomat_launch_url: "lancement en octobre" diplomat_introduction_suf: "c'est qu'il y a un intérêt considérable pour CodeCombat dans d'autres pays, particulièrement au Brésil! Nous créons une équipe de traducteurs pour changer une liste de mots en une autre pour que CodeCombat soit le plus accessible possible à travers le monde. Si vous souhaitez avoir un aperçu des prochains contenus et avoir les niveaux dans votre langue le plus tôt possible, alors cette classe est faite pour vous." @@ -403,6 +410,7 @@ module.exports = nativeDescription: "français", englishDescription: "French", t diplomat_join_suf: "regardez les et ajoutez des choses à votre langue. Aussi, cochez la case ci-dessous pour rester à jour sur les nouveaux développement d'i18n!" more_about_diplomat: "En apprendre plus sur comment devenir un bon diplomate" diplomat_subscribe_desc: "Recevoir un email sur le développement i18n et les niveaux à traduire." +# ambassador_summary: "We are trying to build a community, and every community needs a support team when there are troubles. We have got chats, emails, and social networks so that our users can get acquainted with the game. If you want to help people get involved, have fun, and learn some programming, then this class is for you." ambassador_introduction: "C'est la communauté que nous construisons, et vous en êtes les connexions. Nous avons des discussions via le chat Olark, emails et les réseaux sociaux avec plusieurs personnes, et l'aide vient à la fois du jeu lui-même et grâce à lui. Si vous voulez aider les gens, prendre part à l'aventure et vous amuser, avec un bon feeling de CodeCombat et ce vers quoi nous allons, alors cette classe est faite pour vous." ambassador_attribute_1: "Compétences en communication. Être capable d'identifier les problèmes que les joueurs ont et les aider à les résoudre. Mais aussi nous tenir informés de ce que les joueurs disent, ce qu'ils aiment et n'aiment pas et d'autres choses de ce genre!" ambassador_join_desc: "parlez-nous un peu de vous, de ce que vous avez fait et ce qui vous aimeriez faire. Nous partirons de ça!" @@ -410,6 +418,7 @@ module.exports = nativeDescription: "français", englishDescription: "French", t ambassador_join_note_desc: "Une de nos priorités est de développer un jeu multijoueur où les joueurs qui ont du mal à réussir un niveau peuvent demander de l'aide à un joueur de plus haut niveau. Ce sera un bon moyen pour que les ambassadeurs fassent leur travail. Nous vous garderons en ligne!" more_about_ambassador: "En apprendre plus sur comment devenir un serviable Ambassadeur" ambassador_subscribe_desc: "Recevoir un email sur les mises à jour de l'aide et les développements multijoueur." +# counselor_summary: "None of the above roles fit what you are interested in? Do not worry, we are on the lookout for anybody who wants a hand in the development of CodeCombat! If you are interested in teaching, game development, open source management, or anything else that you think will be relevant to us, then this class is for you." counselor_introduction_1: "Avez-vous de l'expérience dans la vie? Ou toute autre expérience qui peut nous aider à décider comment diriger CodeCombat? De tous ces rôles, ce sera probablement celui qui prend le moins de temps, mais vous ferez la différence. Nous recherchons des sages, particulièrement dans les domaines de : l'apprentissage, le développement de jeux, la gestion de projets open source, le recrutement technique, l'entreprenariat, ou la conception." counselor_introduction_2: "Ou vraiment toutes choses en rapport avec le développement de CodeCombat. Si vous avez des connaissances et que vous voulez les partager pour aider le projet à avancer, alors cette classe est faite pour vous." counselor_attribute_1: "De l'expérience, dans un des domaines ci-dessus ou quelque chose que vous pensez être utile." @@ -439,4 +448,3 @@ module.exports = nativeDescription: "français", englishDescription: "French", t ambassador_title_description: "(Aide)" counselor_title: "Conseiller" counselor_title_description: "(Expert/Professeur)" - diff --git a/app/locale/he.coffee b/app/locale/he.coffee index e804dca79..fcadf5713 100644 --- a/app/locale/he.coffee +++ b/app/locale/he.coffee @@ -352,6 +352,7 @@ module.exports = nativeDescription: "עברית", englishDescription: "Hebrew", # alert_account_message_pref: "To subscribe for class emails, you'll need to " # alert_account_message_suf: "first." # alert_account_message_create_url: "create an account" +# archmage_summary: "Interested in working on game graphics, user interface design, database and server organization, multiplayer networking, physics, sound, or game engine performance? Want to help build a game to help other people learn what you are good at? We have a lot to do and if you are an experienced programmer and want to develop for CodeCombat, this class is for you. We would love your help building the best programming game ever." # archmage_introduction: "One of the best parts about building games is they synthesize so many different things. Graphics, sound, real-time networking, social networking, and of course many of the more common aspects of programming, from low-level database management, and server administration to user facing design and interface building. There's a lot to do, and if you're an experienced programmer with a hankering to really dive into the nitty-gritty of CodeCombat, this class might be for you. We would love to have your help building the best programming game ever." # class_attributes: "Class Attributes" # archmage_attribute_1_pref: "Knowledge in " @@ -364,10 +365,12 @@ module.exports = nativeDescription: "עברית", englishDescription: "Hebrew", # join_desc_4: "and we'll go from there!" # join_url_email: "Email us" # join_url_hipchat: "public HipChat room" -# more_about_archmage: "Learn More About Becoming A Powerful Archmage" +# more_about_archmage: "Learn More About Becoming an Archmage" # archmage_subscribe_desc: "Get emails on new coding opportunities and announcements." +# artisan_summary_pref: "Want to design levels and expand CodeCombat's arsenal? People are playing through our content at a pace faster than we can build! Right now, our level editor is barebone, so be wary. Making levels will be a little challenging and buggy. If you have visions of campaigns spanning for-loops to" +# artisan_summary_suf: "then this class is for you." # artisan_introduction_pref: "We must construct additional levels! People be clamoring for more content, and we can only build so many ourselves. Right now your workstation is level one; our level editor is barely usable even by its creators, so be wary. If you have visions of campaigns spanning for-loops to" -# artisan_introduction_suf: "to then this class might be for you." +# artisan_introduction_suf: "then this class might be for you." # artisan_attribute_1: "Any experience in building content like this would be nice, such as using Blizzard's level editors. But not required!" # artisan_attribute_2: "A hankering to do a whole lot of testing and iteration. To make good levels, you need to take it to others and watch them play it, and be prepared to find a lot of things to fix." # artisan_attribute_3: "For the time being, endurance en par with an Adventurer. Our Level Editor is super preliminary and frustrating to use. You have been warned!" @@ -376,24 +379,28 @@ module.exports = nativeDescription: "עברית", englishDescription: "Hebrew", # artisan_join_step2: "Create a new level and explore existing levels." # artisan_join_step3: "Find us in our public HipChat room for help." # artisan_join_step4: "Post your levels on the forum for feedback." -# more_about_artisan: "Learn More About Becoming A Creative Artisan" +# more_about_artisan: "Learn More About Becoming an Artisan" # artisan_subscribe_desc: "Get emails on level editor updates and announcements." +# adventurer_sumamry: "Let us be clear about your role: you are the tank. You are going to take heavy damage. We need people to try out brand-new levels and help identify how to make things better. The pain will be enormous; making good games is a long process and no one gets it right the first time. If you can endure and have a high constitution score, then this class is for you." # adventurer_introduction: "Let's be clear about your role: you are the tank. You're going to take heavy damage. We need people to try out brand-new levels and help identify how to make things better. The pain will be enormous; making good games is a long process and no one gets it right the first time. If you can endure and have a high constitution score, then this class might be for you." # adventurer_attribute_1: "A thirst for learning. You want to learn how to code and we want to teach you how to code. You'll probably be doing most of the teaching in this case, though." # adventurer_attribute_2: "Charismatic. Be gentle but articulate about what needs improving, and offer suggestions on how to improve." # adventurer_join_pref: "Either get together with (or recruit!) an Artisan and work with them, or check the box below to receive emails when there are new levels to test. We'll also be posting about levels to review on our networks like" # adventurer_forum_url: "our forum" # adventurer_join_suf: "so if you prefer to be notified those ways, sign up there!" -# more_about_adventurer: "Learn More About Becoming A Brave Adventurer" +# more_about_adventurer: "Learn More About Becoming an Adventurer" # adventurer_subscribe_desc: "Get emails when there are new levels to test." +# scribe_summary_pref: "CodeCombat is not just going to be a bunch of levels. It will also be a resource of programming knowledge that players can hook into. That way, each Artisan can link to a detailed article that for the player's edification: documentation akin to what the " +# scribe_summary_sufx: " has built. If you enjoy explaining programming concepts, then this class is for you." # scribe_introduction_pref: "CodeCombat isn't just going to be a bunch of levels. It will also include a resource for knowledge, a wiki of programming concepts that levels can hook into. That way rather than each Artisan having to describe in detail what a comparison operator is, they can simply link their level to the Article describing them that is already written for the player's edification. Something along the lines of what the " # scribe_introduction_url_mozilla: "Mozilla Developer Network" # scribe_introduction_suf: " has built. If your idea of fun is articulating the concepts of programming in Markdown form, then this class might be for you." # scribe_attribute_1: "Skill in words is pretty much all you need. Not only grammar and spelling, but able to convey complicated ideas to others." # contact_us_url: "Contact us" # scribe_join_description: "tell us a little about yourself, your experience with programming and what sort of things you'd like to write about. We'll go from there!" -# more_about_scribe: "Learn More About Becoming A Diligent Scribe" +# more_about_scribe: "Learn More About Becoming a Scribe" # scribe_subscribe_desc: "Get emails about article writing announcements." +# diplomat_summary: "There is a large interest in CodeCombat in other countries that do not speak English! We are looking for translators who are willing to spend their time translating the site's corpus of words so that CodeCombat is accessible across the world as soon as possible. If you'd like to help getting CodeCombat international, then this class is for you." # diplomat_introduction_pref: "So, if there's one thing we learned from the " # diplomat_launch_url: "launch in October" # diplomat_introduction_suf: "it's that there is sizeable interest in CodeCombat in other countries, particularly Brazil! We're building a corps of translators eager to turn one set of words into another set of words to get CodeCombat as accessible across the world as possible. If you like getting sneak peeks at upcoming content and getting these levels to your fellow nationals ASAP, then this class might be for you." @@ -401,21 +408,23 @@ module.exports = nativeDescription: "עברית", englishDescription: "Hebrew", # diplomat_join_pref: "We've started a lot of initial translations at " # diplomat_doc_url: "this forum post" # diplomat_join_suf: "so check it out and add things for your language. Also, check this box below to keep up-to-date on new internationalization developments!" -# more_about_diplomat: "Learn More About Becoming A Great Diplomat" +# more_about_diplomat: "Learn More About Becoming a Diplomat" # diplomat_subscribe_desc: "Get emails about i18n developments and levels to translate." +# ambassador_summary: "We are trying to build a community, and every community needs a support team when there are troubles. We have got chats, emails, and social networks so that our users can get acquainted with the game. If you want to help people get involved, have fun, and learn some programming, then this class is for you." # ambassador_introduction: "This is a community we're building, and you are the connections. We've got Olark chats, emails, and social networks with lots of people to talk with and help get acquainted with the game and learn from. If you want to help people get involved and have fun, and get a good feel of the pulse of CodeCombat and where we're going, then this class might be for you." # ambassador_attribute_1: "Communication skills. Be able to identify the problems players are having and help them solve them. Also, keep the rest of us informed about what players are saying, what they like and don't like and want more of!" # ambassador_join_desc: "tell us a little about yourself, what you've done and what you'd be interested in doing. We'll go from there!" # ambassador_join_note_strong: "Note" # ambassador_join_note_desc: "One of our top priorities is to build multiplayer where players having difficulty solving levels can summon higher level wizards to help them. This will be a great way for ambassadors to do their thing. We'll keep you posted!" -# more_about_ambassador: "Learn More About Becoming A Helpful Ambassador" +# more_about_ambassador: "Learn More About Becoming an Ambassador" # ambassador_subscribe_desc: "Get emails on support updates and multiplayer developments." +# counselor_summary: "None of the above roles fit what you are interested in? Do not worry, we are on the lookout for anybody who wants a hand in the development of CodeCombat! If you are interested in teaching, game development, open source management, or anything else that you think will be relevant to us, then this class is for you." # counselor_introduction_1: "Do you have life experience? A different perspective on things that can help us decide how to shape CodeCombat? Of all these roles, this will probably take the least time, but individually you may make the most difference. We're on the lookout for wisened sages, particularly in areas like: teaching, game development, open source project management, technical recruiting, entrepreneurship, or design." # counselor_introduction_2: "Or really anything that is relevant to the development of CodeCombat. If you have knowledge and want to share it to help grow this project, then this class might be for you." # counselor_attribute_1: "Experience, in any of the areas above or something you think might be helpful." # counselor_attribute_2: "A little bit of free time!" # counselor_join_desc: "tell us a little about yourself, what you've done and what you'd be interested in doing. We'll put you in our contact list and be in touch when we could use advice (not too often)." -# more_about_counselor: "Learn More About Becoming A Valuable Counselor" +# more_about_counselor: "Learn More About Becoming a Counselor" # changes_auto_save: "Changes are saved automatically when you toggle checkboxes." # diligent_scribes: "Our Diligent Scribes:" # powerful_archmages: "Our Powerful Archmages:" diff --git a/app/locale/hi.coffee b/app/locale/hi.coffee index 4e0f75846..b5f025b82 100644 --- a/app/locale/hi.coffee +++ b/app/locale/hi.coffee @@ -352,6 +352,7 @@ module.exports = nativeDescription: "मानक हिन्दी", englishDe # alert_account_message_pref: "To subscribe for class emails, you'll need to " # alert_account_message_suf: "first." # alert_account_message_create_url: "create an account" +# archmage_summary: "Interested in working on game graphics, user interface design, database and server organization, multiplayer networking, physics, sound, or game engine performance? Want to help build a game to help other people learn what you are good at? We have a lot to do and if you are an experienced programmer and want to develop for CodeCombat, this class is for you. We would love your help building the best programming game ever." # archmage_introduction: "One of the best parts about building games is they synthesize so many different things. Graphics, sound, real-time networking, social networking, and of course many of the more common aspects of programming, from low-level database management, and server administration to user facing design and interface building. There's a lot to do, and if you're an experienced programmer with a hankering to really dive into the nitty-gritty of CodeCombat, this class might be for you. We would love to have your help building the best programming game ever." # class_attributes: "Class Attributes" # archmage_attribute_1_pref: "Knowledge in " @@ -364,10 +365,12 @@ module.exports = nativeDescription: "मानक हिन्दी", englishDe # join_desc_4: "and we'll go from there!" # join_url_email: "Email us" # join_url_hipchat: "public HipChat room" -# more_about_archmage: "Learn More About Becoming A Powerful Archmage" +# more_about_archmage: "Learn More About Becoming an Archmage" # archmage_subscribe_desc: "Get emails on new coding opportunities and announcements." +# artisan_summary_pref: "Want to design levels and expand CodeCombat's arsenal? People are playing through our content at a pace faster than we can build! Right now, our level editor is barebone, so be wary. Making levels will be a little challenging and buggy. If you have visions of campaigns spanning for-loops to" +# artisan_summary_suf: "then this class is for you." # artisan_introduction_pref: "We must construct additional levels! People be clamoring for more content, and we can only build so many ourselves. Right now your workstation is level one; our level editor is barely usable even by its creators, so be wary. If you have visions of campaigns spanning for-loops to" -# artisan_introduction_suf: "to then this class might be for you." +# artisan_introduction_suf: "then this class might be for you." # artisan_attribute_1: "Any experience in building content like this would be nice, such as using Blizzard's level editors. But not required!" # artisan_attribute_2: "A hankering to do a whole lot of testing and iteration. To make good levels, you need to take it to others and watch them play it, and be prepared to find a lot of things to fix." # artisan_attribute_3: "For the time being, endurance en par with an Adventurer. Our Level Editor is super preliminary and frustrating to use. You have been warned!" @@ -376,24 +379,28 @@ module.exports = nativeDescription: "मानक हिन्दी", englishDe # artisan_join_step2: "Create a new level and explore existing levels." # artisan_join_step3: "Find us in our public HipChat room for help." # artisan_join_step4: "Post your levels on the forum for feedback." -# more_about_artisan: "Learn More About Becoming A Creative Artisan" +# more_about_artisan: "Learn More About Becoming an Artisan" # artisan_subscribe_desc: "Get emails on level editor updates and announcements." +# adventurer_sumamry: "Let us be clear about your role: you are the tank. You are going to take heavy damage. We need people to try out brand-new levels and help identify how to make things better. The pain will be enormous; making good games is a long process and no one gets it right the first time. If you can endure and have a high constitution score, then this class is for you." # adventurer_introduction: "Let's be clear about your role: you are the tank. You're going to take heavy damage. We need people to try out brand-new levels and help identify how to make things better. The pain will be enormous; making good games is a long process and no one gets it right the first time. If you can endure and have a high constitution score, then this class might be for you." # adventurer_attribute_1: "A thirst for learning. You want to learn how to code and we want to teach you how to code. You'll probably be doing most of the teaching in this case, though." # adventurer_attribute_2: "Charismatic. Be gentle but articulate about what needs improving, and offer suggestions on how to improve." # adventurer_join_pref: "Either get together with (or recruit!) an Artisan and work with them, or check the box below to receive emails when there are new levels to test. We'll also be posting about levels to review on our networks like" # adventurer_forum_url: "our forum" # adventurer_join_suf: "so if you prefer to be notified those ways, sign up there!" -# more_about_adventurer: "Learn More About Becoming A Brave Adventurer" +# more_about_adventurer: "Learn More About Becoming an Adventurer" # adventurer_subscribe_desc: "Get emails when there are new levels to test." +# scribe_summary_pref: "CodeCombat is not just going to be a bunch of levels. It will also be a resource of programming knowledge that players can hook into. That way, each Artisan can link to a detailed article that for the player's edification: documentation akin to what the " +# scribe_summary_sufx: " has built. If you enjoy explaining programming concepts, then this class is for you." # scribe_introduction_pref: "CodeCombat isn't just going to be a bunch of levels. It will also include a resource for knowledge, a wiki of programming concepts that levels can hook into. That way rather than each Artisan having to describe in detail what a comparison operator is, they can simply link their level to the Article describing them that is already written for the player's edification. Something along the lines of what the " # scribe_introduction_url_mozilla: "Mozilla Developer Network" # scribe_introduction_suf: " has built. If your idea of fun is articulating the concepts of programming in Markdown form, then this class might be for you." # scribe_attribute_1: "Skill in words is pretty much all you need. Not only grammar and spelling, but able to convey complicated ideas to others." # contact_us_url: "Contact us" # scribe_join_description: "tell us a little about yourself, your experience with programming and what sort of things you'd like to write about. We'll go from there!" -# more_about_scribe: "Learn More About Becoming A Diligent Scribe" +# more_about_scribe: "Learn More About Becoming a Scribe" # scribe_subscribe_desc: "Get emails about article writing announcements." +# diplomat_summary: "There is a large interest in CodeCombat in other countries that do not speak English! We are looking for translators who are willing to spend their time translating the site's corpus of words so that CodeCombat is accessible across the world as soon as possible. If you'd like to help getting CodeCombat international, then this class is for you." # diplomat_introduction_pref: "So, if there's one thing we learned from the " # diplomat_launch_url: "launch in October" # diplomat_introduction_suf: "it's that there is sizeable interest in CodeCombat in other countries, particularly Brazil! We're building a corps of translators eager to turn one set of words into another set of words to get CodeCombat as accessible across the world as possible. If you like getting sneak peeks at upcoming content and getting these levels to your fellow nationals ASAP, then this class might be for you." @@ -401,21 +408,23 @@ module.exports = nativeDescription: "मानक हिन्दी", englishDe # diplomat_join_pref: "We've started a lot of initial translations at " # diplomat_doc_url: "this forum post" # diplomat_join_suf: "so check it out and add things for your language. Also, check this box below to keep up-to-date on new internationalization developments!" -# more_about_diplomat: "Learn More About Becoming A Great Diplomat" +# more_about_diplomat: "Learn More About Becoming a Diplomat" # diplomat_subscribe_desc: "Get emails about i18n developments and levels to translate." +# ambassador_summary: "We are trying to build a community, and every community needs a support team when there are troubles. We have got chats, emails, and social networks so that our users can get acquainted with the game. If you want to help people get involved, have fun, and learn some programming, then this class is for you." # ambassador_introduction: "This is a community we're building, and you are the connections. We've got Olark chats, emails, and social networks with lots of people to talk with and help get acquainted with the game and learn from. If you want to help people get involved and have fun, and get a good feel of the pulse of CodeCombat and where we're going, then this class might be for you." # ambassador_attribute_1: "Communication skills. Be able to identify the problems players are having and help them solve them. Also, keep the rest of us informed about what players are saying, what they like and don't like and want more of!" # ambassador_join_desc: "tell us a little about yourself, what you've done and what you'd be interested in doing. We'll go from there!" # ambassador_join_note_strong: "Note" # ambassador_join_note_desc: "One of our top priorities is to build multiplayer where players having difficulty solving levels can summon higher level wizards to help them. This will be a great way for ambassadors to do their thing. We'll keep you posted!" -# more_about_ambassador: "Learn More About Becoming A Helpful Ambassador" +# more_about_ambassador: "Learn More About Becoming an Ambassador" # ambassador_subscribe_desc: "Get emails on support updates and multiplayer developments." +# counselor_summary: "None of the above roles fit what you are interested in? Do not worry, we are on the lookout for anybody who wants a hand in the development of CodeCombat! If you are interested in teaching, game development, open source management, or anything else that you think will be relevant to us, then this class is for you." # counselor_introduction_1: "Do you have life experience? A different perspective on things that can help us decide how to shape CodeCombat? Of all these roles, this will probably take the least time, but individually you may make the most difference. We're on the lookout for wisened sages, particularly in areas like: teaching, game development, open source project management, technical recruiting, entrepreneurship, or design." # counselor_introduction_2: "Or really anything that is relevant to the development of CodeCombat. If you have knowledge and want to share it to help grow this project, then this class might be for you." # counselor_attribute_1: "Experience, in any of the areas above or something you think might be helpful." # counselor_attribute_2: "A little bit of free time!" # counselor_join_desc: "tell us a little about yourself, what you've done and what you'd be interested in doing. We'll put you in our contact list and be in touch when we could use advice (not too often)." -# more_about_counselor: "Learn More About Becoming A Valuable Counselor" +# more_about_counselor: "Learn More About Becoming a Counselor" # changes_auto_save: "Changes are saved automatically when you toggle checkboxes." # diligent_scribes: "Our Diligent Scribes:" # powerful_archmages: "Our Powerful Archmages:" diff --git a/app/locale/hu.coffee b/app/locale/hu.coffee index 54fc0a6c7..32db298fc 100644 --- a/app/locale/hu.coffee +++ b/app/locale/hu.coffee @@ -49,6 +49,7 @@ module.exports = nativeDescription: "magyar", englishDescription: "Hungarian", t recover: recover_account_title: "Meglévő fiók visszaállítása" +# send_password: "Send Recovery Password" signup: # create_account_title: "Create Account to Save Progress" @@ -69,7 +70,6 @@ module.exports = nativeDescription: "magyar", englishDescription: "Hungarian", t play: choose_your_level: "Válaszd ki a pályát!" adventurer_prefix: "Továbbugorhatsz bármelyik pályára, amit lent látsz. Vagy megbeszélheted a pályát a többiekkel " -# fixed separation adventurer_forum: "a Kalandozók Fórumán" adventurer_suffix: "." campaign_beginner: "Kezdő Kampány" @@ -143,7 +143,7 @@ module.exports = nativeDescription: "magyar", englishDescription: "Hungarian", t # gravatar_not_found_email_suffix: "." gravatar_signup_prefix: "Regisztrálj az " gravatar_signup_suffix: " oldalon!" -# gravatar_not_found_other: "Nem találtunk profilt ezzel a címmel:" +# gravatar_not_found_other: "Alas, there's no profile associated with this person's email address." gravatar_contact: "Kapcsolat" gravatar_websites: "Weboldalak" # gravatar_accounts: "As Seen On" @@ -159,7 +159,7 @@ module.exports = nativeDescription: "magyar", englishDescription: "Hungarian", t multiplayer: "Többjátékos" restart: "Előről" goals: "Célok" - action_timeline: "Akció - Idővonal" # or "Tettvonal" # "Tettvonal" sounds like "line of a crime" or something. "Akció idővonal" a little better but even not the best. I'll think about it later (csuvasregal - Sárosi Gergely) + action_timeline: "Akció - Idővonal" click_to_select: "Kattints egy egységre, hogy kijelöld!" reload_title: "Újra kezded mindet?" reload_really: "Biztos vagy benne, hogy előről szeretnéd kezdeni az egész pályát?" @@ -178,7 +178,7 @@ module.exports = nativeDescription: "magyar", englishDescription: "Hungarian", t multiplayer_link_description: "Add oda ezt a linket bárkinek, és csatlakozhatnak hozzád." multiplayer_hint_label: "Tipp:" multiplayer_hint: " Kattints a linkre, és Ctrl+C-vel (vagy ⌘+C-vel) másold a vágólapra!" - mltiplayer_coming_soon: "További beállítások,hamarosan!" +# multiplayer_coming_soon: "More multiplayer features to come!" guide_title: "Útmutató" tome_minion_spells: "Egységeid varázslatai" tome_read_only_spells: "Csak olvasható varázslatok" @@ -245,7 +245,6 @@ module.exports = nativeDescription: "magyar", englishDescription: "Hungarian", t general: and: "és" - or: "vagy " name: "Név" # body: "Body" # version: "Version" @@ -253,6 +252,7 @@ module.exports = nativeDescription: "magyar", englishDescription: "Hungarian", t # version_history_for: "Version History for: " # results: "Results" # description: "Description" + or: "vagy " email: "Email cím" message: "Üzenet" @@ -352,6 +352,7 @@ module.exports = nativeDescription: "magyar", englishDescription: "Hungarian", t # alert_account_message_pref: "To subscribe for class emails, you'll need to " # alert_account_message_suf: "first." # alert_account_message_create_url: "create an account" +# archmage_summary: "Interested in working on game graphics, user interface design, database and server organization, multiplayer networking, physics, sound, or game engine performance? Want to help build a game to help other people learn what you are good at? We have a lot to do and if you are an experienced programmer and want to develop for CodeCombat, this class is for you. We would love your help building the best programming game ever." # archmage_introduction: "One of the best parts about building games is they synthesize so many different things. Graphics, sound, real-time networking, social networking, and of course many of the more common aspects of programming, from low-level database management, and server administration to user facing design and interface building. There's a lot to do, and if you're an experienced programmer with a hankering to really dive into the nitty-gritty of CodeCombat, this class might be for you. We would love to have your help building the best programming game ever." # class_attributes: "Class Attributes" # archmage_attribute_1_pref: "Knowledge in " @@ -364,10 +365,12 @@ module.exports = nativeDescription: "magyar", englishDescription: "Hungarian", t # join_desc_4: "and we'll go from there!" # join_url_email: "Email us" # join_url_hipchat: "public HipChat room" -# more_about_archmage: "Learn More About Becoming A Powerful Archmage" +# more_about_archmage: "Learn More About Becoming an Archmage" # archmage_subscribe_desc: "Get emails on new coding opportunities and announcements." +# artisan_summary_pref: "Want to design levels and expand CodeCombat's arsenal? People are playing through our content at a pace faster than we can build! Right now, our level editor is barebone, so be wary. Making levels will be a little challenging and buggy. If you have visions of campaigns spanning for-loops to" +# artisan_summary_suf: "then this class is for you." # artisan_introduction_pref: "We must construct additional levels! People be clamoring for more content, and we can only build so many ourselves. Right now your workstation is level one; our level editor is barely usable even by its creators, so be wary. If you have visions of campaigns spanning for-loops to" -# artisan_introduction_suf: "to then this class might be for you." +# artisan_introduction_suf: "then this class might be for you." # artisan_attribute_1: "Any experience in building content like this would be nice, such as using Blizzard's level editors. But not required!" # artisan_attribute_2: "A hankering to do a whole lot of testing and iteration. To make good levels, you need to take it to others and watch them play it, and be prepared to find a lot of things to fix." # artisan_attribute_3: "For the time being, endurance en par with an Adventurer. Our Level Editor is super preliminary and frustrating to use. You have been warned!" @@ -376,24 +379,28 @@ module.exports = nativeDescription: "magyar", englishDescription: "Hungarian", t # artisan_join_step2: "Create a new level and explore existing levels." # artisan_join_step3: "Find us in our public HipChat room for help." # artisan_join_step4: "Post your levels on the forum for feedback." -# more_about_artisan: "Learn More About Becoming A Creative Artisan" +# more_about_artisan: "Learn More About Becoming an Artisan" # artisan_subscribe_desc: "Get emails on level editor updates and announcements." +# adventurer_sumamry: "Let us be clear about your role: you are the tank. You are going to take heavy damage. We need people to try out brand-new levels and help identify how to make things better. The pain will be enormous; making good games is a long process and no one gets it right the first time. If you can endure and have a high constitution score, then this class is for you." # adventurer_introduction: "Let's be clear about your role: you are the tank. You're going to take heavy damage. We need people to try out brand-new levels and help identify how to make things better. The pain will be enormous; making good games is a long process and no one gets it right the first time. If you can endure and have a high constitution score, then this class might be for you." # adventurer_attribute_1: "A thirst for learning. You want to learn how to code and we want to teach you how to code. You'll probably be doing most of the teaching in this case, though." # adventurer_attribute_2: "Charismatic. Be gentle but articulate about what needs improving, and offer suggestions on how to improve." # adventurer_join_pref: "Either get together with (or recruit!) an Artisan and work with them, or check the box below to receive emails when there are new levels to test. We'll also be posting about levels to review on our networks like" # adventurer_forum_url: "our forum" # adventurer_join_suf: "so if you prefer to be notified those ways, sign up there!" -# more_about_adventurer: "Learn More About Becoming A Brave Adventurer" +# more_about_adventurer: "Learn More About Becoming an Adventurer" # adventurer_subscribe_desc: "Get emails when there are new levels to test." +# scribe_summary_pref: "CodeCombat is not just going to be a bunch of levels. It will also be a resource of programming knowledge that players can hook into. That way, each Artisan can link to a detailed article that for the player's edification: documentation akin to what the " +# scribe_summary_sufx: " has built. If you enjoy explaining programming concepts, then this class is for you." # scribe_introduction_pref: "CodeCombat isn't just going to be a bunch of levels. It will also include a resource for knowledge, a wiki of programming concepts that levels can hook into. That way rather than each Artisan having to describe in detail what a comparison operator is, they can simply link their level to the Article describing them that is already written for the player's edification. Something along the lines of what the " # scribe_introduction_url_mozilla: "Mozilla Developer Network" # scribe_introduction_suf: " has built. If your idea of fun is articulating the concepts of programming in Markdown form, then this class might be for you." # scribe_attribute_1: "Skill in words is pretty much all you need. Not only grammar and spelling, but able to convey complicated ideas to others." # contact_us_url: "Contact us" # scribe_join_description: "tell us a little about yourself, your experience with programming and what sort of things you'd like to write about. We'll go from there!" -# more_about_scribe: "Learn More About Becoming A Diligent Scribe" +# more_about_scribe: "Learn More About Becoming a Scribe" # scribe_subscribe_desc: "Get emails about article writing announcements." +# diplomat_summary: "There is a large interest in CodeCombat in other countries that do not speak English! We are looking for translators who are willing to spend their time translating the site's corpus of words so that CodeCombat is accessible across the world as soon as possible. If you'd like to help getting CodeCombat international, then this class is for you." # diplomat_introduction_pref: "So, if there's one thing we learned from the " # diplomat_launch_url: "launch in October" # diplomat_introduction_suf: "it's that there is sizeable interest in CodeCombat in other countries, particularly Brazil! We're building a corps of translators eager to turn one set of words into another set of words to get CodeCombat as accessible across the world as possible. If you like getting sneak peeks at upcoming content and getting these levels to your fellow nationals ASAP, then this class might be for you." @@ -401,21 +408,23 @@ module.exports = nativeDescription: "magyar", englishDescription: "Hungarian", t # diplomat_join_pref: "We've started a lot of initial translations at " # diplomat_doc_url: "this forum post" # diplomat_join_suf: "so check it out and add things for your language. Also, check this box below to keep up-to-date on new internationalization developments!" -# more_about_diplomat: "Learn More About Becoming A Great Diplomat" +# more_about_diplomat: "Learn More About Becoming a Diplomat" # diplomat_subscribe_desc: "Get emails about i18n developments and levels to translate." +# ambassador_summary: "We are trying to build a community, and every community needs a support team when there are troubles. We have got chats, emails, and social networks so that our users can get acquainted with the game. If you want to help people get involved, have fun, and learn some programming, then this class is for you." # ambassador_introduction: "This is a community we're building, and you are the connections. We've got Olark chats, emails, and social networks with lots of people to talk with and help get acquainted with the game and learn from. If you want to help people get involved and have fun, and get a good feel of the pulse of CodeCombat and where we're going, then this class might be for you." # ambassador_attribute_1: "Communication skills. Be able to identify the problems players are having and help them solve them. Also, keep the rest of us informed about what players are saying, what they like and don't like and want more of!" # ambassador_join_desc: "tell us a little about yourself, what you've done and what you'd be interested in doing. We'll go from there!" # ambassador_join_note_strong: "Note" # ambassador_join_note_desc: "One of our top priorities is to build multiplayer where players having difficulty solving levels can summon higher level wizards to help them. This will be a great way for ambassadors to do their thing. We'll keep you posted!" -# more_about_ambassador: "Learn More About Becoming A Helpful Ambassador" +# more_about_ambassador: "Learn More About Becoming an Ambassador" # ambassador_subscribe_desc: "Get emails on support updates and multiplayer developments." +# counselor_summary: "None of the above roles fit what you are interested in? Do not worry, we are on the lookout for anybody who wants a hand in the development of CodeCombat! If you are interested in teaching, game development, open source management, or anything else that you think will be relevant to us, then this class is for you." # counselor_introduction_1: "Do you have life experience? A different perspective on things that can help us decide how to shape CodeCombat? Of all these roles, this will probably take the least time, but individually you may make the most difference. We're on the lookout for wisened sages, particularly in areas like: teaching, game development, open source project management, technical recruiting, entrepreneurship, or design." # counselor_introduction_2: "Or really anything that is relevant to the development of CodeCombat. If you have knowledge and want to share it to help grow this project, then this class might be for you." # counselor_attribute_1: "Experience, in any of the areas above or something you think might be helpful." # counselor_attribute_2: "A little bit of free time!" # counselor_join_desc: "tell us a little about yourself, what you've done and what you'd be interested in doing. We'll put you in our contact list and be in touch when we could use advice (not too often)." -# more_about_counselor: "Learn More About Becoming A Valuable Counselor" +# more_about_counselor: "Learn More About Becoming a Counselor" # changes_auto_save: "Changes are saved automatically when you toggle checkboxes." # diligent_scribes: "Our Diligent Scribes:" # powerful_archmages: "Our Powerful Archmages:" diff --git a/app/locale/id.coffee b/app/locale/id.coffee index 678a53357..87fae663d 100644 --- a/app/locale/id.coffee +++ b/app/locale/id.coffee @@ -352,6 +352,7 @@ module.exports = nativeDescription: "Bahasa Indonesia", englishDescription: "Ind # alert_account_message_pref: "To subscribe for class emails, you'll need to " # alert_account_message_suf: "first." # alert_account_message_create_url: "create an account" +# archmage_summary: "Interested in working on game graphics, user interface design, database and server organization, multiplayer networking, physics, sound, or game engine performance? Want to help build a game to help other people learn what you are good at? We have a lot to do and if you are an experienced programmer and want to develop for CodeCombat, this class is for you. We would love your help building the best programming game ever." # archmage_introduction: "One of the best parts about building games is they synthesize so many different things. Graphics, sound, real-time networking, social networking, and of course many of the more common aspects of programming, from low-level database management, and server administration to user facing design and interface building. There's a lot to do, and if you're an experienced programmer with a hankering to really dive into the nitty-gritty of CodeCombat, this class might be for you. We would love to have your help building the best programming game ever." # class_attributes: "Class Attributes" # archmage_attribute_1_pref: "Knowledge in " @@ -364,10 +365,12 @@ module.exports = nativeDescription: "Bahasa Indonesia", englishDescription: "Ind # join_desc_4: "and we'll go from there!" # join_url_email: "Email us" # join_url_hipchat: "public HipChat room" -# more_about_archmage: "Learn More About Becoming A Powerful Archmage" +# more_about_archmage: "Learn More About Becoming an Archmage" # archmage_subscribe_desc: "Get emails on new coding opportunities and announcements." +# artisan_summary_pref: "Want to design levels and expand CodeCombat's arsenal? People are playing through our content at a pace faster than we can build! Right now, our level editor is barebone, so be wary. Making levels will be a little challenging and buggy. If you have visions of campaigns spanning for-loops to" +# artisan_summary_suf: "then this class is for you." # artisan_introduction_pref: "We must construct additional levels! People be clamoring for more content, and we can only build so many ourselves. Right now your workstation is level one; our level editor is barely usable even by its creators, so be wary. If you have visions of campaigns spanning for-loops to" -# artisan_introduction_suf: "to then this class might be for you." +# artisan_introduction_suf: "then this class might be for you." # artisan_attribute_1: "Any experience in building content like this would be nice, such as using Blizzard's level editors. But not required!" # artisan_attribute_2: "A hankering to do a whole lot of testing and iteration. To make good levels, you need to take it to others and watch them play it, and be prepared to find a lot of things to fix." # artisan_attribute_3: "For the time being, endurance en par with an Adventurer. Our Level Editor is super preliminary and frustrating to use. You have been warned!" @@ -376,24 +379,28 @@ module.exports = nativeDescription: "Bahasa Indonesia", englishDescription: "Ind # artisan_join_step2: "Create a new level and explore existing levels." # artisan_join_step3: "Find us in our public HipChat room for help." # artisan_join_step4: "Post your levels on the forum for feedback." -# more_about_artisan: "Learn More About Becoming A Creative Artisan" +# more_about_artisan: "Learn More About Becoming an Artisan" # artisan_subscribe_desc: "Get emails on level editor updates and announcements." +# adventurer_sumamry: "Let us be clear about your role: you are the tank. You are going to take heavy damage. We need people to try out brand-new levels and help identify how to make things better. The pain will be enormous; making good games is a long process and no one gets it right the first time. If you can endure and have a high constitution score, then this class is for you." # adventurer_introduction: "Let's be clear about your role: you are the tank. You're going to take heavy damage. We need people to try out brand-new levels and help identify how to make things better. The pain will be enormous; making good games is a long process and no one gets it right the first time. If you can endure and have a high constitution score, then this class might be for you." # adventurer_attribute_1: "A thirst for learning. You want to learn how to code and we want to teach you how to code. You'll probably be doing most of the teaching in this case, though." # adventurer_attribute_2: "Charismatic. Be gentle but articulate about what needs improving, and offer suggestions on how to improve." # adventurer_join_pref: "Either get together with (or recruit!) an Artisan and work with them, or check the box below to receive emails when there are new levels to test. We'll also be posting about levels to review on our networks like" # adventurer_forum_url: "our forum" # adventurer_join_suf: "so if you prefer to be notified those ways, sign up there!" -# more_about_adventurer: "Learn More About Becoming A Brave Adventurer" +# more_about_adventurer: "Learn More About Becoming an Adventurer" # adventurer_subscribe_desc: "Get emails when there are new levels to test." +# scribe_summary_pref: "CodeCombat is not just going to be a bunch of levels. It will also be a resource of programming knowledge that players can hook into. That way, each Artisan can link to a detailed article that for the player's edification: documentation akin to what the " +# scribe_summary_sufx: " has built. If you enjoy explaining programming concepts, then this class is for you." # scribe_introduction_pref: "CodeCombat isn't just going to be a bunch of levels. It will also include a resource for knowledge, a wiki of programming concepts that levels can hook into. That way rather than each Artisan having to describe in detail what a comparison operator is, they can simply link their level to the Article describing them that is already written for the player's edification. Something along the lines of what the " # scribe_introduction_url_mozilla: "Mozilla Developer Network" # scribe_introduction_suf: " has built. If your idea of fun is articulating the concepts of programming in Markdown form, then this class might be for you." # scribe_attribute_1: "Skill in words is pretty much all you need. Not only grammar and spelling, but able to convey complicated ideas to others." # contact_us_url: "Contact us" # scribe_join_description: "tell us a little about yourself, your experience with programming and what sort of things you'd like to write about. We'll go from there!" -# more_about_scribe: "Learn More About Becoming A Diligent Scribe" +# more_about_scribe: "Learn More About Becoming a Scribe" # scribe_subscribe_desc: "Get emails about article writing announcements." +# diplomat_summary: "There is a large interest in CodeCombat in other countries that do not speak English! We are looking for translators who are willing to spend their time translating the site's corpus of words so that CodeCombat is accessible across the world as soon as possible. If you'd like to help getting CodeCombat international, then this class is for you." # diplomat_introduction_pref: "So, if there's one thing we learned from the " # diplomat_launch_url: "launch in October" # diplomat_introduction_suf: "it's that there is sizeable interest in CodeCombat in other countries, particularly Brazil! We're building a corps of translators eager to turn one set of words into another set of words to get CodeCombat as accessible across the world as possible. If you like getting sneak peeks at upcoming content and getting these levels to your fellow nationals ASAP, then this class might be for you." @@ -401,21 +408,23 @@ module.exports = nativeDescription: "Bahasa Indonesia", englishDescription: "Ind # diplomat_join_pref: "We've started a lot of initial translations at " # diplomat_doc_url: "this forum post" # diplomat_join_suf: "so check it out and add things for your language. Also, check this box below to keep up-to-date on new internationalization developments!" -# more_about_diplomat: "Learn More About Becoming A Great Diplomat" +# more_about_diplomat: "Learn More About Becoming a Diplomat" # diplomat_subscribe_desc: "Get emails about i18n developments and levels to translate." +# ambassador_summary: "We are trying to build a community, and every community needs a support team when there are troubles. We have got chats, emails, and social networks so that our users can get acquainted with the game. If you want to help people get involved, have fun, and learn some programming, then this class is for you." # ambassador_introduction: "This is a community we're building, and you are the connections. We've got Olark chats, emails, and social networks with lots of people to talk with and help get acquainted with the game and learn from. If you want to help people get involved and have fun, and get a good feel of the pulse of CodeCombat and where we're going, then this class might be for you." # ambassador_attribute_1: "Communication skills. Be able to identify the problems players are having and help them solve them. Also, keep the rest of us informed about what players are saying, what they like and don't like and want more of!" # ambassador_join_desc: "tell us a little about yourself, what you've done and what you'd be interested in doing. We'll go from there!" # ambassador_join_note_strong: "Note" # ambassador_join_note_desc: "One of our top priorities is to build multiplayer where players having difficulty solving levels can summon higher level wizards to help them. This will be a great way for ambassadors to do their thing. We'll keep you posted!" -# more_about_ambassador: "Learn More About Becoming A Helpful Ambassador" +# more_about_ambassador: "Learn More About Becoming an Ambassador" # ambassador_subscribe_desc: "Get emails on support updates and multiplayer developments." +# counselor_summary: "None of the above roles fit what you are interested in? Do not worry, we are on the lookout for anybody who wants a hand in the development of CodeCombat! If you are interested in teaching, game development, open source management, or anything else that you think will be relevant to us, then this class is for you." # counselor_introduction_1: "Do you have life experience? A different perspective on things that can help us decide how to shape CodeCombat? Of all these roles, this will probably take the least time, but individually you may make the most difference. We're on the lookout for wisened sages, particularly in areas like: teaching, game development, open source project management, technical recruiting, entrepreneurship, or design." # counselor_introduction_2: "Or really anything that is relevant to the development of CodeCombat. If you have knowledge and want to share it to help grow this project, then this class might be for you." # counselor_attribute_1: "Experience, in any of the areas above or something you think might be helpful." # counselor_attribute_2: "A little bit of free time!" # counselor_join_desc: "tell us a little about yourself, what you've done and what you'd be interested in doing. We'll put you in our contact list and be in touch when we could use advice (not too often)." -# more_about_counselor: "Learn More About Becoming A Valuable Counselor" +# more_about_counselor: "Learn More About Becoming a Counselor" # changes_auto_save: "Changes are saved automatically when you toggle checkboxes." # diligent_scribes: "Our Diligent Scribes:" # powerful_archmages: "Our Powerful Archmages:" diff --git a/app/locale/it.coffee b/app/locale/it.coffee index 249a2c9ae..63be2c7c3 100644 --- a/app/locale/it.coffee +++ b/app/locale/it.coffee @@ -164,7 +164,7 @@ module.exports = nativeDescription: "italiano", englishDescription: "Italian", t reload_title: "Ricarica tutto il codice?" reload_really: "Sei sicuro di voler ricominciare il livello?" reload_confirm: "Ricarica tutto" - victory_title_prefix: "" +# victory_title_prefix: "" victory_title_suffix: " Completato" victory_sign_up: "Registrati per gli aggiornamenti" victory_sign_up_poke: "Vuoi ricevere le ultime novità per email? Crea un account gratuito e ti terremo aggiornato!" @@ -202,6 +202,7 @@ module.exports = nativeDescription: "italiano", englishDescription: "Italian", t av_other_debug_base_url: "Base (for debugging base.jade)" u_title: "Lista utenti" lg_title: "Ultime partite" + editor: main_title: "Editor di CodeCombat" main_description: "Costruisci i tuoi livelli, le tue campagne, unità e contenuti educativi. Ti forniamo tutti gli attrezzi necessari!" @@ -244,7 +245,6 @@ module.exports = nativeDescription: "italiano", englishDescription: "Italian", t general: and: "e" - or: "o" name: "Nome" body: "Testo" version: "Versione" @@ -252,6 +252,7 @@ module.exports = nativeDescription: "italiano", englishDescription: "Italian", t # version_history_for: "Version History for: " results: "Risultati" description: "Descrizione" + or: "o" email: "Email" message: "Messaggio" @@ -338,7 +339,6 @@ module.exports = nativeDescription: "italiano", englishDescription: "Italian", t nutshell_description: "Qualsiasi risorsa che inseriamo nell'Editor livelli è di libero uso per la creazione dei livelli. Ci riserviamo però il diritto di limitare la distribuzione dei livelli stessi (creati su codecombat.com) che quindi potranno essere a pagamento in futuro, se questo è ciò che finirà per succedere." canonical: "La versione inglese di questo documento è quella che fa fede. Se ci sono discrepanze tra le traduzioni, la versione inglese ha la precedenza." - contribute: page_title: "Contribuire" # character_classes_title: "Character Classes" @@ -352,6 +352,7 @@ module.exports = nativeDescription: "italiano", englishDescription: "Italian", t # alert_account_message_pref: "To subscribe for class emails, you'll need to " # alert_account_message_suf: "first." # alert_account_message_create_url: "create an account" +# archmage_summary: "Interested in working on game graphics, user interface design, database and server organization, multiplayer networking, physics, sound, or game engine performance? Want to help build a game to help other people learn what you are good at? We have a lot to do and if you are an experienced programmer and want to develop for CodeCombat, this class is for you. We would love your help building the best programming game ever." # archmage_introduction: "One of the best parts about building games is they synthesize so many different things. Graphics, sound, real-time networking, social networking, and of course many of the more common aspects of programming, from low-level database management, and server administration to user facing design and interface building. There's a lot to do, and if you're an experienced programmer with a hankering to really dive into the nitty-gritty of CodeCombat, this class might be for you. We would love to have your help building the best programming game ever." # class_attributes: "Class Attributes" # archmage_attribute_1_pref: "Knowledge in " @@ -366,8 +367,10 @@ module.exports = nativeDescription: "italiano", englishDescription: "Italian", t # join_url_hipchat: "public HipChat room" more_about_archmage: "Leggi di più su cosa vuol dire diventare un potente Arcimago" # archmage_subscribe_desc: "Get emails on new coding opportunities and announcements." +# artisan_summary_pref: "Want to design levels and expand CodeCombat's arsenal? People are playing through our content at a pace faster than we can build! Right now, our level editor is barebone, so be wary. Making levels will be a little challenging and buggy. If you have visions of campaigns spanning for-loops to" +# artisan_summary_suf: "then this class is for you." # artisan_introduction_pref: "We must construct additional levels! People be clamoring for more content, and we can only build so many ourselves. Right now your workstation is level one; our level editor is barely usable even by its creators, so be wary. If you have visions of campaigns spanning for-loops to" -# artisan_introduction_suf: "to then this class might be for you." +# artisan_introduction_suf: "then this class might be for you." # artisan_attribute_1: "Any experience in building content like this would be nice, such as using Blizzard's level editors. But not required!" # artisan_attribute_2: "A hankering to do a whole lot of testing and iteration. To make good levels, you need to take it to others and watch them play it, and be prepared to find a lot of things to fix." # artisan_attribute_3: "For the time being, endurance en par with an Adventurer. Our Level Editor is super preliminary and frustrating to use. You have been warned!" @@ -378,6 +381,7 @@ module.exports = nativeDescription: "italiano", englishDescription: "Italian", t # artisan_join_step4: "Post your levels on the forum for feedback." more_about_artisan: "Leggi di più su cosa vuol dire diventare un creativo Artigiano" # artisan_subscribe_desc: "Get emails on level editor updates and announcements." +# adventurer_sumamry: "Let us be clear about your role: you are the tank. You are going to take heavy damage. We need people to try out brand-new levels and help identify how to make things better. The pain will be enormous; making good games is a long process and no one gets it right the first time. If you can endure and have a high constitution score, then this class is for you." # adventurer_introduction: "Let's be clear about your role: you are the tank. You're going to take heavy damage. We need people to try out brand-new levels and help identify how to make things better. The pain will be enormous; making good games is a long process and no one gets it right the first time. If you can endure and have a high constitution score, then this class might be for you." # adventurer_attribute_1: "A thirst for learning. You want to learn how to code and we want to teach you how to code. You'll probably be doing most of the teaching in this case, though." # adventurer_attribute_2: "Charismatic. Be gentle but articulate about what needs improving, and offer suggestions on how to improve." @@ -386,6 +390,8 @@ module.exports = nativeDescription: "italiano", englishDescription: "Italian", t # adventurer_join_suf: "so if you prefer to be notified those ways, sign up there!" more_about_adventurer: "Leggi di più su cosa vuol dire diventare un coraggioso Avventuriero" # adventurer_subscribe_desc: "Get emails when there are new levels to test." +# scribe_summary_pref: "CodeCombat is not just going to be a bunch of levels. It will also be a resource of programming knowledge that players can hook into. That way, each Artisan can link to a detailed article that for the player's edification: documentation akin to what the " +# scribe_summary_sufx: " has built. If you enjoy explaining programming concepts, then this class is for you." # scribe_introduction_pref: "CodeCombat isn't just going to be a bunch of levels. It will also include a resource for knowledge, a wiki of programming concepts that levels can hook into. That way rather than each Artisan having to describe in detail what a comparison operator is, they can simply link their level to the Article describing them that is already written for the player's edification. Something along the lines of what the " scribe_introduction_url_mozilla: "Rete di sviluppo di Mozilla" # scribe_introduction_suf: " has built. If your idea of fun is articulating the concepts of programming in Markdown form, then this class might be for you." @@ -394,6 +400,7 @@ module.exports = nativeDescription: "italiano", englishDescription: "Italian", t # scribe_join_description: "tell us a little about yourself, your experience with programming and what sort of things you'd like to write about. We'll go from there!" more_about_scribe: "Leggi di più su cosa vuol dire diventare un diligente Scrivano" # scribe_subscribe_desc: "Get emails about article writing announcements." +# diplomat_summary: "There is a large interest in CodeCombat in other countries that do not speak English! We are looking for translators who are willing to spend their time translating the site's corpus of words so that CodeCombat is accessible across the world as soon as possible. If you'd like to help getting CodeCombat international, then this class is for you." diplomat_introduction_pref: "Se c'è una cosa che abbiamo imparato dal " diplomat_launch_url: "lancio di ottobre" diplomat_introduction_suf: "è che c'è un notevole interesse per CodeCombat negli altri paesi, in particolare in Brasile! Stiamo costruendo un corpo di traduttori per trasformare liste di parole in altre parole, per rendere CodeCombat accessibile il più possibile in tutto il mondo. Se ti piace l'idea di sbirciare nei contenuti futuri e di portare questi livelli ai tuoi connazionali il più presto possibile, questa categoria potrebbe essere la tua." @@ -403,6 +410,7 @@ module.exports = nativeDescription: "italiano", englishDescription: "Italian", t diplomat_join_suf: "leggilo e aggiungi dettagli per la tua lingua. Segna anche la casella qui sotto per seguire gli aggiornamenti sullo sviluppo i18n!" more_about_diplomat: "Leggi di più su cosa vuol dire diventare un grande Diplomatico" diplomat_subscribe_desc: "Ricevi messaggi email sullo sviluppo i18n e i livelli da tradurre." +# ambassador_summary: "We are trying to build a community, and every community needs a support team when there are troubles. We have got chats, emails, and social networks so that our users can get acquainted with the game. If you want to help people get involved, have fun, and learn some programming, then this class is for you." ambassador_introduction: "Stiamo costruendo questa comunità, e voi siete i collegamenti. Abbiamo chat Olark, email e reti sociali con tanta gente con cui parlare ed aiutare a familiarizzare con il gioco, e da cui imparare. Se vuoi aiutare le persone a farsi coinvolgere e a divertirsi; se sei entrato nello spirito di CodeCombat e di dove stiamo andando, questa categoria può essere per te." # ambassador_attribute_1: "Communication skills. Be able to identify the problems players are having and help them solve them. Also, keep the rest of us informed about what players are saying, what they like and don't like and want more of!" # ambassador_join_desc: "tell us a little about yourself, what you've done and what you'd be interested in doing. We'll go from there!" @@ -410,6 +418,7 @@ module.exports = nativeDescription: "italiano", englishDescription: "Italian", t # ambassador_join_note_desc: "One of our top priorities is to build multiplayer where players having difficulty solving levels can summon higher level wizards to help them. This will be a great way for ambassadors to do their thing. We'll keep you posted!" more_about_ambassador: "Leggi di più su cosa vuol dire diventare un servizievole Ambasciatore" # ambassador_subscribe_desc: "Get emails on support updates and multiplayer developments." +# counselor_summary: "None of the above roles fit what you are interested in? Do not worry, we are on the lookout for anybody who wants a hand in the development of CodeCombat! If you are interested in teaching, game development, open source management, or anything else that you think will be relevant to us, then this class is for you." # counselor_introduction_1: "Do you have life experience? A different perspective on things that can help us decide how to shape CodeCombat? Of all these roles, this will probably take the least time, but individually you may make the most difference. We're on the lookout for wisened sages, particularly in areas like: teaching, game development, open source project management, technical recruiting, entrepreneurship, or design." # counselor_introduction_2: "Or really anything that is relevant to the development of CodeCombat. If you have knowledge and want to share it to help grow this project, then this class might be for you." # counselor_attribute_1: "Experience, in any of the areas above or something you think might be helpful." diff --git a/app/locale/ja.coffee b/app/locale/ja.coffee index c6b5e8b43..e5ceee6e0 100644 --- a/app/locale/ja.coffee +++ b/app/locale/ja.coffee @@ -71,7 +71,7 @@ module.exports = nativeDescription: "日本語", englishDescription: "Japanese", choose_your_level: "レベル選択" adventurer_prefix: "別のレベルに移動することができます。レベルについて議論するにはこちら: " adventurer_forum: "冒険者の掲示板" - adventurer_suffix: "" +# adventurer_suffix: "" campaign_beginner: "初心者のキャンペーン" # campaign_beginner_description: "... in which you learn the wizardry of programming." campaign_dev: "いろんな難しいレベル" @@ -135,13 +135,13 @@ module.exports = nativeDescription: "日本語", englishDescription: "Japanese", account_profile: edit_settings: "設定" - profile_for_prefix: "" +# profile_for_prefix: "" profile_for_suffix: "のプロフィール" profile: "プロフィール" user_not_found: "ユーザーが見つかりません。URLを間違って入力していないか確認してください。" - gravatar_not_found_mine: "" +# gravatar_not_found_mine: "" gravatar_not_found_email_suffix: " のメールアドレスは Gravatar で見つけることができませんでした。" - gravatar_signup_prefix: "" +# gravatar_signup_prefix: "" gravatar_signup_suffix: " を登録" gravatar_not_found_other: "このメールアドレスには プロフィールが関連付けられていません。" # gravatar_contact: "Contact" @@ -245,16 +245,16 @@ module.exports = nativeDescription: "日本語", englishDescription: "Japanese", # general: # and: "and" - or: "または" - name: "名前" +# name: "Name" # body: "Body" # version: "Version" - commit_msg: "コミットメッセージ" +# commit_msg: "Commit Message" # version_history_for: "Version History for: " # results: "Results" # description: "Description" - email: "メールアドレス" - message: "メッセージ" +# or: "or" +# email: "Email" +# message: "Message" # about: # who_is_codecombat: "Who is CodeCombat?" @@ -352,6 +352,7 @@ module.exports = nativeDescription: "日本語", englishDescription: "Japanese", # alert_account_message_pref: "To subscribe for class emails, you'll need to " # alert_account_message_suf: "first." # alert_account_message_create_url: "create an account" +# archmage_summary: "Interested in working on game graphics, user interface design, database and server organization, multiplayer networking, physics, sound, or game engine performance? Want to help build a game to help other people learn what you are good at? We have a lot to do and if you are an experienced programmer and want to develop for CodeCombat, this class is for you. We would love your help building the best programming game ever." # archmage_introduction: "One of the best parts about building games is they synthesize so many different things. Graphics, sound, real-time networking, social networking, and of course many of the more common aspects of programming, from low-level database management, and server administration to user facing design and interface building. There's a lot to do, and if you're an experienced programmer with a hankering to really dive into the nitty-gritty of CodeCombat, this class might be for you. We would love to have your help building the best programming game ever." # class_attributes: "Class Attributes" # archmage_attribute_1_pref: "Knowledge in " @@ -364,10 +365,12 @@ module.exports = nativeDescription: "日本語", englishDescription: "Japanese", # join_desc_4: "and we'll go from there!" # join_url_email: "Email us" # join_url_hipchat: "public HipChat room" -# more_about_archmage: "Learn More About Becoming A Powerful Archmage" +# more_about_archmage: "Learn More About Becoming an Archmage" # archmage_subscribe_desc: "Get emails on new coding opportunities and announcements." +# artisan_summary_pref: "Want to design levels and expand CodeCombat's arsenal? People are playing through our content at a pace faster than we can build! Right now, our level editor is barebone, so be wary. Making levels will be a little challenging and buggy. If you have visions of campaigns spanning for-loops to" +# artisan_summary_suf: "then this class is for you." # artisan_introduction_pref: "We must construct additional levels! People be clamoring for more content, and we can only build so many ourselves. Right now your workstation is level one; our level editor is barely usable even by its creators, so be wary. If you have visions of campaigns spanning for-loops to" -# artisan_introduction_suf: "to then this class might be for you." +# artisan_introduction_suf: "then this class might be for you." # artisan_attribute_1: "Any experience in building content like this would be nice, such as using Blizzard's level editors. But not required!" # artisan_attribute_2: "A hankering to do a whole lot of testing and iteration. To make good levels, you need to take it to others and watch them play it, and be prepared to find a lot of things to fix." # artisan_attribute_3: "For the time being, endurance en par with an Adventurer. Our Level Editor is super preliminary and frustrating to use. You have been warned!" @@ -376,24 +379,28 @@ module.exports = nativeDescription: "日本語", englishDescription: "Japanese", # artisan_join_step2: "Create a new level and explore existing levels." # artisan_join_step3: "Find us in our public HipChat room for help." # artisan_join_step4: "Post your levels on the forum for feedback." -# more_about_artisan: "Learn More About Becoming A Creative Artisan" +# more_about_artisan: "Learn More About Becoming an Artisan" # artisan_subscribe_desc: "Get emails on level editor updates and announcements." +# adventurer_sumamry: "Let us be clear about your role: you are the tank. You are going to take heavy damage. We need people to try out brand-new levels and help identify how to make things better. The pain will be enormous; making good games is a long process and no one gets it right the first time. If you can endure and have a high constitution score, then this class is for you." # adventurer_introduction: "Let's be clear about your role: you are the tank. You're going to take heavy damage. We need people to try out brand-new levels and help identify how to make things better. The pain will be enormous; making good games is a long process and no one gets it right the first time. If you can endure and have a high constitution score, then this class might be for you." # adventurer_attribute_1: "A thirst for learning. You want to learn how to code and we want to teach you how to code. You'll probably be doing most of the teaching in this case, though." # adventurer_attribute_2: "Charismatic. Be gentle but articulate about what needs improving, and offer suggestions on how to improve." # adventurer_join_pref: "Either get together with (or recruit!) an Artisan and work with them, or check the box below to receive emails when there are new levels to test. We'll also be posting about levels to review on our networks like" # adventurer_forum_url: "our forum" # adventurer_join_suf: "so if you prefer to be notified those ways, sign up there!" -# more_about_adventurer: "Learn More About Becoming A Brave Adventurer" +# more_about_adventurer: "Learn More About Becoming an Adventurer" # adventurer_subscribe_desc: "Get emails when there are new levels to test." +# scribe_summary_pref: "CodeCombat is not just going to be a bunch of levels. It will also be a resource of programming knowledge that players can hook into. That way, each Artisan can link to a detailed article that for the player's edification: documentation akin to what the " +# scribe_summary_sufx: " has built. If you enjoy explaining programming concepts, then this class is for you." # scribe_introduction_pref: "CodeCombat isn't just going to be a bunch of levels. It will also include a resource for knowledge, a wiki of programming concepts that levels can hook into. That way rather than each Artisan having to describe in detail what a comparison operator is, they can simply link their level to the Article describing them that is already written for the player's edification. Something along the lines of what the " # scribe_introduction_url_mozilla: "Mozilla Developer Network" # scribe_introduction_suf: " has built. If your idea of fun is articulating the concepts of programming in Markdown form, then this class might be for you." # scribe_attribute_1: "Skill in words is pretty much all you need. Not only grammar and spelling, but able to convey complicated ideas to others." # contact_us_url: "Contact us" # scribe_join_description: "tell us a little about yourself, your experience with programming and what sort of things you'd like to write about. We'll go from there!" -# more_about_scribe: "Learn More About Becoming A Diligent Scribe" +# more_about_scribe: "Learn More About Becoming a Scribe" # scribe_subscribe_desc: "Get emails about article writing announcements." +# diplomat_summary: "There is a large interest in CodeCombat in other countries that do not speak English! We are looking for translators who are willing to spend their time translating the site's corpus of words so that CodeCombat is accessible across the world as soon as possible. If you'd like to help getting CodeCombat international, then this class is for you." # diplomat_introduction_pref: "So, if there's one thing we learned from the " # diplomat_launch_url: "launch in October" # diplomat_introduction_suf: "it's that there is sizeable interest in CodeCombat in other countries, particularly Brazil! We're building a corps of translators eager to turn one set of words into another set of words to get CodeCombat as accessible across the world as possible. If you like getting sneak peeks at upcoming content and getting these levels to your fellow nationals ASAP, then this class might be for you." @@ -401,21 +408,23 @@ module.exports = nativeDescription: "日本語", englishDescription: "Japanese", # diplomat_join_pref: "We've started a lot of initial translations at " # diplomat_doc_url: "this forum post" # diplomat_join_suf: "so check it out and add things for your language. Also, check this box below to keep up-to-date on new internationalization developments!" -# more_about_diplomat: "Learn More About Becoming A Great Diplomat" +# more_about_diplomat: "Learn More About Becoming a Diplomat" # diplomat_subscribe_desc: "Get emails about i18n developments and levels to translate." +# ambassador_summary: "We are trying to build a community, and every community needs a support team when there are troubles. We have got chats, emails, and social networks so that our users can get acquainted with the game. If you want to help people get involved, have fun, and learn some programming, then this class is for you." # ambassador_introduction: "This is a community we're building, and you are the connections. We've got Olark chats, emails, and social networks with lots of people to talk with and help get acquainted with the game and learn from. If you want to help people get involved and have fun, and get a good feel of the pulse of CodeCombat and where we're going, then this class might be for you." # ambassador_attribute_1: "Communication skills. Be able to identify the problems players are having and help them solve them. Also, keep the rest of us informed about what players are saying, what they like and don't like and want more of!" # ambassador_join_desc: "tell us a little about yourself, what you've done and what you'd be interested in doing. We'll go from there!" # ambassador_join_note_strong: "Note" # ambassador_join_note_desc: "One of our top priorities is to build multiplayer where players having difficulty solving levels can summon higher level wizards to help them. This will be a great way for ambassadors to do their thing. We'll keep you posted!" -# more_about_ambassador: "Learn More About Becoming A Helpful Ambassador" +# more_about_ambassador: "Learn More About Becoming an Ambassador" # ambassador_subscribe_desc: "Get emails on support updates and multiplayer developments." +# counselor_summary: "None of the above roles fit what you are interested in? Do not worry, we are on the lookout for anybody who wants a hand in the development of CodeCombat! If you are interested in teaching, game development, open source management, or anything else that you think will be relevant to us, then this class is for you." # counselor_introduction_1: "Do you have life experience? A different perspective on things that can help us decide how to shape CodeCombat? Of all these roles, this will probably take the least time, but individually you may make the most difference. We're on the lookout for wisened sages, particularly in areas like: teaching, game development, open source project management, technical recruiting, entrepreneurship, or design." # counselor_introduction_2: "Or really anything that is relevant to the development of CodeCombat. If you have knowledge and want to share it to help grow this project, then this class might be for you." # counselor_attribute_1: "Experience, in any of the areas above or something you think might be helpful." # counselor_attribute_2: "A little bit of free time!" # counselor_join_desc: "tell us a little about yourself, what you've done and what you'd be interested in doing. We'll put you in our contact list and be in touch when we could use advice (not too often)." -# more_about_counselor: "Learn More About Becoming A Valuable Counselor" +# more_about_counselor: "Learn More About Becoming a Counselor" # changes_auto_save: "Changes are saved automatically when you toggle checkboxes." # diligent_scribes: "Our Diligent Scribes:" # powerful_archmages: "Our Powerful Archmages:" diff --git a/app/locale/ko.coffee b/app/locale/ko.coffee index d76cfd6fb..f73a6393a 100644 --- a/app/locale/ko.coffee +++ b/app/locale/ko.coffee @@ -352,6 +352,7 @@ module.exports = nativeDescription: "한국어", englishDescription: "Korean", t # alert_account_message_pref: "To subscribe for class emails, you'll need to " # alert_account_message_suf: "first." # alert_account_message_create_url: "create an account" +# archmage_summary: "Interested in working on game graphics, user interface design, database and server organization, multiplayer networking, physics, sound, or game engine performance? Want to help build a game to help other people learn what you are good at? We have a lot to do and if you are an experienced programmer and want to develop for CodeCombat, this class is for you. We would love your help building the best programming game ever." # archmage_introduction: "One of the best parts about building games is they synthesize so many different things. Graphics, sound, real-time networking, social networking, and of course many of the more common aspects of programming, from low-level database management, and server administration to user facing design and interface building. There's a lot to do, and if you're an experienced programmer with a hankering to really dive into the nitty-gritty of CodeCombat, this class might be for you. We would love to have your help building the best programming game ever." # class_attributes: "Class Attributes" # archmage_attribute_1_pref: "Knowledge in " @@ -364,10 +365,12 @@ module.exports = nativeDescription: "한국어", englishDescription: "Korean", t # join_desc_4: "and we'll go from there!" # join_url_email: "Email us" # join_url_hipchat: "public HipChat room" -# more_about_archmage: "Learn More About Becoming A Powerful Archmage" +# more_about_archmage: "Learn More About Becoming an Archmage" # archmage_subscribe_desc: "Get emails on new coding opportunities and announcements." +# artisan_summary_pref: "Want to design levels and expand CodeCombat's arsenal? People are playing through our content at a pace faster than we can build! Right now, our level editor is barebone, so be wary. Making levels will be a little challenging and buggy. If you have visions of campaigns spanning for-loops to" +# artisan_summary_suf: "then this class is for you." # artisan_introduction_pref: "We must construct additional levels! People be clamoring for more content, and we can only build so many ourselves. Right now your workstation is level one; our level editor is barely usable even by its creators, so be wary. If you have visions of campaigns spanning for-loops to" -# artisan_introduction_suf: "to then this class might be for you." +# artisan_introduction_suf: "then this class might be for you." # artisan_attribute_1: "Any experience in building content like this would be nice, such as using Blizzard's level editors. But not required!" # artisan_attribute_2: "A hankering to do a whole lot of testing and iteration. To make good levels, you need to take it to others and watch them play it, and be prepared to find a lot of things to fix." # artisan_attribute_3: "For the time being, endurance en par with an Adventurer. Our Level Editor is super preliminary and frustrating to use. You have been warned!" @@ -376,24 +379,28 @@ module.exports = nativeDescription: "한국어", englishDescription: "Korean", t # artisan_join_step2: "Create a new level and explore existing levels." # artisan_join_step3: "Find us in our public HipChat room for help." # artisan_join_step4: "Post your levels on the forum for feedback." -# more_about_artisan: "Learn More About Becoming A Creative Artisan" +# more_about_artisan: "Learn More About Becoming an Artisan" # artisan_subscribe_desc: "Get emails on level editor updates and announcements." +# adventurer_sumamry: "Let us be clear about your role: you are the tank. You are going to take heavy damage. We need people to try out brand-new levels and help identify how to make things better. The pain will be enormous; making good games is a long process and no one gets it right the first time. If you can endure and have a high constitution score, then this class is for you." # adventurer_introduction: "Let's be clear about your role: you are the tank. You're going to take heavy damage. We need people to try out brand-new levels and help identify how to make things better. The pain will be enormous; making good games is a long process and no one gets it right the first time. If you can endure and have a high constitution score, then this class might be for you." # adventurer_attribute_1: "A thirst for learning. You want to learn how to code and we want to teach you how to code. You'll probably be doing most of the teaching in this case, though." # adventurer_attribute_2: "Charismatic. Be gentle but articulate about what needs improving, and offer suggestions on how to improve." # adventurer_join_pref: "Either get together with (or recruit!) an Artisan and work with them, or check the box below to receive emails when there are new levels to test. We'll also be posting about levels to review on our networks like" # adventurer_forum_url: "our forum" # adventurer_join_suf: "so if you prefer to be notified those ways, sign up there!" -# more_about_adventurer: "Learn More About Becoming A Brave Adventurer" +# more_about_adventurer: "Learn More About Becoming an Adventurer" # adventurer_subscribe_desc: "Get emails when there are new levels to test." +# scribe_summary_pref: "CodeCombat is not just going to be a bunch of levels. It will also be a resource of programming knowledge that players can hook into. That way, each Artisan can link to a detailed article that for the player's edification: documentation akin to what the " +# scribe_summary_sufx: " has built. If you enjoy explaining programming concepts, then this class is for you." # scribe_introduction_pref: "CodeCombat isn't just going to be a bunch of levels. It will also include a resource for knowledge, a wiki of programming concepts that levels can hook into. That way rather than each Artisan having to describe in detail what a comparison operator is, they can simply link their level to the Article describing them that is already written for the player's edification. Something along the lines of what the " # scribe_introduction_url_mozilla: "Mozilla Developer Network" # scribe_introduction_suf: " has built. If your idea of fun is articulating the concepts of programming in Markdown form, then this class might be for you." # scribe_attribute_1: "Skill in words is pretty much all you need. Not only grammar and spelling, but able to convey complicated ideas to others." # contact_us_url: "Contact us" # scribe_join_description: "tell us a little about yourself, your experience with programming and what sort of things you'd like to write about. We'll go from there!" -# more_about_scribe: "Learn More About Becoming A Diligent Scribe" +# more_about_scribe: "Learn More About Becoming a Scribe" # scribe_subscribe_desc: "Get emails about article writing announcements." +# diplomat_summary: "There is a large interest in CodeCombat in other countries that do not speak English! We are looking for translators who are willing to spend their time translating the site's corpus of words so that CodeCombat is accessible across the world as soon as possible. If you'd like to help getting CodeCombat international, then this class is for you." # diplomat_introduction_pref: "So, if there's one thing we learned from the " # diplomat_launch_url: "launch in October" # diplomat_introduction_suf: "it's that there is sizeable interest in CodeCombat in other countries, particularly Brazil! We're building a corps of translators eager to turn one set of words into another set of words to get CodeCombat as accessible across the world as possible. If you like getting sneak peeks at upcoming content and getting these levels to your fellow nationals ASAP, then this class might be for you." @@ -401,21 +408,23 @@ module.exports = nativeDescription: "한국어", englishDescription: "Korean", t # diplomat_join_pref: "We've started a lot of initial translations at " # diplomat_doc_url: "this forum post" # diplomat_join_suf: "so check it out and add things for your language. Also, check this box below to keep up-to-date on new internationalization developments!" -# more_about_diplomat: "Learn More About Becoming A Great Diplomat" +# more_about_diplomat: "Learn More About Becoming a Diplomat" # diplomat_subscribe_desc: "Get emails about i18n developments and levels to translate." +# ambassador_summary: "We are trying to build a community, and every community needs a support team when there are troubles. We have got chats, emails, and social networks so that our users can get acquainted with the game. If you want to help people get involved, have fun, and learn some programming, then this class is for you." # ambassador_introduction: "This is a community we're building, and you are the connections. We've got Olark chats, emails, and social networks with lots of people to talk with and help get acquainted with the game and learn from. If you want to help people get involved and have fun, and get a good feel of the pulse of CodeCombat and where we're going, then this class might be for you." # ambassador_attribute_1: "Communication skills. Be able to identify the problems players are having and help them solve them. Also, keep the rest of us informed about what players are saying, what they like and don't like and want more of!" # ambassador_join_desc: "tell us a little about yourself, what you've done and what you'd be interested in doing. We'll go from there!" # ambassador_join_note_strong: "Note" # ambassador_join_note_desc: "One of our top priorities is to build multiplayer where players having difficulty solving levels can summon higher level wizards to help them. This will be a great way for ambassadors to do their thing. We'll keep you posted!" -# more_about_ambassador: "Learn More About Becoming A Helpful Ambassador" +# more_about_ambassador: "Learn More About Becoming an Ambassador" # ambassador_subscribe_desc: "Get emails on support updates and multiplayer developments." +# counselor_summary: "None of the above roles fit what you are interested in? Do not worry, we are on the lookout for anybody who wants a hand in the development of CodeCombat! If you are interested in teaching, game development, open source management, or anything else that you think will be relevant to us, then this class is for you." # counselor_introduction_1: "Do you have life experience? A different perspective on things that can help us decide how to shape CodeCombat? Of all these roles, this will probably take the least time, but individually you may make the most difference. We're on the lookout for wisened sages, particularly in areas like: teaching, game development, open source project management, technical recruiting, entrepreneurship, or design." # counselor_introduction_2: "Or really anything that is relevant to the development of CodeCombat. If you have knowledge and want to share it to help grow this project, then this class might be for you." # counselor_attribute_1: "Experience, in any of the areas above or something you think might be helpful." # counselor_attribute_2: "A little bit of free time!" # counselor_join_desc: "tell us a little about yourself, what you've done and what you'd be interested in doing. We'll put you in our contact list and be in touch when we could use advice (not too often)." -# more_about_counselor: "Learn More About Becoming A Valuable Counselor" +# more_about_counselor: "Learn More About Becoming a Counselor" # changes_auto_save: "Changes are saved automatically when you toggle checkboxes." # diligent_scribes: "Our Diligent Scribes:" # powerful_archmages: "Our Powerful Archmages:" diff --git a/app/locale/lt.coffee b/app/locale/lt.coffee index 19483d654..67a5d9260 100644 --- a/app/locale/lt.coffee +++ b/app/locale/lt.coffee @@ -352,6 +352,7 @@ module.exports = nativeDescription: "English (AU)", englishDescription: "English # alert_account_message_pref: "To subscribe for class emails, you'll need to " # alert_account_message_suf: "first." # alert_account_message_create_url: "create an account" +# archmage_summary: "Interested in working on game graphics, user interface design, database and server organization, multiplayer networking, physics, sound, or game engine performance? Want to help build a game to help other people learn what you are good at? We have a lot to do and if you are an experienced programmer and want to develop for CodeCombat, this class is for you. We would love your help building the best programming game ever." # archmage_introduction: "One of the best parts about building games is they synthesize so many different things. Graphics, sound, real-time networking, social networking, and of course many of the more common aspects of programming, from low-level database management, and server administration to user facing design and interface building. There's a lot to do, and if you're an experienced programmer with a hankering to really dive into the nitty-gritty of CodeCombat, this class might be for you. We would love to have your help building the best programming game ever." # class_attributes: "Class Attributes" # archmage_attribute_1_pref: "Knowledge in " @@ -364,10 +365,12 @@ module.exports = nativeDescription: "English (AU)", englishDescription: "English # join_desc_4: "and we'll go from there!" # join_url_email: "Email us" # join_url_hipchat: "public HipChat room" -# more_about_archmage: "Learn More About Becoming A Powerful Archmage" +# more_about_archmage: "Learn More About Becoming an Archmage" # archmage_subscribe_desc: "Get emails on new coding opportunities and announcements." +# artisan_summary_pref: "Want to design levels and expand CodeCombat's arsenal? People are playing through our content at a pace faster than we can build! Right now, our level editor is barebone, so be wary. Making levels will be a little challenging and buggy. If you have visions of campaigns spanning for-loops to" +# artisan_summary_suf: "then this class is for you." # artisan_introduction_pref: "We must construct additional levels! People be clamoring for more content, and we can only build so many ourselves. Right now your workstation is level one; our level editor is barely usable even by its creators, so be wary. If you have visions of campaigns spanning for-loops to" -# artisan_introduction_suf: "to then this class might be for you." +# artisan_introduction_suf: "then this class might be for you." # artisan_attribute_1: "Any experience in building content like this would be nice, such as using Blizzard's level editors. But not required!" # artisan_attribute_2: "A hankering to do a whole lot of testing and iteration. To make good levels, you need to take it to others and watch them play it, and be prepared to find a lot of things to fix." # artisan_attribute_3: "For the time being, endurance en par with an Adventurer. Our Level Editor is super preliminary and frustrating to use. You have been warned!" @@ -376,24 +379,28 @@ module.exports = nativeDescription: "English (AU)", englishDescription: "English # artisan_join_step2: "Create a new level and explore existing levels." # artisan_join_step3: "Find us in our public HipChat room for help." # artisan_join_step4: "Post your levels on the forum for feedback." -# more_about_artisan: "Learn More About Becoming A Creative Artisan" +# more_about_artisan: "Learn More About Becoming an Artisan" # artisan_subscribe_desc: "Get emails on level editor updates and announcements." +# adventurer_sumamry: "Let us be clear about your role: you are the tank. You are going to take heavy damage. We need people to try out brand-new levels and help identify how to make things better. The pain will be enormous; making good games is a long process and no one gets it right the first time. If you can endure and have a high constitution score, then this class is for you." # adventurer_introduction: "Let's be clear about your role: you are the tank. You're going to take heavy damage. We need people to try out brand-new levels and help identify how to make things better. The pain will be enormous; making good games is a long process and no one gets it right the first time. If you can endure and have a high constitution score, then this class might be for you." # adventurer_attribute_1: "A thirst for learning. You want to learn how to code and we want to teach you how to code. You'll probably be doing most of the teaching in this case, though." # adventurer_attribute_2: "Charismatic. Be gentle but articulate about what needs improving, and offer suggestions on how to improve." # adventurer_join_pref: "Either get together with (or recruit!) an Artisan and work with them, or check the box below to receive emails when there are new levels to test. We'll also be posting about levels to review on our networks like" # adventurer_forum_url: "our forum" # adventurer_join_suf: "so if you prefer to be notified those ways, sign up there!" -# more_about_adventurer: "Learn More About Becoming A Brave Adventurer" +# more_about_adventurer: "Learn More About Becoming an Adventurer" # adventurer_subscribe_desc: "Get emails when there are new levels to test." +# scribe_summary_pref: "CodeCombat is not just going to be a bunch of levels. It will also be a resource of programming knowledge that players can hook into. That way, each Artisan can link to a detailed article that for the player's edification: documentation akin to what the " +# scribe_summary_sufx: " has built. If you enjoy explaining programming concepts, then this class is for you." # scribe_introduction_pref: "CodeCombat isn't just going to be a bunch of levels. It will also include a resource for knowledge, a wiki of programming concepts that levels can hook into. That way rather than each Artisan having to describe in detail what a comparison operator is, they can simply link their level to the Article describing them that is already written for the player's edification. Something along the lines of what the " # scribe_introduction_url_mozilla: "Mozilla Developer Network" # scribe_introduction_suf: " has built. If your idea of fun is articulating the concepts of programming in Markdown form, then this class might be for you." # scribe_attribute_1: "Skill in words is pretty much all you need. Not only grammar and spelling, but able to convey complicated ideas to others." # contact_us_url: "Contact us" # scribe_join_description: "tell us a little about yourself, your experience with programming and what sort of things you'd like to write about. We'll go from there!" -# more_about_scribe: "Learn More About Becoming A Diligent Scribe" +# more_about_scribe: "Learn More About Becoming a Scribe" # scribe_subscribe_desc: "Get emails about article writing announcements." +# diplomat_summary: "There is a large interest in CodeCombat in other countries that do not speak English! We are looking for translators who are willing to spend their time translating the site's corpus of words so that CodeCombat is accessible across the world as soon as possible. If you'd like to help getting CodeCombat international, then this class is for you." # diplomat_introduction_pref: "So, if there's one thing we learned from the " # diplomat_launch_url: "launch in October" # diplomat_introduction_suf: "it's that there is sizeable interest in CodeCombat in other countries, particularly Brazil! We're building a corps of translators eager to turn one set of words into another set of words to get CodeCombat as accessible across the world as possible. If you like getting sneak peeks at upcoming content and getting these levels to your fellow nationals ASAP, then this class might be for you." @@ -401,21 +408,23 @@ module.exports = nativeDescription: "English (AU)", englishDescription: "English # diplomat_join_pref: "We've started a lot of initial translations at " # diplomat_doc_url: "this forum post" # diplomat_join_suf: "so check it out and add things for your language. Also, check this box below to keep up-to-date on new internationalization developments!" -# more_about_diplomat: "Learn More About Becoming A Great Diplomat" +# more_about_diplomat: "Learn More About Becoming a Diplomat" # diplomat_subscribe_desc: "Get emails about i18n developments and levels to translate." +# ambassador_summary: "We are trying to build a community, and every community needs a support team when there are troubles. We have got chats, emails, and social networks so that our users can get acquainted with the game. If you want to help people get involved, have fun, and learn some programming, then this class is for you." # ambassador_introduction: "This is a community we're building, and you are the connections. We've got Olark chats, emails, and social networks with lots of people to talk with and help get acquainted with the game and learn from. If you want to help people get involved and have fun, and get a good feel of the pulse of CodeCombat and where we're going, then this class might be for you." # ambassador_attribute_1: "Communication skills. Be able to identify the problems players are having and help them solve them. Also, keep the rest of us informed about what players are saying, what they like and don't like and want more of!" # ambassador_join_desc: "tell us a little about yourself, what you've done and what you'd be interested in doing. We'll go from there!" # ambassador_join_note_strong: "Note" # ambassador_join_note_desc: "One of our top priorities is to build multiplayer where players having difficulty solving levels can summon higher level wizards to help them. This will be a great way for ambassadors to do their thing. We'll keep you posted!" -# more_about_ambassador: "Learn More About Becoming A Helpful Ambassador" +# more_about_ambassador: "Learn More About Becoming an Ambassador" # ambassador_subscribe_desc: "Get emails on support updates and multiplayer developments." +# counselor_summary: "None of the above roles fit what you are interested in? Do not worry, we are on the lookout for anybody who wants a hand in the development of CodeCombat! If you are interested in teaching, game development, open source management, or anything else that you think will be relevant to us, then this class is for you." # counselor_introduction_1: "Do you have life experience? A different perspective on things that can help us decide how to shape CodeCombat? Of all these roles, this will probably take the least time, but individually you may make the most difference. We're on the lookout for wisened sages, particularly in areas like: teaching, game development, open source project management, technical recruiting, entrepreneurship, or design." # counselor_introduction_2: "Or really anything that is relevant to the development of CodeCombat. If you have knowledge and want to share it to help grow this project, then this class might be for you." # counselor_attribute_1: "Experience, in any of the areas above or something you think might be helpful." # counselor_attribute_2: "A little bit of free time!" # counselor_join_desc: "tell us a little about yourself, what you've done and what you'd be interested in doing. We'll put you in our contact list and be in touch when we could use advice (not too often)." -# more_about_counselor: "Learn More About Becoming A Valuable Counselor" +# more_about_counselor: "Learn More About Becoming a Counselor" # changes_auto_save: "Changes are saved automatically when you toggle checkboxes." # diligent_scribes: "Our Diligent Scribes:" # powerful_archmages: "Our Powerful Archmages:" diff --git a/app/locale/ms-BA.coffee b/app/locale/ms-BA.coffee index ae5e27b49..65ac71895 100644 --- a/app/locale/ms-BA.coffee +++ b/app/locale/ms-BA.coffee @@ -245,7 +245,6 @@ module.exports = nativeDescription: "Bahasa Melayu", englishDescription: "Bahasa general: # and: "and" - or: "atau" name: "Nama" # body: "Body" # version: "Version" @@ -253,6 +252,7 @@ module.exports = nativeDescription: "Bahasa Melayu", englishDescription: "Bahasa # version_history_for: "Version History for: " # results: "Results" # description: "Description" + or: "atau" email: "Emel" message: "Mesej" @@ -352,6 +352,7 @@ module.exports = nativeDescription: "Bahasa Melayu", englishDescription: "Bahasa # alert_account_message_pref: "To subscribe for class emails, you'll need to " # alert_account_message_suf: "first." # alert_account_message_create_url: "create an account" +# archmage_summary: "Interested in working on game graphics, user interface design, database and server organization, multiplayer networking, physics, sound, or game engine performance? Want to help build a game to help other people learn what you are good at? We have a lot to do and if you are an experienced programmer and want to develop for CodeCombat, this class is for you. We would love your help building the best programming game ever." # archmage_introduction: "One of the best parts about building games is they synthesize so many different things. Graphics, sound, real-time networking, social networking, and of course many of the more common aspects of programming, from low-level database management, and server administration to user facing design and interface building. There's a lot to do, and if you're an experienced programmer with a hankering to really dive into the nitty-gritty of CodeCombat, this class might be for you. We would love to have your help building the best programming game ever." # class_attributes: "Class Attributes" # archmage_attribute_1_pref: "Knowledge in " @@ -364,10 +365,12 @@ module.exports = nativeDescription: "Bahasa Melayu", englishDescription: "Bahasa # join_desc_4: "and we'll go from there!" # join_url_email: "Email us" # join_url_hipchat: "public HipChat room" -# more_about_archmage: "Learn More About Becoming A Powerful Archmage" +# more_about_archmage: "Learn More About Becoming an Archmage" # archmage_subscribe_desc: "Get emails on new coding opportunities and announcements." +# artisan_summary_pref: "Want to design levels and expand CodeCombat's arsenal? People are playing through our content at a pace faster than we can build! Right now, our level editor is barebone, so be wary. Making levels will be a little challenging and buggy. If you have visions of campaigns spanning for-loops to" +# artisan_summary_suf: "then this class is for you." # artisan_introduction_pref: "We must construct additional levels! People be clamoring for more content, and we can only build so many ourselves. Right now your workstation is level one; our level editor is barely usable even by its creators, so be wary. If you have visions of campaigns spanning for-loops to" -# artisan_introduction_suf: "to then this class might be for you." +# artisan_introduction_suf: "then this class might be for you." # artisan_attribute_1: "Any experience in building content like this would be nice, such as using Blizzard's level editors. But not required!" # artisan_attribute_2: "A hankering to do a whole lot of testing and iteration. To make good levels, you need to take it to others and watch them play it, and be prepared to find a lot of things to fix." # artisan_attribute_3: "For the time being, endurance en par with an Adventurer. Our Level Editor is super preliminary and frustrating to use. You have been warned!" @@ -376,24 +379,28 @@ module.exports = nativeDescription: "Bahasa Melayu", englishDescription: "Bahasa # artisan_join_step2: "Create a new level and explore existing levels." # artisan_join_step3: "Find us in our public HipChat room for help." # artisan_join_step4: "Post your levels on the forum for feedback." -# more_about_artisan: "Learn More About Becoming A Creative Artisan" +# more_about_artisan: "Learn More About Becoming an Artisan" # artisan_subscribe_desc: "Get emails on level editor updates and announcements." +# adventurer_sumamry: "Let us be clear about your role: you are the tank. You are going to take heavy damage. We need people to try out brand-new levels and help identify how to make things better. The pain will be enormous; making good games is a long process and no one gets it right the first time. If you can endure and have a high constitution score, then this class is for you." # adventurer_introduction: "Let's be clear about your role: you are the tank. You're going to take heavy damage. We need people to try out brand-new levels and help identify how to make things better. The pain will be enormous; making good games is a long process and no one gets it right the first time. If you can endure and have a high constitution score, then this class might be for you." # adventurer_attribute_1: "A thirst for learning. You want to learn how to code and we want to teach you how to code. You'll probably be doing most of the teaching in this case, though." # adventurer_attribute_2: "Charismatic. Be gentle but articulate about what needs improving, and offer suggestions on how to improve." # adventurer_join_pref: "Either get together with (or recruit!) an Artisan and work with them, or check the box below to receive emails when there are new levels to test. We'll also be posting about levels to review on our networks like" # adventurer_forum_url: "our forum" # adventurer_join_suf: "so if you prefer to be notified those ways, sign up there!" -# more_about_adventurer: "Learn More About Becoming A Brave Adventurer" +# more_about_adventurer: "Learn More About Becoming an Adventurer" # adventurer_subscribe_desc: "Get emails when there are new levels to test." +# scribe_summary_pref: "CodeCombat is not just going to be a bunch of levels. It will also be a resource of programming knowledge that players can hook into. That way, each Artisan can link to a detailed article that for the player's edification: documentation akin to what the " +# scribe_summary_sufx: " has built. If you enjoy explaining programming concepts, then this class is for you." # scribe_introduction_pref: "CodeCombat isn't just going to be a bunch of levels. It will also include a resource for knowledge, a wiki of programming concepts that levels can hook into. That way rather than each Artisan having to describe in detail what a comparison operator is, they can simply link their level to the Article describing them that is already written for the player's edification. Something along the lines of what the " # scribe_introduction_url_mozilla: "Mozilla Developer Network" # scribe_introduction_suf: " has built. If your idea of fun is articulating the concepts of programming in Markdown form, then this class might be for you." # scribe_attribute_1: "Skill in words is pretty much all you need. Not only grammar and spelling, but able to convey complicated ideas to others." # contact_us_url: "Contact us" # scribe_join_description: "tell us a little about yourself, your experience with programming and what sort of things you'd like to write about. We'll go from there!" -# more_about_scribe: "Learn More About Becoming A Diligent Scribe" +# more_about_scribe: "Learn More About Becoming a Scribe" # scribe_subscribe_desc: "Get emails about article writing announcements." +# diplomat_summary: "There is a large interest in CodeCombat in other countries that do not speak English! We are looking for translators who are willing to spend their time translating the site's corpus of words so that CodeCombat is accessible across the world as soon as possible. If you'd like to help getting CodeCombat international, then this class is for you." # diplomat_introduction_pref: "So, if there's one thing we learned from the " # diplomat_launch_url: "launch in October" # diplomat_introduction_suf: "it's that there is sizeable interest in CodeCombat in other countries, particularly Brazil! We're building a corps of translators eager to turn one set of words into another set of words to get CodeCombat as accessible across the world as possible. If you like getting sneak peeks at upcoming content and getting these levels to your fellow nationals ASAP, then this class might be for you." @@ -401,21 +408,23 @@ module.exports = nativeDescription: "Bahasa Melayu", englishDescription: "Bahasa # diplomat_join_pref: "We've started a lot of initial translations at " # diplomat_doc_url: "this forum post" # diplomat_join_suf: "so check it out and add things for your language. Also, check this box below to keep up-to-date on new internationalization developments!" -# more_about_diplomat: "Learn More About Becoming A Great Diplomat" +# more_about_diplomat: "Learn More About Becoming a Diplomat" # diplomat_subscribe_desc: "Get emails about i18n developments and levels to translate." +# ambassador_summary: "We are trying to build a community, and every community needs a support team when there are troubles. We have got chats, emails, and social networks so that our users can get acquainted with the game. If you want to help people get involved, have fun, and learn some programming, then this class is for you." # ambassador_introduction: "This is a community we're building, and you are the connections. We've got Olark chats, emails, and social networks with lots of people to talk with and help get acquainted with the game and learn from. If you want to help people get involved and have fun, and get a good feel of the pulse of CodeCombat and where we're going, then this class might be for you." # ambassador_attribute_1: "Communication skills. Be able to identify the problems players are having and help them solve them. Also, keep the rest of us informed about what players are saying, what they like and don't like and want more of!" # ambassador_join_desc: "tell us a little about yourself, what you've done and what you'd be interested in doing. We'll go from there!" # ambassador_join_note_strong: "Note" # ambassador_join_note_desc: "One of our top priorities is to build multiplayer where players having difficulty solving levels can summon higher level wizards to help them. This will be a great way for ambassadors to do their thing. We'll keep you posted!" -# more_about_ambassador: "Learn More About Becoming A Helpful Ambassador" +# more_about_ambassador: "Learn More About Becoming an Ambassador" # ambassador_subscribe_desc: "Get emails on support updates and multiplayer developments." +# counselor_summary: "None of the above roles fit what you are interested in? Do not worry, we are on the lookout for anybody who wants a hand in the development of CodeCombat! If you are interested in teaching, game development, open source management, or anything else that you think will be relevant to us, then this class is for you." # counselor_introduction_1: "Do you have life experience? A different perspective on things that can help us decide how to shape CodeCombat? Of all these roles, this will probably take the least time, but individually you may make the most difference. We're on the lookout for wisened sages, particularly in areas like: teaching, game development, open source project management, technical recruiting, entrepreneurship, or design." # counselor_introduction_2: "Or really anything that is relevant to the development of CodeCombat. If you have knowledge and want to share it to help grow this project, then this class might be for you." # counselor_attribute_1: "Experience, in any of the areas above or something you think might be helpful." # counselor_attribute_2: "A little bit of free time!" # counselor_join_desc: "tell us a little about yourself, what you've done and what you'd be interested in doing. We'll put you in our contact list and be in touch when we could use advice (not too often)." -# more_about_counselor: "Learn More About Becoming A Valuable Counselor" +# more_about_counselor: "Learn More About Becoming a Counselor" # changes_auto_save: "Changes are saved automatically when you toggle checkboxes." # diligent_scribes: "Our Diligent Scribes:" # powerful_archmages: "Our Powerful Archmages:" diff --git a/app/locale/nb.coffee b/app/locale/nb.coffee index 020c44163..84da6055b 100644 --- a/app/locale/nb.coffee +++ b/app/locale/nb.coffee @@ -245,7 +245,6 @@ module.exports = nativeDescription: "Norsk Bokmål", englishDescription: "Norweg general: # and: "and" - or: "eller" name: "Navn" # body: "Body" # version: "Version" @@ -253,6 +252,7 @@ module.exports = nativeDescription: "Norsk Bokmål", englishDescription: "Norweg # version_history_for: "Version History for: " # results: "Results" # description: "Description" + or: "eller" email: "Epost" message: "Melding" @@ -352,6 +352,7 @@ module.exports = nativeDescription: "Norsk Bokmål", englishDescription: "Norweg # alert_account_message_pref: "To subscribe for class emails, you'll need to " # alert_account_message_suf: "first." # alert_account_message_create_url: "create an account" +# archmage_summary: "Interested in working on game graphics, user interface design, database and server organization, multiplayer networking, physics, sound, or game engine performance? Want to help build a game to help other people learn what you are good at? We have a lot to do and if you are an experienced programmer and want to develop for CodeCombat, this class is for you. We would love your help building the best programming game ever." # archmage_introduction: "One of the best parts about building games is they synthesize so many different things. Graphics, sound, real-time networking, social networking, and of course many of the more common aspects of programming, from low-level database management, and server administration to user facing design and interface building. There's a lot to do, and if you're an experienced programmer with a hankering to really dive into the nitty-gritty of CodeCombat, this class might be for you. We would love to have your help building the best programming game ever." # class_attributes: "Class Attributes" # archmage_attribute_1_pref: "Knowledge in " @@ -364,10 +365,12 @@ module.exports = nativeDescription: "Norsk Bokmål", englishDescription: "Norweg # join_desc_4: "and we'll go from there!" # join_url_email: "Email us" # join_url_hipchat: "public HipChat room" -# more_about_archmage: "Learn More About Becoming A Powerful Archmage" +# more_about_archmage: "Learn More About Becoming an Archmage" # archmage_subscribe_desc: "Get emails on new coding opportunities and announcements." +# artisan_summary_pref: "Want to design levels and expand CodeCombat's arsenal? People are playing through our content at a pace faster than we can build! Right now, our level editor is barebone, so be wary. Making levels will be a little challenging and buggy. If you have visions of campaigns spanning for-loops to" +# artisan_summary_suf: "then this class is for you." # artisan_introduction_pref: "We must construct additional levels! People be clamoring for more content, and we can only build so many ourselves. Right now your workstation is level one; our level editor is barely usable even by its creators, so be wary. If you have visions of campaigns spanning for-loops to" -# artisan_introduction_suf: "to then this class might be for you." +# artisan_introduction_suf: "then this class might be for you." # artisan_attribute_1: "Any experience in building content like this would be nice, such as using Blizzard's level editors. But not required!" # artisan_attribute_2: "A hankering to do a whole lot of testing and iteration. To make good levels, you need to take it to others and watch them play it, and be prepared to find a lot of things to fix." # artisan_attribute_3: "For the time being, endurance en par with an Adventurer. Our Level Editor is super preliminary and frustrating to use. You have been warned!" @@ -376,24 +379,28 @@ module.exports = nativeDescription: "Norsk Bokmål", englishDescription: "Norweg # artisan_join_step2: "Create a new level and explore existing levels." # artisan_join_step3: "Find us in our public HipChat room for help." # artisan_join_step4: "Post your levels on the forum for feedback." -# more_about_artisan: "Learn More About Becoming A Creative Artisan" +# more_about_artisan: "Learn More About Becoming an Artisan" # artisan_subscribe_desc: "Get emails on level editor updates and announcements." +# adventurer_sumamry: "Let us be clear about your role: you are the tank. You are going to take heavy damage. We need people to try out brand-new levels and help identify how to make things better. The pain will be enormous; making good games is a long process and no one gets it right the first time. If you can endure and have a high constitution score, then this class is for you." # adventurer_introduction: "Let's be clear about your role: you are the tank. You're going to take heavy damage. We need people to try out brand-new levels and help identify how to make things better. The pain will be enormous; making good games is a long process and no one gets it right the first time. If you can endure and have a high constitution score, then this class might be for you." # adventurer_attribute_1: "A thirst for learning. You want to learn how to code and we want to teach you how to code. You'll probably be doing most of the teaching in this case, though." # adventurer_attribute_2: "Charismatic. Be gentle but articulate about what needs improving, and offer suggestions on how to improve." # adventurer_join_pref: "Either get together with (or recruit!) an Artisan and work with them, or check the box below to receive emails when there are new levels to test. We'll also be posting about levels to review on our networks like" # adventurer_forum_url: "our forum" # adventurer_join_suf: "so if you prefer to be notified those ways, sign up there!" -# more_about_adventurer: "Learn More About Becoming A Brave Adventurer" +# more_about_adventurer: "Learn More About Becoming an Adventurer" # adventurer_subscribe_desc: "Get emails when there are new levels to test." +# scribe_summary_pref: "CodeCombat is not just going to be a bunch of levels. It will also be a resource of programming knowledge that players can hook into. That way, each Artisan can link to a detailed article that for the player's edification: documentation akin to what the " +# scribe_summary_sufx: " has built. If you enjoy explaining programming concepts, then this class is for you." # scribe_introduction_pref: "CodeCombat isn't just going to be a bunch of levels. It will also include a resource for knowledge, a wiki of programming concepts that levels can hook into. That way rather than each Artisan having to describe in detail what a comparison operator is, they can simply link their level to the Article describing them that is already written for the player's edification. Something along the lines of what the " # scribe_introduction_url_mozilla: "Mozilla Developer Network" # scribe_introduction_suf: " has built. If your idea of fun is articulating the concepts of programming in Markdown form, then this class might be for you." # scribe_attribute_1: "Skill in words is pretty much all you need. Not only grammar and spelling, but able to convey complicated ideas to others." # contact_us_url: "Contact us" # scribe_join_description: "tell us a little about yourself, your experience with programming and what sort of things you'd like to write about. We'll go from there!" -# more_about_scribe: "Learn More About Becoming A Diligent Scribe" +# more_about_scribe: "Learn More About Becoming a Scribe" # scribe_subscribe_desc: "Get emails about article writing announcements." +# diplomat_summary: "There is a large interest in CodeCombat in other countries that do not speak English! We are looking for translators who are willing to spend their time translating the site's corpus of words so that CodeCombat is accessible across the world as soon as possible. If you'd like to help getting CodeCombat international, then this class is for you." # diplomat_introduction_pref: "So, if there's one thing we learned from the " # diplomat_launch_url: "launch in October" # diplomat_introduction_suf: "it's that there is sizeable interest in CodeCombat in other countries, particularly Brazil! We're building a corps of translators eager to turn one set of words into another set of words to get CodeCombat as accessible across the world as possible. If you like getting sneak peeks at upcoming content and getting these levels to your fellow nationals ASAP, then this class might be for you." @@ -401,21 +408,23 @@ module.exports = nativeDescription: "Norsk Bokmål", englishDescription: "Norweg # diplomat_join_pref: "We've started a lot of initial translations at " # diplomat_doc_url: "this forum post" # diplomat_join_suf: "so check it out and add things for your language. Also, check this box below to keep up-to-date on new internationalization developments!" -# more_about_diplomat: "Learn More About Becoming A Great Diplomat" +# more_about_diplomat: "Learn More About Becoming a Diplomat" # diplomat_subscribe_desc: "Get emails about i18n developments and levels to translate." +# ambassador_summary: "We are trying to build a community, and every community needs a support team when there are troubles. We have got chats, emails, and social networks so that our users can get acquainted with the game. If you want to help people get involved, have fun, and learn some programming, then this class is for you." # ambassador_introduction: "This is a community we're building, and you are the connections. We've got Olark chats, emails, and social networks with lots of people to talk with and help get acquainted with the game and learn from. If you want to help people get involved and have fun, and get a good feel of the pulse of CodeCombat and where we're going, then this class might be for you." # ambassador_attribute_1: "Communication skills. Be able to identify the problems players are having and help them solve them. Also, keep the rest of us informed about what players are saying, what they like and don't like and want more of!" # ambassador_join_desc: "tell us a little about yourself, what you've done and what you'd be interested in doing. We'll go from there!" # ambassador_join_note_strong: "Note" # ambassador_join_note_desc: "One of our top priorities is to build multiplayer where players having difficulty solving levels can summon higher level wizards to help them. This will be a great way for ambassadors to do their thing. We'll keep you posted!" -# more_about_ambassador: "Learn More About Becoming A Helpful Ambassador" +# more_about_ambassador: "Learn More About Becoming an Ambassador" # ambassador_subscribe_desc: "Get emails on support updates and multiplayer developments." +# counselor_summary: "None of the above roles fit what you are interested in? Do not worry, we are on the lookout for anybody who wants a hand in the development of CodeCombat! If you are interested in teaching, game development, open source management, or anything else that you think will be relevant to us, then this class is for you." # counselor_introduction_1: "Do you have life experience? A different perspective on things that can help us decide how to shape CodeCombat? Of all these roles, this will probably take the least time, but individually you may make the most difference. We're on the lookout for wisened sages, particularly in areas like: teaching, game development, open source project management, technical recruiting, entrepreneurship, or design." # counselor_introduction_2: "Or really anything that is relevant to the development of CodeCombat. If you have knowledge and want to share it to help grow this project, then this class might be for you." # counselor_attribute_1: "Experience, in any of the areas above or something you think might be helpful." # counselor_attribute_2: "A little bit of free time!" # counselor_join_desc: "tell us a little about yourself, what you've done and what you'd be interested in doing. We'll put you in our contact list and be in touch when we could use advice (not too often)." -# more_about_counselor: "Learn More About Becoming A Valuable Counselor" +# more_about_counselor: "Learn More About Becoming a Counselor" # changes_auto_save: "Changes are saved automatically when you toggle checkboxes." # diligent_scribes: "Our Diligent Scribes:" # powerful_archmages: "Our Powerful Archmages:" diff --git a/app/locale/nl.coffee b/app/locale/nl.coffee index eced00844..a0d34e359 100644 --- a/app/locale/nl.coffee +++ b/app/locale/nl.coffee @@ -5,12 +5,12 @@ module.exports = nativeDescription: "Nederlands", englishDescription: "Dutch", t sending: "Verzenden..." cancel: "Annuleren" save: "Opslagen" - fork: "Fork" - play: "Spelen" delay_1_sec: "1 seconde" delay_3_sec: "3 secondes" delay_5_sec: "5 secondes" manual: "Handboek" + fork: "Fork" + play: "Spelen" modal: close: "Sluiten" @@ -42,9 +42,9 @@ module.exports = nativeDescription: "Nederlands", englishDescription: "Dutch", t cla_agree: "IK GA AKKOORD" login: + sign_up: "Account Maken" log_in: "Inloggen" log_out: "Uitloggen" - sign_up: "Account Maken" recover: "account herstellen" recover: @@ -136,13 +136,13 @@ module.exports = nativeDescription: "Nederlands", englishDescription: "Dutch", t account_profile: edit_settings: "Instellingen Aanpassen" profile_for_prefix: "Profiel voor " - profile_for_suffix: "" +# profile_for_suffix: "" profile: "Profiel" user_not_found: "Geen gebruiker gevonden. Controleer de URL?" gravatar_not_found_mine: "We konden geen account vinden gekoppeld met:" gravatar_not_found_email_suffix: "." gravatar_signup_prefix: "Registreer op " - gravatar_signup_suffix: "" +# gravatar_signup_suffix: "" gravatar_not_found_other: "Alas, there's no profile associated with this person's email address." gravatar_contact: "Contact" gravatar_websites: "Websites" @@ -164,7 +164,7 @@ module.exports = nativeDescription: "Nederlands", englishDescription: "Dutch", t reload_title: "Alle Code Herladen?" reload_really: "Weet je zeker dat je dit level tot het begin wilt herladen?" reload_confirm: "Herlaad Alles" - victory_title_prefix: "" +# victory_title_prefix: "" victory_title_suffix: " Compleet" victory_sign_up: "Schrijf je in om je progressie op te slaan" victory_sign_up_poke: "Wil jje jouw code opslaan? Maak een gratis account aan!" @@ -245,13 +245,13 @@ module.exports = nativeDescription: "Nederlands", englishDescription: "Dutch", t general: and: "en" - results: "Resultaten" name: "Naam" - description: "Beschrijving" + body: "Inhoud" version: "Versie" commit_msg: "Commit Bericht" version_history_for: "Versie geschiedenis voor: " - body: "Inhoud" + results: "Resultaten" + description: "Beschrijving" or: "of" email: "Email" message: "Bericht" @@ -352,6 +352,7 @@ module.exports = nativeDescription: "Nederlands", englishDescription: "Dutch", t alert_account_message_pref: "Om je te abonneren voor de klasse e-mails, moet je eerst " alert_account_message_suf: "." alert_account_message_create_url: "een account aanmaken" +# archmage_summary: "Interested in working on game graphics, user interface design, database and server organization, multiplayer networking, physics, sound, or game engine performance? Want to help build a game to help other people learn what you are good at? We have a lot to do and if you are an experienced programmer and want to develop for CodeCombat, this class is for you. We would love your help building the best programming game ever." archmage_introduction: "Een van de beste aspecten aan het maken van spelletjes is dat zij zoveel verschillende zaken omvatten. Visualisaties, geluid, real-time netwerken, sociale netwerken, en natuurlijk veel van de voorkomende aspecten van programmeren, van low-level database beheer en server administratie tot gebruiksvriendelijke interfaces maken. Er is veel te doen, en als jij een ervaren programmeur bent met de motivatie om je handen veel te maken met CodeCombat, dan ben je de tovenaar die wij zoeken! We zouden graag jouw help hebben met het bouwen aan het allerbeste programmeerspel ooit." class_attributes: "Klasse kenmerken" archmage_attribute_1_pref: "Ervaring met " @@ -366,6 +367,8 @@ module.exports = nativeDescription: "Nederlands", englishDescription: "Dutch", t join_url_hipchat: "ons publiek (Engelstalig) HipChat kanaal" more_about_archmage: "Leer meer over hoe je een Machtige Tovenaar kan worden" archmage_subscribe_desc: "Ontvang e-mails met nieuwe codeer oppurtiniteiten en aankondigingen." +# artisan_summary_pref: "Want to design levels and expand CodeCombat's arsenal? People are playing through our content at a pace faster than we can build! Right now, our level editor is barebone, so be wary. Making levels will be a little challenging and buggy. If you have visions of campaigns spanning for-loops to" +# artisan_summary_suf: "then this class is for you." artisan_introduction_pref: "We moeten meer levels bouwen! Mensen schreeuwen om meer inhoud, en er zijn ook maar zoveel levels dat wij kunnen maken. Momenteel is jouw werkplaats level een; onze level editor is amper gebruikt door zelfs ons, wees dus voorzichtig. Indien je visioenen hebt van campagnes, gaande van for-loops tot" artisan_introduction_suf: "dan is deze klasse waarschijnlijk iets voor jou." artisan_attribute_1: "Enige ervaring in het maken van gelijkbare inhoud. Bijvoorbeeld ervaring het gebruiken van Blizzard's level editor. Maar dit is niet vereist!" @@ -378,6 +381,7 @@ module.exports = nativeDescription: "Nederlands", englishDescription: "Dutch", t artisan_join_step4: "Maak een bericht over jou level op ons forum voor feedback." more_about_artisan: "Leer meer over hoe je een Creatieve Ambachtsman kan worden." artisan_subscribe_desc: "Ontvang e-mails met nieuws over de Level Editor." +# adventurer_sumamry: "Let us be clear about your role: you are the tank. You are going to take heavy damage. We need people to try out brand-new levels and help identify how to make things better. The pain will be enormous; making good games is a long process and no one gets it right the first time. If you can endure and have a high constitution score, then this class is for you." adventurer_introduction: "Let's be clear about your role: you are the tank. You're going to take heavy damage. We need people to try out brand-new levels and help identify how to make things better. The pain will be enormous; making good games is a long process and no one gets it right the first time. If you can endure and have a high constitution score, then this class might be for you." adventurer_attribute_1: "A thirst for learning. You want to learn how to code and we want to teach you how to code. You'll probably be doing most of the teaching in this case, though." adventurer_attribute_2: "Charismatic. Be gentle but articulate about what needs improving, and offer suggestions on how to improve." @@ -386,6 +390,8 @@ module.exports = nativeDescription: "Nederlands", englishDescription: "Dutch", t adventurer_join_suf: "so if you prefer to be notified those ways, sign up there!" more_about_adventurer: "Learn More About Becoming A Brave Adventurer" adventurer_subscribe_desc: "Get emails when there are new levels to test." +# scribe_summary_pref: "CodeCombat is not just going to be a bunch of levels. It will also be a resource of programming knowledge that players can hook into. That way, each Artisan can link to a detailed article that for the player's edification: documentation akin to what the " +# scribe_summary_sufx: " has built. If you enjoy explaining programming concepts, then this class is for you." scribe_introduction_pref: "CodeCombat isn't just going to be a bunch of levels. It will also include a resource for knowledge, a wiki of programming concepts that levels can hook into. That way rather than each Artisan having to describe in detail what a comparison operator is, they can simply link their level to the Article describing them that is already written for the player's edification. Something along the lines of what the " scribe_introduction_url_mozilla: "Mozilla Developer Network" scribe_introduction_suf: " has built. If your idea of fun is articulating the concepts of programming in Markdown form, then this class might be for you." @@ -394,6 +400,7 @@ module.exports = nativeDescription: "Nederlands", englishDescription: "Dutch", t scribe_join_description: "tell us a little about yourself, your experience with programming and what sort of things you'd like to write about. We'll go from there!" more_about_scribe: "Learn More About Becoming A Diligent Scribe" scribe_subscribe_desc: "Get emails about article writing announcements." +# diplomat_summary: "There is a large interest in CodeCombat in other countries that do not speak English! We are looking for translators who are willing to spend their time translating the site's corpus of words so that CodeCombat is accessible across the world as soon as possible. If you'd like to help getting CodeCombat international, then this class is for you." diplomat_introduction_pref: "So, if there's one thing we learned from the " diplomat_launch_url: "launch in October" diplomat_introduction_suf: "it's that there is sizeable interest in CodeCombat in other countries, particularly Brazil! We're building a corps of translators eager to turn one set of words into another set of words to get CodeCombat as accessible across the world as possible. If you like getting sneak peeks at upcoming content and getting these levels to your fellow nationals ASAP, then this class might be for you." @@ -403,6 +410,7 @@ module.exports = nativeDescription: "Nederlands", englishDescription: "Dutch", t diplomat_join_suf: "so check it out and add things for your language. Also, check this box below to keep up-to-date on new internationalization developments!" more_about_diplomat: "Learn More About Becoming A Great Diplomat" diplomat_subscribe_desc: "Get emails about i18n developments and levels to translate." +# ambassador_summary: "We are trying to build a community, and every community needs a support team when there are troubles. We have got chats, emails, and social networks so that our users can get acquainted with the game. If you want to help people get involved, have fun, and learn some programming, then this class is for you." ambassador_introduction: "This is a community we're building, and you are the connections. We've got Olark chats, emails, and social networks with lots of people to talk with and help get acquainted with the game and learn from. If you want to help people get involved and have fun, and get a good feel of the pulse of CodeCombat and where we're going, then this class might be for you." ambassador_attribute_1: "Communication skills. Be able to identify the problems players are having and help them solve them. Also, keep the rest of us informed about what players are saying, what they like and don't like and want more of!" ambassador_join_desc: "tell us a little about yourself, what you've done and what you'd be interested in doing. We'll go from there!" @@ -410,6 +418,7 @@ module.exports = nativeDescription: "Nederlands", englishDescription: "Dutch", t ambassador_join_note_desc: "One of our top priorities is to build multiplayer where players having difficulty solving levels can summon higher level wizards to help them. This will be a great way for ambassadors to do their thing. We'll keep you posted!" more_about_ambassador: "Learn More About Becoming A Helpful Ambassador" ambassador_subscribe_desc: "Get emails on support updates and multiplayer developments." +# counselor_summary: "None of the above roles fit what you are interested in? Do not worry, we are on the lookout for anybody who wants a hand in the development of CodeCombat! If you are interested in teaching, game development, open source management, or anything else that you think will be relevant to us, then this class is for you." counselor_introduction_1: "Do you have life experience? A different perspective on things that can help us decide how to shape CodeCombat? Of all these roles, this will probably take the least time, but individually you may make the most difference. We're on the lookout for wisened sages, particularly in areas like: teaching, game development, open source project management, technical recruiting, entrepreneurship, or design." counselor_introduction_2: "Or really anything that is relevant to the development of CodeCombat. If you have knowledge and want to share it to help grow this project, then this class might be for you." counselor_attribute_1: "Experience, in any of the areas above or something you think might be helpful." diff --git a/app/locale/nn.coffee b/app/locale/nn.coffee index 14c6ac7cf..5ca60935b 100644 --- a/app/locale/nn.coffee +++ b/app/locale/nn.coffee @@ -352,6 +352,7 @@ module.exports = nativeDescription: "English (AU)", englishDescription: "English # alert_account_message_pref: "To subscribe for class emails, you'll need to " # alert_account_message_suf: "first." # alert_account_message_create_url: "create an account" +# archmage_summary: "Interested in working on game graphics, user interface design, database and server organization, multiplayer networking, physics, sound, or game engine performance? Want to help build a game to help other people learn what you are good at? We have a lot to do and if you are an experienced programmer and want to develop for CodeCombat, this class is for you. We would love your help building the best programming game ever." # archmage_introduction: "One of the best parts about building games is they synthesize so many different things. Graphics, sound, real-time networking, social networking, and of course many of the more common aspects of programming, from low-level database management, and server administration to user facing design and interface building. There's a lot to do, and if you're an experienced programmer with a hankering to really dive into the nitty-gritty of CodeCombat, this class might be for you. We would love to have your help building the best programming game ever." # class_attributes: "Class Attributes" # archmage_attribute_1_pref: "Knowledge in " @@ -364,10 +365,12 @@ module.exports = nativeDescription: "English (AU)", englishDescription: "English # join_desc_4: "and we'll go from there!" # join_url_email: "Email us" # join_url_hipchat: "public HipChat room" -# more_about_archmage: "Learn More About Becoming A Powerful Archmage" +# more_about_archmage: "Learn More About Becoming an Archmage" # archmage_subscribe_desc: "Get emails on new coding opportunities and announcements." +# artisan_summary_pref: "Want to design levels and expand CodeCombat's arsenal? People are playing through our content at a pace faster than we can build! Right now, our level editor is barebone, so be wary. Making levels will be a little challenging and buggy. If you have visions of campaigns spanning for-loops to" +# artisan_summary_suf: "then this class is for you." # artisan_introduction_pref: "We must construct additional levels! People be clamoring for more content, and we can only build so many ourselves. Right now your workstation is level one; our level editor is barely usable even by its creators, so be wary. If you have visions of campaigns spanning for-loops to" -# artisan_introduction_suf: "to then this class might be for you." +# artisan_introduction_suf: "then this class might be for you." # artisan_attribute_1: "Any experience in building content like this would be nice, such as using Blizzard's level editors. But not required!" # artisan_attribute_2: "A hankering to do a whole lot of testing and iteration. To make good levels, you need to take it to others and watch them play it, and be prepared to find a lot of things to fix." # artisan_attribute_3: "For the time being, endurance en par with an Adventurer. Our Level Editor is super preliminary and frustrating to use. You have been warned!" @@ -376,24 +379,28 @@ module.exports = nativeDescription: "English (AU)", englishDescription: "English # artisan_join_step2: "Create a new level and explore existing levels." # artisan_join_step3: "Find us in our public HipChat room for help." # artisan_join_step4: "Post your levels on the forum for feedback." -# more_about_artisan: "Learn More About Becoming A Creative Artisan" +# more_about_artisan: "Learn More About Becoming an Artisan" # artisan_subscribe_desc: "Get emails on level editor updates and announcements." +# adventurer_sumamry: "Let us be clear about your role: you are the tank. You are going to take heavy damage. We need people to try out brand-new levels and help identify how to make things better. The pain will be enormous; making good games is a long process and no one gets it right the first time. If you can endure and have a high constitution score, then this class is for you." # adventurer_introduction: "Let's be clear about your role: you are the tank. You're going to take heavy damage. We need people to try out brand-new levels and help identify how to make things better. The pain will be enormous; making good games is a long process and no one gets it right the first time. If you can endure and have a high constitution score, then this class might be for you." # adventurer_attribute_1: "A thirst for learning. You want to learn how to code and we want to teach you how to code. You'll probably be doing most of the teaching in this case, though." # adventurer_attribute_2: "Charismatic. Be gentle but articulate about what needs improving, and offer suggestions on how to improve." # adventurer_join_pref: "Either get together with (or recruit!) an Artisan and work with them, or check the box below to receive emails when there are new levels to test. We'll also be posting about levels to review on our networks like" # adventurer_forum_url: "our forum" # adventurer_join_suf: "so if you prefer to be notified those ways, sign up there!" -# more_about_adventurer: "Learn More About Becoming A Brave Adventurer" +# more_about_adventurer: "Learn More About Becoming an Adventurer" # adventurer_subscribe_desc: "Get emails when there are new levels to test." +# scribe_summary_pref: "CodeCombat is not just going to be a bunch of levels. It will also be a resource of programming knowledge that players can hook into. That way, each Artisan can link to a detailed article that for the player's edification: documentation akin to what the " +# scribe_summary_sufx: " has built. If you enjoy explaining programming concepts, then this class is for you." # scribe_introduction_pref: "CodeCombat isn't just going to be a bunch of levels. It will also include a resource for knowledge, a wiki of programming concepts that levels can hook into. That way rather than each Artisan having to describe in detail what a comparison operator is, they can simply link their level to the Article describing them that is already written for the player's edification. Something along the lines of what the " # scribe_introduction_url_mozilla: "Mozilla Developer Network" # scribe_introduction_suf: " has built. If your idea of fun is articulating the concepts of programming in Markdown form, then this class might be for you." # scribe_attribute_1: "Skill in words is pretty much all you need. Not only grammar and spelling, but able to convey complicated ideas to others." # contact_us_url: "Contact us" # scribe_join_description: "tell us a little about yourself, your experience with programming and what sort of things you'd like to write about. We'll go from there!" -# more_about_scribe: "Learn More About Becoming A Diligent Scribe" +# more_about_scribe: "Learn More About Becoming a Scribe" # scribe_subscribe_desc: "Get emails about article writing announcements." +# diplomat_summary: "There is a large interest in CodeCombat in other countries that do not speak English! We are looking for translators who are willing to spend their time translating the site's corpus of words so that CodeCombat is accessible across the world as soon as possible. If you'd like to help getting CodeCombat international, then this class is for you." # diplomat_introduction_pref: "So, if there's one thing we learned from the " # diplomat_launch_url: "launch in October" # diplomat_introduction_suf: "it's that there is sizeable interest in CodeCombat in other countries, particularly Brazil! We're building a corps of translators eager to turn one set of words into another set of words to get CodeCombat as accessible across the world as possible. If you like getting sneak peeks at upcoming content and getting these levels to your fellow nationals ASAP, then this class might be for you." @@ -401,21 +408,23 @@ module.exports = nativeDescription: "English (AU)", englishDescription: "English # diplomat_join_pref: "We've started a lot of initial translations at " # diplomat_doc_url: "this forum post" # diplomat_join_suf: "so check it out and add things for your language. Also, check this box below to keep up-to-date on new internationalization developments!" -# more_about_diplomat: "Learn More About Becoming A Great Diplomat" +# more_about_diplomat: "Learn More About Becoming a Diplomat" # diplomat_subscribe_desc: "Get emails about i18n developments and levels to translate." +# ambassador_summary: "We are trying to build a community, and every community needs a support team when there are troubles. We have got chats, emails, and social networks so that our users can get acquainted with the game. If you want to help people get involved, have fun, and learn some programming, then this class is for you." # ambassador_introduction: "This is a community we're building, and you are the connections. We've got Olark chats, emails, and social networks with lots of people to talk with and help get acquainted with the game and learn from. If you want to help people get involved and have fun, and get a good feel of the pulse of CodeCombat and where we're going, then this class might be for you." # ambassador_attribute_1: "Communication skills. Be able to identify the problems players are having and help them solve them. Also, keep the rest of us informed about what players are saying, what they like and don't like and want more of!" # ambassador_join_desc: "tell us a little about yourself, what you've done and what you'd be interested in doing. We'll go from there!" # ambassador_join_note_strong: "Note" # ambassador_join_note_desc: "One of our top priorities is to build multiplayer where players having difficulty solving levels can summon higher level wizards to help them. This will be a great way for ambassadors to do their thing. We'll keep you posted!" -# more_about_ambassador: "Learn More About Becoming A Helpful Ambassador" +# more_about_ambassador: "Learn More About Becoming an Ambassador" # ambassador_subscribe_desc: "Get emails on support updates and multiplayer developments." +# counselor_summary: "None of the above roles fit what you are interested in? Do not worry, we are on the lookout for anybody who wants a hand in the development of CodeCombat! If you are interested in teaching, game development, open source management, or anything else that you think will be relevant to us, then this class is for you." # counselor_introduction_1: "Do you have life experience? A different perspective on things that can help us decide how to shape CodeCombat? Of all these roles, this will probably take the least time, but individually you may make the most difference. We're on the lookout for wisened sages, particularly in areas like: teaching, game development, open source project management, technical recruiting, entrepreneurship, or design." # counselor_introduction_2: "Or really anything that is relevant to the development of CodeCombat. If you have knowledge and want to share it to help grow this project, then this class might be for you." # counselor_attribute_1: "Experience, in any of the areas above or something you think might be helpful." # counselor_attribute_2: "A little bit of free time!" # counselor_join_desc: "tell us a little about yourself, what you've done and what you'd be interested in doing. We'll put you in our contact list and be in touch when we could use advice (not too often)." -# more_about_counselor: "Learn More About Becoming A Valuable Counselor" +# more_about_counselor: "Learn More About Becoming a Counselor" # changes_auto_save: "Changes are saved automatically when you toggle checkboxes." # diligent_scribes: "Our Diligent Scribes:" # powerful_archmages: "Our Powerful Archmages:" diff --git a/app/locale/no.coffee b/app/locale/no.coffee index 4330d0bd7..64533d6c7 100644 --- a/app/locale/no.coffee +++ b/app/locale/no.coffee @@ -164,7 +164,7 @@ module.exports = nativeDescription: "Norsk", englishDescription: "Norwegian", tr reload_title: "Laste All Koden på Nytt?" reload_really: "Er du sikker på at du vil laste dette nivået på nytt, tilbake til begynnelsen?" reload_confirm: "Last Alle på Nytt" - victory_title_prefix: "" +# victory_title_prefix: "" victory_title_suffix: " Ferdig" victory_sign_up: "Tegn deg på for Oppdateringer" victory_sign_up_poke: "Vil du ha siste nytt på epost? Opprett en gratis konto, så vil vi holde deg oppdatert!" @@ -245,7 +245,6 @@ module.exports = nativeDescription: "Norsk", englishDescription: "Norwegian", tr general: # and: "and" - or: "eller" name: "Navn" # body: "Body" # version: "Version" @@ -253,6 +252,7 @@ module.exports = nativeDescription: "Norsk", englishDescription: "Norwegian", tr # version_history_for: "Version History for: " # results: "Results" # description: "Description" + or: "eller" email: "Epost" message: "Melding" @@ -352,6 +352,7 @@ module.exports = nativeDescription: "Norsk", englishDescription: "Norwegian", tr # alert_account_message_pref: "To subscribe for class emails, you'll need to " # alert_account_message_suf: "first." # alert_account_message_create_url: "create an account" +# archmage_summary: "Interested in working on game graphics, user interface design, database and server organization, multiplayer networking, physics, sound, or game engine performance? Want to help build a game to help other people learn what you are good at? We have a lot to do and if you are an experienced programmer and want to develop for CodeCombat, this class is for you. We would love your help building the best programming game ever." # archmage_introduction: "One of the best parts about building games is they synthesize so many different things. Graphics, sound, real-time networking, social networking, and of course many of the more common aspects of programming, from low-level database management, and server administration to user facing design and interface building. There's a lot to do, and if you're an experienced programmer with a hankering to really dive into the nitty-gritty of CodeCombat, this class might be for you. We would love to have your help building the best programming game ever." # class_attributes: "Class Attributes" # archmage_attribute_1_pref: "Knowledge in " @@ -364,10 +365,12 @@ module.exports = nativeDescription: "Norsk", englishDescription: "Norwegian", tr # join_desc_4: "and we'll go from there!" # join_url_email: "Email us" # join_url_hipchat: "public HipChat room" -# more_about_archmage: "Learn More About Becoming A Powerful Archmage" +# more_about_archmage: "Learn More About Becoming an Archmage" # archmage_subscribe_desc: "Get emails on new coding opportunities and announcements." +# artisan_summary_pref: "Want to design levels and expand CodeCombat's arsenal? People are playing through our content at a pace faster than we can build! Right now, our level editor is barebone, so be wary. Making levels will be a little challenging and buggy. If you have visions of campaigns spanning for-loops to" +# artisan_summary_suf: "then this class is for you." # artisan_introduction_pref: "We must construct additional levels! People be clamoring for more content, and we can only build so many ourselves. Right now your workstation is level one; our level editor is barely usable even by its creators, so be wary. If you have visions of campaigns spanning for-loops to" -# artisan_introduction_suf: "to then this class might be for you." +# artisan_introduction_suf: "then this class might be for you." # artisan_attribute_1: "Any experience in building content like this would be nice, such as using Blizzard's level editors. But not required!" # artisan_attribute_2: "A hankering to do a whole lot of testing and iteration. To make good levels, you need to take it to others and watch them play it, and be prepared to find a lot of things to fix." # artisan_attribute_3: "For the time being, endurance en par with an Adventurer. Our Level Editor is super preliminary and frustrating to use. You have been warned!" @@ -376,24 +379,28 @@ module.exports = nativeDescription: "Norsk", englishDescription: "Norwegian", tr # artisan_join_step2: "Create a new level and explore existing levels." # artisan_join_step3: "Find us in our public HipChat room for help." # artisan_join_step4: "Post your levels on the forum for feedback." -# more_about_artisan: "Learn More About Becoming A Creative Artisan" +# more_about_artisan: "Learn More About Becoming an Artisan" # artisan_subscribe_desc: "Get emails on level editor updates and announcements." +# adventurer_sumamry: "Let us be clear about your role: you are the tank. You are going to take heavy damage. We need people to try out brand-new levels and help identify how to make things better. The pain will be enormous; making good games is a long process and no one gets it right the first time. If you can endure and have a high constitution score, then this class is for you." # adventurer_introduction: "Let's be clear about your role: you are the tank. You're going to take heavy damage. We need people to try out brand-new levels and help identify how to make things better. The pain will be enormous; making good games is a long process and no one gets it right the first time. If you can endure and have a high constitution score, then this class might be for you." # adventurer_attribute_1: "A thirst for learning. You want to learn how to code and we want to teach you how to code. You'll probably be doing most of the teaching in this case, though." # adventurer_attribute_2: "Charismatic. Be gentle but articulate about what needs improving, and offer suggestions on how to improve." # adventurer_join_pref: "Either get together with (or recruit!) an Artisan and work with them, or check the box below to receive emails when there are new levels to test. We'll also be posting about levels to review on our networks like" # adventurer_forum_url: "our forum" # adventurer_join_suf: "so if you prefer to be notified those ways, sign up there!" -# more_about_adventurer: "Learn More About Becoming A Brave Adventurer" +# more_about_adventurer: "Learn More About Becoming an Adventurer" # adventurer_subscribe_desc: "Get emails when there are new levels to test." +# scribe_summary_pref: "CodeCombat is not just going to be a bunch of levels. It will also be a resource of programming knowledge that players can hook into. That way, each Artisan can link to a detailed article that for the player's edification: documentation akin to what the " +# scribe_summary_sufx: " has built. If you enjoy explaining programming concepts, then this class is for you." # scribe_introduction_pref: "CodeCombat isn't just going to be a bunch of levels. It will also include a resource for knowledge, a wiki of programming concepts that levels can hook into. That way rather than each Artisan having to describe in detail what a comparison operator is, they can simply link their level to the Article describing them that is already written for the player's edification. Something along the lines of what the " # scribe_introduction_url_mozilla: "Mozilla Developer Network" # scribe_introduction_suf: " has built. If your idea of fun is articulating the concepts of programming in Markdown form, then this class might be for you." # scribe_attribute_1: "Skill in words is pretty much all you need. Not only grammar and spelling, but able to convey complicated ideas to others." # contact_us_url: "Contact us" # scribe_join_description: "tell us a little about yourself, your experience with programming and what sort of things you'd like to write about. We'll go from there!" -# more_about_scribe: "Learn More About Becoming A Diligent Scribe" +# more_about_scribe: "Learn More About Becoming a Scribe" # scribe_subscribe_desc: "Get emails about article writing announcements." +# diplomat_summary: "There is a large interest in CodeCombat in other countries that do not speak English! We are looking for translators who are willing to spend their time translating the site's corpus of words so that CodeCombat is accessible across the world as soon as possible. If you'd like to help getting CodeCombat international, then this class is for you." # diplomat_introduction_pref: "So, if there's one thing we learned from the " # diplomat_launch_url: "launch in October" # diplomat_introduction_suf: "it's that there is sizeable interest in CodeCombat in other countries, particularly Brazil! We're building a corps of translators eager to turn one set of words into another set of words to get CodeCombat as accessible across the world as possible. If you like getting sneak peeks at upcoming content and getting these levels to your fellow nationals ASAP, then this class might be for you." @@ -401,21 +408,23 @@ module.exports = nativeDescription: "Norsk", englishDescription: "Norwegian", tr # diplomat_join_pref: "We've started a lot of initial translations at " # diplomat_doc_url: "this forum post" # diplomat_join_suf: "so check it out and add things for your language. Also, check this box below to keep up-to-date on new internationalization developments!" -# more_about_diplomat: "Learn More About Becoming A Great Diplomat" +# more_about_diplomat: "Learn More About Becoming a Diplomat" # diplomat_subscribe_desc: "Get emails about i18n developments and levels to translate." +# ambassador_summary: "We are trying to build a community, and every community needs a support team when there are troubles. We have got chats, emails, and social networks so that our users can get acquainted with the game. If you want to help people get involved, have fun, and learn some programming, then this class is for you." # ambassador_introduction: "This is a community we're building, and you are the connections. We've got Olark chats, emails, and social networks with lots of people to talk with and help get acquainted with the game and learn from. If you want to help people get involved and have fun, and get a good feel of the pulse of CodeCombat and where we're going, then this class might be for you." # ambassador_attribute_1: "Communication skills. Be able to identify the problems players are having and help them solve them. Also, keep the rest of us informed about what players are saying, what they like and don't like and want more of!" # ambassador_join_desc: "tell us a little about yourself, what you've done and what you'd be interested in doing. We'll go from there!" # ambassador_join_note_strong: "Note" # ambassador_join_note_desc: "One of our top priorities is to build multiplayer where players having difficulty solving levels can summon higher level wizards to help them. This will be a great way for ambassadors to do their thing. We'll keep you posted!" -# more_about_ambassador: "Learn More About Becoming A Helpful Ambassador" +# more_about_ambassador: "Learn More About Becoming an Ambassador" # ambassador_subscribe_desc: "Get emails on support updates and multiplayer developments." +# counselor_summary: "None of the above roles fit what you are interested in? Do not worry, we are on the lookout for anybody who wants a hand in the development of CodeCombat! If you are interested in teaching, game development, open source management, or anything else that you think will be relevant to us, then this class is for you." # counselor_introduction_1: "Do you have life experience? A different perspective on things that can help us decide how to shape CodeCombat? Of all these roles, this will probably take the least time, but individually you may make the most difference. We're on the lookout for wisened sages, particularly in areas like: teaching, game development, open source project management, technical recruiting, entrepreneurship, or design." # counselor_introduction_2: "Or really anything that is relevant to the development of CodeCombat. If you have knowledge and want to share it to help grow this project, then this class might be for you." # counselor_attribute_1: "Experience, in any of the areas above or something you think might be helpful." # counselor_attribute_2: "A little bit of free time!" # counselor_join_desc: "tell us a little about yourself, what you've done and what you'd be interested in doing. We'll put you in our contact list and be in touch when we could use advice (not too often)." -# more_about_counselor: "Learn More About Becoming A Valuable Counselor" +# more_about_counselor: "Learn More About Becoming a Counselor" # changes_auto_save: "Changes are saved automatically when you toggle checkboxes." # diligent_scribes: "Our Diligent Scribes:" # powerful_archmages: "Our Powerful Archmages:" diff --git a/app/locale/pl.coffee b/app/locale/pl.coffee index f39080c1e..a9988b77c 100644 --- a/app/locale/pl.coffee +++ b/app/locale/pl.coffee @@ -136,7 +136,7 @@ module.exports = nativeDescription: "język polski", englishDescription: "Polish account_profile: edit_settings: "Edytuj Ustawienia" profile_for_prefix: "Profil" - profile_for_suffix: "" +# profile_for_suffix: "" profile: "Profil" user_not_found: "Nieznaleziono użytkownika. Sprawdź odnośnik URL?" gravatar_not_found_mine: "Nie udało nam się znaleźć profilu powiązanego z:" @@ -164,7 +164,7 @@ module.exports = nativeDescription: "język polski", englishDescription: "Polish reload_title: "Przywrócić cały kod?" reload_really: "Czy jesteś pewien, że chcesz przywrócić kod startowy tego poziomu?" reload_confirm: "Przywróć cały kod" - victory_title_prefix: "" +# victory_title_prefix: "" victory_title_suffix: " Zakończony" victory_sign_up: "Zapisz się by otrzymywać akutalności" victory_sign_up_poke: "Chcesz otrzymywać najnowsze wiadomości na email? Załóź darmowe konto i będziemy w kontakcie." @@ -245,7 +245,6 @@ module.exports = nativeDescription: "język polski", englishDescription: "Polish general: # and: "and" - or: "lub" name: "Imie" # body: "Body" # version: "Version" @@ -253,6 +252,7 @@ module.exports = nativeDescription: "język polski", englishDescription: "Polish # version_history_for: "Version History for: " # results: "Results" # description: "Description" + or: "lub" email: "Email" message: "Wiadomość" @@ -352,6 +352,7 @@ module.exports = nativeDescription: "język polski", englishDescription: "Polish # alert_account_message_pref: "To subscribe for class emails, you'll need to " # alert_account_message_suf: "first." # alert_account_message_create_url: "create an account" +# archmage_summary: "Interested in working on game graphics, user interface design, database and server organization, multiplayer networking, physics, sound, or game engine performance? Want to help build a game to help other people learn what you are good at? We have a lot to do and if you are an experienced programmer and want to develop for CodeCombat, this class is for you. We would love your help building the best programming game ever." # archmage_introduction: "One of the best parts about building games is they synthesize so many different things. Graphics, sound, real-time networking, social networking, and of course many of the more common aspects of programming, from low-level database management, and server administration to user facing design and interface building. There's a lot to do, and if you're an experienced programmer with a hankering to really dive into the nitty-gritty of CodeCombat, this class might be for you. We would love to have your help building the best programming game ever." # class_attributes: "Class Attributes" # archmage_attribute_1_pref: "Knowledge in " @@ -364,10 +365,12 @@ module.exports = nativeDescription: "język polski", englishDescription: "Polish # join_desc_4: "and we'll go from there!" # join_url_email: "Email us" # join_url_hipchat: "public HipChat room" -# more_about_archmage: "Learn More About Becoming A Powerful Archmage" +# more_about_archmage: "Learn More About Becoming an Archmage" # archmage_subscribe_desc: "Get emails on new coding opportunities and announcements." +# artisan_summary_pref: "Want to design levels and expand CodeCombat's arsenal? People are playing through our content at a pace faster than we can build! Right now, our level editor is barebone, so be wary. Making levels will be a little challenging and buggy. If you have visions of campaigns spanning for-loops to" +# artisan_summary_suf: "then this class is for you." # artisan_introduction_pref: "We must construct additional levels! People be clamoring for more content, and we can only build so many ourselves. Right now your workstation is level one; our level editor is barely usable even by its creators, so be wary. If you have visions of campaigns spanning for-loops to" -# artisan_introduction_suf: "to then this class might be for you." +# artisan_introduction_suf: "then this class might be for you." # artisan_attribute_1: "Any experience in building content like this would be nice, such as using Blizzard's level editors. But not required!" # artisan_attribute_2: "A hankering to do a whole lot of testing and iteration. To make good levels, you need to take it to others and watch them play it, and be prepared to find a lot of things to fix." # artisan_attribute_3: "For the time being, endurance en par with an Adventurer. Our Level Editor is super preliminary and frustrating to use. You have been warned!" @@ -376,24 +379,28 @@ module.exports = nativeDescription: "język polski", englishDescription: "Polish # artisan_join_step2: "Create a new level and explore existing levels." # artisan_join_step3: "Find us in our public HipChat room for help." # artisan_join_step4: "Post your levels on the forum for feedback." -# more_about_artisan: "Learn More About Becoming A Creative Artisan" +# more_about_artisan: "Learn More About Becoming an Artisan" # artisan_subscribe_desc: "Get emails on level editor updates and announcements." +# adventurer_sumamry: "Let us be clear about your role: you are the tank. You are going to take heavy damage. We need people to try out brand-new levels and help identify how to make things better. The pain will be enormous; making good games is a long process and no one gets it right the first time. If you can endure and have a high constitution score, then this class is for you." # adventurer_introduction: "Let's be clear about your role: you are the tank. You're going to take heavy damage. We need people to try out brand-new levels and help identify how to make things better. The pain will be enormous; making good games is a long process and no one gets it right the first time. If you can endure and have a high constitution score, then this class might be for you." # adventurer_attribute_1: "A thirst for learning. You want to learn how to code and we want to teach you how to code. You'll probably be doing most of the teaching in this case, though." # adventurer_attribute_2: "Charismatic. Be gentle but articulate about what needs improving, and offer suggestions on how to improve." # adventurer_join_pref: "Either get together with (or recruit!) an Artisan and work with them, or check the box below to receive emails when there are new levels to test. We'll also be posting about levels to review on our networks like" # adventurer_forum_url: "our forum" # adventurer_join_suf: "so if you prefer to be notified those ways, sign up there!" -# more_about_adventurer: "Learn More About Becoming A Brave Adventurer" +# more_about_adventurer: "Learn More About Becoming an Adventurer" # adventurer_subscribe_desc: "Get emails when there are new levels to test." +# scribe_summary_pref: "CodeCombat is not just going to be a bunch of levels. It will also be a resource of programming knowledge that players can hook into. That way, each Artisan can link to a detailed article that for the player's edification: documentation akin to what the " +# scribe_summary_sufx: " has built. If you enjoy explaining programming concepts, then this class is for you." # scribe_introduction_pref: "CodeCombat isn't just going to be a bunch of levels. It will also include a resource for knowledge, a wiki of programming concepts that levels can hook into. That way rather than each Artisan having to describe in detail what a comparison operator is, they can simply link their level to the Article describing them that is already written for the player's edification. Something along the lines of what the " # scribe_introduction_url_mozilla: "Mozilla Developer Network" # scribe_introduction_suf: " has built. If your idea of fun is articulating the concepts of programming in Markdown form, then this class might be for you." # scribe_attribute_1: "Skill in words is pretty much all you need. Not only grammar and spelling, but able to convey complicated ideas to others." # contact_us_url: "Contact us" # scribe_join_description: "tell us a little about yourself, your experience with programming and what sort of things you'd like to write about. We'll go from there!" -# more_about_scribe: "Learn More About Becoming A Diligent Scribe" +# more_about_scribe: "Learn More About Becoming a Scribe" # scribe_subscribe_desc: "Get emails about article writing announcements." +# diplomat_summary: "There is a large interest in CodeCombat in other countries that do not speak English! We are looking for translators who are willing to spend their time translating the site's corpus of words so that CodeCombat is accessible across the world as soon as possible. If you'd like to help getting CodeCombat international, then this class is for you." # diplomat_introduction_pref: "So, if there's one thing we learned from the " # diplomat_launch_url: "launch in October" # diplomat_introduction_suf: "it's that there is sizeable interest in CodeCombat in other countries, particularly Brazil! We're building a corps of translators eager to turn one set of words into another set of words to get CodeCombat as accessible across the world as possible. If you like getting sneak peeks at upcoming content and getting these levels to your fellow nationals ASAP, then this class might be for you." @@ -401,21 +408,23 @@ module.exports = nativeDescription: "język polski", englishDescription: "Polish # diplomat_join_pref: "We've started a lot of initial translations at " # diplomat_doc_url: "this forum post" # diplomat_join_suf: "so check it out and add things for your language. Also, check this box below to keep up-to-date on new internationalization developments!" -# more_about_diplomat: "Learn More About Becoming A Great Diplomat" +# more_about_diplomat: "Learn More About Becoming a Diplomat" # diplomat_subscribe_desc: "Get emails about i18n developments and levels to translate." +# ambassador_summary: "We are trying to build a community, and every community needs a support team when there are troubles. We have got chats, emails, and social networks so that our users can get acquainted with the game. If you want to help people get involved, have fun, and learn some programming, then this class is for you." # ambassador_introduction: "This is a community we're building, and you are the connections. We've got Olark chats, emails, and social networks with lots of people to talk with and help get acquainted with the game and learn from. If you want to help people get involved and have fun, and get a good feel of the pulse of CodeCombat and where we're going, then this class might be for you." # ambassador_attribute_1: "Communication skills. Be able to identify the problems players are having and help them solve them. Also, keep the rest of us informed about what players are saying, what they like and don't like and want more of!" # ambassador_join_desc: "tell us a little about yourself, what you've done and what you'd be interested in doing. We'll go from there!" # ambassador_join_note_strong: "Note" # ambassador_join_note_desc: "One of our top priorities is to build multiplayer where players having difficulty solving levels can summon higher level wizards to help them. This will be a great way for ambassadors to do their thing. We'll keep you posted!" -# more_about_ambassador: "Learn More About Becoming A Helpful Ambassador" +# more_about_ambassador: "Learn More About Becoming an Ambassador" # ambassador_subscribe_desc: "Get emails on support updates and multiplayer developments." +# counselor_summary: "None of the above roles fit what you are interested in? Do not worry, we are on the lookout for anybody who wants a hand in the development of CodeCombat! If you are interested in teaching, game development, open source management, or anything else that you think will be relevant to us, then this class is for you." # counselor_introduction_1: "Do you have life experience? A different perspective on things that can help us decide how to shape CodeCombat? Of all these roles, this will probably take the least time, but individually you may make the most difference. We're on the lookout for wisened sages, particularly in areas like: teaching, game development, open source project management, technical recruiting, entrepreneurship, or design." # counselor_introduction_2: "Or really anything that is relevant to the development of CodeCombat. If you have knowledge and want to share it to help grow this project, then this class might be for you." # counselor_attribute_1: "Experience, in any of the areas above or something you think might be helpful." # counselor_attribute_2: "A little bit of free time!" # counselor_join_desc: "tell us a little about yourself, what you've done and what you'd be interested in doing. We'll put you in our contact list and be in touch when we could use advice (not too often)." -# more_about_counselor: "Learn More About Becoming A Valuable Counselor" +# more_about_counselor: "Learn More About Becoming a Counselor" # changes_auto_save: "Changes are saved automatically when you toggle checkboxes." # diligent_scribes: "Our Diligent Scribes:" # powerful_archmages: "Our Powerful Archmages:" diff --git a/app/locale/pt-BR.coffee b/app/locale/pt-BR.coffee index db3be22a5..5cdbac76c 100644 --- a/app/locale/pt-BR.coffee +++ b/app/locale/pt-BR.coffee @@ -245,7 +245,6 @@ module.exports = nativeDescription: "português do Brasil", englishDescription: general: and: "e" - or: "ou" name: "Nome" body: "Principal" version: "Versão" @@ -253,6 +252,7 @@ module.exports = nativeDescription: "português do Brasil", englishDescription: version_history_for: "Histórico de Versão para: " results: "Resultados" description: "Descrição" + or: "ou" email: "Email" message: "Mensagem" @@ -278,7 +278,6 @@ module.exports = nativeDescription: "português do Brasil", englishDescription: jeremy_description: "Mago em suporte ao consumidor, testador de usabilidade, e organizador da comunidade; você provavelmente já falou com o Jeremy." michael_description: "Programador, administrador de sistemas, e um técnico prodígio não graduado, Michael é a pessoa que mantém os servidores funcionando." - legal: page_title: "Jurídico" opensource_intro: "CodeCombat é grátis para jogar e de código completamente aberto." @@ -353,6 +352,7 @@ module.exports = nativeDescription: "português do Brasil", englishDescription: alert_account_message_pref: "Para se inscrever para os emails de classe, você vai precisar, " alert_account_message_suf: "primeiro." alert_account_message_create_url: "criar uma conta" +# archmage_summary: "Interested in working on game graphics, user interface design, database and server organization, multiplayer networking, physics, sound, or game engine performance? Want to help build a game to help other people learn what you are good at? We have a lot to do and if you are an experienced programmer and want to develop for CodeCombat, this class is for you. We would love your help building the best programming game ever." archmage_introduction: "Uma das melhores partes sobre a construção de jogos é que eles sintetizam diversas coisas diferentes. Gráficos, som, interação em tempo real, redes sociais, e, claro, muitos dos aspectos mais comuns da programação, desde a gestão em baixo nível de banco de dados, e administração do servidor até interação com o usuário e desenvolvimento da interface. Há muito a fazer, e se você é um programador experiente com um desejo ardente de realmente mergulhar no âmago da questão do CodeCombat, esta classe pode ser para você. Nós gostaríamos de ter sua ajuda para construir o melhor jogo de programação de todos os tempos." class_attributes: "Atributos da Classe" archmage_attribute_1_pref: "Conhecimento em " @@ -367,6 +367,8 @@ module.exports = nativeDescription: "português do Brasil", englishDescription: join_url_hipchat: "Sala de bate-papo pública no HipChat" more_about_archmage: "Saiba Mais Sobre Como Se Tornar Um Poderoso Arquimago" archmage_subscribe_desc: "Receba email sobre novas oportunidades para codificar e anúncios." +# artisan_summary_pref: "Want to design levels and expand CodeCombat's arsenal? People are playing through our content at a pace faster than we can build! Right now, our level editor is barebone, so be wary. Making levels will be a little challenging and buggy. If you have visions of campaigns spanning for-loops to" +# artisan_summary_suf: "then this class is for you." artisan_introduction_pref: "Nós devemos contruir níveis adicionais! Pessoas estão clamando por mais conteúdo, e só podemos contruir tantos de nós mesmos. Agora sua estação de trabalho é o nível um; nosso Editor de Níveis é pouco utilizável até mesmo para seus criadores, então fique esperto. Se você tem visões de campanhas abrangendo for-loops para" artisan_introduction_suf: "para, em seguida, esta classe pode ser para você." artisan_attribute_1: "Qualquer experiência em construir conteúdo como esse seria legal, como usando os editores de nível da Blizzard. Mas não é obrigatório!" @@ -379,6 +381,7 @@ module.exports = nativeDescription: "português do Brasil", englishDescription: artisan_join_step4: "Publique seus níveis no fórum para avaliação." more_about_artisan: "Saiba Mais Sobre Como Se Tornar Um Artesão Criativo" artisan_subscribe_desc: "Receba emails com novidades sobre o editor de níveis e anúncios." +# adventurer_sumamry: "Let us be clear about your role: you are the tank. You are going to take heavy damage. We need people to try out brand-new levels and help identify how to make things better. The pain will be enormous; making good games is a long process and no one gets it right the first time. If you can endure and have a high constitution score, then this class is for you." adventurer_introduction: "Vamos ser claros sobre o seu papel: você é o tanque. Você vai tomar dano pesado. Precisamos de pessoas para experimentar níveis inéditos e ajudar a identificar como fazer as coisas melhorarem. A dor será enorme, fazer bons jogos é um processo longo e ninguém acerta na primeira vez. Se você pode suportar e ter uma alta pontuação de constituição, então esta classe pode ser para você." adventurer_attribute_1: "Sede de aprendizado. Você quer aprender a codificar e nós queremos ensiná-lo a codificar. Você provavelmente vai fazer a maior parte do ensino neste caso." adventurer_attribute_2: "Carismático. Seja gentil, mas articulado sobre o que precisa melhorar, e ofereça sugestões sobre como melhorar." @@ -387,6 +390,8 @@ module.exports = nativeDescription: "português do Brasil", englishDescription: adventurer_join_suf: "então se você prefere ser notificado dessas formas, inscreva-se lá!" more_about_adventurer: "Saiba Mais Sobre Como Se Tornar Um Valente Aventureiro" adventurer_subscribe_desc: "Receba emails quando houver novos níveis para testar." +# scribe_summary_pref: "CodeCombat is not just going to be a bunch of levels. It will also be a resource of programming knowledge that players can hook into. That way, each Artisan can link to a detailed article that for the player's edification: documentation akin to what the " +# scribe_summary_sufx: " has built. If you enjoy explaining programming concepts, then this class is for you." scribe_introduction_pref: "O CodeCombat não será apenas um monte de níveis. Ele também irá incluir uma fonte de conhecimento, um wiki de conceitos de programação que os níveis podem se basear. Dessa forma, em vez de cada Artesão ter que descrever em detalhes o que é um operador de comparação, eles podem simplesmente criar um link para o artigo que o descreve. Algo na linha do que a " scribe_introduction_url_mozilla: "Mozilla Developer Network" scribe_introduction_suf: " construiu. Se a sua idéia de diversão é articular os conceitos de programação em Markdown, então esta classe pode ser para você." @@ -395,6 +400,7 @@ module.exports = nativeDescription: "português do Brasil", englishDescription: scribe_join_description: "conte-nos um pouco sobre você, sua experiência com programação e que tipo de coisas você gostaria de escrever sobre. Nós começaremos a partir disso!" more_about_scribe: "Saiba Mais Sobre Como Se Tornar Um Escriba Aplicado" scribe_subscribe_desc: "Receba email sobre anúncios de escrita de artigos." +# diplomat_summary: "There is a large interest in CodeCombat in other countries that do not speak English! We are looking for translators who are willing to spend their time translating the site's corpus of words so that CodeCombat is accessible across the world as soon as possible. If you'd like to help getting CodeCombat international, then this class is for you." diplomat_introduction_pref: "Então, se há uma coisa que aprendemos com o " diplomat_launch_url: "lançamento em Outubro" diplomat_introduction_suf: "é que há um interesse considerável no CodeCombat em outros países, especialmente no Brasil! Estamos construindo um corpo de tradutores ansiosos para transformar um conjunto de palavras em outro conjunto de palavras para tornar o CodeCombat tão acessível em todo o mundo quanto for possível. Se você gosta de obter cenas inéditas do próximo conteúdo e obter esses níveis para os seus compatriotas o mais rápido possível, então esta classe pode ser para você." @@ -404,6 +410,7 @@ module.exports = nativeDescription: "português do Brasil", englishDescription: diplomat_join_suf: "então confira a publicação e comece a adicionar coisas para o seu idioma. Além disso, marque a caixa abaixo para se manter atualizado sobre os novos desenvolvimentos da internacionalização!" more_about_diplomat: "Saiba Mais Sobre Como Se Tornar Um Ótimo Diplomata" diplomat_subscribe_desc: "Receba emails sobre o desenvolvimento da i18n e níveis para traduzir." +# ambassador_summary: "We are trying to build a community, and every community needs a support team when there are troubles. We have got chats, emails, and social networks so that our users can get acquainted with the game. If you want to help people get involved, have fun, and learn some programming, then this class is for you." ambassador_introduction: "Esta é uma comunidade que estamos construindo, e vocês são as conexões. Temos chats Olark, emails e redes sociais com muitas pessoas para conversar e ajudar a se familiarizar com o jogo e aprender. Se você quer ajudar as pessoas a se envolver e se divertir, e ter uma boa noção da pulsação do CodeCombat e para onde estamos indo em seguida, esta classe pode ser para você." ambassador_attribute_1: "Habilidades de comunicação. Ser capaz de identificar os problemas que os jogadores estão tendo e ajudar a resolvê-los, Além disso, manter o resto de nós informados sobre o que os jogadores estão dizendo, o que gostam e não gostam e do que querem mais!" ambassador_join_desc: "conte-nos um pouco sobre você, o que você fez e o que você estaria interessado em fazer. Nós começaremos a partir disso!" @@ -411,6 +418,7 @@ module.exports = nativeDescription: "português do Brasil", englishDescription: ambassador_join_note_desc: "Uma das nossas principais prioridades é a construção de um multiplayer onde os jogadores que estão com dificuldade para resolver um nível podem invocar feitiçeiros com nível mais alto para ajudá-los. Esta será uma ótima maneira para os embaixadores fazerem suas tarefas. Vamos mantê-lo informado!" more_about_ambassador: "Saiba Mais Sobre Como Se Tornar Um Embaixador Prestativo" ambassador_subscribe_desc: "Receba emails sobre atualização do suporte e desenvolvimento do multiplayer." +# counselor_summary: "None of the above roles fit what you are interested in? Do not worry, we are on the lookout for anybody who wants a hand in the development of CodeCombat! If you are interested in teaching, game development, open source management, or anything else that you think will be relevant to us, then this class is for you." counselor_introduction_1: "Você tem experiência de vida? Uma perspectiva diferente sobre as coisas podem nos ajudar a decidir como moldar o CodeCombat? De todos os papéis, este provavelmente vai demorar menos tempo, mas individualmente você pode fazer mais diferença. Estamos à procura de sábios, particularmente em áreas como: ensino, desenvolvimento de jogos, gerenciamente de projetos de código aberto, recrutamento técnico, empreendedorismo ou design." counselor_introduction_2: "Ou realmente tudo o que é relevante para o desenvolvimento do CodeCombat. Se você tem conhecimento e quer compartilhá-lo para ajudar este projeto a crescer, esta classe pode ser para você." counselor_attribute_1: "Experiência, em qualquer uma das áreas acima ou alguma coisa que você pense ser útil." diff --git a/app/locale/pt-PT.coffee b/app/locale/pt-PT.coffee index 836669a2f..8eda4d45c 100644 --- a/app/locale/pt-PT.coffee +++ b/app/locale/pt-PT.coffee @@ -136,7 +136,7 @@ module.exports = nativeDescription: "Português europeu", englishDescription: "P account_profile: edit_settings: "Editar Definições" profile_for_prefix: "Perfil de " - profile_for_suffix: "" +# profile_for_suffix: "" profile: "Perfil" user_not_found: "Nenhum utilizador encontrado. Verifica o URL?" gravatar_not_found_mine: "Não conseguimos encontrar o teu perfil associado com:" @@ -164,7 +164,7 @@ module.exports = nativeDescription: "Português europeu", englishDescription: "P 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" - victory_title_prefix: "" +# 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!" @@ -245,7 +245,6 @@ module.exports = nativeDescription: "Português europeu", englishDescription: "P general: and: "e" - or: "ou" name: "Nome" body: "Corpo" version: "Versão" @@ -253,6 +252,7 @@ module.exports = nativeDescription: "Português europeu", englishDescription: "P version_history_for: "Histórico de versões por: " results: "Resultados" description: "Descrição" + or: "ou" email: "E-mail" message: "Mensagem" @@ -352,6 +352,7 @@ module.exports = nativeDescription: "Português europeu", englishDescription: "P # alert_account_message_pref: "To subscribe for class emails, you'll need to " # alert_account_message_suf: "first." # alert_account_message_create_url: "create an account" +# archmage_summary: "Interested in working on game graphics, user interface design, database and server organization, multiplayer networking, physics, sound, or game engine performance? Want to help build a game to help other people learn what you are good at? We have a lot to do and if you are an experienced programmer and want to develop for CodeCombat, this class is for you. We would love your help building the best programming game ever." # archmage_introduction: "One of the best parts about building games is they synthesize so many different things. Graphics, sound, real-time networking, social networking, and of course many of the more common aspects of programming, from low-level database management, and server administration to user facing design and interface building. There's a lot to do, and if you're an experienced programmer with a hankering to really dive into the nitty-gritty of CodeCombat, this class might be for you. We would love to have your help building the best programming game ever." # class_attributes: "Class Attributes" # archmage_attribute_1_pref: "Knowledge in " @@ -364,10 +365,12 @@ module.exports = nativeDescription: "Português europeu", englishDescription: "P # join_desc_4: "and we'll go from there!" # join_url_email: "Email us" # join_url_hipchat: "public HipChat room" -# more_about_archmage: "Learn More About Becoming A Powerful Archmage" +# more_about_archmage: "Learn More About Becoming an Archmage" # archmage_subscribe_desc: "Get emails on new coding opportunities and announcements." +# artisan_summary_pref: "Want to design levels and expand CodeCombat's arsenal? People are playing through our content at a pace faster than we can build! Right now, our level editor is barebone, so be wary. Making levels will be a little challenging and buggy. If you have visions of campaigns spanning for-loops to" +# artisan_summary_suf: "then this class is for you." # artisan_introduction_pref: "We must construct additional levels! People be clamoring for more content, and we can only build so many ourselves. Right now your workstation is level one; our level editor is barely usable even by its creators, so be wary. If you have visions of campaigns spanning for-loops to" -# artisan_introduction_suf: "to then this class might be for you." +# artisan_introduction_suf: "then this class might be for you." # artisan_attribute_1: "Any experience in building content like this would be nice, such as using Blizzard's level editors. But not required!" # artisan_attribute_2: "A hankering to do a whole lot of testing and iteration. To make good levels, you need to take it to others and watch them play it, and be prepared to find a lot of things to fix." # artisan_attribute_3: "For the time being, endurance en par with an Adventurer. Our Level Editor is super preliminary and frustrating to use. You have been warned!" @@ -376,24 +379,28 @@ module.exports = nativeDescription: "Português europeu", englishDescription: "P # artisan_join_step2: "Create a new level and explore existing levels." # artisan_join_step3: "Find us in our public HipChat room for help." # artisan_join_step4: "Post your levels on the forum for feedback." -# more_about_artisan: "Learn More About Becoming A Creative Artisan" +# more_about_artisan: "Learn More About Becoming an Artisan" # artisan_subscribe_desc: "Get emails on level editor updates and announcements." +# adventurer_sumamry: "Let us be clear about your role: you are the tank. You are going to take heavy damage. We need people to try out brand-new levels and help identify how to make things better. The pain will be enormous; making good games is a long process and no one gets it right the first time. If you can endure and have a high constitution score, then this class is for you." # adventurer_introduction: "Let's be clear about your role: you are the tank. You're going to take heavy damage. We need people to try out brand-new levels and help identify how to make things better. The pain will be enormous; making good games is a long process and no one gets it right the first time. If you can endure and have a high constitution score, then this class might be for you." # adventurer_attribute_1: "A thirst for learning. You want to learn how to code and we want to teach you how to code. You'll probably be doing most of the teaching in this case, though." # adventurer_attribute_2: "Charismatic. Be gentle but articulate about what needs improving, and offer suggestions on how to improve." # adventurer_join_pref: "Either get together with (or recruit!) an Artisan and work with them, or check the box below to receive emails when there are new levels to test. We'll also be posting about levels to review on our networks like" # adventurer_forum_url: "our forum" # adventurer_join_suf: "so if you prefer to be notified those ways, sign up there!" -# more_about_adventurer: "Learn More About Becoming A Brave Adventurer" +# more_about_adventurer: "Learn More About Becoming an Adventurer" # adventurer_subscribe_desc: "Get emails when there are new levels to test." +# scribe_summary_pref: "CodeCombat is not just going to be a bunch of levels. It will also be a resource of programming knowledge that players can hook into. That way, each Artisan can link to a detailed article that for the player's edification: documentation akin to what the " +# scribe_summary_sufx: " has built. If you enjoy explaining programming concepts, then this class is for you." # scribe_introduction_pref: "CodeCombat isn't just going to be a bunch of levels. It will also include a resource for knowledge, a wiki of programming concepts that levels can hook into. That way rather than each Artisan having to describe in detail what a comparison operator is, they can simply link their level to the Article describing them that is already written for the player's edification. Something along the lines of what the " # scribe_introduction_url_mozilla: "Mozilla Developer Network" # scribe_introduction_suf: " has built. If your idea of fun is articulating the concepts of programming in Markdown form, then this class might be for you." # scribe_attribute_1: "Skill in words is pretty much all you need. Not only grammar and spelling, but able to convey complicated ideas to others." # contact_us_url: "Contact us" # scribe_join_description: "tell us a little about yourself, your experience with programming and what sort of things you'd like to write about. We'll go from there!" -# more_about_scribe: "Learn More About Becoming A Diligent Scribe" +# more_about_scribe: "Learn More About Becoming a Scribe" # scribe_subscribe_desc: "Get emails about article writing announcements." +# diplomat_summary: "There is a large interest in CodeCombat in other countries that do not speak English! We are looking for translators who are willing to spend their time translating the site's corpus of words so that CodeCombat is accessible across the world as soon as possible. If you'd like to help getting CodeCombat international, then this class is for you." # diplomat_introduction_pref: "So, if there's one thing we learned from the " # diplomat_launch_url: "launch in October" # diplomat_introduction_suf: "it's that there is sizeable interest in CodeCombat in other countries, particularly Brazil! We're building a corps of translators eager to turn one set of words into another set of words to get CodeCombat as accessible across the world as possible. If you like getting sneak peeks at upcoming content and getting these levels to your fellow nationals ASAP, then this class might be for you." @@ -401,21 +408,23 @@ module.exports = nativeDescription: "Português europeu", englishDescription: "P # diplomat_join_pref: "We've started a lot of initial translations at " # diplomat_doc_url: "this forum post" # diplomat_join_suf: "so check it out and add things for your language. Also, check this box below to keep up-to-date on new internationalization developments!" -# more_about_diplomat: "Learn More About Becoming A Great Diplomat" +# more_about_diplomat: "Learn More About Becoming a Diplomat" # diplomat_subscribe_desc: "Get emails about i18n developments and levels to translate." +# ambassador_summary: "We are trying to build a community, and every community needs a support team when there are troubles. We have got chats, emails, and social networks so that our users can get acquainted with the game. If you want to help people get involved, have fun, and learn some programming, then this class is for you." # ambassador_introduction: "This is a community we're building, and you are the connections. We've got Olark chats, emails, and social networks with lots of people to talk with and help get acquainted with the game and learn from. If you want to help people get involved and have fun, and get a good feel of the pulse of CodeCombat and where we're going, then this class might be for you." # ambassador_attribute_1: "Communication skills. Be able to identify the problems players are having and help them solve them. Also, keep the rest of us informed about what players are saying, what they like and don't like and want more of!" # ambassador_join_desc: "tell us a little about yourself, what you've done and what you'd be interested in doing. We'll go from there!" # ambassador_join_note_strong: "Note" # ambassador_join_note_desc: "One of our top priorities is to build multiplayer where players having difficulty solving levels can summon higher level wizards to help them. This will be a great way for ambassadors to do their thing. We'll keep you posted!" -# more_about_ambassador: "Learn More About Becoming A Helpful Ambassador" +# more_about_ambassador: "Learn More About Becoming an Ambassador" # ambassador_subscribe_desc: "Get emails on support updates and multiplayer developments." +# counselor_summary: "None of the above roles fit what you are interested in? Do not worry, we are on the lookout for anybody who wants a hand in the development of CodeCombat! If you are interested in teaching, game development, open source management, or anything else that you think will be relevant to us, then this class is for you." # counselor_introduction_1: "Do you have life experience? A different perspective on things that can help us decide how to shape CodeCombat? Of all these roles, this will probably take the least time, but individually you may make the most difference. We're on the lookout for wisened sages, particularly in areas like: teaching, game development, open source project management, technical recruiting, entrepreneurship, or design." # counselor_introduction_2: "Or really anything that is relevant to the development of CodeCombat. If you have knowledge and want to share it to help grow this project, then this class might be for you." # counselor_attribute_1: "Experience, in any of the areas above or something you think might be helpful." # counselor_attribute_2: "A little bit of free time!" # counselor_join_desc: "tell us a little about yourself, what you've done and what you'd be interested in doing. We'll put you in our contact list and be in touch when we could use advice (not too often)." -# more_about_counselor: "Learn More About Becoming A Valuable Counselor" +# more_about_counselor: "Learn More About Becoming a Counselor" # changes_auto_save: "Changes are saved automatically when you toggle checkboxes." # diligent_scribes: "Our Diligent Scribes:" # powerful_archmages: "Our Powerful Archmages:" diff --git a/app/locale/pt.coffee b/app/locale/pt.coffee index 5a69f5e8b..8a0c0e652 100644 --- a/app/locale/pt.coffee +++ b/app/locale/pt.coffee @@ -245,7 +245,6 @@ module.exports = nativeDescription: "português", englishDescription: "Portugues general: # and: "and" - or: "ou" name: "Nome" # body: "Body" # version: "Version" @@ -253,6 +252,7 @@ module.exports = nativeDescription: "português", englishDescription: "Portugues # version_history_for: "Version History for: " # results: "Results" # description: "Description" + or: "ou" email: "Email" message: "Mensagem" @@ -352,6 +352,7 @@ module.exports = nativeDescription: "português", englishDescription: "Portugues # alert_account_message_pref: "To subscribe for class emails, you'll need to " # alert_account_message_suf: "first." # alert_account_message_create_url: "create an account" +# archmage_summary: "Interested in working on game graphics, user interface design, database and server organization, multiplayer networking, physics, sound, or game engine performance? Want to help build a game to help other people learn what you are good at? We have a lot to do and if you are an experienced programmer and want to develop for CodeCombat, this class is for you. We would love your help building the best programming game ever." # archmage_introduction: "One of the best parts about building games is they synthesize so many different things. Graphics, sound, real-time networking, social networking, and of course many of the more common aspects of programming, from low-level database management, and server administration to user facing design and interface building. There's a lot to do, and if you're an experienced programmer with a hankering to really dive into the nitty-gritty of CodeCombat, this class might be for you. We would love to have your help building the best programming game ever." # class_attributes: "Class Attributes" # archmage_attribute_1_pref: "Knowledge in " @@ -364,10 +365,12 @@ module.exports = nativeDescription: "português", englishDescription: "Portugues # join_desc_4: "and we'll go from there!" # join_url_email: "Email us" # join_url_hipchat: "public HipChat room" -# more_about_archmage: "Learn More About Becoming A Powerful Archmage" +# more_about_archmage: "Learn More About Becoming an Archmage" # archmage_subscribe_desc: "Get emails on new coding opportunities and announcements." +# artisan_summary_pref: "Want to design levels and expand CodeCombat's arsenal? People are playing through our content at a pace faster than we can build! Right now, our level editor is barebone, so be wary. Making levels will be a little challenging and buggy. If you have visions of campaigns spanning for-loops to" +# artisan_summary_suf: "then this class is for you." # artisan_introduction_pref: "We must construct additional levels! People be clamoring for more content, and we can only build so many ourselves. Right now your workstation is level one; our level editor is barely usable even by its creators, so be wary. If you have visions of campaigns spanning for-loops to" -# artisan_introduction_suf: "to then this class might be for you." +# artisan_introduction_suf: "then this class might be for you." # artisan_attribute_1: "Any experience in building content like this would be nice, such as using Blizzard's level editors. But not required!" # artisan_attribute_2: "A hankering to do a whole lot of testing and iteration. To make good levels, you need to take it to others and watch them play it, and be prepared to find a lot of things to fix." # artisan_attribute_3: "For the time being, endurance en par with an Adventurer. Our Level Editor is super preliminary and frustrating to use. You have been warned!" @@ -376,24 +379,28 @@ module.exports = nativeDescription: "português", englishDescription: "Portugues # artisan_join_step2: "Create a new level and explore existing levels." # artisan_join_step3: "Find us in our public HipChat room for help." # artisan_join_step4: "Post your levels on the forum for feedback." -# more_about_artisan: "Learn More About Becoming A Creative Artisan" +# more_about_artisan: "Learn More About Becoming an Artisan" # artisan_subscribe_desc: "Get emails on level editor updates and announcements." +# adventurer_sumamry: "Let us be clear about your role: you are the tank. You are going to take heavy damage. We need people to try out brand-new levels and help identify how to make things better. The pain will be enormous; making good games is a long process and no one gets it right the first time. If you can endure and have a high constitution score, then this class is for you." # adventurer_introduction: "Let's be clear about your role: you are the tank. You're going to take heavy damage. We need people to try out brand-new levels and help identify how to make things better. The pain will be enormous; making good games is a long process and no one gets it right the first time. If you can endure and have a high constitution score, then this class might be for you." # adventurer_attribute_1: "A thirst for learning. You want to learn how to code and we want to teach you how to code. You'll probably be doing most of the teaching in this case, though." # adventurer_attribute_2: "Charismatic. Be gentle but articulate about what needs improving, and offer suggestions on how to improve." # adventurer_join_pref: "Either get together with (or recruit!) an Artisan and work with them, or check the box below to receive emails when there are new levels to test. We'll also be posting about levels to review on our networks like" # adventurer_forum_url: "our forum" # adventurer_join_suf: "so if you prefer to be notified those ways, sign up there!" -# more_about_adventurer: "Learn More About Becoming A Brave Adventurer" +# more_about_adventurer: "Learn More About Becoming an Adventurer" # adventurer_subscribe_desc: "Get emails when there are new levels to test." +# scribe_summary_pref: "CodeCombat is not just going to be a bunch of levels. It will also be a resource of programming knowledge that players can hook into. That way, each Artisan can link to a detailed article that for the player's edification: documentation akin to what the " +# scribe_summary_sufx: " has built. If you enjoy explaining programming concepts, then this class is for you." # scribe_introduction_pref: "CodeCombat isn't just going to be a bunch of levels. It will also include a resource for knowledge, a wiki of programming concepts that levels can hook into. That way rather than each Artisan having to describe in detail what a comparison operator is, they can simply link their level to the Article describing them that is already written for the player's edification. Something along the lines of what the " # scribe_introduction_url_mozilla: "Mozilla Developer Network" # scribe_introduction_suf: " has built. If your idea of fun is articulating the concepts of programming in Markdown form, then this class might be for you." # scribe_attribute_1: "Skill in words is pretty much all you need. Not only grammar and spelling, but able to convey complicated ideas to others." # contact_us_url: "Contact us" # scribe_join_description: "tell us a little about yourself, your experience with programming and what sort of things you'd like to write about. We'll go from there!" -# more_about_scribe: "Learn More About Becoming A Diligent Scribe" +# more_about_scribe: "Learn More About Becoming a Scribe" # scribe_subscribe_desc: "Get emails about article writing announcements." +# diplomat_summary: "There is a large interest in CodeCombat in other countries that do not speak English! We are looking for translators who are willing to spend their time translating the site's corpus of words so that CodeCombat is accessible across the world as soon as possible. If you'd like to help getting CodeCombat international, then this class is for you." # diplomat_introduction_pref: "So, if there's one thing we learned from the " # diplomat_launch_url: "launch in October" # diplomat_introduction_suf: "it's that there is sizeable interest in CodeCombat in other countries, particularly Brazil! We're building a corps of translators eager to turn one set of words into another set of words to get CodeCombat as accessible across the world as possible. If you like getting sneak peeks at upcoming content and getting these levels to your fellow nationals ASAP, then this class might be for you." @@ -401,21 +408,23 @@ module.exports = nativeDescription: "português", englishDescription: "Portugues # diplomat_join_pref: "We've started a lot of initial translations at " # diplomat_doc_url: "this forum post" # diplomat_join_suf: "so check it out and add things for your language. Also, check this box below to keep up-to-date on new internationalization developments!" -# more_about_diplomat: "Learn More About Becoming A Great Diplomat" +# more_about_diplomat: "Learn More About Becoming a Diplomat" # diplomat_subscribe_desc: "Get emails about i18n developments and levels to translate." +# ambassador_summary: "We are trying to build a community, and every community needs a support team when there are troubles. We have got chats, emails, and social networks so that our users can get acquainted with the game. If you want to help people get involved, have fun, and learn some programming, then this class is for you." # ambassador_introduction: "This is a community we're building, and you are the connections. We've got Olark chats, emails, and social networks with lots of people to talk with and help get acquainted with the game and learn from. If you want to help people get involved and have fun, and get a good feel of the pulse of CodeCombat and where we're going, then this class might be for you." # ambassador_attribute_1: "Communication skills. Be able to identify the problems players are having and help them solve them. Also, keep the rest of us informed about what players are saying, what they like and don't like and want more of!" # ambassador_join_desc: "tell us a little about yourself, what you've done and what you'd be interested in doing. We'll go from there!" # ambassador_join_note_strong: "Note" # ambassador_join_note_desc: "One of our top priorities is to build multiplayer where players having difficulty solving levels can summon higher level wizards to help them. This will be a great way for ambassadors to do their thing. We'll keep you posted!" -# more_about_ambassador: "Learn More About Becoming A Helpful Ambassador" +# more_about_ambassador: "Learn More About Becoming an Ambassador" # ambassador_subscribe_desc: "Get emails on support updates and multiplayer developments." +# counselor_summary: "None of the above roles fit what you are interested in? Do not worry, we are on the lookout for anybody who wants a hand in the development of CodeCombat! If you are interested in teaching, game development, open source management, or anything else that you think will be relevant to us, then this class is for you." # counselor_introduction_1: "Do you have life experience? A different perspective on things that can help us decide how to shape CodeCombat? Of all these roles, this will probably take the least time, but individually you may make the most difference. We're on the lookout for wisened sages, particularly in areas like: teaching, game development, open source project management, technical recruiting, entrepreneurship, or design." # counselor_introduction_2: "Or really anything that is relevant to the development of CodeCombat. If you have knowledge and want to share it to help grow this project, then this class might be for you." # counselor_attribute_1: "Experience, in any of the areas above or something you think might be helpful." # counselor_attribute_2: "A little bit of free time!" # counselor_join_desc: "tell us a little about yourself, what you've done and what you'd be interested in doing. We'll put you in our contact list and be in touch when we could use advice (not too often)." -# more_about_counselor: "Learn More About Becoming A Valuable Counselor" +# more_about_counselor: "Learn More About Becoming a Counselor" # changes_auto_save: "Changes are saved automatically when you toggle checkboxes." # diligent_scribes: "Our Diligent Scribes:" # powerful_archmages: "Our Powerful Archmages:" diff --git a/app/locale/ro.coffee b/app/locale/ro.coffee index 53700ee87..8777e9825 100644 --- a/app/locale/ro.coffee +++ b/app/locale/ro.coffee @@ -352,6 +352,7 @@ module.exports = nativeDescription: "limba română", englishDescription: "Roman # alert_account_message_pref: "To subscribe for class emails, you'll need to " # alert_account_message_suf: "first." # alert_account_message_create_url: "create an account" +# archmage_summary: "Interested in working on game graphics, user interface design, database and server organization, multiplayer networking, physics, sound, or game engine performance? Want to help build a game to help other people learn what you are good at? We have a lot to do and if you are an experienced programmer and want to develop for CodeCombat, this class is for you. We would love your help building the best programming game ever." # archmage_introduction: "One of the best parts about building games is they synthesize so many different things. Graphics, sound, real-time networking, social networking, and of course many of the more common aspects of programming, from low-level database management, and server administration to user facing design and interface building. There's a lot to do, and if you're an experienced programmer with a hankering to really dive into the nitty-gritty of CodeCombat, this class might be for you. We would love to have your help building the best programming game ever." # class_attributes: "Class Attributes" # archmage_attribute_1_pref: "Knowledge in " @@ -364,10 +365,12 @@ module.exports = nativeDescription: "limba română", englishDescription: "Roman # join_desc_4: "and we'll go from there!" # join_url_email: "Email us" # join_url_hipchat: "public HipChat room" -# more_about_archmage: "Learn More About Becoming A Powerful Archmage" +# more_about_archmage: "Learn More About Becoming an Archmage" # archmage_subscribe_desc: "Get emails on new coding opportunities and announcements." +# artisan_summary_pref: "Want to design levels and expand CodeCombat's arsenal? People are playing through our content at a pace faster than we can build! Right now, our level editor is barebone, so be wary. Making levels will be a little challenging and buggy. If you have visions of campaigns spanning for-loops to" +# artisan_summary_suf: "then this class is for you." # artisan_introduction_pref: "We must construct additional levels! People be clamoring for more content, and we can only build so many ourselves. Right now your workstation is level one; our level editor is barely usable even by its creators, so be wary. If you have visions of campaigns spanning for-loops to" -# artisan_introduction_suf: "to then this class might be for you." +# artisan_introduction_suf: "then this class might be for you." # artisan_attribute_1: "Any experience in building content like this would be nice, such as using Blizzard's level editors. But not required!" # artisan_attribute_2: "A hankering to do a whole lot of testing and iteration. To make good levels, you need to take it to others and watch them play it, and be prepared to find a lot of things to fix." # artisan_attribute_3: "For the time being, endurance en par with an Adventurer. Our Level Editor is super preliminary and frustrating to use. You have been warned!" @@ -376,24 +379,28 @@ module.exports = nativeDescription: "limba română", englishDescription: "Roman # artisan_join_step2: "Create a new level and explore existing levels." # artisan_join_step3: "Find us in our public HipChat room for help." # artisan_join_step4: "Post your levels on the forum for feedback." -# more_about_artisan: "Learn More About Becoming A Creative Artisan" +# more_about_artisan: "Learn More About Becoming an Artisan" # artisan_subscribe_desc: "Get emails on level editor updates and announcements." +# adventurer_sumamry: "Let us be clear about your role: you are the tank. You are going to take heavy damage. We need people to try out brand-new levels and help identify how to make things better. The pain will be enormous; making good games is a long process and no one gets it right the first time. If you can endure and have a high constitution score, then this class is for you." # adventurer_introduction: "Let's be clear about your role: you are the tank. You're going to take heavy damage. We need people to try out brand-new levels and help identify how to make things better. The pain will be enormous; making good games is a long process and no one gets it right the first time. If you can endure and have a high constitution score, then this class might be for you." # adventurer_attribute_1: "A thirst for learning. You want to learn how to code and we want to teach you how to code. You'll probably be doing most of the teaching in this case, though." # adventurer_attribute_2: "Charismatic. Be gentle but articulate about what needs improving, and offer suggestions on how to improve." # adventurer_join_pref: "Either get together with (or recruit!) an Artisan and work with them, or check the box below to receive emails when there are new levels to test. We'll also be posting about levels to review on our networks like" # adventurer_forum_url: "our forum" # adventurer_join_suf: "so if you prefer to be notified those ways, sign up there!" -# more_about_adventurer: "Learn More About Becoming A Brave Adventurer" +# more_about_adventurer: "Learn More About Becoming an Adventurer" # adventurer_subscribe_desc: "Get emails when there are new levels to test." +# scribe_summary_pref: "CodeCombat is not just going to be a bunch of levels. It will also be a resource of programming knowledge that players can hook into. That way, each Artisan can link to a detailed article that for the player's edification: documentation akin to what the " +# scribe_summary_sufx: " has built. If you enjoy explaining programming concepts, then this class is for you." # scribe_introduction_pref: "CodeCombat isn't just going to be a bunch of levels. It will also include a resource for knowledge, a wiki of programming concepts that levels can hook into. That way rather than each Artisan having to describe in detail what a comparison operator is, they can simply link their level to the Article describing them that is already written for the player's edification. Something along the lines of what the " # scribe_introduction_url_mozilla: "Mozilla Developer Network" # scribe_introduction_suf: " has built. If your idea of fun is articulating the concepts of programming in Markdown form, then this class might be for you." # scribe_attribute_1: "Skill in words is pretty much all you need. Not only grammar and spelling, but able to convey complicated ideas to others." # contact_us_url: "Contact us" # scribe_join_description: "tell us a little about yourself, your experience with programming and what sort of things you'd like to write about. We'll go from there!" -# more_about_scribe: "Learn More About Becoming A Diligent Scribe" +# more_about_scribe: "Learn More About Becoming a Scribe" # scribe_subscribe_desc: "Get emails about article writing announcements." +# diplomat_summary: "There is a large interest in CodeCombat in other countries that do not speak English! We are looking for translators who are willing to spend their time translating the site's corpus of words so that CodeCombat is accessible across the world as soon as possible. If you'd like to help getting CodeCombat international, then this class is for you." # diplomat_introduction_pref: "So, if there's one thing we learned from the " # diplomat_launch_url: "launch in October" # diplomat_introduction_suf: "it's that there is sizeable interest in CodeCombat in other countries, particularly Brazil! We're building a corps of translators eager to turn one set of words into another set of words to get CodeCombat as accessible across the world as possible. If you like getting sneak peeks at upcoming content and getting these levels to your fellow nationals ASAP, then this class might be for you." @@ -401,21 +408,23 @@ module.exports = nativeDescription: "limba română", englishDescription: "Roman # diplomat_join_pref: "We've started a lot of initial translations at " # diplomat_doc_url: "this forum post" # diplomat_join_suf: "so check it out and add things for your language. Also, check this box below to keep up-to-date on new internationalization developments!" -# more_about_diplomat: "Learn More About Becoming A Great Diplomat" +# more_about_diplomat: "Learn More About Becoming a Diplomat" # diplomat_subscribe_desc: "Get emails about i18n developments and levels to translate." +# ambassador_summary: "We are trying to build a community, and every community needs a support team when there are troubles. We have got chats, emails, and social networks so that our users can get acquainted with the game. If you want to help people get involved, have fun, and learn some programming, then this class is for you." # ambassador_introduction: "This is a community we're building, and you are the connections. We've got Olark chats, emails, and social networks with lots of people to talk with and help get acquainted with the game and learn from. If you want to help people get involved and have fun, and get a good feel of the pulse of CodeCombat and where we're going, then this class might be for you." # ambassador_attribute_1: "Communication skills. Be able to identify the problems players are having and help them solve them. Also, keep the rest of us informed about what players are saying, what they like and don't like and want more of!" # ambassador_join_desc: "tell us a little about yourself, what you've done and what you'd be interested in doing. We'll go from there!" # ambassador_join_note_strong: "Note" # ambassador_join_note_desc: "One of our top priorities is to build multiplayer where players having difficulty solving levels can summon higher level wizards to help them. This will be a great way for ambassadors to do their thing. We'll keep you posted!" -# more_about_ambassador: "Learn More About Becoming A Helpful Ambassador" +# more_about_ambassador: "Learn More About Becoming an Ambassador" # ambassador_subscribe_desc: "Get emails on support updates and multiplayer developments." +# counselor_summary: "None of the above roles fit what you are interested in? Do not worry, we are on the lookout for anybody who wants a hand in the development of CodeCombat! If you are interested in teaching, game development, open source management, or anything else that you think will be relevant to us, then this class is for you." # counselor_introduction_1: "Do you have life experience? A different perspective on things that can help us decide how to shape CodeCombat? Of all these roles, this will probably take the least time, but individually you may make the most difference. We're on the lookout for wisened sages, particularly in areas like: teaching, game development, open source project management, technical recruiting, entrepreneurship, or design." # counselor_introduction_2: "Or really anything that is relevant to the development of CodeCombat. If you have knowledge and want to share it to help grow this project, then this class might be for you." # counselor_attribute_1: "Experience, in any of the areas above or something you think might be helpful." # counselor_attribute_2: "A little bit of free time!" # counselor_join_desc: "tell us a little about yourself, what you've done and what you'd be interested in doing. We'll put you in our contact list and be in touch when we could use advice (not too often)." -# more_about_counselor: "Learn More About Becoming A Valuable Counselor" +# more_about_counselor: "Learn More About Becoming a Counselor" # changes_auto_save: "Changes are saved automatically when you toggle checkboxes." # diligent_scribes: "Our Diligent Scribes:" # powerful_archmages: "Our Powerful Archmages:" diff --git a/app/locale/ru.coffee b/app/locale/ru.coffee index 3d5313c7c..56fca0879 100644 --- a/app/locale/ru.coffee +++ b/app/locale/ru.coffee @@ -245,7 +245,6 @@ module.exports = nativeDescription: "русский язык", englishDescriptio general: and: "и" - or: "или" name: "Имя" # body: "Body" version: "Версия" @@ -253,6 +252,7 @@ module.exports = nativeDescription: "русский язык", englishDescriptio # version_history_for: "Version History for: " results: "Результаты" description: "Описание" + or: "или" email: "Email" message: "Сообщение" @@ -352,6 +352,7 @@ module.exports = nativeDescription: "русский язык", englishDescriptio # alert_account_message_pref: "To subscribe for class emails, you'll need to " # alert_account_message_suf: "first." # alert_account_message_create_url: "create an account" +# archmage_summary: "Interested in working on game graphics, user interface design, database and server organization, multiplayer networking, physics, sound, or game engine performance? Want to help build a game to help other people learn what you are good at? We have a lot to do and if you are an experienced programmer and want to develop for CodeCombat, this class is for you. We would love your help building the best programming game ever." # archmage_introduction: "One of the best parts about building games is they synthesize so many different things. Graphics, sound, real-time networking, social networking, and of course many of the more common aspects of programming, from low-level database management, and server administration to user facing design and interface building. There's a lot to do, and if you're an experienced programmer with a hankering to really dive into the nitty-gritty of CodeCombat, this class might be for you. We would love to have your help building the best programming game ever." # class_attributes: "Class Attributes" # archmage_attribute_1_pref: "Knowledge in " @@ -364,10 +365,12 @@ module.exports = nativeDescription: "русский язык", englishDescriptio # join_desc_4: "and we'll go from there!" # join_url_email: "Email us" # join_url_hipchat: "public HipChat room" -# more_about_archmage: "Learn More About Becoming A Powerful Archmage" +# more_about_archmage: "Learn More About Becoming an Archmage" # archmage_subscribe_desc: "Get emails on new coding opportunities and announcements." +# artisan_summary_pref: "Want to design levels and expand CodeCombat's arsenal? People are playing through our content at a pace faster than we can build! Right now, our level editor is barebone, so be wary. Making levels will be a little challenging and buggy. If you have visions of campaigns spanning for-loops to" +# artisan_summary_suf: "then this class is for you." # artisan_introduction_pref: "We must construct additional levels! People be clamoring for more content, and we can only build so many ourselves. Right now your workstation is level one; our level editor is barely usable even by its creators, so be wary. If you have visions of campaigns spanning for-loops to" -# artisan_introduction_suf: "to then this class might be for you." +# artisan_introduction_suf: "then this class might be for you." # artisan_attribute_1: "Any experience in building content like this would be nice, such as using Blizzard's level editors. But not required!" # artisan_attribute_2: "A hankering to do a whole lot of testing and iteration. To make good levels, you need to take it to others and watch them play it, and be prepared to find a lot of things to fix." # artisan_attribute_3: "For the time being, endurance en par with an Adventurer. Our Level Editor is super preliminary and frustrating to use. You have been warned!" @@ -376,24 +379,28 @@ module.exports = nativeDescription: "русский язык", englishDescriptio # artisan_join_step2: "Create a new level and explore existing levels." # artisan_join_step3: "Find us in our public HipChat room for help." # artisan_join_step4: "Post your levels on the forum for feedback." -# more_about_artisan: "Learn More About Becoming A Creative Artisan" +# more_about_artisan: "Learn More About Becoming an Artisan" # artisan_subscribe_desc: "Get emails on level editor updates and announcements." +# adventurer_sumamry: "Let us be clear about your role: you are the tank. You are going to take heavy damage. We need people to try out brand-new levels and help identify how to make things better. The pain will be enormous; making good games is a long process and no one gets it right the first time. If you can endure and have a high constitution score, then this class is for you." # adventurer_introduction: "Let's be clear about your role: you are the tank. You're going to take heavy damage. We need people to try out brand-new levels and help identify how to make things better. The pain will be enormous; making good games is a long process and no one gets it right the first time. If you can endure and have a high constitution score, then this class might be for you." # adventurer_attribute_1: "A thirst for learning. You want to learn how to code and we want to teach you how to code. You'll probably be doing most of the teaching in this case, though." # adventurer_attribute_2: "Charismatic. Be gentle but articulate about what needs improving, and offer suggestions on how to improve." # adventurer_join_pref: "Either get together with (or recruit!) an Artisan and work with them, or check the box below to receive emails when there are new levels to test. We'll also be posting about levels to review on our networks like" # adventurer_forum_url: "our forum" # adventurer_join_suf: "so if you prefer to be notified those ways, sign up there!" -# more_about_adventurer: "Learn More About Becoming A Brave Adventurer" +# more_about_adventurer: "Learn More About Becoming an Adventurer" # adventurer_subscribe_desc: "Get emails when there are new levels to test." +# scribe_summary_pref: "CodeCombat is not just going to be a bunch of levels. It will also be a resource of programming knowledge that players can hook into. That way, each Artisan can link to a detailed article that for the player's edification: documentation akin to what the " +# scribe_summary_sufx: " has built. If you enjoy explaining programming concepts, then this class is for you." # scribe_introduction_pref: "CodeCombat isn't just going to be a bunch of levels. It will also include a resource for knowledge, a wiki of programming concepts that levels can hook into. That way rather than each Artisan having to describe in detail what a comparison operator is, they can simply link their level to the Article describing them that is already written for the player's edification. Something along the lines of what the " # scribe_introduction_url_mozilla: "Mozilla Developer Network" # scribe_introduction_suf: " has built. If your idea of fun is articulating the concepts of programming in Markdown form, then this class might be for you." # scribe_attribute_1: "Skill in words is pretty much all you need. Not only grammar and spelling, but able to convey complicated ideas to others." # contact_us_url: "Contact us" # scribe_join_description: "tell us a little about yourself, your experience with programming and what sort of things you'd like to write about. We'll go from there!" -# more_about_scribe: "Learn More About Becoming A Diligent Scribe" +# more_about_scribe: "Learn More About Becoming a Scribe" # scribe_subscribe_desc: "Get emails about article writing announcements." +# diplomat_summary: "There is a large interest in CodeCombat in other countries that do not speak English! We are looking for translators who are willing to spend their time translating the site's corpus of words so that CodeCombat is accessible across the world as soon as possible. If you'd like to help getting CodeCombat international, then this class is for you." # diplomat_introduction_pref: "So, if there's one thing we learned from the " # diplomat_launch_url: "launch in October" # diplomat_introduction_suf: "it's that there is sizeable interest in CodeCombat in other countries, particularly Brazil! We're building a corps of translators eager to turn one set of words into another set of words to get CodeCombat as accessible across the world as possible. If you like getting sneak peeks at upcoming content and getting these levels to your fellow nationals ASAP, then this class might be for you." @@ -401,21 +408,23 @@ module.exports = nativeDescription: "русский язык", englishDescriptio # diplomat_join_pref: "We've started a lot of initial translations at " # diplomat_doc_url: "this forum post" # diplomat_join_suf: "so check it out and add things for your language. Also, check this box below to keep up-to-date on new internationalization developments!" -# more_about_diplomat: "Learn More About Becoming A Great Diplomat" +# more_about_diplomat: "Learn More About Becoming a Diplomat" # diplomat_subscribe_desc: "Get emails about i18n developments and levels to translate." +# ambassador_summary: "We are trying to build a community, and every community needs a support team when there are troubles. We have got chats, emails, and social networks so that our users can get acquainted with the game. If you want to help people get involved, have fun, and learn some programming, then this class is for you." # ambassador_introduction: "This is a community we're building, and you are the connections. We've got Olark chats, emails, and social networks with lots of people to talk with and help get acquainted with the game and learn from. If you want to help people get involved and have fun, and get a good feel of the pulse of CodeCombat and where we're going, then this class might be for you." # ambassador_attribute_1: "Communication skills. Be able to identify the problems players are having and help them solve them. Also, keep the rest of us informed about what players are saying, what they like and don't like and want more of!" # ambassador_join_desc: "tell us a little about yourself, what you've done and what you'd be interested in doing. We'll go from there!" # ambassador_join_note_strong: "Note" # ambassador_join_note_desc: "One of our top priorities is to build multiplayer where players having difficulty solving levels can summon higher level wizards to help them. This will be a great way for ambassadors to do their thing. We'll keep you posted!" -# more_about_ambassador: "Learn More About Becoming A Helpful Ambassador" +# more_about_ambassador: "Learn More About Becoming an Ambassador" # ambassador_subscribe_desc: "Get emails on support updates and multiplayer developments." +# counselor_summary: "None of the above roles fit what you are interested in? Do not worry, we are on the lookout for anybody who wants a hand in the development of CodeCombat! If you are interested in teaching, game development, open source management, or anything else that you think will be relevant to us, then this class is for you." # counselor_introduction_1: "Do you have life experience? A different perspective on things that can help us decide how to shape CodeCombat? Of all these roles, this will probably take the least time, but individually you may make the most difference. We're on the lookout for wisened sages, particularly in areas like: teaching, game development, open source project management, technical recruiting, entrepreneurship, or design." # counselor_introduction_2: "Or really anything that is relevant to the development of CodeCombat. If you have knowledge and want to share it to help grow this project, then this class might be for you." # counselor_attribute_1: "Experience, in any of the areas above or something you think might be helpful." # counselor_attribute_2: "A little bit of free time!" # counselor_join_desc: "tell us a little about yourself, what you've done and what you'd be interested in doing. We'll put you in our contact list and be in touch when we could use advice (not too often)." -# more_about_counselor: "Learn More About Becoming A Valuable Counselor" +# more_about_counselor: "Learn More About Becoming a Counselor" # changes_auto_save: "Changes are saved automatically when you toggle checkboxes." # diligent_scribes: "Our Diligent Scribes:" # powerful_archmages: "Our Powerful Archmages:" diff --git a/app/locale/sk.coffee b/app/locale/sk.coffee index a70774af3..4de94a9a7 100644 --- a/app/locale/sk.coffee +++ b/app/locale/sk.coffee @@ -122,13 +122,13 @@ module.exports = nativeDescription: "slovenčina", englishDescription: "Slovak", # new_password_verify: "Verify" # email_subscriptions: "Email Subscriptions" # email_announcements: "Announcements" +# email_notifications_description: "Get periodic notifications for your account." # email_announcements_description: "Get emails on the latest news and developments at CodeCombat." # contributor_emails: "Contributor Class Emails" # contribute_prefix: "We're looking for people to join our party! Check out the " # contribute_page: "contribute page" # contribute_suffix: " to find out more." # email_toggle: "Toggle All" -# saving: "Saving..." # error_saving: "Error Saving" # saved: "Changes Saved" # password_mismatch: "Password does not match." @@ -245,7 +245,6 @@ module.exports = nativeDescription: "slovenčina", englishDescription: "Slovak", general: # and: "and" - or: "alebo" name: "Meno" # body: "Body" # version: "Version" @@ -253,6 +252,7 @@ module.exports = nativeDescription: "slovenčina", englishDescription: "Slovak", # version_history_for: "Version History for: " # results: "Results" # description: "Description" + or: "alebo" email: "Email" message: "Správa" @@ -352,6 +352,7 @@ module.exports = nativeDescription: "slovenčina", englishDescription: "Slovak", # alert_account_message_pref: "To subscribe for class emails, you'll need to " # alert_account_message_suf: "first." # alert_account_message_create_url: "create an account" +# archmage_summary: "Interested in working on game graphics, user interface design, database and server organization, multiplayer networking, physics, sound, or game engine performance? Want to help build a game to help other people learn what you are good at? We have a lot to do and if you are an experienced programmer and want to develop for CodeCombat, this class is for you. We would love your help building the best programming game ever." # archmage_introduction: "One of the best parts about building games is they synthesize so many different things. Graphics, sound, real-time networking, social networking, and of course many of the more common aspects of programming, from low-level database management, and server administration to user facing design and interface building. There's a lot to do, and if you're an experienced programmer with a hankering to really dive into the nitty-gritty of CodeCombat, this class might be for you. We would love to have your help building the best programming game ever." # class_attributes: "Class Attributes" # archmage_attribute_1_pref: "Knowledge in " @@ -364,10 +365,12 @@ module.exports = nativeDescription: "slovenčina", englishDescription: "Slovak", # join_desc_4: "and we'll go from there!" # join_url_email: "Email us" # join_url_hipchat: "public HipChat room" -# more_about_archmage: "Learn More About Becoming A Powerful Archmage" +# more_about_archmage: "Learn More About Becoming an Archmage" # archmage_subscribe_desc: "Get emails on new coding opportunities and announcements." +# artisan_summary_pref: "Want to design levels and expand CodeCombat's arsenal? People are playing through our content at a pace faster than we can build! Right now, our level editor is barebone, so be wary. Making levels will be a little challenging and buggy. If you have visions of campaigns spanning for-loops to" +# artisan_summary_suf: "then this class is for you." # artisan_introduction_pref: "We must construct additional levels! People be clamoring for more content, and we can only build so many ourselves. Right now your workstation is level one; our level editor is barely usable even by its creators, so be wary. If you have visions of campaigns spanning for-loops to" -# artisan_introduction_suf: "to then this class might be for you." +# artisan_introduction_suf: "then this class might be for you." # artisan_attribute_1: "Any experience in building content like this would be nice, such as using Blizzard's level editors. But not required!" # artisan_attribute_2: "A hankering to do a whole lot of testing and iteration. To make good levels, you need to take it to others and watch them play it, and be prepared to find a lot of things to fix." # artisan_attribute_3: "For the time being, endurance en par with an Adventurer. Our Level Editor is super preliminary and frustrating to use. You have been warned!" @@ -376,24 +379,28 @@ module.exports = nativeDescription: "slovenčina", englishDescription: "Slovak", # artisan_join_step2: "Create a new level and explore existing levels." # artisan_join_step3: "Find us in our public HipChat room for help." # artisan_join_step4: "Post your levels on the forum for feedback." -# more_about_artisan: "Learn More About Becoming A Creative Artisan" +# more_about_artisan: "Learn More About Becoming an Artisan" # artisan_subscribe_desc: "Get emails on level editor updates and announcements." +# adventurer_sumamry: "Let us be clear about your role: you are the tank. You are going to take heavy damage. We need people to try out brand-new levels and help identify how to make things better. The pain will be enormous; making good games is a long process and no one gets it right the first time. If you can endure and have a high constitution score, then this class is for you." # adventurer_introduction: "Let's be clear about your role: you are the tank. You're going to take heavy damage. We need people to try out brand-new levels and help identify how to make things better. The pain will be enormous; making good games is a long process and no one gets it right the first time. If you can endure and have a high constitution score, then this class might be for you." # adventurer_attribute_1: "A thirst for learning. You want to learn how to code and we want to teach you how to code. You'll probably be doing most of the teaching in this case, though." # adventurer_attribute_2: "Charismatic. Be gentle but articulate about what needs improving, and offer suggestions on how to improve." # adventurer_join_pref: "Either get together with (or recruit!) an Artisan and work with them, or check the box below to receive emails when there are new levels to test. We'll also be posting about levels to review on our networks like" # adventurer_forum_url: "our forum" # adventurer_join_suf: "so if you prefer to be notified those ways, sign up there!" -# more_about_adventurer: "Learn More About Becoming A Brave Adventurer" +# more_about_adventurer: "Learn More About Becoming an Adventurer" # adventurer_subscribe_desc: "Get emails when there are new levels to test." +# scribe_summary_pref: "CodeCombat is not just going to be a bunch of levels. It will also be a resource of programming knowledge that players can hook into. That way, each Artisan can link to a detailed article that for the player's edification: documentation akin to what the " +# scribe_summary_sufx: " has built. If you enjoy explaining programming concepts, then this class is for you." # scribe_introduction_pref: "CodeCombat isn't just going to be a bunch of levels. It will also include a resource for knowledge, a wiki of programming concepts that levels can hook into. That way rather than each Artisan having to describe in detail what a comparison operator is, they can simply link their level to the Article describing them that is already written for the player's edification. Something along the lines of what the " # scribe_introduction_url_mozilla: "Mozilla Developer Network" # scribe_introduction_suf: " has built. If your idea of fun is articulating the concepts of programming in Markdown form, then this class might be for you." # scribe_attribute_1: "Skill in words is pretty much all you need. Not only grammar and spelling, but able to convey complicated ideas to others." # contact_us_url: "Contact us" # scribe_join_description: "tell us a little about yourself, your experience with programming and what sort of things you'd like to write about. We'll go from there!" -# more_about_scribe: "Learn More About Becoming A Diligent Scribe" +# more_about_scribe: "Learn More About Becoming a Scribe" # scribe_subscribe_desc: "Get emails about article writing announcements." +# diplomat_summary: "There is a large interest in CodeCombat in other countries that do not speak English! We are looking for translators who are willing to spend their time translating the site's corpus of words so that CodeCombat is accessible across the world as soon as possible. If you'd like to help getting CodeCombat international, then this class is for you." # diplomat_introduction_pref: "So, if there's one thing we learned from the " # diplomat_launch_url: "launch in October" # diplomat_introduction_suf: "it's that there is sizeable interest in CodeCombat in other countries, particularly Brazil! We're building a corps of translators eager to turn one set of words into another set of words to get CodeCombat as accessible across the world as possible. If you like getting sneak peeks at upcoming content and getting these levels to your fellow nationals ASAP, then this class might be for you." @@ -401,21 +408,23 @@ module.exports = nativeDescription: "slovenčina", englishDescription: "Slovak", # diplomat_join_pref: "We've started a lot of initial translations at " # diplomat_doc_url: "this forum post" # diplomat_join_suf: "so check it out and add things for your language. Also, check this box below to keep up-to-date on new internationalization developments!" -# more_about_diplomat: "Learn More About Becoming A Great Diplomat" +# more_about_diplomat: "Learn More About Becoming a Diplomat" # diplomat_subscribe_desc: "Get emails about i18n developments and levels to translate." +# ambassador_summary: "We are trying to build a community, and every community needs a support team when there are troubles. We have got chats, emails, and social networks so that our users can get acquainted with the game. If you want to help people get involved, have fun, and learn some programming, then this class is for you." # ambassador_introduction: "This is a community we're building, and you are the connections. We've got Olark chats, emails, and social networks with lots of people to talk with and help get acquainted with the game and learn from. If you want to help people get involved and have fun, and get a good feel of the pulse of CodeCombat and where we're going, then this class might be for you." # ambassador_attribute_1: "Communication skills. Be able to identify the problems players are having and help them solve them. Also, keep the rest of us informed about what players are saying, what they like and don't like and want more of!" # ambassador_join_desc: "tell us a little about yourself, what you've done and what you'd be interested in doing. We'll go from there!" # ambassador_join_note_strong: "Note" # ambassador_join_note_desc: "One of our top priorities is to build multiplayer where players having difficulty solving levels can summon higher level wizards to help them. This will be a great way for ambassadors to do their thing. We'll keep you posted!" -# more_about_ambassador: "Learn More About Becoming A Helpful Ambassador" +# more_about_ambassador: "Learn More About Becoming an Ambassador" # ambassador_subscribe_desc: "Get emails on support updates and multiplayer developments." +# counselor_summary: "None of the above roles fit what you are interested in? Do not worry, we are on the lookout for anybody who wants a hand in the development of CodeCombat! If you are interested in teaching, game development, open source management, or anything else that you think will be relevant to us, then this class is for you." # counselor_introduction_1: "Do you have life experience? A different perspective on things that can help us decide how to shape CodeCombat? Of all these roles, this will probably take the least time, but individually you may make the most difference. We're on the lookout for wisened sages, particularly in areas like: teaching, game development, open source project management, technical recruiting, entrepreneurship, or design." # counselor_introduction_2: "Or really anything that is relevant to the development of CodeCombat. If you have knowledge and want to share it to help grow this project, then this class might be for you." # counselor_attribute_1: "Experience, in any of the areas above or something you think might be helpful." # counselor_attribute_2: "A little bit of free time!" # counselor_join_desc: "tell us a little about yourself, what you've done and what you'd be interested in doing. We'll put you in our contact list and be in touch when we could use advice (not too often)." -# more_about_counselor: "Learn More About Becoming A Valuable Counselor" +# more_about_counselor: "Learn More About Becoming a Counselor" # changes_auto_save: "Changes are saved automatically when you toggle checkboxes." # diligent_scribes: "Our Diligent Scribes:" # powerful_archmages: "Our Powerful Archmages:" diff --git a/app/locale/sl.coffee b/app/locale/sl.coffee index 428884d04..6e91142a3 100644 --- a/app/locale/sl.coffee +++ b/app/locale/sl.coffee @@ -352,6 +352,7 @@ module.exports = nativeDescription: "slovenščina", englishDescription: "Sloven # alert_account_message_pref: "To subscribe for class emails, you'll need to " # alert_account_message_suf: "first." # alert_account_message_create_url: "create an account" +# archmage_summary: "Interested in working on game graphics, user interface design, database and server organization, multiplayer networking, physics, sound, or game engine performance? Want to help build a game to help other people learn what you are good at? We have a lot to do and if you are an experienced programmer and want to develop for CodeCombat, this class is for you. We would love your help building the best programming game ever." # archmage_introduction: "One of the best parts about building games is they synthesize so many different things. Graphics, sound, real-time networking, social networking, and of course many of the more common aspects of programming, from low-level database management, and server administration to user facing design and interface building. There's a lot to do, and if you're an experienced programmer with a hankering to really dive into the nitty-gritty of CodeCombat, this class might be for you. We would love to have your help building the best programming game ever." # class_attributes: "Class Attributes" # archmage_attribute_1_pref: "Knowledge in " @@ -364,10 +365,12 @@ module.exports = nativeDescription: "slovenščina", englishDescription: "Sloven # join_desc_4: "and we'll go from there!" # join_url_email: "Email us" # join_url_hipchat: "public HipChat room" -# more_about_archmage: "Learn More About Becoming A Powerful Archmage" +# more_about_archmage: "Learn More About Becoming an Archmage" # archmage_subscribe_desc: "Get emails on new coding opportunities and announcements." +# artisan_summary_pref: "Want to design levels and expand CodeCombat's arsenal? People are playing through our content at a pace faster than we can build! Right now, our level editor is barebone, so be wary. Making levels will be a little challenging and buggy. If you have visions of campaigns spanning for-loops to" +# artisan_summary_suf: "then this class is for you." # artisan_introduction_pref: "We must construct additional levels! People be clamoring for more content, and we can only build so many ourselves. Right now your workstation is level one; our level editor is barely usable even by its creators, so be wary. If you have visions of campaigns spanning for-loops to" -# artisan_introduction_suf: "to then this class might be for you." +# artisan_introduction_suf: "then this class might be for you." # artisan_attribute_1: "Any experience in building content like this would be nice, such as using Blizzard's level editors. But not required!" # artisan_attribute_2: "A hankering to do a whole lot of testing and iteration. To make good levels, you need to take it to others and watch them play it, and be prepared to find a lot of things to fix." # artisan_attribute_3: "For the time being, endurance en par with an Adventurer. Our Level Editor is super preliminary and frustrating to use. You have been warned!" @@ -376,24 +379,28 @@ module.exports = nativeDescription: "slovenščina", englishDescription: "Sloven # artisan_join_step2: "Create a new level and explore existing levels." # artisan_join_step3: "Find us in our public HipChat room for help." # artisan_join_step4: "Post your levels on the forum for feedback." -# more_about_artisan: "Learn More About Becoming A Creative Artisan" +# more_about_artisan: "Learn More About Becoming an Artisan" # artisan_subscribe_desc: "Get emails on level editor updates and announcements." +# adventurer_sumamry: "Let us be clear about your role: you are the tank. You are going to take heavy damage. We need people to try out brand-new levels and help identify how to make things better. The pain will be enormous; making good games is a long process and no one gets it right the first time. If you can endure and have a high constitution score, then this class is for you." # adventurer_introduction: "Let's be clear about your role: you are the tank. You're going to take heavy damage. We need people to try out brand-new levels and help identify how to make things better. The pain will be enormous; making good games is a long process and no one gets it right the first time. If you can endure and have a high constitution score, then this class might be for you." # adventurer_attribute_1: "A thirst for learning. You want to learn how to code and we want to teach you how to code. You'll probably be doing most of the teaching in this case, though." # adventurer_attribute_2: "Charismatic. Be gentle but articulate about what needs improving, and offer suggestions on how to improve." # adventurer_join_pref: "Either get together with (or recruit!) an Artisan and work with them, or check the box below to receive emails when there are new levels to test. We'll also be posting about levels to review on our networks like" # adventurer_forum_url: "our forum" # adventurer_join_suf: "so if you prefer to be notified those ways, sign up there!" -# more_about_adventurer: "Learn More About Becoming A Brave Adventurer" +# more_about_adventurer: "Learn More About Becoming an Adventurer" # adventurer_subscribe_desc: "Get emails when there are new levels to test." +# scribe_summary_pref: "CodeCombat is not just going to be a bunch of levels. It will also be a resource of programming knowledge that players can hook into. That way, each Artisan can link to a detailed article that for the player's edification: documentation akin to what the " +# scribe_summary_sufx: " has built. If you enjoy explaining programming concepts, then this class is for you." # scribe_introduction_pref: "CodeCombat isn't just going to be a bunch of levels. It will also include a resource for knowledge, a wiki of programming concepts that levels can hook into. That way rather than each Artisan having to describe in detail what a comparison operator is, they can simply link their level to the Article describing them that is already written for the player's edification. Something along the lines of what the " # scribe_introduction_url_mozilla: "Mozilla Developer Network" # scribe_introduction_suf: " has built. If your idea of fun is articulating the concepts of programming in Markdown form, then this class might be for you." # scribe_attribute_1: "Skill in words is pretty much all you need. Not only grammar and spelling, but able to convey complicated ideas to others." # contact_us_url: "Contact us" # scribe_join_description: "tell us a little about yourself, your experience with programming and what sort of things you'd like to write about. We'll go from there!" -# more_about_scribe: "Learn More About Becoming A Diligent Scribe" +# more_about_scribe: "Learn More About Becoming a Scribe" # scribe_subscribe_desc: "Get emails about article writing announcements." +# diplomat_summary: "There is a large interest in CodeCombat in other countries that do not speak English! We are looking for translators who are willing to spend their time translating the site's corpus of words so that CodeCombat is accessible across the world as soon as possible. If you'd like to help getting CodeCombat international, then this class is for you." # diplomat_introduction_pref: "So, if there's one thing we learned from the " # diplomat_launch_url: "launch in October" # diplomat_introduction_suf: "it's that there is sizeable interest in CodeCombat in other countries, particularly Brazil! We're building a corps of translators eager to turn one set of words into another set of words to get CodeCombat as accessible across the world as possible. If you like getting sneak peeks at upcoming content and getting these levels to your fellow nationals ASAP, then this class might be for you." @@ -401,21 +408,23 @@ module.exports = nativeDescription: "slovenščina", englishDescription: "Sloven # diplomat_join_pref: "We've started a lot of initial translations at " # diplomat_doc_url: "this forum post" # diplomat_join_suf: "so check it out and add things for your language. Also, check this box below to keep up-to-date on new internationalization developments!" -# more_about_diplomat: "Learn More About Becoming A Great Diplomat" +# more_about_diplomat: "Learn More About Becoming a Diplomat" # diplomat_subscribe_desc: "Get emails about i18n developments and levels to translate." +# ambassador_summary: "We are trying to build a community, and every community needs a support team when there are troubles. We have got chats, emails, and social networks so that our users can get acquainted with the game. If you want to help people get involved, have fun, and learn some programming, then this class is for you." # ambassador_introduction: "This is a community we're building, and you are the connections. We've got Olark chats, emails, and social networks with lots of people to talk with and help get acquainted with the game and learn from. If you want to help people get involved and have fun, and get a good feel of the pulse of CodeCombat and where we're going, then this class might be for you." # ambassador_attribute_1: "Communication skills. Be able to identify the problems players are having and help them solve them. Also, keep the rest of us informed about what players are saying, what they like and don't like and want more of!" # ambassador_join_desc: "tell us a little about yourself, what you've done and what you'd be interested in doing. We'll go from there!" # ambassador_join_note_strong: "Note" # ambassador_join_note_desc: "One of our top priorities is to build multiplayer where players having difficulty solving levels can summon higher level wizards to help them. This will be a great way for ambassadors to do their thing. We'll keep you posted!" -# more_about_ambassador: "Learn More About Becoming A Helpful Ambassador" +# more_about_ambassador: "Learn More About Becoming an Ambassador" # ambassador_subscribe_desc: "Get emails on support updates and multiplayer developments." +# counselor_summary: "None of the above roles fit what you are interested in? Do not worry, we are on the lookout for anybody who wants a hand in the development of CodeCombat! If you are interested in teaching, game development, open source management, or anything else that you think will be relevant to us, then this class is for you." # counselor_introduction_1: "Do you have life experience? A different perspective on things that can help us decide how to shape CodeCombat? Of all these roles, this will probably take the least time, but individually you may make the most difference. We're on the lookout for wisened sages, particularly in areas like: teaching, game development, open source project management, technical recruiting, entrepreneurship, or design." # counselor_introduction_2: "Or really anything that is relevant to the development of CodeCombat. If you have knowledge and want to share it to help grow this project, then this class might be for you." # counselor_attribute_1: "Experience, in any of the areas above or something you think might be helpful." # counselor_attribute_2: "A little bit of free time!" # counselor_join_desc: "tell us a little about yourself, what you've done and what you'd be interested in doing. We'll put you in our contact list and be in touch when we could use advice (not too often)." -# more_about_counselor: "Learn More About Becoming A Valuable Counselor" +# more_about_counselor: "Learn More About Becoming a Counselor" # changes_auto_save: "Changes are saved automatically when you toggle checkboxes." # diligent_scribes: "Our Diligent Scribes:" # powerful_archmages: "Our Powerful Archmages:" diff --git a/app/locale/sr.coffee b/app/locale/sr.coffee index fa837cccf..bf2bfcba0 100644 --- a/app/locale/sr.coffee +++ b/app/locale/sr.coffee @@ -136,7 +136,7 @@ module.exports = nativeDescription: "српски", englishDescription: "Serbian account_profile: edit_settings: "Измени подешавања" profile_for_prefix: "Налог за " - profile_for_suffix: "" +# profile_for_suffix: "" profile: "Налог" user_not_found: "Корисник није пронађен. Проверите УРЛ?" gravatar_not_found_mine: "Нисмо могли да пронађемо твој налог који је повезан са:" @@ -164,7 +164,7 @@ module.exports = nativeDescription: "српски", englishDescription: "Serbian reload_title: "Поновно учитавање целог кода?" reload_really: "Да ли сте сигурни да желите да кренете ниво испочетка?" reload_confirm: "Поновно учитавање свега" - victory_title_prefix: "" +# victory_title_prefix: "" victory_title_suffix: " Завршено" victory_sign_up: "Пријави се за новости" victory_sign_up_poke: "Желиш ли да примаш најновије вести на мејл? Направи бесплатан налог и ми ћемо те обавештавати!" @@ -245,7 +245,6 @@ module.exports = nativeDescription: "српски", englishDescription: "Serbian general: # and: "and" - or: "или" name: "Име" # body: "Body" # version: "Version" @@ -253,6 +252,7 @@ module.exports = nativeDescription: "српски", englishDescription: "Serbian # version_history_for: "Version History for: " # results: "Results" # description: "Description" + or: "или" email: "Мејл" message: "Порука" @@ -352,6 +352,7 @@ module.exports = nativeDescription: "српски", englishDescription: "Serbian # alert_account_message_pref: "To subscribe for class emails, you'll need to " # alert_account_message_suf: "first." # alert_account_message_create_url: "create an account" +# archmage_summary: "Interested in working on game graphics, user interface design, database and server organization, multiplayer networking, physics, sound, or game engine performance? Want to help build a game to help other people learn what you are good at? We have a lot to do and if you are an experienced programmer and want to develop for CodeCombat, this class is for you. We would love your help building the best programming game ever." # archmage_introduction: "One of the best parts about building games is they synthesize so many different things. Graphics, sound, real-time networking, social networking, and of course many of the more common aspects of programming, from low-level database management, and server administration to user facing design and interface building. There's a lot to do, and if you're an experienced programmer with a hankering to really dive into the nitty-gritty of CodeCombat, this class might be for you. We would love to have your help building the best programming game ever." # class_attributes: "Class Attributes" # archmage_attribute_1_pref: "Knowledge in " @@ -364,10 +365,12 @@ module.exports = nativeDescription: "српски", englishDescription: "Serbian # join_desc_4: "and we'll go from there!" # join_url_email: "Email us" # join_url_hipchat: "public HipChat room" -# more_about_archmage: "Learn More About Becoming A Powerful Archmage" +# more_about_archmage: "Learn More About Becoming an Archmage" # archmage_subscribe_desc: "Get emails on new coding opportunities and announcements." +# artisan_summary_pref: "Want to design levels and expand CodeCombat's arsenal? People are playing through our content at a pace faster than we can build! Right now, our level editor is barebone, so be wary. Making levels will be a little challenging and buggy. If you have visions of campaigns spanning for-loops to" +# artisan_summary_suf: "then this class is for you." # artisan_introduction_pref: "We must construct additional levels! People be clamoring for more content, and we can only build so many ourselves. Right now your workstation is level one; our level editor is barely usable even by its creators, so be wary. If you have visions of campaigns spanning for-loops to" -# artisan_introduction_suf: "to then this class might be for you." +# artisan_introduction_suf: "then this class might be for you." # artisan_attribute_1: "Any experience in building content like this would be nice, such as using Blizzard's level editors. But not required!" # artisan_attribute_2: "A hankering to do a whole lot of testing and iteration. To make good levels, you need to take it to others and watch them play it, and be prepared to find a lot of things to fix." # artisan_attribute_3: "For the time being, endurance en par with an Adventurer. Our Level Editor is super preliminary and frustrating to use. You have been warned!" @@ -376,24 +379,28 @@ module.exports = nativeDescription: "српски", englishDescription: "Serbian # artisan_join_step2: "Create a new level and explore existing levels." # artisan_join_step3: "Find us in our public HipChat room for help." # artisan_join_step4: "Post your levels on the forum for feedback." -# more_about_artisan: "Learn More About Becoming A Creative Artisan" +# more_about_artisan: "Learn More About Becoming an Artisan" # artisan_subscribe_desc: "Get emails on level editor updates and announcements." +# adventurer_sumamry: "Let us be clear about your role: you are the tank. You are going to take heavy damage. We need people to try out brand-new levels and help identify how to make things better. The pain will be enormous; making good games is a long process and no one gets it right the first time. If you can endure and have a high constitution score, then this class is for you." # adventurer_introduction: "Let's be clear about your role: you are the tank. You're going to take heavy damage. We need people to try out brand-new levels and help identify how to make things better. The pain will be enormous; making good games is a long process and no one gets it right the first time. If you can endure and have a high constitution score, then this class might be for you." # adventurer_attribute_1: "A thirst for learning. You want to learn how to code and we want to teach you how to code. You'll probably be doing most of the teaching in this case, though." # adventurer_attribute_2: "Charismatic. Be gentle but articulate about what needs improving, and offer suggestions on how to improve." # adventurer_join_pref: "Either get together with (or recruit!) an Artisan and work with them, or check the box below to receive emails when there are new levels to test. We'll also be posting about levels to review on our networks like" # adventurer_forum_url: "our forum" # adventurer_join_suf: "so if you prefer to be notified those ways, sign up there!" -# more_about_adventurer: "Learn More About Becoming A Brave Adventurer" +# more_about_adventurer: "Learn More About Becoming an Adventurer" # adventurer_subscribe_desc: "Get emails when there are new levels to test." +# scribe_summary_pref: "CodeCombat is not just going to be a bunch of levels. It will also be a resource of programming knowledge that players can hook into. That way, each Artisan can link to a detailed article that for the player's edification: documentation akin to what the " +# scribe_summary_sufx: " has built. If you enjoy explaining programming concepts, then this class is for you." # scribe_introduction_pref: "CodeCombat isn't just going to be a bunch of levels. It will also include a resource for knowledge, a wiki of programming concepts that levels can hook into. That way rather than each Artisan having to describe in detail what a comparison operator is, they can simply link their level to the Article describing them that is already written for the player's edification. Something along the lines of what the " # scribe_introduction_url_mozilla: "Mozilla Developer Network" # scribe_introduction_suf: " has built. If your idea of fun is articulating the concepts of programming in Markdown form, then this class might be for you." # scribe_attribute_1: "Skill in words is pretty much all you need. Not only grammar and spelling, but able to convey complicated ideas to others." # contact_us_url: "Contact us" # scribe_join_description: "tell us a little about yourself, your experience with programming and what sort of things you'd like to write about. We'll go from there!" -# more_about_scribe: "Learn More About Becoming A Diligent Scribe" +# more_about_scribe: "Learn More About Becoming a Scribe" # scribe_subscribe_desc: "Get emails about article writing announcements." +# diplomat_summary: "There is a large interest in CodeCombat in other countries that do not speak English! We are looking for translators who are willing to spend their time translating the site's corpus of words so that CodeCombat is accessible across the world as soon as possible. If you'd like to help getting CodeCombat international, then this class is for you." # diplomat_introduction_pref: "So, if there's one thing we learned from the " # diplomat_launch_url: "launch in October" # diplomat_introduction_suf: "it's that there is sizeable interest in CodeCombat in other countries, particularly Brazil! We're building a corps of translators eager to turn one set of words into another set of words to get CodeCombat as accessible across the world as possible. If you like getting sneak peeks at upcoming content and getting these levels to your fellow nationals ASAP, then this class might be for you." @@ -401,21 +408,23 @@ module.exports = nativeDescription: "српски", englishDescription: "Serbian # diplomat_join_pref: "We've started a lot of initial translations at " # diplomat_doc_url: "this forum post" # diplomat_join_suf: "so check it out and add things for your language. Also, check this box below to keep up-to-date on new internationalization developments!" -# more_about_diplomat: "Learn More About Becoming A Great Diplomat" +# more_about_diplomat: "Learn More About Becoming a Diplomat" # diplomat_subscribe_desc: "Get emails about i18n developments and levels to translate." +# ambassador_summary: "We are trying to build a community, and every community needs a support team when there are troubles. We have got chats, emails, and social networks so that our users can get acquainted with the game. If you want to help people get involved, have fun, and learn some programming, then this class is for you." # ambassador_introduction: "This is a community we're building, and you are the connections. We've got Olark chats, emails, and social networks with lots of people to talk with and help get acquainted with the game and learn from. If you want to help people get involved and have fun, and get a good feel of the pulse of CodeCombat and where we're going, then this class might be for you." # ambassador_attribute_1: "Communication skills. Be able to identify the problems players are having and help them solve them. Also, keep the rest of us informed about what players are saying, what they like and don't like and want more of!" # ambassador_join_desc: "tell us a little about yourself, what you've done and what you'd be interested in doing. We'll go from there!" # ambassador_join_note_strong: "Note" # ambassador_join_note_desc: "One of our top priorities is to build multiplayer where players having difficulty solving levels can summon higher level wizards to help them. This will be a great way for ambassadors to do their thing. We'll keep you posted!" -# more_about_ambassador: "Learn More About Becoming A Helpful Ambassador" +# more_about_ambassador: "Learn More About Becoming an Ambassador" # ambassador_subscribe_desc: "Get emails on support updates and multiplayer developments." +# counselor_summary: "None of the above roles fit what you are interested in? Do not worry, we are on the lookout for anybody who wants a hand in the development of CodeCombat! If you are interested in teaching, game development, open source management, or anything else that you think will be relevant to us, then this class is for you." # counselor_introduction_1: "Do you have life experience? A different perspective on things that can help us decide how to shape CodeCombat? Of all these roles, this will probably take the least time, but individually you may make the most difference. We're on the lookout for wisened sages, particularly in areas like: teaching, game development, open source project management, technical recruiting, entrepreneurship, or design." # counselor_introduction_2: "Or really anything that is relevant to the development of CodeCombat. If you have knowledge and want to share it to help grow this project, then this class might be for you." # counselor_attribute_1: "Experience, in any of the areas above or something you think might be helpful." # counselor_attribute_2: "A little bit of free time!" # counselor_join_desc: "tell us a little about yourself, what you've done and what you'd be interested in doing. We'll put you in our contact list and be in touch when we could use advice (not too often)." -# more_about_counselor: "Learn More About Becoming A Valuable Counselor" +# more_about_counselor: "Learn More About Becoming a Counselor" # changes_auto_save: "Changes are saved automatically when you toggle checkboxes." # diligent_scribes: "Our Diligent Scribes:" # powerful_archmages: "Our Powerful Archmages:" diff --git a/app/locale/sv.coffee b/app/locale/sv.coffee index 233858baf..f73d8ed73 100644 --- a/app/locale/sv.coffee +++ b/app/locale/sv.coffee @@ -91,7 +91,6 @@ module.exports = nativeDescription: "Svenska", englishDescription: "Swedish", tr # forum_prefix: "For anything public, please try " forum_page: "vårt forum" forum_suffix: " istället." - sending: "Skickar..." send: "Skicka Feedback" diplomat_suggestion: @@ -123,6 +122,7 @@ module.exports = nativeDescription: "Svenska", englishDescription: "Swedish", tr new_password_verify: "Verifiera" email_subscriptions: "E-post Prenumerationer" email_announcements: "Meddelanden" +# email_notifications_description: "Get periodic notifications for your account." email_announcements_description: "Få e-post med de senaste nyheterna och utvecklingen på CodeCombat." # contributor_emails: "Contributor Class Emails" contribute_prefix: "Vi söker mer folk som vill var med och hjälpa till! Kolla in " @@ -245,16 +245,16 @@ module.exports = nativeDescription: "Svenska", englishDescription: "Swedish", tr # general: # and: "and" - or: "eller" - name: "Namn" +# name: "Name" # body: "Body" # version: "Version" # commit_msg: "Commit Message" # version_history_for: "Version History for: " # results: "Results" # description: "Description" - email: "E-post" - message: "Meddelande" +# or: "or" +# email: "Email" +# message: "Message" # about: # who_is_codecombat: "Who is CodeCombat?" @@ -352,6 +352,7 @@ module.exports = nativeDescription: "Svenska", englishDescription: "Swedish", tr # alert_account_message_pref: "To subscribe for class emails, you'll need to " # alert_account_message_suf: "first." # alert_account_message_create_url: "create an account" +# archmage_summary: "Interested in working on game graphics, user interface design, database and server organization, multiplayer networking, physics, sound, or game engine performance? Want to help build a game to help other people learn what you are good at? We have a lot to do and if you are an experienced programmer and want to develop for CodeCombat, this class is for you. We would love your help building the best programming game ever." # archmage_introduction: "One of the best parts about building games is they synthesize so many different things. Graphics, sound, real-time networking, social networking, and of course many of the more common aspects of programming, from low-level database management, and server administration to user facing design and interface building. There's a lot to do, and if you're an experienced programmer with a hankering to really dive into the nitty-gritty of CodeCombat, this class might be for you. We would love to have your help building the best programming game ever." # class_attributes: "Class Attributes" # archmage_attribute_1_pref: "Knowledge in " @@ -364,10 +365,12 @@ module.exports = nativeDescription: "Svenska", englishDescription: "Swedish", tr # join_desc_4: "and we'll go from there!" # join_url_email: "Email us" # join_url_hipchat: "public HipChat room" -# more_about_archmage: "Learn More About Becoming A Powerful Archmage" +# more_about_archmage: "Learn More About Becoming an Archmage" # archmage_subscribe_desc: "Get emails on new coding opportunities and announcements." +# artisan_summary_pref: "Want to design levels and expand CodeCombat's arsenal? People are playing through our content at a pace faster than we can build! Right now, our level editor is barebone, so be wary. Making levels will be a little challenging and buggy. If you have visions of campaigns spanning for-loops to" +# artisan_summary_suf: "then this class is for you." # artisan_introduction_pref: "We must construct additional levels! People be clamoring for more content, and we can only build so many ourselves. Right now your workstation is level one; our level editor is barely usable even by its creators, so be wary. If you have visions of campaigns spanning for-loops to" -# artisan_introduction_suf: "to then this class might be for you." +# artisan_introduction_suf: "then this class might be for you." # artisan_attribute_1: "Any experience in building content like this would be nice, such as using Blizzard's level editors. But not required!" # artisan_attribute_2: "A hankering to do a whole lot of testing and iteration. To make good levels, you need to take it to others and watch them play it, and be prepared to find a lot of things to fix." # artisan_attribute_3: "For the time being, endurance en par with an Adventurer. Our Level Editor is super preliminary and frustrating to use. You have been warned!" @@ -376,24 +379,28 @@ module.exports = nativeDescription: "Svenska", englishDescription: "Swedish", tr # artisan_join_step2: "Create a new level and explore existing levels." # artisan_join_step3: "Find us in our public HipChat room for help." # artisan_join_step4: "Post your levels on the forum for feedback." -# more_about_artisan: "Learn More About Becoming A Creative Artisan" +# more_about_artisan: "Learn More About Becoming an Artisan" # artisan_subscribe_desc: "Get emails on level editor updates and announcements." +# adventurer_sumamry: "Let us be clear about your role: you are the tank. You are going to take heavy damage. We need people to try out brand-new levels and help identify how to make things better. The pain will be enormous; making good games is a long process and no one gets it right the first time. If you can endure and have a high constitution score, then this class is for you." # adventurer_introduction: "Let's be clear about your role: you are the tank. You're going to take heavy damage. We need people to try out brand-new levels and help identify how to make things better. The pain will be enormous; making good games is a long process and no one gets it right the first time. If you can endure and have a high constitution score, then this class might be for you." # adventurer_attribute_1: "A thirst for learning. You want to learn how to code and we want to teach you how to code. You'll probably be doing most of the teaching in this case, though." # adventurer_attribute_2: "Charismatic. Be gentle but articulate about what needs improving, and offer suggestions on how to improve." # adventurer_join_pref: "Either get together with (or recruit!) an Artisan and work with them, or check the box below to receive emails when there are new levels to test. We'll also be posting about levels to review on our networks like" # adventurer_forum_url: "our forum" # adventurer_join_suf: "so if you prefer to be notified those ways, sign up there!" -# more_about_adventurer: "Learn More About Becoming A Brave Adventurer" +# more_about_adventurer: "Learn More About Becoming an Adventurer" # adventurer_subscribe_desc: "Get emails when there are new levels to test." +# scribe_summary_pref: "CodeCombat is not just going to be a bunch of levels. It will also be a resource of programming knowledge that players can hook into. That way, each Artisan can link to a detailed article that for the player's edification: documentation akin to what the " +# scribe_summary_sufx: " has built. If you enjoy explaining programming concepts, then this class is for you." # scribe_introduction_pref: "CodeCombat isn't just going to be a bunch of levels. It will also include a resource for knowledge, a wiki of programming concepts that levels can hook into. That way rather than each Artisan having to describe in detail what a comparison operator is, they can simply link their level to the Article describing them that is already written for the player's edification. Something along the lines of what the " # scribe_introduction_url_mozilla: "Mozilla Developer Network" # scribe_introduction_suf: " has built. If your idea of fun is articulating the concepts of programming in Markdown form, then this class might be for you." # scribe_attribute_1: "Skill in words is pretty much all you need. Not only grammar and spelling, but able to convey complicated ideas to others." # contact_us_url: "Contact us" # scribe_join_description: "tell us a little about yourself, your experience with programming and what sort of things you'd like to write about. We'll go from there!" -# more_about_scribe: "Learn More About Becoming A Diligent Scribe" +# more_about_scribe: "Learn More About Becoming a Scribe" # scribe_subscribe_desc: "Get emails about article writing announcements." +# diplomat_summary: "There is a large interest in CodeCombat in other countries that do not speak English! We are looking for translators who are willing to spend their time translating the site's corpus of words so that CodeCombat is accessible across the world as soon as possible. If you'd like to help getting CodeCombat international, then this class is for you." # diplomat_introduction_pref: "So, if there's one thing we learned from the " # diplomat_launch_url: "launch in October" # diplomat_introduction_suf: "it's that there is sizeable interest in CodeCombat in other countries, particularly Brazil! We're building a corps of translators eager to turn one set of words into another set of words to get CodeCombat as accessible across the world as possible. If you like getting sneak peeks at upcoming content and getting these levels to your fellow nationals ASAP, then this class might be for you." @@ -401,21 +408,23 @@ module.exports = nativeDescription: "Svenska", englishDescription: "Swedish", tr # diplomat_join_pref: "We've started a lot of initial translations at " # diplomat_doc_url: "this forum post" # diplomat_join_suf: "so check it out and add things for your language. Also, check this box below to keep up-to-date on new internationalization developments!" -# more_about_diplomat: "Learn More About Becoming A Great Diplomat" +# more_about_diplomat: "Learn More About Becoming a Diplomat" # diplomat_subscribe_desc: "Get emails about i18n developments and levels to translate." +# ambassador_summary: "We are trying to build a community, and every community needs a support team when there are troubles. We have got chats, emails, and social networks so that our users can get acquainted with the game. If you want to help people get involved, have fun, and learn some programming, then this class is for you." # ambassador_introduction: "This is a community we're building, and you are the connections. We've got Olark chats, emails, and social networks with lots of people to talk with and help get acquainted with the game and learn from. If you want to help people get involved and have fun, and get a good feel of the pulse of CodeCombat and where we're going, then this class might be for you." # ambassador_attribute_1: "Communication skills. Be able to identify the problems players are having and help them solve them. Also, keep the rest of us informed about what players are saying, what they like and don't like and want more of!" # ambassador_join_desc: "tell us a little about yourself, what you've done and what you'd be interested in doing. We'll go from there!" # ambassador_join_note_strong: "Note" # ambassador_join_note_desc: "One of our top priorities is to build multiplayer where players having difficulty solving levels can summon higher level wizards to help them. This will be a great way for ambassadors to do their thing. We'll keep you posted!" -# more_about_ambassador: "Learn More About Becoming A Helpful Ambassador" +# more_about_ambassador: "Learn More About Becoming an Ambassador" # ambassador_subscribe_desc: "Get emails on support updates and multiplayer developments." +# counselor_summary: "None of the above roles fit what you are interested in? Do not worry, we are on the lookout for anybody who wants a hand in the development of CodeCombat! If you are interested in teaching, game development, open source management, or anything else that you think will be relevant to us, then this class is for you." # counselor_introduction_1: "Do you have life experience? A different perspective on things that can help us decide how to shape CodeCombat? Of all these roles, this will probably take the least time, but individually you may make the most difference. We're on the lookout for wisened sages, particularly in areas like: teaching, game development, open source project management, technical recruiting, entrepreneurship, or design." # counselor_introduction_2: "Or really anything that is relevant to the development of CodeCombat. If you have knowledge and want to share it to help grow this project, then this class might be for you." # counselor_attribute_1: "Experience, in any of the areas above or something you think might be helpful." # counselor_attribute_2: "A little bit of free time!" # counselor_join_desc: "tell us a little about yourself, what you've done and what you'd be interested in doing. We'll put you in our contact list and be in touch when we could use advice (not too often)." -# more_about_counselor: "Learn More About Becoming A Valuable Counselor" +# more_about_counselor: "Learn More About Becoming a Counselor" # changes_auto_save: "Changes are saved automatically when you toggle checkboxes." # diligent_scribes: "Our Diligent Scribes:" # powerful_archmages: "Our Powerful Archmages:" diff --git a/app/locale/th.coffee b/app/locale/th.coffee index e2be76b50..3ff4704fe 100644 --- a/app/locale/th.coffee +++ b/app/locale/th.coffee @@ -122,13 +122,13 @@ module.exports = nativeDescription: "ไทย", englishDescription: "Thai", tra # new_password_verify: "Verify" # email_subscriptions: "Email Subscriptions" email_announcements: "ประกาศ" +# email_notifications_description: "Get periodic notifications for your account." # email_announcements_description: "Get emails on the latest news and developments at CodeCombat." # contributor_emails: "Contributor Class Emails" # contribute_prefix: "We're looking for people to join our party! Check out the " # contribute_page: "contribute page" # contribute_suffix: " to find out more." # email_toggle: "Toggle All" - saving: "กำลังบันทึก..." error_saving: "บันทึกผิดพลาด" saved: "เปลี่ยนรหัสผ่าน" password_mismatch: "รหัสผ่านไม่ถูกต้อง" @@ -245,16 +245,16 @@ module.exports = nativeDescription: "ไทย", englishDescription: "Thai", tra # general: # and: "and" - or: "หรือ" - name: "ชื่อ" +# name: "Name" # body: "Body" # version: "Version" # commit_msg: "Commit Message" # version_history_for: "Version History for: " # results: "Results" # description: "Description" - email: "อีเมลล์" - message: "ข้อความ" +# or: "or" +# email: "Email" +# message: "Message" # about: # who_is_codecombat: "Who is CodeCombat?" @@ -352,6 +352,7 @@ module.exports = nativeDescription: "ไทย", englishDescription: "Thai", tra # alert_account_message_pref: "To subscribe for class emails, you'll need to " # alert_account_message_suf: "first." # alert_account_message_create_url: "create an account" +# archmage_summary: "Interested in working on game graphics, user interface design, database and server organization, multiplayer networking, physics, sound, or game engine performance? Want to help build a game to help other people learn what you are good at? We have a lot to do and if you are an experienced programmer and want to develop for CodeCombat, this class is for you. We would love your help building the best programming game ever." # archmage_introduction: "One of the best parts about building games is they synthesize so many different things. Graphics, sound, real-time networking, social networking, and of course many of the more common aspects of programming, from low-level database management, and server administration to user facing design and interface building. There's a lot to do, and if you're an experienced programmer with a hankering to really dive into the nitty-gritty of CodeCombat, this class might be for you. We would love to have your help building the best programming game ever." # class_attributes: "Class Attributes" # archmage_attribute_1_pref: "Knowledge in " @@ -364,10 +365,12 @@ module.exports = nativeDescription: "ไทย", englishDescription: "Thai", tra # join_desc_4: "and we'll go from there!" # join_url_email: "Email us" # join_url_hipchat: "public HipChat room" -# more_about_archmage: "Learn More About Becoming A Powerful Archmage" +# more_about_archmage: "Learn More About Becoming an Archmage" # archmage_subscribe_desc: "Get emails on new coding opportunities and announcements." +# artisan_summary_pref: "Want to design levels and expand CodeCombat's arsenal? People are playing through our content at a pace faster than we can build! Right now, our level editor is barebone, so be wary. Making levels will be a little challenging and buggy. If you have visions of campaigns spanning for-loops to" +# artisan_summary_suf: "then this class is for you." # artisan_introduction_pref: "We must construct additional levels! People be clamoring for more content, and we can only build so many ourselves. Right now your workstation is level one; our level editor is barely usable even by its creators, so be wary. If you have visions of campaigns spanning for-loops to" -# artisan_introduction_suf: "to then this class might be for you." +# artisan_introduction_suf: "then this class might be for you." # artisan_attribute_1: "Any experience in building content like this would be nice, such as using Blizzard's level editors. But not required!" # artisan_attribute_2: "A hankering to do a whole lot of testing and iteration. To make good levels, you need to take it to others and watch them play it, and be prepared to find a lot of things to fix." # artisan_attribute_3: "For the time being, endurance en par with an Adventurer. Our Level Editor is super preliminary and frustrating to use. You have been warned!" @@ -376,24 +379,28 @@ module.exports = nativeDescription: "ไทย", englishDescription: "Thai", tra # artisan_join_step2: "Create a new level and explore existing levels." # artisan_join_step3: "Find us in our public HipChat room for help." # artisan_join_step4: "Post your levels on the forum for feedback." -# more_about_artisan: "Learn More About Becoming A Creative Artisan" +# more_about_artisan: "Learn More About Becoming an Artisan" # artisan_subscribe_desc: "Get emails on level editor updates and announcements." +# adventurer_sumamry: "Let us be clear about your role: you are the tank. You are going to take heavy damage. We need people to try out brand-new levels and help identify how to make things better. The pain will be enormous; making good games is a long process and no one gets it right the first time. If you can endure and have a high constitution score, then this class is for you." # adventurer_introduction: "Let's be clear about your role: you are the tank. You're going to take heavy damage. We need people to try out brand-new levels and help identify how to make things better. The pain will be enormous; making good games is a long process and no one gets it right the first time. If you can endure and have a high constitution score, then this class might be for you." # adventurer_attribute_1: "A thirst for learning. You want to learn how to code and we want to teach you how to code. You'll probably be doing most of the teaching in this case, though." # adventurer_attribute_2: "Charismatic. Be gentle but articulate about what needs improving, and offer suggestions on how to improve." # adventurer_join_pref: "Either get together with (or recruit!) an Artisan and work with them, or check the box below to receive emails when there are new levels to test. We'll also be posting about levels to review on our networks like" # adventurer_forum_url: "our forum" # adventurer_join_suf: "so if you prefer to be notified those ways, sign up there!" -# more_about_adventurer: "Learn More About Becoming A Brave Adventurer" +# more_about_adventurer: "Learn More About Becoming an Adventurer" # adventurer_subscribe_desc: "Get emails when there are new levels to test." +# scribe_summary_pref: "CodeCombat is not just going to be a bunch of levels. It will also be a resource of programming knowledge that players can hook into. That way, each Artisan can link to a detailed article that for the player's edification: documentation akin to what the " +# scribe_summary_sufx: " has built. If you enjoy explaining programming concepts, then this class is for you." # scribe_introduction_pref: "CodeCombat isn't just going to be a bunch of levels. It will also include a resource for knowledge, a wiki of programming concepts that levels can hook into. That way rather than each Artisan having to describe in detail what a comparison operator is, they can simply link their level to the Article describing them that is already written for the player's edification. Something along the lines of what the " # scribe_introduction_url_mozilla: "Mozilla Developer Network" # scribe_introduction_suf: " has built. If your idea of fun is articulating the concepts of programming in Markdown form, then this class might be for you." # scribe_attribute_1: "Skill in words is pretty much all you need. Not only grammar and spelling, but able to convey complicated ideas to others." # contact_us_url: "Contact us" # scribe_join_description: "tell us a little about yourself, your experience with programming and what sort of things you'd like to write about. We'll go from there!" -# more_about_scribe: "Learn More About Becoming A Diligent Scribe" +# more_about_scribe: "Learn More About Becoming a Scribe" # scribe_subscribe_desc: "Get emails about article writing announcements." +# diplomat_summary: "There is a large interest in CodeCombat in other countries that do not speak English! We are looking for translators who are willing to spend their time translating the site's corpus of words so that CodeCombat is accessible across the world as soon as possible. If you'd like to help getting CodeCombat international, then this class is for you." # diplomat_introduction_pref: "So, if there's one thing we learned from the " # diplomat_launch_url: "launch in October" # diplomat_introduction_suf: "it's that there is sizeable interest in CodeCombat in other countries, particularly Brazil! We're building a corps of translators eager to turn one set of words into another set of words to get CodeCombat as accessible across the world as possible. If you like getting sneak peeks at upcoming content and getting these levels to your fellow nationals ASAP, then this class might be for you." @@ -401,21 +408,23 @@ module.exports = nativeDescription: "ไทย", englishDescription: "Thai", tra # diplomat_join_pref: "We've started a lot of initial translations at " # diplomat_doc_url: "this forum post" # diplomat_join_suf: "so check it out and add things for your language. Also, check this box below to keep up-to-date on new internationalization developments!" -# more_about_diplomat: "Learn More About Becoming A Great Diplomat" +# more_about_diplomat: "Learn More About Becoming a Diplomat" # diplomat_subscribe_desc: "Get emails about i18n developments and levels to translate." +# ambassador_summary: "We are trying to build a community, and every community needs a support team when there are troubles. We have got chats, emails, and social networks so that our users can get acquainted with the game. If you want to help people get involved, have fun, and learn some programming, then this class is for you." # ambassador_introduction: "This is a community we're building, and you are the connections. We've got Olark chats, emails, and social networks with lots of people to talk with and help get acquainted with the game and learn from. If you want to help people get involved and have fun, and get a good feel of the pulse of CodeCombat and where we're going, then this class might be for you." # ambassador_attribute_1: "Communication skills. Be able to identify the problems players are having and help them solve them. Also, keep the rest of us informed about what players are saying, what they like and don't like and want more of!" # ambassador_join_desc: "tell us a little about yourself, what you've done and what you'd be interested in doing. We'll go from there!" # ambassador_join_note_strong: "Note" # ambassador_join_note_desc: "One of our top priorities is to build multiplayer where players having difficulty solving levels can summon higher level wizards to help them. This will be a great way for ambassadors to do their thing. We'll keep you posted!" -# more_about_ambassador: "Learn More About Becoming A Helpful Ambassador" +# more_about_ambassador: "Learn More About Becoming an Ambassador" # ambassador_subscribe_desc: "Get emails on support updates and multiplayer developments." +# counselor_summary: "None of the above roles fit what you are interested in? Do not worry, we are on the lookout for anybody who wants a hand in the development of CodeCombat! If you are interested in teaching, game development, open source management, or anything else that you think will be relevant to us, then this class is for you." # counselor_introduction_1: "Do you have life experience? A different perspective on things that can help us decide how to shape CodeCombat? Of all these roles, this will probably take the least time, but individually you may make the most difference. We're on the lookout for wisened sages, particularly in areas like: teaching, game development, open source project management, technical recruiting, entrepreneurship, or design." # counselor_introduction_2: "Or really anything that is relevant to the development of CodeCombat. If you have knowledge and want to share it to help grow this project, then this class might be for you." # counselor_attribute_1: "Experience, in any of the areas above or something you think might be helpful." # counselor_attribute_2: "A little bit of free time!" # counselor_join_desc: "tell us a little about yourself, what you've done and what you'd be interested in doing. We'll put you in our contact list and be in touch when we could use advice (not too often)." -# more_about_counselor: "Learn More About Becoming A Valuable Counselor" +# more_about_counselor: "Learn More About Becoming a Counselor" # changes_auto_save: "Changes are saved automatically when you toggle checkboxes." # diligent_scribes: "Our Diligent Scribes:" # powerful_archmages: "Our Powerful Archmages:" diff --git a/app/locale/tr.coffee b/app/locale/tr.coffee index 3b6552013..b7e957c9d 100644 --- a/app/locale/tr.coffee +++ b/app/locale/tr.coffee @@ -135,7 +135,7 @@ module.exports = nativeDescription: "Türkçe", englishDescription: "Turkish", t account_profile: edit_settings: "Ayarları Düzenle" - profile_for_prefix: "" +# profile_for_prefix: "" profile_for_suffix: " Kullanıcısının Profili" profile: "Profil" user_not_found: "Kullanıcı bulunamadı. URL'den emin misiniz?" @@ -164,7 +164,7 @@ module.exports = nativeDescription: "Türkçe", englishDescription: "Turkish", t reload_title: "Tüm kod yeniden yüklensin mi?" reload_really: "Bu seviyeyi en baştan yüklemek istediğinizden emin misiniz?" reload_confirm: "Tümünü Yeniden Yükle" - victory_title_prefix: "" +# victory_title_prefix: "" victory_title_suffix: "Tamamlandı " victory_sign_up: " Güncellemelere Abone Ol" victory_sign_up_poke: "Son haberleri e-postanızda görmek ister misiniz? Ücretsiz bir hesap oluşturmanız durumunda sizi bilgilendirebiliriz." @@ -245,7 +245,6 @@ module.exports = nativeDescription: "Türkçe", englishDescription: "Turkish", t general: and: "ve" - or: "veya" name: "İsim" body: "Gövde" version: "Sürüm" @@ -253,6 +252,7 @@ module.exports = nativeDescription: "Türkçe", englishDescription: "Turkish", t # version_history_for: "Version History for: " results: "Sonuçlar" description: "Açıklama" + or: "veya" email: "E-posta" message: "İleti" @@ -352,6 +352,7 @@ module.exports = nativeDescription: "Türkçe", englishDescription: "Turkish", t # alert_account_message_pref: "To subscribe for class emails, you'll need to " # alert_account_message_suf: "first." # alert_account_message_create_url: "create an account" +# archmage_summary: "Interested in working on game graphics, user interface design, database and server organization, multiplayer networking, physics, sound, or game engine performance? Want to help build a game to help other people learn what you are good at? We have a lot to do and if you are an experienced programmer and want to develop for CodeCombat, this class is for you. We would love your help building the best programming game ever." # archmage_introduction: "One of the best parts about building games is they synthesize so many different things. Graphics, sound, real-time networking, social networking, and of course many of the more common aspects of programming, from low-level database management, and server administration to user facing design and interface building. There's a lot to do, and if you're an experienced programmer with a hankering to really dive into the nitty-gritty of CodeCombat, this class might be for you. We would love to have your help building the best programming game ever." # class_attributes: "Class Attributes" # archmage_attribute_1_pref: "Knowledge in " @@ -364,10 +365,12 @@ module.exports = nativeDescription: "Türkçe", englishDescription: "Turkish", t # join_desc_4: "and we'll go from there!" # join_url_email: "Email us" # join_url_hipchat: "public HipChat room" -# more_about_archmage: "Learn More About Becoming A Powerful Archmage" +# more_about_archmage: "Learn More About Becoming an Archmage" # archmage_subscribe_desc: "Get emails on new coding opportunities and announcements." +# artisan_summary_pref: "Want to design levels and expand CodeCombat's arsenal? People are playing through our content at a pace faster than we can build! Right now, our level editor is barebone, so be wary. Making levels will be a little challenging and buggy. If you have visions of campaigns spanning for-loops to" +# artisan_summary_suf: "then this class is for you." # artisan_introduction_pref: "We must construct additional levels! People be clamoring for more content, and we can only build so many ourselves. Right now your workstation is level one; our level editor is barely usable even by its creators, so be wary. If you have visions of campaigns spanning for-loops to" -# artisan_introduction_suf: "to then this class might be for you." +# artisan_introduction_suf: "then this class might be for you." # artisan_attribute_1: "Any experience in building content like this would be nice, such as using Blizzard's level editors. But not required!" # artisan_attribute_2: "A hankering to do a whole lot of testing and iteration. To make good levels, you need to take it to others and watch them play it, and be prepared to find a lot of things to fix." # artisan_attribute_3: "For the time being, endurance en par with an Adventurer. Our Level Editor is super preliminary and frustrating to use. You have been warned!" @@ -376,24 +379,28 @@ module.exports = nativeDescription: "Türkçe", englishDescription: "Turkish", t # artisan_join_step2: "Create a new level and explore existing levels." # artisan_join_step3: "Find us in our public HipChat room for help." # artisan_join_step4: "Post your levels on the forum for feedback." -# more_about_artisan: "Learn More About Becoming A Creative Artisan" +# more_about_artisan: "Learn More About Becoming an Artisan" # artisan_subscribe_desc: "Get emails on level editor updates and announcements." +# adventurer_sumamry: "Let us be clear about your role: you are the tank. You are going to take heavy damage. We need people to try out brand-new levels and help identify how to make things better. The pain will be enormous; making good games is a long process and no one gets it right the first time. If you can endure and have a high constitution score, then this class is for you." # adventurer_introduction: "Let's be clear about your role: you are the tank. You're going to take heavy damage. We need people to try out brand-new levels and help identify how to make things better. The pain will be enormous; making good games is a long process and no one gets it right the first time. If you can endure and have a high constitution score, then this class might be for you." # adventurer_attribute_1: "A thirst for learning. You want to learn how to code and we want to teach you how to code. You'll probably be doing most of the teaching in this case, though." # adventurer_attribute_2: "Charismatic. Be gentle but articulate about what needs improving, and offer suggestions on how to improve." # adventurer_join_pref: "Either get together with (or recruit!) an Artisan and work with them, or check the box below to receive emails when there are new levels to test. We'll also be posting about levels to review on our networks like" # adventurer_forum_url: "our forum" # adventurer_join_suf: "so if you prefer to be notified those ways, sign up there!" -# more_about_adventurer: "Learn More About Becoming A Brave Adventurer" +# more_about_adventurer: "Learn More About Becoming an Adventurer" # adventurer_subscribe_desc: "Get emails when there are new levels to test." +# scribe_summary_pref: "CodeCombat is not just going to be a bunch of levels. It will also be a resource of programming knowledge that players can hook into. That way, each Artisan can link to a detailed article that for the player's edification: documentation akin to what the " +# scribe_summary_sufx: " has built. If you enjoy explaining programming concepts, then this class is for you." # scribe_introduction_pref: "CodeCombat isn't just going to be a bunch of levels. It will also include a resource for knowledge, a wiki of programming concepts that levels can hook into. That way rather than each Artisan having to describe in detail what a comparison operator is, they can simply link their level to the Article describing them that is already written for the player's edification. Something along the lines of what the " # scribe_introduction_url_mozilla: "Mozilla Developer Network" # scribe_introduction_suf: " has built. If your idea of fun is articulating the concepts of programming in Markdown form, then this class might be for you." # scribe_attribute_1: "Skill in words is pretty much all you need. Not only grammar and spelling, but able to convey complicated ideas to others." # contact_us_url: "Contact us" # scribe_join_description: "tell us a little about yourself, your experience with programming and what sort of things you'd like to write about. We'll go from there!" -# more_about_scribe: "Learn More About Becoming A Diligent Scribe" +# more_about_scribe: "Learn More About Becoming a Scribe" # scribe_subscribe_desc: "Get emails about article writing announcements." +# diplomat_summary: "There is a large interest in CodeCombat in other countries that do not speak English! We are looking for translators who are willing to spend their time translating the site's corpus of words so that CodeCombat is accessible across the world as soon as possible. If you'd like to help getting CodeCombat international, then this class is for you." # diplomat_introduction_pref: "So, if there's one thing we learned from the " # diplomat_launch_url: "launch in October" # diplomat_introduction_suf: "it's that there is sizeable interest in CodeCombat in other countries, particularly Brazil! We're building a corps of translators eager to turn one set of words into another set of words to get CodeCombat as accessible across the world as possible. If you like getting sneak peeks at upcoming content and getting these levels to your fellow nationals ASAP, then this class might be for you." @@ -401,21 +408,23 @@ module.exports = nativeDescription: "Türkçe", englishDescription: "Turkish", t # diplomat_join_pref: "We've started a lot of initial translations at " # diplomat_doc_url: "this forum post" # diplomat_join_suf: "so check it out and add things for your language. Also, check this box below to keep up-to-date on new internationalization developments!" -# more_about_diplomat: "Learn More About Becoming A Great Diplomat" +# more_about_diplomat: "Learn More About Becoming a Diplomat" # diplomat_subscribe_desc: "Get emails about i18n developments and levels to translate." +# ambassador_summary: "We are trying to build a community, and every community needs a support team when there are troubles. We have got chats, emails, and social networks so that our users can get acquainted with the game. If you want to help people get involved, have fun, and learn some programming, then this class is for you." # ambassador_introduction: "This is a community we're building, and you are the connections. We've got Olark chats, emails, and social networks with lots of people to talk with and help get acquainted with the game and learn from. If you want to help people get involved and have fun, and get a good feel of the pulse of CodeCombat and where we're going, then this class might be for you." # ambassador_attribute_1: "Communication skills. Be able to identify the problems players are having and help them solve them. Also, keep the rest of us informed about what players are saying, what they like and don't like and want more of!" # ambassador_join_desc: "tell us a little about yourself, what you've done and what you'd be interested in doing. We'll go from there!" # ambassador_join_note_strong: "Note" # ambassador_join_note_desc: "One of our top priorities is to build multiplayer where players having difficulty solving levels can summon higher level wizards to help them. This will be a great way for ambassadors to do their thing. We'll keep you posted!" -# more_about_ambassador: "Learn More About Becoming A Helpful Ambassador" +# more_about_ambassador: "Learn More About Becoming an Ambassador" # ambassador_subscribe_desc: "Get emails on support updates and multiplayer developments." +# counselor_summary: "None of the above roles fit what you are interested in? Do not worry, we are on the lookout for anybody who wants a hand in the development of CodeCombat! If you are interested in teaching, game development, open source management, or anything else that you think will be relevant to us, then this class is for you." # counselor_introduction_1: "Do you have life experience? A different perspective on things that can help us decide how to shape CodeCombat? Of all these roles, this will probably take the least time, but individually you may make the most difference. We're on the lookout for wisened sages, particularly in areas like: teaching, game development, open source project management, technical recruiting, entrepreneurship, or design." # counselor_introduction_2: "Or really anything that is relevant to the development of CodeCombat. If you have knowledge and want to share it to help grow this project, then this class might be for you." # counselor_attribute_1: "Experience, in any of the areas above or something you think might be helpful." # counselor_attribute_2: "A little bit of free time!" # counselor_join_desc: "tell us a little about yourself, what you've done and what you'd be interested in doing. We'll put you in our contact list and be in touch when we could use advice (not too often)." -# more_about_counselor: "Learn More About Becoming A Valuable Counselor" +# more_about_counselor: "Learn More About Becoming a Counselor" # changes_auto_save: "Changes are saved automatically when you toggle checkboxes." # diligent_scribes: "Our Diligent Scribes:" # powerful_archmages: "Our Powerful Archmages:" diff --git a/app/locale/uk.coffee b/app/locale/uk.coffee index fa6f99bab..349fb3271 100644 --- a/app/locale/uk.coffee +++ b/app/locale/uk.coffee @@ -3,6 +3,14 @@ module.exports = nativeDescription: "українська мова", englishDesc loading: "Завантаження..." # saving: "Saving..." # sending: "Sending..." +# cancel: "Cancel" +# save: "Save" +# delay_1_sec: "1 second" +# delay_3_sec: "3 seconds" +# delay_5_sec: "5 seconds" +# manual: "Manual" +# fork: "Fork" +# play: "Play" modal: close: "Закрити" @@ -12,9 +20,6 @@ module.exports = nativeDescription: "українська мова", englishDesc page_not_found: "Сторінку не знайдено" nav: - sign_up: "Створити акаунт" - log_in: "Увійти" - log_out: "Вийти" play: "Грати" editor: "Редактор" blog: "Блог" @@ -28,16 +33,8 @@ module.exports = nativeDescription: "українська мова", englishDesc twitter_follow: "Фоловити" # employers: "Employers" - forms: - name: "Ім'я" - email: "Email" - message: "Повідомлення" - cancel: "Скасувати" -# save: "Save" - # versions: # save_version_title: "Save New Version" -# commit_message: "Commit Message" # new_major_version: "New Major Version" # cla_prefix: "To save changes, first you must agree to our" # cla_url: "CLA" @@ -45,10 +42,9 @@ module.exports = nativeDescription: "українська мова", englishDesc # cla_agree: "I AGREE" login: -# login_modal_title: "Log In" - log_in: "Увійти" sign_up: "створити акаунт" - or: ", або " + log_in: "Увійти" +# log_out: "Log Out" recover: "відновити акаунт" # recover: @@ -63,7 +59,6 @@ module.exports = nativeDescription: "українська мова", englishDesc coppa_why: "(Чому?)" creating: "Створення акаунта..." sign_up: "Реєстрація" - or: "або " log_in: "вхід з паролем" home: @@ -96,7 +91,6 @@ module.exports = nativeDescription: "українська мова", englishDesc forum_prefix: "Для будь-яких публичних обговорень, будь ласка, використовуйте " forum_page: "наш форум" forum_suffix: "." - sending: "Відправка..." send: "Відправити фідбек" diplomat_suggestion: @@ -128,13 +122,13 @@ module.exports = nativeDescription: "українська мова", englishDesc new_password_verify: "Підтвердження паролю" email_subscriptions: "Email-підписки" email_announcements: "Оголошення" +# email_notifications_description: "Get periodic notifications for your account." email_announcements_description: "Отримувати електронні листи про останні новини CodeCombat." contributor_emails: "Підписки за класами учасників" contribute_prefix: "Нам потрібні люди, які приєднаються до нашої команди! Зайдіть на " contribute_page: "сторінку учасників," contribute_suffix: " щоб дізнатися більше." email_toggle: "Обрати все" - saving: "Збереження..." error_saving: "Помилка при збереженні" saved: "Зміни збережено" password_mismatch: "Паролі не співпадають." @@ -193,14 +187,11 @@ module.exports = nativeDescription: "українська мова", englishDesc tome_cast_button_casting: "Закляття читається" tome_cast_button_cast: "Закляття прочитане" tome_autocast_delay: "Затримка автоматичного читання" - tome_autocast_1: "1 секунда" - tome_autocast_3: "3 секунди" - tome_autocast_5: "5 секунд" - tome_autocast_manual: "Вручну" tome_select_spell: "Оберіть закляття" tome_select_a_thang: "Оберіть когось для " tome_available_spells: "Доступні закляття" hud_continue: "Продовжити (натисніть shift-space)" +# spell_saved: "Spell Saved" # admin: # av_title: "Admin Views" @@ -225,14 +216,7 @@ module.exports = nativeDescription: "українська мова", englishDesc # contact_us: "contact us!" # hipchat_prefix: "You can also find us in our" # hipchat_url: "HipChat room." -# level_btn_save: "Save" -# level_btn_fork: "Fork" -# level_btn_play: "Play" # level_some_options: "Some Options?" -# level_options_1_second: "1 second" -# level_options_3_seconds: "3 seconds" -# level_options_5_seconds: "5 seconds" -# level_options_manual: "Manual" # level_tab_thangs: "Thangs" # level_tab_scripts: "Scripts" # level_tab_settings: "Settings" @@ -252,18 +236,11 @@ module.exports = nativeDescription: "українська мова", englishDesc # level_component_edit_title: "Edit Component" # level_system_edit_title: "Edit System" # create_system_title: "Create New System" -# create_system_field_name: "Name" -# create_system_btn_cancel: "Cancel" -# create_system_btn_create: "Create" # new_component_title: "Create New Component" # new_component_field_system: "System" -# new_component_field_name: "Name" -# new_component_btn_cancel: "Cancel" -# new_component_btn_create: "Create" # article: # edit_btn_preview: "Preview" -# edit_btn_save: "Save" # edit_article_title: "Edit Article" # general: @@ -275,6 +252,9 @@ module.exports = nativeDescription: "українська мова", englishDesc # version_history_for: "Version History for: " # results: "Results" # description: "Description" +# or: "or" +# email: "Email" +# message: "Message" # about: # who_is_codecombat: "Who is CodeCombat?" @@ -372,6 +352,7 @@ module.exports = nativeDescription: "українська мова", englishDesc # alert_account_message_pref: "To subscribe for class emails, you'll need to " # alert_account_message_suf: "first." # alert_account_message_create_url: "create an account" +# archmage_summary: "Interested in working on game graphics, user interface design, database and server organization, multiplayer networking, physics, sound, or game engine performance? Want to help build a game to help other people learn what you are good at? We have a lot to do and if you are an experienced programmer and want to develop for CodeCombat, this class is for you. We would love your help building the best programming game ever." # archmage_introduction: "One of the best parts about building games is they synthesize so many different things. Graphics, sound, real-time networking, social networking, and of course many of the more common aspects of programming, from low-level database management, and server administration to user facing design and interface building. There's a lot to do, and if you're an experienced programmer with a hankering to really dive into the nitty-gritty of CodeCombat, this class might be for you. We would love to have your help building the best programming game ever." # class_attributes: "Class Attributes" # archmage_attribute_1_pref: "Knowledge in " @@ -384,10 +365,12 @@ module.exports = nativeDescription: "українська мова", englishDesc # join_desc_4: "and we'll go from there!" # join_url_email: "Email us" # join_url_hipchat: "public HipChat room" -# more_about_archmage: "Learn More About Becoming A Powerful Archmage" +# more_about_archmage: "Learn More About Becoming an Archmage" # archmage_subscribe_desc: "Get emails on new coding opportunities and announcements." +# artisan_summary_pref: "Want to design levels and expand CodeCombat's arsenal? People are playing through our content at a pace faster than we can build! Right now, our level editor is barebone, so be wary. Making levels will be a little challenging and buggy. If you have visions of campaigns spanning for-loops to" +# artisan_summary_suf: "then this class is for you." # artisan_introduction_pref: "We must construct additional levels! People be clamoring for more content, and we can only build so many ourselves. Right now your workstation is level one; our level editor is barely usable even by its creators, so be wary. If you have visions of campaigns spanning for-loops to" -# artisan_introduction_suf: "to then this class might be for you." +# artisan_introduction_suf: "then this class might be for you." # artisan_attribute_1: "Any experience in building content like this would be nice, such as using Blizzard's level editors. But not required!" # artisan_attribute_2: "A hankering to do a whole lot of testing and iteration. To make good levels, you need to take it to others and watch them play it, and be prepared to find a lot of things to fix." # artisan_attribute_3: "For the time being, endurance en par with an Adventurer. Our Level Editor is super preliminary and frustrating to use. You have been warned!" @@ -396,24 +379,28 @@ module.exports = nativeDescription: "українська мова", englishDesc # artisan_join_step2: "Create a new level and explore existing levels." # artisan_join_step3: "Find us in our public HipChat room for help." # artisan_join_step4: "Post your levels on the forum for feedback." -# more_about_artisan: "Learn More About Becoming A Creative Artisan" +# more_about_artisan: "Learn More About Becoming an Artisan" # artisan_subscribe_desc: "Get emails on level editor updates and announcements." +# adventurer_sumamry: "Let us be clear about your role: you are the tank. You are going to take heavy damage. We need people to try out brand-new levels and help identify how to make things better. The pain will be enormous; making good games is a long process and no one gets it right the first time. If you can endure and have a high constitution score, then this class is for you." # adventurer_introduction: "Let's be clear about your role: you are the tank. You're going to take heavy damage. We need people to try out brand-new levels and help identify how to make things better. The pain will be enormous; making good games is a long process and no one gets it right the first time. If you can endure and have a high constitution score, then this class might be for you." # adventurer_attribute_1: "A thirst for learning. You want to learn how to code and we want to teach you how to code. You'll probably be doing most of the teaching in this case, though." # adventurer_attribute_2: "Charismatic. Be gentle but articulate about what needs improving, and offer suggestions on how to improve." # adventurer_join_pref: "Either get together with (or recruit!) an Artisan and work with them, or check the box below to receive emails when there are new levels to test. We'll also be posting about levels to review on our networks like" # adventurer_forum_url: "our forum" # adventurer_join_suf: "so if you prefer to be notified those ways, sign up there!" -# more_about_adventurer: "Learn More About Becoming A Brave Adventurer" +# more_about_adventurer: "Learn More About Becoming an Adventurer" # adventurer_subscribe_desc: "Get emails when there are new levels to test." +# scribe_summary_pref: "CodeCombat is not just going to be a bunch of levels. It will also be a resource of programming knowledge that players can hook into. That way, each Artisan can link to a detailed article that for the player's edification: documentation akin to what the " +# scribe_summary_sufx: " has built. If you enjoy explaining programming concepts, then this class is for you." # scribe_introduction_pref: "CodeCombat isn't just going to be a bunch of levels. It will also include a resource for knowledge, a wiki of programming concepts that levels can hook into. That way rather than each Artisan having to describe in detail what a comparison operator is, they can simply link their level to the Article describing them that is already written for the player's edification. Something along the lines of what the " # scribe_introduction_url_mozilla: "Mozilla Developer Network" # scribe_introduction_suf: " has built. If your idea of fun is articulating the concepts of programming in Markdown form, then this class might be for you." # scribe_attribute_1: "Skill in words is pretty much all you need. Not only grammar and spelling, but able to convey complicated ideas to others." # contact_us_url: "Contact us" # scribe_join_description: "tell us a little about yourself, your experience with programming and what sort of things you'd like to write about. We'll go from there!" -# more_about_scribe: "Learn More About Becoming A Diligent Scribe" +# more_about_scribe: "Learn More About Becoming a Scribe" # scribe_subscribe_desc: "Get emails about article writing announcements." +# diplomat_summary: "There is a large interest in CodeCombat in other countries that do not speak English! We are looking for translators who are willing to spend their time translating the site's corpus of words so that CodeCombat is accessible across the world as soon as possible. If you'd like to help getting CodeCombat international, then this class is for you." # diplomat_introduction_pref: "So, if there's one thing we learned from the " # diplomat_launch_url: "launch in October" # diplomat_introduction_suf: "it's that there is sizeable interest in CodeCombat in other countries, particularly Brazil! We're building a corps of translators eager to turn one set of words into another set of words to get CodeCombat as accessible across the world as possible. If you like getting sneak peeks at upcoming content and getting these levels to your fellow nationals ASAP, then this class might be for you." @@ -421,21 +408,23 @@ module.exports = nativeDescription: "українська мова", englishDesc # diplomat_join_pref: "We've started a lot of initial translations at " # diplomat_doc_url: "this forum post" # diplomat_join_suf: "so check it out and add things for your language. Also, check this box below to keep up-to-date on new internationalization developments!" -# more_about_diplomat: "Learn More About Becoming A Great Diplomat" +# more_about_diplomat: "Learn More About Becoming a Diplomat" # diplomat_subscribe_desc: "Get emails about i18n developments and levels to translate." +# ambassador_summary: "We are trying to build a community, and every community needs a support team when there are troubles. We have got chats, emails, and social networks so that our users can get acquainted with the game. If you want to help people get involved, have fun, and learn some programming, then this class is for you." # ambassador_introduction: "This is a community we're building, and you are the connections. We've got Olark chats, emails, and social networks with lots of people to talk with and help get acquainted with the game and learn from. If you want to help people get involved and have fun, and get a good feel of the pulse of CodeCombat and where we're going, then this class might be for you." # ambassador_attribute_1: "Communication skills. Be able to identify the problems players are having and help them solve them. Also, keep the rest of us informed about what players are saying, what they like and don't like and want more of!" # ambassador_join_desc: "tell us a little about yourself, what you've done and what you'd be interested in doing. We'll go from there!" # ambassador_join_note_strong: "Note" # ambassador_join_note_desc: "One of our top priorities is to build multiplayer where players having difficulty solving levels can summon higher level wizards to help them. This will be a great way for ambassadors to do their thing. We'll keep you posted!" -# more_about_ambassador: "Learn More About Becoming A Helpful Ambassador" +# more_about_ambassador: "Learn More About Becoming an Ambassador" # ambassador_subscribe_desc: "Get emails on support updates and multiplayer developments." +# counselor_summary: "None of the above roles fit what you are interested in? Do not worry, we are on the lookout for anybody who wants a hand in the development of CodeCombat! If you are interested in teaching, game development, open source management, or anything else that you think will be relevant to us, then this class is for you." # counselor_introduction_1: "Do you have life experience? A different perspective on things that can help us decide how to shape CodeCombat? Of all these roles, this will probably take the least time, but individually you may make the most difference. We're on the lookout for wisened sages, particularly in areas like: teaching, game development, open source project management, technical recruiting, entrepreneurship, or design." # counselor_introduction_2: "Or really anything that is relevant to the development of CodeCombat. If you have knowledge and want to share it to help grow this project, then this class might be for you." # counselor_attribute_1: "Experience, in any of the areas above or something you think might be helpful." # counselor_attribute_2: "A little bit of free time!" # counselor_join_desc: "tell us a little about yourself, what you've done and what you'd be interested in doing. We'll put you in our contact list and be in touch when we could use advice (not too often)." -# more_about_counselor: "Learn More About Becoming A Valuable Counselor" +# more_about_counselor: "Learn More About Becoming a Counselor" # changes_auto_save: "Changes are saved automatically when you toggle checkboxes." # diligent_scribes: "Our Diligent Scribes:" # powerful_archmages: "Our Powerful Archmages:" diff --git a/app/locale/ur.coffee b/app/locale/ur.coffee index 50fadbea8..4d78b382c 100644 --- a/app/locale/ur.coffee +++ b/app/locale/ur.coffee @@ -352,6 +352,7 @@ module.exports = nativeDescription: "اُردُو", englishDescription: "Urdu", # alert_account_message_pref: "To subscribe for class emails, you'll need to " # alert_account_message_suf: "first." # alert_account_message_create_url: "create an account" +# archmage_summary: "Interested in working on game graphics, user interface design, database and server organization, multiplayer networking, physics, sound, or game engine performance? Want to help build a game to help other people learn what you are good at? We have a lot to do and if you are an experienced programmer and want to develop for CodeCombat, this class is for you. We would love your help building the best programming game ever." # archmage_introduction: "One of the best parts about building games is they synthesize so many different things. Graphics, sound, real-time networking, social networking, and of course many of the more common aspects of programming, from low-level database management, and server administration to user facing design and interface building. There's a lot to do, and if you're an experienced programmer with a hankering to really dive into the nitty-gritty of CodeCombat, this class might be for you. We would love to have your help building the best programming game ever." # class_attributes: "Class Attributes" # archmage_attribute_1_pref: "Knowledge in " @@ -364,10 +365,12 @@ module.exports = nativeDescription: "اُردُو", englishDescription: "Urdu", # join_desc_4: "and we'll go from there!" # join_url_email: "Email us" # join_url_hipchat: "public HipChat room" -# more_about_archmage: "Learn More About Becoming A Powerful Archmage" +# more_about_archmage: "Learn More About Becoming an Archmage" # archmage_subscribe_desc: "Get emails on new coding opportunities and announcements." +# artisan_summary_pref: "Want to design levels and expand CodeCombat's arsenal? People are playing through our content at a pace faster than we can build! Right now, our level editor is barebone, so be wary. Making levels will be a little challenging and buggy. If you have visions of campaigns spanning for-loops to" +# artisan_summary_suf: "then this class is for you." # artisan_introduction_pref: "We must construct additional levels! People be clamoring for more content, and we can only build so many ourselves. Right now your workstation is level one; our level editor is barely usable even by its creators, so be wary. If you have visions of campaigns spanning for-loops to" -# artisan_introduction_suf: "to then this class might be for you." +# artisan_introduction_suf: "then this class might be for you." # artisan_attribute_1: "Any experience in building content like this would be nice, such as using Blizzard's level editors. But not required!" # artisan_attribute_2: "A hankering to do a whole lot of testing and iteration. To make good levels, you need to take it to others and watch them play it, and be prepared to find a lot of things to fix." # artisan_attribute_3: "For the time being, endurance en par with an Adventurer. Our Level Editor is super preliminary and frustrating to use. You have been warned!" @@ -376,24 +379,28 @@ module.exports = nativeDescription: "اُردُو", englishDescription: "Urdu", # artisan_join_step2: "Create a new level and explore existing levels." # artisan_join_step3: "Find us in our public HipChat room for help." # artisan_join_step4: "Post your levels on the forum for feedback." -# more_about_artisan: "Learn More About Becoming A Creative Artisan" +# more_about_artisan: "Learn More About Becoming an Artisan" # artisan_subscribe_desc: "Get emails on level editor updates and announcements." +# adventurer_sumamry: "Let us be clear about your role: you are the tank. You are going to take heavy damage. We need people to try out brand-new levels and help identify how to make things better. The pain will be enormous; making good games is a long process and no one gets it right the first time. If you can endure and have a high constitution score, then this class is for you." # adventurer_introduction: "Let's be clear about your role: you are the tank. You're going to take heavy damage. We need people to try out brand-new levels and help identify how to make things better. The pain will be enormous; making good games is a long process and no one gets it right the first time. If you can endure and have a high constitution score, then this class might be for you." # adventurer_attribute_1: "A thirst for learning. You want to learn how to code and we want to teach you how to code. You'll probably be doing most of the teaching in this case, though." # adventurer_attribute_2: "Charismatic. Be gentle but articulate about what needs improving, and offer suggestions on how to improve." # adventurer_join_pref: "Either get together with (or recruit!) an Artisan and work with them, or check the box below to receive emails when there are new levels to test. We'll also be posting about levels to review on our networks like" # adventurer_forum_url: "our forum" # adventurer_join_suf: "so if you prefer to be notified those ways, sign up there!" -# more_about_adventurer: "Learn More About Becoming A Brave Adventurer" +# more_about_adventurer: "Learn More About Becoming an Adventurer" # adventurer_subscribe_desc: "Get emails when there are new levels to test." +# scribe_summary_pref: "CodeCombat is not just going to be a bunch of levels. It will also be a resource of programming knowledge that players can hook into. That way, each Artisan can link to a detailed article that for the player's edification: documentation akin to what the " +# scribe_summary_sufx: " has built. If you enjoy explaining programming concepts, then this class is for you." # scribe_introduction_pref: "CodeCombat isn't just going to be a bunch of levels. It will also include a resource for knowledge, a wiki of programming concepts that levels can hook into. That way rather than each Artisan having to describe in detail what a comparison operator is, they can simply link their level to the Article describing them that is already written for the player's edification. Something along the lines of what the " # scribe_introduction_url_mozilla: "Mozilla Developer Network" # scribe_introduction_suf: " has built. If your idea of fun is articulating the concepts of programming in Markdown form, then this class might be for you." # scribe_attribute_1: "Skill in words is pretty much all you need. Not only grammar and spelling, but able to convey complicated ideas to others." # contact_us_url: "Contact us" # scribe_join_description: "tell us a little about yourself, your experience with programming and what sort of things you'd like to write about. We'll go from there!" -# more_about_scribe: "Learn More About Becoming A Diligent Scribe" +# more_about_scribe: "Learn More About Becoming a Scribe" # scribe_subscribe_desc: "Get emails about article writing announcements." +# diplomat_summary: "There is a large interest in CodeCombat in other countries that do not speak English! We are looking for translators who are willing to spend their time translating the site's corpus of words so that CodeCombat is accessible across the world as soon as possible. If you'd like to help getting CodeCombat international, then this class is for you." # diplomat_introduction_pref: "So, if there's one thing we learned from the " # diplomat_launch_url: "launch in October" # diplomat_introduction_suf: "it's that there is sizeable interest in CodeCombat in other countries, particularly Brazil! We're building a corps of translators eager to turn one set of words into another set of words to get CodeCombat as accessible across the world as possible. If you like getting sneak peeks at upcoming content and getting these levels to your fellow nationals ASAP, then this class might be for you." @@ -401,21 +408,23 @@ module.exports = nativeDescription: "اُردُو", englishDescription: "Urdu", # diplomat_join_pref: "We've started a lot of initial translations at " # diplomat_doc_url: "this forum post" # diplomat_join_suf: "so check it out and add things for your language. Also, check this box below to keep up-to-date on new internationalization developments!" -# more_about_diplomat: "Learn More About Becoming A Great Diplomat" +# more_about_diplomat: "Learn More About Becoming a Diplomat" # diplomat_subscribe_desc: "Get emails about i18n developments and levels to translate." +# ambassador_summary: "We are trying to build a community, and every community needs a support team when there are troubles. We have got chats, emails, and social networks so that our users can get acquainted with the game. If you want to help people get involved, have fun, and learn some programming, then this class is for you." # ambassador_introduction: "This is a community we're building, and you are the connections. We've got Olark chats, emails, and social networks with lots of people to talk with and help get acquainted with the game and learn from. If you want to help people get involved and have fun, and get a good feel of the pulse of CodeCombat and where we're going, then this class might be for you." # ambassador_attribute_1: "Communication skills. Be able to identify the problems players are having and help them solve them. Also, keep the rest of us informed about what players are saying, what they like and don't like and want more of!" # ambassador_join_desc: "tell us a little about yourself, what you've done and what you'd be interested in doing. We'll go from there!" # ambassador_join_note_strong: "Note" # ambassador_join_note_desc: "One of our top priorities is to build multiplayer where players having difficulty solving levels can summon higher level wizards to help them. This will be a great way for ambassadors to do their thing. We'll keep you posted!" -# more_about_ambassador: "Learn More About Becoming A Helpful Ambassador" +# more_about_ambassador: "Learn More About Becoming an Ambassador" # ambassador_subscribe_desc: "Get emails on support updates and multiplayer developments." +# counselor_summary: "None of the above roles fit what you are interested in? Do not worry, we are on the lookout for anybody who wants a hand in the development of CodeCombat! If you are interested in teaching, game development, open source management, or anything else that you think will be relevant to us, then this class is for you." # counselor_introduction_1: "Do you have life experience? A different perspective on things that can help us decide how to shape CodeCombat? Of all these roles, this will probably take the least time, but individually you may make the most difference. We're on the lookout for wisened sages, particularly in areas like: teaching, game development, open source project management, technical recruiting, entrepreneurship, or design." # counselor_introduction_2: "Or really anything that is relevant to the development of CodeCombat. If you have knowledge and want to share it to help grow this project, then this class might be for you." # counselor_attribute_1: "Experience, in any of the areas above or something you think might be helpful." # counselor_attribute_2: "A little bit of free time!" # counselor_join_desc: "tell us a little about yourself, what you've done and what you'd be interested in doing. We'll put you in our contact list and be in touch when we could use advice (not too often)." -# more_about_counselor: "Learn More About Becoming A Valuable Counselor" +# more_about_counselor: "Learn More About Becoming a Counselor" # changes_auto_save: "Changes are saved automatically when you toggle checkboxes." # diligent_scribes: "Our Diligent Scribes:" # powerful_archmages: "Our Powerful Archmages:" diff --git a/app/locale/vi.coffee b/app/locale/vi.coffee index 0c253c42e..324fc224e 100644 --- a/app/locale/vi.coffee +++ b/app/locale/vi.coffee @@ -352,6 +352,7 @@ module.exports = nativeDescription: "Tiếng Việt", englishDescription: "Vietn # alert_account_message_pref: "To subscribe for class emails, you'll need to " # alert_account_message_suf: "first." # alert_account_message_create_url: "create an account" +# archmage_summary: "Interested in working on game graphics, user interface design, database and server organization, multiplayer networking, physics, sound, or game engine performance? Want to help build a game to help other people learn what you are good at? We have a lot to do and if you are an experienced programmer and want to develop for CodeCombat, this class is for you. We would love your help building the best programming game ever." # archmage_introduction: "One of the best parts about building games is they synthesize so many different things. Graphics, sound, real-time networking, social networking, and of course many of the more common aspects of programming, from low-level database management, and server administration to user facing design and interface building. There's a lot to do, and if you're an experienced programmer with a hankering to really dive into the nitty-gritty of CodeCombat, this class might be for you. We would love to have your help building the best programming game ever." # class_attributes: "Class Attributes" # archmage_attribute_1_pref: "Knowledge in " @@ -364,10 +365,12 @@ module.exports = nativeDescription: "Tiếng Việt", englishDescription: "Vietn # join_desc_4: "and we'll go from there!" # join_url_email: "Email us" # join_url_hipchat: "public HipChat room" -# more_about_archmage: "Learn More About Becoming A Powerful Archmage" +# more_about_archmage: "Learn More About Becoming an Archmage" # archmage_subscribe_desc: "Get emails on new coding opportunities and announcements." +# artisan_summary_pref: "Want to design levels and expand CodeCombat's arsenal? People are playing through our content at a pace faster than we can build! Right now, our level editor is barebone, so be wary. Making levels will be a little challenging and buggy. If you have visions of campaigns spanning for-loops to" +# artisan_summary_suf: "then this class is for you." # artisan_introduction_pref: "We must construct additional levels! People be clamoring for more content, and we can only build so many ourselves. Right now your workstation is level one; our level editor is barely usable even by its creators, so be wary. If you have visions of campaigns spanning for-loops to" -# artisan_introduction_suf: "to then this class might be for you." +# artisan_introduction_suf: "then this class might be for you." # artisan_attribute_1: "Any experience in building content like this would be nice, such as using Blizzard's level editors. But not required!" # artisan_attribute_2: "A hankering to do a whole lot of testing and iteration. To make good levels, you need to take it to others and watch them play it, and be prepared to find a lot of things to fix." # artisan_attribute_3: "For the time being, endurance en par with an Adventurer. Our Level Editor is super preliminary and frustrating to use. You have been warned!" @@ -376,24 +379,28 @@ module.exports = nativeDescription: "Tiếng Việt", englishDescription: "Vietn # artisan_join_step2: "Create a new level and explore existing levels." # artisan_join_step3: "Find us in our public HipChat room for help." # artisan_join_step4: "Post your levels on the forum for feedback." -# more_about_artisan: "Learn More About Becoming A Creative Artisan" +# more_about_artisan: "Learn More About Becoming an Artisan" # artisan_subscribe_desc: "Get emails on level editor updates and announcements." +# adventurer_sumamry: "Let us be clear about your role: you are the tank. You are going to take heavy damage. We need people to try out brand-new levels and help identify how to make things better. The pain will be enormous; making good games is a long process and no one gets it right the first time. If you can endure and have a high constitution score, then this class is for you." # adventurer_introduction: "Let's be clear about your role: you are the tank. You're going to take heavy damage. We need people to try out brand-new levels and help identify how to make things better. The pain will be enormous; making good games is a long process and no one gets it right the first time. If you can endure and have a high constitution score, then this class might be for you." # adventurer_attribute_1: "A thirst for learning. You want to learn how to code and we want to teach you how to code. You'll probably be doing most of the teaching in this case, though." # adventurer_attribute_2: "Charismatic. Be gentle but articulate about what needs improving, and offer suggestions on how to improve." # adventurer_join_pref: "Either get together with (or recruit!) an Artisan and work with them, or check the box below to receive emails when there are new levels to test. We'll also be posting about levels to review on our networks like" # adventurer_forum_url: "our forum" # adventurer_join_suf: "so if you prefer to be notified those ways, sign up there!" -# more_about_adventurer: "Learn More About Becoming A Brave Adventurer" +# more_about_adventurer: "Learn More About Becoming an Adventurer" # adventurer_subscribe_desc: "Get emails when there are new levels to test." +# scribe_summary_pref: "CodeCombat is not just going to be a bunch of levels. It will also be a resource of programming knowledge that players can hook into. That way, each Artisan can link to a detailed article that for the player's edification: documentation akin to what the " +# scribe_summary_sufx: " has built. If you enjoy explaining programming concepts, then this class is for you." # scribe_introduction_pref: "CodeCombat isn't just going to be a bunch of levels. It will also include a resource for knowledge, a wiki of programming concepts that levels can hook into. That way rather than each Artisan having to describe in detail what a comparison operator is, they can simply link their level to the Article describing them that is already written for the player's edification. Something along the lines of what the " # scribe_introduction_url_mozilla: "Mozilla Developer Network" # scribe_introduction_suf: " has built. If your idea of fun is articulating the concepts of programming in Markdown form, then this class might be for you." # scribe_attribute_1: "Skill in words is pretty much all you need. Not only grammar and spelling, but able to convey complicated ideas to others." # contact_us_url: "Contact us" # scribe_join_description: "tell us a little about yourself, your experience with programming and what sort of things you'd like to write about. We'll go from there!" -# more_about_scribe: "Learn More About Becoming A Diligent Scribe" +# more_about_scribe: "Learn More About Becoming a Scribe" # scribe_subscribe_desc: "Get emails about article writing announcements." +# diplomat_summary: "There is a large interest in CodeCombat in other countries that do not speak English! We are looking for translators who are willing to spend their time translating the site's corpus of words so that CodeCombat is accessible across the world as soon as possible. If you'd like to help getting CodeCombat international, then this class is for you." # diplomat_introduction_pref: "So, if there's one thing we learned from the " # diplomat_launch_url: "launch in October" # diplomat_introduction_suf: "it's that there is sizeable interest in CodeCombat in other countries, particularly Brazil! We're building a corps of translators eager to turn one set of words into another set of words to get CodeCombat as accessible across the world as possible. If you like getting sneak peeks at upcoming content and getting these levels to your fellow nationals ASAP, then this class might be for you." @@ -401,21 +408,23 @@ module.exports = nativeDescription: "Tiếng Việt", englishDescription: "Vietn # diplomat_join_pref: "We've started a lot of initial translations at " # diplomat_doc_url: "this forum post" # diplomat_join_suf: "so check it out and add things for your language. Also, check this box below to keep up-to-date on new internationalization developments!" -# more_about_diplomat: "Learn More About Becoming A Great Diplomat" +# more_about_diplomat: "Learn More About Becoming a Diplomat" # diplomat_subscribe_desc: "Get emails about i18n developments and levels to translate." +# ambassador_summary: "We are trying to build a community, and every community needs a support team when there are troubles. We have got chats, emails, and social networks so that our users can get acquainted with the game. If you want to help people get involved, have fun, and learn some programming, then this class is for you." # ambassador_introduction: "This is a community we're building, and you are the connections. We've got Olark chats, emails, and social networks with lots of people to talk with and help get acquainted with the game and learn from. If you want to help people get involved and have fun, and get a good feel of the pulse of CodeCombat and where we're going, then this class might be for you." # ambassador_attribute_1: "Communication skills. Be able to identify the problems players are having and help them solve them. Also, keep the rest of us informed about what players are saying, what they like and don't like and want more of!" # ambassador_join_desc: "tell us a little about yourself, what you've done and what you'd be interested in doing. We'll go from there!" # ambassador_join_note_strong: "Note" # ambassador_join_note_desc: "One of our top priorities is to build multiplayer where players having difficulty solving levels can summon higher level wizards to help them. This will be a great way for ambassadors to do their thing. We'll keep you posted!" -# more_about_ambassador: "Learn More About Becoming A Helpful Ambassador" +# more_about_ambassador: "Learn More About Becoming an Ambassador" # ambassador_subscribe_desc: "Get emails on support updates and multiplayer developments." +# counselor_summary: "None of the above roles fit what you are interested in? Do not worry, we are on the lookout for anybody who wants a hand in the development of CodeCombat! If you are interested in teaching, game development, open source management, or anything else that you think will be relevant to us, then this class is for you." # counselor_introduction_1: "Do you have life experience? A different perspective on things that can help us decide how to shape CodeCombat? Of all these roles, this will probably take the least time, but individually you may make the most difference. We're on the lookout for wisened sages, particularly in areas like: teaching, game development, open source project management, technical recruiting, entrepreneurship, or design." # counselor_introduction_2: "Or really anything that is relevant to the development of CodeCombat. If you have knowledge and want to share it to help grow this project, then this class might be for you." # counselor_attribute_1: "Experience, in any of the areas above or something you think might be helpful." # counselor_attribute_2: "A little bit of free time!" # counselor_join_desc: "tell us a little about yourself, what you've done and what you'd be interested in doing. We'll put you in our contact list and be in touch when we could use advice (not too often)." -# more_about_counselor: "Learn More About Becoming A Valuable Counselor" +# more_about_counselor: "Learn More About Becoming a Counselor" # changes_auto_save: "Changes are saved automatically when you toggle checkboxes." # diligent_scribes: "Our Diligent Scribes:" # powerful_archmages: "Our Powerful Archmages:" diff --git a/app/locale/zh-HANS.coffee b/app/locale/zh-HANS.coffee index 155b3e6e3..3e739620a 100644 --- a/app/locale/zh-HANS.coffee +++ b/app/locale/zh-HANS.coffee @@ -136,7 +136,7 @@ module.exports = nativeDescription: "简体中文", englishDescription: "Chinese account_profile: edit_settings: "编辑设置" profile_for_prefix: "关于TA的基本资料:" - profile_for_suffix: "" +# profile_for_suffix: "" profile: "基本资料" user_not_found: "没有找到用户。检查URL?" gravatar_not_found_mine: "我们找不到TA的基本资料:" @@ -164,7 +164,7 @@ module.exports = nativeDescription: "简体中文", englishDescription: "Chinese reload_title: "重载所有代码?" reload_really: "确定重载这一关,返回开始处吗?" reload_confirm: "重载所有" - victory_title_prefix: "" +# victory_title_prefix: "" victory_title_suffix: " 完成" victory_sign_up: "保存进度" victory_sign_up_poke: "想保存你的代码?创建一个免费账户吧!" @@ -245,16 +245,16 @@ module.exports = nativeDescription: "简体中文", englishDescription: "Chinese # general: # and: "and" - or: "或" - name: "名字" +# name: "Name" # body: "Body" # version: "Version" # commit_msg: "Commit Message" # version_history_for: "Version History for: " # results: "Results" # description: "Description" - email: "邮箱" - message: "留言" +# or: "or" +# email: "Email" +# message: "Message" # about: # who_is_codecombat: "Who is CodeCombat?" @@ -352,6 +352,7 @@ module.exports = nativeDescription: "简体中文", englishDescription: "Chinese # alert_account_message_pref: "To subscribe for class emails, you'll need to " # alert_account_message_suf: "first." # alert_account_message_create_url: "create an account" +# archmage_summary: "Interested in working on game graphics, user interface design, database and server organization, multiplayer networking, physics, sound, or game engine performance? Want to help build a game to help other people learn what you are good at? We have a lot to do and if you are an experienced programmer and want to develop for CodeCombat, this class is for you. We would love your help building the best programming game ever." # archmage_introduction: "One of the best parts about building games is they synthesize so many different things. Graphics, sound, real-time networking, social networking, and of course many of the more common aspects of programming, from low-level database management, and server administration to user facing design and interface building. There's a lot to do, and if you're an experienced programmer with a hankering to really dive into the nitty-gritty of CodeCombat, this class might be for you. We would love to have your help building the best programming game ever." # class_attributes: "Class Attributes" # archmage_attribute_1_pref: "Knowledge in " @@ -364,10 +365,12 @@ module.exports = nativeDescription: "简体中文", englishDescription: "Chinese # join_desc_4: "and we'll go from there!" # join_url_email: "Email us" # join_url_hipchat: "public HipChat room" -# more_about_archmage: "Learn More About Becoming A Powerful Archmage" +# more_about_archmage: "Learn More About Becoming an Archmage" # archmage_subscribe_desc: "Get emails on new coding opportunities and announcements." +# artisan_summary_pref: "Want to design levels and expand CodeCombat's arsenal? People are playing through our content at a pace faster than we can build! Right now, our level editor is barebone, so be wary. Making levels will be a little challenging and buggy. If you have visions of campaigns spanning for-loops to" +# artisan_summary_suf: "then this class is for you." # artisan_introduction_pref: "We must construct additional levels! People be clamoring for more content, and we can only build so many ourselves. Right now your workstation is level one; our level editor is barely usable even by its creators, so be wary. If you have visions of campaigns spanning for-loops to" -# artisan_introduction_suf: "to then this class might be for you." +# artisan_introduction_suf: "then this class might be for you." # artisan_attribute_1: "Any experience in building content like this would be nice, such as using Blizzard's level editors. But not required!" # artisan_attribute_2: "A hankering to do a whole lot of testing and iteration. To make good levels, you need to take it to others and watch them play it, and be prepared to find a lot of things to fix." # artisan_attribute_3: "For the time being, endurance en par with an Adventurer. Our Level Editor is super preliminary and frustrating to use. You have been warned!" @@ -376,24 +379,28 @@ module.exports = nativeDescription: "简体中文", englishDescription: "Chinese # artisan_join_step2: "Create a new level and explore existing levels." # artisan_join_step3: "Find us in our public HipChat room for help." # artisan_join_step4: "Post your levels on the forum for feedback." -# more_about_artisan: "Learn More About Becoming A Creative Artisan" +# more_about_artisan: "Learn More About Becoming an Artisan" # artisan_subscribe_desc: "Get emails on level editor updates and announcements." +# adventurer_sumamry: "Let us be clear about your role: you are the tank. You are going to take heavy damage. We need people to try out brand-new levels and help identify how to make things better. The pain will be enormous; making good games is a long process and no one gets it right the first time. If you can endure and have a high constitution score, then this class is for you." # adventurer_introduction: "Let's be clear about your role: you are the tank. You're going to take heavy damage. We need people to try out brand-new levels and help identify how to make things better. The pain will be enormous; making good games is a long process and no one gets it right the first time. If you can endure and have a high constitution score, then this class might be for you." # adventurer_attribute_1: "A thirst for learning. You want to learn how to code and we want to teach you how to code. You'll probably be doing most of the teaching in this case, though." # adventurer_attribute_2: "Charismatic. Be gentle but articulate about what needs improving, and offer suggestions on how to improve." # adventurer_join_pref: "Either get together with (or recruit!) an Artisan and work with them, or check the box below to receive emails when there are new levels to test. We'll also be posting about levels to review on our networks like" # adventurer_forum_url: "our forum" # adventurer_join_suf: "so if you prefer to be notified those ways, sign up there!" -# more_about_adventurer: "Learn More About Becoming A Brave Adventurer" +# more_about_adventurer: "Learn More About Becoming an Adventurer" # adventurer_subscribe_desc: "Get emails when there are new levels to test." +# scribe_summary_pref: "CodeCombat is not just going to be a bunch of levels. It will also be a resource of programming knowledge that players can hook into. That way, each Artisan can link to a detailed article that for the player's edification: documentation akin to what the " +# scribe_summary_sufx: " has built. If you enjoy explaining programming concepts, then this class is for you." # scribe_introduction_pref: "CodeCombat isn't just going to be a bunch of levels. It will also include a resource for knowledge, a wiki of programming concepts that levels can hook into. That way rather than each Artisan having to describe in detail what a comparison operator is, they can simply link their level to the Article describing them that is already written for the player's edification. Something along the lines of what the " # scribe_introduction_url_mozilla: "Mozilla Developer Network" # scribe_introduction_suf: " has built. If your idea of fun is articulating the concepts of programming in Markdown form, then this class might be for you." # scribe_attribute_1: "Skill in words is pretty much all you need. Not only grammar and spelling, but able to convey complicated ideas to others." # contact_us_url: "Contact us" # scribe_join_description: "tell us a little about yourself, your experience with programming and what sort of things you'd like to write about. We'll go from there!" -# more_about_scribe: "Learn More About Becoming A Diligent Scribe" +# more_about_scribe: "Learn More About Becoming a Scribe" # scribe_subscribe_desc: "Get emails about article writing announcements." +# diplomat_summary: "There is a large interest in CodeCombat in other countries that do not speak English! We are looking for translators who are willing to spend their time translating the site's corpus of words so that CodeCombat is accessible across the world as soon as possible. If you'd like to help getting CodeCombat international, then this class is for you." # diplomat_introduction_pref: "So, if there's one thing we learned from the " # diplomat_launch_url: "launch in October" # diplomat_introduction_suf: "it's that there is sizeable interest in CodeCombat in other countries, particularly Brazil! We're building a corps of translators eager to turn one set of words into another set of words to get CodeCombat as accessible across the world as possible. If you like getting sneak peeks at upcoming content and getting these levels to your fellow nationals ASAP, then this class might be for you." @@ -401,21 +408,23 @@ module.exports = nativeDescription: "简体中文", englishDescription: "Chinese # diplomat_join_pref: "We've started a lot of initial translations at " # diplomat_doc_url: "this forum post" # diplomat_join_suf: "so check it out and add things for your language. Also, check this box below to keep up-to-date on new internationalization developments!" -# more_about_diplomat: "Learn More About Becoming A Great Diplomat" +# more_about_diplomat: "Learn More About Becoming a Diplomat" # diplomat_subscribe_desc: "Get emails about i18n developments and levels to translate." +# ambassador_summary: "We are trying to build a community, and every community needs a support team when there are troubles. We have got chats, emails, and social networks so that our users can get acquainted with the game. If you want to help people get involved, have fun, and learn some programming, then this class is for you." # ambassador_introduction: "This is a community we're building, and you are the connections. We've got Olark chats, emails, and social networks with lots of people to talk with and help get acquainted with the game and learn from. If you want to help people get involved and have fun, and get a good feel of the pulse of CodeCombat and where we're going, then this class might be for you." # ambassador_attribute_1: "Communication skills. Be able to identify the problems players are having and help them solve them. Also, keep the rest of us informed about what players are saying, what they like and don't like and want more of!" # ambassador_join_desc: "tell us a little about yourself, what you've done and what you'd be interested in doing. We'll go from there!" # ambassador_join_note_strong: "Note" # ambassador_join_note_desc: "One of our top priorities is to build multiplayer where players having difficulty solving levels can summon higher level wizards to help them. This will be a great way for ambassadors to do their thing. We'll keep you posted!" -# more_about_ambassador: "Learn More About Becoming A Helpful Ambassador" +# more_about_ambassador: "Learn More About Becoming an Ambassador" # ambassador_subscribe_desc: "Get emails on support updates and multiplayer developments." +# counselor_summary: "None of the above roles fit what you are interested in? Do not worry, we are on the lookout for anybody who wants a hand in the development of CodeCombat! If you are interested in teaching, game development, open source management, or anything else that you think will be relevant to us, then this class is for you." # counselor_introduction_1: "Do you have life experience? A different perspective on things that can help us decide how to shape CodeCombat? Of all these roles, this will probably take the least time, but individually you may make the most difference. We're on the lookout for wisened sages, particularly in areas like: teaching, game development, open source project management, technical recruiting, entrepreneurship, or design." # counselor_introduction_2: "Or really anything that is relevant to the development of CodeCombat. If you have knowledge and want to share it to help grow this project, then this class might be for you." # counselor_attribute_1: "Experience, in any of the areas above or something you think might be helpful." # counselor_attribute_2: "A little bit of free time!" # counselor_join_desc: "tell us a little about yourself, what you've done and what you'd be interested in doing. We'll put you in our contact list and be in touch when we could use advice (not too often)." -# more_about_counselor: "Learn More About Becoming A Valuable Counselor" +# more_about_counselor: "Learn More About Becoming a Counselor" # changes_auto_save: "Changes are saved automatically when you toggle checkboxes." # diligent_scribes: "Our Diligent Scribes:" # powerful_archmages: "Our Powerful Archmages:" diff --git a/app/locale/zh-HANT.coffee b/app/locale/zh-HANT.coffee index 4f18b48e2..96dbe9ff9 100644 --- a/app/locale/zh-HANT.coffee +++ b/app/locale/zh-HANT.coffee @@ -10,7 +10,7 @@ module.exports = nativeDescription: "繁体中文", englishDescription: "Chinese delay_5_sec: "5 秒" manual: "手動發動" fork: "Fork" - play: "播放" # Play timeline in a level. + play: "播放" modal: close: "關閉" @@ -22,12 +22,12 @@ module.exports = nativeDescription: "繁体中文", englishDescription: "Chinese nav: play: "開始遊戲" editor: "編輯" - blog: "官方部落格" # Official blog + blog: "官方部落格" forum: "論壇" admin: "系統管理員" home: "首頁" contribute: "貢獻" - legal: "版權聲明" # Copyright + legal: "版權聲明" about: "關於" contact: "聯繫我們" twitter_follow: "在Twitter關注" @@ -91,7 +91,6 @@ module.exports = nativeDescription: "繁体中文", englishDescription: "Chinese forum_prefix: "如果有任何問題, 請至" forum_page: "論壇" forum_suffix: "討論。" - sending: "發送中。。。" send: "意見反饋" diplomat_suggestion: @@ -117,7 +116,7 @@ module.exports = nativeDescription: "繁体中文", englishDescription: "Chinese emails_tab: "郵件" gravatar_select: "選擇一個Gravatar" gravatar_add_photos: "上傳頭像到Gravatar" - # gravatar_add_more_photos: "Add thumbnails and photos to a Gravatar account for your email to choose an image." +# gravatar_add_more_photos: "Add more photos to your Gravatar account to access them here." wizard_color: "巫師 衣服 顏色" new_password: "新密碼" new_password_verify: "確認密碼" @@ -165,7 +164,7 @@ module.exports = nativeDescription: "繁体中文", englishDescription: "Chinese reload_title: "重新載入程式碼?" reload_really: "確定重設所有的程式碼?" reload_confirm: "重設所有程式碼" - victory_title_prefix: "" +# victory_title_prefix: "" victory_title_suffix: " 完成" victory_sign_up: "保存進度" victory_sign_up_poke: "想保存你的程式碼?建立一個免費帳號吧!" @@ -246,7 +245,6 @@ module.exports = nativeDescription: "繁体中文", englishDescription: "Chinese general: # and: "and" - or: "或" name: "名字" # body: "Body" # version: "Version" @@ -254,6 +252,7 @@ module.exports = nativeDescription: "繁体中文", englishDescription: "Chinese # version_history_for: "Version History for: " # results: "Results" # description: "Description" + or: "或" # email: "Email" message: "訊息" @@ -353,6 +352,7 @@ module.exports = nativeDescription: "繁体中文", englishDescription: "Chinese # alert_account_message_pref: "To subscribe for class emails, you'll need to " # alert_account_message_suf: "first." # alert_account_message_create_url: "create an account" +# archmage_summary: "Interested in working on game graphics, user interface design, database and server organization, multiplayer networking, physics, sound, or game engine performance? Want to help build a game to help other people learn what you are good at? We have a lot to do and if you are an experienced programmer and want to develop for CodeCombat, this class is for you. We would love your help building the best programming game ever." # archmage_introduction: "One of the best parts about building games is they synthesize so many different things. Graphics, sound, real-time networking, social networking, and of course many of the more common aspects of programming, from low-level database management, and server administration to user facing design and interface building. There's a lot to do, and if you're an experienced programmer with a hankering to really dive into the nitty-gritty of CodeCombat, this class might be for you. We would love to have your help building the best programming game ever." # class_attributes: "Class Attributes" # archmage_attribute_1_pref: "Knowledge in " @@ -365,10 +365,12 @@ module.exports = nativeDescription: "繁体中文", englishDescription: "Chinese # join_desc_4: "and we'll go from there!" # join_url_email: "Email us" # join_url_hipchat: "public HipChat room" -# more_about_archmage: "Learn More About Becoming A Powerful Archmage" +# more_about_archmage: "Learn More About Becoming an Archmage" # archmage_subscribe_desc: "Get emails on new coding opportunities and announcements." +# artisan_summary_pref: "Want to design levels and expand CodeCombat's arsenal? People are playing through our content at a pace faster than we can build! Right now, our level editor is barebone, so be wary. Making levels will be a little challenging and buggy. If you have visions of campaigns spanning for-loops to" +# artisan_summary_suf: "then this class is for you." # artisan_introduction_pref: "We must construct additional levels! People be clamoring for more content, and we can only build so many ourselves. Right now your workstation is level one; our level editor is barely usable even by its creators, so be wary. If you have visions of campaigns spanning for-loops to" -# artisan_introduction_suf: "to then this class might be for you." +# artisan_introduction_suf: "then this class might be for you." # artisan_attribute_1: "Any experience in building content like this would be nice, such as using Blizzard's level editors. But not required!" # artisan_attribute_2: "A hankering to do a whole lot of testing and iteration. To make good levels, you need to take it to others and watch them play it, and be prepared to find a lot of things to fix." # artisan_attribute_3: "For the time being, endurance en par with an Adventurer. Our Level Editor is super preliminary and frustrating to use. You have been warned!" @@ -377,24 +379,28 @@ module.exports = nativeDescription: "繁体中文", englishDescription: "Chinese # artisan_join_step2: "Create a new level and explore existing levels." # artisan_join_step3: "Find us in our public HipChat room for help." # artisan_join_step4: "Post your levels on the forum for feedback." -# more_about_artisan: "Learn More About Becoming A Creative Artisan" +# more_about_artisan: "Learn More About Becoming an Artisan" # artisan_subscribe_desc: "Get emails on level editor updates and announcements." +# adventurer_sumamry: "Let us be clear about your role: you are the tank. You are going to take heavy damage. We need people to try out brand-new levels and help identify how to make things better. The pain will be enormous; making good games is a long process and no one gets it right the first time. If you can endure and have a high constitution score, then this class is for you." # adventurer_introduction: "Let's be clear about your role: you are the tank. You're going to take heavy damage. We need people to try out brand-new levels and help identify how to make things better. The pain will be enormous; making good games is a long process and no one gets it right the first time. If you can endure and have a high constitution score, then this class might be for you." # adventurer_attribute_1: "A thirst for learning. You want to learn how to code and we want to teach you how to code. You'll probably be doing most of the teaching in this case, though." # adventurer_attribute_2: "Charismatic. Be gentle but articulate about what needs improving, and offer suggestions on how to improve." # adventurer_join_pref: "Either get together with (or recruit!) an Artisan and work with them, or check the box below to receive emails when there are new levels to test. We'll also be posting about levels to review on our networks like" # adventurer_forum_url: "our forum" # adventurer_join_suf: "so if you prefer to be notified those ways, sign up there!" -# more_about_adventurer: "Learn More About Becoming A Brave Adventurer" +# more_about_adventurer: "Learn More About Becoming an Adventurer" # adventurer_subscribe_desc: "Get emails when there are new levels to test." +# scribe_summary_pref: "CodeCombat is not just going to be a bunch of levels. It will also be a resource of programming knowledge that players can hook into. That way, each Artisan can link to a detailed article that for the player's edification: documentation akin to what the " +# scribe_summary_sufx: " has built. If you enjoy explaining programming concepts, then this class is for you." # scribe_introduction_pref: "CodeCombat isn't just going to be a bunch of levels. It will also include a resource for knowledge, a wiki of programming concepts that levels can hook into. That way rather than each Artisan having to describe in detail what a comparison operator is, they can simply link their level to the Article describing them that is already written for the player's edification. Something along the lines of what the " # scribe_introduction_url_mozilla: "Mozilla Developer Network" # scribe_introduction_suf: " has built. If your idea of fun is articulating the concepts of programming in Markdown form, then this class might be for you." # scribe_attribute_1: "Skill in words is pretty much all you need. Not only grammar and spelling, but able to convey complicated ideas to others." # contact_us_url: "Contact us" # scribe_join_description: "tell us a little about yourself, your experience with programming and what sort of things you'd like to write about. We'll go from there!" -# more_about_scribe: "Learn More About Becoming A Diligent Scribe" +# more_about_scribe: "Learn More About Becoming a Scribe" # scribe_subscribe_desc: "Get emails about article writing announcements." +# diplomat_summary: "There is a large interest in CodeCombat in other countries that do not speak English! We are looking for translators who are willing to spend their time translating the site's corpus of words so that CodeCombat is accessible across the world as soon as possible. If you'd like to help getting CodeCombat international, then this class is for you." # diplomat_introduction_pref: "So, if there's one thing we learned from the " # diplomat_launch_url: "launch in October" # diplomat_introduction_suf: "it's that there is sizeable interest in CodeCombat in other countries, particularly Brazil! We're building a corps of translators eager to turn one set of words into another set of words to get CodeCombat as accessible across the world as possible. If you like getting sneak peeks at upcoming content and getting these levels to your fellow nationals ASAP, then this class might be for you." @@ -402,21 +408,23 @@ module.exports = nativeDescription: "繁体中文", englishDescription: "Chinese # diplomat_join_pref: "We've started a lot of initial translations at " # diplomat_doc_url: "this forum post" # diplomat_join_suf: "so check it out and add things for your language. Also, check this box below to keep up-to-date on new internationalization developments!" -# more_about_diplomat: "Learn More About Becoming A Great Diplomat" +# more_about_diplomat: "Learn More About Becoming a Diplomat" # diplomat_subscribe_desc: "Get emails about i18n developments and levels to translate." +# ambassador_summary: "We are trying to build a community, and every community needs a support team when there are troubles. We have got chats, emails, and social networks so that our users can get acquainted with the game. If you want to help people get involved, have fun, and learn some programming, then this class is for you." # ambassador_introduction: "This is a community we're building, and you are the connections. We've got Olark chats, emails, and social networks with lots of people to talk with and help get acquainted with the game and learn from. If you want to help people get involved and have fun, and get a good feel of the pulse of CodeCombat and where we're going, then this class might be for you." # ambassador_attribute_1: "Communication skills. Be able to identify the problems players are having and help them solve them. Also, keep the rest of us informed about what players are saying, what they like and don't like and want more of!" # ambassador_join_desc: "tell us a little about yourself, what you've done and what you'd be interested in doing. We'll go from there!" # ambassador_join_note_strong: "Note" # ambassador_join_note_desc: "One of our top priorities is to build multiplayer where players having difficulty solving levels can summon higher level wizards to help them. This will be a great way for ambassadors to do their thing. We'll keep you posted!" -# more_about_ambassador: "Learn More About Becoming A Helpful Ambassador" +# more_about_ambassador: "Learn More About Becoming an Ambassador" # ambassador_subscribe_desc: "Get emails on support updates and multiplayer developments." +# counselor_summary: "None of the above roles fit what you are interested in? Do not worry, we are on the lookout for anybody who wants a hand in the development of CodeCombat! If you are interested in teaching, game development, open source management, or anything else that you think will be relevant to us, then this class is for you." # counselor_introduction_1: "Do you have life experience? A different perspective on things that can help us decide how to shape CodeCombat? Of all these roles, this will probably take the least time, but individually you may make the most difference. We're on the lookout for wisened sages, particularly in areas like: teaching, game development, open source project management, technical recruiting, entrepreneurship, or design." # counselor_introduction_2: "Or really anything that is relevant to the development of CodeCombat. If you have knowledge and want to share it to help grow this project, then this class might be for you." # counselor_attribute_1: "Experience, in any of the areas above or something you think might be helpful." # counselor_attribute_2: "A little bit of free time!" # counselor_join_desc: "tell us a little about yourself, what you've done and what you'd be interested in doing. We'll put you in our contact list and be in touch when we could use advice (not too often)." -# more_about_counselor: "Learn More About Becoming A Valuable Counselor" +# more_about_counselor: "Learn More About Becoming a Counselor" # changes_auto_save: "Changes are saved automatically when you toggle checkboxes." # diligent_scribes: "Our Diligent Scribes:" # powerful_archmages: "Our Powerful Archmages:" diff --git a/app/locale/zh.coffee b/app/locale/zh.coffee index 32dc873c8..66c7826df 100644 --- a/app/locale/zh.coffee +++ b/app/locale/zh.coffee @@ -26,7 +26,7 @@ module.exports = nativeDescription: "中文", englishDescription: "Chinese", tra forum: "论坛" admin: "超级管理员" home: "首页" -# contribute: "" +# contribute: "Contribute" legal: "法律" about: "关于" contact: "联系我们" @@ -245,7 +245,6 @@ module.exports = nativeDescription: "中文", englishDescription: "Chinese", tra general: # and: "and" - or: "或" name: "名字" # body: "Body" # version: "Version" @@ -253,6 +252,7 @@ module.exports = nativeDescription: "中文", englishDescription: "Chinese", tra # version_history_for: "Version History for: " # results: "Results" # description: "Description" + or: "或" email: "邮箱" message: "留言" @@ -352,6 +352,7 @@ module.exports = nativeDescription: "中文", englishDescription: "Chinese", tra # alert_account_message_pref: "To subscribe for class emails, you'll need to " # alert_account_message_suf: "first." # alert_account_message_create_url: "create an account" +# archmage_summary: "Interested in working on game graphics, user interface design, database and server organization, multiplayer networking, physics, sound, or game engine performance? Want to help build a game to help other people learn what you are good at? We have a lot to do and if you are an experienced programmer and want to develop for CodeCombat, this class is for you. We would love your help building the best programming game ever." # archmage_introduction: "One of the best parts about building games is they synthesize so many different things. Graphics, sound, real-time networking, social networking, and of course many of the more common aspects of programming, from low-level database management, and server administration to user facing design and interface building. There's a lot to do, and if you're an experienced programmer with a hankering to really dive into the nitty-gritty of CodeCombat, this class might be for you. We would love to have your help building the best programming game ever." # class_attributes: "Class Attributes" # archmage_attribute_1_pref: "Knowledge in " @@ -364,10 +365,12 @@ module.exports = nativeDescription: "中文", englishDescription: "Chinese", tra # join_desc_4: "and we'll go from there!" # join_url_email: "Email us" # join_url_hipchat: "public HipChat room" -# more_about_archmage: "Learn More About Becoming A Powerful Archmage" +# more_about_archmage: "Learn More About Becoming an Archmage" # archmage_subscribe_desc: "Get emails on new coding opportunities and announcements." +# artisan_summary_pref: "Want to design levels and expand CodeCombat's arsenal? People are playing through our content at a pace faster than we can build! Right now, our level editor is barebone, so be wary. Making levels will be a little challenging and buggy. If you have visions of campaigns spanning for-loops to" +# artisan_summary_suf: "then this class is for you." # artisan_introduction_pref: "We must construct additional levels! People be clamoring for more content, and we can only build so many ourselves. Right now your workstation is level one; our level editor is barely usable even by its creators, so be wary. If you have visions of campaigns spanning for-loops to" -# artisan_introduction_suf: "to then this class might be for you." +# artisan_introduction_suf: "then this class might be for you." # artisan_attribute_1: "Any experience in building content like this would be nice, such as using Blizzard's level editors. But not required!" # artisan_attribute_2: "A hankering to do a whole lot of testing and iteration. To make good levels, you need to take it to others and watch them play it, and be prepared to find a lot of things to fix." # artisan_attribute_3: "For the time being, endurance en par with an Adventurer. Our Level Editor is super preliminary and frustrating to use. You have been warned!" @@ -376,24 +379,28 @@ module.exports = nativeDescription: "中文", englishDescription: "Chinese", tra # artisan_join_step2: "Create a new level and explore existing levels." # artisan_join_step3: "Find us in our public HipChat room for help." # artisan_join_step4: "Post your levels on the forum for feedback." -# more_about_artisan: "Learn More About Becoming A Creative Artisan" +# more_about_artisan: "Learn More About Becoming an Artisan" # artisan_subscribe_desc: "Get emails on level editor updates and announcements." +# adventurer_sumamry: "Let us be clear about your role: you are the tank. You are going to take heavy damage. We need people to try out brand-new levels and help identify how to make things better. The pain will be enormous; making good games is a long process and no one gets it right the first time. If you can endure and have a high constitution score, then this class is for you." # adventurer_introduction: "Let's be clear about your role: you are the tank. You're going to take heavy damage. We need people to try out brand-new levels and help identify how to make things better. The pain will be enormous; making good games is a long process and no one gets it right the first time. If you can endure and have a high constitution score, then this class might be for you." # adventurer_attribute_1: "A thirst for learning. You want to learn how to code and we want to teach you how to code. You'll probably be doing most of the teaching in this case, though." # adventurer_attribute_2: "Charismatic. Be gentle but articulate about what needs improving, and offer suggestions on how to improve." # adventurer_join_pref: "Either get together with (or recruit!) an Artisan and work with them, or check the box below to receive emails when there are new levels to test. We'll also be posting about levels to review on our networks like" # adventurer_forum_url: "our forum" # adventurer_join_suf: "so if you prefer to be notified those ways, sign up there!" -# more_about_adventurer: "Learn More About Becoming A Brave Adventurer" +# more_about_adventurer: "Learn More About Becoming an Adventurer" # adventurer_subscribe_desc: "Get emails when there are new levels to test." +# scribe_summary_pref: "CodeCombat is not just going to be a bunch of levels. It will also be a resource of programming knowledge that players can hook into. That way, each Artisan can link to a detailed article that for the player's edification: documentation akin to what the " +# scribe_summary_sufx: " has built. If you enjoy explaining programming concepts, then this class is for you." # scribe_introduction_pref: "CodeCombat isn't just going to be a bunch of levels. It will also include a resource for knowledge, a wiki of programming concepts that levels can hook into. That way rather than each Artisan having to describe in detail what a comparison operator is, they can simply link their level to the Article describing them that is already written for the player's edification. Something along the lines of what the " # scribe_introduction_url_mozilla: "Mozilla Developer Network" # scribe_introduction_suf: " has built. If your idea of fun is articulating the concepts of programming in Markdown form, then this class might be for you." # scribe_attribute_1: "Skill in words is pretty much all you need. Not only grammar and spelling, but able to convey complicated ideas to others." # contact_us_url: "Contact us" # scribe_join_description: "tell us a little about yourself, your experience with programming and what sort of things you'd like to write about. We'll go from there!" -# more_about_scribe: "Learn More About Becoming A Diligent Scribe" +# more_about_scribe: "Learn More About Becoming a Scribe" # scribe_subscribe_desc: "Get emails about article writing announcements." +# diplomat_summary: "There is a large interest in CodeCombat in other countries that do not speak English! We are looking for translators who are willing to spend their time translating the site's corpus of words so that CodeCombat is accessible across the world as soon as possible. If you'd like to help getting CodeCombat international, then this class is for you." # diplomat_introduction_pref: "So, if there's one thing we learned from the " # diplomat_launch_url: "launch in October" # diplomat_introduction_suf: "it's that there is sizeable interest in CodeCombat in other countries, particularly Brazil! We're building a corps of translators eager to turn one set of words into another set of words to get CodeCombat as accessible across the world as possible. If you like getting sneak peeks at upcoming content and getting these levels to your fellow nationals ASAP, then this class might be for you." @@ -401,21 +408,23 @@ module.exports = nativeDescription: "中文", englishDescription: "Chinese", tra # diplomat_join_pref: "We've started a lot of initial translations at " # diplomat_doc_url: "this forum post" # diplomat_join_suf: "so check it out and add things for your language. Also, check this box below to keep up-to-date on new internationalization developments!" -# more_about_diplomat: "Learn More About Becoming A Great Diplomat" +# more_about_diplomat: "Learn More About Becoming a Diplomat" # diplomat_subscribe_desc: "Get emails about i18n developments and levels to translate." +# ambassador_summary: "We are trying to build a community, and every community needs a support team when there are troubles. We have got chats, emails, and social networks so that our users can get acquainted with the game. If you want to help people get involved, have fun, and learn some programming, then this class is for you." # ambassador_introduction: "This is a community we're building, and you are the connections. We've got Olark chats, emails, and social networks with lots of people to talk with and help get acquainted with the game and learn from. If you want to help people get involved and have fun, and get a good feel of the pulse of CodeCombat and where we're going, then this class might be for you." # ambassador_attribute_1: "Communication skills. Be able to identify the problems players are having and help them solve them. Also, keep the rest of us informed about what players are saying, what they like and don't like and want more of!" # ambassador_join_desc: "tell us a little about yourself, what you've done and what you'd be interested in doing. We'll go from there!" # ambassador_join_note_strong: "Note" # ambassador_join_note_desc: "One of our top priorities is to build multiplayer where players having difficulty solving levels can summon higher level wizards to help them. This will be a great way for ambassadors to do their thing. We'll keep you posted!" -# more_about_ambassador: "Learn More About Becoming A Helpful Ambassador" +# more_about_ambassador: "Learn More About Becoming an Ambassador" # ambassador_subscribe_desc: "Get emails on support updates and multiplayer developments." +# counselor_summary: "None of the above roles fit what you are interested in? Do not worry, we are on the lookout for anybody who wants a hand in the development of CodeCombat! If you are interested in teaching, game development, open source management, or anything else that you think will be relevant to us, then this class is for you." # counselor_introduction_1: "Do you have life experience? A different perspective on things that can help us decide how to shape CodeCombat? Of all these roles, this will probably take the least time, but individually you may make the most difference. We're on the lookout for wisened sages, particularly in areas like: teaching, game development, open source project management, technical recruiting, entrepreneurship, or design." # counselor_introduction_2: "Or really anything that is relevant to the development of CodeCombat. If you have knowledge and want to share it to help grow this project, then this class might be for you." # counselor_attribute_1: "Experience, in any of the areas above or something you think might be helpful." # counselor_attribute_2: "A little bit of free time!" # counselor_join_desc: "tell us a little about yourself, what you've done and what you'd be interested in doing. We'll put you in our contact list and be in touch when we could use advice (not too often)." -# more_about_counselor: "Learn More About Becoming A Valuable Counselor" +# more_about_counselor: "Learn More About Becoming a Counselor" # changes_auto_save: "Changes are saved automatically when you toggle checkboxes." # diligent_scribes: "Our Diligent Scribes:" # powerful_archmages: "Our Powerful Archmages:" From 2be3286e0623d747c333bcddf04e4753fb695fcb Mon Sep 17 00:00:00 2001 From: Michael Schmatz Date: Mon, 17 Feb 2014 12:43:54 -0800 Subject: [PATCH 47/51] Added sessionID and userID to session schema --- server/levels/sessions/level_session_schema.coffee | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/server/levels/sessions/level_session_schema.coffee b/server/levels/sessions/level_session_schema.coffee index 4e352412a..0f2784eb5 100644 --- a/server/levels/sessions/level_session_schema.coffee +++ b/server/levels/sessions/level_session_schema.coffee @@ -167,10 +167,14 @@ _.extend LevelSessionSchema.properties, items: type: 'object' properties: - id: + sessionID: title: 'Opponent Session ID' description: 'The session ID of an opponent.' type: ['object', 'string'] + userID: + title: 'Opponent User ID' + description: 'The user ID of an opponent' + type: ['object','string'] codeSubmitDate: c.date title: 'Submitted' description: 'The date which the opponent submitted their session (used to check if the match can be replayed)' From 3c08f8a5eb276f308722d50f1e47d6c5ada536a4 Mon Sep 17 00:00:00 2001 From: Nick Winter Date: Mon, 17 Feb 2014 13:08:37 -0800 Subject: [PATCH 48/51] Added wizard settings i18n tags. --- app/locale/ar.coffee | 8 ++++++++ app/locale/bg.coffee | 8 ++++++++ app/locale/cs.coffee | 8 ++++++++ app/locale/da.coffee | 8 ++++++++ app/locale/de.coffee | 8 ++++++++ app/locale/el.coffee | 8 ++++++++ app/locale/en-AU.coffee | 8 ++++++++ app/locale/en-GB.coffee | 8 ++++++++ app/locale/en-US.coffee | 8 ++++++++ app/locale/en.coffee | 8 ++++++++ app/locale/es-419.coffee | 8 ++++++++ app/locale/es-ES.coffee | 8 ++++++++ app/locale/es.coffee | 8 ++++++++ app/locale/fa.coffee | 8 ++++++++ app/locale/fi.coffee | 8 ++++++++ app/locale/fr.coffee | 8 ++++++++ app/locale/he.coffee | 8 ++++++++ app/locale/hi.coffee | 8 ++++++++ app/locale/hu.coffee | 8 ++++++++ app/locale/id.coffee | 8 ++++++++ app/locale/it.coffee | 8 ++++++++ app/locale/ja.coffee | 16 ++++++++++++---- app/locale/ko.coffee | 8 ++++++++ app/locale/lt.coffee | 8 ++++++++ app/locale/ms-BA.coffee | 8 ++++++++ app/locale/nb.coffee | 8 ++++++++ app/locale/nl.coffee | 10 +++++++++- app/locale/nn.coffee | 8 ++++++++ app/locale/no.coffee | 8 ++++++++ app/locale/pl.coffee | 8 ++++++++ app/locale/pt-BR.coffee | 8 ++++++++ app/locale/pt-PT.coffee | 8 ++++++++ app/locale/pt.coffee | 8 ++++++++ app/locale/ro.coffee | 8 ++++++++ app/locale/ru.coffee | 8 ++++++++ app/locale/sk.coffee | 8 ++++++++ app/locale/sl.coffee | 8 ++++++++ app/locale/sr.coffee | 8 ++++++++ app/locale/sv.coffee | 8 ++++++++ app/locale/th.coffee | 8 ++++++++ app/locale/tr.coffee | 10 +++++++++- app/locale/uk.coffee | 8 ++++++++ app/locale/ur.coffee | 8 ++++++++ app/locale/vi.coffee | 8 ++++++++ app/locale/zh-HANS.coffee | 8 ++++++++ app/locale/zh-HANT.coffee | 8 ++++++++ app/locale/zh.coffee | 8 ++++++++ app/templates/account/wizard_settings_tab.jade | 8 ++++---- 48 files changed, 386 insertions(+), 10 deletions(-) diff --git a/app/locale/ar.coffee b/app/locale/ar.coffee index 53c26035c..37ecc7e09 100644 --- a/app/locale/ar.coffee +++ b/app/locale/ar.coffee @@ -104,6 +104,14 @@ module.exports = nativeDescription: "العربية", englishDescription: "Arabi # wizard_settings: # title: "Wizard Settings" # customize_avatar: "Customize Your Avatar" +# clothes: "Clothes" +# trim: "Trim" +# cloud: "Cloud" +# spell: "Spell" +# boots: "Boots" +# hue: "Hue" +# saturation: "Saturation" +# lightness: "Lightness" # account_settings: # title: "Account Settings" diff --git a/app/locale/bg.coffee b/app/locale/bg.coffee index 78a7340a6..4b8953781 100644 --- a/app/locale/bg.coffee +++ b/app/locale/bg.coffee @@ -104,6 +104,14 @@ module.exports = nativeDescription: "български език", englishDescri # wizard_settings: # title: "Wizard Settings" # customize_avatar: "Customize Your Avatar" +# clothes: "Clothes" +# trim: "Trim" +# cloud: "Cloud" +# spell: "Spell" +# boots: "Boots" +# hue: "Hue" +# saturation: "Saturation" +# lightness: "Lightness" # account_settings: # title: "Account Settings" diff --git a/app/locale/cs.coffee b/app/locale/cs.coffee index abc4325c6..08ebeeac8 100644 --- a/app/locale/cs.coffee +++ b/app/locale/cs.coffee @@ -104,6 +104,14 @@ module.exports = nativeDescription: "čeština", englishDescription: "Czech", tr wizard_settings: title: "Nastavení Kouzelníka" customize_avatar: "Upravte vás Avatar" +# clothes: "Clothes" +# trim: "Trim" +# cloud: "Cloud" +# spell: "Spell" +# boots: "Boots" +# hue: "Hue" +# saturation: "Saturation" +# lightness: "Lightness" account_settings: title: "Nastavení účtu" diff --git a/app/locale/da.coffee b/app/locale/da.coffee index f39b21ef5..099c82884 100644 --- a/app/locale/da.coffee +++ b/app/locale/da.coffee @@ -104,6 +104,14 @@ module.exports = nativeDescription: "dansk", englishDescription: "Danish", trans wizard_settings: title: "Troldmandsinstillinger" customize_avatar: "Tilpas din avatar" +# clothes: "Clothes" +# trim: "Trim" +# cloud: "Cloud" +# spell: "Spell" +# boots: "Boots" +# hue: "Hue" +# saturation: "Saturation" +# lightness: "Lightness" account_settings: title: "Kontoindstillinger" diff --git a/app/locale/de.coffee b/app/locale/de.coffee index a2825d676..122b3205e 100644 --- a/app/locale/de.coffee +++ b/app/locale/de.coffee @@ -104,6 +104,14 @@ module.exports = nativeDescription: "Deutsch", englishDescription: "German", tra wizard_settings: title: "Zauberer Einstellungen" customize_avatar: "Individualisiere deinen Avatar" +# clothes: "Clothes" +# trim: "Trim" +# cloud: "Cloud" +# spell: "Spell" +# boots: "Boots" +# hue: "Hue" +# saturation: "Saturation" +# lightness: "Lightness" account_settings: title: "Accounteinstellungen" diff --git a/app/locale/el.coffee b/app/locale/el.coffee index a34cd5cf3..5bc7e0dd9 100644 --- a/app/locale/el.coffee +++ b/app/locale/el.coffee @@ -104,6 +104,14 @@ module.exports = nativeDescription: "ελληνικά", englishDescription: "Gre # wizard_settings: # title: "Wizard Settings" # customize_avatar: "Customize Your Avatar" +# clothes: "Clothes" +# trim: "Trim" +# cloud: "Cloud" +# spell: "Spell" +# boots: "Boots" +# hue: "Hue" +# saturation: "Saturation" +# lightness: "Lightness" account_settings: title: "Ρυθμίσεις λογαριασμού" diff --git a/app/locale/en-AU.coffee b/app/locale/en-AU.coffee index 6d19e5fca..32924d7bf 100644 --- a/app/locale/en-AU.coffee +++ b/app/locale/en-AU.coffee @@ -104,6 +104,14 @@ module.exports = nativeDescription: "English (AU)", englishDescription: "English # wizard_settings: # title: "Wizard Settings" # customize_avatar: "Customize Your Avatar" +# clothes: "Clothes" +# trim: "Trim" +# cloud: "Cloud" +# spell: "Spell" +# boots: "Boots" +# hue: "Hue" +# saturation: "Saturation" +# lightness: "Lightness" # account_settings: # title: "Account Settings" diff --git a/app/locale/en-GB.coffee b/app/locale/en-GB.coffee index 0fe25c123..e76937fa8 100644 --- a/app/locale/en-GB.coffee +++ b/app/locale/en-GB.coffee @@ -104,6 +104,14 @@ module.exports = nativeDescription: "English (UK)", englishDescription: "English # wizard_settings: # title: "Wizard Settings" # customize_avatar: "Customize Your Avatar" +# clothes: "Clothes" +# trim: "Trim" +# cloud: "Cloud" +# spell: "Spell" +# boots: "Boots" +# hue: "Hue" +# saturation: "Saturation" +# lightness: "Lightness" # account_settings: # title: "Account Settings" diff --git a/app/locale/en-US.coffee b/app/locale/en-US.coffee index baac82a69..8cabfc4fb 100644 --- a/app/locale/en-US.coffee +++ b/app/locale/en-US.coffee @@ -104,6 +104,14 @@ module.exports = nativeDescription: "English (US)", englishDescription: "English # wizard_settings: # title: "Wizard Settings" # customize_avatar: "Customize Your Avatar" +# clothes: "Clothes" +# trim: "Trim" +# cloud: "Cloud" +# spell: "Spell" +# boots: "Boots" +# hue: "Hue" +# saturation: "Saturation" +# lightness: "Lightness" # account_settings: # title: "Account Settings" diff --git a/app/locale/en.coffee b/app/locale/en.coffee index 7abca0c28..ad05a8e57 100644 --- a/app/locale/en.coffee +++ b/app/locale/en.coffee @@ -104,6 +104,14 @@ module.exports = nativeDescription: "English", englishDescription: "English", tr wizard_settings: title: "Wizard Settings" customize_avatar: "Customize Your Avatar" + clothes: "Clothes" + trim: "Trim" + cloud: "Cloud" + spell: "Spell" + boots: "Boots" + hue: "Hue" + saturation: "Saturation" + lightness: "Lightness" account_settings: title: "Account Settings" diff --git a/app/locale/es-419.coffee b/app/locale/es-419.coffee index f9a5ed998..d83d675d1 100644 --- a/app/locale/es-419.coffee +++ b/app/locale/es-419.coffee @@ -104,6 +104,14 @@ module.exports = nativeDescription: "español (América Latina)", englishDescrip # wizard_settings: # title: "Wizard Settings" # customize_avatar: "Customize Your Avatar" +# clothes: "Clothes" +# trim: "Trim" +# cloud: "Cloud" +# spell: "Spell" +# boots: "Boots" +# hue: "Hue" +# saturation: "Saturation" +# lightness: "Lightness" account_settings: title: "Configuración de la Cuenta" diff --git a/app/locale/es-ES.coffee b/app/locale/es-ES.coffee index 4e17c0943..e20aeb4f1 100644 --- a/app/locale/es-ES.coffee +++ b/app/locale/es-ES.coffee @@ -104,6 +104,14 @@ module.exports = nativeDescription: "español (ES)", englishDescription: "Spanis wizard_settings: title: "Ajustes del mago" customize_avatar: "Personaliza tu Avatar" +# clothes: "Clothes" +# trim: "Trim" +# cloud: "Cloud" +# spell: "Spell" +# boots: "Boots" +# hue: "Hue" +# saturation: "Saturation" +# lightness: "Lightness" account_settings: title: "Ajustes de la cuenta" diff --git a/app/locale/es.coffee b/app/locale/es.coffee index 9c75c1c8a..b23a77743 100644 --- a/app/locale/es.coffee +++ b/app/locale/es.coffee @@ -104,6 +104,14 @@ module.exports = nativeDescription: "español", englishDescription: "Spanish", t # wizard_settings: # title: "Wizard Settings" # customize_avatar: "Customize Your Avatar" +# clothes: "Clothes" +# trim: "Trim" +# cloud: "Cloud" +# spell: "Spell" +# boots: "Boots" +# hue: "Hue" +# saturation: "Saturation" +# lightness: "Lightness" account_settings: title: "Configuración de la Cuenta" diff --git a/app/locale/fa.coffee b/app/locale/fa.coffee index 657c7b357..d929519c2 100644 --- a/app/locale/fa.coffee +++ b/app/locale/fa.coffee @@ -104,6 +104,14 @@ module.exports = nativeDescription: "فارسی", englishDescription: "Persian", wizard_settings: title: "تنظیمات جادویی" customize_avatar: "آواتار خود را شکل دهید" +# clothes: "Clothes" +# trim: "Trim" +# cloud: "Cloud" +# spell: "Spell" +# boots: "Boots" +# hue: "Hue" +# saturation: "Saturation" +# lightness: "Lightness" account_settings: title: "تنظیمات حساب کاربری" diff --git a/app/locale/fi.coffee b/app/locale/fi.coffee index 9d9f57fb2..bb3b78df5 100644 --- a/app/locale/fi.coffee +++ b/app/locale/fi.coffee @@ -104,6 +104,14 @@ module.exports = nativeDescription: "suomi", englishDescription: "Finnish", tran # wizard_settings: # title: "Wizard Settings" # customize_avatar: "Customize Your Avatar" +# clothes: "Clothes" +# trim: "Trim" +# cloud: "Cloud" +# spell: "Spell" +# boots: "Boots" +# hue: "Hue" +# saturation: "Saturation" +# lightness: "Lightness" # account_settings: # title: "Account Settings" diff --git a/app/locale/fr.coffee b/app/locale/fr.coffee index d374da09a..67f7b99a0 100644 --- a/app/locale/fr.coffee +++ b/app/locale/fr.coffee @@ -104,6 +104,14 @@ module.exports = nativeDescription: "français", englishDescription: "French", t wizard_settings: title: "Paramètres du Magicien" customize_avatar: "Personnaliser votre avatar" +# clothes: "Clothes" +# trim: "Trim" +# cloud: "Cloud" +# spell: "Spell" +# boots: "Boots" +# hue: "Hue" +# saturation: "Saturation" +# lightness: "Lightness" account_settings: title: "Préférences du compte" diff --git a/app/locale/he.coffee b/app/locale/he.coffee index fcadf5713..f472fe4ef 100644 --- a/app/locale/he.coffee +++ b/app/locale/he.coffee @@ -104,6 +104,14 @@ module.exports = nativeDescription: "עברית", englishDescription: "Hebrew", # wizard_settings: # title: "Wizard Settings" # customize_avatar: "Customize Your Avatar" +# clothes: "Clothes" +# trim: "Trim" +# cloud: "Cloud" +# spell: "Spell" +# boots: "Boots" +# hue: "Hue" +# saturation: "Saturation" +# lightness: "Lightness" # account_settings: # title: "Account Settings" diff --git a/app/locale/hi.coffee b/app/locale/hi.coffee index b5f025b82..443d13c6a 100644 --- a/app/locale/hi.coffee +++ b/app/locale/hi.coffee @@ -104,6 +104,14 @@ module.exports = nativeDescription: "मानक हिन्दी", englishDe # wizard_settings: # title: "Wizard Settings" # customize_avatar: "Customize Your Avatar" +# clothes: "Clothes" +# trim: "Trim" +# cloud: "Cloud" +# spell: "Spell" +# boots: "Boots" +# hue: "Hue" +# saturation: "Saturation" +# lightness: "Lightness" # account_settings: # title: "Account Settings" diff --git a/app/locale/hu.coffee b/app/locale/hu.coffee index 32db298fc..bad8c40f4 100644 --- a/app/locale/hu.coffee +++ b/app/locale/hu.coffee @@ -104,6 +104,14 @@ module.exports = nativeDescription: "magyar", englishDescription: "Hungarian", t wizard_settings: title: "Varázsló beállításai" customize_avatar: "Állítsd be az Avatarod!" +# clothes: "Clothes" +# trim: "Trim" +# cloud: "Cloud" +# spell: "Spell" +# boots: "Boots" +# hue: "Hue" +# saturation: "Saturation" +# lightness: "Lightness" account_settings: title: "Fiók beállítások" diff --git a/app/locale/id.coffee b/app/locale/id.coffee index 87fae663d..5c186aec0 100644 --- a/app/locale/id.coffee +++ b/app/locale/id.coffee @@ -104,6 +104,14 @@ module.exports = nativeDescription: "Bahasa Indonesia", englishDescription: "Ind # wizard_settings: # title: "Wizard Settings" # customize_avatar: "Customize Your Avatar" +# clothes: "Clothes" +# trim: "Trim" +# cloud: "Cloud" +# spell: "Spell" +# boots: "Boots" +# hue: "Hue" +# saturation: "Saturation" +# lightness: "Lightness" # account_settings: # title: "Account Settings" diff --git a/app/locale/it.coffee b/app/locale/it.coffee index 63be2c7c3..47df13a3c 100644 --- a/app/locale/it.coffee +++ b/app/locale/it.coffee @@ -104,6 +104,14 @@ module.exports = nativeDescription: "italiano", englishDescription: "Italian", t # wizard_settings: # title: "Wizard Settings" # customize_avatar: "Customize Your Avatar" +# clothes: "Clothes" +# trim: "Trim" +# cloud: "Cloud" +# spell: "Spell" +# boots: "Boots" +# hue: "Hue" +# saturation: "Saturation" +# lightness: "Lightness" account_settings: title: "Impostazioni account" diff --git a/app/locale/ja.coffee b/app/locale/ja.coffee index e5ceee6e0..6553f87f2 100644 --- a/app/locale/ja.coffee +++ b/app/locale/ja.coffee @@ -71,7 +71,7 @@ module.exports = nativeDescription: "日本語", englishDescription: "Japanese", choose_your_level: "レベル選択" adventurer_prefix: "別のレベルに移動することができます。レベルについて議論するにはこちら: " adventurer_forum: "冒険者の掲示板" -# adventurer_suffix: "" +# adventurer_suffix: "." campaign_beginner: "初心者のキャンペーン" # campaign_beginner_description: "... in which you learn the wizardry of programming." campaign_dev: "いろんな難しいレベル" @@ -104,6 +104,14 @@ module.exports = nativeDescription: "日本語", englishDescription: "Japanese", wizard_settings: title: "ウィザードの設定" customize_avatar: "アバターのカスタマイズ" +# clothes: "Clothes" +# trim: "Trim" +# cloud: "Cloud" +# spell: "Spell" +# boots: "Boots" +# hue: "Hue" +# saturation: "Saturation" +# lightness: "Lightness" account_settings: title: "アカウント設定" @@ -135,13 +143,13 @@ module.exports = nativeDescription: "日本語", englishDescription: "Japanese", account_profile: edit_settings: "設定" -# profile_for_prefix: "" +# profile_for_prefix: "Profile for " profile_for_suffix: "のプロフィール" profile: "プロフィール" user_not_found: "ユーザーが見つかりません。URLを間違って入力していないか確認してください。" -# gravatar_not_found_mine: "" +# gravatar_not_found_mine: "We couldn't find your profile associated with:" gravatar_not_found_email_suffix: " のメールアドレスは Gravatar で見つけることができませんでした。" -# gravatar_signup_prefix: "" +# gravatar_signup_prefix: "Sign up at " gravatar_signup_suffix: " を登録" gravatar_not_found_other: "このメールアドレスには プロフィールが関連付けられていません。" # gravatar_contact: "Contact" diff --git a/app/locale/ko.coffee b/app/locale/ko.coffee index f73a6393a..03579feba 100644 --- a/app/locale/ko.coffee +++ b/app/locale/ko.coffee @@ -104,6 +104,14 @@ module.exports = nativeDescription: "한국어", englishDescription: "Korean", t # wizard_settings: # title: "Wizard Settings" # customize_avatar: "Customize Your Avatar" +# clothes: "Clothes" +# trim: "Trim" +# cloud: "Cloud" +# spell: "Spell" +# boots: "Boots" +# hue: "Hue" +# saturation: "Saturation" +# lightness: "Lightness" # account_settings: # title: "Account Settings" diff --git a/app/locale/lt.coffee b/app/locale/lt.coffee index 67a5d9260..c8e6c757f 100644 --- a/app/locale/lt.coffee +++ b/app/locale/lt.coffee @@ -104,6 +104,14 @@ module.exports = nativeDescription: "English (AU)", englishDescription: "English # wizard_settings: # title: "Wizard Settings" # customize_avatar: "Customize Your Avatar" +# clothes: "Clothes" +# trim: "Trim" +# cloud: "Cloud" +# spell: "Spell" +# boots: "Boots" +# hue: "Hue" +# saturation: "Saturation" +# lightness: "Lightness" # account_settings: # title: "Account Settings" diff --git a/app/locale/ms-BA.coffee b/app/locale/ms-BA.coffee index 65ac71895..efc3522b4 100644 --- a/app/locale/ms-BA.coffee +++ b/app/locale/ms-BA.coffee @@ -104,6 +104,14 @@ module.exports = nativeDescription: "Bahasa Melayu", englishDescription: "Bahasa # wizard_settings: # title: "Wizard Settings" # customize_avatar: "Customize Your Avatar" +# clothes: "Clothes" +# trim: "Trim" +# cloud: "Cloud" +# spell: "Spell" +# boots: "Boots" +# hue: "Hue" +# saturation: "Saturation" +# lightness: "Lightness" # account_settings: # title: "Account Settings" diff --git a/app/locale/nb.coffee b/app/locale/nb.coffee index 84da6055b..d42b2e8ab 100644 --- a/app/locale/nb.coffee +++ b/app/locale/nb.coffee @@ -104,6 +104,14 @@ module.exports = nativeDescription: "Norsk Bokmål", englishDescription: "Norweg # wizard_settings: # title: "Wizard Settings" # customize_avatar: "Customize Your Avatar" +# clothes: "Clothes" +# trim: "Trim" +# cloud: "Cloud" +# spell: "Spell" +# boots: "Boots" +# hue: "Hue" +# saturation: "Saturation" +# lightness: "Lightness" account_settings: title: "Kontoinnstillinger" diff --git a/app/locale/nl.coffee b/app/locale/nl.coffee index a0d34e359..5eab1954a 100644 --- a/app/locale/nl.coffee +++ b/app/locale/nl.coffee @@ -104,6 +104,14 @@ module.exports = nativeDescription: "Nederlands", englishDescription: "Dutch", t wizard_settings: title: "Tovenaar instellingen" customize_avatar: "Bewerk jouw avatar" +# clothes: "Clothes" +# trim: "Trim" +# cloud: "Cloud" +# spell: "Spell" +# boots: "Boots" +# hue: "Hue" +# saturation: "Saturation" +# lightness: "Lightness" account_settings: title: "Account Instellingen" @@ -142,7 +150,7 @@ module.exports = nativeDescription: "Nederlands", englishDescription: "Dutch", t gravatar_not_found_mine: "We konden geen account vinden gekoppeld met:" gravatar_not_found_email_suffix: "." gravatar_signup_prefix: "Registreer op " -# gravatar_signup_suffix: "" +# gravatar_signup_suffix: " to get set up!" gravatar_not_found_other: "Alas, there's no profile associated with this person's email address." gravatar_contact: "Contact" gravatar_websites: "Websites" diff --git a/app/locale/nn.coffee b/app/locale/nn.coffee index 5ca60935b..ed483856c 100644 --- a/app/locale/nn.coffee +++ b/app/locale/nn.coffee @@ -104,6 +104,14 @@ module.exports = nativeDescription: "English (AU)", englishDescription: "English # wizard_settings: # title: "Wizard Settings" # customize_avatar: "Customize Your Avatar" +# clothes: "Clothes" +# trim: "Trim" +# cloud: "Cloud" +# spell: "Spell" +# boots: "Boots" +# hue: "Hue" +# saturation: "Saturation" +# lightness: "Lightness" # account_settings: # title: "Account Settings" diff --git a/app/locale/no.coffee b/app/locale/no.coffee index 64533d6c7..85b0c0681 100644 --- a/app/locale/no.coffee +++ b/app/locale/no.coffee @@ -104,6 +104,14 @@ module.exports = nativeDescription: "Norsk", englishDescription: "Norwegian", tr # wizard_settings: # title: "Wizard Settings" # customize_avatar: "Customize Your Avatar" +# clothes: "Clothes" +# trim: "Trim" +# cloud: "Cloud" +# spell: "Spell" +# boots: "Boots" +# hue: "Hue" +# saturation: "Saturation" +# lightness: "Lightness" account_settings: title: "Kontoinnstillinger" diff --git a/app/locale/pl.coffee b/app/locale/pl.coffee index a9988b77c..e04503790 100644 --- a/app/locale/pl.coffee +++ b/app/locale/pl.coffee @@ -104,6 +104,14 @@ module.exports = nativeDescription: "język polski", englishDescription: "Polish # wizard_settings: # title: "Wizard Settings" # customize_avatar: "Customize Your Avatar" +# clothes: "Clothes" +# trim: "Trim" +# cloud: "Cloud" +# spell: "Spell" +# boots: "Boots" +# hue: "Hue" +# saturation: "Saturation" +# lightness: "Lightness" account_settings: title: "Ustawienia Konta" diff --git a/app/locale/pt-BR.coffee b/app/locale/pt-BR.coffee index 5cdbac76c..58bc9a3a6 100644 --- a/app/locale/pt-BR.coffee +++ b/app/locale/pt-BR.coffee @@ -104,6 +104,14 @@ module.exports = nativeDescription: "português do Brasil", englishDescription: wizard_settings: title: "Configurações do Feiticeiro" customize_avatar: "Personalize o seu Avatar" +# clothes: "Clothes" +# trim: "Trim" +# cloud: "Cloud" +# spell: "Spell" +# boots: "Boots" +# hue: "Hue" +# saturation: "Saturation" +# lightness: "Lightness" account_settings: title: "Configurações da Conta" diff --git a/app/locale/pt-PT.coffee b/app/locale/pt-PT.coffee index 8eda4d45c..51ae7d0c0 100644 --- a/app/locale/pt-PT.coffee +++ b/app/locale/pt-PT.coffee @@ -104,6 +104,14 @@ module.exports = nativeDescription: "Português europeu", englishDescription: "P wizard_settings: title: "Definições do Wizard" customize_avatar: "Altera o teu Avatar" +# clothes: "Clothes" +# trim: "Trim" +# cloud: "Cloud" +# spell: "Spell" +# boots: "Boots" +# hue: "Hue" +# saturation: "Saturation" +# lightness: "Lightness" account_settings: title: "Definições da Conta" diff --git a/app/locale/pt.coffee b/app/locale/pt.coffee index 8a0c0e652..343d95418 100644 --- a/app/locale/pt.coffee +++ b/app/locale/pt.coffee @@ -104,6 +104,14 @@ module.exports = nativeDescription: "português", englishDescription: "Portugues # wizard_settings: # title: "Wizard Settings" # customize_avatar: "Customize Your Avatar" +# clothes: "Clothes" +# trim: "Trim" +# cloud: "Cloud" +# spell: "Spell" +# boots: "Boots" +# hue: "Hue" +# saturation: "Saturation" +# lightness: "Lightness" account_settings: title: "Configurações da Conta" diff --git a/app/locale/ro.coffee b/app/locale/ro.coffee index 8777e9825..a2528e966 100644 --- a/app/locale/ro.coffee +++ b/app/locale/ro.coffee @@ -104,6 +104,14 @@ module.exports = nativeDescription: "limba română", englishDescription: "Roman # wizard_settings: # title: "Wizard Settings" # customize_avatar: "Customize Your Avatar" +# clothes: "Clothes" +# trim: "Trim" +# cloud: "Cloud" +# spell: "Spell" +# boots: "Boots" +# hue: "Hue" +# saturation: "Saturation" +# lightness: "Lightness" # account_settings: # title: "Account Settings" diff --git a/app/locale/ru.coffee b/app/locale/ru.coffee index 56fca0879..b0546f28e 100644 --- a/app/locale/ru.coffee +++ b/app/locale/ru.coffee @@ -104,6 +104,14 @@ module.exports = nativeDescription: "русский язык", englishDescriptio wizard_settings: title: "Мастер настройки" customize_avatar: "Изменить свой аватар" +# clothes: "Clothes" +# trim: "Trim" +# cloud: "Cloud" +# spell: "Spell" +# boots: "Boots" +# hue: "Hue" +# saturation: "Saturation" +# lightness: "Lightness" account_settings: title: "Настройки аккаунта" diff --git a/app/locale/sk.coffee b/app/locale/sk.coffee index 4de94a9a7..539cf93ee 100644 --- a/app/locale/sk.coffee +++ b/app/locale/sk.coffee @@ -104,6 +104,14 @@ module.exports = nativeDescription: "slovenčina", englishDescription: "Slovak", # wizard_settings: # title: "Wizard Settings" # customize_avatar: "Customize Your Avatar" +# clothes: "Clothes" +# trim: "Trim" +# cloud: "Cloud" +# spell: "Spell" +# boots: "Boots" +# hue: "Hue" +# saturation: "Saturation" +# lightness: "Lightness" # account_settings: # title: "Account Settings" diff --git a/app/locale/sl.coffee b/app/locale/sl.coffee index 6e91142a3..a26cfb672 100644 --- a/app/locale/sl.coffee +++ b/app/locale/sl.coffee @@ -104,6 +104,14 @@ module.exports = nativeDescription: "slovenščina", englishDescription: "Sloven # wizard_settings: # title: "Wizard Settings" # customize_avatar: "Customize Your Avatar" +# clothes: "Clothes" +# trim: "Trim" +# cloud: "Cloud" +# spell: "Spell" +# boots: "Boots" +# hue: "Hue" +# saturation: "Saturation" +# lightness: "Lightness" # account_settings: # title: "Account Settings" diff --git a/app/locale/sr.coffee b/app/locale/sr.coffee index bf2bfcba0..37c640fad 100644 --- a/app/locale/sr.coffee +++ b/app/locale/sr.coffee @@ -104,6 +104,14 @@ module.exports = nativeDescription: "српски", englishDescription: "Serbian # wizard_settings: # title: "Wizard Settings" # customize_avatar: "Customize Your Avatar" +# clothes: "Clothes" +# trim: "Trim" +# cloud: "Cloud" +# spell: "Spell" +# boots: "Boots" +# hue: "Hue" +# saturation: "Saturation" +# lightness: "Lightness" account_settings: title: "Подешавања налога" diff --git a/app/locale/sv.coffee b/app/locale/sv.coffee index f73d8ed73..71c1597a6 100644 --- a/app/locale/sv.coffee +++ b/app/locale/sv.coffee @@ -104,6 +104,14 @@ module.exports = nativeDescription: "Svenska", englishDescription: "Swedish", tr # wizard_settings: # title: "Wizard Settings" # customize_avatar: "Customize Your Avatar" +# clothes: "Clothes" +# trim: "Trim" +# cloud: "Cloud" +# spell: "Spell" +# boots: "Boots" +# hue: "Hue" +# saturation: "Saturation" +# lightness: "Lightness" account_settings: title: "Kontoinställningar" diff --git a/app/locale/th.coffee b/app/locale/th.coffee index 3ff4704fe..1febabe4b 100644 --- a/app/locale/th.coffee +++ b/app/locale/th.coffee @@ -104,6 +104,14 @@ module.exports = nativeDescription: "ไทย", englishDescription: "Thai", tra # wizard_settings: # title: "Wizard Settings" # customize_avatar: "Customize Your Avatar" +# clothes: "Clothes" +# trim: "Trim" +# cloud: "Cloud" +# spell: "Spell" +# boots: "Boots" +# hue: "Hue" +# saturation: "Saturation" +# lightness: "Lightness" account_settings: # title: "Account Settings" diff --git a/app/locale/tr.coffee b/app/locale/tr.coffee index b7e957c9d..5087ae291 100644 --- a/app/locale/tr.coffee +++ b/app/locale/tr.coffee @@ -104,6 +104,14 @@ module.exports = nativeDescription: "Türkçe", englishDescription: "Turkish", t wizard_settings: title: "Sihirbaz Ayarları" customize_avatar: "Avatar'ınızı Özelleştirin" +# clothes: "Clothes" +# trim: "Trim" +# cloud: "Cloud" +# spell: "Spell" +# boots: "Boots" +# hue: "Hue" +# saturation: "Saturation" +# lightness: "Lightness" account_settings: title: "Hesap Ayarları" @@ -135,7 +143,7 @@ module.exports = nativeDescription: "Türkçe", englishDescription: "Turkish", t account_profile: edit_settings: "Ayarları Düzenle" -# profile_for_prefix: "" +# profile_for_prefix: "Profile for " profile_for_suffix: " Kullanıcısının Profili" profile: "Profil" user_not_found: "Kullanıcı bulunamadı. URL'den emin misiniz?" diff --git a/app/locale/uk.coffee b/app/locale/uk.coffee index 349fb3271..4529f332b 100644 --- a/app/locale/uk.coffee +++ b/app/locale/uk.coffee @@ -104,6 +104,14 @@ module.exports = nativeDescription: "українська мова", englishDesc # wizard_settings: # title: "Wizard Settings" # customize_avatar: "Customize Your Avatar" +# clothes: "Clothes" +# trim: "Trim" +# cloud: "Cloud" +# spell: "Spell" +# boots: "Boots" +# hue: "Hue" +# saturation: "Saturation" +# lightness: "Lightness" account_settings: title: "Налаштування акаунта" diff --git a/app/locale/ur.coffee b/app/locale/ur.coffee index 4d78b382c..bb8a226f3 100644 --- a/app/locale/ur.coffee +++ b/app/locale/ur.coffee @@ -104,6 +104,14 @@ module.exports = nativeDescription: "اُردُو", englishDescription: "Urdu", # wizard_settings: # title: "Wizard Settings" # customize_avatar: "Customize Your Avatar" +# clothes: "Clothes" +# trim: "Trim" +# cloud: "Cloud" +# spell: "Spell" +# boots: "Boots" +# hue: "Hue" +# saturation: "Saturation" +# lightness: "Lightness" # account_settings: # title: "Account Settings" diff --git a/app/locale/vi.coffee b/app/locale/vi.coffee index 324fc224e..46528367c 100644 --- a/app/locale/vi.coffee +++ b/app/locale/vi.coffee @@ -104,6 +104,14 @@ module.exports = nativeDescription: "Tiếng Việt", englishDescription: "Vietn # wizard_settings: # title: "Wizard Settings" # customize_avatar: "Customize Your Avatar" +# clothes: "Clothes" +# trim: "Trim" +# cloud: "Cloud" +# spell: "Spell" +# boots: "Boots" +# hue: "Hue" +# saturation: "Saturation" +# lightness: "Lightness" # account_settings: # title: "Account Settings" diff --git a/app/locale/zh-HANS.coffee b/app/locale/zh-HANS.coffee index 3e739620a..dd7f63d1a 100644 --- a/app/locale/zh-HANS.coffee +++ b/app/locale/zh-HANS.coffee @@ -104,6 +104,14 @@ module.exports = nativeDescription: "简体中文", englishDescription: "Chinese # wizard_settings: # title: "Wizard Settings" # customize_avatar: "Customize Your Avatar" +# clothes: "Clothes" +# trim: "Trim" +# cloud: "Cloud" +# spell: "Spell" +# boots: "Boots" +# hue: "Hue" +# saturation: "Saturation" +# lightness: "Lightness" account_settings: title: "账户设置" diff --git a/app/locale/zh-HANT.coffee b/app/locale/zh-HANT.coffee index 96dbe9ff9..d5f470c6f 100644 --- a/app/locale/zh-HANT.coffee +++ b/app/locale/zh-HANT.coffee @@ -104,6 +104,14 @@ module.exports = nativeDescription: "繁体中文", englishDescription: "Chinese # wizard_settings: # title: "Wizard Settings" # customize_avatar: "Customize Your Avatar" +# clothes: "Clothes" +# trim: "Trim" +# cloud: "Cloud" +# spell: "Spell" +# boots: "Boots" +# hue: "Hue" +# saturation: "Saturation" +# lightness: "Lightness" account_settings: title: "帳號設定" diff --git a/app/locale/zh.coffee b/app/locale/zh.coffee index 66c7826df..88bfc7838 100644 --- a/app/locale/zh.coffee +++ b/app/locale/zh.coffee @@ -104,6 +104,14 @@ module.exports = nativeDescription: "中文", englishDescription: "Chinese", tra # wizard_settings: # title: "Wizard Settings" # customize_avatar: "Customize Your Avatar" +# clothes: "Clothes" +# trim: "Trim" +# cloud: "Cloud" +# spell: "Spell" +# boots: "Boots" +# hue: "Hue" +# saturation: "Saturation" +# lightness: "Lightness" # account_settings: # title: "Account Settings" diff --git a/app/templates/account/wizard_settings_tab.jade b/app/templates/account/wizard_settings_tab.jade index 78f855d2b..faea52b89 100644 --- a/app/templates/account/wizard_settings_tab.jade +++ b/app/templates/account/wizard_settings_tab.jade @@ -5,16 +5,16 @@ canvas#tinting-display(width=200, height=200).img-rounded .color-group(data-name=group.name) div.name-cell input(type='checkbox', checked=group.exists).color-group-checkbox - span(data-i18n=group.dasherized)= group.humanized + span(data-i18n='wizard_settings.' + group.dasherized)= group.humanized div.sliders div.slider-cell - label(for=group.humanized+"_hue", data-i18n="hue") Hue + label(for=group.humanized+"_hue", data-i18n="wizard_settigs.hue") Hue .selector(id=group.humanized+"_hue", name=group.name+'.hue', data-key='hue') div.slider-cell - label(for=group.humanized+"_saturation", data-i18n="saturation") Saturation + label(for=group.humanized+"_saturation", data-i18n="wizard_settings.saturation") Saturation .selector(id=group.humanized+"_saturation", name=group.name+'.saturation', data-key='saturation') div.slider-cell - label(for=group.humanized+"_lightness", data-i18n="lightness") Lightness + label(for=group.humanized+"_lightness", data-i18n="wizard_settings.lightness") Lightness .selector(id=group.humanized+"_lightness", name=group.name+'.lightness', data-key='lightness') div.clearfix div.clearfix From d7edf84896f82116853a3799b8d7fa8c353ae702 Mon Sep 17 00:00:00 2001 From: Martin Delille Date: Mon, 17 Feb 2014 22:34:02 +0100 Subject: [PATCH 49/51] translate wizard settings --- app/locale/fr.coffee | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/app/locale/fr.coffee b/app/locale/fr.coffee index 67f7b99a0..83ce90a74 100644 --- a/app/locale/fr.coffee +++ b/app/locale/fr.coffee @@ -104,14 +104,14 @@ module.exports = nativeDescription: "français", englishDescription: "French", t wizard_settings: title: "Paramètres du Magicien" customize_avatar: "Personnaliser votre avatar" -# clothes: "Clothes" -# trim: "Trim" -# cloud: "Cloud" -# spell: "Spell" -# boots: "Boots" -# hue: "Hue" -# saturation: "Saturation" -# lightness: "Lightness" + clothes: "Vêtements" + trim: "Tailleur" + cloud: "Nuage" + spell: "Sort" + boots: "Bottes" + hue: "Teinte" + saturation: "Saturation" + lightness: "Luminosité" account_settings: title: "Préférences du compte" @@ -137,7 +137,7 @@ module.exports = nativeDescription: "français", englishDescription: "French", t contribute_page: "page de contributions" contribute_suffix: " pour en savoir plus." email_toggle: "Tout basculer" - error_saving: "Probleme d'enregistrement" + error_saving: "Problème d'enregistrement" saved: "Changements sauvegardés" password_mismatch: "Le mot de passe ne correspond pas." From 6f0ed9040a4b463b722694e325eb7390a2e854b5 Mon Sep 17 00:00:00 2001 From: Nick Winter Date: Mon, 17 Feb 2014 17:38:49 -0800 Subject: [PATCH 50/51] Fixes for dirt path, fast portraits, and slow transpilation. Starting to move Aether stuff into a Tome worker with Catiline. --- .../workers/catiline_worker_shim.js | 2 + .../javascripts/workers/worker_world.coffee | 140 ------------------ app/lib/LevelLoader.coffee | 5 +- app/lib/surface/CocoSprite.coffee | 2 +- app/lib/surface/SpriteBoss.coffee | 4 +- app/models/ThangType.coffee | 3 +- app/views/play/level/tome/spell.coffee | 20 ++- app/views/play/level/tome/tome_view.coffee | 24 ++- bower.json | 3 +- config.coffee | 4 +- 10 files changed, 51 insertions(+), 156 deletions(-) create mode 100644 app/assets/javascripts/workers/catiline_worker_shim.js delete mode 100644 app/assets/javascripts/workers/worker_world.coffee diff --git a/app/assets/javascripts/workers/catiline_worker_shim.js b/app/assets/javascripts/workers/catiline_worker_shim.js new file mode 100644 index 000000000..38fb64d2a --- /dev/null +++ b/app/assets/javascripts/workers/catiline_worker_shim.js @@ -0,0 +1,2 @@ +self._noTransferable = true; +self.onmessage = function(e) { eval(e.data); }; diff --git a/app/assets/javascripts/workers/worker_world.coffee b/app/assets/javascripts/workers/worker_world.coffee deleted file mode 100644 index a963cef7a..000000000 --- a/app/assets/javascripts/workers/worker_world.coffee +++ /dev/null @@ -1,140 +0,0 @@ - -throw "Attempt to load worker_world into main window instead of web worker." if not self.importScripts or not window? - -self.window = self -self.workerID = "Worker" - -self.logLimit = 200 -self.logsLogged = 0 -console = - log: -> - self.logsLogged += 1 - if self.logsLogged is self.logLimit - self.postMessage - type: 'console-log' - args: ["Log limit " + self.logLimit + " reached; shutting up."] - id: self.workerID - else if self.logsLogged < self.logLimit - args = [].slice.call arguments - for arg in args - if arg and arg.constructor and (arg.constructor.className is "Thang" or arg.isComponent) - arg = arg.toString() - - try - self.postMessage - type: 'console-log' - args: args - id: self.workerID - - catch error - self.postMessage - type: 'console-log' - args: ["Could not post log: " + args, error.toString(), error.stack, error.stackTrace] - id: self.workerID - - -console.error = console.info = console.log -self.console = console - -importScripts '/javascripts/world.js' - - -self.transferableSupported = transferableSupported = -> - try - ab = new ArrayBuffer 1 - worker.postMessage ab, [ab] - return ab.byteLength is 0 - catch error - return false - return false - - - World = self.require 'lib/world/world' - GoalManager = self.require 'lib/world/GoalManager' - - self.runWorld = runWorld = (args) -> - self.postedErrors = {} - self.t0 = new Date() - self.firstWorld = args.firstWorld - self.postedErrors = false - self.logsLogged = 0 - - try - self.world = new World args.worldName, args.userCodeMap - if args.level - self.world.loadFromLevel args.level, true - self.goalManager = new GoalManager self.world - self.goalManager.setGoals args.level?.goals or args.goals - self.goalManager.setCode args.userCodeMap - self.goalManager.worldGenerationWillBegin() - self.world.setGoalManager self.goalManager - catch error - self.onWorldError error - return - Math.random = self.world.rand.randf - self.world.loadFrames self.onWorldLoaded, self.onWorldError, self.onWorldLoadProgress - -self.onWorldLoaded = onWorldLoaded = () -> - self.goalManager.worldGenerationEnded() - t1 = new Date() - diff = t1 - self.t0 - transferableSupported = self.transferableSupported() - try - serialized = self.world.serialize() - catch error - console.log "World serialization error:", error.toString() + "\n" + error.stack or error.stackTrace - - - t2 = new Date() - - try - if transferableSupported - self.postMessage( - type: 'new-world' - serialized: serialized.serializedWorld - goalStates: self.goalManager.getGoalStates() - , serialized.transferableObjects) - else - self.postMessage - type: 'new-world' - serialized: serialized.serializedWorld - goalStates: self.goalManager.getGoalStates() - catch error - console.log "World delivery error:", error.toString + "\n" + error.stack or error.stackTrace - t3 = new Date() - console.log "And it was so: (" + (diff / self.world.totalFrames).toFixed(3) + "ms per frame,", self.world.totalFrames, "frames)\nSimulation :" - self.world = null - -self.onWorldError = onWorldError = (error) -> - if error instanceof Aether.problems.UserCodeProblem - unless self.postedErrors[error.key] - problem = error.serialize() - self.postMessage - type: 'user-code-problem' - problem: problem - self.postedErrors[error.key] = problem - - else - console.log "Non-UserCodeError:", error.toString() + "\n" + error.stack or error.stackTrace - return true - -self.onWorldLoadProgress = onWorldLoadProgress = (progress) -> - self.postMessage - type: 'world-load-progress-changed' - progress: progress - -self.abort = abort = -> - if self.world and self.world.name - console.log "About to abort:", self.world.name, typeof self.world.abort - self.world?.abort() - self.world = null - - self.postMessage - type: 'abort' - -self.reportIn = reportIn = -> - self.postMessage - type: 'reportIn' - -self.addEventListener 'message', (event) -> - self[event.data.func](event.data.args) diff --git a/app/lib/LevelLoader.coffee b/app/lib/LevelLoader.coffee index aba6fae47..e655aa7b1 100644 --- a/app/lib/LevelLoader.coffee +++ b/app/lib/LevelLoader.coffee @@ -146,19 +146,22 @@ module.exports = class LevelLoader extends CocoClass colorConfigs = @world.getTeamColors() thangsProduced = {} - baseOptions = {resolutionFactor: 4, async: true} for thang in @world.thangs continue unless thang.spriteName thangType = thangTypes[thang.spriteName] options = thang.getSpriteOptions(colorConfigs) options.async = true + if thangType.get('kind') is 'Floor' + options.resolutionFactor = 2 thangsProduced[thang.spriteName] = true @buildSpriteSheet(thangType, options) for thangName, thangType of thangTypes continue if thangsProduced[thangName] thangType.spriteOptions = {resolutionFactor: 4, async: true} + if thangType.get('kind') is 'Floor' + thangType.spriteOptions.resolutionFactor = 2 @buildSpriteSheet(thangType, thangType.spriteOptions) buildSpriteSheet: (thangType, options) -> diff --git a/app/lib/surface/CocoSprite.coffee b/app/lib/surface/CocoSprite.coffee index 6246619db..1232ffe48 100644 --- a/app/lib/surface/CocoSprite.coffee +++ b/app/lib/surface/CocoSprite.coffee @@ -87,7 +87,7 @@ module.exports = CocoSprite = class CocoSprite extends CocoClass toString: -> "" buildSpriteSheet: -> - options = @thang?.getSpriteOptions?() or @options + options = _.extend @options, @thang?.getSpriteOptions?() ? {} options.colorConfig = @options.colorConfig if @options.colorConfig options.async = false @thangType.getSpriteSheet options diff --git a/app/lib/surface/SpriteBoss.coffee b/app/lib/surface/SpriteBoss.coffee index cf242ffcc..e0aa01341 100644 --- a/app/lib/surface/SpriteBoss.coffee +++ b/app/lib/surface/SpriteBoss.coffee @@ -137,7 +137,9 @@ module.exports = class SpriteBoss extends CocoClass addThangToSprites: (thang, layer=null) -> return console.warn 'Tried to add Thang to the surface it already has:', thang.id if @sprites[thang.id] thangType = _.find @options.thangTypes, (m) -> m.get('name') is thang.spriteName - sprite = new CocoSprite thangType, @createSpriteOptions thang: thang + options = @createSpriteOptions thang: thang + options.resolutionFactor = if thangType.get('kind') is 'Floor' then 2 else 4 + sprite = new CocoSprite thangType, options @addSprite sprite, null, layer sprite.setDebug @debug sprite diff --git a/app/models/ThangType.coffee b/app/models/ThangType.coffee index d538ba4dd..544052316 100644 --- a/app/models/ThangType.coffee +++ b/app/models/ThangType.coffee @@ -180,13 +180,14 @@ module.exports = class ThangType extends CocoModel pt = @actions.portrait?.positions?.registration sprite.regX = pt?.x or 0 sprite.regY = pt?.y or 0 + sprite.framerate = @actions.portrait?.framerate ? 20 sprite.gotoAndStop 'portrait' stage.addChild(sprite) stage.update() stage.startTalking = -> sprite.gotoAndPlay 'portrait' return if @tick - @tick = => @update() + @tick = (e) => @update(e) createjs.Ticker.addEventListener 'tick', @tick stage.stopTalking = -> sprite.gotoAndStop 'portrait' diff --git a/app/views/play/level/tome/spell.coffee b/app/views/play/level/tome/spell.coffee index cee5cf382..12c3f7e41 100644 --- a/app/views/play/level/tome/spell.coffee +++ b/app/views/play/level/tome/spell.coffee @@ -14,6 +14,7 @@ module.exports = class Spell @supermodel = options.supermodel @skipFlow = options.skipFlow @skipProtectAPI = options.skipProtectAPI + @worker = options.worker p = options.programmableMethod @name = p.name @@ -29,12 +30,12 @@ module.exports = class Spell @team = @permissions.readwrite[0] ? "common" Backbone.Mediator.publish 'tome:spell-created', spell: @ - + destroy: -> @view.destroy() @tabView.destroy() @thangs = null - + @worker = null addThang: (thang) -> if @thangs[thang.id] @@ -59,10 +60,17 @@ module.exports = class Spell @source = source else source = @getSource() - spellThang.aether.transpile source for thangID, spellThang of @thangs - #for thangID, spellThang of @thangs - # console.log "aether transpiled", source, "to", spellThang.aether.pure - # break + [pure, problems] = [null, null] + for thangID, spellThang of @thangs + unless pure + pure = spellThang.aether.transpile source + problems = spellThang.aether.problems + #console.log "aether transpiled", source.length, "to", pure.length, "for", thangID, @spellKey + else + spellThang.aether.pure = pure + spellThang.aether.problems = problems + #console.log "aether reused transpilation for", thangID, @spellKey + null hasChanged: (newSource=null, currentSource=null) -> (newSource ? @originalSource) isnt (currentSource ? @source) diff --git a/app/views/play/level/tome/tome_view.coffee b/app/views/play/level/tome/tome_view.coffee index 621481d31..08b5ba470 100644 --- a/app/views/play/level/tome/tome_view.coffee +++ b/app/views/play/level/tome/tome_view.coffee @@ -36,6 +36,8 @@ ThangListView = require './thang_list_view' SpellPaletteView = require './spell_palette_view' CastButtonView = require './cast_button_view' +window.SHIM_WORKER_PATH = '/javascripts/workers/catiline_worker_shim.coffee' + module.exports = class TomeView extends View id: 'tome-view' template: template @@ -55,8 +57,8 @@ module.exports = class TomeView extends View afterRender: -> super() + @worker = @createWorker() programmableThangs = _.filter @options.thangs, 'isProgrammable' - if programmableThangs.length @createSpells programmableThangs, programmableThangs[0].world # Do before spellList, thangList, and castButton @spellList = @insertSubView new SpellListView spells: @spells, supermodel: @supermodel @@ -75,6 +77,21 @@ module.exports = class TomeView extends View @thangList.adjustThangs @spells, thangs @spellList.adjustSpells @spells + createWorker: -> + return + # In progress + worker = cw + initialize: (scope) -> + importScripts '/javascripts/lodash.min.js' + importScripts '/javascripts/aether.js' + console.log 'Tome worker initialized.' + doIt: (data, callback, scope) -> + console.log 'doing', what + a = new Aether() + callback 'good' + undefined + worker + generateTeamSpellMap: (spellObject) -> teamSpellMap = {} for spellName, spell of spellObject @@ -89,7 +106,6 @@ module.exports = class TomeView extends View return teamSpellMap - createSpells: (programmableThangs, world) -> pathPrefixComponents = ['play', 'level', @options.levelID, @options.session.id, 'code'] @spells ?= {} @@ -107,7 +123,7 @@ module.exports = class TomeView extends View unless method.cloneOf skipProtectAPI = true #@getQueryVariable("skip_protect_api") is "true" skipFlow = @getQueryVariable("skip_flow") is "true" or @options.levelID is 'project-dota' - spell = @spells[spellKey] = new Spell programmableMethod: method, spellKey: spellKey, pathComponents: pathPrefixComponents.concat(pathComponents), session: @options.session, supermodel: @supermodel, skipFlow: skipFlow, skipProtectAPI: skipProtectAPI + spell = @spells[spellKey] = new Spell programmableMethod: method, spellKey: spellKey, pathComponents: pathPrefixComponents.concat(pathComponents), session: @options.session, supermodel: @supermodel, skipFlow: skipFlow, skipProtectAPI: skipProtectAPI, worker: @worker for thangID, spellKeys of @thangSpells thang = world.getThangByID thangID if thang @@ -188,4 +204,6 @@ module.exports = class TomeView extends View destroy: -> spell.destroy() for spellKey, spell of @spells + @worker?._close() + @worker = null super() diff --git a/bower.json b/bower.json index be482292f..590d0e3ee 100644 --- a/bower.json +++ b/bower.json @@ -34,7 +34,8 @@ "moment": "~2.5.0", "aether": "~0.1.2", "underscore.string": "~2.3.3", - "firebase": "~1.0.2" + "firebase": "~1.0.2", + "catiline": "~2.9.3" }, "overrides": { "backbone": { diff --git a/config.coffee b/config.coffee index 3c4bb76d9..ad0b737c0 100644 --- a/config.coffee +++ b/config.coffee @@ -26,11 +26,11 @@ exports.config = )/// 'javascripts/app.js': /^app/ 'javascripts/vendor.js': ///^( - vendor[\/\\](?!(scripts[\/\\]Box2d|scripts[\/\\]box2d)) + vendor[\/\\](?!scripts[\/\\]Box2d) |bower_components )/// 'javascripts/vendor_with_box2d.js': ///^( - vendor[\/\\](?!scripts[\/\\]box2d) + vendor[\/\\] |bower_components # include box2dweb for profiling (and for IE9...) )/// 'test/javascripts/test.js': /^test[\/\\](?!vendor)/ From d45f67a8c3551ce8cba4460d4ec2664f3aed5ca0 Mon Sep 17 00:00:00 2001 From: Nick Winter Date: Tue, 18 Feb 2014 10:03:57 -0800 Subject: [PATCH 51/51] Fixed some popover and modal layout and bugs. --- app/styles/play/level/tome/tome.sass | 9 +++++++-- app/templates/play/level/modal/victory.jade | 6 ++---- app/views/kinds/ModalView.coffee | 15 ++++++++++----- app/views/play/level/hud_view.coffee | 2 +- app/views/play/level/modal/victory_modal.coffee | 9 +-------- app/views/play/level/tome/tome_view.coffee | 11 +++++++++-- config.coffee | 4 ++++ 7 files changed, 34 insertions(+), 22 deletions(-) diff --git a/app/styles/play/level/tome/tome.sass b/app/styles/play/level/tome/tome.sass index 633b1da6b..11ccfb08b 100644 --- a/app/styles/play/level/tome/tome.sass +++ b/app/styles/play/level/tome/tome.sass @@ -11,13 +11,16 @@ right: 100% bottom: 151px @include user-select(text) + // Wish I could set max-width and max-height (and override Bootstrap's stuff) + // but without explicitly setting height, child overflow-y: scroll doesn't work + min-width: 100% + height: 60% &.pinned @include box-shadow(0 0 500px white) .popover - padding: 10px - min-width: 400px + padding: 10px 10px 30px 10px background: transparent url(/images/level/popover_background.png) background-size: 100% 100% border: 0 @@ -33,6 +36,8 @@ border-bottom-color: #ccc .popover-content + max-height: 100% + overflow-y: scroll img float: right diff --git a/app/templates/play/level/modal/victory.jade b/app/templates/play/level/modal/victory.jade index afdd19f88..acdd48e93 100644 --- a/app/templates/play/level/modal/victory.jade +++ b/app/templates/play/level/modal/victory.jade @@ -14,6 +14,7 @@ p.sign-up-poke button.btn.btn-success.sign-up-button.btn-large(data-toggle="coco-modal", data-target="modal/signup", data-i18n="play_level.victory_sign_up") Sign Up to Save Progress span(data-i18n="play_level.victory_sign_up_poke") Want to save your code? Create a free account! + p.clearfix else div.rating.secret span(data-i18n="play_level.victory_rate_the_level") Rate the level: @@ -23,10 +24,7 @@ i.icon-star-empty i.icon-star-empty if hasNextLevel - if nextLevelText - button.btn.btn-primary.next-level-button(data-dismiss="modal")= nextLevelText - else - button.btn.btn-primary.next-level-button(data-dismiss="modal", data-i18n="play_level.victory_play_next_level") Play Next Level + button.btn.btn-primary.next-level-button(data-dismiss="modal", data-i18n="play_level.victory_play_next_level") Play Next Level else a.btn.btn-primary(href="/", data-dismiss="modal", data-i18n="play_level.victory_go_home") Go Home if !me.get('anonymous') diff --git a/app/views/kinds/ModalView.coffee b/app/views/kinds/ModalView.coffee index 6695e9b1a..5222df067 100644 --- a/app/views/kinds/ModalView.coffee +++ b/app/views/kinds/ModalView.coffee @@ -5,7 +5,7 @@ module.exports = class ModalView extends CocoView closeButton: true closesOnClickOutside: true modalWidthPercent: null - + shortcuts: 'esc': 'hide' @@ -28,10 +28,10 @@ module.exports = class ModalView extends CocoView super() if @modalWidthPercent @$el.find('.modal-dialog').css width: "#{@modalWidthPercent}%" - @$el.on 'hide.bs.modal', => + @$el.on 'hide.bs.modal', => @onHidden() unless @hidden @hidden = true - + afterInsert: -> super() # This makes sure if you press enter right after opening the players guide, @@ -42,7 +42,12 @@ module.exports = class ModalView extends CocoView $el = @$el.find('.modal-body') unless $el super($el) - hide: -> + hide: -> @$el.removeClass('fade').modal "hide" - onHidden: -> \ No newline at end of file + onHidden: -> + + destroy: -> + @hide() unless @hidden + @$el.off 'hide.bs.modal' + super() diff --git a/app/views/play/level/hud_view.coffee b/app/views/play/level/hud_view.coffee index a96f43acf..119fe1518 100644 --- a/app/views/play/level/hud_view.coffee +++ b/app/views/play/level/hud_view.coffee @@ -132,7 +132,7 @@ module.exports = class HUDView extends View createProperties: -> props = @$el.find('.thang-props') props.find(":not(.thang-name)").remove() - props.find('.thang-name').text(if @thang.id is @thang.spriteName then @thang.id else "#{@thang.id} - #{@thang.spriteName}") + props.find('.thang-name').text(if @thang.type then "#{@thang.id} - #{@thang.spriteName}" else @thang.id) for prop in @thang.hudProperties ? [] pel = @createPropElement prop continue unless pel? diff --git a/app/views/play/level/modal/victory_modal.coffee b/app/views/play/level/modal/victory_modal.coffee index 8afcd7e4e..e2fa6b607 100644 --- a/app/views/play/level/modal/victory_modal.coffee +++ b/app/views/play/level/modal/victory_modal.coffee @@ -76,14 +76,6 @@ module.exports = class VictoryModal extends View # Show the "I'm done" button if they get to the end, unless it's been over two hours tooMuch = elapsed >= 120 * 60 * 1000 c.showHourOfCodeDoneButton = not c.hasNextLevel and not tooMuch - - if c.hasNextLevel and me.lang().split('-')[0] is 'en' - # A/B test "Unlock Next Level" vs. "Play Next Level" - unlock = Boolean(me.get('testGroupNumber') & 2) # 2, 3, 6, 7, 10, 11, ... - text = if unlock then "Unlock Next Level" else "Play Next Level" - window.tracker?.trackEvent 'Next Level Text', text: text - window.tracker?.identify {nextLevelText: text} - c.nextLevelText = text c afterRender: -> @@ -101,6 +93,7 @@ module.exports = class VictoryModal extends View destroy: -> @saveReview() if @$el.find('.review textarea').val() + @feedback.off() super() # rating, review diff --git a/app/views/play/level/tome/tome_view.coffee b/app/views/play/level/tome/tome_view.coffee index 08b5ba470..76f65361d 100644 --- a/app/views/play/level/tome/tome_view.coffee +++ b/app/views/play/level/tome/tome_view.coffee @@ -82,14 +82,21 @@ module.exports = class TomeView extends View # In progress worker = cw initialize: (scope) -> - importScripts '/javascripts/lodash.min.js' - importScripts '/javascripts/aether.js' + self.window = self + self.global = self console.log 'Tome worker initialized.' doIt: (data, callback, scope) -> console.log 'doing', what + try + importScripts '/javascripts/tome_aether.js' + catch err + console.log err.toString() a = new Aether() callback 'good' undefined + onAccepted = (s) -> console.log 'accepted', s + onRejected = (s) -> console.log 'rejected', s + worker.doIt('hmm').then onAccepted, onRejected worker generateTeamSpellMap: (spellObject) -> diff --git a/config.coffee b/config.coffee index ad0b737c0..f64a3d7ac 100644 --- a/config.coffee +++ b/config.coffee @@ -33,6 +33,10 @@ exports.config = vendor[\/\\] |bower_components # include box2dweb for profiling (and for IE9...) )/// + 'javascripts/tome_aether.js': ///^( + (bower_components[\/\\]lodash[\/\\]dist[\/\\]lodash.js) + |(bower_components[\/\\]aether[\/\\]build[\/\\]aether.js) + )/// 'test/javascripts/test.js': /^test[\/\\](?!vendor)/ 'test/javascripts/test-vendor.js': /^test[\/\\](?=vendor)/ order: