mumuki-laboratory 9.0.1 → 9.0.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (69) hide show
  1. checksums.yaml +4 -4
  2. data/app/assets/javascripts/mumuki_laboratory/application/certificate.js +17 -0
  3. data/app/assets/javascripts/mumuki_laboratory/application/codemirror.js +10 -2
  4. data/app/assets/javascripts/mumuki_laboratory/application/discussions.js +43 -2
  5. data/app/assets/javascripts/mumuki_laboratory/application/faqs.js +90 -0
  6. data/app/assets/javascripts/mumuki_laboratory/application/multiple-files.js +7 -0
  7. data/app/assets/javascripts/mumuki_laboratory/application/organization.js +32 -0
  8. data/app/assets/javascripts/mumuki_laboratory/application/submissions-store.js +1 -1
  9. data/app/assets/javascripts/mumuki_laboratory/application/user.js +49 -5
  10. data/app/assets/stylesheets/mumuki_laboratory/application/_modules.scss +3 -0
  11. data/app/assets/stylesheets/mumuki_laboratory/application/modules/_activity.scss +12 -0
  12. data/app/assets/stylesheets/mumuki_laboratory/application/modules/_certificate.scss +33 -0
  13. data/app/assets/stylesheets/mumuki_laboratory/application/modules/_discussion.scss +14 -2
  14. data/app/assets/stylesheets/mumuki_laboratory/application/modules/_faqs.scss +84 -0
  15. data/app/assets/stylesheets/mumuki_laboratory/application/modules/_terms.scss +3 -2
  16. data/app/assets/stylesheets/mumuki_laboratory/application/modules/_user_menu.scss +30 -2
  17. data/app/assets/stylesheets/mumuki_laboratory/application/modules/_user_profile.scss +1 -0
  18. data/app/controllers/certificates_controller.rb +28 -0
  19. data/app/controllers/concerns/with_certificate_render.rb +25 -0
  20. data/app/controllers/discussions_messages_controller.rb +6 -2
  21. data/app/controllers/faqs_controller.rb +6 -0
  22. data/app/controllers/users_controller.rb +17 -0
  23. data/app/helpers/certificate_helper.rb +13 -0
  24. data/app/helpers/discussions_helper.rb +5 -1
  25. data/app/helpers/links_helper.rb +8 -0
  26. data/app/helpers/menu_bar_helper.rb +14 -10
  27. data/app/helpers/multiple_file_editor_helper.rb +2 -1
  28. data/app/helpers/user_activity_helper.rb +48 -0
  29. data/app/helpers/user_menu_helper.rb +27 -5
  30. data/app/mailers/application_mailer.rb +0 -1
  31. data/app/mailers/user_mailer.rb +9 -0
  32. data/app/views/certificates/_certificate.html.erb +44 -0
  33. data/app/views/certificates/_download.html.erb +20 -0
  34. data/app/views/certificates/verify.html.erb +40 -0
  35. data/app/views/discussions/_description_message.html.erb +1 -1
  36. data/app/views/discussions/_message.html.erb +1 -1
  37. data/app/views/discussions/_new_message.html.erb +13 -2
  38. data/app/views/discussions/new.html.erb +1 -1
  39. data/app/views/faqs/index.html.erb +20 -0
  40. data/app/views/layouts/_main.html.erb +4 -0
  41. data/app/views/layouts/_user_menu.html.erb +13 -16
  42. data/app/views/layouts/application.html.erb +6 -1
  43. data/app/views/layouts/exercise_inputs/editors/_code.html.erb +2 -1
  44. data/app/views/layouts/exercise_inputs/editors/_multiple_files.html.erb +1 -1
  45. data/app/views/user_mailer/certificate.html.erb +339 -0
  46. data/app/views/user_mailer/certificate.text.erb +10 -0
  47. data/app/views/users/_activity_indicator.html.erb +17 -0
  48. data/app/views/users/activity.html.erb +37 -0
  49. data/app/views/users/certificates.html.erb +32 -0
  50. data/config/initializers/inflections.rb +3 -0
  51. data/config/routes.rb +9 -0
  52. data/lib/mumuki/laboratory/extensions.rb +1 -0
  53. data/lib/mumuki/laboratory/extensions/date_and_time.rb +11 -0
  54. data/lib/mumuki/laboratory/locales/en.yml +20 -1
  55. data/lib/mumuki/laboratory/locales/es-CL.yml +25 -3
  56. data/lib/mumuki/laboratory/locales/es.yml +25 -3
  57. data/lib/mumuki/laboratory/locales/pt.yml +26 -1
  58. data/lib/mumuki/laboratory/version.rb +1 -1
  59. data/spec/controllers/certificates_controller_spec.rb +15 -0
  60. data/spec/controllers/discussions_messages_controller_spec.rb +20 -1
  61. data/spec/dummy/db/schema.rb +20 -3
  62. data/spec/features/certificate_programs_flow_spec.rb +17 -0
  63. data/spec/features/discussion_flow_spec.rb +2 -0
  64. data/spec/features/menu_bar_spec.rb +20 -0
  65. data/spec/features/profile_flow_spec.rb +12 -0
  66. data/spec/features/user_activity_flow_spec.rb +65 -0
  67. data/spec/helpers/certificate_helper_spec.rb +15 -0
  68. data/spec/helpers/user_activity_helper_spec.rb +32 -0
  69. metadata +170 -97
