This commit is contained in:
Nick Winter 2015-08-19 12:16:23 -07:00
commit 3cfabf8122
15 changed files with 196 additions and 201 deletions

View file

@ -19,35 +19,27 @@ module.exports = class Tracker
# InspectletJS loading is delayed and targeting specific levels for more focused investigations
return @disableInspectletJS() unless levelSlug in targetInspectJSLevelSlugs
# Start embed code
window.__insp = window.__insp or []
__insp.push [
'wid'
2102699786
]
do ->
__ldinsp = ->
scriptLoaded = =>
# Identify and track pageview here, because inspectlet is loaded too late for standard Tracker calls
@identify()
# http://www.inspectlet.com/docs#virtual_pageviews
window.__insp?.push(['virtualPage'])
window.__insp = [['wid', 2102699786]]
insp = document.createElement('script')
insp.type = 'text/javascript'
insp.async = true
insp.id = 'inspsync'
insp.src = (if 'https:' == document.location.protocol then 'https' else 'http') + '://cdn.inspectlet.com/inspectlet.js'
insp.onreadystatechange = => scriptLoaded() if insp.readyState is 'complete'
insp.onload = scriptLoaded
x = document.getElementsByTagName('script')[0]
x.parentNode.insertBefore insp, x
return
if window.attachEvent
window.attachEvent 'onload', __ldinsp
else
window.addEventListener 'load', __ldinsp, false
# End embed code
# Identify and track pageview here, because inspectlet is loaded too late for standard Tracker calls
@identify()
# http://www.inspectlet.com/docs#virtual_pageviews
__insp?.push ['virtualPage']
@inspectletScriptNode = x.parentNode.insertBefore insp, x
disableInspectletJS: ->
if @inspectletScriptNode
x = document.getElementsByTagName('script')[0]
x.parentNode.removeChild(@inspectletScriptNode)
@inspectletScriptNode = null
delete window.__insp
trackReferrers: ->

View file

