mumuki-laboratory 9.0.4 → 9.1.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (169) hide show
  1. checksums.yaml +4 -4
  2. data/app/assets/javascripts/mumuki_laboratory/application/codemirror.js +10 -2
  3. data/app/assets/javascripts/mumuki_laboratory/application/discussions.js +49 -8
  4. data/app/assets/javascripts/mumuki_laboratory/application/gamification.js +3 -3
  5. data/app/assets/javascripts/mumuki_laboratory/application/kids.js +11 -7
  6. data/app/assets/javascripts/mumuki_laboratory/application/kindergarten.js +3 -3
  7. data/app/assets/javascripts/mumuki_laboratory/application/messages.js +3 -3
  8. data/app/assets/javascripts/mumuki_laboratory/application/mu-modal-carrousel.js +4 -4
  9. data/app/assets/javascripts/mumuki_laboratory/application/multiple-files.js +18 -5
  10. data/app/assets/javascripts/mumuki_laboratory/application/multiple-scenarios.js +1 -1
  11. data/app/assets/javascripts/mumuki_laboratory/application/primary.js +4 -4
  12. data/app/assets/javascripts/mumuki_laboratory/application/profile.js +0 -6
  13. data/app/assets/javascripts/mumuki_laboratory/application/progress.js +1 -1
  14. data/app/assets/javascripts/mumuki_laboratory/application/speech-bubble-renderer.js +1 -1
  15. data/app/assets/javascripts/mumuki_laboratory/application/submission.js +4 -3
  16. data/app/assets/javascripts/mumuki_laboratory/application/toast.js +3 -0
  17. data/app/assets/javascripts/mumuki_laboratory/application/tooltip.js +1 -1
  18. data/app/assets/javascripts/mumuki_laboratory/application/upload.js +2 -2
  19. data/app/assets/javascripts/mumuki_laboratory/application/user.js +1 -1
  20. data/app/assets/stylesheets/mumuki_laboratory/application.scss +0 -1
  21. data/app/assets/stylesheets/mumuki_laboratory/application/_errors.scss +1 -1
  22. data/app/assets/stylesheets/mumuki_laboratory/application/_layout.scss +1 -27
  23. data/app/assets/stylesheets/mumuki_laboratory/application/_modules.scss +1 -2
  24. data/app/assets/stylesheets/mumuki_laboratory/application/modules/_activity.scss +14 -0
  25. data/app/assets/stylesheets/mumuki_laboratory/application/modules/_avatar.scss +5 -0
  26. data/app/assets/stylesheets/mumuki_laboratory/application/modules/_breadcrumb.scss +2 -2
  27. data/app/assets/stylesheets/mumuki_laboratory/application/modules/_datepicker.scss +0 -4
  28. data/app/assets/stylesheets/mumuki_laboratory/application/modules/_discussion.scss +49 -59
  29. data/app/assets/stylesheets/mumuki_laboratory/application/modules/_editor.scss +16 -18
  30. data/app/assets/stylesheets/mumuki_laboratory/application/modules/_exercise_assignment.scss +2 -11
  31. data/app/assets/stylesheets/mumuki_laboratory/application/modules/_exercise_results.scss +1 -7
  32. data/app/assets/stylesheets/mumuki_laboratory/application/modules/_faqs.scss +3 -3
  33. data/app/assets/stylesheets/mumuki_laboratory/application/modules/_flash.scss +7 -46
  34. data/app/assets/stylesheets/mumuki_laboratory/application/modules/_kids.scss +19 -4
  35. data/app/assets/stylesheets/mumuki_laboratory/application/modules/_kids_results.scss +18 -23
  36. data/app/assets/stylesheets/mumuki_laboratory/application/modules/_kindergarten.scss +1 -9
  37. data/app/assets/stylesheets/mumuki_laboratory/application/modules/_overlap.scss +1 -1
  38. data/app/assets/stylesheets/mumuki_laboratory/application/modules/_progress_bar.scss +5 -5
  39. data/app/assets/stylesheets/mumuki_laboratory/application/modules/_terms.scss +3 -2
  40. data/app/assets/stylesheets/mumuki_laboratory/application/modules/_timer.scss +1 -3
  41. data/app/assets/stylesheets/mumuki_laboratory/application/modules/_user_menu.scss +14 -7
  42. data/app/assets/stylesheets/mumuki_laboratory/application/modules/_user_profile.scss +1 -2
  43. data/app/controllers/application_controller.rb +4 -2
  44. data/app/controllers/discussions_messages_controller.rb +9 -3
  45. data/app/controllers/users_controller.rb +13 -0
  46. data/app/helpers/application_helper.rb +5 -5
  47. data/app/helpers/assignment_result_helper.rb +3 -2
  48. data/app/helpers/assistance_box_helper.rb +1 -1
  49. data/app/helpers/concerns/with_student_path_navigation.rb +8 -3
  50. data/app/helpers/concerns/with_student_path_navigation/continue_navigation.rb +1 -1
  51. data/app/helpers/concerns/with_student_path_navigation/finish_navigation.rb +1 -1
  52. data/app/helpers/concerns/with_student_path_navigation/next_parent_navigation.rb +7 -0
  53. data/app/helpers/concerns/with_student_path_navigation/revisit_navigation.rb +1 -1
  54. data/app/helpers/discussions_helper.rb +64 -23
  55. data/app/helpers/editor_tabs_helper.rb +10 -6
  56. data/app/helpers/email_helper.rb +2 -2
  57. data/app/helpers/exercise_input_helper.rb +2 -3
  58. data/app/helpers/links_helper.rb +12 -9
  59. data/app/helpers/menu_bar_helper.rb +1 -1
  60. data/app/helpers/messages_helper.rb +1 -1
  61. data/app/helpers/multiple_file_editor_helper.rb +2 -1
  62. data/app/helpers/overlapped_buttons_helper.rb +22 -12
  63. data/app/helpers/profile_helper.rb +3 -3
  64. data/app/helpers/toast_helper.rb +27 -0
  65. data/app/helpers/user_activity_helper.rb +48 -0
  66. data/app/helpers/user_menu_helper.rb +4 -0
  67. data/app/views/book/show.html.erb +2 -2
  68. data/app/views/certificates/verify.html.erb +1 -1
  69. data/app/views/chapters/show.html.erb +2 -2
  70. data/app/views/discussions/_description_message.html.erb +1 -1
  71. data/app/views/discussions/_message.html.erb +32 -7
  72. data/app/views/discussions/_new_message.html.erb +13 -2
  73. data/app/views/discussions/index.html.erb +8 -10
  74. data/app/views/discussions/new.html.erb +2 -2
  75. data/app/views/discussions/show.html.erb +20 -12
  76. data/app/views/exam_registrations/show.html.erb +10 -11
  77. data/app/views/exercise_solutions/_assistant_rules_box.html.erb +1 -1
  78. data/app/views/exercise_solutions/_contextualization_results_body.html.erb +1 -1
  79. data/app/views/exercise_solutions/_contextualization_results_container.html.erb +1 -1
  80. data/app/views/exercise_solutions/_kids_results_button.html.erb +2 -2
  81. data/app/views/exercise_solutions/_results.html.erb +1 -1
  82. data/app/views/exercises/_exercise_assignment.html.erb +2 -2
  83. data/app/views/exercises/_exercise_skipped.html.erb +1 -1
  84. data/app/views/exercises/_read_only.html.erb +108 -105
  85. data/app/views/exercises/show.html.erb +7 -7
  86. data/app/views/guides/_guide.html.erb +1 -1
  87. data/app/views/guides/_guide_container.html.erb +4 -4
  88. data/app/views/invitations/_invitation_form.html.erb +5 -4
  89. data/app/views/layouts/_authoring.html.erb +1 -1
  90. data/app/views/layouts/_discussions.html.erb +7 -7
  91. data/app/views/layouts/_kids.html.erb +5 -5
  92. data/app/views/layouts/_kindergarten.html.erb +10 -6
  93. data/app/views/layouts/_main.html.erb +6 -10
  94. data/app/views/layouts/_organizations_listing.html.erb +2 -2
  95. data/app/views/layouts/_progress_bar.html.erb +2 -0
  96. data/app/views/layouts/_submission_result_error.html.erb +1 -1
  97. data/app/views/layouts/_test_results.html.erb +1 -1
  98. data/app/views/layouts/_timer.html.erb +1 -1
  99. data/app/views/layouts/_user_menu.html.erb +4 -4
  100. data/app/views/layouts/application.html.erb +39 -42
  101. data/app/views/layouts/exercise_inputs/editors/_code.html.erb +4 -4
  102. data/app/views/layouts/exercise_inputs/editors/_free_form.html.erb +1 -1
  103. data/app/views/layouts/exercise_inputs/editors/_multiple_choice.html.erb +7 -9
  104. data/app/views/layouts/exercise_inputs/editors/_multiple_files.html.erb +10 -10
  105. data/app/views/layouts/exercise_inputs/editors/_single_choice.html.erb +6 -8
  106. data/app/views/layouts/exercise_inputs/editors/_text.html.erb +2 -3
  107. data/app/views/layouts/exercise_inputs/editors/_upload.html.erb +5 -5
  108. data/app/views/layouts/exercise_inputs/forms/_form.html.erb +1 -1
  109. data/app/views/layouts/exercise_inputs/forms/_interactive_form.html.erb +2 -2
  110. data/app/views/layouts/exercise_inputs/forms/_kids_form.html.erb +1 -1
  111. data/app/views/layouts/exercise_inputs/forms/_playground_form.html.erb +2 -2
  112. data/app/views/layouts/exercise_inputs/forms/_problem_form.html.erb +13 -9
  113. data/app/views/layouts/exercise_inputs/layouts/_input_primary.html.erb +2 -2
  114. data/app/views/layouts/exercise_inputs/layouts/_input_right.html.erb +2 -2
  115. data/app/views/layouts/exercise_inputs/read_only_editors/_code.html.erb +1 -1
  116. data/app/views/layouts/exercise_inputs/read_only_editors/_free_form.html.erb +1 -1
  117. data/app/views/layouts/exercise_inputs/read_only_editors/_multiple_choice.html.erb +4 -4
  118. data/app/views/layouts/exercise_inputs/read_only_editors/_multiple_files.html.erb +2 -2
  119. data/app/views/layouts/exercise_inputs/read_only_editors/_single_choice.html.erb +4 -4
  120. data/app/views/layouts/exercise_inputs/read_only_editors/_text.erb +1 -1
  121. data/app/views/layouts/modals/_avatar_picker.html.erb +2 -5
  122. data/app/views/layouts/modals/_guide_corollary.html.erb +4 -8
  123. data/app/views/layouts/modals/_kids_context.html.erb +7 -5
  124. data/app/views/layouts/modals/_kids_results.html.erb +2 -2
  125. data/app/views/layouts/modals/_kids_results_aborted.html.erb +2 -2
  126. data/app/views/layouts/modals/_kindergarten_context.html.erb +3 -3
  127. data/app/views/layouts/modals/_kindergarten_results.html.erb +3 -3
  128. data/app/views/layouts/modals/_kindergarten_results_aborted.html.erb +2 -2
  129. data/app/views/layouts/modals/_level_up.html.erb +2 -5
  130. data/app/views/layouts/modals/_new_message.html.erb +5 -5
  131. data/app/views/notifications/_dropdown.html.erb +3 -3
  132. data/app/views/users/_activity_indicator.html.erb +17 -0
  133. data/app/views/users/_edit_user_form.html.erb +6 -6
  134. data/app/views/users/_profile_fields.html.erb +6 -6
  135. data/app/views/users/_user_form.html.erb +2 -2
  136. data/app/views/users/activity.html.erb +37 -0
  137. data/app/views/users/certificates.html.erb +26 -24
  138. data/app/views/users/discussions.html.erb +23 -21
  139. data/app/views/users/messages.html.erb +22 -20
  140. data/app/views/users/show.html.erb +5 -3
  141. data/app/views/users/terms.html.erb +4 -2
  142. data/config/initializers/inflections.rb +3 -0
  143. data/config/routes.rb +3 -0
  144. data/lib/mumuki/laboratory.rb +1 -1
  145. data/lib/mumuki/laboratory/extensions.rb +1 -0
  146. data/lib/mumuki/laboratory/extensions/date_and_time.rb +11 -0
  147. data/lib/mumuki/laboratory/locales/en.yml +28 -2
  148. data/lib/mumuki/laboratory/locales/es-CL.yml +33 -4
  149. data/lib/mumuki/laboratory/locales/es.yml +33 -4
  150. data/lib/mumuki/laboratory/locales/pt.yml +34 -3
  151. data/lib/mumuki/laboratory/version.rb +1 -1
  152. data/spec/capybara_helper.rb +1 -0
  153. data/spec/controllers/discussions_messages_controller_spec.rb +84 -3
  154. data/spec/dummy/db/schema.rb +23 -3
  155. data/spec/features/discussion_flow_spec.rb +22 -2
  156. data/spec/features/exercise_flow_spec.rb +1 -1
  157. data/spec/features/guide_reset_spec.rb +1 -1
  158. data/spec/features/terms_flow_spec.rb +1 -2
  159. data/spec/features/user_activity_flow_spec.rb +65 -0
  160. data/spec/helpers/breadcrumbs_helper_spec.rb +2 -2
  161. data/spec/helpers/user_activity_helper_spec.rb +32 -0
  162. data/spec/helpers/with_navigation_spec.rb +36 -13
  163. data/spec/javascripts/editors-spec.js +3 -3
  164. data/spec/javascripts/kids-button-spec.js +2 -2
  165. data/spec/javascripts/upload-spec.js +8 -8
  166. metadata +132 -123
  167. data/app/assets/stylesheets/mumuki_laboratory/application/hovers.scss +0 -12
  168. data/app/assets/stylesheets/mumuki_laboratory/application/modules/_checkboxes.scss +0 -34
  169. data/app/assets/stylesheets/mumuki_laboratory/application/modules/_guide_corollary.scss +0 -9
