mumuki-laboratory 9.10.0 → 9.11.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (59) hide show
  1. checksums.yaml +4 -4
  2. data/app/assets/stylesheets/mumuki_laboratory/application/modules/_dropdown.scss +11 -0
  3. data/app/assets/stylesheets/mumuki_laboratory/application/modules/_faqs.scss +1 -1
  4. data/app/controllers/application_controller.rb +1 -1
  5. data/app/controllers/users_controller.rb +33 -0
  6. data/app/helpers/application_helper.rb +2 -2
  7. data/app/helpers/icons_helper.rb +1 -1
  8. data/app/helpers/menu_bar_helper.rb +6 -2
  9. data/app/helpers/notifications_helper.rb +13 -0
  10. data/app/helpers/user_menu_helper.rb +4 -0
  11. data/app/mailers/user_mailer.rb +9 -1
  12. data/app/views/layouts/_user_menu.html.erb +1 -0
  13. data/app/views/layouts/exercise_inputs/read_only_editors/_code.html.erb +1 -1
  14. data/app/views/layouts/exercise_inputs/read_only_editors/_multiple_files.html.erb +4 -4
  15. data/app/views/layouts/mailer.html.erb +7 -1
  16. data/app/views/notifications/_custom.html.erb +1 -0
  17. data/app/views/notifications/_dropdown.html.erb +2 -2
  18. data/app/views/notifications/_exam_authorization_request_updated.html.erb +2 -0
  19. data/app/views/notifications/_exam_registration.html.erb +2 -1
  20. data/app/views/notifications/previews/_custom.html.erb +1 -0
  21. data/app/views/notifications/previews/_discussion.html.erb +2 -0
  22. data/app/views/notifications/previews/_exam_authorization_request_updated.html.erb +2 -0
  23. data/app/views/notifications/previews/_exam_registration.html.erb +2 -0
  24. data/app/views/notifications/previews/_message.html.erb +2 -0
  25. data/app/views/user_mailer/1st_reminder.html.erb +7 -349
  26. data/app/views/user_mailer/1st_reminder.text.erb +0 -4
  27. data/app/views/user_mailer/2nd_reminder.html.erb +7 -349
  28. data/app/views/user_mailer/2nd_reminder.text.erb +0 -4
  29. data/app/views/user_mailer/3rd_reminder.html.erb +7 -349
  30. data/app/views/user_mailer/3rd_reminder.text.erb +0 -4
  31. data/app/views/user_mailer/_mail_template.erb +336 -0
  32. data/app/views/user_mailer/certificate.html.erb +7 -335
  33. data/app/views/user_mailer/certificate.text.erb +0 -3
  34. data/app/views/user_mailer/no_submissions_reminder.html.erb +7 -349
  35. data/app/views/user_mailer/no_submissions_reminder.text.erb +0 -4
  36. data/app/views/user_mailer/notification.html.erb +1 -0
  37. data/app/views/user_mailer/notification.text.erb +6 -0
  38. data/app/views/user_mailer/notifications/_custom.html.erb +11 -0
  39. data/app/views/user_mailer/notifications/_exam_authorization_request_updated.html.erb +1 -0
  40. data/app/views/user_mailer/notifications/_exam_registration.html.erb +7 -0
  41. data/app/views/user_mailer/notifications/exam_authorization_request_updated/_approved.html.erb +7 -0
  42. data/app/views/user_mailer/notifications/exam_authorization_request_updated/_rejected.html.erb +7 -0
  43. data/app/views/users/manage_notifications.html.erb +26 -0
  44. data/app/views/users/notifications.html.erb +54 -0
  45. data/config/routes.rb +4 -0
  46. data/lib/mumuki/laboratory/controllers/notifications.rb +2 -2
  47. data/lib/mumuki/laboratory/locales/en.yml +34 -1
  48. data/lib/mumuki/laboratory/locales/es-CL.yml +34 -1
  49. data/lib/mumuki/laboratory/locales/es.yml +35 -2
  50. data/lib/mumuki/laboratory/locales/pt.yml +34 -1
  51. data/lib/mumuki/laboratory/version.rb +1 -1
  52. data/spec/controllers/users_controller_spec.rb +48 -0
  53. data/spec/dummy/db/schema.rb +7 -1
  54. data/spec/features/notifications_flow_spec.rb +2 -1
  55. data/spec/mailers/previews/user_mailer_preview.rb +45 -1
  56. metadata +24 -9
  57. data/app/views/notifications/_discussion.html.erb +0 -1
  58. data/app/views/notifications/_exam_authorization_request.html.erb +0 -1
  59. data/app/views/notifications/_message.html.erb +0 -1