@ -9,7 +9,7 @@ module.exports = nativeDescription: "български език", englishDescri
ipad_browser: "Лошa новинa: CodeCombat не работи в браузъра на iPad. Добра новина: Приложението ни за iPad изчаква одобрение от Apple."
campaign: "Кампания"
for_beginners: "За начинаещи"
# multiplayer: "Multiplayer" # Not currently shown on home page
multiplayer: "Мултиплейър" # Not currently shown on home page
for_developers: "За разработчици" # Not currently shown on home page.
or_ipad: "Или свали за iPad"
@ -26,7 +26,7 @@ module.exports = nativeDescription: "български език", englishDescri
admin: "Администратор" # Only shows up when you are an admin
home: "Начало"
contribute: "Допринеси"
# legal: "Legal"
legal: "Юридическа информация"
about: "За нас"
contact: "Контакти"
twitter_follow: "Започни да следиш"
@ -57,17 +57,17 @@ module.exports = nativeDescription: "български език", englishDescri
confirm: "Потвърди"
owned: "Придобити" # For items you own
locked: "Заключено"
# purchasable: "Purchasable" # For a hero you unlocked but haven't purchased
purchasable: "Купуваеми" # For a hero you unlocked but haven't purchased
available: "Достъпен"
# skills_granted: "Skills Granted" # Property documentation details
skills_granted: "Умението е получено" # Property documentation details
heroes: "Герои" # Tooltip on hero shop button from /play
achievements: "Постижения" # Tooltip on achievement list button from /play
account: "Акаунт" # Tooltip on account button from /play
settings: "Настройки" # Tooltip on settings button from /play
# poll: "Poll" # Tooltip on poll button from /play
poll: "Допитване" # Tooltip on poll button from /play
next: "Напред" # Go from choose hero to choose inventory before playing a level
change_hero: "Смени герой" # Go back from choose inventory to choose hero
# choose_inventory: "Equip Items"
choose_inventory: "Избери Предмети"
buy_gems: "Купи скъпоценни камъни"
subscription_required: "Нужен е абонамент"
anonymous: "Анонимен играч"
@ -77,18 +77,18 @@ module.exports = nativeDescription: "български език", englishDescri
awaiting_levels_adventurer: "Стани Приключенец"
awaiting_levels_adventurer_suffix: "за да бъдеш първият, който играе нови нива."
adjust_volume: "Настрой звук"
# campaign_multiplayer: "Multiplayer Arenas"
# campaign_multiplayer_description: "... in which you code head-to-head against other players."
# campaign_old_multiplayer: "(Deprecated) Old Multiplayer Arenas"
# campaign_old_multiplayer_description: "Relics of a more civilized age. No simulations are run for these older, hero-less multiplayer arenas."
campaign_multiplayer: "Арени за мултиплейър"
campaign_multiplayer_description: "... където се състезаваш по програмиране с други играчи."
campaign_old_multiplayer: "(Остаряло) Стари арени за мултиплейър"
campaign_old_multiplayer_description: "Остатъци от едни по-циливизовани вренмена. Тези стари арени са без симулации и без герои."
share_progress_modal:
blurb: "Справяш се чудесно! Сподели с някого,колко много научи чрез CodeCombat."
blurb: "Справяш се чудесно! Сподели с родителите си, колко много научи чрез CodeCombat."
email_invalid: "Имейл адресът е невалиден"
# form_blurb: "Enter your parent's email below and well show them!"
form_blurb: "Въведете email адреса им, и ние ще им покажем!"
form_label: "Електронна поща"
placeholder: "Имейл адрес"
# title: "Excellent Work, Apprentice"
title: "Отлична работа, Ученико!"
login:
sign_up: "Създай Профил"
@ -98,7 +98,7 @@ module.exports = nativeDescription: "български език", englishDescri
forgot_password: "Забравена парола?"
authenticate_gplus: "Автентикация чрез G+"
load_profile: "Зареди G+ профил"
# finishing: "Finishing"
finishing: "Завършване"
sign_in_with_facebook: "Вписване чрез Facebook"
sign_in_with_gplus: "Вписване чрез G+"
signup_switch: "Създаване на нов акаунт?"
@ -117,13 +117,13 @@ module.exports = nativeDescription: "български език", englishDescri
send_password: "Изпрати парола за възстановяване"
recovery_sent: "Писмото за възстановяване на парола е изпратено."
# items:
# primary: "Primary"
# secondary: "Secondary"
# armor: "Armor"
# accessories: "Accessories"
# misc: "Misc"
# books: "Books"
items:
primary: "Основни"
secondary: "Второстепенни"
armor: "Броня"
accessories: "Аксесоари"
misc: "Разни"
books: "Книги"
common:
back: "Назад" # When used as an action verb, like "Navigate backward"
@ -137,7 +137,7 @@ module.exports = nativeDescription: "български език", englishDescri
publish: "Публикувай"
create: "Създай"
manual: "Ръчно"
# fork: "Fork"
fork: "Разклоняване"
play: "Играй" # When used as an action verb, like "Play next level"
retry: "Отново"
actions: "Действия"
@ -145,32 +145,32 @@ module.exports = nativeDescription: "български език", englishDescri
help: "Помощ"
watch: "Наблюдавай"
unwatch: "Не наблюдавай"
submit_patch: "Предложи кръпка"
submit_changes: "Предложи промените"
# save_changes: "Save Changes"
submit_patch: "Изпрати кръпка"
submit_changes: "Изпрати промените"
save_changes: "Запази промените"
general:
and: "и"
name: "Име"
date: "Дата"
# body: "Body"
body: "Съдържание"
version: "Версия"
pending: "Изчакващ"
accepted: "Прието"
rejected: "Отказано"
# withdrawn: "Withdrawn"
# submitter: "Submitter"
# submitted: "Submitted"
# commit_msg: "Commit Message"
withdrawn: "Отменено"
submitter: "Изпращач"
submitted: "Изпратено"
commit_msg: "Съпровождащо съобщение"
review: "Преглед"
version_history: "Предишни версии"
version_history_for: "Предишни версии на: "
select_changes: "Избери две промени за да видиш разликата между тях."
# undo_prefix: "Undo"
# undo_shortcut: "(Ctrl+Z)"
# redo_prefix: "Redo"
# redo_shortcut: "(Ctrl+Shift+Z)"
# play_preview: "Play preview of current level"
undo_prefix: "Отмени"
undo_shortcut: "(Ctrl+Z)"
redo_prefix: "Възстанови"
redo_shortcut: "(Ctrl+Shift+Z)"
play_preview: "Предварителен превод на текущото ниво"
result: "Резултат"
results: "Резултати"
description: "Описание"
@ -180,21 +180,21 @@ module.exports = nativeDescription: "български език", englishDescri
password: "Парола"
message: "Съобщение"
code: "Код"
# ladder: "Ladder"
# when: "When"
ladder: "Стълба"
when: "Кога"
opponent: "Опонент"
# rank: "Rank"
rank: "Ранг"
score: "Точки"
win: "Победа"
loss: "Загуба"
# tie: "Tie"
tie: "Наравно"
easy: "Лесно"
medium: "Средно"
hard: "Трудно"
player: "Играч"
player_level: "Ниво" # Like player level 5, not like level: Dungeons of Kithgard
warrior: "Боец"
# ranger: "Ranger"
ranger: "Рейнджър"
wizard: "Магьосник"
units:
@ -215,7 +215,7 @@ module.exports = nativeDescription: "български език", englishDescri
play_level:
done: "Готово"
# home: "Home" # Not used any more, will be removed soon.
home: "На главната" # Not used any more, will be removed soon.
level: "Ниво" # Like "Level: Dungeons of Kithgard"
skip: "Прескочи"
game_menu: "Главно Меню"
@ -223,14 +223,14 @@ module.exports = nativeDescription: "български език", englishDescri
restart: "Рестарт"
goals: "Цели"
goal: "Цел"
# running: "Running..."
running: "Изпълнява се..."
success: "Успех!"
incomplete: "Недовършен"
# timed_out: "Ran out of time"
# failing: "Failing"
# action_timeline: "Action Timeline"
# click_to_select: "Click on a unit to select it."
# control_bar_multiplayer: "Multiplayer"
timed_out: "Времето изтече"
failing: "Неуспех"
action_timeline: "График на действията"
click_to_select: "Кликни на нещото за да го избереш."
control_bar_multiplayer: "Мултиплейър"
control_bar_join_game: "Присъединяване"
reload: "Презареди"
reload_title: "Презареди целият код?"

View file