@@ -2,27 +2,29 @@
2
2
  <%= breadcrumbs_for_my_account %>
3
3
  <% end %>
4
4
 
5
- <%= render partial: 'layouts/user_menu' %>
5
+ <div class="row">
6
+ <%= render partial: 'layouts/user_menu' %>
6
7
 
7
- <div class="col-md-9 mu-tab-body">
8
- <div class="mu-user-header">
9
- <h1><%= t(:discussions) %></h1>
10
- </div>
11
- <% if @watched_discussions.empty? %>
12
- <div class="mu-tab-body">
13
- <%= t :discussions_will_be_here %>
8
+ <div class="col-md-9 mu-tab-body">
9
+ <div class="mu-user-header">
10
+ <h1><%= t(:discussions) %></h1>
14
11
  </div>
15
- <% else %>
16
- <table class="table table-striped">
17
- <% @watched_discussions.each do |discussion| %>
18
- <tr>
19
- <td>
20
- <%= icon_for_read(discussion.read_by?(@user)) %>
21
- </td>
22
- <td><%= link_to discussion.item.name, item_discussion_path(discussion) %></td>
23
- <td><%= time_ago_in_words discussion.last_message_date %></td>
24
- </tr>
25
- <% end %>
26
- </table>
27
- <% end %>
12
+ <% if @watched_discussions.empty? %>
13
+ <div class="mu-tab-body">
14
+ <%= t :discussions_will_be_here %>
15
+ </div>
16
+ <% else %>
17
+ <table class="table table-striped">
18
+ <% @watched_discussions.each do |discussion| %>
19
+ <tr>
20
+ <td>
21
+ <%= icon_for_read(discussion.read_by?(@user)) %>
22
+ </td>
23
+ <td><%= link_to discussion.item.name, item_discussion_path(discussion) %></td>
24
+ <td><%= time_ago_in_words discussion.last_message_date %></td>
25
+ </tr>
26
+ <% end %>
27
+ </table>
28
+ <% end %>
29
+ </div>
28
30
  </div>