@@ -0,0 +1,54 @@
1
+ <%= content_for :breadcrumbs do %>
2
+ <%= breadcrumbs_for_my_account %>
3
+ <% end %>
4
+
5
+ <div class="row">
6
+ <%= render partial: 'layouts/user_menu' %>
7
+
8
+ <div class="col-md-9 mu-tab-body">
9
+ <div class="mu-user-header d-flex justify-content-between">
10
+ <span>
11
+ <h1><%= t(:notifications) %></h1>
12
+ </span>
13
+ <span>
14
+ <a href="notifications/manage" class="btn btn-complementary"><%= t(:manage_notifications) %></a>
15
+ </span>
16
+ </div>
17
+ <% if @notifications.empty? %>
18
+ <div class="mu-tab-body">
19
+ <%= t :notifications_will_be_here %>
20
+ </div>
21
+ <% else %>
22
+
23
+
24
+ <div class="table-responsive mb-3">
25
+ <table class="table">
26
+ <tr class="fw-bold">
27
+ <td></td>
28
+ <td><%= t(:content) %></td>
29
+ <td><%= t(:created_at) %></td>
30
+ </tr>
31
+
32
+ <% @notifications.each do |notification| %>
33
+ <tr class="<%= background_for_notification notification %>" >
34
+ <td class="col-md-1">
35
+ <%= link_to icon_for_read(notification.read?), "notifications/#{notification.id}/toggle_read", tooltip_options(:read).merge(method: :post, role: :button) %>
36
+ </td>
37
+ <td class="col-md-8 text-break">
38
+ <%= render partial: "notifications/#{notification.subject}", locals: { notification: notification } %>
39
+ </td>
40
+ <td class="col-md-3">
41
+ <%= t(:time_since, time: time_ago_in_words(notification.created_at)) %>
42
+ </td>
43
+ </tr>
44
+ <% end %>
45
+ </table>
46
+ </div>
47
+
48
+ <div class="notification-pagination">
49
+ <%= paginate @notifications, nav_class: 'pagination' %>
50
+ </div>
51
+ <% end %>
52
+ </div>
53
+ </div>
54
+
data/config/routes.rb CHANGED
@@ -72,6 +72,10 @@ Rails.application.routes.draw do
72
72
  get :certificates
73
73
  get :exam_authorizations
74
74
 
75
+ get :notifications
76
+ post 'notifications/:id/toggle_read', action: :toggle_read
77
+ get 'notifications/manage', action: :show_manage_notifications
78
+ post 'notifications/manage', action: :manage_notifications
75
79
  end
76
80
 
77
81
  resources :faqs, only: [:index]
@@ -4,10 +4,10 @@ module Mumuki::Laboratory::Controllers::Notifications
4
4
  end
5
5
 
6
6
  def notifications_count
7
- notifications.size
7
+ user_notifications.size
8
8
  end
9
9
 
10
- def notifications
10
+ def user_notifications
11
11
  current_user.try(:unread_notifications) || []
12
12
  end
13
13
  end
@@ -37,6 +37,8 @@ en:
37
37
  cancel: Cancel
38
38
  cancel_subscription: Cancel your subscription.
39
39
  certificate: Certificate
40
+ certificate_available: Your certificate is available!
41
+ certificate_download: You can find it attached to this email or in your Mumuki profile
40
42
  certificates: Certificates