@ -428,7 +428,7 @@ module.exports = nativeDescription: "Español (América Latina)", englishDescrip
parents: "Para padres"
parents_title: "Su hijo aprenderá a programar." # {change}
parents_blurb1: "Con CodeCombat, su hijo aprenderá a escribiendo código real. Empezaran aprendiendo comandos simples avanzando a temas más complejos."
# 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_blurb1a: "La Programación es una habilidad escencial que su hijo sin duda usará en la adultez. Para el 2020, habilidades básicas en software serán requeridas por el 77% de trabajos, y los ingenieros de software están en alta demanda alrededor del mundo. ¿Sabía que Ciencias de la Computación es la carrera mejor pagada?"
parents_blurb2: "Por $9.99 USD/mes, recibirán nuevos desafíos todas las semanas y soporte personal por email de programadores profesionales." # {change}
parents_blurb3: "Sin Riesgo: Garantía de 100% de devolución, fácil 1-click y des- suscribirse."
payment_methods: "Metodos de pago"
@ -447,9 +447,9 @@ module.exports = nativeDescription: "Español (América Latina)", englishDescrip
was_free_until: "Tuviste una suscripción gratuita hasta"
managed_subs: "Suscripciones administradas"
managed_subs_desc: "Agregar suscripciones para otros jugadores (alumnos, hijos, etc.)"
# managed_subs_desc_2: "Recipients must have a CodeCombat account associated with the email address you provide."
managed_subs_desc_2: "Los recipientes deben tener una cuenta de CodeCombat asociada con el email que usted provea."
group_discounts: "Descuentos por grupo"
# group_discounts_1: "We also offer group discounts for bulk subscriptions."
group_discounts_1: "También ofrecemos descuentos grupales por suscripciones masivas."
group_discounts_1st: "1ra suscripción (incluye la tuya)" # {change}
group_discounts_full: "Precio regular"
group_discounts_2nd: "2-11 Suscripciones"
@ -593,7 +593,7 @@ module.exports = nativeDescription: "Español (América Latina)", englishDescrip
teacher_subs_title: "¡Los amestros obtienen subscripciones gratuitas!"
teacher_subs_1: "Por favor contacte" # {change}
teacher_subs_2: "para configurar una suscripción mensual gratis." # {change}
# teacher_subs_3: "to set up your subscription."
teacher_subs_3: "para configurar su suscripción."
sub_includes_title: "¿Qué se incluye en la suscripción?"
sub_includes_1: "Adicionalmente a los más de 70 niveles básicos, los estudiantes con una suscripción mensual obtienen acceso a estas características adicionales:" # {change}
sub_includes_2: "Más de 40 niveles de práctica" # {change}
@ -602,36 +602,36 @@ module.exports = nativeDescription: "Español (América Latina)", englishDescrip
sub_includes_5: "7 heroes nuevos con habilidades unicas que dominar" # {change}
sub_includes_6: "bonificación de 3500 gemas cada mes"
sub_includes_7: "Clanes privados"
# 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: "."
monitor_progress_title: "¿Cómo monitoreo el progreso del estudiante?"
monitor_progress_1: "El progreso del estudiante puede ser monitoreado creando una"
monitor_progress_2: "para su clase."
monitor_progress_3: "Para agregar un estudiante, envíele el enlace de invitación para su Clan, que está en la"
monitor_progress_4: "página."
monitor_progress_5: "Después de que ellos se unan, podrá ver un resumen del progreso de los estudiantes en la página de su Clan."
private_clans_1: "Los Clanes privados proveen más privacidad y más detalle en la información de progreso de cada estudiante."
private_clans_2: "Para cerar un Clan privado, marque la caja 'Hacer clan privado' cuando esté creando un"
private_clans_3: "."
who_for_title: "¿Para quienes es CodeCombat?"
who_for_1: "Recomendamos CodeCombat para estudiantes de edades 9 y arriba. No se require experiencia en programación."
who_for_2: "Hemos diseñado a CodeCombat para atraer a niños y niñas."
material_title: "Cuánto material hay?"
material_china: "Aproximadamente 22 horas de juego repartidas en más de 120 niveles sólo para suscriptores, con cinco nueveos niveles cada semana." # {change}
material_1: "Aproximadamente 8 horas de contenido gratis y un adicional de 14 horas de contenido de suscriptores, con cinco nueveos niveles cada semana." # {change}
# concepts_title: "What concepts are covered?"
concepts_title: "¿Qué conceptos están cubiertos?"
how_much_title: "¿Cuánto cuesta una subscripción mensual?"
how_much_1: "una"
how_much_2: "suscribción mensual"
how_much_3: "Cuesta u$s9.99, y puede ser cancelada en cualquier momento."
how_much_4: "Adicionalmente, nosotros otorgamos descuentos a grupos grandes:"
# 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"
how_much_5: "Aceptamos compras individuales con descuentos y suscripciones anuales para grupos, tales como una clase o una escuela. Por favor contacte"
how_much_6: "para más detalles."
more_info_title: "¿Dónde puedo encontrar más información?"
more_info_1: "Nuestro"
more_info_2: "el foro de profesores"
more_info_3: "es un buen lugar para connectarse con los educadores que estan usando CodeCombat."
sys_requirements_title: "Requerimientos del sistema"
sys_requirements_1: "Debido que CodeCombat es un juego, es más difícil para las computadoras correrlo en relación a un tutorial escrito o un video. Para que todos puedan jugar, hemos optimizado la web para correr rápidamente en todos los navegadores modernos y en maquinas antiguas. Dicho esto, aquí están nuestras sugerencias para sacar el máximo provecho de su experiencia en la Hora del Código:" # {change}
sys_requirements_2: "Usar una versión actualizada del navegador Chrome o Firefox." # {change}
sys_requirements_1: "Un navegador moderno. Las últimas versiones de Chrome, Firefox o Safari. Internet Explorer 9 o más reciente."
sys_requirements_2: "CodeCombat no está soportado en iPad aún."
teachers_survey:
# title: "Teacher Survey"

View file

