mirror of
https://github.com/codeninjasllc/codecombat.git
synced 2025-04-27 06:23:41 -04:00
Merge branch 'master' into production
This commit is contained in:
commit
b27a4539f1
83 changed files with 3213 additions and 1118 deletions
app
core
locale
ar.coffeebg.coffeeca.coffeecs.coffeeda.coffeede-AT.coffeede-CH.coffeede-DE.coffeeel.coffeeen-GB.coffeeen-US.coffeeen.coffeeeo.coffeees-419.coffeees-ES.coffeefa.coffeefi.coffeefr.coffeegl.coffeehe.coffeehi.coffeehu.coffeeid.coffeeit.coffeeja.coffeeko.coffeelocale.coffeelt.coffeemk-MK.coffeems.coffeenb.coffeenl-BE.coffeenl-NL.coffeenn.coffeepl.coffeept-BR.coffeept-PT.coffeero.coffeeru.coffeesk.coffeesl.coffeesr.coffeesv.coffeeth.coffeetr.coffeeuk.coffeeur.coffeeuz.coffeevi.coffeezh-HANS.coffeezh-HANT.coffeezh-WUU-HANS.coffeezh-WUU-HANT.coffee
models
schemas/models
styles
templates
views
server
test/server
|
@ -38,6 +38,7 @@ module.exports = class CocoRouter extends Backbone.Router
|
|||
'admin/level-sessions': go('admin/LevelSessionsView')
|
||||
'admin/users': go('admin/UsersView')
|
||||
'admin/base': go('admin/BaseView')
|
||||
'admin/trial-requests': go('admin/TrialRequestsView')
|
||||
'admin/user-code-problems': go('admin/UserCodeProblemsView')
|
||||
'admin/pending-patches': go('admin/PendingPatchesView')
|
||||
|
||||
|
@ -109,6 +110,7 @@ module.exports = class CocoRouter extends Backbone.Router
|
|||
'preview': go('HomeView')
|
||||
|
||||
'teachers': go('TeachersView')
|
||||
'teachers/freetrial': go('TeachersFreeTrialView')
|
||||
|
||||
'test(/*subpath)': go('TestView')
|
||||
|
||||
|
|
|
@ -301,7 +301,7 @@ module.exports = nativeDescription: "العربية", englishDescription: "Arabi
|
|||
# infinite_loop_reset_level: "Reset Level"
|
||||
# infinite_loop_comment_out: "Comment Out My Code"
|
||||
# tip_toggle_play: "Toggle play/paused with Ctrl+P."
|
||||
# tip_scrub_shortcut: "Ctrl+[ and Ctrl+] rewind and fast-forward."
|
||||
# tip_scrub_shortcut: "Use Ctrl+[ and Ctrl+] to rewind and fast-forward."
|
||||
# tip_guide_exists: "Click the guide, inside game menu (at the top of the page), for useful info."
|
||||
# tip_open_source: "CodeCombat is 100% open source!"
|
||||
# tip_beta_launch: "CodeCombat launched its beta in October, 2013."
|
||||
|
|
|
@ -301,7 +301,7 @@ module.exports = nativeDescription: "български език", englishDescri
|
|||
infinite_loop_reset_level: "Ресетване на Ниво"
|
||||
infinite_loop_comment_out: "Коментирай моят Код"
|
||||
# tip_toggle_play: "Toggle play/paused with Ctrl+P."
|
||||
# tip_scrub_shortcut: "Ctrl+[ and Ctrl+] rewind and fast-forward."
|
||||
# tip_scrub_shortcut: "Use Ctrl+[ and Ctrl+] to rewind and fast-forward."
|
||||
# tip_guide_exists: "Click the guide, inside game menu (at the top of the page), for useful info."
|
||||
tip_open_source: "CodeCombat e 100% проект с отворен код!"
|
||||
tip_beta_launch: "CodeCombat стартира своята beta през Октомври, 2013."
|
||||
|
|
|
@ -301,7 +301,7 @@ module.exports = nativeDescription: "Català", englishDescription: "Catalan", tr
|
|||
infinite_loop_reset_level: "Reiniciar nivell"
|
||||
infinite_loop_comment_out: "Descommenta el Meu Codi"
|
||||
tip_toggle_play: "Canvia entre reproduir/pausa amb Ctrl+P"
|
||||
tip_scrub_shortcut: "Ctrl+[ i Ctrl+] per rebobinar i avançar"
|
||||
tip_scrub_shortcut: "Ctrl+[ i Ctrl+] per rebobinar i avançar" # {change}
|
||||
# tip_guide_exists: "Click the guide, inside game menu (at the top of the page), for useful info."
|
||||
tip_open_source: "CodeCombat és 100% codi lliure!"
|
||||
tip_beta_launch: "CodeCombat va llançar la seva beta l'octubre de 2013."
|
||||
|
|
|
@ -301,7 +301,7 @@ module.exports = nativeDescription: "čeština", englishDescription: "Czech", tr
|
|||
infinite_loop_reset_level: "Resetovat úroveň"
|
||||
infinite_loop_comment_out: "Zakomentovat můj kód"
|
||||
tip_toggle_play: "Přepněte přehrávání/pauzu pomocí Ctrl+P."
|
||||
tip_scrub_shortcut: "Ctrl+[ a Ctrl+] pro přetočení a rychlý přesun."
|
||||
tip_scrub_shortcut: "Ctrl+[ a Ctrl+] pro přetočení a rychlý přesun." # {change}
|
||||
tip_guide_exists: "Klikněte na průvode uvnitř herního menu (nahoře na stránce), pro užitečné informace."
|
||||
tip_open_source: "CodeCombat je 100% open source!"
|
||||
tip_beta_launch: "CodeCombat spustil svoji beta verzi v Říjnu, 2013."
|
||||
|
|
|
@ -301,7 +301,7 @@ module.exports = nativeDescription: "dansk", englishDescription: "Danish", trans
|
|||
# infinite_loop_reset_level: "Reset Level"
|
||||
# infinite_loop_comment_out: "Comment Out My Code"
|
||||
# tip_toggle_play: "Toggle play/paused with Ctrl+P."
|
||||
# tip_scrub_shortcut: "Ctrl+[ and Ctrl+] rewind and fast-forward."
|
||||
# tip_scrub_shortcut: "Use Ctrl+[ and Ctrl+] to rewind and fast-forward."
|
||||
# tip_guide_exists: "Click the guide, inside game menu (at the top of the page), for useful info."
|
||||
# tip_open_source: "CodeCombat is 100% open source!"
|
||||
# tip_beta_launch: "CodeCombat launched its beta in October, 2013."
|
||||
|
|
|
@ -301,7 +301,7 @@ module.exports = nativeDescription: "Deutsch (Österreich)", englishDescription:
|
|||
infinite_loop_reset_level: "Level zurücksetzen"
|
||||
infinite_loop_comment_out: "Meinen Code auskommentieren"
|
||||
tip_toggle_play: "Wechsel zwischen Play und Pause mit Strg+P."
|
||||
tip_scrub_shortcut: "Spule vor und zurück mit Strg+[ und Strg+]"
|
||||
tip_scrub_shortcut: "Spule vor und zurück mit Strg+[ und Strg+]" # {change}
|
||||
tip_guide_exists: "Klicke auf die Anleitung am oberen Ende der Seite für nützliche Informationen"
|
||||
tip_open_source: "CodeCombat ist 100% quelloffen!"
|
||||
tip_beta_launch: "CodeCombat startete seine Beta im Oktober 2013."
|
||||
|
|
|
@ -301,7 +301,7 @@ module.exports = nativeDescription: "Dütsch (Schwiiz)", englishDescription: "Ge
|
|||
infinite_loop_reset_level: "Level zrugsetze"
|
||||
infinite_loop_comment_out: "Min Code uskommentiere"
|
||||
tip_toggle_play: "Play/Pausiert mit Ctrl+P ischalte."
|
||||
# tip_scrub_shortcut: "Ctrl+[ and Ctrl+] rewind and fast-forward."
|
||||
# tip_scrub_shortcut: "Use Ctrl+[ and Ctrl+] to rewind and fast-forward."
|
||||
tip_guide_exists: "Klick ufs Handbuech im obere Teil vo de Siite zum nützlichi Infos becho."
|
||||
tip_open_source: "CodeCombat isch 100% Open Source!"
|
||||
tip_beta_launch: "D CodeCombat Beta isch im Oktober 2013 online gange."
|
||||
|
|
|
@ -301,7 +301,7 @@ module.exports = nativeDescription: "Deutsch (Deutschland)", englishDescription:
|
|||
infinite_loop_reset_level: "Level zurücksetzen"
|
||||
infinite_loop_comment_out: "Meinen Code auskommentieren"
|
||||
tip_toggle_play: "Wechsel zwischen Play und Pause mit Strg+P."
|
||||
tip_scrub_shortcut: "Spule vor und zurück mit Strg+[ und Strg+]"
|
||||
tip_scrub_shortcut: "Spule vor und zurück mit Strg+[ und Strg+]" # {change}
|
||||
tip_guide_exists: "Klicke auf die Anleitung am oberen Ende der Seite für nützliche Informationen."
|
||||
tip_open_source: "CodeCombat ist 100% quelloffen!"
|
||||
tip_beta_launch: "CodeCombat startete seine Beta im Oktober 2013."
|
||||
|
|
|
@ -301,7 +301,7 @@ module.exports = nativeDescription: "Ελληνικά", englishDescription: "Gre
|
|||
# infinite_loop_reset_level: "Reset Level"
|
||||
# infinite_loop_comment_out: "Comment Out My Code"
|
||||
# tip_toggle_play: "Toggle play/paused with Ctrl+P."
|
||||
# tip_scrub_shortcut: "Ctrl+[ and Ctrl+] rewind and fast-forward."
|
||||
# tip_scrub_shortcut: "Use Ctrl+[ and Ctrl+] to rewind and fast-forward."
|
||||
# tip_guide_exists: "Click the guide, inside game menu (at the top of the page), for useful info."
|
||||
# tip_open_source: "CodeCombat is 100% open source!"
|
||||
# tip_beta_launch: "CodeCombat launched its beta in October, 2013."
|
||||
|
|
|
@ -301,7 +301,7 @@ module.exports = nativeDescription: "English (UK)", englishDescription: "English
|
|||
# infinite_loop_reset_level: "Reset Level"
|
||||
# infinite_loop_comment_out: "Comment Out My Code"
|
||||
# tip_toggle_play: "Toggle play/paused with Ctrl+P."
|
||||
# tip_scrub_shortcut: "Ctrl+[ and Ctrl+] rewind and fast-forward."
|
||||
# tip_scrub_shortcut: "Use Ctrl+[ and Ctrl+] to rewind and fast-forward."
|
||||
# tip_guide_exists: "Click the guide, inside game menu (at the top of the page), for useful info."
|
||||
# tip_open_source: "CodeCombat is 100% open source!"
|
||||
# tip_beta_launch: "CodeCombat launched its beta in October, 2013."
|
||||
|
|
|
@ -301,7 +301,7 @@ module.exports = nativeDescription: "English (US)", englishDescription: "English
|
|||
# infinite_loop_reset_level: "Reset Level"
|
||||
# infinite_loop_comment_out: "Comment Out My Code"
|
||||
# tip_toggle_play: "Toggle play/paused with Ctrl+P."
|
||||
# tip_scrub_shortcut: "Ctrl+[ and Ctrl+] rewind and fast-forward."
|
||||
# tip_scrub_shortcut: "Use Ctrl+[ and Ctrl+] to rewind and fast-forward."
|
||||
# tip_guide_exists: "Click the guide, inside game menu (at the top of the page), for useful info."
|
||||
# tip_open_source: "CodeCombat is 100% open source!"
|
||||
# tip_beta_launch: "CodeCombat launched its beta in October, 2013."
|
||||
|
|
|
@ -597,11 +597,12 @@
|
|||
intro_2: "No experience required!"
|
||||
free_title: "How much does it cost?"
|
||||
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 Basic is FREE! There are 80+ free levels which cover every concept."
|
||||
free_1: "There are 80+ FREE levels which cover every concept." # {change}
|
||||
free_2: "A monthly subscription provides access to video tutorials and extra practice levels."
|
||||
teacher_subs_title: "Teachers get free subscriptions!"
|
||||
teacher_subs_1: "Please contact"
|
||||
teacher_subs_2: "to set up a free monthly subscription."
|
||||
teacher_subs_1: "Please fill out our" # {change}
|
||||
teacher_subs_2: "Teacher Survey" # {change}
|
||||
teacher_subs_3: "to set up your subscription."
|
||||
sub_includes_title: "What is included in the subscription?"
|
||||
sub_includes_1: "In addition to the 80+ basic levels, students with a monthly subscription get access to these additional features:"
|
||||
sub_includes_2: "60+ practice levels"
|
||||
|
|
|
@ -301,7 +301,7 @@ module.exports = nativeDescription: "Esperanto", englishDescription: "Esperanto"
|
|||
# infinite_loop_reset_level: "Reset Level"
|
||||
# infinite_loop_comment_out: "Comment Out My Code"
|
||||
# tip_toggle_play: "Toggle play/paused with Ctrl+P."
|
||||
# tip_scrub_shortcut: "Ctrl+[ and Ctrl+] rewind and fast-forward."
|
||||
# tip_scrub_shortcut: "Use Ctrl+[ and Ctrl+] to rewind and fast-forward."
|
||||
# tip_guide_exists: "Click the guide, inside game menu (at the top of the page), for useful info."
|
||||
# tip_open_source: "CodeCombat is 100% open source!"
|
||||
# tip_beta_launch: "CodeCombat launched its beta in October, 2013."
|
||||
|
|
|
@ -301,7 +301,7 @@ module.exports = nativeDescription: "Español (América Latina)", englishDescrip
|
|||
infinite_loop_reset_level: "Reiniciar Nivel"
|
||||
infinite_loop_comment_out: "Comente Mi Código"
|
||||
tip_toggle_play: "Activa jugar/pausa con Ctrl+P."
|
||||
tip_scrub_shortcut: "Ctrl+[ y Ctrl+] rebobina y avance rápido."
|
||||
tip_scrub_shortcut: "Ctrl+[ y Ctrl+] rebobina y avance rápido." # {change}
|
||||
tip_guide_exists: "Haga click en la guía en la parte superior de la página para obtener información útil"
|
||||
tip_open_source: "¡CodeCombat es 100% código abierto!"
|
||||
tip_beta_launch: "CodeCombat lanzó su beta en Octubre del 2013."
|
||||
|
|
|
@ -301,7 +301,7 @@ module.exports = nativeDescription: "español (ES)", englishDescription: "Spanis
|
|||
infinite_loop_reset_level: "Reiniciar nivel"
|
||||
infinite_loop_comment_out: "Comenta mi código"
|
||||
tip_toggle_play: "Alterna entre jugar/pausa con Ctrl+P."
|
||||
tip_scrub_shortcut: "Ctrl+[ y Ctrl+] rebobina y avanza hacia adelante."
|
||||
tip_scrub_shortcut: "Ctrl+[ y Ctrl+] rebobina y avanza hacia adelante." # {change}
|
||||
tip_guide_exists: "Haz clic en la guía arriba de la página para más información útil."
|
||||
tip_open_source: "¡CodeCombat es 100% open source!"
|
||||
tip_beta_launch: "CodeCombat lanzó su beta en Octubre de 2013."
|
||||
|
|
|
@ -301,7 +301,7 @@ module.exports = nativeDescription: "فارسی", englishDescription: "Persian",
|
|||
# infinite_loop_reset_level: "Reset Level"
|
||||
# infinite_loop_comment_out: "Comment Out My Code"
|
||||
# tip_toggle_play: "Toggle play/paused with Ctrl+P."
|
||||
# tip_scrub_shortcut: "Ctrl+[ and Ctrl+] rewind and fast-forward."
|
||||
# tip_scrub_shortcut: "Use Ctrl+[ and Ctrl+] to rewind and fast-forward."
|
||||
# tip_guide_exists: "Click the guide, inside game menu (at the top of the page), for useful info."
|
||||
# tip_open_source: "CodeCombat is 100% open source!"
|
||||
# tip_beta_launch: "CodeCombat launched its beta in October, 2013."
|
||||
|
|
|
@ -301,7 +301,7 @@ module.exports = nativeDescription: "suomi", englishDescription: "Finnish", tran
|
|||
infinite_loop_reset_level: "Aloita taso uudelleen"
|
||||
infinite_loop_comment_out: "Kommentoi koodirivejä"
|
||||
# tip_toggle_play: "Toggle play/paused with Ctrl+P."
|
||||
# tip_scrub_shortcut: "Ctrl+[ and Ctrl+] rewind and fast-forward."
|
||||
# tip_scrub_shortcut: "Use Ctrl+[ and Ctrl+] to rewind and fast-forward."
|
||||
# tip_guide_exists: "Click the guide, inside game menu (at the top of the page), for useful info."
|
||||
tip_open_source: "CodeCombat on 100% avointa lähdekoodia!"
|
||||
tip_beta_launch: "CodeCombat avattiin betatestaukseen lokakuussa 2013."
|
||||
|
|
|
@ -292,16 +292,16 @@ module.exports = nativeDescription: "français", englishDescription: "French", t
|
|||
time_current: "Maintenant :"
|
||||
time_total: "Max :"
|
||||
time_goto: "Allez à :"
|
||||
# non_user_code_problem_title: "Unable to Load Level"
|
||||
# infinite_loop_title: "Infinite Loop Detected"
|
||||
# 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: "Reessayer"
|
||||
non_user_code_problem_title: "Chargement du niveau impossible"
|
||||
infinite_loop_title: "Détection d'une boucle infinie"
|
||||
infinite_loop_description: "Le code initial pour initialiser le monde n'a jamais terminé de s'exécuter. Soit la connection internet est trop lente ou soit il y a une présence d'une boucle infinie. Peut-être il s'agit d'un bug. Essayez de soit relancer le code à nouveau ou reinitialiser le code à son état par défaut. Si la situation ne change pas, veuillez nous aviser."
|
||||
check_dev_console: "Vous pouvez ouvrir la console du développeur et tenter d'observer ce qui se passe qui causerait un souci."
|
||||
check_dev_console_link: "(instructions)"
|
||||
infinite_loop_try_again: "Réessayer"
|
||||
infinite_loop_reset_level: "Redémarrer le niveau"
|
||||
infinite_loop_comment_out: "Supprimez les commentaires de mon code"
|
||||
tip_toggle_play: "Jouer/Pause avec Ctrl+P."
|
||||
tip_scrub_shortcut: "Ctrl+[ and Ctrl+] : rembobinage et avance rapide."
|
||||
tip_scrub_shortcut: "Ctrl+[ and Ctrl+] : rembobinage et avance rapide." # {change}
|
||||
tip_guide_exists: "Cliquez sur le guide en haut de la page pour des informations utiles."
|
||||
tip_open_source: "CodeCombat est 100% open source !"
|
||||
tip_beta_launch: "La beta de CodeCombat a été lancée en Octobre 2013"
|
||||
|
@ -314,7 +314,7 @@ module.exports = nativeDescription: "français", englishDescription: "French", t
|
|||
tip_morale_improves: "Le chargement se poursuivra jusqu'à ce que la morale s'améliore."
|
||||
tip_all_species: "Nous croyons en l'égalité des chances d'apprendre la programmation pour toutes les espèces."
|
||||
tip_reticulating: "Réticulation des spines."
|
||||
# tip_harry: "Yer a Wizard, "
|
||||
tip_harry: "T'es un magicien, "
|
||||
tip_great_responsibility: "Avec de grandes compétences en programmation vient une grande responsabilité de débogage."
|
||||
tip_munchkin: "Si vous ne mangez pas vos légumes, un munchkin viendra après vous pendant que vous dormirez."
|
||||
tip_binary: "Il ya seulement 10 types de personnes dans le monde: ceux qui comprennent le binaire, et ceux qui ne le comprennent pas."
|
||||
|
@ -342,11 +342,11 @@ module.exports = nativeDescription: "français", englishDescription: "French", t
|
|||
tip_move_forward: "Quoi que vous fassiez, continuez d'avancer. - Martin Luther King Jr."
|
||||
tip_google: "*Vous avez un problème que vous n'arrivez pas à résoudre ? Googlez le !"
|
||||
tip_adding_evil: "Ajout d'une pincée de méchanceté"
|
||||
# tip_hate_computers: "That's the thing about people who think they hate computers. What they really hate is lousy programmers. - Larry Niven"
|
||||
tip_hate_computers: "C'est ça le problème avec les gens qui pensent qu'ils détestent les ordinateur. Ce qu'ils détestent vraiment, c'est des piètres programmeurs. - Larry Niven"
|
||||
tip_open_source_contribute: "Vous pouvez aider CodeCombat à s'améliorer !"
|
||||
# tip_recurse: "To iterate is human, to recurse divine. - L. Peter Deutsch"
|
||||
# tip_free_your_mind: "You have to let it all go, Neo. Fear, doubt, and disbelief. Free your mind. - Morpheus"
|
||||
# tip_strong_opponents: "Even the strongest of opponents always has a weakness. - Itachi Uchiha"
|
||||
tip_recurse: "Itérer c'est humain, mais faire des récursion, c'est divin. - L. Peter Deutsch"
|
||||
tip_free_your_mind: "Vous devez laisser aller , Neo . La peur , le doute et l'incrédulité . Libère ton esprit. - Morpheus"
|
||||
tip_strong_opponents: "Même les ennemis les plus puissant ont une faiblesse. - Itachi Uchiha"
|
||||
|
||||
game_menu:
|
||||
inventory_tab: "Inventaire"
|
||||
|
@ -441,20 +441,20 @@ module.exports = nativeDescription: "français", englishDescription: "French", t
|
|||
parents_blurb3: "Pas de risque : garantie 100% remboursé, désinscription facile en 1 clic."
|
||||
payment_methods: "Moyens de paiement"
|
||||
payment_methods_title: "Moyens de paiement acceptés"
|
||||
payment_methods_blurb1: "Nous acceptons pour le moment les cartes de crédit et les paiment par Alipay."
|
||||
payment_methods_blurb1: "Nous acceptons, pour le moment, les cartes de crédit et les paiment par Alipay."
|
||||
payment_methods_blurb2: "Si vous avez besoins d'un autre moyen de paiement, merci de nous contacter"
|
||||
stripe_description: "Inscription mensuelle"
|
||||
subscription_required_to_play: "Vous avez besoin d'un abonnement pour jouer à ce niveau."
|
||||
unlock_help_videos: "Abonnez vous pour débloquer tous les tutoriels vidéo."
|
||||
personal_sub: "Abonnement individuelle" # Accounts Subscription View below
|
||||
personal_sub: "Abonnement individuel" # Accounts Subscription View below
|
||||
loading_info: "Chargement des informations sur votre abonnement..."
|
||||
# managed_by: "Managed by"
|
||||
# will_be_cancelled: "Will be cancelled on"
|
||||
# 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_by: "Gérer par"
|
||||
will_be_cancelled: "Ceci va être annuler"
|
||||
currently_free: "Vous avez un abonnement gratuit en ce moment"
|
||||
currently_free_until: "Vous avez un abonnement gratuit jusqu'à"
|
||||
was_free_until: "Vous aviez un abonnement gratuit jusqu'à"
|
||||
managed_subs: "Gestion des abonnements"
|
||||
managed_subs_desc: "Ajout d'abonnements pour les autres joueurs (étudiants,enfants,etc.) for other players."
|
||||
# managed_subs_desc_2: "Recipients must have a CodeCombat account associated with the email address you provide."
|
||||
# group_discounts: "Group discounts"
|
||||
# group_discounts_1: "We also offer group discounts for bulk subscriptions."
|
||||
|
@ -616,13 +616,13 @@ module.exports = nativeDescription: "français", englishDescription: "French", t
|
|||
# monitor_progress_4: "page."
|
||||
# monitor_progress_5: "After they join, you will see a summary of the student's progress on your Clan's page."
|
||||
# private_clans_1: "Private Clans provide increased privacy and detailed progress information for each student."
|
||||
# private_clans_2: "To create a private Clan, check the 'Make clan private' checkbox when creating a"
|
||||
# private_clans_3: "."
|
||||
private_clans_2: "Pour créer un Clan privé, veuillez vous référer à la boîte à cocher 'Faire un clan privé' pendant la création du"
|
||||
private_clans_3: "."
|
||||
who_for_title: "A qui CodeCombat est t-il destiné ?"
|
||||
who_for_1: "Nous recommandons CodeCombat pour les élèves âgés de 9 ans ou plus. Aucune expérience préalable de programmation n'est requise."
|
||||
who_for_2: "Nous avons conçu CodeCombat pour plaire à la fois aux garçons et aux filles."
|
||||
material_title: "Quelle quantité de contenu y a t-il ?"
|
||||
# material_china: "Approximately 30 hours of gameplay spread over 140+ subscriber-only levels so far, with new levels every week."
|
||||
material_china: "Il y a en moyenne une trentaine d'heures de temps de jeu distribué sur plus de 140 abonnés jusqu'à maintenant avec des nouveaux niveaux qui s'ajoutent à chaque semaine."
|
||||
material_1: "Environ 8 heures de contenu gratuit et 14 heures de contenu supplémentaire reservé aux abonnés, avec 5 nouveaux niveaux chaque semaines." # {change}
|
||||
concepts_title: "Quels concepts sont couverts ?"
|
||||
how_much_title: "Combien coûte un abonnement mensuel ?"
|
||||
|
@ -630,12 +630,12 @@ module.exports = nativeDescription: "français", englishDescription: "French", t
|
|||
how_much_2: "abonnement mensuel"
|
||||
how_much_3: "coûte $9.99 et peut être annulé à n'importe quel moment."
|
||||
how_much_4: "De plus, nous fournissons des remises pour les grands groupes :"
|
||||
# how_much_5: "We accept discounted one-time purchases and yearly subscription purchases for groups, such as a class or school. Please contact"
|
||||
# how_much_6: "for more details."
|
||||
# more_info_title: "Where can I find more information?"
|
||||
# more_info_1: "Our"
|
||||
# more_info_2: "teachers forum"
|
||||
# more_info_3: "is a good place to connect with fellow educators who are using CodeCombat."
|
||||
how_much_5: "Nous acceptons les achats ponctuels à rabais ainsi que les abonnements pour les groupes, tel que pour une classe ou un groupe. Veuillez nous contacter."
|
||||
how_much_6: "pour plus de détails"
|
||||
more_info_title: "À quel endroit je peux trouver plus de détails ?"
|
||||
more_info_1: "Notre"
|
||||
more_info_2: "forum d'enseignants"
|
||||
more_info_3: "C'est un bon endroit pour faire des relations entre vos camarades éducateurs utilisant CodeCombat"
|
||||
sys_requirements_title: "Configuration requise"
|
||||
sys_requirements_1: "Un navigateur moderne. La dernière version de Chrome, Firefox, ou de Safari. Internet Explorer 9 ou plus récent."
|
||||
sys_requirements_2: "CodeCombat n'est pas encore supporté sur iPad."
|
||||
|
@ -726,7 +726,7 @@ module.exports = nativeDescription: "français", englishDescription: "French", t
|
|||
# scrub_execution: "Scrub through current spell execution."
|
||||
toggle_debug: "Afficher la console de déboggage"
|
||||
toggle_grid: "Afficher une grille"
|
||||
# toggle_pathfinding: "Toggle pathfinding overlay."
|
||||
toggle_pathfinding: "Toggle pathfinding overlay."
|
||||
beautify: "Embellissez votre code en normalisant sa mise en forme."
|
||||
maximize_editor: "Maximiser/minimiser l'éditeur de code."
|
||||
|
||||
|
@ -748,48 +748,48 @@ module.exports = nativeDescription: "français", englishDescription: "French", t
|
|||
social_hipchat: "Chattez avec nous dans la salle HipChat publique CodeCombat"
|
||||
contribute_to_the_project: "Contribuer au projet"
|
||||
|
||||
# clans:
|
||||
# clan: "Clan"
|
||||
# clans: "Clans"
|
||||
# new_name: "New clan name"
|
||||
# new_description: "New clan description"
|
||||
# make_private: "Make clan private"
|
||||
# subs_only: "subscribers only"
|
||||
# create_clan: "Create New Clan"
|
||||
# public_clans: "Public Clans"
|
||||
# my_clans: "My Clans"
|
||||
# clan_name: "Clan Name"
|
||||
# name: "Name"
|
||||
# chieftain: "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"
|
||||
# progress: "Progress"
|
||||
# not_started_1: "not started"
|
||||
# started_1: "started"
|
||||
# complete_1: "complete"
|
||||
# exp_levels: "Expand levels"
|
||||
# rem_hero: "Remove Hero"
|
||||
# status: "Status"
|
||||
# complete_2: "Complete"
|
||||
# started_2: "Started"
|
||||
# not_started_2: "Not Started"
|
||||
# view_solution: "Click to view solution."
|
||||
# latest_achievement: "Latest Achievement"
|
||||
# playtime: "Playtime"
|
||||
# last_played: "Last played"
|
||||
clans:
|
||||
clan: "Clan"
|
||||
clans: "Clans"
|
||||
new_name: "Nouveau nom de clan"
|
||||
new_description: "Description du nouveau clan"
|
||||
make_private: "Rendre le clan privé"
|
||||
subs_only: "Abonnés seulement"
|
||||
create_clan: "Créer un nouveau clan"
|
||||
public_clans: "Clans publiques"
|
||||
my_clans: "Mes clans"
|
||||
clan_name: "Nom du clan"
|
||||
name: "Nom"
|
||||
chieftain: "Chef"
|
||||
type: "Type"
|
||||
edit_clan_name: "Modifier le nom du clan"
|
||||
edit_clan_description: "Modifier la description du clan"
|
||||
edit_name: "Modifier nom"
|
||||
edit_description: "modifier description"
|
||||
private: "(privé)"
|
||||
summary: "Sommaire"
|
||||
average_level: "Moyenne de niveau"
|
||||
average_achievements: "Moyenne de réalisations"
|
||||
delete_clan: "Délétion de clan"
|
||||
leave_clan: "Partir du clan"
|
||||
join_clan: "Rejoindre le clan"
|
||||
invite_1: "Inviter:"
|
||||
invite_2: "*Inviter des joueurs au Caln en leur envoyant le lien suivant."
|
||||
members: "Membres"
|
||||
progress: "Progression"
|
||||
not_started_1: "Non commencé"
|
||||
started_1: "démarré"
|
||||
complete_1: "compléter"
|
||||
exp_levels: "Étendre les niveaux"
|
||||
rem_hero: "Retirer l'héros"
|
||||
status: "Status"
|
||||
complete_2: "Compléter"
|
||||
started_2: "Démarré"
|
||||
not_started_2: "Non démarré"
|
||||
view_solution: "Cliquer pour voir la solution"
|
||||
latest_achievement: "Réalisation Récentes"
|
||||
playtime: "Temps de jeu"
|
||||
last_played: "Dernière période de jeu"
|
||||
|
||||
classes:
|
||||
archmage_title: "Archimage"
|
||||
|
@ -884,10 +884,10 @@ module.exports = nativeDescription: "français", englishDescription: "French", t
|
|||
thang_search_title: "Rechercher dans les types de Thang"
|
||||
level_search_title: "Rechercher dans les niveaux"
|
||||
achievement_search_title: "Rechercher des succès"
|
||||
# poll_search_title: "Search Polls"
|
||||
poll_search_title: "Recherche de sondages"
|
||||
read_only_warning2: "Note: vous ne pouvez sauvegarder aucune édition, car vous n'êtes pas identifié."
|
||||
no_achievements: "Aucun succès n'a encore été ajouté à ce niveau."
|
||||
# achievement_query_misc: "Key achievement off of miscellanea"
|
||||
achievement_query_misc: "Réalisations clés en provenance de miscellanea"
|
||||
achievement_query_goals: "Succés important hors des objectifs de niveau"
|
||||
level_completion: "Niveau d'achèvement"
|
||||
pop_i18n: "Renseigner I18N"
|
||||
|
@ -1020,7 +1020,7 @@ module.exports = nativeDescription: "français", englishDescription: "French", t
|
|||
tournament_rules: "Règles du tournoi"
|
||||
tournament_blurb: "Écrire du code, collecter de l'or, construire des armées, écraser les ennemis, gagner des prix, et mettre à jour votre carrière dans notre tournoi $ 40,000 Greed! Découvrez les détails"
|
||||
tournament_blurb_criss_cross: "Gagnez des offres, construisez des chemins, déjouez les adversaires, emparez-vous des gemmes, et améliorez votre carrière dans notre tournoi Criss-Cross! Découvrez les détails"
|
||||
# tournament_blurb_zero_sum: "Unleash your coding creativity in both gold gathering and battle tactics in this alpine mirror match between red sorcerer and blue sorcerer. The tournament began on Friday, March 27 and will run until Monday, April 6 at 5PM PDT. Compete for fun and glory! Check out the details"
|
||||
tournament_blurb_zero_sum: "Libérez votre créativité en programmation dans l'accumulation d'or et de tactiques de combat dans ce combat épique entre le sorcier rouge et bleu. Le tournoi a commencé vendredi le 27 mars et se déroulera jusqu'à lundi le 6 avril à 5PM PDT. Battez-vous pour le plaisir et l'honneur! Aller voir les détails."
|
||||
tournament_blurb_blog: "Sur notre blog"
|
||||
rules: "Règles"
|
||||
winners: "Gagnants"
|
||||
|
@ -1039,7 +1039,7 @@ module.exports = nativeDescription: "français", englishDescription: "French", t
|
|||
no_achievements: "Aucun succès gagné pour le moment."
|
||||
favorite_prefix: "Langage favori : "
|
||||
favorite_postfix: "."
|
||||
# not_member_of_clans: "Not a member of any clans yet."
|
||||
not_member_of_clans: "Ne fais partie d'aucun clan pour l'instant."
|
||||
|
||||
achievements:
|
||||
last_earned: "Dernièrement gagné"
|
||||
|
@ -1145,7 +1145,7 @@ module.exports = nativeDescription: "français", englishDescription: "French", t
|
|||
user_remarks: "Remarques des utilisateurs"
|
||||
versions: "Versions"
|
||||
items: "Objets"
|
||||
# hero: "Hero"
|
||||
hero: "Héros"
|
||||
heroes: "Héros"
|
||||
achievement: "Succès"
|
||||
clas: "CLAs"
|
||||
|
@ -1153,8 +1153,8 @@ module.exports = nativeDescription: "français", englishDescription: "French", t
|
|||
feedback: "Réaction"
|
||||
payment_info: "Info paiement"
|
||||
campaigns: "Campagnes"
|
||||
# poll: "Poll"
|
||||
# user_polls_record: "Poll Voting History"
|
||||
poll: "Sondage"
|
||||
user_polls_record: "Historique de sondage des utilisateurs"
|
||||
|
||||
delta:
|
||||
added: "Ajouté"
|
||||
|
@ -1364,7 +1364,7 @@ module.exports = nativeDescription: "français", englishDescription: "French", t
|
|||
# hire_developers_not_credentials: "Hire developers, not credentials." # We are not actively recruiting right now, so there's no need to add new translations for the rest of this section.
|
||||
get_started: "Commencer"
|
||||
already_screened: "Nous avons déjà examiné techniquement tous les candidats"
|
||||
# filter_further: ", but you can also filter further:"
|
||||
filter_further: ", mais vous pouvez filtrer davantage:"
|
||||
filter_visa: "Visa"
|
||||
filter_visa_yes: "US Authorisé"
|
||||
filter_visa_no: "Non autorisé"
|
||||
|
@ -1380,18 +1380,18 @@ module.exports = nativeDescription: "français", englishDescription: "French", t
|
|||
filter_experience_student: "Étudiant"
|
||||
filter_results: "Résultats"
|
||||
start_hiring: "Commencer à embaucher."
|
||||
# reasons: "Three reasons you should hire through us:"
|
||||
# everyone_looking: "Everyone here is looking for their next opportunity."
|
||||
# everyone_looking_blurb: "Forget about 20% LinkedIn InMail response rates. Everyone that we list on this site wants to find their next position and will respond to your request for an introduction."
|
||||
# weeding: "Sit back; we've done the weeding for you."
|
||||
# weeding_blurb: "Every player that we list has been screened for technical ability. We also perform phone screens for select candidates and make notes on their profiles to save you time."
|
||||
# pass_screen: "They will pass your technical screen."
|
||||
# pass_screen_blurb: "Review each candidate's code before reaching out. One employer found that 5x as many of our devs passed their technical screen than hiring from Hacker News."
|
||||
reasons: "Trois raisons pour lesquelles vous devriez employer vos prochains employés avec nous."
|
||||
everyone_looking:"Toutes les personnes ici sont en quête de leur nouvel emploi."
|
||||
everyone_looking_blurb: "Oubliez environ 20% du taux de réponse de courriels Linkedin. Toutes les personnes que nous avons listé sur ce site veulent être trouvé pour un nouvel emploi et répondront à votre requête pour qu'ils puissent s'introduire."
|
||||
weeding: "Soyez tranquille, nous avons effectué une première sélection pour vous."
|
||||
weeding_blurb: "Tous les joueurs que nous avons listés ont été sélectionné pour leurs abilités techniques. Nous allons également effectuer des entrevues techniques au téléphone pour sélectionner les candidats et ajouter des notes à leurs profiles afin de vous sauver du temps."
|
||||
pass_screen: "Ils vont passer votre section technique"
|
||||
pass_screen_blurb: "Réviser le code de chaque candidat avant de l'envoyer aux employeurs. Un employeur trouve que 5 fois plus de nos développeurs passent leur section technique que ceux en provenance de Hacker News."
|
||||
make_hiring_easier: "Faire de mon embauche plus facile, s'il vous plaît."
|
||||
what: "Qu'est-ce que CodeCombat?"
|
||||
what_blurb: "CodeCombat est un jeu de programmation multijoueur par navigateur. Les Joueurs écrivent le code pour contrôler leurs troupes dans des batailles contre d'autres développeurs. Nous prenons en charge JavaScript, Python, Lua, Clojure, CoffeeScript, et Io."
|
||||
# cost: "How much do we charge?"
|
||||
# cost_blurb: "We charge 15% of first year's salary and offer a 100% money back guarantee for 90 days. We don't charge for candidates who are already actively being interviewed at your company."
|
||||
cost: "Combien chargeons-nous ?"
|
||||
cost_blurb: "Nous chargeons 15% sur la première année de salaire et offrons une garantie de 100% d'argent remis sur une période de 90 jours. Nous ne chargerons pas les candidats qui activement en train d'être interviewer dans votre compagnie."
|
||||
candidate_name: "Nom"
|
||||
candidate_location: "Localisation"
|
||||
candidate_looking_for: "Poste pour"
|
||||
|
|
|
@ -301,7 +301,7 @@ module.exports = nativeDescription: "Galego", englishDescription: "Galician", tr
|
|||
infinite_loop_reset_level: "Reiniciar nivel"
|
||||
infinite_loop_comment_out: "Comenta o meu código"
|
||||
tip_toggle_play: "Alterna entre xogar/pausa con Ctrl+P."
|
||||
tip_scrub_shortcut: "Ctrl+[ y Ctrl+] rebobina e avanza cara adiante."
|
||||
tip_scrub_shortcut: "Ctrl+[ y Ctrl+] rebobina e avanza cara adiante." # {change}
|
||||
tip_guide_exists: "Preme na guía arriba da páxina para máis información útil."
|
||||
tip_open_source: "CodeCombat é 100% código aberto!"
|
||||
tip_beta_launch: "CodeCombat lanzou a súa beta en Outubro de 2014."
|
||||
|
|
|
@ -301,7 +301,7 @@ module.exports = nativeDescription: "עברית", englishDescription: "Hebrew",
|
|||
infinite_loop_reset_level: "התחל שלב מחדש"
|
||||
infinite_loop_comment_out: ".הפוך את הקוד שלי להערה"
|
||||
tip_toggle_play: "Ctrl+P הדלק הפעל/השהה בעזרת"
|
||||
tip_scrub_shortcut: "Ctrl+[ ו Ctrl+] האץ אחורה וקדימה באמצעות"
|
||||
tip_scrub_shortcut: "Ctrl+[ ו Ctrl+] האץ אחורה וקדימה באמצעות" # {change}
|
||||
tip_guide_exists: ".לחץ על המדריך, בתוך תפריט המשחק (למעלה בקצה העמוד), למידע שימושי"
|
||||
tip_open_source: "!הוא 100% קוד פתוח CodeCombat"
|
||||
tip_beta_launch: ".הפיץ את גרסת הבטא באוקטובר, 2013 CodeCombat"
|
||||
|
|
|
@ -301,7 +301,7 @@ module.exports = nativeDescription: "मानक हिन्दी", englishDe
|
|||
# infinite_loop_reset_level: "Reset Level"
|
||||
# infinite_loop_comment_out: "Comment Out My Code"
|
||||
# tip_toggle_play: "Toggle play/paused with Ctrl+P."
|
||||
# tip_scrub_shortcut: "Ctrl+[ and Ctrl+] rewind and fast-forward."
|
||||
# tip_scrub_shortcut: "Use Ctrl+[ and Ctrl+] to rewind and fast-forward."
|
||||
# tip_guide_exists: "Click the guide, inside game menu (at the top of the page), for useful info."
|
||||
# tip_open_source: "CodeCombat is 100% open source!"
|
||||
# tip_beta_launch: "CodeCombat launched its beta in October, 2013."
|
||||
|
|
|
@ -53,10 +53,10 @@ module.exports = nativeDescription: "magyar", englishDescription: "Hungarian", t
|
|||
players: "Játékosok" # Hover over a level on /play
|
||||
hours_played: "Játékidő" # Hover over a level on /play
|
||||
items: "Tárgyak" # Tooltip on item shop button from /play
|
||||
unlock: "Felnyitás" # For purchasing items and heroes
|
||||
unlock: "Feloldás" # For purchasing items and heroes
|
||||
confirm: "Megerősítés"
|
||||
owned: "Megszerzett" # For items you own
|
||||
locked: "Lezárva"
|
||||
locked: "Zárolva"
|
||||
purchasable: "Megvehetvő" # For a hero you unlocked but haven't purchased
|
||||
available: "Elérhető"
|
||||
skills_granted: "Elnyert képességek" # Property documentation details
|
||||
|
@ -301,7 +301,7 @@ module.exports = nativeDescription: "magyar", englishDescription: "Hungarian", t
|
|||
infinite_loop_reset_level: "Pálya újrakezdés"
|
||||
infinite_loop_comment_out: "Tegye a kódom kommentárba"
|
||||
tip_toggle_play: "Játék/Szünet kapcsoló Ctrl+P."
|
||||
tip_scrub_shortcut: "Ctrl+[ és Ctrl+] visszatekerés és gyors-előre."
|
||||
tip_scrub_shortcut: "Ctrl+[ és Ctrl+] visszatekerés és gyors-előre." # {change}
|
||||
tip_guide_exists: "Hasznos információkért kattints az oldal tetején az útmutatóra.."
|
||||
tip_open_source: "A CodeCombat 100%-osan nyitott forráskódú."
|
||||
tip_beta_launch: "CodeCombat Béta teszt 2013 Októberétől elérhető."
|
||||
|
@ -733,20 +733,20 @@ module.exports = nativeDescription: "magyar", englishDescription: "Hungarian", t
|
|||
community:
|
||||
main_title: "CodeCombat Közösség"
|
||||
# introduction: "Check out the ways you can get involved below and decide what sounds the most fun. We look forward to working with you!"
|
||||
# level_editor_prefix: "Use the CodeCombat"
|
||||
# level_editor_suffix: "to create and edit levels. Users have created levels for their classes, friends, hackathons, students, and siblings. If create a new level sounds intimidating you can start by forking one of ours!"
|
||||
level_editor_prefix: "Használd a CodeCombat"
|
||||
level_editor_suffix: "-t, hogy szerkessz meglévő-, vagy készíts új pályákat. A felhasználók készítettek már pályákat az osztályiknak, hackathonokra, tanulóiknak és testvéreiknek is. Ha egy új pálya elkészítése túl nagy feladatnak tűnik, kezdhetsz egy általunk készített pálya módosításával is."
|
||||
# thang_editor_prefix: "We call units within the game 'thangs'. Use the"
|
||||
# thang_editor_suffix: "to modify the CodeCombat source artwork. Allow units to throw projectiles, alter the direction of an animation, change a unit's hit points, or upload your own vector sprites."
|
||||
# article_editor_prefix: "See a mistake in some of our docs? Want to make some instructions for your own creations? Check out the"
|
||||
# article_editor_suffix: "and help CodeCombat players get the most out of their playtime."
|
||||
# find_us: "Find us on these sites"
|
||||
# social_blog: "Read the CodeCombat blog on Sett"
|
||||
# social_discource: "Join the discussion on our Discourse forum"
|
||||
# social_facebook: "Like CodeCombat on Facebook"
|
||||
# social_twitter: "Follow CodeCombat on Twitter"
|
||||
# social_gplus: "Join CodeCombat on Google+"
|
||||
# social_hipchat: "Chat with us in the public CodeCombat HipChat room"
|
||||
# contribute_to_the_project: "Contribute to the project"
|
||||
article_editor_prefix: "Hibát találtál valamelyik dokumentumunkban? Szeretnél útmutatót adni valamelyik alkotásodhoz? Próbáld ki a"
|
||||
article_editor_suffix: "-t és segíts a CodeCombat játékosoknak, hogy a legtöbbet hozhassák ki a játékkal töltött idejükből."
|
||||
find_us: "Ezeken az oldalakon is megtalálhatsz minket"
|
||||
social_blog: "Olvasd a CodeCombat blogot a Sett-en"
|
||||
social_discource: "Csatlakozz a beszélgetéshez a Discourse forumon"
|
||||
social_facebook: "Like-old a CodeCombat-et a Facebookon"
|
||||
social_twitter: "Kövesd a CodeCombat-et a Twitteren"
|
||||
social_gplus: "Csatlakozz a CodeCombat-hez a Google+ -on"
|
||||
social_hipchat: "Csevegj velünk a publikus CodeCombat HipChat szobában"
|
||||
contribute_to_the_project: "Vegyél részt a projektben"
|
||||
|
||||
# clans:
|
||||
# clan: "Clan"
|
||||
|
@ -998,14 +998,14 @@ module.exports = nativeDescription: "magyar", englishDescription: "Hungarian", t
|
|||
# code_being_simulated: "Your new code is being simulated by other players for ranking. This will refresh as new matches come in."
|
||||
# no_ranked_matches_pre: "No ranked matches for the "
|
||||
# no_ranked_matches_post: " team! Play against some competitors and then come back here to get your game ranked."
|
||||
# choose_opponent: "Choose an Opponent"
|
||||
# select_your_language: "Select your language!"
|
||||
choose_opponent: "Válassz ellenfelet!"
|
||||
select_your_language: "Válassz nyelvet!"
|
||||
tutorial_play: "Gyakorlójáték"
|
||||
# tutorial_recommended: "Recommended if you've never played before"
|
||||
tutorial_skip: "Gyakorlójáték átugrása"
|
||||
tutorial_not_sure: "Nem érted mi folyik?"
|
||||
tutorial_play_first: "Játssz egy gyakorlójátékot először!"
|
||||
# simple_ai: "Simple AI"
|
||||
simple_ai: "Egyszerű MI"
|
||||
warmup: "Bemelegítés"
|
||||
# friends_playing: "Friends Playing"
|
||||
# log_in_for_friends: "Log in to play with your friends!"
|
||||
|
@ -1016,7 +1016,7 @@ module.exports = nativeDescription: "magyar", englishDescription: "Hungarian", t
|
|||
# defeat_the: "Defeat the"
|
||||
# tournament_started: ", started"
|
||||
tournament_ends: "A torna vége"
|
||||
# tournament_ended: "Tournament ended"
|
||||
tournament_ended: "A torna végetért"
|
||||
tournament_rules: "A torna szabályai"
|
||||
# tournament_blurb: "Write code, collect gold, build armies, crush foes, win prizes, and upgrade your career in our $40,000 Greed tournament! Check out the details"
|
||||
# tournament_blurb_criss_cross: "Win bids, construct paths, outwit opponents, grab gems, and upgrade your career in our Criss-Cross tournament! Check out the details"
|
||||
|
@ -1068,7 +1068,7 @@ module.exports = nativeDescription: "magyar", englishDescription: "Hungarian", t
|
|||
invoices: "Számlák"
|
||||
service_apple: "Apple"
|
||||
# service_web: "Web"
|
||||
# paid_on: "Paid On"
|
||||
paid_on: "Fizetve"
|
||||
service: "Szolgáltatás"
|
||||
price: "Ár"
|
||||
gems: "Drágakövek"
|
||||
|
@ -1178,7 +1178,7 @@ module.exports = nativeDescription: "magyar", englishDescription: "Hungarian", t
|
|||
# multiplayer_coming_soon: "More multiplayer features to come!"
|
||||
# multiplayer_sign_in_leaderboard: "Sign in or create an account and get your solution on the leaderboard."
|
||||
|
||||
# legal:
|
||||
legal:
|
||||
# page_title: "Legal"
|
||||
# opensource_intro: "CodeCombat is completely open source."
|
||||
# opensource_description_prefix: "Check out "
|
||||
|
@ -1211,8 +1211,8 @@ module.exports = nativeDescription: "magyar", englishDescription: "Hungarian", t
|
|||
# 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: "Music"
|
||||
# art_sound: "Sound"
|
||||
art_music: "Zene"
|
||||
art_sound: "Hang"
|
||||
# art_artwork: "Artwork"
|
||||
# art_sprites: "Sprites"
|
||||
# art_other: "Any and all other non-code creative works that are made available when creating Levels."
|
||||
|
@ -1225,7 +1225,7 @@ module.exports = nativeDescription: "magyar", englishDescription: "Hungarian", t
|
|||
# rights_desc: "All rights are reserved for Levels themselves. This includes"
|
||||
# rights_scripts: "Scripts"
|
||||
# rights_unit: "Unit configuration"
|
||||
# rights_description: "Description"
|
||||
rights_description: "Leírás"
|
||||
# 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."
|
||||
|
@ -1233,15 +1233,15 @@ module.exports = nativeDescription: "magyar", englishDescription: "Hungarian", t
|
|||
# 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 discrepancies between translations, the English document takes precedence."
|
||||
|
||||
# ladder_prizes:
|
||||
ladder_prizes:
|
||||
# title: "Tournament Prizes" # This section was for an old tournament and doesn't need new translations now.
|
||||
# blurb_1: "These prizes will be awarded according to"
|
||||
# blurb_2: "the tournament rules"
|
||||
# blurb_3: "to the top human and ogre players."
|
||||
# blurb_4: "Two teams means double the prizes!"
|
||||
# blurb_5: "(There will be two first place winners, two second-place winners, etc.)"
|
||||
# rank: "Rank"
|
||||
# prizes: "Prizes"
|
||||
rank: "Rang"
|
||||
prizes: "Díjak"
|
||||
# total_value: "Total Value"
|
||||
# in_cash: "in cash"
|
||||
# custom_wizard: "Custom CodeCombat Wizard"
|
||||
|
@ -1305,8 +1305,8 @@ module.exports = nativeDescription: "magyar", englishDescription: "Hungarian", t
|
|||
# basics_looking_for_contracting: "Contracting"
|
||||
# basics_looking_for_internship: "Internship"
|
||||
# basics_looking_for_help: "What kind of developer position do you want?"
|
||||
# name_header: "Fill in your name"
|
||||
# name_anonymous: "Anonymous Developer"
|
||||
name_header: "Add meg a neved"
|
||||
name_anonymous: "Névtelen Fejlesztő"
|
||||
# name_help: "Name you want employers to see, like 'Nick Winter'."
|
||||
# short_description_header: "Write a short description of yourself"
|
||||
# short_description_blurb: "Add a tagline to help an employer quickly learn more about you."
|
||||
|
|
|
@ -301,7 +301,7 @@ module.exports = nativeDescription: "Bahasa Indonesia", englishDescription: "Ind
|
|||
# infinite_loop_reset_level: "Reset Level"
|
||||
# infinite_loop_comment_out: "Comment Out My Code"
|
||||
# tip_toggle_play: "Toggle play/paused with Ctrl+P."
|
||||
# tip_scrub_shortcut: "Ctrl+[ and Ctrl+] rewind and fast-forward."
|
||||
# tip_scrub_shortcut: "Use Ctrl+[ and Ctrl+] to rewind and fast-forward."
|
||||
# tip_guide_exists: "Click the guide, inside game menu (at the top of the page), for useful info."
|
||||
# tip_open_source: "CodeCombat is 100% open source!"
|
||||
# tip_beta_launch: "CodeCombat launched its beta in October, 2013."
|
||||
|
|
|
@ -194,7 +194,7 @@ module.exports = nativeDescription: "Italiano", englishDescription: "Italian", t
|
|||
# ladder: "Ladder"
|
||||
when: "Quando"
|
||||
opponent: "Avversario"
|
||||
# rank: "Classifica"
|
||||
# rank: "Rank"
|
||||
score: "Punteggio"
|
||||
win: "Vittoria"
|
||||
loss: "Sconfitta"
|
||||
|
@ -301,7 +301,7 @@ module.exports = nativeDescription: "Italiano", englishDescription: "Italian", t
|
|||
infinite_loop_reset_level: "Riavvia livello"
|
||||
infinite_loop_comment_out: "Commenta il codice"
|
||||
tip_toggle_play: "Scambia play/pausa con Ctrl+P."
|
||||
# tip_scrub_shortcut: "Ctrl+[ and Ctrl+] rewind and fast-forward."
|
||||
# tip_scrub_shortcut: "Use Ctrl+[ and Ctrl+] to rewind and fast-forward."
|
||||
tip_guide_exists: "Clicca sulla Guida, nel menù di gioco (in alto nella pagina), per informazioni utili."
|
||||
tip_open_source: "CodeCombat è 100% open source!"
|
||||
tip_beta_launch: "CodeCombat è stato lanciato in beta nell'ottobre 2013."
|
||||
|
@ -498,9 +498,9 @@ module.exports = nativeDescription: "Italiano", englishDescription: "Italian", t
|
|||
regeneration: "Rigenerazione"
|
||||
range: "campo" # As in "attack or visual range"
|
||||
blocks: "protegge" # As in "this shield blocks this much damage"
|
||||
# backstab: "di rimbalzo" # As in "this dagger does this much backstab damage"
|
||||
# backstab: "Backstab" # As in "this dagger does this much backstab damage"
|
||||
skills: "Abilità"
|
||||
# attack_1: "Infligge"
|
||||
# attack_1: "Deals"
|
||||
# attack_2: "of listed"
|
||||
# attack_3: "weapon damage."
|
||||
# health_1: "Gains"
|
||||
|
@ -794,22 +794,22 @@ module.exports = nativeDescription: "Italiano", englishDescription: "Italian", t
|
|||
classes:
|
||||
archmage_title: "Arcimago"
|
||||
archmage_title_description: "(Programmazione)"
|
||||
# archmage_summary: "If you are a developer interested in coding educational games, become an archmage to help us build CodeCombat!"
|
||||
archmage_summary: "Se sei uno sviluppatore interessato a programmare videogiochi educativi, diventa un Arcimago per aiutarci a costruire CodeCombat!"
|
||||
artisan_title: "Artigiano"
|
||||
artisan_title_description: "(Costruzione livelli)"
|
||||
# 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: "Crea e condividi livelli con cui far giocare i tuoi amici. Diventa un Artigiano per apprendere l'arte di insegnare agli altri a programmare!"
|
||||
adventurer_title: "Avventuriero"
|
||||
adventurer_title_description: "(Prova di gioco dei livelli)"
|
||||
# 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: "Ottieni i nuovi livelli (anche quelli per abbonati) gratuitamente una settimana prima e aiutaci a scovare e sistemare i bug prima della pubblicazione!"
|
||||
scribe_title: "Scriba"
|
||||
scribe_title_description: "(Scrittura articoli)"
|
||||
# scribe_summary: "Good code needs good documentation. Write, edit, and improve the docs read by millions of players across the globe."
|
||||
scribe_summary: "Del buon codice necessita di buona documentazione. Scrivi, modifica e migliora i documenti letti da milioni di giocatori in tutto il mondo."
|
||||
diplomat_title: "Diplomatico"
|
||||
diplomat_title_description: "(Traduzione)"
|
||||
# diplomat_summary: "CodeCombat is localized in 45+ languages by our Diplomats. Help us out and contribute translations."
|
||||
diplomat_summary: "CodeCombat è localizzato in più di 45 lingue dai nostri Diplomatici. Aiutaci contribuendo con le tue traduzioni."
|
||||
ambassador_title: "Ambasciatore"
|
||||
ambassador_title_description: "(Supporto)"
|
||||
# ambassador_summary: "Tame our forum users and provide direction for those with questions. Our ambassadors represent CodeCombat to the world."
|
||||
ambassador_summary: "Guida gli utenti del forum e dai consigli a coloro che hanno delle domande. I nostri Ambasciatori rappresentano CodeCombat nel mondo."
|
||||
|
||||
editor:
|
||||
main_title: "Editor di CodeCombat"
|
||||
|
@ -903,8 +903,8 @@ module.exports = nativeDescription: "Italiano", englishDescription: "Italian", t
|
|||
|
||||
contribute:
|
||||
page_title: "Contribuire"
|
||||
# intro_blurb: "CodeCombat is 100% open source! Hundreds of dedicated players have helped us build the game into what it is today. Join us and write the next chapter in CodeCombat's quest to teach the world to code!"
|
||||
# alert_account_message_intro: "Hey there!"
|
||||
intro_blurb: "CodeCombat è al 100% open source! Centinaia di giocatori appassionati ci hanno aiutati a rendere il gioco quello che è oggi. Unisciti a noi e scrivi il prossimo capitolo nella missione di CodeCombat per insegnare al mondo a programmare!"
|
||||
alert_account_message_intro: "Ehilà!"
|
||||
# alert_account_message: "To subscribe for class emails, you'll need to be logged in first."
|
||||
# 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: "Attributi di classe"
|
||||
|
@ -1129,31 +1129,31 @@ module.exports = nativeDescription: "Italiano", englishDescription: "Italian", t
|
|||
# thang: "Thang"
|
||||
# thangs: "Thangs"
|
||||
level_session: "La tua sessione"
|
||||
# opponent_session: "Opponent Session"
|
||||
opponent_session: "Sessione avversario"
|
||||
article: "Articolo"
|
||||
# user_names: "User Names"
|
||||
# thang_names: "Thang Names"
|
||||
# files: "Files"
|
||||
# top_simulators: "Top Simulators"
|
||||
# source_document: "Source Document"
|
||||
# document: "Document"
|
||||
document: "Documento"
|
||||
# sprite_sheet: "Sprite Sheet"
|
||||
# employers: "Employers"
|
||||
# candidates: "Candidates"
|
||||
# candidate_sessions: "Candidate Sessions"
|
||||
# user_remark: "User Remark"
|
||||
# user_remarks: "User Remarks"
|
||||
# versions: "Versions"
|
||||
# items: "Items"
|
||||
# hero: "Hero"
|
||||
# heroes: "Heroes"
|
||||
# achievement: "Achievement"
|
||||
versions: "Versioni"
|
||||
items: "Oggetti"
|
||||
hero: "Eroe"
|
||||
heroes: "Eroi"
|
||||
achievement: "Impresa"
|
||||
# clas: "CLAs"
|
||||
# play_counts: "Play Counts"
|
||||
# feedback: "Feedback"
|
||||
feedback: "Feedback"
|
||||
# payment_info: "Payment Info"
|
||||
# campaigns: "Campaigns"
|
||||
# poll: "Poll"
|
||||
campaigns: "Campagne"
|
||||
poll: "Sondaggio"
|
||||
# user_polls_record: "Poll Voting History"
|
||||
|
||||
# delta:
|
||||
|
|
|
@ -158,13 +158,13 @@ module.exports = nativeDescription: "日本語", englishDescription: "Japanese",
|
|||
unwatch: "見ない"
|
||||
submit_patch: "パッチを送信"
|
||||
submit_changes: "変更を送信"
|
||||
# save_changes: "Save Changes"
|
||||
save_changes: "変更を保存"
|
||||
|
||||
general:
|
||||
and: "と"
|
||||
name: "名前"
|
||||
date: "日付"
|
||||
body: "Body"
|
||||
body: "体"
|
||||
version: "バージョン"
|
||||
pending: "ペンディング"
|
||||
accepted: "容認された"
|
||||
|
@ -301,7 +301,7 @@ module.exports = nativeDescription: "日本語", englishDescription: "Japanese",
|
|||
infinite_loop_reset_level: "レベルをリセット"
|
||||
infinite_loop_comment_out: "マイコードをコメントアウト"
|
||||
tip_toggle_play: "Ctrl+Pで、プレイ/ポーズをトグルする"
|
||||
tip_scrub_shortcut: "Ctrl+[ と Ctrl+] で巻き戻し、早送りする"
|
||||
tip_scrub_shortcut: "Ctrl+[ と Ctrl+] で巻き戻し、早送りする" # {change}
|
||||
tip_guide_exists: "ゲームメニュー内のガイド(ページの上部)をクリックし、便利な情報 を見よう。"
|
||||
tip_open_source: "CodeCombatは、100%オープンソースです!"
|
||||
tip_beta_launch: "CodeCombatは、2013年10月にベータ版を開始しました。"
|
||||
|
@ -1005,10 +1005,10 @@ module.exports = nativeDescription: "日本語", englishDescription: "Japanese",
|
|||
tutorial_skip: "チュートリアルをスキップする"
|
||||
# tutorial_not_sure: "Not sure what's going on?"
|
||||
tutorial_play_first: "はじめからチュートリアルを遊ぶ"
|
||||
# simple_ai: "Simple AI"
|
||||
simple_ai: "単純なAI"
|
||||
warmup: "ウォームアップ"
|
||||
friends_playing: "友達と遊ぶ"
|
||||
# log_in_for_friends: "Log in to play with your friends!"
|
||||
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!"
|
||||
|
@ -1029,14 +1029,14 @@ module.exports = nativeDescription: "日本語", englishDescription: "Japanese",
|
|||
# stats: "Stats"
|
||||
singleplayer_title: "シングルプレイヤーレベル"
|
||||
multiplayer_title: "マルチプレイヤーレベル"
|
||||
# achievements_title: "Achievements"
|
||||
achievements_title: "アーカイブ"
|
||||
last_played: "最終プレイ"
|
||||
status: "ステータス"
|
||||
status_completed: "コンプリート"
|
||||
status_unfinished: "未完了"
|
||||
no_singleplayer: "まだシングルプレイヤーのゲームをプレイしていません."
|
||||
no_multiplayer: "まだマルチプレイヤーのゲームをプレイしていません."
|
||||
# no_achievements: "No Achievements earned yet."
|
||||
no_singleplayer: "まだシングルプレイヤーのゲームをプレイしていません。"
|
||||
no_multiplayer: "まだマルチプレイヤーのゲームをプレイしていません。"
|
||||
no_achievements: "まだアーカイブはありません。"
|
||||
favorite_prefix: "お気に入りの言語は "
|
||||
# favorite_postfix: "."
|
||||
# not_member_of_clans: "Not a member of any clans yet."
|
||||
|
|
|
@ -301,7 +301,7 @@ module.exports = nativeDescription: "한국어", englishDescription: "Korean", t
|
|||
infinite_loop_reset_level: "레벨 리셋"
|
||||
infinite_loop_comment_out: "내 코드를 일시적 주석처리하기"
|
||||
# tip_toggle_play: "Toggle play/paused with Ctrl+P."
|
||||
# tip_scrub_shortcut: "Ctrl+[ and Ctrl+] rewind and fast-forward."
|
||||
# tip_scrub_shortcut: "Use Ctrl+[ and Ctrl+] to rewind and fast-forward."
|
||||
tip_guide_exists: "화면 상단의 가이드를 클릭해보세요. 유용한 정보를 얻을 수 있습니다."
|
||||
tip_open_source: "코드 컴뱃은 100% 오픈 소스 기반입니다!"
|
||||
tip_beta_launch: "코드 컴뱃은 2013년 10월에 베타 서비스를 출시했습니다."
|
||||
|
|
|
@ -48,6 +48,7 @@ module.exports =
|
|||
'ja': { nativeDescription: '日本語', englishDescription: 'Japanese' }
|
||||
'nb': { nativeDescription: 'Norsk Bokmål', englishDescription: 'Norwegian (Bokmål)' }
|
||||
'nn': { nativeDescription: 'Norsk Nynorsk', englishDescription: 'Norwegian (Nynorsk)' }
|
||||
'uz': { nativeDescription: "O'zbekcha", englishDescription: 'Uzbek' }
|
||||
'pl': { nativeDescription: 'język polski', englishDescription: 'Polish' }
|
||||
'pt-PT': { nativeDescription: 'Português (Portugal)', englishDescription: 'Portuguese (Portugal)' }
|
||||
'pt-BR': { nativeDescription: 'português do Brasil', englishDescription: 'Portuguese (Brazil)' }
|
||||
|
|
|
@ -301,7 +301,7 @@ module.exports = nativeDescription: "lietuvių kalba", englishDescription: "Lith
|
|||
# infinite_loop_reset_level: "Reset Level"
|
||||
# infinite_loop_comment_out: "Comment Out My Code"
|
||||
# tip_toggle_play: "Toggle play/paused with Ctrl+P."
|
||||
# tip_scrub_shortcut: "Ctrl+[ and Ctrl+] rewind and fast-forward."
|
||||
# tip_scrub_shortcut: "Use Ctrl+[ and Ctrl+] to rewind and fast-forward."
|
||||
# tip_guide_exists: "Click the guide, inside game menu (at the top of the page), for useful info."
|
||||
# tip_open_source: "CodeCombat is 100% open source!"
|
||||
# tip_beta_launch: "CodeCombat launched its beta in October, 2013."
|
||||
|
|
|
@ -301,7 +301,7 @@ module.exports = nativeDescription: "Македонски", englishDescription:
|
|||
infinite_loop_reset_level: "Ресетирај ниво"
|
||||
infinite_loop_comment_out: "Искоментирај го мојот код"
|
||||
tip_toggle_play: "Пушти/Паузирај со Ctrl+P."
|
||||
tip_scrub_shortcut: "Ctrl+[ и Ctrl+] премотуваат назад и напред."
|
||||
tip_scrub_shortcut: "Ctrl+[ и Ctrl+] премотуваат назад и напред." # {change}
|
||||
tip_guide_exists: "Кликни на водичот, во менито (на врвот на страната), за корисни информации."
|
||||
tip_open_source: "CodeCombat е 100% open source!"
|
||||
tip_beta_launch: "CodeCombat ја пушти својата бета верзија во октомври, 2013."
|
||||
|
|
|
@ -301,7 +301,7 @@ module.exports = nativeDescription: "Bahasa Melayu", englishDescription: "Bahasa
|
|||
# infinite_loop_reset_level: "Reset Level"
|
||||
# infinite_loop_comment_out: "Comment Out My Code"
|
||||
# tip_toggle_play: "Toggle play/paused with Ctrl+P."
|
||||
# tip_scrub_shortcut: "Ctrl+[ and Ctrl+] rewind and fast-forward."
|
||||
# tip_scrub_shortcut: "Use Ctrl+[ and Ctrl+] to rewind and fast-forward."
|
||||
# tip_guide_exists: "Click the guide, inside game menu (at the top of the page), for useful info."
|
||||
# tip_open_source: "CodeCombat is 100% open source!"
|
||||
# tip_beta_launch: "CodeCombat launched its beta in October, 2013."
|
||||
|
|
|
@ -301,7 +301,7 @@ module.exports = nativeDescription: "Norsk Bokmål", englishDescription: "Norweg
|
|||
infinite_loop_reset_level: "Tilbakestill Brett"
|
||||
infinite_loop_comment_out: "Kommenter ut koden min"
|
||||
tip_toggle_play: "Ctrl+P er play/pause"
|
||||
tip_scrub_shortcut: "Ctrl+[ and Ctrl+] spoler bakover og fremover på tidslinjen."
|
||||
tip_scrub_shortcut: "Ctrl+[ and Ctrl+] spoler bakover og fremover på tidslinjen." # {change}
|
||||
tip_guide_exists: "Sjekk Guiden i spillmenyen på toppen av siden for nyttig informasjon."
|
||||
tip_open_source: "CodeCombat er 100% åpen kildekode!"
|
||||
tip_beta_launch: "CodeCombat ble lansert i betautgave i oktober 2013."
|
||||
|
|
|
@ -301,7 +301,7 @@ module.exports = nativeDescription: "Nederlands (België)", englishDescription:
|
|||
infinite_loop_reset_level: "Level resetten"
|
||||
infinite_loop_comment_out: "Mijn code weg commentariëren"
|
||||
tip_toggle_play: "Verwissel speel/pauze met Ctrl+P."
|
||||
tip_scrub_shortcut: "Ctrl+[ en Ctrl+] om terug te spoelen en vooruit te spoelen."
|
||||
tip_scrub_shortcut: "Ctrl+[ en Ctrl+] om terug te spoelen en vooruit te spoelen." # {change}
|
||||
tip_guide_exists: "Klik op de handleiding bovenaan het scherm voor nuttige informatie."
|
||||
tip_open_source: "CodeCombat is 100% open source!"
|
||||
tip_beta_launch: "CodeCombat lanceerde zijn beta versie in Oktober, 2013."
|
||||
|
|
|
@ -301,7 +301,7 @@ module.exports = nativeDescription: "Nederlands (Nederland)", englishDescription
|
|||
infinite_loop_reset_level: "Level resetten"
|
||||
infinite_loop_comment_out: "Mijn code weg commentariëren"
|
||||
tip_toggle_play: "Verwissel speel/pauze met Ctrl+P."
|
||||
tip_scrub_shortcut: "Ctrl+[ en Ctrl+] om terug te spoelen en vooruit te spoelen."
|
||||
tip_scrub_shortcut: "Ctrl+[ en Ctrl+] om terug te spoelen en vooruit te spoelen." # {change}
|
||||
tip_guide_exists: "Klik op de handleiding bovenaan het scherm voor nuttige informatie."
|
||||
tip_open_source: "CodeCombat is 100% open source!"
|
||||
tip_beta_launch: "CodeCombat lanceerde zijn beta versie in Oktober, 2013."
|
||||
|
|
|
@ -301,7 +301,7 @@ module.exports = nativeDescription: "Norsk Nynorsk", englishDescription: "Norweg
|
|||
# infinite_loop_reset_level: "Reset Level"
|
||||
# infinite_loop_comment_out: "Comment Out My Code"
|
||||
# tip_toggle_play: "Toggle play/paused with Ctrl+P."
|
||||
# tip_scrub_shortcut: "Ctrl+[ and Ctrl+] rewind and fast-forward."
|
||||
# tip_scrub_shortcut: "Use Ctrl+[ and Ctrl+] to rewind and fast-forward."
|
||||
# tip_guide_exists: "Click the guide, inside game menu (at the top of the page), for useful info."
|
||||
# tip_open_source: "CodeCombat is 100% open source!"
|
||||
# tip_beta_launch: "CodeCombat launched its beta in October, 2013."
|
||||
|
|
|
@ -301,7 +301,7 @@ module.exports = nativeDescription: "polski", englishDescription: "Polish", tran
|
|||
infinite_loop_reset_level: "Resetuj poziom"
|
||||
infinite_loop_comment_out: "Comment Out My Code"
|
||||
tip_toggle_play: "Włącz/zatrzymaj grę naciskając Ctrl+P."
|
||||
tip_scrub_shortcut: "Ctrl+[ i Ctrl+] przesuwają czas."
|
||||
tip_scrub_shortcut: "Ctrl+[ i Ctrl+] przesuwają czas." # {change}
|
||||
tip_guide_exists: "Klikając Przewodnik u góry strony uzyskasz przydatne informacje."
|
||||
tip_open_source: "CodeCombat ma w 100% otwarty kod!"
|
||||
tip_beta_launch: "CodeCombat uruchomił fazę beta w październiku 2013."
|
||||
|
|
|
@ -158,7 +158,7 @@ module.exports = nativeDescription: "Português do Brasil", englishDescription:
|
|||
unwatch: "Não Observar"
|
||||
submit_patch: "Enviar arranjo"
|
||||
submit_changes: "Enviar mudanças"
|
||||
# save_changes: "Save Changes"
|
||||
save_changes: "Salvar mudanças"
|
||||
|
||||
general:
|
||||
and: "e"
|
||||
|
@ -262,9 +262,9 @@ module.exports = nativeDescription: "Português do Brasil", englishDescription:
|
|||
victory_hour_of_code_done_yes: "Sim, eu terminei minha Hora da Programação!"
|
||||
victory_experience_gained: "XP ganho"
|
||||
victory_gems_gained: "Gems ganhas"
|
||||
# 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_new_item: "Novo item"
|
||||
victory_viking_code_school: "Pelas barbas do profeta, esse foi um nível difícil! Se você ainda não é um desenvolvedor de software, você deveria ser. Você acaba de ser priorizado para aceitação na Viking Code School, onde você pode aprender mais e se tornar um desenvolvedor web profissional em 14 semanas."
|
||||
victory_become_a_viking: "Torne-se um viking"
|
||||
guide_title: "Guia"
|
||||
tome_minion_spells: "Magias dos seus subordinados" # Only in old-style levels.
|
||||
tome_read_only_spells: "Magias não editáveis" # Only in old-style levels.
|
||||
|
@ -292,16 +292,16 @@ module.exports = nativeDescription: "Português do Brasil", englishDescription:
|
|||
time_current: "Agora:"
|
||||
time_total: "Máximo:"
|
||||
time_goto: "Ir para:"
|
||||
# non_user_code_problem_title: "Unable to Load Level"
|
||||
# infinite_loop_title: "Infinite Loop Detected"
|
||||
# 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)"
|
||||
non_user_code_problem_title: "Erro ao carregar o nível"
|
||||
infinite_loop_title: "Loop Infinito Detectado"
|
||||
infinite_loop_description: "O código inicial para construir o mundo nunca parou de rodar. Talvez seja muito lento ou tenha um loop infinito. Ou talvez tenha um bug. Você pode tentar rodar este código novamente ou resetá-lo para o estado inicial. Se isto não consertá-lo, avise-nos por favor."
|
||||
check_dev_console: "Você também pode abrir o terminal do desenvolvedor para ver o que pode estar dando errado."
|
||||
check_dev_console_link: "(instruções)"
|
||||
infinite_loop_try_again: "Tentar novamente"
|
||||
infinite_loop_reset_level: "Resetar nível"
|
||||
infinite_loop_comment_out: "Comentar Meu Código"
|
||||
tip_toggle_play: "Alterne entre rodando/pausado com Ctrl+P."
|
||||
tip_scrub_shortcut: "Ctrl+[ e Ctrl+] rebobina e avança."
|
||||
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_beta_launch: "CodeCombat lançou sua versão beta em outubro de 2013."
|
||||
|
@ -413,7 +413,7 @@ module.exports = nativeDescription: "Português do Brasil", englishDescription:
|
|||
feature4: "<strong>3500 gemas bônus</strong> todo mês!"
|
||||
feature5: "Vídeo tutorials"
|
||||
feature6: "Suporte via e-mail Premium"
|
||||
# feature7: "Private <strong>Clans</strong>"
|
||||
feature7: "<strong>Clãs</strong> Privados"
|
||||
free: "Grátis"
|
||||
month: "mês"
|
||||
subscribe_title: "Inscrever-se"
|
||||
|
@ -439,31 +439,31 @@ module.exports = nativeDescription: "Português do Brasil", englishDescription:
|
|||
# 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_blurb3: "Sem risco: 100% devolução do dinheiro garantida, basta um simples clique em desinscrever-se."
|
||||
# payment_methods: "Payment Methods"
|
||||
# payment_methods_title: "Accepted Payment Methods"
|
||||
# payment_methods_blurb1: "We currently accept credit cards and Alipay."
|
||||
# payment_methods_blurb2: "If you require an alternate form of payment, please contact"
|
||||
payment_methods: "Formas de pagamento"
|
||||
payment_methods_title: "Formas de pagamento aceitas"
|
||||
payment_methods_blurb1: "Aceitamos cartões de crédito e Alipay no momento."
|
||||
payment_methods_blurb2: "Se você precisa de outra forma de pagamento, por favor contate"
|
||||
stripe_description: "Inscrição Mensal"
|
||||
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: "Personal Subscription" # Accounts Subscription View below
|
||||
personal_sub: "Inscrição individual" # Accounts Subscription View below
|
||||
# loading_info: "Loading subscription information..."
|
||||
# managed_by: "Managed by"
|
||||
# will_be_cancelled: "Will be cancelled on"
|
||||
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."
|
||||
# group_discounts: "Group discounts"
|
||||
# group_discounts_1: "We also offer group discounts for bulk subscriptions."
|
||||
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_full: "Full price"
|
||||
group_discounts_full: "Preço normal"
|
||||
# group_discounts_2nd: "Subscriptions 2-11"
|
||||
# group_discounts_20: "20% off"
|
||||
group_discounts_20: "20% de desconto"
|
||||
# group_discounts_12th: "Subscriptions 12+"
|
||||
# group_discounts_40: "40% off"
|
||||
group_discounts_40: "20% de desconto"
|
||||
# subscribing: "Subscribing..."
|
||||
# recipient_emails_placeholder: "Enter email address to subscribe, one per line."
|
||||
# subscribe_users: "Subscribe Users"
|
||||
|
@ -592,29 +592,29 @@ module.exports = nativeDescription: "Português do Brasil", englishDescription:
|
|||
|
||||
teachers:
|
||||
title: "CodeCombat para Professores" # {change}
|
||||
# intro_1: "CodeCombat is an online game that teaches programming. Students write code in real programming languages."
|
||||
# intro_2: "No experience required!"
|
||||
# free_title: "How much does it cost?"
|
||||
# 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 Basic is FREE! There are 80+ free levels which cover every concept."
|
||||
# free_2: "A monthly subscription provides access to video tutorials and extra practice levels."
|
||||
# teacher_subs_title: "Teachers get free subscriptions!"
|
||||
# teacher_subs_1: "Please contact"
|
||||
# teacher_subs_2: "to set up a free monthly subscription."
|
||||
# sub_includes_title: "What is included in the subscription?"
|
||||
# sub_includes_1: "In addition to the 80+ basic levels, students with a monthly subscription get access to these additional features:"
|
||||
# sub_includes_2: "60+ practice levels"
|
||||
# sub_includes_3: "Video tutorials"
|
||||
# sub_includes_4: "Premium email support"
|
||||
# sub_includes_5: "7 new heroes with unique skills to master"
|
||||
# sub_includes_6: "3500 bonus gems every month"
|
||||
# sub_includes_7: "Private Clans"
|
||||
# monitor_progress_title: "How do I monitor student progress?"
|
||||
# monitor_progress_1: "Student progress can be monitored by creating a"
|
||||
# monitor_progress_2: "for your class."
|
||||
# monitor_progress_3: "To add a student, send them the invite link for your Clan, which is on the"
|
||||
# monitor_progress_4: "page."
|
||||
# monitor_progress_5: "After they join, you will see a summary of the student's progress on your Clan's page."
|
||||
intro_1: "CodeCombat é um jogo online que ensina programação. Estudantes criam código em linguagens de programação usadas na vida real."
|
||||
intro_2: "Não é necessário ter experiência!"
|
||||
free_title: "Quanto custa?"
|
||||
cost_china: "CodeCombat na China é gratuito para os primeiros cinco níveis, depois disso o valor mensal para ter acesso a mais de 140 níveis nos nossos servidores exclusivos na China é de $9.99 dólares americanos."
|
||||
free_1: "CodeCombat Basic é gratuito! Há mais de 80 níveis gratuitos que cobrem todos os conceitos."
|
||||
free_2: "Uma assinatura mensal dá acesso aos vídeos tutoriais e mais níveis para praticar."
|
||||
teacher_subs_title: "Professores recebem assinaturas gratuitas!"
|
||||
teacher_subs_1: "Por favor contate"
|
||||
teacher_subs_2: "para organizar uma assinatura mensal."
|
||||
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:"
|
||||
sub_includes_2: "Mais de 60 níveis para praticar"
|
||||
sub_includes_3: "Vídeos tutoriais"
|
||||
sub_includes_4: "Suporte premium por email"
|
||||
sub_includes_5: "7 novos heróis com habilidades únicas a serem aprendidas"
|
||||
sub_includes_6: "3500 gemas bônus todos os meses"
|
||||
sub_includes_7: "Clãs Privados"
|
||||
monitor_progress_title: "Como monitoro o progresso dos estudantes?"
|
||||
monitor_progress_1: "O progresso dos estudantes pode ser monitorado ao criar"
|
||||
monitor_progress_2: "para sua turma."
|
||||
monitor_progress_3: "Para adicionar estudantes, envie-os o link de convite para seu clã, que está na"
|
||||
monitor_progress_4: "página."
|
||||
monitor_progress_5: "Depois que eles se juntarem ao seu Clã, você verá um resumo do progresso dos estudantes na página do seu Clã."
|
||||
# private_clans_1: "Private Clans provide increased privacy and detailed progress information for each student."
|
||||
# private_clans_2: "To create a private Clan, check the 'Make clan private' checkbox when creating a"
|
||||
# private_clans_3: "."
|
||||
|
@ -748,48 +748,48 @@ module.exports = nativeDescription: "Português do Brasil", englishDescription:
|
|||
social_hipchat: "Converse conosco na sala pública do CodeCombat no HipChat"
|
||||
contribute_to_the_project: "Contribuir para o projeto"
|
||||
|
||||
# clans:
|
||||
# clan: "Clan"
|
||||
# clans: "Clans"
|
||||
# new_name: "New clan name"
|
||||
# new_description: "New clan description"
|
||||
# make_private: "Make clan private"
|
||||
# subs_only: "subscribers only"
|
||||
# create_clan: "Create New Clan"
|
||||
# public_clans: "Public Clans"
|
||||
# my_clans: "My Clans"
|
||||
# clan_name: "Clan Name"
|
||||
# name: "Name"
|
||||
# chieftain: "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"
|
||||
# progress: "Progress"
|
||||
# not_started_1: "not started"
|
||||
# started_1: "started"
|
||||
# complete_1: "complete"
|
||||
# exp_levels: "Expand levels"
|
||||
# rem_hero: "Remove Hero"
|
||||
# status: "Status"
|
||||
# complete_2: "Complete"
|
||||
# started_2: "Started"
|
||||
# not_started_2: "Not Started"
|
||||
# view_solution: "Click to view solution."
|
||||
# latest_achievement: "Latest Achievement"
|
||||
# playtime: "Playtime"
|
||||
# last_played: "Last played"
|
||||
clans:
|
||||
clan: "Clã"
|
||||
clans: "Clãs"
|
||||
new_name: "Novo nome para o clã"
|
||||
new_description: "Nova descrição para o clã"
|
||||
make_private: "Tornar o clã privado"
|
||||
subs_only: "Apenas para assinantes"
|
||||
create_clan: "Criar novo clã"
|
||||
public_clans: "Clãs Públicos"
|
||||
my_clans: "Meus Clãs"
|
||||
clan_name: "Nome do Clã"
|
||||
name: "Nome"
|
||||
chieftain: "Chefe"
|
||||
type: "Tipo"
|
||||
edit_clan_name: "Editar o nome do Clã"
|
||||
edit_clan_description: "Editar a descrição do Clã"
|
||||
edit_name: "Editar nome"
|
||||
edit_description: "Editar descrição"
|
||||
private: "(privado)"
|
||||
summary: "Resumo"
|
||||
average_level: "Média de nível"
|
||||
average_achievements: "Médias de conquistas"
|
||||
delete_clan: "Deletar Clã"
|
||||
leave_clan: "Sair do Clã"
|
||||
join_clan: "Juntar-se ao Clã"
|
||||
invite_1: "Convidar:"
|
||||
invite_2: "*Convide jogadores para este Clã enviando-os este link."
|
||||
members: "Membros"
|
||||
progress: "Progresso"
|
||||
not_started_1: "Não iniciado"
|
||||
started_1: "Iniciado"
|
||||
complete_1: "Completado"
|
||||
exp_levels: "Mostrar níveis"
|
||||
rem_hero: "Remover herói"
|
||||
status: "Estado"
|
||||
complete_2: "Completado"
|
||||
started_2: "Iniciado"
|
||||
not_started_2: "Não Iniciado"
|
||||
view_solution: "Clique para ver a solução."
|
||||
latest_achievement: "Última Conquista"
|
||||
playtime: "Tempo de Jogo"
|
||||
last_played: "Último Jogo"
|
||||
|
||||
classes:
|
||||
archmage_title: "Arquimago"
|
||||
|
@ -1039,7 +1039,7 @@ module.exports = nativeDescription: "Português do Brasil", englishDescription:
|
|||
no_achievements: "Nenhuma conquista ganha ainda."
|
||||
favorite_prefix: "Linguagem favorita é "
|
||||
favorite_postfix: "."
|
||||
# not_member_of_clans: "Not a member of any clans yet."
|
||||
not_member_of_clans: "Ainda não é membro de nenhum clã."
|
||||
|
||||
achievements:
|
||||
last_earned: "Últimos Ganhos"
|
||||
|
@ -1065,7 +1065,7 @@ module.exports = nativeDescription: "Português do Brasil", englishDescription:
|
|||
payments: "Pagamentos"
|
||||
purchased: "Comprado"
|
||||
subscription: "Assinatura"
|
||||
# invoices: "Invoices"
|
||||
invoices: "Faturas"
|
||||
service_apple: "Apple"
|
||||
service_web: "Web"
|
||||
paid_on: "Pago"
|
||||
|
@ -1082,15 +1082,15 @@ module.exports = nativeDescription: "Português do Brasil", englishDescription:
|
|||
status_unsubscribed_active: "Você não é um assinante e não será cobrado, mas sua conta ainda está ativa."
|
||||
status_unsubscribed: "Ganhe acesso a novos níveis, heróis, itens, e gemas bônus com uma assinatura CodeCombat!"
|
||||
|
||||
# account_invoices:
|
||||
# amount: "Amount in US dollars"
|
||||
# declined: "Your card was declined"
|
||||
# invalid_amount: "Please enter a US dollar amount."
|
||||
# not_logged_in: "Log in or create an account to access invoices."
|
||||
# pay: "Pay Invoice"
|
||||
# purchasing: "Purchasing..."
|
||||
# retrying: "Server error, retrying."
|
||||
# success: "Successfully paid. Thanks!"
|
||||
account_invoices:
|
||||
amount: "Valor em dólares americanos"
|
||||
declined: "Seu cartão foi recusado"
|
||||
invalid_amount: "Coloque o valor em dólares americanos."
|
||||
not_logged_in: "Entre no site com sua conta ou crie uma conta para acessar suas faturas."
|
||||
pay: "Pagar Faturas"
|
||||
purchasing: "Comprando..."
|
||||
retrying: "Erro de servidor, tentando novamente."
|
||||
success: "A transação foi completada com sucesso. Obrigado!"
|
||||
|
||||
loading_error:
|
||||
could_not_load: "Erro ao carregar do servidor"
|
||||
|
@ -1145,7 +1145,7 @@ module.exports = nativeDescription: "Português do Brasil", englishDescription:
|
|||
user_remarks: "Observações do Usuário"
|
||||
versions: "Versões"
|
||||
items: "Itens"
|
||||
# hero: "Hero"
|
||||
hero: "Herói"
|
||||
heroes: "Heróis"
|
||||
achievement: "Conquista"
|
||||
clas: "CLAs"
|
||||
|
|
|
@ -301,7 +301,7 @@ module.exports = nativeDescription: "Português (Portugal)", englishDescription:
|
|||
infinite_loop_reset_level: "Reiniciar Nível"
|
||||
infinite_loop_comment_out: "Comentar o Meu Código"
|
||||
tip_toggle_play: "Alterna entre Jogar e Pausar com Ctrl+P."
|
||||
tip_scrub_shortcut: "Ctrl+[ rebobina e Ctrl+] avança."
|
||||
tip_scrub_shortcut: "Ctrl+[ rebobina e Ctrl+] avança." # {change}
|
||||
tip_guide_exists: "Clica no guia, dentro do menu do jogo (no topo da página), para informações úteis."
|
||||
tip_open_source: "O CodeCombat é 100% open source!"
|
||||
tip_beta_launch: "O CodeCombat lançou o seu beta em outubro de 2013."
|
||||
|
|
|
@ -301,7 +301,7 @@ module.exports = nativeDescription: "limba română", englishDescription: "Roman
|
|||
# infinite_loop_reset_level: "Reset Level"
|
||||
# infinite_loop_comment_out: "Comment Out My Code"
|
||||
tip_toggle_play: "Pune sau scoate pauza cu Ctrl+P."
|
||||
tip_scrub_shortcut: "Înapoi și derulare rapidă cu Ctrl+[ and Ctrl+]."
|
||||
tip_scrub_shortcut: "Înapoi și derulare rapidă cu Ctrl+[ and Ctrl+]." # {change}
|
||||
tip_guide_exists: "Apasă pe ghidul din partea de sus a pagini pentru informații utile."
|
||||
tip_open_source: "CodeCombat este 100% open source!"
|
||||
tip_beta_launch: "CodeCombat a fost lansat beta in Octombrie 2013."
|
||||
|
|
|
@ -301,7 +301,7 @@ module.exports = nativeDescription: "русский", englishDescription: "Russi
|
|||
infinite_loop_reset_level: "Сбросить уровень"
|
||||
infinite_loop_comment_out: "Закомментировать мой код"
|
||||
tip_toggle_play: "Переключайте воспроизведение/паузу комбинацией Ctrl+P."
|
||||
tip_scrub_shortcut: "Ctrl+[ и Ctrl+] - перемотка назад и вперёд."
|
||||
tip_scrub_shortcut: "Используйте Ctrl+[ и Ctrl+] для перемотки назад и вперёд."
|
||||
tip_guide_exists: "Щёлкните руководство внутри меню (наверху страницы) для получения полезной информации."
|
||||
tip_open_source: "Исходный код CodeCombat открыт на 100%!"
|
||||
tip_beta_launch: "CodeCombat запустил бета-тестирование в октябре 2013 года."
|
||||
|
|
|
@ -301,7 +301,7 @@ module.exports = nativeDescription: "slovenčina", englishDescription: "Slovak",
|
|||
infinite_loop_reset_level: "Reštartuj level"
|
||||
infinite_loop_comment_out: "Zakomentovať môj kód"
|
||||
tip_toggle_play: "Prepnite prehrávanie/pauzu pomocou Ctrl+P."
|
||||
tip_scrub_shortcut: "Ctrl+[ a Ctrl+] pre pretočenie a rychlý presun."
|
||||
tip_scrub_shortcut: "Ctrl+[ a Ctrl+] pre pretočenie a rychlý presun." # {change}
|
||||
tip_guide_exists: "Kliknite na sprievodcu v hernom menu (hore na stránke), pre užitočné informácie."
|
||||
tip_open_source: "CodeCombat je 100% open source!"
|
||||
tip_beta_launch: "CodeCombat spustil svoju beta verziu v Októbri, 2013."
|
||||
|
|
|
@ -301,7 +301,7 @@ module.exports = nativeDescription: "slovenščina", englishDescription: "Sloven
|
|||
# infinite_loop_reset_level: "Reset Level"
|
||||
# infinite_loop_comment_out: "Comment Out My Code"
|
||||
# tip_toggle_play: "Toggle play/paused with Ctrl+P."
|
||||
# tip_scrub_shortcut: "Ctrl+[ and Ctrl+] rewind and fast-forward."
|
||||
# tip_scrub_shortcut: "Use Ctrl+[ and Ctrl+] to rewind and fast-forward."
|
||||
# tip_guide_exists: "Click the guide, inside game menu (at the top of the page), for useful info."
|
||||
# tip_open_source: "CodeCombat is 100% open source!"
|
||||
# tip_beta_launch: "CodeCombat launched its beta in October, 2013."
|
||||
|
|
|
@ -301,7 +301,7 @@ module.exports = nativeDescription: "српски", englishDescription: "Serbian
|
|||
# infinite_loop_reset_level: "Reset Level"
|
||||
# infinite_loop_comment_out: "Comment Out My Code"
|
||||
# tip_toggle_play: "Toggle play/paused with Ctrl+P."
|
||||
# tip_scrub_shortcut: "Ctrl+[ and Ctrl+] rewind and fast-forward."
|
||||
# tip_scrub_shortcut: "Use Ctrl+[ and Ctrl+] to rewind and fast-forward."
|
||||
# tip_guide_exists: "Click the guide, inside game menu (at the top of the page), for useful info."
|
||||
# tip_open_source: "CodeCombat is 100% open source!"
|
||||
# tip_beta_launch: "CodeCombat launched its beta in October, 2013."
|
||||
|
|
|
@ -55,28 +55,28 @@ module.exports = nativeDescription: "Svenska", englishDescription: "Swedish", tr
|
|||
items: "Föremål" # Tooltip on item shop button from /play
|
||||
unlock: "Lås upp" # For purchasing items and heroes
|
||||
confirm: "Bekräfta"
|
||||
# owned: "Owned" # For items you own
|
||||
owned: "Ägs av dig" # For items you own
|
||||
locked: "Låst"
|
||||
purchasable: "Till salu" # For a hero you unlocked but haven't purchased
|
||||
available: "Tillgänglig"
|
||||
# skills_granted: "Skills Granted" # Property documentation details
|
||||
available: "Tillgängligt"
|
||||
skills_granted: "Ger färdigheter" # Property documentation details
|
||||
heroes: "Hjältar" # Tooltip on hero shop button from /play
|
||||
achievements: "Prestationer" # Tooltip on achievement list button from /play
|
||||
account: "Konto" # Tooltip on account button from /play
|
||||
settings: "Inställningar" # Tooltip on settings button from /play
|
||||
# poll: "Poll" # Tooltip on poll button from /play
|
||||
poll: "Omröstning" # Tooltip on poll button from /play
|
||||
next: "Nästa" # Go from choose hero to choose inventory before playing a level
|
||||
change_hero: "Byt Hjälte" # Go back from choose inventory to choose hero
|
||||
# choose_inventory: "Equip Items"
|
||||
buy_gems: "Köp ädelstenar"
|
||||
# subscription_required: "Subscription Required"
|
||||
subscription_required: "Kräver prenumeration"
|
||||
older_campaigns: "Gamla kampanjer"
|
||||
anonymous: "Anonym Spelare"
|
||||
level_difficulty: "Svårighetsgrad: "
|
||||
campaign_beginner: "Nybörjarkampanj"
|
||||
awaiting_levels_adventurer_prefix: "Vi släpper nya nivåer varje vecka." # {change}
|
||||
awaiting_levels_adventurer: "Registrera dig som äventyrare"
|
||||
# awaiting_levels_adventurer_suffix: "to be the first to play new levels."
|
||||
awaiting_levels_adventurer_suffix: "för att vara först att spela nya nivåer."
|
||||
adjust_volume: "justera volymen"
|
||||
choose_your_level: "Välj din nivå" # The rest of this section is the old play view at /play-old and isn't very important.
|
||||
adventurer_prefix: "Du kan hoppa till vilken nivå som helst här under, eller diskutera nivåer på "
|
||||
|
@ -95,10 +95,10 @@ module.exports = nativeDescription: "Svenska", englishDescription: "Swedish", tr
|
|||
|
||||
share_progress_modal:
|
||||
# blurb: "You’re making great progress! Tell your parent how much you've learned with CodeCombat."
|
||||
email_invalid: "ogiltig e-postadress."
|
||||
form_blurb: "Ange en förälders e-postadress så visar vi dem!"
|
||||
form_label: "E-postadress"
|
||||
placeholder: "e-postadress"
|
||||
email_invalid: "ogiltig mejladress."
|
||||
form_blurb: "Ange en förälders mejladress så visar vi dem!"
|
||||
form_label: "Mejladress"
|
||||
placeholder: "mejladress"
|
||||
# title: "Excellent Work, Apprentice"
|
||||
|
||||
login:
|
||||
|
@ -106,16 +106,16 @@ module.exports = nativeDescription: "Svenska", englishDescription: "Swedish", tr
|
|||
log_in: "Logga in"
|
||||
logging_in: "Loggar In"
|
||||
log_out: "Logga ut"
|
||||
forgot_password: "Glömt ditt lössenord?"
|
||||
# authenticate_gplus: "Authenticate G+"
|
||||
# load_profile: "Load G+ Profile"
|
||||
# finishing: "Finishing"
|
||||
forgot_password: "Glömt ditt lösenord?"
|
||||
authenticate_gplus: "Autentisera G+"
|
||||
load_profile: "Ladda G+ Profil"
|
||||
finishing: "Färdigställer"
|
||||
sign_in_with_facebook: "Logga in med Facebook"
|
||||
sign_in_with_gplus: "Logga in med G+"
|
||||
signup_switch: "Vill du skapa ett konto?"
|
||||
|
||||
signup:
|
||||
email_announcements: "Mottag nyheter via e-post"
|
||||
email_announcements: "Mottag nyheter via mejl"
|
||||
creating: "Skapar konto..."
|
||||
sign_up: "Skapa konto"
|
||||
log_in: "logga in med lösenord"
|
||||
|
@ -187,7 +187,7 @@ module.exports = nativeDescription: "Svenska", englishDescription: "Swedish", tr
|
|||
description: "Beskrivning"
|
||||
or: "eller"
|
||||
subject: "Ämne"
|
||||
email: "E-post"
|
||||
email: "Mejl"
|
||||
password: "Lösenord"
|
||||
message: "Meddelande"
|
||||
code: "Kod"
|
||||
|
@ -248,10 +248,10 @@ module.exports = nativeDescription: "Svenska", englishDescription: "Swedish", tr
|
|||
reload_really: "Är du säker på att du vill ladda om nivån från början?"
|
||||
reload_confirm: "Ladda om allt"
|
||||
victory: "Seger"
|
||||
# victory_title_prefix: ""
|
||||
victory_title_prefix: ""
|
||||
victory_title_suffix: " Genomförd"
|
||||
victory_sign_up: "Registrera dig för att få uppdateringar"
|
||||
victory_sign_up_poke: "Vill du ha de senaste nyheterna via e-post? Skapa ett gratiskonto så håller vi dig informerad!"
|
||||
victory_sign_up_poke: "Vill du ha de senaste nyheterna via mejl? Skapa ett gratiskonto så håller vi dig informerad!"
|
||||
victory_rate_the_level: "Betygsätt nivån: " # Only in old-style levels.
|
||||
victory_return_to_ladder: "Gå tillbaka till stegen"
|
||||
victory_play_continue: "Fortsätt"
|
||||
|
@ -275,7 +275,7 @@ module.exports = nativeDescription: "Svenska", englishDescription: "Swedish", tr
|
|||
tome_submit_button: "Lämna in"
|
||||
tome_reload_method: "Ladda om den ursprungliga koden för den här metoden" # Title text for individual method reload button.
|
||||
tome_select_method: "Välj en metod"
|
||||
tome_see_all_methods: "Se alla metoder som du kan editera" # Title text for method list selector (shown when there are multiple programmable methods).
|
||||
tome_see_all_methods: "Se alla metoder som du kan redigera" # Title text for method list selector (shown when there are multiple programmable methods).
|
||||
tome_select_a_thang: "Välj någon för "
|
||||
tome_available_spells: "Tillgängliga förmågor"
|
||||
tome_your_skills: "Dina färdigheter"
|
||||
|
@ -292,8 +292,8 @@ module.exports = nativeDescription: "Svenska", englishDescription: "Swedish", tr
|
|||
time_current: "Nu:"
|
||||
time_total: "Max:"
|
||||
time_goto: "Gå till:"
|
||||
# non_user_code_problem_title: "Unable to Load Level"
|
||||
# infinite_loop_title: "Infinite Loop Detected"
|
||||
non_user_code_problem_title: "Kunde inte ladda nivå"
|
||||
infinite_loop_title: "Oändlig loop upptäckt"
|
||||
# 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)"
|
||||
|
@ -301,7 +301,7 @@ module.exports = nativeDescription: "Svenska", englishDescription: "Swedish", tr
|
|||
infinite_loop_reset_level: "Återställ Nivå"
|
||||
# infinite_loop_comment_out: "Comment Out My Code"
|
||||
tip_toggle_play: "Spela/pausa med Ctrl+P."
|
||||
tip_scrub_shortcut: "Ctrl+] och Ctrl+[ spolar framåt och bakåt."
|
||||
tip_scrub_shortcut: "Ctrl+] och Ctrl+[ spolar framåt och bakåt." # {change}
|
||||
# tip_guide_exists: "Click the guide, inside game menu (at the top of the page), for useful info."
|
||||
tip_open_source: "CodeCombat är 100% öppen källkod!"
|
||||
tip_beta_launch: "CodeCombat startade sin beta i oktober 2013."
|
||||
|
@ -360,8 +360,8 @@ module.exports = nativeDescription: "Svenska", englishDescription: "Swedish", tr
|
|||
inventory_caption: "Utrusta din hjälte"
|
||||
choose_hero_caption: "Välj hjälte, språk"
|
||||
save_load_caption: "... och visa historik"
|
||||
# options_caption: "Configure settings"
|
||||
# guide_caption: "Docs and tips"
|
||||
options_caption: "Konfigurera inställningar"
|
||||
guide_caption: "Dokument och tips"
|
||||
multiplayer_caption: "Spela med vänner!"
|
||||
auth_caption: "Spara dina framsteg."
|
||||
|
||||
|
@ -372,10 +372,10 @@ module.exports = nativeDescription: "Svenska", englishDescription: "Swedish", tr
|
|||
top_players: "Toppspelare efter"
|
||||
day: "Idag"
|
||||
week: "Den här veckan"
|
||||
all: "Alla"
|
||||
all: "Genom tiderna"
|
||||
time: "Tid"
|
||||
damage_taken: "Skada mottagen"
|
||||
damage_dealt: "Skada utdelad"
|
||||
damage_taken: "Mottagen skada"
|
||||
damage_dealt: "Åsamkad skada"
|
||||
difficulty: "Svårighetsgrad"
|
||||
gold_collected: "Samlat guld"
|
||||
|
||||
|
@ -390,7 +390,7 @@ module.exports = nativeDescription: "Svenska", englishDescription: "Swedish", tr
|
|||
locked: "(låst)"
|
||||
restricted: "(begränsad på den här nivån)"
|
||||
equip: "Använd"
|
||||
unequip: "Ta av"
|
||||
unequip: "Sluta använda"
|
||||
|
||||
# buy_gems:
|
||||
# few_gems: "A few gems"
|
||||
|
@ -530,9 +530,9 @@ module.exports = nativeDescription: "Svenska", englishDescription: "Swedish", tr
|
|||
returns: "Returnerar"
|
||||
granted_by: "Ges av"
|
||||
|
||||
# save_load:
|
||||
# granularity_saved_games: "Saved"
|
||||
# granularity_change_history: "History"
|
||||
save_load:
|
||||
granularity_saved_games: "Sparat"
|
||||
granularity_change_history: "Historik"
|
||||
|
||||
options:
|
||||
general_options: "Allmänna inställningar" # Check out the Options tab in the Game Menu while playing a level
|
||||
|
@ -566,103 +566,103 @@ module.exports = nativeDescription: "Svenska", englishDescription: "Swedish", tr
|
|||
why_paragraph_2_italic_caps: "NEJ MAMMA JAG MÅSTE BLI KLAR MED DEN HÄR NIVÅN"
|
||||
why_paragraph_2_suffix: "Därför är CodeCombat ett flerspelarspel, inte en spelifierad kurs. Vi slutar inte förrän du inte kan sluta - men den här gången är det en bra sak."
|
||||
why_paragraph_3: "Om du tänker bli beroende av något spel, bli beroende av det här och bli en av teknikålderns trollkarlar."
|
||||
# press_title: "Bloggers/Press"
|
||||
# press_paragraph_1_prefix: "Want to write about us? Feel free to download and use all of the resources included in our"
|
||||
# press_paragraph_1_link: "press packet"
|
||||
# press_paragraph_1_suffix: ". All logos and images may be used without contacting us directly."
|
||||
# team: "Team"
|
||||
# george_title: "Cofounder"
|
||||
# george_blurb: "Businesser"
|
||||
# scott_title: "Cofounder"
|
||||
# scott_blurb: "Reasonable One"
|
||||
# nick_title: "Cofounder"
|
||||
# nick_blurb: "Motivation Guru"
|
||||
# michael_title: "Programmer"
|
||||
# michael_blurb: "Sys Admin"
|
||||
# matt_title: "Cofounder"
|
||||
# matt_blurb: "Bicyclist"
|
||||
# cat_title: "Chief Artisan"
|
||||
# cat_blurb: "Airbender"
|
||||
# josh_title: "Game Designer"
|
||||
# josh_blurb: "Floor Is Lava"
|
||||
# jose_title: "Music"
|
||||
# jose_blurb: "Taking Off"
|
||||
# retrostyle_title: "Illustration"
|
||||
# retrostyle_blurb: "RetroStyle Games"
|
||||
press_title: "Bloggare/Press"
|
||||
press_paragraph_1_prefix: "Vill du skriva om oss? Ladda gärna ner och använd resurserna som finns i vårt"
|
||||
press_paragraph_1_link: "presspaket"
|
||||
press_paragraph_1_suffix: ". Alla loggor och bilder kan användas utan att kontakta oss direkt."
|
||||
team: "Team"
|
||||
george_title: "Medgrundare"
|
||||
george_blurb: "Businesser"
|
||||
scott_title: "Medgrundare"
|
||||
scott_blurb: "Reasonable One"
|
||||
nick_title: "Medgrundare"
|
||||
nick_blurb: "Motivation Guru"
|
||||
michael_title: "Programmerare"
|
||||
michael_blurb: "Sys Admin"
|
||||
matt_title: "Medgrundare"
|
||||
matt_blurb: "Cyklist"
|
||||
cat_title: "Chefshantverkare"
|
||||
cat_blurb: "Airbender"
|
||||
josh_title: "Speldesigner"
|
||||
josh_blurb: "Floor Is Lava"
|
||||
jose_title: "Musik"
|
||||
jose_blurb: "Taking Off"
|
||||
retrostyle_title: "Illustration"
|
||||
retrostyle_blurb: "RetroStyle Games"
|
||||
|
||||
# teachers:
|
||||
# title: "CodeCombat: Info for Teachers"
|
||||
# intro_1: "CodeCombat is an online game that teaches programming. Students write code in real programming languages."
|
||||
# intro_2: "No experience required!"
|
||||
# free_title: "How much does it cost?"
|
||||
teachers:
|
||||
title: "CodeCombat: Info till lärare"
|
||||
intro_1: "CodeCombat är ett onlinespel som lär ut programmering. Eleverna skriver kod i riktiga programspråk."
|
||||
intro_2: "Ingen erfarenhet krävs!"
|
||||
free_title: "Hur mycket kostar det?"
|
||||
# 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 Basic is FREE! There are 80+ free levels which cover every concept."
|
||||
# free_2: "A monthly subscription provides access to video tutorials and extra practice levels."
|
||||
# teacher_subs_title: "Teachers get free subscriptions!"
|
||||
# teacher_subs_1: "Please contact"
|
||||
# teacher_subs_2: "to set up a free monthly subscription."
|
||||
# sub_includes_title: "What is included in the subscription?"
|
||||
# sub_includes_1: "In addition to the 80+ basic levels, students with a monthly subscription get access to these additional features:"
|
||||
# sub_includes_2: "60+ practice levels"
|
||||
# sub_includes_3: "Video tutorials"
|
||||
# sub_includes_4: "Premium email support"
|
||||
# sub_includes_5: "7 new heroes with unique skills to master"
|
||||
# sub_includes_6: "3500 bonus gems every month"
|
||||
# sub_includes_7: "Private Clans"
|
||||
# monitor_progress_title: "How do I monitor student progress?"
|
||||
# monitor_progress_1: "Student progress can be monitored by creating a"
|
||||
# monitor_progress_2: "for your class."
|
||||
# monitor_progress_3: "To add a student, send them the invite link for your Clan, which is on the"
|
||||
# monitor_progress_4: "page."
|
||||
# monitor_progress_5: "After they join, you will see a summary of the student's progress on your Clan's page."
|
||||
# private_clans_1: "Private Clans provide increased privacy and detailed progress information for each student."
|
||||
# private_clans_2: "To create a private Clan, check the 'Make clan private' checkbox when creating a"
|
||||
# private_clans_3: "."
|
||||
# who_for_title: "Who is CodeCombat for?"
|
||||
# who_for_1: "We recommend CodeCombat for students aged 9 and up. No prior programming experience is needed."
|
||||
# who_for_2: "We've designed CodeCombat to appeal to both boys and girls."
|
||||
# material_title: "How much material is there?"
|
||||
# material_china: "Approximately 30 hours of gameplay spread over 140+ subscriber-only levels so far, with new levels every week."
|
||||
# material_1: "Approximately 10 hours of free content and an additional 20 hours of subscriber content, with new levels every week."
|
||||
# concepts_title: "What concepts are covered?"
|
||||
# how_much_title: "How much does a monthly subscription cost?"
|
||||
# how_much_1: "A"
|
||||
# how_much_2: "monthly subscription"
|
||||
# how_much_3: "costs $9.99, and can be cancelled anytime."
|
||||
# how_much_4: "Additionally, we provide discounts for larger groups:"
|
||||
# how_much_5: "We accept discounted one-time purchases and yearly subscription purchases for groups, such as a class or school. Please contact"
|
||||
# how_much_6: "for more details."
|
||||
# more_info_title: "Where can I find more information?"
|
||||
# more_info_1: "Our"
|
||||
# more_info_2: "teachers forum"
|
||||
# more_info_3: "is a good place to connect with fellow educators who are using CodeCombat."
|
||||
# sys_requirements_title: "System Requirements"
|
||||
# sys_requirements_1: "A modern web browser. Newer versions of Chrome, Firefox, or Safari. Internet Explorer 9 or later."
|
||||
# sys_requirements_2: "CodeCombat is not supported on iPad yet."
|
||||
free_1: "CodeCombat Basic är GRATIS! Det finns över 80 gratis nivåer som täcker alla koncept."
|
||||
free_2: "En månadsprenumeration ger tillgång till videogenomgångar och fler övningsnivåer."
|
||||
teacher_subs_title: "Lärare får gratis prenumerationer!"
|
||||
teacher_subs_1: "Kontakta"
|
||||
teacher_subs_2: "för att sätta upp en gratis månadsprenumeration."
|
||||
sub_includes_title: "Vad ingår i prenumerationen?"
|
||||
sub_includes_1: "Förutom de 80+ grundläggande nivåerna får elever med en månadsprenumeration tillgång till följande:"
|
||||
sub_includes_2: "60+ övningsnivåer"
|
||||
sub_includes_3: "Videogenomgångar"
|
||||
sub_includes_4: "Premium mejlsupport"
|
||||
sub_includes_5: "7 nya hjältar med unika färdigheter att bemästra"
|
||||
sub_includes_6: "3500 bonusädelstenar varje månad"
|
||||
sub_includes_7: "Privata klaner"
|
||||
monitor_progress_title: "Hur kan jag se elevernas framsteg?"
|
||||
monitor_progress_1: "Du kan skapa en"
|
||||
monitor_progress_2: "till din klass."
|
||||
monitor_progress_3: "För att lägga till en elev, skicka en inbjudan till din klan. Finns på den här sidan: "
|
||||
monitor_progress_4: ""
|
||||
monitor_progress_5: "Efter att de anslutit ser du en sammanfattning av elevens framsteg på din klans sida."
|
||||
private_clans_1: "Privata klaner ger ökad integritet och detaljerad framstegsinformation för varje elev."
|
||||
private_clans_2: "För att skapa en privat klan, använd kryssrutan 'Gör klanen privat' när du skapar en"
|
||||
private_clans_3: "."
|
||||
who_for_title: "Vem är CodeCombat för?"
|
||||
who_for_1: "Vi rekommenderar CodeCombat till elever som är minst 9 år. Inga programmeringskunskaper krävs."
|
||||
who_for_2: "Vi har skapat CodeCombat för att locka både pojkar och flickor."
|
||||
material_title: "Hur mycket material finns det?"
|
||||
material_china: "Ungefär 30 timmars speltid över 140+ prenumerantnivåer - än så länge - med nya nivåer varje vecka."
|
||||
material_1: "Ungefär 10 timmar fritt innehåll och ytterligare 20 timmar prenumerantinnehåll med nya nivåer varje vecka."
|
||||
concepts_title: "Vilka koncept täcks?"
|
||||
how_much_title: "Hur mycket kostar en månadsprenumeration?"
|
||||
how_much_1: "En"
|
||||
how_much_2: "månadsprenumeration"
|
||||
how_much_3: "kostar $9.99 och kan avbrytas när som helst."
|
||||
how_much_4: "Dessutom ger vi rabatt till större grupper:"
|
||||
how_much_5: "Vi gör engångsköp med avdrag och årliga prenumerationer för grupper, som en klass eller skola. Kontakta"
|
||||
how_much_6: "för mer information."
|
||||
more_info_title: "Var kan jag hitta mer information?"
|
||||
more_info_1: "Vårt"
|
||||
more_info_2: "lärarforum"
|
||||
more_info_3: "är ett bra ställe att skapa kontakter med andra lärare som använder CodeCombat."
|
||||
sys_requirements_title: "Systemkrav"
|
||||
sys_requirements_1: "En modern webbläsare. Nyare versioner av Chrome, Firefox, eller Safari. Internet Explorer 9 eller senare."
|
||||
sys_requirements_2: "CodeCombat stöds inte på iPad än."
|
||||
|
||||
versions:
|
||||
save_version_title: "Spara ny version"
|
||||
new_major_version: "Ny betydande version"
|
||||
# submitting_patch: "Submitting Patch..."
|
||||
cla_prefix: "För att spara ändringar måste du först godkänna vår"
|
||||
# cla_url: "CLA"
|
||||
# cla_suffix: "."
|
||||
cla_url: "CLA"
|
||||
cla_suffix: "."
|
||||
cla_agree: "JAG GODKÄNNER"
|
||||
|
||||
contact:
|
||||
contact_us: "Kontakta CodeCombat"
|
||||
welcome: "Kul att höra från dig! Använd formuläret för att skicka e-post till oss. "
|
||||
welcome: "Kul att höra från dig! Använd formuläret för att skicka mejl till oss. "
|
||||
forum_prefix: "För någonting offentligt, var vänlig testa "
|
||||
forum_page: "vårt forum"
|
||||
forum_suffix: " istället."
|
||||
faq_prefix: "Det finns också en"
|
||||
faq: "FAQ"
|
||||
# subscribe_prefix: "If you need help figuring out a level, please"
|
||||
# subscribe: "buy a CodeCombat subscription"
|
||||
# subscribe_suffix: "and we'll be happy to help you with your code."
|
||||
# subscriber_support: "Since you're a CodeCombat subscriber, your email will get our priority support."
|
||||
# screenshot_included: "Screenshot included."
|
||||
# where_reply: "Where should we reply?"
|
||||
subscribe_prefix: "Om du behöver hjälp med en nivå,"
|
||||
subscribe: "köp en CodeCombat prenumeration."
|
||||
subscribe_suffix: "Sedan hjälper vi dig gärna med din kod."
|
||||
subscriber_support: "Eftersom du är en CodeCombat-prenumerant kommer ditt mejl att bli prioriterat."
|
||||
screenshot_included: "Inkluderar skärmbild."
|
||||
where_reply: "Vart ska vi skicka svaret?"
|
||||
send: "Skicka Feedback"
|
||||
# contact_candidate: "Contact Candidate" # Deprecated
|
||||
# recruitment_reminder: "Use this form to reach out to candidates you are interested in interviewing. Remember that CodeCombat charges 15% of first-year salary. The fee is due upon hiring the employee and is refundable for 90 days if the employee does not remain employed. Part time, remote, and contract employees are free, as are interns." # Deprecated
|
||||
|
@ -674,28 +674,28 @@ module.exports = nativeDescription: "Svenska", englishDescription: "Swedish", tr
|
|||
me_tab: "Jag"
|
||||
picture_tab: "Profilbild"
|
||||
delete_account_tab: "Ta bort ditt konto"
|
||||
wrong_email: "Fel e-post"
|
||||
wrong_email: "Fel mejladress"
|
||||
upload_picture: "Ladda upp en bild"
|
||||
delete_this_account: "Ta bort det här kontot för alltid"
|
||||
# god_mode: "God Mode"
|
||||
password_tab: "Lösenord"
|
||||
emails_tab: "E-postadresser"
|
||||
emails_tab: "Mejladresser"
|
||||
admin: "Administratör"
|
||||
new_password: "Nytt lösenord"
|
||||
new_password_verify: "Verifiera"
|
||||
type_in_email: "Skriv in din e-post för att bekräfta borttagandet"
|
||||
email_subscriptions: "E-postsprenumerationer"
|
||||
# email_subscriptions_none: "No Email Subscriptions."
|
||||
type_in_email: "Skriv in din mejladress för att bekräfta borttagandet"
|
||||
email_subscriptions: "Mejlprenumerationer"
|
||||
email_subscriptions_none: "Inga mejlprenumerationer."
|
||||
email_announcements: "Meddelanden"
|
||||
email_announcements_description: "Få e-post med de senaste nyheterna och utvecklingen på CodeCombat."
|
||||
email_announcements_description: "Få mejl med de senaste nyheterna och utvecklingen på CodeCombat."
|
||||
email_notifications: "Underrättelser"
|
||||
email_notifications_summary: "Kontroller för personliga, automatiska e-postunderrättelser relaterade till din aktivitet på CodeCombat."
|
||||
email_notifications_summary: "Kontroller för personliga, automatiska mejlunderrättelser relaterade till din aktivitet på CodeCombat."
|
||||
email_any_notes: "Alla underrättelser"
|
||||
email_any_notes_description: "Stäng av för att hindra all e-post om aktiviteter."
|
||||
email_any_notes_description: "Stäng av för att hindra alla mejl om aktiviteter."
|
||||
email_news: "Nyheter"
|
||||
email_recruit_notes: "Jobbtillfällen"
|
||||
email_recruit_notes_description: "Om du spelar riktigt bra så kanske vi kontaktar dig för att erbjuda ett (bättre) jobb."
|
||||
contributor_emails: "E-post för bidragare"
|
||||
contributor_emails: "Mejl för bidragare"
|
||||
contribute_prefix: "Vi söker mer folk som vill var med och hjälpa till! Kolla in "
|
||||
contribute_page: " bidragarsidan "
|
||||
contribute_suffix: " för att få veta mer."
|
||||
|
@ -703,12 +703,12 @@ module.exports = nativeDescription: "Svenska", englishDescription: "Swedish", tr
|
|||
error_saving: "Ett fel uppstod när ändringarna skulle sparas"
|
||||
saved: "Ändringar sparade"
|
||||
password_mismatch: "De angivna lösenorden stämmer inte överens."
|
||||
password_repeat: "Var god skriv ditt lösenord en gång till."
|
||||
password_repeat: "Upprepa ditt lösenord."
|
||||
# job_profile: "Job Profile" # Rest of this section (the job profile stuff and wizard stuff) is deprecated
|
||||
# job_profile_approved: "Your job profile has been approved by CodeCombat. Employers will be able to see it until you either mark it inactive or it has not been changed for four weeks."
|
||||
# job_profile_explanation: "Hi! Fill this out, and we will get in touch about finding you a software developer job."
|
||||
# sample_profile: "See a sample profile"
|
||||
# view_profile: "View Your Profile"
|
||||
view_profile: "Visa din profil"
|
||||
|
||||
keyboard_shortcuts:
|
||||
keyboard_shortcuts: "Kortkommandon"
|
||||
|
@ -730,23 +730,23 @@ module.exports = nativeDescription: "Svenska", englishDescription: "Swedish", tr
|
|||
# beautify: "Beautify your code by standardizing its formatting."
|
||||
maximize_editor: "Maximera/minimera kodredigeraren."
|
||||
|
||||
# community:
|
||||
# main_title: "CodeCombat Community"
|
||||
# introduction: "Check out the ways you can get involved below and decide what sounds the most fun. We look forward to working with you!"
|
||||
# level_editor_prefix: "Use the CodeCombat"
|
||||
# level_editor_suffix: "to create and edit levels. Users have created levels for their classes, friends, hackathons, students, and siblings. If create a new level sounds intimidating you can start by forking one of ours!"
|
||||
# thang_editor_prefix: "We call units within the game 'thangs'. Use the"
|
||||
# thang_editor_suffix: "to modify the CodeCombat source artwork. Allow units to throw projectiles, alter the direction of an animation, change a unit's hit points, or upload your own vector sprites."
|
||||
# article_editor_prefix: "See a mistake in some of our docs? Want to make some instructions for your own creations? Check out the"
|
||||
# article_editor_suffix: "and help CodeCombat players get the most out of their playtime."
|
||||
# find_us: "Find us on these sites"
|
||||
# social_blog: "Read the CodeCombat blog on Sett"
|
||||
# social_discource: "Join the discussion on our Discourse forum"
|
||||
# social_facebook: "Like CodeCombat on Facebook"
|
||||
# social_twitter: "Follow CodeCombat on Twitter"
|
||||
# social_gplus: "Join CodeCombat on Google+"
|
||||
# social_hipchat: "Chat with us in the public CodeCombat HipChat room"
|
||||
# contribute_to_the_project: "Contribute to the project"
|
||||
community:
|
||||
main_title: "CodeCombat Community"
|
||||
introduction: "Kolla in på vilka sätt du kan vara delaktig och välj det som låter mest kul. Vi ser fram emot att jobba med dig!"
|
||||
level_editor_prefix: "Använd"
|
||||
level_editor_suffix: "till att skapa och ändra nivåer. Användare har skapat nivåer till sina klasser, vänner, hackathons, elever och syskon. Om det låter svårt att skapa en nivå så kan du använda en av våra som grund!"
|
||||
thang_editor_prefix: "Vi kallar enheter i spelet 'thangs'. Använd"
|
||||
thang_editor_suffix: "till att ändra CodeCombats grafik. Låt enheter kasta saker, ändra riktningen på animeringar, ändra en enhets livslängd eller ladda upp din egen vektorgrafik."
|
||||
article_editor_prefix: "Sett ett misstag i något av våra dokument? Vill du göra instruktioner till dina egna skapelser? Ta en titt på"
|
||||
article_editor_suffix: "och hjälp CodeCombatspelare att få så mycket ut från sin speltid som möjligt."
|
||||
find_us: "Här hittar du oss"
|
||||
social_blog: "Läs CodeCombatbloggen på Sett"
|
||||
social_discource: "Gå med i diskussionerna i vårt forum"
|
||||
social_facebook: "Gilla CodeCombat på Facebook"
|
||||
social_twitter: "Följ CodeCombat på Twitter"
|
||||
social_gplus: "Följ CodeCombat på Google+"
|
||||
social_hipchat: "Chatta med oss in det publika CodeCombat HipChatrummet"
|
||||
contribute_to_the_project: "Bidra till projektet"
|
||||
|
||||
# clans:
|
||||
# clan: "Clan"
|
||||
|
@ -794,28 +794,28 @@ module.exports = nativeDescription: "Svenska", englishDescription: "Swedish", tr
|
|||
classes:
|
||||
archmage_title: "Ärkemagiker"
|
||||
archmage_title_description: "(Kodare)"
|
||||
# archmage_summary: "If you are a developer interested in coding educational games, become an archmage to help us build CodeCombat!"
|
||||
archmage_summary: "Om du är en utvecklare som är intresserad av att koda utbildningsspel, bli då en ärkemagiker och hjälp oss bygga CodeCombat!"
|
||||
artisan_title: "Hantverkare"
|
||||
artisan_title_description: "(Nivåbyggare)"
|
||||
# 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: "Bygg och dela nivåer till dig och dina vänner. Bli en hantverkare för att lära dig konsten att lära andra att koda."
|
||||
adventurer_title: "Äventyrare"
|
||||
adventurer_title_description: "(Nivåtestare)"
|
||||
# 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: "Få nya nivåer (till och med prenumerantinnehåll) gratis en vecka innan alla andra och hjälp oss fixa buggar innan nivåerna blir publika."
|
||||
scribe_title: "Skriftlärd"
|
||||
scribe_title_description: "(Artikelredigerare)"
|
||||
# scribe_summary: "Good code needs good documentation. Write, edit, and improve the docs read by millions of players across the globe."
|
||||
scribe_summary: "Bra kod behöver bra dokumentation. Skriv, ändra och förbättra dokumenten som läses av miljoner spelare över hela världen."
|
||||
diplomat_title: "Diplomat"
|
||||
diplomat_title_description: "(Översättare)"
|
||||
# diplomat_summary: "CodeCombat is localized in 45+ languages by our Diplomats. Help us out and contribute translations."
|
||||
diplomat_summary: "CodeCombat är översätts till över 45 språk av våra diplomater. Hjälp oss genom att göra översättningar."
|
||||
ambassador_title: "Ambassadör"
|
||||
ambassador_title_description: "(Support)"
|
||||
# ambassador_summary: "Tame our forum users and provide direction for those with questions. Our ambassadors represent CodeCombat to the world."
|
||||
ambassador_summary: "Tämj forumanvändarna och hjälp dem som har frågor. Ambassadörerna representerar CodeCombat ute i världen."
|
||||
|
||||
editor:
|
||||
main_title: "CodeCombatredigerare"
|
||||
article_title: "Artikelredigerare"
|
||||
thang_title: "Enhetsredigerare"
|
||||
level_title: "Nivåredigerare"
|
||||
article_title: "Artikelredigeraren"
|
||||
thang_title: "Enhetsredigeraren"
|
||||
level_title: "Nivåredigeraren"
|
||||
# achievement_title: "Achievement Editor"
|
||||
# poll_title: "Poll Editor"
|
||||
# back: "Back"
|
||||
|
@ -902,10 +902,10 @@ module.exports = nativeDescription: "Svenska", englishDescription: "Swedish", tr
|
|||
priority: "Prioritet"
|
||||
|
||||
contribute:
|
||||
page_title: "Bidragande"
|
||||
# intro_blurb: "CodeCombat is 100% open source! Hundreds of dedicated players have helped us build the game into what it is today. Join us and write the next chapter in CodeCombat's quest to teach the world to code!"
|
||||
page_title: "Att bidra"
|
||||
intro_blurb: "CodeCombat är 100% öppen källkod! Hundratals hängivna spelare har hjälpt till att skapa det spel du ser idag. Häng med oss och skriv nästa kapitel i CodeCombats uppdrag att lära världen att koda!"
|
||||
alert_account_message_intro: "Hej där!"
|
||||
# alert_account_message: "To subscribe for class emails, you'll need to be logged in first."
|
||||
alert_account_message: "För att prenumerera på klassmejl behöver du vara inloggad först."
|
||||
archmage_introduction: "En av de bästa delarna med att bygga spel är att de syntetiserar så många olika saker. Grafik, ljud, realtidsnätverkande, socialt netvärkande och så klart många av de vanligare aspekterna av programmering, från databashantering och serveradministration på låg nivå till användargränssnitt och gränsnittsbyggande. Det finns mycket att göra, och om du är en erfaren programmerare som längtar efter att dyka ner i CodeCombats detaljer kan den här klassen vara för dig. Vi skulle älska din hjälp med att bygga det bästa programmeringsspelet någonsin."
|
||||
class_attributes: "Klassattribut"
|
||||
archmage_attribute_1_pref: "Kunskap om "
|
||||
|
@ -1192,10 +1192,10 @@ module.exports = nativeDescription: "Svenska", englishDescription: "Swedish", tr
|
|||
# privacy_description: "We will not sell any of your personal information."
|
||||
security_title: "Säkerhet"
|
||||
security_description: "Vi strävar efter att hålla din personliga information säker. Eftersom vår källkod är öppen är vår det fritt fram för vem som helst att granska och förbättra våra säkerhetssystem."
|
||||
email_title: "Email"
|
||||
email_title: "Mejl"
|
||||
email_description_prefix: "Vi kommer inte att översvämma dig med spam. Genom "
|
||||
email_settings_url: "dina email-inställningar"
|
||||
email_description_suffix: "eller genom länkar i mailen vi skickar kan du ändra dina inställningar och lätt avprenumerera när som helst."
|
||||
email_settings_url: "dina mejlinställningar"
|
||||
email_description_suffix: "eller genom länkar i mejlen vi skickar kan du ändra dina inställningar och lätt avprenumerera när som helst."
|
||||
cost_title: "Kostnad"
|
||||
cost_description: "För närvarande är CodeCombat 100 % gratis! Ett av våra främsta mål är att behålla det så, så att så många som möjligt kan spela, oavsett plats i livet. Om himlen mörknar, kanske vi behöver ta betalt för prenumerationer eller något innehåll, men helst slipper vi det. Med lite tur lyckas vi hålla liv i företag med:"
|
||||
copyrights_title: "Upphovsrätt och licenser"
|
||||
|
|
|
@ -301,7 +301,7 @@ module.exports = nativeDescription: "ไทย", englishDescription: "Thai", tra
|
|||
# infinite_loop_reset_level: "Reset Level"
|
||||
# infinite_loop_comment_out: "Comment Out My Code"
|
||||
# tip_toggle_play: "Toggle play/paused with Ctrl+P."
|
||||
# tip_scrub_shortcut: "Ctrl+[ and Ctrl+] rewind and fast-forward."
|
||||
# tip_scrub_shortcut: "Use Ctrl+[ and Ctrl+] to rewind and fast-forward."
|
||||
# tip_guide_exists: "Click the guide, inside game menu (at the top of the page), for useful info."
|
||||
# tip_open_source: "CodeCombat is 100% open source!"
|
||||
# tip_beta_launch: "CodeCombat launched its beta in October, 2013."
|
||||
|
|
|
@ -301,7 +301,7 @@ module.exports = nativeDescription: "Türkçe", englishDescription: "Turkish", t
|
|||
infinite_loop_reset_level: "Bölümü Sıfırla"
|
||||
infinite_loop_comment_out: "Kodumu Yorum Yap"
|
||||
tip_toggle_play: "Ctrl+P ile oynat/beklet."
|
||||
# tip_scrub_shortcut: "Ctrl+[ and Ctrl+] rewind and fast-forward."
|
||||
# tip_scrub_shortcut: "Use Ctrl+[ and Ctrl+] to rewind and fast-forward."
|
||||
# tip_guide_exists: "Click the guide, inside game menu (at the top of the page), for useful info."
|
||||
tip_open_source: "CodeCombat %100 açık kaynaktır!"
|
||||
tip_beta_launch: "CodeCombat ilk beta sürümünü Ekim 2013'te başlattı."
|
||||
|
|
|
@ -158,7 +158,7 @@ module.exports = nativeDescription: "Українська", englishDescription:
|
|||
unwatch: "Не стежити"
|
||||
submit_patch: "Надіслати патч"
|
||||
submit_changes: "Надіслати зміни"
|
||||
# save_changes: "Save Changes"
|
||||
save_changes: "Зберегти зміни"
|
||||
|
||||
general:
|
||||
and: "та"
|
||||
|
@ -262,9 +262,9 @@ module.exports = nativeDescription: "Українська", englishDescription:
|
|||
victory_hour_of_code_done_yes: "Так, я закінчив Годину Коду!"
|
||||
victory_experience_gained: "Отриманий досвід"
|
||||
victory_gems_gained: "Отримані самоцвіти"
|
||||
# victory_new_item: "New Item"
|
||||
victory_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_become_a_viking: "Стати вікінгом"
|
||||
guide_title: "Посібник"
|
||||
tome_minion_spells: "Заклинання Ваших міньонів" # Only in old-style levels.
|
||||
tome_read_only_spells: "Заклинання тільки для читання" # Only in old-style levels.
|
||||
|
@ -292,16 +292,16 @@ module.exports = nativeDescription: "Українська", englishDescription:
|
|||
time_current: "Зараз:"
|
||||
time_total: "Найбільше:"
|
||||
time_goto: "Перейти до:"
|
||||
# non_user_code_problem_title: "Unable to Load Level"
|
||||
# infinite_loop_title: "Infinite Loop Detected"
|
||||
non_user_code_problem_title: "Не вдається завантажити рівень"
|
||||
infinite_loop_title: "Виявлено вічний цикл"
|
||||
# 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)"
|
||||
check_dev_console: "Ви також можете відкрити консоль розробника аби перевірити що ж там твориться."
|
||||
check_dev_console_link: "(інструкції)"
|
||||
infinite_loop_try_again: "Спробувати ще раз"
|
||||
infinite_loop_reset_level: "Почати рівень спочатку"
|
||||
infinite_loop_comment_out: "Прокоментуй мій код"
|
||||
tip_toggle_play: "Перемикай між грою та паузою командою Ctrl+P."
|
||||
tip_scrub_shortcut: "Ctrl+[ і Ctrl+] для перемотування та швидкого перемотування вперед."
|
||||
tip_scrub_shortcut: "Ctrl+[ і Ctrl+] для перемотування та швидкого перемотування вперед." # {change}
|
||||
tip_guide_exists: "Натисніть на Інструкцію вгорі сторінки, аби отримати корисну інформацію."
|
||||
tip_open_source: "CodeCombat є абсолютно відкритим програмним забезпеченням!"
|
||||
tip_beta_launch: "Бета-версія CodeCombat вийшла в жовтні 2013."
|
||||
|
@ -340,13 +340,13 @@ module.exports = nativeDescription: "Українська", englishDescription:
|
|||
tip_source_code: "Я хочу змінити світ, але мені не дають первісний код."
|
||||
tip_javascript_java: "Java має таке ж відношення до JavaScript'у, як віз до візерунка. - Кріс Гейлманн"
|
||||
tip_move_forward: "Щоб ви не робили, продовжуйте рухатись вперед. - Мартін Лютер Кінг Мол."
|
||||
tip_google: "Не можеш вирішити задачу? Загугли її!"
|
||||
tip_adding_evil: "Додамо дрібку зла."
|
||||
tip_google: "Не можеш вирішити задачу? Заґуґли її!"
|
||||
tip_adding_evil: "Додамо дрібочку зла."
|
||||
tip_hate_computers: "Ось правда про людей, які вважають, що ненавидять комп'ютери. Що вони насправді ненавидять, це паршивий програмерів. - Ларрі Нівен"
|
||||
tip_open_source_contribute: "Ви можете допомогти CodeCombat покращитися!"
|
||||
tip_recurse: "Ітерація - від людини, рекурсія - від бога. - Л. Пітер Дойч"
|
||||
# tip_free_your_mind: "You have to let it all go, Neo. Fear, doubt, and disbelief. Free your mind. - Morpheus"
|
||||
# tip_strong_opponents: "Even the strongest of opponents always has a weakness. - Itachi Uchiha"
|
||||
tip_free_your_mind: "Нео, ти повинен усе подолати. Страх... сумніви і невіра. Звільни від них свій розум. - Морфіус"
|
||||
tip_strong_opponents: "Навіть наймогутніший суперник має свою слабкість. - Ітачі Учіха"
|
||||
|
||||
game_menu:
|
||||
inventory_tab: "Інвентар"
|
||||
|
@ -403,7 +403,7 @@ module.exports = nativeDescription: "Українська", englishDescription:
|
|||
prompt_body: "Хочете отримати ще?"
|
||||
prompt_button: "Увійти до крамниці"
|
||||
recovered: "Попередні покупки самоцвітів відновлені. Будь ласка, поновіть сторінку."
|
||||
# price: "x3500 / mo"
|
||||
price: "x3500 / міс"
|
||||
|
||||
subscribe:
|
||||
comparison_blurb: "Відточіть свої навички завдяки підписці на CodeCombat!"
|
||||
|
@ -413,7 +413,7 @@ module.exports = nativeDescription: "Українська", englishDescription:
|
|||
feature4: "<strong>3500 бонусних самоцвітів</strong> кожного місяця!"
|
||||
feature5: "Навчальні відеоролики"
|
||||
feature6: "Екслюзивна підтримка по електронній пошті"
|
||||
# feature7: "Private <strong>Clans</strong>"
|
||||
feature7: "Приватні <strong>клани</strong>"
|
||||
free: "Безкоштовно"
|
||||
month: "місяць"
|
||||
subscribe_title: "Взяти абонемент"
|
||||
|
@ -439,9 +439,9 @@ module.exports = nativeDescription: "Українська", englishDescription:
|
|||
# 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: "За 9.99$ на місяць, вона отримуватиме нові завдання щотижня та персональні листи підтримки від професійних програмістів." # {change}
|
||||
parents_blurb3: "Жодного ризику: 100% гарантія повернення грошей, легке скасування абонементу одним кліком."
|
||||
# payment_methods: "Payment Methods"
|
||||
payment_methods: "Платіжні методи"
|
||||
# payment_methods_title: "Accepted Payment Methods"
|
||||
# payment_methods_blurb1: "We currently accept credit cards and Alipay."
|
||||
payment_methods_blurb1: "Наразі ми приймаємо кредитні картник та Alpiay."
|
||||
# payment_methods_blurb2: "If you require an alternate form of payment, please contact"
|
||||
stripe_description: "Щомісячний абонемент"
|
||||
subscription_required_to_play: "Аби грати в цьому рівні потрібен абонемент."
|
||||
|
@ -457,7 +457,7 @@ module.exports = nativeDescription: "Українська", englishDescription:
|
|||
managed_subs_desc: "Додати абонементи для інших гравців (учнів, дітей тощо)"
|
||||
# managed_subs_desc_2: "Recipients must have a CodeCombat account associated with the email address you provide."
|
||||
group_discounts: "Групові знижки"
|
||||
# group_discounts_1: "We also offer group discounts for bulk subscriptions."
|
||||
group_discounts_1: "Ми також пропонуємо знижки для пакетних передплат."
|
||||
group_discounts_1st: "1-ий абонемент (включає Ваш)" # {change}
|
||||
group_discounts_full: "Повна ціна"
|
||||
group_discounts_2nd: "2-11 абонементи"
|
||||
|
@ -594,7 +594,7 @@ module.exports = nativeDescription: "Українська", englishDescription:
|
|||
title: "CodeCombat для вчителів" # {change}
|
||||
# intro_1: "CodeCombat is an online game that teaches programming. Students write code in real programming languages."
|
||||
# intro_2: "No experience required!"
|
||||
# free_title: "How much does it cost?"
|
||||
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 Basic is FREE! There are 80+ free levels which cover every concept."
|
||||
# free_2: "A monthly subscription provides access to video tutorials and extra practice levels."
|
||||
|
@ -617,7 +617,7 @@ module.exports = nativeDescription: "Українська", englishDescription:
|
|||
# monitor_progress_5: "After they join, you will see a summary of the student's progress on your Clan's page."
|
||||
# private_clans_1: "Private Clans provide increased privacy and detailed progress information for each student."
|
||||
# private_clans_2: "To create a private Clan, check the 'Make clan private' checkbox when creating a"
|
||||
# private_clans_3: "."
|
||||
private_clans_3: "."
|
||||
# who_for_title: "Who is CodeCombat for?"
|
||||
# who_for_1: "We recommend CodeCombat for students aged 9 and up. No prior programming experience is needed."
|
||||
# who_for_2: "We've designed CodeCombat to appeal to both boys and girls."
|
||||
|
@ -748,48 +748,48 @@ module.exports = nativeDescription: "Українська", englishDescription:
|
|||
social_hipchat: "Напишіть нам у публічній кімнаті CodeCombat HipChat"
|
||||
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"
|
||||
# public_clans: "Public Clans"
|
||||
# my_clans: "My Clans"
|
||||
# clan_name: "Clan Name"
|
||||
create_clan: "Створити новий клан"
|
||||
public_clans: "Публічні клани"
|
||||
my_clans: "Мої клани"
|
||||
clan_name: "Назва клану"
|
||||
# name: "Name"
|
||||
# chieftain: "Chieftain"
|
||||
# type: "Type"
|
||||
# edit_clan_name: "Edit Clan Name"
|
||||
# edit_clan_description: "Edit Clan Description"
|
||||
type: "Тип"
|
||||
edit_clan_name: "Змінити назву клану"
|
||||
edit_clan_description: "Змінити опис клану"
|
||||
# edit_name: "edit name"
|
||||
# edit_description: "edit description"
|
||||
# private: "(private)"
|
||||
# summary: "Summary"
|
||||
# average_level: "Average Level"
|
||||
summary: "Загалом"
|
||||
average_level: "Середній рівень"
|
||||
# average_achievements: "Average Achievements"
|
||||
# delete_clan: "Delete Clan"
|
||||
# leave_clan: "Leave Clan"
|
||||
# join_clan: "Join Clan"
|
||||
# invite_1: "Invite:"
|
||||
delete_clan: "Видалити калн"
|
||||
leave_clan: "Покинути клан"
|
||||
join_clan: "Приєднатись до клану"
|
||||
invite_1: "Запрошення:"
|
||||
# invite_2: "*Invite players to this Clan by sending them this link."
|
||||
# members: "Members"
|
||||
# progress: "Progress"
|
||||
# not_started_1: "not started"
|
||||
# started_1: "started"
|
||||
# complete_1: "complete"
|
||||
members: "Учасники"
|
||||
progress: "Поступ"
|
||||
not_started_1: "не розпочато"
|
||||
started_1: "розпочато"
|
||||
complete_1: "завершено"
|
||||
# exp_levels: "Expand levels"
|
||||
# rem_hero: "Remove Hero"
|
||||
# status: "Status"
|
||||
# complete_2: "Complete"
|
||||
# started_2: "Started"
|
||||
# not_started_2: "Not Started"
|
||||
# view_solution: "Click to view solution."
|
||||
# latest_achievement: "Latest Achievement"
|
||||
# playtime: "Playtime"
|
||||
# last_played: "Last played"
|
||||
rem_hero: "Вилучити героя"
|
||||
status: "Статус"
|
||||
complete_2: "Завершено"
|
||||
started_2: "Розпочато"
|
||||
not_started_2: "Не розпочато"
|
||||
view_solution: "Натисніть аби переглянути рішення."
|
||||
latest_achievement: "Останнє досягнення"
|
||||
playtime: "Тривалість гри"
|
||||
last_played: "Остання гра"
|
||||
|
||||
classes:
|
||||
archmage_title: "Архімаг"
|
||||
|
@ -1039,7 +1039,7 @@ module.exports = nativeDescription: "Українська", englishDescription:
|
|||
no_achievements: "Жодних досягнень ще не отримано."
|
||||
favorite_prefix: "Улюблена мова програмування "
|
||||
favorite_postfix: "."
|
||||
# not_member_of_clans: "Not a member of any clans yet."
|
||||
not_member_of_clans: "Досі не входить до жодного клану."
|
||||
|
||||
achievements:
|
||||
last_earned: "Останні отримані"
|
||||
|
@ -1065,7 +1065,7 @@ module.exports = nativeDescription: "Українська", englishDescription:
|
|||
payments: "Платежі"
|
||||
purchased: "Придбано"
|
||||
subscription: "Підписка"
|
||||
# invoices: "Invoices"
|
||||
invoices: "Рахунки"
|
||||
service_apple: "Apple"
|
||||
service_web: "Веб"
|
||||
paid_on: "Сплачено"
|
||||
|
@ -1145,7 +1145,7 @@ module.exports = nativeDescription: "Українська", englishDescription:
|
|||
user_remarks: "Ремарки користувачів"
|
||||
versions: "Версії"
|
||||
items: "Предмети"
|
||||
# hero: "Hero"
|
||||
hero: "Герой"
|
||||
heroes: "Герої"
|
||||
achievement: "Досягнення"
|
||||
clas: "CLA"
|
||||
|
@ -1334,13 +1334,13 @@ module.exports = nativeDescription: "Українська", englishDescription:
|
|||
education: "Освіта"
|
||||
# education_header: "Recount your academic ordeals"
|
||||
# education_blurb: "List your academic ordeals."
|
||||
# education_school: "School"
|
||||
education_school: "Школа"
|
||||
# education_school_help: "Name of your school."
|
||||
# education_degree: "Degree"
|
||||
education_degree: "Ступінь"
|
||||
# education_degree_help: "What was your degree and field of study?"
|
||||
# education_duration: "Dates"
|
||||
# education_duration_help: "When?"
|
||||
# education_description: "Description"
|
||||
education_duration_help: "Коли?"
|
||||
education_description: "Опис"
|
||||
# education_description_help: "Highlight anything about this educational experience. (140 chars; optional)"
|
||||
our_notes: "Наші примітки"
|
||||
remarks: "Примітки"
|
||||
|
@ -1348,14 +1348,14 @@ module.exports = nativeDescription: "Українська", englishDescription:
|
|||
# projects_header: "Add 3 projects"
|
||||
# projects_header_2: "Projects (Top 3)"
|
||||
# projects_blurb: "Highlight your projects to amaze employers."
|
||||
# project_name: "Project Name"
|
||||
project_name: "Назва проекту"
|
||||
# project_name_help: "What was the project called?"
|
||||
# project_description: "Description"
|
||||
# project_description_help: "Briefly describe the project."
|
||||
# project_picture: "Picture"
|
||||
project_description: "Опис"
|
||||
project_description_help: "Коротко опишіть проект."
|
||||
project_picture: "Зображення"
|
||||
# project_picture_help: "Upload a 230x115px or larger image showing off the project."
|
||||
# project_link: "Link"
|
||||
# project_link_help: "Link to the project."
|
||||
project_link: "Посилання"
|
||||
project_link_help: "Посилання на проект."
|
||||
# player_code: "Player Code"
|
||||
|
||||
employers:
|
||||
|
@ -1399,23 +1399,23 @@ module.exports = nativeDescription: "Українська", englishDescription:
|
|||
candidate_top_skills: "Найкращі навички"
|
||||
candidate_years_experience: "років досвіду"
|
||||
candidate_last_updated: "Останнє оновлення"
|
||||
# candidate_who: "Who"
|
||||
# featured_developers: "Featured Developers"
|
||||
# other_developers: "Other Developers"
|
||||
# inactive_developers: "Inactive Developers"
|
||||
candidate_who: "Хто"
|
||||
featured_developers: "Рекомендовані розробники"
|
||||
other_developers: "Інші розробники"
|
||||
inactive_developers: "Неактивні розробники"
|
||||
|
||||
admin:
|
||||
# av_espionage: "Espionage" # Really not important to translate /admin controls.
|
||||
# av_espionage_placeholder: "Email or username"
|
||||
# av_usersearch: "User Search"
|
||||
av_espionage_placeholder: "Користвач або email"
|
||||
av_usersearch: "Пошук користувачів"
|
||||
# av_usersearch_placeholder: "Email, username, name, whatever"
|
||||
# av_usersearch_search: "Search"
|
||||
av_usersearch_search: "Пошук"
|
||||
av_title: "Види для адміна"
|
||||
av_entities_sub_title: "Організації"
|
||||
av_entities_users_url: "Учасники"
|
||||
av_entities_active_instances_url: "Активні вимоги"
|
||||
# av_entities_employer_list_url: "Employer List"
|
||||
# av_entities_candidates_list_url: "Candidate List"
|
||||
av_entities_employer_list_url: "Список робітників"
|
||||
av_entities_candidates_list_url: "Список кандидатів"
|
||||
# av_entities_user_code_problems_list_url: "User Code Problems List"
|
||||
av_other_sub_title: "Інші"
|
||||
av_other_debug_base_url: "Основне (для налагодження base.jade)"
|
||||
|
|
|
@ -301,7 +301,7 @@ module.exports = nativeDescription: "اُردُو", englishDescription: "Urdu",
|
|||
# infinite_loop_reset_level: "Reset Level"
|
||||
# infinite_loop_comment_out: "Comment Out My Code"
|
||||
# tip_toggle_play: "Toggle play/paused with Ctrl+P."
|
||||
# tip_scrub_shortcut: "Ctrl+[ and Ctrl+] rewind and fast-forward."
|
||||
# tip_scrub_shortcut: "Use Ctrl+[ and Ctrl+] to rewind and fast-forward."
|
||||
# tip_guide_exists: "Click the guide, inside game menu (at the top of the page), for useful info."
|
||||
# tip_open_source: "CodeCombat is 100% open source!"
|
||||
# tip_beta_launch: "CodeCombat launched its beta in October, 2013."
|
||||
|
|
1425
app/locale/uz.coffee
Normal file
1425
app/locale/uz.coffee
Normal file
File diff suppressed because it is too large
Load diff
|
@ -301,7 +301,7 @@ module.exports = nativeDescription: "Tiếng Việt", englishDescription: "Vietn
|
|||
infinite_loop_reset_level: "Chơi Lại"
|
||||
# infinite_loop_comment_out: "Comment Out My Code"
|
||||
tip_toggle_play: "Bật/tắt chơi/dừng với Ctrl+P."
|
||||
tip_scrub_shortcut: "Ctrl+[ và Ctrl+] quay lại và chạy nhanh."
|
||||
tip_scrub_shortcut: "Ctrl+[ và Ctrl+] quay lại và chạy nhanh." # {change}
|
||||
tip_guide_exists: "Chọn bảng hướng dẫn, bên trong game menu (Trên cùng của trang), cho những thông tin hữu ích."
|
||||
tip_open_source: "CodeCombat là một sản phẩm mã nguồn mở 100% !"
|
||||
tip_beta_launch: "Bản thử nghiệm của CodeCombat được ra mắt vào tháng 10 năm 2013."
|
||||
|
|
|
@ -301,7 +301,7 @@ module.exports = nativeDescription: "简体中文", englishDescription: "Chinese
|
|||
infinite_loop_reset_level: "重置等级"
|
||||
infinite_loop_comment_out: "为我的代码添加注释"
|
||||
tip_toggle_play: "用 Ctrl+P 来暂停或继续"
|
||||
tip_scrub_shortcut: "用 Ctrl+[ 和 Ctrl+] 来倒退和快进。"
|
||||
tip_scrub_shortcut: "用 Ctrl+[ 和 Ctrl+] 来倒退和快进。" # {change}
|
||||
tip_guide_exists: "点击页面上方的指南, 可以获得更多有用信息。"
|
||||
tip_open_source: "「CodeCombat」是100%开源的!"
|
||||
tip_beta_launch: "CodeCombat开始于2013的10月份。"
|
||||
|
@ -436,13 +436,13 @@ module.exports = nativeDescription: "简体中文", englishDescription: "Chinese
|
|||
parents: "致家长"
|
||||
parents_title: "您的孩子将要学习编写程序。" # {change}
|
||||
parents_blurb1: "通过使用CodeCombat,您的孩子将学习编写真正的程序代码。他们将学到简单指令,进而处理更复杂的问题。"
|
||||
parents_blurb1a: "不用怀疑计算机编程能力将是你的孩子作为一个成年人的基本技能。到2020年,77%的工作将会需要编码能力,并且软件工程师将在世界各地成为高需求职业。你知道吗,计算机科学是收入最高的大学学位?"
|
||||
parents_blurb1a: "不用怀疑计算机编程能力将是您的孩子作为一个成年人的基本技能。到2020年,77%的工作将会需要编码能力,并且软件工程师将在世界各地成为高需求职业。你知道吗,计算机科学是收入最高的大学学位?"
|
||||
parents_blurb2: "每月支付9.9美元,他们每周都会有新的挑战,并且通过电子邮件获得专业程序员的指导。" # {change}
|
||||
parents_blurb3: "无风险承诺:100%退款,一键退款。"
|
||||
payment_methods: "付费方式"
|
||||
payment_methods_title: "可接受的付款方式"
|
||||
payment_methods_blurb1: "我们现有的付费方式有信用卡和支付宝"
|
||||
payment_methods_blurb2: "如果你想用其他付费方式,请联系我们"
|
||||
payment_methods_blurb2: "如果您想用其他付费方式,请联系我们"
|
||||
stripe_description: "每月订阅"
|
||||
subscription_required_to_play: "订阅后才可开始本关"
|
||||
unlock_help_videos: "订阅后才可以解锁视频教学哦!"
|
||||
|
@ -459,14 +459,14 @@ module.exports = nativeDescription: "简体中文", englishDescription: "Chinese
|
|||
# group_discounts: "Group discounts"
|
||||
# group_discounts_1: "We also offer group discounts for bulk subscriptions."
|
||||
# group_discounts_1st: "1st subscription"
|
||||
# group_discounts_full: "Full price"
|
||||
group_discounts_full: "全价"
|
||||
# group_discounts_2nd: "Subscriptions 2-11"
|
||||
# group_discounts_20: "20% off"
|
||||
group_discounts_20: "八折"
|
||||
# group_discounts_12th: "Subscriptions 12+"
|
||||
# group_discounts_40: "40% off"
|
||||
group_discounts_40: "六折"
|
||||
# subscribing: "Subscribing..."
|
||||
# recipient_emails_placeholder: "Enter email address to subscribe, one per line."
|
||||
# subscribe_users: "Subscribe Users"
|
||||
subscribe_users: "订阅用户"
|
||||
# users_subscribed: "Users subscribed:"
|
||||
# no_users_subscribed: "No users subscribed, please double check your email addresses."
|
||||
# current_recipients: "Current Recipients"
|
||||
|
@ -598,16 +598,16 @@ module.exports = nativeDescription: "简体中文", englishDescription: "Chinese
|
|||
# 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 Basic is FREE! There are 80+ free levels which cover every concept."
|
||||
# free_2: "A monthly subscription provides access to video tutorials and extra practice levels."
|
||||
# teacher_subs_title: "Teachers get free subscriptions!"
|
||||
# teacher_subs_1: "Please contact"
|
||||
teacher_subs_title: "教师可免费订阅!"
|
||||
teacher_subs_1: "请联系"
|
||||
# teacher_subs_2: "to set up a free monthly subscription."
|
||||
# sub_includes_title: "What is included in the subscription?"
|
||||
# sub_includes_1: "In addition to the 80+ basic levels, students with a monthly subscription get access to these additional features:"
|
||||
# sub_includes_2: "60+ practice levels"
|
||||
# sub_includes_3: "Video tutorials"
|
||||
sub_includes_2: "超过60个练习关卡"
|
||||
sub_includes_3: "视频教学"
|
||||
# sub_includes_4: "Premium email support"
|
||||
# sub_includes_5: "7 new heroes with unique skills to master"
|
||||
# sub_includes_6: "3500 bonus gems every month"
|
||||
sub_includes_6: "每月享有3500额外宝石"
|
||||
# sub_includes_7: "Private Clans"
|
||||
# monitor_progress_title: "How do I monitor student progress?"
|
||||
# monitor_progress_1: "Student progress can be monitored by creating a"
|
||||
|
@ -625,11 +625,11 @@ module.exports = nativeDescription: "简体中文", englishDescription: "Chinese
|
|||
# material_china: "Approximately 30 hours of gameplay spread over 140+ subscriber-only levels so far, with new levels every week."
|
||||
# material_1: "Approximately 10 hours of free content and an additional 20 hours of subscriber content, with new levels every week."
|
||||
# concepts_title: "What concepts are covered?"
|
||||
# how_much_title: "How much does a monthly subscription cost?"
|
||||
# how_much_1: "A"
|
||||
# how_much_2: "monthly subscription"
|
||||
# how_much_3: "costs $9.99, and can be cancelled anytime."
|
||||
# how_much_4: "Additionally, we provide discounts for larger groups:"
|
||||
how_much_title: "每月的订阅费用是多少?"
|
||||
how_much_1: ""
|
||||
how_much_2: "每月订阅"
|
||||
how_much_3: "每月$9.99, 并可随时要求退款."
|
||||
how_much_4: "另外,团体购买者将享受折扣优惠"
|
||||
# how_much_5: "We accept discounted one-time purchases and yearly subscription purchases for groups, such as a class or school. Please contact"
|
||||
# how_much_6: "for more details."
|
||||
# more_info_title: "Where can I find more information?"
|
||||
|
@ -970,7 +970,7 @@ module.exports = nativeDescription: "简体中文", englishDescription: "Chinese
|
|||
helpful_ambassadors: "我们亲切的使节:"
|
||||
|
||||
ladder:
|
||||
please_login: "请在对奕之前先登录。"
|
||||
please_login: "对战之前请先登录。"
|
||||
my_matches: "我的对手"
|
||||
simulate: "模拟"
|
||||
simulation_explanation: "通过模拟游戏,你可以让你的游戏更快的得到评分。"
|
||||
|
|
|
@ -301,7 +301,7 @@ module.exports = nativeDescription: "繁体中文", englishDescription: "Chinese
|
|||
infinite_loop_reset_level: "重置關卡"
|
||||
infinite_loop_comment_out: "在我的程式碼中加入注解"
|
||||
tip_toggle_play: "使用 Ctrl+P 切換 播放/暫停."
|
||||
tip_scrub_shortcut: "Ctrl+[ 快退; Ctrl+] 快進."
|
||||
tip_scrub_shortcut: "Ctrl+[ 快退; Ctrl+] 快進." # {change}
|
||||
tip_guide_exists: "點擊頁面上方的指南,可獲得更多有用的訊息."
|
||||
tip_open_source: "「CodeCombat」100% 開源!"
|
||||
tip_beta_launch: "「CodeCombat」在2013年10月進入 BETA 測試。"
|
||||
|
|
|
@ -301,7 +301,7 @@ module.exports = nativeDescription: "吴语", englishDescription: "Wuu (Simplifi
|
|||
# infinite_loop_reset_level: "Reset Level"
|
||||
# infinite_loop_comment_out: "Comment Out My Code"
|
||||
# tip_toggle_play: "Toggle play/paused with Ctrl+P."
|
||||
# tip_scrub_shortcut: "Ctrl+[ and Ctrl+] rewind and fast-forward."
|
||||
# tip_scrub_shortcut: "Use Ctrl+[ and Ctrl+] to rewind and fast-forward."
|
||||
# tip_guide_exists: "Click the guide, inside game menu (at the top of the page), for useful info."
|
||||
# tip_open_source: "CodeCombat is 100% open source!"
|
||||
# tip_beta_launch: "CodeCombat launched its beta in October, 2013."
|
||||
|
|
|
@ -301,7 +301,7 @@ module.exports = nativeDescription: "吳語", englishDescription: "Wuu (Traditio
|
|||
infinite_loop_reset_level: "轉定等級"
|
||||
infinite_loop_comment_out: "爲我個代碼加註解"
|
||||
tip_toggle_play: "用 Ctrl+P 暫停/繼續"
|
||||
tip_scrub_shortcut: "用 Ctrl+[ 搭 Ctrl+] 倒退搭快進。"
|
||||
tip_scrub_shortcut: "用 Ctrl+[ 搭 Ctrl+] 倒退搭快進。" # {change}
|
||||
tip_guide_exists: "點頁面上向個指南,望無數有用個訊息。"
|
||||
tip_open_source: "CodeCombat 是 百分百 開源個!"
|
||||
tip_beta_launch: "CodeCombat 從 2013年10月起。"
|
||||
|
|
7
app/models/TrialRequest.coffee
Normal file
7
app/models/TrialRequest.coffee
Normal file
|
@ -0,0 +1,7 @@
|
|||
CocoModel = require './CocoModel'
|
||||
schema = require 'schemas/models/trial_request.schema'
|
||||
|
||||
module.exports = class TrialRequest extends CocoModel
|
||||
@className: 'TrialRequest'
|
||||
@schema: schema
|
||||
urlRoot: '/db/trial.request'
|
18
app/schemas/models/trial_request.schema.coffee
Normal file
18
app/schemas/models/trial_request.schema.coffee
Normal file
|
@ -0,0 +1,18 @@
|
|||
c = require './../schemas'
|
||||
|
||||
TrialRequestSchema = c.object {
|
||||
title: 'Trial request',
|
||||
required: ['type']
|
||||
}
|
||||
|
||||
_.extend TrialRequestSchema.properties,
|
||||
applicant: c.objectId(links: [{rel: 'extra', href: '/db/user/{($)}'}])
|
||||
prepaidCode: c.objectId()
|
||||
reviewDate: c.date({readOnly: true})
|
||||
reviewer: c.objectId(links: [{rel: 'extra', href: '/db/user/{($)}'}])
|
||||
properties: {type: 'object', description: 'Data specific to this request.'}
|
||||
status: {type: 'string', 'enum': ['submitted', 'approved', 'denied']}
|
||||
type: {type: 'string', 'enum': ['subscription']}
|
||||
|
||||
c.extendBasicProperties TrialRequestSchema, 'TrialRequest'
|
||||
module.exports = TrialRequestSchema
|
|
@ -1,5 +1,8 @@
|
|||
#admin-analytics-subscriptions-view
|
||||
|
||||
#site-content-area
|
||||
width: 100%
|
||||
|
||||
.big-stat
|
||||
width: auto
|
||||
|
||||
|
|
16
app/styles/admin/trial-requests.sass
Normal file
16
app/styles/admin/trial-requests.sass
Normal file
|
@ -0,0 +1,16 @@
|
|||
#admin-trial-requests-view
|
||||
|
||||
#site-content-area
|
||||
width: 100%
|
||||
|
||||
.btn-deny
|
||||
float: right
|
||||
|
||||
.status-cell
|
||||
width: 120px
|
||||
|
||||
td.created
|
||||
min-width: 90px
|
||||
|
||||
td.reviewed
|
||||
min-width: 90px
|
|
@ -85,6 +85,7 @@ $heroCanvasHeight: 275px
|
|||
position: static
|
||||
width: 100%
|
||||
margin-left: 0
|
||||
white-space: nowrap
|
||||
|
||||
.hero-indicator
|
||||
width: 97px
|
||||
|
|
17
app/styles/teachers-free-trial.sass
Normal file
17
app/styles/teachers-free-trial.sass
Normal file
|
@ -0,0 +1,17 @@
|
|||
#teachers-free-trial-view
|
||||
|
||||
.input-email-address
|
||||
width: 40%
|
||||
|
||||
.input-location
|
||||
width: 40%
|
||||
|
||||
.input-heard-about
|
||||
width: 100%
|
||||
|
||||
.thanks-submit
|
||||
display: none
|
||||
|
||||
.error-message
|
||||
display: none
|
||||
color: red
|
|
@ -25,16 +25,18 @@ block content
|
|||
h4(data-i18n="admin.av_entities_sub_title") Entities
|
||||
|
||||
ul
|
||||
li
|
||||
a(href="/admin/users", data-i18n="admin.av_entities_users_url") Users
|
||||
li
|
||||
a(href="/admin/level-sessions", data-i18n="admin.av_entities_active_instances_url") Active Instances
|
||||
li
|
||||
a(href="/admin/employers", data-i18n="admin.av_entities_employer_list_url") Employer List
|
||||
li
|
||||
a(href="/admin/candidates", data-i18n="admin.av_entities_candidates_list_url") Candidate List
|
||||
li
|
||||
a(href="/admin/employers", data-i18n="admin.av_entities_employer_list_url") Employer List
|
||||
li
|
||||
a(href="/admin/trial-requests") Trial Requests
|
||||
li
|
||||
a(href="/admin/user-code-problems", data-i18n="admin.av_entities_user_code_problems_list_url") User Code Problems List
|
||||
li
|
||||
a(href="/admin/users", data-i18n="admin.av_entities_users_url") Users
|
||||
|
||||
h4(data-i18n="admin.av_other_sub_title") Other
|
||||
|
||||
|
|
52
app/templates/admin/trial-requests.jade
Normal file
52
app/templates/admin/trial-requests.jade
Normal file
|
@ -0,0 +1,52 @@
|
|||
extends /templates/base
|
||||
|
||||
block content
|
||||
|
||||
if !me.isAdmin()
|
||||
div You must be logged in as an admin to view this page.
|
||||
|
||||
else
|
||||
h2 Trial Requests
|
||||
if !trialRequests || trialRequests.length < 1
|
||||
h4 Fetching trial requests...
|
||||
else
|
||||
table.table.table-condensed
|
||||
thead
|
||||
tr
|
||||
th Created
|
||||
th Reviewed
|
||||
th Applicant
|
||||
th Location
|
||||
th Age
|
||||
th Students
|
||||
th How Found
|
||||
th Status
|
||||
tbody
|
||||
- var numReviewed = 0
|
||||
- var maxReviewedShown = 100
|
||||
each trialRequest in trialRequests
|
||||
if trialRequest.get('status') !== 'submitted'
|
||||
- numReviewed++
|
||||
if numReviewed > maxReviewedShown
|
||||
- break
|
||||
tr
|
||||
td.created= new Date(parseInt(trialRequest.get('_id').substring(0, 8), 16) * 1000).toISOString().substring(0, 10)
|
||||
td.reviewed
|
||||
if trialRequest.get('reviewDate')
|
||||
span= trialRequest.get('reviewDate').substring(0, 10)
|
||||
td
|
||||
a(href="/user/#{trialRequest.get('applicant')}")= trialRequest.get('properties').email
|
||||
td= trialRequest.get('properties').location
|
||||
td= trialRequest.get('properties').age
|
||||
td= trialRequest.get('properties').numStudents
|
||||
td= trialRequest.get('properties').heardAbout
|
||||
td.status-cell
|
||||
if trialRequest.get('status') === 'submitted'
|
||||
button.btn.btn-xs.btn-success.btn-approve(data-trial-request=trialRequest) Approve
|
||||
button.btn.btn-xs.btn-danger.btn-deny(data-trial-request=trialRequest) Deny
|
||||
else if trialRequest.get('prepaidCode')
|
||||
span= trialRequest.get('prepaidCode')
|
||||
else
|
||||
span= trialRequest.get('status')
|
||||
|
||||
div *Currently assumes all trial requests of type 'subscription'
|
71
app/templates/teachers-free-trial.jade
Normal file
71
app/templates/teachers-free-trial.jade
Normal file
|
@ -0,0 +1,71 @@
|
|||
extends /templates/base
|
||||
|
||||
block content
|
||||
|
||||
h2 Teacher Survey
|
||||
|
||||
if me.isAnonymous()
|
||||
p You must be logged in to apply. Please create an account or log in from the menu above.
|
||||
else if fetchingData
|
||||
h4 Retrieving information...
|
||||
else if existingRequests.length > 0
|
||||
if existingRequests[0].get('status') === 'submitted'
|
||||
p
|
||||
span.spr Your application for a free trial subscription is being
|
||||
strong reviewed
|
||||
else if existingRequests[0].get('status') === 'approved'
|
||||
p
|
||||
span.spr Your application for a free trial subscription was
|
||||
strong.spr approved
|
||||
span.spr . Further instructions have been sent to
|
||||
strong= existingRequests[0].get('properties').email
|
||||
else
|
||||
p
|
||||
span.spr Your application for a free trial subscription has been
|
||||
strong.spr denied
|
||||
p
|
||||
span.spr Please contact
|
||||
span.spr
|
||||
a(href='mailto:team@codecombat.com') team@codecombat.com
|
||||
span if you have further questions.
|
||||
else
|
||||
p
|
||||
span.spr We offer free subscriptions to teachers for evaluation purposes. You can find more information on our
|
||||
a.spr(href='/teachers') teachers
|
||||
span page.
|
||||
p Please fill out this quick survey and we’ll email you setup instructions.
|
||||
p.container-email-address
|
||||
label.control-label Email Address
|
||||
br
|
||||
input.control-label.input-email-address(type='text', value=email)
|
||||
p.container-location
|
||||
label.control-label Name of School, City
|
||||
br
|
||||
input.control-label.input-location(type='text')
|
||||
p.container-age
|
||||
label.control-label How old are your students?
|
||||
div
|
||||
input(type="radio", name="age", value="Under 14")
|
||||
span.spl Under 14
|
||||
div
|
||||
input(type="radio", name="age", value="14-17")
|
||||
span.spl 14-17
|
||||
div
|
||||
input(type="radio", name="age", value="18+")
|
||||
span.spl 18+
|
||||
div
|
||||
input(type="radio", name="age", value='other')
|
||||
span.spl.spr Other:
|
||||
input.spr.input-age-other(type='text')
|
||||
p.container-num-students
|
||||
label.control-label How many students do you teach?
|
||||
br
|
||||
input.control-label.input-num-students(type='text')
|
||||
p.container-heard-about
|
||||
label.control-label How did you hear about CodeCombat?
|
||||
br
|
||||
textarea.control-label.input-heard-about(rows=4)
|
||||
p.error-message Please fill out all fields.
|
||||
p
|
||||
button.btn.btn-default.submit-button Submit
|
||||
p.thanks-submit Thanks! We'll send you setup instructions shortly.
|
|
@ -19,10 +19,9 @@ block content
|
|||
|
||||
h3.teachers-title(data-i18n="teachers.teacher_subs_title")
|
||||
p
|
||||
span(data-i18n="teachers.teacher_subs_1")
|
||||
span.spr.spl
|
||||
a(href='mailto:team@codecombat.com?subject=Free%20Teacher%20Subscription') team@codecombat.com
|
||||
span.spr.spl(data-i18n="teachers.teacher_subs_2")
|
||||
span.spr(data-i18n="teachers.teacher_subs_1")
|
||||
a.spr(href='/teachers/freetrial', data-i18n="teachers.teacher_subs_2")
|
||||
span.spr(data-i18n="teachers.teacher_subs_3")
|
||||
|
||||
h3(data-i18n="teachers.sub_includes_title")
|
||||
p(data-i18n="teachers.sub_includes_1")
|
||||
|
|
85
app/views/TeachersFreeTrialView.coffee
Normal file
85
app/views/TeachersFreeTrialView.coffee
Normal file
|
@ -0,0 +1,85 @@
|
|||
RootView = require 'views/core/RootView'
|
||||
template = require 'templates/teachers-free-trial'
|
||||
CocoCollection = require 'collections/CocoCollection'
|
||||
TrialRequest = require 'models/TrialRequest'
|
||||
|
||||
# TODO: distinguish between this type of existing trial requests and others
|
||||
|
||||
module.exports = class TeachersFreeTrialView extends RootView
|
||||
id: 'teachers-free-trial-view'
|
||||
template: template
|
||||
|
||||
events:
|
||||
'click .submit-button': 'onClickSubmit'
|
||||
|
||||
constructor: (options) ->
|
||||
super options
|
||||
@email = me.get('email')
|
||||
@refreshData()
|
||||
|
||||
getRenderData: ->
|
||||
context = super()
|
||||
context.email = @email
|
||||
context.existingRequests = @existingRequests.models
|
||||
context.fetchingData = @fetchingData
|
||||
context
|
||||
|
||||
refreshData: ->
|
||||
@fetchingData = true
|
||||
@existingRequests = new CocoCollection([], { url: '/db/trial.request/-/own', model: TrialRequest, comparator: '_id' })
|
||||
@listenToOnce @existingRequests, 'sync', =>
|
||||
@fetchingData = false
|
||||
@render?()
|
||||
@supermodel.loadCollection(@existingRequests, 'own_trial_requests', {cache: false})
|
||||
|
||||
onClickSubmit: (e) ->
|
||||
email = $('.input-email-address').val()
|
||||
location = $('.input-location').val()
|
||||
age = $('input[name=age]:checked').val()
|
||||
age = $('.input-age-other').val() if age is 'other'
|
||||
numStudents = $('.input-num-students').val()
|
||||
heardAbout = $('.input-heard-about').val()
|
||||
|
||||
# Validate input
|
||||
$('.container-email-address').removeClass('has-error')
|
||||
$('.container-location').removeClass('has-error')
|
||||
$('.container-age').removeClass('has-error')
|
||||
$('.container-num-students').removeClass('has-error')
|
||||
$('.container-heard-about').removeClass('has-error')
|
||||
$('.error-message').hide()
|
||||
emailPattern = /^([\w.-]+)@([\w.-]+)\.([a-zA-Z.]{2,6})$/i
|
||||
unless email?.match(emailPattern)
|
||||
$('.container-email-address').addClass('has-error')
|
||||
$('.error-message').show()
|
||||
return
|
||||
unless location
|
||||
$('.container-location').addClass('has-error')
|
||||
$('.error-message').show()
|
||||
return
|
||||
unless age
|
||||
$('.container-age').addClass('has-error')
|
||||
$('.error-message').show()
|
||||
return
|
||||
unless numStudents
|
||||
$('.container-num-students').addClass('has-error')
|
||||
$('.error-message').show()
|
||||
return
|
||||
unless heardAbout
|
||||
$('.container-heard-about').addClass('has-error')
|
||||
$('.error-message').show()
|
||||
return
|
||||
|
||||
# Save trial request
|
||||
trialRequest = new TrialRequest
|
||||
type: 'subscription'
|
||||
properties:
|
||||
email: email
|
||||
location: location
|
||||
age: age
|
||||
numStudents: numStudents
|
||||
heardAbout: heardAbout
|
||||
trialRequest.save {},
|
||||
error: (model, response, options) =>
|
||||
console.error 'Error saving trial request', response
|
||||
success: (model, response, options) =>
|
||||
@refreshData()
|
|
@ -295,7 +295,7 @@ module.exports = class AnalyticsSubscriptionsView extends RootView
|
|||
lineColor: lineMetadata[targetSubsID].color
|
||||
strokeWidth: lineMetadata[targetSubsID].strokeWidth
|
||||
min: 0
|
||||
max: @targetSubCount
|
||||
max: Math.max(@targetSubCount, d3.max(@subs, (d) -> d.total))
|
||||
|
||||
## Cancelled
|
||||
|
||||
|
|
66
app/views/admin/TrialRequestsView.coffee
Normal file
66
app/views/admin/TrialRequestsView.coffee
Normal file
|
@ -0,0 +1,66 @@
|
|||
RootView = require 'views/core/RootView'
|
||||
template = require 'templates/admin/trial-requests'
|
||||
CocoCollection = require 'collections/CocoCollection'
|
||||
TrialRequest = require 'models/TrialRequest'
|
||||
|
||||
module.exports = class TrialRequestsView extends RootView
|
||||
id: 'admin-trial-requests-view'
|
||||
template: template
|
||||
|
||||
events:
|
||||
'click .btn-approve': 'onClickApprove'
|
||||
'click .btn-deny': 'onClickDeny'
|
||||
|
||||
constructor: (options) ->
|
||||
super options
|
||||
if me.isAdmin()
|
||||
sortRequests = (a, b) ->
|
||||
statusA = a.get('status')
|
||||
statusB = b.get('status')
|
||||
if statusA is 'submitted' and statusB is 'submitted'
|
||||
if a.get('_id') < b.get('_id')
|
||||
-1
|
||||
else
|
||||
1
|
||||
else if statusA is 'submitted'
|
||||
-1
|
||||
else if statusB is 'submitted'
|
||||
1
|
||||
else if not b.get('reviewDate') or a.get('reviewDate') > b.get('reviewDate')
|
||||
-1
|
||||
else
|
||||
1
|
||||
@trialRequests = new CocoCollection([], { url: '/db/trial.request', model: TrialRequest, comparator: sortRequests })
|
||||
@supermodel.loadCollection(@trialRequests, 'trial-requests', {cache: false})
|
||||
|
||||
getRenderData: ->
|
||||
context = super()
|
||||
context.trialRequests = @trialRequests?.models ? []
|
||||
context
|
||||
|
||||
onClickApprove: (e) ->
|
||||
trialRequestData = $(e.target).data('trial-request')
|
||||
trialRequest = _.find @trialRequests.models, (a) -> a.get('_id') is trialRequestData._id
|
||||
unless trialRequest
|
||||
console.error 'Could not find trial request model for', trialRequestData
|
||||
return
|
||||
trialRequest.set('status', 'approved')
|
||||
trialRequest.patch
|
||||
error: (model, response, options) =>
|
||||
console.error 'Error patching trial request', response
|
||||
success: (model, response, options) =>
|
||||
@render?()
|
||||
|
||||
onClickDeny: (e) ->
|
||||
trialRequestData = $(e.target).data('trial-request')
|
||||
trialRequest = _.find @trialRequests.models, (a) -> a.get('_id') is trialRequestData._id
|
||||
unless trialRequest
|
||||
console.error 'Could not find trial request model for', trialRequestData
|
||||
return
|
||||
return unless window.confirm("Deny #{trialRequest.get('properties').email}?")
|
||||
trialRequest.set('status', 'denied')
|
||||
trialRequest.patch
|
||||
error: (model, response, options) =>
|
||||
console.error 'Error patching trial request', response
|
||||
success: (model, response, options) =>
|
||||
@render?()
|
|
@ -53,6 +53,7 @@ require("locale/ca")
|
|||
require("locale/gl")
|
||||
require("locale/mk-MK")
|
||||
require("locale/eo")
|
||||
require("locale/uz")
|
||||
|
||||
module.exports = class DiplomatView extends ContributeClassView
|
||||
id: 'diplomat-view'
|
||||
|
@ -139,3 +140,4 @@ module.exports = class DiplomatView extends ContributeClassView
|
|||
gl: ['mcaeiror'] # Galego, Galician
|
||||
'mk-MK': ['SuperPranx'] # Македонски, Macedonian
|
||||
eo: [] # Esperanto, Esperanto
|
||||
uz: [] # O'zbekcha, Uzbek
|
||||
|
|
|
@ -303,7 +303,7 @@ module.exports = class CampaignView extends RootView
|
|||
for nextLevelOriginal in level.nextLevels
|
||||
nextLevel = _.find levels, original: nextLevelOriginal
|
||||
dontPointTo = ['lost-viking','kithgard-mastery']
|
||||
if nextLevel and not nextLevel.locked and @levelStatusMap[nextLevel.slug] isnt 'complete' and nextLevel.slug not in dontPointTo and not nextLevel.replayable and (
|
||||
if nextLevel and not nextLevel.locked and not nextLevel.disabled and @levelStatusMap[nextLevel.slug] isnt 'complete' and nextLevel.slug not in dontPointTo and not nextLevel.replayable and (
|
||||
me.isPremium() or
|
||||
not nextLevel.requiresSubscription or
|
||||
nextLevel.slug is 'apocalypse' or
|
||||
|
|
|
@ -28,7 +28,6 @@ ClanHandler = class ClanHandler extends Handler
|
|||
false
|
||||
|
||||
makeNewInstance: (req) ->
|
||||
userName = req.user.get('name') ? 'Anoner'
|
||||
instance = super(req)
|
||||
instance.set 'ownerID', req.user._id
|
||||
instance.set 'members', [req.user._id]
|
||||
|
|
|
@ -25,6 +25,7 @@ module.exports.handlers =
|
|||
'poll': 'polls/poll_handler'
|
||||
'prepaid': 'prepaids/prepaid_handler'
|
||||
'subscription': 'payments/subscription_handler'
|
||||
'trial_request': 'trial_requests/trial_request_handler'
|
||||
'user_polls_record': 'polls/user_polls_record_handler'
|
||||
|
||||
module.exports.routes =
|
||||
|
|
|
@ -592,7 +592,7 @@ class SubscriptionHandler extends Handler
|
|||
|
||||
# Check recipient is currently sponsored
|
||||
stripeRecipient = recipient.get 'stripe' ? {}
|
||||
if stripeRecipient.sponsorID isnt user.id
|
||||
if stripeRecipient?.sponsorID isnt user.id
|
||||
@logSubscriptionError(user, "Recipient #{req.body.stripe.recipient} not found. " + err)
|
||||
return done({res: 'Can only unsubscribe sponsored subscriptions.', code: 403})
|
||||
|
||||
|
|
|
@ -2,4 +2,13 @@ mongoose = require 'mongoose'
|
|||
config = require '../../server_config'
|
||||
PrepaidSchema = new mongoose.Schema {}, {strict: false, minimize: false,read:config.mongo.readpref}
|
||||
|
||||
PrepaidSchema.statics.generateNewCode = (done) ->
|
||||
tryCode = ->
|
||||
code = _.sample("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789", 8).join('')
|
||||
Prepaid.findOne code: code, (err, prepaid) ->
|
||||
return done() if err
|
||||
return done(code) unless prepaid
|
||||
tryCode()
|
||||
tryCode()
|
||||
|
||||
module.exports = Prepaid = mongoose.model('prepaid', PrepaidSchema)
|
||||
|
|
|
@ -20,7 +20,7 @@ PrepaidHandler = class PrepaidHandler extends Handler
|
|||
createPrepaid: (req, res) ->
|
||||
return @sendForbiddenError(res) unless @hasAccess(req)
|
||||
return @sendForbiddenError(res) unless req.body.type is 'subscription'
|
||||
@generateNewCode (code) =>
|
||||
Prepaid.generateNewCode (code) =>
|
||||
return @sendDatabaseError(res, 'Database error.') unless code
|
||||
prepaid = new Prepaid
|
||||
creator: req.user.id
|
||||
|
@ -33,13 +33,4 @@ PrepaidHandler = class PrepaidHandler extends Handler
|
|||
return @sendDatabaseError(res, err) if err
|
||||
@sendSuccess(res, prepaid.toObject())
|
||||
|
||||
generateNewCode: (done) ->
|
||||
tryCode = ->
|
||||
code = _.sample("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789", 8).join('')
|
||||
Prepaid.findOne code: code, (err, prepaid) ->
|
||||
return if err
|
||||
return done(code) unless prepaid
|
||||
tryCode()
|
||||
tryCode()
|
||||
|
||||
module.exports = new PrepaidHandler()
|
||||
|
|
|
@ -98,7 +98,7 @@ module.exports.setup = (app) ->
|
|||
|
||||
User.findOne({emailLower: req.body.email.toLowerCase()}).exec((err, user) ->
|
||||
if not user
|
||||
return errors.notFound(res, [{message: 'not found.', property: 'email'}])
|
||||
return errors.notFound(res, [{message: 'not found', property: 'email'}])
|
||||
|
||||
user.set('passwordReset', Math.random().toString(36).slice(2, 7).toUpperCase())
|
||||
user.save (err) =>
|
||||
|
|
|
@ -141,6 +141,15 @@ module.exports.setup = (app) ->
|
|||
checkRecipientSubscription = (done) ->
|
||||
return done() unless subscription.plan.id is 'basic'
|
||||
return done() unless subscription.metadata?.id # Shouldn't be possible
|
||||
|
||||
deleteUserStripeProp = (user, propName) ->
|
||||
stripeInfo = _.cloneDeep(user.get('stripe') ? {})
|
||||
delete stripeInfo[propName]
|
||||
if _.isEmpty stripeInfo
|
||||
user.set 'stripe', undefined
|
||||
else
|
||||
user.set 'stripe', stripeInfo
|
||||
|
||||
User.findById subscription.metadata.id, (err, recipient) =>
|
||||
if err
|
||||
logStripeWebhookError(err)
|
||||
|
@ -158,33 +167,55 @@ module.exports.setup = (app) ->
|
|||
|
||||
# Update sponsor subscription
|
||||
stripeInfo = _.cloneDeep(sponsor.get('stripe') ? {})
|
||||
_.remove(stripeInfo.recipients, (s) -> s.userID is recipient.id)
|
||||
options =
|
||||
quantity: utils.getSponsoredSubsAmount(subscription.plan.amount, stripeInfo.recipients.length, stripeInfo.subscriptionID?)
|
||||
unless stripeInfo.sponsorSubscriptionID
|
||||
# TODO: fix #2786 error for a particular customer which doesn't have this
|
||||
console.error "Couldn't find sponsorSubscriptionID from stripeInfo", stripeInfo, 'for customer', stripeInfo.customerID, 'with options', options, 'and subscription', subscription, 'for user', recipient.id, 'with sponsor', sponsor.id
|
||||
return res.send(500, '')
|
||||
stripe.customers.updateSubscription stripeInfo.customerID, stripeInfo.sponsorSubscriptionID, options, (err, subscription) =>
|
||||
if err
|
||||
logStripeWebhookError(err)
|
||||
return res.send(500, '')
|
||||
stripeInfo.recipients ?= []
|
||||
|
||||
# Update sponsor user
|
||||
sponsor.set 'stripe', stripeInfo
|
||||
sponsor.save (err) =>
|
||||
if stripeInfo.sponsorSubscriptionID
|
||||
_.remove(stripeInfo.recipients, (s) -> s.userID is recipient.id)
|
||||
options =
|
||||
quantity: utils.getSponsoredSubsAmount(subscription.plan.amount, stripeInfo.recipients.length, stripeInfo.subscriptionID?)
|
||||
stripe.customers.updateSubscription stripeInfo.customerID, stripeInfo.sponsorSubscriptionID, options, (err, subscription) =>
|
||||
if err
|
||||
logStripeWebhookError(err)
|
||||
return res.send(500, '')
|
||||
|
||||
# Update recipient user
|
||||
stripeInfo = recipient.get('stripe')
|
||||
delete stripeInfo.sponsorID
|
||||
if _.isEmpty stripeInfo
|
||||
recipient.set 'stripe', undefined
|
||||
else
|
||||
recipient.set 'stripe', stripeInfo
|
||||
recipient.save (err) =>
|
||||
# Update sponsor user
|
||||
sponsor.set 'stripe', stripeInfo
|
||||
sponsor.save (err) =>
|
||||
if err
|
||||
logStripeWebhookError(err)
|
||||
return res.send(500, '')
|
||||
|
||||
# Update recipient user
|
||||
deleteUserStripeProp recipient, 'sponsorID'
|
||||
recipient.save (err) =>
|
||||
if err
|
||||
logStripeWebhookError(err)
|
||||
return res.send(500, '')
|
||||
return res.send(200, '')
|
||||
else
|
||||
# Remove sponsorships from sponsor and recipients
|
||||
console.error "Couldn't find sponsorSubscriptionID from stripeInfo", stripeInfo, 'for customer', stripeInfo.customerID, 'with options', options, 'and subscription', subscription, 'for user', recipient.id, 'with sponsor', sponsor.id
|
||||
|
||||
# Update recipients
|
||||
createUpdateFn = (recipientID) ->
|
||||
(callback) ->
|
||||
User.findById recipientID, (err, recipient) =>
|
||||
if err
|
||||
logStripeWebhookError(err)
|
||||
return callback(err)
|
||||
|
||||
deleteUserStripeProp recipient, 'sponsorID'
|
||||
recipient.save (err) =>
|
||||
logStripeWebhookError(err) if err
|
||||
callback(err)
|
||||
async.parallel (createUpdateFn(recipient.userID) for recipient in stripeInfo.recipients), (err, results) =>
|
||||
if err
|
||||
logStripeWebhookError(err)
|
||||
return res.send(500, '')
|
||||
|
||||
# Update sponsor
|
||||
deleteUserStripeProp sponsor, 'recipients'
|
||||
sponsor.save (err) =>
|
||||
if err
|
||||
logStripeWebhookError(err)
|
||||
return res.send(500, '')
|
||||
|
|
|
@ -11,6 +11,7 @@ if config.unittest
|
|||
module.exports.api.send = ->
|
||||
module.exports.templates =
|
||||
parent_subscribe_email: 'tem_2APERafogvwKhmcnouigud'
|
||||
setup_free_sub_email: 'tem_sqdvLCZRwoDQc6jAf5RrQE'
|
||||
share_progress_email: 'tem_VHE3ihhGmVa3727qds9zY8'
|
||||
welcome_email: 'utnGaBHuSU4Hmsi7qrAypU'
|
||||
ladder_update_email: 'JzaZxf39A4cKMxpPZUfWy4'
|
||||
|
|
59
server/trial_requests/TrialRequest.coffee
Normal file
59
server/trial_requests/TrialRequest.coffee
Normal file
|
@ -0,0 +1,59 @@
|
|||
log = require 'winston'
|
||||
mongoose = require 'mongoose'
|
||||
config = require '../../server_config'
|
||||
hipchat = require '../hipchat'
|
||||
sendwithus = require '../sendwithus'
|
||||
Prepaid = require '../prepaids/Prepaid'
|
||||
jsonSchema = require '../../app/schemas/models/trial_request.schema'
|
||||
|
||||
TrialRequestSchema = new mongoose.Schema {}, {strict: false, minimize: false, read:config.mongo.readpref}
|
||||
|
||||
TrialRequestSchema.pre 'save', (next) ->
|
||||
return next() unless @get('status') is 'approved'
|
||||
Prepaid.generateNewCode (code) =>
|
||||
unless code
|
||||
log.error "Trial request pre save prepaid gen new code failure"
|
||||
return next()
|
||||
prepaid = new Prepaid
|
||||
creator: @get('reviewer')
|
||||
type: 'subscription'
|
||||
status: 'active'
|
||||
code: code
|
||||
properties:
|
||||
couponID: 'free'
|
||||
prepaid.save (err) =>
|
||||
if err
|
||||
log.error "Trial request prepaid creation error: #{err}"
|
||||
@set('prepaidCode', code)
|
||||
next()
|
||||
|
||||
TrialRequestSchema.post 'save', (doc) ->
|
||||
if doc.get('status') is 'submitted'
|
||||
msg = "http://codecombat.com/admin/trial-requests #{doc.get('type')} request submitted by #{doc.get('properties').email}"
|
||||
hipchat.sendHipChatMessage msg, ['tower']
|
||||
else if doc.get('status') is 'approved'
|
||||
ppc = doc.get('prepaidCode')
|
||||
unless ppc
|
||||
log.error 'Trial request post save no ppc'
|
||||
return
|
||||
emailParams =
|
||||
recipient:
|
||||
address: doc.get('properties')?.email
|
||||
email_id: sendwithus.templates.setup_free_sub_email
|
||||
email_data:
|
||||
url: "https://codecombat.com/account/subscription?_ppc=#{ppc}";
|
||||
sendwithus.api.send emailParams, (err, result) =>
|
||||
log.error "sendwithus trial request approved error: #{err}, result: #{result}" if err
|
||||
|
||||
TrialRequestSchema.statics.privateProperties = []
|
||||
TrialRequestSchema.statics.editableProperties = [
|
||||
'prepaidCode'
|
||||
'properties'
|
||||
'reviewDate'
|
||||
'reviewer'
|
||||
'status'
|
||||
'type'
|
||||
]
|
||||
|
||||
TrialRequestSchema.statics.jsonSchema = jsonSchema
|
||||
module.exports = TrialRequest = mongoose.model 'trial.request', TrialRequestSchema, 'trial.requests'
|
40
server/trial_requests/trial_request_handler.coffee
Normal file
40
server/trial_requests/trial_request_handler.coffee
Normal file
|
@ -0,0 +1,40 @@
|
|||
async = require 'async'
|
||||
log = require 'winston'
|
||||
mongoose = require 'mongoose'
|
||||
Handler = require '../commons/Handler'
|
||||
TrialRequest = require './TrialRequest'
|
||||
|
||||
TrialRequestHandler = class TrialRequestHandler extends Handler
|
||||
modelClass: TrialRequest
|
||||
jsonSchema: require '../../app/schemas/models/trial_request.schema'
|
||||
|
||||
hasAccess: (req) ->
|
||||
req.method in ['POST'] or req.user?.isAdmin()
|
||||
|
||||
hasAccessToDocument: (req, document, method=null) ->
|
||||
return false unless document?
|
||||
return true if req.user?.isAdmin()
|
||||
false
|
||||
|
||||
makeNewInstance: (req) ->
|
||||
instance = super(req)
|
||||
instance.set 'applicant', req.user._id
|
||||
instance.set 'status', 'submitted'
|
||||
instance
|
||||
|
||||
put: (req, res, id) ->
|
||||
req.body.reviewDate = new Date()
|
||||
req.body.reviewer = req.user.get('_id')
|
||||
super(req, res, id)
|
||||
|
||||
getByRelationship: (req, res, args...) ->
|
||||
return @getOwn(req, res) if args[1] is 'own'
|
||||
super(arguments...)
|
||||
|
||||
getOwn: (req, res) ->
|
||||
return @sendForbiddenError(res) unless req.user?
|
||||
TrialRequest.find {applicant: req.user.get('_id')}, (err, documents) =>
|
||||
return @sendDatabaseError(res, err) if err
|
||||
@sendSuccess(res, documents)
|
||||
|
||||
module.exports = new TrialRequestHandler()
|
|
@ -41,6 +41,7 @@ models_path = [
|
|||
'../../server/achievements/EarnedAchievement'
|
||||
'../../server/payments/Payment'
|
||||
'../../server/prepaids/Prepaid'
|
||||
'../../server/trial_requests/TrialRequest'
|
||||
]
|
||||
|
||||
for m in models_path
|
||||
|
|
|
@ -4,7 +4,6 @@ utils = require '../../../app/core/utils' # Must come after require /common
|
|||
mongoose = require 'mongoose'
|
||||
|
||||
describe 'Clans', ->
|
||||
stripe = require('stripe')(config.stripe.secretKey)
|
||||
clanURL = getURL('/db/clan')
|
||||
userURL = getURL('/db/user')
|
||||
|
||||
|
|
File diff suppressed because it is too large
Load diff
162
test/server/functional/trial_request.spec.coffee
Normal file
162
test/server/functional/trial_request.spec.coffee
Normal file
|
@ -0,0 +1,162 @@
|
|||
require '../common'
|
||||
|
||||
describe 'Trial Requests', ->
|
||||
URL = getURL('/db/trial.request')
|
||||
ownURL = getURL('/db/trial.request/-/own')
|
||||
|
||||
createTrialRequest = (user, type, properties, done) ->
|
||||
requestBody =
|
||||
type: type
|
||||
properties: properties
|
||||
request.post {uri: URL, json: requestBody }, (err, res, body) ->
|
||||
expect(err).toBeNull()
|
||||
expect(res.statusCode).toBe(200)
|
||||
expect(body.type).toEqual(type)
|
||||
expect(body.properties).toEqual(properties)
|
||||
expect(body.applicant).toEqual(user.id)
|
||||
expect(body.status).toEqual('submitted')
|
||||
TrialRequest.findById body._id, (err, doc) ->
|
||||
expect(err).toBeNull()
|
||||
expect(doc.get('type')).toEqual(type)
|
||||
expect(doc.get('properties')).toEqual(properties)
|
||||
expect(doc.get('applicant')).toEqual(user._id)
|
||||
expect(doc.get('status')).toEqual('submitted')
|
||||
done(doc)
|
||||
|
||||
it 'Clear database', (done) ->
|
||||
clearModels [User, TrialRequest], (err) ->
|
||||
throw err if err
|
||||
done()
|
||||
|
||||
it 'Create trial request', (done) ->
|
||||
loginNewUser (user) ->
|
||||
properties =
|
||||
email: user.get('email')
|
||||
location: 'SF, CA'
|
||||
age: '14-17'
|
||||
numStudents: 14
|
||||
heardAbout: 'magical interwebs'
|
||||
createTrialRequest user, 'subscription', properties, (trialRequest) ->
|
||||
done()
|
||||
|
||||
it 'Get trial requests, non-admin', (done) ->
|
||||
loginNewUser (user) ->
|
||||
properties =
|
||||
email: user.get('email')
|
||||
location: 'SF, CA'
|
||||
age: '14-17'
|
||||
numStudents: 14
|
||||
heardAbout: 'magical interwebs'
|
||||
createTrialRequest user, 'subscription', properties, (trialRequest) ->
|
||||
request.get URL, (err, res, body) ->
|
||||
expect(res.statusCode).toEqual(403)
|
||||
done()
|
||||
|
||||
it 'Get trial requests, admin', (done) ->
|
||||
loginNewUser (user) ->
|
||||
properties =
|
||||
email: user.get('email')
|
||||
location: 'SF, CA'
|
||||
age: '14-17'
|
||||
numStudents: 14
|
||||
heardAbout: 'magical interwebs'
|
||||
createTrialRequest user, 'subscription', properties, (trialRequest) ->
|
||||
loginNewUser (admin) ->
|
||||
admin.set('permissions', ['admin'])
|
||||
admin.save (err, user) ->
|
||||
request.get URL, (err, res, body) ->
|
||||
expect(res.statusCode).toEqual(200)
|
||||
expect(body.length).toBeGreaterThan(0)
|
||||
done()
|
||||
|
||||
it 'Get own trial requests', (done) ->
|
||||
loginNewUser (user) ->
|
||||
properties =
|
||||
email: user.get('email')
|
||||
location: 'SF, CA'
|
||||
age: '14-17'
|
||||
numStudents: 14
|
||||
heardAbout: 'magical interwebs'
|
||||
createTrialRequest user, 'subscription', properties, (trialRequest) ->
|
||||
request.get ownURL, (err, res, body) ->
|
||||
expect(res.statusCode).toEqual(200)
|
||||
ownRequests = JSON.parse(body)
|
||||
expect(ownRequests.length).toEqual(1)
|
||||
expect(ownRequests[0]._id).toEqual(trialRequest.id)
|
||||
done()
|
||||
|
||||
it 'Get non-owned trial request, non-admin', (done) ->
|
||||
loginNewUser (user) ->
|
||||
properties =
|
||||
email: user.get('email')
|
||||
location: 'SF, CA'
|
||||
age: '14-17'
|
||||
numStudents: 14
|
||||
heardAbout: 'magical interwebs'
|
||||
createTrialRequest user, 'subscription', properties, (trialRequest) ->
|
||||
loginNewUser (user2) ->
|
||||
request.get URL + "/#{trialRequest.id}", (err, res, body) ->
|
||||
expect(res.statusCode).toEqual(403)
|
||||
done()
|
||||
|
||||
it 'Approve trial request', (done) ->
|
||||
loginNewUser (user) ->
|
||||
properties =
|
||||
email: user.get('email')
|
||||
location: 'SF, CA'
|
||||
age: '14-17'
|
||||
numStudents: 14
|
||||
heardAbout: 'magical interwebs'
|
||||
createTrialRequest user, 'subscription', properties, (trialRequest) ->
|
||||
loginNewUser (admin) ->
|
||||
admin.set('permissions', ['admin'])
|
||||
admin.save (err, user) ->
|
||||
requestBody = trialRequest.toObject()
|
||||
requestBody.status = 'approved'
|
||||
request.put {uri: URL, json: requestBody }, (err, res, body) ->
|
||||
expect(err).toBeNull()
|
||||
expect(res.statusCode).toBe(200)
|
||||
expect(body.status).toEqual('approved')
|
||||
expect(body.reviewDate).toBeDefined()
|
||||
expect(new Date(body.reviewDate)).toBeLessThan(new Date())
|
||||
expect(body.reviewer).toEqual(admin.id)
|
||||
expect(body.prepaidCode).toBeDefined()
|
||||
TrialRequest.findById body._id, (err, doc) ->
|
||||
expect(err).toBeNull()
|
||||
expect(doc.get('status')).toEqual('approved')
|
||||
expect(doc.get('reviewDate')).toBeDefined()
|
||||
expect(new Date(doc.get('reviewDate'))).toBeLessThan(new Date())
|
||||
expect(doc.get('reviewer')).toEqual(admin._id)
|
||||
expect(doc.get('prepaidCode')).toBeDefined()
|
||||
done()
|
||||
|
||||
it 'Deny trial request', (done) ->
|
||||
loginNewUser (user) ->
|
||||
properties =
|
||||
email: user.get('email')
|
||||
location: 'SF, CA'
|
||||
age: '14-17'
|
||||
numStudents: 14
|
||||
heardAbout: 'magical interwebs'
|
||||
createTrialRequest user, 'subscription', properties, (trialRequest) ->
|
||||
loginNewUser (admin) ->
|
||||
admin.set('permissions', ['admin'])
|
||||
admin.save (err, user) ->
|
||||
requestBody = trialRequest.toObject()
|
||||
requestBody.status = 'denied'
|
||||
request.put {uri: URL, json: requestBody }, (err, res, body) ->
|
||||
expect(err).toBeNull()
|
||||
expect(res.statusCode).toBe(200)
|
||||
expect(body.status).toEqual('denied')
|
||||
expect(body.reviewDate).toBeDefined()
|
||||
expect(new Date(body.reviewDate)).toBeLessThan(new Date())
|
||||
expect(body.reviewer).toEqual(admin.id)
|
||||
expect(body.prepaidCode).not.toBeDefined()
|
||||
TrialRequest.findById body._id, (err, doc) ->
|
||||
expect(err).toBeNull()
|
||||
expect(doc.get('status')).toEqual('denied')
|
||||
expect(doc.get('reviewDate')).toBeDefined()
|
||||
expect(new Date(doc.get('reviewDate'))).toBeLessThan(new Date())
|
||||
expect(doc.get('reviewer')).toEqual(admin._id)
|
||||
expect(doc.get('prepaidCode')).not.toBeDefined()
|
||||
done()
|
Loading…
Add table
Add a link
Reference in a new issue