41
43
  certificates_will_be_here: Your certificates in the organization will appear here.
42
44
  certificate_verified_legend: "<strong>%{full_name}</strong>'s account is verified. Mumuki certifies their successful completion of <strong>%{description}</strong>."
@@ -56,6 +58,7 @@ en:
56
58
  confirm: Confirm
57
59
  confirm_reset: You are about to restart your exercise. Do you want to proceed?
58
60
  confirm_restart: You are about to delete your progress for this guide. Do you want to proceed?
61
+ congratulations: Congratulations!
59
62
  console: Console
60
63
  contact_administrator: 'If you think this is not supposed to happen, please contact %{link}'
61
64
  content: Content
@@ -86,7 +89,7 @@ en:
86
89
  disabled_organization_explanation: This path has already finished.
87
90
  discussion_created_by: Created by
88
91
  discussion_description_placeholder: You can add more information regarding your doubt.
89
- new_discussion_message: New message on %{title}
92
+ new_discussion_message: New reply on %{title}
90
93
  discussion_updated: Discussion updated
91
94
  discussions: Discussions
92
95
  discussions_read: Read
@@ -162,6 +165,7 @@ en:
162
165
  hidden_done: 'Good!'
163
166
  history: History
164
167
  home: Home
168
+ i_want_emails_of: I want to receive emails of
165
169
  important_info: Important information
166
170
  initial_state: Initial board
167
171
  insert_file_name: Insert a file name
@@ -189,7 +193,28 @@ en:
189
193
  loading: Loading
190
194
  load_solution_into_console: Load your solution into the console
191
195
  locked_content: 'This content will be unlocked when you finish previous chapters'
196
+ mailer:
197
+ title:
198
+ exam_authorization_request_updated: There are updates in your exam registration
199
+ exam_authorization_request_rejected: Exam registration rejected
200
+ exam_registration: Exam registrations open
201
+ custom: You have a new notification!
202
+ subtitle:
203
+ exam_authorization_request_approved: Your registration request to the exam has been approved.
204
+ exam_authorization_request_rejected: Your registration request to the exam has been rejected because the requirements weren't met.
205
+ exam_registration: ¡You can register for the exam!
206
+ text:
207
+ exam_authorization_request_approved: You can sit for the exam on %{exam_start_date} by going into the platform. ¡Good luck!
208
+ exam_authorization_request_rejected: ¡Don't be upset! You did a great job and we hope you'll keep learning programming.
209
+ exam_registration: You have until %{exam_registration_deadline} to sign up. In order to be approved, you must meet the requirements.
210
+ button:
211
+ exam_registration: Sign up for the exam
212
+ exam_authorization_request_approved: Go to the platform
213
+ exam_authorization_request_rejected: My exams
214
+ custom: My notifications
192
215
  male: Male
216
+ manage_notification_subscriptions: Manage your notification subscriptions
217
+ manage_notifications: Manage notifications
193
218
  manual_evaluation_pending: Thanks for submitting your solution! It will be revised by the course teachers soon
194
219
  medal: Medal
195
220
  message: Message
@@ -211,6 +236,7 @@ en:
211
236
  you_wont_confirmation: You won't take care of this discussion.
212
237
  my_account: My account
213
238
  my_doubts: My doubts
239
+ my_notifications: My notifications
214
240
  my_profile: My profile
215
241
  my_submissions: My Submissions
216
242
  name: Name
@@ -238,7 +264,12 @@ en:
238
264
  no_useful_result: Didn't find what you were looking for?
239
265
  not_found_explanation: 'You may have mistyped the address or the page may have moved.'
240
266
  not_in_any_organizations: It seems you aren't in any organizations yet!
267
+ notification_subject:
268
+ custom: General announcements
269
+ exam_authorization_request_updated: Exam registrations updated
270
+ exam_registration: Exam registrations enabled
241
271
  notifications: Notifications
272
+ notifications_will_be_here: Notifications will be here
242
273
  notify_problem_with_exercise: Report a bug