@@ -0,0 +1,10 @@
1
+ <%= t :new_certificate_mailer_title %>
2
+
3
+ <%= t :new_certificate_mailer_p1 %>
4
+ <%= t :new_certificate_mailer_p2 %>
5
+
6
+
7
+ © Copyright 2015-<%= DateTime.now.year %> Mumuki.
8
+
9
+ <%= t :stop_emails? %>
10
+ <%= t :cancel_subscription %>
@@ -0,0 +1,17 @@
1
+ <div class="row">
2
+ <div class="col-md-12">
3
+ <h3><%= title %></h3>
4
+ </div>
5
+ </div>
6
+ <div class="row">
7
+ <% stats.each do |s| %>
8
+ <div class="col-md-6">
9
+ <div class="jumbotron mu-user-activity-indicator">
10
+ <h1>
11
+ <%= s[:value] %>
12
+ <p><%= s[:name].downcase %></p>
13
+ </h1>
14
+ </div>
15
+ </div>
16
+ <% end %>
17
+ </div>
@@ -0,0 +1,37 @@
1
+ <%= content_for :breadcrumbs do %>
2
+ <%= breadcrumbs_for_my_account %>
3
+ <% end %>
4
+
5
+ <%= render partial: 'layouts/user_menu' %>
6
+
7
+ <div class="col-md-9 mu-tab-body">
8
+ <div class="mu-user-header">
9
+ <h1><%= t(:activity) %></h1>
10
+ </div>
11
+ <div class="col-md-8">
12
+ <%= render partial: 'activity_indicator',
13
+ locals: {
14
+ title: t(:exercises),
15
+ stats: exercises_activity_stats
16
+ } %>
17
+
18
+ <%= render partial: 'activity_indicator',
19
+ locals: {
20
+ title: t(:forum),
21
+ stats: messages_activity_stats
22
+ } %>
23
+ </div>
24
+
25
+ <div class="col-md-4">
26
+ <ul class="nav nav-pills nav-stacked mu-user-activity-selector">
27
+ <li <%= mark_period_if_active nil %>>
28
+ <%= link_to t(:total), activity_user_path %>
29
+ </li>
30
+ <% activity_selector_week_range_for.each do |(week_start, week_end)| %>
31
+ <li <%= mark_period_if_active week_start %>>
32
+ <%= link_to t(:week_of, date: l(week_start)), activity_user_path(date_from: week_start, date_to: week_end) %>
33
+ </li>
34
+ <% end %>
35
+ </ul>
36
+ </div>
37
+ </div>
@@ -0,0 +1,32 @@
1
+ <%= content_for :breadcrumbs do %>
2
+ <%= breadcrumbs_for_my_account %>
3
+ <% end %>
4
+
5
+ <%= render partial: 'layouts/user_menu' %>
6
+
7
+ <div class="col-md-9 mu-tab-body">
8
+ <div class="mu-user-header">
9
+ <h1><%= t(:certificates) %></h1>
10
+ </div>
11
+ <% if @certificates.empty? %>
12
+ <div class="mu-tab-body">
13
+ <%= t :certificates_will_be_here %>
14
+ </div>
15
+ <% else %>
16
+ <div class="col-md-12">
17
+ <div class="mu-list-group">
18
+ <% @certificates.each do |certificate| %>
19
+ <span class="mu-list-group-item">
20
+ <a href="<%= download_certificate_path certificate.code %>" target="_blank"><i class="fas fa-fw fa-download"></i></a>
21
+ <span class="mu-divider-vertical"></span>
22
+ <a href="<%= linkedin_post_url certificate %>" target="_blank"><i class="fab fa-fw fa-linkedin"></i></a>
23
+ <span class="mu-divider-vertical"></span>
24
+ <a href="<%= verify_certificate_path certificate.code %>" target="_blank">
25
+ <span class="mu-text-capitalize"><%= certificate.title %> - <%= certificate.description %></span>
26
+ </a>
27
+ </span>
28
+ <% end %>
29
+ </div>
30
+ </div>
31
+ <% end %>
32
+ </div>
@@ -0,0 +1,3 @@
1
+ ActiveSupport::Inflector.inflections(:en) do |inflect|
2
+ inflect.acronym 'FAQs'
3
+ end
data/config/routes.rb CHANGED
@@ -21,6 +21,7 @@ Rails.application.routes.draw do
21
21
  post :question, on: :member
