mumuki-laboratory 7.10.5 → 7.12.3
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +26 -7
- data/Rakefile +9 -2
- data/app/assets/javascripts/mumuki_laboratory/application/bridge.js +26 -5
- data/app/assets/javascripts/mumuki_laboratory/application/characters.js +3 -1
- data/app/assets/javascripts/mumuki_laboratory/application/gamification.js +163 -0
- data/app/assets/javascripts/mumuki_laboratory/application/kids.js +171 -333
- data/app/assets/javascripts/mumuki_laboratory/application/kindergarten.js +159 -0
- data/app/assets/javascripts/mumuki_laboratory/application/mu-modal-carrousel.js +63 -0
- data/app/assets/javascripts/mumuki_laboratory/application/number-counter.js +18 -0
- data/app/assets/javascripts/mumuki_laboratory/application/primary.js +258 -0
- data/app/assets/javascripts/mumuki_laboratory/application/profile.js +31 -16
- data/app/assets/javascripts/mumuki_laboratory/application/submission.js +1 -0
- data/app/assets/javascripts/mumuki_laboratory/application/submissions-store.js +19 -2
- data/app/assets/stylesheets/mumuki_laboratory/application/_errors.scss +1 -3
- data/app/assets/stylesheets/mumuki_laboratory/application/_modules.scss +3 -1
- data/app/assets/stylesheets/mumuki_laboratory/application/modules/_avatar.scss +21 -0
- data/app/assets/stylesheets/mumuki_laboratory/application/modules/{_chapter_show.scss → _content_show.scss} +0 -0
- data/app/assets/stylesheets/mumuki_laboratory/application/modules/_kids_results.scss +117 -0
- data/app/assets/stylesheets/mumuki_laboratory/application/modules/_kindergarten.scss +335 -12
- data/app/assets/stylesheets/mumuki_laboratory/application/modules/_medal.scss +48 -0
- data/app/assets/stylesheets/mumuki_laboratory/application/modules/_terms.scss +44 -0
- data/app/assets/stylesheets/mumuki_laboratory/application/modules/_user_profile.scss +40 -3
- data/app/controllers/application_controller.rb +15 -8
- data/app/controllers/book_discussions_controller.rb +4 -0
- data/app/controllers/users_controller.rb +8 -2
- data/app/helpers/avatar_helper.rb +11 -3
- data/app/helpers/contextualization_result_helper.rb +9 -1
- data/app/helpers/gamification_helper.rb +5 -0
- data/app/helpers/kindergarten_helper.rb +5 -0
- data/app/helpers/links_helper.rb +8 -0
- data/app/helpers/medal_helper.rb +36 -0
- data/app/helpers/open_graph_helper.rb +2 -2
- data/app/helpers/organization_list_helper.rb +1 -1
- data/app/helpers/overlapped_buttons_helper.rb +1 -1
- data/app/helpers/page_title_helper.rb +2 -2
- data/app/helpers/profile_helper.rb +9 -1
- data/app/views/book/_header.html.erb +17 -0
- data/app/views/book/show.html.erb +1 -18
- data/app/views/discussions/terms.html.erb +10 -0
- data/app/views/exercise_solutions/_contextualization_results_container.html.erb +9 -0
- data/app/views/exercise_solutions/_kids_level_up.html.erb +11 -0
- data/app/views/exercise_solutions/_kids_results.html.erb +1 -1
- data/app/views/exercise_solutions/_results_title.html.erb +5 -0
- data/app/views/exercises/show.html.erb +4 -0
- data/app/views/invitations/_invitation_form.html.erb +1 -0
- data/app/views/layouts/_discussions.html.erb +4 -0
- data/app/views/layouts/_error.html.erb +3 -6
- data/app/views/layouts/_guide.html.erb +10 -3
- data/app/views/layouts/_kindergarten.html.erb +38 -0
- data/app/views/layouts/_main.html.erb +3 -1
- data/app/views/layouts/_organization_chooser.html.erb +0 -7
- data/app/views/layouts/_terms_acceptance_disclaimer.html.erb +6 -0
- data/app/views/layouts/application.html.erb +10 -3
- data/app/views/layouts/exercise_inputs/layouts/_input_kindergarten.html.erb +27 -27
- data/app/views/layouts/modals/_guide_corollary.html.erb +10 -1
- data/app/views/layouts/modals/_kids_context.html.erb +1 -1
- data/app/views/layouts/modals/_kids_results.html.erb +16 -6
- data/app/views/layouts/modals/_kindergarten_context.html.erb +30 -0
- data/app/views/layouts/modals/_kindergarten_results.html.erb +36 -0
- data/app/views/layouts/modals/_kindergarten_results_aborted.html.erb +27 -0
- data/app/views/layouts/modals/_level_up.html.erb +27 -0
- data/app/views/users/_avatar_list.html.erb +6 -2
- data/app/views/users/_edit_user_form.html.erb +9 -4
- data/app/views/users/_term.html.erb +10 -0
- data/app/views/users/_user_form.html.erb +17 -3
- data/app/views/users/terms.html.erb +18 -0
- data/config/routes.rb +2 -0
- data/lib/mumuki/laboratory.rb +1 -1
- data/lib/mumuki/laboratory/controllers/current_organization.rb +1 -1
- data/lib/mumuki/laboratory/controllers/results_rendering.rb +4 -2
- data/lib/mumuki/laboratory/locales/en.yml +21 -5
- data/lib/mumuki/laboratory/locales/es-CL.yml +10 -4
- data/lib/mumuki/laboratory/locales/es.yml +22 -6
- data/lib/mumuki/laboratory/locales/pt.yml +21 -5
- data/lib/mumuki/laboratory/version.rb +1 -1
- data/spec/capybara_helper.rb +99 -0
- data/spec/controllers/exercise_solutions_controller_spec.rb +3 -4
- data/spec/dummy/db/schema.rb +37 -1
- data/spec/dummy/public/medal/outline.svg +1089 -0
- data/spec/features/choose_organization_spec.rb +12 -30
- data/spec/features/disable_user_flow_spec.rb +3 -5
- data/spec/features/disabled_organization_flow_spec.rb +9 -14
- data/spec/features/exercise_flow_spec.rb +2 -2
- data/spec/features/guide_reset_spec.rb +1 -1
- data/spec/features/guides_flow_spec.rb +1 -1
- data/spec/features/home_private_flow_spec.rb +1 -3
- data/spec/features/home_public_flow_spec.rb +6 -12
- data/spec/features/invitations_flow_spec.rb +2 -2
- data/spec/features/login_flow_spec.rb +2 -2
- data/spec/features/not_found_private_flow_spec.rb +4 -4
- data/spec/features/not_found_public_flow_spec.rb +1 -6
- data/spec/features/profile_flow_spec.rb +1 -1
- data/spec/helpers/page_title_helper_spec.rb +3 -3
- data/spec/javascripts/editors-spec.js +23 -0
- data/spec/javascripts/gamification-spec.js +58 -0
- data/spec/javascripts/submissions-store-spec.js +139 -6
- data/spec/spec_helper.rb +2 -0
- data/spec/teaspoon_env.rb +24 -6
- metadata +137 -98
@@ -0,0 +1,27 @@
|
|
1
|
+
<div class="modal fade mu-level-up" id="mu-level-up" tabindex="-1" role="dialog" aria-hidden="true">
|
2
|
+
<div class="modal-dialog">
|
3
|
+
<div class="modal-content">
|
4
|
+
<div class="modal-header">
|
5
|
+
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
|
6
|
+
<span aria-hidden="true">×</span></button>
|
7
|
+
<div class="guide-corollary-title">
|
8
|
+
<h3 class="text-left" id="gridSystemModalLabel"><%= t :level_up %></h3>
|
9
|
+
</div>
|
10
|
+
</div>
|
11
|
+
<div class="modal-body">
|
12
|
+
<div class="container-fluid">
|
13
|
+
<div class="row">
|
14
|
+
<div class="col-md-12">
|
15
|
+
<div class="text-center mu-level">
|
16
|
+
<i class="fa fa-star fa-fw fa-4x"></i>
|
17
|
+
<span class="mu-level-number"></span>
|
18
|
+
<p></p>
|
19
|
+
<p id="mu-solve-more-exercises"> <%= (t :solve_more_exercises_to_level_up).html_safe %></p>
|
20
|
+
</div>
|
21
|
+
</div>
|
22
|
+
</div>
|
23
|
+
</div>
|
24
|
+
</div>
|
25
|
+
</div>
|
26
|
+
</div>
|
27
|
+
</div>
|
@@ -1,11 +1,15 @@
|
|
1
1
|
<div class="row">
|
2
2
|
<div class="mu-avatar-list">
|
3
|
-
<% avatars_for(@user).
|
3
|
+
<% avatars_for(@user).each do |avatar| %>
|
4
4
|
<%= show_avatar_item(avatar) %>
|
5
5
|
<% end %>
|
6
6
|
|
7
|
+
<% locked_avatars_for(@user).sort_by(&:id).each do |avatar| %>
|
8
|
+
<%= show_locked_avatar_item(avatar) %>
|
9
|
+
<% end %>
|
10
|
+
|
7
11
|
<% if @user.image_url %>
|
8
|
-
<%= avatar_image @user.image_url, class: 'mu-avatar-item', id: 'mu-user-image' %>
|
12
|
+
<%= avatar_image @user.image_url, class: 'mu-avatar-item', id: 'mu-user-image', tabindex: 0 %>
|
9
13
|
<% end %>
|
10
14
|
</div>
|
11
15
|
</div>
|
@@ -1,20 +1,25 @@
|
|
1
1
|
<%= form_for :user, url: update_user_path, :html => { id: 'mu-user-form' }, method: :put do |f| %>
|
2
2
|
<div class="mu-user-header">
|
3
3
|
<h1><%= t(:edit_profile) %></h1>
|
4
|
-
<div class="mu-profile-actions">
|
5
|
-
<%=
|
6
|
-
<%= f
|
4
|
+
<div class="mu-profile-actions hidden-xs">
|
5
|
+
<%= cancel_edit_profile_button %>
|
6
|
+
<%= save_edit_profile_button f %>
|
7
7
|
</div>
|
8
8
|
</div>
|
9
9
|
<div class="row mu-tab-body">
|
10
10
|
<div class="col-md-4 text-center">
|
11
11
|
<%= profile_picture_for(@user, id: 'mu-user-avatar', class: 'mu-user-avatar') %>
|
12
|
-
<i class="fa fa-pencil fa-2x pointer mu-edit-avatar" id="mu-edit-avatar-icon"></i>
|
12
|
+
<i class="fa fa-pencil fa-2x pointer mu-edit-avatar" id="mu-edit-avatar-icon" tabindex="0"></i>
|
13
13
|
</div>
|
14
14
|
<div class="col-md-8">
|
15
15
|
<%= render partial: 'profile_fields', locals: {form: f} %>
|
16
|
+
<%= render partial: 'layouts/terms_acceptance_disclaimer', locals: {user: @user} %>
|
16
17
|
</div>
|
17
18
|
</div>
|
19
|
+
<div class="mu-profile-actions mobile visible-xs">
|
20
|
+
<%= cancel_edit_profile_button %>
|
21
|
+
<%= save_edit_profile_button f %>
|
22
|
+
</div>
|
18
23
|
<% end %>
|
19
24
|
|
20
25
|
<%= content_for :no_container do %>
|
@@ -1,14 +1,24 @@
|
|
1
1
|
<div class="mu-user-header">
|
2
2
|
<h1><%= @user.name %></h1>
|
3
|
-
<div class="mu-profile-actions">
|
3
|
+
<div class="mu-profile-actions hidden-xs">
|
4
4
|
<%= edit_profile_button %>
|
5
5
|
</div>
|
6
6
|
</div>
|
7
7
|
<div class="row mu-tab-body">
|
8
|
-
<div class="col-md-4
|
8
|
+
<div class="col-md-4 mu-profile-info-left">
|
9
9
|
<%= profile_picture_for(@user, id: 'mu-user-avatar', class: 'mu-user-avatar') %>
|
10
|
+
<% if in_gamified_context? %>
|
11
|
+
<svg class="mu-level-progress" width="300" height="300" viewBox="0 0 100 100">
|
12
|
+
<path id="mu-level-progress" stroke-linecap="round" stroke="#24b8aa" stroke-width="4" stroke-dasharray="0, 999" fill="none" d="M50 10 a 40 40 0 0 1 0 80 a 40 40 0 0 1 0 -80"></path>
|
13
|
+
</svg>
|
14
|
+
<div class="mu-level">
|
15
|
+
<i class="fa fa-star fa-fw fa-4x"></i>
|
16
|
+
<span class="mu-level-number"></span>
|
17
|
+
<p><%= t :level %></p>
|
18
|
+
</div>
|
19
|
+
<% end %>
|
10
20
|
</div>
|
11
|
-
<div class="col-md-8 mu-profile-info">
|
21
|
+
<div class="col-md-8 mu-profile-info-right">
|
12
22
|
<% if @user.age.present? %>
|
13
23
|
<div>
|
14
24
|
<span> <strong><%= t :age %>:</strong> <%= "#{@user.age} #{t :years}" %> </span>
|
@@ -21,4 +31,8 @@
|
|
21
31
|
<span> <strong><%= t :programming_since %>:</strong> <%= t(:time_since, time: time_ago_in_words(@user.created_at)) %> </span>
|
22
32
|
</div>
|
23
33
|
</div>
|
34
|
+
|
35
|
+
<div class="mu-profile-actions mobile visible-xs">
|
36
|
+
<%= edit_profile_button %>
|
37
|
+
</div>
|
24
38
|
</div>
|
@@ -0,0 +1,18 @@
|
|
1
|
+
<%= content_for :breadcrumbs do %>
|
2
|
+
<% if current_user? %>
|
3
|
+
<%= breadcrumbs @user %>
|
4
|
+
<% else %>
|
5
|
+
<%= header_breadcrumbs %>
|
6
|
+
<% end %>
|
7
|
+
<% end %>
|
8
|
+
|
9
|
+
<div class="mu-user-header">
|
10
|
+
<h1><%= t(:terms_and_conditions) %></h1>
|
11
|
+
</div>
|
12
|
+
|
13
|
+
<div>
|
14
|
+
<% @profile_terms.each do |term| %>
|
15
|
+
<%= render partial: 'term', locals: {term: term, collapsed: current_user&.has_accepted?(term)} %>
|
16
|
+
<% end %>
|
17
|
+
</div>
|
18
|
+
|
data/config/routes.rb
CHANGED
@@ -12,6 +12,7 @@ Rails.application.routes.draw do
|
|
12
12
|
end
|
13
13
|
end
|
14
14
|
|
15
|
+
get '/discussions/terms' => 'book_discussions#terms'
|
15
16
|
concerns :debatable, controller: 'book_discussions', only: :index
|
16
17
|
|
17
18
|
resources :discussions, only: [] do
|
@@ -53,6 +54,7 @@ Rails.application.routes.draw do
|
|
53
54
|
|
54
55
|
# All users
|
55
56
|
resource :user, only: [:show, :edit]
|
57
|
+
get '/user/terms' => 'users#terms'
|
56
58
|
|
57
59
|
# Current user
|
58
60
|
resources :messages, only: [:index, :create]
|
data/lib/mumuki/laboratory.rb
CHANGED
@@ -19,7 +19,8 @@ module Mumuki::Laboratory::Controllers::ResultsRendering
|
|
19
19
|
.merge(progress_json)
|
20
20
|
.merge(
|
21
21
|
html: render_results(layout, assignment),
|
22
|
-
remaining_attempts_html: remaining_attempts_text(assignment)
|
22
|
+
remaining_attempts_html: remaining_attempts_text(assignment),
|
23
|
+
current_exp: UserStats.exp_for(assignment.submitter))
|
23
24
|
end
|
24
25
|
|
25
26
|
def merge_kids_specific_renders(assignment, results)
|
@@ -28,7 +29,8 @@ module Mumuki::Laboratory::Controllers::ResultsRendering
|
|
28
29
|
title_html: render_results_title(assignment),
|
29
30
|
expectations: assignment.affable_expectation_results,
|
30
31
|
tips: assignment.affable_tips,
|
31
|
-
|
32
|
+
level_up_html: render_results('exercise_solutions/kids_level_up', assignment),
|
33
|
+
test_results: assignment.sanitized_affable_test_results) # these results could include escaped characters so they should be rendered as HTML to display properly
|
32
34
|
end
|
33
35
|
|
34
36
|
def progress_json
|
@@ -3,7 +3,9 @@ en:
|
|
3
3
|
aborted: Oops, we couldn't evaluate your solution
|
4
4
|
abort_explanation_html: <li>Check that your program does not have recursion or an infinite loop</li> <li>Check that you have an internet connection</li> <li>Wait a while and try again</li>
|
5
5
|
about: About
|
6
|
-
|
6
|
+
accept: Accept
|
7
|
+
accept_terms: I have read and accept the terms and conditions
|
8
|
+
accept_terms_to_continue: Accept terms to continue
|
7
9
|
actions: Actions
|
8
10
|
activity: Activity
|
9
11
|
actual_state: Obtained board
|
@@ -93,6 +95,7 @@ en:
|
|
93
95
|
exercise_number: Exercise %{number}
|
94
96
|
exercise_success_rate: Exercises success rate
|
95
97
|
exit: Exit
|
98
|
+
exp_points: experience points.
|
96
99
|
expectations: Expectations
|
97
100
|
expected_state: Expected board
|
98
101
|
explain_redirect: You have registered in another organization
|
@@ -103,6 +106,8 @@ en:
|
|
103
106
|
first_name: First Name
|
104
107
|
forbidden_explanation: Please verify you have logged in with the right account
|
105
108
|
format: Format
|
109
|
+
forum_terms: Forum rules
|
110
|
+
forum_terms_link: If you have any questions, please check %{terms_link}
|
106
111
|
fullscreen: "Fullscreen"
|
107
112
|
gender: Gender
|
108
113
|
get_messages: "View messages"
|
@@ -125,6 +130,12 @@ en:
|
|
125
130
|
joining_html: '¡Welcome to course <strong>%{course}</strong>!'
|
126
131
|
keep_learning: Keep learning!
|
127
132
|
kids_default_success: You did it great!
|
133
|
+
kindergarten_passed: "Your program worked great!"
|
134
|
+
kindergarten_passed_with_warnings: "Your program worked great!"
|
135
|
+
kindergarten_pending: "There's an error in your program. Try again!"
|
136
|
+
kindergarten_failed: "There's an error in your program. Try again!"
|
137
|
+
kindergarten_errored: "There's an error in your program. Try again!"
|
138
|
+
kindergarten_aborted: "Ups! Something went wrong"
|
128
139
|
language: Language
|
129
140
|
last_name: Last Name
|
130
141
|
last_seen: "Seen by %{name}"
|
@@ -135,11 +146,14 @@ en:
|
|
135
146
|
lessons: Lessons
|
136
147
|
lesson_number: Lesson %{number}
|
137
148
|
let_us_know: please let us know!
|
149
|
+
level: Level
|
150
|
+
level_up: Level up!
|
138
151
|
loading: Loading
|
139
152
|
load_solution_into_console: Load your solution into the console
|
140
153
|
locked_content: 'This content will be unlocked when you finish previous chapters'
|
141
154
|
male: Male
|
142
155
|
manual_evaluation_pending: Thanks for submitting your solution! It will be revised by the course teachers soon
|
156
|
+
medal: Medal
|
143
157
|
message_count:
|
144
158
|
one: 1 message
|
145
159
|
other: '%{count} messages'
|
@@ -148,8 +162,6 @@ en:
|
|
148
162
|
messages_error: Previous messages are unavailable. Please try again later.
|
149
163
|
more_messages: More
|
150
164
|
moderator: Mentor
|
151
|
-
mumuki_catchphrase: Improve your programming skills
|
152
|
-
mumuki_short_description: Mumuki is a simple, open and collaborative platform for sharing and solving programming exercises. It is aimed to help people with learning and teaching programing languages and paradigms
|
153
165
|
my_doubts: My doubts
|
154
166
|
my_submissions: My Submissions
|
155
167
|
name: Name
|
@@ -191,7 +203,6 @@ en:
|
|
191
203
|
permissions: Permissions
|
192
204
|
please_fill_profile_data: Please complete your profile data to continue!
|
193
205
|
please_validate: 'Please validate your data before continue:'
|
194
|
-
powered_by_mumuki_html: "powered by <span class=\"da da-mumuki-circle\"></span> mumuki"
|
195
206
|
previous_exercise: Previous
|
196
207
|
problem_with_exercise: '[Mumuki] Problem with exercise: %{title}'
|
197
208
|
processing_your_solution: We are processing you solution
|
@@ -225,6 +236,7 @@ en:
|
|
225
236
|
solved: Solved
|
226
237
|
solved_count: '%{count} solved'
|
227
238
|
solve_doubts: Solve other's doubts
|
239
|
+
solve_more_exercises_to_level_up: Solve <span>number</span> more exercises to advance to the next level.
|
228
240
|
solve_your_doubts: Solve your doubts
|
229
241
|
solve_your_doubts_teaser: Do you have any doubts?
|
230
242
|
something_went_wrong: Something went wrong!
|
@@ -234,7 +246,6 @@ en:
|
|
234
246
|
start_practicing: Start Practicing!
|
235
247
|
start_using_mumuki: Start using Mumuki!
|
236
248
|
status: Status
|
237
|
-
stay_here: I want to stay here
|
238
249
|
stop_emails?: Want to stop getting emails?
|
239
250
|
submission: submission
|
240
251
|
submission_date: Submission date
|
@@ -247,7 +258,10 @@ en:
|
|
247
258
|
teacher_info: Information for teachers
|
248
259
|
tell_us_how: Please tell us how this happened!
|
249
260
|
tell_us_if_our_error: If you think this is our fault, %{issues}
|
261
|
+
terms_accepted: The terms and conditions were accepted
|
250
262
|
terms_and_conditions: Terms and conditions
|
263
|
+
terms_and_conditions_continue_disclaimer: By continuing you agree to %{terms_link}
|
264
|
+
terms_and_conditions_must_be_accepted: You must accept the terms and conditions
|
251
265
|
test_results: Test results
|
252
266
|
time_ago: "%{time} ago"
|
253
267
|
time_left: You have
|
@@ -258,6 +272,7 @@ en:
|
|
258
272
|
to_solved: Mark as solved
|
259
273
|
unauthorized_explanation: You have no permissions for this content. Maybe you logged in with another account.
|
260
274
|
undo_upvote: Undo upvote
|
275
|
+
unlocked_medal_as_avatar: You earned this medal! You can now choose it as an avatar.
|
261
276
|
unspecified: I'd rather not say
|
262
277
|
unmeet_expectations: "Goals that weren't met"
|
263
278
|
unprepared_organization_explanation: This path hasn't started yet.
|
@@ -278,6 +293,7 @@ en:
|
|
278
293
|
working: "Working"
|
279
294
|
wrong_answer: The answer is wrong
|
280
295
|
years: years old
|
296
|
+
you_earned: You earned
|
281
297
|
you_must_sign_in_before_submitting: You must sign in before submitting your solutions
|
282
298
|
you_never_submitted_solutions: It seems that you've never submitted solutions since you created your account.
|
283
299
|
your_new_organization: your new organization
|
@@ -93,6 +93,7 @@ es-CL:
|
|
93
93
|
exercise_success_rate: Tasa de éxito en ejercicios
|
94
94
|
exercises: Ejercicios
|
95
95
|
exit: Salir
|
96
|
+
exp_points: puntos de experiencia.
|
96
97
|
expectations: Objetivos
|
97
98
|
expected_state: Tablero esperado
|
98
99
|
explain_redirect: Notamos que te registraste en otra organización.
|
@@ -103,6 +104,7 @@ es-CL:
|
|
103
104
|
first_name: Nombre
|
104
105
|
forbidden_explanation: ¿Puede que hayas ingresado con una cuenta incorrecta?
|
105
106
|
format: Dar formato
|
107
|
+
forum_terms_link: Si tienes alguna duda, consulta las %{terms_link}
|
106
108
|
fullscreen: "Pantalla completa"
|
107
109
|
gender: Género
|
108
110
|
get_messages: "Ver mensajes"
|
@@ -138,11 +140,14 @@ es-CL:
|
|
138
140
|
lessons: Lecciones
|
139
141
|
lesson_number: Lección %{number}
|
140
142
|
let_us_know: ¡Por favor avísanos!
|
143
|
+
level: Nivel
|
144
|
+
level_up: ¡Subiste de nivel!
|
141
145
|
loading: Cargando
|
142
146
|
load_solution_into_console: Cargar la solución en la consola
|
143
147
|
locked_content: 'Éste contenido se desbloqueará cuando termines los capítulos anteriores'
|
144
148
|
male: Hombre
|
145
149
|
manual_evaluation_pending: ¡Gracias por enviar tu solución! Tus docentes la corregirán pronto
|
150
|
+
medal: Medalla
|
146
151
|
message_count:
|
147
152
|
one: 1 mensaje
|
148
153
|
other: '%{count} mensajes'
|
@@ -153,8 +158,6 @@ es-CL:
|
|
153
158
|
minutes: minutos
|
154
159
|
more_messages: Ver mensajes anteriores
|
155
160
|
moderator: Moderador
|
156
|
-
mumuki_catchphrase: Aprende a programar
|
157
|
-
mumuki_short_description: Mumuki es la plataforma libre y gratuita para aprender a programar, de la práctica a la teoría y en tu idioma
|
158
161
|
my_doubts: Mis consultas
|
159
162
|
name: Nombre
|
160
163
|
navigation_continue: 'Siguiente %{kind}: %{sibling}'
|
@@ -201,7 +204,6 @@ es-CL:
|
|
201
204
|
permissions: Permisos
|
202
205
|
please_fill_profile_data: ¡Completa tus datos personales para continuar!
|
203
206
|
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.'
|
204
|
-
powered_by_mumuki_html: "por <span class=\"da da-mumuki-circle\"></span> mumuki"
|
205
207
|
previous_exercise: Anterior
|
206
208
|
problem_with_exercise: '[Mumuki] Error con el ejercicio: %{title}'
|
207
209
|
processing_your_solution: Estamos procesando tu solución
|
@@ -236,6 +238,7 @@ es-CL:
|
|
236
238
|
other: '%{count} resueltas'
|
237
239
|
solved_exercises: Ejercicios Resueltos
|
238
240
|
solve_doubts: Resuelve consultas
|
241
|
+
solve_more_exercises_to_level_up: Resuelve <span>number</span> ejercicios más para pasar al siguiente nivel.
|
239
242
|
solve_your_doubts: Consulta tus dudas
|
240
243
|
solve_your_doubts_teaser: ¿Tienes alguna consulta?
|
241
244
|
something_went_wrong: ¡Ups!, algo no anduvo bien...
|
@@ -245,7 +248,6 @@ es-CL:
|
|
245
248
|
start_practicing: ¡Empieza ahora!
|
246
249
|
start_using_mumuki: ¡Empieza a usar Mumuki!
|
247
250
|
status: Estado
|
248
|
-
stay_here: No, quiero quedarme acá
|
249
251
|
stop_emails?: ¿Quieres dejar de recibir estos mails?
|
250
252
|
subscribe: Recibir notificaciones
|
251
253
|
submission: solución
|
@@ -260,6 +262,8 @@ es-CL:
|
|
260
262
|
tell_us_how: ¡Cuéntanos cómo te pasó esto!
|
261
263
|
tell_us_if_our_error: Si piensas que es un error nuestro, %{issues}
|
262
264
|
terms_and_conditions: Términos y condiciones
|
265
|
+
terms_and_conditions_continue_disclaimer: Al continuar aceptas los %{terms_link}
|
266
|
+
terms_and_conditions_must_be_accepted: Tienes que aceptar los términos y condiciones
|
263
267
|
test_results: Resultados de las pruebas
|
264
268
|
time_since: "hace %{time}"
|
265
269
|
time_left: Te quedan
|
@@ -271,6 +275,7 @@ es-CL:
|
|
271
275
|
unauthorized_explanation: ¡Ups! Esto es lo que se conoce como %{error}, es decir que no iniciaste sesión.
|
272
276
|
uncategorized: No categorizado
|
273
277
|
undo_upvote: No es útil
|
278
|
+
unlocked_medal_as_avatar: ¡Obtuviste esta medalla! Ya puedes elegirla como avatar.
|
274
279
|
unspecified: Prefiero no decirlo
|
275
280
|
unmeet_expectations: Objetivos que no se cumplieron
|
276
281
|
unprepared_organization_explanation: ¡Este recorrido aún no ha comenzado!
|
@@ -293,5 +298,6 @@ es-CL:
|
|
293
298
|
page_gap: "…"
|
294
299
|
working: "Procesando"
|
295
300
|
wrong_answer: La respuesta no es correcta
|
301
|
+
you_earned: Ganaste
|
296
302
|
you_must_sign_in_before_submitting: Tienes que iniciar sesión antes de empezar a enviar tus soluciones
|
297
303
|
you_never_submitted_solutions: Parece que nunca enviaste soluciones desde que creaste tu cuenta.
|
@@ -3,7 +3,9 @@ es:
|
|
3
3
|
aborted: Ups, no pudimos evaluar tu solución
|
4
4
|
abort_explanation_html: <li>Revisá que tu programa no tenga recursión o algún bucle infinito</li><li>Revisá que tengas conexión a internet</li><li>Esperá un rato e intentalo nuevamente</li>
|
5
5
|
about: Detalles
|
6
|
-
|
6
|
+
accept: Aceptar
|
7
|
+
accept_terms: He leido y acepto los términos y condiciones
|
8
|
+
accept_terms_to_continue: Para continuar es necesario aceptar los términos y condiciones
|
7
9
|
actions: Acciones
|
8
10
|
activity: Actividad
|
9
11
|
actual_state: Tablero obtenido
|
@@ -99,6 +101,7 @@ es:
|
|
99
101
|
exercise_success_rate: Tasa de éxito en ejercicios
|
100
102
|
exercises: Ejercicios
|
101
103
|
exit: Salir
|
104
|
+
exp_points: puntos de experiencia.
|
102
105
|
expectations: Objetivos
|
103
106
|
expected_state: Tablero esperado
|
104
107
|
explain_redirect: Notamos que te registraste en otra organización.
|
@@ -109,6 +112,8 @@ es:
|
|
109
112
|
first_name: Nombre
|
110
113
|
forbidden_explanation: ¿Puede que hayas ingresado con una cuenta incorrecta?
|
111
114
|
format: Dar formato
|
115
|
+
forum_terms: Reglas del foro
|
116
|
+
forum_terms_link: Si tenés alguna duda, consultá las %{terms_link}
|
112
117
|
fullscreen: "Pantalla completa"
|
113
118
|
gender: Género
|
114
119
|
get_messages: "Ver mensajes"
|
@@ -133,7 +138,13 @@ es:
|
|
133
138
|
its_been_a_while: Hace un tiempo que no usás Mumuki.
|
134
139
|
joining_html: '¡Te damos la bienvenida al curso <strong>%{course}</strong>!'
|
135
140
|
keep_learning: ¡Seguí aprendiendo!
|
136
|
-
kids_default_success: ¡Lo hiciste muy bien!
|
141
|
+
kids_default_success: "¡Lo hiciste muy bien!"
|
142
|
+
kindergarten_passed: "¡Tu programa está muy bien!"
|
143
|
+
kindergarten_passed_with_warnings: "¡Tu programa está muy bien!"
|
144
|
+
kindergarten_pending: "Hay un error en tu programa. ¡Intentá de nuevo!"
|
145
|
+
kindergarten_failed: "Hay un error en tu programa. ¡Intentá de nuevo!"
|
146
|
+
kindergarten_errored: "Hay un error en tu programa. ¡Intentá de nuevo!"
|
147
|
+
kindergarten_aborted: "¡Ups! Hubo un problema técnico"
|
137
148
|
language: Lenguaje
|
138
149
|
languages: Lenguajes
|
139
150
|
last_name: Apellido
|
@@ -145,11 +156,14 @@ es:
|
|
145
156
|
lessons: Lecciones
|
146
157
|
lesson_number: Lección %{number}
|
147
158
|
let_us_know: ¡Por favor avisanos!
|
159
|
+
level: Nivel
|
160
|
+
level_up: ¡Subiste de nivel!
|
148
161
|
loading: Cargando
|
149
162
|
load_solution_into_console: Cargar la solución en la consola
|
150
163
|
locked_content: 'Este contenido se desbloqueará cuando termines los capítulos anteriores'
|
151
164
|
male: Hombre
|
152
165
|
manual_evaluation_pending: ¡Gracias por enviar tu solución! Tus docentes la corregirán pronto
|
166
|
+
medal: Medalla
|
153
167
|
message_count:
|
154
168
|
one: 1 mensaje
|
155
169
|
other: '%{count} mensajes'
|
@@ -160,8 +174,6 @@ es:
|
|
160
174
|
minutes: minutos
|
161
175
|
more_messages: Ver mensajes anteriores
|
162
176
|
moderator: Mentor
|
163
|
-
mumuki_catchphrase: Aprendé a programar
|
164
|
-
mumuki_short_description: Mumuki es la plataforma libre y gratuita para aprender a programar, de la práctica a la teoría y en tu idioma
|
165
177
|
my_doubts: Mis consultas
|
166
178
|
name: Nombre
|
167
179
|
navigation_continue: 'Siguiente %{kind}: %{sibling}'
|
@@ -208,7 +220,6 @@ es:
|
|
208
220
|
permissions: Permisos
|
209
221
|
please_fill_profile_data: ¡Completá tus datos personales para continuar!
|
210
222
|
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.'
|
211
|
-
powered_by_mumuki_html: "por <span class=\"da da-mumuki-circle\"></span> mumuki"
|
212
223
|
previous_exercise: Anterior
|
213
224
|
problem_with_exercise: '[Mumuki] Error con el ejercicio: %{title}'
|
214
225
|
processing_your_solution: Estamos procesando tu solución
|
@@ -247,6 +258,7 @@ es:
|
|
247
258
|
other: '%{count} resueltas'
|
248
259
|
solved_exercises: Ejercicios Resueltos
|
249
260
|
solve_doubts: Resolvé consultas
|
261
|
+
solve_more_exercises_to_level_up: Resolvé <span>number</span> ejercicios más para pasar al siguiente nivel.
|
250
262
|
solve_your_doubts: Consultá tus dudas
|
251
263
|
solve_your_doubts_teaser: ¿Tenés alguna consulta?
|
252
264
|
something_went_wrong: ¡Ups!, algo no anduvo bien...
|
@@ -256,7 +268,6 @@ es:
|
|
256
268
|
start_practicing: ¡Empezá ahora!
|
257
269
|
start_using_mumuki: ¡Empezá a usar Mumuki!
|
258
270
|
status: Estado
|
259
|
-
stay_here: No, quiero quedarme acá
|
260
271
|
stop_emails?: ¿Querés dejar de recibir estos mails?
|
261
272
|
subscribe: Recibir notificaciones
|
262
273
|
submission: solución
|
@@ -270,7 +281,10 @@ es:
|
|
270
281
|
teacher_info: Información para docentes
|
271
282
|
tell_us_how: ¡Contanos cómo te pasó esto!
|
272
283
|
tell_us_if_our_error: Si pensás que es un error nuestro, %{issues}
|
284
|
+
terms_accepted: Los términos y condiciones fueron aceptados
|
273
285
|
terms_and_conditions: Términos y condiciones
|
286
|
+
terms_and_conditions_continue_disclaimer: Al continuar estás aceptando los %{terms_link}
|
287
|
+
terms_and_conditions_must_be_accepted: Tenés que aceptar los términos y condiciones
|
274
288
|
test_results: Resultados de las pruebas
|
275
289
|
time_since: "hace %{time}"
|
276
290
|
time_left: Te quedan
|
@@ -282,6 +296,7 @@ es:
|
|
282
296
|
unauthorized_explanation: ¡Ups! Esto es lo que se conoce como %{error}, es decir que no iniciaste sesión.
|
283
297
|
uncategorized: No categorizado
|
284
298
|
undo_upvote: No es útil
|
299
|
+
unlocked_medal_as_avatar: ¡Obtuviste esta medalla! Ya podés elegirla como avatar.
|
285
300
|
unspecified: Prefiero no decirlo
|
286
301
|
unmeet_expectations: Objetivos que no se cumplieron
|
287
302
|
unprepared_organization_explanation: Este recorrido aún no ha comenzado
|
@@ -306,6 +321,7 @@ es:
|
|
306
321
|
working: "Procesando"
|
307
322
|
wrong_answer: La respuesta no es correcta
|
308
323
|
years: años
|
324
|
+
you_earned: Ganaste
|
309
325
|
you_must_sign_in_before_submitting: Tenés que iniciar sesión antes de empezar a enviar tus soluciones
|
310
326
|
you_never_submitted_solutions: Parece que nunca enviaste soluciones desde que creaste tu cuenta.
|
311
327
|
your_new_organization: tu nueva organización
|