mumuki-laboratory 8.2.1 → 8.6.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (106) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +19 -8
  3. data/app/assets/javascripts/mumuki_laboratory/application/bridge.js +2 -1
  4. data/app/assets/javascripts/mumuki_laboratory/application/button.js +0 -2
  5. data/app/assets/javascripts/mumuki_laboratory/application/codemirror.js +1 -1
  6. data/app/assets/javascripts/mumuki_laboratory/application/i18n.js +73 -0
  7. data/app/assets/javascripts/mumuki_laboratory/application/kids.js +22 -1
  8. data/app/assets/javascripts/mumuki_laboratory/application/kindergarten.js +6 -1
  9. data/app/assets/javascripts/mumuki_laboratory/application/primary.js +5 -3
  10. data/app/assets/javascripts/mumuki_laboratory/application/results-renderer.js +28 -1
  11. data/app/assets/javascripts/mumuki_laboratory/application/submission.js +72 -48
  12. data/app/assets/javascripts/mumuki_laboratory/application/upload.js +69 -14
  13. data/app/assets/stylesheets/mumuki_laboratory/application.scss +1 -0
  14. data/app/assets/stylesheets/mumuki_laboratory/application/_codemirror-themes.scss +1 -0
  15. data/app/assets/stylesheets/mumuki_laboratory/application/codemirror-themes/_mu-light.scss +3 -0
  16. data/app/assets/stylesheets/mumuki_laboratory/application/modules/_content_show.scss +1 -1
  17. data/app/assets/stylesheets/mumuki_laboratory/application/modules/_discussion.scss +31 -8
  18. data/app/assets/stylesheets/mumuki_laboratory/application/modules/_kids.scss +4 -0
  19. data/app/assets/stylesheets/mumuki_laboratory/application/modules/_kids_results.scss +1 -0
  20. data/app/assets/stylesheets/mumuki_laboratory/application/modules/_terms.scss +4 -0
  21. data/app/controllers/application_controller.rb +1 -1
  22. data/app/controllers/chapters_controller.rb +9 -5
  23. data/app/controllers/exam_authorization_requests_controller.rb +26 -0
  24. data/app/controllers/exam_registrations_controller.rb +6 -0
  25. data/app/controllers/guide_container_controller.rb +2 -7
  26. data/app/helpers/application_helper.rb +4 -0
  27. data/app/helpers/contextualization_result_helper.rb +0 -8
  28. data/app/helpers/discussions_helper.rb +8 -0
  29. data/app/helpers/exercise_input_helper.rb +8 -17
  30. data/app/helpers/icons_helper.rb +3 -11
  31. data/app/helpers/menu_bar_helper.rb +6 -2
  32. data/app/helpers/overlapped_buttons_helper.rb +10 -6
  33. data/app/helpers/progress_bar_helper.rb +2 -2
  34. data/app/views/book_discussions/index.html.erb +3 -1
  35. data/app/views/chapters/show.html.erb +21 -9
  36. data/app/views/complements/show.html.erb +1 -1
  37. data/app/views/discussions/_message.html.erb +7 -7
  38. data/app/views/discussions/index.html.erb +11 -4
  39. data/app/views/exam_authorization_requests/show.html.erb +17 -0
  40. data/app/views/exam_registrations/show.html.erb +37 -0
  41. data/app/views/exams/show.html.erb +1 -1
  42. data/app/views/exercises/show.html.erb +2 -2
  43. data/app/views/layouts/_discussions.html.erb +0 -4
  44. data/app/views/layouts/_guide.html.erb +4 -33
  45. data/app/views/layouts/_guide_container.html.erb +28 -0
  46. data/app/views/layouts/_guide_title_icons.html.erb +9 -0
  47. data/app/views/layouts/_progress_bar.html.erb +9 -7
  48. data/app/views/layouts/_progress_listing.html.erb +5 -5
  49. data/app/views/layouts/_social_media.html.erb +2 -2
  50. data/app/views/layouts/application.html.erb +4 -7
  51. data/app/views/layouts/exercise_inputs/editors/_upload.html.erb +11 -2
  52. data/app/views/layouts/exercise_inputs/layouts/_input_kindergarten.html.erb +1 -1
  53. data/app/views/layouts/modals/_kindergarten_results_aborted.html.erb +1 -1
  54. data/app/views/lessons/show.html.erb +1 -1
  55. data/app/views/notifications/_discussion.html.erb +1 -0
  56. data/app/views/notifications/_dropdown.html.erb +13 -0
  57. data/app/views/notifications/_exam_authorization_request.html.erb +1 -0
  58. data/app/views/notifications/_exam_registration.html.erb +1 -0
  59. data/app/views/notifications/_message.html.erb +1 -0
  60. data/app/views/users/_term.html.erb +1 -1
  61. data/app/views/users/terms.html.erb +1 -1
  62. data/config/routes.rb +3 -0
  63. data/lib/mumuki/laboratory/controllers/notifications.rb +3 -22
  64. data/lib/mumuki/laboratory/controllers/results_rendering.rb +2 -1
  65. data/lib/mumuki/laboratory/locales/en.yml +34 -24
  66. data/lib/mumuki/laboratory/locales/es-CL.yml +25 -10
  67. data/lib/mumuki/laboratory/locales/es.yml +32 -23
  68. data/lib/mumuki/laboratory/locales/pt.yml +27 -17
  69. data/lib/mumuki/laboratory/version.rb +1 -1
  70. data/spec/controllers/exam_authorization_requests_controller_spec.rb +40 -0
  71. data/spec/controllers/exam_registrations_controller_spec.rb +19 -0
  72. data/spec/controllers/exercise_solutions_controller_spec.rb +3 -2
  73. data/spec/dummy/db/schema.rb +50 -1
  74. data/spec/dummy/public/character/animations.json +1 -0
  75. data/{public → spec/dummy/public}/character/kibi/context.svg +0 -0
  76. data/{public → spec/dummy/public}/character/kibi/failure.svg +0 -0
  77. data/{public → spec/dummy/public}/character/kibi/jump.svg +0 -0
  78. data/spec/dummy/public/character/kibi/passed_with_warnings.svg +4 -0
  79. data/{public → spec/dummy/public}/character/kibi/success2_l.svg +0 -0
  80. data/{public → spec/dummy/public}/character/kibi/success_l.svg +0 -0
  81. data/{public → spec/dummy/public}/character/magnifying_glass/apparition.svg +0 -0
  82. data/{public → spec/dummy/public}/character/magnifying_glass/loop.svg +0 -0
  83. data/spec/features/chapters_flow_spec.rb +112 -0
  84. data/spec/features/login_flow_spec.rb +1 -1
  85. data/spec/features/notifications_flow_spec.rb +46 -0
  86. data/spec/features/profile_flow_spec.rb +1 -2
  87. data/spec/features/terms_flow_spec.rb +30 -0
  88. data/spec/features/topic_flow_spec.rb +0 -1
  89. data/spec/javascripts/bridge-spec.js +2 -2
  90. data/spec/javascripts/csrf-token-spec.js +2 -2
  91. data/spec/javascripts/editors-spec.js +7 -9
  92. data/spec/javascripts/elipsis-spec.js +4 -4
  93. data/spec/javascripts/events-spec.js +7 -7
  94. data/spec/javascripts/exercise-spec.js +7 -8
  95. data/spec/javascripts/global-spec.js +3 -3
  96. data/spec/javascripts/i18n-spec.js +82 -0
  97. data/spec/javascripts/kids-button-spec.js +34 -0
  98. data/spec/javascripts/results-renderers-spec.js +5 -5
  99. data/spec/javascripts/speech-bubble-renderer-spec.js +2 -3
  100. data/spec/javascripts/submissions-store-spec.js +14 -14
  101. data/spec/javascripts/sync-mode-spec.js +3 -3
  102. data/spec/javascripts/timeout-spec.js +2 -2
  103. data/spec/javascripts/timer-spec.js +2 -2
  104. data/spec/javascripts/upload-spec.js +80 -0
  105. metadata +131 -96
  106. data/spec/features/chapter_spec.rb +0 -70