@@ -2,26 +2,28 @@
2
2
  <%= breadcrumbs_for_my_account %>
3
3
  <% end %>
4
4
 
5
- <%= render partial: 'layouts/user_menu' %>
5
+ <div class="row">
6
+ <%= render partial: 'layouts/user_menu' %>
6
7
 
7
- <div class="col-md-9 mu-tab-body">
8
- <div class="mu-user-header">
9
- <h1><%= t(:messages) %></h1>
10
- </div>
11
- <% if @messages.empty? %>
12
- <div class="mu-tab-body">
13
- <%= t :no_messages %>
8
+ <div class="col-md-9 mu-tab-body">
9
+ <div class="mu-user-header">
10
+ <h1><%= t(:messages) %></h1>
14
11
  </div>
15
- <% else %>
16
- <table class="table table-striped">
17
- <% @messages.each do |message| %>
18
- <tr>
19
- <td><%= icon_for_read(message.read?) %></td>
20
- <td><%= link_to message.exercise.name, exercise_path(message.exercise.id) %></td>
21
- <td><%= mail_to message.sender %></td>
22
- <td><%= time_ago_in_words message.created_at %></td>
23
- </tr>
24
- <% end %>
25
- </table>
26
- <% end %>
12
+ <% if @messages.empty? %>
13
+ <div class="mu-tab-body">
14
+ <%= t :no_messages %>
15
+ </div>
16
+ <% else %>
17
+ <table class="table table-striped">
18
+ <% @messages.each do |message| %>
19
+ <tr>
20
+ <td><%= icon_for_read(message.read?) %></td>
21
+ <td><%= link_to message.exercise.name, exercise_path(message.exercise.id) %></td>
22
+ <td><%= mail_to message.sender %></td>
23
+ <td><%= time_ago_in_words message.created_at %></td>
24
+ </tr>
25
+ <% end %>
26
+ </table>
27
+ <% end %>
28
+ </div>
27
29
  </div>