243
274
  office: Office
244
275
  only_landscape_support: Please, rotate your tablet or cellphone to continue practicing
@@ -258,6 +289,7 @@ en:
258
289
  permissions: Permissions
259
290
  please_fill_profile_data: Please complete your profile data to continue!
260
291
  please_validate: 'Please validate your data before continue:'
292
+ preferences_updated_successfully: Preferences updated successfully
261
293
  preview: Preview
262
294
  preview_error: The preview cannot be shown. Check your internet connection or try with a shorter message.
263
295
  previous_exercise: Previous
@@ -361,6 +393,7 @@ en:
361
393
  wrong_answer: The answer is wrong
362
394
  years: years old
363
395
  you_earned: You earned
396
+ you_have_a_new_notification: You have a new notification!
364
397
  you_must_sign_in_before_submitting: You must sign in before submitting your solutions
365
398
  you_never_submitted_solutions: It seems that you've never submitted solutions since you created your account.
366
399
  your_new_organization: your new organization
@@ -35,6 +35,8 @@ es-CL:
35
35
  blocked_forum_explanation: ¿Puede que estés en medio de un examen?
36
36
  cancel_subscription: Cancela tu subscripción.
37
37
  certificate: Certificado
38
+ certificate_available: Ya está disponible tu certificado
39
+ certificate_download: Descargalo desde el adjunto de este mail o visualizalo en tu perfil de Mumuki
38
40
  certificates: Certificados
39
41
  certificates_will_be_here: Tus certificados en esta organización aparecerán aquí
40
42
  certificate_verified_legend: "La cuenta de <strong>%{full_name}</strong> ha sido verificada. Mumuki certifica que completó el curso de <strong>%{description}.</strong>"
@@ -55,6 +57,7 @@ es-CL:
55
57
  confirm: Confirmar
56
58
  confirm_reset: Estás por reiniciar tu ejercicio. ¿Quieres continuar?
57
59
  confirm_restart: Estás por borrar tu progreso en esta guía. ¿Quieres continuar?
60
+ congratulations: ¡Felicitaciones!
58
61
  console: Consola
59
62
  contact_administrator: 'Si piensas que es un error, comunícate con %{link}'
60
63
  content: Contenido
@@ -87,7 +90,7 @@ es-CL:
87
90
  details: Detalles
88
91
  disabled_explanation: Estás intentando acceder a un recurso que fue deshabilitado o eliminado de forma permanente
89
92
  disabled_organization_explanation: ¡Este recorrido ha finalizado!
90
- new_discussion_message: Mensaje nuevo en %{title}
93
+ new_discussion_message: Respuesta nueva en %{title}
91
94
  discussion_created_by: Creada por
92
95
  discussion_updated: Consulta actualizada
93
96
  discussions: Consultas
@@ -163,6 +166,7 @@ es-CL:
163
166
  home: Inicio
164
167
  hour: hora
165
168
  hours: horas
169
+ i_want_emails_of: Quiero recibir emails de
166
170
  important_info: Información importante
167
171
  initial_state: Tablero inicial
168
172
  insert_file_name: Ingresa un nombre de archivo
@@ -191,7 +195,28 @@ es-CL:
191
195
  loading: Cargando
192
196
  load_solution_into_console: Cargar la solución en la consola
193
197
  locked_content: 'Éste contenido se desbloqueará cuando termines los capítulos anteriores'