@ -492,7 +492,7 @@ module.exports = nativeDescription: "español (ES)", englishDescription: "Spanis
blocks: "Bloqueo" # As in "this shield blocks this much damage"
# backstab: "Backstab" # As in "this dagger does this much backstab damage"
skills: "Habilidades"
# attack_1: "Deals"
# attack_1: "Deals" #like an offer?
# attack_2: "of listed"
# attack_3: "weapon damage."
# health_1: "Gains"
@ -579,7 +579,7 @@ module.exports = nativeDescription: "español (ES)", englishDescription: "Spanis
# josh_blurb: "Floor Is Lava"
jose_title: "Música"
# jose_blurb: "Taking Off"
# retrostyle_title: "Illustration"
retrostyle_title: "Illustración"
# retrostyle_blurb: "RetroStyle Games"
teachers:
@ -774,9 +774,9 @@ module.exports = nativeDescription: "español (ES)", englishDescription: "Spanis
social_hipchat: "Habla con nosotros en el chat publico de CodeCombat HipChat room"
contribute_to_the_project: "Contribuye al proyecto"
# clans:
# clan: "Clan"
# clans: "Clans"
clans:
clan: "Clan"
clans: "Clanes"
# new_name: "New clan name"
# new_description: "New clan description"
# make_private: "Make clan private"
@ -809,8 +809,8 @@ module.exports = nativeDescription: "español (ES)", englishDescription: "Spanis
# complete_1: "complete"
# exp_levels: "Expand levels"
# rem_hero: "Remove Hero"
# status: "Status"
# complete_2: "Complete"
status: "Estado"
complete_2: "Completo"
# started_2: "Started"
# not_started_2: "Not Started"
# view_solution: "Click to view solution."
@ -850,11 +850,11 @@ module.exports = nativeDescription: "español (ES)", englishDescription: "Spanis
revert_models: "Revertir Modelos"
pick_a_terrain: "Escoge un Terreno"
# dungeon: "Dungeon"
# indoor: "Indoor"
indoor: "Interior"
desert: "Desierto"
grassy: "Cubierto de hierba"
# mountain: "Mountain"
# glacier: "Glacier"
mountain: "Mountaña"
glacier: "Glaciar"
small: "Pequeño"
# large: "Large"
fork_title: "Bifurcar nueva versión"
@ -878,7 +878,7 @@ module.exports = nativeDescription: "español (ES)", englishDescription: "Spanis
level_tab_thangs_conditions: "Condiciones de inicio"
level_tab_thangs_add: "Añadir Objetos"
# level_tab_thangs_search: "Search thangs"
# add_components: "Add Components"
add_components: "Agregar Componentes"
# component_configs: "Component Configurations"
# config_thang: "Double click to configure a thang"
delete: "Borrar"
@ -1046,7 +1046,7 @@ module.exports = nativeDescription: "español (ES)", englishDescription: "Spanis
fight: "¡Pelea!"
watch_victory: "Ver tu victoria"
defeat_the: "Vence a"
# tournament_started: ", started"
tournament_started: ", iniciado"
tournament_ends: "El torneo termina"
tournament_ended: "El torneo ha terminado"
tournament_rules: "Reglas del Torneo"
@ -1095,7 +1095,7 @@ module.exports = nativeDescription: "español (ES)", englishDescription: "Spanis
recently_played: "Jugado Recientemente"
no_recent_games: "No he jugado juegos en las ultimas dos semanas."
payments: "Pagos"
# purchased: "Purchased"
purchased: "Adquirido"
# subscription: "Subscription"
# invoices: "Invoices"
service_apple: "Apple"
@ -1105,9 +1105,9 @@ module.exports = nativeDescription: "español (ES)", englishDescription: "Spanis
price: "Precio"
gems: "Joyas"
active: "Activo"
# subscribed: "Subscribed"
subscribed: "Suscrito"
# unsubscribed: "Unsubscribed"
# active_until: "Active Until"
active_until: "Activo Hasta"
cost: "Costo"
next_payment: "Siguiente Pago"
card: "Tarjeta"
@ -1177,7 +1177,7 @@ module.exports = nativeDescription: "español (ES)", englishDescription: "Spanis
user_remarks: "Observaciones de Usuario"
versions: "Versiones"
items: "Objetos"
# hero: "Hero"
hero: "Héroe"
heroes: "Heroes"
achievement: "Logro"
clas: "Clasess"
@ -1188,10 +1188,10 @@ module.exports = nativeDescription: "español (ES)", englishDescription: "Spanis
poll: "Encuesta"
# user_polls_record: "Poll Voting History"
# concepts:
concepts:
# advanced_strings: "Advanced Strings"
# algorithms: "Algorithms"
# arguments: "Arguments"
arguments: "Argumentos"
# arithmetic: "Arithmetic"
# arrays: "Arrays"
# basic_syntax: "Basic Syntax"
@ -1199,16 +1199,16 @@ module.exports = nativeDescription: "español (ES)", englishDescription: "Spanis
# break_statements: "Break Statements"
# classes: "Classes"
# for_loops: "For Loops"
# functions: "Functions"
functions: "Funciones"
# if_statements: "If Statements"
# input_handling: "Input Handling"
# math_operations: "Math Operations"
# object_literals: "Object Literals"
# strings: "Strings"
# variables: "Variables"
# vectors: "Vectors"
# while_loops: "Loops"
# recursion: "Recursion"
strings: "Cadenas"
variables: "Variables"
vectors: "Vectores"
while_loops: "Ciclos"
recursion: "Recursividad"
delta:
added: "Añadido"

View file