@@ -2,8 +2,10 @@
2
2
  <%= breadcrumbs_for_my_account %>
3
3
  <% end %>
4
4
 
5
- <%= render partial: 'layouts/user_menu' %>
5
+ <div class="row">
6
+ <%= render partial: 'layouts/user_menu' %>
6
7
 
7
- <div class="col-md-9 mu-tab-body">
8
- <%= render partial: 'user_form' %>
8
+ <div class="col-md-9 mu-tab-body">
9
+ <%= render partial: 'user_form' %>
10
+ </div>
9
11
  </div>
@@ -20,10 +20,12 @@
20
20
  <div class="terms-acceptance">
21
21
  <%= form_for :user, url: terms_user_path, method: :post do |f| %>
22
22
  <span class="terms-acceptance-checkbox">
23
- <%= f.check_box :terms_of_service, required: true, onInvalid: "this.setCustomValidity('#{t(:terms_and_conditions_must_be_accepted)}')", onChange: "this.setCustomValidity(validity.valueMissing ? '#{t(:terms_and_conditions_must_be_accepted)}' : '')" %>
23
+ <%= f.check_box :terms_of_service, required: true, class: 'form-check-input',
24
+ onInvalid: "this.setCustomValidity('#{t(:terms_and_conditions_must_be_accepted)}')",
25
+ onChange: "this.setCustomValidity(validity.valueMissing ? '#{t(:terms_and_conditions_must_be_accepted)}' : '')" %>
24
26
  <%= t(:accept_terms) %>