198
+ mailer:
199
+ title:
200
+ exam_authorization_request_updated: Tenés cambios en tu inscripción al examen
201
+ exam_authorization_request_rejected: Inscripción rechazada
202
+ exam_registration: Apertura de inscripciones
203
+ custom: ¡Tenés una nueva notificación!
204
+ subtitle:
205
+ exam_authorization_request_approved: Tu solicitud de inscripción al examen fue aprobada.
206
+ exam_authorization_request_rejected: Tu solicitud de inscripción al examen fue rechazada ya que no se cumplieron los requisitos.
207
+ exam_registration: ¡Ya podés inscribirte al examen!
208
+ text:
209
+ exam_authorization_request_approved: Podrás rendir el examen el día %{exam_start_date} ingresando a la plataforma. ¡Éxitos!
210
+ exam_authorization_request_rejected: ¡No te desanimes! Hiciste un gran esfuerzo y esperamos que continúes aprendiendo programación.
211
+ exam_registration: Tenés tiempo de inscribirte hasta el %{exam_registration_deadline}. Para que tu inscripción sea aceptada debés cumplir con los requisitos.
212
+ button:
213
+ exam_registration: Inscribirme al Examen
214
+ exam_authorization_request_approved: Ir a la plataforma
215
+ exam_authorization_request_rejected: Mis exámenes
216
+ custom: Mis notificaciones
194
217
  male: Hombre
218
+ manage_notification_subscriptions: Administrá tus notificaciones
219
+ manage_notifications: Administrar notificaciones
195
220
  manual_evaluation_pending: ¡Gracias por enviar tu solución! Tus docentes la corregirán pronto
196
221
  medal: Medalla
197
222
  message: Mensaje
@@ -215,6 +240,7 @@ es-CL:
215
240
  you_wont_confirmation: No te vas a ocupar de esta consulta.
216
241
  my_account: Mi cuenta
217
242
  my_doubts: Mis consultas
243
+ my_notifications: Mis notificaciones
218
244
  my_profile: Mi perfil
219
245
  name: Nombre
220
246
  navigation_continue: 'Siguiente %{kind}: %{sibling}'
@@ -244,7 +270,12 @@ es-CL:
244
270
  not_found: ¡La página que buscaste no existe!
245
271
  not_found_explanation: Fíjate si escribiste bien la dirección.
246
272
  not_in_any_organizations: ¡Parece que no estás en ninguna organización todavía!
273
+ notification_subject:
274
+ custom: Anuncios generales
275
+ exam_authorization_request_updated: Cambios sobre inscripciones a exámenes
276
+ exam_registration: Inscripciones a exámenes habilitadas
247
277
  notifications: Notificaciones
278
+ notifications_will_be_here: Tus notificaciones aparecerán aquí
248
279
  notify_problem_with_exercise: Reporta un bug
249
280
  office: Secretaría
250
281
  only_landscape_support: Por favor, rota tu tablet o celular para realizar ejercicios
@@ -267,6 +298,7 @@ es-CL:
267
298
  permissions: Permisos
268
299
  please_fill_profile_data: ¡Completa tus datos personales para continuar!
269
300
  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.'
301
+ preferences_updated_successfully: Tus preferencias se actualizaron correctamente
270
302
  preview: Vista previa
271
303
  preview_error: No se puede mostrar la vista previa. Revisa tu conexión a internet o prueba con un mensaje más corto.
272
304
  previous_exercise: Anterior
@@ -376,5 +408,6 @@ es-CL:
376
408
  working: "Procesando"
377
409
  wrong_answer: La respuesta no es correcta
378
410
  you_earned: Ganaste
411
+ you_have_a_new_notification: ¡Tenés una nueva notificación!
379
412
  you_must_sign_in_before_submitting: Tienes que iniciar sesión antes de empezar a enviar tus soluciones
380
413
  you_never_submitted_solutions: Parece que nunca enviaste soluciones desde que creaste tu cuenta.
@@ -39,9 +39,11 @@ es:
39
39
  cancel: Cancelar
40
40
  cancel_subscription: Cancelá tu subscripción.
41
41
  certificate: Certificado
42
+ certificate_available: Ya está disponible tu certificado
43
+ certificate_download: Descargalo desde el adjunto de este mail o visualizalo en tu perfil de Mumuki
44
+ certificate_verified_legend: "La cuenta de <strong>%{full_name}</strong> está verificada. Mumuki certifica que completó el curso de <strong>%{description}.</strong>"
42
45
  certificates: Certificados
43
46
  certificates_will_be_here: Tus certificados en esta organización aparecerán acá
