mirror of
https://github.com/codeninjasllc/codecombat.git
synced 2025-04-14 05:55:00 -04:00
Merge branch 'master' into production
This commit is contained in:
commit
b0cb3c8ab8
15 changed files with 156 additions and 142 deletions
app
locale
schemas
styles
templates
views/play/level/modal
headless_client
package.jsonserver/queues
|
@ -255,6 +255,8 @@
|
|||
victory_new_item: "New Item"
|
||||
victory_viking_code_school: "Holy smokes, that was a hard level you just beat! If you aren't already a software developer, you should be. You just got fast-tracked for acceptance with Viking Code School, where you can take your skills to the next level and become a professional web developer in 14 weeks."
|
||||
victory_become_a_viking: "Become a Viking"
|
||||
victory_bloc: "Great work! Your skills are improving, and someone's taking notice. If you've considered becoming a software developer, this may be your lucky day. Bloc is an online bootcamp that pairs you 1-on-1 with an expert mentor who will help train you into a professional developer! By beating A Mayhem of Munchkins, you're now eligible for a $500 price reduction with the code: CCRULES"
|
||||
victory_bloc_cta: "Meet your mentor – learn about Bloc"
|
||||
guide_title: "Guide"
|
||||
tome_minion_spells: "Your Minions' Spells" # Only in old-style levels.
|
||||
tome_read_only_spells: "Read-Only Spells" # Only in old-style levels.
|
||||
|
@ -1199,12 +1201,15 @@
|
|||
boolean_logic: "Boolean Logic"
|
||||
break_statements: "Break Statements"
|
||||
classes: "Classes"
|
||||
continue_statements: "Continue Statements"
|
||||
for_loops: "For Loops"
|
||||
functions: "Functions"
|
||||
graphics: "Graphics"
|
||||
if_statements: "If Statements"
|
||||
input_handling: "Input Handling"
|
||||
math_operations: "Math Operations"
|
||||
object_literals: "Object Literals"
|
||||
parameters: "Parameters"
|
||||
strings: "Strings"
|
||||
variables: "Variables"
|
||||
vectors: "Vectors"
|
||||
|
|
|
@ -291,10 +291,10 @@ module.exports = nativeDescription: "日本語", englishDescription: "Japanese",
|
|||
infinite_loop_reset_level: "レベルをリセット"
|
||||
infinite_loop_comment_out: "マイコードをコメントアウト"
|
||||
tip_toggle_play: "Ctrl+Pで、プレイ/ポーズをトグルする"
|
||||
tip_scrub_shortcut: "Ctrl+[ と Ctrl+] で巻き戻し、早送りする" # {change}
|
||||
tip_scrub_shortcut: "Ctrl+[ と Ctrl+] で早戻し、早送りする"
|
||||
tip_guide_exists: "ゲームメニュー内のガイド(ページの上部)をクリックし、便利な情報 を見よう。"
|
||||
tip_open_source: "CodeCombatは、100%オープンソースです!"
|
||||
# tip_tell_friends: "Enjoying CodeCombat? Tell your friends about us!"
|
||||
tip_tell_friends: "コードコンバットを楽しんでますか?このことを友達にも伝えましょう!"
|
||||
tip_beta_launch: "CodeCombatは、2013年10月にベータ版を開始しました。"
|
||||
tip_think_solution: "問題より、解決策を考えろ。"
|
||||
tip_theory_practice: "理論的には、理論と実践の間には違いはない。でも実際には、ある。- ヨギ・ベラ"
|
||||
|
@ -338,7 +338,7 @@ module.exports = nativeDescription: "日本語", englishDescription: "Japanese",
|
|||
tip_recurse: "繰り返しは人間、再帰は神。 - L・ピーター・ドイツ"
|
||||
tip_free_your_mind: "全ての雑念を捨てろ、恐怖、疑いも不信も 心を解き放つんだ - モーフィアス"
|
||||
tip_strong_opponents: "どんな強者にも弱点というものはあるんだ… - うちは イタチ"
|
||||
# tip_paper_and_pen: "Before you start coding, you can always plan with a sheet of paper and a pen."
|
||||
tip_paper_and_pen: "コーディングを始める前に, 必ず紙とペンを用意して計画を立てましょう。"
|
||||
|
||||
game_menu:
|
||||
inventory_tab: "インベントリー"
|
||||
|
@ -399,9 +399,9 @@ module.exports = nativeDescription: "日本語", englishDescription: "Japanese",
|
|||
|
||||
subscribe:
|
||||
comparison_blurb: "CodeCombatへ課金してスキルを磨きましょう!"
|
||||
feature1: "80以上の基本レベルが4つの世界に" # {change}
|
||||
feature2: "7人のパワフルな <strong>ニューヒーロー</strong> とユニークなスキル!" # {change}
|
||||
feature3: "60以上のボーナスレベル" # {change}
|
||||
feature1: "100以上の基本レベルが4つの世界に"
|
||||
feature2: "10人のパワフルな <strong>ニューヒーロー</strong> とユニークなスキル!"
|
||||
feature3: "70以上のボーナスレベル"
|
||||
feature4: "<strong>3500のジェム</strong>が毎月ボーナス!"
|
||||
feature5: "ビデオチュートリアル"
|
||||
feature6: "プレミアムメールサポート"
|
||||
|
@ -588,18 +588,18 @@ module.exports = nativeDescription: "日本語", englishDescription: "Japanese",
|
|||
intro_2: "プログラミングの経験は必要ありません!"
|
||||
free_title: "価格について"
|
||||
# cost_china: "CodeCombat in China is free for the first five levels, after which it costs $9.99 USD per month for access to our other 140+ levels on our exclusive China servers."
|
||||
free_1: "CodeCombat は基本的に無料です!80以上のレベルが無料です。" # {change}
|
||||
free_1: "CodeCombat は基本的に無料です!100以上のレベルが無料です。"
|
||||
free_2: "月々の課金をするとビデオのチュートリアルにアクセスでき、また追加のレベルが楽しめます。"
|
||||
teacher_subs_title: "教育関係者は無料のサブスクリプションを得ることができます!"
|
||||
teacher_subs_1: "" # {change}
|
||||
teacher_subs_2: "に連絡して無料の月々のサブスクリプションを得ましょう。" # {change}
|
||||
# teacher_subs_3: "to set up your subscription."
|
||||
sub_includes_title: "サブスクリプションの内容について"
|
||||
sub_includes_1: "80以上の基本レベルに加えて、生徒は月々のサブスクリプションを得て次の機能が使えます:" # {change}
|
||||
sub_includes_2: "60以上の練習レベル" # {change}
|
||||
sub_includes_1: "100以上の基本レベルに加えて、生徒は月々のサブスクリプションを得て次の機能が使えます:"
|
||||
sub_includes_2: "70以上の練習レベル"
|
||||
sub_includes_3: "ビデオチュートリアル"
|
||||
sub_includes_4: "メールによるサポート"
|
||||
sub_includes_5: "7人の新しいヒーローとマスターのユニークなスキル" # {change}
|
||||
sub_includes_5: "10人の新しいヒーローとマスターのユニークなスキル"
|
||||
sub_includes_6: "3500のジェムが月々支給されます"
|
||||
# sub_includes_7: "Private Clans"
|
||||
# monitor_progress_title: "How do I monitor student progress?"
|
||||
|
@ -765,7 +765,7 @@ module.exports = nativeDescription: "日本語", englishDescription: "Japanese",
|
|||
article_editor_prefix: "私たちのドキュメントにミスを見つけましたか?自分の作品のチュートリアルを作りたいですか?"
|
||||
article_editor_suffix: "を使って CodeCombat のプレイヤーを助けて彼らのプレイタイムを最大限に活用できるようにしましょう。"
|
||||
find_us: "各サイトで私たちを見る"
|
||||
# social_github: "Check out all our code on GitHub"
|
||||
social_github: "GitHubで私達のコードをチェックする"
|
||||
social_blog: "Sett の CodeCombat ブログを読む"
|
||||
social_discource: "Discourse のフォーラムで議論しよう"
|
||||
social_facebook: "Facebook で CodeCombat にいいね!する"
|
||||
|
@ -853,8 +853,8 @@ module.exports = nativeDescription: "日本語", englishDescription: "Japanese",
|
|||
indoor: "屋内"
|
||||
desert: "砂漠"
|
||||
grassy: "草原"
|
||||
# mountain: "Mountain"
|
||||
# glacier: "Glacier"
|
||||
mountain: "山岳"
|
||||
glacier: "氷河"
|
||||
small: "小さい"
|
||||
large: "大きい"
|
||||
fork_title: "新しいバージョンをフォークする"
|
||||
|
|
|
@ -360,8 +360,8 @@ module.exports = nativeDescription: "한국어", englishDescription: "Korean", t
|
|||
leaderboard:
|
||||
# leaderboard: "Leaderboard"
|
||||
# view_other_solutions: "View Leaderboards"
|
||||
# scores: "Scores"
|
||||
# top_players: "Top Players by"
|
||||
scores: "점수"
|
||||
top_players: "상위 플레이어"
|
||||
day: "오늘"
|
||||
week: "이번 주"
|
||||
# all: "All-Time"
|
||||
|
@ -374,28 +374,28 @@ module.exports = nativeDescription: "한국어", englishDescription: "Korean", t
|
|||
inventory:
|
||||
choose_inventory: "아이템 장착하기"
|
||||
equipped_item: "장착됨"
|
||||
# required_purchase_title: "Required"
|
||||
required_purchase_title: "구매 필요"
|
||||
available_item: "사용 가능"
|
||||
# restricted_title: "Restricted"
|
||||
# should_equip: "(double-click to equip)"
|
||||
# equipped: "(equipped)"
|
||||
# locked: "(locked)"
|
||||
# restricted: "(restricted in this level)"
|
||||
# equip: "Equip"
|
||||
# unequip: "Unequip"
|
||||
restricted_title: "사용 불가"
|
||||
should_equip: "(장착하려면 더블클릭)"
|
||||
equipped: "(장착됨)"
|
||||
locked: "(잠김)"
|
||||
restricted: "(이 레벨에서는 사용불가)"
|
||||
equip: "장착"
|
||||
unequip: "해제"
|
||||
|
||||
# buy_gems:
|
||||
# few_gems: "A few gems"
|
||||
# pile_gems: "Pile of gems"
|
||||
# chest_gems: "Chest of gems"
|
||||
# purchasing: "Purchasing..."
|
||||
# declined: "Your card was declined"
|
||||
# retrying: "Server error, retrying."
|
||||
# prompt_title: "Not Enough Gems"
|
||||
# prompt_body: "Do you want to get more?"
|
||||
# prompt_button: "Enter Shop"
|
||||
# recovered: "Previous gems purchase recovered. Please refresh the page."
|
||||
# price: "x3500 / mo"
|
||||
buy_gems:
|
||||
few_gems: "gem 몇개"
|
||||
pile_gems: "gem 묶음"
|
||||
chest_gems: "gem 상자"
|
||||
purchasing: "구매중..."
|
||||
declined: "Your card was declined"
|
||||
retrying: "서버에러, 다시 시도하세요."
|
||||
prompt_title: "gem 부족"
|
||||
prompt_body: "gem이 더 필요하신가요?"
|
||||
prompt_button: "Enter Shop"
|
||||
recovered: "gem 구매후 브라우져를 새로고침 하세요."
|
||||
price: "x3500 / 한달"
|
||||
|
||||
# subscribe:
|
||||
# comparison_blurb: "Sharpen your skills with a CodeCombat subscription!"
|
||||
|
@ -467,26 +467,26 @@ module.exports = nativeDescription: "한국어", englishDescription: "Korean", t
|
|||
# using_prepaid: "Using prepaid code for monthly subscription"
|
||||
|
||||
choose_hero:
|
||||
# choose_hero: "Choose Your Hero"
|
||||
choose_hero: "영웅을 선택하세요"
|
||||
programming_language: "프로그래밍 언어"
|
||||
# programming_language_description: "Which programming language do you want to use?"
|
||||
# default: "Default"
|
||||
# experimental: "Experimental"
|
||||
programming_language_description: "어떤 프로그래밍 언어를 사용하실건가요?"
|
||||
default: "기본"
|
||||
experimental: "고급"
|
||||
python_blurb: "간단하지만 강력합니다."
|
||||
javascript_blurb: "웹을 위한 언어."
|
||||
coffeescript_blurb: "향상된 자바스크립트 문법."
|
||||
clojure_blurb: "현대적인 Lisp."
|
||||
lua_blurb: "게임 스크립팅 언어"
|
||||
io_blurb: "간단하지만 아직 잘 알려지지 않은 언어."
|
||||
# status: "Status"
|
||||
# hero_type: "Type"
|
||||
status: "상태"
|
||||
hero_type: "직업"
|
||||
weapons: "무기"
|
||||
# weapons_warrior: "Swords - Short Range, No Magic"
|
||||
# weapons_ranger: "Crossbows, Guns - Long Range, No Magic"
|
||||
# weapons_wizard: "Wands, Staffs - Long Range, Magic"
|
||||
# attack: "Damage" # Can also translate as "Attack"
|
||||
# health: "Health"
|
||||
# speed: "Speed"
|
||||
weapons_warrior: "검 - 짧은 거리, 마법 불가"
|
||||
weapons_ranger: "화살, 총 - 긴 거리, 마법 불가"
|
||||
weapons_wizard: "마법봉, 지팡이 - 긴 거리, 마법 가능"
|
||||
attack: "공격력" # Can also translate as "Attack"
|
||||
health: "체력"
|
||||
speed: "속도"
|
||||
# regeneration: "Regeneration"
|
||||
# range: "Range" # As in "attack or visual range"
|
||||
# blocks: "Blocks" # As in "this shield blocks this much damage"
|
||||
|
@ -738,11 +738,11 @@ module.exports = nativeDescription: "한국어", englishDescription: "Korean", t
|
|||
keyboard_shortcuts: "단축키"
|
||||
space: "스페이스"
|
||||
enter: "엔터"
|
||||
# press_enter: "press enter"
|
||||
press_enter: "엔터를 누르세요"
|
||||
escape: "Esc"
|
||||
shift: "Shift"
|
||||
# run_code: "Run current code."
|
||||
# run_real_time: "Run in real time."
|
||||
run_code: "현재 코드 실행"
|
||||
run_real_time: "실시간 코드 실행"
|
||||
# continue_script: "Continue past current script."
|
||||
# skip_scripts: "Skip past all skippable scripts."
|
||||
# toggle_playback: "Toggle play/pause."
|
||||
|
@ -774,42 +774,42 @@ module.exports = nativeDescription: "한국어", englishDescription: "Korean", t
|
|||
# social_hipchat: "Chat with us in the public CodeCombat HipChat room"
|
||||
# contribute_to_the_project: "Contribute to the project"
|
||||
|
||||
# clans:
|
||||
# clan: "Clan"
|
||||
# clans: "Clans"
|
||||
# new_name: "New clan name"
|
||||
# new_description: "New clan description"
|
||||
# make_private: "Make clan private"
|
||||
clans:
|
||||
clan: "클랜"
|
||||
clans: "클랜들"
|
||||
new_name: "새로운 클랜 이름"
|
||||
new_description: "새로운 클랜 설명"
|
||||
make_private: "클랜을 비공개로 만들기"
|
||||
# subs_only: "subscribers only"
|
||||
# create_clan: "Create New Clan"
|
||||
# private_preview: "Preview"
|
||||
# public_clans: "Public Clans"
|
||||
# my_clans: "My Clans"
|
||||
# clan_name: "Clan Name"
|
||||
# name: "Name"
|
||||
# chieftain: "Chieftain"
|
||||
create_clan: "새로운 클랜 만들기"
|
||||
private_preview: "미리보기"
|
||||
public_clans: "공개 클랜들"
|
||||
my_clans: "내가 속한 클랜"
|
||||
clan_name: "클랜 이름"
|
||||
name: "이름"
|
||||
chieftain: "클랜장"
|
||||
# type: "Type"
|
||||
# edit_clan_name: "Edit Clan Name"
|
||||
# edit_clan_description: "Edit Clan Description"
|
||||
# edit_name: "edit name"
|
||||
# edit_description: "edit description"
|
||||
# private: "(private)"
|
||||
# summary: "Summary"
|
||||
# average_level: "Average Level"
|
||||
# average_achievements: "Average Achievements"
|
||||
# delete_clan: "Delete Clan"
|
||||
# leave_clan: "Leave Clan"
|
||||
# join_clan: "Join Clan"
|
||||
# invite_1: "Invite:"
|
||||
# invite_2: "*Invite players to this Clan by sending them this link."
|
||||
# members: "Members"
|
||||
edit_clan_name: "클랜 이름 수정"
|
||||
edit_clan_description: "클랜 설명 수정"
|
||||
edit_name: "이름 변경"
|
||||
edit_description: "설명 변경"
|
||||
private: "(비공개)"
|
||||
summary: "요약"
|
||||
average_level: "평균 레벨"
|
||||
average_achievements: "평균 성취"
|
||||
delete_clan: "클랜 삭제"
|
||||
leave_clan: "클랜 탈퇴"
|
||||
join_clan: "클랜 가입"
|
||||
invite_1: "초대:"
|
||||
invite_2: "*링크를 보내 클랜 초대하기"
|
||||
members: "멤버들"
|
||||
# progress: "Progress"
|
||||
# not_started_1: "not started"
|
||||
# started_1: "started"
|
||||
# complete_1: "complete"
|
||||
# exp_levels: "Expand levels"
|
||||
# rem_hero: "Remove Hero"
|
||||
# status: "Status"
|
||||
rem_hero: "영웅 삭제"
|
||||
status: "상태"
|
||||
# complete_2: "Complete"
|
||||
# started_2: "Started"
|
||||
# not_started_2: "Not Started"
|
||||
|
@ -850,7 +850,7 @@ module.exports = nativeDescription: "한국어", englishDescription: "Korean", t
|
|||
revert_models: "모델 되돌리기"
|
||||
pick_a_terrain: "지형을 선택하세요."
|
||||
dungeon: "지하 감옥"
|
||||
# indoor: "Indoor"
|
||||
indoor: "내부"
|
||||
desert: "사막"
|
||||
grassy: "풀로 덮인"
|
||||
# mountain: "Mountain"
|
||||
|
@ -882,9 +882,9 @@ module.exports = nativeDescription: "한국어", englishDescription: "Korean", t
|
|||
# component_configs: "Component Configurations"
|
||||
# config_thang: "Double click to configure a thang"
|
||||
delete: "삭제"
|
||||
# duplicate: "Duplicate"
|
||||
# stop_duplicate: "Stop Duplicate"
|
||||
# rotate: "Rotate"
|
||||
duplicate: "복제"
|
||||
stop_duplicate: "복제 중지"
|
||||
rotate: "회전"
|
||||
level_settings_title: "설정"
|
||||
level_component_tab_title: "현재 요소들"
|
||||
level_component_btn_new: "새로운 요소들 생성"
|
||||
|
@ -1017,12 +1017,12 @@ module.exports = nativeDescription: "한국어", englishDescription: "Korean", t
|
|||
# battle_as: "Battle as "
|
||||
summary_your: "당신의 "
|
||||
# summary_matches: "Matches - "
|
||||
# summary_wins: " Wins, "
|
||||
# summary_losses: " Losses"
|
||||
summary_wins: " 승자들, "
|
||||
summary_losses: " 패자들"
|
||||
# rank_no_code: "No New Code to Rank"
|
||||
rank_my_game: "내 게임 순위 매기기!"
|
||||
rank_submitting: "제출중..."
|
||||
# rank_submitted: "Submitted for Ranking"
|
||||
rank_submitted: "순위 매기기 제출"
|
||||
rank_failed: "순위 매기기 실패"
|
||||
# rank_being_ranked: "Game Being Ranked"
|
||||
rank_last_submitted: "제출 완료"
|
||||
|
@ -1035,16 +1035,16 @@ module.exports = nativeDescription: "한국어", englishDescription: "Korean", t
|
|||
tutorial_play: "튜토리얼 보기"
|
||||
tutorial_recommended: "전에 플레이해본 적이 없으시다면 튜토리얼을 보시는 걸 권장합니다."
|
||||
tutorial_skip: "튜토리얼 넘기기"
|
||||
# tutorial_not_sure: "Not sure what's going on?"
|
||||
tutorial_not_sure: "어떻게 진행되는지 알고 싶은세요?"
|
||||
tutorial_play_first: "튜토리얼을 먼저 플레이해보세요."
|
||||
# simple_ai: "Simple AI"
|
||||
# warmup: "Warmup"
|
||||
# friends_playing: "Friends Playing"
|
||||
simple_ai: "기초 인공지능"
|
||||
warmup: "워밍업"
|
||||
friends_playing: "친구들이 게임중"
|
||||
log_in_for_friends: "로그인하시고 친구들과 게임을 즐기세요!"
|
||||
# social_connect_blurb: "Connect and play against your friends!"
|
||||
# invite_friends_to_battle: "Invite your friends to join you in battle!"
|
||||
# fight: "Fight!"
|
||||
# watch_victory: "Watch your victory"
|
||||
fight: "전투 시작!"
|
||||
watch_victory: "당신의 승리를 확인하세요"
|
||||
# defeat_the: "Defeat the"
|
||||
# tournament_started: ", started"
|
||||
# tournament_ends: "Tournament ends"
|
||||
|
|
|
@ -247,7 +247,7 @@ module.exports = nativeDescription: "Português do Brasil", englishDescription:
|
|||
victory_saving_progress: "Salvando Progresso"
|
||||
victory_go_home: "Ir à página inicial"
|
||||
victory_review: "Diga-nos mais!"
|
||||
# victory_review_placeholder: "How was the level?"
|
||||
victory_review_placeholder: "O que achou da fase?" #"How was the level?"
|
||||
victory_hour_of_code_done: "Terminou?"
|
||||
victory_hour_of_code_done_yes: "Sim, eu terminei minha Hora da Programação!"
|
||||
victory_experience_gained: "XP ganho"
|
||||
|
@ -294,7 +294,7 @@ module.exports = nativeDescription: "Português do Brasil", englishDescription:
|
|||
tip_scrub_shortcut: "Ctrl+[ e Ctrl+] rebobina e avança." # {change}
|
||||
tip_guide_exists: "Clique no guia no topo da página para informações úteis."
|
||||
tip_open_source: "CodeCombat é 100% código aberto!"
|
||||
# tip_tell_friends: "Enjoying CodeCombat? Tell your friends about us!"
|
||||
tip_tell_friends: "Está gostando de CodeCombate? Dibulgue para os seus amigos!" # "Enjoying CodeCombat? Tell your friends about us!"
|
||||
tip_beta_launch: "CodeCombat lançou sua versão beta em outubro de 2013."
|
||||
tip_think_solution: "Pense na solução, não no problema."
|
||||
tip_theory_practice: "Na teoria, não existe diferença entre teoria e prática. Mas, na prática, há. - Yogi Berra"
|
||||
|
@ -338,7 +338,7 @@ module.exports = nativeDescription: "Português do Brasil", englishDescription:
|
|||
tip_recurse: "Para iterar é humano, para recursão, é divino. - L. Peter Deutsch"
|
||||
tip_free_your_mind: "Você tem que deixar isso tudo passar, Neo. O medo, a dúvida e a descrença. Liberte sua mente - Morpheus"
|
||||
tip_strong_opponents: "Mesmo o mais forte dos adversários tem sua fraqueza. - Itachi Uchiha"
|
||||
# tip_paper_and_pen: "Before you start coding, you can always plan with a sheet of paper and a pen."
|
||||
tip_paper_and_pen: "Antes de começar a programar, você sempre pode planejar com papel e caneta." #"Before you start coding, you can always plan with a sheet of paper and a pen."
|
||||
|
||||
game_menu:
|
||||
inventory_tab: "Inventário"
|
||||
|
@ -358,7 +358,7 @@ module.exports = nativeDescription: "Português do Brasil", englishDescription:
|
|||
auth_caption: "Salve seu progresso."
|
||||
|
||||
leaderboard:
|
||||
# leaderboard: "Leaderboard"
|
||||
leaderboard: "Líderança" #"Leaderboard"
|
||||
view_other_solutions: "Ver Outras Soluções" # {change}
|
||||
scores: "Pontuação"
|
||||
top_players: "Top Jogadores por"
|
||||
|
@ -428,8 +428,8 @@ module.exports = nativeDescription: "Português do Brasil", englishDescription:
|
|||
parents: "Para os pais"
|
||||
parents_title: "Seus filhos estão aprendendo a programar." # {change}
|
||||
parents_blurb1: "Com o CodeCombat, seus filhos aprendem a programar de verdade. Eles começam a aprender comandos simples, e progridem para tópicos avançados."
|
||||
# parents_blurb1a: "Computer programming is an essential skill that your child will undoubtedly use as an adult. By 2020, basic software skills will be needed by 77% of jobs, and software engineers are in high demand across the world. Did you know that Computer Science is the highest-paid university degree?"
|
||||
parents_blurb2: "Apenas $9.99 USD/mês, eles recebem novos desafios todo mês e suporte no email pessoal de programadores profissionais." # {change}
|
||||
parents_blurb1a: "Programação de computadores é uma habilidade essencial que seu filho com certeza usará quando adulto. Em 2020, conhecimentos basicos de software serão necessários para 77% dos empregos, e engenheiros de software estão em grande demanda ao redor do mundo. Você sabia que CIência da Computação é a formação superior mais bem paga?" #"Computer programming is an essential skill that your child will undoubtedly use as an adult. By 2020, basic software skills will be needed by 77% of jobs, and software engineers are in high demand across the world. Did you know that Computer Science is the highest-paid university degree?"
|
||||
parents_blurb2: "Por apenas $9.99 USD/mês, eles recebem novos desafios todo mês e suporte no email pessoal de programadores profissionais." # {change}
|
||||
parents_blurb3: "Sem risco: 100% devolução do dinheiro garantida, basta um simples clique em desinscrever-se."
|
||||
payment_methods: "Formas de pagamento"
|
||||
payment_methods_title: "Formas de pagamento aceitas"
|
||||
|
@ -439,32 +439,32 @@ module.exports = nativeDescription: "Português do Brasil", englishDescription:
|
|||
subscription_required_to_play: "Você precisará se inscrever para jogar este nível."
|
||||
unlock_help_videos: "Inscreva-se para desbloquear todos os vídeos tutoriais."
|
||||
personal_sub: "Inscrição individual" # Accounts Subscription View below
|
||||
# loading_info: "Loading subscription information..."
|
||||
# managed_by: "Managed by"
|
||||
loading_info: "Carregando informação sobre assinatura" #"Loading subscription information..."
|
||||
managed_by: "Gerenciada por" #"Managed by"
|
||||
will_be_cancelled: "Será cancelada em"
|
||||
# currently_free: "You currently have a free subscription"
|
||||
# currently_free_until: "You currently have a free subscription until"
|
||||
# was_free_until: "You had a free subscription until"
|
||||
# managed_subs: "Managed Subscriptions"
|
||||
# managed_subs_desc: "Add subscriptions for other players (students, children, etc.)"
|
||||
# managed_subs_desc_2: "Recipients must have a CodeCombat account associated with the email address you provide."
|
||||
currently_free: "Atualmente você tem uma assinatura gratuita" #"You currently have a free subscription"
|
||||
currently_free_until: "Sua assinatura gratuita é válida até" #"You currently have a free subscription until"
|
||||
was_free_until: "Sua assinatura gratuita expirou em" #"You had a free subscription until"
|
||||
managed_subs: "Assinaturas gerenciadas" #"Managed Subscriptions"
|
||||
managed_subs_desc: "Adicione assinaturas para outros jogadores (estudantes, crianças, etc)" #"Add subscriptions for other players (students, children, etc.)"
|
||||
managed_subs_desc_2: "Destinatários devem ter uma conta CodeCombat associada com o e-mail fornecido"#"Recipients must have a CodeCombat account associated with the email address you provide."
|
||||
group_discounts: "Descontos para grupos"
|
||||
group_discounts_1: "Nós também oferecemos descontos para grupos para inscrições em grande quantidades."
|
||||
# group_discounts_1st: "1st subscription"
|
||||
group_discounts_1st: "Primeira assinatura" #"1st subscription"
|
||||
group_discounts_full: "Preço normal"
|
||||
# group_discounts_2nd: "Subscriptions 2-11"
|
||||
group_discounts_2nd: "2 a 11 assinaturas" # "Subscriptions 2-11"
|
||||
group_discounts_20: "20% de desconto"
|
||||
# group_discounts_12th: "Subscriptions 12+"
|
||||
group_discounts_12th: "Acima de 12 assinaturas" #"Subscriptions 12+"
|
||||
group_discounts_40: "20% de desconto"
|
||||
# subscribing: "Subscribing..."
|
||||
# recipient_emails_placeholder: "Enter email address to subscribe, one per line."
|
||||
# subscribe_users: "Subscribe Users"
|
||||
# users_subscribed: "Users subscribed:"
|
||||
# no_users_subscribed: "No users subscribed, please double check your email addresses."
|
||||
# current_recipients: "Current Recipients"
|
||||
# unsubscribing: "Unsubscribing..."
|
||||
# subscribe_prepaid: "Click Subscribe to use prepaid code"
|
||||
# using_prepaid: "Using prepaid code for monthly subscription"
|
||||
subscribing: "Assinando..." #"Subscribing..."
|
||||
recipient_emails_placeholder: "Insira o e-mail para assinar, um por linha" #"Enter email address to subscribe, one per line."
|
||||
subscribe_users: "Inscrever usuários" #"Subscribe Users"
|
||||
users_subscribed: "Usuários inscritos" #"Users subscribed:"
|
||||
no_users_subscribed: "Nenhum usuário inscrito, por favor verifique os endereços de e-mail" #"No users subscribed, please double check your email addresses."
|
||||
current_recipients: "Destinatários atuais" #"Current Recipients"
|
||||
unsubscribing: "Cancelando assinatura" #"Unsubscribing..."
|
||||
subscribe_prepaid: "Clique em Assinar para utilizar um código pré-pago" #"Click Subscribe to use prepaid code"
|
||||
using_prepaid: "Utilizando código pré-pago para assinatura mensal" #"Using prepaid code for monthly subscription"
|
||||
|
||||
choose_hero:
|
||||
choose_hero: "Escolha seu Herói"
|
||||
|
@ -593,7 +593,7 @@ module.exports = nativeDescription: "Português do Brasil", englishDescription:
|
|||
teacher_subs_title: "Professores recebem assinaturas gratuitas!"
|
||||
teacher_subs_1: "Por favor contate" # {change}
|
||||
teacher_subs_2: "para organizar uma assinatura mensal." # {change}
|
||||
# teacher_subs_3: "to set up your subscription."
|
||||
teacher_subs_3: "para configurar sua assinatura" #"to set up your subscription."
|
||||
sub_includes_title: "O que está incluído na assinatura?"
|
||||
sub_includes_1: "Além dos mais de 80 níveis básicos, estudantes com uma assinatura mensal têm acesso aos seguintes recursos:" # {change}
|
||||
sub_includes_2: "Mais de 60 níveis para praticar" # {change}
|
||||
|
|
|
@ -247,7 +247,7 @@ module.exports = nativeDescription: "Português (Portugal)", englishDescription:
|
|||
victory_saving_progress: "A Guardar o Progresso"
|
||||
victory_go_home: "Ir para o Início"
|
||||
victory_review: "Conta-nos mais!"
|
||||
# victory_review_placeholder: "How was the level?"
|
||||
victory_review_placeholder: "Como foi o nível?"
|
||||
victory_hour_of_code_done: "Terminaste?"
|
||||
victory_hour_of_code_done_yes: "Sim, terminei a minha Hora do Código™!"
|
||||
victory_experience_gained: "XP Ganho"
|
||||
|
@ -765,7 +765,7 @@ module.exports = nativeDescription: "Português (Portugal)", englishDescription:
|
|||
article_editor_prefix: "Vês um erro em alguns dos nossos documentos? Queres escrever algumas instruções para as tuas próprias criações? Confere o"
|
||||
article_editor_suffix: "e ajuda os jogadores do CodeCombat a obter o máximo do tempo de jogo deles."
|
||||
find_us: "Encontra-nos nestes sítios"
|
||||
# social_github: "Check out all our code on GitHub"
|
||||
social_github: "Confere todo o nosso código no GitHub"
|
||||
social_blog: "Lê o blog do CodeCombat no Sett"
|
||||
social_discource: "Junta-te à discussão no nosso fórum Discourse"
|
||||
social_facebook: "Gosta do CodeCombat no Facebook"
|
||||
|
|
|
@ -246,12 +246,15 @@ me.concept = me.shortString enum: [
|
|||
'boolean_logic'
|
||||
'break_statements'
|
||||
'classes'
|
||||
'continue_statements'
|
||||
'for_loops'
|
||||
'functions'
|
||||
'graphics'
|
||||
'if_statements'
|
||||
'input_handling'
|
||||
'math_operations'
|
||||
'object_literals'
|
||||
'parameters'
|
||||
'strings'
|
||||
'variables'
|
||||
'vectors'
|
||||
|
|
|
@ -6,10 +6,10 @@
|
|||
#kids-coding-container
|
||||
$coding-image-size: 272px
|
||||
position: relative
|
||||
width: 1000px + $coding-image-size
|
||||
width: 960px + $coding-image-size
|
||||
margin: 0px auto
|
||||
|
||||
@media screen and ( max-width: 1400px )
|
||||
@media screen and ( max-width: 1279px )
|
||||
display: none
|
||||
|
||||
.kid-coding
|
||||
|
|
|
@ -169,9 +169,9 @@ mixin progress-tab
|
|||
if userLevelStateMap[student][level] === 'complete'
|
||||
span.progress-level-cell.progress-level-cell-complete #{i + 1}
|
||||
if showExpandedProgress || i === 0 || i === course.levels.length - 1
|
||||
span.spl #{level}
|
||||
span.spl= level.replace('Course: ', '')
|
||||
.level-popup-container
|
||||
h3 #{i + 1}. #{level}
|
||||
h3 #{i + 1}. #{level.replace('Course: ', '')}
|
||||
p
|
||||
div
|
||||
- var playTime = Math.round(Math.random() * 600)
|
||||
|
@ -184,11 +184,11 @@ mixin progress-tab
|
|||
span : #{moment(completionDate).format('MMMM Do YYYY, h:mm:ss a')}
|
||||
strong(data-i18n="clans.view_solution") Click to view solution.
|
||||
else if userLevelStateMap[student][level] === 'started'
|
||||
span.progress-level-cell.progress-level-cell-started #{i + 1} #{level}
|
||||
span.progress-level-cell.progress-level-cell-started #{i + 1} #{level.replace('Course: ', '')}
|
||||
else
|
||||
span.progress-level-cell.level-progression-level-not-started #{i + 1}
|
||||
if showExpandedProgress || i === 0
|
||||
span.spl #{level}
|
||||
span.spl= level.replace('Course: ', '')
|
||||
- i++
|
||||
|
||||
mixin levels-tab
|
||||
|
@ -206,7 +206,7 @@ mixin levels-tab
|
|||
td
|
||||
button.btn.btn-success.btn-play-level(data-level=level) Play
|
||||
td= userLevelStateMap[student][level]
|
||||
td= level
|
||||
td= level.replace('Course: ', '')
|
||||
td
|
||||
each concept in courseConcepts
|
||||
if levelConceptsMap[level] && levelConceptsMap[level][concept]
|
||||
|
|
|
@ -22,7 +22,7 @@ else
|
|||
.level-name-area
|
||||
.level-label(data-i18n="play_level.level")
|
||||
.level-name(title=difficultyTitle || "")
|
||||
span= worldName
|
||||
span= worldName.replace('Course: ', '')
|
||||
if levelDifficulty
|
||||
sup.level-difficulty= levelDifficulty
|
||||
|
||||
|
|
|
@ -120,3 +120,9 @@ block modal-footer-content
|
|||
img.pull-right(src="/file/db/level/55144b509f0c4854051769c1/viking_2.png")
|
||||
span(data-i18n="play_level.victory_viking_code_school")
|
||||
button.btn.btn-illustrated.btn-primary.btn-lg.world-map-button.continue-from-offer-button(data-i18n="play_level.victory_become_a_viking") Become a Viking
|
||||
.offer.a-mayhem-of-munchkins
|
||||
p
|
||||
img.pull-left(src="/file/db/level/55ca29439bc1892c835b0137/bloc-mentor.png")
|
||||
img.pull-right(src="/file/db/level/55ca29439bc1892c835b0137/bloc-logo-square-100x100-white.png")
|
||||
span(data-i18n="play_level.victory_bloc")
|
||||
button.btn.btn-illustrated.btn-primary.btn-lg.world-map-button.continue-from-offer-button(data-i18n="play_level.victory_bloc_cta")
|
||||
|
|
|
@ -419,6 +419,8 @@ module.exports = class HeroVictoryModal extends ModalView
|
|||
navigationEvent = route: nextLevelLink, viewClass: viewClass, viewArgs: viewArgs
|
||||
if @level.get('slug') is 'lost-viking' and not (me.get('age') in ['0-13', '14-17'])
|
||||
@showOffer navigationEvent
|
||||
else if @level.get('slug') is 'a-mayhem-of-munchkins' and not (me.get('age') in ['0-13']) and not options.showLeaderboard
|
||||
@showOffer navigationEvent
|
||||
else
|
||||
Backbone.Mediator.publish 'router:navigate', navigationEvent
|
||||
|
||||
|
@ -447,6 +449,7 @@ module.exports = class HeroVictoryModal extends ModalView
|
|||
onClickContinueFromOffer: (e) ->
|
||||
url = {
|
||||
'lost-viking': 'http://www.vikingcodeschool.com/codecombat?utm_source=codecombat&utm_medium=viking_level&utm_campaign=affiliate&ref=Code+Combat+Elite'
|
||||
'a-mayhem-of-munchkins': 'https://www.bloc.io/web-developer-career-track?utm_campaign=affiliate&utm_source=codecombat&utm_medium=bloc_level'
|
||||
}[@level.get('slug')]
|
||||
Backbone.Mediator.publish 'router:navigate', @navigationEventUponCompletion
|
||||
window.open url, '_blank' if url
|
||||
|
|
|
@ -50,13 +50,14 @@ Worker::removeEventListener = (what) ->
|
|||
if what is 'message'
|
||||
@onmessage = -> #This webworker api has only one event listener at a time.
|
||||
GLOBAL.tv4 = require('tv4').tv4
|
||||
GLOBAL.TreemaUtils = require './bower_components/treema/treema-utils.js'
|
||||
GLOBAL.TreemaUtils = require bowerComponentsPath + 'treema/treema-utils'
|
||||
GLOBAL.marked = setOptions: ->
|
||||
store = {}
|
||||
GLOBAL.localStorage =
|
||||
getItem: (key) => store[key]
|
||||
setItem: (key, s) => store[key] = s
|
||||
removeItem: (key) => delete store[key]
|
||||
GLOBAL.lscache = require bowerComponentsPath + 'lscache/lscache'
|
||||
|
||||
# Hook node.js require. See https://github.com/mfncooper/mockery/blob/master/mockery.js
|
||||
# The signature of this function *must* match that of Node's Module._load,
|
||||
|
|
|
@ -2,7 +2,6 @@
|
|||
# This function needs to run inside an environment that has a 'self'.
|
||||
# This specific worker is targeted towards the node.js headless_client environment.
|
||||
|
||||
JASON = require 'JASON'
|
||||
fs = require 'fs'
|
||||
GLOBAL.Aether = Aether = require 'aether'
|
||||
GLOBAL._ = _ = require 'lodash'
|
||||
|
@ -10,12 +9,12 @@ GLOBAL.CoffeeScript = require 'coffee-script'
|
|||
|
||||
betterConsole = () ->
|
||||
|
||||
self.logLimit = 200;
|
||||
self.logsLogged = 0;
|
||||
self.logLimit = 200
|
||||
self.logsLogged = 0
|
||||
|
||||
self.transferableSupported = () -> true
|
||||
|
||||
self.console = log: ->
|
||||
self.console = log: (args...) ->
|
||||
if self.logsLogged++ is self.logLimit
|
||||
self.postMessage
|
||||
type: 'console-log'
|
||||
|
@ -23,7 +22,6 @@ betterConsole = () ->
|
|||
id: self.workerID
|
||||
|
||||
else if self.logsLogged < self.logLimit
|
||||
args = [].slice.call(arguments)
|
||||
i = 0
|
||||
|
||||
while i < args.length
|
||||
|
@ -111,7 +109,7 @@ work = () ->
|
|||
t1 = new Date()
|
||||
diff = t1 - self.t0
|
||||
if (self.world.headless)
|
||||
return console.log("Headless simulation completed in #{diff}ms.");
|
||||
return console.log("Headless simulation completed in #{diff}ms.")
|
||||
|
||||
transferableSupported = self.transferableSupported()
|
||||
try
|
||||
|
@ -191,12 +189,10 @@ for codeFile in [
|
|||
'app/vendor/aether-lua.js'
|
||||
'app/vendor/aether-python.js'
|
||||
]
|
||||
codeFileContents.push fs.readFileSync("./public/javascripts/#{codeFile}", 'utf8')
|
||||
codeFileContents.push fs.readFileSync(__dirname + "/../public/javascripts/#{codeFile}", 'utf8')
|
||||
|
||||
#window.BOX2D_ENABLED = true;
|
||||
|
||||
newConsole = "newConsole = #{}JASON.stringify newConsole}()";
|
||||
|
||||
ret = """
|
||||
|
||||
GLOBAL = root = window = self;
|
||||
|
@ -204,7 +200,7 @@ ret = """
|
|||
|
||||
self.workerID = 'Worker';
|
||||
|
||||
console = #{JASON.stringify betterConsole}();
|
||||
console = (#{betterConsole.toString()})();
|
||||
|
||||
try {
|
||||
// the world javascript file
|
||||
|
@ -215,7 +211,7 @@ ret = """
|
|||
self.native_fs_ = native_fs_ = null;
|
||||
|
||||
// the actual function
|
||||
#{JASON.stringify work}();
|
||||
(#{work.toString()})();
|
||||
} catch (error) {
|
||||
self.postMessage({'type': 'console-log', args: ['An unhandled error occured: ', error.toString(), error.stack], id: -1});
|
||||
}
|
||||
|
|
|
@ -42,7 +42,6 @@
|
|||
"multiplayer"
|
||||
],
|
||||
"dependencies": {
|
||||
"JASON": "~0.1.3",
|
||||
"JQDeferred": "~2.1.0",
|
||||
"aether": "~0.3.0",
|
||||
"async": "0.2.x",
|
||||
|
|
|
@ -169,6 +169,7 @@ module.exports.getTwoGames = (req, res) ->
|
|||
sendResponseObject req, res, taskObject
|
||||
else
|
||||
#console.log "Directly simulating #{humansGameID} vs. #{ogresGameID}."
|
||||
selection = 'team totalScore transpiledCode submittedCodeLanguage teamSpells levelID creatorName creator submitDate'
|
||||
LevelSession.findOne(_id: humansGameID).select(selection).lean().exec (err, humanSession) =>
|
||||
if err? then return errors.serverError(res, 'Couldn\'t find the human game')
|
||||
LevelSession.findOne(_id: ogresGameID).select(selection).lean().exec (err, ogreSession) =>
|
||||
|
|
Loading…
Add table
Reference in a new issue