25
27
  </span>
26
- <%= f.submit t(:accept), class: 'btn btn-success terms-acceptance-btn' %>
28
+ <%= f.submit t(:accept), class: 'btn btn-complementary terms-acceptance-btn' %>
27
29
  <% end %>
28
30
  </div>
29
31
  <% end %>
@@ -0,0 +1,3 @@
1
+ ActiveSupport::Inflector.inflections(:en) do |inflect|
2
+ inflect.acronym 'FAQs'
3
+ end
data/config/routes.rb CHANGED
@@ -21,6 +21,7 @@ Rails.application.routes.draw do
21
21
  post :question, on: :member
22
22
  end
23
23
  end
24
+ get '/discussions/messages/preview', to: 'discussions_messages#preview', as: :preview_discussion_message
24
25
 
25
26
  resources :exam_registrations, only: [:show]
26
27
  resources :exam_authorization_requests, only: [:show, :create, :update]
@@ -65,7 +66,9 @@ Rails.application.routes.draw do
65
66
 
66
67
  get :messages
67
68
  get :discussions
69
+ get :activity
68
70
  get :certificates
71
+
69
72
  end
70
73
 
71
74
  resources :faqs, only: [:index]
@@ -14,7 +14,7 @@ require 'mumukit/nuntius'
14
14
  require 'mumukit/platform'
15
15
 
16
16
  require 'kaminari'
17
- require 'bootstrap-kaminari-views'
17
+ require 'bootstrap5-kaminari-views'
18
18
 
19
19
  Mumukit::Nuntius.configure do |config|
20
20
  config.app_name = 'laboratory'
@@ -1 +1,2 @@
1
+ require_relative './extensions/date_and_time'
1
2
  require_relative './extensions/request'
@@ -0,0 +1,11 @@
1
+ module DateAndTime
2
+ module Calculations
3
+ # Polyfill, already implemented on Rails 5.2
4
+ # https://api.rubyonrails.org/classes/DateAndTime/Calculations.html#method-i-prev_occurring
5
+ def prev_occurring(day_of_week)
6
+ ago = wday - DAYS_INTO_WEEK.fetch(day_of_week)
7
+ ago += 7 unless ago > 0
8
+ advance(days: -ago)
9
+ end
10
+ end
11
+ end
@@ -14,6 +14,8 @@ en:
14
14
  appendix: Appendix
15
15
  appendix_teaser: Do you want to learn more? <a href="%{link}">Check this chapter's appendix</a>"
16
16
  approved_message: Validated by mentor
17
+ approved_messages:
18
+ other: validated
17
19
  are_you_sure: Are you sure you want to %{action}?
18
20
  ask_a_question: Ask a question!
19
21
  ask_community: Ask community for help
@@ -64,6 +66,18 @@ en:
64
66
  create_submission: Submit
65
67
  created_at: Created at
66
68
  date: Date
69
+ deleted_by: Deleted by %{deleter}
70
+ deleted_message_warning: If you repeateadly violate these or other rules, you may be prohibited from accessing the forum or you may suffer more severe consequences, such as being expulsed from the course.
71
+ deletion_motive:
72
+ inappropriate_content:
73
+ present: Includes inappropriate content
74
+ past: Included inappropriate content
75
+ shares_solution:
76
+ present: Shares the correct solution
77
+ past: Shared the correct solution
78
+ discloses_personal_information:
79
+ present: Discloses personal information
80
+ past: Disclosed personal information
67
81
  description: Description
68
82
  destroy: Destroy
69
83
  destroy_message: delete the message
@@ -77,6 +91,7 @@ en:
77
91
  dont_leave_us: Don't leave us! Learning is fun. You just have to keep at it.
78
92
  download: Download your solution
79
93
  edit: Edit
94
+ edit_message: Edit message
80
95
  edit_profile: Edit profile
81
96
  editor_placeholder: "write your solution here..."
82
97
  email: Email
@@ -173,9 +188,13 @@ en:
173
188
  one: 1 message
174
189
  other: '%{count} messages'