44
- certificate_verified_legend: "La cuenta de <strong>%{full_name}</strong> está verificada. Mumuki certifica que completó el curso de <strong>%{description}.</strong>"
45
47
  chapter: Capítulo
46
48
  chapters: Capítulos
47
49
  chapter_finished_html: ¡Terminaste %{chapter}! ¡Felicitaciones!
@@ -58,6 +60,7 @@ es:
58
60
  confirm: Confirmar
59
61
  confirm_reset: Estás por reiniciar tu ejercicio. ¿Querés continuar?
60
62
  confirm_restart: Estás por borrar tu progreso en esta guía. ¿Querés continuar?
63
+ congratulations: ¡Felicitaciones!
61
64
  console: Consola
62
65
  contact_administrator: 'Si pensás que es un error, comunicate con %{link}'
63
66
  content: Contenido
@@ -95,7 +98,7 @@ es:
95
98
  discussion_created_by: Creada por
96
99
  discussion_description_placeholder: Podés agregar información para detallar más tu consulta
97
100
  discussion_updated: Consulta actualizada
98
- new_discussion_message: Mensaje nuevo en %{title}
101
+ new_discussion_message: Respuesta nueva en %{title}
99
102
  discussions: Consultas
100
103
  discussions_read: Leídas
101
104
  discussions_unread: No leídas
@@ -172,6 +175,7 @@ es:
172
175
  home: Inicio
173
176
  hour: hora
174
177
  hours: horas
178
+ i_want_emails_of: Quiero recibir emails de
175
179
  important_info: Información importante
176
180
  initial_state: Tablero inicial
177
181
  insert_file_name: Ingresa un nombre de archivo
@@ -200,7 +204,28 @@ es:
200
204
  loading: Cargando
201
205
  load_solution_into_console: Cargar la solución en la consola
202
206
  locked_content: 'Este contenido se desbloqueará cuando termines los capítulos anteriores'
207
+ mailer:
208
+ title:
209
+ exam_authorization_request_updated: Tenés cambios en tu inscripción al examen
210
+ exam_authorization_request_rejected: Inscripción rechazada
211
+ exam_registration: Apertura de inscripciones
212
+ custom: ¡Tenés una nueva notificación!
213
+ subtitle:
214
+ exam_authorization_request_approved: Tu solicitud de inscripción al examen fue aprobada.
215
+ exam_authorization_request_rejected: Tu solicitud de inscripción al examen fue rechazada ya que no se cumplieron los requisitos.
216
+ exam_registration: ¡Ya podés inscribirte al examen!
217
+ text:
218
+ exam_authorization_request_approved: Podrás rendir el examen el día %{exam_start_date} ingresando a la plataforma. ¡Éxitos!
219
+ exam_authorization_request_rejected: ¡No te desanimes! Hiciste un gran esfuerzo y esperamos que continúes aprendiendo programación.
220
+ exam_registration: Tenés tiempo de inscribirte hasta el %{exam_registration_deadline}. Para que tu inscripción sea aceptada debés cumplir con los requisitos.
221
+ button:
222
+ exam_registration: Inscribirme al Examen
223
+ exam_authorization_request_approved: Ir a la plataforma
224
+ exam_authorization_request_rejected: Mis exámenes
225
+ custom: Mis notificaciones
203
226
  male: Hombre
227
+ manage_notification_subscriptions: Administrá tus notificaciones
228
+ manage_notifications: Administrar notificaciones
204
229
  manual_evaluation_pending: ¡Gracias por enviar tu solución! Tus docentes la corregirán pronto
205
230
  medal: Medalla
206
231
  message: Mensaje
@@ -224,6 +249,7 @@ es:
224
249
  you_wont_confirmation: No te vas a ocupar de esta consulta.
225
250
  my_account: Mi cuenta
226
251
  my_doubts: Mis consultas
252
+ my_notifications: Mis notificaciones
227
253
  my_profile: Mi perfil
228
254
  name: Nombre
229
255
  navigation_continue: 'Siguiente %{kind}: %{sibling}'