@@ -1,4 +1,13 @@
1
1
  <div class="form-group">
2
- <textarea id="solution_content" type="text" name="solution[content]" style="display: none"></textarea>
3
- <input id="upload-input" type="file" class="upload submission-control" size="5120" accept=".<%= @exercise.language.extension %>" />
2
+ <% @max_file_size = 256000 %>
3
+
4
+ <textarea id="solution_content" type="text" name="solution[content]" class="hidden"></textarea>
5
+ <input id="mu-upload-input" type="file" class="upload submission-control hidden" mu-upload-file-limit=<%= @max_file_size %> accept=".<%= @exercise.language.extension %>" />
6
+ <div>
7
+ <label id="mu-upload-label" for="mu-upload-input" class="btn btn-success">
8
+ <%= fa_icon(:upload, text: t(:select_file), id: "mu-upload-icon") %>
9
+ </label>
10
+ <div id="mu-upload-file-limit-exceeded" class="hidden">
11
+ <%= fa_icon("exclamation-triangle", text: t(:file_exceeds_max_size, size_kb: (@max_file_size / 1000))) %></div>
12
+ </div>
4
13
  </div>
@@ -1,6 +1,6 @@
1
1
  <% content_for :no_container do %>
2
2
 
3
- <div <%= turbolinks_enable_for exercise %>>
3
+ <div <%= turbolinks_enable_for exercise %> data-i18n-prefix="kindergarten">
4
4
 
