From ed17d967d27c09d15aa34cb696d8c509256b1b36 Mon Sep 17 00:00:00 2001 From: Daniel Fiore Date: Thu, 7 Jan 2016 12:26:40 -0800 Subject: [PATCH 01/15] Fix thangTypes filtering in serialize --- app/models/Level.coffee | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/app/models/Level.coffee b/app/models/Level.coffee index df0a1efbf..5d39a3cfd 100644 --- a/app/models/Level.coffee +++ b/app/models/Level.coffee @@ -28,7 +28,13 @@ module.exports = class Level extends CocoModel # Figure out ThangTypes' Components tmap = {} tmap[t.thangType] = true for t in o.thangs ? [] - o.thangTypes = (original: tt.get('original'), name: tt.get('name'), components: $.extend(true, [], tt.get('components')) for tt in supermodel.getModels ThangType when tmap[tt.get('original')] or (tt.get('components') and not tt.notInLevel)) + heroSelected = session.get('heroConfig').thangType + o.thangTypes = [] + for tt in supermodel.getModels ThangType + if tmap[tt.get('original')] or + (tt.get('kind') isnt 'Hero' and tt.get('kind')? and tt.get('components') and not tt.notInLevel) or + (tt.get('kind') is 'Hero' and tt.get('original') is heroSelected) + o.thangTypes.push (original: tt.get('original'), name: tt.get('name'), components: $.extend(true, [], tt.get('components'))) @sortThangComponents o.thangTypes, o.levelComponents, 'ThangType' @fillInDefaultComponentConfiguration o.thangTypes, o.levelComponents From 838c0f20cbd93aafd403bfe73ec3a079751df329 Mon Sep 17 00:00:00 2001 From: darulis1 Date: Fri, 8 Jan 2016 16:59:58 +0200 Subject: [PATCH 02/15] Update lt.coffee --- app/locale/lt.coffee | 188 +++++++++++++++++++++---------------------- 1 file changed, 94 insertions(+), 94 deletions(-) diff --git a/app/locale/lt.coffee b/app/locale/lt.coffee index d68cdefea..07e539cda 100644 --- a/app/locale/lt.coffee +++ b/app/locale/lt.coffee @@ -1,23 +1,23 @@ module.exports = nativeDescription: "lietuvių kalba", englishDescription: "Lithuanian", translation: home: slogan: "Išmok programuoti žaisdamas!" - no_ie: "CodeCombat su naršykle Internet Explorer 8 arba senesne. Atleiskite!" # Warning that only shows up in IE8 and older - no_mobile: "CodeCombat neskirtas mobiliems įrenginiams ir gali veikti neteisingai!" # Warning that shows up on mobile devices + no_ie: "Atsiprašome! CodeCombat neveikia su Internet Explorer 8 arba senesne naršyklės versija." # Warning that only shows up in IE8 and older + no_mobile: "CodeCombat neskirtas mobiliems įrenginiams ir gali neveikti!" # Warning that shows up on mobile devices play: "Žaisti" # The big play button that opens up the campaign view. -# play_campaign_version: "Play Campaign Version" # Shows up under big play button if you only play /courses -# old_browser: "Uh oh, your browser is too old to run CodeCombat. Sorry!" # Warning that shows up on really old Firefox/Chrome/Safari -# old_browser_suffix: "You can try anyway, but it probably won't work." -# ipad_browser: "Bad news: CodeCombat doesn't run on iPad in the browser. Good news: our native iPad app is awaiting Apple approval." + play_campaign_version: "Žaisti Kampanijos Versiją" # Shows up under big play button if you only play /courses + old_browser: "Atsiprašome! Jūsų naršyklės versija per sena, kad galėtumėt žaisti CodeCombat." # Warning that shows up on really old Firefox/Chrome/Safari + old_browser_suffix: "Galite bandyti, bet greičiausiai žaisti nepavyks." + ipad_browser: "Bloga žinia: CodeCombat neveikia iPad naršyklėje. Gera žinia: mūsų iPad žaidimo versija laukia Apple patvirtinimo." campaign: "Kampanija" for_beginners: "Naujokams" # multiplayer: "Multiplayer" # Not currently shown on home page -# for_developers: "For Developers" # Not currently shown on home page. + for_developers: "Programuotojams" # Not currently shown on home page. or_ipad: "Arba atsisiųskite iPad'ui" nav: play: "Lygiai" # The top nav bar entry where players choose which levels to play community: "Bendruomenė" -# courses: "Courses" + courses: "Kursai" editor: "Redaktorius" blog: "Blog'as" forum: "Forumas" @@ -43,17 +43,17 @@ module.exports = nativeDescription: "lietuvių kalba", englishDescription: "Lith page_not_found: "Puslapis nerastas" diplomat_suggestion: -# title: "Help translate CodeCombat!" # This shows up when a player switches to a non-English language using the language selector. -# 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 Lithuanian 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 Lithuanian." - missing_translations: "Until we can translate everything into Lithuanian, you'll see English when Lithuanian isn't available." -# learn_more: "Learn more about being a Diplomat" -# subscribe_as_diplomat: "Subscribe as a Diplomat" + title: "Padėkite išversti CodeCombat!" # This shows up when a player switches to a non-English language using the language selector. + sub_heading: "Mums reikia jūsų kalbos įgudžių." + pitch_body: "Mes kuriame CodeCombat Angliškai, bet mes turime žaidėjų visame pasaulyje. Daugelis jų norėtų žaisti Lietuvoje, tačiau nesupranta Angliškai. Jei tu gerai moki abi kalbas, prašom užsiregistruoti ir tapti Diplomatu. Taip galėsi padėti išversti CodeCombat interneto svetainę ir visus lygius į Lietuvių kalbą." + missing_translations: "Kol viską išversime į Lietuvių kalbą, dar neišverstą tekstą matysite užrašytą Anglų kalba." + learn_more: "Sužinoti daugiau apie tapimą Diplomatu" + subscribe_as_diplomat: "Noriu tapti Diplomatu" play: play_as: "Žaisti kaip" # Ladder page -# compete: "Compete!" # Course details page - spectate: "Stebėtojas" # Ladder page + compete: "Varžytis!" # Course details page + spectate: "Stebėti" # Ladder page players: "žaidėjai" # Hover over a level on /play hours_played: "valandų žaista" # Hover over a level on /play items: "Daiktai" # Tooltip on item shop button from /play @@ -72,7 +72,7 @@ module.exports = nativeDescription: "lietuvių kalba", englishDescription: "Lith next: "Kitas" # Go from choose hero to choose inventory before playing a level change_hero: "Keisti Herojų" # Go back from choose inventory to choose hero buy_gems: "Pirkti Deimantus" -# subscription_required: "Subscription Required" + subscription_required: "Reikalingas patvirtinimas" anonymous: "Anoniminis Žaidėjas" level_difficulty: "Sudėtingumas: " # play_classroom_version: "Play Classroom Version" # Choose a level in campaign version that you also can play in one of your courses @@ -86,13 +86,13 @@ module.exports = nativeDescription: "lietuvių kalba", englishDescription: "Lith # campaign_old_multiplayer: "(Deprecated) Old Multiplayer Arenas" # campaign_old_multiplayer_description: "Relics of a more civilized age. No simulations are run for these older, hero-less multiplayer arenas." -# share_progress_modal: -# blurb: "You’re making great progress! Tell your parent how much you've learned with CodeCombat." -# email_invalid: "Email address invalid." -# form_blurb: "Enter your parent's email below and we’ll show them!" -# form_label: "Email Address" -# placeholder: "email address" -# title: "Excellent Work, Apprentice" + share_progress_modal: + blurb: "Tau puikiai sekasi! Parodyk tėvams kiek jau išmokai su CodeCombat." + email_invalid: "Neteisingas el. pašto adresas." + form_blurb: "Įvesk tėvų el. pašto adresą ir mes jiems parodysim!" + form_label: "El. pašto adresas" + placeholder: "el. pašto adresas" + title: "Puikiai padirbėta, Mokinį!" login: sign_up: "Sukurti paskyrą" @@ -114,14 +114,14 @@ module.exports = nativeDescription: "lietuvių kalba", englishDescription: "Lith log_in: "prisijungti slaptažodžio pagalba" required: "PRieš tęsiant kelią turite prisijungti." login_switch: "Jau turite paskyrą?" -# school_name: "School Name and City" -# optional: "optional" -# school_name_placeholder: "Example High School, Springfield, IL" + school_name: "Mokyklos pavadinimas ir miestas" + optional: "nebūtinas" + school_name_placeholder: "Pavyzdžiui: Šiaulių Kolegija, Šiauliai" -# recover: -# recover_account_title: "Recover Account" -# send_password: "Send Recovery Password" -# recovery_sent: "Recovery email sent." + recover: + recover_account_title: "Susigrąžinti paskyrą" + send_password: "Siųsti susigrąžinimo slaptažodį" + recovery_sent: "Susigražinimo laiškas išsiųstas." items: primary: "Pagrindiniai" @@ -148,50 +148,50 @@ module.exports = nativeDescription: "lietuvių kalba", englishDescription: "Lith actions: "Veiksmai" info: "Informacija" help: "Pagalba" -# watch: "Watch" -# unwatch: "Unwatch" -# submit_patch: "Submit Patch" -# submit_changes: "Submit Changes" -# save_changes: "Save Changes" + watch: "Žiūrėti" + unwatch: "Nebežiūrėti" + submit_patch: "Pateikti pataisymą" + submit_changes: "Pateikti pakeitimus" + save_changes: "Saugoti pakeitimus" general: and: "ir" name: "Vardas" date: "Data" # body: "Body" -# version: "Version" -# pending: "Pending" -# accepted: "Accepted" -# rejected: "Rejected" -# withdrawn: "Withdrawn" + version: "Versija" + pending: "Laukiama" + accepted: "Priimtas" + rejected: "Atmestas" + withdrawn: "Pasitraukęs" accept: "Priimti" reject: "Atmesti" -# withdraw: "Withdraw" -# submitter: "Submitter" -# submitted: "Submitted" -# commit_msg: "Commit Message" -# version_history: "Version History" -# version_history_for: "Version History for: " -# select_changes: "Select two changes below to see the difference." -# undo_prefix: "Undo" -# undo_shortcut: "(Ctrl+Z)" -# redo_prefix: "Redo" -# redo_shortcut: "(Ctrl+Shift+Z)" -# play_preview: "Play preview of current level" -# result: "Result" -# results: "Results" -# description: "Description" + withdraw: "Pasitraukti" + submitter: "Teikėjas" + submitted: "Pateikta" + commit_msg: "Patvirtinti Žinutę" + version_history: "Versijų Istorija" + version_history_for: "Versijos istorija: " + select_changes: "Kad pamatytum skirtumą, pažymėk du pakeitimus žemiau." + undo_prefix: "Atgal" + undo_shortcut: "(Ctrl+Z)" + redo_prefix: "Pirmyn" + redo_shortcut: "(Ctrl+Shift+Z)" + play_preview: "Esamo žaidimo lygio peržiūra" + result: "Rezultatas" + results: "Rezultatai" + description: "Aprašymas" or: "arba" -# subject: "Subject" -# email: "Email" + subject: "Tema" + email: "El. paštas" password: "Slaptažodis" -# message: "Message" + message: "Žinutė" code: "Kodas" -# ladder: "Ladder" -# when: "When" -# opponent: "Opponent" +# ladder: "Laiptai" + when: "Kai" + opponent: "Priešininkas" rank: "Rangas" -# score: "Score" + score: "Taškai" win: "Pergalė" loss: "Pralaimėjimas" tie: "Lygiosios" @@ -221,10 +221,10 @@ module.exports = nativeDescription: "lietuvių kalba", englishDescription: "Lith years: "metai" play_level: -# completed_level: "Completed Level:" -# course: "Course:" + completed_level: "Įveiktas Lygis:" + course: "Kursas:" done: "Gerai" -# next_level: "Next Level:" + next_level: "Kitas Lygis:" next_game: "Kitas žaidimas" show_menu: "Parodyti žaidimo meniu" # home: "Home" # Not used any more, will be removed soon. @@ -242,34 +242,34 @@ module.exports = nativeDescription: "lietuvių kalba", englishDescription: "Lith failing: "Nesėkmingai" control_bar_multiplayer: "Žaidimas keliese" control_bar_join_game: "Prisijungti prie žaidimo" - reload: "Perkrauti" - reload_title: "Perkrauti visą kodą?" + reload: "Atstatyti" + reload_title: "Atstatyti visą kodą?" reload_really: "Ar tikrai norite atsukti visą lygį į pradžią?" - reload_confirm: "Perkrauti viską" + reload_confirm: "Atstatyti viską" victory: "Pergalė" victory_title_prefix: "" victory_title_suffix: " baigta" victory_sign_up: "Užsiregistruokite, kad išsaugotumėte pažangą" victory_sign_up_poke: "Norite išsaugoti savo kodą? Sukurkite paskyrą nemokamai!" -# victory_rate_the_level: "How fun was this level?" + victory_rate_the_level: "Ar patiko šis lygis?" # victory_return_to_ladder: "Return to Ladder" victory_saving_progress: "Išsaugoma pažanga" victory_go_home: "Į Pradžią" -# victory_review: "Tell us more!" + victory_review: "Papasakok daugiau!" victory_review_placeholder: "Ar Jums patiko lygis?" victory_hour_of_code_done: "Ar pabaigėte?" -# victory_hour_of_code_done_yes: "Yes, I'm finished with my Hour of Code™!" + victory_hour_of_code_done_yes: "Taip, aš užbaigiau savo Kodo Valandą™!" victory_experience_gained: "Gauta XP" victory_gems_gained: "Gauta Deimantų" victory_new_item: "Naujas Daiktas" -# 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_viking_code_school: "Po paraliais, tu katik įveikei sunkujį lygį! Jei tu dar nesi programuotojas, tai bent turėtum būti. Tu katik paspartinai priėmimą į Vikingų Kodo Mokyklą, kur savo įgudžius gali perkelti į naują lygį ir, per 14 sąvaičių, gali tapti profesionaliu internetinių sistemų programuotoju." + victory_become_a_viking: "Tapk Vikingu" guide_title: "Vedlys" tome_cast_button_run: "Paleisti" tome_cast_button_running: "Leidžiama" tome_cast_button_ran: "Paleista" tome_submit_button: "Pateikti" -# tome_reload_method: "Reload original code for this method" # Title text for individual method reload button. + tome_reload_method: "Atstatyti originalų kodą šiam metodui" # Title text for individual method reload button. tome_select_method: "Pasirinkti Metodą" tome_see_all_methods: "Visi metodai, kuriuos galite keisti" # Title text for method list selector (shown when there are multiple programmable methods). # tome_select_a_thang: "Select Someone for " @@ -290,9 +290,9 @@ module.exports = nativeDescription: "lietuvių kalba", englishDescription: "Lith # infinite_loop_description: "The initial code to build the world never finished running. It's probably either really slow or has an infinite loop. Or there might be a bug. You can either try running this code again or reset the code to the default state. If that doesn't fix it, please let us know." # check_dev_console: "You can also open the developer console to see what might be going wrong." # check_dev_console_link: "(instructions)" -# infinite_loop_try_again: "Try Again" -# infinite_loop_reset_level: "Reset Level" -# infinite_loop_comment_out: "Comment Out My Code" + infinite_loop_try_again: "Bandyk dar kartą" + infinite_loop_reset_level: "Pradėti lygi išnaujo" + infinite_loop_comment_out: "Užkomentuoti mano kodą" tip_toggle_play: "Įjunkite ir išjunkite Pauzę spaudžiant Ctrl+P." tip_scrub_shortcut: "Naudokite Ctrl+[ ir Ctrl+] persukimui pirmyn ir atgal." tip_guide_exists: "Pasirinkite punktą Vedlys žaidimo meniu (puslapio viršuje), jame rasite naudingos informacijos." @@ -301,10 +301,10 @@ module.exports = nativeDescription: "lietuvių kalba", englishDescription: "Lith tip_beta_launch: "CodeCombat Beta versija startavo 2013 m. spalio mėnesį." tip_think_solution: "Galvok ne apie problemą, o apie sprendimą." tip_theory_practice: "Teoriškai nėra skirtuma tarp teorijos ir praktikos. Praktiškai - yra. - Yogi Berra" -# tip_error_free: "There are two ways to write error-free programs; only the third one works. - Alan Perlis" -# tip_debugging_program: "If debugging is the process of removing bugs, then programming must be the process of putting them in. - Edsger W. Dijkstra" + tip_error_free: "Yra du būdai parašyti programą be klaidų; tik trečiasis suveikia. - Alan Perlis" + tip_debugging_program: "Jei derinimas yra procesas klaidoms šalinti, tai programavimas turėtų būti procesas klaidoms padaryti. - Edsger W. Dijkstra" tip_forums: "Aplankykite forumą ir parašykite mums Jūsų nuomonę!" -# tip_baby_coders: "In the future, even babies will be Archmages." + tip_baby_coders: "Ateityje ir kūdikiai bus Arkimagais." # tip_morale_improves: "Loading will continue until morale improves." # tip_all_species: "We believe in equal opportunities to learn programming for all species." # tip_reticulating: "Reticulating spines." @@ -463,7 +463,7 @@ module.exports = nativeDescription: "lietuvių kalba", englishDescription: "Lith programming_language: "Programavimo kalba" programming_language_description: "Kokią programavimo kalbą norėtum naudoti?" default: "Numatytasis" -# experimental: "Experimental" + experimental: "Eksperimentinis" python_blurb: "Paprasta bet galinga. Puikiai tinka ir naujokams ir ekspertams." javascript_blurb: "WWW tinklo kalba. (Nepainiokite su Java.)" coffeescript_blurb: "JavaScript su malonesne sintakse." @@ -516,9 +516,9 @@ module.exports = nativeDescription: "lietuvių kalba", englishDescription: "Lith # returns: "Returns" # granted_by: "Granted by" -# save_load: -# granularity_saved_games: "Saved" -# granularity_change_history: "History" + save_load: + granularity_saved_games: "Išsaugotas" + granularity_change_history: "Istorija" options: general_options: "Bendri nustatymai" # Check out the Options tab in the Game Menu while playing a level @@ -1017,22 +1017,22 @@ module.exports = nativeDescription: "lietuvių kalba", englishDescription: "Lith classes: archmage_title: "Arkimagas" archmage_title_description: "(Koderis)" -# archmage_summary: "If you are a developer interested in coding educational games, become an archmage to help us build CodeCombat!" - artisan_title: "Menininkas" + archmage_summary: "Jei tu esi programuotojas ir norėtum programuoti mokomuosius žiadimus, tapk Arkimagu ir padėk mums kurti CodeCombat!" + artisan_title: "Meistras" artisan_title_description: "(Lygių architektas)" -# artisan_summary: "Build and share levels for you and your friends to play. Become an Artisan to learn the art of teaching others to program." + artisan_summary: "Kurk ir dalinkis lygiais su savo draugais. Tapk Meistru ir mokykis meno mokyti kitus programuoti." adventurer_title: "Nuotykių ieškotojas" adventurer_title_description: "(Lygių bandytojas)" -# adventurer_summary: "Get our new levels (even our subscriber content) for free one week early and help us work out bugs before our public release." + adventurer_summary: "Gauk naujausius lygius nemokamai. Net savaitę anksčiau ir padėk mums ištaisyti klaidas prieš oficialų pristatymą." scribe_title: "Raštininkas" scribe_title_description: "(Straipsnių redaktorius)" -# scribe_summary: "Good code needs good documentation. Write, edit, and improve the docs read by millions of players across the globe." + scribe_summary: "Geram kodui reikia geros dokumentacijos. Kurk, redaguok ir tobulink dokumentus, kuriuos skaito milijonai žaidėjų visame pasaulyje." diplomat_title: "Diplomatas" diplomat_title_description: "(Vertėjas)" -# diplomat_summary: "CodeCombat is localized in 45+ languages by our Diplomats. Help us out and contribute translations." + diplomat_summary: "Diplomatų dėka CodeCombat yra verčiamas į daugiau kaip 45 kalbas. Tu gali mums padėti tapdamas vertėju." ambassador_title: "Ambasadorius" ambassador_title_description: "(Palaikymas)" -# ambassador_summary: "Tame our forum users and provide direction for those with questions. Our ambassadors represent CodeCombat to the world." + ambassador_summary: "Nuramink mūsų forumo naudotojus ir suteik pagalbą tiems kas turi klausimų. Mūsų Ambasadoriai atstovauja CodeCombat visam pasauliui." # editor: # main_title: "CodeCombat Editors" @@ -1126,8 +1126,8 @@ module.exports = nativeDescription: "lietuvių kalba", englishDescription: "Lith # edit_btn_preview: "Preview" # edit_article_title: "Edit Article" -# polls: -# priority: "Priority" + polls: + priority: "Prioritetas" # contribute: # page_title: "Contributing" From 3f9a0c2973f1809db3d7f9f2c34e9ea547301e97 Mon Sep 17 00:00:00 2001 From: Xavier Coureau Date: Sat, 9 Jan 2016 23:42:54 +0100 Subject: [PATCH 03/15] Enhanced french translation Typo Typo --- app/locale/fr.coffee | 88 ++++++++++++++++++++++---------------------- 1 file changed, 44 insertions(+), 44 deletions(-) diff --git a/app/locale/fr.coffee b/app/locale/fr.coffee index 09c8224c4..b279069fd 100644 --- a/app/locale/fr.coffee +++ b/app/locale/fr.coffee @@ -793,24 +793,24 @@ module.exports = nativeDescription: "français", englishDescription: "French", t course: "Cours" courses: "cours" create_new_class: "Créer une Nouvelle Classe" -# not_enrolled: "You are not enrolled in this course." -# visit_pref: "Please visit the" -# visit_suf: "page to enroll." + not_enrolled: "Vous n'êtes pas inscrit à ce cours." + visit_pref: "Veuillez visiter la" + visit_suf: "page d'inscription." select_class: "Selectionnez l'une de vos classes" # unnamed: "*unnamed*" select: "Selectionner" -# unnamed_class: "Unnamed Class" + unnamed_class: "Classe sans nom" edit_settings: "modifier les réglages de la classe" edit_settings1: "Modifier les Réglages de la Classe" progress: "Evolution de la Classe" add_students: "Ajouter des Elèves" stats: "Statistiques" - total_students: "Nom total d'élèves:" + total_students: "Nombre total d'élèves:" average_time: "Temps moyen de jeu par niveau:" total_time: "Temps total de jeu:" average_levels: "Nombre de niveaux moyen complétés:" total_levels: "Total de niveaux complétés:" -# furthest_level: "Furthest level completed:" + furthest_level: "Meilleur niveau complété:" concepts_covered: "Conceptes Couverts" students: "Elèves" students1: "éleves" @@ -818,14 +818,14 @@ module.exports = nativeDescription: "français", englishDescription: "French", t levels: "niveaux" played: "Joué" play_time: "Temps de jeu:" -# completed: "Completed:" + completed: "Complété:" invite_students: "Inviter des élèves à rejoindre cette classe." invite_link_header: "Lien pour rejoindre le cours" invite_link_p_1: "Partagez ce lien aux élèves voulant rejoindre le cours." -# invite_link_p_2: "Or have us email them directly:" + invite_link_p_2: "Ou laissez-nous leur envoyer un email directement:" # capacity_used: "Course slots used:" - enter_emails: "Entrez les emails des élèves à inviter, à raisin d'un par ligne" - send_invites: "Envoyer les nvitations" + enter_emails: "Entrez les adresses emails des élèves à inviter, à raison d'une par ligne" + send_invites: "Envoyer les invitations" title: "Titre" description: "Description" creating_class: "Creation de la classe..." @@ -845,7 +845,7 @@ module.exports = nativeDescription: "français", englishDescription: "French", t for: "pour" # Like in 'for 30 students' # receive_code: "Afterwards you will receive an unlock code to distribute to your students, which they can use to enroll in your class." free_trial: "Essai gratuit pour les professeurs!" -# get_access: "to get individual access to all courses for evalutaion purposes." + get_access: "pour obtenir un accès individuel à tous les cours pour évaluation." questions: "Questions?" teachers_click: "Professeurs, Clickez Ici" students_click: "Elèves, Clickez Ici" @@ -854,31 +854,31 @@ module.exports = nativeDescription: "français", englishDescription: "French", t more_in_less: "Apprenez plus en moins de temps" no_experience: "Aucune expérience en développement requise" easy_monitor: "Suivez facilement la progression des élèves" -# purchase_for_class: "Purchase a course for your entire class. It's easy to sign up your students!" + purchase_for_class: "Achetez un cours pour votre classe. C'est très simple de rajouter vos élèves!" # see_the: "See the" more_info: "pour plus d'informations." choose_course: "Choisissez votre cours:" enter_code: "Entrez un code de déverouillage pour rejoindre une classe existante" enter_code1: "Entrez le code de déverouillage" -# enroll: "Enroll" -# pick_from_classes: "Pick from your current classes" + enroll: "Inscription" + pick_from_classes: "Sélectionnez depuis vos classes actuelles" enter: "Entrer" or: "Ou" topics: "Sujets" -# hours_content: "Hours of content:" + hours_content: "Heures de contenu:" get_free: "Obtenez des cours GRATUITS" -# enroll_paid: "Enroll Students in Paid Courses" + enroll_paid: "Inscrire des élèves aux cours payants" you_have1: "Vous avez" -# you_have2: "unused paid enrollments" -# use_one: "Use 1 paid enrollment for" -# use_multiple: "Use paid enrollments for the following students:" -# already_enrolled: "already enrolled" + you_have2: "inscriptions payantes non utilisées" + use_one: "Utilisez 1 inscription payante pour" + use_multiple: "Utilisez des inscriptions payantes pour les élèves suivants:" + already_enrolled: "déjà inscrit" licenses_remaining: "licenses restantes:" -# insufficient_enrollments: "insufficient paid enrollments" -# enroll_students: "Enroll Students" -# get_enrollments: "Get More Enrollments" + insufficient_enrollments: "inscriptions payantes insuffisantes" + enroll_students: "Inscrire des élèves" + get_enrollments: "Obtenir plus d'inscriptions" change_language: "Changez la langue du cours" -# keep_using: "Keep Using" + keep_using: "Continuer à utiliser" switch_to: "Changer" # greetings: "Greetings!" learn_p: "Apprendre Python" @@ -887,8 +887,8 @@ module.exports = nativeDescription: "français", englishDescription: "French", t back_classrooms: "Retour à mes classes" back_courses: "Retour à mes cours" edit_details: "Modifier les informations de la classe" -# enrolled_courses: "enrolled in paid courses:" -# purchase_enrollments: "Purchase Enrollments" + enrolled_courses: "inscrit aux cours payants:" + purchase_enrollments: "Acheter des inscriptions" remove_student: "enlever l'élève" assign: "Assigner" # to_assign: "to assign paid courses." @@ -899,17 +899,17 @@ module.exports = nativeDescription: "français", englishDescription: "French", t play_campaign_title: "Jouer la Campagne" play_campaign_description: "Vous êtes prêts pour la prochaine étape! Explorez des centaines de niveaux stimulants, apprenez al programmation avancée, et rivalisez avec d'autres dans les arènes multijoueurs!" create_account_title: "Créer un compte" -# create_account_description: "Sign up for a FREE CodeCombat account and gain access to more levels, more programming skills, and more fun!" + create_account_description: "Inscrivez-vous GRATUITEMENT à CodeCombat et accédez à plus de niveaux, plus de compétences de programmation et plus de fun!" preview_campaign_title: "Campagne de démonstration" preview_campaign_description: "Ayez un aperçu de tout ce dont CodeCombat a à offrir avant de s'enregistrer GRATUITEMENT." arena: "Arène" arena_soon_title: "L'Arene arrive prochainement" arena_soon_description: "Nous travaillons sur une arene multijoueur pour les classes à la fin de" -# not_enrolled1: "Not enrolled" -# not_enrolled2: "Ask your teacher to enroll you in the next course." + not_enrolled1: "Non inscrit" + not_enrolled2: "Demandez à votre professeur de vous inscrire au cours suivant." next_course: "Cours suivant" coming_soon1: "Prochainement" -# coming_soon2: "We are hard at work making more courses for you!" + coming_soon2: "Nous travaillons dur pour faire plus de nouveaux cours!" available_levels: "Niveaux disponibles" welcome_to_courses: "Aventurier, bienvenu dans les leçons!" ready_to_play: "Prêt à jouer?" @@ -932,10 +932,10 @@ module.exports = nativeDescription: "français", englishDescription: "French", t view_class: "voir la classe" view_levels: "voir les niveaux" join_class: "Rejoindre une classe" -# ask_teacher_for_code: "Ask your teacher if you have a CodeCombat class code! If so, enter it below:" + ask_teacher_for_code: "Demandez à votre professeur si vous avez un code de classe CodeComabt! Si c'est le cas, veuillez l'entrer ci-dessous:" enter_c_code: "" join: "Rejoindre" -# joining: "Joining class" + joining: "En train de rejoindre la classe" course_complete: "Cours Terminé" play_arena: "Jouer à l'Arene" start: "Démarrer" @@ -956,22 +956,22 @@ module.exports = nativeDescription: "français", englishDescription: "French", t thank_you_suff: "plus d'élèves à des cours payants." return_to_class: "Retourner à la classe" return_to_course_man: "Retourn à la gestion des cours." -# students_not_enrolled: "students not enrolled" + students_not_enrolled: "élève non inscrits" total_all_classes: "Total Dans Toutes Les Classes" -# how_many_enrollments: "How many additional paid enrollments do you need?" -# each_student_access: "Each student in a class will get access to Courses 2-4 once they are enrolled in paid courses. You may assign each course to each student individually." + how_many_enrollments: "De combien d'inscriptions payantes supplémentaire avez-vous besoin?" + each_student_access: "Chaque élève dans une classe aura accès aux cours 2 à 4 une fois qu'ils sont inscrits dans les cours payants. Vous pouvez assignez chaque cours à chacun des élèves individuellement." purchase_now: "Achetez Maintenant" -# enrollments: "enrollments" + enrollments: "inscriptions" remove_student1: "Supprimer l'Elève" are_you_sure: "Etes-vous certain de vouloir supprimer cet élève de cette classe?" remove_description1: "L'élève n'aura plus accès à cette classe et les classes associées. L'évolution et les personnages ne seront pas supprimés, et l'élève pourra de nouveau rejoindre la classe n'importe quand." -# remove_description2: "The activated paid license will not be returned." + remove_description2: "Une licence payante activée ne sera pas remboursée." keep_student: "Conserver l'Elève" removing_user: "Suppression de l'utilisateur" to_join_ask: "Pour rejoindre une classe, veuillez demander un code de déverouillage à votre professeur." join_this_class: "Rejoindre cette classe" enter_here: "" -# successfully_joined: "Successfully joined" + successfully_joined: "Inscription avec succès" click_to_start: "Cliquer ici pour démarrer" my_courses: "Mes Cours" classroom: "Classe" @@ -994,24 +994,24 @@ module.exports = nativeDescription: "français", englishDescription: "French", t additional_resources_1_mid: "Guide Professeur du Premier Cours" additional_resources_1_suff: "explications et solutions pour chaque niveaux." additional_resources_2_pref: "Complétez notre" -# additional_resources_2_suff: "to get 15 more hours of content! For a limited time, enroll as many students as you want in our three paid courses." + additional_resources_2_suff: "pour obtenir 15 heures de contenu supplémentaire! Pour une durée limitée, inscrivez autant d'élèves que vous voulez dans nos trois cours payant." additional_resources_3_pref: "Visitez notre" additional_resources_3_mid: "Forum des Professeurs" additional_resources_3_suff: "pour être mis en relations avec vos confrères qui utilisent CodeCombat." -# additional_resources_4_pref: "Check out our" + additional_resources_4_pref: "Faites un tour sur la" additional_resources_4_mid: "Page des Ecoles" additional_resources_4_suff: "pour en apprendre plus sur les offres CodeCombat à destination des classes." your_classes: "Vos Classes" no_classes: "Aucune classe pour le moment!" create_new_class1: "créer une nouvelle classe" available_courses: "Cours Disponibles" -# unused_enrollments: "Unused enrollments available:" -# students_access: "All students get access to Introduction to Computer Science for free. One enrollment per student is required to assign them to paid CodeCombat courses. A single student does not need multiple enrollments to access all paid courses." + unused_enrollments: "Inscriptions non utilisées disponibles:" + students_access: "Tous les élèves peuvent accéder gratuitement à l'Introduction aux Sciences Informations. Une inscription par élève est nécessaire pour rejoindre les cours payants de CodeCombat. Une seule inscription est nécessaire par élève pour accéder à tous les cours payants." active_courses: "cours actifs" no_students: "Aucun élève pour le moment!" add_students1: "ajouter des élèves" view_edit: "voir/modifier" -# students_enrolled: "students enrolled" + students_enrolled: "élèves inscrits" length: "Durée:" classes: @@ -1267,7 +1267,7 @@ module.exports = nativeDescription: "français", englishDescription: "French", t singleplayer_title: "Niveaux solo" multiplayer_title: "Niveaux multijoueurs" achievements_title: "Succès" - last_played: "Dernièrement joués" + last_played: "Dernier niveau joué" status: "Statut" status_completed: "Terminé" status_unfinished: "Non terminé" From 62e1a0b8767741404b1dda268ba8a822feb41ea7 Mon Sep 17 00:00:00 2001 From: durianboy Date: Mon, 11 Jan 2016 17:24:39 +0800 Subject: [PATCH 04/15] Update zh-HANT.coffee --- app/locale/zh-HANT.coffee | 46 +++++++++++++++++++-------------------- 1 file changed, 23 insertions(+), 23 deletions(-) diff --git a/app/locale/zh-HANT.coffee b/app/locale/zh-HANT.coffee index 712217e57..810b377fe 100644 --- a/app/locale/zh-HANT.coffee +++ b/app/locale/zh-HANT.coffee @@ -407,7 +407,7 @@ module.exports = nativeDescription: "繁體中文", englishDescription: "Chinese feature4: "每個月3500顆額外寶石!" feature5: "影片教學" feature6: "頂級信箱支援" - feature7: "私人 部落" + feature7: "私密部落" free: "免費" month: "月" must_be_logged: "您需要先登入。請先註冊或者在上方的目錄中點擊登入。" @@ -734,22 +734,22 @@ module.exports = nativeDescription: "繁體中文", englishDescription: "Chinese clans: "部落" new_name: "新部落的名字" new_description: "新部落的描述" - make_private: "設定部落為私人" + make_private: "設定部落為私密" subs_only: "只限訂閱" - create_clan: "創建新的部落" + create_clan: "建立新的部落" private_preview: "預覽" -# private_clans: "private clans" + private_clans: "私密部落" public_clans: "公共部落" my_clans: "我的部落" clan_name: "部落名字" name: "名字" chieftain: "首領" type: "種類" - edit_clan_name: "編輯部落的名字" + edit_clan_name: "編輯部落的名稱" edit_clan_description: "編輯部落的描述" - edit_name: "編輯名字" + edit_name: "編輯名稱" edit_description: "編輯描述" - private: "私人" + private: "私密" summary: "綜述" average_level: "平均等級" average_achievements: "平均成就" @@ -787,7 +787,7 @@ module.exports = nativeDescription: "繁體中文", englishDescription: "Chinese track_concepts6b: "按姓名或進度排序成員" track_concepts7: "需要邀請" track_concepts8: "來加入" -# private_require_sub: "Private clans require a subscription to create or join." + private_require_sub: "需要訂閱才可以建立或加入私密部落" courses: course: "課程" @@ -1175,13 +1175,13 @@ module.exports = nativeDescription: "繁體中文", englishDescription: "Chinese diplomat_introduction_pref: "所以,如果說我們從" diplomat_launch_url: " 十月的那次上線 " diplomat_introduction_suf: "中得到了怎樣的啟發:那就是在許多國家有許多人對CodeCombat產生興趣!我們正在建立一群翻譯者,急於將一組組的英文翻譯成各國語言讓CodeCombat可以讓全世界更多人都可以接觸。如果您喜歡搶先閱讀新內容並且讓您的國人都可以儘速的擁有,那麼這職業也許適合您。" - diplomat_attribute_1: "擁有流利的英文並且喜歡翻譯某種語言。當傳遞複雜想法時,您必須這兩種語言都是熟悉的!" + diplomat_attribute_1: "擁有流利的英文並且精通欲翻譯的語言。當傳遞複雜想法時,您必須融會貫通這兩種語言!" diplomat_i18n_page_prefix: "您可以從我們的" diplomat_i18n_page: " 翻譯頁面 " - diplomat_i18n_page_suffix: "或者從我們在 GitHub 上的頁面開始翻譯我們的關卡。" + diplomat_i18n_page_suffix: "開始翻譯我們的關卡,或者在 GitHub 翻譯我們的介面及網站。" diplomat_join_pref_github: "在" diplomat_github_url: " GitHub " - diplomat_join_suf_github: "找到您的語言文件 (繁體中文的是:codecombat/app/locale/zh-HANT.coffee),在線編輯它,並且上傳一個 pull 請求。另外,勾選底下的條件來藉由郵件獲得及時的國際化開發!" + diplomat_join_suf_github: "找到您的語言文件 (繁體中文的是:codecombat/app/locale/zh-HANT.coffee),在線編輯它,並且上傳一個 pull 請求。另外,勾選底下的方框以藉由郵件獲得及時的國際化開發!" diplomat_subscribe_desc: "取得國際化開發和待翻譯關卡的郵件。" ambassador_introduction: "這是個我們正在建立的社群,您將是我們與世界的連接點。我們在論壇、郵件、社群網路上和許多人交談並且幫助彼此熟悉遊戲以及互相學習。如果您想要幫助其他人參與並且從中獲得許多樂趣,以及樂於感受CodeCombat的脈搏和我們將前往的地方,那麼這職業也許適合您。" ambassador_attribute_1: "溝通技巧。可以找到玩家正面臨的問題並且幫助他們解決。另外,保持與我們聯繫玩家們討論的、喜愛的、厭惡的以及想要的!" @@ -1420,25 +1420,25 @@ module.exports = nativeDescription: "繁體中文", englishDescription: "Chinese # users: "Users" concepts: - advanced_strings: "高級字符串" + advanced_strings: "進階字串" algorithms: "算法" - arguments: "參數" + arguments: "引數" arithmetic: "四則運算" arrays: "陣列" basic_syntax: "基本語法" boolean_logic: "布林邏輯" - break_statements: "Break語句" + break_statements: "break敘述" classes: "類" - continue_statements: "Continue 語句" - for_loops: "For迴圈" + continue_statements: "continue敘述" + for_loops: "for迴圈" functions: "函數" graphics: "圖形" - if_statements: "If語句" + if_statements: "if敘述" input_handling: "輸入處理" math_operations: "數學運算" object_literals: "對象常量" parameters: "參數" - strings: "字符串" + strings: "字串" variables: "變數" vectors: "向量" while_loops: "while迴圈" @@ -1467,11 +1467,11 @@ module.exports = nativeDescription: "繁體中文", englishDescription: "Chinese legal: page_title: "條文" opensource_intro: "CodeCombat是完全的開源。" - opensource_description_prefix: "查看 " + opensource_description_prefix: "查看" github_url: "我們的 GitHub" - opensource_description_center: "並且如果有興趣也歡迎您的幫助! CodeCombat是建立在許多的開源專案上,並且我們深愛它們。查看 " + opensource_description_center: "並且如果有興趣也歡迎您的幫助! CodeCombat是建立在許多的開源專案上,並且我們深愛它們。查看" archmage_wiki_url: "我們的大法師wiki" - opensource_description_suffix: " 尋求創造這款遊戲的相關軟體列表。" + opensource_description_suffix: "尋求創造這款遊戲的相關軟體列表。" practices_title: "值得尊敬的最佳實踐" practices_description: "這些是我們給您,給玩家的承諾,儘管這在法律上略顯不足。" privacy_title: "隱私" @@ -1480,7 +1480,7 @@ module.exports = nativeDescription: "繁體中文", englishDescription: "Chinese security_description: "我們渴望保持您的個人資訊是安全的。身為一個開源的專案,我們的網站是開放給任何人來檢視並且提升我們的安全系統。" email_title: "郵件" email_description_prefix: "我們將不會使您的信箱氾濫的收到垃圾信。不論" - email_settings_url: " 在您的郵件設定 " + email_settings_url: "在您的郵件設定" email_description_suffix: "或在我們送出的信件上都有留著我們的聯結,您可以更改您的喜好並且輕易的隨時取消訂閱。" cost_title: "花費" cost_description: "CodeCombat在核心的關卡是全部免費,但只要花費一個月${{price}}美金來訂閱,您將在每個月取得額外的關卡和{{gems}}顆寶石。您可以輕易地取消訂閱並且保證取得100%的退費。" @@ -1518,7 +1518,7 @@ module.exports = nativeDescription: "繁體中文", englishDescription: "Chinese nutshell_title: "簡而言之" nutshell_description: "我們在關卡編輯器裡公開的任何資源,您都可以在製作關卡時隨意使用,但我們保留在 codecombat.com 之上創建的關卡本身傳播的權利,因為我們往後可能決定以它們收費。" canonical: "我們宣告這篇說明的英文版本是權威版本。如果各個翻譯版本之間有任何衝突,以英文版為準。" -# third_party_title: "Third Party Services" + third_party_title: "第三方服務" # third_party_description: "CodeCombat uses the following third party services (among others):" ladder_prizes: From ae368894e1fa07f91949b8f40f1584d70acaedc8 Mon Sep 17 00:00:00 2001 From: durianboy Date: Mon, 11 Jan 2016 17:45:41 +0800 Subject: [PATCH 05/15] Update zh-HANT.coffee --- app/locale/zh-HANT.coffee | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/locale/zh-HANT.coffee b/app/locale/zh-HANT.coffee index 810b377fe..214f8c04b 100644 --- a/app/locale/zh-HANT.coffee +++ b/app/locale/zh-HANT.coffee @@ -1292,7 +1292,7 @@ module.exports = nativeDescription: "繁體中文", englishDescription: "Chinese account: payments: "付款" - prepaid_codes: "充值碼" + prepaid_codes: "儲值碼" purchased: "已購買" subscription: "訂閱" invoices: "收據" From 01b181ee435e252b502cb208251e52f70ff564b3 Mon Sep 17 00:00:00 2001 From: Nick Winter Date: Mon, 11 Jan 2016 09:50:44 -0800 Subject: [PATCH 06/15] Add script to find active subscribers by country --- .../mongodb/queries/subscribersByCountry.js | 22 +++++++++++++++++++ server/users/User.coffee | 1 + 2 files changed, 23 insertions(+) create mode 100644 scripts/analytics/mongodb/queries/subscribersByCountry.js diff --git a/scripts/analytics/mongodb/queries/subscribersByCountry.js b/scripts/analytics/mongodb/queries/subscribersByCountry.js new file mode 100644 index 000000000..d516dd6af --- /dev/null +++ b/scripts/analytics/mongodb/queries/subscribersByCountry.js @@ -0,0 +1,22 @@ +// Print out subscribers by special country (China, Brazil) + +// Usage: +// mongo
:/