@@ -253,7 +279,12 @@ es:
253
279
  not_found: ¡La página que buscaste no existe!
254
280
  not_found_explanation: Fijate si escribiste bien la dirección.
255
281
  not_in_any_organizations: ¡Parece que no estás en ninguna organización todavía!
282
+ notification_subject:
283
+ custom: Anuncios generales
284
+ exam_authorization_request_updated: Cambios sobre inscripciones a exámenes
285
+ exam_registration: Inscripciones a exámenes habilitadas
256
286
  notifications: Notificaciones
287
+ notifications_will_be_here: Tus notificaciones aparecerán aquí
257
288
  notify_problem_with_exercise: Reportá un bug
258
289
  office: Secretaría
259
290
  only_landscape_support: Por favor, rotá tu tablet o celular para realizar ejercicios
@@ -276,6 +307,7 @@ es:
276
307
  permissions: Permisos
277
308
  please_fill_profile_data: ¡Completá tus datos personales para continuar!
278
309
  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.'
310
+ preferences_updated_successfully: Tus preferencias se actualizaron correctamente
279
311
  preview: Vista previa
280
312
  preview_error: No se puede mostrar la vista previa. Revisá tu conexión a internet o probá con un mensaje más corto.
281
313
  previous_exercise: Anterior
@@ -392,6 +424,7 @@ es:
392
424
  wrong_answer: La respuesta no es correcta
393
425
  years: años
394
426
  you_earned: Ganaste
427
+ you_have_a_new_notification: ¡Tenés una nueva notificación!
395
428
  you_must_sign_in_before_submitting: Tenés que iniciar sesión antes de empezar a enviar tus soluciones
396
429
  you_never_submitted_solutions: Parece que nunca enviaste soluciones desde que creaste tu cuenta.
397
430
  your_new_organization: tu nueva organización
@@ -37,6 +37,8 @@ pt:
37
37
  blocked_forum_explanation: Você está no meio de um exame agora?
38
38
  cancel: Cancelar
39
39
  certificate: Certificado
40
+ certificate_available: Seu certificado já está disponível
41
+ certificate_download: Baixe-o do anexo deste e-mail ou visualize-o em seu perfil Mumuki.
40
42
  certificates: Certificados
41
43
  certificates_will_be_here: Seus certificados nesta organização aparecerão aqui
42
44
  certificate_verified_legend: "A conta de <strong>% {full_name} </strong> foi verificada. Mumuki certifica a conclusão com sucesso de <strong>% {description} </strong>."
@@ -54,6 +56,7 @@ pt:
54
56
  confirm: Confirme
55
57
  confirm_reset: Você está prestes a reiniciar seu exercício. Você quer continuar?
56
58
  confirm_restart: Você está prestes a apagar o seu progresso neste guia. Você quer continuar?
59
+ congratulations: Parabéns!
57
60
  console: Consola
58
61
  contact_administrator: Se você acha que é um erro, entre em contato com %{link}
59
62
  content: Conteúdo
@@ -89,7 +92,7 @@ pt:
89
92
  disabled_explanation: Você está tentando acessar um recurso que foi desativado ou removido permanentemente
90
93
  disabled_organization_explanation: Este curso terminou
91
94
  discussion_description_placeholder: Você pode adicionar mais informações sobre sua dúvida
92
- new_discussion_message: Nova mensagem em %{title}
95
+ new_discussion_message: Nova resposta em %{title}
93
96
  discussion_created_by: Criada por
94
97
  discussion_updated: Consulta actualizada
95
98
  discussions: Consultas
@@ -167,6 +170,7 @@ pt:
167
170
  home: Home
168
171
  hour: hora
169
172
  hours: horas
173
+ i_want_emails_of: Quero receber e-mails de
170
174
  important_info: Informação importante
171
175
  initial_state: Tabuleiro inicial
172
176
  insert_file_name: Insira um nome de arquivo
@@ -193,7 +197,28 @@ pt:
193
197
  loading: Carregando