22
22
  end
23
23
  end
24
+ get '/discussions/messages/preview', to: 'discussions_messages#preview', as: :preview_discussion_message
24
25
 
25
26
  resources :exam_registrations, only: [:show]
26
27
  resources :exam_authorization_requests, only: [:show, :create, :update]
@@ -65,11 +66,19 @@ Rails.application.routes.draw do
65
66
 
66
67
  get :messages
67
68
  get :discussions
69
+ get :activity
70
+ get :certificates
71
+
68
72
  end
69
73
 
74
+ resources :faqs, only: [:index]
75
+
70
76
  resources :messages, only: [:index, :create]
71
77
  get '/messages/errors' => 'messages#errors'
72
78
 
79
+ get 'certificates/verify/:code', to: 'certificates#verify', as: :verify_certificate
80
+ get 'certificates/download/:code', to: 'certificates#download', as: :download_certificate
81
+
73
82
  # Routes by slug
74
83
  get '/guides/:organization/:repository' => 'guides#show_transparently', as: :transparent_guide
75
84
  get '/topics/:organization/:repository' => 'topics#show_transparently', as: :transparent_topic
@@ -1 +1,2 @@
1
+ require_relative './extensions/date_and_time'
1
2
  require_relative './extensions/request'
@@ -0,0 +1,11 @@
1
+ module DateAndTime
2
+ module Calculations
3
+ # Polyfill, already implemented on Rails 5.2
4
+ # https://api.rubyonrails.org/classes/DateAndTime/Calculations.html#method-i-prev_occurring
5
+ def prev_occurring(day_of_week)
6
+ ago = wday - DAYS_INTO_WEEK.fetch(day_of_week)
7
+ ago += 7 unless ago > 0
8
+ advance(days: -ago)
9
+ end
10
+ end
11
+ end
@@ -14,6 +14,8 @@ en:
14
14
  appendix: Appendix
15
15
  appendix_teaser: Do you want to learn more? <a href="%{link}">Check this chapter's appendix</a>"
16
16
  approved_message: Validated by mentor
17
+ approved_messages:
18
+ other: validated
17
19
  are_you_sure: Are you sure you want to %{action}?
18
20
  ask_a_question: Ask a question!
19
21
  ask_community: Ask community for help
@@ -33,6 +35,10 @@ en:
33
35
  blocked_forum_explanation: Are you in the middle of an exam right now?
34
36
  cancel: Cancel
35
37
  cancel_subscription: Cancel your subscription.
38
+ certificate: Certificate
39
+ certificates: Certificates
40
+ certificates_will_be_here: Your certificates in the organization will appear here.
41
+ certificate_verified_legend: "<strong>%{full_name}</strong>'s account is verified. Mumuki certifies their successful completion of <strong>%{description}</strong>."
36
42
  chapter: Chapter