@ -247,7 +247,7 @@ module.exports = nativeDescription: "Italiano", englishDescription: "Italian", t
victory_saving_progress: "Salvataggio progressi"
victory_go_home: "Torna alla pagina iniziale"
victory_review: "Dicci di più!"
# victory_review_placeholder: "How was the level?"
victory_review_placeholder: "Come è stato il livello?"
victory_hour_of_code_done: "Finito?"
victory_hour_of_code_done_yes: "Si, ho finito la mia ora di programmazione!"
victory_experience_gained: "Punti XP guadagnati"
@ -322,7 +322,7 @@ module.exports = nativeDescription: "Italiano", englishDescription: "Italian", t
tip_brute_force: "Quando sei in dubbio, usa la forza bruta. - Ken Thompson"
tip_extrapolation: "Ci sono soltanto due tipi di persone: quelli che possono estrapolare da dati incompleti..."
tip_superpower: "La programmazione è la cosa che più si avvicina a un superpotere."
# tip_control_destiny: "In real open source, you have the right to control your own destiny. - Linus Torvalds"
tip_control_destiny: "Nel vero open source, hai il diritto di controllare il propio destino. - Linus Torvalds"
tip_no_code: "Nessun codice è più veloce di nessun codice."
tip_code_never_lies: "Il codice non mente mai, ma i commenti a volte lo fanno. — Ron Jeffries"
# tip_reusable_software: "Before software can be reusable it first has to be usable."
@ -412,14 +412,14 @@ module.exports = nativeDescription: "Italiano", englishDescription: "Italian", t
# unsubscribe: "Unsubscribe"
# confirm_unsubscribe: "Confirm Unsubscribe"
# never_mind: "Never Mind, I Still Love You"
# thank_you_months_prefix: "Thank you for supporting us these last"
# thank_you_months_suffix: "months."
# thank_you: "Thank you for supporting CodeCombat."
# thank_you_months_prefix: "Grazie for supporting us these last"
thank_you_months_suffix: "mesi."
# thank_you: "Grazie for supporting CodeCombat."
# sorry_to_see_you_go: "Sorry to see you go! Please let us know what we could have done better."
# unsubscribe_feedback_placeholder: "O, what have we done?"
# parent_button: "Ask your parent"
parent_button: "Chiedi i tuoi genitori"
# parent_email_description: "We'll email them so they can buy you a CodeCombat subscription."
# parent_email_input_invalid: "Email address invalid."
# parent_email_input_invalid: "Indirizzo Email invalido."
# parent_email_input_label: "Parent email address"
# parent_email_input_placeholder: "Enter parent email"
parent_email_send: "Invia email"
@ -428,17 +428,17 @@ module.exports = nativeDescription: "Italiano", englishDescription: "Italian", t
parents: "Per i genitori"
# parents_title: "Dear Parent: Your child is learning to code. Will you help them continue?"
# parents_blurb1: "Your child has played __nLevels__ levels and learned programming basics. Help cultivate their interest and buy them a subscription so they can keep playing."
# 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_blurb1a: "Computer programming è una capacità essenziale che 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: "For $9.99 USD/mo, your child will get new challenges every week and personal email support from professional programmers."
# parents_blurb3: "No Risk: 100% money back guarantee, easy 1-click unsubscribe."
# payment_methods: "Payment Methods"
# payment_methods_title: "Accepted Payment Methods"
# parents_blurb3: "Senza Rischio: 100% money back guarantee, easy 1-click unsubscribe."
payment_methods: "Metodi di Pagamento"
payment_methods_title: "Metodi di Pagamento Accetati"
# payment_methods_blurb1: "We currently accept credit cards and Alipay."
# payment_methods_blurb2: "If you require an alternate form of payment, please contact"
# stripe_description: "Monthly Subscription"
stripe_description: "Sottoscrizione mensile"
# subscription_required_to_play: "You'll need a subscription to play this level."
# unlock_help_videos: "Subscribe to unlock all video tutorials."
# personal_sub: "Personal Subscription" # Accounts Subscription View below
# unlock_help_videos: "Sottoscribe to unlock all video tutorials."
personal_sub: "Sottoscrizione Personale" # Accounts Subscription View below
# loading_info: "Loading subscription information..."
# managed_by: "Managed by"
# will_be_cancelled: "Will be cancelled on"
@ -453,13 +453,13 @@ module.exports = nativeDescription: "Italiano", englishDescription: "Italian", t
# group_discounts_1st: "1st subscription"
# group_discounts_full: "Full price"
# group_discounts_2nd: "Subscriptions 2-11"
# group_discounts_20: "20% off"
group_discounts_20: "20% disconto"
# group_discounts_12th: "Subscriptions 12+"
# group_discounts_40: "40% off"
group_discounts_40: "40% di sconto"
# subscribing: "Subscribing..."
# recipient_emails_placeholder: "Enter email address to subscribe, one per line."
# subscribe_users: "Subscribe Users"
# users_subscribed: "Users subscribed:"
subscribe_users: "Sottoscrivere Utenti"
users_subscribed: "Utenti sottoscritti:"
# no_users_subscribed: "No users subscribed, please double check your email addresses."
# current_recipients: "Current Recipients"
# unsubscribing: "Unsubscribing..."
@ -582,8 +582,8 @@ module.exports = nativeDescription: "Italiano", englishDescription: "Italian", t
retrostyle_title: "Illustratore"
retrostyle_blurb: "Giochi retrò"
# teachers:
# title: "CodeCombat: Info for Teachers"
teachers:
title: "CodeCombat: Informazzione per Professori"
# 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?"
@ -597,7 +597,7 @@ module.exports = nativeDescription: "Italiano", englishDescription: "Italian", t
# sub_includes_title: "What is included in the subscription?"
# sub_includes_1: "In addition to the 100+ basic levels, students with a monthly subscription get access to these additional features:"
# sub_includes_2: "70+ practice levels"
# sub_includes_3: "Video tutorials"
sub_includes_3: "Video tutoriali"
# sub_includes_4: "Premium email support"
# sub_includes_5: "10 new heroes with unique skills to master"
# sub_includes_6: "3500 bonus gems every month"
@ -610,7 +610,7 @@ module.exports = nativeDescription: "Italiano", englishDescription: "Italian", t
# 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."
@ -626,14 +626,14 @@ module.exports = nativeDescription: "Italiano", englishDescription: "Italian", t
# 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_1: "Il nostro"
# more_info_2: "teachers forum"
# more_info_3: "is a good place to connect with fellow educators who are using CodeCombat."
# more_info_3: "è un buon posto 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."
# teachers_survey:
teachers_survey:
# title: "Teacher Survey"
# must_be_logged: "You must be logged in first. Please create an account or log in from the menu above."
# retrieving: "Retrieving information..."
@ -647,15 +647,15 @@ module.exports = nativeDescription: "Italiano", englishDescription: "Italian", t
# contact_1: "Please contact"
# contact_2: "if you have further questions."
# description_1: "We offer free subscriptions to teachers for evaluation purposes. You can find more information on our"
# description_2: "teachers"
description_2: "professori"
# description_3: "page."
# description_4: "Please fill out this quick survey and well email you setup instructions."
# email: "Email Address"
# school: "Name of School"
# location: "Name of City"
school: "Nome di Scuola"
location: "Nome di Città"
# age_students: "How old are your students?"
# under: "Under"
# other: "Other:"
other: "Altri:"
# amount_students: "How many students do you teach?"
# hear_about: "How did you hear about CodeCombat?"
# fill_fields: "Please fill out all fields."
@ -806,7 +806,7 @@ module.exports = nativeDescription: "Italiano", englishDescription: "Italian", t
# progress: "Progress"
# not_started_1: "not started"
# started_1: "started"
# complete_1: "complete"
complete_1: "finito"
# exp_levels: "Expand levels"
# rem_hero: "Remove Hero"
# status: "Status"
@ -883,7 +883,7 @@ module.exports = nativeDescription: "Italiano", englishDescription: "Italian", t
config_thang: "Doppio click per configurare un thang"
delete: "Cancella"
duplicate: "Duplica"
# stop_duplicate: "Stop Duplicate"
stop_duplicate: "Ferma Duplicazzione"
rotate: "Ruota"
level_settings_title: "Impostazioni"
level_component_tab_title: "Componenti esistenti"
@ -894,7 +894,7 @@ module.exports = nativeDescription: "Italiano", englishDescription: "Italian", t
level_components_title: "Torna all'elenco thangs"
level_components_type: "Tipo"
level_component_edit_title: "Modifica componente"
# level_component_config_schema: "Config Schema"
level_component_config_schema: "Schema di configurazione"
level_component_settings: "Impostazioni"
level_system_edit_title: "Modifica sistema"
create_system_title: "Crea nuovo sistema"
@ -1039,21 +1039,21 @@ module.exports = nativeDescription: "Italiano", englishDescription: "Italian", t
tutorial_play_first: "Prima di tutto gioca al Tutorial."
simple_ai: "IA semplice"
warmup: "Allenamento"
# friends_playing: "Friends Playing"
friends_playing: "Amici Giocando"
log_in_for_friends: "Accedi per giocare con i tuoi amici!"
social_connect_blurb: "Connettiti e gioca contro i tuoi amici!"
invite_friends_to_battle: "Invita i tuoi amici a unirsi a te nella battaglia!"
fight: "Combatti!"
# watch_victory: "Watch your victory"
# defeat_the: "Defeat the"
# tournament_started: ", started"
# tournament_ends: "Tournament ends"
tournament_started: ", ha cominciato"
tournament_ends: "Torneo conclude"
tournament_ended: "Torneo concluso"
tournament_rules: "Regole torneo"
# 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"
# 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_blog: "on our blog"
tournament_blurb_blog: "nel nostro blog"
rules: "Regole"
winners: "Vincitori"
@ -1148,7 +1148,7 @@ module.exports = nativeDescription: "Italiano", englishDescription: "Italian", t
gplus_friends: "Amici G+"
gplus_friend_sessions: "Sessioni amici G+"
leaderboard: "Classifica"
# user_schema: "User Schema"
user_schema: "Schema Utenti"
user_profile: "Profilo utente"
# patch: "Patch"
# patches: "Patches"
@ -1188,9 +1188,9 @@ module.exports = nativeDescription: "Italiano", englishDescription: "Italian", t
poll: "Sondaggio"
# user_polls_record: "Poll Voting History"
# concepts:
concepts:
# advanced_strings: "Advanced Strings"
# algorithms: "Algorithms"
algorithms: "Algoritmi"
# arguments: "Arguments"
# arithmetic: "Arithmetic"
# arrays: "Arrays"
@ -1318,14 +1318,14 @@ module.exports = nativeDescription: "Italiano", englishDescription: "Italian", t
# not_featured: "Not Featured"
# looking_for: "Looking for:"
last_updated: "Ultimo aggiornamento:"
# contact: "Contact"
contact: "Contatto"
# active: "Looking for interview offers now"
# inactive: "Not looking for offers right now"
# complete: "complete"
# next: "Next"
# next_city: "city?"
next_city: "città?"
# next_country: "pick your country."
# next_name: "name?"
next_name: "nome?"
# next_short_description: "write a short description."
# next_long_description: "describe your desired position."
# next_skills: "list at least five skills."
@ -1335,7 +1335,7 @@ module.exports = nativeDescription: "Italiano", englishDescription: "Italian", t
# next_links: "add any personal or social links."
# next_photo: "add an optional professional photo."
# next_active: "mark yourself open to offers to show up in searches."
# example_blog: "Blog"
example_blog: "Blog"
# example_personal_site: "Personal Site"
# links_header: "Personal Links"
# links_blurb: "Link any other sites or profiles you want to highlight, like your GitHub, your LinkedIn, or your blog."
@ -1347,9 +1347,9 @@ module.exports = nativeDescription: "Italiano", englishDescription: "Italian", t
# basics_active_help: "Want interview offers right now?"
# basics_job_title: "Desired Job Title"
# basics_job_title_help: "What role are you looking for?"
# basics_city: "City"
basics_city: "Città"
# basics_city_help: "City you want to work in (or live in now)."
# basics_country: "Country"
basics_country: "Paese"
# basics_country_help: "Country you want to work in (or live in now)."
# basics_visa: "US Work Status"
# basics_visa_help: "Are you authorized to work in the US, or do you need visa sponsorship? (If you live in Canada or Australia, mark authorized.)"
@ -1382,14 +1382,14 @@ module.exports = nativeDescription: "Italiano", englishDescription: "Italian", t
# work_employer_help: "Name of your employer."
# work_role: "Job Title"
# work_role_help: "What was your job title or role?"
# work_duration: "Duration"
work_duration: "Durazione"
# work_duration_help: "When did you hold this gig?"
# work_description: "Description"
# work_description_help: "What did you do there? (140 chars; optional)"
# education: "Education"
# education_header: "Recount your academic ordeals"
# education_blurb: "List your academic ordeals."
# education_school: "School"
education_school: "Scuola"
# education_school_help: "Name of your school."
# education_degree: "Degree"
# education_degree_help: "What was your degree and field of study?"
@ -1409,11 +1409,11 @@ module.exports = nativeDescription: "Italiano", englishDescription: "Italian", t
# project_description_help: "Briefly describe the project."
# project_picture: "Picture"
# project_picture_help: "Upload a 230x115px or larger image showing off the project."
# project_link: "Link"
project_link: "Link"
# project_link_help: "Link to the project."
# player_code: "Player Code"
# employers:
employers:
# deprecation_warning_title: "Sorry, CodeCombat is not recruiting right now."
# deprecation_warning: "We are focusing on beginner levels instead of finding expert developers for the time being."
# 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.
@ -1447,16 +1447,16 @@ module.exports = nativeDescription: "Italiano", englishDescription: "Italian", t
# what_blurb: "CodeCombat is a multiplayer browser programming game. Players write code to control their forces in battle against other developers. Our players have experience with all major tech stacks."
# cost: "How much do we charge?"
# cost_blurb: "We charge 15% of first year's salary and offer a 100% money back guarantee for 90 days. We don't charge for candidates who are already actively being interviewed at your company."
# candidate_name: "Name"
candidate_name: "Nome"
# candidate_location: "Location"
# candidate_looking_for: "Looking For"
# candidate_role: "Role"
# candidate_top_skills: "Top Skills"
# candidate_years_experience: "Yrs Exp"
# candidate_last_updated: "Last Updated"
# candidate_who: "Who"
candidate_who: "Chi"
# featured_developers: "Featured Developers"
# other_developers: "Other Developers"
other_developers: "Altri Sviluppatori"
# inactive_developers: "Inactive Developers"
admin:

