mumuki-laboratory 9.8.1 → 9.11.0
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/messages.js +1 -30
- 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/_editor.scss +3 -0
- data/app/assets/stylesheets/mumuki_laboratory/application/modules/_faqs.scss +1 -1
- data/app/controllers/application_controller.rb +1 -1
- data/app/controllers/messages_controller.rb +2 -5
- data/app/controllers/users_controller.rb +38 -1
- data/app/helpers/application_helper.rb +6 -2
- data/app/helpers/discussions_helper.rb +11 -4
- data/app/helpers/exam_registration_helper.rb +0 -4
- data/app/helpers/icons_helper.rb +1 -1
- data/app/helpers/menu_bar_helper.rb +7 -3
- data/app/helpers/messages_helper.rb +4 -8
- data/app/helpers/notifications_helper.rb +13 -0
- data/app/helpers/profile_helper.rb +4 -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 +9 -1
- data/app/views/discussions/new.html.erb +1 -1
- data/app/views/layouts/_copyright.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/_messages.html.erb +1 -7
- data/app/views/layouts/_user_menu.html.erb +1 -0
- data/app/views/layouts/application.html.erb +1 -1
- data/app/views/layouts/exercise_inputs/forms/_interactive_form.html.erb +1 -1
- data/app/views/layouts/exercise_inputs/forms/_problem_form.html.erb +1 -1
- 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 +1 -5
- data/app/views/user_mailer/2nd_reminder.html.erb +7 -349
- data/app/views/user_mailer/2nd_reminder.text.erb +1 -5
- data/app/views/user_mailer/3rd_reminder.html.erb +7 -349
- data/app/views/user_mailer/3rd_reminder.text.erb +1 -5
- 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 +1 -4
- data/app/views/user_mailer/no_submissions_reminder.html.erb +7 -349
- data/app/views/user_mailer/no_submissions_reminder.text.erb +1 -5
- 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/_basic_profile_fields.html.erb +30 -0
- data/app/views/users/_profile_fields.html.erb +1 -20
- data/app/views/users/discussions.html.erb +19 -11
- data/app/views/users/manage_notifications.html.erb +26 -0
- data/app/views/users/messages.html.erb +1 -1
- data/app/views/users/notifications.html.erb +54 -0
- data/config/routes.rb +4 -1
- data/lib/mumuki/laboratory/controllers/notifications.rb +2 -2
- data/lib/mumuki/laboratory/locales/en.yml +46 -7
- data/lib/mumuki/laboratory/locales/es-CL.yml +47 -7
- data/lib/mumuki/laboratory/locales/es.yml +48 -9
- data/lib/mumuki/laboratory/locales/pt.yml +45 -6
- data/lib/mumuki/laboratory/version.rb +1 -1
- data/spec/controllers/organizations_api_controller_spec.rb +6 -1
- data/spec/controllers/students_api_controller_spec.rb +1 -1
- data/spec/controllers/users_controller_spec.rb +48 -0
- data/spec/dummy/db/schema.rb +9 -1
- data/spec/features/not_found_public_flow_spec.rb +1 -1
- data/spec/features/notifications_flow_spec.rb +2 -1
- data/spec/features/profile_flow_spec.rb +1 -1
- data/spec/mailers/previews/user_mailer_preview.rb +45 -1
- metadata +136 -119
- data/app/views/messages/errors.html.erb +0 -1
- 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
@@ -1,20 +1 @@
|
|
1
|
-
|
2
|
-
<div><%= form.label(t :first_name) %></div>
|
3
|
-
<div><%= form.text_field :first_name, required: true, class: 'form-control' %></div>
|
4
|
-
</fieldset>
|
5
|
-
<fieldset>
|
6
|
-
<div><%= form.label(t :last_name) %></div>
|
7
|
-
<div><%= form.text_field :last_name, required: true, class: 'form-control' %></div>
|
8
|
-
</fieldset>
|
9
|
-
<fieldset>
|
10
|
-
<div><%= form.label(t :gender) %></div>
|
11
|
-
<div><%= form.select :gender, options_for_select(User.genders.map { |gender, _| [t(gender), gender] }, @user.gender), {}, required: true, class: 'form-control form-select' %></div>
|
12
|
-
</fieldset>
|
13
|
-
<fieldset>
|
14
|
-
<div><%= form.label(t :birthdate) %></div>
|
15
|
-
<div><%= form.date_field :birthdate, min: Date.new(1900), max: 3.years.ago.end_of_year, required: true, class: 'form-control' %></div>
|
16
|
-
</fieldset>
|
17
|
-
<fieldset>
|
18
|
-
<div><%= form.label(t :email) %></div>
|
19
|
-
<div><%= form.text_field :email, readonly: true, class: 'form-control' %></div>
|
20
|
-
</fieldset>
|
1
|
+
<%= render partial: 'users/basic_profile_fields', locals: {form: form} %>
|
@@ -14,17 +14,25 @@
|
|
14
14
|
<%= t :discussions_will_be_here %>
|
15
15
|
</div>
|
16
16
|
<% else %>
|
17
|
-
<
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
<%=
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
17
|
+
<div class="table-responsive mb-3">
|
18
|
+
<table class="table">
|
19
|
+
<% @watched_discussions.each do |discussion| %>
|
20
|
+
<% if discussion.read_by?(@user) != @last_read %>
|
21
|
+
<%= user_discussions_table_title(discussion, @user, @last_read) %>
|
22
|
+
<% @last_read = discussion.read_by?(@user) %>
|
23
|
+
|
24
|
+
<%= user_discussions_table_header %>
|
25
|
+
<% end %>
|
26
|
+
|
27
|
+
<%= user_discussions_table_item(discussion, @user) %>
|
28
|
+
<% end %>
|
29
|
+
</table>
|
30
|
+
</div>
|
31
|
+
|
32
|
+
<div class="discussion-pagination">
|
33
|
+
<%= paginate @watched_discussions, nav_class: 'pagination' %>
|
34
|
+
</div>
|
35
|
+
|
28
36
|
<% end %>
|
29
37
|
</div>
|
30
38
|
</div>
|
@@ -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 :submit %></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
|
+
|
@@ -16,7 +16,7 @@
|
|
16
16
|
<% else %>
|
17
17
|
<table class="table table-striped">
|
18
18
|
<% @messages.each do |message| %>
|
19
|
-
<tr>
|
19
|
+
<tr class="<%= staleness_class(message) %>" >
|
20
20
|
<td><%= icon_for_read(message.read?) %></td>
|
21
21
|
<td><%= link_to message.exercise.name, exercise_path(message.exercise.id) %></td>
|
22
22
|
<td><%= mail_to message.sender %></td>
|
@@ -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,12 +72,15 @@ 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]
|
78
82
|
|
79
83
|
resources :messages, only: [:index, :create]
|
80
|
-
get '/messages/errors' => 'messages#errors'
|
81
84
|
|
82
85
|
get 'certificates/verify/:code', to: 'certificates#verify', as: :verify_certificate
|
83
86
|
get 'certificates/download/:code', to: 'certificates#download', as: :download_certificate
|
@@ -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,13 +193,33 @@ 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
|
190
221
|
message_deleted: This message was deleted because it %{motive}, which violates the %{forum_terms}.
|
191
222
|
messages: Messages
|
192
|
-
messages_error: Previous messages are unavailable. Please try again later.
|
193
223
|
messages_pluralized:
|
194
224
|
one: Message
|
195
225
|
other: Messages
|
@@ -204,9 +234,9 @@ en:
|
|
204
234
|
you_are: You're taking care of it
|
205
235
|
you_will_confirmation: You'll take care of this discussion. If you change your mind, click the button again.
|
206
236
|
you_wont_confirmation: You won't take care of this discussion.
|
207
|
-
more_messages: More
|
208
237
|
my_account: My account
|
209
238
|
my_doubts: My doubts
|
239
|
+
my_notifications: My notifications
|
210
240
|
my_profile: My profile
|
211
241
|
my_submissions: My Submissions
|
212
242
|
name: Name
|
@@ -234,7 +264,12 @@ en:
|
|
234
264
|
no_useful_result: Didn't find what you were looking for?
|
235
265
|
not_found_explanation: 'You may have mistyped the address or the page may have moved.'
|
236
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
|
237
271
|
notifications: Notifications
|
272
|
+
notifications_will_be_here: Notifications will be here
|
238
273
|
notify_problem_with_exercise: Report a bug
|
239
274
|
office: Office
|
240
275
|
only_landscape_support: Please, rotate your tablet or cellphone to continue practicing
|
@@ -254,6 +289,7 @@ en:
|
|
254
289
|
permissions: Permissions
|
255
290
|
please_fill_profile_data: Please complete your profile data to continue!
|
256
291
|
please_validate: 'Please validate your data before continue:'
|
292
|
+
preferences_updated_successfully: Preferences updated successfully
|
257
293
|
preview: Preview
|
258
294
|
preview_error: The preview cannot be shown. Check your internet connection or try with a shorter message.
|
259
295
|
previous_exercise: Previous
|
@@ -261,8 +297,8 @@ en:
|
|
261
297
|
processing_your_solution: We are processing you solution
|
262
298
|
profile_of: Profile of %{username}
|
263
299
|
programming_since: Started programming
|
264
|
-
progress:
|
265
|
-
|
300
|
+
progress: Progress
|
301
|
+
publish_discussion: Publish discussion
|
266
302
|
refresh_or_wait: Please press F5 if results are not displayed after a few seconds
|
267
303
|
reply_count:
|
268
304
|
one: 1 reply
|
@@ -323,7 +359,7 @@ en:
|
|
323
359
|
terms_and_conditions_continue_disclaimer: By continuing you agree to %{terms_link}
|
324
360
|
terms_and_conditions_must_be_accepted: You must accept the terms and conditions
|
325
361
|
test_results: Test results
|
326
|
-
|
362
|
+
time_since: "%{time} ago"
|
327
363
|
time_left: You have
|
328
364
|
title: Title
|
329
365
|
to_closed: Close
|
@@ -346,6 +382,8 @@ en:
|
|
346
382
|
user: User
|
347
383
|
user_data_updated: Your data was updated successfully
|
348
384
|
username: Username
|
385
|
+
verified_full_name: Verified name
|
386
|
+
verified_full_name_notice: Your verified name was provided by %{organization}. If there's a mistake, please send an email to %{contact}.
|
349
387
|
view_details: View details
|
350
388
|
want_permissions: The following user requires permissions for the organization
|
351
389
|
we_miss_you: We miss you!
|
@@ -355,6 +393,7 @@ en:
|
|
355
393
|
wrong_answer: The answer is wrong
|
356
394
|
years: years old
|
357
395
|
you_earned: You earned
|
396
|
+
you_have_a_new_notification: You have a new notification!
|
358
397
|
you_must_sign_in_before_submitting: You must sign in before submitting your solutions
|
359
398
|
you_never_submitted_solutions: It seems that you've never submitted solutions since you created your account.
|
360
399
|
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,13 +195,33 @@ 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
|
191
223
|
message_deleted: Este mensaje fue eliminado porque %{motive}, lo cual infringe las %{forum_terms}.
|
192
224
|
messages: Mensajes
|
193
|
-
messages_error: Los mensajes anteriores no están disponibles en este momento. ¡Vuelve a intentar más tarde!
|
194
225
|
messages_pluralized:
|
195
226
|
one: Mensaje
|
196
227
|
other: Mensajes
|
@@ -207,9 +238,9 @@ es-CL:
|
|
207
238
|
you_are: Te estás ocupando
|
208
239
|
you_will_confirmation: Te vas a ocupar de esta consulta. Si cambias de parecer, toca nuevamente el botón.
|
209
240
|
you_wont_confirmation: No te vas a ocupar de esta consulta.
|
210
|
-
more_messages: Ver mensajes anteriores
|
211
241
|
my_account: Mi cuenta
|
212
242
|
my_doubts: Mis consultas
|
243
|
+
my_notifications: Mis notificaciones
|
213
244
|
my_profile: Mi perfil
|
214
245
|
name: Nombre
|
215
246
|
navigation_continue: 'Siguiente %{kind}: %{sibling}'
|
@@ -239,7 +270,12 @@ es-CL:
|
|
239
270
|
not_found: ¡La página que buscaste no existe!
|
240
271
|
not_found_explanation: Fíjate si escribiste bien la dirección.
|
241
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
|
242
277
|
notifications: Notificaciones
|
278
|
+
notifications_will_be_here: Tus notificaciones aparecerán aquí
|
243
279
|
notify_problem_with_exercise: Reporta un bug
|
244
280
|
office: Secretaría
|
245
281
|
only_landscape_support: Por favor, rota tu tablet o celular para realizar ejercicios
|
@@ -262,6 +298,7 @@ es-CL:
|
|
262
298
|
permissions: Permisos
|
263
299
|
please_fill_profile_data: ¡Completa tus datos personales para continuar!
|
264
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
|
265
302
|
preview: Vista previa
|
266
303
|
preview_error: No se puede mostrar la vista previa. Revisa tu conexión a internet o prueba con un mensaje más corto.
|
267
304
|
previous_exercise: Anterior
|
@@ -269,7 +306,7 @@ es-CL:
|
|
269
306
|
processing_your_solution: Estamos procesando tu solución
|
270
307
|
profile_of: Perfil de %{username}
|
271
308
|
progress: Progreso
|
272
|
-
|
309
|
+
publish_discussion: Publicar consulta
|
273
310
|
read_messages: Ver mensajes
|
274
311
|
refresh_or_wait: Si no se muestra automáticamente en unos segundos, presiona F5
|
275
312
|
reply_count:
|
@@ -358,6 +395,8 @@ es-CL:
|
|
358
395
|
user_data_updated: Tus datos se actualizaron correctamente
|
359
396
|
user: Usuario
|
360
397
|
username: Nombre de usuario
|
398
|
+
verified_full_name: Nombre verificado
|
399
|
+
verified_full_name_notice: Tu nombre verificado fue provisto por %{organization}. Si hay algún error, por favor escribe a %{contact}.
|
361
400
|
view_details: Ver detalles
|
362
401
|
want_permissions: El siguiente usuario requiere permisos para la organización
|
363
402
|
we_miss_you: ¡Te extrañamos!
|
@@ -369,5 +408,6 @@ es-CL:
|
|
369
408
|
working: "Procesando"
|
370
409
|
wrong_answer: La respuesta no es correcta
|
371
410
|
you_earned: Ganaste
|
411
|
+
you_have_a_new_notification: ¡Tenés una nueva notificación!
|
372
412
|
you_must_sign_in_before_submitting: Tienes que iniciar sesión antes de empezar a enviar tus soluciones
|
373
413
|
you_never_submitted_solutions: Parece que nunca enviaste soluciones desde que creaste tu cuenta.
|