37
43
  chapters: Chapters
38
44
  chapter_finished_html: You have finished %{chapter}!
@@ -45,6 +51,7 @@ en:
45
51
  created_at_asc: Oldest
46
52
  created_at_desc: Newest
47
53
  comment: Comment
54
+ completed_by: Completed by
48
55
  confirm: Confirm
49
56
  confirm_reset: You are about to restart your exercise. Do you want to proceed?
50
57
  confirm_restart: You are about to delete your progress for this guide. Do you want to proceed?
@@ -72,6 +79,7 @@ en:
72
79
  dont_leave_us: Don't leave us! Learning is fun. You just have to keep at it.
73
80
  download: Download your solution
74
81
  edit: Edit
82
+ edit_message: Edit message
75
83
  edit_profile: Edit profile
76
84
  editor_placeholder: "write your solution here..."
77
85
  email: Email
@@ -110,6 +118,7 @@ en:
110
118
  expected_state: Expected board
111
119
  explain_redirect: You have registered in another organization
112
120
  failed: Oops, something went wrong
121
+ faqs: FAQs
113
122
  feedback: Feedback
114
123
  female: Female
115
124
  file_exceeds_max_size: "File size should not exceed %{size_kb}kb. Please select another file."
@@ -155,6 +164,7 @@ en:
155
164
  let_us_know: please let us know!
156
165
  level: Level
157
166
  level_up: Level up!
167
+ linkedin_profile_button_locale: en_US
158
168
  listen_statement: Listen to the statement
159
169
  loading: Loading
160
170
  load_solution_into_console: Load your solution into the console
@@ -169,6 +179,9 @@ en:
169
179
  messages: Messages
170
180
  messages_error: Previous messages are unavailable. Please try again later.
171
181
  moderation: Mentoring
182
+ messages_pluralized:
183
+ one: Message
184
+ other: Messages
172
185
  moderator: Mentor
173
186
  more_messages: More
174
187
  my_account: My account
@@ -217,6 +230,8 @@ en:
217
230
  permissions: Permissions
218
231
  please_fill_profile_data: Please complete your profile data to continue!
219
232
  please_validate: 'Please validate your data before continue:'
233
+ preview: Preview
234
+ preview_error: The preview cannot be shown. Check your internet connection or try with a shorter message.
220
235
  previous_exercise: Previous
221
236
  problem_with_exercise: '[Mumuki] Problem with exercise: %{title}'
222
237
  processing_your_solution: We are processing you solution
@@ -249,11 +264,13 @@ en:
249
264
  skipped_solve_anyway: Solve anyway
250
265
  solution: Solution
251
266
  solved: Solved
252
- solved_count: '%{count} solved'
253
267
  solve_doubts: Solve other's doubts
254
268
  solve_more_exercises_to_level_up: Solve <span>number</span> more exercises to advance to the next level.
255
269
  solve_your_doubts: Solve your doubts
256
270
  solve_your_doubts_teaser: Do you have any doubts?
271
+ solved_count: '%{count} solved'
272
+ solved_exercises_count: solved
273
+ solved_exercises_percentage: done
257
274
  something_went_wrong: Something went wrong!
258
275
  sort: Sort
259
276
  sources: Sources
@@ -286,6 +303,7 @@ en:
286
303
  to_pending_review: Mark as solved
287
304
  to_solved: Mark as solved
288
305
  unauthorized_explanation: You have no permissions for this content. Maybe you logged in with another account.
306
+ total: Total
289
307
  undo_upvote: Undo upvote
290
308
  unlocked_medal_as_avatar: You earned this medal! You can now choose it as an avatar.
291
309
  unspecified: I'd rather not say
@@ -303,6 +321,7 @@ en:
303
321
  view_details: View details
304
322
  want_permissions: The next user requires permissions
305
323
  we_miss_you: We miss you!
324
+ week_of: Week of %{date}
306
325
  welcome: Welcome to %{name}!
307
326
  working: "Working"
308
327
  wrong_answer: The answer is wrong
@@ -13,6 +13,9 @@ es-CL:
13
13
  appendix_teaser: ¿Quieres saber más? <a href="%{link}">Consulta el apéndice de este capítulo</a>