View file

@ -79,8 +79,8 @@ module.exports = nativeDescription: "日本語", englishDescription: "Japanese",
adjust_volume: "音量を調整する"
campaign_multiplayer: "マルチプレイ・アリーナ"
campaign_multiplayer_description: "コーディングで他のプレイヤーに対して格闘しましょう"
# campaign_old_multiplayer: "(Deprecated) Old Multiplayer Arenas"
# campaign_old_multiplayer_description: "Relics of a more civilized age. No simulations are run for these older, hero-less multiplayer arenas."
campaign_old_multiplayer: "(非推奨)旧マルチプレイ・アリーナ"
campaign_old_multiplayer_description: "より文化的だった時代の遺跡。 シュミレーションは古いため実行されなく, ヒーローもいないマルチプレイ・アリーナです。"
share_progress_modal:
blurb: "あなたは進歩している! CodeCombatでどんなに学んだかについて、誰かに伝えてください。"

View file

@ -960,7 +960,7 @@ module.exports = nativeDescription: "简体中文", englishDescription: "Chinese
artisan_join_step1: "阅读文档。"
artisan_join_step2: "创建一个新关卡 以及探索已经存在的关卡。"
artisan_join_step3: "来我们的HipChat聊天室寻求帮助。"
artisan_join_step4: "你的关卡发到论坛让别人给你评价。"
artisan_join_step4: "你的关卡发到论坛让别人给你评价。"
artisan_subscribe_desc: "通过电子邮件获得关卡编辑器更新和公告。"
adventurer_introduction: "现在就来了解你的角色吧:你是一辆战车,并将要承担沉重的攻击。我们需要人来尝试下我们新开的关卡以了解怎么样才能使每一样东西更美好。一开始虽然会非常辛苦;可是制造出一个最好的游戏是一个很长的过程,在这个过程中,没有人可以第一次就成功。如果你挺过去了并且自我感觉良好,那么这个位置就是为你而准备的。"
adventurer_attribute_1: "学习的冲动!你想要学好怎么编程,与此同时我们也想要教你怎么编程。虽然你可能会觉得你大多数时间你反而都在教导。这,就是学习。"

