mumuki-laboratory 9.9.0 → 9.12.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/app/assets/javascripts/mumuki_laboratory/application/bridge.js +15 -9
- data/app/assets/javascripts/mumuki_laboratory/application/confirmation.js +10 -8
- data/app/assets/javascripts/mumuki_laboratory/application/editors.js +5 -3
- data/app/assets/javascripts/mumuki_laboratory/application/progress.js +4 -4
- data/app/assets/javascripts/mumuki_laboratory/application/results-renderer.js +12 -1
- data/app/assets/javascripts/mumuki_laboratory/application/submissions-store.js +8 -2
- data/app/assets/stylesheets/mumuki_laboratory/application/modules/_discussion.scss +32 -34
- data/app/assets/stylesheets/mumuki_laboratory/application/modules/_dropdown.scss +11 -0
- data/app/assets/stylesheets/mumuki_laboratory/application/modules/_faqs.scss +1 -1
- data/app/controllers/application_controller.rb +1 -1
- data/app/controllers/users_controller.rb +38 -1
- data/app/helpers/application_helper.rb +2 -2
- data/app/helpers/discussions_helper.rb +11 -4
- data/app/helpers/icons_helper.rb +1 -1
- data/app/helpers/menu_bar_helper.rb +7 -3
- data/app/helpers/notifications_helper.rb +13 -0
- data/app/helpers/time_zone_helper.rb +5 -0
- data/app/helpers/user_discussions_helper.rb +38 -0
- data/app/helpers/user_menu_helper.rb +4 -0
- data/app/mailers/user_mailer.rb +11 -1
- data/app/views/discussions/new.html.erb +1 -1
- data/app/views/layouts/_discussions.html.erb +1 -37
- data/app/views/layouts/_discussions_list.html.erb +38 -0
- data/app/views/layouts/_user_menu.html.erb +1 -0
- data/app/views/layouts/exercise_inputs/read_only_editors/_code.html.erb +1 -1
- data/app/views/layouts/exercise_inputs/read_only_editors/_multiple_files.html.erb +4 -4
- data/app/views/layouts/mailer.html.erb +7 -1
- data/app/views/notifications/_custom.html.erb +1 -0
- data/app/views/notifications/_dropdown.html.erb +2 -2
- data/app/views/notifications/_exam_authorization_request_updated.html.erb +2 -0
- data/app/views/notifications/_exam_registration.html.erb +2 -1
- data/app/views/notifications/previews/_custom.html.erb +1 -0
- data/app/views/notifications/previews/_discussion.html.erb +2 -0
- data/app/views/notifications/previews/_exam_authorization_request_updated.html.erb +2 -0
- data/app/views/notifications/previews/_exam_registration.html.erb +2 -0
- data/app/views/notifications/previews/_message.html.erb +2 -0
- data/app/views/user_mailer/1st_reminder.html.erb +7 -349
- data/app/views/user_mailer/1st_reminder.text.erb +0 -4
- data/app/views/user_mailer/2nd_reminder.html.erb +7 -349
- data/app/views/user_mailer/2nd_reminder.text.erb +0 -4
- data/app/views/user_mailer/3rd_reminder.html.erb +7 -349
- data/app/views/user_mailer/3rd_reminder.text.erb +0 -4
- data/app/views/user_mailer/_mail_template.erb +336 -0
- data/app/views/user_mailer/certificate.html.erb +7 -335
- data/app/views/user_mailer/certificate.text.erb +0 -3
- data/app/views/user_mailer/no_submissions_reminder.html.erb +7 -349
- data/app/views/user_mailer/no_submissions_reminder.text.erb +0 -4
- data/app/views/user_mailer/notification.html.erb +1 -0
- data/app/views/user_mailer/notification.text.erb +6 -0
- data/app/views/user_mailer/notifications/_custom.html.erb +11 -0
- data/app/views/user_mailer/notifications/_exam_authorization_request_updated.html.erb +1 -0
- data/app/views/user_mailer/notifications/_exam_registration.html.erb +7 -0
- data/app/views/user_mailer/notifications/exam_authorization_request_updated/_approved.html.erb +7 -0
- data/app/views/user_mailer/notifications/exam_authorization_request_updated/_rejected.html.erb +7 -0
- data/app/views/users/discussions.html.erb +19 -11
- data/app/views/users/manage_notifications.html.erb +26 -0
- data/app/views/users/notifications.html.erb +54 -0
- data/config/routes.rb +4 -0
- data/lib/mumuki/laboratory.rb +1 -0
- data/lib/mumuki/laboratory/controllers/notifications.rb +2 -2
- data/lib/mumuki/laboratory/locales/en.yml +45 -5
- data/lib/mumuki/laboratory/locales/es-CL.yml +46 -5
- data/lib/mumuki/laboratory/locales/es.yml +47 -7
- data/lib/mumuki/laboratory/locales/pt.yml +44 -4
- data/lib/mumuki/laboratory/mailers/message_delivery.rb +15 -0
- data/lib/mumuki/laboratory/version.rb +1 -1
- data/spec/controllers/users_controller_spec.rb +48 -0
- data/spec/dummy/db/schema.rb +7 -1
- data/spec/features/notifications_flow_spec.rb +2 -1
- data/spec/javascripts/editors-spec.js +21 -3
- data/spec/javascripts/submissions-store-spec.js +11 -0
- data/spec/mailers/previews/user_mailer_preview.rb +87 -1
- metadata +135 -116
- data/app/views/notifications/_discussion.html.erb +0 -1
- data/app/views/notifications/_exam_authorization_request.html.erb +0 -1
- data/app/views/notifications/_message.html.erb +0 -1
@@ -0,0 +1,26 @@
|
|
1
|
+
<%= content_for :breadcrumbs do %>
|
2
|
+
<%= breadcrumbs_for_my_account %>
|
3
|
+
<% end %>
|
4
|
+
|
5
|
+
<div class="row">
|
6
|
+
<%= form_for :notifications, html: {class: 'mu-form'} do |f| %>
|
7
|
+
<div class="mu-tab-body">
|
8
|
+
<div class="mu-user-header">
|
9
|
+
<h1><%= t(:manage_notifications) %></h1>
|
10
|
+
<div class="mu-profile-actions d-none d-md-block">
|
11
|
+
<a class="btn btn-secondary" href="<%= notifications_user_path %>">Cancelar</a>
|
12
|
+
<button type="submit" class="btn btn-complementary"><%= t :save %></button>
|
13
|
+
</div>
|
14
|
+
</div>
|
15
|
+
|
16
|
+
<p><%= t(:i_want_emails_of) %>:</p>
|
17
|
+
<% Notification.subjects.keys.each do |subject| %>
|
18
|
+
<div class="form-check">
|
19
|
+
<%= label_tag subject, t("notification_subject.#{subject}"), class: 'form-check-label' %>
|
20
|
+
<%= f.check_box subject, checked: !@user.ignored_notifications.include?(subject), class: 'form-check-input' %>
|
21
|
+
</div>
|
22
|
+
<% end %>
|
23
|
+
</div>
|
24
|
+
<% end %>
|
25
|
+
</div>
|
26
|
+
|
@@ -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(:toggle_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]
|
data/lib/mumuki/laboratory.rb
CHANGED
@@ -21,6 +21,7 @@ en:
|
|
21
21
|
ask_community: Ask community for help
|
22
22
|
ask_redirect: Do you want to go there?
|
23
23
|
ask_the_first_question: Be the first one to ask!
|
24
|
+
asked_time_since: asked %{time} ago
|
24
25
|
attempts_left:
|
25
26
|
zero: "You've run out of attempts"
|
26
27
|
one: "1 attempt remaining"
|
@@ -36,6 +37,8 @@ en:
|
|
36
37
|
cancel: Cancel
|
37
38
|
cancel_subscription: Cancel your subscription.
|
38
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
|
39
42
|
certificates: Certificates
|
40
43
|
certificates_will_be_here: Your certificates in the organization will appear here.
|
41
44
|
certificate_verified_legend: "<strong>%{full_name}</strong>'s account is verified. Mumuki certifies their successful completion of <strong>%{description}</strong>."
|
@@ -55,6 +58,7 @@ en:
|
|
55
58
|
confirm: Confirm
|
56
59
|
confirm_reset: You are about to restart your exercise. Do you want to proceed?
|
57
60
|
confirm_restart: You are about to delete your progress for this guide. Do you want to proceed?
|
61
|
+
congratulations: Congratulations!
|
58
62
|
console: Console
|
59
63
|
contact_administrator: 'If you think this is not supposed to happen, please contact %{link}'
|
60
64
|
content: Content
|
@@ -83,10 +87,13 @@ en:
|
|
83
87
|
destroy_message: delete the message
|
84
88
|
disabled_explanation: You are trying to visit a permamently disabled or deleted resource
|
85
89
|
disabled_organization_explanation: This path has already finished.
|
90
|
+
discussion_created_by: Created by
|
86
91
|
discussion_description_placeholder: You can add more information regarding your doubt.
|
87
|
-
new_discussion_message: New
|
92
|
+
new_discussion_message: New reply on %{title}
|
88
93
|
discussion_updated: Discussion updated
|
89
94
|
discussions: Discussions
|
95
|
+
discussions_read: Read
|
96
|
+
discussions_unread: Unread
|
90
97
|
discussions_will_be_here: Your posts in the forum will appear here.
|
91
98
|
dont_leave_us: Don't leave us! Learning is fun. You just have to keep at it.
|
92
99
|
download: Download your solution
|
@@ -133,7 +140,8 @@ en:
|
|
133
140
|
expected_state: Expected board
|
134
141
|
explain_redirect: You have registered in another organization
|
135
142
|
failed: Oops, something went wrong
|
136
|
-
faqs:
|
143
|
+
faqs: Frequently Asked Questions
|
144
|
+
faqs_abbreviated: FAQs
|
137
145
|
feedback: Feedback
|
138
146
|
female: Female
|
139
147
|
file_exceeds_max_size: "File size should not exceed %{size_kb}kb. Please select another file."
|
@@ -157,6 +165,7 @@ en:
|
|
157
165
|
hidden_done: 'Good!'
|
158
166
|
history: History
|
159
167
|
home: Home
|
168
|
+
i_want_emails_of: I want to receive emails of
|
160
169
|
important_info: Important information
|
161
170
|
initial_state: Initial board
|
162
171
|
insert_file_name: Insert a file name
|
@@ -168,6 +177,7 @@ en:
|
|
168
177
|
keep_learning: Keep learning!
|
169
178
|
kids_default_success: You did it great!
|
170
179
|
language: Language
|
180
|
+
last_message: Last message
|
171
181
|
last_name: Last Name
|
172
182
|
last_submission_date: Last submission
|
173
183
|
latest_exercises: Latest exercises
|
@@ -183,7 +193,28 @@ en:
|
|
183
193
|
loading: Loading
|
184
194
|
load_solution_into_console: Load your solution into the console
|
185
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
|
186
215
|
male: Male
|
216
|
+
manage_notification_subscriptions: Manage your notification subscriptions
|
217
|
+
manage_notifications: Manage notifications
|
187
218
|
manual_evaluation_pending: Thanks for submitting your solution! It will be revised by the course teachers soon
|
188
219
|
medal: Medal
|
189
220
|
message: Message
|
@@ -205,6 +236,7 @@ en:
|
|
205
236
|
you_wont_confirmation: You won't take care of this discussion.
|
206
237
|
my_account: My account
|
207
238
|
my_doubts: My doubts
|
239
|
+
my_notifications: My notifications
|
208
240
|
my_profile: My profile
|
209
241
|
my_submissions: My Submissions
|
210
242
|
name: Name
|
@@ -232,7 +264,12 @@ en:
|
|
232
264
|
no_useful_result: Didn't find what you were looking for?
|
233
265
|
not_found_explanation: 'You may have mistyped the address or the page may have moved.'
|
234
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
|
235
271
|
notifications: Notifications
|
272
|
+
notifications_will_be_here: Notifications will be here
|
236
273
|
notify_problem_with_exercise: Report a bug
|
237
274
|
office: Office
|
238
275
|
only_landscape_support: Please, rotate your tablet or cellphone to continue practicing
|
@@ -252,6 +289,7 @@ en:
|
|
252
289
|
permissions: Permissions
|
253
290
|
please_fill_profile_data: Please complete your profile data to continue!
|
254
291
|
please_validate: 'Please validate your data before continue:'
|
292
|
+
preferences_updated_successfully: Preferences updated successfully
|
255
293
|
preview: Preview
|
256
294
|
preview_error: The preview cannot be shown. Check your internet connection or try with a shorter message.
|
257
295
|
previous_exercise: Previous
|
@@ -259,8 +297,8 @@ en:
|
|
259
297
|
processing_your_solution: We are processing you solution
|
260
298
|
profile_of: Profile of %{username}
|
261
299
|
programming_since: Started programming
|
262
|
-
progress:
|
263
|
-
|
300
|
+
progress: Progress
|
301
|
+
publish_discussion: Publish discussion
|
264
302
|
refresh_or_wait: Please press F5 if results are not displayed after a few seconds
|
265
303
|
reply_count:
|
266
304
|
one: 1 reply
|
@@ -321,13 +359,14 @@ en:
|
|
321
359
|
terms_and_conditions_continue_disclaimer: By continuing you agree to %{terms_link}
|
322
360
|
terms_and_conditions_must_be_accepted: You must accept the terms and conditions
|
323
361
|
test_results: Test results
|
324
|
-
|
362
|
+
time_since: "%{time} ago"
|
325
363
|
time_left: You have
|
326
364
|
title: Title
|
327
365
|
to_closed: Close
|
328
366
|
to_opened: Reopen
|
329
367
|
to_pending_review: Mark as solved
|
330
368
|
to_solved: Mark as solved
|
369
|
+
toggle_read: "Toggle read/unread"
|
331
370
|
unauthorized_explanation: You have no permissions for this content. Maybe you logged in with another account.
|
332
371
|
total: Total
|
333
372
|
undo_upvote: Undo upvote
|
@@ -355,6 +394,7 @@ en:
|
|
355
394
|
wrong_answer: The answer is wrong
|
356
395
|
years: years old
|
357
396
|
you_earned: You earned
|
397
|
+
you_have_a_new_notification: You have a new notification!
|
358
398
|
you_must_sign_in_before_submitting: You must sign in before submitting your solutions
|
359
399
|
you_never_submitted_solutions: It seems that you've never submitted solutions since you created your account.
|
360
400
|
your_new_organization: your new organization
|
@@ -11,14 +11,16 @@ es-CL:
|
|
11
11
|
and: y
|
12
12
|
appendix: Apéndice
|
13
13
|
appendix_teaser: ¿Quieres saber más? <a href="%{link}">Consulta el apéndice de este capítulo</a>
|
14
|
-
|
15
|
-
ask_a_question: ¡Haz una pregunta!
|
14
|
+
approved_message: Validado por mentorías
|
16
15
|
approved_messages:
|
17
16
|
one: validado
|
18
17
|
other: validados
|
18
|
+
are_you_sure: '¿Confirmas que quieres %{action}?'
|
19
|
+
ask_a_question: ¡Haz una pregunta!
|
19
20
|
ask_community: Pregunta a la comunidad
|
20
21
|
ask_redirect: ¿Quieres que te llevemos ahí?
|
21
22
|
ask_the_first_question: ¡Haz la primera pregunta!
|
23
|
+
asked_time_since: "consultó hace %{time}"
|
22
24
|
attempts_left:
|
23
25
|
zero: 'Te quedaste sin intentos'
|
24
26
|
one: '1 intento restante'
|
@@ -33,6 +35,8 @@ es-CL:
|
|
33
35
|
blocked_forum_explanation: ¿Puede que estés en medio de un examen?
|
34
36
|
cancel_subscription: Cancela tu subscripción.
|
35
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
|
36
40
|
certificates: Certificados
|
37
41
|
certificates_will_be_here: Tus certificados en esta organización aparecerán aquí
|
38
42
|
certificate_verified_legend: "La cuenta de <strong>%{full_name}</strong> ha sido verificada. Mumuki certifica que completó el curso de <strong>%{description}.</strong>"
|
@@ -53,6 +57,7 @@ es-CL:
|
|
53
57
|
confirm: Confirmar
|
54
58
|
confirm_reset: Estás por reiniciar tu ejercicio. ¿Quieres continuar?
|
55
59
|
confirm_restart: Estás por borrar tu progreso en esta guía. ¿Quieres continuar?
|
60
|
+
congratulations: ¡Felicitaciones!
|
56
61
|
console: Consola
|
57
62
|
contact_administrator: 'Si piensas que es un error, comunícate con %{link}'
|
58
63
|
content: Contenido
|
@@ -85,9 +90,12 @@ es-CL:
|
|
85
90
|
details: Detalles
|
86
91
|
disabled_explanation: Estás intentando acceder a un recurso que fue deshabilitado o eliminado de forma permanente
|
87
92
|
disabled_organization_explanation: ¡Este recorrido ha finalizado!
|
88
|
-
new_discussion_message:
|
93
|
+
new_discussion_message: Respuesta nueva en %{title}
|
94
|
+
discussion_created_by: Creada por
|
89
95
|
discussion_updated: Consulta actualizada
|
90
96
|
discussions: Consultas
|
97
|
+
discussions_read: Leídas
|
98
|
+
discussions_unread: No leídas
|
91
99
|
discussions_will_be_here: Las preguntas que realices en el espacio de consultas aparecerán aquí.
|
92
100
|
dont_leave_us: ¡No nos abandones! Aprender a programar es divertido. Sólo tienes que seguir practicando.
|
93
101
|
download: "Descarga lo que hiciste"
|
@@ -132,7 +140,8 @@ es-CL:
|
|
132
140
|
expected_state: Tablero esperado
|
133
141
|
explain_redirect: Notamos que te registraste en otra organización.
|
134
142
|
failed: Tu solución no pasó las pruebas
|
135
|
-
faqs:
|
143
|
+
faqs: Información importante
|
144
|
+
faqs_abbreviated: Información
|
136
145
|
feedback: Problemas que encontramos
|
137
146
|
female: Mujer
|
138
147
|
file_exceeds_max_size: "El tamaño de archivo no debe exceder %{size_kb}kb. Por favor selecciona otro archivo."
|
@@ -157,6 +166,7 @@ es-CL:
|
|
157
166
|
home: Inicio
|
158
167
|
hour: hora
|
159
168
|
hours: horas
|
169
|
+
i_want_emails_of: Quiero recibir emails de
|
160
170
|
important_info: Información importante
|
161
171
|
initial_state: Tablero inicial
|
162
172
|
insert_file_name: Ingresa un nombre de archivo
|
@@ -169,6 +179,7 @@ es-CL:
|
|
169
179
|
kids_default_success: ¡Lo hiciste muy bien!
|
170
180
|
language: Lenguaje
|
171
181
|
languages: Lenguajes
|
182
|
+
last_message: Último mensaje
|
172
183
|
last_name: Apellido
|
173
184
|
last_submission_date: Última solución
|
174
185
|
latest_exercises: Últimos ejercicios
|
@@ -184,7 +195,28 @@ es-CL:
|
|
184
195
|
loading: Cargando
|
185
196
|
load_solution_into_console: Cargar la solución en la consola
|
186
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
|
187
217
|
male: Hombre
|
218
|
+
manage_notification_subscriptions: Administrá tus notificaciones
|
219
|
+
manage_notifications: Administrar notificaciones
|
188
220
|
manual_evaluation_pending: ¡Gracias por enviar tu solución! Tus docentes la corregirán pronto
|
189
221
|
medal: Medalla
|
190
222
|
message: Mensaje
|
@@ -208,6 +240,7 @@ es-CL:
|
|
208
240
|
you_wont_confirmation: No te vas a ocupar de esta consulta.
|
209
241
|
my_account: Mi cuenta
|
210
242
|
my_doubts: Mis consultas
|
243
|
+
my_notifications: Mis notificaciones
|
211
244
|
my_profile: Mi perfil
|
212
245
|
name: Nombre
|
213
246
|
navigation_continue: 'Siguiente %{kind}: %{sibling}'
|
@@ -237,7 +270,12 @@ es-CL:
|
|
237
270
|
not_found: ¡La página que buscaste no existe!
|
238
271
|
not_found_explanation: Fíjate si escribiste bien la dirección.
|
239
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
|
240
277
|
notifications: Notificaciones
|
278
|
+
notifications_will_be_here: Tus notificaciones aparecerán aquí
|
241
279
|
notify_problem_with_exercise: Reporta un bug
|
242
280
|
office: Secretaría
|
243
281
|
only_landscape_support: Por favor, rota tu tablet o celular para realizar ejercicios
|
@@ -260,6 +298,7 @@ es-CL:
|
|
260
298
|
permissions: Permisos
|
261
299
|
please_fill_profile_data: ¡Completa tus datos personales para continuar!
|
262
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
|
263
302
|
preview: Vista previa
|
264
303
|
preview_error: No se puede mostrar la vista previa. Revisa tu conexión a internet o prueba con un mensaje más corto.
|
265
304
|
previous_exercise: Anterior
|
@@ -267,7 +306,7 @@ es-CL:
|
|
267
306
|
processing_your_solution: Estamos procesando tu solución
|
268
307
|
profile_of: Perfil de %{username}
|
269
308
|
progress: Progreso
|
270
|
-
|
309
|
+
publish_discussion: Publicar consulta
|
271
310
|
read_messages: Ver mensajes
|
272
311
|
refresh_or_wait: Si no se muestra automáticamente en unos segundos, presiona F5
|
273
312
|
reply_count:
|
@@ -339,6 +378,7 @@ es-CL:
|
|
339
378
|
to_opened: Reabrir
|
340
379
|
to_pending_review: Resolver
|
341
380
|
to_solved: Resolver
|
381
|
+
toggle_read: "Marcar como leído/no leído"
|
342
382
|
unauthorized_explanation: ¡Ups! Esto es lo que se conoce como %{error}, es decir que no iniciaste sesión.
|
343
383
|
total: Total
|
344
384
|
uncategorized: No categorizado
|
@@ -369,5 +409,6 @@ es-CL:
|
|
369
409
|
working: "Procesando"
|
370
410
|
wrong_answer: La respuesta no es correcta
|
371
411
|
you_earned: Ganaste
|
412
|
+
you_have_a_new_notification: ¡Tenés una nueva notificación!
|
372
413
|
you_must_sign_in_before_submitting: Tienes que iniciar sesión antes de empezar a enviar tus soluciones
|
373
414
|
you_never_submitted_solutions: Parece que nunca enviaste soluciones desde que creaste tu cuenta.
|
@@ -14,15 +14,16 @@ es:
|
|
14
14
|
and: y
|
15
15
|
appendix: Apéndice
|
16
16
|
appendix_teaser: ¿Querés saber más? <a href="%{link}">Consultá el apéndice de este capítulo</a>
|
17
|
-
approved_message: Validado por
|
18
|
-
are_you_sure: '¿Estás seguro que querés %{action}?'
|
19
|
-
ask_a_question: ¡Hacé una pregunta!
|
17
|
+
approved_message: Validado por mentorías
|
20
18
|
approved_messages:
|
21
19
|
one: validado
|
22
20
|
other: validados
|
21
|
+
are_you_sure: '¿Confirmás que querés %{action}?'
|
22
|
+
ask_a_question: ¡Hacé una pregunta!
|
23
23
|
ask_community: Preguntá a la comunidad
|
24
24
|
ask_redirect: ¿Querés que te llevemos ahí?
|
25
25
|
ask_the_first_question: ¡Hacé la primera pregunta!
|
26
|
+
asked_time_since: "consultó hace %{time}"
|
26
27
|
attempts_left:
|
27
28
|
zero: 'Te quedaste sin intentos'
|
28
29
|
one: '1 intento restante'
|
@@ -38,9 +39,11 @@ es:
|
|
38
39
|
cancel: Cancelar
|
39
40
|
cancel_subscription: Cancelá tu subscripción.
|
40
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>"
|
41
45
|
certificates: Certificados
|
42
46
|
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>"
|
44
47
|
chapter: Capítulo
|
45
48
|
chapters: Capítulos
|
46
49
|
chapter_finished_html: ¡Terminaste %{chapter}! ¡Felicitaciones!
|
@@ -57,6 +60,7 @@ es:
|
|
57
60
|
confirm: Confirmar
|
58
61
|
confirm_reset: Estás por reiniciar tu ejercicio. ¿Querés continuar?
|
59
62
|
confirm_restart: Estás por borrar tu progreso en esta guía. ¿Querés continuar?
|
63
|
+
congratulations: ¡Felicitaciones!
|
60
64
|
console: Consola
|
61
65
|
contact_administrator: 'Si pensás que es un error, comunicate con %{link}'
|
62
66
|
content: Contenido
|
@@ -91,10 +95,13 @@ es:
|
|
91
95
|
details: Detalles
|
92
96
|
disabled_explanation: Estás intentando acceder a un recurso que fue deshabilitado o eliminado de forma permamente
|
93
97
|
disabled_organization_explanation: Este recorrido ha finalizado
|
98
|
+
discussion_created_by: Creada por
|
94
99
|
discussion_description_placeholder: Podés agregar información para detallar más tu consulta
|
95
100
|
discussion_updated: Consulta actualizada
|
96
|
-
new_discussion_message:
|
101
|
+
new_discussion_message: Respuesta nueva en %{title}
|
97
102
|
discussions: Consultas
|
103
|
+
discussions_read: Leídas
|
104
|
+
discussions_unread: No leídas
|
98
105
|
discussions_will_be_here: Las preguntas que realices en el espacio de consultas aparecerán aquí.
|
99
106
|
dont_leave_us: ¡No nos abandones! Aprender a programar es divertido. Sólo tenés que seguir practicando.
|
100
107
|
download: "Descargá lo que hiciste"
|
@@ -140,7 +147,8 @@ es:
|
|
140
147
|
expected_state: Tablero esperado
|
141
148
|
explain_redirect: Notamos que te registraste en otra organización.
|
142
149
|
failed: Tu solución no pasó las pruebas
|
143
|
-
faqs:
|
150
|
+
faqs: Información importante
|
151
|
+
faqs_abbreviated: Información
|
144
152
|
feedback: Problemas que encontramos
|
145
153
|
female: Mujer
|
146
154
|
file_exceeds_max_size: "El tamaño de archivo no debe exceder %{size_kb}kb. Por favor seleccioná otro archivo."
|
@@ -167,6 +175,7 @@ es:
|
|
167
175
|
home: Inicio
|
168
176
|
hour: hora
|
169
177
|
hours: horas
|
178
|
+
i_want_emails_of: Quiero recibir emails de
|
170
179
|
important_info: Información importante
|
171
180
|
initial_state: Tablero inicial
|
172
181
|
insert_file_name: Ingresa un nombre de archivo
|
@@ -179,6 +188,7 @@ es:
|
|
179
188
|
kids_default_success: ¡Lo hiciste muy bien!
|
180
189
|
language: Lenguaje
|
181
190
|
languages: Lenguajes
|
191
|
+
last_message: Último mensaje
|
182
192
|
last_name: Apellido
|
183
193
|
last_submission_date: Última solución
|
184
194
|
latest_exercises: Últimos ejercicios
|
@@ -194,7 +204,28 @@ es:
|
|
194
204
|
loading: Cargando
|
195
205
|
load_solution_into_console: Cargar la solución en la consola
|
196
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
|
197
226
|
male: Hombre
|
227
|
+
manage_notification_subscriptions: Administrá tus notificaciones
|
228
|
+
manage_notifications: Administrar notificaciones
|
198
229
|
manual_evaluation_pending: ¡Gracias por enviar tu solución! Tus docentes la corregirán pronto
|
199
230
|
medal: Medalla
|
200
231
|
message: Mensaje
|
@@ -218,6 +249,7 @@ es:
|
|
218
249
|
you_wont_confirmation: No te vas a ocupar de esta consulta.
|
219
250
|
my_account: Mi cuenta
|
220
251
|
my_doubts: Mis consultas
|
252
|
+
my_notifications: Mis notificaciones
|
221
253
|
my_profile: Mi perfil
|
222
254
|
name: Nombre
|
223
255
|
navigation_continue: 'Siguiente %{kind}: %{sibling}'
|
@@ -247,7 +279,12 @@ es:
|
|
247
279
|
not_found: ¡La página que buscaste no existe!
|
248
280
|
not_found_explanation: Fijate si escribiste bien la dirección.
|
249
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
|
250
286
|
notifications: Notificaciones
|
287
|
+
notifications_will_be_here: Tus notificaciones aparecerán aquí
|
251
288
|
notify_problem_with_exercise: Reportá un bug
|
252
289
|
office: Secretaría
|
253
290
|
only_landscape_support: Por favor, rotá tu tablet o celular para realizar ejercicios
|
@@ -270,6 +307,7 @@ es:
|
|
270
307
|
permissions: Permisos
|
271
308
|
please_fill_profile_data: ¡Completá tus datos personales para continuar!
|
272
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
|
273
311
|
preview: Vista previa
|
274
312
|
preview_error: No se puede mostrar la vista previa. Revisá tu conexión a internet o probá con un mensaje más corto.
|
275
313
|
previous_exercise: Anterior
|
@@ -278,7 +316,7 @@ es:
|
|
278
316
|
profile_of: Perfil de %{username}
|
279
317
|
programming_since: Programando desde
|
280
318
|
progress: Progreso
|
281
|
-
|
319
|
+
publish_discussion: Publicar consulta
|
282
320
|
read_messages: Ver mensajes
|
283
321
|
refresh_or_wait: Si no se muestra automáticamente en unos segundos, presioná F5
|
284
322
|
reply_count:
|
@@ -354,6 +392,7 @@ es:
|
|
354
392
|
to_opened: Reabrir
|
355
393
|
to_pending_review: Resolver
|
356
394
|
to_solved: Resolver
|
395
|
+
toggle_read: "Marcar como leído/no leído"
|
357
396
|
unauthorized_explanation: ¡Ups! Esto es lo que se conoce como %{error}, es decir que no iniciaste sesión.
|
358
397
|
total: Total
|
359
398
|
uncategorized: No categorizado
|
@@ -386,6 +425,7 @@ es:
|
|
386
425
|
wrong_answer: La respuesta no es correcta
|
387
426
|
years: años
|
388
427
|
you_earned: Ganaste
|
428
|
+
you_have_a_new_notification: ¡Tenés una nueva notificación!
|
389
429
|
you_must_sign_in_before_submitting: Tenés que iniciar sesión antes de empezar a enviar tus soluciones
|
390
430
|
you_never_submitted_solutions: Parece que nunca enviaste soluciones desde que creaste tu cuenta.
|
391
431
|
your_new_organization: tu nueva organización
|