14
14
  are_you_sure: '¿Estás seguro que quieres %{action}?'
15
15
  ask_a_question: ¡Haz una pregunta!
16
+ approved_messages:
17
+ one: validado
18
+ other: validados
16
19
  ask_community: Pregunta a la comunidad
17
20
  ask_redirect: ¿Quieres que te llevemos ahí?
18
21
  ask_the_first_question: ¡Haz la primera pregunta!
@@ -29,6 +32,10 @@ es-CL:
29
32
  birthdate: Fecha de nacimiento
30
33
  blocked_forum_explanation: ¿Puede que estés en medio de un examen?
31
34
  cancel_subscription: Cancela tu subscripción.
35
+ certificate: Certificado
36
+ certificates: Certificados
37
+ certificates_will_be_here: Tus certificados en esta organización aparecerán aquí
38
+ certificate_verified_legend: "La cuenta de <strong>%{full_name}</strong> ha sido verificada. Mumuki certifica que completó el curso de <strong>%{description}.</strong>"
32
39
  chapter: Capítulo
33
40
  chapters: Capítulos
34
41
  chapter_finished_html: ¡Terminaste %{chapter}! ¡Felicitaciones!
@@ -42,6 +49,7 @@ es-CL:
42
49
  created_at_asc: Antiguas
43
50
  created_at_desc: Nuevas
44
51
  comment: Comentar
52
+ completed_by: Completado por
45
53
  confirm: Confirmar
46
54
  confirm_reset: Estás por reiniciar tu ejercicio. ¿Quieres continuar?
47
55
  confirm_restart: Estás por borrar tu progreso en esta guía. ¿Quieres continuar?
@@ -72,6 +80,7 @@ es-CL:
72
80
  dont_leave_us: ¡No nos abandones! Aprender a programar es divertido. Sólo tienes que seguir practicando.
73
81
  download: "Descarga lo que hiciste"
74
82
  edit: Editar
83
+ edit_message: Editar mensaje
75
84
  editor_placeholder: "...escribe tu solución acá..."
76
85
  email: Email
77
86
  error_description: Esto es lo que se conoce como <span class="error-link">%{error}</span>.
@@ -108,6 +117,7 @@ es-CL:
108
117
  expected_state: Tablero esperado
109
118
  explain_redirect: Notamos que te registraste en otra organización.
110
119
  failed: Tu solución no pasó las pruebas
120
+ faqs: Preguntas Frecuentes
111
121
  feedback: Problemas que encontramos
112
122
  female: Mujer
113
123
  file_exceeds_max_size: "El tamaño de archivo no debe exceder %{size_kb}kb. Por favor selecciona otro archivo."
@@ -154,6 +164,7 @@ es-CL:
154
164
  let_us_know: ¡Por favor avísanos!
155
165
  level: Nivel
156
166
  level_up: ¡Subiste de nivel!
167
+ linkedin_profile_button_locale: es_ES
157
168
  listen_statement: Escucha la consigna
158
169
  loading: Cargando
159
170
  load_solution_into_console: Cargar la solución en la consola
@@ -167,6 +178,9 @@ es-CL:
167
178
  message: Mensaje
168
179
  messages: Mensajes
169
180
  messages_error: Los mensajes anteriores no están disponibles en este momento. ¡Vuelve a intentar más tarde!
181
+ messages_pluralized:
182
+ one: Mensaje
183
+ other: Mensajes
170
184
  minute: minuto
171
185
  minutes: minutos
172
186
  moderation: Mentoría
@@ -223,6 +237,8 @@ es-CL:
223
237
  permissions: Permisos
224
238
  please_fill_profile_data: ¡Completa tus datos personales para continuar!
225
239
  please_validate: 'Estás a punto de ingresar al curso. Para poder ofrecerte una mejor experiencia, por favor valida que tus datos a continuación sean reales y correctos.'
240
+ preview: Vista previa
241
+ preview_error: No se puede mostrar la vista previa. Revisa tu conexión a internet o prueba con un mensaje más corto.
226
242
  previous_exercise: Anterior
227
243
  problem_with_exercise: '[Mumuki] Error con el ejercicio: %{title}'
