From aeea0a54af7e957f35b8c67e60602549c88f8c65 Mon Sep 17 00:00:00 2001 From: TitoGa Date: Tue, 16 Sep 2014 16:27:44 -0300 Subject: [PATCH 01/34] Update es-419.coffee Happy to help. The only liberty that i took was to change the provided example name on 266 from Nick Winters to Max Powers, as a reference to The Simpsons, episode S10E13. (=^B) --- app/locale/es-419.coffee | 264 +++++++++++++++++++-------------------- 1 file changed, 132 insertions(+), 132 deletions(-) diff --git a/app/locale/es-419.coffee b/app/locale/es-419.coffee index e692a93ff..7a066e39e 100644 --- a/app/locale/es-419.coffee +++ b/app/locale/es-419.coffee @@ -15,9 +15,9 @@ module.exports = nativeDescription: "español (América Latina)", englishDescrip fork: "Bifurcar" play: "Jugar" retry: "Reintentar" -# watch: "Watch" -# unwatch: "Unwatch" -# submit_patch: "Submit Patch" +# watch: "Ver" +# unwatch: "Dejar de ver" +# submit_patch: "Enviar Parche" units: second: "segundo" @@ -26,14 +26,14 @@ module.exports = nativeDescription: "español (América Latina)", englishDescrip minutes: "minutos" hour: "hora" hours: "horas" -# day: "day" -# days: "days" -# week: "week" -# weeks: "weeks" -# month: "month" -# months: "months" -# year: "year" -# years: "years" +# day: "día" +# days: "dias" +# week: "semana" +# weeks: "semanas" +# month: "mes" +# months: "meses" +# year: "año" +# years: "años" modal: close: "Cerrar" @@ -44,14 +44,14 @@ module.exports = nativeDescription: "español (América Latina)", englishDescrip nav: play: "Jugar" -# community: "Community" +# community: "Comunidad" editor: "Editor" blog: "Blog" forum: "Foro" -# account: "Account" -# profile: "Profile" -# stats: "Stats" -# code: "Code" +# account: "Cuenta" +# profile: "Perfil" +# stats: "Estadísticas" +# code: "Código" admin: "Admin" home: "Inicio" contribute: "Contribuir" @@ -79,7 +79,7 @@ module.exports = nativeDescription: "español (América Latina)", englishDescrip recover: recover_account_title: "recuperar cuenta" send_password: "Enviar Contraseña de Recuperación" -# recovery_sent: "Recovery email sent." +# recovery_sent: "Email de recuperación enviado" signup: create_account_title: "Crear Cuenta para Guardar el Progreso" @@ -91,7 +91,7 @@ module.exports = nativeDescription: "español (América Latina)", englishDescrip sign_up: "Registrarse" log_in: "Inicia sesión con tu contraseña" social_signup: "O, puedes conectarte a través de Facebook o G+:" -# required: "You need to log in before you can go that way." +# required: "Necesitas loguearte para poder acceder allí." home: slogan: "Aprende a programar jugando" @@ -104,12 +104,12 @@ module.exports = nativeDescription: "español (América Latina)", englishDescrip for_beginners: "Para Principiantes" multiplayer: "Multijugador" for_developers: "Para Desarrolladores" -# javascript_blurb: "The language of the web. Great for writing websites, web apps, HTML5 games, and servers." -# python_blurb: "Simple yet powerful, Python is a great general purpose programming language." -# coffeescript_blurb: "Nicer JavaScript syntax." -# clojure_blurb: "A modern Lisp." -# lua_blurb: "Game scripting language." -# io_blurb: "Simple but obscure." +# javascript_blurb: "El leguaje de la web. Ideal para desarrollar sitios web, aplicaciónes web, juegos HTML5, y servidores." +# python_blurb: "Simple y poderoso a la vez, Python es un excelente lenguaje de programación multipropósito" +# coffeescript_blurb: "JavaScript, con una sintaxis mas bonita." +# clojure_blurb: "Un Lisp moderno" +# lua_blurb: "Lenguaje para el desarrollo de juegos" +# io_blurb: "Simple pero oscuro." play: choose_your_level: "Elige tu nivel" @@ -124,13 +124,13 @@ module.exports = nativeDescription: "español (América Latina)", englishDescrip campaign_multiplayer_description: "... en las que programas cara-a-cara contra otros jugadores." campaign_player_created: "Creados-Por-Jugadores" campaign_player_created_description: "... en los que luchas contra la creatividad de tus compañeros Hechiceros Artesanales." -# campaign_classic_algorithms: "Classic Algorithms" -# campaign_classic_algorithms_description: "... in which you learn the most popular algorithms in Computer Science." +# campaign_classic_algorithms: "Algorítmos clásicos" +# campaign_classic_algorithms_description: "... en donde aprenderas los algorítmos mas populares de las Ciencias de la Computación." level_difficulty: "Dificultad: " play_as: "Jugar Como " spectate: "Observar" -# players: "players" -# hours_played: "hours played" +# players: "jugadores" +# hours_played: "horas jugadas" contact: contact_us: "Contacta a CodeCombat" @@ -175,7 +175,7 @@ module.exports = nativeDescription: "español (América Latina)", englishDescrip autosave: "Cambios Guardados Automáticamente" me_tab: "Yo" picture_tab: "Imagen" -# upload_picture: "Upload a picture" +# upload_picture: "Subir una foto." wizard_tab: "Hechicero" password_tab: "Contraseña" emails_tab: "Correos" @@ -184,16 +184,16 @@ module.exports = nativeDescription: "español (América Latina)", englishDescrip new_password: "Nueva Contraseña" new_password_verify: "Verificar" email_subscriptions: "Suscripciones de Email" -# email_subscriptions_none: "No Email Subscriptions." +# email_subscriptions_none: "Sin subscripción de Email." email_announcements: "Noticias" email_announcements_description: "Recibe correos electrónicos con las últimas noticias y desarrollos de CodeCombat." email_notifications: "Notificaciones" -# email_notifications_summary: "Controls for personalized, automatic email notifications related to your CodeCombat activity." -# email_any_notes: "Any Notifications" -# email_any_notes_description: "Disable to stop all activity notification emails." -# email_news: "News" -# email_recruit_notes: "Job Opportunities" -# email_recruit_notes_description: "If you play really well, we may contact you about getting you a (better) job." +# email_notifications_summary: "Controles para personalizar la recepción automatica de emails con notificaciones relacionadas a tu actividad en CodeCombat." +# email_any_notes: "Cualquier Notificación" +# email_any_notes_description: "Desactivar para detener la recepción de emails con notificaciónes." +# email_news: "Novedades" +# email_recruit_notes: "Oportunidades laborales" +# email_recruit_notes_description: "Si juegas realmente bien, es posible te contactemos para ofrecerte un (mejor) trabajo." contributor_emails: "Emails Clase Contribuyente" contribute_prefix: "¡Estamos buscando gente que se una a nuestro grupo! Echa un vistazo a la " contribute_page: "página de contribución" @@ -202,117 +202,117 @@ module.exports = nativeDescription: "español (América Latina)", englishDescrip error_saving: "Error al Guardar" saved: "Cambios Guardados" password_mismatch: "La contraseña no coincide." -# password_repeat: "Please repeat your password." +# password_repeat: "Por favor, repite tu contraseña." job_profile: "Perfil de Trabajo" job_profile_approved: "Tu perfil de trabajo ha sido aprobado por CodeCombat. Los empleadores podrán verlo hasta que lo marques como inactivo o permanezca sin cambios por cuatro semanas." job_profile_explanation: "¡Hola! Llena esto, y te contactaremos acerca de encontrar un trabajo como desarrollador de software." -# sample_profile: "See a sample profile" -# view_profile: "View Your Profile" +# sample_profile: "Ver un ejemplo de perfil" +# view_profile: "Ver Tu Perfil" account_profile: -# settings: "Settings" -# edit_profile: "Edit Profile" -# done_editing: "Done Editing" +# settings: "Ajustes" +# edit_profile: "Editar Perfil" +# done_editing: "Edición Completada" profile_for_prefix: "Perfil para " profile_for_suffix: "" -# featured: "Featured" -# not_featured: "Not Featured" +# featured: "Soportado" +# not_featured: "No Soportado" looking_for: "Buscando:" last_updated: "Última Actualización:" contact: "Contacto" -# active: "Looking for interview offers now" -# inactive: "Not looking for offers right now" -# complete: "complete" -# next: "Next" -# next_city: "city?" -# next_country: "pick your country." -# next_name: "name?" -# next_short_description: "write a short description." -# next_long_description: "describe your desired position." -# next_skills: "list at least five skills." -# next_work: "chronicle your work history." -# next_education: "recount your educational ordeals." -# next_projects: "show off up to three projects you've worked on." -# 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." +# active: "En busca de entrevistas ahora mismo" +# inactive: "No busco entrevistas por ahora" +# complete: "completado" +# next: "Siguiente" +# next_city: "¿Ciudad?" +# next_country: "selecciona tu país" +# next_name: "¿Nombre?" +# next_short_description: "escribe una breve descripción." +# next_long_description: "describe a que posción aspiras." +# next_skills: "nombra al menos cinco de tus cualidades." +# next_work: "detalla tu historial laboral." +# next_education: "realiza un recuento de tus méritos academicos." +# next_projects: "exhibe un máximo de tres proyectos en los que hayas participado." +# next_links: "añade cualquier enlace personal o social" +# next_photo: "añade una foto profesional (opcional)." +# next_active: "etiquetate como abierto a ofertas, para aparecer en las busquedas." # 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." -# links_name: "Link Name" -# links_name_help: "What are you linking to?" -# links_link_blurb: "Link URL" -# basics_header: "Update basic info" -# basics_active: "Open to Offers" -# 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_help: "City you want to work in (or live in now)." -# basics_country: "Country" -# 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.)" -# basics_looking_for: "Looking For" -# basics_looking_for_full_time: "Full-time" -# basics_looking_for_part_time: "Part-time" -# basics_looking_for_remote: "Remote" -# 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_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." -# short_description: "Tagline" -# short_description_help: "Who are you, and what are you looking for? 140 characters max." -# skills_header: "Skills" -# skills_help: "Tag relevant developer skills in order of proficiency." -# long_description_header: "Describe your desired position" -# long_description_blurb: "Tell employers how awesome you are and what role you want." -# long_description: "Self Description" -# long_description_help: "Describe yourself to potential employers. Keep it short and to the point. We recommend outlining the position that would most interest you. Tasteful markdown okay; 600 characters max." +# example_personal_site: "Sitio Personal" +# links_header: "Enlaces Personale" +# links_blurb: "Añade enlaces a cualquier otro sitio o perfil que desees destacar, como tu GitHub, LinkedIn, o blog." +# links_name: "Nombre del enlace" +# links_name_help: "¿A que estas enlazando?" +# links_link_blurb: "URL del enlace" +# basics_header: "Actualizar información básica" +# basics_active: "Abierto a ofertas" +# basics_active_help: "¿Quieres ofertas para entrevistarte ahora mismo?" +# basics_job_title: "Posición Laboral deseada" +# basics_job_title_help: "¿Qué posición laboral estas buscando?" +# basics_city: "Ciudad" +# basics_city_help: "Ciudad en la que deseas trabajar (o en la que vives ahora)." +# basics_country: "País" +# basics_country_help: "País en el que deseas trabajar (o en el que vives ahora)." +# basics_visa: "Estatus laboral en EEUU" +# basics_visa_help: "¿Te encuentras autorizado para trabajar en los EEUU, o necesitas un patrocinador de visa? (Si vives en Canada o australia, selecciona autorizado.)" +# basics_looking_for: "Buscando" +# basics_looking_for_full_time: "Tiempo completo" +# basics_looking_for_part_time: "Tiempo parcial" +# basics_looking_for_remote: "A distacia" +# basics_looking_for_contracting: "Contratación" +# basics_looking_for_internship: "Pasantía" +# basics_looking_for_help: "¿Qué tipo de posición estas buscando como desarrollador?" +# name_header: "Escribe tu nombre" +# name_anonymous: "Desarrollador anónimo" +# name_help: "El nombre que los empleadores verán, por ejemplo 'Max Power'." +# short_description_header: "Descríbete en pocas palabras" +# short_description_blurb: "Añade un lema, para que un empleador pueda conocerte mejor facilmente." +# short_description: "Lema" +# short_description_help: "¿Quién eres, y que estas buscando? 140 caractéres máximo." +# skills_header: "Cualidades" +# skills_help: "Etiqueta tus cualidades más relevantes como desarrollador, en orden de competencia." +# long_description_header: "Describe tu posición laboral deseada" +# long_description_blurb: "Dile a los empleadores lo genial que eres, y que rol estas buscando." +# long_description: "Auto Descripción" +# long_description_help: "Describete a ti mismo para tus potenciales empleadores. Mantenlo corto y ve al grano. Te recomendamos destacar la posición laboral de mayor interes para ti. Un enfoque reduccionista, de buen gusto, es bienvenido; 600 caracteres mmáximo." work_experience: "Experiencia de Trabajo" -# work_header: "Chronicle your work history" -# work_years: "Years of Experience" -# work_years_help: "How many years of professional experience (getting paid) developing software do you have?" -# work_blurb: "List your relevant work experience, most recent first." -# work_employer: "Employer" -# 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_help: "When did you hold this gig?" -# work_description: "Description" -# work_description_help: "What did you do there? (140 chars; optional)" +# work_header: "Detalla tu historial laboral" +# work_years: "Años de Experiencia" +# work_years_help: "Cuántos años de experiencia profesional (pagos) desarrollando software tienes? +# work_blurb: "Realiza una lista con lo que consideres es tu experiencia laboral relevante, comenzando por la más reciente." +# work_employer: "Empleador" +# work_employer_help: "Nombre de tu empleador." +# work_role: "Nombre de la posición laboral" +# work_role_help: "¿Cuál era tu posición laboral o rol?" +# work_duration: "Duración" +# work_duration_help: "¿Cuánto duro esa experiencia?" +# work_description: "Descripción" +# work_description_help: "¿Qué hacías allí? (140 caracteres; opcional)" education: "Educación" -# education_header: "Recount your academic ordeals" -# education_blurb: "List your academic ordeals." -# education_school: "School" -# education_school_help: "Name of your school." -# education_degree: "Degree" -# education_degree_help: "What was your degree and field of study?" -# education_duration: "Dates" -# education_duration_help: "When?" -# education_description: "Description" -# education_description_help: "Highlight anything about this educational experience. (140 chars; optional)" +# education_header: "Realiza un recuento de tus méritos academicos" +# education_blurb: "Escribe un recuento de tus méritos academicos." +# education_school: "Escuela" +# education_school_help: "Nombre de tu escuela." +# education_degree: "Título" +# education_degree_help: "¿Cuál fue tu título y área de estudio" +# education_duration: "Fechas" +# education_duration_help: "¿Cuándo?" +# education_description: "Descripción" +# education_description_help: "Destaca cualquier cosa acerca de esta experiencia educacional. (140 caracteres; opcional)" our_notes: "Nuestras Notas" -# remarks: "Remarks" +# remarks: "Observaciones" projects: "Proyectos" -# 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_help: "What was the project called?" -# project_description: "Description" -# 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_help: "Link to the project." -# player_code: "Player Code" +# projects_header: "Añade 3 proyectos" +# projects_header_2: "Proyectos (Top 3)" +# projects_blurb: "Destaca tus proyectos para sorprender a los empleadores." +# project_name: "Nombre del Proyecto" +# project_name_help: "¿Cómo se llamaba el proyecto?" +# project_description: "Descripción" +# project_description_help: "Describe el proyecto brevemente.." +# project_picture: "Foto" +# project_picture_help: "Sube una imagen de 230x115px (o mayor) mostrando el proyecto" +# project_link: "Enlace" +# project_link_help: "Enlace al proyecto." +# player_code: "Código de Jugador" employers: # hire_developers_not_credentials: "Hire developers, not credentials." From db61249ac7c10aa30f4c3c113910bf1b8ddd4d38 Mon Sep 17 00:00:00 2001 From: Driphter Date: Wed, 24 Sep 2014 02:57:54 -0400 Subject: [PATCH 02/34] Added support for 'codeLanguage' when setting the 'favoriteLanguage' --- app/views/user/MainUserView.coffee | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/app/views/user/MainUserView.coffee b/app/views/user/MainUserView.coffee index a200ab989..dd19112cd 100644 --- a/app/views/user/MainUserView.coffee +++ b/app/views/user/MainUserView.coffee @@ -9,7 +9,7 @@ class LevelSessionsCollection extends CocoCollection model: LevelSession constructor: (userID) -> - @url = "/db/user/#{userID}/level.sessions?project=state.complete,levelID,levelName,changed,team,submittedCodeLanguage,totalScore&order=-1" + @url = "/db/user/#{userID}/level.sessions?project=state.complete,levelID,levelName,changed,team,codeLanguage,submittedCodeLanguage,totalScore&order=-1" super() module.exports = class MainUserView extends UserView @@ -30,7 +30,9 @@ module.exports = class MainUserView extends UserView multiPlayerSessions.push levelSession else singlePlayerSessions.push levelSession - languageCounts[levelSession.get 'submittedCodeLanguage'] = (languageCounts[levelSession.get 'submittedCodeLanguage'] or 0) + 1 + language = levelSession.get('codeLanguage') or levelSession.get('submittedCodeLanguage') + if language + languageCounts[language] = (languageCounts[language] or 0) + 1 mostUsedCount = 0 favoriteLanguage = null for language, count of languageCounts From 3d07dfb14c7cc21f36e481d0f0655d29e6c8d76e Mon Sep 17 00:00:00 2001 From: enricpc Date: Wed, 24 Sep 2014 17:39:38 +0200 Subject: [PATCH 03/34] Update ca.coffee --- app/locale/ca.coffee | 114 +++++++++++++++++++++---------------------- 1 file changed, 57 insertions(+), 57 deletions(-) diff --git a/app/locale/ca.coffee b/app/locale/ca.coffee index 0fd22e96c..0da8f7dbf 100644 --- a/app/locale/ca.coffee +++ b/app/locale/ca.coffee @@ -3,11 +3,11 @@ module.exports = nativeDescription: "Català", englishDescription: "Catalan", tr loading: "Carregant..." saving: "Guardant..." sending: "Enviant..." -# send: "Send" + send: "Enviat" cancel: "Cancel·lant" save: "Guardar" # publish: "Publish" -# create: "Create" + create: "Crear" delay_1_sec: "1 segon" delay_3_sec: "3 segons" delay_5_sec: "5 segons" @@ -20,20 +20,20 @@ module.exports = nativeDescription: "Català", englishDescription: "Catalan", tr # submit_patch: "Submit Patch" # units: -# second: "second" -# seconds: "seconds" -# minute: "minute" -# minutes: "minutes" -# hour: "hour" -# hours: "hours" -# day: "day" -# days: "days" -# week: "week" -# weeks: "weeks" -# month: "month" -# months: "months" -# year: "year" -# years: "years" + second: "segon" + seconds: "segons" + minute: "minut" + minutes: "minuts" + hour: "hora" + hours: "hores" + day: "dia" + days: "dies" + week: "setmana" + weeks: "setmanes" + month: "mes" + months: "mesos" + year: "any" + years: "anys" modal: close: "Tancar" @@ -44,12 +44,12 @@ module.exports = nativeDescription: "Català", englishDescription: "Catalan", tr nav: play: "Nivells" # The top nav bar entry where players choose which levels to play -# community: "Community" + community: "Comunitat" editor: "Editor" blog: "Blog" forum: "Fòrum" -# account: "Account" -# profile: "Profile" + account: "Compte" + profile: "Perfil" # stats: "Stats" # code: "Code" admin: "Admin" @@ -72,14 +72,14 @@ module.exports = nativeDescription: "Català", englishDescription: "Catalan", tr login: sign_up: "Crear un compte" log_in: "Iniciar Sessió" -# logging_in: "Logging In" + logging_in: "Iniciant Sessió" log_out: "Tancar Sessió" recover: "Recuperar un compte" recover: recover_account_title: "Recuperar Compte" send_password: "Enviar contrasenya oblidada" -# recovery_sent: "Recovery email sent." + recovery_sent: "Correu de recuperació de contrasenya enviat." signup: create_account_title: "Crear un compte per tal de guardar els progressos" @@ -124,27 +124,27 @@ module.exports = nativeDescription: "Català", englishDescription: "Catalan", tr campaign_multiplayer_description: "... on programes cara a cara contra altres jugadors." campaign_player_created: "Creats pel Jugador" campaign_player_created_description: "... on lluites contra la creativitat dels teus companys Artisan Wizards." -# campaign_classic_algorithms: "Classic Algorithms" + campaign_classic_algorithms: "Algoritmes classics" # campaign_classic_algorithms_description: "... in which you learn the most popular algorithms in Computer Science." level_difficulty: "Dificultat: " play_as: "Jugar com" spectate: "Spectate" -# players: "players" + players: "jugadors" # hours_played: "hours played" # items: "Items" -# heroes: "Heroes" + heroes: "Herois" # achievements: "Achievements" -# account: "Account" + account: "Conta" # settings: "Settings" -# next: "Next" -# previous: "Previous" + next: "Següent" + previous: "Anterior" # choose_inventory: "Equip Items" # items: -# armor: "Armor" -# hands: "Hands" -# accessories: "Accessories" -# books: "Books" + armor: "Armadura" + hands: "Mans" + accessories: "Accessoris" + books: "Llibres" # minions: "Minions" # misc: "Misc" @@ -162,7 +162,7 @@ module.exports = nativeDescription: "Català", englishDescription: "Catalan", tr # 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." diplomat_suggestion: -# title: "Help translate CodeCombat!" + title: "Ajudaa traduir CodeCombat!" # sub_heading: "We need your language skills." pitch_body: "We develop CodeCombat in English, but we already have players all over the world. Many of them want to play in Catalan, but don't speak English, so if you can speak both, please consider signing up to be a Diplomat and help translate both the CodeCombat website and all the levels into Catalan." missing_translations: "Until we can translate everything into Catalan, you'll see English when Catalan isn't available." @@ -173,12 +173,12 @@ module.exports = nativeDescription: "Català", englishDescription: "Catalan", tr # title: "Wizard Settings" # customize_avatar: "Customize Your Avatar" # active: "Active" -# color: "Color" -# group: "Group" + color: "Color" + group: "Grup" # clothes: "Clothes" # trim: "Trim" # cloud: "Cloud" -# team: "Team" + team: "Equip" # spell: "Spell" # boots: "Boots" # hue: "Hue" @@ -186,29 +186,29 @@ module.exports = nativeDescription: "Català", englishDescription: "Catalan", tr # lightness: "Lightness" # account_settings: -# title: "Account Settings" -# not_logged_in: "Log in or create an account to change your settings." -# autosave: "Changes Save Automatically" -# me_tab: "Me" -# picture_tab: "Picture" -# upload_picture: "Upload a picture" -# wizard_tab: "Wizard" -# password_tab: "Password" + title: "Configuració de la compta" + not_logged_in: "Inicia sessió o crea una compta per a canviar la configuració." + autosave: "Els canvis es guarden automàticament" + me_tab: "Jo" + picture_tab: "Foto" + upload_picture: "Carrega una foto" + wizard_tab: "Bruixot" + password_tab: "Contrasenya" # emails_tab: "Emails" -# admin: "Admin" -# wizard_color: "Wizard Clothes Color" -# new_password: "New Password" + admin: "Administrador" + wizard_color: "Color de la roba" + new_password: "Contrasenya nova" # new_password_verify: "Verify" # email_subscriptions: "Email Subscriptions" # email_subscriptions_none: "No Email Subscriptions." # email_announcements: "Announcements" # email_announcements_description: "Get emails on the latest news and developments at CodeCombat." -# email_notifications: "Notifications" + email_notifications: "Notificacions" # email_notifications_summary: "Controls for personalized, automatic email notifications related to your CodeCombat activity." # email_any_notes: "Any Notifications" # email_any_notes_description: "Disable to stop all activity notification emails." -# email_news: "News" -# email_recruit_notes: "Job Opportunities" + email_news: "Noticies" + email_recruit_notes: "Oportunitats de feina" # email_recruit_notes_description: "If you play really well, we may contact you about getting you a (better) job." # contributor_emails: "Contributor Class Emails" # contribute_prefix: "We're looking for people to join our party! Check out the " @@ -216,18 +216,18 @@ module.exports = nativeDescription: "Català", englishDescription: "Catalan", tr # contribute_suffix: " to find out more." # email_toggle: "Toggle All" # error_saving: "Error Saving" -# saved: "Changes Saved" -# password_mismatch: "Password does not match." -# password_repeat: "Please repeat your password." + saved: "Canvis desats" + password_mismatch: "Les contrasenyes no coincideixen." + password_repeat: "Siusplau, repetiu la contrasenya." # job_profile: "Job Profile" # 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: "Mira el teu perfil" # account_profile: -# settings: "Settings" -# edit_profile: "Edit Profile" + settings: "Configuració" + edit_profile: "Modifica el perfil" # done_editing: "Done Editing" # profile_for_prefix: "Profile for " # profile_for_suffix: "" @@ -235,11 +235,11 @@ module.exports = nativeDescription: "Català", englishDescription: "Catalan", tr # not_featured: "Not Featured" # looking_for: "Looking for:" # last_updated: "Last updated:" -# contact: "Contact" + contact: "Contacta" # active: "Looking for interview offers now" # inactive: "Not looking for offers right now" # complete: "complete" -# next: "Next" + next: "Seguent" # next_city: "city?" # next_country: "pick your country." # next_name: "name?" From 94838af17fdf97ee09b95e7ffe41a99751ce3dbc Mon Sep 17 00:00:00 2001 From: Nick Winter Date: Wed, 24 Sep 2014 09:38:45 -0700 Subject: [PATCH 04/34] Fixed scroll bars messing up inventory view. --- app/styles/game-menu/inventory-view.sass | 4 ++-- app/templates/game-menu/inventory-view.jade | 5 +++-- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/app/styles/game-menu/inventory-view.sass b/app/styles/game-menu/inventory-view.sass index 70615c5ea..4f8eeb27e 100644 --- a/app/styles/game-menu/inventory-view.sass +++ b/app/styles/game-menu/inventory-view.sass @@ -34,7 +34,7 @@ $stashWidth: $totalWidth - $equippedWidth - $stashMargin bottom: 0 //bottom: $selectedAreaHeight + 10 right: 0 - overflow: scroll + overflow: hidden .item-slot-row //background-color: rgba(35, 112, 124, 0.5) @@ -128,7 +128,7 @@ $stashWidth: $totalWidth - $equippedWidth - $stashMargin right: 0 top: 0 bottom: 0 - overflow: scroll + overflow-y: scroll border: 2px solid #ccc padding: 4px background-color: white diff --git a/app/templates/game-menu/inventory-view.jade b/app/templates/game-menu/inventory-view.jade index 71ff11d21..bda583512 100644 --- a/app/templates/game-menu/inventory-view.jade +++ b/app/templates/game-menu/inventory-view.jade @@ -45,6 +45,7 @@ #available-equipment h4#stash-description - for item in items - .list-group-item(class=item.classes, data-item-id=item.get('original')) + ul.list-group + for item in items + li.list-group-item(class=item.classes, data-item-id=item.get('original')) From ed30b7b569dbaf820f554c38ceacf95444751b5f Mon Sep 17 00:00:00 2001 From: Imperadeiro98 Date: Wed, 24 Sep 2014 19:14:09 +0100 Subject: [PATCH 05/34] Update pt-PT.coffee --- app/locale/pt-PT.coffee | 362 ++++++++++++++++++++-------------------- 1 file changed, 181 insertions(+), 181 deletions(-) diff --git a/app/locale/pt-PT.coffee b/app/locale/pt-PT.coffee index f89c20a6d..a3832abe3 100644 --- a/app/locale/pt-PT.coffee +++ b/app/locale/pt-PT.coffee @@ -64,7 +64,7 @@ module.exports = nativeDescription: "Português (Portugal)", englishDescription: versions: save_version_title: "Guardar Nova Versão" new_major_version: "Nova Versão Principal" - cla_prefix: "Para guardar as alterações, precisa de concordar com o nosso" + cla_prefix: "Para guardar as alterações, precisas de concordar com o nosso" cla_url: "CLA" cla_suffix: "." cla_agree: "EU CONCORDO" @@ -90,16 +90,16 @@ module.exports = nativeDescription: "Português (Portugal)", englishDescription: creating: "A Criar Conta..." sign_up: "Registar" log_in: "iniciar sessão com palavra-passe" - social_signup: "Ou pode registar-se através do Facebook ou do Google+:" - required: "Precisa de iniciar sessão antes de prosseguir dessa forma." + social_signup: "Ou podes registar-te através do Facebook ou do Google+:" + required: "Precisas de iniciar sessão antes de prosseguir dessa forma." home: - slogan: "Aprenda a Programar ao Jogar um Jogo" - no_ie: "O CodeCombat não funciona no Internet Explorer 9 ou anterior. Desculpe!" + slogan: "Aprende a Programar ao Jogar um Jogo" + no_ie: "O CodeCombat não funciona no Internet Explorer 9 ou anterior. Desculpa!" no_mobile: "O CodeCombat não foi feito para dispositivos móveis e pode não funcionar!" play: "Jogar" # The big play button that just starts playing a level - old_browser: "Ups, o seu navegador é demasiado antigo para que o CodeCombat funcione. Desculpe!" - old_browser_suffix: "Mesmo assim pode tentar, mas provavelmente não irá funcionar." + old_browser: "Ups, o teu navegador é demasiado antigo para que o CodeCombat funcione. Desculpa!" + old_browser_suffix: "Mesmo assim podes tentar, mas provavelmente não irá funcionar." campaign: "Campanha" for_beginners: "Para Iniciantes" multiplayer: "Multijogador" @@ -107,25 +107,25 @@ module.exports = nativeDescription: "Português (Portugal)", englishDescription: javascript_blurb: "A linguagem da web. Ótima para escrever websites, aplicações da web, jogos HTML5 e servidores." python_blurb: "Simples mas poderoso, o Python é uma linguagem de programação ótima para propósitos gerais." coffeescript_blurb: "Sintaxe do Javascript mais agradável." - clojure_blurb: "Um Lisp moderno" - lua_blurb: "Linguagem para scripts de jogos" - io_blurb: "Simples mas obscuro" + clojure_blurb: "Um Lisp moderno." + lua_blurb: "Linguagem para scripts de jogos." + io_blurb: "Simples mas obscuro." play: - choose_your_level: "Escolha o Seu Nível" - adventurer_prefix: "Pode saltar para um dos níveis abaixo ou discutir os níveis no " + choose_your_level: "Escolhe o Teu Nível" + adventurer_prefix: "Podes saltar para um dos níveis abaixo ou discutir os níveis no " adventurer_forum: "fórum do Aventureiro" adventurer_suffix: "." campaign_beginner: "Campanha para Iniciantes" - campaign_beginner_description: "... onde aprende a magia da programação." + campaign_beginner_description: "... onde aprendes a magia da programação." campaign_dev: "Níveis mais Difíceis Aleatórios" - campaign_dev_description: "... onde aprende a interface enquanto faz coisas um bocadinho mais difíceis." + campaign_dev_description: "... onde aprendes a interface enquanto fazes coisas um bocadinho mais difíceis." campaign_multiplayer: "Arenas Multijogador" - campaign_multiplayer_description: "... onde programa frente-a-frente contra outros jogadores." + campaign_multiplayer_description: "... onde programas frente-a-frente contra outros jogadores." campaign_player_created: "Criados por Jogadores" - campaign_player_created_description: "... onde combate contra a criatividade dos seus colegas Feiticeiros Artesãos." + campaign_player_created_description: "... onde combates contra a criatividade dos teus colegas Feiticeiros Artesãos." campaign_classic_algorithms: "Algoritmos Clássicos" - campaign_classic_algorithms_description: "... onde aprende os algoritmos mais populares da Ciência da Computação." + campaign_classic_algorithms_description: "... onde aprendes os algoritmos mais populares da Ciência da Computação." level_difficulty: "Dificuldade: " play_as: "Jogar Como" spectate: "Espectar" @@ -149,29 +149,29 @@ module.exports = nativeDescription: "Português (Portugal)", englishDescription: misc: "Vários" contact: - contact_us: "Contacte o CodeCombat" - welcome: "É bom ter notícias suas! Use este formulário para nos enviar um e-mail. " - contribute_prefix: "Se está interessado em contribuir, dê uma olhadela à nossa " + contact_us: "Contacta o CodeCombat" + welcome: "É bom ter notícias tuas! Usa este formulário para nos enviares um e-mail. " + contribute_prefix: "Se estás interessado em contribuir, dá uma olhadela à nossa " contribute_page: "página de contribuição" contribute_suffix: "!" - forum_prefix: "Para algo público, por favor use o " + forum_prefix: "Para algo público, por favor usa o " forum_page: "nosso fórum" forum_suffix: " como alternativa." send: "Enviar Feedback" contact_candidate: "Contactar Candidato" - recruitment_reminder: "Use este formulário para chegar a candidatos que esteja interessado em entrevistar. Lembre-se que o CodeCombat cobra 15% do salário do primeiro ano. A taxa é cobrada no momento da contratação do empregado e é reembolsável durante 90 dias, no caso de o trabalhador não se manter empregado. A empregados em part-time, no estrangeiro e a contrato não são aplicadas taxas, porque são internos." + recruitment_reminder: "Usa este formulário para chegares a candidatos que estejas interessado em entrevistar. Lembra-te que o CodeCombat cobra 15% do salário do primeiro ano. A taxa é cobrada no momento da contratação do empregado e é reembolsável durante 90 dias, no caso de o trabalhador não se manter empregado. A empregados em part-time, no estrangeiro e a contrato não são aplicadas taxas, porque são internos." diplomat_suggestion: - title: "Ajude a traduzir o CodeCombat!" - sub_heading: "Precisamos das suas habilidades linguísticas." - pitch_body: "Desenvolvemos o CodeCombat em Inglês, mas já temos jogadores em todo o mundo. Muitos deles querem jogar em Português e não falam Inglês, por isso, se sabe falar ambas, por favor considere registar-se como Diplomata para ajudar a traduzir o website do CodeCombat e todos os níveis para Português." - missing_translations: "Enquanto não conseguirmos traduzir tudo para Português, irá ver em Inglês o que não estiver disponível em Português." - learn_more: "Saiba mais sobre ser um Diplomata" - subscribe_as_diplomat: "Subscreva-se como Diplomata" + title: "Ajuda a traduzir o CodeCombat!" + sub_heading: "Precisamos das tuas habilidades linguísticas." + pitch_body: "Desenvolvemos o CodeCombat em Inglês, mas já temos jogadores em todo o mundo. Muitos deles querem jogar em Português e não falam Inglês, por isso, se sabes falar ambas, por favor considera registar-te como Diplomata para ajudares a traduzir o website do CodeCombat e todos os níveis para Português." + missing_translations: "Enquanto não conseguirmos traduzir tudo para Português, irás ver em Inglês o que não estiver disponível em Português." + learn_more: "Sabe mais sobre ser um Diplomata" + subscribe_as_diplomat: "Subscreve-te como Diplomata" wizard_settings: title: "Definições do Feiticeiro" - customize_avatar: "Personalize o Seu Avatar" + customize_avatar: "Personaliza o Teu Avatar" active: "Ativo" color: "Cor" group: "Grupo" @@ -187,8 +187,8 @@ module.exports = nativeDescription: "Português (Portugal)", englishDescription: account_settings: title: "Definições da Conta" - not_logged_in: "Inicie sessão ou crie uma conta para alterar as suas definições." - autosave: "Alterações Guardam Automaticamente" + not_logged_in: "Inicia sessão ou cria uma conta para alterares as tuas definições." + autosave: "Alterações São Guardadas Automaticamente" me_tab: "Eu" picture_tab: "Fotografia" upload_picture: "Anexar uma fotografia" @@ -202,28 +202,28 @@ module.exports = nativeDescription: "Português (Portugal)", englishDescription: email_subscriptions: "Subscrições de E-mail" email_subscriptions_none: "Sem Subscições de E-mail." email_announcements: "Anúncios" - email_announcements_description: "Receba e-mails sobre as últimas novidades e desenvolvimentos no CodeCombat." + email_announcements_description: "Recebe e-mails sobre as últimas novidades e desenvolvimentos no CodeCombat." email_notifications: "Notificações" - email_notifications_summary: "Controle, de uma forma personalizada e automática, os e-mails de notificações relacionados com a sua atividade no CodeCombat." + email_notifications_summary: "Controla, de uma forma personalizada e automática, os e-mails de notificações relacionados com a tua atividade no CodeCombat." email_any_notes: "Quaisquer Notificações" - email_any_notes_description: "Desative para parar de receber todos os e-mails de notificação de atividade." + email_any_notes_description: "Desativa para parar de receber todos os e-mails de notificação de atividade." email_news: "Notícias" email_recruit_notes: "Oportunidades de Emprego" - email_recruit_notes_description: "Se joga muito bem, podemos contactá-lo para lhe arranjar um (melhor) emprego." - contributor_emails: "Subscrições de E-mail (Contribuintes)" - contribute_prefix: "Estamos à procura de pessoas para se juntarem a nós! Visite a " + email_recruit_notes_description: "Se jogas muito bem, podemos contactar-te para te arranjar um (melhor) emprego." + contributor_emails: "E-mail Para Contribuintes" + contribute_prefix: "Estamos à procura de pessoas para se juntarem a nós! Visita a " contribute_page: "página de contribuição" contribute_suffix: " para mais informações." email_toggle: "Alternar Todos" error_saving: "Erro ao Guardar" saved: "Alterações Guardadas" password_mismatch: "As palavras-passe não coincidem." - password_repeat: "Por favor repita a sua palavra-passe." + password_repeat: "Por favor repete a tua palavra-passe." job_profile: "Perfil de Emprego" - job_profile_approved: "O seu perfil de emprego foi aprovado pelo CodeCombat. Os empregadores poderão vê-lo até que o defina como inativo ou não o tenha alterado à 4 semanas." - job_profile_explanation: "Olá! Preencha isto e entraremos em contacto consigo sobre encontrar um emprego de desenvolvedor de software para si." - sample_profile: "Veja um exemplo de perfil" - view_profile: "Veja o Seu Perfil" + job_profile_approved: "O teu perfil de emprego foi aprovado pelo CodeCombat. Os empregadores poderão ver-te até que o definas como inativo ou não o tenhas alterado à 4 semanas." + job_profile_explanation: "Olá! Preenche isto e entraremos em contacto contigo sobre encontrar um emprego de desenvolvedor de software para ti." + sample_profile: "Vê um exemplo de perfil" + view_profile: "Vê o Teu Perfil" account_profile: settings: "Definições" @@ -241,11 +241,11 @@ module.exports = nativeDescription: "Português (Portugal)", englishDescription: # complete: "complete" next: "Seguinte" next_city: "cidade?" - next_country: "escolha o seu país." + next_country: "escolhe o teu país." next_name: "nome?" - next_short_description: "escreva uma pequena descrição." - next_long_description: "descreva a sua posição desejada." - next_skills: "liste, pelo menos, 5 habilidades." + next_short_description: "escreve uma pequena descrição." + next_long_description: "descreve a tua posição desejada." + next_skills: "lista, pelo menos, 5 habilidades." # next_work: "chronicle your work history." # next_education: "recount your educational ordeals." # next_projects: "show off up to three projects you've worked on." @@ -257,7 +257,7 @@ module.exports = nativeDescription: "Português (Portugal)", englishDescription: links_header: "Ligações Pessoais" # links_blurb: "Link any other sites or profiles you want to highlight, like your GitHub, your LinkedIn, or your blog." links_name: "Nome da Ligação" - links_name_help: "A que é que está a ligar?" + links_name_help: "A que é que estás a ligar?" links_link_blurb: "URL da Ligação" # basics_header: "Update basic info" # basics_active: "Open to Offers" @@ -265,9 +265,9 @@ module.exports = nativeDescription: "Português (Portugal)", englishDescription: # basics_job_title: "Desired Job Title" # basics_job_title_help: "What role are you looking for?" basics_city: "Cidade" - basics_city_help: "Cidade na qual quer trabalhar (ou onde vive agora)." + basics_city_help: "Cidade na qual queres trabalhar (ou onde vives agora)." basics_country: "País" - basics_country_help: "País no qual quer trabalhar (ou onde vive agora)." + basics_country_help: "País no qual queres trabalhar (ou onde vives agora)." # 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.)" basics_looking_for: "À Procura De" @@ -296,7 +296,7 @@ module.exports = nativeDescription: "Português (Portugal)", englishDescription: # work_years_help: "How many years of professional experience (getting paid) developing software do you have?" # work_blurb: "List your relevant work experience, most recent first." work_employer: "Empregador" - work_employer_help: "Nome do seu empregador." + work_employer_help: "Nome do teu empregador." work_role: "Título do Emprego" # work_role_help: "What was your job title or role?" work_duration: "Duração" @@ -307,7 +307,7 @@ module.exports = nativeDescription: "Português (Portugal)", englishDescription: # education_header: "Recount your academic ordeals" # education_blurb: "List your academic ordeals." education_school: "Escola" - education_school_help: "Nome da sua escola." + education_school_help: "Nome da tua escola." # education_degree: "Degree" # education_degree_help: "What was your degree and field of study?" # education_duration: "Dates" @@ -317,13 +317,13 @@ module.exports = nativeDescription: "Português (Portugal)", englishDescription: # our_notes: "CodeCombat's Notes" # remarks: "Remarks" projects: "Projetos" - projects_header: "Adicione 3 projetos" + projects_header: "Adiciona 3 projetos" # projects_header_2: "Projects (Top 3)" # projects_blurb: "Highlight your projects to amaze employers." project_name: "Nome do Projeto" # project_name_help: "What was the project called?" project_description: "Descrição" - project_description_help: "Descreva o projeto em poucas palavras." + project_description_help: "Descreve o projeto em poucas palavras." project_picture: "Imagem" # project_picture_help: "Upload a 230x115px or larger image showing off the project." project_link: "Ligação" @@ -331,10 +331,10 @@ module.exports = nativeDescription: "Português (Portugal)", englishDescription: player_code: "Código do Jogador" employers: - hire_developers_not_credentials: "Contrate programadores, não cartas de recomendação." + hire_developers_not_credentials: "Não contrates cartas de recomendação, mas sim programadores." get_started: "Começar" already_screened: "Nós já selecionamos tecnicamente todos os nossos candidatos" - filter_further: ", mas ainda pode filtrar mais:" + filter_further: ", mas ainda podes filtrar mais:" filter_visa: "Visa" filter_visa_yes: "Autorizado Para Trabalhar Nos EUA" filter_visa_no: "Não Autorizado" @@ -350,18 +350,18 @@ module.exports = nativeDescription: "Português (Portugal)", englishDescription: filter_experience_student: "Estudante Universitário" filter_results: "resultados" start_hiring: "Começar a contratar." - reasons: "Três razões pelas quais deve contratar através de nós:" + reasons: "Três razões pelas quais deves contratar através de nós:" everyone_looking: "Aqui todos estão à procura da próxima oportunidade deles." - everyone_looking_blurb: "Esqueça os cerca de 20% de taxas de respostta do LinkedIn InMail. Todos os que nós listamos neste sítio quer encontrar a nova posição deles e responderá ao seu pedido para uma introdução." - weeding: "Relaxe; fizemos a parte mais difícil por si." - weeding_blurb: "Cada jogador que listamos foi sujeito a um teste das habilidades técnicas. Também fazemos testes por telefone para selecionar candidatos e fazer anotações nos perfis deles para lhe poupar tempo." - pass_screen: "Eles passarão o seu teste técnico." - pass_screen_blurb: "Reveja o código de cada candidato antes de chegar a ele. Um funcionário descobriu que 5x mais programadores nossos passaram o teste técnico deles do que os contratados através do Hacker News." + everyone_looking_blurb: "Esquece os cerca de 20% de taxas de resposta do LinkedIn InMail. Todos os que nós listamos neste sítio querem encontrar a nova posição deles e responderão ao teu pedido para uma introdução." + weeding: "Relaxa; fizemos a parte mais difícil por ti." + weeding_blurb: "Cada jogador que listamos foi sujeito a um teste das habilidades técnicas. Também fazemos testes por telefone para selecionar candidatos e fazer anotações nos perfis deles para te poupar tempo." + pass_screen: "Eles passarão o teu teste técnico." + pass_screen_blurb: "Revê o código de cada candidato antes de chegares a ele. Um funcionário descobriu que 5x mais programadores nossos passaram o teste técnico deles do que os contratados através do Hacker News." make_hiring_easier: "Torne a minha contratação mais fácil, por favor." what: "O que é o CodeCombat?" what_blurb: "O CodeCombat é um jogo de programação, no navegador e multijogador. Os jogadores escrevem código para controlar as forças deles em batalha contra outros programadores. Os nossos jogadores têm experiência com todos os conceitos tecnológicos principais." cost: "Quanto é que cobramos?" - cost_blurb: "Cobramos 15% do salário do primeiro ano e ofereçemos uma garantia de devolução de 100% do dinheiro durante 90 dias. Não cobramos por candidatos que já estejam a ser ativamente entrevistados na sua companhia." + cost_blurb: "Cobramos 15% do salário do primeiro ano e ofereçemos uma garantia de devolução de 100% do dinheiro durante 90 dias. Não cobramos por candidatos que já estejam a ser ativamente entrevistados na tua companhia." candidate_name: "Nome" candidate_location: "Localização" candidate_looking_for: "À Procura de" @@ -386,23 +386,23 @@ module.exports = nativeDescription: "Português (Portugal)", englishDescription: goal: "Objetivo" success: "Successo!" incomplete: "Incompletos" - timed_out: "Ficou sem tempo" + timed_out: "Ficaste sem tempo" failing: "A falhar" action_timeline: "Linha do Tempo de Ações" - click_to_select: "Clique numa unidade para selecioná-la." + click_to_select: "Clica numa unidade para selecioná-la." reload_title: "Recarregar o Código Todo?" - reload_really: "Tem a certeza que quer recarregar este nível de volta ao início?" + reload_really: "Tens a certeza que queres recarregar este nível de volta ao início?" reload_confirm: "Recarregar Tudo" victory_title_prefix: "" victory_title_suffix: " Concluído" victory_sign_up: "Criar Conta para Guardar Progresso" - victory_sign_up_poke: "Quer guardar o seu código? Crie uma conta grátis!" - victory_rate_the_level: "Classifique este nível: " + victory_sign_up_poke: "Queres guardar o teu código? Cria uma conta grátis!" + victory_rate_the_level: "Classifica este nível: " victory_return_to_ladder: "Voltar à Classificação" victory_play_next_level: "Jogar Próximo Nível" victory_go_home: "Ir para o Início" - victory_review: "Conte-nos mais!" - victory_hour_of_code_done: "Terminou?" + victory_review: "Conta-nos mais!" + victory_hour_of_code_done: "Terminaste?" victory_hour_of_code_done_yes: "Sim, terminei a minha Hora do Código™!" guide_title: "Guia" tome_minion_spells: "Feitiços dos Seus Minions" @@ -415,8 +415,8 @@ module.exports = nativeDescription: "Português (Portugal)", englishDescription: tome_cast_button_running: "A Correr" tome_cast_button_ran: "Corrido" tome_submit_button: "Submeter" - tome_select_spell: "Selecione um Feitiço" - tome_select_a_thang: "Selecione Alguém para " + tome_select_spell: "Seleciona um Feitiço" + tome_select_a_thang: "Seleciona Alguém para " tome_available_spells: "Feitiços Disponíveis" hud_continue: "Continuar (shift-espaço)" spell_saved: "Feitiço Guardado" @@ -424,37 +424,37 @@ module.exports = nativeDescription: "Português (Portugal)", englishDescription: keyboard_shortcuts: "Atalhos do Teclado" loading_ready: "Pronto!" loading_start: "Iniciar Nível" - tip_insert_positions: "Pressione Shift e Clique num ponto do mapa para inseri-lo no editor de feitiços." - tip_toggle_play: "Alterne entre Jogar e Pausar com Ctrl+P." + tip_insert_positions: "Pressiona Shift e Clica num ponto do mapa para inseri-lo no editor de feitiços." + tip_toggle_play: "Alterna entre Jogar e Pausar com Ctrl+P." tip_scrub_shortcut: "Ctrl+[ rebobina e Ctrl+] avança." - tip_guide_exists: "Clique no Guia no topo da página para informações úteis." + tip_guide_exists: "Clica no Guia 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." tip_js_beginning: "O JavaScript é apenas o começo." - tip_think_solution: "Pense na solução, não no problema." + tip_think_solution: "Pensa na solução, não no problema." tip_theory_practice: "Teoricamente, não há diferença entre a teoria e a prática. Mas na prática, há. - Yogi Berra" tip_error_free: "Há duas formas de escrever programas sem erros; apenas a terceira funciona. - Alan Perlis" tip_debugging_program: "Se depurar é o processo de remover erros, então programar deve ser o processo de os adicionar. - Edsger W. Dijkstra" - tip_forums: "Vá aos fóruns e diga-nos o que pensa!" + tip_forums: "Vai aos fóruns e diz-nos o que pensas!" tip_baby_coders: "No futuro, até os bebés serão Arcomagos." tip_morale_improves: "O carregamento irá continuar até que a moral melhore." tip_all_species: "Acreditamos em oportunidades iguais para todas as espécies, em relação a aprenderem a programar." tip_reticulating: "A reticular espinhas." - tip_harry: "Você é um Feiticeiro, " + tip_harry: "És um Feiticeiro, " tip_great_responsibility: "Com uma grande habilidade de programação vem uma grande responsabilidade de depuração." - tip_munchkin: "Se não comer os seus vegetais, virá um ogre atrás de si enquanto estiver a dormir." + tip_munchkin: "Se não comeres os teus vegetais, virá um ogre atrás de ti enquanto estiveres a dormir." tip_binary: "Há apenas 10 tipos de pessoas no mundo: aquelas que percebem binário e aquelas que não." tip_commitment_yoda: "Um programador deve ter o compromisso mais profundo, a mente mais séria. ~ Yoda" tip_no_try: "Fazer. Ou não fazer. Não há nenhum tentar. - Yoda" tip_patience: "Paciência tu deves ter, jovem Padawan. - Yoda" tip_documented_bug: "Um erro documentado não é um erro; é uma funcionalidade." tip_impossible: "Parece sempre impossível até ser feito. - Nelson Mandela" - tip_talk_is_cheap: "Falar é fácil. Mostre-me o código. - Linus Torvalds" - tip_first_language: "A coisa mais desastrosa que pode aprender é a sua primeira linguagem de programação. - Alan Kay" + tip_talk_is_cheap: "Falar é fácil. Mostra-me o código. - Linus Torvalds" + tip_first_language: "A coisa mais desastrosa que podes aprender é a tua primeira linguagem de programação. - Alan Kay" tip_hardware_problem: "P: Quantos programadores são necessários para mudar uma lâmpada? R: Nenhum, é um problema de hardware." -# tip_hofstadters_law: "Hofstadter's Law: It always takes longer than you expect, even when you take into account Hofstadter's Law." -# tip_premature_optimization: "Premature optimization is the root of all evil. - Donald Knuth" -# tip_brute_force: "When in doubt, use brute force. - Ken Thompson" + tip_hofstadters_law: "Lei de Hofstadter: Tudo demora sempre mais do que pensas, mesmo quando levas em conta a Lei de Hofstadter." + tip_premature_optimization: "Uma otimização permatura é a raíz de todo o mal. - Donald Knuth" + tip_brute_force: "Quando em dúvida, usa a força bruta. - Ken Thompson" time_current: "Agora:" time_total: "Máximo:" time_goto: "Ir para:" @@ -465,24 +465,24 @@ module.exports = nativeDescription: "Português (Portugal)", englishDescription: game_menu: inventory_tab: "Inventário" choose_hero_tab: "Reiniciar Nível" - save_load_tab: "Guarde/Carregue" + save_load_tab: "Guardar/Carregar" options_tab: "Opções" guide_tab: "Guia" multiplayer_tab: "Multijogador" - inventory_caption: "Equipe o seu herói" - choose_hero_caption: "Escolha o herói, a linguagem" - save_load_caption: "... e veja o histórico" - options_caption: "Configure as definições" + inventory_caption: "Equipa o teu herói" + choose_hero_caption: "Escolhe o herói, a linguagem" + save_load_caption: "... e vê o histórico" + options_caption: "Configura as definições" guide_caption: "Documentos e dicas" - multiplayer_caption: "Jogue com amigos!" + multiplayer_caption: "Joga com amigos!" inventory: choose_inventory: "Equipar Itens" choose_hero: - choose_hero: "Escolha o Seu Herói" + choose_hero: "Escolhe o Teu Herói" programming_language: "Linguagem de Programação" - programming_language_description: "Que linguagem de programação quer usar?" + programming_language_description: "Que linguagem de programação queres usar?" status: "Estado" weapons: "Armas" health: "Vida" @@ -496,7 +496,7 @@ module.exports = nativeDescription: "Português (Portugal)", englishDescription: general_options: "Opções Gerais" volume_label: "Volume" music_label: "Música" - music_description: "Ative ou desative a música de fundo." + music_description: "Ativar ou desativar a música de fundo." autorun_label: "Executar Automaticamente" autorun_description: "Controlar a execução automática do código." editor_config: "Configurar Editor" @@ -504,7 +504,7 @@ module.exports = nativeDescription: "Português (Portugal)", englishDescription: editor_config_level_language_label: "Linguagem para Este Nível" editor_config_level_language_description: "Definir a linguagem de programação para este nível em particular." editor_config_default_language_label: "Linguagem de Programação Predefinida" - editor_config_default_language_description: "Definir a linguagem de programação na qual deseja programar aquando do começo de novos níveis." + editor_config_default_language_description: "Definir a linguagem de programação na qual desejas programar aquando do começo de novos níveis." editor_config_keybindings_label: "Atalhos do Teclado" editor_config_keybindings_default: "Predefinição (Ace)" editor_config_keybindings_description: "Adicionar atalhos de teclado adicionais conhecidos dos editores comuns." @@ -523,12 +523,12 @@ module.exports = nativeDescription: "Português (Portugal)", englishDescription: multiplayer: multiplayer_title: "Definições Multijogador" multiplayer_toggle: "Ativar multijogador" - multiplayer_toggle_description: "Permita que outros se juntem ao seu jogo." - multiplayer_link_description: "Dê esta ligação a alguém para se juntar a si." + multiplayer_toggle_description: "Permite que outros se juntem ao teu jogo." + multiplayer_link_description: "Dá esta ligação a alguém para se juntar a ti." multiplayer_hint_label: "Dica:" - multiplayer_hint: " Clique na ligação para selecionar tudo. Depois carregue em ⌘-C ou Ctrl-C para copiá-la." + multiplayer_hint: " Clica na ligação para selecionar tudo. Depois carrega em ⌘-C ou Ctrl-C para copiá-la." multiplayer_coming_soon: "Mais funcionalidades multijogador em breve!" - multiplayer_sign_in_leaderboard: "Inicie sessão ou crie uma conta para ter a sua solução na tabela de classificação." + multiplayer_sign_in_leaderboard: "Inicia sessão ou cria uma conta para teres a tua solução na tabela de classificação." keyboard_shortcuts: keyboard_shortcuts: "Atalhos de Teclado" @@ -549,7 +549,7 @@ module.exports = nativeDescription: "Português (Portugal)", englishDescription: toggle_pathfinding: "Ativar/desativar a sobreposição do encontrador de caminho." beautify: "Embelezar o código ao estandardizar a formatação." maximize_editor: "Maximizar/minimizar o editor de código." - move_wizard: "Mover o seu Feiticeiro pelo nível." + move_wizard: "Mover o Feiticeiro pelo nível." admin: av_espionage: "Espionagem" @@ -571,21 +571,21 @@ module.exports = nativeDescription: "Português (Portugal)", englishDescription: community: main_title: "Comunidade do CodeCombat" - introduction: "Confira abaixo as formas de se envolver e decida o que lhe parece melhor. Estamos ansiosos por trabalhar consigo!" - level_editor_prefix: "Use o" - level_editor_suffix: "do CodeCombat para criar e editar níveis. Os utilizadores já criaram níveis para aulas, amigos, maratonas hacker, estudantes e familiares. Se criar um nível parece intimidante, pode começar por bifurcar um dos nossos!" - thang_editor_prefix: "Chamamos 'thangs' às unidades do jogo. Use o" - thang_editor_suffix: "para modificar a arte do CodeCombat. Permita às unidades lançar projéteis, altere a direção de uma animação, altere os pontos de vida de uma unidade ou anexe as suas próprias unidades." - article_editor_prefix: "Vê um erro em alguns dos nossos documentos? Quer escrever algumas instruções para as suas criações? Confira o" - article_editor_suffix: "e ajude os jogadores do CodeCombat a obter o máximo do tempo de jogo deles." - find_us: "Encontre-nos nestes sítios" - social_blog: "Leia o blog do CodeCombat no Sett" - social_discource: "Junte-se à discussão no nosso fórum Discourse" - social_facebook: "Goste do CodeCombat no Facebook" - social_twitter: "Siga o CodeCombat no Twitter" - social_gplus: "Junte-se ao CodeCombat no Google+" - social_hipchat: "Fale connosco na sala pública HipChat do CodeCombat" - contribute_to_the_project: "Contribua para o projeto" + introduction: "Confere abaixo as formas de te envolveres e decide o que te parece melhor. Estamos ansiosos por trabalhar contigo!" + level_editor_prefix: "Usa o" + level_editor_suffix: "do CodeCombat para criares e editares níveis. Os utilizadores já criaram níveis para aulas, amigos, maratonas hacker, estudantes e familiares. Se criar um nível parece intimidante, podes começar por bifurcar um dos nossos!" + thang_editor_prefix: "Chamamos 'thangs' às unidades do jogo. Usa o" + thang_editor_suffix: "para modificares a arte do CodeCombat. Dá permição às unidades para lançarem projéteis, altera a direção de uma animação, altera os pontos de vida de uma unidade ou anexa as tuas próprias unidades." + article_editor_prefix: "Vês um erro em alguns dos nossos documentos? Queres escrever algumas instruções para as tuas criações? Confere o" + article_editor_suffix: "e ajuda os jogadores do CodeCombat a obter o máximo do tempo de jogo deles." + find_us: "Encontra-nos nestes sítios" + social_blog: "Lê o blog do CodeCombat no Sett" + social_discource: "Junta-te à discussão no nosso fórum Discourse" + social_facebook: "Gosta do CodeCombat no Facebook" + social_twitter: "Segue o CodeCombat no Twitter" + social_gplus: "Junta-te ao CodeCombat no Google+" + social_hipchat: "Fala connosco na sala pública HipChat do CodeCombat" + contribute_to_the_project: "Contribui para o projeto" editor: main_title: "Editores do CodeCombat" @@ -596,7 +596,7 @@ module.exports = nativeDescription: "Português (Portugal)", englishDescription: back: "Voltar" revert: "Reverter" revert_models: "Reverter Modelos" - pick_a_terrain: "Escolha Um Terreno" + pick_a_terrain: "Escolhe Um Terreno" small: "Pequeno" grassy: "Com Relva" fork_title: "Bifurcar Nova Versão" @@ -636,16 +636,16 @@ module.exports = nativeDescription: "Português (Portugal)", englishDescription: new_article_title: "Criar um Novo Artigo" new_thang_title: "Criar um Novo Tipo de Thang" new_level_title: "Criar um Novo Nível" - new_article_title_login: "Inicie Sessão para Criar um Novo Artigo" - new_thang_title_login: "Inicie Sessão para Criar um Novo Tipo de Thang" - new_level_title_login: "Inicie Sessão para Criar um Novo Nível" + new_article_title_login: "Inicia Sessão para Criares um Novo Artigo" + new_thang_title_login: "Inicia Sessão para Criares um Novo Tipo de Thang" + new_level_title_login: "Inicia Sessão para Criares um Novo Nível" new_achievement_title: "Criar uma Nova Conquista" - new_achievement_title_login: "Inicie Sessão para Criar uma Nova Conquista" + new_achievement_title_login: "Inicia Sessão para Criares uma Nova Conquista" article_search_title: "Procurar Artigos Aqui" thang_search_title: "Procurar Thangs Aqui" level_search_title: "Procurar Níveis Aqui" achievement_search_title: "Procurar Conquistas" - read_only_warning2: "Nota: não pode guardar nenhuma edição feita aqui, porque não tem sessão iniciada." + read_only_warning2: "Nota: não podes guardar nenhuma edição feita aqui, porque não tens sessão iniciada." no_achievements: "Ainda não foram adicionadas conquistas a este nível." # achievement_query_misc: "Key achievement off of miscellanea" # achievement_query_goals: "Key achievement off of level goals" @@ -688,17 +688,17 @@ module.exports = nativeDescription: "Português (Portugal)", englishDescription: about: why_codecombat: "Porquê o CodeCombat?" - why_paragraph_1: "Se quer aprender a programar, não precisa de aulas. Precisa sim de escrever muito código e passar um bom bocado enquanto o faz." + why_paragraph_1: "Se queres aprender a programar, não precisas de aulas. Precisas sim de escrever muito código e passar um bom bocado enquanto o fazes." why_paragraph_2_prefix: "Afinal, é sobre isso que é a programação. Tem de ser divertida. Não divertida do género" why_paragraph_2_italic: "yay uma medalha" why_paragraph_2_center: "mas sim divertida do género" why_paragraph_2_italic_caps: "NÃO MÃE, TENHO DE ACABAR O NÍVEL!" - why_paragraph_2_suffix: "É por isso que o CodeCombat é um jogo multijogador, e não um jogo que não passa de um curso com lições. Nós não vamos parar enquanto não puder parar--mas desta vez, isso é uma coisa boa." - why_paragraph_3: "Se vai ficar viciado em algum jogo, vicie-se neste e torne-se num dos feiticeiros da idade da tecnologia." + why_paragraph_2_suffix: "É por isso que o CodeCombat é um jogo multijogador, e não um jogo que não passa de um curso com lições. Nós não vamos parar enquanto não puderes parar--mas desta vez, isso é uma coisa boa." + why_paragraph_3: "Se vais ficar viciado em algum jogo, vicia-te neste e torna-te num dos feiticeiros da idade da tecnologia." press_title: "Bloggers/Imprensa" - press_paragraph_1_prefix: "Quer escrever sobre nós? Sinta-se à vontade para descarregar e usar todos os recursos incluídos no nosso" + press_paragraph_1_prefix: "Queres escrever sobre nós? Sente-te à vontade para descarregar e usar todos os recursos incluídos no nosso" press_paragraph_1_link: "pacote de imprensa" - press_paragraph_1_suffix: ". Todos os logótipos e imagens podem ser usados sem nos contactar diretamente." + press_paragraph_1_suffix: ". Todos os logótipos e imagens podem ser usados sem sermos contactados diretamente." team: "Equipa" george_title: "CEO" george_blurb: "Homem de Negócios" @@ -714,21 +714,21 @@ module.exports = nativeDescription: "Português (Portugal)", englishDescription: legal: page_title: "Legal" opensource_intro: "O CodeCombat é gratuito para jogar e é totalmente open source." - opensource_description_prefix: "Confira " + opensource_description_prefix: "Confere " github_url: "o nosso GitHub" - opensource_description_center: "e ajude se quiser! O CodeCombat é construído tendo por base dezenas de projetos open source, os quais nós amamos. Veja " + opensource_description_center: "e ajuda se quiseres! O CodeCombat é construído tendo por base dezenas de projetos open source, os quais nós amamos. Vê " archmage_wiki_url: "a nossa wiki dos Arcomagos" opensource_description_suffix: "para uma lista do software que faz com que este jogo seja possível." practices_title: "Melhores Práticas Respeitosas" - practices_description: "Estas são as nossas promessas para consigo, o jogador, com um pouco menos de politiquices." + practices_description: "Estas são as nossas promessas para contigo, o jogador, com um pouco menos de politiquices." privacy_title: "Privacidade" # privacy_description: "We will not sell any of your personal information. We intend to make money through recruitment eventually, but rest assured we will not distribute your personal information to interested companies without your explicit consent." security_title: "Segurança" # security_description: "We strive to keep your personal information safe. As an open source project, our site is freely open to anyone to review and improve our security systems." email_title: "E-mail" - email_description_prefix: "Nós não o inundaremos com spam. Através das" - email_settings_url: "suas definições de e-mail" - email_description_suffix: "ou através de ligações presentes nos e-mails que enviamos, pode mudar as suas preferências e parar a sua subscrição facilmente, em qualquer momento." + email_description_prefix: "Nós não te inundaremos com spam. Através das" + email_settings_url: "tuas definições de e-mail" + email_description_suffix: "ou através de ligações presentes nos e-mails que enviamos, podes mudar as tuas preferências e parar a tua subscrição facilmente, em qualquer momento." cost_title: "Custo" # cost_description: "Currently, CodeCombat is 100% free! One of our main goals is to keep it that way, so that as many people can play as possible, regardless of place in life. If the sky darkens, we might have to charge subscriptions or for some content, but we'd rather not. With any luck, we'll be able to sustain the company with:" recruitment_title: "Recrutamento" @@ -778,11 +778,11 @@ module.exports = nativeDescription: "Português (Portugal)", englishDescription: introduction_desc_intro: "Temos esperanças elevadas para o CodeCombat." introduction_desc_pref: "Queremos ser o sítio onde programadores de todo o tipo vêm para aprender e jogar juntos, introduzir outros ao maravilhoso mundo da programação e retratar as melhores partes da comunidade. Nós não podemos e não queremos fazer isso sozinhos; o que faz de projetos como o GitHub, o Stack Overflow e o Linux ótimos são as pessoas que os usam e constroem neles. Para isso, " introduction_desc_github_url: "o CodeCombat é totalmente open source" - introduction_desc_suf: " e queremos oferecer tantas maneiras quanto possível para que possa participar e fazer deste projeto tanto seu quanto nosso." - introduction_desc_ending: "Esperamos que se junte a nós!" + introduction_desc_suf: " e queremos oferecer tantas maneiras quanto possível para que possas participar e fazer deste projeto tanto teu quanto nosso." + introduction_desc_ending: "Esperamos que te juntes a nós!" introduction_desc_signature: "- Nick, George, Scott, Michael, Jeremy e Matt" - alert_account_message_intro: "Hey, você!" - alert_account_message: "Para se subscrever para receber e-mails de classes, antes precisará de iniciar sessão." + alert_account_message_intro: "Hey, tu!" + alert_account_message: "Para te subscreveres para receber e-mails de classes, necessitarás de iniciar sessão." # archmage_summary: "Interested in working on game graphics, user interface design, database and server organization, multiplayer networking, physics, sound, or game engine performance? Want to help build a game to help other people learn what you are good at? We have a lot to do and if you are an experienced programmer and want to develop for CodeCombat, this class is for you. We would love your help building the best programming game ever." # archmage_introduction: "One of the best parts about building games is they synthesize so many different things. Graphics, sound, real-time networking, social networking, and of course many of the more common aspects of programming, from low-level database management, and server administration to user facing design and interface building. There's a lot to do, and if you're an experienced programmer with a hankering to really dive into the nitty-gritty of CodeCombat, this class might be for you. We would love to have your help building the best programming game ever." class_attributes: "Atributos da Classe" @@ -790,13 +790,13 @@ module.exports = nativeDescription: "Português (Portugal)", englishDescription: # archmage_attribute_1_suf: ", or a desire to learn. Most of our code is in this language. If you're a fan of Ruby or Python, you'll feel right at home. It's JavaScript, but with a nicer syntax." # archmage_attribute_2: "Some experience in programming and personal initiative. We'll help you get oriented, but we can't spend much time training you." how_to_join: "Como Me Junto" - join_desc_1: "Qualquer um pode ajudar! Só tem de conferir o nosso " - join_desc_2: "para começar, e assinalar a caixa abaixo para se declarar um bravo Arcomago e receber as últimas nootícias por e-mail. Quer falar sobre o que fazer ou como se envolver mais profundamente no projeto? " - join_desc_3: " ou encontre-nos na nossa " + join_desc_1: "Qualquer um pode ajudar! Só tens de conferir o nosso " + join_desc_2: "para começares, e assinalar a caixa abaixo para te declarares um bravo Arcomago e receberes as últimas notícias por e-mail. Queres falar sobre o que fazer ou como te envolveres mais profundamente no projeto? " + join_desc_3: " ou encontra-nos na nossa " join_desc_4: "e começamos a partir daí!" - join_url_email: "Envie-nos um e-mail" + join_url_email: "Envia-nos um e-mail" join_url_hipchat: "sala HipChat pública" - more_about_archmage: "Aprenda Mais Sobre Tornar-se um Arcomago" + more_about_archmage: "Aprende Mais Sobre Tornares-te um Arcomago" archmage_subscribe_desc: "Receber e-mails relativos a novas oportunidades de programação e anúncios." # artisan_summary_pref: "Want to design levels and expand CodeCombat's arsenal? People are playing through our content at a pace faster than we can build! Right now, our level editor is barebone, so be wary. Making levels will be a little challenging and buggy. If you have visions of campaigns spanning for-loops to" # artisan_summary_suf: ", then this class is for you." @@ -805,12 +805,12 @@ module.exports = nativeDescription: "Português (Portugal)", englishDescription: # artisan_attribute_1: "Any experience in building content like this would be nice, such as using Blizzard's level editors. But not required!" # artisan_attribute_2: "A hankering to do a whole lot of testing and iteration. To make good levels, you need to take it to others and watch them play it, and be prepared to find a lot of things to fix." # artisan_attribute_3: "For the time being, endurance en par with an Adventurer. Our Level Editor is super preliminary and frustrating to use. You have been warned!" - artisan_join_desc: "Use o Editor de Níveis por esta ordem, pegar ou largar:" - artisan_join_step1: "Leia a documentação." - artisan_join_step2: "Crie um nível novo e explore níveis existentes." - artisan_join_step3: "Encontre-nos na nossa sala HipChat pública se necessitar de ajuda." - artisan_join_step4: "Coloque os seus níveis no fórum para receber feedback." - more_about_artisan: "Aprenda Mais Sobre Tornar-se um Artesão" + artisan_join_desc: "Usa o Editor de Níveis por esta ordem, pegar ou largar:" + artisan_join_step1: "Lê a documentação." + artisan_join_step2: "Cria um nível novo e explora níveis existentes." + artisan_join_step3: "Encontra-nos na nossa sala HipChat pública se necessitares de ajuda." + artisan_join_step4: "Coloca os teus níveis no fórum para receberes feedback." + more_about_artisan: "Aprende Mais Sobre Tornares-te um Artesão" artisan_subscribe_desc: "Receber e-mails relativos a novidades do editor de níveis e anúncios." # adventurer_summary: "Let us be clear about your role: you are the tank. You are going to take heavy damage. We need people to try out brand-new levels and help identify how to make things better. The pain will be enormous; making good games is a long process and no one gets it right the first time. If you can endure and have a high constitution score, then this class is for you." # adventurer_introduction: "Let's be clear about your role: you are the tank. You're going to take heavy damage. We need people to try out brand-new levels and help identify how to make things better. The pain will be enormous; making good games is a long process and no one gets it right the first time. If you can endure and have a high constitution score, then this class might be for you." @@ -819,7 +819,7 @@ module.exports = nativeDescription: "Português (Portugal)", englishDescription: # adventurer_join_pref: "Either get together with (or recruit!) an Artisan and work with them, or check the box below to receive emails when there are new levels to test. We'll also be posting about levels to review on our networks like" # adventurer_forum_url: "our forum" # adventurer_join_suf: "so if you prefer to be notified those ways, sign up there!" - more_about_adventurer: "Aprenda Mais Sobre Tornar-se um Aventureiro" + more_about_adventurer: "Aprende Mais Sobre Tornares-te um Aventureiro" adventurer_subscribe_desc: "Receber e-mails quando houver novos níveis para testar." # scribe_summary_pref: "CodeCombat is not just going to be a bunch of levels. It will also be a resource of programming knowledge that players can hook into. That way, each Artisan can link to a detailed article that for the player's edification: documentation akin to what the " # scribe_summary_suf: " has built. If you enjoy explaining programming concepts, then this class is for you." @@ -827,19 +827,19 @@ module.exports = nativeDescription: "Português (Portugal)", englishDescription: # scribe_introduction_url_mozilla: "Mozilla Developer Network" # scribe_introduction_suf: " has built. If your idea of fun is articulating the concepts of programming in Markdown form, then this class might be for you." # scribe_attribute_1: "Skill in words is pretty much all you need. Not only grammar and spelling, but able to convey complicated ideas to others." - contact_us_url: "Contacte-nos" - scribe_join_description: "fale-nos um bocado de si, a sua experiência com a programação e o tipo de coisas sobre o qual gostava de escrever. Começamos a partir daí!" - more_about_scribe: "Aprenda Mais Sobre Tornar-se um Escrivão" + contact_us_url: "Contacta-nos" + scribe_join_description: "fala-nos um bocado de ti, a tua experiência com a programação e o tipo de coisas sobre o qual gostavas de escrever. Começamos a partir daí!" + more_about_scribe: "Aprende Mais Sobre Tornares-te um Escrivão" scribe_subscribe_desc: "Receber e-mails sobre anúncios relativos à escrita de artigos." # diplomat_summary: "There is a large interest in CodeCombat in other countries that do not speak English! We are looking for translators who are willing to spend their time translating the site's corpus of words so that CodeCombat is accessible across the world as soon as possible. If you'd like to help getting CodeCombat international, then this class is for you." # diplomat_introduction_pref: "So, if there's one thing we learned from the " # diplomat_launch_url: "launch in October" # diplomat_introduction_suf: "it's that there is sizeable interest in CodeCombat in other countries! We're building a corps of translators eager to turn one set of words into another set of words to get CodeCombat as accessible across the world as possible. If you like getting sneak peeks at upcoming content and getting these levels to your fellow nationals ASAP, then this class might be for you." # diplomat_attribute_1: "Fluency in English and the language you would like to translate to. When conveying complicated ideas, it's important to have a strong grasp in both!" - diplomat_join_pref_github: "Encontre o ficheiro 'locale' do seu idioma " + diplomat_join_pref_github: "Encontra o ficheiro 'locale' do teu idioma " diplomat_github_url: "no GitHub" - diplomat_join_suf_github: ", edite-o online e submeta um 'pull request'. Assinale ainda esta caixa abaixo para ficar atualizado em relação a novos desenvolvimentos da internacionalização!" - more_about_diplomat: "Aprenda Mais Sobre Tornar-se um Diplomata" + diplomat_join_suf_github: ", edita-o online e submete um 'pull request'. Assinala ainda esta caixa abaixo para ficares atualizado em relação a novos desenvolvimentos da internacionalização!" + more_about_diplomat: "Aprende Mais Sobre Tornares-te um Diplomata" diplomat_subscribe_desc: "Receber e-mails sobre desenvolvimentos da i18n e níveis para traduzir." # ambassador_summary: "We are trying to build a community, and every community needs a support team when there are troubles. We have got chats, emails, and social networks so that our users can get acquainted with the game. If you want to help people get involved, have fun, and learn some programming, then this class is for you." # ambassador_introduction: "This is a community we're building, and you are the connections. We've got Olark chats, emails, and social networks with lots of people to talk with and help get acquainted with the game and learn from. If you want to help people get involved and have fun, and get a good feel of the pulse of CodeCombat and where we're going, then this class might be for you." @@ -847,9 +847,9 @@ module.exports = nativeDescription: "Português (Portugal)", englishDescription: # ambassador_join_desc: "tell us a little about yourself, what you've done and what you'd be interested in doing. We'll go from there!" # ambassador_join_note_strong: "Note" # ambassador_join_note_desc: "One of our top priorities is to build multiplayer where players having difficulty solving levels can summon higher level wizards to help them. This will be a great way for ambassadors to do their thing. We'll keep you posted!" - more_about_ambassador: "Aprenda Mais Sobre Tornar-se um Embaixador" + more_about_ambassador: "Aprende Mais Sobre Tornares-te um Embaixador" ambassador_subscribe_desc: "Receber e-mails relativos a novidades do suporte e desenvolvimentos do modo multijogador." - changes_auto_save: "As alterações são guardadas automaticamente quando clica nas caixas." + changes_auto_save: "As alterações são guardadas automaticamente quando clicas nas caixas." diligent_scribes: "Os Nossos Dedicados Escrivões:" powerful_archmages: "Os Nossos Poderosos Arcomagos:" creative_artisans: "Os Nossos Creativos Artesãos:" @@ -872,14 +872,14 @@ module.exports = nativeDescription: "Português (Portugal)", englishDescription: ambassador_title_description: "(Suporte)" ladder: - please_login: "Por favor inicie sessão antes de jogar um jogo do campeonato." + please_login: "Por favor inicia sessão antes de jogares um jogo para o campeonato." my_matches: "Os Meus Jogos" simulate: "Simular" - simulation_explanation: "Ao simular jogos pode ter o seu jogo classificado mais rapidamente!" + simulation_explanation: "Ao simulares jogos podes ter o teu jogo classificado mais rapidamente!" simulate_games: "Simular Jogos!" simulate_all: "REINICIAR E SIMULAR JOGOS" - games_simulated_by: "Jogos simulados por si:" - games_simulated_for: "Jogos simulados para si:" + games_simulated_by: "Jogos simulados por ti:" + games_simulated_for: "Jogos simulados para ti:" games_simulated: "Jogos simulados" games_played: "Jogos jogados" ratio: "Rácio" @@ -890,37 +890,37 @@ module.exports = nativeDescription: "Português (Portugal)", englishDescription: summary_wins: " Vitórias, " summary_losses: " Derrotas" rank_no_code: "Sem Código Novo para Classificar" - rank_my_game: "Classifique o Meu Jogo!" + rank_my_game: "Classificar o Meu Jogo!" rank_submitting: "A submeter..." rank_submitted: "Submetido para Classificação" rank_failed: "A Classificação Falhou" rank_being_ranked: "Jogo a ser Classificado" rank_last_submitted: "submetido " help_simulate: "Ajudar a simular jogos?" - code_being_simulated: "O seu novo código está a ser simulado por outros jogadores, para ser classificado. Isto será atualizado quando surgirem novas partidas." + code_being_simulated: "O teu novo código está a ser simulado por outros jogadores, para ser classificado. Isto será atualizado quando surgirem novas partidas." no_ranked_matches_pre: "Sem jogos classificados pela equipa " - no_ranked_matches_post: "! Jogue contra alguns adversários e volte aqui para ver o seu jogo classificado." - choose_opponent: "Escolha um Adversário" - select_your_language: "Selecione a sua linguagem!" + no_ranked_matches_post: "! Joga contra alguns adversários e volta aqui para veres o teu jogo classificado." + choose_opponent: "Escolhe um Adversário" + select_your_language: "Seleciona a tua linguagem!" tutorial_play: "Jogar Tutorial" - tutorial_recommended: "Recomendado se nunca jogou antes" + tutorial_recommended: "Recomendado se nunca jogaste antes" tutorial_skip: "Saltar Tutorial" - tutorial_not_sure: "Não tem a certeza do que se passa?" + tutorial_not_sure: "Não tens a certeza do que se passa?" tutorial_play_first: "Joga o Tutorial primeiro." simple_ai: "Inteligência Artificial Simples" warmup: "Aquecimento" friends_playing: "Amigos a Jogar" - log_in_for_friends: "Inicie sessão para jogar com os seus amigos!" - social_connect_blurb: "Conecte-se e jogue contra os seus amigos!" - invite_friends_to_battle: "Convide os seus amigos para se juntarem a si em batalha!" + log_in_for_friends: "Inicia sessão para jogares com os teus amigos!" + social_connect_blurb: "Conecta-te e joga contra os teus amigos!" + invite_friends_to_battle: "Convida os teus amigos para se juntarem a ti em batalha!" fight: "Lutar!" - watch_victory: "Veja a sua vitória" - defeat_the: "Derrote o" + watch_victory: "Vê a tua vitória" + defeat_the: "Derrota o" tournament_ends: "O Torneio acaba" tournament_ended: "O Torneio acabou" tournament_rules: "Regras do Torneio" - tournament_blurb: "Escreva código, recolha ouro, construa exércitos, esmague inimigos, ganhe prémios e melhore a sua carreira no nosso torneio $40,000 Greed! Confira os detalhes" - tournament_blurb_criss_cross: "Ganhe ofertas, construa caminhos, supere os adversários, apanhe gemas e melhore a sua carreira no nosso torneio Criss-Cross! Confira os detalhes" + tournament_blurb: "Escreve código, recolhe ouro, constrói exércitos, esmaga inimigos, ganha prémios e melhora a tua carreira no nosso torneio $40,000 Greed! Confere os detalhes" + tournament_blurb_criss_cross: "Ganha ofertas, constrói caminhos, supera os adversários, apanha gemas e melhore a tua carreira no nosso torneio Criss-Cross! Confere os detalhes" tournament_blurb_blog: "no nosso blog" rules: "Regras" winners: "Vencedores" @@ -940,16 +940,16 @@ module.exports = nativeDescription: "Português (Portugal)", englishDescription: custom_avatar: "Um Avatar do CodeCombat Personalizado" heap: "para seis meses de acesso \"Startup\"" credits: "créditos" - one_month_coupon: "cupão: escolha Rails ou HTML" - one_month_discount: "desconto de 30%: escolha Rails ou HTML" + one_month_coupon: "cupão: escolhe Rails ou HTML" + one_month_discount: "desconto de 30%: escolhe Rails ou HTML" license: "licença" - oreilly: "ebook à sua escolha" + oreilly: "ebook à tua escolha" loading_error: could_not_load: "Erro ao carregar do servidor" connection_failure: "A conexão falhou." - unauthorized: "Precisa de ter sessão iniciada. Tem os cookies desativados?" - forbidden: "Não tem as permissões." + unauthorized: "Precisas de ter sessão iniciada. Tens os cookies desativados?" + forbidden: "Não tens permissões." not_found: "Não encontrado." not_allowed: "Método não permitido." timeout: "O servidor expirou." @@ -960,7 +960,7 @@ module.exports = nativeDescription: "Português (Portugal)", englishDescription: resources: sessions: "Sessões" - your_sessions: "As Suas Sessões" + your_sessions: "As Tuas Sessões" level: "Nível" social_network_apis: "APIs das Redes Sociais" facebook_status: "Estado do Facebook" @@ -980,7 +980,7 @@ module.exports = nativeDescription: "Português (Portugal)", englishDescription: components: "Componentes" thang: "Thang" thangs: "Thangs" - level_session: "A Sua Sessão" + level_session: "A Tua Sessão" opponent_session: "Sessão do Adversário" article: "Artigo" user_names: "Nomes de Utilizador" @@ -1025,7 +1025,7 @@ module.exports = nativeDescription: "Português (Portugal)", englishDescription: no_singleplayer: "Sem jogos Um Jogador jogados." no_multiplayer: "Sem jogos Multijogador jogados." no_achievements: "Sem Conquistas ganhas." - favorite_prefix: "Linguagem favorita é " + favorite_prefix: "A linguagem favorita é " favorite_postfix: "." achievements: @@ -1046,4 +1046,4 @@ module.exports = nativeDescription: "Português (Portugal)", englishDescription: account: recently_played: "Jogados Recentemente" - no_recent_games: "Sem jogos jogados nas passadas duas seemanas." + no_recent_games: "Sem jogos jogados nas passadas duas semanas." From aa6db887182c4900e4a7f5313dc7d04c899b9bf6 Mon Sep 17 00:00:00 2001 From: Imperadeiro98 Date: Wed, 24 Sep 2014 19:15:52 +0100 Subject: [PATCH 06/34] Update pt-PT.coffee --- app/locale/pt-PT.coffee | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/locale/pt-PT.coffee b/app/locale/pt-PT.coffee index a3832abe3..7bd2ff78e 100644 --- a/app/locale/pt-PT.coffee +++ b/app/locale/pt-PT.coffee @@ -64,7 +64,7 @@ module.exports = nativeDescription: "Português (Portugal)", englishDescription: versions: save_version_title: "Guardar Nova Versão" new_major_version: "Nova Versão Principal" - cla_prefix: "Para guardar as alterações, precisas de concordar com o nosso" + cla_prefix: "Para guardares as alterações, precisas de concordar com o nosso" cla_url: "CLA" cla_suffix: "." cla_agree: "EU CONCORDO" From 2d7341224ebb034bad64aef71bd04dcc98c0a6ff Mon Sep 17 00:00:00 2001 From: Nick Winter Date: Wed, 24 Sep 2014 11:31:09 -0700 Subject: [PATCH 07/34] Uncommented some section headers for ca.coffee. --- app/locale/ca.coffee | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/app/locale/ca.coffee b/app/locale/ca.coffee index 0da8f7dbf..cb90cf4ba 100644 --- a/app/locale/ca.coffee +++ b/app/locale/ca.coffee @@ -19,7 +19,7 @@ module.exports = nativeDescription: "Català", englishDescription: "Catalan", tr # unwatch: "Unwatch" # submit_patch: "Submit Patch" -# units: + units: second: "segon" seconds: "segons" minute: "minut" @@ -140,7 +140,7 @@ module.exports = nativeDescription: "Català", englishDescription: "Catalan", tr previous: "Anterior" # choose_inventory: "Equip Items" -# items: + items: armor: "Armadura" hands: "Mans" accessories: "Accessoris" @@ -169,7 +169,7 @@ module.exports = nativeDescription: "Català", englishDescription: "Catalan", tr # learn_more: "Learn more about being a Diplomat" # subscribe_as_diplomat: "Subscribe as a Diplomat" -# wizard_settings: + wizard_settings: # title: "Wizard Settings" # customize_avatar: "Customize Your Avatar" # active: "Active" @@ -185,7 +185,7 @@ module.exports = nativeDescription: "Català", englishDescription: "Catalan", tr # saturation: "Saturation" # lightness: "Lightness" -# account_settings: + account_settings: title: "Configuració de la compta" not_logged_in: "Inicia sessió o crea una compta per a canviar la configuració." autosave: "Els canvis es guarden automàticament" @@ -225,7 +225,7 @@ module.exports = nativeDescription: "Català", englishDescription: "Catalan", tr # sample_profile: "See a sample profile" view_profile: "Mira el teu perfil" -# account_profile: + account_profile: settings: "Configuració" edit_profile: "Modifica el perfil" # done_editing: "Done Editing" From f4cee11ebed42083ef81f89037a92f727f730904 Mon Sep 17 00:00:00 2001 From: Nick Winter Date: Wed, 24 Sep 2014 12:02:45 -0700 Subject: [PATCH 08/34] ThangsTabView letting you position spike walls on top of walls. --- app/views/editor/level/thangs/ThangsTabView.coffee | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/views/editor/level/thangs/ThangsTabView.coffee b/app/views/editor/level/thangs/ThangsTabView.coffee index 1808254cd..766281991 100644 --- a/app/views/editor/level/thangs/ThangsTabView.coffee +++ b/app/views/editor/level/thangs/ThangsTabView.coffee @@ -16,7 +16,7 @@ MOVE_MARGIN = 0.15 MOVE_SPEED = 13 # Let us place these on top of other Thangs -overlappableThangTypeNames = ['Torch', 'Chains', 'Bird', 'Cloud 1', 'Cloud 2', 'Cloud 3', 'Waterfall', 'Obstacle', 'Electrowall'] +overlappableThangTypeNames = ['Torch', 'Chains', 'Bird', 'Cloud 1', 'Cloud 2', 'Cloud 3', 'Waterfall', 'Obstacle', 'Electrowall', 'Spike Walls'] class ThangTypeSearchCollection extends CocoCollection url: '/db/thang.type?project=original,name,version,slug,kind,components' From 73e49f9972a78361076622af1b409bd7d9dc3c66 Mon Sep 17 00:00:00 2001 From: Matt Lott Date: Wed, 24 Sep 2014 12:17:08 -0700 Subject: [PATCH 09/34] IE11 compatibility fixes Removing social share buttons from base if IE, except Facebook. Unrolling restricted property setting loop (weird). Updating isIE check to support IE11. --- .../javascripts/workers/worker_world.js | 21 ++++++++++++------- app/templates/base.jade | 9 +++++--- app/views/kinds/CocoView.coffee | 4 ++-- 3 files changed, 21 insertions(+), 13 deletions(-) diff --git a/app/assets/javascripts/workers/worker_world.js b/app/assets/javascripts/workers/worker_world.js index 7fa0d9794..9a5a9ded5 100644 --- a/app/assets/javascripts/workers/worker_world.js +++ b/app/assets/javascripts/workers/worker_world.js @@ -65,14 +65,19 @@ self.console = console; self.importScripts('/javascripts/lodash.js', '/javascripts/world.js', '/javascripts/aether.js'); -var restricted = ["XMLHttpRequest", "importScripts", "Worker"]; -for(var i = 0; i < restricted.length; ++i) { - // We could do way more from this: http://stackoverflow.com/questions/10653809/making-webworkers-a-safe-environment - Object.defineProperty(self, restricted[i], { - get: function() { throw new Error("Access to that global property is forbidden."); }, - configurable: false - }); -} +// TODO: setting these in a loop in IE11 throws an error +Object.defineProperty(self, XMLHttpRequest, { + get: function() { throw new Error("Access to XMLHttpRequest is forbidden."); }, + configurable: false +}); +Object.defineProperty(self, importScripts, { + get: function() { throw new Error("Access to importScripts is forbidden."); }, + configurable: false +}); +Object.defineProperty(self, Worker, { + get: function() { throw new Error("Access to Worker is forbidden."); }, + configurable: false +}); self.transferableSupported = function transferableSupported() { if (typeof self._transferableSupported !== 'undefined') return self._transferableSupported; diff --git a/app/templates/base.jade b/app/templates/base.jade index a80d84c89..fef1eb980 100644 --- a/app/templates/base.jade +++ b/app/templates/base.jade @@ -81,10 +81,13 @@ body a(href='/admin', data-i18n="nav.admin") Admin .share-buttons - .g-plusone(data-href="http://codecombat.com", data-size="medium") + if !isIE + .g-plusone(data-href="http://codecombat.com", data-size="medium") .fb-like(data-href="https://www.facebook.com/codecombat", data-send="false", data-layout="button_count", data-width="350", data-show-faces="true", data-ref="coco_footer_#{fbRef}") - a.twitter-follow-button(href="https://twitter.com/CodeCombat", data-show-count="true", data-show-screen-name="false", data-dnt="true", data-align="right", data-i18n="nav.twitter_follow") Follow - iframe.github-star-button(src="http://ghbtns.com/github-btn.html?user=codecombat&repo=codecombat&type=watch&count=true", allowtransparency="true", frameborder="0", scrolling="0", width="110", height="20") + if !isIE + a.twitter-follow-button(href="https://twitter.com/CodeCombat", data-show-count="true", data-show-screen-name="false", data-dnt="true", data-align="right", data-i18n="nav.twitter_follow") Follow + iframe.github-star-button(src="http://ghbtns.com/github-btn.html?user=codecombat&repo=codecombat&type=watch&count=true", allowtransparency="true", frameborder="0", scrolling="0", width="110", height="20") + .partner-badges a.mixpanel-badge(href="https://mixpanel.com/f/partner") img(src="//cdn.mxpnl.com/site_media/images/partner/badge_light.png", alt="Mobile Analytics") diff --git a/app/views/kinds/CocoView.coffee b/app/views/kinds/CocoView.coffee index 7e9e1f29f..18915a7da 100644 --- a/app/views/kinds/CocoView.coffee +++ b/app/views/kinds/CocoView.coffee @@ -313,8 +313,8 @@ module.exports = class CocoView extends Backbone.View return mobileRELong.test(ua) or mobileREShort.test(ua.substr(0, 4)) isIE: -> - ua = navigator.userAgent or navigator.vendor or window.opera - return ua.search('MSIE') != -1 + # http://stackoverflow.com/questions/19999388/jquery-check-if-user-is-using-ie + navigator.userAgent.indexOf('MSIE') > 0 or !!navigator.userAgent.match(/Trident.*rv\:11\./) isMac: -> navigator.platform.toUpperCase().indexOf('MAC') isnt -1 From e8d36547c9357f4d0676550fcd931960a10d2d45 Mon Sep 17 00:00:00 2001 From: Juan Santiago Lucaras Cammisuli Date: Wed, 24 Sep 2014 16:24:33 -0300 Subject: [PATCH 10/34] Update es-419.coffee --- app/locale/es-419.coffee | 356 +++++++++++++++++++-------------------- 1 file changed, 178 insertions(+), 178 deletions(-) diff --git a/app/locale/es-419.coffee b/app/locale/es-419.coffee index 7a066e39e..72221068a 100644 --- a/app/locale/es-419.coffee +++ b/app/locale/es-419.coffee @@ -15,9 +15,9 @@ module.exports = nativeDescription: "español (América Latina)", englishDescrip fork: "Bifurcar" play: "Jugar" retry: "Reintentar" -# watch: "Ver" -# unwatch: "Dejar de ver" -# submit_patch: "Enviar Parche" + watch: "Ver" + unwatch: "Dejar de ver" + submit_patch: "Enviar Parche" units: second: "segundo" @@ -26,14 +26,14 @@ module.exports = nativeDescription: "español (América Latina)", englishDescrip minutes: "minutos" hour: "hora" hours: "horas" -# day: "día" -# days: "dias" -# week: "semana" -# weeks: "semanas" -# month: "mes" -# months: "meses" -# year: "año" -# years: "años" + day: "día" + days: "dias" + week: "semana" + weeks: "semanas" + month: "mes" + months: "meses" + year: "año" + years: "años" modal: close: "Cerrar" @@ -44,14 +44,14 @@ module.exports = nativeDescription: "español (América Latina)", englishDescrip nav: play: "Jugar" -# community: "Comunidad" + community: "Comunidad" editor: "Editor" blog: "Blog" forum: "Foro" -# account: "Cuenta" -# profile: "Perfil" -# stats: "Estadísticas" -# code: "Código" + account: "Cuenta" + profile: "Perfil" + stats: "Estadísticas" + code: "Código" admin: "Admin" home: "Inicio" contribute: "Contribuir" @@ -79,7 +79,7 @@ module.exports = nativeDescription: "español (América Latina)", englishDescrip recover: recover_account_title: "recuperar cuenta" send_password: "Enviar Contraseña de Recuperación" -# recovery_sent: "Email de recuperación enviado" + recovery_sent: "Email de recuperación enviado" signup: create_account_title: "Crear Cuenta para Guardar el Progreso" @@ -91,7 +91,7 @@ module.exports = nativeDescription: "español (América Latina)", englishDescrip sign_up: "Registrarse" log_in: "Inicia sesión con tu contraseña" social_signup: "O, puedes conectarte a través de Facebook o G+:" -# required: "Necesitas loguearte para poder acceder allí." + required: "Necesitas loguearte para poder acceder allí." home: slogan: "Aprende a programar jugando" @@ -104,12 +104,12 @@ module.exports = nativeDescription: "español (América Latina)", englishDescrip for_beginners: "Para Principiantes" multiplayer: "Multijugador" for_developers: "Para Desarrolladores" -# javascript_blurb: "El leguaje de la web. Ideal para desarrollar sitios web, aplicaciónes web, juegos HTML5, y servidores." -# python_blurb: "Simple y poderoso a la vez, Python es un excelente lenguaje de programación multipropósito" -# coffeescript_blurb: "JavaScript, con una sintaxis mas bonita." -# clojure_blurb: "Un Lisp moderno" -# lua_blurb: "Lenguaje para el desarrollo de juegos" -# io_blurb: "Simple pero oscuro." + javascript_blurb: "El leguaje de la web. Ideal para desarrollar sitios web, aplicaciónes web, juegos HTML5, y servidores." + python_blurb: "Simple y poderoso a la vez, Python es un excelente lenguaje de programación multipropósito" + coffeescript_blurb: "JavaScript, con una sintaxis mas bonita." + clojure_blurb: "Un Lisp moderno" + lua_blurb: "Lenguaje para el desarrollo de juegos" + io_blurb: "Simple pero oscuro." play: choose_your_level: "Elige tu nivel" @@ -124,13 +124,13 @@ module.exports = nativeDescription: "español (América Latina)", englishDescrip campaign_multiplayer_description: "... en las que programas cara-a-cara contra otros jugadores." campaign_player_created: "Creados-Por-Jugadores" campaign_player_created_description: "... en los que luchas contra la creatividad de tus compañeros Hechiceros Artesanales." -# campaign_classic_algorithms: "Algorítmos clásicos" -# campaign_classic_algorithms_description: "... en donde aprenderas los algorítmos mas populares de las Ciencias de la Computación." + campaign_classic_algorithms: "Algorítmos clásicos" + campaign_classic_algorithms_description: "... en donde aprenderas los algorítmos mas populares de las Ciencias de la Computación." level_difficulty: "Dificultad: " play_as: "Jugar Como " spectate: "Observar" -# players: "jugadores" -# hours_played: "horas jugadas" + players: "jugadores" + hours_played: "horas jugadas" contact: contact_us: "Contacta a CodeCombat" @@ -175,7 +175,7 @@ module.exports = nativeDescription: "español (América Latina)", englishDescrip autosave: "Cambios Guardados Automáticamente" me_tab: "Yo" picture_tab: "Imagen" -# upload_picture: "Subir una foto." + upload_picture: "Subir una foto." wizard_tab: "Hechicero" password_tab: "Contraseña" emails_tab: "Correos" @@ -184,16 +184,16 @@ module.exports = nativeDescription: "español (América Latina)", englishDescrip new_password: "Nueva Contraseña" new_password_verify: "Verificar" email_subscriptions: "Suscripciones de Email" -# email_subscriptions_none: "Sin subscripción de Email." + email_subscriptions_none: "Sin subscripción de Email." email_announcements: "Noticias" email_announcements_description: "Recibe correos electrónicos con las últimas noticias y desarrollos de CodeCombat." email_notifications: "Notificaciones" -# email_notifications_summary: "Controles para personalizar la recepción automatica de emails con notificaciones relacionadas a tu actividad en CodeCombat." -# email_any_notes: "Cualquier Notificación" -# email_any_notes_description: "Desactivar para detener la recepción de emails con notificaciónes." -# email_news: "Novedades" -# email_recruit_notes: "Oportunidades laborales" -# email_recruit_notes_description: "Si juegas realmente bien, es posible te contactemos para ofrecerte un (mejor) trabajo." + email_notifications_summary: "Controles para personalizar la recepción automatica de emails con notificaciones relacionadas a tu actividad en CodeCombat." + email_any_notes: "Cualquier Notificación" + email_any_notes_description: "Desactivar para detener la recepción de emails con notificaciónes." + email_news: "Novedades" + email_recruit_notes: "Oportunidades laborales" + email_recruit_notes_description: "Si juegas realmente bien, es posible te contactemos para ofrecerte un (mejor) trabajo." contributor_emails: "Emails Clase Contribuyente" contribute_prefix: "¡Estamos buscando gente que se una a nuestro grupo! Echa un vistazo a la " contribute_page: "página de contribución" @@ -202,150 +202,150 @@ module.exports = nativeDescription: "español (América Latina)", englishDescrip error_saving: "Error al Guardar" saved: "Cambios Guardados" password_mismatch: "La contraseña no coincide." -# password_repeat: "Por favor, repite tu contraseña." + password_repeat: "Por favor, repite tu contraseña." job_profile: "Perfil de Trabajo" job_profile_approved: "Tu perfil de trabajo ha sido aprobado por CodeCombat. Los empleadores podrán verlo hasta que lo marques como inactivo o permanezca sin cambios por cuatro semanas." - job_profile_explanation: "¡Hola! Llena esto, y te contactaremos acerca de encontrar un trabajo como desarrollador de software." -# sample_profile: "Ver un ejemplo de perfil" -# view_profile: "Ver Tu Perfil" + job_profile_explanation: "¡Hola! Llena esto, y te contactaremos acerca de encontrar un trabajo como desarrollador de software." + sample_profile: "Ver un ejemplo de perfil" + view_profile: "Ver Tu Perfil" account_profile: -# settings: "Ajustes" -# edit_profile: "Editar Perfil" -# done_editing: "Edición Completada" + settings: "Ajustes" + edit_profile: "Editar Perfil" + done_editing: "Edición Completada" profile_for_prefix: "Perfil para " profile_for_suffix: "" -# featured: "Soportado" -# not_featured: "No Soportado" + featured: "Soportado" + not_featured: "No Soportado" looking_for: "Buscando:" last_updated: "Última Actualización:" contact: "Contacto" -# active: "En busca de entrevistas ahora mismo" -# inactive: "No busco entrevistas por ahora" -# complete: "completado" -# next: "Siguiente" -# next_city: "¿Ciudad?" -# next_country: "selecciona tu país" -# next_name: "¿Nombre?" -# next_short_description: "escribe una breve descripción." -# next_long_description: "describe a que posción aspiras." -# next_skills: "nombra al menos cinco de tus cualidades." -# next_work: "detalla tu historial laboral." -# next_education: "realiza un recuento de tus méritos academicos." -# next_projects: "exhibe un máximo de tres proyectos en los que hayas participado." -# next_links: "añade cualquier enlace personal o social" -# next_photo: "añade una foto profesional (opcional)." -# next_active: "etiquetate como abierto a ofertas, para aparecer en las busquedas." -# example_blog: "Blog" -# example_personal_site: "Sitio Personal" -# links_header: "Enlaces Personale" -# links_blurb: "Añade enlaces a cualquier otro sitio o perfil que desees destacar, como tu GitHub, LinkedIn, o blog." -# links_name: "Nombre del enlace" -# links_name_help: "¿A que estas enlazando?" -# links_link_blurb: "URL del enlace" -# basics_header: "Actualizar información básica" -# basics_active: "Abierto a ofertas" -# basics_active_help: "¿Quieres ofertas para entrevistarte ahora mismo?" -# basics_job_title: "Posición Laboral deseada" -# basics_job_title_help: "¿Qué posición laboral estas buscando?" -# basics_city: "Ciudad" -# basics_city_help: "Ciudad en la que deseas trabajar (o en la que vives ahora)." -# basics_country: "País" -# basics_country_help: "País en el que deseas trabajar (o en el que vives ahora)." -# basics_visa: "Estatus laboral en EEUU" -# basics_visa_help: "¿Te encuentras autorizado para trabajar en los EEUU, o necesitas un patrocinador de visa? (Si vives en Canada o australia, selecciona autorizado.)" -# basics_looking_for: "Buscando" -# basics_looking_for_full_time: "Tiempo completo" -# basics_looking_for_part_time: "Tiempo parcial" -# basics_looking_for_remote: "A distacia" -# basics_looking_for_contracting: "Contratación" -# basics_looking_for_internship: "Pasantía" -# basics_looking_for_help: "¿Qué tipo de posición estas buscando como desarrollador?" -# name_header: "Escribe tu nombre" -# name_anonymous: "Desarrollador anónimo" -# name_help: "El nombre que los empleadores verán, por ejemplo 'Max Power'." -# short_description_header: "Descríbete en pocas palabras" -# short_description_blurb: "Añade un lema, para que un empleador pueda conocerte mejor facilmente." -# short_description: "Lema" -# short_description_help: "¿Quién eres, y que estas buscando? 140 caractéres máximo." -# skills_header: "Cualidades" -# skills_help: "Etiqueta tus cualidades más relevantes como desarrollador, en orden de competencia." -# long_description_header: "Describe tu posición laboral deseada" -# long_description_blurb: "Dile a los empleadores lo genial que eres, y que rol estas buscando." -# long_description: "Auto Descripción" -# long_description_help: "Describete a ti mismo para tus potenciales empleadores. Mantenlo corto y ve al grano. Te recomendamos destacar la posición laboral de mayor interes para ti. Un enfoque reduccionista, de buen gusto, es bienvenido; 600 caracteres mmáximo." + active: "En busca de entrevistas ahora mismo" + inactive: "No busco entrevistas por ahora" + complete: "completado" + next: "Siguiente" + next_city: "¿Ciudad?" + next_country: "selecciona tu país" + next_name: "¿Nombre?" + next_short_description: "escribe una breve descripción." + next_long_description: "describe a que posción aspiras." + next_skills: "nombra al menos cinco de tus cualidades." + next_work: "detalla tu historial laboral." + next_education: "realiza un recuento de tus méritos academicos." + next_projects: "exhibe un máximo de tres proyectos en los que hayas participado." + next_links: "añade cualquier enlace personal o social" + next_photo: "añade una foto profesional (opcional)." + next_active: "etiquetate como abierto a ofertas, para aparecer en las busquedas." + example_blog: "Blog" + example_personal_site: "Sitio Personal" + links_header: "Enlaces Personale" + links_blurb: "Añade enlaces a cualquier otro sitio o perfil que desees destacar, como tu GitHub, LinkedIn, o blog." + links_name: "Nombre del enlace" + links_name_help: "¿A que estas enlazando?" + links_link_blurb: "URL del enlace" + basics_header: "Actualizar información básica" + basics_active: "Abierto a ofertas" + basics_active_help: "¿Quieres ofertas para entrevistarte ahora mismo?" + basics_job_title: "Posición Laboral deseada" + basics_job_title_help: "¿Qué posición laboral estas buscando?" + basics_city: "Ciudad" + basics_city_help: "Ciudad en la que deseas trabajar (o en la que vives ahora)." + basics_country: "País" + basics_country_help: "País en el que deseas trabajar (o en el que vives ahora)." + basics_visa: "Estatus laboral en EEUU" + basics_visa_help: "¿Te encuentras autorizado para trabajar en los EEUU, o necesitas un patrocinador de visa? (Si vives en Canada o australia, selecciona autorizado.)" + basics_looking_for: "Buscando" + basics_looking_for_full_time: "Tiempo completo" + basics_looking_for_part_time: "Tiempo parcial" + basics_looking_for_remote: "A distacia" + basics_looking_for_contracting: "Contratación" + basics_looking_for_internship: "Pasantía" + basics_looking_for_help: "¿Qué tipo de posición estas buscando como desarrollador?" + name_header: "Escribe tu nombre" + name_anonymous: "Desarrollador anónimo" + name_help: "El nombre que los empleadores verán, por ejemplo 'Max Power'." + short_description_header: "Descríbete en pocas palabras" + short_description_blurb: "Añade un lema, para que un empleador pueda conocerte mejor facilmente." + short_description: "Lema" + short_description_help: "¿Quién eres, y que estas buscando? 140 caractéres máximo." + skills_header: "Cualidades" + skills_help: "Etiqueta tus cualidades más relevantes como desarrollador, en orden de competencia." + long_description_header: "Describe tu posición laboral deseada" + long_description_blurb: "Dile a los empleadores lo genial que eres, y que rol estas buscando." + long_description: "Auto Descripción" + long_description_help: "Describete a ti mismo para tus potenciales empleadores. Mantenlo corto y ve al grano. Te recomendamos destacar la posición laboral de mayor interes para ti. Un enfoque reduccionista, de buen gusto, es bienvenido; 600 caracteres mmáximo." work_experience: "Experiencia de Trabajo" -# work_header: "Detalla tu historial laboral" -# work_years: "Años de Experiencia" -# work_years_help: "Cuántos años de experiencia profesional (pagos) desarrollando software tienes? -# work_blurb: "Realiza una lista con lo que consideres es tu experiencia laboral relevante, comenzando por la más reciente." -# work_employer: "Empleador" -# work_employer_help: "Nombre de tu empleador." -# work_role: "Nombre de la posición laboral" -# work_role_help: "¿Cuál era tu posición laboral o rol?" -# work_duration: "Duración" -# work_duration_help: "¿Cuánto duro esa experiencia?" -# work_description: "Descripción" -# work_description_help: "¿Qué hacías allí? (140 caracteres; opcional)" + work_header: "Detalla tu historial laboral" + work_years: "Años de Experiencia" + work_years_help: "Cuántos años de experiencia profesional (pagos) desarrollando software tienes? + work_blurb: "Realiza una lista con lo que consideres es tu experiencia laboral relevante, comenzando por la más reciente." + work_employer: "Empleador" + work_employer_help: "Nombre de tu empleador." + work_role: "Nombre de la posición laboral" + work_role_help: "¿Cuál era tu posición laboral o rol?" + work_duration: "Duración" + work_duration_help: "¿Cuál fue la duración de esa experiencia?" + work_description: "Descripción" + work_description_help: "¿Qué actividades realizabas allí? (140 caracteres; opcional)" education: "Educación" -# education_header: "Realiza un recuento de tus méritos academicos" -# education_blurb: "Escribe un recuento de tus méritos academicos." -# education_school: "Escuela" -# education_school_help: "Nombre de tu escuela." -# education_degree: "Título" -# education_degree_help: "¿Cuál fue tu título y área de estudio" -# education_duration: "Fechas" -# education_duration_help: "¿Cuándo?" -# education_description: "Descripción" -# education_description_help: "Destaca cualquier cosa acerca de esta experiencia educacional. (140 caracteres; opcional)" + education_header: "Realiza un recuento de tus méritos academicos" + education_blurb: "Escribe un recuento de tus méritos academicos." + education_school: "Escuela" + education_school_help: "Nombre de tu escuela." + education_degree: "Título" + education_degree_help: "¿Cuál fue tu título y área de estudio" + education_duration: "Fechas" + education_duration_help: "¿Cuándo?" + education_description: "Descripción" + education_description_help: "Destaca cualquier cosa acerca de esta experiencia educacional. (140 caracteres; opcional)" our_notes: "Nuestras Notas" -# remarks: "Observaciones" + remarks: "Observaciones" projects: "Proyectos" -# projects_header: "Añade 3 proyectos" -# projects_header_2: "Proyectos (Top 3)" -# projects_blurb: "Destaca tus proyectos para sorprender a los empleadores." -# project_name: "Nombre del Proyecto" -# project_name_help: "¿Cómo se llamaba el proyecto?" -# project_description: "Descripción" -# project_description_help: "Describe el proyecto brevemente.." -# project_picture: "Foto" -# project_picture_help: "Sube una imagen de 230x115px (o mayor) mostrando el proyecto" -# project_link: "Enlace" -# project_link_help: "Enlace al proyecto." -# player_code: "Código de Jugador" + projects_header: "Añade 3 proyectos" + projects_header_2: "Proyectos (Top 3)" + projects_blurb: "Destaca tus proyectos para sorprender a los empleadores." + project_name: "Nombre del Proyecto" + project_name_help: "¿Cómo se llamaba el proyecto?" + project_description: "Descripción" + project_description_help: "Describe el proyecto brevemente.." + project_picture: "Foto" + project_picture_help: "Sube una imagen de 230x115px (o mayor) mostrando el proyecto" + project_link: "Enlace" + project_link_help: "Enlace al proyecto." + player_code: "Código de Jugador" employers: -# hire_developers_not_credentials: "Hire developers, not credentials." -# get_started: "Get Started" -# already_screened: "We've already technically screened all our candidates" -# filter_further: ", but you can also filter further:" -# filter_visa: "Visa" -# filter_visa_yes: "US Authorized" -# filter_visa_no: "Not Authorized" -# filter_education_top: "Top School" -# filter_education_other: "Other" -# filter_role_web_developer: "Web Developer" -# filter_role_software_developer: "Software Developer" -# filter_role_mobile_developer: "Mobile Developer" -# filter_experience: "Experience" -# filter_experience_senior: "Senior" -# filter_experience_junior: "Junior" -# filter_experience_recent_grad: "Recent Grad" -# filter_experience_student: "College Student" -# filter_results: "results" -# start_hiring: "Start hiring." -# 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." -# make_hiring_easier: "Make my hiring easier, please." -# what: "What is CodeCombat?" -# 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." + hire_developers_not_credentials: "Contrata desarrolladores, no credenciales." + get_started: "Comenzar" + already_screened: "Ya hemos realizado un monitoreo técnico de todos los candidatos" + filter_further: ",pero también puedes hacer un filtrado mas específico:" + filter_visa: "Visa" + filter_visa_yes: "Autorizado para los EEUU" + filter_visa_no: "No autorizado" + filter_education_top: "Escuela de elite" + filter_education_other: "Otro" + filter_role_web_developer: "Desarrollador Web" + filter_role_software_developer: "Desarrollador de Software" + filter_role_mobile_developer: "Desarrollador Móvil" + filter_experience: "Experiencia" + filter_experience_senior: "Senior" + filter_experience_junior: "Junior" + filter_experience_recent_grad: "Grado académico reciente" + filter_experience_student: "Estudiante Universitario" + filter_results: "resultados" + start_hiring: "Comenzar a contratar." + reasons: "Tres razones por las cuales deberías contratar a traves de nosotros:" + everyone_looking: "Todos aquí estan en busqueda de una oportunidad laboral." + everyone_looking_blurb: "Olvidate del 20% de respuestas promedio obtenidas via LinkedIn InMail. Todas las personas listadas en este sitio quieren encontrar su próxima posición laboral y responderan a tu solicitud para concretar una introducción." + weeding: "Relajate; ya hemos desmalezado por ti." + weeding_blurb: "Todo jugador listado ha sido monitoreado en lo que a su habilidad técnica se refiere. También llevamos a cabo monitoreos telefónicos a los candidatos seleccionados y dejamos notas en sus perfiles para ahorrarte tiempo." + pass_screen: "Ell@s superaran tu monitoreo técnico." + pass_screen_blurb: "Revisa el código de cada jugador antes de ponerte en contacto. Uno de nuestros empleadores se encontro con una proporción 5 veces mayor de nuestros desarrolladores superando su monitoreo técnico al compararlo con contrataciones realizadas en Hacker News." + make_hiring_easier: "Has mi contratación mas simple, por favor." + what: "Que es CodeCombat?" + what_blurb: "CodeCombat es un juego multijugador de programación para navegadores. Los jugadores escriben un código para medirse en batalla contra otros desarrolladores. Nuestros jugadores cuentan con experiencia en los principales lenguajes técnicos." + cost: "¿Cuánto cobramos?" + cost_blurb: "Cobramos un 15% del primer salario anual y ofrecemos una garantía de devolución del 100% del dinero por 90 días. No cobramos por candidatos que actualmente se encuentren siendo entrevistados de forma activa por tu compañia." candidate_name: "Nombre" candidate_location: "Ubicación" candidate_looking_for: "Buscando" @@ -353,24 +353,24 @@ module.exports = nativeDescription: "español (América Latina)", englishDescrip candidate_top_skills: "Mejores Habilidades" candidate_years_experience: "Años de Exp" candidate_last_updated: "Última Actualización" -# candidate_who: "Who" -# featured_developers: "Featured Developers" -# other_developers: "Other Developers" -# inactive_developers: "Inactive Developers" + candidate_who: "Quién" + featured_developers: "Desarrolladores Destacados" + other_developers: "Otros Desarrolladores" + inactive_developers: "Desarrolladores Inactivos" play_level: done: "Listo" customize_wizard: "Personalizar Hechicero" home: "Inicio" -# stop: "Stop" -# game_menu: "Game Menu" + stop: "Detener" + game_menu: "Menu del Juego" guide: "Guia" restart: "Reiniciar" goals: "Objetivos" -# success: "Success!" -# incomplete: "Incomplete" -# timed_out: "Ran out of time" -# failing: "Failing" + success: "¡Éxito!" + incomplete: "Incompleto" + timed_out: "Se te acabo el tiempo" + failing: "Fallando" action_timeline: "Cronologia de Accion" click_to_select: "Has click en una unidad para seleccionarla." reload_title: "¿Recargar Todo el Codigo?" @@ -400,7 +400,7 @@ module.exports = nativeDescription: "español (América Latina)", englishDescrip hud_continue: "Continuar (presionar shift+space)" spell_saved: "Hechizo Guardado" skip_tutorial: "Saltar (esc)" -# keyboard_shortcuts: "Key Shortcuts" + keyboard_shortcuts: "Atajos de teclado" loading_ready: "¡Listo!" tip_insert_positions: "Shift+Clic un punto en el mapa para insertarlo en el editor de hechizos." tip_toggle_play: "Activa jugar/pausa con Ctrl+P." @@ -409,7 +409,7 @@ module.exports = nativeDescription: "español (América Latina)", englishDescrip tip_open_source: "¡CodeCombat es 100% código abierto!" tip_beta_launch: "CodeCombat lanzó su beta en Octubre del 2013." tip_js_beginning: "JavaScript es sólo el principio." -# tip_think_solution: "Think of the solution, not the problem." + tip_think_solution: "Piensa en la solución, no en el problema." tip_theory_practice: "En teoría, no hay diferencia entre la teoría y la práctica. Pero en la práctica, si la hay. - Yogi Berra" tip_error_free: "Hay dos formas de escribir programas libres de errores; sólo la tercera funciona. - Alan Perlis" tip_debugging_program: "Si depurar es el proceso de remover errores, entonces programar debe ser el proceso de colocarlos. - Edsger W. Dijkstra" @@ -429,7 +429,7 @@ module.exports = nativeDescription: "español (América Latina)", englishDescrip tip_impossible: "Siempre parece imposible hasta que se hace. - Nelson Mandela" tip_talk_is_cheap: "Hablar es barato. Muestrame el código. - Linus Torvalds" tip_first_language: "La cosa más desastroza que puedes aprender es tu primer lenguaje de programación. - Alan Kay" -# tip_hardware_problem: "Q: How many programmers does it take to change a light bulb? A: None, it's a hardware problem." + tip_hardware_problem: "P: ¿Cuántos programadores son necesarios para cambiar una bombilla eléctrica? R: Ninguno, es un problema de hardware." time_current: "Ahora:" time_total: "Max:" time_goto: "Ir a:" From b3a841e814f9e38785d5547f0228ba6ea669d0c3 Mon Sep 17 00:00:00 2001 From: Matt Lott Date: Wed, 24 Sep 2014 13:11:55 -0700 Subject: [PATCH 11/34] IE10 compatibility: adding console.debug Support for console.debug was added in IE11 http://msdn.microsoft.com/en-us/library/ie/dn265066(v=vs.85).aspx --- app/initialize.coffee | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/app/initialize.coffee b/app/initialize.coffee index db0078ea1..0f102fe22 100644 --- a/app/initialize.coffee +++ b/app/initialize.coffee @@ -20,6 +20,7 @@ definitionSchemas = 'misc': require './schemas/definitions/misc' init = -> + setupConsoleLogging() watchForErrors() setUpIOSLogging() path = document.location.pathname @@ -86,6 +87,11 @@ initializeServices = -> service = require service service() +setupConsoleLogging = -> + unless console.debug + # Needed for IE10 and earlier + console.debug = console.log + watchForErrors = -> currentErrors = 0 window.onerror = (msg, url, line, col, error) -> From 005d83929f110bdd27ea3eceea5ba9adf9d6a201 Mon Sep 17 00:00:00 2001 From: infoholico Date: Wed, 24 Sep 2014 16:35:27 -0430 Subject: [PATCH 12/34] Update es-419.coffee MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Hello, that's my first contribution, but I have to clear something: Javascript_blurb: "El lenguaje de la web. Usado en sitios y aplicaciones web, juegos en HTML5, y servidores." python_blurb: "Simple pero poderoso, Python es un grandioso lenguaje de programación para uso general." coffeescript_blurb: "Mejor JavaScript." clojure_blurb: "Un Lisp moderno." lua_blurb: "Para Juegos." io_blurb: "Simple pero oscuro." No son exactamente literales pero traté de que entraran en el espacio asignado. These are not literal translations but I tried to made them fit into the given space. What language should I use to communicate with you? Thanks. --- app/locale/es-419.coffee | 112 +++++++++++++++++++-------------------- 1 file changed, 56 insertions(+), 56 deletions(-) diff --git a/app/locale/es-419.coffee b/app/locale/es-419.coffee index 4b2cc94db..6c8b019a0 100644 --- a/app/locale/es-419.coffee +++ b/app/locale/es-419.coffee @@ -15,9 +15,9 @@ module.exports = nativeDescription: "español (América Latina)", englishDescrip fork: "Bifurcar" play: "Jugar" # When used as an action verb, like "Play next level" retry: "Reintentar" -# watch: "Watch" -# unwatch: "Unwatch" -# submit_patch: "Submit Patch" + watch: "Seguir" + unwatch: "No seguir" + submit_patch: "Enviar Parche" units: second: "segundo" @@ -26,14 +26,14 @@ module.exports = nativeDescription: "español (América Latina)", englishDescrip minutes: "minutos" hour: "hora" hours: "horas" -# day: "day" -# days: "days" -# week: "week" -# weeks: "weeks" -# month: "month" -# months: "months" -# year: "year" -# years: "years" + day: "día" + days: "días" + week: "semana" + weeks: "semanas" + month: "mes" + months: "meses" + year: "año" + years: "años" modal: close: "Cerrar" @@ -48,10 +48,10 @@ module.exports = nativeDescription: "español (América Latina)", englishDescrip editor: "Editor" blog: "Blog" forum: "Foro" -# account: "Account" -# profile: "Profile" -# stats: "Stats" -# code: "Code" + account: "Cuenta" + profile: "Perfil" + stats: "Stadísticas" + code: "Cógigo" admin: "Admin" home: "Inicio" contribute: "Contribuir" @@ -79,7 +79,7 @@ module.exports = nativeDescription: "español (América Latina)", englishDescrip recover: recover_account_title: "recuperar cuenta" send_password: "Enviar Contraseña de Recuperación" -# recovery_sent: "Recovery email sent." + recovery_sent: "Correo de recuperación enviado." signup: create_account_title: "Crear Cuenta para Guardar el Progreso" @@ -91,7 +91,7 @@ module.exports = nativeDescription: "español (América Latina)", englishDescrip sign_up: "Registrarse" log_in: "Inicia sesión con tu contraseña" social_signup: "O, puedes conectarte a través de Facebook o G+:" -# required: "You need to log in before you can go that way." + required: "Necesitas entrar a tu cuenta antes de continuar." home: slogan: "Aprende a programar jugando" @@ -104,12 +104,12 @@ module.exports = nativeDescription: "español (América Latina)", englishDescrip for_beginners: "Para Principiantes" multiplayer: "Multijugador" for_developers: "Para Desarrolladores" -# javascript_blurb: "The language of the web. Great for writing websites, web apps, HTML5 games, and servers." -# python_blurb: "Simple yet powerful, Python is a great general purpose programming language." -# coffeescript_blurb: "Nicer JavaScript syntax." -# clojure_blurb: "A modern Lisp." -# lua_blurb: "Game scripting language." -# io_blurb: "Simple but obscure." + javascript_blurb: "El lenguaje de la web. Usado en sitios y aplicaciones web, juegos en HTML5, y servidores." + python_blurb: "Simple pero poderoso, Python es un grandioso lenguaje de programación de uso general." + coffeescript_blurb: "Mejor JavaScript." + clojure_blurb: "Un Lisp moderno." + lua_blurb: "Para Juegos." + io_blurb: "Simple pero oscuro." play: choose_your_level: "Elige tu nivel" @@ -124,29 +124,29 @@ module.exports = nativeDescription: "español (América Latina)", englishDescrip campaign_multiplayer_description: "... en las que programas cara-a-cara contra otros jugadores." campaign_player_created: "Creados-Por-Jugadores" campaign_player_created_description: "... en los que luchas contra la creatividad de tus compañeros Hechiceros Artesanales." -# campaign_classic_algorithms: "Classic Algorithms" -# campaign_classic_algorithms_description: "... in which you learn the most popular algorithms in Computer Science." + campaign_classic_algorithms: "Algoritmos Clásicos" + campaign_classic_algorithms_description: "... en la cual aprendes los algoritmos más populares en las Ciencias de la Computación." level_difficulty: "Dificultad: " play_as: "Jugar Como " spectate: "Observar" -# players: "players" -# hours_played: "hours played" -# items: "Items" -# heroes: "Heroes" -# achievements: "Achievements" -# account: "Account" -# settings: "Settings" -# next: "Next" -# previous: "Previous" -# choose_inventory: "Equip Items" + players: "jugadores" + hours_played: "Horas jugadas" + items: "Objetos" + heroes: "Héroes" + achievements: "Logros" + account: "Cuenta" + settings: "Configuración" + next: "Próximo" + previous: "Previo" + choose_inventory: "Equipar objetos" -# items: -# armor: "Armor" -# hands: "Hands" -# accessories: "Accessories" -# books: "Books" -# minions: "Minions" -# misc: "Misc" + items: + armor: "Armadura" + hands: "Manos" + accessories: "Accesorios" + books: "Libros" + minions: "Seguidores" + misc: "Misc" contact: contact_us: "Contacta a CodeCombat" @@ -191,7 +191,7 @@ module.exports = nativeDescription: "español (América Latina)", englishDescrip autosave: "Cambios Guardados Automáticamente" me_tab: "Yo" picture_tab: "Imagen" -# upload_picture: "Upload a picture" + upload_picture: "Sube una imagen" wizard_tab: "Hechicero" password_tab: "Contraseña" emails_tab: "Correos" @@ -200,16 +200,16 @@ module.exports = nativeDescription: "español (América Latina)", englishDescrip new_password: "Nueva Contraseña" new_password_verify: "Verificar" email_subscriptions: "Suscripciones de Email" -# email_subscriptions_none: "No Email Subscriptions." + email_subscriptions_none: "No tienes subcripciones." email_announcements: "Noticias" email_announcements_description: "Recibe correos electrónicos con las últimas noticias y desarrollos de CodeCombat." email_notifications: "Notificaciones" -# email_notifications_summary: "Controls for personalized, automatic email notifications related to your CodeCombat activity." -# email_any_notes: "Any Notifications" -# email_any_notes_description: "Disable to stop all activity notification emails." -# email_news: "News" -# email_recruit_notes: "Job Opportunities" -# email_recruit_notes_description: "If you play really well, we may contact you about getting you a (better) job." + email_notifications_summary: "Controles para tus notificaciones por correo electrónico automáticas y personalizadas relativas a tu actividad en CodeCombat." + email_any_notes: "Algunas notificaciones" + email_any_notes_description: "Desactiva para detener toda la actividad de correos de notificaciones." + email_news: "Noticias" + email_recruit_notes: "Oportunidades Laborales" + email_recruit_notes_description: "Si juegas realmente bien podríamos contactarte para ofrecerte un (mejor) trabajo." contributor_emails: "Emails Clase Contribuyente" contribute_prefix: "¡Estamos buscando gente que se una a nuestro grupo! Echa un vistazo a la " contribute_page: "página de contribución" @@ -218,17 +218,17 @@ module.exports = nativeDescription: "español (América Latina)", englishDescrip error_saving: "Error al Guardar" saved: "Cambios Guardados" password_mismatch: "La contraseña no coincide." -# password_repeat: "Please repeat your password." + password_repeat: "Por favor repita su contraseña." job_profile: "Perfil de Trabajo" job_profile_approved: "Tu perfil de trabajo ha sido aprobado por CodeCombat. Los empleadores podrán verlo hasta que lo marques como inactivo o permanezca sin cambios por cuatro semanas." job_profile_explanation: "¡Hola! Llena esto, y te contactaremos acerca de encontrar un trabajo como desarrollador de software." -# sample_profile: "See a sample profile" -# view_profile: "View Your Profile" + sample_profile: "Mira un perfil de ejemplo" + view_profile: "Ver tu perfil" account_profile: -# settings: "Settings" -# edit_profile: "Edit Profile" -# done_editing: "Done Editing" + settings: "Configuración" + edit_profile: "Editar Perfil" + done_editing: "Terminar Edición" profile_for_prefix: "Perfil para " profile_for_suffix: "" # featured: "Featured" From ada65cc290035c682cd4fec6bb27e4b005f3e61f Mon Sep 17 00:00:00 2001 From: Nick Winter Date: Wed, 24 Sep 2014 15:06:22 -0700 Subject: [PATCH 13/34] Lowered master volume temporarily until per-sound instance volumes are fixed. --- app/views/play/SpectateView.coffee | 2 +- app/views/play/level/PlayLevelView.coffee | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/app/views/play/SpectateView.coffee b/app/views/play/SpectateView.coffee index 4adab5a3f..0468e227d 100644 --- a/app/views/play/SpectateView.coffee +++ b/app/views/play/SpectateView.coffee @@ -40,7 +40,7 @@ module.exports = class SpectateLevelView extends RootView isEditorPreview: false subscriptions: - 'level:set-volume': (e) -> createjs.Sound.setVolume(e.volume) + 'level:set-volume': (e) -> createjs.Sound.setVolume(if e.volume is 1 then 0.6 else e.volume) # Quieter for now until individual sound FX controls work again. 'god:new-world-created': 'onNewWorld' 'god:streaming-world-updated': 'onNewWorld' 'god:infinite-loop': 'onInfiniteLoop' diff --git a/app/views/play/level/PlayLevelView.coffee b/app/views/play/level/PlayLevelView.coffee index 7c0857ee4..192c712f8 100644 --- a/app/views/play/level/PlayLevelView.coffee +++ b/app/views/play/level/PlayLevelView.coffee @@ -45,7 +45,7 @@ module.exports = class PlayLevelView extends RootView isEditorPreview: false subscriptions: - 'level:set-volume': (e) -> createjs.Sound.setVolume(e.volume) + 'level:set-volume': (e) -> createjs.Sound.setVolume(if e.volume is 1 then 0.6 else e.volume) # Quieter for now until individual sound FX controls work again. 'level:show-victory': 'onShowVictory' 'level:restart': 'onRestartLevel' 'level:highlight-dom': 'onHighlightDom' From a786b1e096ab6af6396de70fd41cb50f71246061 Mon Sep 17 00:00:00 2001 From: Nick Winter Date: Wed, 24 Sep 2014 15:21:39 -0700 Subject: [PATCH 14/34] Changed world map to click on iPad, hover otherwise. --- app/templates/play/world-map-view.jade | 3 +- app/views/play/WorldMapView.coffee | 52 +++++++++++++++----------- 2 files changed, 33 insertions(+), 22 deletions(-) diff --git a/app/templates/play/world-map-view.jade b/app/templates/play/world-map-view.jade index f40b67fa2..899dc727a 100644 --- a/app/templates/play/world-map-view.jade +++ b/app/templates/play/world-map-view.jade @@ -24,7 +24,8 @@ span.spr , #{Math.round(playCount.playtime / 3600)} span(data-i18n="play.hours_played") hours played .campaign-label(style="color: #{campaign.color}")= campaign.name - button.btn.btn-success.btn-lg.start-level(data-i18n="common.play") Play + if isIPadApp + button.btn.btn-success.btn-lg.start-level(data-i18n="common.play") Play .game-controls.header-font if me.isAdmin() diff --git a/app/views/play/WorldMapView.coffee b/app/views/play/WorldMapView.coffee index 01d0ae359..6eae866f1 100644 --- a/app/views/play/WorldMapView.coffee +++ b/app/views/play/WorldMapView.coffee @@ -21,9 +21,9 @@ module.exports = class WorldMapView extends RootView 'click .map-background': 'onClickMap' 'click .level a': 'onClickLevel' 'click .level-info-container .start-level': 'onClickStartLevel' - #'mouseenter .level a': 'onMouseEnterLevel' - #'mouseleave .level a': 'onMouseLeaveLevel' - #'mousemove .map': 'onMouseMoveMap' + 'mouseenter .level a': 'onMouseEnterLevel' + 'mouseleave .level a': 'onMouseLeaveLevel' + 'mousemove .map': 'onMouseMoveMap' constructor: (options) -> super options @@ -66,13 +66,15 @@ module.exports = class WorldMapView extends RootView level.y ?= 10 + 80 * Math.random() context.levelStatusMap = @levelStatusMap context.levelPlayCountMap = @levelPlayCountMap + context.isIPadApp = application.isIPadApp context afterRender: -> super() @onWindowResize() - _.defer => @$el.find('.game-controls button').tooltip() # Have to defer or i18n doesn't take effect. - @$el.find('.level').tooltip() + unless application.isIPadApp + _.defer => @$el.find('.game-controls button').tooltip() # Have to defer or i18n doesn't take effect. + @$el.find('.level').tooltip() onSessionsLoaded: (e) -> for session in @sessions.models @@ -91,27 +93,35 @@ module.exports = class WorldMapView extends RootView e.stopPropagation() @$levelInfo?.hide() return if $(e.target).attr('disabled') + if application.isIPadApp + levelID = $(e.target).parents('.level').data('level-id') + @$levelInfo = @$el.find(".level-info-container[data-level-id=#{levelID}]").show() + @adjustLevelInfoPosition e + else + @startLevel $(e.target).parents('.level') + + onClickStartLevel: (e) -> + @startLevel $(e.target).parents('.level-info-container') + + startLevel: (levelElement) -> + playLevelModal = new PlayLevelModal supermodel: @supermodel, levelID: levelElement.data('level-id'), levelPath: levelElement.data('level-path'), levelName: levelElement.data('level-name') + @openModalView playLevelModal + @$levelInfo?.hide() + + onMouseEnterLevel: (e) -> + return if application.isIPadApp levelID = $(e.target).parents('.level').data('level-id') @$levelInfo = @$el.find(".level-info-container[data-level-id=#{levelID}]").show() @adjustLevelInfoPosition e - onClickStartLevel: (e) -> - container = $(e.target).parents('.level-info-container') - playLevelModal = new PlayLevelModal supermodel: @supermodel, levelID: container.data('level-id'), levelPath: container.data('level-path'), levelName: container.data('level-name') - @openModalView playLevelModal - @$levelInfo?.hide() + onMouseLeaveLevel: (e) -> + return if application.isIPadApp + levelID = $(e.target).parents('.level').data('level-id') + @$el.find(".level-info-container[data-level-id='#{levelID}']").hide() - #onMouseEnterLevel: (e) -> - # levelID = $(e.target).parents('.level').data('level-id') - # @$levelInfo = @$el.find(".level-info-container[data-level-id=#{levelID}]").show() - # @adjustLevelInfoPosition e - # - #onMouseLeaveLevel: (e) -> - # levelID = $(e.target).parents('.level').data('level-id') - # @$el.find(".level-info-container[data-level-id='#{levelID}']").hide() - # - #onMouseMoveMap: (e) -> - # @adjustLevelInfoPosition e + onMouseMoveMap: (e) -> + return if application.isIPadApp + @adjustLevelInfoPosition e adjustLevelInfoPosition: (e) -> return unless @$levelInfo From 53ddf0159d867288b099c77198b5ef7712696898 Mon Sep 17 00:00:00 2001 From: Nick Winter Date: Wed, 24 Sep 2014 15:39:51 -0700 Subject: [PATCH 15/34] Preloaded previous/next heroes in ChooseHeroView. --- app/views/game-menu/ChooseHeroView.coffee | 38 ++++++++++++++++------- 1 file changed, 27 insertions(+), 11 deletions(-) diff --git a/app/views/game-menu/ChooseHeroView.coffee b/app/views/game-menu/ChooseHeroView.coffee index c21e33635..7f3c32fcd 100644 --- a/app/views/game-menu/ChooseHeroView.coffee +++ b/app/views/game-menu/ChooseHeroView.coffee @@ -17,8 +17,8 @@ module.exports = class ChooseHeroView extends CocoView 'change #option-code-language': 'onCodeLanguageChanged' shortcuts: - 'left': -> @$el.find('#hero-carousel').carousel('prev') unless @$el.hasClass 'secret' - 'right': -> @$el.find('#hero-carousel').carousel('next') unless @$el.hasClass 'secret' + 'left': -> @$el.find('#hero-carousel').carousel('prev') if @heroes.models.length and not @$el.hasClass 'secret' + 'right': -> @$el.find('#hero-carousel').carousel('next') if @heroes.models.length and not @$el.hasClass 'secret' constructor: (options) -> super options @@ -69,6 +69,7 @@ module.exports = class ChooseHeroView extends CocoView direction = e.direction # 'left' or 'right' heroItem = $(e.relatedTarget) hero = _.find @heroes.models, (hero) -> hero.get('original') is heroItem.data('hero-id') + return console.error "Couldn't find hero from heroItem:", heroItem unless hero heroIndex = heroItem.index() @$el.find('.hero-indicator').each -> distance = Math.min 3, Math.abs $(@).index() - heroIndex @@ -77,19 +78,33 @@ module.exports = class ChooseHeroView extends CocoView heroInfo = temporaryHeroInfo[hero.get('slug')] locked = heroInfo.status is 'Locked' hero = @loadHero hero, heroIndex + @preloadHero heroIndex + 1 + @preloadHero heroIndex - 1 @selectedHero = hero unless locked Backbone.Mediator.publish 'level:hero-selection-updated', hero: @selectedHero $('#choose-inventory-button').prop 'disabled', locked - loadHero: (hero, heroIndex) -> + getFullHero: (original) -> + url = "/db/thang.type/#{original}/version" + if fullHero = @supermodel.getModel url + return fullHero + fullHero = new ThangType() + fullHero.setURL url + fullHero = (@supermodel.loadModel fullHero, 'thang').model + fullHero + + preloadHero: (heroIndex) -> + return unless hero = @heroes.models[heroIndex] + @loadHero hero, heroIndex, true + + loadHero: (hero, heroIndex, preloading=false) -> createjs.Ticker.removeEventListener 'tick', stage for stage in _.values @stages if stage = @stages[heroIndex] - createjs.Ticker.addEventListener 'tick', stage - @playSelectionSound hero + unless preloading + _.defer -> createjs.Ticker.addEventListener 'tick', stage # Deferred, otherwise it won't start updating for some reason. + @playSelectionSound hero return hero - fullHero = new ThangType() - fullHero.setURL "/db/thang.type/#{hero.get('original')}/version" - fullHero = (@supermodel.loadModel fullHero, 'thang').model + fullHero = @getFullHero hero.get 'original' onLoaded = => return unless canvas = $(".hero-item[data-hero-id='#{fullHero.get('original')}'] canvas") canvas.prop width: @canvasWidth, height: @canvasHeight @@ -104,12 +119,13 @@ module.exports = class ChooseHeroView extends CocoView movieClip.x = canvas.prop('width') * 0.5 movieClip.y = canvas.prop('height') * 0.925 # This is where the feet go. stage = new createjs.Stage(canvas[0]) + @stages[heroIndex] = stage stage.addChild movieClip stage.update() - createjs.Ticker.addEventListener 'tick', stage movieClip.gotoAndPlay 0 - @stages[heroIndex] = stage - @playSelectionSound hero + unless preloading + createjs.Ticker.addEventListener 'tick', stage + @playSelectionSound hero if fullHero.loaded _.defer onLoaded else From db525a8073a49a8d6747ca3f18263f0bea0144df Mon Sep 17 00:00:00 2001 From: Matt Lott Date: Wed, 24 Sep 2014 15:46:46 -0700 Subject: [PATCH 16/34] Fix IE restricted property check --- .../javascripts/workers/worker_world.js | 26 +++++++++---------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/app/assets/javascripts/workers/worker_world.js b/app/assets/javascripts/workers/worker_world.js index 9a5a9ded5..eb99b8c6a 100644 --- a/app/assets/javascripts/workers/worker_world.js +++ b/app/assets/javascripts/workers/worker_world.js @@ -65,19 +65,19 @@ self.console = console; self.importScripts('/javascripts/lodash.js', '/javascripts/world.js', '/javascripts/aether.js'); -// TODO: setting these in a loop in IE11 throws an error -Object.defineProperty(self, XMLHttpRequest, { - get: function() { throw new Error("Access to XMLHttpRequest is forbidden."); }, - configurable: false -}); -Object.defineProperty(self, importScripts, { - get: function() { throw new Error("Access to importScripts is forbidden."); }, - configurable: false -}); -Object.defineProperty(self, Worker, { - get: function() { throw new Error("Access to Worker is forbidden."); }, - configurable: false -}); +var restricted = ["XMLHttpRequest", "Worker"]; +if (!self.navigator || !(self.navigator.userAgent.indexOf('MSIE') > 0) && + !self.navigator.userAgent.match(/Trident.*rv\:11\./)) { + // Can't restrict 'importScripts' in IE11, skip for all IE versions + restricted.push("importScripts"); +} +for(var i = 0; i < restricted.length; ++i) { + // We could do way more from this: http://stackoverflow.com/questions/10653809/making-webworkers-a-safe-environment + Object.defineProperty(self, restricted[i], { + get: function() { throw new Error("Access to that global property is forbidden."); }, + configurable: false + }); +} self.transferableSupported = function transferableSupported() { if (typeof self._transferableSupported !== 'undefined') return self._transferableSupported; From 6b6d1d3e744a0b411dce8a72e48c13582abc2660 Mon Sep 17 00:00:00 2001 From: Nick Winter Date: Wed, 24 Sep 2014 15:48:18 -0700 Subject: [PATCH 17/34] Changed 'Available Spells' to 'Your Skills' in hero levels. --- app/locale/en.coffee | 1 + app/views/play/level/tome/SpellPaletteView.coffee | 3 ++- app/views/play/level/tome/TomeView.coffee | 2 +- 3 files changed, 4 insertions(+), 2 deletions(-) diff --git a/app/locale/en.coffee b/app/locale/en.coffee index 8a3bb5ec0..9517f8d5e 100644 --- a/app/locale/en.coffee +++ b/app/locale/en.coffee @@ -420,6 +420,7 @@ tome_select_spell: "Select a Spell" tome_select_a_thang: "Select Someone for " tome_available_spells: "Available Spells" + tome_your_skills: "Your Skills" hud_continue: "Continue (shift+space)" spell_saved: "Spell Saved" skip_tutorial: "Skip (esc)" diff --git a/app/views/play/level/tome/SpellPaletteView.coffee b/app/views/play/level/tome/SpellPaletteView.coffee index 90bd3073b..5582ca675 100644 --- a/app/views/play/level/tome/SpellPaletteView.coffee +++ b/app/views/play/level/tome/SpellPaletteView.coffee @@ -123,7 +123,8 @@ module.exports = class SpellPaletteView extends CocoView if tabbify and _.find @entries, ((entry) -> entry.doc.owner isnt 'this') @entryGroups = _.groupBy @entries, groupForEntry else - defaultGroup = $.i18n.t('play_level.tome_available_spells', defaultValue: 'Available Spells') + i18nKey = if @options.level.get('type', true) is 'hero' then 'play_level.tome_your_skills' else 'play_level.tome_available_spells' + defaultGroup = $.i18n.t i18nKey @entryGroups = {} @entryGroups[defaultGroup] = @entries @defaultGroupSlug = _.string.slugify defaultGroup diff --git a/app/views/play/level/tome/TomeView.coffee b/app/views/play/level/tome/TomeView.coffee index f79f4edab..9a6531984 100644 --- a/app/views/play/level/tome/TomeView.coffee +++ b/app/views/play/level/tome/TomeView.coffee @@ -212,7 +212,7 @@ module.exports = class TomeView extends CocoView updateSpellPalette: (thang, spell) -> return unless thang and @spellPaletteView?.thang isnt thang and thang.programmableProperties or thang.apiProperties - @spellPaletteView = @insertSubView new SpellPaletteView thang: thang, supermodel: @supermodel, programmable: spell?.canRead(), language: spell?.language ? @options.session.get('codeLanguage'), session: @options.session + @spellPaletteView = @insertSubView new SpellPaletteView thang: thang, supermodel: @supermodel, programmable: spell?.canRead(), language: spell?.language ? @options.session.get('codeLanguage'), session: @options.session, level: @options.level @spellPaletteView.toggleControls {}, spell.view.controlsEnabled if spell # TODO: know when palette should have been disabled but didn't exist spellFor: (thang, spellName) -> From 83fc88e3b6c949906406f96f185dccb2e71573b7 Mon Sep 17 00:00:00 2001 From: Nick Winter Date: Wed, 24 Sep 2014 15:49:07 -0700 Subject: [PATCH 18/34] Propagated i18n. --- app/locale/ar.coffee | 4 +++- app/locale/bg.coffee | 4 +++- app/locale/ca.coffee | 4 +++- app/locale/cs.coffee | 4 +++- app/locale/da.coffee | 4 +++- app/locale/de-AT.coffee | 4 +++- app/locale/de-CH.coffee | 4 +++- app/locale/de-DE.coffee | 4 +++- app/locale/el.coffee | 4 +++- app/locale/en-AU.coffee | 4 +++- app/locale/en-GB.coffee | 4 +++- app/locale/en-US.coffee | 4 +++- app/locale/en.coffee | 1 - app/locale/es-419.coffee | 4 +++- app/locale/es-ES.coffee | 4 +++- app/locale/fa.coffee | 4 +++- app/locale/fi.coffee | 4 +++- app/locale/fr.coffee | 4 +++- app/locale/he.coffee | 4 +++- app/locale/hi.coffee | 4 +++- app/locale/hu.coffee | 4 +++- app/locale/id.coffee | 4 +++- app/locale/it.coffee | 4 +++- app/locale/ja.coffee | 4 +++- app/locale/ko.coffee | 4 +++- app/locale/lt.coffee | 4 +++- app/locale/ms.coffee | 4 +++- app/locale/nb.coffee | 4 +++- app/locale/nl-BE.coffee | 4 +++- app/locale/nl-NL.coffee | 4 +++- app/locale/nn.coffee | 4 +++- app/locale/no.coffee | 4 +++- app/locale/pl.coffee | 4 +++- app/locale/pt-BR.coffee | 4 +++- app/locale/pt-PT.coffee | 4 +++- app/locale/ro.coffee | 4 +++- app/locale/ru.coffee | 4 +++- app/locale/sk.coffee | 4 +++- app/locale/sl.coffee | 4 +++- app/locale/sr.coffee | 4 +++- app/locale/sv.coffee | 4 +++- app/locale/th.coffee | 4 +++- app/locale/tr.coffee | 4 +++- app/locale/uk.coffee | 4 +++- app/locale/ur.coffee | 4 +++- app/locale/vi.coffee | 4 +++- app/locale/zh-HANS.coffee | 4 +++- app/locale/zh-HANT.coffee | 4 +++- app/locale/zh-WUU-HANS.coffee | 4 +++- app/locale/zh-WUU-HANT.coffee | 4 +++- 50 files changed, 147 insertions(+), 50 deletions(-) diff --git a/app/locale/ar.coffee b/app/locale/ar.coffee index ebadb0b11..6a0ff73d7 100644 --- a/app/locale/ar.coffee +++ b/app/locale/ar.coffee @@ -378,7 +378,7 @@ module.exports = nativeDescription: "العربية", englishDescription: "Arabi # done: "Done" # customize_wizard: "Customize Wizard" # home: "Home" -# stop: "Stop" +# skip: "Skip" # game_menu: "Game Menu" # guide: "Guide" # restart: "Restart" @@ -400,6 +400,7 @@ module.exports = nativeDescription: "العربية", englishDescription: "Arabi # victory_rate_the_level: "Rate the level: " # victory_return_to_ladder: "Return to Ladder" # victory_play_next_level: "Play Next Level" +# victory_play_continue: "Continue" # victory_go_home: "Go Home" # victory_review: "Tell us more!" # victory_hour_of_code_done: "Are You Done?" @@ -418,6 +419,7 @@ module.exports = nativeDescription: "العربية", englishDescription: "Arabi # tome_select_spell: "Select a Spell" # tome_select_a_thang: "Select Someone for " # tome_available_spells: "Available Spells" +# tome_your_skills: "Your Skills" # hud_continue: "Continue (shift+space)" # spell_saved: "Spell Saved" # skip_tutorial: "Skip (esc)" diff --git a/app/locale/bg.coffee b/app/locale/bg.coffee index 40585ab7b..86c840209 100644 --- a/app/locale/bg.coffee +++ b/app/locale/bg.coffee @@ -378,7 +378,7 @@ module.exports = nativeDescription: "български език", englishDescri done: "Готово" # customize_wizard: "Customize Wizard" # home: "Home" -# stop: "Stop" +# skip: "Skip" # game_menu: "Game Menu" # guide: "Guide" # restart: "Restart" @@ -400,6 +400,7 @@ module.exports = nativeDescription: "български език", englishDescri # victory_rate_the_level: "Rate the level: " # victory_return_to_ladder: "Return to Ladder" # victory_play_next_level: "Play Next Level" +# victory_play_continue: "Continue" # victory_go_home: "Go Home" # victory_review: "Tell us more!" # victory_hour_of_code_done: "Are You Done?" @@ -418,6 +419,7 @@ module.exports = nativeDescription: "български език", englishDescri # tome_select_spell: "Select a Spell" # tome_select_a_thang: "Select Someone for " # tome_available_spells: "Available Spells" +# tome_your_skills: "Your Skills" # hud_continue: "Continue (shift+space)" # spell_saved: "Spell Saved" # skip_tutorial: "Skip (esc)" diff --git a/app/locale/ca.coffee b/app/locale/ca.coffee index cb90cf4ba..2d71d9089 100644 --- a/app/locale/ca.coffee +++ b/app/locale/ca.coffee @@ -378,7 +378,7 @@ module.exports = nativeDescription: "Català", englishDescription: "Catalan", tr # done: "Done" # customize_wizard: "Customize Wizard" # home: "Home" -# stop: "Stop" +# skip: "Skip" # game_menu: "Game Menu" # guide: "Guide" # restart: "Restart" @@ -400,6 +400,7 @@ module.exports = nativeDescription: "Català", englishDescription: "Catalan", tr # victory_rate_the_level: "Rate the level: " # victory_return_to_ladder: "Return to Ladder" # victory_play_next_level: "Play Next Level" +# victory_play_continue: "Continue" # victory_go_home: "Go Home" # victory_review: "Tell us more!" # victory_hour_of_code_done: "Are You Done?" @@ -418,6 +419,7 @@ module.exports = nativeDescription: "Català", englishDescription: "Catalan", tr # tome_select_spell: "Select a Spell" # tome_select_a_thang: "Select Someone for " # tome_available_spells: "Available Spells" +# tome_your_skills: "Your Skills" # hud_continue: "Continue (shift+space)" # spell_saved: "Spell Saved" # skip_tutorial: "Skip (esc)" diff --git a/app/locale/cs.coffee b/app/locale/cs.coffee index 57000b49e..3b12c97a8 100644 --- a/app/locale/cs.coffee +++ b/app/locale/cs.coffee @@ -378,7 +378,7 @@ module.exports = nativeDescription: "čeština", englishDescription: "Czech", tr done: "Hotovo" customize_wizard: "Upravit Kouzelníka" home: "Domů" -# stop: "Stop" +# skip: "Skip" # game_menu: "Game Menu" guide: "Průvodce" restart: "Restartovat" @@ -400,6 +400,7 @@ module.exports = nativeDescription: "čeština", englishDescription: "Czech", tr victory_rate_the_level: "Ohodnoťte tuto úroveň: " # victory_return_to_ladder: "Return to Ladder" victory_play_next_level: "Hrát další úroveň" +# victory_play_continue: "Continue" victory_go_home: "Přejít domů" victory_review: "Připomínky!" victory_hour_of_code_done: "Skončili jste?" @@ -418,6 +419,7 @@ module.exports = nativeDescription: "čeština", englishDescription: "Czech", tr tome_select_spell: "Zvolte Kouzlo" tome_select_a_thang: "Zvolte někoho pro " tome_available_spells: "Dostupná kouzla" +# tome_your_skills: "Your Skills" hud_continue: "Pokračovat (stiskněte shift-mezera)" spell_saved: "Kouzlo uloženo" # skip_tutorial: "Skip (esc)" diff --git a/app/locale/da.coffee b/app/locale/da.coffee index b8a438973..48e258ca0 100644 --- a/app/locale/da.coffee +++ b/app/locale/da.coffee @@ -378,7 +378,7 @@ module.exports = nativeDescription: "dansk", englishDescription: "Danish", trans done: "Færdig" customize_wizard: "Tilpas troldmand" home: "Hjem" -# stop: "Stop" +# skip: "Skip" # game_menu: "Game Menu" guide: "Guide" restart: "Start forfra" @@ -400,6 +400,7 @@ module.exports = nativeDescription: "dansk", englishDescription: "Danish", trans victory_rate_the_level: "Bedøm denne bane: " # victory_return_to_ladder: "Return to Ladder" victory_play_next_level: "Spil næste bane" +# victory_play_continue: "Continue" victory_go_home: "Gå hjem" victory_review: "Fortæl os mere!" victory_hour_of_code_done: "Er du færdig?" @@ -418,6 +419,7 @@ module.exports = nativeDescription: "dansk", englishDescription: "Danish", trans tome_select_spell: "Vælg en trylleformular" tome_select_a_thang: "Vælg nogen til at " tome_available_spells: "Tilgængelige trylleformularer" +# tome_your_skills: "Your Skills" hud_continue: "Fortsæt (tryk skift-mellemrum)" spell_saved: "Trylleformularen er gemt" skip_tutorial: "Spring over (esc)" diff --git a/app/locale/de-AT.coffee b/app/locale/de-AT.coffee index 3917d496e..3349b91a6 100644 --- a/app/locale/de-AT.coffee +++ b/app/locale/de-AT.coffee @@ -378,7 +378,7 @@ module.exports = nativeDescription: "Deutsch (Österreich)", englishDescription: done: "Fertig" customize_wizard: "Bearbeite den Zauberer" home: "Startseite" - stop: "Stopp" +# skip: "Skip" game_menu: "Spielmenü" guide: "Hilfe" restart: "Neustart" @@ -400,6 +400,7 @@ module.exports = nativeDescription: "Deutsch (Österreich)", englishDescription: victory_rate_the_level: "Bewerte das Level: " victory_return_to_ladder: "Zurück zur Rangliste" victory_play_next_level: "Spiel das nächste Level" +# victory_play_continue: "Continue" victory_go_home: "Geh auf die Startseite" victory_review: "Erzähl uns davon!" victory_hour_of_code_done: "Bist Du fertig?" @@ -418,6 +419,7 @@ module.exports = nativeDescription: "Deutsch (Österreich)", englishDescription: tome_select_spell: "Wähle einen Zauber" tome_select_a_thang: "Wähle jemanden aus, um " tome_available_spells: "Verfügbare Zauber" +# tome_your_skills: "Your Skills" hud_continue: "Weiter (drücke Shift + Leertaste)" spell_saved: "Zauber gespeichert" skip_tutorial: "Überspringen (Esc)" diff --git a/app/locale/de-CH.coffee b/app/locale/de-CH.coffee index d45eda4ee..66137f1fa 100644 --- a/app/locale/de-CH.coffee +++ b/app/locale/de-CH.coffee @@ -378,7 +378,7 @@ module.exports = nativeDescription: "Deutsch (Schweiz)", englishDescription: "Ge done: "Fertig" customize_wizard: "Zauberer apasse" home: "Home" -# stop: "Stop" +# skip: "Skip" # game_menu: "Game Menu" guide: "Aleitig" restart: "Neu starte" @@ -400,6 +400,7 @@ module.exports = nativeDescription: "Deutsch (Schweiz)", englishDescription: "Ge victory_rate_the_level: "Bewerte das Level: " victory_return_to_ladder: "Zrugg zum letzte Level" victory_play_next_level: "Spiel s nögste Level" +# victory_play_continue: "Continue" # victory_go_home: "Go Home" victory_review: "Verzell üs meh!" victory_hour_of_code_done: "Bisch fertig?" @@ -418,6 +419,7 @@ module.exports = nativeDescription: "Deutsch (Schweiz)", englishDescription: "Ge tome_select_spell: "Wähl en Zauberspruch us" tome_select_a_thang: "Wähl öpper us für" tome_available_spells: "Verfüegbari Zaubersprüch" +# tome_your_skills: "Your Skills" hud_continue: "Wiiter (shift+space)" spell_saved: "Zauberspruch gspeicheret" skip_tutorial: "Überspringe (esc)" diff --git a/app/locale/de-DE.coffee b/app/locale/de-DE.coffee index d8bc668ac..b2c167628 100644 --- a/app/locale/de-DE.coffee +++ b/app/locale/de-DE.coffee @@ -378,7 +378,7 @@ module.exports = nativeDescription: "Deutsch (Deutschland)", englishDescription: done: "Fertig" customize_wizard: "Bearbeite den Zauberer" home: "Startseite" - stop: "Stopp" +# skip: "Skip" game_menu: "Spielmenü" guide: "Hilfe" restart: "Neustart" @@ -400,6 +400,7 @@ module.exports = nativeDescription: "Deutsch (Deutschland)", englishDescription: victory_rate_the_level: "Bewerte das Level: " victory_return_to_ladder: "Zurück zur Rangliste" victory_play_next_level: "Spiel das nächste Level" +# victory_play_continue: "Continue" victory_go_home: "Geh auf die Startseite" victory_review: "Erzähl uns davon!" victory_hour_of_code_done: "Bist Du fertig?" @@ -418,6 +419,7 @@ module.exports = nativeDescription: "Deutsch (Deutschland)", englishDescription: tome_select_spell: "Wähle einen Zauber" tome_select_a_thang: "Wähle jemanden aus, um " tome_available_spells: "Verfügbare Zauber" +# tome_your_skills: "Your Skills" hud_continue: "Weiter (drücke Shift + Leertaste)" spell_saved: "Zauber gespeichert" skip_tutorial: "Überspringen (Esc)" diff --git a/app/locale/el.coffee b/app/locale/el.coffee index fcd7da4ab..9fea63f9e 100644 --- a/app/locale/el.coffee +++ b/app/locale/el.coffee @@ -378,7 +378,7 @@ module.exports = nativeDescription: "Ελληνικά", englishDescription: "Gre done: "Έτοιμο" customize_wizard: "Προσαρμόστε τον Μάγο" home: "Αρχική" -# stop: "Stop" +# skip: "Skip" # game_menu: "Game Menu" guide: "Οδηγός" # restart: "Restart" @@ -400,6 +400,7 @@ module.exports = nativeDescription: "Ελληνικά", englishDescription: "Gre victory_rate_the_level: "Βαθμολογήστε το επίπεδο: " # victory_return_to_ladder: "Return to Ladder" victory_play_next_level: "Παίξε το επόμενο επίπεδο" +# victory_play_continue: "Continue" victory_go_home: "Πηγαίνετε στην Αρχική" victory_review: "Πείτε μας περισσότερα!" victory_hour_of_code_done: "Τελείωσες;" @@ -418,6 +419,7 @@ module.exports = nativeDescription: "Ελληνικά", englishDescription: "Gre # tome_select_spell: "Select a Spell" # tome_select_a_thang: "Select Someone for " # tome_available_spells: "Available Spells" +# tome_your_skills: "Your Skills" # hud_continue: "Continue (shift+space)" # spell_saved: "Spell Saved" # skip_tutorial: "Skip (esc)" diff --git a/app/locale/en-AU.coffee b/app/locale/en-AU.coffee index 09c37ea4d..6bc252498 100644 --- a/app/locale/en-AU.coffee +++ b/app/locale/en-AU.coffee @@ -378,7 +378,7 @@ module.exports = nativeDescription: "English (AU)", englishDescription: "English # done: "Done" # customize_wizard: "Customize Wizard" # home: "Home" -# stop: "Stop" +# skip: "Skip" # game_menu: "Game Menu" # guide: "Guide" # restart: "Restart" @@ -400,6 +400,7 @@ module.exports = nativeDescription: "English (AU)", englishDescription: "English # victory_rate_the_level: "Rate the level: " # victory_return_to_ladder: "Return to Ladder" # victory_play_next_level: "Play Next Level" +# victory_play_continue: "Continue" # victory_go_home: "Go Home" # victory_review: "Tell us more!" # victory_hour_of_code_done: "Are You Done?" @@ -418,6 +419,7 @@ module.exports = nativeDescription: "English (AU)", englishDescription: "English # tome_select_spell: "Select a Spell" # tome_select_a_thang: "Select Someone for " # tome_available_spells: "Available Spells" +# tome_your_skills: "Your Skills" # hud_continue: "Continue (shift+space)" # spell_saved: "Spell Saved" # skip_tutorial: "Skip (esc)" diff --git a/app/locale/en-GB.coffee b/app/locale/en-GB.coffee index 615de37f8..a37a97432 100644 --- a/app/locale/en-GB.coffee +++ b/app/locale/en-GB.coffee @@ -378,7 +378,7 @@ module.exports = nativeDescription: "English (UK)", englishDescription: "English # done: "Done" customize_wizard: "Customise Wizard" # home: "Home" -# stop: "Stop" +# skip: "Skip" # game_menu: "Game Menu" # guide: "Guide" # restart: "Restart" @@ -400,6 +400,7 @@ module.exports = nativeDescription: "English (UK)", englishDescription: "English # victory_rate_the_level: "Rate the level: " # victory_return_to_ladder: "Return to Ladder" # victory_play_next_level: "Play Next Level" +# victory_play_continue: "Continue" # victory_go_home: "Go Home" # victory_review: "Tell us more!" # victory_hour_of_code_done: "Are You Done?" @@ -418,6 +419,7 @@ module.exports = nativeDescription: "English (UK)", englishDescription: "English # tome_select_spell: "Select a Spell" # tome_select_a_thang: "Select Someone for " # tome_available_spells: "Available Spells" +# tome_your_skills: "Your Skills" # hud_continue: "Continue (shift+space)" # spell_saved: "Spell Saved" # skip_tutorial: "Skip (esc)" diff --git a/app/locale/en-US.coffee b/app/locale/en-US.coffee index 4b970520e..487327c79 100644 --- a/app/locale/en-US.coffee +++ b/app/locale/en-US.coffee @@ -378,7 +378,7 @@ module.exports = nativeDescription: "English (US)", englishDescription: "English # done: "Done" # customize_wizard: "Customize Wizard" # home: "Home" -# stop: "Stop" +# skip: "Skip" # game_menu: "Game Menu" # guide: "Guide" # restart: "Restart" @@ -400,6 +400,7 @@ module.exports = nativeDescription: "English (US)", englishDescription: "English # victory_rate_the_level: "Rate the level: " # victory_return_to_ladder: "Return to Ladder" # victory_play_next_level: "Play Next Level" +# victory_play_continue: "Continue" # victory_go_home: "Go Home" # victory_review: "Tell us more!" # victory_hour_of_code_done: "Are You Done?" @@ -418,6 +419,7 @@ module.exports = nativeDescription: "English (US)", englishDescription: "English # tome_select_spell: "Select a Spell" # tome_select_a_thang: "Select Someone for " # tome_available_spells: "Available Spells" +# tome_your_skills: "Your Skills" # hud_continue: "Continue (shift+space)" # spell_saved: "Spell Saved" # skip_tutorial: "Skip (esc)" diff --git a/app/locale/en.coffee b/app/locale/en.coffee index 9517f8d5e..103f368cb 100644 --- a/app/locale/en.coffee +++ b/app/locale/en.coffee @@ -378,7 +378,6 @@ done: "Done" customize_wizard: "Customize Wizard" home: "Home" - stop: "Stop" skip: "Skip" game_menu: "Game Menu" guide: "Guide" diff --git a/app/locale/es-419.coffee b/app/locale/es-419.coffee index 2795fef68..7aff98404 100644 --- a/app/locale/es-419.coffee +++ b/app/locale/es-419.coffee @@ -378,7 +378,7 @@ module.exports = nativeDescription: "español (América Latina)", englishDescrip done: "Listo" customize_wizard: "Personalizar Hechicero" home: "Inicio" - stop: "Detener" +# skip: "Skip" game_menu: "Menu del Juego" guide: "Guia" restart: "Reiniciar" @@ -400,6 +400,7 @@ module.exports = nativeDescription: "español (América Latina)", englishDescrip victory_rate_the_level: "Valora el nivel: " victory_return_to_ladder: "Volver a la escalera" victory_play_next_level: "Jugar Próximo Nivel" +# victory_play_continue: "Continue" victory_go_home: "Ir al Inicio" victory_review: "¡Cuéntanos más!" victory_hour_of_code_done: "¿Has acabado?" @@ -418,6 +419,7 @@ module.exports = nativeDescription: "español (América Latina)", englishDescrip tome_select_spell: "Selecciona un Hechizo" tome_select_a_thang: "Selecciona Alguien para " tome_available_spells: "Hechizos Disponibles" +# tome_your_skills: "Your Skills" hud_continue: "Continuar (presionar shift+space)" spell_saved: "Hechizo Guardado" skip_tutorial: "Saltar (esc)" diff --git a/app/locale/es-ES.coffee b/app/locale/es-ES.coffee index 4275bf6bf..5cb165ec7 100644 --- a/app/locale/es-ES.coffee +++ b/app/locale/es-ES.coffee @@ -378,7 +378,7 @@ module.exports = nativeDescription: "español (ES)", englishDescription: "Spanis done: "Hecho" customize_wizard: "Personalizar Mago" home: "Inicio" - stop: "Parar" +# skip: "Skip" game_menu: "Menu del Juego" guide: "Guía" restart: "Reiniciar" @@ -400,6 +400,7 @@ module.exports = nativeDescription: "español (ES)", englishDescription: "Spanis victory_rate_the_level: "Puntúa este nivel: " victory_return_to_ladder: "Volver a Clasificación" victory_play_next_level: "Jugar el siguiente nivel" +# victory_play_continue: "Continue" victory_go_home: "Ir a Inicio" victory_review: "¡Cuéntanos más!" victory_hour_of_code_done: "¿Ya terminaste?" @@ -418,6 +419,7 @@ module.exports = nativeDescription: "español (ES)", englishDescription: "Spanis tome_select_spell: "Selecciona un Hechizo" tome_select_a_thang: "Selecciona a alguien para " tome_available_spells: "Hechizos disponibles" +# tome_your_skills: "Your Skills" hud_continue: "Continuar (pulsa Shift+Space)" spell_saved: "Hechizo guardado" skip_tutorial: "Saltar (esc)" diff --git a/app/locale/fa.coffee b/app/locale/fa.coffee index ae3d0373a..994da02d4 100644 --- a/app/locale/fa.coffee +++ b/app/locale/fa.coffee @@ -378,7 +378,7 @@ module.exports = nativeDescription: "فارسی", englishDescription: "Persian", # done: "Done" # customize_wizard: "Customize Wizard" # home: "Home" -# stop: "Stop" +# skip: "Skip" # game_menu: "Game Menu" # guide: "Guide" # restart: "Restart" @@ -400,6 +400,7 @@ module.exports = nativeDescription: "فارسی", englishDescription: "Persian", # victory_rate_the_level: "Rate the level: " # victory_return_to_ladder: "Return to Ladder" # victory_play_next_level: "Play Next Level" +# victory_play_continue: "Continue" # victory_go_home: "Go Home" # victory_review: "Tell us more!" # victory_hour_of_code_done: "Are You Done?" @@ -418,6 +419,7 @@ module.exports = nativeDescription: "فارسی", englishDescription: "Persian", # tome_select_spell: "Select a Spell" # tome_select_a_thang: "Select Someone for " # tome_available_spells: "Available Spells" +# tome_your_skills: "Your Skills" # hud_continue: "Continue (shift+space)" # spell_saved: "Spell Saved" # skip_tutorial: "Skip (esc)" diff --git a/app/locale/fi.coffee b/app/locale/fi.coffee index 62a79f0e6..b894cc220 100644 --- a/app/locale/fi.coffee +++ b/app/locale/fi.coffee @@ -378,7 +378,7 @@ module.exports = nativeDescription: "suomi", englishDescription: "Finnish", tran # done: "Done" # customize_wizard: "Customize Wizard" # home: "Home" -# stop: "Stop" +# skip: "Skip" # game_menu: "Game Menu" # guide: "Guide" # restart: "Restart" @@ -400,6 +400,7 @@ module.exports = nativeDescription: "suomi", englishDescription: "Finnish", tran # victory_rate_the_level: "Rate the level: " # victory_return_to_ladder: "Return to Ladder" # victory_play_next_level: "Play Next Level" +# victory_play_continue: "Continue" # victory_go_home: "Go Home" # victory_review: "Tell us more!" # victory_hour_of_code_done: "Are You Done?" @@ -418,6 +419,7 @@ module.exports = nativeDescription: "suomi", englishDescription: "Finnish", tran # tome_select_spell: "Select a Spell" # tome_select_a_thang: "Select Someone for " # tome_available_spells: "Available Spells" +# tome_your_skills: "Your Skills" # hud_continue: "Continue (shift+space)" # spell_saved: "Spell Saved" # skip_tutorial: "Skip (esc)" diff --git a/app/locale/fr.coffee b/app/locale/fr.coffee index fa743c337..e041678fd 100644 --- a/app/locale/fr.coffee +++ b/app/locale/fr.coffee @@ -378,7 +378,7 @@ module.exports = nativeDescription: "français", englishDescription: "French", t done: "Fait" customize_wizard: "Personnaliser le magicien" home: "Accueil" -# stop: "Stop" +# skip: "Skip" # game_menu: "Game Menu" guide: "Guide" restart: "Relancer" @@ -400,6 +400,7 @@ module.exports = nativeDescription: "français", englishDescription: "French", t victory_rate_the_level: "Notez ce niveau: " # victory_return_to_ladder: "Return to Ladder" victory_play_next_level: "Jouer au prochain niveau" +# victory_play_continue: "Continue" victory_go_home: "Retourner à l'accueil" victory_review: "Dites-nous en plus!" victory_hour_of_code_done: "Déjà fini ?" @@ -418,6 +419,7 @@ module.exports = nativeDescription: "français", englishDescription: "French", t tome_select_spell: "Choisissez un sort" tome_select_a_thang: "Sélectionnez une unité pour" tome_available_spells: "Sorts diponibles" +# tome_your_skills: "Your Skills" hud_continue: "Continuer (appuie sur shift ou espace)" spell_saved: "Sort enregistré" skip_tutorial: "Passer (esc)" diff --git a/app/locale/he.coffee b/app/locale/he.coffee index e2614287f..e465488bf 100644 --- a/app/locale/he.coffee +++ b/app/locale/he.coffee @@ -378,7 +378,7 @@ module.exports = nativeDescription: "עברית", englishDescription: "Hebrew", # done: "Done" # customize_wizard: "Customize Wizard" # home: "Home" -# stop: "Stop" +# skip: "Skip" # game_menu: "Game Menu" # guide: "Guide" # restart: "Restart" @@ -400,6 +400,7 @@ module.exports = nativeDescription: "עברית", englishDescription: "Hebrew", # victory_rate_the_level: "Rate the level: " # victory_return_to_ladder: "Return to Ladder" # victory_play_next_level: "Play Next Level" +# victory_play_continue: "Continue" # victory_go_home: "Go Home" # victory_review: "Tell us more!" # victory_hour_of_code_done: "Are You Done?" @@ -418,6 +419,7 @@ module.exports = nativeDescription: "עברית", englishDescription: "Hebrew", # tome_select_spell: "Select a Spell" # tome_select_a_thang: "Select Someone for " # tome_available_spells: "Available Spells" +# tome_your_skills: "Your Skills" # hud_continue: "Continue (shift+space)" # spell_saved: "Spell Saved" # skip_tutorial: "Skip (esc)" diff --git a/app/locale/hi.coffee b/app/locale/hi.coffee index d5f8681f1..93bdeec23 100644 --- a/app/locale/hi.coffee +++ b/app/locale/hi.coffee @@ -378,7 +378,7 @@ module.exports = nativeDescription: "मानक हिन्दी", englishDe # done: "Done" # customize_wizard: "Customize Wizard" # home: "Home" -# stop: "Stop" +# skip: "Skip" # game_menu: "Game Menu" # guide: "Guide" # restart: "Restart" @@ -400,6 +400,7 @@ module.exports = nativeDescription: "मानक हिन्दी", englishDe # victory_rate_the_level: "Rate the level: " # victory_return_to_ladder: "Return to Ladder" # victory_play_next_level: "Play Next Level" +# victory_play_continue: "Continue" # victory_go_home: "Go Home" # victory_review: "Tell us more!" # victory_hour_of_code_done: "Are You Done?" @@ -418,6 +419,7 @@ module.exports = nativeDescription: "मानक हिन्दी", englishDe # tome_select_spell: "Select a Spell" # tome_select_a_thang: "Select Someone for " # tome_available_spells: "Available Spells" +# tome_your_skills: "Your Skills" # hud_continue: "Continue (shift+space)" # spell_saved: "Spell Saved" # skip_tutorial: "Skip (esc)" diff --git a/app/locale/hu.coffee b/app/locale/hu.coffee index 02fb8038a..a07f5aa1f 100644 --- a/app/locale/hu.coffee +++ b/app/locale/hu.coffee @@ -378,7 +378,7 @@ module.exports = nativeDescription: "magyar", englishDescription: "Hungarian", t done: "Kész" customize_wizard: "Varázsló testreszabása" home: "Kezdőlap" -# stop: "Stop" +# skip: "Skip" # game_menu: "Game Menu" guide: "Segítség" restart: "Előlről" @@ -400,6 +400,7 @@ module.exports = nativeDescription: "magyar", englishDescription: "Hungarian", t victory_rate_the_level: "Értékeld a pályát: " # victory_return_to_ladder: "Return to Ladder" victory_play_next_level: "Következő pálya" +# victory_play_continue: "Continue" victory_go_home: "Vissza a kezdőoldalra" victory_review: "Mondd el a véleményedet!" victory_hour_of_code_done: "Készen vagy?" @@ -418,6 +419,7 @@ module.exports = nativeDescription: "magyar", englishDescription: "Hungarian", t tome_select_spell: "Válassz egy varázslatot" tome_select_a_thang: "Válassz ki valakit " tome_available_spells: "Elérhető varázslatok" +# tome_your_skills: "Your Skills" hud_continue: "Folytatás (shift+space)" spell_saved: "Varázslat elmentve." # skip_tutorial: "Skip (esc)" diff --git a/app/locale/id.coffee b/app/locale/id.coffee index 7103e797d..126067b5b 100644 --- a/app/locale/id.coffee +++ b/app/locale/id.coffee @@ -378,7 +378,7 @@ module.exports = nativeDescription: "Bahasa Indonesia", englishDescription: "Ind # done: "Done" # customize_wizard: "Customize Wizard" # home: "Home" -# stop: "Stop" +# skip: "Skip" # game_menu: "Game Menu" # guide: "Guide" # restart: "Restart" @@ -400,6 +400,7 @@ module.exports = nativeDescription: "Bahasa Indonesia", englishDescription: "Ind # victory_rate_the_level: "Rate the level: " # victory_return_to_ladder: "Return to Ladder" # victory_play_next_level: "Play Next Level" +# victory_play_continue: "Continue" # victory_go_home: "Go Home" # victory_review: "Tell us more!" # victory_hour_of_code_done: "Are You Done?" @@ -418,6 +419,7 @@ module.exports = nativeDescription: "Bahasa Indonesia", englishDescription: "Ind # tome_select_spell: "Select a Spell" # tome_select_a_thang: "Select Someone for " # tome_available_spells: "Available Spells" +# tome_your_skills: "Your Skills" # hud_continue: "Continue (shift+space)" # spell_saved: "Spell Saved" # skip_tutorial: "Skip (esc)" diff --git a/app/locale/it.coffee b/app/locale/it.coffee index b06c46f22..2feb80ea5 100644 --- a/app/locale/it.coffee +++ b/app/locale/it.coffee @@ -378,7 +378,7 @@ module.exports = nativeDescription: "Italiano", englishDescription: "Italian", t done: "Fatto" customize_wizard: "Personalizza stregone" home: "Pagina iniziale" - stop: "Stop" +# skip: "Skip" game_menu: "Menu" guide: "Guida" restart: "Ricomincia" @@ -400,6 +400,7 @@ module.exports = nativeDescription: "Italiano", englishDescription: "Italian", t victory_rate_the_level: "Vota il livello: " # victory_return_to_ladder: "Return to Ladder" victory_play_next_level: "Gioca il prossimo livello" +# victory_play_continue: "Continue" victory_go_home: "Torna alla pagina iniziale" victory_review: "Dicci di più!" victory_hour_of_code_done: "Finito?" @@ -418,6 +419,7 @@ module.exports = nativeDescription: "Italiano", englishDescription: "Italian", t tome_select_spell: "Seleziona un incantesimo" tome_select_a_thang: "Seleziona qualcuno per " tome_available_spells: "Incantesimi disponibili" +# tome_your_skills: "Your Skills" hud_continue: "Continua (premi Maiusc-Spazio)" spell_saved: "Magia Salvata" skip_tutorial: "Salta (esc)" diff --git a/app/locale/ja.coffee b/app/locale/ja.coffee index 43965105e..e1e4926c4 100644 --- a/app/locale/ja.coffee +++ b/app/locale/ja.coffee @@ -378,7 +378,7 @@ module.exports = nativeDescription: "日本語", englishDescription: "Japanese", done: "完了" customize_wizard: "魔法使いの設定" home: "ホーム" -# stop: "Stop" +# skip: "Skip" # game_menu: "Game Menu" guide: "ガイド" restart: "再始動" @@ -400,6 +400,7 @@ module.exports = nativeDescription: "日本語", englishDescription: "Japanese", victory_rate_the_level: "このレベルの評価: " # victory_return_to_ladder: "Return to Ladder" victory_play_next_level: "次のレベル" +# victory_play_continue: "Continue" victory_go_home: "ホームに戻る" victory_review: "フィードバック" victory_hour_of_code_done: "完了してよろしいですか?" @@ -418,6 +419,7 @@ module.exports = nativeDescription: "日本語", englishDescription: "Japanese", tome_select_spell: "呪文を選択" tome_select_a_thang: "誰かを選択: " tome_available_spells: "利用できる呪文" +# tome_your_skills: "Your Skills" hud_continue: "続く (Shift+Spaceキー)" spell_saved: "呪文を保存しました" skip_tutorial: "スキップ (esc)" diff --git a/app/locale/ko.coffee b/app/locale/ko.coffee index cd09f086b..f474e5287 100644 --- a/app/locale/ko.coffee +++ b/app/locale/ko.coffee @@ -378,7 +378,7 @@ module.exports = nativeDescription: "한국어", englishDescription: "Korean", t done: "완료" customize_wizard: "사용자 정의 마법사" home: "홈" -# stop: "Stop" +# skip: "Skip" # game_menu: "Game Menu" guide: "가이드" restart: "재시작" @@ -400,6 +400,7 @@ module.exports = nativeDescription: "한국어", englishDescription: "Korean", t victory_rate_the_level: "이번 레벨 평가: " victory_return_to_ladder: "레더로 돌아가기" victory_play_next_level: "다음 레벨 플레이 하기" +# victory_play_continue: "Continue" victory_go_home: "홈으로" victory_review: "리뷰를 남겨주세요" victory_hour_of_code_done: "정말 종료합니까?" @@ -418,6 +419,7 @@ module.exports = nativeDescription: "한국어", englishDescription: "Korean", t tome_select_spell: "마법을 선택 하세요" tome_select_a_thang: "누군가를 선택하세요. " tome_available_spells: "사용 가능한 마법" +# tome_your_skills: "Your Skills" hud_continue: "계속진행 (shift+space)" spell_saved: "마법 저장 완료" skip_tutorial: "넘기기 (esc)" diff --git a/app/locale/lt.coffee b/app/locale/lt.coffee index 28b7612b2..04d8a4335 100644 --- a/app/locale/lt.coffee +++ b/app/locale/lt.coffee @@ -378,7 +378,7 @@ module.exports = nativeDescription: "lietuvių kalba", englishDescription: "Lith # done: "Done" # customize_wizard: "Customize Wizard" # home: "Home" -# stop: "Stop" +# skip: "Skip" # game_menu: "Game Menu" # guide: "Guide" # restart: "Restart" @@ -400,6 +400,7 @@ module.exports = nativeDescription: "lietuvių kalba", englishDescription: "Lith # victory_rate_the_level: "Rate the level: " # victory_return_to_ladder: "Return to Ladder" # victory_play_next_level: "Play Next Level" +# victory_play_continue: "Continue" # victory_go_home: "Go Home" # victory_review: "Tell us more!" # victory_hour_of_code_done: "Are You Done?" @@ -418,6 +419,7 @@ module.exports = nativeDescription: "lietuvių kalba", englishDescription: "Lith # tome_select_spell: "Select a Spell" # tome_select_a_thang: "Select Someone for " # tome_available_spells: "Available Spells" +# tome_your_skills: "Your Skills" # hud_continue: "Continue (shift+space)" # spell_saved: "Spell Saved" # skip_tutorial: "Skip (esc)" diff --git a/app/locale/ms.coffee b/app/locale/ms.coffee index cbb98efaa..f1f01a249 100644 --- a/app/locale/ms.coffee +++ b/app/locale/ms.coffee @@ -378,7 +378,7 @@ module.exports = nativeDescription: "Bahasa Melayu", englishDescription: "Bahasa # done: "Done" # customize_wizard: "Customize Wizard" # home: "Home" -# stop: "Stop" +# skip: "Skip" # game_menu: "Game Menu" # guide: "Guide" # restart: "Restart" @@ -400,6 +400,7 @@ module.exports = nativeDescription: "Bahasa Melayu", englishDescription: "Bahasa # victory_rate_the_level: "Rate the level: " # victory_return_to_ladder: "Return to Ladder" # victory_play_next_level: "Play Next Level" +# victory_play_continue: "Continue" # victory_go_home: "Go Home" # victory_review: "Tell us more!" # victory_hour_of_code_done: "Are You Done?" @@ -418,6 +419,7 @@ module.exports = nativeDescription: "Bahasa Melayu", englishDescription: "Bahasa # tome_select_spell: "Select a Spell" # tome_select_a_thang: "Select Someone for " # tome_available_spells: "Available Spells" +# tome_your_skills: "Your Skills" # hud_continue: "Continue (shift+space)" # spell_saved: "Spell Saved" # skip_tutorial: "Skip (esc)" diff --git a/app/locale/nb.coffee b/app/locale/nb.coffee index 42da4cdb8..ecce5f315 100644 --- a/app/locale/nb.coffee +++ b/app/locale/nb.coffee @@ -378,7 +378,7 @@ module.exports = nativeDescription: "Norsk Bokmål", englishDescription: "Norweg done: "Ferdig" customize_wizard: "Spesiallag Trollmann" home: "Hjem" -# stop: "Stop" +# skip: "Skip" # game_menu: "Game Menu" guide: "Guide" restart: "Start på nytt" @@ -400,6 +400,7 @@ module.exports = nativeDescription: "Norsk Bokmål", englishDescription: "Norweg victory_rate_the_level: "Bedøm nivået: " # victory_return_to_ladder: "Return to Ladder" victory_play_next_level: "Spill Neste Nivå" +# victory_play_continue: "Continue" victory_go_home: "Gå Hjem" victory_review: "Fortell oss mer!" victory_hour_of_code_done: "Er du ferdig?" @@ -418,6 +419,7 @@ module.exports = nativeDescription: "Norsk Bokmål", englishDescription: "Norweg tome_select_spell: "Velg et Trylleformular" tome_select_a_thang: "Velg Noe for å " tome_available_spells: "Tilgjenglige Trylleformularer" +# tome_your_skills: "Your Skills" hud_continue: "Fortsett (trykk shift-mellomrom)" # spell_saved: "Spell Saved" # skip_tutorial: "Skip (esc)" diff --git a/app/locale/nl-BE.coffee b/app/locale/nl-BE.coffee index d56d294d7..6bb1601b3 100644 --- a/app/locale/nl-BE.coffee +++ b/app/locale/nl-BE.coffee @@ -378,7 +378,7 @@ module.exports = nativeDescription: "Nederlands (België)", englishDescription: done: "Klaar" customize_wizard: "Pas Tovenaar aan" home: "Home" -# stop: "Stop" +# skip: "Skip" # game_menu: "Game Menu" guide: "Handleiding" restart: "Herstarten" @@ -400,6 +400,7 @@ module.exports = nativeDescription: "Nederlands (België)", englishDescription: victory_rate_the_level: "Beoordeel het level: " victory_return_to_ladder: "Keer terug naar de ladder" victory_play_next_level: "Speel Volgend Level" +# victory_play_continue: "Continue" victory_go_home: "Ga naar Home" victory_review: "Vertel ons meer!" victory_hour_of_code_done: "Ben Je Klaar?" @@ -418,6 +419,7 @@ module.exports = nativeDescription: "Nederlands (België)", englishDescription: tome_select_spell: "Selecteer een Spreuk" tome_select_a_thang: "Selecteer Iemand voor " tome_available_spells: "Beschikbare spreuken" +# tome_your_skills: "Your Skills" hud_continue: "Ga verder (druk shift-space)" spell_saved: "Spreuk Opgeslagen" skip_tutorial: "Overslaan (esc)" diff --git a/app/locale/nl-NL.coffee b/app/locale/nl-NL.coffee index cbdde2a0a..135181fcd 100644 --- a/app/locale/nl-NL.coffee +++ b/app/locale/nl-NL.coffee @@ -378,7 +378,7 @@ module.exports = nativeDescription: "Nederlands (Nederland)", englishDescription done: "Klaar" customize_wizard: "Pas Tovenaar aan" home: "Home" -# stop: "Stop" +# skip: "Skip" # game_menu: "Game Menu" guide: "Handleiding" restart: "Herstarten" @@ -400,6 +400,7 @@ module.exports = nativeDescription: "Nederlands (Nederland)", englishDescription victory_rate_the_level: "Beoordeel het level: " victory_return_to_ladder: "Keer terug naar de ladder" victory_play_next_level: "Speel Volgend Level" +# victory_play_continue: "Continue" victory_go_home: "Ga naar Home" victory_review: "Vertel ons meer!" victory_hour_of_code_done: "Ben Je Klaar?" @@ -418,6 +419,7 @@ module.exports = nativeDescription: "Nederlands (Nederland)", englishDescription tome_select_spell: "Selecteer een Spreuk" tome_select_a_thang: "Selecteer Iemand voor " tome_available_spells: "Beschikbare spreuken" +# tome_your_skills: "Your Skills" hud_continue: "Ga verder (druk shift-spatie)" spell_saved: "Spreuk Opgeslagen" skip_tutorial: "Overslaan (esc)" diff --git a/app/locale/nn.coffee b/app/locale/nn.coffee index 80532d6d2..317b810ee 100644 --- a/app/locale/nn.coffee +++ b/app/locale/nn.coffee @@ -378,7 +378,7 @@ module.exports = nativeDescription: "Norwegian Nynorsk", englishDescription: "No # done: "Done" # customize_wizard: "Customize Wizard" # home: "Home" -# stop: "Stop" +# skip: "Skip" # game_menu: "Game Menu" # guide: "Guide" # restart: "Restart" @@ -400,6 +400,7 @@ module.exports = nativeDescription: "Norwegian Nynorsk", englishDescription: "No # victory_rate_the_level: "Rate the level: " # victory_return_to_ladder: "Return to Ladder" # victory_play_next_level: "Play Next Level" +# victory_play_continue: "Continue" # victory_go_home: "Go Home" # victory_review: "Tell us more!" # victory_hour_of_code_done: "Are You Done?" @@ -418,6 +419,7 @@ module.exports = nativeDescription: "Norwegian Nynorsk", englishDescription: "No # tome_select_spell: "Select a Spell" # tome_select_a_thang: "Select Someone for " # tome_available_spells: "Available Spells" +# tome_your_skills: "Your Skills" # hud_continue: "Continue (shift+space)" # spell_saved: "Spell Saved" # skip_tutorial: "Skip (esc)" diff --git a/app/locale/no.coffee b/app/locale/no.coffee index c13faf1ff..01f732ebe 100644 --- a/app/locale/no.coffee +++ b/app/locale/no.coffee @@ -378,7 +378,7 @@ module.exports = nativeDescription: "Norsk", englishDescription: "Norwegian", tr done: "Ferdig" customize_wizard: "Tilpass trollmann" home: "Hovedside" -# stop: "Stop" +# skip: "Skip" # game_menu: "Game Menu" guide: "Guide" restart: "Start på nytt" @@ -400,6 +400,7 @@ module.exports = nativeDescription: "Norsk", englishDescription: "Norwegian", tr victory_rate_the_level: "Bedøm nivået: " # victory_return_to_ladder: "Return to Ladder" victory_play_next_level: "Spill neste nivå" +# victory_play_continue: "Continue" victory_go_home: "Gå til Hovedsiden" victory_review: "Fortell oss mer!" victory_hour_of_code_done: "Er du ferdig?" @@ -418,6 +419,7 @@ module.exports = nativeDescription: "Norsk", englishDescription: "Norwegian", tr tome_select_spell: "Velg et trylleformular" tome_select_a_thang: "Velg noe for å " tome_available_spells: "Tilgjenglige trylleformularer" +# tome_your_skills: "Your Skills" hud_continue: "Fortsett (trykk shift+mellomrom)" # spell_saved: "Spell Saved" # skip_tutorial: "Skip (esc)" diff --git a/app/locale/pl.coffee b/app/locale/pl.coffee index 349cf3fb2..fe4f8ae5e 100644 --- a/app/locale/pl.coffee +++ b/app/locale/pl.coffee @@ -378,7 +378,7 @@ module.exports = nativeDescription: "język polski", englishDescription: "Polish done: "Zrobione" customize_wizard: "Spersonalizuj czarodzieja" home: "Strona główna" -# stop: "Stop" +# skip: "Skip" game_menu: "Menu gry" guide: "Przewodnik" restart: "Zacznij od nowa" @@ -400,6 +400,7 @@ module.exports = nativeDescription: "język polski", englishDescription: "Polish victory_rate_the_level: "Oceń poziom: " victory_return_to_ladder: "Powrót do drabinki" victory_play_next_level: "Przejdź na następny poziom" +# victory_play_continue: "Continue" victory_go_home: "Powrót do strony głównej" victory_review: "Powiedz nam coś więcej!" victory_hour_of_code_done: "Skończyłeś już?" @@ -418,6 +419,7 @@ module.exports = nativeDescription: "język polski", englishDescription: "Polish tome_select_spell: "Wybierz czar" tome_select_a_thang: "Wybierz kogoś do " tome_available_spells: "Dostępne czary" +# tome_your_skills: "Your Skills" hud_continue: "Kontynuuj (Shift + spacja)" spell_saved: "Czar zapisany" skip_tutorial: "Pomiń (esc)" diff --git a/app/locale/pt-BR.coffee b/app/locale/pt-BR.coffee index 666b902ab..efa990fd8 100644 --- a/app/locale/pt-BR.coffee +++ b/app/locale/pt-BR.coffee @@ -378,7 +378,7 @@ module.exports = nativeDescription: "português do Brasil", englishDescription: done: "Pronto" customize_wizard: "Personalize o feiticeiro" home: "Início" -# stop: "Stop" +# skip: "Skip" # game_menu: "Game Menu" guide: "Guia" restart: "Reiniciar" @@ -400,6 +400,7 @@ module.exports = nativeDescription: "português do Brasil", englishDescription: victory_rate_the_level: "Avalie o estágio: " victory_return_to_ladder: "Retornar para a Ladder" victory_play_next_level: "Jogar o próximo estágio" +# victory_play_continue: "Continue" victory_go_home: "Ir à página inicial" victory_review: "Diga-nos mais!" victory_hour_of_code_done: "Terminou?" @@ -418,6 +419,7 @@ module.exports = nativeDescription: "português do Brasil", englishDescription: tome_select_spell: "Selecione um Feitiço" tome_select_a_thang: "Selecione alguém para " tome_available_spells: "Feitiços Disponíveis" +# tome_your_skills: "Your Skills" hud_continue: "Continue (tecle Shift+Space)" spell_saved: "Feitiço Salvo" skip_tutorial: "Pular (esc)" diff --git a/app/locale/pt-PT.coffee b/app/locale/pt-PT.coffee index 7bd2ff78e..2372114f6 100644 --- a/app/locale/pt-PT.coffee +++ b/app/locale/pt-PT.coffee @@ -378,7 +378,7 @@ module.exports = nativeDescription: "Português (Portugal)", englishDescription: done: "Concluir" customize_wizard: "Personalizar Feiticeiro" home: "Início" - stop: "Parar" +# skip: "Skip" game_menu: "Menu do Jogo" guide: "Guia" restart: "Reiniciar" @@ -400,6 +400,7 @@ module.exports = nativeDescription: "Português (Portugal)", englishDescription: victory_rate_the_level: "Classifica este nível: " victory_return_to_ladder: "Voltar à Classificação" victory_play_next_level: "Jogar Próximo Nível" +# victory_play_continue: "Continue" victory_go_home: "Ir para o Início" victory_review: "Conta-nos mais!" victory_hour_of_code_done: "Terminaste?" @@ -418,6 +419,7 @@ module.exports = nativeDescription: "Português (Portugal)", englishDescription: tome_select_spell: "Seleciona um Feitiço" tome_select_a_thang: "Seleciona Alguém para " tome_available_spells: "Feitiços Disponíveis" +# tome_your_skills: "Your Skills" hud_continue: "Continuar (shift-espaço)" spell_saved: "Feitiço Guardado" skip_tutorial: "Saltar (esc)" diff --git a/app/locale/ro.coffee b/app/locale/ro.coffee index 12f8cde5e..aba30a89f 100644 --- a/app/locale/ro.coffee +++ b/app/locale/ro.coffee @@ -378,7 +378,7 @@ module.exports = nativeDescription: "limba română", englishDescription: "Roman done: "Gata" customize_wizard: "Personalizează Wizard-ul" home: "Acasă" - stop: "Stop" +# skip: "Skip" game_menu: "Meniul Jocului" guide: "Ghid" restart: "Restart" @@ -400,6 +400,7 @@ module.exports = nativeDescription: "limba română", englishDescription: "Roman victory_rate_the_level: "Apreciază nivelul: " victory_return_to_ladder: "Înapoi la jocurile de clasament" victory_play_next_level: "Joacă nivelul următor" +# victory_play_continue: "Continue" victory_go_home: "Acasă" victory_review: "Spune-ne mai multe!" victory_hour_of_code_done: "Ai terminat?" @@ -418,6 +419,7 @@ module.exports = nativeDescription: "limba română", englishDescription: "Roman tome_select_spell: "Alege o vrajă" tome_select_a_thang: "Alege pe cineva pentru " tome_available_spells: "Vrăjile disponibile" +# tome_your_skills: "Your Skills" hud_continue: "Continuă (apasă shift-space)" spell_saved: "Vrajă salvată" skip_tutorial: "Sari peste (esc)" diff --git a/app/locale/ru.coffee b/app/locale/ru.coffee index a61cc1b09..a8102b85b 100644 --- a/app/locale/ru.coffee +++ b/app/locale/ru.coffee @@ -378,7 +378,7 @@ module.exports = nativeDescription: "русский", englishDescription: "Russi done: "Готово" customize_wizard: "Настройки волшебника" home: "На главную" -# stop: "Stop" +# skip: "Skip" game_menu: "Меню игры" guide: "Руководство" restart: "Перезапустить" @@ -400,6 +400,7 @@ module.exports = nativeDescription: "русский", englishDescription: "Russi victory_rate_the_level: "Оцените уровень:" victory_return_to_ladder: "Вернуться к ладдеру" victory_play_next_level: "Следующий уровень" +# victory_play_continue: "Continue" victory_go_home: "На главную" victory_review: "Расскажите нам больше!" victory_hour_of_code_done: "Вы закончили?" @@ -418,6 +419,7 @@ module.exports = nativeDescription: "русский", englishDescription: "Russi tome_select_spell: "Выбрать заклинание" tome_select_a_thang: "Выбрать кого-нибудь для " tome_available_spells: "Доступные заклинания" +# tome_your_skills: "Your Skills" hud_continue: "Продолжить (Shift+Пробел)" spell_saved: "Заклинание сохранено" skip_tutorial: "Пропуск (Esc)" diff --git a/app/locale/sk.coffee b/app/locale/sk.coffee index 6e863cf00..909538e54 100644 --- a/app/locale/sk.coffee +++ b/app/locale/sk.coffee @@ -378,7 +378,7 @@ module.exports = nativeDescription: "slovenčina", englishDescription: "Slovak", # done: "Done" # customize_wizard: "Customize Wizard" # home: "Home" -# stop: "Stop" +# skip: "Skip" # game_menu: "Game Menu" # guide: "Guide" # restart: "Restart" @@ -400,6 +400,7 @@ module.exports = nativeDescription: "slovenčina", englishDescription: "Slovak", # victory_rate_the_level: "Rate the level: " # victory_return_to_ladder: "Return to Ladder" # victory_play_next_level: "Play Next Level" +# victory_play_continue: "Continue" # victory_go_home: "Go Home" # victory_review: "Tell us more!" # victory_hour_of_code_done: "Are You Done?" @@ -418,6 +419,7 @@ module.exports = nativeDescription: "slovenčina", englishDescription: "Slovak", # tome_select_spell: "Select a Spell" # tome_select_a_thang: "Select Someone for " # tome_available_spells: "Available Spells" +# tome_your_skills: "Your Skills" # hud_continue: "Continue (shift+space)" # spell_saved: "Spell Saved" # skip_tutorial: "Skip (esc)" diff --git a/app/locale/sl.coffee b/app/locale/sl.coffee index 0fd9153ec..0c6e79d98 100644 --- a/app/locale/sl.coffee +++ b/app/locale/sl.coffee @@ -378,7 +378,7 @@ module.exports = nativeDescription: "slovenščina", englishDescription: "Sloven # done: "Done" # customize_wizard: "Customize Wizard" # home: "Home" -# stop: "Stop" +# skip: "Skip" # game_menu: "Game Menu" # guide: "Guide" # restart: "Restart" @@ -400,6 +400,7 @@ module.exports = nativeDescription: "slovenščina", englishDescription: "Sloven # victory_rate_the_level: "Rate the level: " # victory_return_to_ladder: "Return to Ladder" # victory_play_next_level: "Play Next Level" +# victory_play_continue: "Continue" # victory_go_home: "Go Home" # victory_review: "Tell us more!" # victory_hour_of_code_done: "Are You Done?" @@ -418,6 +419,7 @@ module.exports = nativeDescription: "slovenščina", englishDescription: "Sloven # tome_select_spell: "Select a Spell" # tome_select_a_thang: "Select Someone for " # tome_available_spells: "Available Spells" +# tome_your_skills: "Your Skills" # hud_continue: "Continue (shift+space)" # spell_saved: "Spell Saved" # skip_tutorial: "Skip (esc)" diff --git a/app/locale/sr.coffee b/app/locale/sr.coffee index 60e1e6fae..532ed5f86 100644 --- a/app/locale/sr.coffee +++ b/app/locale/sr.coffee @@ -378,7 +378,7 @@ module.exports = nativeDescription: "српски", englishDescription: "Serbian done: "Урађено" customize_wizard: "Прилагоди Чаробњака" home: "Почетна" -# stop: "Stop" +# skip: "Skip" # game_menu: "Game Menu" guide: "Водич" restart: "Поновно учитавање" @@ -400,6 +400,7 @@ module.exports = nativeDescription: "српски", englishDescription: "Serbian victory_rate_the_level: "Оцени ниво: " # victory_return_to_ladder: "Return to Ladder" victory_play_next_level: "Играј следећи ниво" +# victory_play_continue: "Continue" victory_go_home: "Иди на почетну" victory_review: "Реци нам више!" victory_hour_of_code_done: "Јеси ли завршио?" @@ -418,6 +419,7 @@ module.exports = nativeDescription: "српски", englishDescription: "Serbian tome_select_spell: "Изабери чин" tome_select_a_thang: "Изабери неког за " tome_available_spells: "Доступне чини" +# tome_your_skills: "Your Skills" hud_continue: "Настави (притисни ентер)" # spell_saved: "Spell Saved" # skip_tutorial: "Skip (esc)" diff --git a/app/locale/sv.coffee b/app/locale/sv.coffee index 9934f48a6..40b2c96c0 100644 --- a/app/locale/sv.coffee +++ b/app/locale/sv.coffee @@ -378,7 +378,7 @@ module.exports = nativeDescription: "Svenska", englishDescription: "Swedish", tr done: "Klar" customize_wizard: "Skräddarsy trollkarl" home: "Hem" -# stop: "Stop" +# skip: "Skip" # game_menu: "Game Menu" guide: "Guide" restart: "Börja om" @@ -400,6 +400,7 @@ module.exports = nativeDescription: "Svenska", englishDescription: "Swedish", tr victory_rate_the_level: "Betygsätt nivån: " victory_return_to_ladder: "Gå tillbaka till stegen" victory_play_next_level: "Spela nästa nivå" +# victory_play_continue: "Continue" victory_go_home: "Gå hem" victory_review: "Berätta mer!" victory_hour_of_code_done: "Är du klar?" @@ -418,6 +419,7 @@ module.exports = nativeDescription: "Svenska", englishDescription: "Swedish", tr tome_select_spell: "Välj en förmåga" tome_select_a_thang: "Välj någon för " tome_available_spells: "Tillgängliga förmågor" +# tome_your_skills: "Your Skills" hud_continue: "Fortsätt (skift+mellanslag)" spell_saved: "Besvärjelse sparad" skip_tutorial: "Hoppa över (esc)" diff --git a/app/locale/th.coffee b/app/locale/th.coffee index 19db1394f..e90c0d807 100644 --- a/app/locale/th.coffee +++ b/app/locale/th.coffee @@ -378,7 +378,7 @@ module.exports = nativeDescription: "ไทย", englishDescription: "Thai", tra done: "เสร็จสิ้น" # customize_wizard: "Customize Wizard" home: "หน้าแรก" -# stop: "Stop" +# skip: "Skip" # game_menu: "Game Menu" guide: "คู่มือ" restart: "เริ่มเล่นใหม่" @@ -400,6 +400,7 @@ module.exports = nativeDescription: "ไทย", englishDescription: "Thai", tra # victory_rate_the_level: "Rate the level: " # victory_return_to_ladder: "Return to Ladder" victory_play_next_level: "เล่นด่านถัดไป" +# victory_play_continue: "Continue" victory_go_home: "ไปหน้าแรก" # victory_review: "Tell us more!" victory_hour_of_code_done: "เสร็จหรือยัง?" @@ -418,6 +419,7 @@ module.exports = nativeDescription: "ไทย", englishDescription: "Thai", tra # tome_select_spell: "Select a Spell" # tome_select_a_thang: "Select Someone for " # tome_available_spells: "Available Spells" +# tome_your_skills: "Your Skills" # hud_continue: "Continue (shift+space)" # spell_saved: "Spell Saved" # skip_tutorial: "Skip (esc)" diff --git a/app/locale/tr.coffee b/app/locale/tr.coffee index 7ec31ecb5..2ed51b0c4 100644 --- a/app/locale/tr.coffee +++ b/app/locale/tr.coffee @@ -378,7 +378,7 @@ module.exports = nativeDescription: "Türkçe", englishDescription: "Turkish", t done: "Tamamdır" customize_wizard: "Sihirbazı Düzenle" home: "Anasayfa" -# stop: "Stop" +# skip: "Skip" # game_menu: "Game Menu" guide: "Rehber" restart: "Yeniden başlat" @@ -400,6 +400,7 @@ module.exports = nativeDescription: "Türkçe", englishDescription: "Turkish", t victory_rate_the_level: "Seviyeyi oyla:" # victory_return_to_ladder: "Return to Ladder" victory_play_next_level: "Sonraki Seviyeyi Oyna: " +# victory_play_continue: "Continue" victory_go_home: "Anasayfaya Git" victory_review: "Daha detaylı bilgi verebilirsiniz!" victory_hour_of_code_done: "Bitirdiniz mi?" @@ -418,6 +419,7 @@ module.exports = nativeDescription: "Türkçe", englishDescription: "Turkish", t tome_select_spell: "Bir Büyü Seç" tome_select_a_thang: "Birini seç..." tome_available_spells: "Kullanılabilir Büyüler" +# tome_your_skills: "Your Skills" hud_continue: "Devam (ÜstKarakter+Boşluk)" spell_saved: "Büyü Kaydedildi" skip_tutorial: "Atla (esc)" diff --git a/app/locale/uk.coffee b/app/locale/uk.coffee index 97e9d51ff..9366133f8 100644 --- a/app/locale/uk.coffee +++ b/app/locale/uk.coffee @@ -378,7 +378,7 @@ module.exports = nativeDescription: "українська мова", englishDesc done: "Готово" customize_wizard: "Налаштування персонажа" home: "На головну" -# stop: "Stop" +# skip: "Skip" # game_menu: "Game Menu" guide: "Посібник" restart: "Перезавантажити" @@ -400,6 +400,7 @@ module.exports = nativeDescription: "українська мова", englishDesc victory_rate_the_level: "Оцінити рівень: " victory_return_to_ladder: "Повернутись до таблиці рівнів" victory_play_next_level: "Наступний рівень" +# victory_play_continue: "Continue" victory_go_home: "На головну" victory_review: "Розкажіть нам більше!" victory_hour_of_code_done: "Ви закінчили?" @@ -418,6 +419,7 @@ module.exports = nativeDescription: "українська мова", englishDesc tome_select_spell: "Оберіть закляття" tome_select_a_thang: "Оберіть когось для " tome_available_spells: "Доступні закляття" +# tome_your_skills: "Your Skills" hud_continue: "Продовжити (натисніть shift-space)" spell_saved: "Закляття збережено" skip_tutorial: "Пропустити (esc)" diff --git a/app/locale/ur.coffee b/app/locale/ur.coffee index f79793680..bea1b1f66 100644 --- a/app/locale/ur.coffee +++ b/app/locale/ur.coffee @@ -378,7 +378,7 @@ module.exports = nativeDescription: "اُردُو", englishDescription: "Urdu", # done: "Done" # customize_wizard: "Customize Wizard" # home: "Home" -# stop: "Stop" +# skip: "Skip" # game_menu: "Game Menu" # guide: "Guide" # restart: "Restart" @@ -400,6 +400,7 @@ module.exports = nativeDescription: "اُردُو", englishDescription: "Urdu", # victory_rate_the_level: "Rate the level: " # victory_return_to_ladder: "Return to Ladder" # victory_play_next_level: "Play Next Level" +# victory_play_continue: "Continue" # victory_go_home: "Go Home" # victory_review: "Tell us more!" # victory_hour_of_code_done: "Are You Done?" @@ -418,6 +419,7 @@ module.exports = nativeDescription: "اُردُو", englishDescription: "Urdu", # tome_select_spell: "Select a Spell" # tome_select_a_thang: "Select Someone for " # tome_available_spells: "Available Spells" +# tome_your_skills: "Your Skills" # hud_continue: "Continue (shift+space)" # spell_saved: "Spell Saved" # skip_tutorial: "Skip (esc)" diff --git a/app/locale/vi.coffee b/app/locale/vi.coffee index 6b54766dd..1f4faf62d 100644 --- a/app/locale/vi.coffee +++ b/app/locale/vi.coffee @@ -378,7 +378,7 @@ module.exports = nativeDescription: "Tiếng Việt", englishDescription: "Vietn done: "Hoàn thành" customize_wizard: "Tùy chỉnh Wizard" # home: "Home" -# stop: "Stop" +# skip: "Skip" # game_menu: "Game Menu" guide: "Hướng dẫn" restart: "Khởi động lại" @@ -400,6 +400,7 @@ module.exports = nativeDescription: "Tiếng Việt", englishDescription: "Vietn # victory_rate_the_level: "Rate the level: " # victory_return_to_ladder: "Return to Ladder" # victory_play_next_level: "Play Next Level" +# victory_play_continue: "Continue" # victory_go_home: "Go Home" # victory_review: "Tell us more!" # victory_hour_of_code_done: "Are You Done?" @@ -418,6 +419,7 @@ module.exports = nativeDescription: "Tiếng Việt", englishDescription: "Vietn # tome_select_spell: "Select a Spell" # tome_select_a_thang: "Select Someone for " # tome_available_spells: "Available Spells" +# tome_your_skills: "Your Skills" # hud_continue: "Continue (shift+space)" # spell_saved: "Spell Saved" # skip_tutorial: "Skip (esc)" diff --git a/app/locale/zh-HANS.coffee b/app/locale/zh-HANS.coffee index d53514108..7c559dd03 100644 --- a/app/locale/zh-HANS.coffee +++ b/app/locale/zh-HANS.coffee @@ -378,7 +378,7 @@ module.exports = nativeDescription: "简体中文", englishDescription: "Chinese done: "完成" customize_wizard: "自定义向导" home: "主页" -# stop: "Stop" +# skip: "Skip" # game_menu: "Game Menu" guide: "指南" restart: "重新开始" @@ -400,6 +400,7 @@ module.exports = nativeDescription: "简体中文", englishDescription: "Chinese victory_rate_the_level: "评估关卡:" victory_return_to_ladder: "返回" victory_play_next_level: "下一关" +# victory_play_continue: "Continue" victory_go_home: "返回主页" victory_review: "给我们反馈!" victory_hour_of_code_done: "你完成了吗?" @@ -418,6 +419,7 @@ module.exports = nativeDescription: "简体中文", englishDescription: "Chinese tome_select_spell: "选择一个法术" tome_select_a_thang: "选择人物来 " tome_available_spells: "可用的法术" +# tome_your_skills: "Your Skills" hud_continue: "继续(按 Shift-空格)" spell_saved: "咒语已保存" skip_tutorial: "跳过(esc)" diff --git a/app/locale/zh-HANT.coffee b/app/locale/zh-HANT.coffee index 131d1647b..3f33ea774 100644 --- a/app/locale/zh-HANT.coffee +++ b/app/locale/zh-HANT.coffee @@ -378,7 +378,7 @@ module.exports = nativeDescription: "繁体中文", englishDescription: "Chinese done: "完成" customize_wizard: "自定義巫師" home: "首頁" -# stop: "Stop" +# skip: "Skip" # game_menu: "Game Menu" guide: "指南" restart: "重新開始" @@ -400,6 +400,7 @@ module.exports = nativeDescription: "繁体中文", englishDescription: "Chinese victory_rate_the_level: "評估關卡: " # victory_return_to_ladder: "Return to Ladder" victory_play_next_level: "下一關" +# victory_play_continue: "Continue" victory_go_home: "返回首頁" victory_review: "給我們回饋!" victory_hour_of_code_done: "你完成了嗎?" @@ -418,6 +419,7 @@ module.exports = nativeDescription: "繁体中文", englishDescription: "Chinese tome_select_spell: "選擇一個法術" tome_select_a_thang: "選擇一個人物來施放" tome_available_spells: "可用的法術" +# tome_your_skills: "Your Skills" hud_continue: "繼續 (按 shift-空格)" spell_saved: "咒語已儲存" # skip_tutorial: "Skip (esc)" diff --git a/app/locale/zh-WUU-HANS.coffee b/app/locale/zh-WUU-HANS.coffee index 7db11e140..1433951ae 100644 --- a/app/locale/zh-WUU-HANS.coffee +++ b/app/locale/zh-WUU-HANS.coffee @@ -378,7 +378,7 @@ module.exports = nativeDescription: "吴语", englishDescription: "Wuu (Simplifi # done: "Done" # customize_wizard: "Customize Wizard" # home: "Home" -# stop: "Stop" +# skip: "Skip" # game_menu: "Game Menu" # guide: "Guide" # restart: "Restart" @@ -400,6 +400,7 @@ module.exports = nativeDescription: "吴语", englishDescription: "Wuu (Simplifi # victory_rate_the_level: "Rate the level: " # victory_return_to_ladder: "Return to Ladder" # victory_play_next_level: "Play Next Level" +# victory_play_continue: "Continue" # victory_go_home: "Go Home" # victory_review: "Tell us more!" # victory_hour_of_code_done: "Are You Done?" @@ -418,6 +419,7 @@ module.exports = nativeDescription: "吴语", englishDescription: "Wuu (Simplifi # tome_select_spell: "Select a Spell" # tome_select_a_thang: "Select Someone for " # tome_available_spells: "Available Spells" +# tome_your_skills: "Your Skills" # hud_continue: "Continue (shift+space)" # spell_saved: "Spell Saved" # skip_tutorial: "Skip (esc)" diff --git a/app/locale/zh-WUU-HANT.coffee b/app/locale/zh-WUU-HANT.coffee index 5db14e436..05f32dd99 100644 --- a/app/locale/zh-WUU-HANT.coffee +++ b/app/locale/zh-WUU-HANT.coffee @@ -378,7 +378,7 @@ module.exports = nativeDescription: "吳語", englishDescription: "Wuu (Traditio done: "妝下落" customize_wizard: "自設定獻路人" home: "主頁" -# stop: "Stop" +# skip: "Skip" # game_menu: "Game Menu" guide: "指南" restart: "轉來" @@ -400,6 +400,7 @@ module.exports = nativeDescription: "吳語", englishDescription: "Wuu (Traditio victory_rate_the_level: "箇關評價:" victory_return_to_ladder: "走轉" victory_play_next_level: "下關" +# victory_play_continue: "Continue" victory_go_home: "轉到主頁" victory_review: "搭我裏反應!" victory_hour_of_code_done: "爾妝下落爻噃?" @@ -418,6 +419,7 @@ module.exports = nativeDescription: "吳語", englishDescription: "Wuu (Traditio tome_select_spell: "揀一個法術" tome_select_a_thang: "揀人來 " tome_available_spells: "好用個法術" +# tome_your_skills: "Your Skills" hud_continue: "接落去(捺 Shift-空格)" spell_saved: "咒語存起爻" skip_tutorial: "跳過去(Esc)" From 73d6261b5dcdabf230b7a54dd556e2c2f5d8229d Mon Sep 17 00:00:00 2001 From: Nick Winter Date: Wed, 24 Sep 2014 16:29:28 -0700 Subject: [PATCH 19/34] Hide run shortcut (shift+enter) for first few levels so as not to distract. Don't show beautification button in Python mode. Don't show maximize editor button in hero levels. Don't show method selector if there's only one method. Renamed some spells to methods. Added a bit of i18n. --- app/locale/en.coffee | 4 +++- app/templates/play/level/tome/spell_list.jade | 2 +- .../play/level/tome/spell_list_tab_entry.jade | 19 +++++++++++-------- .../play/level/tome/CastButtonView.coffee | 3 ++- app/views/play/level/tome/Spell.coffee | 4 ++-- .../level/tome/SpellListTabEntryView.coffee | 8 ++++++-- .../play/level/tome/SpellListView.coffee | 2 +- 7 files changed, 26 insertions(+), 16 deletions(-) diff --git a/app/locale/en.coffee b/app/locale/en.coffee index 103f368cb..072dc62ec 100644 --- a/app/locale/en.coffee +++ b/app/locale/en.coffee @@ -416,7 +416,9 @@ tome_cast_button_running: "Running" tome_cast_button_ran: "Ran" tome_submit_button: "Submit" - tome_select_spell: "Select a Spell" + tome_reload_method: "Reload original code for this method" # Title text for individual method reload button. + tome_select_method: "Select a Method" + tome_see_all_methods: "See all methods you can edit" # Title text for method list selector (shown when there are multiple programmable methdos). tome_select_a_thang: "Select Someone for " tome_available_spells: "Available Spells" tome_your_skills: "Your Skills" diff --git a/app/templates/play/level/tome/spell_list.jade b/app/templates/play/level/tome/spell_list.jade index 90d7f9e06..84b28511a 100644 --- a/app/templates/play/level/tome/spell_list.jade +++ b/app/templates/play/level/tome/spell_list.jade @@ -1 +1 @@ -h5(data-i18n="play_level.tome_select_spell") Select a Spell +h5(data-i18n="play_level.tome_select_method") Select a Method diff --git a/app/templates/play/level/tome/spell_list_tab_entry.jade b/app/templates/play/level/tome/spell_list_tab_entry.jade index 9e3ac0ce8..a2ec05b06 100644 --- a/app/templates/play/level/tome/spell_list_tab_entry.jade +++ b/app/templates/play/level/tome/spell_list_tab_entry.jade @@ -1,20 +1,23 @@ img(src="/images/level/code_editor_tab_background.png").spell-tab-image-hidden.hidden -.btn.btn-small.spell-list-button(title="See all spells you can edit") - i.icon-chevron-down +if includeSpellList + .btn.btn-small.spell-list-button(data-i18n="[title]play_level.tome_see_all_methods", title="See all methods you can edit") + i.icon-chevron-down .thang-avatar-placeholder code #{methodSignature} .spell-tool-buttons - .btn.btn-small.fullscreen-code(title=maximizeShortcutVerbose) - i.icon-fullscreen - i.icon-resize-small + if levelType !== 'hero' + .btn.btn-small.fullscreen-code(title=maximizeShortcutVerbose) + i.icon-fullscreen + i.icon-resize-small - .btn.btn-small.reload-code(title="Reload original code for " + spell.name) + .btn.btn-small.reload-code(data-i18n="[title]play_level.tome_reload_method", title="Reload original code for this method") i.icon-repeat - .btn.btn-small.beautify-code(title=beautifyShortcutVerbose) - i.icon-magnet + if codeLanguage === 'javascript' + .btn.btn-small.beautify-code(title=beautifyShortcutVerbose) + i.icon-magnet .clearfix \ No newline at end of file diff --git a/app/views/play/level/tome/CastButtonView.coffee b/app/views/play/level/tome/CastButtonView.coffee index e30bac173..650fb801f 100644 --- a/app/views/play/level/tome/CastButtonView.coffee +++ b/app/views/play/level/tome/CastButtonView.coffee @@ -104,7 +104,8 @@ module.exports = class CastButtonView extends CocoView else if castable s = $.i18n.t('play_level.tome_cast_button_run') s = $.i18n.t('play_level.tome_cast_button_casting') if s is 'Run' and me.get('preferredLanguage').split('-')[0] isnt 'en' # Temporary, if tome_cast_button_running isn't translated. - s += ' ' + @castShortcut + unless @options.levelID in ['dungeons-of-kithgard', 'gems-in-the-deep', 'shadow-guard', 'true-names'] # Hide for first few. + s += ' ' + @castShortcut else s = $.i18n.t('play_level.tome_cast_button_ran') s = $.i18n.t('play_level.tome_cast_button_casting') if s is 'Ran' and me.get('preferredLanguage').split('-')[0] isnt 'en' # Temporary, if tome_cast_button_running isn't translated. diff --git a/app/views/play/level/tome/Spell.coffee b/app/views/play/level/tome/Spell.coffee index be55f5c35..af5349f6e 100644 --- a/app/views/play/level/tome/Spell.coffee +++ b/app/views/play/level/tome/Spell.coffee @@ -43,7 +43,7 @@ module.exports = class Spell if @canRead() # We can avoid creating these views if we'll never use them. @view = new SpellView {spell: @, level: options.level, session: @session, worker: @worker} @view.render() # Get it ready and code loaded in advance - @tabView = new SpellListTabEntryView spell: @, supermodel: @supermodel, language: @language + @tabView = new SpellListTabEntryView spell: @, supermodel: @supermodel, codeLanguage: @language, level: options.level @tabView.render() @team = @permissions.readwrite[0] ? 'common' Backbone.Mediator.publish 'tome:spell-created', spell: @ @@ -56,7 +56,7 @@ module.exports = class Spell @worker = null setLanguage: (@language) -> - console.log 'setting language to', @language, 'so using original source', @languages[language] ? @languages.javascript + #console.log 'setting language to', @language, 'so using original source', @languages[language] ? @languages.javascript @originalSource = @languages[language] ? @languages.javascript addThang: (thang) -> diff --git a/app/views/play/level/tome/SpellListTabEntryView.coffee b/app/views/play/level/tome/SpellListTabEntryView.coffee index 86a6cec27..b27ed0792 100644 --- a/app/views/play/level/tome/SpellListTabEntryView.coffee +++ b/app/views/play/level/tome/SpellListTabEntryView.coffee @@ -33,6 +33,9 @@ module.exports = class SpellListTabEntryView extends SpellListEntryView shift = $.i18n.t 'keyboard_shortcuts.shift' context.beautifyShortcutVerbose = "#{ctrl}+#{shift}+B: #{$.i18n.t 'keyboard_shortcuts.beautify'}" context.maximizeShortcutVerbose = "#{ctrl}+#{shift}+M: #{$.i18n.t 'keyboard_shortcuts.maximize_editor'}" + context.includeSpellList = @options.includeSpellList + context.codeLanguage = @options.codeLanguage + context.levelType = @options.level.get 'type', true context afterRender: -> @@ -71,7 +74,7 @@ module.exports = class SpellListTabEntryView extends SpellListEntryView found = true break return unless found - docFormatter = new DocFormatter doc: doc, thang: @thang, language: @options.language, selectedMethod: true + docFormatter = new DocFormatter doc: doc, thang: @thang, language: @options.codeLanguage, selectedMethod: true @$el.find('code').popover( animation: true html: true @@ -122,11 +125,12 @@ module.exports = class SpellListTabEntryView extends SpellListEntryView onSpellChangedLanguage: (e) -> return unless e.spell is @spell - @options.language = e.language + @options.codeLanguage = e.language @$el.find('code').popover 'destroy' @render() @docsBuilt = false @buildDocs() if @thang + @updateReloadButton() toggleControls: (e, enabled) -> # Don't call super; do it differently diff --git a/app/views/play/level/tome/SpellListView.coffee b/app/views/play/level/tome/SpellListView.coffee index febdbce12..9bf6ece39 100644 --- a/app/views/play/level/tome/SpellListView.coffee +++ b/app/views/play/level/tome/SpellListView.coffee @@ -61,7 +61,7 @@ module.exports = class SpellListView extends CocoView theseThangs = _.keys(spell.thangs) changedThangs = not lastThangs or not _.isEqual theseThangs, lastThangs lastThangs = theseThangs - newEntries.push entry = new SpellListEntryView spell: spell, showTopDivider: changedThangs, supermodel: @supermodel + newEntries.push entry = new SpellListEntryView spell: spell, showTopDivider: changedThangs, supermodel: @supermodel, includeSpellList: @spells.length > 1 @entries.push entry for entry in newEntries @$el.append entry.el From da83fee58fcd87d52446684d9e68d806322e48db Mon Sep 17 00:00:00 2001 From: Nick Winter Date: Wed, 24 Sep 2014 16:58:52 -0700 Subject: [PATCH 20/34] Unborked victory continue buttons when signup is needed. Fixed an issue with the DocFormatter being unable to display null current values. --- app/styles/play/level/modal/victory.sass | 2 +- app/templates/play/level/modal/victory.jade | 2 +- app/views/play/level/tome/DocFormatter.coffee | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/app/styles/play/level/modal/victory.sass b/app/styles/play/level/modal/victory.sass index 1dc9221f5..03e8a5108 100644 --- a/app/styles/play/level/modal/victory.sass +++ b/app/styles/play/level/modal/victory.sass @@ -16,7 +16,7 @@ float: right margin-left: 10px - .next-level-button + .next-level-button, .world-map-button float: right margin-left: 10px diff --git a/app/templates/play/level/modal/victory.jade b/app/templates/play/level/modal/victory.jade index f3650785a..1b06808bb 100644 --- a/app/templates/play/level/modal/victory.jade +++ b/app/templates/play/level/modal/victory.jade @@ -16,7 +16,7 @@ block modal-footer-content else if level.get('type') === 'ladder' a.btn.btn-primary(href="/play/ladder/#{level.get('slug')}#my-matches", data-dismiss="modal", data-i18n="play_level.victory_go_ladder") Return to Ladder else if level.get('type', true) === 'hero' - a.btn.btn-success(href="/play-hero", data-dismiss="modal", data-i18n="play_level.victory_continue") Continue + a.btn.btn-success.world-map-button(href="/play-hero", data-dismiss="modal", data-i18n="play_level.victory_continue") Continue else if hasNextLevel button.btn.btn-success.next-level-button(data-dismiss="modal", data-i18n="play_level.victory_play_next_level") Play Next Level else diff --git a/app/views/play/level/tome/DocFormatter.coffee b/app/views/play/level/tome/DocFormatter.coffee index 9ff57b9fc..7b3e53b41 100644 --- a/app/views/play/level/tome/DocFormatter.coffee +++ b/app/views/play/level/tome/DocFormatter.coffee @@ -110,7 +110,7 @@ module.exports = class DocFormatter if @doc.type is 'number' and not isNaN v if v == Math.round v return v - return v.toFixed 2 + return v?.toFixed(2) ? 'null' if _.isString v return "\"#{v}\"" if v?.id From e48fa5f0b781ac722a2f214f9cac792c0f8f45b3 Mon Sep 17 00:00:00 2001 From: Nick Winter Date: Wed, 24 Sep 2014 19:14:22 -0700 Subject: [PATCH 21/34] Fixed bug with slow-mo heroes in ChooseHeroView. Added lock silhouette portraits. --- app/styles/game-menu/choose-hero-view.sass | 16 ++++++++++++++-- app/styles/mixins.sass | 5 +++++ app/templates/game-menu/choose-hero-view.jade | 3 +++ app/views/game-menu/ChooseHeroView.coffee | 3 ++- 4 files changed, 24 insertions(+), 3 deletions(-) diff --git a/app/styles/game-menu/choose-hero-view.sass b/app/styles/game-menu/choose-hero-view.sass index e6d6e4435..020a56fa7 100644 --- a/app/styles/game-menu/choose-hero-view.sass +++ b/app/styles/game-menu/choose-hero-view.sass @@ -31,10 +31,14 @@ $heroCanvasHeight: 330px width: $maxHeroPortraitSize height: $maxHeroPortraitSize margin: 0px 3px - background-size: contain border: 2px solid black border-radius: 2px position: relative + + .hero-avatar + width: 100% + height: 100% + background-size: contain &.initialized @include transition(0.5s ease) @@ -43,7 +47,15 @@ $heroCanvasHeight: 330px border-color: gold &.locked - @include opacity(0.6) + .hero-avatar + @include filter(contrast(0%) brightness(50%)) + + .lock-indicator + position: absolute + width: 50% + left: 25% + top: 25% + @include filter(invert(100%)) .hero-item diff --git a/app/styles/mixins.sass b/app/styles/mixins.sass index 160178cef..70fc52b54 100644 --- a/app/styles/mixins.sass +++ b/app/styles/mixins.sass @@ -52,3 +52,8 @@ @keyframes #{$name} @content +@mixin filter($filters) + -webkit-filter: $filters + -moz-filter: $filters + -o-filter: $filters + filter: $filters diff --git a/app/templates/game-menu/choose-hero-view.jade b/app/templates/game-menu/choose-hero-view.jade index 0356e4611..1e5fe4f4e 100644 --- a/app/templates/game-menu/choose-hero-view.jade +++ b/app/templates/game-menu/choose-hero-view.jade @@ -4,6 +4,9 @@ for hero, index in heroes - var info = heroInfo[hero.get('slug')] li(data-hero-id=hero.get('original'), title=hero.get('name'), data-slide-to=index, data-target="#hero-carousel", class="hero-indicator" + (info.status == "Locked" ? " locked" : "")) + .hero-avatar + if info.status == "Locked" + img.lock-indicator(src="/images/pages/game-menu/lock.png") .carousel-inner for hero in heroes diff --git a/app/views/game-menu/ChooseHeroView.coffee b/app/views/game-menu/ChooseHeroView.coffee index 7f3c32fcd..11fdc8e4d 100644 --- a/app/views/game-menu/ChooseHeroView.coffee +++ b/app/views/game-menu/ChooseHeroView.coffee @@ -56,7 +56,7 @@ module.exports = class ChooseHeroView extends CocoView @$el.find('.hero-indicator').each -> heroID = $(@).data('hero-id') hero = _.find heroes, (hero) -> hero.get('original') is heroID - $(@).css('background-image', "url(#{hero.getPortraitURL()})").tooltip() + $(@).find('.hero-avatar').css('background-image', "url(#{hero.getPortraitURL()})").tooltip() _.defer => $(@).addClass 'initialized' @canvasWidth = 313 # @$el.find('canvas').width() # unreliable, whatever @canvasHeight = @$el.find('canvas').height() @@ -99,6 +99,7 @@ module.exports = class ChooseHeroView extends CocoView loadHero: (hero, heroIndex, preloading=false) -> createjs.Ticker.removeEventListener 'tick', stage for stage in _.values @stages + createjs.Ticker.setFPS 30 # In case we paused it from being inactive somewhere else if stage = @stages[heroIndex] unless preloading _.defer -> createjs.Ticker.addEventListener 'tick', stage # Deferred, otherwise it won't start updating for some reason. From 6441a753d5d40f37e859ac5c521339814490b817 Mon Sep 17 00:00:00 2001 From: Nick Winter Date: Wed, 24 Sep 2014 20:15:17 -0700 Subject: [PATCH 22/34] Improvements to lock state of items, differentiating between locked and unlocked and equipped vs. available better. --- app/assets/images/pages/game-menu/lock.png | Bin 0 -> 5554 bytes app/styles/game-menu/choose-hero-view.sass | 10 +-- app/styles/game-menu/inventory-view.sass | 70 ++++++++++++-------- app/styles/game-menu/item-view.sass | 10 ++- app/templates/game-menu/inventory-view.jade | 12 ++-- app/views/game-menu/InventoryView.coffee | 60 ++++++++--------- 6 files changed, 89 insertions(+), 73 deletions(-) create mode 100644 app/assets/images/pages/game-menu/lock.png diff --git a/app/assets/images/pages/game-menu/lock.png b/app/assets/images/pages/game-menu/lock.png new file mode 100644 index 0000000000000000000000000000000000000000..c7d71ea7ea1d3b01f5989504bd4258b97ca36bce GIT binary patch literal 5554 zcmcIndpuO@*MIh&88gOlIdUn+rE@CRqe4h7Lq{FS>sinGuII9g z({5>^3K0MxZU4*9`v8E^R~Qf^P%; zlM*lQMA_OliuJ(;g6cwUIhRCeY0e%2ROf?>Wdmj@+>Fp+v&OJ(XF37PZe&!rB{j_M z{9tJAuuBmZIiOnAQdVQMB|HmaNd&a^#gU4V!;f)|n-`h=cyjA5pAWeQuF-eMB(B21 z*n9jW}n~391o`_FR zlO!`rm)JTXudj3O1OxIy!PTP?3##{fe)7)HMDEA!GzG{LRb1fer5Xs>ZFiwvabe$q zS*mG!A{5E7D4x za>Pm7*LRuen-{NXg;)>TW~{&KD7ZS2`jTS+nK!6|szWO!3$024Ud$9T-$EDyqee}2 zY&Ydo*G+I%jXuDKs zJFuYRcoE~n;0`Pq4-V)HkF}C_7f9cCBcVaSKwC(FGyyV@CWjXEw-2fyQT&l?EtatK z@IL&KIF~(y>D%bGC*LexvizLXa%DiUHZ~H~!YNZ^9qzhT+k)=T-QbfFdldiNP7Xp| zxQ5==6;5x&T3kNntLuNg3{x0zkH^@*QtOv6@d%F;u11nXJ}MkN%G;L{@dPlpud01& zst^kPJWp0RAqyPWU92m#<^(riK)o*gP;x347kHa?r9vk}OLU>D6Z^}Wppb+loNuq; zNk3U|b_XGsFDrY)1luJ`F42cviqiGgxu>iG0tk0Hd8{yL)wK{lU?P>0g#9GTeEkVS z_LNbixF1%G^^$;r+M^siXZB|Y57@i4X9k}$+(8Zp{xv)6G)_u(WWp?n`gm7uDWy20 z8kPh8gNn(XB9}6ckb^*Vz=j;OXX(0z>J6%px|(DF%t3`+)u^?RG%M>)k2G@Q6ZXxf z&f8e4FdlHpYMZC{sT}fCQ5t)tF+<6<65Hedfzm#6f6_;&dNF?Jb@VjnC#nzL>G{}udq>5pDJmoV_BVEp&XS&mS$s8iFtcB7`ExAdqJt-();#DgrL<2GCnjYw zf|*Op_Q2%i_~)t)H&N&MIqES-Q|~YR?iiENw##P=(udv|&1wYmvJQ`BVLChCc3yUC zWCUbl4`|qG(Y{w7S(@fI_>^xgBRT6?+NyX@+~1<*8c6Fli8x{z#j}C}`8OEJ3^~sI zgn0PV?*#%W$OHple7NY$SB8Tmu*BoDHwHFiJFgHG-eiarDC?OSQ2dK=^XRIomV(i` z>E1QW#L5McFlmJ)qptKh8!#oJm6m&}@An?-RZrvu-&lU00(eyYhhq*flV&or{$%`1rBV;@_#a>}m)=1a?MxR0da_=QHloIV;Q2t4=?=Y)=ckFK>7x85)E0Iecjr*i1(0NcKNrLW&86(AWe_t<@Y9Kd_<@kLIv z84Ma9?h-uqO1w((G-;k%Z^i9lo|8LRpmoo~sOH%cd#iNKwP2|Sdtcsknd>yBVwi3_ z>qK4c)_sl7*J0Bh?E;)jfH~MMN)O;&&G+7nG@HYKzVuchmfxWe<$S&)e&20uvjbyo zrtOj+r&4I>M3P~;IbBH!<+<=mcGfT4gffAk=@w^W$!}97%@#1IE8bh{S8lec@GgB* ztuHw*8Vim{_b`>;M5Ub{`W|Q}d)7)FdewJKEJ*(C1Jak_?!KsCu?j zPn)e^@Q)GG{Txd?gtV;q6DtyHhOL$f;2%YXxa9bS9zP8TD8SDaG=U4!GKG7x%#N8V zPXpxiJq+be4DxJ2tPBtUHfCkRQh)`?T^P;tll+ zVUvRToHW2OLbzzgjzemuiLlZUsJLK=WMD6~rOVkcQqy7KzJi&jXFz0lm zUOQD|VC|5|YL%3w&QYH=D_qQLZDw<`UTtl}KuG4=LB4A`UWJI)IHR4FB@ZFKWz&(| zs9Y&)rb&U^v{mXcH5fvcl7-Fvj|ya2CiiwsA6P2~+}U;?*xMAz^&~Gz3<2n`FX>O? z3O0HzV!}N}vCl4Zwe{!aG(pJDes=Rk_AV>x>7ng}XG&NsP>3VTk%9KUL){d`ilz9O zrh%w+lzsDUE*}tq?LRGhnuV1+r2d3>%2Q$AWmXZlY?ARUFd& z=P=+Mt>`1lZmc1W9tSW2poVrV+EJ(5|sh!B~NmxJ9C zHzM!WCE4BI!^d|%vk6H;WXKL>E6$D>@{hSZEDux^2=cNdkk^$j_u#49>b$x&s2=lJ z0yrG@P~9z?h?HbqtUH4YqnxW}PU|w~9m5Emcnf0Gwh{jG>O#nSOek+*;tu@ZnCa(E z$dY%gY)eh6jYIGcvC~`JLdvYkss-mkfR4AXZYI}+nG{_lz*OurH`TaxY0v|9@3SFM zjHE${+eJISnBR0K{Up5?6GxkjLHG+NnnK8C2hjN8037mO3C(Ztf@-z|@_sFjev;iN z&+N6BkfrAM*6xR=j<4bL3JvVw@OgML&3h+RhMA0S_6X_LARjEaFH-YFaz0@~s?XPH zP-m6TEEn3~neEny7|2V75b-HhHAg}XIe}_67=yVN`jHR|s%$MCkY(w)h3viwXczJv zAtWq@?EzQj%3IEAQ1fDUBQngAir>L)E)IbMzK6`}m22gh1-kws%-o$5Kn)43xCCyG zp+ZYj9C-hwfQAhj$<^2c`xo6oNSBrJHp3X`*U6$0i{FQDBl`|lT)0x(;U0)RaARGRe@0ygRj50D{d zBml+nxJTH(*Gc}>4*rkFdQecVgY@ML@wcYFwG^>`C0W1T+JxcV+g+#`Ylxd`vPk8c z^$jOjd-2&uZ{j)8r0PZML=|406kr*mW8^#Qv1_)>=0&aI_@mDNI2@r+Ul!V=vUJ{! zB>MeW(CDw2nkWd|GQG?_;r?Li^v`Y)rYQ3% z9rve(8Yrgoo)g|ZUcTv8$2X`91KV8iptCYRw$3uJpKa1e=}xChiuF2!`0TMa>~m{_ zdDBLX!CIjSAvgl}%NN5mYKwX;&^dXj$GQIQc z>U`ClfRn+Q1a0KaM*(`0{}64c2&0R1|1xt*oRTL?2PrxLmX)Jb2VJs!|ai~$9=l-yT##=YBr+8Wh71E#wm z2oPsK1maN`Zhj>ufQ+KRSArbP%7M|m%tWbMeJdj#h?+nEs4<=s+cnJQf0PkBO#eo7 zWy@6M0P_Y-90n`0xyF|okha%GaGdBLUw`*@5nR|UdS5eG9B&TDgkxoj*W$uar~0XP zY>$q4&>%VS9}6Dner||*Ao!Y(!L!hj)qIIj08GOnnR6>kG71#25yyAL3DJ70%A$va zsl-BZC#f$xI2XUo^JL;3I=h8L;2Qc?BloaFhr5a;kqI_s}_tyi@%W_>w8;DwyNpW{k zR9aX}^Zb(kwFJVwx=3c1xi6(X<6U{J<*U2z=2~LERR=i9dGZMb%Kx7Kxw@Wj9eObP z77T{tz7COplELj|9AdT9`)^s+R~gm9Xg}cec&V^)v=H^!v2|pfmY)z53VsQ~Vng05 z1L9mQYB4MY2D8N$E7vY`+1{vu}XIl6dM`7wW45&YjYVl0f0gv<2$#kVAyG zbcHbURG&B+fxJ5`IHahL0dqIz87QK)#D@l<7Q^m*WiXj2qNtsg+0C=}=CZoPL-F~&zP#WCXa+#YQAO}qD5}*GF zsCpK&6iIe=LP1lQdkYTu)4dX>!aqR8HeGUN#^~H&EO|%-lO6ve!4|53>bbATWMU~V zJ9*F@juJrgqR{bMMC8C?vzhRtF#(*tH6+9Ia>SAKp2?{9%zI~o1Af+kyu+X&H%kJd z+ULp>XrASq0E*u124;H!X7VCNmbu*>Pu&}^jm1Qf6?l(la17#RihZ8agkaNk5Ck&v8_5^LFGyFP*GDjRUu|`IHX1^XA=fa@Wq1gE=It$7mF`IK+l$WEP zP~Pc7#zo28E$FSJH0MIysW_wkcQGuw>#|9b!Fs?Mo8?jl2g(M^FjQ5*`75ug6I-b^ zLU!J9*vpI;pU|ARIib6d{#u?HvFhcnFSYW$5?!im17WVWJ%SOlOn)O!j`?#~V!WR3 zFs)!i&AVtlF-}o?Fe?RmRIsnN6I=^1yh;y)mEA-JV9rEv1=~ef-gPd`eZay*5eE0~ zmtKI7tr*zA2eo~* h3 + position: absolute + left: 0px + top: 0px + padding: 5px #selected-equipped-item margin-bottom: $selectedItemMargin padding-bottom: 20px + background-color: #ff5 #selected-available-item padding-top: 15px - - #swap-button - position: absolute - top: 50% - left: 50% - margin-top: -($swapItemHeight / 2) - margin-left: -($swapItemWidth / 2) - width: $swapItemWidth - height: $swapItemHeight - font-size: 24px - line-height: 24px - display: inline-block + background-color: #e0f0f5 + bottom: 0 diff --git a/app/styles/game-menu/item-view.sass b/app/styles/game-menu/item-view.sass index d37b85e57..a4dd22162 100644 --- a/app/styles/game-menu/item-view.sass +++ b/app/styles/game-menu/item-view.sass @@ -3,11 +3,15 @@ img float: left - width: 40px - height: 40px + width: 50px + height: 50px + margin-right: 5px .item-info - margin-left: 45px + float: left + width: 110px + width: -webkit-calc(100% - 50px - 5px) + width: calc(100% - 50px - 5px) ul margin-top: 5px diff --git a/app/templates/game-menu/inventory-view.jade b/app/templates/game-menu/inventory-view.jade index bda583512..0966ac135 100644 --- a/app/templates/game-menu/inventory-view.jade +++ b/app/templates/game-menu/inventory-view.jade @@ -19,11 +19,11 @@ canvas.equipped-hero-canvas #selected-items #selected-equipped-item.well + h3(data-i18n="inventory.equipped") Equipped .item-view-stub #selected-available-item.well + h3(data-i18n="inventory.equipped") Available .item-view-stub - button#swap-button.btn.btn-danger - span.glyphicon.glyphicon-transfer .item-slot-column.pull-right for slot in ['pet', 'waist', 'feet', 'right-hand'] @@ -44,8 +44,12 @@ .replace-me(data-item-id=equipment[slot].get('original')) #available-equipment - h4#stash-description + h4#unlocked-description ul.list-group - for item in items + for item in unlockedItems + li.list-group-item(class=item.classes, data-item-id=item.get('original')) + h4#locked-description + ul.list-group + for item in lockedItems li.list-group-item(class=item.classes, data-item-id=item.get('original')) diff --git a/app/views/game-menu/InventoryView.coffee b/app/views/game-menu/InventoryView.coffee index 4482a51af..12659ff68 100644 --- a/app/views/game-menu/InventoryView.coffee +++ b/app/views/game-menu/InventoryView.coffee @@ -14,10 +14,9 @@ module.exports = class InventoryView extends CocoView events: 'click .item-slot': 'onItemSlotClick' - 'click #available-equipment .list-group-item': 'onAvailableItemClick' - 'dblclick #available-equipment .list-group-item': 'onAvailableItemDoubleClick' + 'click #available-equipment .list-group-item:not(.equipped)': 'onAvailableItemClick' + 'dblclick #available-equipment .list-group-item:not(.equipped)': 'onAvailableItemDoubleClick' 'dblclick .item-slot .item-view': 'onEquippedItemDoubleClick' - 'click #swap-button': 'onClickSwapButton' subscriptions: 'level:hero-selection-updated': 'onHeroSelectionUpdated' @@ -47,11 +46,15 @@ module.exports = class InventoryView extends CocoView context.equipped = _.values(@equipment) context.items = @items.models + context.unlockedItems = [] + context.lockedItems = [] for item in @items.models item.classes = item.getAllowedSlots() item.classes.push 'equipped' if item.get('original') in context.equipped - item.classes.push 'restricted' if @allowedItems and not (item.get('original') in @allowedItems) - @items.models.sort (a, b) -> ('restricted' in a.classes) - ('restricted' in b.classes) + locked = @allowedItems and not (item.get('original') in @allowedItems) + item.classes.push 'locked' if locked + (if locked then context.lockedItems else context.unlockedItems).push item + @items.models.sort (a, b) -> ('locked' in a.classes) - ('locked' in b.classes) context.slots = @slots context.equipment = _.clone @equipment @@ -83,7 +86,7 @@ module.exports = class InventoryView extends CocoView itemView.render() $(availableItemEl).append(itemView.$el) @registerSubView(itemView) - continue if $(availableItemEl).hasClass 'restricted' + continue if $(availableItemEl).hasClass 'locked' dragHelper = itemView.$el.find('img').clone().addClass('draggable-item') do (dragHelper, itemView) => itemView.$el.draggable @@ -136,7 +139,7 @@ module.exports = class InventoryView extends CocoView onAvailableItemClick: (e) -> itemContainer = $(e.target).closest('.list-group-item') - return if itemContainer.hasClass 'restricted' + return if itemContainer.hasClass 'locked' wasActive = itemContainer.hasClass 'active' @unselectAllAvailableEquipment() @selectAvailableItem(itemContainer) unless wasActive @@ -145,7 +148,7 @@ module.exports = class InventoryView extends CocoView onAvailableItemDoubleClick: (e) -> if e itemContainer = $(e.target).closest('.list-group-item') - return if itemContainer.hasClass 'restricted' + return if itemContainer.hasClass 'locked' @selectAvailableItem itemContainer @onSelectionChanged() slot = @getSelectedSlot() @@ -160,17 +163,6 @@ module.exports = class InventoryView extends CocoView @selectAvailableItem(@unequipItemFromSlot(slot)) @onSelectionChanged() - onClickSwapButton: -> - slot = @getSelectedSlot() - selectedItemContainer = @$el.find('#available-equipment .list-group-item.active') - return unless slot[0] or selectedItemContainer[0] - slot = @$el.find('.item-slot:not(.disabled):first') if not slot.length - itemContainer = @unequipItemFromSlot(slot) - @equipSelectedItemToSlot(slot) - @selectAvailableItem(itemContainer) - @selectSlot(slot) - @onSelectionChanged() - getSelectedSlot: -> @$el.find('#equipped .item-slot.selected') @@ -221,35 +213,33 @@ module.exports = class InventoryView extends CocoView if selectedSlot.length @$el.find('#available-equipment .list-group-item').hide() - count = @$el.find("#available-equipment .list-group-item.#{selectedSlot.data('slot')}").show().length - @$el.find('#stash-description').text "#{count} #{selectedSlot.data('slot')} items owned" - + unlockedCount = @$el.find("#available-equipment .list-group-item.#{selectedSlot.data('slot')}:not(.locked)").show().length + lockedCount = @$el.find("#available-equipment .list-group-item.#{selectedSlot.data('slot')}.locked").show().length + @$el.find('#unlocked-description').text("#{unlockedCount} #{selectedSlot.data('slot')} items owned").toggle unlockedCount > 0 + @$el.find('#locked-description').text("#{lockedCount} #{selectedSlot.data('slot')} items locked").toggle lockedCount > 0 selectedSlotItemID = selectedSlot.find('.item-view').data('item-id') if selectedSlotItemID - item = _.find @items.models, {id:selectedSlotItemID} + item = _.find @items.models, {id: selectedSlotItemID} @showSelectedSlotItem(item) - else @hideSelectedSlotItem() - else - count = @$el.find('#available-equipment .list-group-item').show().length - @$el.find('#stash-description').text "#{count} items owned" - @$el.find('#available-equipment .list-group-item.equipped').hide() + unlockedCount = @$el.find('#available-equipment .list-group-item:not(.locked)').show().length + lockedCount = @$el.find('#available-equipment .list-group-item.locked').show().length + @$el.find('#unlocked-description').text("#{unlockedCount} items owned").toggle unlockedCount > 0 + @$el.find('#locked-description').text("#{lockedCount} items locked").toggle lockedCount > 0 + #@$el.find('#available-equipment .list-group-item.equipped').hide() @$el.find('.item-slot').removeClass('disabled') if selectedItem.length item = _.find @items.models, {id:selectedItem.find('.item-view').data('item-id')} - # update which slots are enabled allowedSlots = item.getAllowedSlots() for slotEl in @$el.find('.item-slot') slotName = $(slotEl).data('slot') if slotName not in allowedSlots $(slotEl).addClass('disabled') - @showSelectedAvailableItem(item) - else @hideSelectedAvailableItem() @@ -265,9 +255,10 @@ module.exports = class InventoryView extends CocoView @selectedEquippedItemView.item = item @selectedEquippedItemView.render() @$el.find('#selected-items').show() + @$el.find('#selected-equipped-item').show() hideSelectedSlotItem: -> - @selectedEquippedItemView?.$el.hide() + @selectedEquippedItemView?.$el.hide().parent().hide() @$el.find('#selected-items').hide() unless @selectedEquippedItemView?.$el?.is(':visible') showSelectedAvailableItem: (item) -> @@ -280,9 +271,10 @@ module.exports = class InventoryView extends CocoView @selectedAvailableItemView.item = item @selectedAvailableItemView.render() @$el.find('#selected-items').show() + @$el.find('#selected-available-item').show() hideSelectedAvailableItem: -> - @selectedAvailableItemView?.$el.hide() + @selectedAvailableItemView?.$el.hide().parent().hide() @$el.find('#selected-items').hide() unless @selectedEquippedItemView?.$el?.is(':visible') getCurrentEquipmentConfig: -> @@ -296,7 +288,7 @@ module.exports = class InventoryView extends CocoView config assignLevelEquipment: -> - # This is temporary, until we have a more general way of awarding items and configuring needed/restricted items per level. + # This is temporary, until we have a more general way of awarding items and configuring needed/locked items per level. gear = 'simple-boots': '53e237bf53457600003e3f05' 'longsword': '53e218d853457600003e3ebe' From b8d59cb179848cb5d5d3ff26309e731e4e5bf145 Mon Sep 17 00:00:00 2001 From: Nick Winter Date: Wed, 24 Sep 2014 20:25:30 -0700 Subject: [PATCH 23/34] Fixed a bug with playback never quite getting to the end. --- app/lib/surface/Surface.coffee | 2 +- app/views/play/level/LevelPlaybackView.coffee | 3 --- 2 files changed, 1 insertion(+), 4 deletions(-) diff --git a/app/lib/surface/Surface.coffee b/app/lib/surface/Surface.coffee index 878f92995..1dcc5aad8 100644 --- a/app/lib/surface/Surface.coffee +++ b/app/lib/surface/Surface.coffee @@ -336,7 +336,7 @@ module.exports = Surface = class Surface extends CocoClass @lastFrame = @currentFrame - getProgress: -> @currentFrame / @world.frames.length + getProgress: -> @currentFrame / Math.max(1, @world.frames.length - 1) diff --git a/app/views/play/level/LevelPlaybackView.coffee b/app/views/play/level/LevelPlaybackView.coffee index 6949fce6e..ca2312515 100644 --- a/app/views/play/level/LevelPlaybackView.coffee +++ b/app/views/play/level/LevelPlaybackView.coffee @@ -262,10 +262,7 @@ module.exports = class LevelPlaybackView extends CocoView onFrameChanged: (e) -> if e.progress isnt @lastProgress @currentTime = e.frame / e.world.frameRate - # Game will sometimes stop at 29.97, but with only one digit, this is unnecesary. - # @currentTime = @totalTime if Math.abs(@totalTime - @currentTime) < 0.04 @updatePopupContent() if @timePopup?.shown - @updateProgress(e.progress, e.world) @updatePlayButton(e.progress) @lastProgress = e.progress From b2592aad8c4b66b326af57ef1d6fe33e4c3b8578 Mon Sep 17 00:00:00 2001 From: Nick Winter Date: Wed, 24 Sep 2014 21:01:58 -0700 Subject: [PATCH 24/34] Fixed more off-by-one errors in playback ratios. Fixed some clickability problems with the scrubber handle. --- app/lib/surface/Surface.coffee | 4 ++-- app/styles/play/level.sass | 2 +- app/styles/play/level/playback.sass | 10 +++++++--- app/views/play/level/LevelPlaybackView.coffee | 4 ++-- 4 files changed, 12 insertions(+), 8 deletions(-) diff --git a/app/lib/surface/Surface.coffee b/app/lib/surface/Surface.coffee index 1dcc5aad8..c0267e081 100644 --- a/app/lib/surface/Surface.coffee +++ b/app/lib/surface/Surface.coffee @@ -249,7 +249,7 @@ module.exports = Surface = class Surface extends CocoClass createjs.Tween.removeTweens(@) @currentFrame = @scrubbingTo - @scrubbingTo = Math.min(Math.round(progress * @world.frames.length), @world.frames.length) + @scrubbingTo = Math.min(Math.round(progress * (@world.frames.length - 1)), @world.frames.length - 1) @scrubbingPlaybackSpeed = Math.sqrt(Math.abs(@scrubbingTo - @currentFrame) * @world.dt / (scrubDuration or 0.5)) if scrubDuration t = createjs.Tween @@ -433,7 +433,7 @@ module.exports = Surface = class Surface extends CocoClass @setWorld event.world @onFrameChanged(true) fastForwardBuffer = 2 - if @playing and not @realTime and (ffToFrame = Math.min(event.firstChangedFrame, @frameBeforeCast, @world.frames.length)) and ffToFrame > @currentFrame + fastForwardBuffer * @world.frameRate + if @playing and not @realTime and (ffToFrame = Math.min(event.firstChangedFrame, @frameBeforeCast, @world.frames.length - 1)) and ffToFrame > @currentFrame + fastForwardBuffer * @world.frameRate @fastForwardingToFrame = ffToFrame @fastForwardingSpeed = Math.max 4, 4 * 90 / (@world.maxTotalFrames * @world.dt) else if @realTime diff --git a/app/styles/play/level.sass b/app/styles/play/level.sass index d0ffb4ab3..6e864a168 100644 --- a/app/styles/play/level.sass +++ b/app/styles/play/level.sass @@ -123,7 +123,7 @@ $level-resize-transition-time: 0.5s .gradient position: absolute - z-index: 10 + z-index: 5 #code-area-gradient top: 0px diff --git a/app/styles/play/level/playback.sass b/app/styles/play/level/playback.sass index b67e8ee28..f98ac1492 100644 --- a/app/styles/play/level/playback.sass +++ b/app/styles/play/level/playback.sass @@ -100,25 +100,29 @@ // Can't do this transition because handle then jitters, but would be good for streaming. //@include transition(width .2s linear) - &.disabled + &.disabled, &.ui-slider-disabled cursor: default + .progress-bar .scrubber-handle + cursor: default + .progress-bar @include transition(width .0s linear) position: relative - pointer-events: none // Remove gradient background in favor of solid fill background-color: #67A4C8 //background-image: none // gradient looks kind of cool though; keep it in .scrubber-handle + cursor: pointer position: absolute - pointer-events: none right: -16px top: -9px background: transparent url(/images/level/playback_thumb.png) width: 32px height: 32px + // z: above the gradient line bordering the playback bar + z-index: 6 .ui-slider-handle height: 100% diff --git a/app/views/play/level/LevelPlaybackView.coffee b/app/views/play/level/LevelPlaybackView.coffee index ca2312515..8e7cdd847 100644 --- a/app/views/play/level/LevelPlaybackView.coffee +++ b/app/views/play/level/LevelPlaybackView.coffee @@ -179,8 +179,8 @@ module.exports = class LevelPlaybackView extends CocoView @updateBarWidth e.world.frames.length, e.world.maxTotalFrames, e.world.dt updateBarWidth: (loadedFrameCount, maxTotalFrames, dt) -> - @totalTime = loadedFrameCount * dt - pct = parseInt(100 * loadedFrameCount / maxTotalFrames) + '%' + @totalTime = (loadedFrameCount - 1) * dt + pct = parseInt(100 * loadedFrameCount / (maxTotalFrames - 1)) + '%' @barWidth = $('.progress', @$el).css('width', pct).show().width() $('.scrubber .progress', @$el).slider('enable', true) @newTime = 0 From 2aa274cb2da02df31319266a62945f0dd806c319 Mon Sep 17 00:00:00 2001 From: Nick Winter Date: Wed, 24 Sep 2014 22:07:55 -0700 Subject: [PATCH 25/34] Fixed bugs with Surface fast-forwarding too fast on short levels and rewinding non-instantaneously when rerunning. --- app/lib/surface/Surface.coffee | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/app/lib/surface/Surface.coffee b/app/lib/surface/Surface.coffee index c0267e081..d95b37408 100644 --- a/app/lib/surface/Surface.coffee +++ b/app/lib/surface/Surface.coffee @@ -314,7 +314,7 @@ module.exports = Surface = class Surface extends CocoClass #- Changes and events that only need to happen when the frame has changed onFrameChanged: (force) -> - @currentFrame = Math.min(@currentFrame, @world.frames.length) + @currentFrame = Math.min(@currentFrame, @world.frames.length - 1) @debugDisplay?.updateFrame @currentFrame return if @currentFrame is @lastFrame and not force progress = @getProgress() @@ -416,7 +416,8 @@ module.exports = Surface = class Surface extends CocoClass @casting = true @setPlayingCalled = false # Don't overwrite playing settings if they changed by, say, scripts. @frameBeforeCast = @currentFrame - @setProgress 0 + # This is where I wanted to trigger a rewind, but it turned out to be pretty complicated, since the new world gets updated everywhere, and you don't want to rewind through that. + @setProgress 0, 0 onNewWorld: (event) -> return unless event.world.name is @world.name @@ -435,7 +436,7 @@ module.exports = Surface = class Surface extends CocoClass fastForwardBuffer = 2 if @playing and not @realTime and (ffToFrame = Math.min(event.firstChangedFrame, @frameBeforeCast, @world.frames.length - 1)) and ffToFrame > @currentFrame + fastForwardBuffer * @world.frameRate @fastForwardingToFrame = ffToFrame - @fastForwardingSpeed = Math.max 4, 4 * 90 / (@world.maxTotalFrames * @world.dt) + @fastForwardingSpeed = Math.max 3, 3 * (@world.maxTotalFrames * @world.dt) / 60 else if @realTime lag = (@world.frames.length - 1) * @world.dt - @world.age intendedLag = @world.realTimeBufferMax + @world.dt From 5e0b42068ae26cd325b53dc73ef63f0c48ee6c2d Mon Sep 17 00:00:00 2001 From: Nick Winter Date: Wed, 24 Sep 2014 22:12:00 -0700 Subject: [PATCH 26/34] Scrubber auto-pauses when dragging from ended position. --- app/views/play/level/LevelPlaybackView.coffee | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/views/play/level/LevelPlaybackView.coffee b/app/views/play/level/LevelPlaybackView.coffee index 8e7cdd847..2c99dec07 100644 --- a/app/views/play/level/LevelPlaybackView.coffee +++ b/app/views/play/level/LevelPlaybackView.coffee @@ -334,7 +334,7 @@ module.exports = class LevelPlaybackView extends CocoView start: (event, ui) => return if @shouldIgnore() @slideCount = 0 - @wasPlaying = @playing + @wasPlaying = @playing and not $('#play-button').hasClass('ended') Backbone.Mediator.publish 'level:set-playing', {playing: false} Backbone.Mediator.publish 'audio-player:play-sound', trigger: 'playback-scrub-start', volume: 0.5 From 58e0ba1c1035f4b15b656baf6585ab5b560aefb5 Mon Sep 17 00:00:00 2001 From: Nick Winter Date: Wed, 24 Sep 2014 22:23:14 -0700 Subject: [PATCH 27/34] Hid flags view during real-time playback for non-flag-using levels. --- app/styles/play/level.sass | 16 ++++++++++------ app/views/play/level/PlayLevelView.coffee | 4 +++- 2 files changed, 13 insertions(+), 7 deletions(-) diff --git a/app/styles/play/level.sass b/app/styles/play/level.sass index 6e864a168..58fa5723b 100644 --- a/app/styles/play/level.sass +++ b/app/styles/play/level.sass @@ -23,12 +23,16 @@ $level-resize-transition-time: 0.5s width: 100% button, h4 display: none - #playback-view - $flags-width: 200px - width: 90% - width: -webkit-calc(100% - $flags-width) - width: calc(100% - $flags-width) - left: $flags-width + &:not(.flags) + #playback-view + width: 100% + &.flags + #playback-view + $flags-width: 200px + width: 90% + width: -webkit-calc(100% - $flags-width) + width: calc(100% - $flags-width) + left: $flags-width #code-area, #thang-hud, #goals-view display: none visibility: hidden diff --git a/app/views/play/level/PlayLevelView.coffee b/app/views/play/level/PlayLevelView.coffee index 192c712f8..c0c5347a4 100644 --- a/app/views/play/level/PlayLevelView.coffee +++ b/app/views/play/level/PlayLevelView.coffee @@ -205,6 +205,8 @@ module.exports = class PlayLevelView extends RootView @session = @levelLoader.session @world = @levelLoader.world @level = @levelLoader.level + @$el.addClass 'hero' if @level.get('type', true) is 'hero' + @$el.addClass 'flags' if @level.get('slug') is 'sky-span' # TODO: figure out when the player has flags. @otherSession = @levelLoader.opponentSession @worldLoadFakeResources = [] # first element (0) is 1%, last (100) is 100% for percent in [1 .. 100] @@ -258,7 +260,7 @@ module.exports = class PlayLevelView extends RootView @insertSubView @tome = new TomeView levelID: @levelID, session: @session, otherSession: @otherSession, thangs: @world.thangs, supermodel: @supermodel, level: @level @insertSubView new LevelPlaybackView session: @session @insertSubView new GoalsView {} - @insertSubView new LevelFlagsView world: @world + @insertSubView new LevelFlagsView world: @world if @levelID is 'sky-span' # TODO: figure out when flags are available @insertSubView new GoldView {} @insertSubView new HUDView {} @insertSubView new ChatView levelID: @levelID, sessionID: @session.id, session: @session From cde2acaea1feb38708255b43689f6c0006d30e50 Mon Sep 17 00:00:00 2001 From: Nick Winter Date: Wed, 24 Sep 2014 22:52:18 -0700 Subject: [PATCH 28/34] Disabled clicking spell palette entries for hero levels. --- app/styles/play/level/tome/spell_palette_entry.sass | 6 +++++- app/views/play/level/tome/SpellPaletteEntryView.coffee | 1 + app/views/play/level/tome/SpellPaletteView.coffee | 2 +- 3 files changed, 7 insertions(+), 2 deletions(-) diff --git a/app/styles/play/level/tome/spell_palette_entry.sass b/app/styles/play/level/tome/spell_palette_entry.sass index 489fcab54..3621d5981 100644 --- a/app/styles/play/level/tome/spell_palette_entry.sass +++ b/app/styles/play/level/tome/spell_palette_entry.sass @@ -1,6 +1,10 @@ @import "app/styles/bootstrap/mixins" @import "app/styles/mixins" +#level-view.hero .spell-palette-entry-view + // Not clickable. + cursor: default + .spell-palette-entry-view display: block padding: 0px 4px @@ -101,4 +105,4 @@ html.fullscreen-editor min-width: 600px bottom: inherit right: 50% - margin-right: -300px \ No newline at end of file + margin-right: -300px diff --git a/app/views/play/level/tome/SpellPaletteEntryView.coffee b/app/views/play/level/tome/SpellPaletteEntryView.coffee index 434a12176..064bf2af4 100644 --- a/app/views/play/level/tome/SpellPaletteEntryView.coffee +++ b/app/views/play/level/tome/SpellPaletteEntryView.coffee @@ -76,6 +76,7 @@ module.exports = class SpellPaletteEntryView extends CocoView Backbone.Mediator.publish 'tome:palette-pin-toggled', entry: @, pinned: @popoverPinned onClick: (e) => + return if @options.level.get('type', true) is 'hero' # No need for confusing docs pinning on hero levels. if key.shift Backbone.Mediator.publish 'tome:insert-snippet', doc: @options.doc, language: @options.language, formatted: @doc return diff --git a/app/views/play/level/tome/SpellPaletteView.coffee b/app/views/play/level/tome/SpellPaletteView.coffee index 5582ca675..4eaf69514 100644 --- a/app/views/play/level/tome/SpellPaletteView.coffee +++ b/app/views/play/level/tome/SpellPaletteView.coffee @@ -145,7 +145,7 @@ module.exports = class SpellPaletteView extends CocoView addEntry: (doc, shortenize, tabbify, isSnippet=false) -> writable = (if _.isString(doc) then doc else doc.name) in (@thang.apiUserProperties ? []) - new SpellPaletteEntryView doc: doc, thang: @thang, shortenize: shortenize, tabbify: tabbify, isSnippet: isSnippet, language: @options.language, writable: writable + new SpellPaletteEntryView doc: doc, thang: @thang, shortenize: shortenize, tabbify: tabbify, isSnippet: isSnippet, language: @options.language, writable: writable, level: @options.level onDisableControls: (e) -> @toggleControls e, false onEnableControls: (e) -> @toggleControls e, true From cce36333dd7024e3e4b70640ea887af51b2cbe99 Mon Sep 17 00:00:00 2001 From: Nick Winter Date: Wed, 24 Sep 2014 22:59:13 -0700 Subject: [PATCH 29/34] Set letterbox during real-time playback. --- app/views/play/level/LevelPlaybackView.coffee | 3 +++ 1 file changed, 3 insertions(+) diff --git a/app/views/play/level/LevelPlaybackView.coffee b/app/views/play/level/LevelPlaybackView.coffee index 2c99dec07..e3beaef11 100644 --- a/app/views/play/level/LevelPlaybackView.coffee +++ b/app/views/play/level/LevelPlaybackView.coffee @@ -166,6 +166,7 @@ module.exports = class LevelPlaybackView extends CocoView @togglePlaybackControls false Backbone.Mediator.publish 'playback:real-time-playback-started', {} Backbone.Mediator.publish 'audio-player:play-sound', trigger: 'real-time-playback-start', volume: 1 + Backbone.Mediator.publish 'level:set-letterbox', on: true onRealTimeMultiplayerCast: (e) -> @realTime = true @@ -292,11 +293,13 @@ module.exports = class LevelPlaybackView extends CocoView @worldCompletelyLoaded = world.frames.length is world.totalFrames if @realTime and @worldCompletelyLoaded and not wasLoaded Backbone.Mediator.publish 'playback:real-time-playback-ended', {} + Backbone.Mediator.publish 'level:set-letterbox', on: false $('.scrubber .progress-bar', @$el).css('width', "#{progress * 100}%") updatePlayButton: (progress) -> if @worldCompletelyLoaded and progress >= 0.99 and @lastProgress < 0.99 $('#play-button').removeClass('playing').removeClass('paused').addClass('ended') + Backbone.Mediator.publish 'level:set-letterbox', on: false if @realTime Backbone.Mediator.publish 'playback:real-time-playback-ended', {} if @realTime if progress < 0.99 and @lastProgress >= 0.99 b = $('#play-button').removeClass('ended') From c0c436189f8db59fadad61fe30e833f158335912 Mon Sep 17 00:00:00 2001 From: Nick Winter Date: Thu, 25 Sep 2014 00:02:53 -0700 Subject: [PATCH 30/34] Better preserving supermodel when navigating between new hero levels. Fixed a problem with garbage collection of large CocoModel error callbacks. --- app/models/CocoModel.coffee | 2 ++ app/views/play/level/ControlBarView.coffee | 19 ++++++++++++++++--- .../play/level/modal/VictoryModal.coffee | 6 ++++++ app/views/play/modal/PlayLevelModal.coffee | 9 ++++++--- 4 files changed, 30 insertions(+), 6 deletions(-) diff --git a/app/models/CocoModel.coffee b/app/models/CocoModel.coffee index d59bd5dc6..dcbd39263 100644 --- a/app/models/CocoModel.coffee +++ b/app/models/CocoModel.coffee @@ -121,6 +121,7 @@ class CocoModel extends Backbone.Model @markToRevert() if @_revertAttributes @clearBackup() CocoModel.pollAchievements() + options.success = options.error = null # So the callbacks can be garbage-collected. options.error = (model, res) => error(@, res) if error return unless @notyErrors @@ -131,6 +132,7 @@ class CocoModel extends Backbone.Model noty text: "#{errorMessage}: #{res.status} #{res.statusText}", layout: 'topCenter', type: 'error', killer: false, timeout: 10000 catch notyError console.warn "Couldn't even show noty error for", error, "because", notyError + options.success = options.error = null # So the callbacks can be garbage-collected. @trigger 'save', @ return super attrs, options diff --git a/app/views/play/level/ControlBarView.coffee b/app/views/play/level/ControlBarView.coffee index 15cfe8c89..df4d83a05 100644 --- a/app/views/play/level/ControlBarView.coffee +++ b/app/views/play/level/ControlBarView.coffee @@ -26,6 +26,8 @@ module.exports = class ControlBarView extends CocoView 'click': -> Backbone.Mediator.publish 'tome:focus-editor', {} + 'click .home a': 'onClickHome' + constructor: (options) -> @worldName = options.worldName @session = options.session @@ -51,12 +53,18 @@ module.exports = class ControlBarView extends CocoView c.multiplayerEnabled = @session.get('multiplayer') c.ladderGame = @level.get('type') is 'ladder' c.spectateGame = @spectateGame + @homeViewArgs = [{supermodel: @supermodel}] if @level.get('type', true) in ['ladder', 'ladder-tutorial'] - c.homeLink = '/play/ladder/' + @level.get('slug').replace /\-tutorial$/, '' + levelID = @level.get('slug').replace /\-tutorial$/, '' + @homeLink = c.homeLink = '/play/ladder/' + levelID + @homeViewClass = require 'views/play/ladder/LadderView' + @homeViewArgs.push levelID else if @level.get('type', true) is 'hero' - c.homeLink = '/play-hero' + @homeLink = c.homeLink = '/play-hero' + @homeViewClass = require 'views/play/WorldMapView' else - c.homeLink = '/' + @homeLink = c.homeLink = '/' + @homeViewClass = require 'views/HomeView' c.editorLink = "/editor/level/#{@level.get('slug')}" c.multiplayerSession = @multiplayerSession if @multiplayerSession c.multiplayerPlayers = @multiplayerPlayers if @multiplayerPlayers @@ -84,6 +92,11 @@ module.exports = class ControlBarView extends CocoView showGameMenuModal: -> @openModalView new GameMenuModal level: @level, session: @session + onClickHome: (e) -> + e.preventDefault() + e.stopImmediatePropagation() + Backbone.Mediator.publish 'router:navigate', route: @homeLink, viewClass: @homeViewClass, viewArgs: @homeViewArgs + onJoinedRealTimeMultiplayerGame: (e) -> @multiplayerSession = e.session @multiplayerPlayers = new RealTimeCollection('multiplayer_level_sessions/' + @multiplayerSession.id + '/players') diff --git a/app/views/play/level/modal/VictoryModal.coffee b/app/views/play/level/modal/VictoryModal.coffee index e985b9e70..88769919e 100644 --- a/app/views/play/level/modal/VictoryModal.coffee +++ b/app/views/play/level/modal/VictoryModal.coffee @@ -14,6 +14,7 @@ module.exports = class VictoryModal extends ModalView events: 'click .next-level-button': 'onPlayNextLevel' + 'click .world-map-button': 'onClickWorldMap' # review events 'mouseover .rating i': (e) -> @showStars(@starNum($(e.target))) @@ -64,6 +65,11 @@ module.exports = class VictoryModal extends ModalView @saveReview() if @$el.find('.review textarea').val() Backbone.Mediator.publish 'level:play-next-level', {} + onClickWorldMap: (e) -> + e.preventDefault() + e.stopImmediatePropagation() + Backbone.Mediator.publish 'router:navigate', route: '/play-hero', viewClass: require('views/play/WorldMapView'), viewArgs: [{supermodel: @supermodel}] + onGameSubmitted: (e) -> ladderURL = "/play/ladder/#{@level.get('slug')}#my-matches" Backbone.Mediator.publish 'router:navigate', route: ladderURL diff --git a/app/views/play/modal/PlayLevelModal.coffee b/app/views/play/modal/PlayLevelModal.coffee index 2da166646..116709321 100644 --- a/app/views/play/modal/PlayLevelModal.coffee +++ b/app/views/play/modal/PlayLevelModal.coffee @@ -3,6 +3,7 @@ template = require 'templates/play/modal/play-level-modal' ChooseHeroView = require 'views/game-menu/ChooseHeroView' InventoryView = require 'views/game-menu/InventoryView' PlayLevelView = require 'views/play/level/PlayLevelView' +LadderView = require 'views/play/ladder/LadderView' LevelSession = require 'models/LevelSession' module.exports = class PlayLevelModal extends ModalView @@ -97,10 +98,12 @@ module.exports = class PlayLevelModal extends ModalView @showLoading() @updateConfig => @navigatingToPlay = true + viewClass = if @options.levelPath is 'ladder' then LadderView else PlayLevelView Backbone.Mediator.publish 'router:navigate', { - route: "/play/#{@options.levelPath || 'level'}/#{@options.levelID}", - viewClass: PlayLevelView, - viewArgs: [{supermodel: @supermodel}, @options.levelID]} + route: "/play/#{@options.levelPath || 'level'}/#{@options.levelID}" + viewClass: viewClass + viewArgs: [{supermodel: @supermodel}, @options.levelID] + } onEnterPressed: (e) -> (if @chooseHeroView.$el.hasClass('secret') then @onClickPlayLevel else @onClickChooseInventory).apply @ From 5dab9f822695037eccf1e77bf4e0d734b834a952 Mon Sep 17 00:00:00 2001 From: enricpc Date: Thu, 25 Sep 2014 09:59:55 +0200 Subject: [PATCH 31/34] Update ca.coffee --- app/locale/ca.coffee | 104 +++++++++++++++++++++---------------------- 1 file changed, 52 insertions(+), 52 deletions(-) diff --git a/app/locale/ca.coffee b/app/locale/ca.coffee index 2d71d9089..cc51f90e1 100644 --- a/app/locale/ca.coffee +++ b/app/locale/ca.coffee @@ -104,7 +104,7 @@ module.exports = nativeDescription: "Català", englishDescription: "Catalan", tr for_beginners: "Per a principiants" multiplayer: "Multijugador" for_developers: "Per a Desenvolupadors" -# javascript_blurb: "The language of the web. Great for writing websites, web apps, HTML5 games, and servers." + javascript_blurb: "El llenguatge de les webs. Útil per escriure pagines web, aplicacions web, jocs en HTML5 i servidors." # python_blurb: "Simple yet powerful, Python is a great general purpose programming language." # coffeescript_blurb: "Nicer JavaScript syntax." # clojure_blurb: "A modern Lisp." @@ -130,12 +130,12 @@ module.exports = nativeDescription: "Català", englishDescription: "Catalan", tr play_as: "Jugar com" spectate: "Spectate" players: "jugadors" -# hours_played: "hours played" + hours_played: "hores de joc" # items: "Items" heroes: "Herois" -# achievements: "Achievements" + achievements: "Assoliments" account: "Conta" -# settings: "Settings" + settings: "Configuració" next: "Següent" previous: "Anterior" # choose_inventory: "Equip Items" @@ -162,17 +162,17 @@ module.exports = nativeDescription: "Català", englishDescription: "Catalan", tr # 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." diplomat_suggestion: - title: "Ajudaa traduir CodeCombat!" -# sub_heading: "We need your language skills." - pitch_body: "We develop CodeCombat in English, but we already have players all over the world. Many of them want to play in Catalan, but don't speak English, so if you can speak both, please consider signing up to be a Diplomat and help translate both the CodeCombat website and all the levels into Catalan." - missing_translations: "Until we can translate everything into Catalan, you'll see English when Catalan isn't available." + title: "Ajuda a traduir CodeCombat!" + sub_heading: "Neccesitem les teves habilitats lingüístiques." + pitch_body: "Hem desembolupat CodeCombat en Anglès, peró tenim jugadors per tot el món. Molts d'ells volen jugar en Català, però no parlen anglès, per tant si pots parlar ambdós llengües, siusplau considereu iniciar sesió per a ser Diplomatic i ajudar a traduir la web de CodeCombat i tots els seus nivell en Català." + missing_translations: "Fins que puguem traduir-ho tot en Català, veuràs en anglès quant available." # learn_more: "Learn more about being a Diplomat" # subscribe_as_diplomat: "Subscribe as a Diplomat" wizard_settings: -# title: "Wizard Settings" -# customize_avatar: "Customize Your Avatar" -# active: "Active" + title: "Configuració del bruixot" + customize_avatar: "Personalitza el teu avatar" + active: "Actiu" color: "Color" group: "Grup" # clothes: "Clothes" @@ -238,11 +238,11 @@ module.exports = nativeDescription: "Català", englishDescription: "Catalan", tr contact: "Contacta" # active: "Looking for interview offers now" # inactive: "Not looking for offers right now" -# complete: "complete" + complete: "complet" next: "Seguent" -# next_city: "city?" + next_city: "ciutat?" # next_country: "pick your country." -# next_name: "name?" + next_name: "nom?" # next_short_description: "write a short description." # next_long_description: "describe your desired position." # next_skills: "list at least five skills." @@ -290,7 +290,7 @@ module.exports = nativeDescription: "Català", englishDescription: "Catalan", tr # long_description_blurb: "Tell employers how awesome you are and what role you want." # long_description: "Self Description" # long_description_help: "Describe yourself to potential employers. Keep it short and to the point. We recommend outlining the position that would most interest you. Tasteful markdown okay; 600 characters max." -# work_experience: "Work Experience" + work_experience: "Experiència laboral" # work_header: "Chronicle your work history" # work_years: "Years of Experience" # work_years_help: "How many years of professional experience (getting paid) developing software do you have?" @@ -301,12 +301,12 @@ module.exports = nativeDescription: "Català", englishDescription: "Catalan", tr # work_role_help: "What was your job title or role?" # work_duration: "Duration" # work_duration_help: "When did you hold this gig?" -# work_description: "Description" + work_description: "Descripció" # work_description_help: "What did you do there? (140 chars; optional)" -# education: "Education" + education: "Educació" # education_header: "Recount your academic ordeals" # education_blurb: "List your academic ordeals." -# education_school: "School" + education_school: "Escola" # education_school_help: "Name of your school." # education_degree: "Degree" # education_degree_help: "What was your degree and field of study?" @@ -316,15 +316,15 @@ module.exports = nativeDescription: "Català", englishDescription: "Catalan", tr # education_description_help: "Highlight anything about this educational experience. (140 chars; optional)" # our_notes: "CodeCombat's Notes" # remarks: "Remarks" -# projects: "Projects" + projects: "Projectes" # 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: "Nom del projecte" # project_name_help: "What was the project called?" -# project_description: "Description" + project_description: "Descripció" # project_description_help: "Briefly describe the project." -# project_picture: "Picture" + project_picture: "Imatge" # project_picture_help: "Upload a 230x115px or larger image showing off the project." # project_link: "Link" # project_link_help: "Link to the project." @@ -375,14 +375,14 @@ module.exports = nativeDescription: "Català", englishDescription: "Catalan", tr # inactive_developers: "Inactive Developers" # play_level: -# done: "Done" + done: "Fet" # customize_wizard: "Customize Wizard" # home: "Home" # skip: "Skip" # game_menu: "Game Menu" # guide: "Guide" # restart: "Restart" -# goals: "Goals" + goals: "Objectius" # goal: "Goal" # success: "Success!" # incomplete: "Incomplete" @@ -468,9 +468,9 @@ module.exports = nativeDescription: "Català", englishDescription: "Catalan", tr # inventory_tab: "Inventory" # choose_hero_tab: "Restart Level" # save_load_tab: "Save/Load" -# options_tab: "Options" -# guide_tab: "Guide" -# multiplayer_tab: "Multiplayer" + options_tab: "Opcions" + guide_tab: "Gui" + multiplayer_tab: "Multijugador" # inventory_caption: "Equip your hero" # choose_hero_caption: "Choose hero, language" # save_load_caption: "... and view history" @@ -864,9 +864,9 @@ module.exports = nativeDescription: "Català", englishDescription: "Catalan", tr # archmage_title_description: "(Coder)" # artisan_title: "Artisan" # artisan_title_description: "(Level Builder)" -# adventurer_title: "Adventurer" + adventurer_title: "Aventurer" # adventurer_title_description: "(Level Playtester)" -# scribe_title: "Scribe" + scribe_title: "Escriba" # scribe_title_description: "(Article Editor)" # diplomat_title: "Diplomat" # diplomat_title_description: "(Translator)" @@ -876,20 +876,20 @@ module.exports = nativeDescription: "Català", englishDescription: "Catalan", tr # ladder: # please_login: "Please log in first before playing a ladder game." # my_matches: "My Matches" -# simulate: "Simulate" + simulate: "Simula" # simulation_explanation: "By simulating games you can get your game ranked faster!" # simulate_games: "Simulate Games!" # simulate_all: "RESET AND SIMULATE GAMES" # games_simulated_by: "Games simulated by you:" # games_simulated_for: "Games simulated for you:" # games_simulated: "Games simulated" -# games_played: "Games played" + games_played: "Partides guanyades" # ratio: "Ratio" # leaderboard: "Leaderboard" # battle_as: "Battle as " # summary_your: "Your " # summary_matches: "Matches - " -# summary_wins: " Wins, " + summary_wins: " Victories, " # summary_losses: " Losses" # rank_no_code: "No New Code to Rank" # rank_my_game: "Rank My Game!" @@ -902,9 +902,9 @@ module.exports = nativeDescription: "Català", englishDescription: "Catalan", tr # 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" + choose_opponent: "Escull adversari" # select_your_language: "Select your language!" -# tutorial_play: "Play Tutorial" + tutorial_play: "Juga el tutorial" # tutorial_recommended: "Recommended if you've never played before" # tutorial_skip: "Skip Tutorial" # tutorial_not_sure: "Not sure what's going on?" @@ -924,8 +924,8 @@ module.exports = nativeDescription: "Català", englishDescription: "Catalan", tr # 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_blog: "on our blog" -# rules: "Rules" -# winners: "Winners" + rules: "Normes" + winners: "Guanyadors" # ladder_prizes: # title: "Tournament Prizes" @@ -949,10 +949,10 @@ module.exports = nativeDescription: "Català", englishDescription: "Catalan", tr # loading_error: # could_not_load: "Error loading from server" -# connection_failure: "Connection failed." + connection_failure: "Connexió fallida." # unauthorized: "You need to be signed in. Do you have cookies disabled?" # forbidden: "You do not have the permissions." -# not_found: "Not found." + not_found: "No trobat." # not_allowed: "Method not allowed." # timeout: "Server timeout." # conflict: "Resource conflict." @@ -963,10 +963,10 @@ module.exports = nativeDescription: "Català", englishDescription: "Catalan", tr # resources: # sessions: "Sessions" # your_sessions: "Your Sessions" -# level: "Level" + level: "Nivell" # social_network_apis: "Social Network APIs" # facebook_status: "Facebook Status" -# facebook_friends: "Facebook Friends" + facebook_friends: "Amics de Facebook" # facebook_friend_sessions: "Facebook Friend Sessions" # gplus_friends: "G+ Friends" # gplus_friend_sessions: "G+ Friend Sessions" @@ -997,19 +997,19 @@ module.exports = nativeDescription: "Català", englishDescription: "Catalan", tr # candidate_sessions: "Candidate Sessions" # user_remark: "User Remark" # user_remarks: "User Remarks" -# versions: "Versions" + versions: "Versions" # items: "Items" -# heroes: "Heroes" -# wizard: "Wizard" + heroes: "Herois" + wizard: "Bruixot" # achievement: "Achievement" # clas: "CLAs" # play_counts: "Play Counts" # feedback: "Feedback" # delta: -# added: "Added" -# modified: "Modified" -# deleted: "Deleted" + added: "Afegit" + modified: "Modificat" + deleted: "Eliminat" # moved_index: "Moved Index" # text_diff: "Text Diff" # merge_conflict_with: "MERGE CONFLICT WITH" @@ -1017,13 +1017,13 @@ module.exports = nativeDescription: "Català", englishDescription: "Catalan", tr # user: # stats: "Stats" -# singleplayer_title: "Singleplayer Levels" + singleplayer_title: "Nivell d'un sol jugador" # multiplayer_title: "Multiplayer Levels" # achievements_title: "Achievements" # last_played: "Last Played" # status: "Status" -# status_completed: "Completed" -# status_unfinished: "Unfinished" + status_completed: "Complet" + status_unfinished: "Inacabat" # no_singleplayer: "No Singleplayer games played yet." # no_multiplayer: "No Multiplayer games played yet." # no_achievements: "No Achievements earned yet." @@ -1041,11 +1041,11 @@ module.exports = nativeDescription: "Català", englishDescription: "Catalan", tr # current_xp_prefix: "" # current_xp_postfix: " in total" # new_xp_prefix: "" -# new_xp_postfix: " earned" + new_xp_postfix: " guanyat" # left_xp_prefix: "" # left_xp_infix: " until level " # left_xp_postfix: "" # account: -# recently_played: "Recently Played" -# no_recent_games: "No games played during the past two weeks." + recently_played: "Ultimanent jugat" + no_recent_games: "No s'ha jugat en les ultimes setmanes." From 56aecbab8886afe91759fe6d6da8ae3a18435691 Mon Sep 17 00:00:00 2001 From: enricpc Date: Thu, 25 Sep 2014 16:15:28 +0200 Subject: [PATCH 32/34] Update ca.coffee --- app/locale/ca.coffee | 220 +++++++++++++++++++++---------------------- 1 file changed, 110 insertions(+), 110 deletions(-) diff --git a/app/locale/ca.coffee b/app/locale/ca.coffee index cc51f90e1..3689a98c9 100644 --- a/app/locale/ca.coffee +++ b/app/locale/ca.coffee @@ -6,7 +6,7 @@ module.exports = nativeDescription: "Català", englishDescription: "Catalan", tr send: "Enviat" cancel: "Cancel·lant" save: "Guardar" -# publish: "Publish" + publish: "Publica" create: "Crear" delay_1_sec: "1 segon" delay_3_sec: "3 segons" @@ -14,7 +14,7 @@ module.exports = nativeDescription: "Català", englishDescription: "Catalan", tr manual: "Manual" fork: "Fork" play: "Jugar" # When used as an action verb, like "Play next level" -# retry: "Retry" + retry: "Tornar a intentar" # watch: "Watch" # unwatch: "Unwatch" # submit_patch: "Submit Patch" @@ -39,8 +39,8 @@ module.exports = nativeDescription: "Català", englishDescription: "Catalan", tr close: "Tancar" okay: "Okey" -# not_found: -# page_not_found: "Page not found" + not_found: + page_not_found: "Pagina no trobada" nav: play: "Nivells" # The top nav bar entry where players choose which levels to play @@ -50,7 +50,7 @@ module.exports = nativeDescription: "Català", englishDescription: "Catalan", tr forum: "Fòrum" account: "Compte" profile: "Perfil" -# stats: "Stats" + stats: "Estats" # code: "Code" admin: "Admin" home: "Inici" @@ -109,7 +109,7 @@ module.exports = nativeDescription: "Català", englishDescription: "Catalan", tr # coffeescript_blurb: "Nicer JavaScript syntax." # clojure_blurb: "A modern Lisp." # lua_blurb: "Game scripting language." -# io_blurb: "Simple but obscure." + io_blurb: "Sensill però obscur." play: choose_your_level: "Escull el teu nivell" @@ -131,14 +131,14 @@ module.exports = nativeDescription: "Català", englishDescription: "Catalan", tr spectate: "Spectate" players: "jugadors" hours_played: "hores de joc" -# items: "Items" + items: "Objectes" heroes: "Herois" achievements: "Assoliments" account: "Conta" settings: "Configuració" next: "Següent" previous: "Anterior" -# choose_inventory: "Equip Items" + choose_inventory: "Equipar objectes" items: armor: "Armadura" @@ -164,10 +164,10 @@ module.exports = nativeDescription: "Català", englishDescription: "Catalan", tr diplomat_suggestion: title: "Ajuda a traduir CodeCombat!" sub_heading: "Neccesitem les teves habilitats lingüístiques." - pitch_body: "Hem desembolupat CodeCombat en Anglès, peró tenim jugadors per tot el món. Molts d'ells volen jugar en Català, però no parlen anglès, per tant si pots parlar ambdós llengües, siusplau considereu iniciar sesió per a ser Diplomatic i ajudar a traduir la web de CodeCombat i tots els seus nivell en Català." - missing_translations: "Fins que puguem traduir-ho tot en Català, veuràs en anglès quant available." -# learn_more: "Learn more about being a Diplomat" -# subscribe_as_diplomat: "Subscribe as a Diplomat" + pitch_body: "Hem desembolupat CodeCombat en Anglès, peró tenim jugadors per tot el món. Molts d'ells volen jugar en Català, però no parlen anglès, per tant si pots parlar ambdós llengües, siusplau considereu iniciar sesió per a ser Diplomàtic i ajudar a traduir la web de CodeCombat i tots els seus nivell en Català." + missing_translations: "Fins que puguem traduir-ho tot en Català, veuràs en anglès quant sigui possible." + learn_more: "Apren més sobre seru un diplomàtic" + subscribe_as_diplomat: "Subscriute com a diplomàtic" wizard_settings: title: "Configuració del bruixot" @@ -175,12 +175,12 @@ module.exports = nativeDescription: "Català", englishDescription: "Catalan", tr active: "Actiu" color: "Color" group: "Grup" -# clothes: "Clothes" + clothes: "Roba" # trim: "Trim" # cloud: "Cloud" team: "Equip" # spell: "Spell" -# boots: "Boots" + boots: "Botes" # hue: "Hue" # saturation: "Saturation" # lightness: "Lightness" @@ -198,7 +198,7 @@ module.exports = nativeDescription: "Català", englishDescription: "Catalan", tr admin: "Administrador" wizard_color: "Color de la roba" new_password: "Contrasenya nova" -# new_password_verify: "Verify" + new_password_verify: "Verifica" # email_subscriptions: "Email Subscriptions" # email_subscriptions_none: "No Email Subscriptions." # email_announcements: "Announcements" @@ -219,10 +219,10 @@ module.exports = nativeDescription: "Català", englishDescription: "Catalan", tr saved: "Canvis desats" password_mismatch: "Les contrasenyes no coincideixen." password_repeat: "Siusplau, repetiu la contrasenya." -# job_profile: "Job Profile" + job_profile: "Perfil professional" # 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" + sample_profile: "Mira un perfil de mostra" view_profile: "Mira el teu perfil" account_profile: @@ -233,7 +233,7 @@ module.exports = nativeDescription: "Català", englishDescription: "Catalan", tr # profile_for_suffix: "" # featured: "Featured" # not_featured: "Not Featured" -# looking_for: "Looking for:" + looking_for: "Buscant:" # last_updated: "Last updated:" contact: "Contacta" # active: "Looking for interview offers now" @@ -241,9 +241,9 @@ module.exports = nativeDescription: "Català", englishDescription: "Catalan", tr complete: "complet" next: "Seguent" next_city: "ciutat?" -# next_country: "pick your country." + next_country: "escull el teu país." next_name: "nom?" -# next_short_description: "write a short description." + next_short_description: "escriu una breu descripció." # next_long_description: "describe your desired position." # next_skills: "list at least five skills." # next_work: "chronicle your work history." @@ -252,7 +252,7 @@ module.exports = nativeDescription: "Català", englishDescription: "Catalan", tr # 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." @@ -260,20 +260,20 @@ module.exports = nativeDescription: "Català", englishDescription: "Catalan", tr # links_name_help: "What are you linking to?" # links_link_blurb: "Link URL" # basics_header: "Update basic info" -# basics_active: "Open to Offers" + basics_active: "Obert a ofertes" # 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_help: "City you want to work in (or live in now)." -# basics_country: "Country" + basics_city: "Ciutat" + basics_city_help: "En quina ciutat t'agradaria treballar (o viure ara)." + basics_country: "País" # 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.)" # basics_looking_for: "Looking For" -# basics_looking_for_full_time: "Full-time" -# basics_looking_for_part_time: "Part-time" -# basics_looking_for_remote: "Remote" + basics_looking_for_full_time: "Temps complet" + basics_looking_for_part_time: "Temporal" + basics_looking_for_remote: "A distancia" # basics_looking_for_contracting: "Contracting" # basics_looking_for_internship: "Internship" # basics_looking_for_help: "What kind of developer position do you want?" @@ -284,7 +284,7 @@ module.exports = nativeDescription: "Català", englishDescription: "Catalan", tr # short_description_blurb: "Add a tagline to help an employer quickly learn more about you." # short_description: "Tagline" # short_description_help: "Who are you, and what are you looking for? 140 characters max." -# skills_header: "Skills" + skills_header: "Habilitats" # skills_help: "Tag relevant developer skills in order of proficiency." # long_description_header: "Describe your desired position" # long_description_blurb: "Tell employers how awesome you are and what role you want." @@ -362,7 +362,7 @@ module.exports = nativeDescription: "Català", englishDescription: "Catalan", tr # 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: "Nom" # candidate_location: "Location" # candidate_looking_for: "Looking For" # candidate_role: "Role" @@ -376,15 +376,15 @@ module.exports = nativeDescription: "Català", englishDescription: "Catalan", tr # play_level: done: "Fet" -# customize_wizard: "Customize Wizard" + customize_wizard: "Personalitza el teu bruixot" # home: "Home" # skip: "Skip" -# game_menu: "Game Menu" -# guide: "Guide" + game_menu: "Menu de joc" + guide: "Guia" # restart: "Restart" goals: "Objectius" -# goal: "Goal" -# success: "Success!" + goal: "Objectiu" + success: "Exit!" # incomplete: "Incomplete" # timed_out: "Ran out of time" # failing: "Failing" @@ -394,18 +394,18 @@ module.exports = nativeDescription: "Català", englishDescription: "Catalan", tr # reload_really: "Are you sure you want to reload this level back to the beginning?" # reload_confirm: "Reload All" # victory_title_prefix: "" -# victory_title_suffix: " Complete" -# victory_sign_up: "Sign Up to Save Progress" + victory_title_suffix: " Complet" + victory_sign_up: "Inicia sessió per a desar el progressos" # victory_sign_up_poke: "Want to save your code? Create a free account!" -# victory_rate_the_level: "Rate the level: " + victory_rate_the_level: "Valora el nivell: " # victory_return_to_ladder: "Return to Ladder" -# victory_play_next_level: "Play Next Level" -# victory_play_continue: "Continue" + victory_play_next_level: "Jugar el següent nivell" + victory_play_continue: "Continuar" # victory_go_home: "Go Home" # victory_review: "Tell us more!" # victory_hour_of_code_done: "Are You Done?" # victory_hour_of_code_done_yes: "Yes, I'm finished with my Hour of Code™!" -# guide_title: "Guide" + guide_title: "Guia" # tome_minion_spells: "Your Minions' Spells" # tome_read_only_spells: "Read-Only Spells" # tome_other_units: "Other Units" @@ -425,7 +425,7 @@ module.exports = nativeDescription: "Català", englishDescription: "Catalan", tr # skip_tutorial: "Skip (esc)" # keyboard_shortcuts: "Key Shortcuts" # loading_ready: "Ready!" -# loading_start: "Start Level" + loading_start: "Comença el nivell" # tip_insert_positions: "Shift+Click a point on the map to insert it into the spell editor." # tip_toggle_play: "Toggle play/paused with Ctrl+P." # tip_scrub_shortcut: "Ctrl+[ and Ctrl+] rewind and fast-forward." @@ -460,44 +460,44 @@ module.exports = nativeDescription: "Català", englishDescription: "Catalan", tr # time_current: "Now:" # time_total: "Max:" # time_goto: "Go to:" -# infinite_loop_try_again: "Try Again" -# infinite_loop_reset_level: "Reset Level" + infinite_loop_try_again: "Tornar a intentar" + infinite_loop_reset_level: "Reiniciar nivell" # infinite_loop_comment_out: "Comment Out My Code" # game_menu: # inventory_tab: "Inventory" -# choose_hero_tab: "Restart Level" -# save_load_tab: "Save/Load" + choose_hero_tab: "Recomençar nivell" + save_load_tab: "Desa/Carrega" options_tab: "Opcions" guide_tab: "Gui" multiplayer_tab: "Multijugador" -# inventory_caption: "Equip your hero" + inventory_caption: "Equipa el teu heroi" # choose_hero_caption: "Choose hero, language" # save_load_caption: "... and view history" -# options_caption: "Configure settings" + options_caption: "Edita la configuració" # guide_caption: "Docs and tips" -# multiplayer_caption: "Play with friends!" + multiplayer_caption: "Juga amb amics!" -# inventory: -# choose_inventory: "Equip Items" + inventory: + choose_inventory: "Equipar objectes" # choose_hero: -# choose_hero: "Choose Your Hero" -# programming_language: "Programming Language" + choose_hero: "Escull el teu heroi" + programming_language: "Llenguatge de programació" # programming_language_description: "Which programming language do you want to use?" -# status: "Status" -# weapons: "Weapons" -# health: "Health" -# speed: "Speed" + status: "Estat" + weapons: "Armes" + health: "Salut" + speed: "Velocitat" # save_load: -# granularity_saved_games: "Saved" + granularity_saved_games: "Desats" # granularity_change_history: "History" # options: -# general_options: "General Options" -# volume_label: "Volume" -# music_label: "Music" + general_options: "Opcions generals" + volume_label: "Volum" + music_label: "Musica" # music_description: "Turn background music on/off." # autorun_label: "Autorun" # autorun_description: "Control automatic code execution." @@ -524,20 +524,20 @@ module.exports = nativeDescription: "Català", englishDescription: "Catalan", tr # multiplayer: # multiplayer_title: "Multiplayer Settings" -# multiplayer_toggle: "Enable multiplayer" + multiplayer_toggle: "Activar multijugador" # multiplayer_toggle_description: "Allow others to join your game." # multiplayer_link_description: "Give this link to anyone to have them join you." -# multiplayer_hint_label: "Hint:" + multiplayer_hint_label: "Pista:" # multiplayer_hint: " Click the link to select all, then press ⌘-C or Ctrl-C to copy the link." # 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." # keyboard_shortcuts: -# keyboard_shortcuts: "Keyboard Shortcuts" -# space: "Space" -# enter: "Enter" -# escape: "Escape" -# shift: "Shift" + keyboard_shortcuts: "Dreceres del teclat" + space: "Espai" + enter: "Enter" + escape: "Escape" + shift: "Shift" # cast_spell: "Cast current spell." # run_real_time: "Run in real time." # continue_script: "Continue past current script." @@ -551,21 +551,21 @@ module.exports = nativeDescription: "Català", englishDescription: "Catalan", tr # toggle_pathfinding: "Toggle pathfinding overlay." # beautify: "Beautify your code by standardizing its formatting." # maximize_editor: "Maximize/minimize code editor." -# move_wizard: "Move your Wizard around the level." + move_wizard: "Mou el teu bruixot pel nivell." # admin: # av_espionage: "Espionage" # av_espionage_placeholder: "Email or username" # av_usersearch: "User Search" # av_usersearch_placeholder: "Email, username, name, whatever" -# av_usersearch_search: "Search" + av_usersearch_search: "Buscar" # av_title: "Admin Views" # av_entities_sub_title: "Entities" -# av_entities_users_url: "Users" + av_entities_users_url: "Usuaris" # av_entities_active_instances_url: "Active Instances" # av_entities_employer_list_url: "Employer List" # av_entities_candidates_list_url: "Candidate List" -# av_other_sub_title: "Other" + av_other_sub_title: "Altres" # av_other_debug_base_url: "Base (for debugging base.jade)" # u_title: "User List" # lg_title: "Latest Games" @@ -584,7 +584,7 @@ module.exports = nativeDescription: "Català", englishDescription: "Catalan", tr # 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_twitter: "Segueix CodeCombat al 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" @@ -593,7 +593,7 @@ module.exports = nativeDescription: "Català", englishDescription: "Catalan", tr # main_title: "CodeCombat Editors" # article_title: "Article Editor" # thang_title: "Thang Editor" -# level_title: "Level Editor" + level_title: "Editor de nivells" # achievement_title: "Achievement Editor" # back: "Back" # revert: "Revert" @@ -604,13 +604,13 @@ module.exports = nativeDescription: "Català", englishDescription: "Catalan", tr # fork_title: "Fork New Version" # fork_creating: "Creating Fork..." # generate_terrain: "Generate Terrain" -# more: "More" -# wiki: "Wiki" + more: "Més" + wiki: "Wiki" # live_chat: "Live Chat" # level_some_options: "Some Options?" # level_tab_thangs: "Thangs" # level_tab_scripts: "Scripts" -# level_tab_settings: "Settings" + level_tab_settings: "Configuració" # level_tab_components: "Components" # level_tab_systems: "Systems" # level_tab_docs: "Documentation" @@ -618,8 +618,8 @@ module.exports = nativeDescription: "Català", englishDescription: "Catalan", tr # level_tab_thangs_all: "All" # level_tab_thangs_conditions: "Starting Conditions" # level_tab_thangs_add: "Add Thangs" -# delete: "Delete" -# duplicate: "Duplicate" + delete: "Esborrar" + duplicate: "Duplicar" # level_settings_title: "Settings" # level_component_tab_title: "Current Components" # level_component_btn_new: "Create New Component" @@ -659,34 +659,34 @@ module.exports = nativeDescription: "Català", englishDescription: "Catalan", tr # general: # and: "and" -# name: "Name" + name: "Nom" # date: "Date" # body: "Body" -# version: "Version" + version: "Versió" # commit_msg: "Commit Message" # version_history: "Version History" # version_history_for: "Version History for: " -# result: "Result" -# results: "Results" + result: "Resultat" + results: "Resultats" # description: "Description" # or: "or" # subject: "Subject" # email: "Email" -# password: "Password" + password: "Contrasenya" # message: "Message" # code: "Code" # ladder: "Ladder" # when: "When" # opponent: "Opponent" # rank: "Rank" -# score: "Score" + score: "Puntuació" # win: "Win" # loss: "Loss" # tie: "Tie" -# easy: "Easy" -# medium: "Medium" -# hard: "Hard" -# player: "Player" + easy: "Fàcil" + medium: "Intermedi" + hard: "Difícil" + player: "Jugador" # about: # why_codecombat: "Why CodeCombat?" @@ -701,16 +701,16 @@ module.exports = nativeDescription: "Català", englishDescription: "Catalan", tr # 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" + team: "Equip" # george_title: "CEO" # george_blurb: "Businesser" -# scott_title: "Programmer" + scott_title: "Programador" # scott_blurb: "Reasonable One" -# nick_title: "Programmer" + nick_title: "Programador" # nick_blurb: "Motivation Guru" -# michael_title: "Programmer" + michael_title: "Programador" # michael_blurb: "Sys Admin" -# matt_title: "Programmer" + matt_title: "Programador" # matt_blurb: "Bicyclist" # legal: @@ -862,14 +862,14 @@ module.exports = nativeDescription: "Català", englishDescription: "Catalan", tr # classes: # archmage_title: "Archmage" # archmage_title_description: "(Coder)" -# artisan_title: "Artisan" -# artisan_title_description: "(Level Builder)" + artisan_title: "Artesà" + artisan_title_description: "(Creador de nivells)" adventurer_title: "Aventurer" -# adventurer_title_description: "(Level Playtester)" + adventurer_title_description: "(Provador de nivells)" scribe_title: "Escriba" # scribe_title_description: "(Article Editor)" -# diplomat_title: "Diplomat" -# diplomat_title_description: "(Translator)" + diplomat_title: "Diplomàtic" + diplomat_title_description: "(Traductor)" # ambassador_title: "Ambassador" # ambassador_title_description: "(Support)" @@ -890,7 +890,7 @@ module.exports = nativeDescription: "Català", englishDescription: "Catalan", tr # summary_your: "Your " # summary_matches: "Matches - " summary_wins: " Victories, " -# summary_losses: " Losses" + summary_losses: " Derrotes" # rank_no_code: "No New Code to Rank" # rank_my_game: "Rank My Game!" # rank_submitting: "Submitting..." @@ -903,7 +903,7 @@ module.exports = nativeDescription: "Català", englishDescription: "Catalan", tr # 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: "Escull adversari" -# select_your_language: "Select your language!" + select_your_language: "Escull el teu idioma!" tutorial_play: "Juga el tutorial" # tutorial_recommended: "Recommended if you've never played before" # tutorial_skip: "Skip Tutorial" @@ -957,8 +957,8 @@ module.exports = nativeDescription: "Català", englishDescription: "Catalan", tr # timeout: "Server timeout." # conflict: "Resource conflict." # bad_input: "Bad input." -# server_error: "Server error." -# unknown: "Unknown error." + server_error: "Error del servidor." + unknown: "Error desconegut." # resources: # sessions: "Sessions" @@ -998,7 +998,7 @@ module.exports = nativeDescription: "Català", englishDescription: "Catalan", tr # user_remark: "User Remark" # user_remarks: "User Remarks" versions: "Versions" -# items: "Items" + items: "Objectes" heroes: "Herois" wizard: "Bruixot" # achievement: "Achievement" @@ -1018,13 +1018,13 @@ module.exports = nativeDescription: "Català", englishDescription: "Catalan", tr # user: # stats: "Stats" singleplayer_title: "Nivell d'un sol jugador" -# multiplayer_title: "Multiplayer Levels" + multiplayer_title: "Nivells multijugador" # achievements_title: "Achievements" -# last_played: "Last Played" -# status: "Status" + last_played: "Ultim jugat" + status: "Estat" status_completed: "Complet" status_unfinished: "Inacabat" -# no_singleplayer: "No Singleplayer games played yet." + no_singleplayer: "Encara no s'han jugat nivells individuals." # no_multiplayer: "No Multiplayer games played yet." # no_achievements: "No Achievements earned yet." # favorite_prefix: "Favorite language is " @@ -1036,10 +1036,10 @@ module.exports = nativeDescription: "Català", englishDescription: "Catalan", tr # achievement: "Achievement" # category_contributor: "Contributor" # category_miscellaneous: "Miscellaneous" -# category_levels: "Levels" + category_levels: "Nivells" # category_undefined: "Uncategorized" # current_xp_prefix: "" -# current_xp_postfix: " in total" + current_xp_postfix: " en total" # new_xp_prefix: "" new_xp_postfix: " guanyat" # left_xp_prefix: "" From 38b84af208a8057bf93f958703aefe93dd4886f7 Mon Sep 17 00:00:00 2001 From: enricpc Date: Thu, 25 Sep 2014 16:16:32 +0200 Subject: [PATCH 33/34] Update ca.coffee --- app/locale/ca.coffee | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/locale/ca.coffee b/app/locale/ca.coffee index 3689a98c9..83e4ed69b 100644 --- a/app/locale/ca.coffee +++ b/app/locale/ca.coffee @@ -109,7 +109,7 @@ module.exports = nativeDescription: "Català", englishDescription: "Catalan", tr # coffeescript_blurb: "Nicer JavaScript syntax." # clojure_blurb: "A modern Lisp." # lua_blurb: "Game scripting language." - io_blurb: "Sensill però obscur." + io_blurb: "Senzill però obscur." play: choose_your_level: "Escull el teu nivell" From 8bf619359c1685b2b353137440b2958c3bd64b3d Mon Sep 17 00:00:00 2001 From: Nick Winter Date: Thu, 25 Sep 2014 08:43:23 -0700 Subject: [PATCH 34/34] Uncommented some section headers from #1598. --- app/locale/ca.coffee | 42 +++++++++++++++++++++--------------------- 1 file changed, 21 insertions(+), 21 deletions(-) diff --git a/app/locale/ca.coffee b/app/locale/ca.coffee index 83e4ed69b..c9909ea43 100644 --- a/app/locale/ca.coffee +++ b/app/locale/ca.coffee @@ -330,7 +330,7 @@ module.exports = nativeDescription: "Català", englishDescription: "Catalan", tr # project_link_help: "Link to the project." # player_code: "Player Code" -# employers: + employers: # hire_developers_not_credentials: "Hire developers, not credentials." # get_started: "Get Started" # already_screened: "We've already technically screened all our candidates" @@ -374,7 +374,7 @@ module.exports = nativeDescription: "Català", englishDescription: "Catalan", tr # other_developers: "Other Developers" # inactive_developers: "Inactive Developers" -# play_level: + play_level: done: "Fet" customize_wizard: "Personalitza el teu bruixot" # home: "Home" @@ -464,7 +464,7 @@ module.exports = nativeDescription: "Català", englishDescription: "Catalan", tr infinite_loop_reset_level: "Reiniciar nivell" # infinite_loop_comment_out: "Comment Out My Code" -# game_menu: + game_menu: # inventory_tab: "Inventory" choose_hero_tab: "Recomençar nivell" save_load_tab: "Desa/Carrega" @@ -481,7 +481,7 @@ module.exports = nativeDescription: "Català", englishDescription: "Catalan", tr inventory: choose_inventory: "Equipar objectes" -# choose_hero: + choose_hero: choose_hero: "Escull el teu heroi" programming_language: "Llenguatge de programació" # programming_language_description: "Which programming language do you want to use?" @@ -490,11 +490,11 @@ module.exports = nativeDescription: "Català", englishDescription: "Catalan", tr health: "Salut" speed: "Velocitat" -# save_load: + save_load: granularity_saved_games: "Desats" # granularity_change_history: "History" -# options: + options: general_options: "Opcions generals" volume_label: "Volum" music_label: "Musica" @@ -522,7 +522,7 @@ module.exports = nativeDescription: "Català", englishDescription: "Catalan", tr # guide: # temp: "Temp" -# multiplayer: + multiplayer: # multiplayer_title: "Multiplayer Settings" multiplayer_toggle: "Activar multijugador" # multiplayer_toggle_description: "Allow others to join your game." @@ -532,7 +532,7 @@ module.exports = nativeDescription: "Català", englishDescription: "Catalan", tr # 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." -# keyboard_shortcuts: + keyboard_shortcuts: keyboard_shortcuts: "Dreceres del teclat" space: "Espai" enter: "Enter" @@ -553,7 +553,7 @@ module.exports = nativeDescription: "Català", englishDescription: "Catalan", tr # maximize_editor: "Maximize/minimize code editor." move_wizard: "Mou el teu bruixot pel nivell." -# admin: + admin: # av_espionage: "Espionage" # av_espionage_placeholder: "Email or username" # av_usersearch: "User Search" @@ -571,7 +571,7 @@ module.exports = nativeDescription: "Català", englishDescription: "Catalan", tr # lg_title: "Latest Games" # clas: "CLAs" -# community: + 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" @@ -589,7 +589,7 @@ module.exports = nativeDescription: "Català", englishDescription: "Catalan", tr # social_hipchat: "Chat with us in the public CodeCombat HipChat room" # contribute_to_the_project: "Contribute to the project" -# editor: + editor: # main_title: "CodeCombat Editors" # article_title: "Article Editor" # thang_title: "Thang Editor" @@ -657,7 +657,7 @@ module.exports = nativeDescription: "Català", englishDescription: "Catalan", tr # edit_btn_preview: "Preview" # edit_article_title: "Edit Article" -# general: + general: # and: "and" name: "Nom" # date: "Date" @@ -688,7 +688,7 @@ module.exports = nativeDescription: "Català", englishDescription: "Catalan", tr hard: "Difícil" player: "Jugador" -# about: + about: # why_codecombat: "Why CodeCombat?" # why_paragraph_1: "If you want to learn to program, you don't need lessons. You need to write a lot of code and have a great time doing it." # why_paragraph_2_prefix: "That's what programming is about. It's gotta be fun. Not fun like" @@ -859,7 +859,7 @@ module.exports = nativeDescription: "Català", englishDescription: "Catalan", tr # translating_diplomats: "Our Translating Diplomats:" # helpful_ambassadors: "Our Helpful Ambassadors:" -# classes: + classes: # archmage_title: "Archmage" # archmage_title_description: "(Coder)" artisan_title: "Artesà" @@ -873,7 +873,7 @@ module.exports = nativeDescription: "Català", englishDescription: "Catalan", tr # ambassador_title: "Ambassador" # ambassador_title_description: "(Support)" -# ladder: + ladder: # please_login: "Please log in first before playing a ladder game." # my_matches: "My Matches" simulate: "Simula" @@ -947,7 +947,7 @@ module.exports = nativeDescription: "Català", englishDescription: "Catalan", tr # license: "license" # oreilly: "ebook of your choice" -# loading_error: + loading_error: # could_not_load: "Error loading from server" connection_failure: "Connexió fallida." # unauthorized: "You need to be signed in. Do you have cookies disabled?" @@ -960,7 +960,7 @@ module.exports = nativeDescription: "Català", englishDescription: "Catalan", tr server_error: "Error del servidor." unknown: "Error desconegut." -# resources: + resources: # sessions: "Sessions" # your_sessions: "Your Sessions" level: "Nivell" @@ -1006,7 +1006,7 @@ module.exports = nativeDescription: "Català", englishDescription: "Catalan", tr # play_counts: "Play Counts" # feedback: "Feedback" -# delta: + delta: added: "Afegit" modified: "Modificat" deleted: "Eliminat" @@ -1015,7 +1015,7 @@ module.exports = nativeDescription: "Català", englishDescription: "Catalan", tr # merge_conflict_with: "MERGE CONFLICT WITH" # no_changes: "No Changes" -# user: + user: # stats: "Stats" singleplayer_title: "Nivell d'un sol jugador" multiplayer_title: "Nivells multijugador" @@ -1030,7 +1030,7 @@ module.exports = nativeDescription: "Català", englishDescription: "Catalan", tr # favorite_prefix: "Favorite language is " # favorite_postfix: "." -# achievements: + achievements: # last_earned: "Last Earned" # amount_achieved: "Amount" # achievement: "Achievement" @@ -1046,6 +1046,6 @@ module.exports = nativeDescription: "Català", englishDescription: "Catalan", tr # left_xp_infix: " until level " # left_xp_postfix: "" -# account: + account: recently_played: "Ultimanent jugat" no_recent_games: "No s'ha jugat en les ultimes setmanes."