5
5
  <div class="mu-kids-landscape-support container-fluid">
6
6
  <img class="mu-kids-character-animation"/>
@@ -8,7 +8,7 @@
8
8
  </button>
9
9
  <div class="modal-header">
10
10
  <h4 class="modal-title text-broken">
11
- <strong><%= t :kindergarten_aborted %></strong>
11
+ <strong><%= t :aborted %></strong>
12
12
  </h4>
13
13
  </div>
14
14
  <div class="modal-body">
@@ -1 +1 @@
1
- <%= render partial: "layouts/guide", locals: { subject: @lesson }%>
1
+ <%= render partial: "layouts/guide_container", locals: { subject: @lesson }%>
@@ -0,0 +1 @@
1
+ <%= menu_item :comments, :new_discussion_message, url_for([target.item, target]), { title: target.item.name.truncate_words(3) } %>
@@ -0,0 +1,13 @@
1
+ <div class="dropdown mu-navbar-element notifications-box <%= 'notifications-box-empty' unless has_notifications? %>">
2
+ <div id="notificationsDropdown" class="profile-dropdown" data-toggle="dropdown" aria-label="<%= t(:notifications) %>" role="menu" tabindex="0">
3
+ <i class="fas fa-bell fa-fw fa-2x mu-navbar-icon"></i>
4
+ <span class="badge badge-notifications"><%= notifications_count %></span>
5
+ </div>
6
+ <ul id="notificationsPanel" class="dropdown-menu dropdown-menu-right" aria-labelledby="notificationsDropdown">
7
+ <% notifications.each do |it| %>
8
+ <li>
9
+ <%= notification_preview_for it.target %>
10
+ </li>
11
+ <% end %>
12
+ </ul>
13
+ </div>
@@ -0,0 +1 @@
1
+ <%= menu_item :book_open, :exam_authorization_request_updated, url_for(target), { description: target.exam_registration.description } %>
@@ -0,0 +1 @@
1
+ <%= menu_item :book_open, :exam_registration_open, url_for(target), { description: target.description } %>
@@ -0,0 +1 @@
1
+ <%= menu_item :envelope, :new_message_received, url_for(target.exercise), { sender: target.sender } %>
@@ -1,7 +1,7 @@
1
1
  <div class="terms-card">
2
2
  <details <%= 'open' unless collapsed %>>
3
3
  <summary class="terms-card-header">
4
- <h4><%= term.header %></h4>
4
+ <h4 class="terms-card-title"><%= term.header %></h4>
5
5
  </summary>