175
190
  message: Message
191
+ message_deleted: This message was deleted because it %{motive}, which violates the %{forum_terms}.
176
192
  messages: Messages
177
193
  messages_error: Previous messages are unavailable. Please try again later.
178
194
  moderation: Mentoring
195
+ messages_pluralized:
196
+ one: Message
197
+ other: Messages
179
198
  moderator: Mentor
180
199
  more_messages: More
181
200
  my_account: My account
@@ -224,6 +243,8 @@ en:
224
243
  permissions: Permissions
225
244
  please_fill_profile_data: Please complete your profile data to continue!
226
245
  please_validate: 'Please validate your data before continue:'
246
+ preview: Preview
247
+ preview_error: The preview cannot be shown. Check your internet connection or try with a shorter message.
227
248
  previous_exercise: Previous
228
249
  problem_with_exercise: '[Mumuki] Problem with exercise: %{title}'
229
250
  processing_your_solution: We are processing you solution
@@ -246,6 +267,7 @@ en:
246
267
  select_file: Select file
247
268
  sending_solution: Sending solution
248
269
  show: Show
270
+ show_message: Show message
249
271
  sign_in: Sign in
250
272
  sign_in_action: sign in
251
273
  sign_out: Sign Out
@@ -256,11 +278,13 @@ en:
256
278
  skipped_solve_anyway: Solve anyway
257
279
  solution: Solution
258
280
  solved: Solved
259
- solved_count: '%{count} solved'
260
281
  solve_doubts: Solve other's doubts
261
282
  solve_more_exercises_to_level_up: Solve <span>number</span> more exercises to advance to the next level.
262
283
  solve_your_doubts: Solve your doubts
263
284
  solve_your_doubts_teaser: Do you have any doubts?
285
+ solved_count: '%{count} solved'
286
+ solved_exercises_count: solved
287
+ solved_exercises_percentage: done
264
288
  something_went_wrong: Something went wrong!
265
289
  sort: Sort
266
290
  sources: Sources
@@ -293,6 +317,7 @@ en:
293
317
  to_pending_review: Mark as solved
294
318
  to_solved: Mark as solved
295
319
  unauthorized_explanation: You have no permissions for this content. Maybe you logged in with another account.
320
+ total: Total
296
321
  undo_upvote: Undo upvote
297
322
  unlocked_medal_as_avatar: You earned this medal! You can now choose it as an avatar.
298
323
  unspecified: I'd rather not say
@@ -308,8 +333,9 @@ en:
308
333
  user_data_updated: Your data was updated successfully
309
334
  username: Username
310
335
  view_details: View details
311
- want_permissions: The next user requires permissions
336
+ want_permissions: The following user requires permissions for the organization
312
337
  we_miss_you: We miss you!
338
+ week_of: Week of %{date}
313
339
  welcome: Welcome to %{name}!
314
340
  working: "Working"
315
341
  wrong_answer: The answer is wrong
@@ -13,6 +13,9 @@ es-CL:
13
13
  appendix_teaser: ¿Quieres saber más? <a href="%{link}">Consulta el apéndice de este capítulo</a>
14
14
  are_you_sure: '¿Estás seguro que quieres %{action}?'
15
15
  ask_a_question: ¡Haz una pregunta!
16
+ approved_messages:
17
+ one: validado
18
+ other: validados
16
19
  ask_community: Pregunta a la comunidad
17
20
  ask_redirect: ¿Quieres que te llevemos ahí?
18
21
  ask_the_first_question: ¡Haz la primera pregunta!
@@ -62,6 +65,18 @@ es-CL:
62
65
  created_exercises: Ejercicios Creados
63
66
  created_guides: Lecciones Creadas
64
67
  date: Fecha
68
+ deleted_by: Eliminado por %{deleter}
69
+ deleted_message_warning: Si infringes reiteradamente estas u otras reglas del Espacio de Consultas, se te puede prohibir el acceso al mismo o podrás sufrir consecuencias más severas, como la expulsión del curso.
70
+ deletion_motive:
71
+ inappropriate_content:
72
+ present: Incluye contenido inapropiado
73
+ past: Incluía contenido inapropiado
74
+ shares_solution:
75
+ present: Comparte la solución correcta
76
+ past: Compartía la solución correcta
77
+ discloses_personal_information:
78
+ present: Divulga información personal
79
+ past: Divulgaba información personal
65
80
  day: Día
66
81
  days: Días
67
82
  description: Descripción
@@ -77,6 +92,7 @@ es-CL:
77
92
  dont_leave_us: ¡No nos abandones! Aprender a programar es divertido. Sólo tienes que seguir practicando.
78
93
  download: "Descarga lo que hiciste"
79
94
  edit: Editar
95
+ edit_message: Editar mensaje
80
96
  editor_placeholder: "...escribe tu solución acá..."