228
244
  processing_your_solution: Estamos procesando tu solución
@@ -253,15 +269,19 @@ es-CL:
253
269
  skipped_solve_anyway: Resolver de todos modos
254
270
  solution: Solución
255
271
  solved: Resuelta
256
- solved_count:
257
- one: 1 resuelta
258
- other: '%{count} resueltas'
259
272
  solved_exercises: Ejercicios Resueltos
260
273
  solve_doubts: Resuelve consultas
261
274
  solve_more_exercises_to_level_up: Resuelve <span>number</span> ejercicios más para pasar al siguiente nivel.
262
275
  solve_your_doubts: Consulta tus dudas
263
276
  solve_your_doubts_teaser: ¿Tienes alguna consulta?
264
277
  something_went_wrong: ¡Ups!, algo no anduvo bien...
278
+ solved_count:
279
+ one: 1 resuelta
280
+ other: '%{count} resueltas'
281
+ solved_exercises_count:
282
+ one: resuelto
283
+ other: resueltos
284
+ solved_exercises_percentage: realizado
265
285
  sort: Ordenar
266
286
  sources: Bibliografía
267
287
  start_lesson: ¡Comienza esta lección!
@@ -293,6 +313,7 @@ es-CL:
293
313
  to_pending_review: Resolver
294
314
  to_solved: Resolver
295
315
  unauthorized_explanation: ¡Ups! Esto es lo que se conoce como %{error}, es decir que no iniciaste sesión.
316
+ total: Total
296
317
  uncategorized: No categorizado
297
318
  undo_upvote: No es útil
298
319
  unlocked_medal_as_avatar: ¡Obtuviste esta medalla! Ya puedes elegirla como avatar.
@@ -311,6 +332,7 @@ es-CL:
311
332
  view_details: Ver detalles
312
333
  want_permissions: El siguiente usuario requiere permisos
313
334
  we_miss_you: ¡Te extrañamos!
335
+ week_of: Semana del %{date}
314
336
  will_paginate:
315
337
  previous_label: "&#8592; Anterior"
316
338
  next_label: "Siguiente &#8594;"
@@ -17,6 +17,9 @@ es:
17
17
  approved_message: Validado por mentor
18
18
  are_you_sure: '¿Estás seguro que querés %{action}?'
19
19
  ask_a_question: ¡Hacé una pregunta!
20
+ approved_messages:
21
+ one: validado
22
+ other: validados
20
23
  ask_community: Preguntá a la comunidad
21
24
  ask_redirect: ¿Querés que te llevemos ahí?
22
25
  ask_the_first_question: ¡Hacé la primera pregunta!
@@ -34,6 +37,10 @@ es:
34
37
  blocked_forum_explanation: ¿Puede que estés en medio de un examen?
35
38
  cancel: Cancelar
36
39
  cancel_subscription: Cancelá tu subscripción.
40
+ certificate: Certificado
41
+ certificates: Certificados
42
+ certificates_will_be_here: Tus certificados en esta organización aparecerán acá
43
+ certificate_verified_legend: "La cuenta de <strong>%{full_name}</strong> está verificada. Mumuki certifica que completó el curso de <strong>%{description}.</strong>"
37
44
  chapter: Capítulo
38
45
  chapters: Capítulos
39
46
  chapter_finished_html: ¡Terminaste %{chapter}! ¡Felicitaciones!
@@ -46,6 +53,7 @@ es:
46
53
  one: 1 cerrada
47
54
  other: '%{count} cerradas'
48
55
  comment: Comentar
56
+ completed_by: Completado por
49
57
  confirm: Confirmar
50
58
  confirm_reset: Estás por reiniciar tu ejercicio. ¿Querés continuar?
51
59
  confirm_restart: Estás por borrar tu progreso en esta guía. ¿Querés continuar?
@@ -79,6 +87,7 @@ es:
79
87
  dont_leave_us: ¡No nos abandones! Aprender a programar es divertido. Sólo tenés que seguir practicando.
80
88
  download: "Descargá lo que hiciste"
81
89
  edit: Editar
90
+ edit_message: Editar mensaje
82
91
  edit_profile: Editar perfil