6
6
  <div class="terms-card-body">
7
7
  <%= term.content_html %>
@@ -1,5 +1,5 @@
1
1
  <%= content_for :breadcrumbs do %>
2
- <% if current_user? %>
2
+ <% if current_logged_user? %>
3
3
  <%= breadcrumbs @user %>
4
4
  <% else %>
5
5
  <%= header_breadcrumbs %>
data/config/routes.rb CHANGED
@@ -22,6 +22,9 @@ Rails.application.routes.draw do
22
22
  end
23
23
  end
24
24
 
25
+ resources :exam_registrations, only: [:show]
26
+ resources :exam_authorization_requests, only: [:show, :create, :update]
27
+
25
28
  resources :book, only: [:show]
26
29
  resources :chapters, only: [:show] do
27
30
  concerns :debatable, debatable_class: 'Chapter'
@@ -1,32 +1,13 @@
1
1
  module Mumuki::Laboratory::Controllers::Notifications
2
-
3
- def user_notifications_path
4
- user_path(anchor: current_notifications_tab)
5
- end
6
-
7
2
  def has_notifications?
8
3
  notifications_count > 0
9
4
  end
10
5
 
11
6
  def notifications_count
12
- messages_count + discussions_count
13
- end
14
-
15
- private
16
-
17
- def current_notifications_tab
18
- has_messages? ? 'messages' : 'discussions'
19
- end
20
-
21
- def has_messages?
22
- messages_count > 0
23
- end
24
-
25
- def messages_count
26
- current_user.try(:unread_messages).try(:count) || 0
7
+ notifications.size
27
8
  end
28
9
 
29
- def discussions_count
30
- current_user.try(:unread_discussions).try(:count) || 0
10
+ def notifications
11
+ current_user.try(:unread_notifications) || []
31
12
  end
32
13
  end
@@ -20,7 +20,8 @@ module Mumuki::Laboratory::Controllers::ResultsRendering
20
20
  .merge(
21
21
  html: render_results(layout, assignment),
22
22
  remaining_attempts_html: remaining_attempts_text(assignment),
23
- current_exp: UserStats.exp_for(assignment.submitter))
23
+ current_exp: UserStats.exp_for(assignment.submitter),
24
+ in_gamified_context: Organization.current.gamification_enabled?)
24
25
  end
25
26
 
26
27
  def merge_kids_specific_renders(assignment, results)
@@ -11,20 +11,20 @@ en:
11
11
  actual_state: Obtained board
12
12
  age: Age
13
13
  all: All
14
- appendix: "Appendix"
14
+ appendix: Appendix
15
15
  appendix_teaser: Do you want to learn more? <a href="%{link}">Check this chapter's appendix</a>"
16
16
  approved_message: Validated by mentor
17
- are_you_sure: 'Are you sure you want to %{action}?'
17
+ are_you_sure: Are you sure you want to %{action}?
18
18
  ask_a_question: Ask a question!
19
19
  ask_community: Ask community for help
20
20
  ask_redirect: Do you want to go there?
21
21
  ask_the_first_question: Be the first one to ask!
22
22
  attempts_left:
23
- zero: "You've run out of attempts "
23
+ zero: "You've run out of attempts"
24
24
  one: "1 attempt remaining"
25
25
  other: '%{count} attempts remaining'
26
26
  author: Author
27
- authoring: "Authoring"
27
+ authoring: Authoring
28
28
  authoring_note_html: This guide's content was developed by %{authors} under the terms of <a href="https://creativecommons.org/licenses/by-sa/4.0/" target="_blank">Creative Commons License Share-Alike, 4.0</a>
29
29
  authoring_note_with_collaborators_html: This guide's content was developed by %{authors} and <a href="%{collaborators}" target="_blank">many others</a>, under the terms of <a href="https://creativecommons.org/licenses/by-sa/4.0/" target="_blank">Creative Commons License Share-Alike, 4.0</a>
30
30
  back_to_mumuki: Back to Mumuki!
@@ -51,7 +51,7 @@ en:
51
51
  console: Console