194
198
  load_solution_into_console: Carregue a solução no console
195
199
  locked_content: 'Este conteúdo será desbloqueado quando você terminar os capítulos anteriores'
200
+ mailer:
201
+ title:
202
+ exam_authorization_request_updated: Você tem alterações no registro do seu exame
203
+ exam_authorization_request_rejected: Inscrição rejeitada
204
+ exam_registration: Abertura de inscrições
205
+ custom: Você tem uma nova notificação!
206
+ subtitle:
207
+ exam_authorization_request_approved: Seu pedido de inscrição para o exame foi aprovado.
208
+ exam_authorization_request_rejected: Sua inscrição para o exame foi rejeitada porque os requisitos não foram atendidos.
209
+ exam_registration: Agora você pode se inscrever para o exame!
210
+ text:
211
+ exam_authorization_request_approved: Você poderá fazer o exame em %{exam_start_date} ao entrar na plataforma. Êxitos!
212
+ exam_authorization_request_rejected: Não te desanimes! Você fez um grande esforço e esperamos que continue aprendendo programação.
213
+ exam_registration: Você tem tempo para se registrar até o exam_registration_deadline. Para que seu registro seja aceito, você deve atender aos requisitos.
214
+ button:
215
+ exam_registration: Assinar o exame
216
+ exam_authorization_request_approved: Vá para a plataforma
217
+ exam_authorization_request_rejected: Meus exames
218
+ custom: Minhas notificações
196
219
  male: Masculino
220
+ manage_notification_subscriptions: Gerenciar suas notificações
221
+ manage_notifications: Gerenciar notificações
197
222
  manual_evaluation_pending: Obrigado por enviar sua solução! Seus professores irão corrigi-lo em breve
198
223
  medal: Medalha
199
224
  message: Mensagem
@@ -218,6 +243,7 @@ pt:
218
243
  you_wont_confirmation: Você não vai cuidar dessa consulta.
219
244
  my_account: Minha conta
220
245
  my_doubts: Minhas duvidas
246
+ my_notifications: Minhas notificações
221
247
  my_profile: Meu perfil
222
248
  name: Nome
223
249
  navigation_continue: "Próximo %{kind}: %{sibling}"
@@ -246,7 +272,12 @@ pt:
246
272
  not_found: A página que você pesquisou não existe!
247
273
  not_found_explanation: Olhe se você escreveu o endereço corretamente.
248
274
  not_in_any_organizations: Parece que você ainda não está em nenhuma organização!
275
+ notification_subject:
276
+ custom: Anúncios gerais
277
+ exam_authorization_request_updated: Mudanças no registro do exame
278
+ exam_registration: Inscrição para exames qualificados
249
279
  notifications: Notificações
280
+ notifications_will_be_here: Suas notificações aparecerão aqui
250
281
  notify_problem_with_exercise: Relatar um erro
251
282
  office: Secretariado
252
283
  only_landscape_support: Por favor, gire seu tablet ou celular para realizar exercícios
@@ -267,6 +298,7 @@ pt:
267
298
  permissions: Permissões
268
299
  please_fill_profile_data: Preencha suas informações pessoais para continuar!
269
300
  please_validate: Você está prestes a entrar no curso. Para oferecer uma experiência melhor, valide que seus dados abaixo sejam reais e corretos.
301
+ preferences_updated_successfully: Suas preferências foram atualizadas com sucesso
270
302
  preview: Vista prévia
271
303
  preview_error: A visualizaçao não pode ser mostrada. Verifique sua conexão com a internet ou tente com uma mensagem mais curta.
272
304
  previous_exercise: Anterior
@@ -369,5 +401,6 @@ pt:
369
401
  wrong_answer: A resposta não é correta
370
402
  years: anos
371
403
  you_earned: Você ganhou
404
+ you_have_a_new_notification: Você tem uma nova notificação!
372
405
  you_must_sign_in_before_submitting: Você deve fazer o login antes de começar a enviar suas soluções
373
406
  your_new_organization: sua nova organização