83
92
  editor_placeholder: "...escribí tu solución acá..."
84
93
  email: Email
@@ -116,6 +125,7 @@ es:
116
125
  expected_state: Tablero esperado
117
126
  explain_redirect: Notamos que te registraste en otra organización.
118
127
  failed: Tu solución no pasó las pruebas
128
+ faqs: Preguntas Frecuentes
119
129
  feedback: Problemas que encontramos
120
130
  female: Mujer
121
131
  file_exceeds_max_size: "El tamaño de archivo no debe exceder %{size_kb}kb. Por favor seleccioná otro archivo."
@@ -165,6 +175,7 @@ es:
165
175
  let_us_know: ¡Por favor avisanos!
166
176
  level: Nivel
167
177
  level_up: ¡Subiste de nivel!
178
+ linkedin_profile_button_locale: es_ES
168
179
  listen_statement: Escuchá la consigna
169
180
  loading: Cargando
170
181
  load_solution_into_console: Cargar la solución en la consola
@@ -178,6 +189,9 @@ es:
178
189
  message: Mensaje
179
190
  messages: Mensajes
180
191
  messages_error: Los mensajes anteriores no están disponibles en este momento. ¡Volvé a intentar mas tarde!
192
+ messages_pluralized:
193
+ one: Mensaje
194
+ other: Mensajes
181
195
  minute: minuto
182
196
  minutes: minutos
183
197
  moderation: Mentoría
@@ -234,6 +248,8 @@ es:
234
248
  permissions: Permisos
235
249
  please_fill_profile_data: ¡Completá tus datos personales para continuar!
236
250
  please_validate: 'Estás a punto de ingresar al curso. Para poder ofrecerte una mejor experiencia, por favor validá que tus datos a continuación sean reales y correctos.'
251
+ preview: Vista previa
252
+ preview_error: No se puede mostrar la vista previa. Revisá tu conexión a internet o probá con un mensaje más corto.
237
253
  previous_exercise: Anterior
238
254
  problem_with_exercise: '[Mumuki] Error con el ejercicio: %{title}'
239
255
  processing_your_solution: Estamos procesando tu solución
@@ -268,15 +284,19 @@ es:
268
284
  skipped_solve_anyway: Resolver de todos modos
269
285
  solution: Solución
270
286
  solved: Resuelta
271
- solved_count:
272
- one: 1 resuelta
273
- other: '%{count} resueltas'
274
287
  solved_exercises: Ejercicios Resueltos
275
288
  solve_doubts: Resolvé consultas
276
289
  solve_more_exercises_to_level_up: Resolvé <span>number</span> ejercicios más para pasar al siguiente nivel.
277
290
  solve_your_doubts: Consultá tus dudas
278
291
  solve_your_doubts_teaser: ¿Tenés alguna consulta?
279
292
  something_went_wrong: ¡Ups!, algo no anduvo bien...
293
+ solved_count:
294
+ one: 1 resuelta
295
+ other: '%{count} resueltas'
296
+ solved_exercises_count:
297
+ one: resuelto
298
+ other: resueltos
299
+ solved_exercises_percentage: realizado
280
300
  sort: Ordenar
281
301
  sources: Bibliografía
282
302
  start_lesson: ¡Comenzá esta lección!
@@ -309,6 +329,7 @@ es:
309
329
  to_pending_review: Resolver
310
330
  to_solved: Resolver
311
331
  unauthorized_explanation: ¡Ups! Esto es lo que se conoce como %{error}, es decir que no iniciaste sesión.
332
+ total: Total
312
333
  uncategorized: No categorizado
313
334
  undo_upvote: No es útil
314
335
  unlocked_medal_as_avatar: ¡Obtuviste esta medalla! Ya podés elegirla como avatar.
@@ -328,6 +349,7 @@ es:
328
349
  want_permissions: El siguiente usuario requiere permisos
329
350
  we_miss_you: ¡Te extrañamos!
330
351
  welcome: ¡Te damos la bienvenida a %{name}!
352
+ week_of: Semana del %{date}
331
353
  will_paginate:
332
354
  previous_label: "&#8592; Anterior"
333
355
  next_label: "Siguiente &#8594;"