52
52
  contact_administrator: 'If you think this is not supposed to happen, please contact %{link}'
53
53
  content: Content
54
- continue_exercise: "Continue"
54
+ continue_exercise: Continue
55
55
  continue_lesson: Continue this lesson!
56
56
  continue_practicing: Continue practicing!
57
57
  corollary: To think about
@@ -60,11 +60,12 @@ en:
60
60
  created_at: Created at
61
61
  date: Date
62
62
  description: Description
63
- destroy_message: delete the message
64
63
  destroy: Destroy
64
+ destroy_message: delete the message
65
65
  disabled_explanation: You are trying to visit a permamently disabled or deleted resource
66
66
  disabled_organization_explanation: This path has already finished.
67
67
  discussion_description_placeholder: You can add more information regarding your doubt.
68
+ new_discussion_message: New message on %{title}
68
69
  discussion_updated: Discussion updated
69
70
  discussions: Discussions
70
71
  dont_leave_us: Don't leave us! Learning is fun. You just have to keep at it.
@@ -73,19 +74,28 @@ en:
73
74
  edit_profile: Edit profile
74
75
  editor_placeholder: "write your solution here..."
75
76
  email: Email
76
- error_description: This is known as a <span class="error-link">%{error}</span>.
77
- error_401: 401 error
78
- error_403: 403 error
79
- error_404: 404 error
80
- error_410: 410 error
81
- error_500: 500 error
82
- errored: Oops, your solution didn't work
83
77
  error:
84
78
  title:
85
79
  forbidden: You are not allowed to see this content
86
80
  gone: Oops! Content has expired
87
81
  internal_server_error: Oops! Something went wrong
88
82
  not_found: Oops! Page was not found
83
+ error_401: 401 error
84
+ error_403: 403 error
85
+ error_404: 404 error
86
+ error_410: 410 error
87
+ error_500: 500 error
88
+ error_description: This is known as a <span class="error-link">%{error}</span>.
89
+ errored: Oops, your solution didn't work
90
+ exam_authorization_request_approved_html: Your request was approved, don't forget to log in at <strong>%{date}</strong>. Good luck!
91
+ exam_authorization_request_created: Your registration to the exam has been saved!
92
+ exam_authorization_request_rejected: Your request was rejected.
93
+ exam_authorization_request_saved: Your registration to the exam has been updated!
94
+ exam_authorization_request_updated: Your registration to %{description} has been updated
95
+ exam_registration_choose_exam: Choose date and time to attend to the exam
96
+ exam_registration_explanation_html: You have until <strong>%{date}</strong> to register. After that date, your request will be processed and you will receive a confirmation. <br> Don't forget to check the notifications!
97
+ exam_registration_open: Registrations open for %{description}!
98
+ exam_registration_to: Registration to %{description}
89
99
  exams: Exams
90
100
  exercise: Exercise
91
101
  exercises: Exercises
@@ -101,13 +111,15 @@ en:
101
111
  failed: Oops, something went wrong
102
112
  feedback: Feedback
103
113
  female: Female
114
+ file_exceeds_max_size: "File size should not exceed %{size_kb}kb. Please select another file."
104
115
  finish: Finish
105
116
  first_name: First Name
106
117
  forbidden_explanation: Please verify you have logged in with the right account
107
118
  format: Format
119
+ forum: Forum
108
120
  forum_terms: Forum rules
109
121
  forum_terms_link: If you have any questions, please check %{terms_link}
110
- fullscreen: "Fullscreen"
122
+ fullscreen: "Fullscreen (F11)"
111
123
  gender: Gender
112
124
  get_messages: "View messages"
113
125
  go_to: 'Go to %{organization}'
@@ -120,6 +132,7 @@ en:
120
132
  hidden_done: 'Good!'
121
133
  history: History
122
134
  home: Home
135
+ important_info: Important information
123
136
  initial_state: Initial board
124
137
  insert_file_name: Insert a file name
125
138
  invitation: Invitation to course
@@ -129,12 +142,6 @@ en:
129
142
  joining_html: '¡Welcome to course <strong>%{course}</strong>!'