View file

@ -1,4 +1,4 @@
module.exports = nativeDescription: "中文", englishDescription: "Chinese (Traditional)", translation:
module.exports = nativeDescription: "中文", englishDescription: "Chinese (Traditional)", translation:
home:
slogan: "玩遊戲學程式"
no_ie: "抱歉Internet Explorer 8 等舊的瀏覽器打不開此網站" # Warning that only shows up in IE8 and older
@ -42,7 +42,7 @@ module.exports = nativeDescription: "繁体中文", englishDescription: "Chinese
diplomat_suggestion:
title: "幫我們翻譯CodeCombat" # This shows up when a player switches to a non-English language using the language selector.
sub_heading: "我們需要您的語言技能"
pitch_body: "我們開發了CodeCombat的英文版但是現在我們的玩家遍佈全球。很多人想玩中文版的卻不會說英文所以如果您中英文都會請考慮一下參加我們的翻譯工作幫忙把 CodeCombat 網站還有所有的關卡翻譯成中文(繁)。"
pitch_body: "我們開發了CodeCombat的英文版但是現在我們的玩家遍佈全球。很多人想玩中文版的卻不會說英文所以如果您中英文都會請考慮一下參加我們的翻譯工作幫忙把 CodeCombat 網站還有所有的關卡翻譯成中文(繁)。"
missing_translations: "直至所有正體中文的翻譯完畢,當無法提供正體中文時還會以英文顯示。"
learn_more: "關於成為外交官"
subscribe_as_diplomat: "註冊成為外交官"
@ -247,14 +247,14 @@ module.exports = nativeDescription: "繁体中文", englishDescription: "Chinese
victory_saving_progress: "儲存進度"
victory_go_home: "返回首頁"
victory_review: "給我們回饋!"
# victory_review_placeholder: "How was the level?"
victory_review_placeholder: "關卡如何?"
victory_hour_of_code_done: "您完成了嗎?"
victory_hour_of_code_done_yes: "是的,我完成了我的程式碼!"
victory_experience_gained: "取得經驗值"
victory_gems_gained: "取得寶石"
# 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: "新的物品"
victory_viking_code_school: "太厲害了, 你剛完成了非常困難的關卡! 如果你想成為一個軟件開發人員你就應該去試一下Viking Code School。在這裡你可以把你的知識增長到另一個台階。只需要14個星期你就能成為一個專業的網頁開發人員。"
victory_become_a_viking: "成為一個維京人。"
guide_title: "指南"
tome_minion_spells: "助手的咒語" # Only in old-style levels.
tome_read_only_spells: "唯讀的咒語" # Only in old-style levels.
@ -282,8 +282,8 @@ module.exports = nativeDescription: "繁体中文", englishDescription: "Chinese
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)"