81
97
  email: Email
82
98
  error_description: Esto es lo que se conoce como <span class="error-link">%{error}</span>.
@@ -172,8 +188,12 @@ es-CL:
172
188
  one: 1 mensaje
173
189
  other: '%{count} mensajes'
174
190
  message: Mensaje
191
+ message_deleted: Este mensaje fue eliminado porque %{motive}, lo cual infringe las %{forum_terms}.
175
192
  messages: Mensajes
176
193
  messages_error: Los mensajes anteriores no están disponibles en este momento. ¡Vuelve a intentar más tarde!
194
+ messages_pluralized:
195
+ one: Mensaje
196
+ other: Mensajes
177
197
  minute: minuto
178
198
  minutes: minutos
179
199
  moderation: Mentoría
@@ -230,6 +250,8 @@ es-CL:
230
250
  permissions: Permisos
231
251
  please_fill_profile_data: ¡Completa tus datos personales para continuar!
232
252
  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.'
253
+ preview: Vista previa
254
+ preview_error: No se puede mostrar la vista previa. Revisa tu conexión a internet o prueba con un mensaje más corto.
233
255
  previous_exercise: Anterior
234
256
  problem_with_exercise: '[Mumuki] Error con el ejercicio: %{title}'
235
257
  processing_your_solution: Estamos procesando tu solución
@@ -250,6 +272,7 @@ es-CL:
250
272
  send: Enviar
251
273
  sending_solution: Enviando solución
252
274
  show: Mostrar
275
+ show_message: Mostrar mensaje
253
276
  sign_in: Inicia sesión
254
277
  sign_in_action: iniciar sesión
255
278
  sign_out: Cerrar Sesión
@@ -260,15 +283,19 @@ es-CL:
260
283
  skipped_solve_anyway: Resolver de todos modos
261
284
  solution: Solución
262
285
  solved: Resuelta
263
- solved_count:
264
- one: 1 resuelta
265
- other: '%{count} resueltas'
266
286
  solved_exercises: Ejercicios Resueltos
267
287
  solve_doubts: Resuelve consultas
268
288
  solve_more_exercises_to_level_up: Resuelve <span>number</span> ejercicios más para pasar al siguiente nivel.
269
289
  solve_your_doubts: Consulta tus dudas
270
290
  solve_your_doubts_teaser: ¿Tienes alguna consulta?
271
291
  something_went_wrong: ¡Ups!, algo no anduvo bien...
292
+ solved_count:
293
+ one: 1 resuelta
294
+ other: '%{count} resueltas'
295
+ solved_exercises_count:
296
+ one: resuelto
297
+ other: resueltos
298
+ solved_exercises_percentage: realizado
272
299
  sort: Ordenar
273
300
  sources: Bibliografía
274
301
  start_lesson: ¡Comienza esta lección!
@@ -300,6 +327,7 @@ es-CL:
300
327
  to_pending_review: Resolver
301
328
  to_solved: Resolver
302
329
  unauthorized_explanation: ¡Ups! Esto es lo que se conoce como %{error}, es decir que no iniciaste sesión.
330
+ total: Total
303
331
  uncategorized: No categorizado
304
332
  undo_upvote: No es útil
305
333
  unlocked_medal_as_avatar: ¡Obtuviste esta medalla! Ya puedes elegirla como avatar.
@@ -316,8 +344,9 @@ es-CL:
316
344
  user: Usuario
317
345
  username: Nombre de usuario
318
346
  view_details: Ver detalles
319
- want_permissions: El siguiente usuario requiere permisos
347
+ want_permissions: El siguiente usuario requiere permisos para la organización
320
348
  we_miss_you: ¡Te extrañamos!
349
+ week_of: Semana del %{date}
321
350
  will_paginate:
322
351
  previous_label: "&#8592; Anterior"
323
352
  next_label: "Siguiente &#8594;"
@@ -17,6 +17,9 @@ es:
17
17
  approved_message: Validado por mentor
18
18
  are_you_sure: '¿Estás seguro que querés %{action}?'
19
19
  ask_a_question: ¡Hacé una pregunta!
20
+ approved_messages:
21
+ one: validado
22
+ other: validados
20
23
  ask_community: Preguntá a la comunidad
21
24
  ask_redirect: ¿Querés que te llevemos ahí?
22
25
  ask_the_first_question: ¡Hacé la primera pregunta!
@@ -68,6 +71,18 @@ es:
68
71
  created_exercises: Ejercicios Creados
69
72
  created_guides: Lecciones Creadas
70
73
  date: Fecha