130
143
  keep_learning: Keep learning!
131
144
  kids_default_success: You did it great!
132
- kindergarten_passed: "Your program worked great!"
133
- kindergarten_passed_with_warnings: "Your program worked great!"
134
- kindergarten_pending: "There's an error in your program. Try again!"
135
- kindergarten_failed: "There's an error in your program. Try again!"
136
- kindergarten_errored: "There's an error in your program. Try again!"
137
- kindergarten_aborted: "Ups! Something went wrong"
138
145
  language: Language
139
146
  last_name: Last Name
140
147
  last_seen: "Seen by %{name}"
@@ -160,8 +167,9 @@ en:
160
167
  message: Message
161
168
  messages: Messages
162
169
  messages_error: Previous messages are unavailable. Please try again later.
163
- more_messages: More
170
+ moderation: Mentoring
164
171
  moderator: Mentor
172
+ more_messages: More
165
173
  my_doubts: My doubts
166
174
  my_submissions: My Submissions
167
175
  name: Name
@@ -173,6 +181,7 @@ en:
173
181
  never: never
174
182
  new: New
175
183
  new_message_placeholder: Write a message for your teacher...
184
+ new_message_received: You have a new message from %{sender}
176
185
  next_exercise: Next
177
186
  next_lesson: 'Next Guide: %{name}'
178
187
  no_discussions: No discussions matched your search.
@@ -185,6 +194,7 @@ en:
185
194
  no_useful_result: Didn't find what you were looking for?
186
195
  not_found_explanation: 'You may have mistyped the address or the page may have moved.'
187
196
  not_in_any_organizations: It seems you aren't in any organizations yet!
197
+ notifications: Notifications
188
198
  notify_problem_with_exercise: Report a bug
189
199
  office: Office
190
200
  only_landscape_support: Please, rotate your tablet or cellphone to continue practicing
@@ -224,6 +234,7 @@ en:
224
234
  running: running
225
235
  save: Save
226
236
  see_context: Watch exercise introduction animation
237
+ select_file: Select file
227
238
  sending_solution: Sending solution
228
239
  show: Show
229
240
  sign_in: Sign in
@@ -261,7 +272,7 @@ en:
261
272
  tell_us_how: Please tell us how this happened!
262
273
  tell_us_if_our_error: If you think this is our fault, %{issues}
263
274
  terms_accepted: The terms and conditions were accepted
264
- terms_and_conditions: Terms and conditions
275
+ terms_and_conditions: Terms and Conditions
265
276
  terms_and_conditions_continue_disclaimer: By continuing you agree to %{terms_link}
266
277
  terms_and_conditions_must_be_accepted: You must accept the terms and conditions
267
278
  test_results: Test results
@@ -280,13 +291,12 @@ en:
280
291
  unprepared_organization_explanation: This path hasn't started yet.
281
292
  unsubscribe: Unsubscribe
282
293
  unsubscribed_successfully: You have successfully unsubscribed from reminders.
283
- upload_solution: Upload Solution
284
294
  uploading_solution: "Uploading solution"
285
295
  upvote: Upvote
286
296
  upvotes_count_desc: Most voted
287
297
  upvotes_count_asc: Least voted
288
298
  user: User
289
- user_data_updated: Your data was updated successfuly
299
+ user_data_updated: Your data was updated successfully
290
300
  username: Username
291
301
  view_details: View details
292
302
  want_permissions: The next user requires permissions
@@ -9,7 +9,7 @@ es-CL:
9
9
  actual_state: Tablero obtenido
10
10
  all: Todos
11
11
  and: y
12
- appendix: "Apéndice"
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
14
  are_you_sure: '¿Estás seguro que quieres %{action}?'
15
15
  ask_a_question: ¡Haz una pregunta!
@@ -21,7 +21,7 @@ es-CL:
21
21
  one: '1 intento restante'
22
22
  other: '%{count} intentos restantes'
23
23
  author: Autor