View file

@ -10,9 +10,6 @@ PrepaidSchema = c.object({title: 'Prepaid', required: ['creator', 'type']}, {
code: c.shortString(title: "Unique code to redeem")
type: { type: 'string' }
properties: {type: 'object'}
# Deprecated
status: { enum: ['active', 'used'], default: 'active' }
redeemer: c.objectId(links: [ {rel: 'extra', href: '/db/user/{($)}'} ])
})
c.extendBasicProperties(PrepaidSchema, 'prepaid')

View file

@ -54,8 +54,12 @@ module.exports = class ArticleEditView extends RootView
return unless @treema and @preview
m = marked(@treema.data.body)
b = $(@preview.document.body)
onLoadHandler = =>
if b.find('#insert').length == 1
b.find('#insert').html(m)
b.find('#title').text(@treema.data.name)
clearInterval(id)
id = setInterval(onLoadHandler, 100)
getRenderData: (context={}) ->
context = super(context)
@ -71,6 +75,7 @@ module.exports = class ArticleEditView extends RootView
@patchesView.load()
openPreview: ->
if not @preview or @preview.closed
@preview = window.open('/editor/article/preview', 'preview', 'height=800,width=600')
@preview.focus() if window.focus
@preview.onload = => @pushChangesToPreview()

View file

@ -46,6 +46,15 @@ module.exports = class BuyGemsModal extends ModalView
c.stateMessage = @stateMessage
return c
afterRender: ->
super()
return unless @supermodel.finished()
@playSound 'game-menu-open'
onHidden: ->
super()
@playSound 'game-menu-close'
onIPadProducts: (e) ->
newProducts = []
for iapProduct in e.products

View file

@ -43,6 +43,7 @@ module.exports = class PlayAchievementsModal extends ModalView
@listenTo achievementsFetcher, 'sync', @onAchievementsLoaded
@listenTo earnedAchievementsFetcher, 'sync', @onEarnedAchievementsLoaded
@stopListening @supermodel, 'loaded-all'
@supermodel.loadCollection(achievementsFetcher, 'achievement')
@supermodel.loadCollection(earnedAchievementsFetcher, 'achievement')

View file

@ -80,6 +80,7 @@ module.exports = class PlayItemsModal extends ModalView
itemFetcher.skip = 0
itemFetcher.fetch({data: {skip: 0, limit: PAGE_SIZE}})
@listenTo itemFetcher, 'sync', @onItemsFetched
@stopListening @supermodel, 'loaded-all'
@supermodel.loadCollection(itemFetcher, 'items')
@idToItem = {}
@ -121,7 +122,7 @@ module.exports = class PlayItemsModal extends ModalView
afterRender: ->
super()
return unless @supermodel.finished()
Backbone.Mediator.publish 'audio-player:play-sound', trigger: 'game-menu-open', volume: 1
@playSound 'game-menu-open'
@$el.find('.nano:visible').nanoScroller({alwaysVisible: true})
@itemDetailsView = new ItemDetailsView()
@insertSubView(@itemDetailsView)
@ -133,7 +134,7 @@ module.exports = class PlayItemsModal extends ModalView
onHidden: ->
super()
Backbone.Mediator.publish 'audio-player:play-sound', trigger: 'game-menu-close', volume: 1
@playSound 'game-menu-close'
#- Click events

View file

@ -31,7 +31,7 @@ function migratePrepaidsToV2() {
redeemer: ""
}
};
if (doc.redeemer) {
if (doc.redeemer && (!doc.redeemers || doc.redeemers.length < 1)) {
operations.$set.redeemers = [{userID: doc.redeemer, date: doc._id.getTimestamp()}]
}

View file

@ -174,11 +174,6 @@ class SubscriptionHandler extends Handler
return done({res: 'Database error.', code: 500})
return done({res: 'Prepaid not found', code: 404}) unless prepaid?
return done({res: 'Prepaid not for subscription', code: 403}) unless prepaid.get('type') is 'subscription'
# Deprecated: status property
if status = prepaid.get('status') and status is 'used'
return done({res: 'Prepaid has already been used', code: 403})
if prepaid.get('redeemers')?.length >= prepaid.get('maxRedeemers')
@logSubscriptionError(user, "Prepaid #{prepaid.id} note active")
return done({res: 'Prepaid not active', code: 403})
@ -192,11 +187,6 @@ class SubscriptionHandler extends Handler
return done({res: 'Prepaid code already redeemed', code: 403})
# Redeem prepaid code
# Deprecated: status and redeemer properties
prepaid.set('status', 'used')
prepaid.set('redeemer', user.get('_id'))
query = Prepaid.$where("'#{prepaid.get('_id').valueOf()}' === this._id.valueOf() && (!this.redeemers || this.redeemers.length < this.maxRedeemers)")
redeemers.push
userID: user.get('_id')
@ -540,7 +530,7 @@ class SubscriptionHandler extends Handler
quantity: getSponsoredSubsAmount(subscriptions.basic.amount, stripeInfo.recipients.length, stripeInfo.subscriptionID?)
stripe.customers.updateSubscription stripeInfo.customerID, stripeInfo.sponsorSubscriptionID, options, (err, subscription) =>
if err
logStripeWebhookError(err)
@logSubscriptionError(user, 'Sponsored subscription quantity update error. ' + JSON.stringify(err))
return done({res: 'Database error.', code: 500})
done()