74
+ deleted_by: Eliminado por %{deleter}
75
+ deleted_message_warning: Si infringís reiteradamente estas u otras reglas del Espacio de Consultas, se te puede prohibir el acceso al mismo o podrás sufrir consecuencias más severas, como la expulsión del curso.
76
+ deletion_motive:
77
+ inappropriate_content:
78
+ present: Incluye contenido inapropiado
79
+ past: Incluía contenido inapropiado
80
+ shares_solution:
81
+ present: Comparte la solución correcta
82
+ past: Compartía la solución correcta
83
+ discloses_personal_information:
84
+ present: Divulga información personal
85
+ past: Divulgaba información personal
71
86
  day: Día
72
87
  days: Días
73
88
  description: Descripción
@@ -84,6 +99,7 @@ es:
84
99
  dont_leave_us: ¡No nos abandones! Aprender a programar es divertido. Sólo tenés que seguir practicando.
85
100
  download: "Descargá lo que hiciste"
86
101
  edit: Editar
102
+ edit_message: Editar mensaje
87
103
  edit_profile: Editar perfil
88
104
  editor_placeholder: "...escribí tu solución acá..."
89
105
  email: Email
@@ -183,8 +199,12 @@ es:
183
199
  one: 1 mensaje
184
200
  other: '%{count} mensajes'
185
201
  message: Mensaje
202
+ message_deleted: Este mensaje fue eliminado porque %{motive}, lo cual infringe las %{forum_terms}.
186
203
  messages: Mensajes
187
204
  messages_error: Los mensajes anteriores no están disponibles en este momento. ¡Volvé a intentar mas tarde!
205
+ messages_pluralized:
206
+ one: Mensaje
207
+ other: Mensajes
188
208
  minute: minuto
189
209
  minutes: minutos
190
210
  moderation: Mentoría
@@ -241,6 +261,8 @@ es:
241
261
  permissions: Permisos
242
262
  please_fill_profile_data: ¡Completá tus datos personales para continuar!
243
263
  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.'
264
+ preview: Vista previa
265
+ preview_error: No se puede mostrar la vista previa. Revisá tu conexión a internet o probá con un mensaje más corto.
244
266
  previous_exercise: Anterior
245
267
  problem_with_exercise: '[Mumuki] Error con el ejercicio: %{title}'
246
268
  processing_your_solution: Estamos procesando tu solución
@@ -265,6 +287,7 @@ es:
265
287
  send: Enviar
266
288
  sending_solution: Enviando solución
267
289
  show: Mostrar
290
+ show_message: Mostrar mensaje
268
291
  sign_in: Iniciá sesión
269
292
  sign_in_action: iniciar sesión
270
293
  sign_out: Cerrar Sesión
@@ -275,15 +298,19 @@ es:
275
298
  skipped_solve_anyway: Resolver de todos modos
276
299
  solution: Solución
277
300
  solved: Resuelta
278
- solved_count:
279
- one: 1 resuelta
280
- other: '%{count} resueltas'
281
301
  solved_exercises: Ejercicios Resueltos
282
302
  solve_doubts: Resolvé consultas
283
303
  solve_more_exercises_to_level_up: Resolvé <span>number</span> ejercicios más para pasar al siguiente nivel.
284
304
  solve_your_doubts: Consultá tus dudas
285
305
  solve_your_doubts_teaser: ¿Tenés alguna consulta?
286
306
  something_went_wrong: ¡Ups!, algo no anduvo bien...
307
+ solved_count:
308
+ one: 1 resuelta
309
+ other: '%{count} resueltas'
310
+ solved_exercises_count:
311
+ one: resuelto
312
+ other: resueltos
313
+ solved_exercises_percentage: realizado
287
314
  sort: Ordenar
288
315
  sources: Bibliografía
289
316
  start_lesson: ¡Comenzá esta lección!
@@ -316,6 +343,7 @@ es:
316
343
  to_pending_review: Resolver
317
344
  to_solved: Resolver
318
345
  unauthorized_explanation: ¡Ups! Esto es lo que se conoce como %{error}, es decir que no iniciaste sesión.
346
+ total: Total
319
347
  uncategorized: No categorizado
320
348
  undo_upvote: No es útil
321
349
  unlocked_medal_as_avatar: ¡Obtuviste esta medalla! Ya podés elegirla como avatar.
@@ -332,9 +360,10 @@ es:
332
360
  user: Usuario
333
361
  username: Nombre de usuario
334
362
  view_details: Ver detalles
335
- want_permissions: El siguiente usuario requiere permisos
363
+ want_permissions: El siguiente usuario requiere permisos para la organización
336
364
  we_miss_you: ¡Te extrañamos!
337
365
  welcome: ¡Te damos la bienvenida a %{name}!
366
+ week_of: Semana del %{date}
338
367
  will_paginate:
339
368
  previous_label: "&#8592; Anterior"
340
369
  next_label: "Siguiente &#8594;"