24
- authoring: "Autores"
24
+ authoring: Autores
25
25
  authoring_note_html: Esta guía fue desarrollada por %{authors} bajo los términos de la <a href="https://creativecommons.org/licenses/by-sa/4.0/" target="_blank">Licencia Creative Commons Compartir-Igual, 4.0</a>.
26
26
  authoring_note_with_collaborators_html: Esta guía fue desarrollada por %{authors} y <a href="%{collaborators}" target="_blank">muchas personas más</a>, bajo los términos de la <a href="https://creativecommons.org/licenses/by-sa/4.0/" target="_blank">Licencia Creative Commons Compartir-Igual, 4.0</a>.
27
27
  back_to_mumuki: ¡Vuelve a Mumuki!
@@ -65,6 +65,7 @@ es-CL:
65
65
  details: Detalles
66
66
  disabled_explanation: Estás intentando acceder a un recurso que fue deshabilitado o eliminado de forma permanente
67
67
  disabled_organization_explanation: ¡Este recorrido ha finalizado!
68
+ new_discussion_message: Mensaje nuevo en %{title}
68
69
  discussion_updated: Consulta actualizada
69
70
  discussions: Consultas
70
71
  dont_leave_us: ¡No nos abandones! Aprender a programar es divertido. Sólo tienes que seguir practicando.
@@ -78,13 +79,22 @@ es-CL:
78
79
  error_404: error 404
79
80
  error_410: error 410
80
81
  error_500: error 500
81
- errored: ¡Ups! Tu solución no se puede ejecutar
82
82
  error:
83
83
  title:
84
84
  forbidden: No tienes autorización para ver este contenido
85
85
  gone: ¡Ups! El contenido expiró
86
86
  internal_server_error: ¡Ups! Algo no anduvo bien
87
87
  not_found: ¡Ups! La página no existe
88
+ errored: ¡Ups! Tu solución no se puede ejecutar
89
+ exam_authorization_request_approved_html: Tu solicitud fue aprobada, no olvides conectarte el <strong>%{date}</strong>. ¡Buena suerte!
90
+ exam_authorization_request_created: ¡Tu inscripción al exámen se registró exitosamente!
91
+ exam_authorization_request_rejected: Tu solicitud fue rechazada.
92
+ exam_authorization_request_saved: ¡Tu inscripción al exámen se modificó exitosamente!
93
+ exam_authorization_request_updated: Hay novedades sobre tu inscripción a %{description}
94
+ exam_registration_choose_exam: Seleccioná día y horario en el que te gustaría rendir el exámen
95
+ exam_registration_explanation_html: Tienes tiempo hasta el <strong>%{date}</strong> para inscribirte. Pasada esa fecha, tu solicitud será evaluada y recibirás una confirmación. <br> ¡No olvides revisar las notificaciones!
96
+ exam_registration_open: ¡Ya puedes inscribirte a %{description}!
97
+ exam_registration_to: Inscripción a %{description}
88
98
  exams: Exámenes
89
99
  exercise: Ejercicio
90
100
  exercise_count: ejercicios
@@ -99,12 +109,13 @@ es-CL:
99
109
  failed: Tu solución no pasó las pruebas
100
110
  feedback: Problemas que encontramos
101
111
  female: Mujer
112
+ file_exceeds_max_size: "El tamaño de archivo no debe exceder %{size_kb}kb. Por favor selecciona otro archivo."
102
113
  finish: Terminar
103
114
  first_name: Nombre
104
115
  forbidden_explanation: ¿Puede que hayas ingresado con una cuenta incorrecta?
105
116
  format: Dar formato
106
- forum_terms_link: Si tienes alguna duda, accede a las %{terms_link}
107
- fullscreen: "Pantalla completa"
117
+ forum_terms_link: No olvides que al participar debes cumplir las %{terms_link}
118
+ fullscreen: "Pantalla completa (F11)"
108
119
  gender: Género
109
120
  get_messages: "Ver mensajes"
110
121
  go_to: 'Ir a %{organization}'
@@ -120,6 +131,7 @@ es-CL:
120
131
  home: Inicio
121
132
  hour: hora
122
133
  hours: horas
134
+ important_info: Información importante
123
135
  initial_state: Tablero inicial
124
136
  insert_file_name: Ingresa un nombre de archivo
125
137
  invitation: Invitación a curso
@@ -156,8 +168,9 @@ es-CL:
156
168
  messages_error: Los mensajes anteriores no están disponibles en este momento. ¡Vuelve a intentar más tarde!
157
169
  minute: minuto
158
170
  minutes: minutos
171
+ moderation: Mentoría
172
+ moderator: Mentor
159
173
  more_messages: Ver mensajes anteriores
160
- moderator: Moderador
161
174
  my_doubts: Mis consultas
162
175
  name: Nombre
163
176
  navigation_continue: 'Siguiente %{kind}: %{sibling}'
@@ -167,22 +180,24 @@ es-CL:
167
180
  need_help: No entiendo, ¡necesito ayuda!
168
181
  never: nunca
169
182
  new: Nuevo
170
- new_message: ¿Tienes dudas? ¡Levanta la mano!
171
183
  new_discussion: Nueva consulta
184
+ new_message: ¿Tienes dudas? ¡Levanta la mano!
172
185
  new_message_placeholder: Escribe el mensaje para tu docente acá...
186
+ new_message_received: Tienes un nuevo mensaje de %{sender}
173
187
  next_exercise: Siguiente
174
188
  next_guide: 'Siguiente Lección: %{name}'
175
189
  no_discussions: No encontramos consultas que coincidan con tu búsqueda.
176
190
  no_exercises: No encontramos ejercicios que coincidan con tu búsqueda.
177
191
  no_guides: No encontramos lecciones que coincidan con tu búsqueda.
178
192
  no_messages: ¡Parece que no tienes ningún mensaje todavía!
179
- no_need_hint: 'Este ejercicio no tiene pista'
193
+ no_need_hint: Este ejercicio no tiene pista
180
194
  no_questions: Parece que aún no hay ninguna consulta.
181
195
  no_submissions: ¡Parece que aún no intentaste resolver este ejercicio!
182
196
  no_useful_result: ¿No encontraste lo que estabas buscando?
183
197
  not_found: ¡La página que buscaste no existe!
184
198
  not_found_explanation: Fíjate si escribiste bien la dirección.
185
199
  not_in_any_organizations: ¡Parece que no estás en ninguna organización todavía!
200
+ notifications: Notificaciones
186
201
  notify_problem_with_exercise: Reporta un bug
187
202
  office: Secretaría
188
203
  only_landscape_support: Por favor, rota tu tablet o celular para realizar ejercicios
@@ -222,6 +237,7 @@ es-CL:
222
237
  running: procesando
223
238
  save: Guardar
224
239
  see_context: Mira la animación del principio
240
+ select_file: Seleccionar archivo
225
241
  send: Enviar
226
242
  sending_solution: Enviando solución
227
243
  show: Mostrar
@@ -263,7 +279,7 @@ es-CL:
263
279
  teacher_info: Información para docentes
264
280
  tell_us_how: ¡Cuéntanos cómo te pasó esto!
265
281
  tell_us_if_our_error: Si piensas que es un error nuestro, %{issues}
266
- terms_and_conditions: Términos y condiciones
282
+ terms_and_conditions: Términos y Condiciones
267
283
  terms_and_conditions_continue_disclaimer: Al continuar aceptas los %{terms_link}
268
284
  terms_and_conditions_must_be_accepted: Tienes que aceptar los términos y condiciones
269
285
  test_results: Resultados de las pruebas
@@ -283,7 +299,6 @@ es-CL:
283
299
  unprepared_organization_explanation: ¡Este recorrido aún no ha comenzado!
284
300
  unsubscribe: Dejar de recibir notificaciones
285
301
  unsubscribed_successfully: Te desuscribiste exitosamente de los recordatorios.
286
- upload_solution: "Subir solución"
287
302
  uploading_solution: "Subiendo solución"
288
303
  upvote: Es útil
289
304
  upvotes_count_desc: Más útiles