From 31118d8c8c5f1038a1657323b097560102638529 Mon Sep 17 00:00:00 2001 From: Reinier Balt Date: Thu, 21 Apr 2011 16:54:35 +0200 Subject: [PATCH 001/197] add some more cucumber scenarios --- app/views/todos/toggle_check.js.erb | 3 + features/edit_a_todo.feature | 70 +++++++++++++++----- features/step_definitions/todo_edit_steps.rb | 8 +++ features/step_definitions/todo_steps.rb | 62 +++++++++++++++-- features/support/paths.rb | 2 + 5 files changed, 122 insertions(+), 23 deletions(-) diff --git a/app/views/todos/toggle_check.js.erb b/app/views/todos/toggle_check.js.erb index 935f4866..e793cf84 100644 --- a/app/views/todos/toggle_check.js.erb +++ b/app/views/todos/toggle_check.js.erb @@ -65,6 +65,9 @@ function add_todo_to_context(next_steps) { $("#<%= empty_container_msg_div_id(@todo) %>").slideUp(100); highlight_updated_todo(next_steps); <% end -%> + <% if @completed_count == 0 -%> + $("#empty-d").slideDown(100); + <% end -%> } function add_new_recurring_todo(next_steps) { diff --git a/features/edit_a_todo.feature b/features/edit_a_todo.feature index 3c77252e..fbe3c73e 100644 --- a/features/edit_a_todo.feature +++ b/features/edit_a_todo.feature @@ -9,8 +9,14 @@ Feature: Edit a next action from every page | testuser | secret | false | And I have logged in as "testuser" with password "secret" + @selenium Scenario: I can toggle the star of a todo - Given this is a pending scenario + Given I have a todo "star me" in the context "@home" + When I go to the home page + And I star the action "star me" + Then I should see a starred "star me" + When I go to the tag page for "starred" + Then I should see "star me" @selenium Scenario: I can delete a todo @@ -83,7 +89,7 @@ Feature: Edit a next action from every page Scenario Outline: I can mark a deferred todo complete and it will update empty messages Given I have a context called "visible context" And I have a project called "visible project" - When I go to the + When I go to the Then I should see "" When I submit a new deferred action with description "visible todo" to project "visible project" with tags "starred" in the context "visible context" Then I should see "visible todo" @@ -93,34 +99,62 @@ Feature: Edit a next action from every page And I should see "visible todo" in the completed container Scenarios: - | page | empty message | - | tag page for "starred" | Currently there are no deferred or pending actions | - | "visible project" project | Currently there are no deferred or pending actions | + | page | empty message | + | tag page for "starred" | Currently there are no deferred or pending actions | + | "visible project" project | Currently there are no deferred or pending actions | - @selenium @wip - Scenario Outline: I can mark a completed todo active and it will update empty messages - Given I have a completed todo with description "visible todo" to project "visible project" with tags "test" in the context "visible context" + @selenium + Scenario Outline: I can mark a completed todo active and it will update empty messages and context containers + Given I have a completed todo with description "visible todo" in project "visible project" with tags "starred" in the context "visible context" When I go to the Then I should see "" - And I should not see "visible context" - And I should see "" + And I should not see the container for context "visible context" + And I should not see "" When I mark the complete todo "visible todo" active - Then I should see "visible context" + Then I should see the container for context "visible context" And I should see "" And I should see "visible todo" in the context container for "visible context" And I should not see "" Scenarios: - | page | empty message | - | tag page for "starred" | No actions found | - | home page | No actions found | - | context page for "visible context" | Currently there are no deferred or pending actions | - | project page for "visible project" | Currently there are no deferred or pending actions | + | page | empty message | empty completed message | + | tag page for "starred" | No actions found | Currently there are no completed actions | + | home page | No actions found | Currently there are no completed actions | - Scenario: I can edit a todo to change its description # do for more pages, see #1094 - Given this is a pending scenario + @selenium + Scenario Outline: I can mark a completed todo active and it will update empty messages for pages without context containers + Given I have a completed todo with description "visible todo" in project "visible project" with tags "starred" in the context "visible context" + When I go to the + Then I should see "" + And I should not see "" + When I mark the complete todo "visible todo" active + And I should see "" + And I should not see "" + + Scenarios: + | page | empty message | empty completed message | + | context page for "visible context" | Currently there are no incomplete actions in this context | Currently there are no completed actions | + | "visible project" project | Currently there are no incomplete actions in this project | Currently there are no completed actions | + + @selenium + Scenario Outline: I can edit a todo to change its description + # do for more pages, see #1094 + Given I have a todo with description "visible todo" in project "visible project" with tags "starred" in the context "visible context" that is due next week + When I go to the + And I edit the description of "visible todo" to "changed todo" + Then I should not see "visible todo" + And I should see "changed todo" + + Scenarios: + | page | + | home page | + | context page for "visible context" | + | "visible project" project | + | tag page for "starred" | + | calendar page | Scenario: I can edit a todo to move it to another context + # for home and tickler and tag Given this is a pending scenario Scenario: I can edit a todo to move it to another project diff --git a/features/step_definitions/todo_edit_steps.rb b/features/step_definitions/todo_edit_steps.rb index d3ac64ee..8654718f 100644 --- a/features/step_definitions/todo_edit_steps.rb +++ b/features/step_definitions/todo_edit_steps.rb @@ -11,6 +11,14 @@ When /^I edit the context of "([^"]*)" to "([^"]*)"$/ do |context_old_name, cont When "I change the context_name field of \"#{context_old_name}\" to \"#{context_new_name}\"" end +When /^I edit the description of "([^"]*)" to "([^"]*)"$/ do |action_description, new_description| + todo = @current_user.todos.find_by_description(action_description) + todo.should_not be_nil + open_edit_form_for(todo) + fill_in "todo_description", :with => new_description + submit_edit_todo_form(todo) +end + When /^I edit the due date of "([^"]*)" to tomorrow$/ do |action_description| todo = @current_user.todos.find_by_description(action_description) todo.should_not be_nil diff --git a/features/step_definitions/todo_steps.rb b/features/step_definitions/todo_steps.rb index d0f27b4a..835112a9 100644 --- a/features/step_definitions/todo_steps.rb +++ b/features/step_definitions/todo_steps.rb @@ -52,6 +52,25 @@ Given /^I have ([0-9]+) completed todos with a note$/ do |count| end end +Given /^I have a todo with description "([^"]*)" in project "([^"]*)" with tags "([^"]*)" in the context "([^"]*)"$/ do |action_description, project_name, tags, context_name| + context = @current_user.contexts.find_or_create(:name => context_name) + project = @current_user.projects.find_or_create(:name => project_name) + @todo = @current_user.todos.create!(:context_id => context.id, :project_id => project.id, :description => action_description) + @todo.tag_with(tags) + @todo.save +end + +Given /^I have a todo with description "([^"]*)" in project "([^"]*)" with tags "([^"]*)" in the context "([^"]*)" that is due next week$/ do |action_description, project_name, tags, context_name| + Given "I have a todo with description \"#{action_description}\" in project \"#{project_name}\" with tags \"#{tags}\" in the context \"#{context_name}\"" + @todo.due = @current_user.time + 1.week + @todo.save! +end + +Given /^I have a completed todo with description "([^"]*)" in project "([^"]*)" with tags "([^"]*)" in the context "([^"]*)"$/ do |action_description, project_name, tags, context_name| + Given "I have a todo with description \"#{action_description}\" in project \"#{project_name}\" with tags \"#{tags}\" in the context \"#{context_name}\"" + @todo.complete! +end + Given /^I have a project "([^"]*)" that has the following todos$/ do |project_name, todos| Given "I have a project called \"#{project_name}\"" @project.should_not be_nil @@ -87,21 +106,54 @@ When /^I mark "([^"]*)" as complete$/ do |action_description| wait_for :timeout => 5 do !selenium.is_element_present("//div[@id='#{todo_container}']//div[@id='line_todo_#{todo.id}']") end - # note that animations could be running after finishing this end When /^I mark "([^"]*)" as uncompleted$/ do |action_description| - # TODO: generalize. this currently only works for context wrt xpath todo = @current_user.todos.find_by_description(action_description) todo.should_not be_nil check "mark_complete_#{todo.id}" - xpath="//div[@id='c#{todo.context_id}items']//div[@id='line_todo_#{todo.id}']" + todo_container = "fail" # fail this test if @source_view is wrong + todo_container = "p#{todo.project_id}items" if @source_view=="project" + todo_container = "c#{todo.context_id}items" if @source_view=="context" || @source_view=="todos" || @source_view=="tag" + + todo_container.should_not == "fail" + wait_for :timeout => 5 do - selenium.is_element_present(xpath) + selenium.is_element_present("//div[@id='#{todo_container}']//div[@id='line_todo_#{todo.id}']") end - # note that animations could be running after finishing this +end + +When /^I mark the complete todo "([^"]*)" active$/ do |action_description| + When "I mark \"#{action_description}\" as uncompleted" +end + + +When /^I star the action "([^"]*)"$/ do |action_description| + todo = @current_user.todos.find_by_description(action_description) + todo.should_not be_nil + + xpath_unstarred = "//div[@id='line_todo_#{todo.id}']//img[@class='unstarred_todo']" + xpath_starred = "//div[@id='line_todo_#{todo.id}']//img[@class='starred_todo']" + + selenium.is_element_present(xpath_unstarred).should be_true + + star_img = "//img[@id='star_img_#{todo.id}']" + selenium.click(star_img, :wait_for => :ajax, :javascript_framework => :jquery) + + wait_for :timeout => 5 do + selenium.is_element_present(xpath_starred) + end +end + +Then /^I should see a starred "([^"]*)"$/ do |action_description| + todo = @current_user.todos.find_by_description(action_description) + todo.should_not be_nil + + xpath_starred = "//div[@id='line_todo_#{todo.id}']//img[@class='starred_todo']" + + selenium.is_element_present(xpath_starred).should be_true end When /^I delete the action "([^"]*)"$/ do |action_description| diff --git a/features/support/paths.rb b/features/support/paths.rb index 3d195d23..8729ddc8 100644 --- a/features/support/paths.rb +++ b/features/support/paths.rb @@ -22,6 +22,8 @@ module NavigationHelpers login_path(options) when /the notes page/ notes_path(options) + when /the calendar page/ + calendar_path(options) when /the contexts page/ @source_view = "contexts" contexts_path(options) From 57ad48d7d7e8bb2ca5c2bdaf5ebb3c93287969ee Mon Sep 17 00:00:00 2001 From: Reinier Balt Date: Wed, 27 Apr 2011 19:03:37 +0200 Subject: [PATCH 002/197] closing #1148 by removing the transparent background from the spinner. Does not solve the margin of the spinner on the buttons, but that is low prio for now --- public/javascripts/jquery.blockUI.js | 41 +++++++++++++++------------- public/stylesheets/standard.css | 5 +++- 2 files changed, 26 insertions(+), 20 deletions(-) diff --git a/public/javascripts/jquery.blockUI.js b/public/javascripts/jquery.blockUI.js index fe1144a0..3c111d52 100644 --- a/public/javascripts/jquery.blockUI.js +++ b/public/javascripts/jquery.blockUI.js @@ -1,10 +1,10 @@ -/*! +/*! * jQuery blockUI plugin - * Version 2.36 (16-NOV-2010) + * Version 2.38 (29-MAR-2011) * @requires jQuery v1.2.3 or later * * Examples at: http://malsup.com/jquery/block/ - * Copyright (c) 2007-2008 M. Alsup + * Copyright (c) 2007-2010 M. Alsup * Dual licensed under the MIT and GPL licenses: * http://www.opensource.org/licenses/mit-license.php * http://www.gnu.org/licenses/gpl.html @@ -42,7 +42,7 @@ $.growlUI = function(title, message, timeout, onClose) { $.blockUI({ message: $m, fadeIn: 700, fadeOut: 1000, centerY: false, timeout: timeout, showOverlay: false, - onUnblock: onClose, + onUnblock: onClose, css: $.blockUI.defaults.growlCSS }); }; @@ -65,7 +65,7 @@ $.fn.unblock = function(opts) { }); }; -$.blockUI.version = 2.35; // 2nd generation blocking at no extra cost! +$.blockUI.version = 2.38; // 2nd generation blocking at no extra cost! // override these in your code to change the default behavior and style $.blockUI.defaults = { @@ -74,9 +74,9 @@ $.blockUI.defaults = { title: null, // title string; only used when theme == true draggable: true, // only used when theme == true (requires jquery-ui.js to be loaded) - + theme: false, // set to true to use with jQuery UI themes - + // styles for the message when blocking; if you wish to disable // these and use an external stylesheet then do this in your code: // $.blockUI.defaults.css = {}; @@ -92,7 +92,7 @@ $.blockUI.defaults = { backgroundColor:'#fff', cursor: 'wait' }, - + // minimal style set used when themes are used themedCSS: { width: '30%', @@ -123,7 +123,7 @@ $.blockUI.defaults = { '-moz-border-radius': '10px', 'border-radius': '10px' }, - + // IE issues: 'about:blank' fails on HTTPS and javascript:false is s-l-o-w // (hat tip to Jorge H. N. de Vasconcelos) iframeSrc: /^https/i.test(window.location.href || '') ? 'javascript:false' : 'about:blank', @@ -167,7 +167,7 @@ $.blockUI.defaults = { // suppresses the use of overlay styles on FF/Linux (due to performance issues with opacity) applyPlatformOpacityRules: true, - + // callback method invoked when fadeIn has completed and blocking message is visible onBlock: null, @@ -224,11 +224,14 @@ function install(el, opts) { // layer2 is the overlay layer which has opacity and a wait cursor (by default) // layer3 is the message content that is displayed while blocking - var lyr1 = ($.browser.msie || opts.forceIframe) + var lyr1 = ($.browser.msie || opts.forceIframe) ? $('') : $(''); - var lyr2 = $(''); - + + var lyr2 = opts.theme + ? $('') + : $(''); + var lyr3, s; if (opts.theme && full) { s = ' \ No newline at end of file From 0ccf42d08cbade3c47e6b6bb09056fdca6879992 Mon Sep 17 00:00:00 2001 From: Reinier Balt Date: Fri, 29 Apr 2011 23:15:41 +0200 Subject: [PATCH 007/197] fix #1157 and fix #1158 by changing the way empty projects are included in the sorting and by fixing the dutch translation for sorting titles --- app/models/user.rb | 28 +++++++++++-------- app/views/projects/_project_state_group.rhtml | 4 +-- config/locales/nl.yml | 10 +++---- 3 files changed, 23 insertions(+), 19 deletions(-) diff --git a/app/models/user.rb b/app/models/user.rb index 5776d14d..1da1f0ba 100644 --- a/app/models/user.rb +++ b/app/models/user.rb @@ -60,19 +60,23 @@ class User < ActiveRecord::Base return projects end def actionize(user_id, scope_conditions = {}) - @state = scope_conditions[:state] - query_state = "" - query_state = "AND project.state = '" + @state +"' "if @state - projects = Project.find_by_sql([ - "SELECT project.id, count(todo.id) as p_count " + - "FROM projects as project " + - "LEFT OUTER JOIN todos as todo ON todo.project_id = project.id "+ - "WHERE project.user_id = ? AND NOT (todo.state='completed') " + + query_state = scope_conditions[:state] ? "AND projects.state = '#{scope_conditions[:state]}' " : "" + projects_with_active_todos = Project.find_by_sql([ + "SELECT projects.id, count(todos.id) as p_count " + + "FROM projects " + + "LEFT OUTER JOIN todos ON todos.project_id = projects.id "+ + "WHERE projects.user_id = ? AND " + + "NOT (todos.state='completed' OR todos.state='deferred' OR todos.state='pending') " + query_state + - " GROUP BY project.id ORDER by p_count DESC",user_id]) - self.update_positions(projects.map{ |p| p.id }) - projects = find(:all, :conditions => scope_conditions) - return projects + " GROUP BY projects.id ORDER by p_count DESC",user_id]) + all_project_ids = Project.find_by_sql([ + "SELECT id FROM projects WHERE projects.user_id = ? " + query_state, user_id + ]) + ids_in_new_positions = projects_with_active_todos.map{|p| p.id} + ids_of_unselected_projects = all_project_ids.map{|p| p.id} - ids_in_new_positions + self.update_positions(ids_in_new_positions + ids_of_unselected_projects) + + return find(:all, :conditions => scope_conditions) end end has_many :active_projects, diff --git a/app/views/projects/_project_state_group.rhtml b/app/views/projects/_project_state_group.rhtml index 9ac672fb..ba84cd0c 100644 --- a/app/views/projects/_project_state_group.rhtml +++ b/app/views/projects/_project_state_group.rhtml @@ -2,10 +2,10 @@

<%= project_state_group.length %><%= t('states.'+state+'_plural' )%> <%= t('common.projects') %>

diff --git a/config/locales/nl.yml b/config/locales/nl.yml index c2c320c5..a22fdb34 100644 --- a/config/locales/nl.yml +++ b/config/locales/nl.yml @@ -26,12 +26,12 @@ nl: drag_handle: SLEEP sort: by_task_count_title: Sorteer op aantal acties - by_task_count_title_confirm: Weet u zeker dat u deze projecten alphabetisch wilt sorteren? Dat zal de huidige sorteervolgorde aanpassen. - alphabetically: Alphabetisch + by_task_count_title_confirm: Weet u zeker dat u deze op aantal acties wilt sorteren? Dat zal de huidige sorteervolgorde aanpassen. + alphabetically: Alfabetisch sort: Sorteer - alphabetically_title: Sorteer projecten alphabetisch - alphabetically_confirm: Weet u zeker dat u deze projecten alphabetisch wilt sorteren? Dat zal de huidige sorteervolgorde aanpassen. - by_task_count: Bij aantal acties + alphabetically_title: Sorteer projecten alfabetisch + alphabetically_confirm: Weet u zeker dat u deze projecten alfabetisch wilt sorteren? Dat zal de huidige sorteervolgorde aanpassen. + by_task_count: Op aantal acties create: Maken contexts: Contexten fourth: Vierde From 7f27a6e2bdb1a3191643d038dc8f49a058826c67 Mon Sep 17 00:00:00 2001 From: Reinier Balt Date: Sat, 30 Apr 2011 17:57:36 +0200 Subject: [PATCH 008/197] fix corner case that were failing the cucumber tests. On the calendar page at the end of the month, a todo may occur twice on the page. This was not taken into account for update an destroy --- .gitignore | 1 + app/controllers/todos_controller.rb | 14 ++++++++++++-- app/views/todos/destroy.js.erb | 25 +++++++++++++++---------- app/views/todos/update.js.erb | 5 +++++ config/locales/nl.yml | 2 +- features/calendar.feature | 4 ++-- 6 files changed, 36 insertions(+), 15 deletions(-) diff --git a/.gitignore b/.gitignore index 0af7cb4e..bd41271d 100644 --- a/.gitignore +++ b/.gitignore @@ -2,6 +2,7 @@ *.tmproj .dotest /.emacs-project +/.redcar config/database.yml config/site.yml config/deploy.rb diff --git a/app/controllers/todos_controller.rb b/app/controllers/todos_controller.rb index d0a558b1..5e413fed 100644 --- a/app/controllers/todos_controller.rb +++ b/app/controllers/todos_controller.rb @@ -625,7 +625,7 @@ class TodosController < ApplicationController due_this_week_date = Time.zone.now.end_of_week due_next_week_date = due_this_week_date + 7.days due_this_month_date = Time.zone.now.end_of_month - + @due_today = current_user.todos.not_completed.find(:all, :include => [:taggings, :tags], :conditions => ['todos.due <= ?', due_today_date], @@ -646,7 +646,7 @@ class TodosController < ApplicationController :include => [:taggings, :tags], :conditions => ['todos.due > ?', due_this_month_date], :order => "due") - + @count = current_user.todos.not_completed.are_due.count respond_to do |format| @@ -1278,6 +1278,16 @@ class TodosController < ApplicationController return false if context_name.blank? true end + + def determine_non_uniq_todo + # for calendar view. TODO: unused + all_list_uniq_ids = (@due_today.map(&:id) + @due_this_week.map(&:id) + + @due_next_week.map(&:id) + @due_this_month.map(&:id) + @due_after_this_month.map(&:id)).uniq + all_list_count = @due_today.count + @due_this_week.count + + @due_next_week.count + @due_this_month.count + @due_after_this_month.count + + return !( all_list_uniq_ids.length == all_list_count ) + end class FindConditionBuilder diff --git a/app/views/todos/destroy.js.erb b/app/views/todos/destroy.js.erb index 3b264ea9..86808c58 100644 --- a/app/views/todos/destroy.js.erb +++ b/app/views/todos/destroy.js.erb @@ -32,19 +32,24 @@ function show_empty_messages() { function remove_todo_from_page() { <% if (@remaining_in_context == 0) && update_needs_to_hide_context - # remove context with deleted todo + # remove context with deleted todo -%> - $('#c<%=@todo.context_id%>').fadeOut(400, function() { - $('#<%=dom_id(@todo)%>').remove(); - }); - <%= show_empty_message_in_source_container -%> + $('#c<%=@todo.context_id%>').fadeOut(400, function() { + $('#<%=dom_id(@todo)%>').remove(); + }); + <%= show_empty_message_in_source_container -%> <% else - # remove only the todo + # remove only the todo -%> - <%= show_empty_message_in_source_container %> - $('#<%=dom_id(@todo)%>').slideUp(400, function() { - $('#<%=dom_id(@todo)%>').remove(); - }); + <%= show_empty_message_in_source_container %> + $('#<%=dom_id(@todo)%>').slideUp(400, function() { + $('#<%=dom_id(@todo)%>').remove(); + <% if source_view_is :calendar + # in calendar view it is possible to have a todo twice on the page + -%> + $('#<%=dom_id(@todo)%>').remove(); + <% end %> + }); <% end -%> } diff --git a/app/views/todos/update.js.erb b/app/views/todos/update.js.erb index 7d2e62ad..c76d71b1 100644 --- a/app/views/todos/update.js.erb +++ b/app/views/todos/update.js.erb @@ -27,6 +27,11 @@ function remove_todo(next_steps) { $('#<%= dom_id(@todo) %>').fadeOut(400, function() { $('#<%= dom_id(@todo) %>').remove(); + <% if source_view_is :calendar + # in calendar view it is possible to have a todo twice on the page + -%> + $('#<%= dom_id(@todo) %>').remove(); + <% end %> <%= show_empty_message_in_source_container -%> next_steps.go(); }); diff --git a/config/locales/nl.yml b/config/locales/nl.yml index a22fdb34..fa1feb98 100644 --- a/config/locales/nl.yml +++ b/config/locales/nl.yml @@ -327,7 +327,7 @@ nl: show_tomorrow: Toon morgen calendar: get_in_ical_format: Ontvang deze agenda in iCal-formaat - due_next_week: Deadline deze week + due_next_week: Deadline volgende week due_this_week: Deadline in rest van deze week no_actions_due_next_week: Geen acties met deadline in volgende week due_today: Deadline vandaag diff --git a/features/calendar.feature b/features/calendar.feature index ddc68106..dee7cecc 100644 --- a/features/calendar.feature +++ b/features/calendar.feature @@ -22,7 +22,7 @@ Feature: Show all due actions in a calendar view Then the badge should show 1 And I should see "a new next action" - @selenium + @selenium Scenario: Clearing the due date of a todo will remove it from the calendar When I go to the home page And I submit a new action with description "a new next action" in the context "@calendar" @@ -32,7 +32,7 @@ Feature: Show all due actions in a calendar view When I clear the due date of "a new next action" Then I should not see "a new next action" - @selenium + @selenium Scenario: Marking a todo complete will remove it from the calendar Given I have a todo "a new next action" in the context "@calendar" which is due tomorrow When I go to the calendar page From 79cb34e1054628651739c67fe0e06d9de7d14cfa Mon Sep 17 00:00:00 2001 From: Reinier Balt Date: Sat, 30 Apr 2011 20:46:47 +0200 Subject: [PATCH 009/197] fix #1149 where submitting a dependency that does not exist will show a warning that it will be ignored --- app/helpers/application_helper.rb | 2 +- config/locales/de.yml | 685 ++++++++++++++--------------- config/locales/en.yml | 1 + config/locales/nl.yml | 687 +++++++++++++++--------------- public/javascripts/application.js | 3 + 5 files changed, 692 insertions(+), 686 deletions(-) diff --git a/app/helpers/application_helper.rb b/app/helpers/application_helper.rb index 0af710a0..56c8da10 100644 --- a/app/helpers/application_helper.rb +++ b/app/helpers/application_helper.rb @@ -252,7 +252,7 @@ module ApplicationHelper contexts.show_form contexts.show_form_title contexts.new_context_pre contexts.new_context_post common.cancel common.ok - common.ajaxError + common.ajaxError todos.unresolved_dependency }.each do |s| js << "i18n['#{s}'] = '#{ t(s).gsub(/'/, "\\\\'") }';\n" end diff --git a/config/locales/de.yml b/config/locales/de.yml index 4c4d6ead..d6d0e73b 100644 --- a/config/locales/de.yml +++ b/config/locales/de.yml @@ -1,99 +1,5 @@ --- de: - common: - back: "Zur\xC3\xBCck" - actions: Aktionen - third: Dritte - go_back: "Zur\xC3\xBCck" - add: "Hinzuf\xC3\xBCgen" - logout: Abmelden - none: Keine - cancel: Abbrechen - optional: optional - second: Zweite - notes: Notizen - server_error: Auf dem Server ist ein Fehler aufgetreten. - forum: Forum - action: Aktion - last: Letzte - projects: Projekte - project: Projekt - ok: Ok - contribute: Mitwirken - numbered_step: Schritt %{number} - first: Erste - website: Website - drag_handle: Verschieben - sort: - by_task_count_title: Nach Anzahl der Aufgaben sortieren - by_task_count_title_confirm: Sollen diese Projekte wirklich nach Anzahl der Aufgaben sortiert werden? Die bisherige Sortier-Reihenfolge wird damit überschrieben. - alphabetically: Alphabetisch - sort: Sortieren - alphabetically_title: Projekte alphabetisch sortieren - alphabetically_confirm: Sollen diese Projekte wirklich alphabetisch sortiert werden? Die bisherige Sortier-Reihenfolge wird damit überschrieben. - by_task_count: Nach Anzahl der Aufgaben - create: Erstellen - contexts: Kontexte - fourth: Vierte - context: Kontext - errors_with_fields: "Mit folgenden Feldern sind Probleme aufgetreten:" - description: Beschreibung - update: Aktualisieren - bugs: Bugs - wiki: Wiki - ajaxError: Fehler beim Empfangen vom Server - email: E-Mail - search: Suchen - layouts: - toggle_notes: Notizen umschalten - next_actions_rss_feed: RSS-Feed kommende Aufgaben - toggle_notes_title: Alle Notizen umschalten - mobile_navigation: - logout: Abmelden - feeds: Feeds - new_action: 0-Neue Aufgabe - starred: 4-Markiert - projects: 3-Projekte - tickler: Notizbuch - contexts: 2-Kontexte - home: 1-Home - navigation: - recurring_todos: Sich wiederholende To-Dos - manage_users_title: "Benutzer hinzuf\xC3\xBCgen oder entfernen" - api_docs: REST API Docs - feeds: Feeds - starred: Markiert - notes_title: Alle Notizen anzeigen - stats: Statistiken - tickler_title: Notizbuch - manage_users: Benutzer verwalten - preferences: Einstellungen - export_title: Daten importieren und exportieren - integrations_: Tracks integrieren - calendar_title: "Kalender mit \xC3\xBCberf\xC3\xA4lligen Aufgaben" - feeds_title: "Liste der verf\xC3\xBCgbaren Feeds anzeigen" - recurring_todos_title: Sich wiederholende To-Dos verwalten - completed_tasks: Erledigt - stats_title: Statistiken anzeigen - tickler: Notizbuch - home_title: Start - starred_title: Markierte Aufgaben betrachten - organize: Organisieren - view: Betrachten - completed_tasks_title: "Vollst\xC3\xA4ndig" - home: Start - export: Export - contexts_title: Kontexte - projects_title: Projekte - preferences_title: Meine Einstellungen - calendar: Kalender - search: "Alle Eintr\xC3\xA4ge durchsuchen" - integrations: - opensearch_description: In Tracks suchen - gmail_description: "Gadget, um Tracks als Gadget zu Googlemail hinzuzuf\xC3\xBCgen" - applescript_next_action_prompt: "Beschreibung der n\xC3\xA4chsten Aufgabe:" - applescript_success_after_id: erstellt - applescript_success_before_id: "N\xC3\xA4chste neue Aufgabe mit ID" number: format: separator: "," @@ -116,6 +22,9 @@ de: percentage: format: delimiter: "" + precision: + format: + delimiter: "" currency: format: format: "%n%u" @@ -125,9 +34,103 @@ de: separator: . precision: delimiter: "," - precision: - format: - delimiter: "" + integrations: + opensearch_description: In Tracks suchen + applescript_next_action_prompt: "Beschreibung der n\xC3\xA4chsten Aufgabe:" + gmail_description: "Gadget, um Tracks als Gadget zu Googlemail hinzuzuf\xC3\xBCgen" + applescript_success_after_id: erstellt + applescript_success_before_id: "N\xC3\xA4chste neue Aufgabe mit ID" + common: + back: "Zur\xC3\xBCck" + third: Dritte + actions: Aktionen + add: "Hinzuf\xC3\xBCgen" + logout: Abmelden + go_back: "Zur\xC3\xBCck" + cancel: Abbrechen + none: Keine + second: Zweite + optional: optional + forum: Forum + notes: Notizen + server_error: Auf dem Server ist ein Fehler aufgetreten. + projects: Projekte + last: Letzte + action: Aktion + project: Projekt + contribute: Mitwirken + ok: Ok + website: Website + first: Erste + numbered_step: Schritt %{number} + fourth: Vierte + sort: + by_task_count_title: Nach Anzahl der Aufgaben sortieren + by_task_count_title_confirm: Sollen diese Projekte wirklich nach Anzahl der Aufgaben sortiert werden? Die bisherige Sortier-Reihenfolge wird damit überschrieben. + alphabetically: Alphabetisch + alphabetically_confirm: Sollen diese Projekte wirklich alphabetisch sortiert werden? Die bisherige Sortier-Reihenfolge wird damit überschrieben. + sort: Sortieren + alphabetically_title: Projekte alphabetisch sortieren + by_task_count: Nach Anzahl der Aufgaben + create: Erstellen + drag_handle: Verschieben + context: Kontext + description: Beschreibung + errors_with_fields: "Mit folgenden Feldern sind Probleme aufgetreten:" + contexts: Kontexte + bugs: Bugs + update: Aktualisieren + wiki: Wiki + search: Suchen + email: E-Mail + ajaxError: Fehler beim Empfangen vom Server + layouts: + toggle_notes: Notizen umschalten + next_actions_rss_feed: RSS-Feed kommende Aufgaben + toggle_notes_title: Alle Notizen umschalten + mobile_navigation: + logout: Abmelden + new_action: 0-Neue Aufgabe + feeds: Feeds + starred: 4-Markiert + projects: 3-Projekte + tickler: Notizbuch + contexts: 2-Kontexte + home: 1-Home + navigation: + manage_users_title: "Benutzer hinzuf\xC3\xBCgen oder entfernen" + api_docs: REST API Docs + recurring_todos: Sich wiederholende To-Dos + feeds: Feeds + starred: Markiert + notes_title: Alle Notizen anzeigen + stats: Statistiken + tickler_title: Notizbuch + manage_users: Benutzer verwalten + export_title: Daten importieren und exportieren + integrations_: Tracks integrieren + preferences: Einstellungen + calendar_title: "Kalender mit \xC3\xBCberf\xC3\xA4lligen Aufgaben" + feeds_title: "Liste der verf\xC3\xBCgbaren Feeds anzeigen" + recurring_todos_title: Sich wiederholende To-Dos verwalten + completed_tasks: Erledigt + stats_title: Statistiken anzeigen + home_title: Start + starred_title: Markierte Aufgaben betrachten + tickler: Notizbuch + view: Betrachten + organize: Organisieren + completed_tasks_title: "Vollst\xC3\xA4ndig" + export: Export + home: Start + contexts_title: Kontexte + calendar: Kalender + projects_title: Projekte + preferences_title: Meine Einstellungen + search: "Alle Eintr\xC3\xA4ge durchsuchen" + data: + import_successful: Import war erfolgreich. + import_errors: Beim Import sind Fehler aufgetreten. models: project: feed_title: Tracks-Projekte @@ -141,9 +144,6 @@ de: user: error_context_not_associated: "Kontext-ID %{context} nicht mit Benutzer-ID %{user} verkn\xC3\xBCpft." error_project_not_associated: "Projekt-ID %{project} nicht mit User-ID %{user} verkn\xC3\xBCpft." - data: - import_successful: Import war erfolgreich. - import_errors: Beim Import sind Fehler aufgetreten. activerecord: attributes: project: @@ -160,12 +160,12 @@ de: description: Beschreibung due: Fällig preference: - mobile_todos_per_page: Aufgaben pro Seite (Mobile Version) sms_context: Standard-E-Mail-Kontext + mobile_todos_per_page: Aufgaben pro Seite (Mobile Version) refresh: Aktualisierungsintverall (in Minuten) week_starts: Woche startet am - show_project_on_todo_done: Zur Projektseite wechseln, wenn To-Do abgeschlossen sms_email: Per E-Mail + show_project_on_todo_done: Zur Projektseite wechseln, wenn To-Do abgeschlossen user: last_name: Nachname first_name: Vorname @@ -180,44 +180,136 @@ de: messages: record_invalid: "Validierung fehlgeschlagen: %{Fehler}" greater_than_or_equal_to: "muss gr\xC3\xB6\xC3\x9Fer oder gleich %{count} sein" - less_than_or_equal_to: muss kleiner oder gleich %{count} sein confirmation: "stimmt nicht mit der Best\xC3\xA4tigung \xC3\xBCberein" + less_than_or_equal_to: muss kleiner oder gleich %{count} sein blank: "muss ausgef\xC3\xBCllt werden" invalid: "ist nicht g\xC3\xBCltig" exclusion: "ist nicht verf\xC3\xBCgbar" odd: muss ungerade sein too_short: ist zu kurz (nicht weniger als %{count} Zeichen) - wrong_length: "hat die falsche L\xC3\xA4nge (muss genau %{count} Zeichen haben)" empty: "muss ausgef\xC3\xBCllt werden" + wrong_length: "hat die falsche L\xC3\xA4nge (muss genau %{count} Zeichen haben)" even: muss gerade sein less_than: muss kleiner als %{count} sein - equal_to: muss genau %{count} sein greater_than: "muss gr\xC3\xB6\xC3\x9Fer als %{count} sein" - too_long: ist zu lang (nicht mehr als %{count} Zeichen) + equal_to: muss genau %{count} sein accepted: muss akzeptiert werden + too_long: ist zu lang (nicht mehr als %{count} Zeichen) taken: ist bereits vergeben not_a_number: ist keine Zahl inclusion: "ist kein g\xC3\xBCltiger Wert" + full_messages: + format: "%{attribute} %{message}" template: body: "Bitte \xC3\xBCberpr\xC3\xBCfen Sie die folgenden Felder:" header: one: "Konnte dieses %{model} Objekt nicht speichern: 1 Fehler." other: "Konnte dieses %{model} Objekt nicht speichern: %{count} Fehler." - full_messages: - format: "%{attribute} %{message}" + stats: + tag_cloud_title: Tag-Cloud aller Aktionen + tag_cloud_description: Diese Tag-Cloud beinhaltet Tags aller Aktionen (abgeschlossen, nicht abgeschlossen, sichtbar und/oder unsichtbar) + actions: Aktionen + tag_cloud_90days_title: Tag-Cloud-Aktionen in den letzten 90 Tagen + totals_active_project_count: Von diesen sind %{count} aktive Projekte + totals_first_action: Seit deiner ersten Aktion am %{date} + actions_avg_completion_time: Durchschnittlich hast du %{count} Tage gebraucht, um eine Aktion abzuschliessen. + actions_last_year_legend: + number_of_actions: Anzahl Aktionen + months_ago: Monate zuvor + actions_dow_30days_title: Wochentag (letzte 30 Tage) + legend: + actions: Aktionen + number_of_days: Anzahl vergangene Tage + number_of_actions: Anzahl Aktionen + day_of_week: Wochentag + percentage: Prozentsatz + running_time: Laufzeit einer Aktion (Wochen) + months_ago: Monate zuvor + totals_deferred_actions: "von denen %{count} im Notizbuch zur\xC3\xBCckgestellt sind" + totals_action_count: hattest du insgesamt %{count} Aktionen + current_running_time_of_incomplete_visible_actions: "Aktuelle Laufzeit unvollst\xC3\xA4ndiger sichtbarer Aufgaben" + running_time_legend: + actions: Aufgaben + percentage: Prozentsatz + weeks: "Vergangene Zeit einer Aktion (Wochen). Klick auf eine Leiste f\xC3\xBCr mehr Informationen." + top10_longrunning: "Top 10 der am l\xC3\xA4ngsten laufenden Projekte" + actions_lastyear_title: Aktionen der letzten 12 Monate + totals_actions_completed: "%{count} davon sind abgeschlossen." + totals_incomplete_actions: "Du hast %{count} unvollst\xC3\xA4ndige Aktionen" + totals_unique_tags: Von diesen Tags sind %{count} einmalig.. + actions_avg_completed_30days: und %{count} durchschnittlich davon erledigt. + top5_contexts: Top 5 aller Kontexte + action_completion_time_title: Fertigstellungszeit (alle abgeschlossenen Aktionen) + projects: Projekte + actions_last_year: Aktionen im letzten Jahr + totals_context_count: Du hast %{count} Kontexte. + totals_visible_context_count: Von diesen sind %{count} sichtbare Kontexte + totals_blocked_actions: "%{count} h\xC3\xA4ngen vom Abschluss anderer Aktionen ab." + actions_min_completion_time: "Die minimale Zeit betr\xC3\xA4gt %{time}." + tags: Tags + no_tags_available: "keine Tags verf\xC3\xBCgbar" + actions_day_of_week_title: Wochentag (alle Aktionen) + totals_project_count: Du hast %{count} Projekte. + actions_min_max_completion_days: "Das Minimum/Maximum an Tagen einer Vervollst\xC3\xA4ndigung ist %{min}/%{max}." + more_stats_will_appear: "Weitere Statistiken werden verf\xC3\xBCgbar, wenn einige Aufgaben hinzugef\xC3\xBCgt wurden." + actions_30days_title: _Aktionen der letzten 30 Tage + running_time_all: "Aktuelle Laufzeit aller unvollst\xC3\xA4ndigen Aktionen." + tod30: Tageszeit (letzte 30 Tage) + totals_tag_count: Du hast %{count} Tags in Aktionen. + top5_visible_contexts_with_incomplete_actions: "Top 5 der sichtbaren Kontexte mit unvollst\xC3\xA4ndigen Aktionen" + totals_hidden_project_count: "%{count} sind versteckt" + time_of_day: Tageszeit (alle Aktionen) + tag_cloud_90days_description: Diese Tag-Cloud beinhaltet Tags der Aktionen, die in den letzten 90 Tagen erstellt oder abgeschlossen wurden. + actions_further: und danach + other_actions_label: (andere) + actions_avg_created: In den letzten 12 Monaten hast du im Durchschnitt %{count} Aktionen erstellt + spread_of_running_actions_for_visible_contexts: Verteilung der laufenden Aufgaben aller sichtbaren Kontexte + actions_selected_from_week: "Aktionen ausgew\xC3\xA4hlt ab Woche" + totals_completed_project_count: und %{count} sind abgeschlossene Projekte. + click_to_show_actions_from_week: Klick auf %{link} um die Aktionen von Woche %{week} und danach anzuzeigen. + spread_of_actions_for_all_context: Aufgabenverteilung aller Kontexte + click_to_return: "Klick auf %{link} um zur Statistikseite zur\xC3\xBCckzukehren." + top10_projects: Top 10 aller Projekte + top10_projects_30days: Top-10-Projekt der letzten 30 Tage + time_of_day_legend: + number_of_actions: Anzahl Aufgaben + time_of_day: Tageszeit + click_to_return_link: hier + totals_hidden_context_count: und %{count} sind versteckte Kontexte. + actions_avg_completed: und %{count} durchschnittlich davon monatlich erledigt + contexts: Kontexte + totals: Ingesamt + running_time_all_legend: + actions: Aktionen + percentage: Prozentsatz + running_time: "Laufzeit einer Aktion (Wochen). Klick auf eine Leiste f\xC3\xBCr mehr Informationen." + labels: + month_avg_completed: "%{months} Monat durchschnittlich fertig gestellt" + completed: Erledigt + month_avg_created: "%{months} Monat durchschnittlich erstellt" + avg_created: Durchschnittlich erstellt + avg_completed: Durchschnittlich fertiggestellt + created: Erstellt + no_actions_selected: "Es sind keine Aufgaben ausgew\xC3\xA4hlt." + click_to_update_actions: Klicke auf eine Leiste in der Grafik um die Aktionen unten zu aktualisieren. + tod30_legend: + number_of_actions: Anzahl Aufgaben + time_of_day: Tageszeit + action_selection_title: TRACKS::Aktionsauswahl + actions_actions_avg_created_30days: In den letzten 30 Tagen hast du im Durchschnitt %{count} Aktionen erstellt todos: - error_starring_recurring: Konnte die Hervorhebung der wiederkehrenden Aufgabe \'%{description}\' nicht durchführen - show_from: Anzeigen ab dem recurring_action_deleted: Die Aktion wurde gelöscht. Da dies eine wiederkehrende Aktion ist, wurde eine neue erstellt. + show_from: Anzeigen ab dem + error_starring_recurring: Konnte die Hervorhebung der wiederkehrenden Aufgabe \'%{description}\' nicht durchführen completed_actions: Erledigte Aufgaben completed_recurring: Abgeschlossene wiederkehrende To-Dos added_new_next_action: Neue Aktion angelegt blocked_by: Blockiert durch %{predecessors} - done: Erledigt? star_action: Aktion markieren completed_recurrence_completed: Es gibt keine weitere Aktion nach der soeben gelöschten. Die Wiederholung ist abgeschlossen. defer_date_after_due_date: "Zur\xC3\xBCckstellungsdatum nach Ablaufdatum. Bitte passe das Ablaufdatum an, dass es vor dem Zur\xC3\xBCckstellungsdatum liegt." unable_to_add_dependency: Abhängigkeit nicht hinzufügbar + done: Erledigt? star_action_with_description: Aktion '%{description}' markieren tagged_with: getagged mit ‘%{tag_name}’ completed: Erledigt @@ -225,13 +317,13 @@ de: no_hidden_actions: Momentan sind keine versteckten Aufgaben vorhanden edit_action_with_description: Aktion '%{description}' bearbeiten action_due_on: "(Aktion f\xC3\xA4llig am %{date})" - list_incomplete_next_actions: Unerledigte Folge-Aufgaben anzeigen + action_deleted_success: Die nächste Aktion erfolgreich gelöscht archived_tasks_title: TRACKS::Archivierte erledigte Aufgaben remove_dependency: Abhängigkeit löschen (löscht nicht die Aufgabe) - action_deleted_success: Die nächste Aktion erfolgreich gelöscht + list_incomplete_next_actions: Unerledigte Folge-Aufgaben anzeigen tags: Tags (Komma-separiert) - context_changed: Kontext zu %{name} gewechselt new_related_todo_created: "Eine neue To-Do wurde hinzugef\xC3\xBCgt, die zu dieser wiederkehrenden To-Do geh\xC3\xB6rt" + context_changed: Kontext zu %{name} gewechselt mobile_todos_page_title: Alle Aufgaben add_another_dependency: "F\xC3\xBCgen Sie eine andere Abh\xC3\xA4ngigkeit" delete_recurring_action_title: "Wiederkehrende Aktion '%{description}' l\xC3\xB6schen" @@ -244,13 +336,13 @@ de: edit_action: Aktion bearbeiten added_new_context: "Neuer Kontext hinzugef\xC3\xBCgt" next_actions_description: "Filter:" - set_to_pending: "%{task} als ausstehend markiert" - list_incomplete_next_actions_with_limit: Zeige die letzten %{count} unerledigten Folge-Aufgaben - added_new_project: "Neues Projekt hinzugef\xC3\xBCgt" next_actions_title_additions: completed: Aufgaben erledigt due_today: heute fällig due_within_a_week: diese Woche fällig + added_new_project: "Neues Projekt hinzugef\xC3\xBCgt" + list_incomplete_next_actions_with_limit: Zeige die letzten %{count} unerledigten Folge-Aufgaben + set_to_pending: "%{task} als ausstehend markiert" older_completed_items: "Ältere erledigte Aufgaben" append_in_this_project: in diesem Projekt error_deleting_item: Beim Löschen von %{description} trat ein Fehler auf @@ -260,18 +352,18 @@ de: error_completing_todo: Beim Abschliessen/Aktivieren der wiederkehrenden To-Do %{description} ist ein Fehler aufgetreten convert_to_project: In Projekt umwandeln no_deferred_pending_actions: Momentan sind keine aufgeschobenen oder ausstehenden Aufgaben vorhanden. - completed_last_day: In den letzten 24 Stunden erledigt delete_recurring_action_confirm: Soll die wiederkehrende Aktion '%{description}' wirklich gelöscht werden? - new_related_todo_created_short: hat einen neuen todo - show_in_days: Anzeigen in %{days} Tagen - no_project: --Kein Projekt-- - error_saving_recurring: Es gab einen Fehler beim Speichern der wiederkehrenden todo '%{description}' + completed_last_day: In den letzten 24 Stunden erledigt completed_more_than_x_days_ago: Vor mehr als %{count} Tagen erledigt + no_project: --Kein Projekt-- + show_in_days: Anzeigen in %{days} Tagen + error_saving_recurring: Es gab einen Fehler beim Speichern der wiederkehrenden todo '%{description}' + new_related_todo_created_short: hat einen neuen todo feed_title_in_context: im Kontext '%{context}' - completed_actions_with: Abgeschlossene Aktionen mit dem Tag %{tag_name} older_than_days: "Älter als %{count} Tage" edit: Bearbeiten pending: Ausstehend + completed_actions_with: Abgeschlossene Aktionen mit dem Tag %{tag_name} deleted_success: "Die Aktion wurde erfolgreich gel\xC3\xB6scht." completed_tasks_title: TRACKS::Erledigte Aufgaben feed_title_in_project: im Projekt '%{project}' @@ -289,10 +381,11 @@ de: deferred_tasks_title: TRACKS::Notizbuch no_completed_actions_with: Keine abgeschlossenen Aktionen mit dem Tag '%{tag_name}' clear_show_from_date: Datum leeren - in_hidden_state: als versteckt markiert calendar_page_title: TRACKS::Kalender - show_today: Heute anzeigen + in_hidden_state: als versteckt markiert + unresolved_dependency: "Der Wert, den Sie in die Abh\xC3\xA4ngigkeit Feld eingegeben nicht zu einer bestehenden Aktion zu l\xC3\xB6sen. Dieser Wert wird nicht mit dem Rest der Aktion gerettet werden. Weiter gehen?" no_actions_found_title: Keine Aktionen gefunden + show_today: Heute anzeigen completed_last_x_days: In den letzten %{count} Tagen erledigt no_actions_with: "Im Augenblick gibt es keine unvollst\xC3\xA4ndigen Aktionen mit dem Tag '%{tag_name}'" defer_x_days: @@ -313,18 +406,16 @@ de: delete: "L\xC3\xB6schen" drag_action_title: "Auf andere Aktion ziehen, um sie als Abh\xC3\xA4ngigkeit zu definieren" cannot_add_dependency_to_completed_todo: "Kann nicht hinzugef\xC3\xBCgt werden diese Aktion als eine Abh\xC3\xA4ngigkeit zu einer abgeschlossenen Aktion!" + action_marked_complete: Die Aktion '%{description}' wurde als %{completed} markiert. depends_on: "H\xC3\xA4ngt ab von" tickler_items_due: one: Ein Notizbuch-Eintrag ist nun fällig - lade die Seite neu, um sie zu sehen. other: "%{count} Notizbuch-Einträge sind nun fällig - lade die Seite neu, um sie zu sehen." - action_marked_complete: Die Aktion '%{description}' wurde als %{completed} markiert. + new_related_todo_not_created_short: nicht schaffen todo completed_today: one: Du hast heute bereits eine Aufgabe erledigt. other: Du hast heute bereits %{count} Aufgaben erledigt. added_new_next_action_plural: Neue weiterführende Aufgaben angelegt - new_related_todo_not_created_short: nicht schaffen todo - error_starring: Konnte die Hervorhebung von \'%{description}\' nicht durchführen - show_tomorrow: Morgen anzeigen calendar: get_in_ical_format: Diesen Kalender im iCal Format herunterladen due_next_week: Nächste Woche fällig @@ -336,36 +427,38 @@ de: no_actions_due_after_this_month: Nach diesem Monat sind keine Aufgaben fällig due_this_month: Im %{month} fällig no_actions_due_this_month: Keine Aktionen für den Rest des Monats - tagged_page_title: TRACKS::Als '%{tag_name}' markiert + error_starring: Konnte die Hervorhebung von \'%{description}\' nicht durchführen + show_tomorrow: Morgen anzeigen + added_dependency: "%{dependency} als Abhängigkeit hinzugefügt." recurrence: + ends_on_date: Endet am %{date} every_work_day: Jeden Arbeitstag ends_on_number_times: Endet nach %{number} Mal - ends_on_date: Endet am %{date} recurrence_on_due_date: Das Datum der To-Do ist verstrichen. weekly_options: "Einstellungen f\xC3\xBCr sich w\xC3\xB6chentlich wiederholende Aktionen" - weekly: "W\xC3\xB6chentlich" monthly_options: "Einstellungen f\xC3\xBCr sich monatlich wiederholende Aktionen" + weekly: "W\xC3\xB6chentlich" starts_on: Beginnt am daily_options: "Einstellungen f\xC3\xBCr sich t\xC3\xA4glich wiederholenden Aktionen" monthly: Monatlich daily: "T\xC3\xA4glich" show_option_always: immer - recurrence_on_options: Setze Wiederholung auf yearly_every_x_day: "Jeden %{day}. %{month} " + recurrence_on_options: Setze Wiederholung auf daily_every_number_day: Alle %{number} Tage - ends_on: Endet am weekly_every_number_week: Kehrt jede %{number}. Woche wieder am show_options: To-Do anzeigen + ends_on: Endet am + day_x_on_every_x_month: Tag %{day} in jedem %{month}. Monat yearly_options: "Einstellungen f\xC3\xBCr sich j\xC3\xA4hrlich wiederholende Aktionen" show_days_before: "%{days} Tage bevor die To-Do f\xC3\xA4llig ist" yearly_every_xth_day: Den %{day} %{day_of_week} des %{month} from_tickler: the date todo comes from tickler (no due date set) no_end_date: Kein Enddatum - day_x_on_every_x_month: Tag %{day} in jedem %{month}. Monat - monthly_every_xth_day: Der %{day} %{day_of_week} eines jeden %{month}. Monats yearly: "J\xC3\xA4hrlich" + monthly_every_xth_day: Der %{day} %{day_of_week} eines jeden %{month}. Monats + tagged_page_title: TRACKS::Als '%{tag_name}' markiert no_completed_recurring: Im Augenblick gibt es keine abgeschlossenen wiederkehrenden To-Dos - added_dependency: "%{dependency} als Abhängigkeit hinzugefügt." no_deferred_actions: Zur Zeit sind keine zurückgestellten Aktionen vorhanden. recurrence_completed: Nach dieser wiederkehrenden Aktion, die du gerade abgeschlossen hast, folgt keine mehr. Die Wiederholung endet hiermit no_actions_found: "Momentan gibt es keine unvollst\xC3\xA4ndigen Aktionen." @@ -374,8 +467,8 @@ de: due: Fällig action_marked_complete_error: Die Aktion '%{description}' wurde aufgrund eines Fehlers NICHT als %{completed} markiert. action_saved_to_tickler: Aktion im Notizbuch gespeichert - depends_on_separate_with_commas: Hängt ab von (Komma-separiert) recurring_action_saved: Wiederkehrende Aktion gespeichert + depends_on_separate_with_commas: Hängt ab von (Komma-separiert) completed_in_archive: one: Es befindet sich eine erledigte Aufgabe im Archiv. other: Es befinden sich %{count} erledigte Aufgaben im Archiv. @@ -384,157 +477,37 @@ de: completed: In den letzten %{count} Tagen due_date: mit einem Datum %{due_date} oder früher overdue: "Überfällig" - add_new_recurring: "F\xC3\xBCge eine neue wiederkehrende Aktion hinzu" no_incomplete_actions: Es gibt keine unerledigten Aufgaben - stats: - tag_cloud_description: Diese Tag-Cloud beinhaltet Tags aller Aktionen (abgeschlossen, nicht abgeschlossen, sichtbar und/oder unsichtbar) - tag_cloud_90days_title: Tag-Cloud-Aktionen in den letzten 90 Tagen - actions: Aktionen - totals_active_project_count: Von diesen sind %{count} aktive Projekte - tag_cloud_title: Tag-Cloud aller Aktionen - actions_last_year_legend: - number_of_actions: Anzahl Aktionen - months_ago: Monate zuvor - totals_first_action: Seit deiner ersten Aktion am %{date} - actions_avg_completion_time: Durchschnittlich hast du %{count} Tage gebraucht, um eine Aktion abzuschliessen. - totals_action_count: hattest du insgesamt %{count} Aktionen - legend: - number_of_days: Anzahl vergangene Tage - actions: Aktionen - number_of_actions: Anzahl Aktionen - day_of_week: Wochentag - running_time: Laufzeit einer Aktion (Wochen) - percentage: Prozentsatz - months_ago: Monate zuvor - top10_longrunning: "Top 10 der am l\xC3\xA4ngsten laufenden Projekte" - actions_dow_30days_title: Wochentag (letzte 30 Tage) - totals_deferred_actions: "von denen %{count} im Notizbuch zur\xC3\xBCckgestellt sind" - current_running_time_of_incomplete_visible_actions: "Aktuelle Laufzeit unvollst\xC3\xA4ndiger sichtbarer Aufgaben" - running_time_legend: - actions: Aufgaben - percentage: Prozentsatz - weeks: "Vergangene Zeit einer Aktion (Wochen). Klick auf eine Leiste f\xC3\xBCr mehr Informationen." - totals_incomplete_actions: "Du hast %{count} unvollst\xC3\xA4ndige Aktionen" - totals_unique_tags: Von diesen Tags sind %{count} einmalig.. - actions_avg_completed_30days: und %{count} durchschnittlich davon erledigt. - top5_contexts: Top 5 aller Kontexte - actions_lastyear_title: Aktionen der letzten 12 Monate - totals_actions_completed: "%{count} davon sind abgeschlossen." - actions_last_year: Aktionen im letzten Jahr - totals_context_count: Du hast %{count} Kontexte. - totals_visible_context_count: Von diesen sind %{count} sichtbare Kontexte - totals_blocked_actions: "%{count} h\xC3\xA4ngen vom Abschluss anderer Aktionen ab." - projects: Projekte - action_completion_time_title: Fertigstellungszeit (alle abgeschlossenen Aktionen) - actions_day_of_week_title: Wochentag (alle Aktionen) - tags: Tags - totals_project_count: Du hast %{count} Projekte. - actions_min_max_completion_days: "Das Minimum/Maximum an Tagen einer Vervollst\xC3\xA4ndigung ist %{min}/%{max}." - actions_min_completion_time: "Die minimale Zeit betr\xC3\xA4gt %{time}." - no_tags_available: "keine Tags verf\xC3\xBCgbar" - totals_hidden_project_count: "%{count} sind versteckt" - tag_cloud_90days_description: Diese Tag-Cloud beinhaltet Tags der Aktionen, die in den letzten 90 Tagen erstellt oder abgeschlossen wurden. - more_stats_will_appear: "Weitere Statistiken werden verf\xC3\xBCgbar, wenn einige Aufgaben hinzugef\xC3\xBCgt wurden." - running_time_all: "Aktuelle Laufzeit aller unvollst\xC3\xA4ndigen Aktionen." - totals_tag_count: Du hast %{count} Tags in Aktionen. - top5_visible_contexts_with_incomplete_actions: "Top 5 der sichtbaren Kontexte mit unvollst\xC3\xA4ndigen Aktionen" - time_of_day: Tageszeit (alle Aktionen) - actions_further: und danach - actions_30days_title: _Aktionen der letzten 30 Tage - tod30: Tageszeit (letzte 30 Tage) - top10_projects: Top 10 aller Projekte - other_actions_label: (andere) - spread_of_running_actions_for_visible_contexts: Verteilung der laufenden Aufgaben aller sichtbaren Kontexte - totals_completed_project_count: und %{count} sind abgeschlossene Projekte. - spread_of_actions_for_all_context: Aufgabenverteilung aller Kontexte - click_to_return: "Klick auf %{link} um zur Statistikseite zur\xC3\xBCckzukehren." - top10_projects_30days: Top-10-Projekt der letzten 30 Tage - actions_avg_created: In den letzten 12 Monaten hast du im Durchschnitt %{count} Aktionen erstellt - actions_selected_from_week: "Aktionen ausgew\xC3\xA4hlt ab Woche" - click_to_show_actions_from_week: Klick auf %{link} um die Aktionen von Woche %{week} und danach anzuzeigen. - totals: Ingesamt - time_of_day_legend: - number_of_actions: Anzahl Aufgaben - time_of_day: Tageszeit - click_to_return_link: hier - totals_hidden_context_count: und %{count} sind versteckte Kontexte. - contexts: Kontexte - actions_avg_completed: und %{count} durchschnittlich davon monatlich erledigt - no_actions_selected: "Es sind keine Aufgaben ausgew\xC3\xA4hlt." - click_to_update_actions: Klicke auf eine Leiste in der Grafik um die Aktionen unten zu aktualisieren. - running_time_all_legend: - actions: Aktionen - running_time: "Laufzeit einer Aktion (Wochen). Klick auf eine Leiste f\xC3\xBCr mehr Informationen." - percentage: Prozentsatz - labels: - month_avg_completed: "%{months} Monat durchschnittlich fertig gestellt" - completed: Erledigt - month_avg_created: "%{months} Monat durchschnittlich erstellt" - avg_created: Durchschnittlich erstellt - avg_completed: Durchschnittlich fertiggestellt - created: Erstellt - tod30_legend: - number_of_actions: Anzahl Aufgaben - time_of_day: Tageszeit - action_selection_title: TRACKS::Aktionsauswahl - actions_actions_avg_created_30days: In den letzten 30 Tagen hast du im Durchschnitt %{count} Aktionen erstellt + add_new_recurring: "F\xC3\xBCge eine neue wiederkehrende Aktion hinzu" notes: delete_note_title: Notiz '%{id}' löschen delete_confirmation: "Bist du sicher, dass du die Notiz '%{id}' l\xC3\xB6schen m\xC3\xB6chtest?" delete_item_title: Eintrag löschen + note_link_title: Notiz %{id} anzeigen show_note_title: Notiz anzeigen deleted_note: "Notiz '%{id}' l\xC3\xB6schen" - note_link_title: Notiz %{id} anzeigen note_location_link: "In:" edit_item_title: Eintrag bearbeiten - note_header: Notiz %{id} no_notes_available: "Derzeit gibt es keine Notizen: f\xC3\xBCge Notizen von der jeweiligen Projektseite hinzu." + note_header: Notiz %{id} delete_note_confirm: Soll die Notiz '%{id}' wirklich gelöscht werden? - time: - am: vormittags - formats: - default: "%A, %d. %B %Y, %H:%M Uhr" - time: "%H:%M" - short: "%d. %B, %H:%M Uhr" - long: "%A, %d. %B %Y, %H:%M Uhr" - pm: nachmittags - preferences: - open_id_url: "Deine OpenID-URL lautet:" - change_identity_url: "\xC3\x84ndere deine Identit\xC3\xA4ts-URL" - staleness_starts_after: Staleness starts after %{days} days - page_title: TRACKS::Einstellungen - change_password: "Passwort \xC3\xA4ndern" - title: Deine Einstellungen - token_description: "Token (f\xC3\xBCr die Verwendung in Feeds und der API)" - show_number_completed: "Zeige %{number} erledigte Eintr\xC3\xA4ge" - is_false: Nein - edit_preferences: Einstellungen bearbeiten - page_title_edit: "TRACKS::Einstellungen \xC3\xA4ndern" - is_true: Ja - sms_context_none: Keine - generate_new_token: Neues Token generieren - token_header: Dein Token - authentication_header: Deine Authentifizierung - current_authentication_type: Dein Authentifizierungsart ist %{auth_type} - change_authentication_type: "Authentifzierungsart \xC3\xA4ndern" - generate_new_token_confirm: "Bist du sicher? Wenn du ein neues Token generierst, wird dies das alte Token ersetzen und jegliche externe Nutzung st\xC3\xB6ren, die das alte Token verwendet." projects: - default_context_set: Standard-Kontext des Projekts auf %{default_context} gesetzt - no_actions_in_project: "Momentan gibt es keine unvollst\xC3\xA4ndigen Aktionen in diesem Projekt" deferred_actions: "Aufgeschobene Aufgaben f\xC3\xBCr dieses Projekt" was_marked_hidden: wurde als verborgen markiert edit_project_title: Projekt bearbeiten default_tags_removed_notice: Standard-Tags entfernt + default_context_set: Standard-Kontext des Projekts auf %{default_context} gesetzt + no_actions_in_project: "Momentan gibt es keine unvollst\xC3\xA4ndigen Aktionen in diesem Projekt" hide_form: Fomular verstecken page_title: "TRACKS::Projekt: %{project}" + deferred_actions_empty: "Es gibt keine aufgeschobenen Aufgaben f\xC3\xBCr dieses Projekt" + this_project: Dieses Projekt project_state: Projekt ist %{state} show_form_title: Neues Projekt anlegen to_new_project_page: Zu neuem Projekt weiterleiten no_notes_attached: "Im Augenblick sind keine Notizen mit diesem Projekt verkn\xC3\xBCpft." - deferred_actions_empty: "Es gibt keine aufgeschobenen Aufgaben f\xC3\xBCr dieses Projekt" - this_project: Dieses Projekt - notes: Notizen todos_append: an dieses Projekt + notes: Notizen hide_form_title: Formular verstecken notes_empty: "Es gibt keine Notizen f\xC3\xBCr dieses Projekt" no_projects: Keine Projekte vorhanden @@ -545,39 +518,67 @@ de: with_default_context: mit einem Standard-Rahmen von '%{context_name}' show_form: Projekt erstellen actions_in_project_title: Die Aktionen in diesem Projekt - add_project: Projekt hinzufügen - with_default_tags: und mit '%{tags}' als Standard-Tags set_default_tags_notice: Standard-Tags des Projekts auf %{default_tags} setzen + settings: Einstellungen completed_projects: Abgeschlossene Projekte add_note: "Notiz hinzuf\xC3\xBCgen" is_active: ist aktiv + add_project: Projekt hinzufügen project_saved_status: Projekt gespeichert + with_default_tags: und mit '%{tags}' als Standard-Tags list_projects: TRACKS::Projektliste - settings: Einstellungen hidden_projects: Versteckte Projekte delete_project_title: Projekt löschen - default_context_removed: Standard-Kontext entfernt - completed_actions: "Erledigte Aufgaben f\xC3\xBCr dieses Projekt" - add_note_submit: "Notiz hinzuf\xC3\xBCgen" was_marked_complete: wurde als erledigt markiert - edit_project_settings: Edit Project Settings - state: Dieses Projekt ist %{state} - status_project_name_changed: "Projektname ge\xC3\xA4ndert" - default_context: Der Standard-Kontext dieses Projektes ist %{context} - no_default_context: Dieses Projekt hat keinen Standard-Kontext + completed_actions: "Erledigte Aufgaben f\xC3\xBCr dieses Projekt" + default_context_removed: Standard-Kontext entfernt + add_note_submit: "Notiz hinzuf\xC3\xBCgen" active_projects: Aktive Projekte + edit_project_settings: Edit Project Settings + status_project_name_changed: "Projektname ge\xC3\xA4ndert" + no_default_context: Dieses Projekt hat keinen Standard-Kontext with_no_default_tags: und hat keinen Standardwert Tags + default_context: Der Standard-Kontext dieses Projektes ist %{context} + state: Dieses Projekt ist %{state} states: hidden_plural: Versteckte completed: Erledigt completed_plural: Erledigte visible_plural: Sichtbare - active_plural: Aktive visible: Sichtbar - active: Aktiv + active_plural: Aktive hidden: Versteckt + active: Aktiv + time: + am: vormittags + formats: + default: "%A, %d. %B %Y, %H:%M Uhr" + time: "%H:%M" + short: "%d. %B, %H:%M Uhr" + long: "%A, %d. %B %Y, %H:%M Uhr" + pm: nachmittags errors: user_unauthorized: "401 Unauthorized: Nur administrative Benutzer d\xC3\xBCrfen auf diese Funktion zugreifen." + preferences: + open_id_url: "Deine OpenID-URL lautet:" + change_identity_url: "\xC3\x84ndere deine Identit\xC3\xA4ts-URL" + staleness_starts_after: Staleness starts after %{days} days + change_password: "Passwort \xC3\xA4ndern" + page_title: TRACKS::Einstellungen + title: Deine Einstellungen + token_description: "Token (f\xC3\xBCr die Verwendung in Feeds und der API)" + show_number_completed: "Zeige %{number} erledigte Eintr\xC3\xA4ge" + is_false: Nein + is_true: Ja + edit_preferences: Einstellungen bearbeiten + page_title_edit: "TRACKS::Einstellungen \xC3\xA4ndern" + sms_context_none: Keine + generate_new_token: Neues Token generieren + token_header: Dein Token + change_authentication_type: "Authentifzierungsart \xC3\xA4ndern" + authentication_header: Deine Authentifizierung + current_authentication_type: Dein Authentifizierungsart ist %{auth_type} + generate_new_token_confirm: "Bist du sicher? Wenn du ein neues Token generierst, wird dies das alte Token ersetzen und jegliche externe Nutzung st\xC3\xB6ren, die das alte Token verwendet." date: month_names: - @@ -595,10 +596,6 @@ de: - Oktober - November - Dezember - order: - - :day - - :month - - :year abbr_day_names: - So - Mo @@ -607,6 +604,10 @@ de: - Do - Fr - Sa + order: + - :day + - :month + - :year formats: only_day: "%e" default: "%d.%m.%Y" @@ -638,68 +639,99 @@ de: - Dez support: array: - words_connector: ", " last_word_connector: " und " + words_connector: ", " two_words_connector: " und " select: prompt: "Bitte w\xC3\xA4hlen Sie" - footer: - send_feedback: Senden Sie Feedback zu %{version} shared: multiple_next_actions: Mehrere neue Aufgaben (eine pro Zeile) - hide_form: Formular verstecken toggle_single: Weitere Aktion erstellen + hide_form: Formular verstecken add_action: "Aufgabe hinzuf\xC3\xBCgen" add_actions: "Aufgaben hinzuf\xC3\xBCgen" tags_for_all_actions: "Tags f\xC3\xBCr alle Aufgaben (mit Kommas trennen)" - project_for_all_actions: "Projekt f\xC3\xBCr alle Aufgaben" context_for_all_actions: "Kontext f\xC3\xBCr alle Aufgaben" toggle_multi: "Mehrere neue Aufgabeneintr\xC3\xA4ge hinzuf\xC3\xBCgen" toggle_single_title: Eine weitere Aktion hinzufügen + project_for_all_actions: "Projekt f\xC3\xBCr alle Aufgaben" separate_tags_with_commas: mit Kommas trennen toggle_multi_title: "Zwischen Einzel- und Mehrfachformular f\xC3\xBCr neue Aufgaben umschalten" hide_action_form_title: "Formular f\xC3\xBCr neue Aufgaben verstecken" + footer: + send_feedback: Senden Sie Feedback zu %{version} + feedlist: + choose_context: "Kontext f\xC3\xBCr den Feed w\xC3\xA4hlen" + actions_due_today: "Heute oder fr\xC3\xBCher f\xC3\xA4llig" + legend: "Legende:" + all_contexts: Alle Kontexte + rss_feed: RSS-Feed + ical_feed: iCal-Feed + all_projects: Alle Projekte + choose_project: "Projekt f\xC3\xBCr den Feed w\xC3\xA4hlen" + project_needed: Es muss mindestens ein Projekt existieren, bevor ein Feed abonniert werden kann. + select_feed_for_project: "Feed f\xC3\xBCr dieses Projekt ausw\xC3\xA4hlen" + active_projects_wo_next: Aktive Projekte ohne ausstehende Aufgaben + active_starred_actions: Alle markierten, aktiven Aufgaben + context_needed: Es muss mindestens ein Kontext existieren, bevor ein Feed abonniert werden kann. + select_feed_for_context: "Feed f\xC3\xBCr diesen Kontext ausw\xC3\xA4hlen" + projects_and_actions: Aktive Projekte und deren Aufgaben + notice_incomplete_only: "Hinweis: Alle Feeds zeigen nur Aufgaben, die noch nicht als erledigt markiert wurden." + actions_due_next_week: "In den n\xC3\xA4chsten 7 Tagen oder fr\xC3\xBCher f\xC3\xA4llige Aufgaben" + plain_text_feed: Plain-Text-Feed + last_fixed_number: Die letzten %{number} Aufgaben + all_actions: Alle Aufgaben + actions_completed_last_week: In den letzten 7 Tagen abgeschlossene Aufgaben + context_centric_actions: "Feeds f\xC3\xBCr unvollst\xC3\xA4ndige Aufgaben in einem bestimmten Kontext" + project_centric: "Feeds f\xC3\xBCr unvollst\xC3\xA4ndige Aufgaben in einem bestimmten Kontext" + sidebar: + list_name_active_contexts: Aktive Kontexte + list_name_active_projects: Aktive Projekte + list_empty: Keine + list_name_completed_projects: Abgeschlossene Projekte + list_name_hidden_projects: Versteckte Projekte + list_name_hidden_contexts: Versteckte Kontexte users: - auth_type_update_error: "Beim Ändern der Authentifizierung trat ein Fehler auf: %{error_messages}" - total_contexts: Alle Kontexte successfully_deleted_user: Benutzer %{username} erfolgreich gelöscht. first_user_heading: "Willkommen bei TRACKS. Als erstes legen Sie bitte einen Administrator-Zugang an:" failed_to_delete_user: Löschen des Benutzers %{username} fehlgeschlagen openid_url_verified: Die URL %{url} wurde erfolgreich als Identität verifiziert und Deine Authentifizierung auf OpenID umgestellt. + auth_type_update_error: "Beim Ändern der Authentifizierung trat ein Fehler auf: %{error_messages}" destroy_successful: "Benutzer %{login} wurde erfolgreich gel\xC3\xB6scht" + total_contexts: Alle Kontexte signup_successful: Benutzer %{username} erfolgreich angelegt. new_token_generated: Neuer Token erfolgreich generiert total_projects: Alle Projekte + user_created: Benutzer angelegt. change_password_submit: "Passwort \xC3\xA4ndern" no_signups_title: TRACKS::Anmeldung nicht erlaubt - user_created: Benutzer angelegt. password_updated: Passwort aktualisiert. - manage_users: Benutzer verwalten account_signup: Accounteinrichtung - signup: Registrieren + manage_users: Benutzer verwalten + auth_type_updated: Authentifizierungs-Art erfolgreich geändert. total_actions: Alle Aufgaben + signup: Registrieren desired_login: "Gew\xC3\xBCnschter Benutzername" confirm_password: "Passwort best\xC3\xA4tigen" new_user_heading: "Einen neuen Benutzer anlegen:" - auth_type_updated: Authentifizierungs-Art erfolgreich geändert. + change_auth_type_title: TRACKS::Authentifizierungstyp ändern + change_password_prompt: "Gib dein neues Passwort in die unten stehenden Felder ein und klicke auf 'Passwort \xC3\xA4ndern' um dein altes Passwort durch das neue zu ersetzen." password_confirmation_label: "Passwort best\xC3\xA4tigen" destroy_error: "Beim L\xC3\xB6schen des Benutzers %{login} ist ein Fehler aufgetreten." choose_password: "Passwort w\xC3\xA4hlen" change_password_title: TRACKS::Passwort ändern - change_auth_type_title: TRACKS::Authentifizierungstyp ändern - change_password_prompt: "Gib dein neues Passwort in die unten stehenden Felder ein und klicke auf 'Passwort \xC3\xA4ndern' um dein altes Passwort durch das neue zu ersetzen." + label_auth_type: Authentifizierungsart new_password_label: Neues Passwort register_with_cas: Mit deinem CAS-Benutzernamen - label_auth_type: Authentifizierungsart total_users_count: Derzeit existieren %{count} Benutzer new_user_title: TRACKS::Als Administrator anmelden destroy_user: "Benutzer l\xC3\xB6schen" - signup_new_user: Neuen Benutzer anlegen destroy_confirmation: "Achtung: der Benutzer '%{login}' wird mit all seinen Aufgaben, Kontexten, Projekten und Notizen gel\xC3\xB6scht. Bist du sicher, dass du fortfahren m\xC3\xB6chtest?" + signup_new_user: Neuen Benutzer anlegen + change_authentication_type: "Authentifizierungsart \xC3\xA4ndern" identity_url: Identity-URL auth_change_submit: "Authentifizierungsart \xC3\xA4ndern" openid_ok_pref_failed: Die URL %{url} wurde erfolgreich als Identität verifiziert, beim Speichern der Einstellungen trat jedoch ein Fehler auf. - change_authentication_type: "Authentifizierungsart \xC3\xA4ndern" select_authentication_type: "W\xC3\xA4hle deine neue Authentifizierungsart und klicke 'Authentifizierungsart \xC3\xA4ndern' an, um deine aktuellen Einstellungen zu \xC3\xBCberschreiben." total_notes: Alle Notizen contexts: @@ -708,15 +740,15 @@ de: show_form_title: Neuen Kontext erstellen delete_context_confirmation: Soll der Kontext '%{name}' wirklich gelöscht werden? Alle (wiederholenden) Aufgaben dieses Kontexts werden hierdurch ebenfalls gelöscht. delete_context: Kontext löschen - hide_form_title: Formular für neuen Kontext verstecken edit_context: Kontext bearbeiten + hide_form_title: Formular für neuen Kontext verstecken context_hide: Auf Startseite ausblenden? hidden_contexts: Versteckte Kontexte no_contexts_active: Derzeit gibt es keine aktiven Kontexte - save_status_message: Kontext gespeichert - show_form: Neuen Kontext erstellen - add_context: "Kontext hinzuf\xC3\xBCgen" visible_contexts: Sichtbare Kontexte + show_form: Neuen Kontext erstellen + save_status_message: Kontext gespeichert + add_context: "Kontext hinzuf\xC3\xBCgen" context_name: Kontextname update_status_message: "Kontextname wurde ge\xC3\xA4ndert" status_active: Kontext ist aktiv @@ -727,42 +759,11 @@ de: new_context_pre: Der neue Kontext ' no_actions: "Momentan gibt es keine unvollst\xC3\xA4ndigen Aufgaben in diesem Kontext" status_hidden: Kontext ist versteckt - feedlist: - choose_context: "Kontext f\xC3\xBCr den Feed w\xC3\xA4hlen" - actions_due_today: "Heute oder fr\xC3\xBCher f\xC3\xA4llig" - all_contexts: Alle Kontexte - legend: "Legende:" - rss_feed: RSS-Feed - ical_feed: iCal-Feed - all_projects: Alle Projekte - choose_project: "Projekt f\xC3\xBCr den Feed w\xC3\xA4hlen" - select_feed_for_project: "Feed f\xC3\xBCr dieses Projekt ausw\xC3\xA4hlen" - active_projects_wo_next: Aktive Projekte ohne ausstehende Aufgaben - project_needed: Es muss mindestens ein Projekt existieren, bevor ein Feed abonniert werden kann. - active_starred_actions: Alle markierten, aktiven Aufgaben - projects_and_actions: Aktive Projekte und deren Aufgaben - context_needed: Es muss mindestens ein Kontext existieren, bevor ein Feed abonniert werden kann. - select_feed_for_context: "Feed f\xC3\xBCr diesen Kontext ausw\xC3\xA4hlen" - notice_incomplete_only: "Hinweis: Alle Feeds zeigen nur Aufgaben, die noch nicht als erledigt markiert wurden." - actions_due_next_week: "In den n\xC3\xA4chsten 7 Tagen oder fr\xC3\xBCher f\xC3\xA4llige Aufgaben" - actions_completed_last_week: In den letzten 7 Tagen abgeschlossene Aufgaben - context_centric_actions: "Feeds f\xC3\xBCr unvollst\xC3\xA4ndige Aufgaben in einem bestimmten Kontext" - plain_text_feed: Plain-Text-Feed - last_fixed_number: Die letzten %{number} Aufgaben - all_actions: Alle Aufgaben - project_centric: "Feeds f\xC3\xBCr unvollst\xC3\xA4ndige Aufgaben in einem bestimmten Kontext" - sidebar: - list_name_active_contexts: Aktive Kontexte - list_name_active_projects: Aktive Projekte - list_empty: Keine - list_name_completed_projects: Abgeschlossene Projekte - list_name_hidden_projects: Versteckte Projekte - list_name_hidden_contexts: Versteckte Kontexte datetime: prompts: minute: Minuten - month: Monat second: Sekunden + month: Monat hour: Stunden day: Tag year: Jahr @@ -793,12 +794,12 @@ de: x_minutes: one: 1 Minute other: "%{count} Minuten" - about_x_months: - one: etwa 1 Monat - other: etwa %{count} Monate about_x_years: one: etwa 1 Jahr other: etwa %{count} Jahre + about_x_months: + one: etwa 1 Monat + other: etwa %{count} Monate over_x_years: one: mehr als 1 Jahr other: mehr als %{count} Jahre @@ -806,20 +807,20 @@ de: login: openid_identity_url_not_found: "Sorry, aber es existiert kein Benutzer mit der Identit\xC3\xA4ts-URL (%{identity_url})" user_no_expiry: Angemeldet bleiben - sign_in: Anmeldung login_cas: zum CAS gehen - cas_login: CAS-Anmeldung - successful_with_session_info: "Anmeldung erfolgreich:" + sign_in: Anmeldung please_login: Bitte melde dich an, um Tracks zu nutzen cas_logged_in_greeting: Hallo, %{username}! Du bist authentifiziert. cas_no_user_found: Hallo, %{username}! Du hast leider keinen Tracks-Account. + cas_login: CAS-Anmeldung + successful_with_session_info: "Anmeldung erfolgreich:" cas_username_not_found: Sorry, aber es existiert kein Benutzer mit dem CAS-Benutzernamen (%{username}) cas_create_account: "Wenn du die Anfrage fortsetzen m\xC3\xB6chtest, klicke bitte hier: %{signup_link}" mobile_use_openid: "\xE2\x80\xA6oder mit einer OpenID anmelden" cas_signup_link: Account beantragen account_login: Account-Anmeldung - session_will_not_expire: Sitzung wird nicht ablaufen. successful: "Anmeldung erfolgreich. Willkommen zur\xC3\xBCck!" + session_will_not_expire: Sitzung wird nicht ablaufen. session_time_out: Sitzung abgelaufen. Bitte %{link} session_will_expire: "Sitzung wird nach %{hours} Stunde(n) der Inaktivit\xC3\xA4t ablaufen." option_separator: oder, diff --git a/config/locales/en.yml b/config/locales/en.yml index a7cd035f..cb2af2f3 100644 --- a/config/locales/en.yml +++ b/config/locales/en.yml @@ -421,6 +421,7 @@ en: contexts: Contexts projects: Projects todos: + unresolved_dependency: "The value you entered in the dependency field did not resolve to an existing action. This value will not be saved with the rest of the action. Continue?" action_saved: "Action saved" recurring_action_saved: "Recurring action saved" action_saved_to_tickler: "Action saved to tickler" diff --git a/config/locales/nl.yml b/config/locales/nl.yml index fa1feb98..4d3882b5 100644 --- a/config/locales/nl.yml +++ b/config/locales/nl.yml @@ -1,99 +1,5 @@ --- nl: - common: - back: Terug - actions: Acties - third: Derde - go_back: Ga terug - add: Toevoegen - logout: Log uit - none: Geen - cancel: Annuleer - optional: optioneel - second: Tweede - notes: Notities - server_error: Een fout heeft op de server plaatsgevonden - forum: Forum - action: Actie - last: Laatste - projects: Projecten - project: Project - ok: Ok - contribute: Bijdragen - numbered_step: Stap %{number} - first: Eerste - website: Website - drag_handle: SLEEP - sort: - by_task_count_title: Sorteer op aantal acties - by_task_count_title_confirm: Weet u zeker dat u deze op aantal acties wilt sorteren? Dat zal de huidige sorteervolgorde aanpassen. - alphabetically: Alfabetisch - sort: Sorteer - alphabetically_title: Sorteer projecten alfabetisch - alphabetically_confirm: Weet u zeker dat u deze projecten alfabetisch wilt sorteren? Dat zal de huidige sorteervolgorde aanpassen. - by_task_count: Op aantal acties - create: Maken - contexts: Contexten - fourth: Vierde - context: Context - errors_with_fields: Er waren problemen met de volgende velden - description: Beschrijving - update: Bijwerken - bugs: Fouten - wiki: Wiki - ajaxError: Er is een fout opgetreden bij het ophalen van gegevens van de server - email: E-mail - search: Zoeken - layouts: - toggle_notes: Toggle notities - next_actions_rss_feed: RSS-feed van de acties - toggle_notes_title: Toggle alle notities - mobile_navigation: - logout: Afmelden - feeds: Feeds - new_action: 0-Nieuwe actie - starred: 4-Ster - projects: 3-Projecten - tickler: Tickler - contexts: 2-Contexten - home: 1-Start - navigation: - recurring_todos: Terugkerende acties - manage_users_title: Toevoegen of verwijderen gebruikers - api_docs: REST API Docs - feeds: Feeds - starred: Ster - notes_title: Toon alle notities - stats: Statistieken - tickler_title: Tickler - manage_users: Beheren gebruikers - preferences: Voorkeuren - export_title: Import en export van gegevens - integrations_: Integreer Tracks - calendar_title: Kalender met acties met deadline - feeds_title: Zie een lijst met beschikbare feeds - recurring_todos_title: Beheren terugkerende acties - completed_tasks: Gereed - stats_title: Zie je statistieken - tickler: Tickler - home_title: Start - starred_title: Zie je ster acties - organize: Organiseer - view: Bekijk - completed_tasks_title: Afgerond - home: Start - export: Export - contexts_title: Contexten - projects_title: Projecten - preferences_title: Toon mijn voorkeuren - calendar: Agenda - search: Zoeken in alle items - integrations: - opensearch_description: Zoek in Tracks - gmail_description: Gadget om Tracks toe te voegen aan Gmail als een gadget - applescript_next_action_prompt: "Omschrijving van de actie:" - applescript_success_after_id: gemaakt - applescript_success_before_id: Nieuwe actie met ID number: format: separator: "," @@ -117,6 +23,103 @@ nl: separator: "," delimiter: . + integrations: + opensearch_description: Zoek in Tracks + applescript_next_action_prompt: "Omschrijving van de actie:" + gmail_description: Gadget om Tracks toe te voegen aan Gmail als een gadget + applescript_success_after_id: gemaakt + applescript_success_before_id: Nieuwe actie met ID + common: + back: Terug + third: Derde + actions: Acties + add: Toevoegen + logout: Log uit + go_back: Ga terug + cancel: Annuleer + none: Geen + second: Tweede + optional: optioneel + notes: Notities + forum: Forum + server_error: Een fout heeft op de server plaatsgevonden + projects: Projecten + last: Laatste + action: Actie + project: Project + contribute: Bijdragen + ok: Ok + website: Website + first: Eerste + numbered_step: Stap %{number} + sort: + by_task_count_title: Sorteer op aantal acties + by_task_count_title_confirm: Weet u zeker dat u deze op aantal acties wilt sorteren? Dat zal de huidige sorteervolgorde aanpassen. + alphabetically: Alfabetisch + alphabetically_confirm: Weet u zeker dat u deze projecten alfabetisch wilt sorteren? Dat zal de huidige sorteervolgorde aanpassen. + sort: Sorteer + alphabetically_title: Sorteer projecten alfabetisch + by_task_count: Op aantal acties + fourth: Vierde + create: Maken + drag_handle: SLEEP + context: Context + errors_with_fields: Er waren problemen met de volgende velden + description: Beschrijving + contexts: Contexten + update: Bijwerken + bugs: Fouten + wiki: Wiki + ajaxError: Er is een fout opgetreden bij het ophalen van gegevens van de server + email: E-mail + search: Zoeken + layouts: + toggle_notes: Toggle notities + next_actions_rss_feed: RSS-feed van de acties + toggle_notes_title: Toggle alle notities + mobile_navigation: + logout: Afmelden + feeds: Feeds + new_action: 0-Nieuwe actie + starred: 4-Ster + projects: 3-Projecten + tickler: Tickler + contexts: 2-Contexten + home: 1-Start + navigation: + manage_users_title: Toevoegen of verwijderen gebruikers + recurring_todos: Terugkerende acties + api_docs: REST API Docs + feeds: Feeds + starred: Ster + notes_title: Toon alle notities + stats: Statistieken + tickler_title: Tickler + manage_users: Beheren gebruikers + export_title: Import en export van gegevens + integrations_: Integreer Tracks + preferences: Voorkeuren + calendar_title: Kalender met acties met deadline + feeds_title: Zie een lijst met beschikbare feeds + recurring_todos_title: Beheren terugkerende acties + completed_tasks: Gereed + stats_title: Zie je statistieken + home_title: Start + starred_title: Zie je ster acties + tickler: Tickler + organize: Organiseer + view: Bekijk + completed_tasks_title: Afgerond + export: Export + home: Start + contexts_title: Contexten + projects_title: Projecten + calendar: Agenda + preferences_title: Toon mijn voorkeuren + search: Zoeken in alle items + data: + import_successful: De import was succesvol + import_errors: Er hebben zich fouten voorgedaan bij de import models: project: feed_title: Tracks Projecten @@ -130,9 +133,6 @@ nl: user: error_context_not_associated: Context %{context} niet geassocieerd met gebruikers %{user}. error_project_not_associated: Project %{project} niet geassocieerd met gebruikers %{user}. - data: - import_successful: De import was succesvol - import_errors: Er hebben zich fouten voorgedaan bij de import activerecord: attributes: project: @@ -150,12 +150,12 @@ nl: due: Deadline preference: show_hidden_projects_in_sidebar: Toon verborgen projecten in sidebar - date_format: Datum formaat show_hidden_contexts_in_sidebar: Toon verborgen contexten in sidebar - mobile_todos_per_page: Acties per pagina (mobiel) - verbose_action_descriptors: Context en project uitschrijven in actielijst + date_format: Datum formaat sms_context: Standaard context voor email staleness_starts: Begin van markeren openstaande actie + verbose_action_descriptors: Context en project uitschrijven in actielijst + mobile_todos_per_page: Acties per pagina (mobiel) show_number_completed: Aantal te tonen afgeronde acties title_date_format: Datum formaat in titel refresh: Ververs interval (in minuten) @@ -163,8 +163,8 @@ nl: due_style: Deadline stijl time_zone: Tijdzone locale: Taal - show_project_on_todo_done: Ga naar project pagina wanneer actie gereed is sms_email: Van email + show_project_on_todo_done: Ga naar project pagina wanneer actie gereed is show_completed_projects_in_sidebar: Toon afgeronde projecten in sidebar user: last_name: Achternaam @@ -180,8 +180,8 @@ nl: messages: record_invalid: "Validatie mislukt: %{errors}" greater_than_or_equal_to: moet groter of gelijk zijn aan %{count} - less_than_or_equal_to: moet kleiner of gelijk zijn aan %{count} confirmation: komt niet overeen met de configuratie + less_than_or_equal_to: moet kleiner of gelijk zijn aan %{count} blank: mag niet leeg zijn invalid: mag niet een komma (',') karakter bevatten exclusion: is gereserveerd @@ -191,33 +191,125 @@ nl: wrong_length: heeft de verkeerde lengte (moet %{count} karakters lang zijn) even: moet even zijn less_than: moet kleiner zijn dan %{count} - equal_to: moet gelijk zijn aan %{count} greater_than: moet groter zijn dan %{count} - too_long: is te lang (maximum is %{count} karakters) + equal_to: moet gelijk zijn aan %{count} accepted: moet geaccepteerd worden + too_long: is te lang (maximum is %{count} karakters) taken: is al gepakt not_a_number: is niet een getal inclusion: is niet opgenomen in de lijst + full_messages: + format: "%{attribute} %{message}" template: body: Er waren problemen met de volgende velden header: one: 1 fout voorkomt het kunnen bewaren van deze %{model} other: "%{count} fouten voorkomen dat dit %{model} bewaard kan worden" - full_messages: - format: "%{attribute} %{message}" + stats: + tag_cloud_title: Tag Cloud voor alle acties + tag_cloud_description: Deze tag cloud bevat tags van alle acties (afgerond, niet voltooid, zichtbaar en / of verborgen) + actions: Acties + tag_cloud_90days_title: Tag cloud met acties in afgelopen 90 dagen + totals_active_project_count: Van deze zijn %{count} actieve projecten + totals_first_action: Sinds uw eerste actie op %{date} + actions_avg_completion_time: Van al uw afgeronde acties, de gemiddelde tijd dat dit in beslag nam is %{count} dagen. + actions_last_year_legend: + number_of_actions: Aantal acties + months_ago: Maanden geleden + actions_dow_30days_title: Dag van de week (laatste 30 dagen) + legend: + actions: Acties + number_of_days: Aantal dagen geleden + number_of_actions: Aantal acties + day_of_week: Dag van de week + percentage: Percentage + running_time: Looptijd van een actie (weken) + months_ago: Maanden geleden + totals_deferred_actions: waarvan %{count} uitgestelde acties in de tickler zijn + totals_action_count: u heeft een totaal van %{count} acties + current_running_time_of_incomplete_visible_actions: Huidige looptijd van onvolledige zichtbare acties + running_time_legend: + actions: Acties + percentage: Percentage + weeks: Looptijd van een actie (weken). Klik op een balk voor meer info + top10_longrunning: Top 10 langstlopende projecten + actions_lastyear_title: Acties in de afgelopen 12 maanden + totals_actions_completed: "%{count} van deze zijn voltooid." + totals_incomplete_actions: U heeft %{count} onvolledige acties + totals_unique_tags: Van deze tags zijn %{count} uniek. + actions_avg_completed_30days: en voltooide een gemiddelde van %{count} acties per dag. + top5_contexts: Top 5 contexten + action_completion_time_title: Doorlooptijd (alle voltooide acties) + projects: Projecten + actions_last_year: Acties in de afgelopen jaren + totals_context_count: U heeft %{count} contexten. + totals_visible_context_count: Van deze zijn %{count} zichtbare contexten + totals_blocked_actions: "%{count} zijn afhankelijk van de voltooiing van hun acties." + actions_min_completion_time: De minimale tijd tot afronding is %{time}. + tags: Tags + no_tags_available: geen tags beschikbaar + actions_day_of_week_title: Dag van de week (alle acties) + totals_project_count: U heeft %{count} projecten. + actions_min_max_completion_days: De max-/minimum dagen tot voltooiing is %{min}/%{max}. + more_stats_will_appear: Meer statistieken zullen hier verschijnen zodra u acties hebt toegevoegd. + actions_30days_title: Acties in de afgelopen 30 dagen + running_time_all: Huidige looptijd van alle onvolledige acties + tod30: Tijd van de dag (laatste 30 dagen) + totals_tag_count: U heeft %{count} tags geplaatst op acties. + top5_visible_contexts_with_incomplete_actions: Top 5 zichtbare contexten met onvolledige acties + totals_hidden_project_count: "%{count} zijn verborgen" + time_of_day: Tijd van de dag (alle acties) + tag_cloud_90days_description: Deze tag cloud bevat tags van acties die zijn gemaakt of voltooid in de afgelopen 90 dagen. + actions_further: en verder + other_actions_label: (anderen) + actions_avg_created: In de afgelopen 12 maanden heeft u gemiddeld%{count} acties aangemaakt + spread_of_running_actions_for_visible_contexts: Verdeling van actieve acties voor zichtbare contexten + actions_selected_from_week: Gekozen acties van week + totals_completed_project_count: en %{count} zijn afgeronde projecten. + click_to_show_actions_from_week: Klik %{link} om de acties van week %{week} en verder te zien. + spread_of_actions_for_all_context: Verdeling van acties voor alle contexten + click_to_return: Klik %{link} om terug te keren naar de statistieken pagina. + top10_projects: Top 10 projecten + top10_projects_30days: Top 10 project in de laatste 30 dagen + time_of_day_legend: + number_of_actions: Aantal acties + time_of_day: Tijd van de dag + click_to_return_link: hier + totals_hidden_context_count: en %{count} zijn verborgen contexten. + actions_avg_completed: en voltooide een gemiddelde van %{count} acties per maand. + totals: Totalen + contexts: Contexten + running_time_all_legend: + actions: Acties + percentage: Percentage + running_time: Looptijd van een actie (weken). Klik op een balk voor meer info + labels: + month_avg_completed: "%{months} gem afgerond per maand" + completed: Afgerond + month_avg_created: "%{months} gem gemaakt per maand" + avg_created: Gem gemaakt + avg_completed: Gem afgerond + created: Gemaakt + no_actions_selected: Er zijn geen acties geselecteerd. + click_to_update_actions: Klik op een balk in de grafiek op de acties hieronder aan te passen. + tod30_legend: + number_of_actions: Aantal acties + time_of_day: Tijd van de dag + action_selection_title: "TRACKS:: Actie selectie" + actions_actions_avg_created_30days: In de afgelopen 30 dagen heeft u gemiddeld %{count} acties gemaakt todos: - error_starring_recurring: Kon niet de ster van deze terugkerende actie niet omgezetten \'%{description}\' - show_from: Toon vanaf recurring_action_deleted: Actie werd verwijderd. Omdat deze actie herhalend is. werd een nieuwe actie toegevoegd + show_from: Toon vanaf + error_starring_recurring: Kon niet de ster van deze terugkerende actie niet omgezetten \'%{description}\' completed_actions: Voltooide acties completed_recurring: Afgesloten terugkerende todos added_new_next_action: Nieuwe actie toegevoegd blocked_by: Geblokkeerd door %{predecessors} - done: Voltooid? star_action: Markeer deze actie met een ster completed_recurrence_completed: Er is geen actie na de terugkerende actie die u new verwijderd heeft. De herhaling is voltooid defer_date_after_due_date: Uitsteldatum is na de vervaldag. Gelieve vervaldag bewerken alvorens uitsteldatum aan te passen. unable_to_add_dependency: Niet in staat om de afhankelijkheid toe te voegen + done: Voltooid? star_action_with_description: markeer de actie '%{description}' met een ster tagged_with: gelabeld met ‘%{tag_name}’ completed: Afgerond @@ -225,13 +317,13 @@ nl: no_hidden_actions: Momenteel zijn er geen verborgen acties gevonden edit_action_with_description: Bewerk de actie '%{description}' action_due_on: (deadline actie op %{date}) - list_incomplete_next_actions: Toon onvoltooide acties + action_deleted_success: Actie succesvol verwijderd archived_tasks_title: "TRACKS:: Gearchiveerde voltooide taken" remove_dependency: Verwijder afhankelijkheid (zal niet de actie zelf verwijderen) - action_deleted_success: Actie succesvol verwijderd + list_incomplete_next_actions: Toon onvoltooide acties tags: Tags (gescheiden door komma's) - context_changed: Context veranderd in '%{name}' new_related_todo_created: Een nieuwe actie is toegevoegd, die behoort bij deze terugkerende todo + context_changed: Context veranderd in '%{name}' mobile_todos_page_title: Alle acties add_another_dependency: Nog een afhankelijkheid toevoegen delete_recurring_action_title: Verwijder de terugkerende actie @@ -244,13 +336,13 @@ nl: edit_action: Actie bewerken added_new_context: Nieuwe context toegevoegd next_actions_description: "Filter:" - set_to_pending: "'%{task}' als wachtend ingesteld" - list_incomplete_next_actions_with_limit: Toont de laatste %{count} onvoltooide acties - added_new_project: Nieuw project toegevoegd next_actions_title_additions: completed: acties voltooid due_today: deadline vandaag due_within_a_week: deadline binnen een week + added_new_project: Nieuw project toegevoegd + list_incomplete_next_actions_with_limit: Toont de laatste %{count} onvoltooide acties + set_to_pending: "'%{task}' als wachtend ingesteld" older_completed_items: Oudere voltooide items append_in_this_project: in dit project error_deleting_item: Er is een fout opgetreden bij het verwijderen van het item '%{description}' @@ -260,18 +352,18 @@ nl: error_completing_todo: Er was een fout bij het voltooien / activeren van de terugkerende actie '%{description}' convert_to_project: Maak project no_deferred_pending_actions: Momenteel zijn er geen uitgestelde of wachtende acties - completed_last_day: Voltooid in de laatste 24 uur delete_recurring_action_confirm: Weet u zeker dat u wilt de terugkerende actie '%{description}' wilt verwijderen? - new_related_todo_created_short: een nieuwe actie gemaakt - show_in_days: Toon over %{days} dagen - no_project: -- Geen project -- - error_saving_recurring: Er is een fout opgetreden het opslaan van de terugkerende actie '%{description}' + completed_last_day: Voltooid in de laatste 24 uur completed_more_than_x_days_ago: Voltooid meer dan %{count} dagen geleden + no_project: -- Geen project -- + show_in_days: Toon over %{days} dagen + error_saving_recurring: Er is een fout opgetreden het opslaan van de terugkerende actie '%{description}' + new_related_todo_created_short: een nieuwe actie gemaakt feed_title_in_context: in context '%{context}' - completed_actions_with: Afgeronde acties met de tag %{tag_name} older_than_days: Ouder dan %{count} dagen edit: Bewerken pending: Wachtend + completed_actions_with: Afgeronde acties met de tag %{tag_name} deleted_success: De actie werd met succes verwijderd. completed_tasks_title: TRACKS::Voltooide taken feed_title_in_project: In het project '%{project}' @@ -289,10 +381,11 @@ nl: deferred_tasks_title: TRACKS::Tickler no_completed_actions_with: Geen voltooide acties met de tag '%{tag_name}' clear_show_from_date: Maak de datum Tonen Vanaf leeg - in_hidden_state: in verborgen toestand calendar_page_title: TRACKS::Agenda - show_today: Toon vandaag + in_hidden_state: in verborgen toestand + unresolved_dependency: De waarde die u ingevoerd heeft in het afhankelijkheden veld is niet herleidbaar naar een bestaande actie. Deze waarde wordt niet bewaard met de rest van de actie. Doorgaan? no_actions_found_title: Geen acties gevonden + show_today: Toon vandaag completed_last_x_days: Voltooid in de laatste %{count} dagen no_actions_with: Momenteel zijn er geen onvoltooide acties met de tag '%{tag_name}' defer_x_days: @@ -313,18 +406,16 @@ nl: delete: Verwijder drag_action_title: Sleep naar een andere actie om deze afhankelijk te maken van die actie cannot_add_dependency_to_completed_todo: Kan deze actie niet als een afhankelijkheid van een voltooide actie toevoegen! + action_marked_complete: De actie '%{description}' werd gemarkeerd als %{completed} depends_on: Hangt af van tickler_items_due: one: Een tickler item wordt nu zichtbaar - vernieuw de pagina om het te zien. other: "%{count} tickerl items zijn nu zichtbaar - vernieuw de pagina om ze te zien." - action_marked_complete: De actie '%{description}' werd gemarkeerd als %{completed} + new_related_todo_not_created_short: een nieuwe actie is niet gemaakt completed_today: one: U heeft een actie tot nu toe vandaag voltooid. other: U heeft %{count} acties tot nu toe vandaag voltooid. added_new_next_action_plural: Nieuwe acties toegevoegd - new_related_todo_not_created_short: een nieuwe actie is niet gemaakt - error_starring: Kon niet de ster van deze actie niet omzetten \'%{description}\' - show_tomorrow: Toon morgen calendar: get_in_ical_format: Ontvang deze agenda in iCal-formaat due_next_week: Deadline volgende week @@ -336,36 +427,38 @@ nl: no_actions_due_after_this_month: Geen acties met deadline na deze maand due_this_month: Deadline in rest van %{month} no_actions_due_this_month: Geen acties met deadline in de rest van deze maand - tagged_page_title: TRACKS::Tagged met '%{tag_name}' + error_starring: Kon niet de ster van deze actie niet omzetten \'%{description}\' + show_tomorrow: Toon morgen + added_dependency: "%{dependency} als afhankelijkheid toegevoegd." recurrence: + ends_on_date: Eindigt op %{date} every_work_day: Elke werkdag ends_on_number_times: Eindigt na %{number} keer - ends_on_date: Eindigt op %{date} recurrence_on_due_date: de datum dat deadline van de actie is weekly_options: Instellingen voor de wekelijkse terugkerende acties - weekly: Wekelijks monthly_options: Instellingen voor maandelijks terugkerende acties + weekly: Wekelijks starts_on: Begint op daily_options: Instellingen voor dagelijks terugkerende acties monthly: Maandelijks daily: Dagelijks show_option_always: altijd - recurrence_on_options: Stel herhaling in op yearly_every_x_day: Elke %{month} %{day} + recurrence_on_options: Stel herhaling in op daily_every_number_day: Elke %{number} dag(en) - ends_on: Eindigt op weekly_every_number_week: Herhaalt elke %{number} weken op show_options: Toon de actie + ends_on: Eindigt op + day_x_on_every_x_month: Dag %{day} op elke %{month} maand yearly_options: Instellingen voor jaarlijks terugkerende acties show_days_before: "%{days} dagen v\xC3\xB3\xC3\xB3r de deadline van actie" yearly_every_xth_day: De %{day} %{day_of_week} van %{month} from_tickler: de datum dat de actie uit de tickler komt (geen deadline ingesteld) no_end_date: Geen einddatum - day_x_on_every_x_month: Dag %{day} op elke %{month} maand - monthly_every_xth_day: De %{day} %{day_of_week} van elke %{month} maand yearly: Jaarlijks + monthly_every_xth_day: De %{day} %{day_of_week} van elke %{month} maand + tagged_page_title: TRACKS::Tagged met '%{tag_name}' no_completed_recurring: Momenteel zijn er geen voltooide terugkerende acties - added_dependency: "%{dependency} als afhankelijkheid toegevoegd." no_deferred_actions: Momenteel zijn er geen uitgestelde acties. recurrence_completed: Er is geen volgende actie na de terugkerende actie die u zojuist hebt voltooid. De herhaling is voltooid no_actions_found: Momenteel zijn er geen onafgeronde acties. @@ -374,8 +467,8 @@ nl: due: Deadline action_marked_complete_error: De actie '%{description}' is niet gemarkeerd als %{completed} vanwege een fout op de server. action_saved_to_tickler: Actie opgeslagen in tickler - depends_on_separate_with_commas: Afhankelijk van (gescheiden door komma's) recurring_action_saved: Terugkerende actie opgeslagen + depends_on_separate_with_commas: Afhankelijk van (gescheiden door komma's) completed_in_archive: one: Er is een voltooide actie in het archief. other: Er zijn %{count} afgeronde acties in het archief. @@ -384,157 +477,37 @@ nl: completed: in de afgelopen %{count} dagen due_date: met een deadline %{due_date} of eerder overdue: Achterstallig - add_new_recurring: Voeg een nieuwe terugkerende actie toe no_incomplete_actions: Er zijn geen onvoltooide acties - stats: - tag_cloud_description: Deze tag cloud bevat tags van alle acties (afgerond, niet voltooid, zichtbaar en / of verborgen) - tag_cloud_90days_title: Tag cloud met acties in afgelopen 90 dagen - actions: Acties - totals_active_project_count: Van deze zijn %{count} actieve projecten - tag_cloud_title: Tag Cloud voor alle acties - actions_last_year_legend: - number_of_actions: Aantal acties - months_ago: Maanden geleden - totals_first_action: Sinds uw eerste actie op %{date} - actions_avg_completion_time: Van al uw afgeronde acties, de gemiddelde tijd dat dit in beslag nam is %{count} dagen. - totals_action_count: u heeft een totaal van %{count} acties - legend: - number_of_days: Aantal dagen geleden - actions: Acties - number_of_actions: Aantal acties - day_of_week: Dag van de week - running_time: Looptijd van een actie (weken) - percentage: Percentage - months_ago: Maanden geleden - top10_longrunning: Top 10 langstlopende projecten - actions_dow_30days_title: Dag van de week (laatste 30 dagen) - totals_deferred_actions: waarvan %{count} uitgestelde acties in de tickler zijn - current_running_time_of_incomplete_visible_actions: Huidige looptijd van onvolledige zichtbare acties - running_time_legend: - actions: Acties - percentage: Percentage - weeks: Looptijd van een actie (weken). Klik op een balk voor meer info - totals_incomplete_actions: U heeft %{count} onvolledige acties - totals_unique_tags: Van deze tags zijn %{count} uniek. - actions_avg_completed_30days: en voltooide een gemiddelde van %{count} acties per dag. - top5_contexts: Top 5 contexten - actions_lastyear_title: Acties in de afgelopen 12 maanden - totals_actions_completed: "%{count} van deze zijn voltooid." - actions_last_year: Acties in de afgelopen jaren - totals_context_count: U heeft %{count} contexten. - totals_visible_context_count: Van deze zijn %{count} zichtbare contexten - totals_blocked_actions: "%{count} zijn afhankelijk van de voltooiing van hun acties." - projects: Projecten - action_completion_time_title: Doorlooptijd (alle voltooide acties) - actions_day_of_week_title: Dag van de week (alle acties) - tags: Tags - totals_project_count: U heeft %{count} projecten. - actions_min_max_completion_days: De max-/minimum dagen tot voltooiing is %{min}/%{max}. - actions_min_completion_time: De minimale tijd tot afronding is %{time}. - no_tags_available: geen tags beschikbaar - totals_hidden_project_count: "%{count} zijn verborgen" - tag_cloud_90days_description: Deze tag cloud bevat tags van acties die zijn gemaakt of voltooid in de afgelopen 90 dagen. - more_stats_will_appear: Meer statistieken zullen hier verschijnen zodra u acties hebt toegevoegd. - running_time_all: Huidige looptijd van alle onvolledige acties - totals_tag_count: U heeft %{count} tags geplaatst op acties. - top5_visible_contexts_with_incomplete_actions: Top 5 zichtbare contexten met onvolledige acties - time_of_day: Tijd van de dag (alle acties) - actions_further: en verder - actions_30days_title: Acties in de afgelopen 30 dagen - tod30: Tijd van de dag (laatste 30 dagen) - top10_projects: Top 10 projecten - other_actions_label: (anderen) - spread_of_running_actions_for_visible_contexts: Verdeling van actieve acties voor zichtbare contexten - totals_completed_project_count: en %{count} zijn afgeronde projecten. - spread_of_actions_for_all_context: Verdeling van acties voor alle contexten - click_to_return: Klik %{link} om terug te keren naar de statistieken pagina. - top10_projects_30days: Top 10 project in de laatste 30 dagen - actions_avg_created: In de afgelopen 12 maanden heeft u gemiddeld%{count} acties aangemaakt - actions_selected_from_week: Gekozen acties van week - click_to_show_actions_from_week: Klik %{link} om de acties van week %{week} en verder te zien. - totals: Totalen - time_of_day_legend: - number_of_actions: Aantal acties - time_of_day: Tijd van de dag - click_to_return_link: hier - totals_hidden_context_count: en %{count} zijn verborgen contexten. - contexts: Contexten - actions_avg_completed: en voltooide een gemiddelde van %{count} acties per maand. - no_actions_selected: Er zijn geen acties geselecteerd. - click_to_update_actions: Klik op een balk in de grafiek op de acties hieronder aan te passen. - running_time_all_legend: - actions: Acties - running_time: Looptijd van een actie (weken). Klik op een balk voor meer info - percentage: Percentage - labels: - month_avg_completed: "%{months} gem afgerond per maand" - completed: Afgerond - month_avg_created: "%{months} gem gemaakt per maand" - avg_created: Gem gemaakt - avg_completed: Gem afgerond - created: Gemaakt - tod30_legend: - number_of_actions: Aantal acties - time_of_day: Tijd van de dag - action_selection_title: "TRACKS:: Actie selectie" - actions_actions_avg_created_30days: In de afgelopen 30 dagen heeft u gemiddeld %{count} acties gemaakt + add_new_recurring: Voeg een nieuwe terugkerende actie toe notes: delete_note_title: Verwijder de notitie '%{id}' delete_confirmation: Weet u zeker dat u de notitie '%{id}' wilt verwijderen? delete_item_title: Verwijder item + note_link_title: Toon notitie %{id} show_note_title: Toon notitie deleted_note: Verwijder notitie '%{id}' - note_link_title: Toon notitie %{id} note_location_link: "In:" edit_item_title: Item bewerken - note_header: Notitie %{id} no_notes_available: "Momenteel zijn er geen notities: voeg notities toe aan projecten vanaf de individuele project pagina's." + note_header: Notitie %{id} delete_note_confirm: Weet u zeker dat u de notitie '%{id}' wilt verwijderen? - time: - am: ochtend - formats: - default: "%A, %d %B %Y %H:%M:%S %z" - time: "%H:%M" - short: "%d %B %H:%M" - long: "%A, %d. %B %Y, %H:%M" - pm: middag - preferences: - open_id_url: Uw OpenID URL is - change_identity_url: Verander uw Identity URL - staleness_starts_after: Ophopen begint na %{days} dagen - page_title: "TRACKS:: Voorkeuren" - change_password: Wijzig uw wachtwoord - title: Uw voorkeuren - token_description: Token (voor feeds en API gebruik) - show_number_completed: Toon %{number} voltooide items - is_false: Nee - edit_preferences: Voorkeuren bewerken - page_title_edit: "TRACKS:: Voorkeuren bewerken" - is_true: Ja - sms_context_none: Geen - generate_new_token: Genereer een nieuwe token - token_header: Uw token - authentication_header: Uw authenticatie - current_authentication_type: Uw authenticatietype is %{auth_type} - change_authentication_type: Verander uw authenticatietype - generate_new_token_confirm: Weet u dit zeker? Het genereren van een nieuw token zal de bestaande te vervangen en dit zal het extern gebruiken van de oude token laten mislukken. projects: - default_context_set: Stel project standaard context in op %{default_context} - no_actions_in_project: Momenteel zijn er geen onafgeronde acties in dit project deferred_actions: Uitgestelde acties voor dit project was_marked_hidden: is gemarkeerd als verborgen edit_project_title: Bewerk project default_tags_removed_notice: De standaard tags zijn verwijderd + default_context_set: Stel project standaard context in op %{default_context} + no_actions_in_project: Momenteel zijn er geen onafgeronde acties in dit project hide_form: Verberg formulier page_title: "TRACKS:: Project: %{project}" + deferred_actions_empty: Er zijn geen uitgestelde acties voor dit project + this_project: Dit project project_state: Project is %{state}. show_form_title: Maak een nieuw project to_new_project_page: Ga naar de nieuwe projectpagina no_notes_attached: Momenteel zijn er geen notities toegevoegd aan dit project - deferred_actions_empty: Er zijn geen uitgestelde acties voor dit project - this_project: Dit project - notes: Notities todos_append: in dit project + notes: Notities hide_form_title: Verberg nieuw project formulier notes_empty: Er zijn geen notities voor dit project no_projects: Momenteel zijn er geen projecten @@ -545,37 +518,65 @@ nl: with_default_context: met een standaard context '%{context_name}' show_form: Toevoegen van een project actions_in_project_title: Acties in dit project - add_project: Voeg project toe - with_default_tags: en met '%{tags}' als de standaard tags set_default_tags_notice: Stel project standaard tags in op %{default_tags} + settings: Instellingen completed_projects: Voltooide projecten add_note: Een notitie toevoegen is_active: is actief + add_project: Voeg project toe project_saved_status: Project opgeslagen + with_default_tags: en met '%{tags}' als de standaard tags list_projects: "TRACKS:: Overzicht van projecten" - settings: Instellingen hidden_projects: Verborgen projecten delete_project_title: Verwijder het project - default_context_removed: Standaard context verwijderd - completed_actions: Afgeronde acties voor dit project - add_note_submit: Notitie toevoegen was_marked_complete: is gemarkeerd als voltooid + completed_actions: Afgeronde acties voor dit project + default_context_removed: Standaard context verwijderd + add_note_submit: Notitie toevoegen edit_project_settings: Bewerk project instellingen - state: Dit project is %{state} - default_context: De standaard context voor dit project is %{context} + active_projects: Actieve projecten status_project_name_changed: Naam van het project werd gewijzigd no_default_context: Dit project heeft geen standaard context - active_projects: Actieve projecten with_no_default_tags: en zonder standaard tags + default_context: De standaard context voor dit project is %{context} + state: Dit project is %{state} + time: + am: ochtend + formats: + default: "%A, %d %B %Y %H:%M:%S %z" + time: "%H:%M" + short: "%d %B %H:%M" + long: "%A, %d. %B %Y, %H:%M" + pm: middag states: hidden_plural: Verborgen completed: Afgerond completed_plural: Afgeronde visible_plural: Zichtbare - active_plural: Actieve visible: Zichtbaar + active_plural: Actieve active: Actief hidden: Verborgen + preferences: + open_id_url: Uw OpenID URL is + change_identity_url: Verander uw Identity URL + staleness_starts_after: Ophopen begint na %{days} dagen + change_password: Wijzig uw wachtwoord + page_title: "TRACKS:: Voorkeuren" + title: Uw voorkeuren + token_description: Token (voor feeds en API gebruik) + show_number_completed: Toon %{number} voltooide items + is_false: Nee + is_true: Ja + edit_preferences: Voorkeuren bewerken + page_title_edit: "TRACKS:: Voorkeuren bewerken" + sms_context_none: Geen + generate_new_token: Genereer een nieuwe token + token_header: Uw token + change_authentication_type: Verander uw authenticatietype + authentication_header: Uw authenticatie + current_authentication_type: Uw authenticatietype is %{auth_type} + generate_new_token_confirm: Weet u dit zeker? Het genereren van een nieuw token zal de bestaande te vervangen en dit zal het extern gebruiken van de oude token laten mislukken. errors: user_unauthorized: "401 Unauthorized: Alleen administratieve gebruikers mogen deze functie gebruiken." date: @@ -593,10 +594,6 @@ nl: - Oktober - November - December - order: - - :day - - :month - - :year abbr_day_names: - Zo - Ma @@ -605,6 +602,10 @@ nl: - Do - Vr - Za + order: + - :day + - :month + - :year formats: only_day: "%e" default: "%d-%m-%Y" @@ -634,11 +635,25 @@ nl: - Dec support: array: - words_connector: "," last_word_connector: ", en" + words_connector: "," two_words_connector: en select: prompt: Selecteer + shared: + multiple_next_actions: Meerdere acties (een op elke regel) + toggle_single: Voeg een actie toe + hide_form: Verberg formulier + add_action: Actie toevoegen + add_actions: Toevoegen acties + tags_for_all_actions: Tags voor alle acties (scheiden met een komma) + context_for_all_actions: Context voor alle acties + toggle_multi: Voeg meerdere acties toe + toggle_single_title: Voeg een nieuwe actie toe + project_for_all_actions: Project voor alle acties + separate_tags_with_commas: gescheiden door komma's + toggle_multi_title: Toggle single / multi actie formulier + hide_action_form_title: Verberg nieuwe actie formulier dates: month_names: - Januari @@ -663,78 +678,95 @@ nl: - Zaterdag footer: send_feedback: Stuur reactie op %{version} - shared: - multiple_next_actions: Meerdere acties (een op elke regel) - hide_form: Verberg formulier - toggle_single: Voeg een actie toe - add_action: Actie toevoegen - add_actions: Toevoegen acties - tags_for_all_actions: Tags voor alle acties (scheiden met een komma) - project_for_all_actions: Project voor alle acties - context_for_all_actions: Context voor alle acties - toggle_multi: Voeg meerdere acties toe - toggle_single_title: Voeg een nieuwe actie toe - separate_tags_with_commas: gescheiden door komma's - toggle_multi_title: Toggle single / multi actie formulier - hide_action_form_title: Verberg nieuwe actie formulier + feedlist: + choose_context: Kies de context waar je een feed van wilt + actions_due_today: Acties die vandaag of eerder af moeten + legend: Legenda + all_contexts: Alle contexten + rss_feed: RSS Feed + ical_feed: iCal feed + all_projects: Alle projecten + choose_project: Kies het project waar je een feed van wilt + project_needed: "Er moet ten minste \xC3\xA9\xC3\xA9n project zijn voor een feed opgevraagd kan worden" + select_feed_for_project: Kies de feed voor dit project + active_projects_wo_next: Actieve projecten zonder acties + active_starred_actions: Alle gesterde, actieve acties + context_needed: "Er moet eerst ten minste \xC3\xA9\xC3\xA9n context zijn voor je een feed kan opvragen" + select_feed_for_context: Kies de feed voor deze context + projects_and_actions: Actieve projecten met hun acties + notice_incomplete_only: "Merk op: alle feeds laten alleen acties zien die niet afgerond zijn, tenzij anders vermeld." + actions_due_next_week: Acties die binnen 7 dagen afgerond moeten + plain_text_feed: Reguliere tekst feed + last_fixed_number: Laatste %{number} acties + all_actions: Alle acties + actions_completed_last_week: Acties afgerond in de afgelopen 7 dagen + context_centric_actions: Feeds voor onafgeronde acties in een specifieke context + project_centric: Feeds voor onafgeronde acties in een specifiek project users: - auth_type_update_error: "Er was een probleem met het bijwerken van uw authenticatietype: %{error_messages}" - total_contexts: Totaal aantal contexten successfully_deleted_user: Succesvol gebruiker %{username} verwijderd first_user_heading: "Welkom bij TRACKS. Om te beginnen, maak dan een admin account:" failed_to_delete_user: Mislukt de gebruiker %{username} te verwijderen openid_url_verified: Je hebt %{url} met succes geverifieerd als je identiteit en uw authenticatie type OpenID opgeslagen. + auth_type_update_error: "Er was een probleem met het bijwerken van uw authenticatietype: %{error_messages}" destroy_successful: Gebruiker %{login} met succes verwijderd + total_contexts: Totaal aantal contexten signup_successful: Aanmelding succesvol voor gebruiker %{username}. new_token_generated: Nieuwe token met succes gegenereerd total_projects: Totaal aantal projecten + user_created: Gebruiker aangemaakt. change_password_submit: Wachtwoord wijzigen no_signups_title: "TRACKS:: Geen nieuwe aanmeldingen" - user_created: Gebruiker aangemaakt. password_updated: Wachtwoord bijgewerkt. - manage_users: Beheren gebruikers account_signup: Aanmelden voor een account + manage_users: Beheren gebruikers + auth_type_updated: Authenticatietype bijgewerkt. signup: Aanmelden total_actions: Totaal aanal acties desired_login: Gewenste login confirm_password: Bevestig wachtwoord new_user_heading: "Registreer een nieuwe gebruiker:" - auth_type_updated: Authenticatietype bijgewerkt. + change_auth_type_title: TRACKS::Wijzig authenticatietype + change_password_prompt: Voer uw nieuwe wachtwoord in de onderstaande velden in en kies 'Wachtwoord wijzigen' om uw huidige wachtwoord met uw nieuwe te vervangen. password_confirmation_label: Bevestig wachtwoord destroy_error: Er is een fout opgetreden bij het verwijderen van de gebruiker '%{login}' choose_password: Kies een wachtwoord change_password_title: TRACKS::Wachtwoord wijzigen - change_auth_type_title: TRACKS::Wijzig authenticatietype - change_password_prompt: Voer uw nieuwe wachtwoord in de onderstaande velden in en kies 'Wachtwoord wijzigen' om uw huidige wachtwoord met uw nieuwe te vervangen. + label_auth_type: Authenticatietype new_password_label: Nieuw wachtwoord register_with_cas: Met uw CAS gebruikersnaam - label_auth_type: Authenticatietype total_users_count: Je hebt een totaal van %{count} gebruikers new_user_title: "TRACKS:: Aanmelden als de admin gebruiker" destroy_user: Verwijder de gebruiker - signup_new_user: Registreer nieuwe gebruiker destroy_confirmation: "Waarschuwing: dit zal de gebruiker '%{login} verwijderen met al zijn acties, contexten, projecten en notities. Weet u zeker dat u wilt doorgaan?" + signup_new_user: Registreer nieuwe gebruiker + change_authentication_type: Wijzigen authenticatietype identity_url: Identiteit URL auth_change_submit: Wijzigen authenticatietype openid_ok_pref_failed: Je hebt succesvol de %{url} geverifieerd als je identiteit, maar er was een probleem met het opslaan van uw authenticatie voorkeuren. - change_authentication_type: Wijzigen authenticatietype select_authentication_type: Selecteer uw nieuwe authenticatie type en klik op 'Wijzigen authenticatietype' om uw huidige instellingen te vervangen. total_notes: Totaal aantal notities + sidebar: + list_name_active_contexts: Actieve contexten + list_name_active_projects: Actieve projecten + list_empty: Geen + list_name_completed_projects: Voltooide projecten + list_name_hidden_projects: Verborgen projecten + list_name_hidden_contexts: Verborgen contexten contexts: delete_context_title: Verwijder context hide_form: Verberg formulier show_form_title: Voeg een context toe delete_context_confirmation: Weet u zeker dat u de context '%{name}' wilt verwijderen? Merk op dat dit ook alle (herhalende) acties in deze context zal verwijderen! delete_context: Verwijder context - hide_form_title: "Verberg formulier voor nieuwe context " edit_context: Bewerk context + hide_form_title: "Verberg formulier voor nieuwe context " context_hide: Verberg van de start pagina? hidden_contexts: Verborgen contexten no_contexts_active: Momenteel zijn er geen actieve contexten + visible_contexts: Zichtbare contexten save_status_message: Context bewaard show_form: Maak een nieuwe context add_context: Context toevoegen - visible_contexts: Zichtbare contexten context_name: Context naam update_status_message: Naam van de context was veranderd status_active: Context is actief @@ -745,42 +777,11 @@ nl: new_context_pre: Nieuwe context ' no_actions: Momenteel zijn er geen onafgeronde acties in deze context status_hidden: Context is verborgen - feedlist: - choose_context: Kies de context waar je een feed van wilt - actions_due_today: Acties die vandaag of eerder af moeten - all_contexts: Alle contexten - legend: Legenda - rss_feed: RSS Feed - ical_feed: iCal feed - all_projects: Alle projecten - choose_project: Kies het project waar je een feed van wilt - select_feed_for_project: Kies de feed voor dit project - active_projects_wo_next: Actieve projecten zonder acties - project_needed: "Er moet ten minste \xC3\xA9\xC3\xA9n project zijn voor een feed opgevraagd kan worden" - active_starred_actions: Alle gesterde, actieve acties - projects_and_actions: Actieve projecten met hun acties - context_needed: "Er moet eerst ten minste \xC3\xA9\xC3\xA9n context zijn voor je een feed kan opvragen" - select_feed_for_context: Kies de feed voor deze context - notice_incomplete_only: "Merk op: alle feeds laten alleen acties zien die niet afgerond zijn, tenzij anders vermeld." - actions_due_next_week: Acties die binnen 7 dagen afgerond moeten - actions_completed_last_week: Acties afgerond in de afgelopen 7 dagen - context_centric_actions: Feeds voor onafgeronde acties in een specifieke context - plain_text_feed: Reguliere tekst feed - last_fixed_number: Laatste %{number} acties - all_actions: Alle acties - project_centric: Feeds voor onafgeronde acties in een specifiek project - sidebar: - list_name_active_contexts: Actieve contexten - list_name_active_projects: Actieve projecten - list_empty: Geen - list_name_completed_projects: Voltooide projecten - list_name_hidden_projects: Verborgen projecten - list_name_hidden_contexts: Verborgen contexten datetime: prompts: minute: Minuut - month: Maand second: Seconden + month: Maand hour: Uur day: Dag year: Jaar @@ -811,12 +812,12 @@ nl: x_minutes: one: 1 minuut other: "%{count} minuten" - about_x_months: - one: ongeveer 1 maand - other: ongeveer %{count} maanden about_x_years: one: ongeveer 1 jaar other: ongeveer %{count} jaren + about_x_months: + one: ongeveer 1 maand + other: ongeveer %{count} maanden over_x_years: one: over 1 jaar other: over %{count} jaren @@ -826,18 +827,18 @@ nl: user_no_expiry: Blijf ingelogd sign_in: Meld aan login_cas: Ga naar het CAS - cas_login: CAS Inloggen - successful_with_session_info: "Login succesvol:" please_login: Log in om Tracks te gebruiken cas_logged_in_greeting: Hallo, %{username}! U bent geauthenticeerd. cas_no_user_found: Hallo,%{username}! Je hebt nog geen account op Tracks. + cas_login: CAS Inloggen + successful_with_session_info: "Login succesvol:" cas_username_not_found: Sorry, geen gebruiker met die CAS gebruikersnaam bestaat (%{username}) cas_create_account: Als u willen vragen ga hier om %{signup_link} mobile_use_openid: ... if inloggen met een OpenID cas_signup_link: Aanvragen account account_login: Account login - session_will_not_expire: sessie zal niet verlopen. successful: Succesvol aangemeld. Welkom terug! + session_will_not_expire: sessie zal niet verlopen. session_time_out: Sessie is verlopen. Gelieve %{link} session_will_expire: sessie zal verlopen na %{hours} u(u)r(en) van inactiviteit. option_separator: of, diff --git a/public/javascripts/application.js b/public/javascripts/application.js index 1e366e7d..64044b69 100644 --- a/public/javascripts/application.js +++ b/public/javascripts/application.js @@ -76,6 +76,9 @@ var TracksForm = { /* submit todo form after entering new todo */ $("button#todo_new_action_submit").live('click', function (ev) { + if ($('input#predecessor_input').val() != "") + if (!confirm(i18n['todos.unresolved_dependency'])) + return false; if (TodoItems.askIfNewContextProvided('', this)) submit_with_ajax_and_block_element('form#todo-form-new-action', $(this)); return false; From ee5ecdb0e4fb93314bd0b391e295e33c68648163 Mon Sep 17 00:00:00 2001 From: Reinier Balt Date: Sat, 30 Apr 2011 22:58:08 +0200 Subject: [PATCH 010/197] update docs --- README | 5 +++-- doc/CHANGELOG | 6 +----- doc/README_DEVELOPERS | 6 ++++-- 3 files changed, 8 insertions(+), 9 deletions(-) diff --git a/README b/README index d2c82d58..badde342 100644 --- a/README +++ b/README @@ -10,14 +10,15 @@ * Original developer: bsag (http://www.rousette.org.uk/) * Contributors: http://getontracks.org/wiki/Contributors * Version: 2.0devel -* Copyright: (cc) 2004-2010 rousette.org.uk. +* Copyright: (cc) 2004-2011 rousette.org.uk. * License: GNU GPL All the documentation for Tracks can be found within the /doc directory and at http://bsag.github.com/tracks/ The latter includes full instructions for both new installations and upgrades from older installations of Tracks. The instructions might appear long and intimidatingly complex, but that is mostly because of the number of different platforms supported, and the different configurations which can be used (e.g. running Tracks on your local computer or on a remote server). If you choose the appropriate section for your situation (installation vs. upgrade), and use the easiest (recommended) method, you should find the instructions easy to follow. If you encounter problems, try searching the wiki, forum or mailing list (URLs above), and ask a question if you cannot find a solution to your problem. +The wiki has a lot of user contributed installation HOWTOs for various webhosts, specific OS's and more. -If you are thinking about contributing towards the development of Tracks, please read /doc/README_DEVELOPERS for general information, or /doc/tracks_api_wrapper.rb for information on Tracks' API. +If you are thinking about contributing towards the development of Tracks, please read /doc/README_DEVELOPERS for general information, or /doc/tracks_api_wrapper.rb for information on Tracks' API. Also you can find some information on development on the wiki. While fully usable for everyday use, Tracks is still a work in progress. Make sure that you take sensible precautions and back up all your data frequently, taking particular care when you are upgrading. diff --git a/doc/CHANGELOG b/doc/CHANGELOG index e18e714c..68c94fda 100644 --- a/doc/CHANGELOG +++ b/doc/CHANGELOG @@ -13,11 +13,7 @@ * Copyright: (cc) 2004-2011 rousette.org.uk. * License: GNU GPL -== Version 2.0 (RC) - -(RC1 was never release, but was mentioned in the DOCS for while. People are - referencing RC1 with bug report. So for the release we've bumped the version - to RC2) +== Version 2.0 New features: 1. Redesign of menus and introduction of a context menu per todo diff --git a/doc/README_DEVELOPERS b/doc/README_DEVELOPERS index 99606779..771037d1 100644 --- a/doc/README_DEVELOPERS +++ b/doc/README_DEVELOPERS @@ -34,7 +34,7 @@ If you want to run tests using another database, that's fine, too. Just change y 5. SELENIUM TESTS (Selenium on Rails) -This testing style is deprecated and are being moved over to Selenium via Cucumber. +This testing style is deprecated and tests are being moved over to Selenium via Cucumber. See the wiki for more information to run the tests that are not yet migrated: http://www.getontracks.org/wiki/Testing @@ -52,4 +52,6 @@ To run the cucumber test run and for those using javascript/ajax use - rake cucumber:selenium \ No newline at end of file + rake cucumber:selenium + +See the wiki for more information on testing: http://www.getontracks.org/wiki/Testing \ No newline at end of file From 007d29e302ad6988b6ca83ab2dfa7ed9446d71c3 Mon Sep 17 00:00:00 2001 From: Reinier Balt Date: Sun, 1 May 2011 01:30:45 +0200 Subject: [PATCH 011/197] bump version number for master tree --- README | 2 +- config/environment.rb | 2 +- doc/CHANGELOG | 4 +++- 3 files changed, 5 insertions(+), 3 deletions(-) diff --git a/README b/README index badde342..b9cb792d 100644 --- a/README +++ b/README @@ -9,7 +9,7 @@ * Mailing list: http://lists.rousette.org.uk/mailman/listinfo/tracks-discuss * Original developer: bsag (http://www.rousette.org.uk/) * Contributors: http://getontracks.org/wiki/Contributors -* Version: 2.0devel +* Version: 2.1devel * Copyright: (cc) 2004-2011 rousette.org.uk. * License: GNU GPL diff --git a/config/environment.rb b/config/environment.rb index ff02891b..a4a016aa 100644 --- a/config/environment.rb +++ b/config/environment.rb @@ -121,7 +121,7 @@ if ( SITE_CONFIG['authentication_schemes'].include? 'cas') end end -tracks_version='2.0devel' +tracks_version='2.1devel' # comment out next two lines if you do not want (or can not) the date of the # last git commit in the footer info=`git log --pretty=format:"%ai" -1` diff --git a/doc/CHANGELOG b/doc/CHANGELOG index 68c94fda..75eb2c31 100644 --- a/doc/CHANGELOG +++ b/doc/CHANGELOG @@ -9,10 +9,12 @@ * Mailing list: http://lists.rousette.org.uk/mailman/listinfo/tracks-discuss * Original developer: bsag (http://www.rousette.org.uk/) * Contributors: http://getontracks.org/wiki/Contributors -* Version: 2.0devel +* Version: 2.1devel * Copyright: (cc) 2004-2011 rousette.org.uk. * License: GNU GPL +== Version 2.1devel + == Version 2.0 New features: From d1b38110097a0d0fa44561b37bb38b8b7c4861db Mon Sep 17 00:00:00 2001 From: Reinier Balt Date: Sun, 1 May 2011 13:44:23 +0200 Subject: [PATCH 012/197] fox some problems with de locale --- app/views/preferences/edit.html.erb | 2 +- app/views/todos/_edit_form.rhtml | 2 +- config/locales/de.yml | 339 ++++++++++++++-------------- config/locales/en.yml | 17 ++ config/locales/nl.yml | 296 ++++++++++++------------ 5 files changed, 342 insertions(+), 314 deletions(-) diff --git a/app/views/preferences/edit.html.erb b/app/views/preferences/edit.html.erb index e871ac9c..e2485b40 100644 --- a/app/views/preferences/edit.html.erb +++ b/app/views/preferences/edit.html.erb @@ -30,7 +30,7 @@ table_row(pref_name, nowrap_label) { text_field('prefs', pref_name) } end %> - <%= row_with_select_field('locale', I18n.available_locales.map {|l| l.to_s}) %> + <%= row_with_select_field('locale', I18n.available_locales.map {|l| l.to_s}) %> <%= row_with_text_field('date_format') %> <%= row_with_text_field('title_date_format') %> <%= table_row('time_zone', false) { time_zone_select('prefs','time_zone') } %> diff --git a/app/views/todos/_edit_form.rhtml b/app/views/todos/_edit_form.rhtml index 37e465e6..93bdb90c 100644 --- a/app/views/todos/_edit_form.rhtml +++ b/app/views/todos/_edit_form.rhtml @@ -27,7 +27,7 @@ form_for(todo, :html=> { :name=>'todo', :id => dom_id(@todo, 'form'), :class => <%= text_field_tag 'tag_list', tag_list_text, :id => dom_id(@todo, 'tag_list'), :size => 30, :tabindex => 12 %>
- + <%= date_field_tag("todo[due]", dom_id(@todo, 'due'), format_date(@todo.due), "tabindex" => 13) %> <%= image_tag("delete_off.png", :alt => "Clear due date") %> diff --git a/config/locales/de.yml b/config/locales/de.yml index d6d0e73b..a5249711 100644 --- a/config/locales/de.yml +++ b/config/locales/de.yml @@ -34,19 +34,13 @@ de: separator: . precision: delimiter: "," - integrations: - opensearch_description: In Tracks suchen - applescript_next_action_prompt: "Beschreibung der n\xC3\xA4chsten Aufgabe:" - gmail_description: "Gadget, um Tracks als Gadget zu Googlemail hinzuzuf\xC3\xBCgen" - applescript_success_after_id: erstellt - applescript_success_before_id: "N\xC3\xA4chste neue Aufgabe mit ID" common: back: "Zur\xC3\xBCck" third: Dritte actions: Aktionen add: "Hinzuf\xC3\xBCgen" - logout: Abmelden go_back: "Zur\xC3\xBCck" + logout: Abmelden cancel: Abbrechen none: Keine second: Zweite @@ -60,74 +54,80 @@ de: project: Projekt contribute: Mitwirken ok: Ok - website: Website first: Erste + website: Website numbered_step: Schritt %{number} - fourth: Vierte sort: by_task_count_title: Nach Anzahl der Aufgaben sortieren by_task_count_title_confirm: Sollen diese Projekte wirklich nach Anzahl der Aufgaben sortiert werden? Die bisherige Sortier-Reihenfolge wird damit überschrieben. alphabetically: Alphabetisch - alphabetically_confirm: Sollen diese Projekte wirklich alphabetisch sortiert werden? Die bisherige Sortier-Reihenfolge wird damit überschrieben. sort: Sortieren + alphabetically_confirm: Sollen diese Projekte wirklich alphabetisch sortiert werden? Die bisherige Sortier-Reihenfolge wird damit überschrieben. alphabetically_title: Projekte alphabetisch sortieren by_task_count: Nach Anzahl der Aufgaben - create: Erstellen + fourth: Vierte drag_handle: Verschieben + create: Erstellen + errors_with_fields: "Mit folgenden Feldern sind Probleme aufgetreten:" context: Kontext description: Beschreibung - errors_with_fields: "Mit folgenden Feldern sind Probleme aufgetreten:" contexts: Kontexte - bugs: Bugs update: Aktualisieren wiki: Wiki - search: Suchen - email: E-Mail + bugs: Bugs ajaxError: Fehler beim Empfangen vom Server + email: E-Mail + search: Suchen layouts: toggle_notes: Notizen umschalten next_actions_rss_feed: RSS-Feed kommende Aufgaben toggle_notes_title: Alle Notizen umschalten mobile_navigation: logout: Abmelden - new_action: 0-Neue Aufgabe feeds: Feeds + new_action: 0-Neue Aufgabe starred: 4-Markiert projects: 3-Projekte tickler: Notizbuch contexts: 2-Kontexte home: 1-Home navigation: - manage_users_title: "Benutzer hinzuf\xC3\xBCgen oder entfernen" api_docs: REST API Docs + manage_users_title: "Benutzer hinzuf\xC3\xBCgen oder entfernen" recurring_todos: Sich wiederholende To-Dos feeds: Feeds + stats: Statistiken starred: Markiert notes_title: Alle Notizen anzeigen - stats: Statistiken tickler_title: Notizbuch manage_users: Benutzer verwalten export_title: Daten importieren und exportieren integrations_: Tracks integrieren preferences: Einstellungen - calendar_title: "Kalender mit \xC3\xBCberf\xC3\xA4lligen Aufgaben" feeds_title: "Liste der verf\xC3\xBCgbaren Feeds anzeigen" + calendar_title: "Kalender mit \xC3\xBCberf\xC3\xA4lligen Aufgaben" + home_title: Start + starred_title: Markierte Aufgaben betrachten recurring_todos_title: Sich wiederholende To-Dos verwalten completed_tasks: Erledigt stats_title: Statistiken anzeigen - home_title: Start - starred_title: Markierte Aufgaben betrachten tickler: Notizbuch - view: Betrachten organize: Organisieren + view: Betrachten completed_tasks_title: "Vollst\xC3\xA4ndig" export: Export home: Start contexts_title: Kontexte + preferences_title: Meine Einstellungen calendar: Kalender projects_title: Projekte - preferences_title: Meine Einstellungen search: "Alle Eintr\xC3\xA4ge durchsuchen" + integrations: + opensearch_description: In Tracks suchen + gmail_description: "Gadget, um Tracks als Gadget zu Googlemail hinzuzuf\xC3\xBCgen" + applescript_next_action_prompt: "Beschreibung der n\xC3\xA4chsten Aufgabe:" + applescript_success_after_id: erstellt + applescript_success_before_id: "N\xC3\xA4chste neue Aufgabe mit ID" data: import_successful: Import war erfolgreich. import_errors: Beim Import sind Fehler aufgetreten. @@ -160,12 +160,23 @@ de: description: Beschreibung due: Fällig preference: - sms_context: Standard-E-Mail-Kontext + show_hidden_projects_in_sidebar: Zeige Versteckte Projekte in der Sidebar + show_hidden_contexts_in_sidebar: "Zeige Versteckte Zusammenh\xC3\xA4nge in der Sidebar" + date_format: Datum Format mobile_todos_per_page: Aufgaben pro Seite (Mobile Version) + staleness_starts: Anfang des Abgestandenheit + sms_context: Standard-E-Mail-Kontext + verbose_action_descriptors: "Ausf\xC3\xBChrlich Aktion Deskriptoren" + show_number_completed: "Zeige Zahl der abgeschlossenen Ma\xC3\x9Fnahmen" + title_date_format: Titel Datumsformat refresh: Aktualisierungsintverall (in Minuten) week_starts: Woche startet am + due_style: "F\xC3\xA4llig stijl" + time_zone: Zeit Zone + locale: Zahle sms_email: Per E-Mail show_project_on_todo_done: Zur Projektseite wechseln, wenn To-Do abgeschlossen + show_completed_projects_in_sidebar: Zeige abgeschlossene Projekte in der Sidebar user: last_name: Nachname first_name: Vorname @@ -187,8 +198,8 @@ de: exclusion: "ist nicht verf\xC3\xBCgbar" odd: muss ungerade sein too_short: ist zu kurz (nicht weniger als %{count} Zeichen) - empty: "muss ausgef\xC3\xBCllt werden" wrong_length: "hat die falsche L\xC3\xA4nge (muss genau %{count} Zeichen haben)" + empty: "muss ausgef\xC3\xBCllt werden" even: muss gerade sein less_than: muss kleiner als %{count} sein greater_than: "muss gr\xC3\xB6\xC3\x9Fer als %{count} sein" @@ -208,26 +219,26 @@ de: stats: tag_cloud_title: Tag-Cloud aller Aktionen tag_cloud_description: Diese Tag-Cloud beinhaltet Tags aller Aktionen (abgeschlossen, nicht abgeschlossen, sichtbar und/oder unsichtbar) - actions: Aktionen tag_cloud_90days_title: Tag-Cloud-Aktionen in den letzten 90 Tagen + actions: Aktionen totals_active_project_count: Von diesen sind %{count} aktive Projekte - totals_first_action: Seit deiner ersten Aktion am %{date} actions_avg_completion_time: Durchschnittlich hast du %{count} Tage gebraucht, um eine Aktion abzuschliessen. actions_last_year_legend: number_of_actions: Anzahl Aktionen months_ago: Monate zuvor - actions_dow_30days_title: Wochentag (letzte 30 Tage) + totals_first_action: Seit deiner ersten Aktion am %{date} + current_running_time_of_incomplete_visible_actions: "Aktuelle Laufzeit unvollst\xC3\xA4ndiger sichtbarer Aufgaben" + totals_deferred_actions: "von denen %{count} im Notizbuch zur\xC3\xBCckgestellt sind" legend: - actions: Aktionen number_of_days: Anzahl vergangene Tage + actions: Aktionen number_of_actions: Anzahl Aktionen day_of_week: Wochentag percentage: Prozentsatz running_time: Laufzeit einer Aktion (Wochen) months_ago: Monate zuvor - totals_deferred_actions: "von denen %{count} im Notizbuch zur\xC3\xBCckgestellt sind" totals_action_count: hattest du insgesamt %{count} Aktionen - current_running_time_of_incomplete_visible_actions: "Aktuelle Laufzeit unvollst\xC3\xA4ndiger sichtbarer Aufgaben" + actions_dow_30days_title: Wochentag (letzte 30 Tage) running_time_legend: actions: Aufgaben percentage: Prozentsatz @@ -245,40 +256,41 @@ de: totals_context_count: Du hast %{count} Kontexte. totals_visible_context_count: Von diesen sind %{count} sichtbare Kontexte totals_blocked_actions: "%{count} h\xC3\xA4ngen vom Abschluss anderer Aktionen ab." - actions_min_completion_time: "Die minimale Zeit betr\xC3\xA4gt %{time}." + actions_min_max_completion_days: "Das Minimum/Maximum an Tagen einer Vervollst\xC3\xA4ndigung ist %{min}/%{max}." tags: Tags + actions_min_completion_time: "Die minimale Zeit betr\xC3\xA4gt %{time}." no_tags_available: "keine Tags verf\xC3\xBCgbar" actions_day_of_week_title: Wochentag (alle Aktionen) totals_project_count: Du hast %{count} Projekte. - actions_min_max_completion_days: "Das Minimum/Maximum an Tagen einer Vervollst\xC3\xA4ndigung ist %{min}/%{max}." more_stats_will_appear: "Weitere Statistiken werden verf\xC3\xBCgbar, wenn einige Aufgaben hinzugef\xC3\xBCgt wurden." - actions_30days_title: _Aktionen der letzten 30 Tage - running_time_all: "Aktuelle Laufzeit aller unvollst\xC3\xA4ndigen Aktionen." - tod30: Tageszeit (letzte 30 Tage) - totals_tag_count: Du hast %{count} Tags in Aktionen. - top5_visible_contexts_with_incomplete_actions: "Top 5 der sichtbaren Kontexte mit unvollst\xC3\xA4ndigen Aktionen" totals_hidden_project_count: "%{count} sind versteckt" - time_of_day: Tageszeit (alle Aktionen) - tag_cloud_90days_description: Diese Tag-Cloud beinhaltet Tags der Aktionen, die in den letzten 90 Tagen erstellt oder abgeschlossen wurden. + tod30: Tageszeit (letzte 30 Tage) + actions_30days_title: _Aktionen der letzten 30 Tage actions_further: und danach - other_actions_label: (andere) - actions_avg_created: In den letzten 12 Monaten hast du im Durchschnitt %{count} Aktionen erstellt - spread_of_running_actions_for_visible_contexts: Verteilung der laufenden Aufgaben aller sichtbaren Kontexte - actions_selected_from_week: "Aktionen ausgew\xC3\xA4hlt ab Woche" + time_of_day: Tageszeit (alle Aktionen) + totals_tag_count: Du hast %{count} Tags in Aktionen. + running_time_all: "Aktuelle Laufzeit aller unvollst\xC3\xA4ndigen Aktionen." + top5_visible_contexts_with_incomplete_actions: "Top 5 der sichtbaren Kontexte mit unvollst\xC3\xA4ndigen Aktionen" + tag_cloud_90days_description: Diese Tag-Cloud beinhaltet Tags der Aktionen, die in den letzten 90 Tagen erstellt oder abgeschlossen wurden. + top10_projects_30days: Top-10-Projekt der letzten 30 Tage + click_to_return: "Klick auf %{link} um zur Statistikseite zur\xC3\xBCckzukehren." totals_completed_project_count: und %{count} sind abgeschlossene Projekte. click_to_show_actions_from_week: Klick auf %{link} um die Aktionen von Woche %{week} und danach anzuzeigen. - spread_of_actions_for_all_context: Aufgabenverteilung aller Kontexte - click_to_return: "Klick auf %{link} um zur Statistikseite zur\xC3\xBCckzukehren." + spread_of_running_actions_for_visible_contexts: Verteilung der laufenden Aufgaben aller sichtbaren Kontexte + other_actions_label: (andere) top10_projects: Top 10 aller Projekte - top10_projects_30days: Top-10-Projekt der letzten 30 Tage + spread_of_actions_for_all_context: Aufgabenverteilung aller Kontexte + actions_selected_from_week: "Aktionen ausgew\xC3\xA4hlt ab Woche" + actions_avg_created: In den letzten 12 Monaten hast du im Durchschnitt %{count} Aktionen erstellt time_of_day_legend: number_of_actions: Anzahl Aufgaben time_of_day: Tageszeit click_to_return_link: hier totals_hidden_context_count: und %{count} sind versteckte Kontexte. actions_avg_completed: und %{count} durchschnittlich davon monatlich erledigt - contexts: Kontexte totals: Ingesamt + contexts: Kontexte + no_actions_selected: "Es sind keine Aufgaben ausgew\xC3\xA4hlt." running_time_all_legend: actions: Aktionen percentage: Prozentsatz @@ -290,7 +302,6 @@ de: avg_created: Durchschnittlich erstellt avg_completed: Durchschnittlich fertiggestellt created: Erstellt - no_actions_selected: "Es sind keine Aufgaben ausgew\xC3\xA4hlt." click_to_update_actions: Klicke auf eine Leiste in der Grafik um die Aktionen unten zu aktualisieren. tod30_legend: number_of_actions: Anzahl Aufgaben @@ -298,16 +309,16 @@ de: action_selection_title: TRACKS::Aktionsauswahl actions_actions_avg_created_30days: In den letzten 30 Tagen hast du im Durchschnitt %{count} Aktionen erstellt todos: - recurring_action_deleted: Die Aktion wurde gelöscht. Da dies eine wiederkehrende Aktion ist, wurde eine neue erstellt. show_from: Anzeigen ab dem error_starring_recurring: Konnte die Hervorhebung der wiederkehrenden Aufgabe \'%{description}\' nicht durchführen + recurring_action_deleted: Die Aktion wurde gelöscht. Da dies eine wiederkehrende Aktion ist, wurde eine neue erstellt. completed_actions: Erledigte Aufgaben completed_recurring: Abgeschlossene wiederkehrende To-Dos added_new_next_action: Neue Aktion angelegt blocked_by: Blockiert durch %{predecessors} + defer_date_after_due_date: "Zur\xC3\xBCckstellungsdatum nach Ablaufdatum. Bitte passe das Ablaufdatum an, dass es vor dem Zur\xC3\xBCckstellungsdatum liegt." star_action: Aktion markieren completed_recurrence_completed: Es gibt keine weitere Aktion nach der soeben gelöschten. Die Wiederholung ist abgeschlossen. - defer_date_after_due_date: "Zur\xC3\xBCckstellungsdatum nach Ablaufdatum. Bitte passe das Ablaufdatum an, dass es vor dem Zur\xC3\xBCckstellungsdatum liegt." unable_to_add_dependency: Abhängigkeit nicht hinzufügbar done: Erledigt? star_action_with_description: Aktion '%{description}' markieren @@ -315,65 +326,65 @@ de: completed: Erledigt no_deferred_actions_with: "Keine zur\xC3\xBCckgestellten Aktionen mit dem Tag '%{tag_name}'" no_hidden_actions: Momentan sind keine versteckten Aufgaben vorhanden - edit_action_with_description: Aktion '%{description}' bearbeiten action_due_on: "(Aktion f\xC3\xA4llig am %{date})" - action_deleted_success: Die nächste Aktion erfolgreich gelöscht + edit_action_with_description: Aktion '%{description}' bearbeiten archived_tasks_title: TRACKS::Archivierte erledigte Aufgaben remove_dependency: Abhängigkeit löschen (löscht nicht die Aufgabe) list_incomplete_next_actions: Unerledigte Folge-Aufgaben anzeigen + action_deleted_success: Die nächste Aktion erfolgreich gelöscht tags: Tags (Komma-separiert) new_related_todo_created: "Eine neue To-Do wurde hinzugef\xC3\xBCgt, die zu dieser wiederkehrenden To-Do geh\xC3\xB6rt" context_changed: Kontext zu %{name} gewechselt mobile_todos_page_title: Alle Aufgaben add_another_dependency: "F\xC3\xBCgen Sie eine andere Abh\xC3\xA4ngigkeit" delete_recurring_action_title: "Wiederkehrende Aktion '%{description}' l\xC3\xB6schen" - removed_predecessor: "%{successor} entfernt als Abh\xC3\xA4ngigkeit von %{predecessor}." recurring_actions_title: TRACKS::Wiederkehrende Aktionen + removed_predecessor: "%{successor} entfernt als Abh\xC3\xA4ngigkeit von %{predecessor}." next_action_needed: Es muss mindestens eine folgende Aktion angelegt werden - action_saved: Aktion gespeichert scheduled_overdue: "Planm\xC3\xA4\xC3\x9Fig angezeigt vor %{days} Tagen" + action_saved: Aktion gespeichert action_deleted_error: Fehler beim Löschen der Aufgabe edit_action: Aktion bearbeiten added_new_context: "Neuer Kontext hinzugef\xC3\xBCgt" next_actions_description: "Filter:" + list_incomplete_next_actions_with_limit: Zeige die letzten %{count} unerledigten Folge-Aufgaben + set_to_pending: "%{task} als ausstehend markiert" + added_new_project: "Neues Projekt hinzugef\xC3\xBCgt" next_actions_title_additions: completed: Aufgaben erledigt due_today: heute fällig due_within_a_week: diese Woche fällig - added_new_project: "Neues Projekt hinzugef\xC3\xBCgt" - list_incomplete_next_actions_with_limit: Zeige die letzten %{count} unerledigten Folge-Aufgaben - set_to_pending: "%{task} als ausstehend markiert" older_completed_items: "Ältere erledigte Aufgaben" append_in_this_project: in diesem Projekt error_deleting_item: Beim Löschen von %{description} trat ein Fehler auf task_list_title: TRACKS::Aufgaben anzeigen no_actions_due_this_week: Keine zu erledigenden Aufgaben für den Rest der Woche - no_recurring_todos: Im Augenblick gibt es keine wiederkehrenden To-Dos + delete_recurring_action_confirm: Soll die wiederkehrende Aktion '%{description}' wirklich gelöscht werden? error_completing_todo: Beim Abschliessen/Aktivieren der wiederkehrenden To-Do %{description} ist ein Fehler aufgetreten + no_recurring_todos: Im Augenblick gibt es keine wiederkehrenden To-Dos convert_to_project: In Projekt umwandeln no_deferred_pending_actions: Momentan sind keine aufgeschobenen oder ausstehenden Aufgaben vorhanden. - delete_recurring_action_confirm: Soll die wiederkehrende Aktion '%{description}' wirklich gelöscht werden? completed_last_day: In den letzten 24 Stunden erledigt - completed_more_than_x_days_ago: Vor mehr als %{count} Tagen erledigt no_project: --Kein Projekt-- show_in_days: Anzeigen in %{days} Tagen error_saving_recurring: Es gab einen Fehler beim Speichern der wiederkehrenden todo '%{description}' + completed_more_than_x_days_ago: Vor mehr als %{count} Tagen erledigt new_related_todo_created_short: hat einen neuen todo feed_title_in_context: im Kontext '%{context}' older_than_days: "Älter als %{count} Tage" edit: Bearbeiten pending: Ausstehend completed_actions_with: Abgeschlossene Aktionen mit dem Tag %{tag_name} - deleted_success: "Die Aktion wurde erfolgreich gel\xC3\xB6scht." completed_tasks_title: TRACKS::Erledigte Aufgaben + deleted_success: "Die Aktion wurde erfolgreich gel\xC3\xB6scht." feed_title_in_project: im Projekt '%{project}' clear_due_date: Fälligkeitsdatum leeren error_removing_dependency: "Beim Entfernen der Abh\xC3\xA4ngigkeit ist ein Fehler aufgetreten" hidden_actions: Verstecke Aufgaben + deferred_actions_with: "Zur\xC3\xBCckgestellte Aktionen mit dem Tag '%{tag_name}'" was_due_on_date: war am %{date} fällig show_on_date: Anzeigen am %{date} recurrence_period: Wiederholungszeitraum - deferred_actions_with: "Zur\xC3\xBCckgestellte Aktionen mit dem Tag '%{tag_name}'" confirm_delete: "Bist du sicher, dass du die Aktion '%{description}' l\xC3\xB6schen m\xC3\xB6chtest?" recurring_deleted_success: "Die wiederkehrende Aktion wurde erfolgreich gel\xC3\xB6scht." next_actions_title: TRACKS::Weitere Aufgaben @@ -384,8 +395,8 @@ de: calendar_page_title: TRACKS::Kalender in_hidden_state: als versteckt markiert unresolved_dependency: "Der Wert, den Sie in die Abh\xC3\xA4ngigkeit Feld eingegeben nicht zu einer bestehenden Aktion zu l\xC3\xB6sen. Dieser Wert wird nicht mit dem Rest der Aktion gerettet werden. Weiter gehen?" - no_actions_found_title: Keine Aktionen gefunden show_today: Heute anzeigen + no_actions_found_title: Keine Aktionen gefunden completed_last_x_days: In den letzten %{count} Tagen erledigt no_actions_with: "Im Augenblick gibt es keine unvollst\xC3\xA4ndigen Aktionen mit dem Tag '%{tag_name}'" defer_x_days: @@ -406,16 +417,16 @@ de: delete: "L\xC3\xB6schen" drag_action_title: "Auf andere Aktion ziehen, um sie als Abh\xC3\xA4ngigkeit zu definieren" cannot_add_dependency_to_completed_todo: "Kann nicht hinzugef\xC3\xBCgt werden diese Aktion als eine Abh\xC3\xA4ngigkeit zu einer abgeschlossenen Aktion!" - action_marked_complete: Die Aktion '%{description}' wurde als %{completed} markiert. depends_on: "H\xC3\xA4ngt ab von" tickler_items_due: one: Ein Notizbuch-Eintrag ist nun fällig - lade die Seite neu, um sie zu sehen. other: "%{count} Notizbuch-Einträge sind nun fällig - lade die Seite neu, um sie zu sehen." - new_related_todo_not_created_short: nicht schaffen todo + action_marked_complete: Die Aktion '%{description}' wurde als %{completed} markiert. completed_today: one: Du hast heute bereits eine Aufgabe erledigt. other: Du hast heute bereits %{count} Aufgaben erledigt. added_new_next_action_plural: Neue weiterführende Aufgaben angelegt + new_related_todo_not_created_short: nicht schaffen todo calendar: get_in_ical_format: Diesen Kalender im iCal Format herunterladen due_next_week: Nächste Woche fällig @@ -429,7 +440,6 @@ de: no_actions_due_this_month: Keine Aktionen für den Rest des Monats error_starring: Konnte die Hervorhebung von \'%{description}\' nicht durchführen show_tomorrow: Morgen anzeigen - added_dependency: "%{dependency} als Abhängigkeit hinzugefügt." recurrence: ends_on_date: Endet am %{date} every_work_day: Jeden Arbeitstag @@ -438,27 +448,28 @@ de: weekly_options: "Einstellungen f\xC3\xBCr sich w\xC3\xB6chentlich wiederholende Aktionen" monthly_options: "Einstellungen f\xC3\xBCr sich monatlich wiederholende Aktionen" weekly: "W\xC3\xB6chentlich" - starts_on: Beginnt am daily_options: "Einstellungen f\xC3\xBCr sich t\xC3\xA4glich wiederholenden Aktionen" monthly: Monatlich + starts_on: Beginnt am daily: "T\xC3\xA4glich" show_option_always: immer yearly_every_x_day: "Jeden %{day}. %{month} " recurrence_on_options: Setze Wiederholung auf daily_every_number_day: Alle %{number} Tage + ends_on: Endet am weekly_every_number_week: Kehrt jede %{number}. Woche wieder am show_options: To-Do anzeigen - ends_on: Endet am + no_end_date: Kein Enddatum day_x_on_every_x_month: Tag %{day} in jedem %{month}. Monat yearly_options: "Einstellungen f\xC3\xBCr sich j\xC3\xA4hrlich wiederholende Aktionen" - show_days_before: "%{days} Tage bevor die To-Do f\xC3\xA4llig ist" yearly_every_xth_day: Den %{day} %{day_of_week} des %{month} + show_days_before: "%{days} Tage bevor die To-Do f\xC3\xA4llig ist" from_tickler: the date todo comes from tickler (no due date set) - no_end_date: Kein Enddatum yearly: "J\xC3\xA4hrlich" monthly_every_xth_day: Der %{day} %{day_of_week} eines jeden %{month}. Monats tagged_page_title: TRACKS::Als '%{tag_name}' markiert no_completed_recurring: Im Augenblick gibt es keine abgeschlossenen wiederkehrenden To-Dos + added_dependency: "%{dependency} als Abhängigkeit hinzugefügt." no_deferred_actions: Zur Zeit sind keine zurückgestellten Aktionen vorhanden. recurrence_completed: Nach dieser wiederkehrenden Aktion, die du gerade abgeschlossen hast, folgt keine mehr. Die Wiederholung endet hiermit no_actions_found: "Momentan gibt es keine unvollst\xC3\xA4ndigen Aktionen." @@ -466,8 +477,9 @@ de: error_toggle_complete: "K\xC3\xB6nnte nicht diese Marke todo komplett" due: Fällig action_marked_complete_error: Die Aktion '%{description}' wurde aufgrund eines Fehlers NICHT als %{completed} markiert. - action_saved_to_tickler: Aktion im Notizbuch gespeichert + add_new_recurring: "F\xC3\xBCge eine neue wiederkehrende Aktion hinzu" recurring_action_saved: Wiederkehrende Aktion gespeichert + action_saved_to_tickler: Aktion im Notizbuch gespeichert depends_on_separate_with_commas: Hängt ab von (Komma-separiert) completed_in_archive: one: Es befindet sich eine erledigte Aufgabe im Archiv. @@ -478,7 +490,6 @@ de: due_date: mit einem Datum %{due_date} oder früher overdue: "Überfällig" no_incomplete_actions: Es gibt keine unerledigten Aufgaben - add_new_recurring: "F\xC3\xBCge eine neue wiederkehrende Aktion hinzu" notes: delete_note_title: Notiz '%{id}' löschen delete_confirmation: "Bist du sicher, dass du die Notiz '%{id}' l\xC3\xB6schen m\xC3\xB6chtest?" @@ -488,45 +499,45 @@ de: deleted_note: "Notiz '%{id}' l\xC3\xB6schen" note_location_link: "In:" edit_item_title: Eintrag bearbeiten - no_notes_available: "Derzeit gibt es keine Notizen: f\xC3\xBCge Notizen von der jeweiligen Projektseite hinzu." note_header: Notiz %{id} + no_notes_available: "Derzeit gibt es keine Notizen: f\xC3\xBCge Notizen von der jeweiligen Projektseite hinzu." delete_note_confirm: Soll die Notiz '%{id}' wirklich gelöscht werden? projects: + default_context_set: Standard-Kontext des Projekts auf %{default_context} gesetzt + no_actions_in_project: "Momentan gibt es keine unvollst\xC3\xA4ndigen Aktionen in diesem Projekt" deferred_actions: "Aufgeschobene Aufgaben f\xC3\xBCr dieses Projekt" was_marked_hidden: wurde als verborgen markiert edit_project_title: Projekt bearbeiten default_tags_removed_notice: Standard-Tags entfernt - default_context_set: Standard-Kontext des Projekts auf %{default_context} gesetzt - no_actions_in_project: "Momentan gibt es keine unvollst\xC3\xA4ndigen Aktionen in diesem Projekt" hide_form: Fomular verstecken page_title: "TRACKS::Projekt: %{project}" - deferred_actions_empty: "Es gibt keine aufgeschobenen Aufgaben f\xC3\xBCr dieses Projekt" this_project: Dieses Projekt project_state: Projekt ist %{state} show_form_title: Neues Projekt anlegen to_new_project_page: Zu neuem Projekt weiterleiten no_notes_attached: "Im Augenblick sind keine Notizen mit diesem Projekt verkn\xC3\xBCpft." - todos_append: an dieses Projekt + deferred_actions_empty: "Es gibt keine aufgeschobenen Aufgaben f\xC3\xBCr dieses Projekt" notes: Notizen + todos_append: an dieses Projekt hide_form_title: Formular verstecken notes_empty: "Es gibt keine Notizen f\xC3\xBCr dieses Projekt" no_projects: Keine Projekte vorhanden - completed_actions_empty: "Es gibt keine erledigten Aufgaben f\xC3\xBCr dieses Projekt" with_no_default_context: hat keinen Standardwert Kontext delete_project: Projekt löschen - delete_project_confirmation: Soll das Projekt '%{name}' wirklich gelöscht werden? - with_default_context: mit einem Standard-Rahmen von '%{context_name}' + completed_actions_empty: "Es gibt keine erledigten Aufgaben f\xC3\xBCr dieses Projekt" show_form: Projekt erstellen actions_in_project_title: Die Aktionen in diesem Projekt - set_default_tags_notice: Standard-Tags des Projekts auf %{default_tags} setzen + delete_project_confirmation: Soll das Projekt '%{name}' wirklich gelöscht werden? + with_default_context: mit einem Standard-Rahmen von '%{context_name}' settings: Einstellungen - completed_projects: Abgeschlossene Projekte add_note: "Notiz hinzuf\xC3\xBCgen" - is_active: ist aktiv - add_project: Projekt hinzufügen - project_saved_status: Projekt gespeichert with_default_tags: und mit '%{tags}' als Standard-Tags + is_active: ist aktiv + completed_projects: Abgeschlossene Projekte + add_project: Projekt hinzufügen list_projects: TRACKS::Projektliste + set_default_tags_notice: Standard-Tags des Projekts auf %{default_tags} setzen + project_saved_status: Projekt gespeichert hidden_projects: Versteckte Projekte delete_project_title: Projekt löschen was_marked_complete: wurde als erledigt markiert @@ -534,21 +545,12 @@ de: default_context_removed: Standard-Kontext entfernt add_note_submit: "Notiz hinzuf\xC3\xBCgen" active_projects: Aktive Projekte - edit_project_settings: Edit Project Settings status_project_name_changed: "Projektname ge\xC3\xA4ndert" no_default_context: Dieses Projekt hat keinen Standard-Kontext with_no_default_tags: und hat keinen Standardwert Tags default_context: Der Standard-Kontext dieses Projektes ist %{context} state: Dieses Projekt ist %{state} - states: - hidden_plural: Versteckte - completed: Erledigt - completed_plural: Erledigte - visible_plural: Sichtbare - visible: Sichtbar - active_plural: Aktive - hidden: Versteckt - active: Aktiv + edit_project_settings: Edit Project Settings time: am: vormittags formats: @@ -557,28 +559,37 @@ de: short: "%d. %B, %H:%M Uhr" long: "%A, %d. %B %Y, %H:%M Uhr" pm: nachmittags - errors: - user_unauthorized: "401 Unauthorized: Nur administrative Benutzer d\xC3\xBCrfen auf diese Funktion zugreifen." + states: + hidden_plural: Versteckte + completed: Erledigt + completed_plural: Erledigte + visible_plural: Sichtbare + active_plural: Aktive + visible: Sichtbar + active: Aktiv + hidden: Versteckt preferences: - open_id_url: "Deine OpenID-URL lautet:" change_identity_url: "\xC3\x84ndere deine Identit\xC3\xA4ts-URL" - staleness_starts_after: Staleness starts after %{days} days + open_id_url: "Deine OpenID-URL lautet:" + staleness_starts_after: Abgestandenheit startet nach %{days} Tagen change_password: "Passwort \xC3\xA4ndern" page_title: TRACKS::Einstellungen title: Deine Einstellungen token_description: "Token (f\xC3\xBCr die Verwendung in Feeds und der API)" show_number_completed: "Zeige %{number} erledigte Eintr\xC3\xA4ge" is_false: Nein - is_true: Ja edit_preferences: Einstellungen bearbeiten page_title_edit: "TRACKS::Einstellungen \xC3\xA4ndern" + is_true: Ja sms_context_none: Keine generate_new_token: Neues Token generieren token_header: Dein Token change_authentication_type: "Authentifzierungsart \xC3\xA4ndern" - authentication_header: Deine Authentifizierung current_authentication_type: Dein Authentifizierungsart ist %{auth_type} + authentication_header: Deine Authentifizierung generate_new_token_confirm: "Bist du sicher? Wenn du ein neues Token generierst, wird dies das alte Token ersetzen und jegliche externe Nutzung st\xC3\xB6ren, die das alte Token verwendet." + errors: + user_unauthorized: "401 Unauthorized: Nur administrative Benutzer d\xC3\xBCrfen auf diese Funktion zugreifen." date: month_names: - @@ -644,6 +655,8 @@ de: two_words_connector: " und " select: prompt: "Bitte w\xC3\xA4hlen Sie" + footer: + send_feedback: Senden Sie Feedback zu %{version} shared: multiple_next_actions: Mehrere neue Aufgaben (eine pro Zeile) toggle_single: Weitere Aktion erstellen @@ -651,15 +664,13 @@ de: add_action: "Aufgabe hinzuf\xC3\xBCgen" add_actions: "Aufgaben hinzuf\xC3\xBCgen" tags_for_all_actions: "Tags f\xC3\xBCr alle Aufgaben (mit Kommas trennen)" - context_for_all_actions: "Kontext f\xC3\xBCr alle Aufgaben" - toggle_multi: "Mehrere neue Aufgabeneintr\xC3\xA4ge hinzuf\xC3\xBCgen" toggle_single_title: Eine weitere Aktion hinzufügen project_for_all_actions: "Projekt f\xC3\xBCr alle Aufgaben" + context_for_all_actions: "Kontext f\xC3\xBCr alle Aufgaben" + toggle_multi: "Mehrere neue Aufgabeneintr\xC3\xA4ge hinzuf\xC3\xBCgen" separate_tags_with_commas: mit Kommas trennen toggle_multi_title: "Zwischen Einzel- und Mehrfachformular f\xC3\xBCr neue Aufgaben umschalten" hide_action_form_title: "Formular f\xC3\xBCr neue Aufgaben verstecken" - footer: - send_feedback: Senden Sie Feedback zu %{version} feedlist: choose_context: "Kontext f\xC3\xBCr den Feed w\xC3\xA4hlen" actions_due_today: "Heute oder fr\xC3\xBCher f\xC3\xA4llig" @@ -667,23 +678,66 @@ de: all_contexts: Alle Kontexte rss_feed: RSS-Feed ical_feed: iCal-Feed - all_projects: Alle Projekte choose_project: "Projekt f\xC3\xBCr den Feed w\xC3\xA4hlen" + all_projects: Alle Projekte project_needed: Es muss mindestens ein Projekt existieren, bevor ein Feed abonniert werden kann. select_feed_for_project: "Feed f\xC3\xBCr dieses Projekt ausw\xC3\xA4hlen" active_projects_wo_next: Aktive Projekte ohne ausstehende Aufgaben active_starred_actions: Alle markierten, aktiven Aufgaben - context_needed: Es muss mindestens ein Kontext existieren, bevor ein Feed abonniert werden kann. select_feed_for_context: "Feed f\xC3\xBCr diesen Kontext ausw\xC3\xA4hlen" projects_and_actions: Aktive Projekte und deren Aufgaben + context_needed: Es muss mindestens ein Kontext existieren, bevor ein Feed abonniert werden kann. notice_incomplete_only: "Hinweis: Alle Feeds zeigen nur Aufgaben, die noch nicht als erledigt markiert wurden." actions_due_next_week: "In den n\xC3\xA4chsten 7 Tagen oder fr\xC3\xBCher f\xC3\xA4llige Aufgaben" - plain_text_feed: Plain-Text-Feed - last_fixed_number: Die letzten %{number} Aufgaben all_actions: Alle Aufgaben actions_completed_last_week: In den letzten 7 Tagen abgeschlossene Aufgaben context_centric_actions: "Feeds f\xC3\xBCr unvollst\xC3\xA4ndige Aufgaben in einem bestimmten Kontext" + plain_text_feed: Plain-Text-Feed + last_fixed_number: Die letzten %{number} Aufgaben project_centric: "Feeds f\xC3\xBCr unvollst\xC3\xA4ndige Aufgaben in einem bestimmten Kontext" + users: + failed_to_delete_user: Löschen des Benutzers %{username} fehlgeschlagen + openid_url_verified: Die URL %{url} wurde erfolgreich als Identität verifiziert und Deine Authentifizierung auf OpenID umgestellt. + auth_type_update_error: "Beim Ändern der Authentifizierung trat ein Fehler auf: %{error_messages}" + successfully_deleted_user: Benutzer %{username} erfolgreich gelöscht. + destroy_successful: "Benutzer %{login} wurde erfolgreich gel\xC3\xB6scht" + total_contexts: Alle Kontexte + first_user_heading: "Willkommen bei TRACKS. Als erstes legen Sie bitte einen Administrator-Zugang an:" + new_token_generated: Neuer Token erfolgreich generiert + total_projects: Alle Projekte + signup_successful: Benutzer %{username} erfolgreich angelegt. + change_password_submit: "Passwort \xC3\xA4ndern" + no_signups_title: TRACKS::Anmeldung nicht erlaubt + user_created: Benutzer angelegt. + password_updated: Passwort aktualisiert. + account_signup: Accounteinrichtung + manage_users: Benutzer verwalten + desired_login: "Gew\xC3\xBCnschter Benutzername" + confirm_password: "Passwort best\xC3\xA4tigen" + signup: Registrieren + new_user_heading: "Einen neuen Benutzer anlegen:" + auth_type_updated: Authentifizierungs-Art erfolgreich geändert. + total_actions: Alle Aufgaben + destroy_error: "Beim L\xC3\xB6schen des Benutzers %{login} ist ein Fehler aufgetreten." + choose_password: "Passwort w\xC3\xA4hlen" + change_password_title: TRACKS::Passwort ändern + change_auth_type_title: TRACKS::Authentifizierungstyp ändern + change_password_prompt: "Gib dein neues Passwort in die unten stehenden Felder ein und klicke auf 'Passwort \xC3\xA4ndern' um dein altes Passwort durch das neue zu ersetzen." + password_confirmation_label: "Passwort best\xC3\xA4tigen" + label_auth_type: Authentifizierungsart + new_password_label: Neues Passwort + register_with_cas: Mit deinem CAS-Benutzernamen + new_user_title: TRACKS::Als Administrator anmelden + destroy_user: "Benutzer l\xC3\xB6schen" + total_users_count: Derzeit existieren %{count} Benutzer + destroy_confirmation: "Achtung: der Benutzer '%{login}' wird mit all seinen Aufgaben, Kontexten, Projekten und Notizen gel\xC3\xB6scht. Bist du sicher, dass du fortfahren m\xC3\xB6chtest?" + signup_new_user: Neuen Benutzer anlegen + change_authentication_type: "Authentifizierungsart \xC3\xA4ndern" + auth_change_submit: "Authentifizierungsart \xC3\xA4ndern" + identity_url: Identity-URL + openid_ok_pref_failed: Die URL %{url} wurde erfolgreich als Identität verifiziert, beim Speichern der Einstellungen trat jedoch ein Fehler auf. + total_notes: Alle Notizen + select_authentication_type: "W\xC3\xA4hle deine neue Authentifizierungsart und klicke 'Authentifizierungsart \xC3\xA4ndern' an, um deine aktuellen Einstellungen zu \xC3\xBCberschreiben." sidebar: list_name_active_contexts: Aktive Kontexte list_name_active_projects: Aktive Projekte @@ -691,73 +745,30 @@ de: list_name_completed_projects: Abgeschlossene Projekte list_name_hidden_projects: Versteckte Projekte list_name_hidden_contexts: Versteckte Kontexte - users: - successfully_deleted_user: Benutzer %{username} erfolgreich gelöscht. - first_user_heading: "Willkommen bei TRACKS. Als erstes legen Sie bitte einen Administrator-Zugang an:" - failed_to_delete_user: Löschen des Benutzers %{username} fehlgeschlagen - openid_url_verified: Die URL %{url} wurde erfolgreich als Identität verifiziert und Deine Authentifizierung auf OpenID umgestellt. - auth_type_update_error: "Beim Ändern der Authentifizierung trat ein Fehler auf: %{error_messages}" - destroy_successful: "Benutzer %{login} wurde erfolgreich gel\xC3\xB6scht" - total_contexts: Alle Kontexte - signup_successful: Benutzer %{username} erfolgreich angelegt. - new_token_generated: Neuer Token erfolgreich generiert - total_projects: Alle Projekte - user_created: Benutzer angelegt. - change_password_submit: "Passwort \xC3\xA4ndern" - no_signups_title: TRACKS::Anmeldung nicht erlaubt - password_updated: Passwort aktualisiert. - account_signup: Accounteinrichtung - manage_users: Benutzer verwalten - auth_type_updated: Authentifizierungs-Art erfolgreich geändert. - total_actions: Alle Aufgaben - signup: Registrieren - desired_login: "Gew\xC3\xBCnschter Benutzername" - confirm_password: "Passwort best\xC3\xA4tigen" - new_user_heading: "Einen neuen Benutzer anlegen:" - change_auth_type_title: TRACKS::Authentifizierungstyp ändern - change_password_prompt: "Gib dein neues Passwort in die unten stehenden Felder ein und klicke auf 'Passwort \xC3\xA4ndern' um dein altes Passwort durch das neue zu ersetzen." - password_confirmation_label: "Passwort best\xC3\xA4tigen" - destroy_error: "Beim L\xC3\xB6schen des Benutzers %{login} ist ein Fehler aufgetreten." - choose_password: "Passwort w\xC3\xA4hlen" - change_password_title: TRACKS::Passwort ändern - label_auth_type: Authentifizierungsart - new_password_label: Neues Passwort - register_with_cas: Mit deinem CAS-Benutzernamen - total_users_count: Derzeit existieren %{count} Benutzer - new_user_title: TRACKS::Als Administrator anmelden - destroy_user: "Benutzer l\xC3\xB6schen" - destroy_confirmation: "Achtung: der Benutzer '%{login}' wird mit all seinen Aufgaben, Kontexten, Projekten und Notizen gel\xC3\xB6scht. Bist du sicher, dass du fortfahren m\xC3\xB6chtest?" - signup_new_user: Neuen Benutzer anlegen - change_authentication_type: "Authentifizierungsart \xC3\xA4ndern" - identity_url: Identity-URL - auth_change_submit: "Authentifizierungsart \xC3\xA4ndern" - openid_ok_pref_failed: Die URL %{url} wurde erfolgreich als Identität verifiziert, beim Speichern der Einstellungen trat jedoch ein Fehler auf. - select_authentication_type: "W\xC3\xA4hle deine neue Authentifizierungsart und klicke 'Authentifizierungsart \xC3\xA4ndern' an, um deine aktuellen Einstellungen zu \xC3\xBCberschreiben." - total_notes: Alle Notizen contexts: delete_context_title: Kontext löschen hide_form: Formular verstecken show_form_title: Neuen Kontext erstellen delete_context_confirmation: Soll der Kontext '%{name}' wirklich gelöscht werden? Alle (wiederholenden) Aufgaben dieses Kontexts werden hierdurch ebenfalls gelöscht. delete_context: Kontext löschen - edit_context: Kontext bearbeiten hide_form_title: Formular für neuen Kontext verstecken + edit_context: Kontext bearbeiten + no_contexts_active: Derzeit gibt es keine aktiven Kontexte context_hide: Auf Startseite ausblenden? hidden_contexts: Versteckte Kontexte - no_contexts_active: Derzeit gibt es keine aktiven Kontexte - visible_contexts: Sichtbare Kontexte show_form: Neuen Kontext erstellen + visible_contexts: Sichtbare Kontexte save_status_message: Kontext gespeichert add_context: "Kontext hinzuf\xC3\xBCgen" context_name: Kontextname update_status_message: "Kontextname wurde ge\xC3\xA4ndert" - status_active: Kontext ist aktiv new_context_post: "' wird ebenfalls angelegt. Fortfahren?" + status_active: Kontext ist aktiv + no_actions: "Momentan gibt es keine unvollst\xC3\xA4ndigen Aufgaben in diesem Kontext" last_completed_in_context: in diesem Kontext (letzte %{number}) context_deleted: "Gel\xC3\xB6schter Kontext '%{name}'" no_contexts_hidden: Derzeit gibt es keine versteckten Kontexte new_context_pre: Der neue Kontext ' - no_actions: "Momentan gibt es keine unvollst\xC3\xA4ndigen Aufgaben in diesem Kontext" status_hidden: Kontext ist versteckt datetime: prompts: @@ -807,23 +818,23 @@ de: login: openid_identity_url_not_found: "Sorry, aber es existiert kein Benutzer mit der Identit\xC3\xA4ts-URL (%{identity_url})" user_no_expiry: Angemeldet bleiben - login_cas: zum CAS gehen sign_in: Anmeldung + login_cas: zum CAS gehen + cas_login: CAS-Anmeldung + successful_with_session_info: "Anmeldung erfolgreich:" please_login: Bitte melde dich an, um Tracks zu nutzen cas_logged_in_greeting: Hallo, %{username}! Du bist authentifiziert. cas_no_user_found: Hallo, %{username}! Du hast leider keinen Tracks-Account. - cas_login: CAS-Anmeldung - successful_with_session_info: "Anmeldung erfolgreich:" cas_username_not_found: Sorry, aber es existiert kein Benutzer mit dem CAS-Benutzernamen (%{username}) - cas_create_account: "Wenn du die Anfrage fortsetzen m\xC3\xB6chtest, klicke bitte hier: %{signup_link}" mobile_use_openid: "\xE2\x80\xA6oder mit einer OpenID anmelden" + cas_create_account: "Wenn du die Anfrage fortsetzen m\xC3\xB6chtest, klicke bitte hier: %{signup_link}" cas_signup_link: Account beantragen account_login: Account-Anmeldung - successful: "Anmeldung erfolgreich. Willkommen zur\xC3\xBCck!" session_will_not_expire: Sitzung wird nicht ablaufen. - session_time_out: Sitzung abgelaufen. Bitte %{link} + successful: "Anmeldung erfolgreich. Willkommen zur\xC3\xBCck!" session_will_expire: "Sitzung wird nach %{hours} Stunde(n) der Inaktivit\xC3\xA4t ablaufen." option_separator: oder, + session_time_out: Sitzung abgelaufen. Bitte %{link} login_standard: "zur\xC3\xBCck zum Standard-Login" login_with_openid: Mit einer OpenID anmelden unsuccessful: Anmeldung war nicht erfolgreich. diff --git a/config/locales/en.yml b/config/locales/en.yml index cb2af2f3..2876bc9f 100644 --- a/config/locales/en.yml +++ b/config/locales/en.yml @@ -23,6 +23,23 @@ en: mobile_todos_per_page: "Actions per page (Mobile View)" sms_email: "From email" sms_context: "Default email context" + show_hidden_projects_in_sidebar: "Show hidden projects in sidebar" + show_hidden_contexts_in_sidebar: "Show hidden contexts in sidebar" + date_format: Date format + staleness_starts: "Start of staleness" + sms_context: Default email context + verbose_action_descriptors: "Verbose action descriptors" + mobile_todos_per_page: Actions per page (Mobile View) + show_number_completed: "Show number of completed actions" + title_date_format: "Title date format" + refresh: Refresh interval (in minutes) + week_starts: Week starts on + due_style: "Due style" + time_zone: "Time zone" + locale: Locale + sms_email: From email + show_project_on_todo_done: Go to project page on completing todo + show_completed_projects_in_sidebar: "Show completed projects in sidebar" models: project: feed_title: "Tracks Projects" diff --git a/config/locales/nl.yml b/config/locales/nl.yml index 4d3882b5..e5cd3470 100644 --- a/config/locales/nl.yml +++ b/config/locales/nl.yml @@ -23,25 +23,19 @@ nl: separator: "," delimiter: . - integrations: - opensearch_description: Zoek in Tracks - applescript_next_action_prompt: "Omschrijving van de actie:" - gmail_description: Gadget om Tracks toe te voegen aan Gmail als een gadget - applescript_success_after_id: gemaakt - applescript_success_before_id: Nieuwe actie met ID common: back: Terug third: Derde actions: Acties add: Toevoegen - logout: Log uit go_back: Ga terug + logout: Log uit cancel: Annuleer none: Geen second: Tweede optional: optioneel - notes: Notities forum: Forum + notes: Notities server_error: Een fout heeft op de server plaatsgevonden projects: Projecten last: Laatste @@ -49,74 +43,80 @@ nl: project: Project contribute: Bijdragen ok: Ok - website: Website first: Eerste + website: Website numbered_step: Stap %{number} + fourth: Vierde sort: by_task_count_title: Sorteer op aantal acties by_task_count_title_confirm: Weet u zeker dat u deze op aantal acties wilt sorteren? Dat zal de huidige sorteervolgorde aanpassen. alphabetically: Alfabetisch - alphabetically_confirm: Weet u zeker dat u deze projecten alfabetisch wilt sorteren? Dat zal de huidige sorteervolgorde aanpassen. sort: Sorteer + alphabetically_confirm: Weet u zeker dat u deze projecten alfabetisch wilt sorteren? Dat zal de huidige sorteervolgorde aanpassen. alphabetically_title: Sorteer projecten alfabetisch by_task_count: Op aantal acties - fourth: Vierde - create: Maken drag_handle: SLEEP - context: Context + create: Maken errors_with_fields: Er waren problemen met de volgende velden + context: Context description: Beschrijving contexts: Contexten + wiki: Wiki update: Bijwerken bugs: Fouten - wiki: Wiki ajaxError: Er is een fout opgetreden bij het ophalen van gegevens van de server - email: E-mail search: Zoeken + email: E-mail layouts: toggle_notes: Toggle notities next_actions_rss_feed: RSS-feed van de acties toggle_notes_title: Toggle alle notities mobile_navigation: logout: Afmelden - feeds: Feeds new_action: 0-Nieuwe actie + feeds: Feeds starred: 4-Ster projects: 3-Projecten tickler: Tickler contexts: 2-Contexten home: 1-Start navigation: + api_docs: REST API Docs manage_users_title: Toevoegen of verwijderen gebruikers recurring_todos: Terugkerende acties - api_docs: REST API Docs feeds: Feeds + stats: Statistieken starred: Ster notes_title: Toon alle notities - stats: Statistieken tickler_title: Tickler manage_users: Beheren gebruikers export_title: Import en export van gegevens integrations_: Integreer Tracks preferences: Voorkeuren - calendar_title: Kalender met acties met deadline feeds_title: Zie een lijst met beschikbare feeds - recurring_todos_title: Beheren terugkerende acties - completed_tasks: Gereed - stats_title: Zie je statistieken + calendar_title: Kalender met acties met deadline home_title: Start starred_title: Zie je ster acties + recurring_todos_title: Beheren terugkerende acties + completed_tasks: Gereed tickler: Tickler + stats_title: Zie je statistieken organize: Organiseer view: Bekijk completed_tasks_title: Afgerond export: Export home: Start contexts_title: Contexten - projects_title: Projecten - calendar: Agenda preferences_title: Toon mijn voorkeuren + calendar: Agenda + projects_title: Projecten search: Zoeken in alle items + integrations: + opensearch_description: Zoek in Tracks + gmail_description: Gadget om Tracks toe te voegen aan Gmail als een gadget + applescript_next_action_prompt: "Omschrijving van de actie:" + applescript_success_after_id: gemaakt + applescript_success_before_id: Nieuwe actie met ID data: import_successful: De import was succesvol import_errors: Er hebben zich fouten voorgedaan bij de import @@ -152,10 +152,10 @@ nl: show_hidden_projects_in_sidebar: Toon verborgen projecten in sidebar show_hidden_contexts_in_sidebar: Toon verborgen contexten in sidebar date_format: Datum formaat - sms_context: Standaard context voor email - staleness_starts: Begin van markeren openstaande actie - verbose_action_descriptors: Context en project uitschrijven in actielijst mobile_todos_per_page: Acties per pagina (mobiel) + staleness_starts: Begin van markeren openstaande actie + sms_context: Standaard context voor email + verbose_action_descriptors: Context en project uitschrijven in actielijst show_number_completed: Aantal te tonen afgeronde acties title_date_format: Datum formaat in titel refresh: Ververs interval (in minuten) @@ -187,8 +187,8 @@ nl: exclusion: is gereserveerd odd: moet oneven zijn too_short: is te kort (minimum is %{count} karakters) - empty: mag niet leeg zijn wrong_length: heeft de verkeerde lengte (moet %{count} karakters lang zijn) + empty: mag niet leeg zijn even: moet even zijn less_than: moet kleiner zijn dan %{count} greater_than: moet groter zijn dan %{count} @@ -208,26 +208,26 @@ nl: stats: tag_cloud_title: Tag Cloud voor alle acties tag_cloud_description: Deze tag cloud bevat tags van alle acties (afgerond, niet voltooid, zichtbaar en / of verborgen) - actions: Acties tag_cloud_90days_title: Tag cloud met acties in afgelopen 90 dagen + actions: Acties totals_active_project_count: Van deze zijn %{count} actieve projecten - totals_first_action: Sinds uw eerste actie op %{date} actions_avg_completion_time: Van al uw afgeronde acties, de gemiddelde tijd dat dit in beslag nam is %{count} dagen. actions_last_year_legend: number_of_actions: Aantal acties months_ago: Maanden geleden - actions_dow_30days_title: Dag van de week (laatste 30 dagen) + totals_first_action: Sinds uw eerste actie op %{date} + current_running_time_of_incomplete_visible_actions: Huidige looptijd van onvolledige zichtbare acties + totals_deferred_actions: waarvan %{count} uitgestelde acties in de tickler zijn legend: - actions: Acties number_of_days: Aantal dagen geleden + actions: Acties number_of_actions: Aantal acties day_of_week: Dag van de week percentage: Percentage running_time: Looptijd van een actie (weken) months_ago: Maanden geleden - totals_deferred_actions: waarvan %{count} uitgestelde acties in de tickler zijn totals_action_count: u heeft een totaal van %{count} acties - current_running_time_of_incomplete_visible_actions: Huidige looptijd van onvolledige zichtbare acties + actions_dow_30days_title: Dag van de week (laatste 30 dagen) running_time_legend: actions: Acties percentage: Percentage @@ -240,45 +240,46 @@ nl: actions_avg_completed_30days: en voltooide een gemiddelde van %{count} acties per dag. top5_contexts: Top 5 contexten action_completion_time_title: Doorlooptijd (alle voltooide acties) - projects: Projecten actions_last_year: Acties in de afgelopen jaren + projects: Projecten totals_context_count: U heeft %{count} contexten. totals_visible_context_count: Van deze zijn %{count} zichtbare contexten totals_blocked_actions: "%{count} zijn afhankelijk van de voltooiing van hun acties." - actions_min_completion_time: De minimale tijd tot afronding is %{time}. + actions_min_max_completion_days: De max-/minimum dagen tot voltooiing is %{min}/%{max}. tags: Tags + actions_min_completion_time: De minimale tijd tot afronding is %{time}. no_tags_available: geen tags beschikbaar actions_day_of_week_title: Dag van de week (alle acties) totals_project_count: U heeft %{count} projecten. - actions_min_max_completion_days: De max-/minimum dagen tot voltooiing is %{min}/%{max}. more_stats_will_appear: Meer statistieken zullen hier verschijnen zodra u acties hebt toegevoegd. - actions_30days_title: Acties in de afgelopen 30 dagen - running_time_all: Huidige looptijd van alle onvolledige acties - tod30: Tijd van de dag (laatste 30 dagen) - totals_tag_count: U heeft %{count} tags geplaatst op acties. - top5_visible_contexts_with_incomplete_actions: Top 5 zichtbare contexten met onvolledige acties totals_hidden_project_count: "%{count} zijn verborgen" - time_of_day: Tijd van de dag (alle acties) - tag_cloud_90days_description: Deze tag cloud bevat tags van acties die zijn gemaakt of voltooid in de afgelopen 90 dagen. + tod30: Tijd van de dag (laatste 30 dagen) + actions_30days_title: Acties in de afgelopen 30 dagen actions_further: en verder - other_actions_label: (anderen) - actions_avg_created: In de afgelopen 12 maanden heeft u gemiddeld%{count} acties aangemaakt - spread_of_running_actions_for_visible_contexts: Verdeling van actieve acties voor zichtbare contexten - actions_selected_from_week: Gekozen acties van week + time_of_day: Tijd van de dag (alle acties) + totals_tag_count: U heeft %{count} tags geplaatst op acties. + running_time_all: Huidige looptijd van alle onvolledige acties + top5_visible_contexts_with_incomplete_actions: Top 5 zichtbare contexten met onvolledige acties + tag_cloud_90days_description: Deze tag cloud bevat tags van acties die zijn gemaakt of voltooid in de afgelopen 90 dagen. + top10_projects_30days: Top 10 project in de laatste 30 dagen + click_to_return: Klik %{link} om terug te keren naar de statistieken pagina. totals_completed_project_count: en %{count} zijn afgeronde projecten. click_to_show_actions_from_week: Klik %{link} om de acties van week %{week} en verder te zien. - spread_of_actions_for_all_context: Verdeling van acties voor alle contexten - click_to_return: Klik %{link} om terug te keren naar de statistieken pagina. + spread_of_running_actions_for_visible_contexts: Verdeling van actieve acties voor zichtbare contexten + other_actions_label: (anderen) top10_projects: Top 10 projecten - top10_projects_30days: Top 10 project in de laatste 30 dagen + spread_of_actions_for_all_context: Verdeling van acties voor alle contexten + actions_selected_from_week: Gekozen acties van week + actions_avg_created: In de afgelopen 12 maanden heeft u gemiddeld%{count} acties aangemaakt time_of_day_legend: number_of_actions: Aantal acties time_of_day: Tijd van de dag click_to_return_link: hier totals_hidden_context_count: en %{count} zijn verborgen contexten. actions_avg_completed: en voltooide een gemiddelde van %{count} acties per maand. - totals: Totalen contexts: Contexten + totals: Totalen + no_actions_selected: Er zijn geen acties geselecteerd. running_time_all_legend: actions: Acties percentage: Percentage @@ -290,7 +291,6 @@ nl: avg_created: Gem gemaakt avg_completed: Gem afgerond created: Gemaakt - no_actions_selected: Er zijn geen acties geselecteerd. click_to_update_actions: Klik op een balk in de grafiek op de acties hieronder aan te passen. tod30_legend: number_of_actions: Aantal acties @@ -298,16 +298,16 @@ nl: action_selection_title: "TRACKS:: Actie selectie" actions_actions_avg_created_30days: In de afgelopen 30 dagen heeft u gemiddeld %{count} acties gemaakt todos: - recurring_action_deleted: Actie werd verwijderd. Omdat deze actie herhalend is. werd een nieuwe actie toegevoegd show_from: Toon vanaf error_starring_recurring: Kon niet de ster van deze terugkerende actie niet omgezetten \'%{description}\' + recurring_action_deleted: Actie werd verwijderd. Omdat deze actie herhalend is. werd een nieuwe actie toegevoegd completed_actions: Voltooide acties completed_recurring: Afgesloten terugkerende todos added_new_next_action: Nieuwe actie toegevoegd blocked_by: Geblokkeerd door %{predecessors} + defer_date_after_due_date: Uitsteldatum is na de vervaldag. Gelieve vervaldag bewerken alvorens uitsteldatum aan te passen. star_action: Markeer deze actie met een ster completed_recurrence_completed: Er is geen actie na de terugkerende actie die u new verwijderd heeft. De herhaling is voltooid - defer_date_after_due_date: Uitsteldatum is na de vervaldag. Gelieve vervaldag bewerken alvorens uitsteldatum aan te passen. unable_to_add_dependency: Niet in staat om de afhankelijkheid toe te voegen done: Voltooid? star_action_with_description: markeer de actie '%{description}' met een ster @@ -315,65 +315,65 @@ nl: completed: Afgerond no_deferred_actions_with: Geen uitgestelde acties met de tag '%{tag_name}' no_hidden_actions: Momenteel zijn er geen verborgen acties gevonden - edit_action_with_description: Bewerk de actie '%{description}' action_due_on: (deadline actie op %{date}) - action_deleted_success: Actie succesvol verwijderd + edit_action_with_description: Bewerk de actie '%{description}' archived_tasks_title: "TRACKS:: Gearchiveerde voltooide taken" remove_dependency: Verwijder afhankelijkheid (zal niet de actie zelf verwijderen) list_incomplete_next_actions: Toon onvoltooide acties + action_deleted_success: Actie succesvol verwijderd tags: Tags (gescheiden door komma's) new_related_todo_created: Een nieuwe actie is toegevoegd, die behoort bij deze terugkerende todo context_changed: Context veranderd in '%{name}' mobile_todos_page_title: Alle acties add_another_dependency: Nog een afhankelijkheid toevoegen delete_recurring_action_title: Verwijder de terugkerende actie - removed_predecessor: "'%{successor}' is verwijderd als afhankelijkheid van '%{predecessor}'." recurring_actions_title: TRACKS::Terugkerende acties + removed_predecessor: "'%{successor}' is verwijderd als afhankelijkheid van '%{predecessor}'." next_action_needed: U dient ten minste een actie in te vullen - action_saved: Actie opgeslagen scheduled_overdue: Gepland om %{days} dagen geleden te tonen + action_saved: Actie opgeslagen action_deleted_error: Verwijderen van de actie is mislukt edit_action: Actie bewerken added_new_context: Nieuwe context toegevoegd next_actions_description: "Filter:" + list_incomplete_next_actions_with_limit: Toont de laatste %{count} onvoltooide acties + set_to_pending: "'%{task}' als wachtend ingesteld" + added_new_project: Nieuw project toegevoegd next_actions_title_additions: completed: acties voltooid due_today: deadline vandaag due_within_a_week: deadline binnen een week - added_new_project: Nieuw project toegevoegd - list_incomplete_next_actions_with_limit: Toont de laatste %{count} onvoltooide acties - set_to_pending: "'%{task}' als wachtend ingesteld" older_completed_items: Oudere voltooide items append_in_this_project: in dit project error_deleting_item: Er is een fout opgetreden bij het verwijderen van het item '%{description}' task_list_title: TRACKS::Toon acties no_actions_due_this_week: Geen acties met deadline in rest van deze week - no_recurring_todos: Momenteel zijn er geen terugkerende acties + delete_recurring_action_confirm: Weet u zeker dat u wilt de terugkerende actie '%{description}' wilt verwijderen? error_completing_todo: Er was een fout bij het voltooien / activeren van de terugkerende actie '%{description}' + no_recurring_todos: Momenteel zijn er geen terugkerende acties convert_to_project: Maak project no_deferred_pending_actions: Momenteel zijn er geen uitgestelde of wachtende acties - delete_recurring_action_confirm: Weet u zeker dat u wilt de terugkerende actie '%{description}' wilt verwijderen? completed_last_day: Voltooid in de laatste 24 uur - completed_more_than_x_days_ago: Voltooid meer dan %{count} dagen geleden no_project: -- Geen project -- show_in_days: Toon over %{days} dagen error_saving_recurring: Er is een fout opgetreden het opslaan van de terugkerende actie '%{description}' + completed_more_than_x_days_ago: Voltooid meer dan %{count} dagen geleden new_related_todo_created_short: een nieuwe actie gemaakt feed_title_in_context: in context '%{context}' older_than_days: Ouder dan %{count} dagen edit: Bewerken pending: Wachtend completed_actions_with: Afgeronde acties met de tag %{tag_name} - deleted_success: De actie werd met succes verwijderd. completed_tasks_title: TRACKS::Voltooide taken + deleted_success: De actie werd met succes verwijderd. feed_title_in_project: In het project '%{project}' clear_due_date: Maak deadline leeg error_removing_dependency: Er is een fout opgetreden het verwijderen van de afhankelijke actie hidden_actions: Verborgen acties + deferred_actions_with: Uitgestelde acties met de tag '%{tag_name}' was_due_on_date: had deadline op %{date} show_on_date: Toon op %{date} recurrence_period: Herhaling periode - deferred_actions_with: Uitgestelde acties met de tag '%{tag_name}' confirm_delete: Weet u zeker dat u de actie '%{description}' wilt verwijderen? recurring_deleted_success: De recurrente actie is succesvol verwijderd. next_actions_title: Tracks - Acties @@ -384,8 +384,8 @@ nl: calendar_page_title: TRACKS::Agenda in_hidden_state: in verborgen toestand unresolved_dependency: De waarde die u ingevoerd heeft in het afhankelijkheden veld is niet herleidbaar naar een bestaande actie. Deze waarde wordt niet bewaard met de rest van de actie. Doorgaan? - no_actions_found_title: Geen acties gevonden show_today: Toon vandaag + no_actions_found_title: Geen acties gevonden completed_last_x_days: Voltooid in de laatste %{count} dagen no_actions_with: Momenteel zijn er geen onvoltooide acties met de tag '%{tag_name}' defer_x_days: @@ -406,16 +406,16 @@ nl: delete: Verwijder drag_action_title: Sleep naar een andere actie om deze afhankelijk te maken van die actie cannot_add_dependency_to_completed_todo: Kan deze actie niet als een afhankelijkheid van een voltooide actie toevoegen! - action_marked_complete: De actie '%{description}' werd gemarkeerd als %{completed} depends_on: Hangt af van tickler_items_due: one: Een tickler item wordt nu zichtbaar - vernieuw de pagina om het te zien. other: "%{count} tickerl items zijn nu zichtbaar - vernieuw de pagina om ze te zien." - new_related_todo_not_created_short: een nieuwe actie is niet gemaakt + action_marked_complete: De actie '%{description}' werd gemarkeerd als %{completed} completed_today: one: U heeft een actie tot nu toe vandaag voltooid. other: U heeft %{count} acties tot nu toe vandaag voltooid. added_new_next_action_plural: Nieuwe acties toegevoegd + new_related_todo_not_created_short: een nieuwe actie is niet gemaakt calendar: get_in_ical_format: Ontvang deze agenda in iCal-formaat due_next_week: Deadline volgende week @@ -429,7 +429,6 @@ nl: no_actions_due_this_month: Geen acties met deadline in de rest van deze maand error_starring: Kon niet de ster van deze actie niet omzetten \'%{description}\' show_tomorrow: Toon morgen - added_dependency: "%{dependency} als afhankelijkheid toegevoegd." recurrence: ends_on_date: Eindigt op %{date} every_work_day: Elke werkdag @@ -438,27 +437,28 @@ nl: weekly_options: Instellingen voor de wekelijkse terugkerende acties monthly_options: Instellingen voor maandelijks terugkerende acties weekly: Wekelijks - starts_on: Begint op daily_options: Instellingen voor dagelijks terugkerende acties monthly: Maandelijks + starts_on: Begint op daily: Dagelijks show_option_always: altijd yearly_every_x_day: Elke %{month} %{day} recurrence_on_options: Stel herhaling in op daily_every_number_day: Elke %{number} dag(en) + ends_on: Eindigt op weekly_every_number_week: Herhaalt elke %{number} weken op show_options: Toon de actie - ends_on: Eindigt op + no_end_date: Geen einddatum day_x_on_every_x_month: Dag %{day} op elke %{month} maand yearly_options: Instellingen voor jaarlijks terugkerende acties - show_days_before: "%{days} dagen v\xC3\xB3\xC3\xB3r de deadline van actie" yearly_every_xth_day: De %{day} %{day_of_week} van %{month} + show_days_before: "%{days} dagen v\xC3\xB3\xC3\xB3r de deadline van actie" from_tickler: de datum dat de actie uit de tickler komt (geen deadline ingesteld) - no_end_date: Geen einddatum yearly: Jaarlijks monthly_every_xth_day: De %{day} %{day_of_week} van elke %{month} maand tagged_page_title: TRACKS::Tagged met '%{tag_name}' no_completed_recurring: Momenteel zijn er geen voltooide terugkerende acties + added_dependency: "%{dependency} als afhankelijkheid toegevoegd." no_deferred_actions: Momenteel zijn er geen uitgestelde acties. recurrence_completed: Er is geen volgende actie na de terugkerende actie die u zojuist hebt voltooid. De herhaling is voltooid no_actions_found: Momenteel zijn er geen onafgeronde acties. @@ -466,8 +466,9 @@ nl: error_toggle_complete: Kon deze actie niet als afgerond markeren due: Deadline action_marked_complete_error: De actie '%{description}' is niet gemarkeerd als %{completed} vanwege een fout op de server. - action_saved_to_tickler: Actie opgeslagen in tickler + add_new_recurring: Voeg een nieuwe terugkerende actie toe recurring_action_saved: Terugkerende actie opgeslagen + action_saved_to_tickler: Actie opgeslagen in tickler depends_on_separate_with_commas: Afhankelijk van (gescheiden door komma's) completed_in_archive: one: Er is een voltooide actie in het archief. @@ -478,7 +479,6 @@ nl: due_date: met een deadline %{due_date} of eerder overdue: Achterstallig no_incomplete_actions: Er zijn geen onvoltooide acties - add_new_recurring: Voeg een nieuwe terugkerende actie toe notes: delete_note_title: Verwijder de notitie '%{id}' delete_confirmation: Weet u zeker dat u de notitie '%{id}' wilt verwijderen? @@ -488,58 +488,67 @@ nl: deleted_note: Verwijder notitie '%{id}' note_location_link: "In:" edit_item_title: Item bewerken - no_notes_available: "Momenteel zijn er geen notities: voeg notities toe aan projecten vanaf de individuele project pagina's." note_header: Notitie %{id} + no_notes_available: "Momenteel zijn er geen notities: voeg notities toe aan projecten vanaf de individuele project pagina's." delete_note_confirm: Weet u zeker dat u de notitie '%{id}' wilt verwijderen? projects: + default_context_set: Stel project standaard context in op %{default_context} + no_actions_in_project: Momenteel zijn er geen onafgeronde acties in dit project deferred_actions: Uitgestelde acties voor dit project was_marked_hidden: is gemarkeerd als verborgen edit_project_title: Bewerk project default_tags_removed_notice: De standaard tags zijn verwijderd - default_context_set: Stel project standaard context in op %{default_context} - no_actions_in_project: Momenteel zijn er geen onafgeronde acties in dit project - hide_form: Verberg formulier page_title: "TRACKS:: Project: %{project}" - deferred_actions_empty: Er zijn geen uitgestelde acties voor dit project + hide_form: Verberg formulier this_project: Dit project project_state: Project is %{state}. show_form_title: Maak een nieuw project to_new_project_page: Ga naar de nieuwe projectpagina no_notes_attached: Momenteel zijn er geen notities toegevoegd aan dit project - todos_append: in dit project + deferred_actions_empty: Er zijn geen uitgestelde acties voor dit project notes: Notities + todos_append: in dit project hide_form_title: Verberg nieuw project formulier notes_empty: Er zijn geen notities voor dit project no_projects: Momenteel zijn er geen projecten - completed_actions_empty: Er zijn nog geen afgeronde acties voor dit project with_no_default_context: zonder standaard context delete_project: Project verwijderen - delete_project_confirmation: Weet u zeker dat u wilt het project '%{name} wilt verwijderen? - with_default_context: met een standaard context '%{context_name}' + completed_actions_empty: Er zijn nog geen afgeronde acties voor dit project show_form: Toevoegen van een project actions_in_project_title: Acties in dit project - set_default_tags_notice: Stel project standaard tags in op %{default_tags} + delete_project_confirmation: Weet u zeker dat u wilt het project '%{name} wilt verwijderen? + with_default_context: met een standaard context '%{context_name}' settings: Instellingen - completed_projects: Voltooide projecten add_note: Een notitie toevoegen - is_active: is actief - add_project: Voeg project toe - project_saved_status: Project opgeslagen with_default_tags: en met '%{tags}' als de standaard tags + is_active: is actief + completed_projects: Voltooide projecten + add_project: Voeg project toe list_projects: "TRACKS:: Overzicht van projecten" + set_default_tags_notice: Stel project standaard tags in op %{default_tags} + project_saved_status: Project opgeslagen hidden_projects: Verborgen projecten delete_project_title: Verwijder het project was_marked_complete: is gemarkeerd als voltooid completed_actions: Afgeronde acties voor dit project default_context_removed: Standaard context verwijderd add_note_submit: Notitie toevoegen - edit_project_settings: Bewerk project instellingen - active_projects: Actieve projecten status_project_name_changed: Naam van het project werd gewijzigd + active_projects: Actieve projecten no_default_context: Dit project heeft geen standaard context with_no_default_tags: en zonder standaard tags default_context: De standaard context voor dit project is %{context} state: Dit project is %{state} + edit_project_settings: Bewerk project instellingen + states: + hidden_plural: Verborgen + completed: Afgerond + completed_plural: Afgeronde + visible_plural: Zichtbare + active_plural: Actieve + visible: Zichtbaar + hidden: Verborgen + active: Actief time: am: ochtend formats: @@ -548,28 +557,21 @@ nl: short: "%d %B %H:%M" long: "%A, %d. %B %Y, %H:%M" pm: middag - states: - hidden_plural: Verborgen - completed: Afgerond - completed_plural: Afgeronde - visible_plural: Zichtbare - visible: Zichtbaar - active_plural: Actieve - active: Actief - hidden: Verborgen + errors: + user_unauthorized: "401 Unauthorized: Alleen administratieve gebruikers mogen deze functie gebruiken." preferences: - open_id_url: Uw OpenID URL is change_identity_url: Verander uw Identity URL - staleness_starts_after: Ophopen begint na %{days} dagen + open_id_url: Uw OpenID URL is + staleness_starts_after: Markeren openstaande acties begint na %{days} dagen change_password: Wijzig uw wachtwoord page_title: "TRACKS:: Voorkeuren" title: Uw voorkeuren token_description: Token (voor feeds en API gebruik) show_number_completed: Toon %{number} voltooide items is_false: Nee - is_true: Ja edit_preferences: Voorkeuren bewerken page_title_edit: "TRACKS:: Voorkeuren bewerken" + is_true: Ja sms_context_none: Geen generate_new_token: Genereer een nieuwe token token_header: Uw token @@ -577,8 +579,6 @@ nl: authentication_header: Uw authenticatie current_authentication_type: Uw authenticatietype is %{auth_type} generate_new_token_confirm: Weet u dit zeker? Het genereren van een nieuw token zal de bestaande te vervangen en dit zal het extern gebruiken van de oude token laten mislukken. - errors: - user_unauthorized: "401 Unauthorized: Alleen administratieve gebruikers mogen deze functie gebruiken." date: month_names: - @@ -640,20 +640,6 @@ nl: two_words_connector: en select: prompt: Selecteer - shared: - multiple_next_actions: Meerdere acties (een op elke regel) - toggle_single: Voeg een actie toe - hide_form: Verberg formulier - add_action: Actie toevoegen - add_actions: Toevoegen acties - tags_for_all_actions: Tags voor alle acties (scheiden met een komma) - context_for_all_actions: Context voor alle acties - toggle_multi: Voeg meerdere acties toe - toggle_single_title: Voeg een nieuwe actie toe - project_for_all_actions: Project voor alle acties - separate_tags_with_commas: gescheiden door komma's - toggle_multi_title: Toggle single / multi actie formulier - hide_action_form_title: Verberg nieuwe actie formulier dates: month_names: - Januari @@ -678,6 +664,20 @@ nl: - Zaterdag footer: send_feedback: Stuur reactie op %{version} + shared: + multiple_next_actions: Meerdere acties (een op elke regel) + toggle_single: Voeg een actie toe + hide_form: Verberg formulier + add_action: Actie toevoegen + add_actions: Toevoegen acties + tags_for_all_actions: Tags voor alle acties (scheiden met een komma) + toggle_single_title: Voeg een nieuwe actie toe + project_for_all_actions: Project voor alle acties + context_for_all_actions: Context voor alle acties + toggle_multi: Voeg meerdere acties toe + separate_tags_with_commas: gescheiden door komma's + toggle_multi_title: Toggle single / multi actie formulier + hide_action_form_title: Verberg nieuwe actie formulier feedlist: choose_context: Kies de context waar je een feed van wilt actions_due_today: Acties die vandaag of eerder af moeten @@ -685,66 +685,66 @@ nl: all_contexts: Alle contexten rss_feed: RSS Feed ical_feed: iCal feed - all_projects: Alle projecten choose_project: Kies het project waar je een feed van wilt + all_projects: Alle projecten project_needed: "Er moet ten minste \xC3\xA9\xC3\xA9n project zijn voor een feed opgevraagd kan worden" select_feed_for_project: Kies de feed voor dit project active_projects_wo_next: Actieve projecten zonder acties active_starred_actions: Alle gesterde, actieve acties - context_needed: "Er moet eerst ten minste \xC3\xA9\xC3\xA9n context zijn voor je een feed kan opvragen" select_feed_for_context: Kies de feed voor deze context projects_and_actions: Actieve projecten met hun acties + context_needed: "Er moet eerst ten minste \xC3\xA9\xC3\xA9n context zijn voor je een feed kan opvragen" notice_incomplete_only: "Merk op: alle feeds laten alleen acties zien die niet afgerond zijn, tenzij anders vermeld." actions_due_next_week: Acties die binnen 7 dagen afgerond moeten - plain_text_feed: Reguliere tekst feed - last_fixed_number: Laatste %{number} acties all_actions: Alle acties actions_completed_last_week: Acties afgerond in de afgelopen 7 dagen context_centric_actions: Feeds voor onafgeronde acties in een specifieke context + plain_text_feed: Reguliere tekst feed + last_fixed_number: Laatste %{number} acties project_centric: Feeds voor onafgeronde acties in een specifiek project users: - successfully_deleted_user: Succesvol gebruiker %{username} verwijderd - first_user_heading: "Welkom bij TRACKS. Om te beginnen, maak dan een admin account:" failed_to_delete_user: Mislukt de gebruiker %{username} te verwijderen openid_url_verified: Je hebt %{url} met succes geverifieerd als je identiteit en uw authenticatie type OpenID opgeslagen. auth_type_update_error: "Er was een probleem met het bijwerken van uw authenticatietype: %{error_messages}" + successfully_deleted_user: Succesvol gebruiker %{username} verwijderd destroy_successful: Gebruiker %{login} met succes verwijderd total_contexts: Totaal aantal contexten - signup_successful: Aanmelding succesvol voor gebruiker %{username}. + first_user_heading: "Welkom bij TRACKS. Om te beginnen, maak dan een admin account:" new_token_generated: Nieuwe token met succes gegenereerd total_projects: Totaal aantal projecten - user_created: Gebruiker aangemaakt. + signup_successful: Aanmelding succesvol voor gebruiker %{username}. change_password_submit: Wachtwoord wijzigen no_signups_title: "TRACKS:: Geen nieuwe aanmeldingen" + user_created: Gebruiker aangemaakt. password_updated: Wachtwoord bijgewerkt. account_signup: Aanmelden voor een account manage_users: Beheren gebruikers - auth_type_updated: Authenticatietype bijgewerkt. - signup: Aanmelden - total_actions: Totaal aanal acties desired_login: Gewenste login confirm_password: Bevestig wachtwoord + signup: Aanmelden new_user_heading: "Registreer een nieuwe gebruiker:" - change_auth_type_title: TRACKS::Wijzig authenticatietype - change_password_prompt: Voer uw nieuwe wachtwoord in de onderstaande velden in en kies 'Wachtwoord wijzigen' om uw huidige wachtwoord met uw nieuwe te vervangen. - password_confirmation_label: Bevestig wachtwoord + auth_type_updated: Authenticatietype bijgewerkt. + total_actions: Totaal aanal acties destroy_error: Er is een fout opgetreden bij het verwijderen van de gebruiker '%{login}' choose_password: Kies een wachtwoord change_password_title: TRACKS::Wachtwoord wijzigen + change_auth_type_title: TRACKS::Wijzig authenticatietype + change_password_prompt: Voer uw nieuwe wachtwoord in de onderstaande velden in en kies 'Wachtwoord wijzigen' om uw huidige wachtwoord met uw nieuwe te vervangen. + password_confirmation_label: Bevestig wachtwoord label_auth_type: Authenticatietype new_password_label: Nieuw wachtwoord register_with_cas: Met uw CAS gebruikersnaam - total_users_count: Je hebt een totaal van %{count} gebruikers new_user_title: "TRACKS:: Aanmelden als de admin gebruiker" destroy_user: Verwijder de gebruiker + total_users_count: Je hebt een totaal van %{count} gebruikers destroy_confirmation: "Waarschuwing: dit zal de gebruiker '%{login} verwijderen met al zijn acties, contexten, projecten en notities. Weet u zeker dat u wilt doorgaan?" signup_new_user: Registreer nieuwe gebruiker change_authentication_type: Wijzigen authenticatietype - identity_url: Identiteit URL auth_change_submit: Wijzigen authenticatietype openid_ok_pref_failed: Je hebt succesvol de %{url} geverifieerd als je identiteit, maar er was een probleem met het opslaan van uw authenticatie voorkeuren. - select_authentication_type: Selecteer uw nieuwe authenticatie type en klik op 'Wijzigen authenticatietype' om uw huidige instellingen te vervangen. + identity_url: Identiteit URL total_notes: Totaal aantal notities + select_authentication_type: Selecteer uw nieuwe authenticatie type en klik op 'Wijzigen authenticatietype' om uw huidige instellingen te vervangen. sidebar: list_name_active_contexts: Actieve contexten list_name_active_projects: Actieve projecten @@ -758,24 +758,24 @@ nl: show_form_title: Voeg een context toe delete_context_confirmation: Weet u zeker dat u de context '%{name}' wilt verwijderen? Merk op dat dit ook alle (herhalende) acties in deze context zal verwijderen! delete_context: Verwijder context - edit_context: Bewerk context hide_form_title: "Verberg formulier voor nieuwe context " + edit_context: Bewerk context + no_contexts_active: Momenteel zijn er geen actieve contexten context_hide: Verberg van de start pagina? hidden_contexts: Verborgen contexten - no_contexts_active: Momenteel zijn er geen actieve contexten + show_form: Maak een nieuwe context visible_contexts: Zichtbare contexten save_status_message: Context bewaard - show_form: Maak een nieuwe context add_context: Context toevoegen context_name: Context naam update_status_message: Naam van de context was veranderd - status_active: Context is actief new_context_post: "' zal ook gemaakt worden. Weet u dit zeker?" + status_active: Context is actief + no_actions: Momenteel zijn er geen onafgeronde acties in deze context last_completed_in_context: in deze context (laatste %{number}) context_deleted: De context '%{name}' is verwijderd no_contexts_hidden: Momenteel zijn er geen verborgen contexten new_context_pre: Nieuwe context ' - no_actions: Momenteel zijn er geen onafgeronde acties in deze context status_hidden: Context is verborgen datetime: prompts: @@ -827,21 +827,21 @@ nl: user_no_expiry: Blijf ingelogd sign_in: Meld aan login_cas: Ga naar het CAS + cas_login: CAS Inloggen + successful_with_session_info: "Login succesvol:" please_login: Log in om Tracks te gebruiken cas_logged_in_greeting: Hallo, %{username}! U bent geauthenticeerd. cas_no_user_found: Hallo,%{username}! Je hebt nog geen account op Tracks. - cas_login: CAS Inloggen - successful_with_session_info: "Login succesvol:" cas_username_not_found: Sorry, geen gebruiker met die CAS gebruikersnaam bestaat (%{username}) - cas_create_account: Als u willen vragen ga hier om %{signup_link} mobile_use_openid: ... if inloggen met een OpenID + cas_create_account: Als u willen vragen ga hier om %{signup_link} cas_signup_link: Aanvragen account account_login: Account login - successful: Succesvol aangemeld. Welkom terug! session_will_not_expire: sessie zal niet verlopen. - session_time_out: Sessie is verlopen. Gelieve %{link} + successful: Succesvol aangemeld. Welkom terug! session_will_expire: sessie zal verlopen na %{hours} u(u)r(en) van inactiviteit. option_separator: of, + session_time_out: Sessie is verlopen. Gelieve %{link} login_standard: Ga terug naar de standaard login login_with_openid: inloggen met een OpenID unsuccessful: Login mislukt. From 1a9b84701bd2dd7a47a32693d5daa8d87f2e9f50 Mon Sep 17 00:00:00 2001 From: Reinier Balt Date: Sun, 1 May 2011 14:44:24 +0200 Subject: [PATCH 013/197] fix i18n for due_date on todos --- app/helpers/application_helper.rb | 52 ++++++++++++--------- config/locales/de.yml | 77 +++++++++++++++++-------------- config/locales/en.yml | 7 +++ config/locales/nl.yml | 77 +++++++++++++++++-------------- 4 files changed, 121 insertions(+), 92 deletions(-) diff --git a/app/helpers/application_helper.rb b/app/helpers/application_helper.rb index 56c8da10..8cd27cf9 100644 --- a/app/helpers/application_helper.rb +++ b/app/helpers/application_helper.rb @@ -32,28 +32,36 @@ module ApplicationHelper end days = days_from_today(due) - - case days - when 0 - "Due Today " - when 1 - "Due Tomorrow " - # due 2-7 days away - when 2..7 - if prefs.due_style == Preference.due_styles[:due_on] - "Due on #{due.strftime("%A")} " - else - "Due in #{pluralize(days, 'day')} " - end - else - # overdue or due very soon! sound the alarm! - if days < 0 - "Overdue by #{pluralize(days * -1, 'day')} " - else - # more than a week away - relax - "Due in #{pluralize(days, 'day')} " - end - end + + colors = ['amber','amber','orange','orange','orange','orange','orange','orange'] + color = :red if days < 0 + color = :green if days > 7 + color = colors[days] if color.nil? + + return content_tag(:a, {:title => format_date(due)}) { + content_tag(:span, {:class => color}) { + case days + when 0 + t('todos.next_actions_due_date.due_today') + when 1 + t('todos.next_actions_due_date.due_tomorrow') + when 2..7 + if prefs.due_style == Preference.due_styles[:due_on] + t('models.preference.due_on', due.strftime("%A")) + else + t('models.preference.due_in', :days => days) + end + else + # overdue or due very soon! sound the alarm! + if days < 0 + t('todos.next_actions_due_date.overdue_by', :days => pluralize(days * -1, 'day')) + else + # more than a week away - relax + t('todos.next_actions_due_date.due_in', :days => pluralize(days, 'day')) + end + end + } + } end # Check due date in comparison to today's date Flag up date appropriately with diff --git a/config/locales/de.yml b/config/locales/de.yml index a5249711..2b6ac7f7 100644 --- a/config/locales/de.yml +++ b/config/locales/de.yml @@ -57,6 +57,7 @@ de: first: Erste website: Website numbered_step: Schritt %{number} + fourth: Vierte sort: by_task_count_title: Nach Anzahl der Aufgaben sortieren by_task_count_title_confirm: Sollen diese Projekte wirklich nach Anzahl der Aufgaben sortiert werden? Die bisherige Sortier-Reihenfolge wird damit überschrieben. @@ -65,27 +66,32 @@ de: alphabetically_confirm: Sollen diese Projekte wirklich alphabetisch sortiert werden? Die bisherige Sortier-Reihenfolge wird damit überschrieben. alphabetically_title: Projekte alphabetisch sortieren by_task_count: Nach Anzahl der Aufgaben - fourth: Vierte - drag_handle: Verschieben create: Erstellen - errors_with_fields: "Mit folgenden Feldern sind Probleme aufgetreten:" + drag_handle: Verschieben context: Kontext + errors_with_fields: "Mit folgenden Feldern sind Probleme aufgetreten:" description: Beschreibung contexts: Kontexte - update: Aktualisieren wiki: Wiki + update: Aktualisieren bugs: Bugs ajaxError: Fehler beim Empfangen vom Server - email: E-Mail search: Suchen + email: E-Mail + integrations: + opensearch_description: In Tracks suchen + gmail_description: "Gadget, um Tracks als Gadget zu Googlemail hinzuzuf\xC3\xBCgen" + applescript_next_action_prompt: "Beschreibung der n\xC3\xA4chsten Aufgabe:" + applescript_success_after_id: erstellt + applescript_success_before_id: "N\xC3\xA4chste neue Aufgabe mit ID" layouts: toggle_notes: Notizen umschalten next_actions_rss_feed: RSS-Feed kommende Aufgaben toggle_notes_title: Alle Notizen umschalten mobile_navigation: logout: Abmelden - feeds: Feeds new_action: 0-Neue Aufgabe + feeds: Feeds starred: 4-Markiert projects: 3-Projekte tickler: Notizbuch @@ -110,8 +116,8 @@ de: starred_title: Markierte Aufgaben betrachten recurring_todos_title: Sich wiederholende To-Dos verwalten completed_tasks: Erledigt - stats_title: Statistiken anzeigen tickler: Notizbuch + stats_title: Statistiken anzeigen organize: Organisieren view: Betrachten completed_tasks_title: "Vollst\xC3\xA4ndig" @@ -119,15 +125,9 @@ de: home: Start contexts_title: Kontexte preferences_title: Meine Einstellungen - calendar: Kalender projects_title: Projekte + calendar: Kalender search: "Alle Eintr\xC3\xA4ge durchsuchen" - integrations: - opensearch_description: In Tracks suchen - gmail_description: "Gadget, um Tracks als Gadget zu Googlemail hinzuzuf\xC3\xBCgen" - applescript_next_action_prompt: "Beschreibung der n\xC3\xA4chsten Aufgabe:" - applescript_success_after_id: erstellt - applescript_success_before_id: "N\xC3\xA4chste neue Aufgabe mit ID" data: import_successful: Import war erfolgreich. import_errors: Beim Import sind Fehler aufgetreten. @@ -138,6 +138,8 @@ de: todo: error_date_must_be_future: muss ein Datum in der Zukunft sein preference: + due_on: "F\xC3\xA4llig auf %{date}" + due_in: "F\xC3\xA4llig in %{days} Tagen" due_styles: - "F\xC3\xA4llig in ___ Tagen" - "F\xC3\xA4llig am _______" @@ -198,8 +200,8 @@ de: exclusion: "ist nicht verf\xC3\xBCgbar" odd: muss ungerade sein too_short: ist zu kurz (nicht weniger als %{count} Zeichen) - wrong_length: "hat die falsche L\xC3\xA4nge (muss genau %{count} Zeichen haben)" empty: "muss ausgef\xC3\xBCllt werden" + wrong_length: "hat die falsche L\xC3\xA4nge (muss genau %{count} Zeichen haben)" even: muss gerade sein less_than: muss kleiner als %{count} sein greater_than: "muss gr\xC3\xB6\xC3\x9Fer als %{count} sein" @@ -251,13 +253,13 @@ de: actions_avg_completed_30days: und %{count} durchschnittlich davon erledigt. top5_contexts: Top 5 aller Kontexte action_completion_time_title: Fertigstellungszeit (alle abgeschlossenen Aktionen) - projects: Projekte actions_last_year: Aktionen im letzten Jahr + projects: Projekte totals_context_count: Du hast %{count} Kontexte. totals_visible_context_count: Von diesen sind %{count} sichtbare Kontexte totals_blocked_actions: "%{count} h\xC3\xA4ngen vom Abschluss anderer Aktionen ab." - actions_min_max_completion_days: "Das Minimum/Maximum an Tagen einer Vervollst\xC3\xA4ndigung ist %{min}/%{max}." tags: Tags + actions_min_max_completion_days: "Das Minimum/Maximum an Tagen einer Vervollst\xC3\xA4ndigung ist %{min}/%{max}." actions_min_completion_time: "Die minimale Zeit betr\xC3\xA4gt %{time}." no_tags_available: "keine Tags verf\xC3\xBCgbar" actions_day_of_week_title: Wochentag (alle Aktionen) @@ -288,8 +290,8 @@ de: click_to_return_link: hier totals_hidden_context_count: und %{count} sind versteckte Kontexte. actions_avg_completed: und %{count} durchschnittlich davon monatlich erledigt - totals: Ingesamt contexts: Kontexte + totals: Ingesamt no_actions_selected: "Es sind keine Aufgaben ausgew\xC3\xA4hlt." running_time_all_legend: actions: Aktionen @@ -397,6 +399,11 @@ de: unresolved_dependency: "Der Wert, den Sie in die Abh\xC3\xA4ngigkeit Feld eingegeben nicht zu einer bestehenden Aktion zu l\xC3\xB6sen. Dieser Wert wird nicht mit dem Rest der Aktion gerettet werden. Weiter gehen?" show_today: Heute anzeigen no_actions_found_title: Keine Aktionen gefunden + next_actions_due_date: + overdue_by: "\xC3\x9Cberf\xC3\xA4llig mit %{days}" + due_today: "Heute f\xC3\xA4llig" + due_in_x_days: "F\xC3\xA4llig in %{days} Tagen" + due_tomorrow: "F\xC3\xA4llig morgen" completed_last_x_days: In den letzten %{count} Tagen erledigt no_actions_with: "Im Augenblick gibt es keine unvollst\xC3\xA4ndigen Aktionen mit dem Tag '%{tag_name}'" defer_x_days: @@ -456,8 +463,8 @@ de: yearly_every_x_day: "Jeden %{day}. %{month} " recurrence_on_options: Setze Wiederholung auf daily_every_number_day: Alle %{number} Tage - ends_on: Endet am weekly_every_number_week: Kehrt jede %{number}. Woche wieder am + ends_on: Endet am show_options: To-Do anzeigen no_end_date: Kein Enddatum day_x_on_every_x_month: Tag %{day} in jedem %{month}. Monat @@ -472,8 +479,8 @@ de: added_dependency: "%{dependency} als Abhängigkeit hinzugefügt." no_deferred_actions: Zur Zeit sind keine zurückgestellten Aktionen vorhanden. recurrence_completed: Nach dieser wiederkehrenden Aktion, die du gerade abgeschlossen hast, folgt keine mehr. Die Wiederholung endet hiermit - no_actions_found: "Momentan gibt es keine unvollst\xC3\xA4ndigen Aktionen." in_pending_state: und als ausstehend markiert + no_actions_found: "Momentan gibt es keine unvollst\xC3\xA4ndigen Aktionen." error_toggle_complete: "K\xC3\xB6nnte nicht diese Marke todo komplett" due: Fällig action_marked_complete_error: Die Aktion '%{description}' wurde aufgrund eines Fehlers NICHT als %{completed} markiert. @@ -509,8 +516,8 @@ de: was_marked_hidden: wurde als verborgen markiert edit_project_title: Projekt bearbeiten default_tags_removed_notice: Standard-Tags entfernt - hide_form: Fomular verstecken page_title: "TRACKS::Projekt: %{project}" + hide_form: Fomular verstecken this_project: Dieses Projekt project_state: Projekt ist %{state} show_form_title: Neues Projekt anlegen @@ -544,13 +551,22 @@ de: completed_actions: "Erledigte Aufgaben f\xC3\xBCr dieses Projekt" default_context_removed: Standard-Kontext entfernt add_note_submit: "Notiz hinzuf\xC3\xBCgen" - active_projects: Aktive Projekte status_project_name_changed: "Projektname ge\xC3\xA4ndert" + active_projects: Aktive Projekte no_default_context: Dieses Projekt hat keinen Standard-Kontext with_no_default_tags: und hat keinen Standardwert Tags default_context: Der Standard-Kontext dieses Projektes ist %{context} state: Dieses Projekt ist %{state} edit_project_settings: Edit Project Settings + states: + hidden_plural: Versteckte + completed: Erledigt + completed_plural: Erledigte + visible_plural: Sichtbare + active_plural: Aktive + visible: Sichtbar + hidden: Versteckt + active: Aktiv time: am: vormittags formats: @@ -559,15 +575,8 @@ de: short: "%d. %B, %H:%M Uhr" long: "%A, %d. %B %Y, %H:%M Uhr" pm: nachmittags - states: - hidden_plural: Versteckte - completed: Erledigt - completed_plural: Erledigte - visible_plural: Sichtbare - active_plural: Aktive - visible: Sichtbar - active: Aktiv - hidden: Versteckt + errors: + user_unauthorized: "401 Unauthorized: Nur administrative Benutzer d\xC3\xBCrfen auf diese Funktion zugreifen." preferences: change_identity_url: "\xC3\x84ndere deine Identit\xC3\xA4ts-URL" open_id_url: "Deine OpenID-URL lautet:" @@ -585,11 +594,9 @@ de: generate_new_token: Neues Token generieren token_header: Dein Token change_authentication_type: "Authentifzierungsart \xC3\xA4ndern" - current_authentication_type: Dein Authentifizierungsart ist %{auth_type} authentication_header: Deine Authentifizierung + current_authentication_type: Dein Authentifizierungsart ist %{auth_type} generate_new_token_confirm: "Bist du sicher? Wenn du ein neues Token generierst, wird dies das alte Token ersetzen und jegliche externe Nutzung st\xC3\xB6ren, die das alte Token verwendet." - errors: - user_unauthorized: "401 Unauthorized: Nur administrative Benutzer d\xC3\xBCrfen auf diese Funktion zugreifen." date: month_names: - @@ -734,8 +741,8 @@ de: signup_new_user: Neuen Benutzer anlegen change_authentication_type: "Authentifizierungsart \xC3\xA4ndern" auth_change_submit: "Authentifizierungsart \xC3\xA4ndern" - identity_url: Identity-URL openid_ok_pref_failed: Die URL %{url} wurde erfolgreich als Identität verifiziert, beim Speichern der Einstellungen trat jedoch ein Fehler auf. + identity_url: Identity-URL total_notes: Alle Notizen select_authentication_type: "W\xC3\xA4hle deine neue Authentifizierungsart und klicke 'Authentifizierungsart \xC3\xA4ndern' an, um deine aktuellen Einstellungen zu \xC3\xBCberschreiben." sidebar: diff --git a/config/locales/en.yml b/config/locales/en.yml index 2876bc9f..c6a064f9 100644 --- a/config/locales/en.yml +++ b/config/locales/en.yml @@ -46,6 +46,8 @@ en: feed_description: "Lists all the projects for %{username}" preference: due_styles: ['Due in ___ days', 'Due on _______'] + due_on: "Due on %{date}" + due_in: "Due in %{days} days" user: error_context_not_associated: "Context id %{context} not associated with user id %{user}." error_project_not_associated: "Project id %{project} not associated with user id %{user}." @@ -543,6 +545,11 @@ en: calendar_page_title: "TRACKS::Calendar" next_actions_title: "Tracks - Next Actions" next_actions_description: "Filter:" + next_actions_due_date: + due_today: Due Today + due_tomorrow: Due Tomorrow + due_in_x_days: "Due in %{days} days" + overdue_by: "Overdue by %{days}" next_actions_title_additions: due_today: "due today" due_within_a_week: "due within a week" diff --git a/config/locales/nl.yml b/config/locales/nl.yml index e5cd3470..212c5129 100644 --- a/config/locales/nl.yml +++ b/config/locales/nl.yml @@ -46,7 +46,6 @@ nl: first: Eerste website: Website numbered_step: Stap %{number} - fourth: Vierde sort: by_task_count_title: Sorteer op aantal acties by_task_count_title_confirm: Weet u zeker dat u deze op aantal acties wilt sorteren? Dat zal de huidige sorteervolgorde aanpassen. @@ -55,26 +54,33 @@ nl: alphabetically_confirm: Weet u zeker dat u deze projecten alfabetisch wilt sorteren? Dat zal de huidige sorteervolgorde aanpassen. alphabetically_title: Sorteer projecten alfabetisch by_task_count: Op aantal acties - drag_handle: SLEEP + fourth: Vierde create: Maken - errors_with_fields: Er waren problemen met de volgende velden + drag_handle: SLEEP context: Context + errors_with_fields: Er waren problemen met de volgende velden description: Beschrijving contexts: Contexten - wiki: Wiki update: Bijwerken + wiki: Wiki bugs: Fouten ajaxError: Er is een fout opgetreden bij het ophalen van gegevens van de server - search: Zoeken email: E-mail + search: Zoeken + integrations: + opensearch_description: Zoek in Tracks + gmail_description: Gadget om Tracks toe te voegen aan Gmail als een gadget + applescript_next_action_prompt: "Omschrijving van de actie:" + applescript_success_after_id: gemaakt + applescript_success_before_id: Nieuwe actie met ID layouts: toggle_notes: Toggle notities next_actions_rss_feed: RSS-feed van de acties toggle_notes_title: Toggle alle notities mobile_navigation: logout: Afmelden - new_action: 0-Nieuwe actie feeds: Feeds + new_action: 0-Nieuwe actie starred: 4-Ster projects: 3-Projecten tickler: Tickler @@ -99,8 +105,8 @@ nl: starred_title: Zie je ster acties recurring_todos_title: Beheren terugkerende acties completed_tasks: Gereed - tickler: Tickler stats_title: Zie je statistieken + tickler: Tickler organize: Organiseer view: Bekijk completed_tasks_title: Afgerond @@ -108,15 +114,9 @@ nl: home: Start contexts_title: Contexten preferences_title: Toon mijn voorkeuren - calendar: Agenda projects_title: Projecten + calendar: Agenda search: Zoeken in alle items - integrations: - opensearch_description: Zoek in Tracks - gmail_description: Gadget om Tracks toe te voegen aan Gmail als een gadget - applescript_next_action_prompt: "Omschrijving van de actie:" - applescript_success_after_id: gemaakt - applescript_success_before_id: Nieuwe actie met ID data: import_successful: De import was succesvol import_errors: Er hebben zich fouten voorgedaan bij de import @@ -127,6 +127,8 @@ nl: todo: error_date_must_be_future: moet een datum in de toekomst zijn preference: + due_on: Deadline op %{date} + due_in: Deadline over %{days} dagen due_styles: - Deadline over ____ dagen - Deadline op ____ @@ -187,8 +189,8 @@ nl: exclusion: is gereserveerd odd: moet oneven zijn too_short: is te kort (minimum is %{count} karakters) - wrong_length: heeft de verkeerde lengte (moet %{count} karakters lang zijn) empty: mag niet leeg zijn + wrong_length: heeft de verkeerde lengte (moet %{count} karakters lang zijn) even: moet even zijn less_than: moet kleiner zijn dan %{count} greater_than: moet groter zijn dan %{count} @@ -240,13 +242,13 @@ nl: actions_avg_completed_30days: en voltooide een gemiddelde van %{count} acties per dag. top5_contexts: Top 5 contexten action_completion_time_title: Doorlooptijd (alle voltooide acties) - actions_last_year: Acties in de afgelopen jaren projects: Projecten + actions_last_year: Acties in de afgelopen jaren totals_context_count: U heeft %{count} contexten. totals_visible_context_count: Van deze zijn %{count} zichtbare contexten totals_blocked_actions: "%{count} zijn afhankelijk van de voltooiing van hun acties." - actions_min_max_completion_days: De max-/minimum dagen tot voltooiing is %{min}/%{max}. tags: Tags + actions_min_max_completion_days: De max-/minimum dagen tot voltooiing is %{min}/%{max}. actions_min_completion_time: De minimale tijd tot afronding is %{time}. no_tags_available: geen tags beschikbaar actions_day_of_week_title: Dag van de week (alle acties) @@ -277,8 +279,8 @@ nl: click_to_return_link: hier totals_hidden_context_count: en %{count} zijn verborgen contexten. actions_avg_completed: en voltooide een gemiddelde van %{count} acties per maand. - contexts: Contexten totals: Totalen + contexts: Contexten no_actions_selected: Er zijn geen acties geselecteerd. running_time_all_legend: actions: Acties @@ -386,6 +388,11 @@ nl: unresolved_dependency: De waarde die u ingevoerd heeft in het afhankelijkheden veld is niet herleidbaar naar een bestaande actie. Deze waarde wordt niet bewaard met de rest van de actie. Doorgaan? show_today: Toon vandaag no_actions_found_title: Geen acties gevonden + next_actions_due_date: + overdue_by: Over deadline met %{days} + due_today: Deadline vandaag + due_in_x_days: Deadline over %{days} dagen + due_tomorrow: Deadline morgen completed_last_x_days: Voltooid in de laatste %{count} dagen no_actions_with: Momenteel zijn er geen onvoltooide acties met de tag '%{tag_name}' defer_x_days: @@ -445,8 +452,8 @@ nl: yearly_every_x_day: Elke %{month} %{day} recurrence_on_options: Stel herhaling in op daily_every_number_day: Elke %{number} dag(en) - ends_on: Eindigt op weekly_every_number_week: Herhaalt elke %{number} weken op + ends_on: Eindigt op show_options: Toon de actie no_end_date: Geen einddatum day_x_on_every_x_month: Dag %{day} op elke %{month} maand @@ -461,8 +468,8 @@ nl: added_dependency: "%{dependency} als afhankelijkheid toegevoegd." no_deferred_actions: Momenteel zijn er geen uitgestelde acties. recurrence_completed: Er is geen volgende actie na de terugkerende actie die u zojuist hebt voltooid. De herhaling is voltooid - no_actions_found: Momenteel zijn er geen onafgeronde acties. in_pending_state: in wachtende toestand + no_actions_found: Momenteel zijn er geen onafgeronde acties. error_toggle_complete: Kon deze actie niet als afgerond markeren due: Deadline action_marked_complete_error: De actie '%{description}' is niet gemarkeerd als %{completed} vanwege een fout op de server. @@ -498,8 +505,8 @@ nl: was_marked_hidden: is gemarkeerd als verborgen edit_project_title: Bewerk project default_tags_removed_notice: De standaard tags zijn verwijderd - page_title: "TRACKS:: Project: %{project}" hide_form: Verberg formulier + page_title: "TRACKS:: Project: %{project}" this_project: Dit project project_state: Project is %{state}. show_form_title: Maak een nieuw project @@ -533,22 +540,13 @@ nl: completed_actions: Afgeronde acties voor dit project default_context_removed: Standaard context verwijderd add_note_submit: Notitie toevoegen - status_project_name_changed: Naam van het project werd gewijzigd active_projects: Actieve projecten + status_project_name_changed: Naam van het project werd gewijzigd no_default_context: Dit project heeft geen standaard context with_no_default_tags: en zonder standaard tags default_context: De standaard context voor dit project is %{context} state: Dit project is %{state} edit_project_settings: Bewerk project instellingen - states: - hidden_plural: Verborgen - completed: Afgerond - completed_plural: Afgeronde - visible_plural: Zichtbare - active_plural: Actieve - visible: Zichtbaar - hidden: Verborgen - active: Actief time: am: ochtend formats: @@ -557,8 +555,15 @@ nl: short: "%d %B %H:%M" long: "%A, %d. %B %Y, %H:%M" pm: middag - errors: - user_unauthorized: "401 Unauthorized: Alleen administratieve gebruikers mogen deze functie gebruiken." + states: + hidden_plural: Verborgen + completed: Afgerond + completed_plural: Afgeronde + visible_plural: Zichtbare + active_plural: Actieve + visible: Zichtbaar + active: Actief + hidden: Verborgen preferences: change_identity_url: Verander uw Identity URL open_id_url: Uw OpenID URL is @@ -576,9 +581,11 @@ nl: generate_new_token: Genereer een nieuwe token token_header: Uw token change_authentication_type: Verander uw authenticatietype - authentication_header: Uw authenticatie current_authentication_type: Uw authenticatietype is %{auth_type} + authentication_header: Uw authenticatie generate_new_token_confirm: Weet u dit zeker? Het genereren van een nieuw token zal de bestaande te vervangen en dit zal het extern gebruiken van de oude token laten mislukken. + errors: + user_unauthorized: "401 Unauthorized: Alleen administratieve gebruikers mogen deze functie gebruiken." date: month_names: - @@ -741,8 +748,8 @@ nl: signup_new_user: Registreer nieuwe gebruiker change_authentication_type: Wijzigen authenticatietype auth_change_submit: Wijzigen authenticatietype - openid_ok_pref_failed: Je hebt succesvol de %{url} geverifieerd als je identiteit, maar er was een probleem met het opslaan van uw authenticatie voorkeuren. identity_url: Identiteit URL + openid_ok_pref_failed: Je hebt succesvol de %{url} geverifieerd als je identiteit, maar er was een probleem met het opslaan van uw authenticatie voorkeuren. total_notes: Totaal aantal notities select_authentication_type: Selecteer uw nieuwe authenticatie type en klik op 'Wijzigen authenticatietype' om uw huidige instellingen te vervangen. sidebar: From efa12e66955092c29280d9f0647dbe217db92901 Mon Sep 17 00:00:00 2001 From: Reinier Balt Date: Sun, 1 May 2011 15:07:41 +0200 Subject: [PATCH 014/197] fix small corner case where empty message was not shown when deleting last deferred todo from a project page --- app/controllers/todos_controller.rb | 2 ++ app/helpers/todos_helper.rb | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/app/controllers/todos_controller.rb b/app/controllers/todos_controller.rb index 5e413fed..bba83f78 100644 --- a/app/controllers/todos_controller.rb +++ b/app/controllers/todos_controller.rb @@ -417,6 +417,8 @@ class TodosController < ApplicationController @context_id = @todo.context_id @project_id = @todo.project_id @todo_was_destroyed_from_deferred_state = @todo.deferred? + @todo_was_destroyed_from_pending_state = @todo.pending? + @todo_was_destroyed_from_deferred_or_pending_state = @todo_was_destroyed_from_deferred_state || @todo_was_destroyed_from_pending_state # activate successors if they only depend on this todo activated_successor_count = 0 diff --git a/app/helpers/todos_helper.rb b/app/helpers/todos_helper.rb index a02657c4..5c846752 100644 --- a/app/helpers/todos_helper.rb +++ b/app/helpers/todos_helper.rb @@ -379,7 +379,7 @@ module TodosHelper page.project { container_id = "p#{@original_item_project_id}empty-nd" if @remaining_in_context == 0 container_id = "tickler-empty-nd" if ( - ( (@todo_was_activated_from_deferred_state || @todo_was_activated_from_pending_state) && @remaining_deferred_or_pending_count == 0) || + ( (@todo_was_activated_from_deferred_state || @todo_was_activated_from_pending_state || @todo_was_destroyed_from_deferred_or_pending_state) && @remaining_deferred_or_pending_count == 0) || (@original_item_was_deferred && @remaining_deferred_or_pending_count == 0 && @todo.completed?) ) container_id = "empty-d" if @completed_count && @completed_count == 0 && !@todo.completed? } From dff0ace1a1f257e5540288fc4961eaaee011976c Mon Sep 17 00:00:00 2001 From: Reinier Balt Date: Sun, 1 May 2011 15:12:40 +0200 Subject: [PATCH 015/197] fix #1160 by increasing the fadeout from 5 to 8 seconds which is more consistent with other flash messages --- app/views/todos/create.js.erb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/views/todos/create.js.erb b/app/views/todos/create.js.erb index c8b22407..4df36032 100644 --- a/app/views/todos/create.js.erb +++ b/app/views/todos/create.js.erb @@ -1,5 +1,5 @@ <% if @saved -%> - TracksPages.page_notify('notice', "<%=escape_javascript @status_message%>", 5); + TracksPages.page_notify('notice', "<%=escape_javascript @status_message%>", 8); TracksPages.hide_errors(); TracksPages.set_page_badge(<%= @down_count %>); <% if should_show_new_item -%> From 58641a2fd030348277f096ec541b2d7b0cdd2db5 Mon Sep 17 00:00:00 2001 From: Reinier Balt Date: Sun, 1 May 2011 19:08:35 +0200 Subject: [PATCH 016/197] fix bug in previous commit --- app/helpers/application_helper.rb | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/app/helpers/application_helper.rb b/app/helpers/application_helper.rb index 8cd27cf9..defd4e17 100644 --- a/app/helpers/application_helper.rb +++ b/app/helpers/application_helper.rb @@ -27,9 +27,7 @@ module ApplicationHelper # a 'traffic light' colour code # def due_date(due) - if due == nil - return "" - end + return "" if due.nil? days = days_from_today(due) @@ -47,7 +45,8 @@ module ApplicationHelper t('todos.next_actions_due_date.due_tomorrow') when 2..7 if prefs.due_style == Preference.due_styles[:due_on] - t('models.preference.due_on', due.strftime("%A")) + # TODO: internationalize strftime here + t('models.preference.due_on', :date => due.strftime("%A")) else t('models.preference.due_in', :days => days) end From 7d5ca160443d782104dc1f7631d1a741a10a4d8e Mon Sep 17 00:00:00 2001 From: Reinier Balt Date: Tue, 3 May 2011 11:43:02 +0200 Subject: [PATCH 017/197] fix #1164 and fix #1159 whre a localization was wrong and adding brackets at NOT sql statements for older MySQL versions --- app/helpers/application_helper.rb | 2 +- app/models/project.rb | 2 +- app/models/todo.rb | 8 ++++---- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/app/helpers/application_helper.rb b/app/helpers/application_helper.rb index defd4e17..fe325330 100644 --- a/app/helpers/application_helper.rb +++ b/app/helpers/application_helper.rb @@ -56,7 +56,7 @@ module ApplicationHelper t('todos.next_actions_due_date.overdue_by', :days => pluralize(days * -1, 'day')) else # more than a week away - relax - t('todos.next_actions_due_date.due_in', :days => pluralize(days, 'day')) + t('models.preference.due_in', :days => days) end end } diff --git a/app/models/project.rb b/app/models/project.rb index 672bd777..1eb3e04c 100644 --- a/app/models/project.rb +++ b/app/models/project.rb @@ -32,7 +32,7 @@ class Project < ActiveRecord::Base named_scope :active, :conditions => { :state => 'active' } named_scope :hidden, :conditions => { :state => 'hidden' } named_scope :completed, :conditions => { :state => 'completed'} - named_scope :uncompleted, :conditions => ["NOT state = ?", 'completed'] + named_scope :uncompleted, :conditions => ["NOT(state = ?)", 'completed'] validates_presence_of :name validates_length_of :name, :maximum => 255 diff --git a/app/models/todo.rb b/app/models/todo.rb index 72ac6c0f..6ddbd5b0 100644 --- a/app/models/todo.rb +++ b/app/models/todo.rb @@ -19,12 +19,12 @@ class Todo < ActiveRecord::Base named_scope :active, :conditions => { :state => 'active' } named_scope :active_or_hidden, :conditions => ["todos.state = ? OR todos.state = ?", 'active', 'project_hidden'] named_scope :not_completed, :conditions => ['NOT (todos.state = ? )', 'completed'] - named_scope :completed, :conditions => ["NOT todos.completed_at IS NULL"] + named_scope :completed, :conditions => ["NOT(todos.completed_at IS NULL)"] named_scope :are_due, :conditions => ['NOT (todos.due IS NULL)'] - named_scope :deferred, :conditions => ["todos.completed_at IS NULL AND NOT todos.show_from IS NULL"] + named_scope :deferred, :conditions => ["todos.completed_at IS NULL AND NOT(todos.show_from IS NULL)"] named_scope :blocked, :conditions => ['todos.state = ?', 'pending'] - named_scope :deferred_or_blocked, :conditions => ["(todos.completed_at IS NULL AND NOT todos.show_from IS NULL) OR (todos.state = ?)", "pending"] - named_scope :not_deferred_or_blocked, :conditions => ["todos.completed_at IS NULL AND todos.show_from IS NULL AND NOT todos.state = ?", "pending"] + named_scope :deferred_or_blocked, :conditions => ["(todos.completed_at IS NULL AND NOT(todos.show_from IS NULL)) OR (todos.state = ?)", "pending"] + named_scope :not_deferred_or_blocked, :conditions => ["todos.completed_at IS NULL AND todos.show_from IS NULL AND NOT(todos.state = ?)", "pending"] named_scope :with_tag, lambda { |tag| {:joins => :taggings, :conditions => ["taggings.tag_id = ? ", tag.id] } } named_scope :of_user, lambda { |user_id| {:conditions => ["todos.user_id = ? ", user_id] } } named_scope :hidden, From 99f1b9b6df57f51161e49773cb06f710d4da28bc Mon Sep 17 00:00:00 2001 From: Reinier Balt Date: Tue, 3 May 2011 12:30:33 +0200 Subject: [PATCH 018/197] fix #1165. forgot one i18n change in due_date --- app/helpers/application_helper.rb | 6 ++++-- config/locales/de.yml | 3 ++- config/locales/en.yml | 3 ++- config/locales/nl.yml | 3 ++- 4 files changed, 10 insertions(+), 5 deletions(-) diff --git a/app/helpers/application_helper.rb b/app/helpers/application_helper.rb index fe325330..da26efdf 100644 --- a/app/helpers/application_helper.rb +++ b/app/helpers/application_helper.rb @@ -52,8 +52,10 @@ module ApplicationHelper end else # overdue or due very soon! sound the alarm! - if days < 0 - t('todos.next_actions_due_date.overdue_by', :days => pluralize(days * -1, 'day')) + if days == -1 + t('todos.next_actions_due_date.overdue_by', :days => days * -1) + elsif days < -1 + t('todos.next_actions_due_date.overdue_by_plural', :days => days * -1) else # more than a week away - relax t('models.preference.due_in', :days => days) diff --git a/config/locales/de.yml b/config/locales/de.yml index 2b6ac7f7..13a819b5 100644 --- a/config/locales/de.yml +++ b/config/locales/de.yml @@ -400,7 +400,8 @@ de: show_today: Heute anzeigen no_actions_found_title: Keine Aktionen gefunden next_actions_due_date: - overdue_by: "\xC3\x9Cberf\xC3\xA4llig mit %{days}" + overdue_by: "\xC3\x9Cberf\xC3\xA4llig mit %{days} Tag" + overdue_by_plural: "\xC3\x9Cberf\xC3\xA4llig mit %{days} Tagen" due_today: "Heute f\xC3\xA4llig" due_in_x_days: "F\xC3\xA4llig in %{days} Tagen" due_tomorrow: "F\xC3\xA4llig morgen" diff --git a/config/locales/en.yml b/config/locales/en.yml index c6a064f9..ef039c2d 100644 --- a/config/locales/en.yml +++ b/config/locales/en.yml @@ -549,7 +549,8 @@ en: due_today: Due Today due_tomorrow: Due Tomorrow due_in_x_days: "Due in %{days} days" - overdue_by: "Overdue by %{days}" + overdue_by: "Overdue by %{days} day" + overdue_by_plural: "Overdue by %{days} days" next_actions_title_additions: due_today: "due today" due_within_a_week: "due within a week" diff --git a/config/locales/nl.yml b/config/locales/nl.yml index 212c5129..3ae33933 100644 --- a/config/locales/nl.yml +++ b/config/locales/nl.yml @@ -389,7 +389,8 @@ nl: show_today: Toon vandaag no_actions_found_title: Geen acties gevonden next_actions_due_date: - overdue_by: Over deadline met %{days} + overdue_by: Over deadline met %{days} dag + overdue_by_plural: Over deadline met %{days} dagen due_today: Deadline vandaag due_in_x_days: Deadline over %{days} dagen due_tomorrow: Deadline morgen From b3d92b97797e0d4cb995e36548b0f4ce042ed3f8 Mon Sep 17 00:00:00 2001 From: Reinier Balt Date: Tue, 3 May 2011 13:46:33 +0200 Subject: [PATCH 019/197] fix #1160 (again) by changing the long fadeout of the flash message into a fadein.delay.fadeout sequence for better readability. --- public/javascripts/application.js | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/public/javascripts/application.js b/public/javascripts/application.js index 64044b69..e98c592c 100644 --- a/public/javascripts/application.js +++ b/public/javascripts/application.js @@ -177,8 +177,13 @@ var TracksPages = { var flash = $('div#message_holder'); flash.html("

"+message+"

"); flash = $('h4#flash'); - flash.show(); - flash.fadeOut(fade_duration_in_sec*1000); + + fadein_duration = 1500; + fadeout_duration = 1500; + show_duration = fade_duration_in_sec*1000 - fadein_duration - fadeout_duration + if (show_duration < 0) + show_duration = 1000; + flash.fadeIn(fadein_duration).delay(show_duration).fadeOut(fadeout_duration); }, set_page_badge: function(count) { $('#badge_count').html(count); From 4d46750f05f6d701cba0bd544e7803bf757530c8 Mon Sep 17 00:00:00 2001 From: Reinier Balt Date: Sun, 8 May 2011 15:03:55 +0200 Subject: [PATCH 020/197] fix #1167 --- app/controllers/login_controller.rb | 6 ++++++ app/views/login/check_expiry.js.erb | 1 + app/views/todos/check_deferred.js.erb | 2 +- app/views/users/destroy.js.erb | 2 +- features/logging_in.feature | 2 +- public/javascripts/application.js | 4 ++++ 6 files changed, 14 insertions(+), 3 deletions(-) diff --git a/app/controllers/login_controller.rb b/app/controllers/login_controller.rb index 119f79c3..52716b6f 100644 --- a/app/controllers/login_controller.rb +++ b/app/controllers/login_controller.rb @@ -84,6 +84,12 @@ class LoginController < ApplicationController def expire_session # this is a hack to enable cucumber to expire a session by calling this # method. The method will be unavailable for production environment + + @user.forget_me if logged_in? + cookies.delete :auth_token + session['user_id'] = nil + reset_session + unless Rails.env.production? session['expiry_time'] = Time.now respond_to do |format| diff --git a/app/views/login/check_expiry.js.erb b/app/views/login/check_expiry.js.erb index 22b7882d..d0c11df8 100644 --- a/app/views/login/check_expiry.js.erb +++ b/app/views/login/check_expiry.js.erb @@ -5,4 +5,5 @@ -%> $('div#navcontainer').hide(); $('div#content').html('<%=theHtml%>'); + refresh_page(); // refresh the page. if it fails, the message above remains <% end -%> \ No newline at end of file diff --git a/app/views/todos/check_deferred.js.erb b/app/views/todos/check_deferred.js.erb index ecd8bed6..4f2c0be2 100644 --- a/app/views/todos/check_deferred.js.erb +++ b/app/views/todos/check_deferred.js.erb @@ -1,3 +1,3 @@ <% unless @due_tickles.empty? -%> - TracksPages.page_notify('notice', "<%=t('todos.tickler_items_due', :count => @due_tickles.length)%>", 5); + TracksPages.page_notify('notice', "<%=t('todos.tickler_items_due', :count => @due_tickles.length)%>", 8); <% end -%> diff --git a/app/views/users/destroy.js.erb b/app/views/users/destroy.js.erb index 1f97f075..97f3c2b6 100644 --- a/app/views/users/destroy.js.erb +++ b/app/views/users/destroy.js.erb @@ -1,7 +1,7 @@ <% if @saved -%> remove_user_from_page(); TracksPages.set_page_badge(<%= @total_users %>); - TracksPages.page_notify('notice', '<%= t('users.destroy_successful', :login => @deleted_user.login) %>', 5); + TracksPages.page_notify('notice', '<%= t('users.destroy_successful', :login => @deleted_user.login) %>', 8); <% else -%> TracksPages.page_notify('error', '<%= t('users.destroy_error', :login => @deleted_user.login) %>', 8); <% end -%> diff --git a/features/logging_in.feature b/features/logging_in.feature index f0b4d7cd..10874105 100644 --- a/features/logging_in.feature +++ b/features/logging_in.feature @@ -56,4 +56,4 @@ Feature: Existing user logging in And I submit the login form as user "testuser" with password "secret" Then I should be on the login page When my session expires - Then I should see "Session has timed out" \ No newline at end of file + Then I should be on the login page \ No newline at end of file diff --git a/public/javascripts/application.js b/public/javascripts/application.js index e98c592c..45c13712 100644 --- a/public/javascripts/application.js +++ b/public/javascripts/application.js @@ -999,6 +999,10 @@ function redirect_to(path) { window.location.href = path; } +function refresh_page() { + location.reload(true); +} + function setup_auto_refresh(interval){ field_touched = false; function refresh_page() { From d444d80f93ec4651a42841867063d311d78c6c3d Mon Sep 17 00:00:00 2001 From: Reinier Balt Date: Sun, 8 May 2011 16:40:31 +0200 Subject: [PATCH 021/197] fix #1168 by using a new helper to increate the tab_index automatically Signed-off-by: Reinier Balt --- app/helpers/todos_helper.rb | 11 ++- app/views/contexts/_context_form.rhtml | 6 +- app/views/contexts/_new_context_form.rhtml | 5 +- app/views/projects/_new_project_form.rhtml | 11 ++- app/views/projects/_project_form.rhtml | 12 +-- app/views/recurring_todos/_edit_form.html.erb | 95 +++++++++---------- .../recurring_todos/_recurring_todo_form.erb | 79 +++++++-------- app/views/shared/_add_new_item_form.rhtml | 1 + app/views/todos/_edit_form.rhtml | 18 ++-- app/views/todos/_new_multi_todo_form.rhtml | 10 +- app/views/todos/_new_todo_form.rhtml | 18 ++-- 11 files changed, 139 insertions(+), 127 deletions(-) diff --git a/app/helpers/todos_helper.rb b/app/helpers/todos_helper.rb index 5c846752..05e68079 100644 --- a/app/helpers/todos_helper.rb +++ b/app/helpers/todos_helper.rb @@ -411,7 +411,16 @@ module TodosHelper html += "}}) " * animation.size return html + ";" end - + + def reset_tab_index + $tracks_tab_index = 0 + end + + def next_tab_index + $tracks_tab_index = $tracks_tab_index + 1 + return $tracks_tab_index + end + private def image_tag_for_star(todo) diff --git a/app/views/contexts/_context_form.rhtml b/app/views/contexts/_context_form.rhtml index 952e8a44..92bd39aa 100644 --- a/app/views/contexts/_context_form.rhtml +++ b/app/views/contexts/_context_form.rhtml @@ -12,15 +12,15 @@
- <%= text_field('context', 'name', :class => 'context-name') %>
+ <%= text_field('context', 'name', :class => 'context-name', :tabindex => next_tab_index) %>
- <%= check_box('context', 'hide', :class => 'context-hide') %> + <%= check_box('context', 'hide', {:class => 'context-hide', :tabindex => next_tab_index}) %>
- diff --git a/app/views/contexts/_new_context_form.rhtml b/app/views/contexts/_new_context_form.rhtml index 26bde0ba..26d65348 100644 --- a/app/views/contexts/_new_context_form.rhtml +++ b/app/views/contexts/_new_context_form.rhtml @@ -1,3 +1,4 @@ +<%- reset_tab_index %>
');/sw|se|ne|nw/.test(f)&&g.css({zIndex:++a.zIndex});"se"==f&&g.addClass("ui-icon ui-icon-gripsmall-diagonal-se");this.handles[f]=".ui-resizable-"+f;this.element.append(g)}}this._renderAxis=function(h){h=h||this.element;for(var i in this.handles){if(this.handles[i].constructor== +String)this.handles[i]=e(this.handles[i],this.element).show();if(this.elementIsWrapper&&this.originalElement[0].nodeName.match(/textarea|input|select|button/i)){var j=e(this.handles[i],this.element),k=0;k=/sw|ne|nw|se|n|s/.test(i)?j.outerHeight():j.outerWidth();j=["padding",/ne|nw|n/.test(i)?"Top":/se|sw|s/.test(i)?"Bottom":/^e$/.test(i)?"Right":"Left"].join("");h.css(j,k);this._proportionallyResize()}e(this.handles[i])}};this._renderAxis(this.element);this._handles=e(".ui-resizable-handle",this.element).disableSelection(); +this._handles.mouseover(function(){if(!b.resizing){if(this.className)var h=this.className.match(/ui-resizable-(se|sw|ne|nw|n|e|s|w)/i);b.axis=h&&h[1]?h[1]:"se"}});if(a.autoHide){this._handles.hide();e(this.element).addClass("ui-resizable-autohide").hover(function(){if(!a.disabled){e(this).removeClass("ui-resizable-autohide");b._handles.show()}},function(){if(!a.disabled)if(!b.resizing){e(this).addClass("ui-resizable-autohide");b._handles.hide()}})}this._mouseInit()},destroy:function(){this._mouseDestroy(); +var b=function(c){e(c).removeClass("ui-resizable ui-resizable-disabled ui-resizable-resizing").removeData("resizable").unbind(".resizable").find(".ui-resizable-handle").remove()};if(this.elementIsWrapper){b(this.element);var a=this.element;a.after(this.originalElement.css({position:a.css("position"),width:a.outerWidth(),height:a.outerHeight(),top:a.css("top"),left:a.css("left")})).remove()}this.originalElement.css("resize",this.originalResizeStyle);b(this.originalElement);return this},_mouseCapture:function(b){var a= +false;for(var c in this.handles)if(e(this.handles[c])[0]==b.target)a=true;return!this.options.disabled&&a},_mouseStart:function(b){var a=this.options,c=this.element.position(),d=this.element;this.resizing=true;this.documentScroll={top:e(document).scrollTop(),left:e(document).scrollLeft()};if(d.is(".ui-draggable")||/absolute/.test(d.css("position")))d.css({position:"absolute",top:c.top,left:c.left});e.browser.opera&&/relative/.test(d.css("position"))&&d.css({position:"relative",top:"auto",left:"auto"}); +this._renderProxy();c=m(this.helper.css("left"));var f=m(this.helper.css("top"));if(a.containment){c+=e(a.containment).scrollLeft()||0;f+=e(a.containment).scrollTop()||0}this.offset=this.helper.offset();this.position={left:c,top:f};this.size=this._helper?{width:d.outerWidth(),height:d.outerHeight()}:{width:d.width(),height:d.height()};this.originalSize=this._helper?{width:d.outerWidth(),height:d.outerHeight()}:{width:d.width(),height:d.height()};this.originalPosition={left:c,top:f};this.sizeDiff= +{width:d.outerWidth()-d.width(),height:d.outerHeight()-d.height()};this.originalMousePosition={left:b.pageX,top:b.pageY};this.aspectRatio=typeof a.aspectRatio=="number"?a.aspectRatio:this.originalSize.width/this.originalSize.height||1;a=e(".ui-resizable-"+this.axis).css("cursor");e("body").css("cursor",a=="auto"?this.axis+"-resize":a);d.addClass("ui-resizable-resizing");this._propagate("start",b);return true},_mouseDrag:function(b){var a=this.helper,c=this.originalMousePosition,d=this._change[this.axis]; +if(!d)return false;c=d.apply(this,[b,b.pageX-c.left||0,b.pageY-c.top||0]);if(this._aspectRatio||b.shiftKey)c=this._updateRatio(c,b);c=this._respectSize(c,b);this._propagate("resize",b);a.css({top:this.position.top+"px",left:this.position.left+"px",width:this.size.width+"px",height:this.size.height+"px"});!this._helper&&this._proportionallyResizeElements.length&&this._proportionallyResize();this._updateCache(c);this._trigger("resize",b,this.ui());return false},_mouseStop:function(b){this.resizing= +false;var a=this.options,c=this;if(this._helper){var d=this._proportionallyResizeElements,f=d.length&&/textarea/i.test(d[0].nodeName);d=f&&e.ui.hasScroll(d[0],"left")?0:c.sizeDiff.height;f=f?0:c.sizeDiff.width;f={width:c.helper.width()-f,height:c.helper.height()-d};d=parseInt(c.element.css("left"),10)+(c.position.left-c.originalPosition.left)||null;var g=parseInt(c.element.css("top"),10)+(c.position.top-c.originalPosition.top)||null;a.animate||this.element.css(e.extend(f,{top:g,left:d}));c.helper.height(c.size.height); +c.helper.width(c.size.width);this._helper&&!a.animate&&this._proportionallyResize()}e("body").css("cursor","auto");this.element.removeClass("ui-resizable-resizing");this._propagate("stop",b);this._helper&&this.helper.remove();return false},_updateCache:function(b){this.offset=this.helper.offset();if(l(b.left))this.position.left=b.left;if(l(b.top))this.position.top=b.top;if(l(b.height))this.size.height=b.height;if(l(b.width))this.size.width=b.width},_updateRatio:function(b){var a=this.position,c=this.size, +d=this.axis;if(b.height)b.width=c.height*this.aspectRatio;else if(b.width)b.height=c.width/this.aspectRatio;if(d=="sw"){b.left=a.left+(c.width-b.width);b.top=null}if(d=="nw"){b.top=a.top+(c.height-b.height);b.left=a.left+(c.width-b.width)}return b},_respectSize:function(b){var a=this.options,c=this.axis,d=l(b.width)&&a.maxWidth&&a.maxWidthb.width,h=l(b.height)&&a.minHeight&&a.minHeight>b.height;if(g)b.width= +a.minWidth;if(h)b.height=a.minHeight;if(d)b.width=a.maxWidth;if(f)b.height=a.maxHeight;var i=this.originalPosition.left+this.originalSize.width,j=this.position.top+this.size.height,k=/sw|nw|w/.test(c);c=/nw|ne|n/.test(c);if(g&&k)b.left=i-a.minWidth;if(d&&k)b.left=i-a.maxWidth;if(h&&c)b.top=j-a.minHeight;if(f&&c)b.top=j-a.maxHeight;if((a=!b.width&&!b.height)&&!b.left&&b.top)b.top=null;else if(a&&!b.top&&b.left)b.left=null;return b},_proportionallyResize:function(){if(this._proportionallyResizeElements.length)for(var b= +this.helper||this.element,a=0;a
');var a=e.browser.msie&&e.browser.version<7,c=a?1:0;a=a?2:-1;this.helper.addClass(this._helper).css({width:this.element.outerWidth()+a,height:this.element.outerHeight()+a,position:"absolute",left:this.elementOffset.left- +c+"px",top:this.elementOffset.top-c+"px",zIndex:++b.zIndex});this.helper.appendTo("body").disableSelection()}else this.helper=this.element},_change:{e:function(b,a){return{width:this.originalSize.width+a}},w:function(b,a){return{left:this.originalPosition.left+a,width:this.originalSize.width-a}},n:function(b,a,c){return{top:this.originalPosition.top+c,height:this.originalSize.height-c}},s:function(b,a,c){return{height:this.originalSize.height+c}},se:function(b,a,c){return e.extend(this._change.s.apply(this, +arguments),this._change.e.apply(this,[b,a,c]))},sw:function(b,a,c){return e.extend(this._change.s.apply(this,arguments),this._change.w.apply(this,[b,a,c]))},ne:function(b,a,c){return e.extend(this._change.n.apply(this,arguments),this._change.e.apply(this,[b,a,c]))},nw:function(b,a,c){return e.extend(this._change.n.apply(this,arguments),this._change.w.apply(this,[b,a,c]))}},_propagate:function(b,a){e.ui.plugin.call(this,b,[a,this.ui()]);b!="resize"&&this._trigger(b,a,this.ui())},plugins:{},ui:function(){return{originalElement:this.originalElement, +element:this.element,helper:this.helper,position:this.position,size:this.size,originalSize:this.originalSize,originalPosition:this.originalPosition}}});e.extend(e.ui.resizable,{version:"1.8.13"});e.ui.plugin.add("resizable","alsoResize",{start:function(){var b=e(this).data("resizable").options,a=function(c){e(c).each(function(){var d=e(this);d.data("resizable-alsoresize",{width:parseInt(d.width(),10),height:parseInt(d.height(),10),left:parseInt(d.css("left"),10),top:parseInt(d.css("top"),10),position:d.css("position")})})}; +if(typeof b.alsoResize=="object"&&!b.alsoResize.parentNode)if(b.alsoResize.length){b.alsoResize=b.alsoResize[0];a(b.alsoResize)}else e.each(b.alsoResize,function(c){a(c)});else a(b.alsoResize)},resize:function(b,a){var c=e(this).data("resizable");b=c.options;var d=c.originalSize,f=c.originalPosition,g={height:c.size.height-d.height||0,width:c.size.width-d.width||0,top:c.position.top-f.top||0,left:c.position.left-f.left||0},h=function(i,j){e(i).each(function(){var k=e(this),q=e(this).data("resizable-alsoresize"), +p={},r=j&&j.length?j:k.parents(a.originalElement[0]).length?["width","height"]:["width","height","top","left"];e.each(r,function(n,o){if((n=(q[o]||0)+(g[o]||0))&&n>=0)p[o]=n||null});if(e.browser.opera&&/relative/.test(k.css("position"))){c._revertToRelativePosition=true;k.css({position:"absolute",top:"auto",left:"auto"})}k.css(p)})};typeof b.alsoResize=="object"&&!b.alsoResize.nodeType?e.each(b.alsoResize,function(i,j){h(i,j)}):h(b.alsoResize)},stop:function(){var b=e(this).data("resizable"),a=b.options, +c=function(d){e(d).each(function(){var f=e(this);f.css({position:f.data("resizable-alsoresize").position})})};if(b._revertToRelativePosition){b._revertToRelativePosition=false;typeof a.alsoResize=="object"&&!a.alsoResize.nodeType?e.each(a.alsoResize,function(d){c(d)}):c(a.alsoResize)}e(this).removeData("resizable-alsoresize")}});e.ui.plugin.add("resizable","animate",{stop:function(b){var a=e(this).data("resizable"),c=a.options,d=a._proportionallyResizeElements,f=d.length&&/textarea/i.test(d[0].nodeName), +g=f&&e.ui.hasScroll(d[0],"left")?0:a.sizeDiff.height;f={width:a.size.width-(f?0:a.sizeDiff.width),height:a.size.height-g};g=parseInt(a.element.css("left"),10)+(a.position.left-a.originalPosition.left)||null;var h=parseInt(a.element.css("top"),10)+(a.position.top-a.originalPosition.top)||null;a.element.animate(e.extend(f,h&&g?{top:h,left:g}:{}),{duration:c.animateDuration,easing:c.animateEasing,step:function(){var i={width:parseInt(a.element.css("width"),10),height:parseInt(a.element.css("height"), +10),top:parseInt(a.element.css("top"),10),left:parseInt(a.element.css("left"),10)};d&&d.length&&e(d[0]).css({width:i.width,height:i.height});a._updateCache(i);a._propagate("resize",b)}})}});e.ui.plugin.add("resizable","containment",{start:function(){var b=e(this).data("resizable"),a=b.element,c=b.options.containment;if(a=c instanceof e?c.get(0):/parent/.test(c)?a.parent().get(0):c){b.containerElement=e(a);if(/document/.test(c)||c==document){b.containerOffset={left:0,top:0};b.containerPosition={left:0, +top:0};b.parentData={element:e(document),left:0,top:0,width:e(document).width(),height:e(document).height()||document.body.parentNode.scrollHeight}}else{var d=e(a),f=[];e(["Top","Right","Left","Bottom"]).each(function(i,j){f[i]=m(d.css("padding"+j))});b.containerOffset=d.offset();b.containerPosition=d.position();b.containerSize={height:d.innerHeight()-f[3],width:d.innerWidth()-f[1]};c=b.containerOffset;var g=b.containerSize.height,h=b.containerSize.width;h=e.ui.hasScroll(a,"left")?a.scrollWidth:h; +g=e.ui.hasScroll(a)?a.scrollHeight:g;b.parentData={element:a,left:c.left,top:c.top,width:h,height:g}}}},resize:function(b){var a=e(this).data("resizable"),c=a.options,d=a.containerOffset,f=a.position;b=a._aspectRatio||b.shiftKey;var g={top:0,left:0},h=a.containerElement;if(h[0]!=document&&/static/.test(h.css("position")))g=d;if(f.left<(a._helper?d.left:0)){a.size.width+=a._helper?a.position.left-d.left:a.position.left-g.left;if(b)a.size.height=a.size.width/c.aspectRatio;a.position.left=c.helper?d.left: +0}if(f.top<(a._helper?d.top:0)){a.size.height+=a._helper?a.position.top-d.top:a.position.top;if(b)a.size.width=a.size.height*c.aspectRatio;a.position.top=a._helper?d.top:0}a.offset.left=a.parentData.left+a.position.left;a.offset.top=a.parentData.top+a.position.top;c=Math.abs((a._helper?a.offset.left-g.left:a.offset.left-g.left)+a.sizeDiff.width);d=Math.abs((a._helper?a.offset.top-g.top:a.offset.top-d.top)+a.sizeDiff.height);f=a.containerElement.get(0)==a.element.parent().get(0);g=/relative|absolute/.test(a.containerElement.css("position")); +if(f&&g)c-=a.parentData.left;if(c+a.size.width>=a.parentData.width){a.size.width=a.parentData.width-c;if(b)a.size.height=a.size.width/a.aspectRatio}if(d+a.size.height>=a.parentData.height){a.size.height=a.parentData.height-d;if(b)a.size.width=a.size.height*a.aspectRatio}},stop:function(){var b=e(this).data("resizable"),a=b.options,c=b.containerOffset,d=b.containerPosition,f=b.containerElement,g=e(b.helper),h=g.offset(),i=g.outerWidth()-b.sizeDiff.width;g=g.outerHeight()-b.sizeDiff.height;b._helper&& +!a.animate&&/relative/.test(f.css("position"))&&e(this).css({left:h.left-d.left-c.left,width:i,height:g});b._helper&&!a.animate&&/static/.test(f.css("position"))&&e(this).css({left:h.left-d.left-c.left,width:i,height:g})}});e.ui.plugin.add("resizable","ghost",{start:function(){var b=e(this).data("resizable"),a=b.options,c=b.size;b.ghost=b.originalElement.clone();b.ghost.css({opacity:0.25,display:"block",position:"relative",height:c.height,width:c.width,margin:0,left:0,top:0}).addClass("ui-resizable-ghost").addClass(typeof a.ghost== +"string"?a.ghost:"");b.ghost.appendTo(b.helper)},resize:function(){var b=e(this).data("resizable");b.ghost&&b.ghost.css({position:"relative",height:b.size.height,width:b.size.width})},stop:function(){var b=e(this).data("resizable");b.ghost&&b.helper&&b.helper.get(0).removeChild(b.ghost.get(0))}});e.ui.plugin.add("resizable","grid",{resize:function(){var b=e(this).data("resizable"),a=b.options,c=b.size,d=b.originalSize,f=b.originalPosition,g=b.axis;a.grid=typeof a.grid=="number"?[a.grid,a.grid]:a.grid; +var h=Math.round((c.width-d.width)/(a.grid[0]||1))*(a.grid[0]||1);a=Math.round((c.height-d.height)/(a.grid[1]||1))*(a.grid[1]||1);if(/^(se|s|e)$/.test(g)){b.size.width=d.width+h;b.size.height=d.height+a}else if(/^(ne)$/.test(g)){b.size.width=d.width+h;b.size.height=d.height+a;b.position.top=f.top-a}else{if(/^(sw)$/.test(g)){b.size.width=d.width+h;b.size.height=d.height+a}else{b.size.width=d.width+h;b.size.height=d.height+a;b.position.top=f.top-a}b.position.left=f.left-h}}});var m=function(b){return parseInt(b, +10)||0},l=function(b){return!isNaN(parseInt(b,10))}})(jQuery); +;/* + * jQuery UI Selectable 1.8.13 + * + * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI/Selectables + * + * Depends: + * jquery.ui.core.js + * jquery.ui.mouse.js + * jquery.ui.widget.js + */ +(function(e){e.widget("ui.selectable",e.ui.mouse,{options:{appendTo:"body",autoRefresh:true,distance:0,filter:"*",tolerance:"touch"},_create:function(){var c=this;this.element.addClass("ui-selectable");this.dragged=false;var f;this.refresh=function(){f=e(c.options.filter,c.element[0]);f.each(function(){var d=e(this),b=d.offset();e.data(this,"selectable-item",{element:this,$element:d,left:b.left,top:b.top,right:b.left+d.outerWidth(),bottom:b.top+d.outerHeight(),startselected:false,selected:d.hasClass("ui-selected"), +selecting:d.hasClass("ui-selecting"),unselecting:d.hasClass("ui-unselecting")})})};this.refresh();this.selectees=f.addClass("ui-selectee");this._mouseInit();this.helper=e("
")},destroy:function(){this.selectees.removeClass("ui-selectee").removeData("selectable-item");this.element.removeClass("ui-selectable ui-selectable-disabled").removeData("selectable").unbind(".selectable");this._mouseDestroy();return this},_mouseStart:function(c){var f=this;this.opos=[c.pageX, +c.pageY];if(!this.options.disabled){var d=this.options;this.selectees=e(d.filter,this.element[0]);this._trigger("start",c);e(d.appendTo).append(this.helper);this.helper.css({left:c.clientX,top:c.clientY,width:0,height:0});d.autoRefresh&&this.refresh();this.selectees.filter(".ui-selected").each(function(){var b=e.data(this,"selectable-item");b.startselected=true;if(!c.metaKey){b.$element.removeClass("ui-selected");b.selected=false;b.$element.addClass("ui-unselecting");b.unselecting=true;f._trigger("unselecting", +c,{unselecting:b.element})}});e(c.target).parents().andSelf().each(function(){var b=e.data(this,"selectable-item");if(b){var g=!c.metaKey||!b.$element.hasClass("ui-selected");b.$element.removeClass(g?"ui-unselecting":"ui-selected").addClass(g?"ui-selecting":"ui-unselecting");b.unselecting=!g;b.selecting=g;(b.selected=g)?f._trigger("selecting",c,{selecting:b.element}):f._trigger("unselecting",c,{unselecting:b.element});return false}})}},_mouseDrag:function(c){var f=this;this.dragged=true;if(!this.options.disabled){var d= +this.options,b=this.opos[0],g=this.opos[1],h=c.pageX,i=c.pageY;if(b>h){var j=h;h=b;b=j}if(g>i){j=i;i=g;g=j}this.helper.css({left:b,top:g,width:h-b,height:i-g});this.selectees.each(function(){var a=e.data(this,"selectable-item");if(!(!a||a.element==f.element[0])){var k=false;if(d.tolerance=="touch")k=!(a.left>h||a.righti||a.bottomb&&a.rightg&&a.bottom *",opacity:false,placeholder:false,revert:false,scroll:true,scrollSensitivity:20,scrollSpeed:20,scope:"default",tolerance:"intersect",zIndex:1E3},_create:function(){var a=this.options;this.containerCache={};this.element.addClass("ui-sortable"); +this.refresh();this.floating=this.items.length?a.axis==="x"||/left|right/.test(this.items[0].item.css("float"))||/inline|table-cell/.test(this.items[0].item.css("display")):false;this.offset=this.element.offset();this._mouseInit()},destroy:function(){this.element.removeClass("ui-sortable ui-sortable-disabled").removeData("sortable").unbind(".sortable");this._mouseDestroy();for(var a=this.items.length-1;a>=0;a--)this.items[a].item.removeData("sortable-item");return this},_setOption:function(a,b){if(a=== +"disabled"){this.options[a]=b;this.widget()[b?"addClass":"removeClass"]("ui-sortable-disabled")}else d.Widget.prototype._setOption.apply(this,arguments)},_mouseCapture:function(a,b){if(this.reverting)return false;if(this.options.disabled||this.options.type=="static")return false;this._refreshItems(a);var c=null,e=this;d(a.target).parents().each(function(){if(d.data(this,"sortable-item")==e){c=d(this);return false}});if(d.data(a.target,"sortable-item")==e)c=d(a.target);if(!c)return false;if(this.options.handle&& +!b){var f=false;d(this.options.handle,c).find("*").andSelf().each(function(){if(this==a.target)f=true});if(!f)return false}this.currentItem=c;this._removeCurrentsFromItems();return true},_mouseStart:function(a,b,c){b=this.options;var e=this;this.currentContainer=this;this.refreshPositions();this.helper=this._createHelper(a);this._cacheHelperProportions();this._cacheMargins();this.scrollParent=this.helper.scrollParent();this.offset=this.currentItem.offset();this.offset={top:this.offset.top-this.margins.top, +left:this.offset.left-this.margins.left};this.helper.css("position","absolute");this.cssPosition=this.helper.css("position");d.extend(this.offset,{click:{left:a.pageX-this.offset.left,top:a.pageY-this.offset.top},parent:this._getParentOffset(),relative:this._getRelativeOffset()});this.originalPosition=this._generatePosition(a);this.originalPageX=a.pageX;this.originalPageY=a.pageY;b.cursorAt&&this._adjustOffsetFromHelper(b.cursorAt);this.domPosition={prev:this.currentItem.prev()[0],parent:this.currentItem.parent()[0]}; +this.helper[0]!=this.currentItem[0]&&this.currentItem.hide();this._createPlaceholder();b.containment&&this._setContainment();if(b.cursor){if(d("body").css("cursor"))this._storedCursor=d("body").css("cursor");d("body").css("cursor",b.cursor)}if(b.opacity){if(this.helper.css("opacity"))this._storedOpacity=this.helper.css("opacity");this.helper.css("opacity",b.opacity)}if(b.zIndex){if(this.helper.css("zIndex"))this._storedZIndex=this.helper.css("zIndex");this.helper.css("zIndex",b.zIndex)}if(this.scrollParent[0]!= +document&&this.scrollParent[0].tagName!="HTML")this.overflowOffset=this.scrollParent.offset();this._trigger("start",a,this._uiHash());this._preserveHelperProportions||this._cacheHelperProportions();if(!c)for(c=this.containers.length-1;c>=0;c--)this.containers[c]._trigger("activate",a,e._uiHash(this));if(d.ui.ddmanager)d.ui.ddmanager.current=this;d.ui.ddmanager&&!b.dropBehaviour&&d.ui.ddmanager.prepareOffsets(this,a);this.dragging=true;this.helper.addClass("ui-sortable-helper");this._mouseDrag(a); +return true},_mouseDrag:function(a){this.position=this._generatePosition(a);this.positionAbs=this._convertPositionTo("absolute");if(!this.lastPositionAbs)this.lastPositionAbs=this.positionAbs;if(this.options.scroll){var b=this.options,c=false;if(this.scrollParent[0]!=document&&this.scrollParent[0].tagName!="HTML"){if(this.overflowOffset.top+this.scrollParent[0].offsetHeight-a.pageY=0;b--){c=this.items[b];var e=c.item[0],f=this._intersectsWithPointer(c);if(f)if(e!=this.currentItem[0]&&this.placeholder[f==1?"next":"prev"]()[0]!=e&&!d.ui.contains(this.placeholder[0],e)&&(this.options.type=="semi-dynamic"?!d.ui.contains(this.element[0], +e):true)){this.direction=f==1?"down":"up";if(this.options.tolerance=="pointer"||this._intersectsWithSides(c))this._rearrange(a,c);else break;this._trigger("change",a,this._uiHash());break}}this._contactContainers(a);d.ui.ddmanager&&d.ui.ddmanager.drag(this,a);this._trigger("sort",a,this._uiHash());this.lastPositionAbs=this.positionAbs;return false},_mouseStop:function(a,b){if(a){d.ui.ddmanager&&!this.options.dropBehaviour&&d.ui.ddmanager.drop(this,a);if(this.options.revert){var c=this;b=c.placeholder.offset(); +c.reverting=true;d(this.helper).animate({left:b.left-this.offset.parent.left-c.margins.left+(this.offsetParent[0]==document.body?0:this.offsetParent[0].scrollLeft),top:b.top-this.offset.parent.top-c.margins.top+(this.offsetParent[0]==document.body?0:this.offsetParent[0].scrollTop)},parseInt(this.options.revert,10)||500,function(){c._clear(a)})}else this._clear(a,b);return false}},cancel:function(){var a=this;if(this.dragging){this._mouseUp({target:null});this.options.helper=="original"?this.currentItem.css(this._storedCSS).removeClass("ui-sortable-helper"): +this.currentItem.show();for(var b=this.containers.length-1;b>=0;b--){this.containers[b]._trigger("deactivate",null,a._uiHash(this));if(this.containers[b].containerCache.over){this.containers[b]._trigger("out",null,a._uiHash(this));this.containers[b].containerCache.over=0}}}if(this.placeholder){this.placeholder[0].parentNode&&this.placeholder[0].parentNode.removeChild(this.placeholder[0]);this.options.helper!="original"&&this.helper&&this.helper[0].parentNode&&this.helper.remove();d.extend(this,{helper:null, +dragging:false,reverting:false,_noFinalSort:null});this.domPosition.prev?d(this.domPosition.prev).after(this.currentItem):d(this.domPosition.parent).prepend(this.currentItem)}return this},serialize:function(a){var b=this._getItemsAsjQuery(a&&a.connected),c=[];a=a||{};d(b).each(function(){var e=(d(a.item||this).attr(a.attribute||"id")||"").match(a.expression||/(.+)[-=_](.+)/);if(e)c.push((a.key||e[1]+"[]")+"="+(a.key&&a.expression?e[1]:e[2]))});!c.length&&a.key&&c.push(a.key+"=");return c.join("&")}, +toArray:function(a){var b=this._getItemsAsjQuery(a&&a.connected),c=[];a=a||{};b.each(function(){c.push(d(a.item||this).attr(a.attribute||"id")||"")});return c},_intersectsWith:function(a){var b=this.positionAbs.left,c=b+this.helperProportions.width,e=this.positionAbs.top,f=e+this.helperProportions.height,g=a.left,h=g+a.width,i=a.top,k=i+a.height,j=this.offset.click.top,l=this.offset.click.left;j=e+j>i&&e+jg&&b+la[this.floating?"width":"height"]?j:g0?"down":"up")},_getDragHorizontalDirection:function(){var a=this.positionAbs.left-this.lastPositionAbs.left;return a!=0&&(a>0?"right":"left")},refresh:function(a){this._refreshItems(a);this.refreshPositions();return this},_connectWith:function(){var a=this.options;return a.connectWith.constructor==String?[a.connectWith]:a.connectWith},_getItemsAsjQuery:function(a){var b=[],c=[],e=this._connectWith(); +if(e&&a)for(a=e.length-1;a>=0;a--)for(var f=d(e[a]),g=f.length-1;g>=0;g--){var h=d.data(f[g],"sortable");if(h&&h!=this&&!h.options.disabled)c.push([d.isFunction(h.options.items)?h.options.items.call(h.element):d(h.options.items,h.element).not(".ui-sortable-helper").not(".ui-sortable-placeholder"),h])}c.push([d.isFunction(this.options.items)?this.options.items.call(this.element,null,{options:this.options,item:this.currentItem}):d(this.options.items,this.element).not(".ui-sortable-helper").not(".ui-sortable-placeholder"), +this]);for(a=c.length-1;a>=0;a--)c[a][0].each(function(){b.push(this)});return d(b)},_removeCurrentsFromItems:function(){for(var a=this.currentItem.find(":data(sortable-item)"),b=0;b=0;f--)for(var g=d(e[f]),h=g.length-1;h>=0;h--){var i=d.data(g[h],"sortable");if(i&&i!=this&&!i.options.disabled){c.push([d.isFunction(i.options.items)?i.options.items.call(i.element[0],a,{item:this.currentItem}):d(i.options.items,i.element),i]);this.containers.push(i)}}for(f=c.length-1;f>=0;f--){a=c[f][1];e=c[f][0];h=0;for(g=e.length;h=0;b--){var c=this.items[b];if(!(c.instance!=this.currentContainer&&this.currentContainer&&c.item[0]!=this.currentItem[0])){var e=this.options.toleranceElement?d(this.options.toleranceElement,c.item):c.item;if(!a){c.width=e.outerWidth();c.height=e.outerHeight()}e=e.offset();c.left=e.left;c.top=e.top}}if(this.options.custom&&this.options.custom.refreshContainers)this.options.custom.refreshContainers.call(this);else for(b= +this.containers.length-1;b>=0;b--){e=this.containers[b].element.offset();this.containers[b].containerCache.left=e.left;this.containers[b].containerCache.top=e.top;this.containers[b].containerCache.width=this.containers[b].element.outerWidth();this.containers[b].containerCache.height=this.containers[b].element.outerHeight()}return this},_createPlaceholder:function(a){var b=a||this,c=b.options;if(!c.placeholder||c.placeholder.constructor==String){var e=c.placeholder;c.placeholder={element:function(){var f= +d(document.createElement(b.currentItem[0].nodeName)).addClass(e||b.currentItem[0].className+" ui-sortable-placeholder").removeClass("ui-sortable-helper")[0];if(!e)f.style.visibility="hidden";return f},update:function(f,g){if(!(e&&!c.forcePlaceholderSize)){g.height()||g.height(b.currentItem.innerHeight()-parseInt(b.currentItem.css("paddingTop")||0,10)-parseInt(b.currentItem.css("paddingBottom")||0,10));g.width()||g.width(b.currentItem.innerWidth()-parseInt(b.currentItem.css("paddingLeft")||0,10)-parseInt(b.currentItem.css("paddingRight")|| +0,10))}}}}b.placeholder=d(c.placeholder.element.call(b.element,b.currentItem));b.currentItem.after(b.placeholder);c.placeholder.update(b,b.placeholder)},_contactContainers:function(a){for(var b=null,c=null,e=this.containers.length-1;e>=0;e--)if(!d.ui.contains(this.currentItem[0],this.containers[e].element[0]))if(this._intersectsWith(this.containers[e].containerCache)){if(!(b&&d.ui.contains(this.containers[e].element[0],b.element[0]))){b=this.containers[e];c=e}}else if(this.containers[e].containerCache.over){this.containers[e]._trigger("out", +a,this._uiHash(this));this.containers[e].containerCache.over=0}if(b)if(this.containers.length===1){this.containers[c]._trigger("over",a,this._uiHash(this));this.containers[c].containerCache.over=1}else if(this.currentContainer!=this.containers[c]){b=1E4;e=null;for(var f=this.positionAbs[this.containers[c].floating?"left":"top"],g=this.items.length-1;g>=0;g--)if(d.ui.contains(this.containers[c].element[0],this.items[g].item[0])){var h=this.items[g][this.containers[c].floating?"left":"top"];if(Math.abs(h- +f)this.containment[2])f=this.containment[2]+this.offset.click.left;if(a.pageY-this.offset.click.top>this.containment[3])g=this.containment[3]+this.offset.click.top}if(b.grid){g=this.originalPageY+Math.round((g- +this.originalPageY)/b.grid[1])*b.grid[1];g=this.containment?!(g-this.offset.click.topthis.containment[3])?g:!(g-this.offset.click.topthis.containment[2])?f:!(f-this.offset.click.left=0;e--)if(d.ui.contains(this.containers[e].element[0],this.currentItem[0])&&!b){c.push(function(f){return function(g){f._trigger("receive",g,this._uiHash(this))}}.call(this,this.containers[e]));c.push(function(f){return function(g){f._trigger("update",g,this._uiHash(this))}}.call(this,this.containers[e]))}}for(e=this.containers.length-1;e>=0;e--){b||c.push(function(f){return function(g){f._trigger("deactivate",g,this._uiHash(this))}}.call(this, +this.containers[e]));if(this.containers[e].containerCache.over){c.push(function(f){return function(g){f._trigger("out",g,this._uiHash(this))}}.call(this,this.containers[e]));this.containers[e].containerCache.over=0}}this._storedCursor&&d("body").css("cursor",this._storedCursor);this._storedOpacity&&this.helper.css("opacity",this._storedOpacity);if(this._storedZIndex)this.helper.css("zIndex",this._storedZIndex=="auto"?"":this._storedZIndex);this.dragging=false;if(this.cancelHelperRemoval){if(!b){this._trigger("beforeStop", +a,this._uiHash());for(e=0;e li > :first-child,> :not(li):even",icons:{header:"ui-icon-triangle-1-e",headerSelected:"ui-icon-triangle-1-s"},navigation:false,navigationFilter:function(){return this.href.toLowerCase()===location.href.toLowerCase()}},_create:function(){var a=this,b=a.options;a.running=0;a.element.addClass("ui-accordion ui-widget ui-helper-reset").children("li").addClass("ui-accordion-li-fix"); +a.headers=a.element.find(b.header).addClass("ui-accordion-header ui-helper-reset ui-state-default ui-corner-all").bind("mouseenter.accordion",function(){b.disabled||c(this).addClass("ui-state-hover")}).bind("mouseleave.accordion",function(){b.disabled||c(this).removeClass("ui-state-hover")}).bind("focus.accordion",function(){b.disabled||c(this).addClass("ui-state-focus")}).bind("blur.accordion",function(){b.disabled||c(this).removeClass("ui-state-focus")});a.headers.next().addClass("ui-accordion-content ui-helper-reset ui-widget-content ui-corner-bottom"); +if(b.navigation){var d=a.element.find("a").filter(b.navigationFilter).eq(0);if(d.length){var h=d.closest(".ui-accordion-header");a.active=h.length?h:d.closest(".ui-accordion-content").prev()}}a.active=a._findActive(a.active||b.active).addClass("ui-state-default ui-state-active").toggleClass("ui-corner-all").toggleClass("ui-corner-top");a.active.next().addClass("ui-accordion-content-active");a._createIcons();a.resize();a.element.attr("role","tablist");a.headers.attr("role","tab").bind("keydown.accordion", +function(f){return a._keydown(f)}).next().attr("role","tabpanel");a.headers.not(a.active||"").attr({"aria-expanded":"false","aria-selected":"false",tabIndex:-1}).next().hide();a.active.length?a.active.attr({"aria-expanded":"true","aria-selected":"true",tabIndex:0}):a.headers.eq(0).attr("tabIndex",0);c.browser.safari||a.headers.find("a").attr("tabIndex",-1);b.event&&a.headers.bind(b.event.split(" ").join(".accordion ")+".accordion",function(f){a._clickHandler.call(a,f,this);f.preventDefault()})},_createIcons:function(){var a= +this.options;if(a.icons){c("").addClass("ui-icon "+a.icons.header).prependTo(this.headers);this.active.children(".ui-icon").toggleClass(a.icons.header).toggleClass(a.icons.headerSelected);this.element.addClass("ui-accordion-icons")}},_destroyIcons:function(){this.headers.children(".ui-icon").remove();this.element.removeClass("ui-accordion-icons")},destroy:function(){var a=this.options;this.element.removeClass("ui-accordion ui-widget ui-helper-reset").removeAttr("role");this.headers.unbind(".accordion").removeClass("ui-accordion-header ui-accordion-disabled ui-helper-reset ui-state-default ui-corner-all ui-state-active ui-state-disabled ui-corner-top").removeAttr("role").removeAttr("aria-expanded").removeAttr("aria-selected").removeAttr("tabIndex"); +this.headers.find("a").removeAttr("tabIndex");this._destroyIcons();var b=this.headers.next().css("display","").removeAttr("role").removeClass("ui-helper-reset ui-widget-content ui-corner-bottom ui-accordion-content ui-accordion-content-active ui-accordion-disabled ui-state-disabled");if(a.autoHeight||a.fillHeight)b.css("height","");return c.Widget.prototype.destroy.call(this)},_setOption:function(a,b){c.Widget.prototype._setOption.apply(this,arguments);a=="active"&&this.activate(b);if(a=="icons"){this._destroyIcons(); +b&&this._createIcons()}if(a=="disabled")this.headers.add(this.headers.next())[b?"addClass":"removeClass"]("ui-accordion-disabled ui-state-disabled")},_keydown:function(a){if(!(this.options.disabled||a.altKey||a.ctrlKey)){var b=c.ui.keyCode,d=this.headers.length,h=this.headers.index(a.target),f=false;switch(a.keyCode){case b.RIGHT:case b.DOWN:f=this.headers[(h+1)%d];break;case b.LEFT:case b.UP:f=this.headers[(h-1+d)%d];break;case b.SPACE:case b.ENTER:this._clickHandler({target:a.target},a.target); +a.preventDefault()}if(f){c(a.target).attr("tabIndex",-1);c(f).attr("tabIndex",0);f.focus();return false}return true}},resize:function(){var a=this.options,b;if(a.fillSpace){if(c.browser.msie){var d=this.element.parent().css("overflow");this.element.parent().css("overflow","hidden")}b=this.element.parent().height();c.browser.msie&&this.element.parent().css("overflow",d);this.headers.each(function(){b-=c(this).outerHeight(true)});this.headers.next().each(function(){c(this).height(Math.max(0,b-c(this).innerHeight()+ +c(this).height()))}).css("overflow","auto")}else if(a.autoHeight){b=0;this.headers.next().each(function(){b=Math.max(b,c(this).height("").height())}).height(b)}return this},activate:function(a){this.options.active=a;a=this._findActive(a)[0];this._clickHandler({target:a},a);return this},_findActive:function(a){return a?typeof a==="number"?this.headers.filter(":eq("+a+")"):this.headers.not(this.headers.not(a)):a===false?c([]):this.headers.filter(":eq(0)")},_clickHandler:function(a,b){var d=this.options; +if(!d.disabled)if(a.target){a=c(a.currentTarget||b);b=a[0]===this.active[0];d.active=d.collapsible&&b?false:this.headers.index(a);if(!(this.running||!d.collapsible&&b)){var h=this.active;j=a.next();g=this.active.next();e={options:d,newHeader:b&&d.collapsible?c([]):a,oldHeader:this.active,newContent:b&&d.collapsible?c([]):j,oldContent:g};var f=this.headers.index(this.active[0])>this.headers.index(a[0]);this.active=b?c([]):a;this._toggle(j,g,e,b,f);h.removeClass("ui-state-active ui-corner-top").addClass("ui-state-default ui-corner-all").children(".ui-icon").removeClass(d.icons.headerSelected).addClass(d.icons.header); +if(!b){a.removeClass("ui-state-default ui-corner-all").addClass("ui-state-active ui-corner-top").children(".ui-icon").removeClass(d.icons.header).addClass(d.icons.headerSelected);a.next().addClass("ui-accordion-content-active")}}}else if(d.collapsible){this.active.removeClass("ui-state-active ui-corner-top").addClass("ui-state-default ui-corner-all").children(".ui-icon").removeClass(d.icons.headerSelected).addClass(d.icons.header);this.active.next().addClass("ui-accordion-content-active");var g=this.active.next(), +e={options:d,newHeader:c([]),oldHeader:d.active,newContent:c([]),oldContent:g},j=this.active=c([]);this._toggle(j,g,e)}},_toggle:function(a,b,d,h,f){var g=this,e=g.options;g.toShow=a;g.toHide=b;g.data=d;var j=function(){if(g)return g._completed.apply(g,arguments)};g._trigger("changestart",null,g.data);g.running=b.size()===0?a.size():b.size();if(e.animated){d={};d=e.collapsible&&h?{toShow:c([]),toHide:b,complete:j,down:f,autoHeight:e.autoHeight||e.fillSpace}:{toShow:a,toHide:b,complete:j,down:f,autoHeight:e.autoHeight|| +e.fillSpace};if(!e.proxied)e.proxied=e.animated;if(!e.proxiedDuration)e.proxiedDuration=e.duration;e.animated=c.isFunction(e.proxied)?e.proxied(d):e.proxied;e.duration=c.isFunction(e.proxiedDuration)?e.proxiedDuration(d):e.proxiedDuration;h=c.ui.accordion.animations;var i=e.duration,k=e.animated;if(k&&!h[k]&&!c.easing[k])k="slide";h[k]||(h[k]=function(l){this.slide(l,{easing:k,duration:i||700})});h[k](d)}else{if(e.collapsible&&h)a.toggle();else{b.hide();a.show()}j(true)}b.prev().attr({"aria-expanded":"false", +"aria-selected":"false",tabIndex:-1}).blur();a.prev().attr({"aria-expanded":"true","aria-selected":"true",tabIndex:0}).focus()},_completed:function(a){this.running=a?0:--this.running;if(!this.running){this.options.clearStyle&&this.toShow.add(this.toHide).css({height:"",overflow:""});this.toHide.removeClass("ui-accordion-content-active");if(this.toHide.length)this.toHide.parent()[0].className=this.toHide.parent()[0].className;this._trigger("change",null,this.data)}}});c.extend(c.ui.accordion,{version:"1.8.13", +animations:{slide:function(a,b){a=c.extend({easing:"swing",duration:300},a,b);if(a.toHide.size())if(a.toShow.size()){var d=a.toShow.css("overflow"),h=0,f={},g={},e;b=a.toShow;e=b[0].style.width;b.width(parseInt(b.parent().width(),10)-parseInt(b.css("paddingLeft"),10)-parseInt(b.css("paddingRight"),10)-(parseInt(b.css("borderLeftWidth"),10)||0)-(parseInt(b.css("borderRightWidth"),10)||0));c.each(["height","paddingTop","paddingBottom"],function(j,i){g[i]="hide";j=(""+c.css(a.toShow[0],i)).match(/^([\d+-.]+)(.*)$/); +f[i]={value:j[1],unit:j[2]||"px"}});a.toShow.css({height:0,overflow:"hidden"}).show();a.toHide.filter(":hidden").each(a.complete).end().filter(":visible").animate(g,{step:function(j,i){if(i.prop=="height")h=i.end-i.start===0?0:(i.now-i.start)/(i.end-i.start);a.toShow[0].style[i.prop]=h*f[i.prop].value+f[i.prop].unit},duration:a.duration,easing:a.easing,complete:function(){a.autoHeight||a.toShow.css("height","");a.toShow.css({width:e,overflow:d});a.complete()}})}else a.toHide.animate({height:"hide", +paddingTop:"hide",paddingBottom:"hide"},a);else a.toShow.animate({height:"show",paddingTop:"show",paddingBottom:"show"},a)},bounceslide:function(a){this.slide(a,{easing:a.down?"easeOutBounce":"swing",duration:a.down?1E3:200})}}})})(jQuery); +;/* + * jQuery UI Autocomplete 1.8.13 + * + * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI/Autocomplete + * + * Depends: + * jquery.ui.core.js + * jquery.ui.widget.js + * jquery.ui.position.js + */ +(function(d){var e=0;d.widget("ui.autocomplete",{options:{appendTo:"body",autoFocus:false,delay:300,minLength:1,position:{my:"left top",at:"left bottom",collision:"none"},source:null},pending:0,_create:function(){var a=this,b=this.element[0].ownerDocument,g;this.element.addClass("ui-autocomplete-input").attr("autocomplete","off").attr({role:"textbox","aria-autocomplete":"list","aria-haspopup":"true"}).bind("keydown.autocomplete",function(c){if(!(a.options.disabled||a.element.attr("readonly"))){g= +false;var f=d.ui.keyCode;switch(c.keyCode){case f.PAGE_UP:a._move("previousPage",c);break;case f.PAGE_DOWN:a._move("nextPage",c);break;case f.UP:a._move("previous",c);c.preventDefault();break;case f.DOWN:a._move("next",c);c.preventDefault();break;case f.ENTER:case f.NUMPAD_ENTER:if(a.menu.active){g=true;c.preventDefault()}case f.TAB:if(!a.menu.active)return;a.menu.select(c);break;case f.ESCAPE:a.element.val(a.term);a.close(c);break;default:clearTimeout(a.searching);a.searching=setTimeout(function(){if(a.term!= +a.element.val()){a.selectedItem=null;a.search(null,c)}},a.options.delay);break}}}).bind("keypress.autocomplete",function(c){if(g){g=false;c.preventDefault()}}).bind("focus.autocomplete",function(){if(!a.options.disabled){a.selectedItem=null;a.previous=a.element.val()}}).bind("blur.autocomplete",function(c){if(!a.options.disabled){clearTimeout(a.searching);a.closing=setTimeout(function(){a.close(c);a._change(c)},150)}});this._initSource();this.response=function(){return a._response.apply(a,arguments)}; +this.menu=d("
    ").addClass("ui-autocomplete").appendTo(d(this.options.appendTo||"body",b)[0]).mousedown(function(c){var f=a.menu.element[0];d(c.target).closest(".ui-menu-item").length||setTimeout(function(){d(document).one("mousedown",function(h){h.target!==a.element[0]&&h.target!==f&&!d.ui.contains(f,h.target)&&a.close()})},1);setTimeout(function(){clearTimeout(a.closing)},13)}).menu({focus:function(c,f){f=f.item.data("item.autocomplete");false!==a._trigger("focus",c,{item:f})&&/^key/.test(c.originalEvent.type)&& +a.element.val(f.value)},selected:function(c,f){var h=f.item.data("item.autocomplete"),i=a.previous;if(a.element[0]!==b.activeElement){a.element.focus();a.previous=i;setTimeout(function(){a.previous=i;a.selectedItem=h},1)}false!==a._trigger("select",c,{item:h})&&a.element.val(h.value);a.term=a.element.val();a.close(c);a.selectedItem=h},blur:function(){a.menu.element.is(":visible")&&a.element.val()!==a.term&&a.element.val(a.term)}}).zIndex(this.element.zIndex()+1).css({top:0,left:0}).hide().data("menu"); +d.fn.bgiframe&&this.menu.element.bgiframe()},destroy:function(){this.element.removeClass("ui-autocomplete-input").removeAttr("autocomplete").removeAttr("role").removeAttr("aria-autocomplete").removeAttr("aria-haspopup");this.menu.element.remove();d.Widget.prototype.destroy.call(this)},_setOption:function(a,b){d.Widget.prototype._setOption.apply(this,arguments);a==="source"&&this._initSource();if(a==="appendTo")this.menu.element.appendTo(d(b||"body",this.element[0].ownerDocument)[0]);a==="disabled"&& +b&&this.xhr&&this.xhr.abort()},_initSource:function(){var a=this,b,g;if(d.isArray(this.options.source)){b=this.options.source;this.source=function(c,f){f(d.ui.autocomplete.filter(b,c.term))}}else if(typeof this.options.source==="string"){g=this.options.source;this.source=function(c,f){a.xhr&&a.xhr.abort();a.xhr=d.ajax({url:g,data:c,dataType:"json",autocompleteRequest:++e,success:function(h){this.autocompleteRequest===e&&f(h)},error:function(){this.autocompleteRequest===e&&f([])}})}}else this.source= +this.options.source},search:function(a,b){a=a!=null?a:this.element.val();this.term=this.element.val();if(a.length").data("item.autocomplete",b).append(d("").text(b.label)).appendTo(a)},_move:function(a,b){if(this.menu.element.is(":visible"))if(this.menu.first()&&/^previous/.test(a)||this.menu.last()&&/^next/.test(a)){this.element.val(this.term);this.menu.deactivate()}else this.menu[a](b);else this.search(null,b)},widget:function(){return this.menu.element}});d.extend(d.ui.autocomplete,{escapeRegex:function(a){return a.replace(/[-[\]{}()*+?.,\\^$|#\s]/g, +"\\$&")},filter:function(a,b){var g=new RegExp(d.ui.autocomplete.escapeRegex(b),"i");return d.grep(a,function(c){return g.test(c.label||c.value||c)})}})})(jQuery); +(function(d){d.widget("ui.menu",{_create:function(){var e=this;this.element.addClass("ui-menu ui-widget ui-widget-content ui-corner-all").attr({role:"listbox","aria-activedescendant":"ui-active-menuitem"}).click(function(a){if(d(a.target).closest(".ui-menu-item a").length){a.preventDefault();e.select(a)}});this.refresh()},refresh:function(){var e=this;this.element.children("li:not(.ui-menu-item):has(a)").addClass("ui-menu-item").attr("role","menuitem").children("a").addClass("ui-corner-all").attr("tabindex", +-1).mouseenter(function(a){e.activate(a,d(this).parent())}).mouseleave(function(){e.deactivate()})},activate:function(e,a){this.deactivate();if(this.hasScroll()){var b=a.offset().top-this.element.offset().top,g=this.element.scrollTop(),c=this.element.height();if(b<0)this.element.scrollTop(g+b);else b>=c&&this.element.scrollTop(g+b-c+a.height())}this.active=a.eq(0).children("a").addClass("ui-state-hover").attr("id","ui-active-menuitem").end();this._trigger("focus",e,{item:a})},deactivate:function(){if(this.active){this.active.children("a").removeClass("ui-state-hover").removeAttr("id"); +this._trigger("blur");this.active=null}},next:function(e){this.move("next",".ui-menu-item:first",e)},previous:function(e){this.move("prev",".ui-menu-item:last",e)},first:function(){return this.active&&!this.active.prevAll(".ui-menu-item").length},last:function(){return this.active&&!this.active.nextAll(".ui-menu-item").length},move:function(e,a,b){if(this.active){e=this.active[e+"All"](".ui-menu-item").eq(0);e.length?this.activate(b,e):this.activate(b,this.element.children(a))}else this.activate(b, +this.element.children(a))},nextPage:function(e){if(this.hasScroll())if(!this.active||this.last())this.activate(e,this.element.children(".ui-menu-item:first"));else{var a=this.active.offset().top,b=this.element.height(),g=this.element.children(".ui-menu-item").filter(function(){var c=d(this).offset().top-a-b+d(this).height();return c<10&&c>-10});g.length||(g=this.element.children(".ui-menu-item:last"));this.activate(e,g)}else this.activate(e,this.element.children(".ui-menu-item").filter(!this.active|| +this.last()?":first":":last"))},previousPage:function(e){if(this.hasScroll())if(!this.active||this.first())this.activate(e,this.element.children(".ui-menu-item:last"));else{var a=this.active.offset().top,b=this.element.height();result=this.element.children(".ui-menu-item").filter(function(){var g=d(this).offset().top-a+b-d(this).height();return g<10&&g>-10});result.length||(result=this.element.children(".ui-menu-item:first"));this.activate(e,result)}else this.activate(e,this.element.children(".ui-menu-item").filter(!this.active|| +this.first()?":last":":first"))},hasScroll:function(){return this.element.height()").addClass("ui-button-text").html(this.options.label).appendTo(b.empty()).text(),d=this.options.icons,f=d.primary&&d.secondary,e=[];if(d.primary||d.secondary){if(this.options.text)e.push("ui-button-text-icon"+(f?"s":d.primary?"-primary":"-secondary"));d.primary&&b.prepend("");d.secondary&&b.append("");if(!this.options.text){e.push(f?"ui-button-icons-only": +"ui-button-icon-only");this.hasTitle||b.attr("title",c)}}else e.push("ui-button-text-only");b.addClass(e.join(" "))}}});a.widget("ui.buttonset",{options:{items:":button, :submit, :reset, :checkbox, :radio, a, :data(button)"},_create:function(){this.element.addClass("ui-buttonset")},_init:function(){this.refresh()},_setOption:function(b,c){b==="disabled"&&this.buttons.button("option",b,c);a.Widget.prototype._setOption.apply(this,arguments)},refresh:function(){this.buttons=this.element.find(this.options.items).filter(":ui-button").button("refresh").end().not(":ui-button").button().end().map(function(){return a(this).button("widget")[0]}).removeClass("ui-corner-all ui-corner-left ui-corner-right").filter(":first").addClass("ui-corner-left").end().filter(":last").addClass("ui-corner-right").end().end()}, +destroy:function(){this.element.removeClass("ui-buttonset");this.buttons.map(function(){return a(this).button("widget")[0]}).removeClass("ui-corner-left ui-corner-right").end().button("destroy");a.Widget.prototype.destroy.call(this)}})})(jQuery); +;/* + * jQuery UI Dialog 1.8.13 + * + * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI/Dialog + * + * Depends: + * jquery.ui.core.js + * jquery.ui.widget.js + * jquery.ui.button.js + * jquery.ui.draggable.js + * jquery.ui.mouse.js + * jquery.ui.position.js + * jquery.ui.resizable.js + */ +(function(c,l){var m={buttons:true,height:true,maxHeight:true,maxWidth:true,minHeight:true,minWidth:true,width:true},n={maxHeight:true,maxWidth:true,minHeight:true,minWidth:true},o=c.attrFn||{val:true,css:true,html:true,text:true,data:true,width:true,height:true,offset:true,click:true};c.widget("ui.dialog",{options:{autoOpen:true,buttons:{},closeOnEscape:true,closeText:"close",dialogClass:"",draggable:true,hide:null,height:"auto",maxHeight:false,maxWidth:false,minHeight:150,minWidth:150,modal:false, +position:{my:"center",at:"center",collision:"fit",using:function(a){var b=c(this).css(a).offset().top;b<0&&c(this).css("top",a.top-b)}},resizable:true,show:null,stack:true,title:"",width:300,zIndex:1E3},_create:function(){this.originalTitle=this.element.attr("title");if(typeof this.originalTitle!=="string")this.originalTitle="";this.options.title=this.options.title||this.originalTitle;var a=this,b=a.options,d=b.title||" ",e=c.ui.dialog.getTitleId(a.element),g=(a.uiDialog=c("
    ")).appendTo(document.body).hide().addClass("ui-dialog ui-widget ui-widget-content ui-corner-all "+ +b.dialogClass).css({zIndex:b.zIndex}).attr("tabIndex",-1).css("outline",0).keydown(function(i){if(b.closeOnEscape&&i.keyCode&&i.keyCode===c.ui.keyCode.ESCAPE){a.close(i);i.preventDefault()}}).attr({role:"dialog","aria-labelledby":e}).mousedown(function(i){a.moveToTop(false,i)});a.element.show().removeAttr("title").addClass("ui-dialog-content ui-widget-content").appendTo(g);var f=(a.uiDialogTitlebar=c("
    ")).addClass("ui-dialog-titlebar ui-widget-header ui-corner-all ui-helper-clearfix").prependTo(g), +h=c('').addClass("ui-dialog-titlebar-close ui-corner-all").attr("role","button").hover(function(){h.addClass("ui-state-hover")},function(){h.removeClass("ui-state-hover")}).focus(function(){h.addClass("ui-state-focus")}).blur(function(){h.removeClass("ui-state-focus")}).click(function(i){a.close(i);return false}).appendTo(f);(a.uiDialogTitlebarCloseText=c("")).addClass("ui-icon ui-icon-closethick").text(b.closeText).appendTo(h);c("").addClass("ui-dialog-title").attr("id", +e).html(d).prependTo(f);if(c.isFunction(b.beforeclose)&&!c.isFunction(b.beforeClose))b.beforeClose=b.beforeclose;f.find("*").add(f).disableSelection();b.draggable&&c.fn.draggable&&a._makeDraggable();b.resizable&&c.fn.resizable&&a._makeResizable();a._createButtons(b.buttons);a._isOpen=false;c.fn.bgiframe&&g.bgiframe()},_init:function(){this.options.autoOpen&&this.open()},destroy:function(){var a=this;a.overlay&&a.overlay.destroy();a.uiDialog.hide();a.element.unbind(".dialog").removeData("dialog").removeClass("ui-dialog-content ui-widget-content").hide().appendTo("body"); +a.uiDialog.remove();a.originalTitle&&a.element.attr("title",a.originalTitle);return a},widget:function(){return this.uiDialog},close:function(a){var b=this,d,e;if(false!==b._trigger("beforeClose",a)){b.overlay&&b.overlay.destroy();b.uiDialog.unbind("keypress.ui-dialog");b._isOpen=false;if(b.options.hide)b.uiDialog.hide(b.options.hide,function(){b._trigger("close",a)});else{b.uiDialog.hide();b._trigger("close",a)}c.ui.dialog.overlay.resize();if(b.options.modal){d=0;c(".ui-dialog").each(function(){if(this!== +b.uiDialog[0]){e=c(this).css("z-index");isNaN(e)||(d=Math.max(d,e))}});c.ui.dialog.maxZ=d}return b}},isOpen:function(){return this._isOpen},moveToTop:function(a,b){var d=this,e=d.options;if(e.modal&&!a||!e.stack&&!e.modal)return d._trigger("focus",b);if(e.zIndex>c.ui.dialog.maxZ)c.ui.dialog.maxZ=e.zIndex;if(d.overlay){c.ui.dialog.maxZ+=1;d.overlay.$el.css("z-index",c.ui.dialog.overlay.maxZ=c.ui.dialog.maxZ)}a={scrollTop:d.element.attr("scrollTop"),scrollLeft:d.element.attr("scrollLeft")};c.ui.dialog.maxZ+= +1;d.uiDialog.css("z-index",c.ui.dialog.maxZ);d.element.attr(a);d._trigger("focus",b);return d},open:function(){if(!this._isOpen){var a=this,b=a.options,d=a.uiDialog;a.overlay=b.modal?new c.ui.dialog.overlay(a):null;a._size();a._position(b.position);d.show(b.show);a.moveToTop(true);b.modal&&d.bind("keypress.ui-dialog",function(e){if(e.keyCode===c.ui.keyCode.TAB){var g=c(":tabbable",this),f=g.filter(":first");g=g.filter(":last");if(e.target===g[0]&&!e.shiftKey){f.focus(1);return false}else if(e.target=== +f[0]&&e.shiftKey){g.focus(1);return false}}});c(a.element.find(":tabbable").get().concat(d.find(".ui-dialog-buttonpane :tabbable").get().concat(d.get()))).eq(0).focus();a._isOpen=true;a._trigger("open");return a}},_createButtons:function(a){var b=this,d=false,e=c("
    ").addClass("ui-dialog-buttonpane ui-widget-content ui-helper-clearfix"),g=c("
    ").addClass("ui-dialog-buttonset").appendTo(e);b.uiDialog.find(".ui-dialog-buttonpane").remove();typeof a==="object"&&a!==null&&c.each(a, +function(){return!(d=true)});if(d){c.each(a,function(f,h){h=c.isFunction(h)?{click:h,text:f}:h;var i=c('').click(function(){h.click.apply(b.element[0],arguments)}).appendTo(g);c.each(h,function(j,k){if(j!=="click")j in o?i[j](k):i.attr(j,k)});c.fn.button&&i.button()});e.appendTo(b.uiDialog)}},_makeDraggable:function(){function a(f){return{position:f.position,offset:f.offset}}var b=this,d=b.options,e=c(document),g;b.uiDialog.draggable({cancel:".ui-dialog-content, .ui-dialog-titlebar-close", +handle:".ui-dialog-titlebar",containment:"document",start:function(f,h){g=d.height==="auto"?"auto":c(this).height();c(this).height(c(this).height()).addClass("ui-dialog-dragging");b._trigger("dragStart",f,a(h))},drag:function(f,h){b._trigger("drag",f,a(h))},stop:function(f,h){d.position=[h.position.left-e.scrollLeft(),h.position.top-e.scrollTop()];c(this).removeClass("ui-dialog-dragging").height(g);b._trigger("dragStop",f,a(h));c.ui.dialog.overlay.resize()}})},_makeResizable:function(a){function b(f){return{originalPosition:f.originalPosition, +originalSize:f.originalSize,position:f.position,size:f.size}}a=a===l?this.options.resizable:a;var d=this,e=d.options,g=d.uiDialog.css("position");a=typeof a==="string"?a:"n,e,s,w,se,sw,ne,nw";d.uiDialog.resizable({cancel:".ui-dialog-content",containment:"document",alsoResize:d.element,maxWidth:e.maxWidth,maxHeight:e.maxHeight,minWidth:e.minWidth,minHeight:d._minHeight(),handles:a,start:function(f,h){c(this).addClass("ui-dialog-resizing");d._trigger("resizeStart",f,b(h))},resize:function(f,h){d._trigger("resize", +f,b(h))},stop:function(f,h){c(this).removeClass("ui-dialog-resizing");e.height=c(this).height();e.width=c(this).width();d._trigger("resizeStop",f,b(h));c.ui.dialog.overlay.resize()}}).css("position",g).find(".ui-resizable-se").addClass("ui-icon ui-icon-grip-diagonal-se")},_minHeight:function(){var a=this.options;return a.height==="auto"?a.minHeight:Math.min(a.minHeight,a.height)},_position:function(a){var b=[],d=[0,0],e;if(a){if(typeof a==="string"||typeof a==="object"&&"0"in a){b=a.split?a.split(" "): +[a[0],a[1]];if(b.length===1)b[1]=b[0];c.each(["left","top"],function(g,f){if(+b[g]===b[g]){d[g]=b[g];b[g]=f}});a={my:b.join(" "),at:b.join(" "),offset:d.join(" ")}}a=c.extend({},c.ui.dialog.prototype.options.position,a)}else a=c.ui.dialog.prototype.options.position;(e=this.uiDialog.is(":visible"))||this.uiDialog.show();this.uiDialog.css({top:0,left:0}).position(c.extend({of:window},a));e||this.uiDialog.hide()},_setOptions:function(a){var b=this,d={},e=false;c.each(a,function(g,f){b._setOption(g,f); +if(g in m)e=true;if(g in n)d[g]=f});e&&this._size();this.uiDialog.is(":data(resizable)")&&this.uiDialog.resizable("option",d)},_setOption:function(a,b){var d=this,e=d.uiDialog;switch(a){case "beforeclose":a="beforeClose";break;case "buttons":d._createButtons(b);break;case "closeText":d.uiDialogTitlebarCloseText.text(""+b);break;case "dialogClass":e.removeClass(d.options.dialogClass).addClass("ui-dialog ui-widget ui-widget-content ui-corner-all "+b);break;case "disabled":b?e.addClass("ui-dialog-disabled"): +e.removeClass("ui-dialog-disabled");break;case "draggable":var g=e.is(":data(draggable)");g&&!b&&e.draggable("destroy");!g&&b&&d._makeDraggable();break;case "position":d._position(b);break;case "resizable":(g=e.is(":data(resizable)"))&&!b&&e.resizable("destroy");g&&typeof b==="string"&&e.resizable("option","handles",b);!g&&b!==false&&d._makeResizable(b);break;case "title":c(".ui-dialog-title",d.uiDialogTitlebar).html(""+(b||" "));break}c.Widget.prototype._setOption.apply(d,arguments)},_size:function(){var a= +this.options,b,d,e=this.uiDialog.is(":visible");this.element.show().css({width:"auto",minHeight:0,height:0});if(a.minWidth>a.width)a.width=a.minWidth;b=this.uiDialog.css({height:"auto",width:a.width}).height();d=Math.max(0,a.minHeight-b);if(a.height==="auto")if(c.support.minHeight)this.element.css({minHeight:d,height:"auto"});else{this.uiDialog.show();a=this.element.css("height","auto").height();e||this.uiDialog.hide();this.element.height(Math.max(a,d))}else this.element.height(Math.max(a.height- +b,0));this.uiDialog.is(":data(resizable)")&&this.uiDialog.resizable("option","minHeight",this._minHeight())}});c.extend(c.ui.dialog,{version:"1.8.13",uuid:0,maxZ:0,getTitleId:function(a){a=a.attr("id");if(!a){this.uuid+=1;a=this.uuid}return"ui-dialog-title-"+a},overlay:function(a){this.$el=c.ui.dialog.overlay.create(a)}});c.extend(c.ui.dialog.overlay,{instances:[],oldInstances:[],maxZ:0,events:c.map("focus,mousedown,mouseup,keydown,keypress,click".split(","),function(a){return a+".dialog-overlay"}).join(" "), +create:function(a){if(this.instances.length===0){setTimeout(function(){c.ui.dialog.overlay.instances.length&&c(document).bind(c.ui.dialog.overlay.events,function(d){if(c(d.target).zIndex()
    ").addClass("ui-widget-overlay")).appendTo(document.body).css({width:this.width(), +height:this.height()});c.fn.bgiframe&&b.bgiframe();this.instances.push(b);return b},destroy:function(a){var b=c.inArray(a,this.instances);b!=-1&&this.oldInstances.push(this.instances.splice(b,1)[0]);this.instances.length===0&&c([document,window]).unbind(".dialog-overlay");a.remove();var d=0;c.each(this.instances,function(){d=Math.max(d,this.css("z-index"))});this.maxZ=d},height:function(){var a,b;if(c.browser.msie&&c.browser.version<7){a=Math.max(document.documentElement.scrollHeight,document.body.scrollHeight); +b=Math.max(document.documentElement.offsetHeight,document.body.offsetHeight);return a
    ").appendTo(this.element).addClass("ui-slider-range ui-widget-header"+(a.range==="min"||a.range==="max"?" ui-slider-range-"+a.range:""))}for(var j=c.length;j"); +this.handles=c.add(d(e.join("")).appendTo(b.element));this.handle=this.handles.eq(0);this.handles.add(this.range).filter("a").click(function(g){g.preventDefault()}).hover(function(){a.disabled||d(this).addClass("ui-state-hover")},function(){d(this).removeClass("ui-state-hover")}).focus(function(){if(a.disabled)d(this).blur();else{d(".ui-slider .ui-state-focus").removeClass("ui-state-focus");d(this).addClass("ui-state-focus")}}).blur(function(){d(this).removeClass("ui-state-focus")});this.handles.each(function(g){d(this).data("index.ui-slider-handle", +g)});this.handles.keydown(function(g){var k=true,l=d(this).data("index.ui-slider-handle"),i,h,m;if(!b.options.disabled){switch(g.keyCode){case d.ui.keyCode.HOME:case d.ui.keyCode.END:case d.ui.keyCode.PAGE_UP:case d.ui.keyCode.PAGE_DOWN:case d.ui.keyCode.UP:case d.ui.keyCode.RIGHT:case d.ui.keyCode.DOWN:case d.ui.keyCode.LEFT:k=false;if(!b._keySliding){b._keySliding=true;d(this).addClass("ui-state-active");i=b._start(g,l);if(i===false)return}break}m=b.options.step;i=b.options.values&&b.options.values.length? +(h=b.values(l)):(h=b.value());switch(g.keyCode){case d.ui.keyCode.HOME:h=b._valueMin();break;case d.ui.keyCode.END:h=b._valueMax();break;case d.ui.keyCode.PAGE_UP:h=b._trimAlignValue(i+(b._valueMax()-b._valueMin())/5);break;case d.ui.keyCode.PAGE_DOWN:h=b._trimAlignValue(i-(b._valueMax()-b._valueMin())/5);break;case d.ui.keyCode.UP:case d.ui.keyCode.RIGHT:if(i===b._valueMax())return;h=b._trimAlignValue(i+m);break;case d.ui.keyCode.DOWN:case d.ui.keyCode.LEFT:if(i===b._valueMin())return;h=b._trimAlignValue(i- +m);break}b._slide(g,l,h);return k}}).keyup(function(g){var k=d(this).data("index.ui-slider-handle");if(b._keySliding){b._keySliding=false;b._stop(g,k);b._change(g,k);d(this).removeClass("ui-state-active")}});this._refreshValue();this._animateOff=false},destroy:function(){this.handles.remove();this.range.remove();this.element.removeClass("ui-slider ui-slider-horizontal ui-slider-vertical ui-slider-disabled ui-widget ui-widget-content ui-corner-all").removeData("slider").unbind(".slider");this._mouseDestroy(); +return this},_mouseCapture:function(b){var a=this.options,c,f,e,j,g;if(a.disabled)return false;this.elementSize={width:this.element.outerWidth(),height:this.element.outerHeight()};this.elementOffset=this.element.offset();c=this._normValueFromMouse({x:b.pageX,y:b.pageY});f=this._valueMax()-this._valueMin()+1;j=this;this.handles.each(function(k){var l=Math.abs(c-j.values(k));if(f>l){f=l;e=d(this);g=k}});if(a.range===true&&this.values(1)===a.min){g+=1;e=d(this.handles[g])}if(this._start(b,g)===false)return false; +this._mouseSliding=true;j._handleIndex=g;e.addClass("ui-state-active").focus();a=e.offset();this._clickOffset=!d(b.target).parents().andSelf().is(".ui-slider-handle")?{left:0,top:0}:{left:b.pageX-a.left-e.width()/2,top:b.pageY-a.top-e.height()/2-(parseInt(e.css("borderTopWidth"),10)||0)-(parseInt(e.css("borderBottomWidth"),10)||0)+(parseInt(e.css("marginTop"),10)||0)};this.handles.hasClass("ui-state-hover")||this._slide(b,g,c);return this._animateOff=true},_mouseStart:function(){return true},_mouseDrag:function(b){var a= +this._normValueFromMouse({x:b.pageX,y:b.pageY});this._slide(b,this._handleIndex,a);return false},_mouseStop:function(b){this.handles.removeClass("ui-state-active");this._mouseSliding=false;this._stop(b,this._handleIndex);this._change(b,this._handleIndex);this._clickOffset=this._handleIndex=null;return this._animateOff=false},_detectOrientation:function(){this.orientation=this.options.orientation==="vertical"?"vertical":"horizontal"},_normValueFromMouse:function(b){var a;if(this.orientation==="horizontal"){a= +this.elementSize.width;b=b.x-this.elementOffset.left-(this._clickOffset?this._clickOffset.left:0)}else{a=this.elementSize.height;b=b.y-this.elementOffset.top-(this._clickOffset?this._clickOffset.top:0)}a=b/a;if(a>1)a=1;if(a<0)a=0;if(this.orientation==="vertical")a=1-a;b=this._valueMax()-this._valueMin();return this._trimAlignValue(this._valueMin()+a*b)},_start:function(b,a){var c={handle:this.handles[a],value:this.value()};if(this.options.values&&this.options.values.length){c.value=this.values(a); +c.values=this.values()}return this._trigger("start",b,c)},_slide:function(b,a,c){var f;if(this.options.values&&this.options.values.length){f=this.values(a?0:1);if(this.options.values.length===2&&this.options.range===true&&(a===0&&c>f||a===1&&c1){this.options.values[b]=this._trimAlignValue(a);this._refreshValue();this._change(null,b)}else if(arguments.length)if(d.isArray(arguments[0])){c=this.options.values;f=arguments[0];for(e=0;e=this._valueMax())return this._valueMax();var a=this.options.step>0?this.options.step:1,c=(b-this._valueMin())%a;alignValue=b-c;if(Math.abs(c)*2>=a)alignValue+=c>0?a:-a;return parseFloat(alignValue.toFixed(5))},_valueMin:function(){return this.options.min},_valueMax:function(){return this.options.max}, +_refreshValue:function(){var b=this.options.range,a=this.options,c=this,f=!this._animateOff?a.animate:false,e,j={},g,k,l,i;if(this.options.values&&this.options.values.length)this.handles.each(function(h){e=(c.values(h)-c._valueMin())/(c._valueMax()-c._valueMin())*100;j[c.orientation==="horizontal"?"left":"bottom"]=e+"%";d(this).stop(1,1)[f?"animate":"css"](j,a.animate);if(c.options.range===true)if(c.orientation==="horizontal"){if(h===0)c.range.stop(1,1)[f?"animate":"css"]({left:e+"%"},a.animate); +if(h===1)c.range[f?"animate":"css"]({width:e-g+"%"},{queue:false,duration:a.animate})}else{if(h===0)c.range.stop(1,1)[f?"animate":"css"]({bottom:e+"%"},a.animate);if(h===1)c.range[f?"animate":"css"]({height:e-g+"%"},{queue:false,duration:a.animate})}g=e});else{k=this.value();l=this._valueMin();i=this._valueMax();e=i!==l?(k-l)/(i-l)*100:0;j[c.orientation==="horizontal"?"left":"bottom"]=e+"%";this.handle.stop(1,1)[f?"animate":"css"](j,a.animate);if(b==="min"&&this.orientation==="horizontal")this.range.stop(1, +1)[f?"animate":"css"]({width:e+"%"},a.animate);if(b==="max"&&this.orientation==="horizontal")this.range[f?"animate":"css"]({width:100-e+"%"},{queue:false,duration:a.animate});if(b==="min"&&this.orientation==="vertical")this.range.stop(1,1)[f?"animate":"css"]({height:e+"%"},a.animate);if(b==="max"&&this.orientation==="vertical")this.range[f?"animate":"css"]({height:100-e+"%"},{queue:false,duration:a.animate})}}});d.extend(d.ui.slider,{version:"1.8.13"})})(jQuery); +;/* + * jQuery UI Tabs 1.8.13 + * + * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI/Tabs + * + * Depends: + * jquery.ui.core.js + * jquery.ui.widget.js + */ +(function(d,p){function u(){return++v}function w(){return++x}var v=0,x=0;d.widget("ui.tabs",{options:{add:null,ajaxOptions:null,cache:false,cookie:null,collapsible:false,disable:null,disabled:[],enable:null,event:"click",fx:null,idPrefix:"ui-tabs-",load:null,panelTemplate:"
    ",remove:null,select:null,show:null,spinner:"Loading…",tabTemplate:"
  • #{label}
  • "},_create:function(){this._tabify(true)},_setOption:function(b,e){if(b=="selected")this.options.collapsible&& +e==this.options.selected||this.select(e);else{this.options[b]=e;this._tabify()}},_tabId:function(b){return b.title&&b.title.replace(/\s/g,"_").replace(/[^\w\u00c0-\uFFFF-]/g,"")||this.options.idPrefix+u()},_sanitizeSelector:function(b){return b.replace(/:/g,"\\:")},_cookie:function(){var b=this.cookie||(this.cookie=this.options.cookie.name||"ui-tabs-"+w());return d.cookie.apply(null,[b].concat(d.makeArray(arguments)))},_ui:function(b,e){return{tab:b,panel:e,index:this.anchors.index(b)}},_cleanup:function(){this.lis.filter(".ui-state-processing").removeClass("ui-state-processing").find("span:data(label.tabs)").each(function(){var b= +d(this);b.html(b.data("label.tabs")).removeData("label.tabs")})},_tabify:function(b){function e(g,f){g.css("display","");!d.support.opacity&&f.opacity&&g[0].style.removeAttribute("filter")}var a=this,c=this.options,h=/^#.+/;this.list=this.element.find("ol,ul").eq(0);this.lis=d(" > li:has(a[href])",this.list);this.anchors=this.lis.map(function(){return d("a",this)[0]});this.panels=d([]);this.anchors.each(function(g,f){var i=d(f).attr("href"),l=i.split("#")[0],q;if(l&&(l===location.toString().split("#")[0]|| +(q=d("base")[0])&&l===q.href)){i=f.hash;f.href=i}if(h.test(i))a.panels=a.panels.add(a.element.find(a._sanitizeSelector(i)));else if(i&&i!=="#"){d.data(f,"href.tabs",i);d.data(f,"load.tabs",i.replace(/#.*$/,""));i=a._tabId(f);f.href="#"+i;f=a.element.find("#"+i);if(!f.length){f=d(c.panelTemplate).attr("id",i).addClass("ui-tabs-panel ui-widget-content ui-corner-bottom").insertAfter(a.panels[g-1]||a.list);f.data("destroy.tabs",true)}a.panels=a.panels.add(f)}else c.disabled.push(g)});if(b){this.element.addClass("ui-tabs ui-widget ui-widget-content ui-corner-all"); +this.list.addClass("ui-tabs-nav ui-helper-reset ui-helper-clearfix ui-widget-header ui-corner-all");this.lis.addClass("ui-state-default ui-corner-top");this.panels.addClass("ui-tabs-panel ui-widget-content ui-corner-bottom");if(c.selected===p){location.hash&&this.anchors.each(function(g,f){if(f.hash==location.hash){c.selected=g;return false}});if(typeof c.selected!=="number"&&c.cookie)c.selected=parseInt(a._cookie(),10);if(typeof c.selected!=="number"&&this.lis.filter(".ui-tabs-selected").length)c.selected= +this.lis.index(this.lis.filter(".ui-tabs-selected"));c.selected=c.selected||(this.lis.length?0:-1)}else if(c.selected===null)c.selected=-1;c.selected=c.selected>=0&&this.anchors[c.selected]||c.selected<0?c.selected:0;c.disabled=d.unique(c.disabled.concat(d.map(this.lis.filter(".ui-state-disabled"),function(g){return a.lis.index(g)}))).sort();d.inArray(c.selected,c.disabled)!=-1&&c.disabled.splice(d.inArray(c.selected,c.disabled),1);this.panels.addClass("ui-tabs-hide");this.lis.removeClass("ui-tabs-selected ui-state-active"); +if(c.selected>=0&&this.anchors.length){a.element.find(a._sanitizeSelector(a.anchors[c.selected].hash)).removeClass("ui-tabs-hide");this.lis.eq(c.selected).addClass("ui-tabs-selected ui-state-active");a.element.queue("tabs",function(){a._trigger("show",null,a._ui(a.anchors[c.selected],a.element.find(a._sanitizeSelector(a.anchors[c.selected].hash))[0]))});this.load(c.selected)}d(window).bind("unload",function(){a.lis.add(a.anchors).unbind(".tabs");a.lis=a.anchors=a.panels=null})}else c.selected=this.lis.index(this.lis.filter(".ui-tabs-selected")); +this.element[c.collapsible?"addClass":"removeClass"]("ui-tabs-collapsible");c.cookie&&this._cookie(c.selected,c.cookie);b=0;for(var j;j=this.lis[b];b++)d(j)[d.inArray(b,c.disabled)!=-1&&!d(j).hasClass("ui-tabs-selected")?"addClass":"removeClass"]("ui-state-disabled");c.cache===false&&this.anchors.removeData("cache.tabs");this.lis.add(this.anchors).unbind(".tabs");if(c.event!=="mouseover"){var k=function(g,f){f.is(":not(.ui-state-disabled)")&&f.addClass("ui-state-"+g)},n=function(g,f){f.removeClass("ui-state-"+ +g)};this.lis.bind("mouseover.tabs",function(){k("hover",d(this))});this.lis.bind("mouseout.tabs",function(){n("hover",d(this))});this.anchors.bind("focus.tabs",function(){k("focus",d(this).closest("li"))});this.anchors.bind("blur.tabs",function(){n("focus",d(this).closest("li"))})}var m,o;if(c.fx)if(d.isArray(c.fx)){m=c.fx[0];o=c.fx[1]}else m=o=c.fx;var r=o?function(g,f){d(g).closest("li").addClass("ui-tabs-selected ui-state-active");f.hide().removeClass("ui-tabs-hide").animate(o,o.duration||"normal", +function(){e(f,o);a._trigger("show",null,a._ui(g,f[0]))})}:function(g,f){d(g).closest("li").addClass("ui-tabs-selected ui-state-active");f.removeClass("ui-tabs-hide");a._trigger("show",null,a._ui(g,f[0]))},s=m?function(g,f){f.animate(m,m.duration||"normal",function(){a.lis.removeClass("ui-tabs-selected ui-state-active");f.addClass("ui-tabs-hide");e(f,m);a.element.dequeue("tabs")})}:function(g,f){a.lis.removeClass("ui-tabs-selected ui-state-active");f.addClass("ui-tabs-hide");a.element.dequeue("tabs")}; +this.anchors.bind(c.event+".tabs",function(){var g=this,f=d(g).closest("li"),i=a.panels.filter(":not(.ui-tabs-hide)"),l=a.element.find(a._sanitizeSelector(g.hash));if(f.hasClass("ui-tabs-selected")&&!c.collapsible||f.hasClass("ui-state-disabled")||f.hasClass("ui-state-processing")||a.panels.filter(":animated").length||a._trigger("select",null,a._ui(this,l[0]))===false){this.blur();return false}c.selected=a.anchors.index(this);a.abort();if(c.collapsible)if(f.hasClass("ui-tabs-selected")){c.selected= +-1;c.cookie&&a._cookie(c.selected,c.cookie);a.element.queue("tabs",function(){s(g,i)}).dequeue("tabs");this.blur();return false}else if(!i.length){c.cookie&&a._cookie(c.selected,c.cookie);a.element.queue("tabs",function(){r(g,l)});a.load(a.anchors.index(this));this.blur();return false}c.cookie&&a._cookie(c.selected,c.cookie);if(l.length){i.length&&a.element.queue("tabs",function(){s(g,i)});a.element.queue("tabs",function(){r(g,l)});a.load(a.anchors.index(this))}else throw"jQuery UI Tabs: Mismatching fragment identifier."; +d.browser.msie&&this.blur()});this.anchors.bind("click.tabs",function(){return false})},_getIndex:function(b){if(typeof b=="string")b=this.anchors.index(this.anchors.filter("[href$="+b+"]"));return b},destroy:function(){var b=this.options;this.abort();this.element.unbind(".tabs").removeClass("ui-tabs ui-widget ui-widget-content ui-corner-all ui-tabs-collapsible").removeData("tabs");this.list.removeClass("ui-tabs-nav ui-helper-reset ui-helper-clearfix ui-widget-header ui-corner-all");this.anchors.each(function(){var e= +d.data(this,"href.tabs");if(e)this.href=e;var a=d(this).unbind(".tabs");d.each(["href","load","cache"],function(c,h){a.removeData(h+".tabs")})});this.lis.unbind(".tabs").add(this.panels).each(function(){d.data(this,"destroy.tabs")?d(this).remove():d(this).removeClass("ui-state-default ui-corner-top ui-tabs-selected ui-state-active ui-state-hover ui-state-focus ui-state-disabled ui-tabs-panel ui-widget-content ui-corner-bottom ui-tabs-hide")});b.cookie&&this._cookie(null,b.cookie);return this},add:function(b, +e,a){if(a===p)a=this.anchors.length;var c=this,h=this.options;e=d(h.tabTemplate.replace(/#\{href\}/g,b).replace(/#\{label\}/g,e));b=!b.indexOf("#")?b.replace("#",""):this._tabId(d("a",e)[0]);e.addClass("ui-state-default ui-corner-top").data("destroy.tabs",true);var j=c.element.find("#"+b);j.length||(j=d(h.panelTemplate).attr("id",b).data("destroy.tabs",true));j.addClass("ui-tabs-panel ui-widget-content ui-corner-bottom ui-tabs-hide");if(a>=this.lis.length){e.appendTo(this.list);j.appendTo(this.list[0].parentNode)}else{e.insertBefore(this.lis[a]); +j.insertBefore(this.panels[a])}h.disabled=d.map(h.disabled,function(k){return k>=a?++k:k});this._tabify();if(this.anchors.length==1){h.selected=0;e.addClass("ui-tabs-selected ui-state-active");j.removeClass("ui-tabs-hide");this.element.queue("tabs",function(){c._trigger("show",null,c._ui(c.anchors[0],c.panels[0]))});this.load(0)}this._trigger("add",null,this._ui(this.anchors[a],this.panels[a]));return this},remove:function(b){b=this._getIndex(b);var e=this.options,a=this.lis.eq(b).remove(),c=this.panels.eq(b).remove(); +if(a.hasClass("ui-tabs-selected")&&this.anchors.length>1)this.select(b+(b+1=b?--h:h});this._tabify();this._trigger("remove",null,this._ui(a.find("a")[0],c[0]));return this},enable:function(b){b=this._getIndex(b);var e=this.options;if(d.inArray(b,e.disabled)!=-1){this.lis.eq(b).removeClass("ui-state-disabled");e.disabled=d.grep(e.disabled,function(a){return a!=b});this._trigger("enable",null, +this._ui(this.anchors[b],this.panels[b]));return this}},disable:function(b){b=this._getIndex(b);var e=this.options;if(b!=e.selected){this.lis.eq(b).addClass("ui-state-disabled");e.disabled.push(b);e.disabled.sort();this._trigger("disable",null,this._ui(this.anchors[b],this.panels[b]))}return this},select:function(b){b=this._getIndex(b);if(b==-1)if(this.options.collapsible&&this.options.selected!=-1)b=this.options.selected;else return this;this.anchors.eq(b).trigger(this.options.event+".tabs");return this}, +load:function(b){b=this._getIndex(b);var e=this,a=this.options,c=this.anchors.eq(b)[0],h=d.data(c,"load.tabs");this.abort();if(!h||this.element.queue("tabs").length!==0&&d.data(c,"cache.tabs"))this.element.dequeue("tabs");else{this.lis.eq(b).addClass("ui-state-processing");if(a.spinner){var j=d("span",c);j.data("label.tabs",j.html()).html(a.spinner)}this.xhr=d.ajax(d.extend({},a.ajaxOptions,{url:h,success:function(k,n){e.element.find(e._sanitizeSelector(c.hash)).html(k);e._cleanup();a.cache&&d.data(c, +"cache.tabs",true);e._trigger("load",null,e._ui(e.anchors[b],e.panels[b]));try{a.ajaxOptions.success(k,n)}catch(m){}},error:function(k,n){e._cleanup();e._trigger("load",null,e._ui(e.anchors[b],e.panels[b]));try{a.ajaxOptions.error(k,n,b,c)}catch(m){}}}));e.element.dequeue("tabs");return this}},abort:function(){this.element.queue([]);this.panels.stop(false,true);this.element.queue("tabs",this.element.queue("tabs").splice(-2,2));if(this.xhr){this.xhr.abort();delete this.xhr}this._cleanup();return this}, +url:function(b,e){this.anchors.eq(b).removeData("cache.tabs").data("load.tabs",e);return this},length:function(){return this.anchors.length}});d.extend(d.ui.tabs,{version:"1.8.13"});d.extend(d.ui.tabs.prototype,{rotation:null,rotate:function(b,e){var a=this,c=this.options,h=a._rotate||(a._rotate=function(j){clearTimeout(a.rotation);a.rotation=setTimeout(function(){var k=c.selected;a.select(++k
    '))}function N(a){return a.delegate("button, .ui-datepicker-prev, .ui-datepicker-next, .ui-datepicker-calendar td a", +"mouseout",function(){d(this).removeClass("ui-state-hover");this.className.indexOf("ui-datepicker-prev")!=-1&&d(this).removeClass("ui-datepicker-prev-hover");this.className.indexOf("ui-datepicker-next")!=-1&&d(this).removeClass("ui-datepicker-next-hover")}).delegate("button, .ui-datepicker-prev, .ui-datepicker-next, .ui-datepicker-calendar td a","mouseover",function(){if(!d.datepicker._isDisabledDatepicker(J.inline?a.parent()[0]:J.input[0])){d(this).parents(".ui-datepicker-calendar").find("a").removeClass("ui-state-hover"); +d(this).addClass("ui-state-hover");this.className.indexOf("ui-datepicker-prev")!=-1&&d(this).addClass("ui-datepicker-prev-hover");this.className.indexOf("ui-datepicker-next")!=-1&&d(this).addClass("ui-datepicker-next-hover")}})}function H(a,b){d.extend(a,b);for(var c in b)if(b[c]==null||b[c]==B)a[c]=b[c];return a}d.extend(d.ui,{datepicker:{version:"1.8.13"}});var z=(new Date).getTime(),J;d.extend(M.prototype,{markerClassName:"hasDatepicker",log:function(){this.debug&&console.log.apply("",arguments)}, +_widgetDatepicker:function(){return this.dpDiv},setDefaults:function(a){H(this._defaults,a||{});return this},_attachDatepicker:function(a,b){var c=null;for(var e in this._defaults){var f=a.getAttribute("date:"+e);if(f){c=c||{};try{c[e]=eval(f)}catch(h){c[e]=f}}}e=a.nodeName.toLowerCase();f=e=="div"||e=="span";if(!a.id){this.uuid+=1;a.id="dp"+this.uuid}var i=this._newInst(d(a),f);i.settings=d.extend({},b||{},c||{});if(e=="input")this._connectDatepicker(a,i);else f&&this._inlineDatepicker(a,i)},_newInst:function(a, +b){return{id:a[0].id.replace(/([^A-Za-z0-9_-])/g,"\\\\$1"),input:a,selectedDay:0,selectedMonth:0,selectedYear:0,drawMonth:0,drawYear:0,inline:b,dpDiv:!b?this.dpDiv:N(d('
    '))}},_connectDatepicker:function(a,b){var c=d(a);b.append=d([]);b.trigger=d([]);if(!c.hasClass(this.markerClassName)){this._attachments(c,b);c.addClass(this.markerClassName).keydown(this._doKeyDown).keypress(this._doKeyPress).keyup(this._doKeyUp).bind("setData.datepicker", +function(e,f,h){b.settings[f]=h}).bind("getData.datepicker",function(e,f){return this._get(b,f)});this._autoSize(b);d.data(a,"datepicker",b)}},_attachments:function(a,b){var c=this._get(b,"appendText"),e=this._get(b,"isRTL");b.append&&b.append.remove();if(c){b.append=d(''+c+"");a[e?"before":"after"](b.append)}a.unbind("focus",this._showDatepicker);b.trigger&&b.trigger.remove();c=this._get(b,"showOn");if(c=="focus"||c=="both")a.focus(this._showDatepicker); +if(c=="button"||c=="both"){c=this._get(b,"buttonText");var f=this._get(b,"buttonImage");b.trigger=d(this._get(b,"buttonImageOnly")?d("").addClass(this._triggerClass).attr({src:f,alt:c,title:c}):d('').addClass(this._triggerClass).html(f==""?c:d("").attr({src:f,alt:c,title:c})));a[e?"before":"after"](b.trigger);b.trigger.click(function(){d.datepicker._datepickerShowing&&d.datepicker._lastInput==a[0]?d.datepicker._hideDatepicker():d.datepicker._showDatepicker(a[0]); +return false})}},_autoSize:function(a){if(this._get(a,"autoSize")&&!a.inline){var b=new Date(2009,11,20),c=this._get(a,"dateFormat");if(c.match(/[DM]/)){var e=function(f){for(var h=0,i=0,g=0;gh){h=f[g].length;i=g}return i};b.setMonth(e(this._get(a,c.match(/MM/)?"monthNames":"monthNamesShort")));b.setDate(e(this._get(a,c.match(/DD/)?"dayNames":"dayNamesShort"))+20-b.getDay())}a.input.attr("size",this._formatDate(a,b).length)}},_inlineDatepicker:function(a,b){var c=d(a); +if(!c.hasClass(this.markerClassName)){c.addClass(this.markerClassName).append(b.dpDiv).bind("setData.datepicker",function(e,f,h){b.settings[f]=h}).bind("getData.datepicker",function(e,f){return this._get(b,f)});d.data(a,"datepicker",b);this._setDate(b,this._getDefaultDate(b),true);this._updateDatepicker(b);this._updateAlternate(b);b.dpDiv.show()}},_dialogDatepicker:function(a,b,c,e,f){a=this._dialogInst;if(!a){this.uuid+=1;this._dialogInput=d(''); +this._dialogInput.keydown(this._doKeyDown);d("body").append(this._dialogInput);a=this._dialogInst=this._newInst(this._dialogInput,false);a.settings={};d.data(this._dialogInput[0],"datepicker",a)}H(a.settings,e||{});b=b&&b.constructor==Date?this._formatDate(a,b):b;this._dialogInput.val(b);this._pos=f?f.length?f:[f.pageX,f.pageY]:null;if(!this._pos)this._pos=[document.documentElement.clientWidth/2-100+(document.documentElement.scrollLeft||document.body.scrollLeft),document.documentElement.clientHeight/ +2-150+(document.documentElement.scrollTop||document.body.scrollTop)];this._dialogInput.css("left",this._pos[0]+20+"px").css("top",this._pos[1]+"px");a.settings.onSelect=c;this._inDialog=true;this.dpDiv.addClass(this._dialogClass);this._showDatepicker(this._dialogInput[0]);d.blockUI&&d.blockUI(this.dpDiv);d.data(this._dialogInput[0],"datepicker",a);return this},_destroyDatepicker:function(a){var b=d(a),c=d.data(a,"datepicker");if(b.hasClass(this.markerClassName)){var e=a.nodeName.toLowerCase();d.removeData(a, +"datepicker");if(e=="input"){c.append.remove();c.trigger.remove();b.removeClass(this.markerClassName).unbind("focus",this._showDatepicker).unbind("keydown",this._doKeyDown).unbind("keypress",this._doKeyPress).unbind("keyup",this._doKeyUp)}else if(e=="div"||e=="span")b.removeClass(this.markerClassName).empty()}},_enableDatepicker:function(a){var b=d(a),c=d.data(a,"datepicker");if(b.hasClass(this.markerClassName)){var e=a.nodeName.toLowerCase();if(e=="input"){a.disabled=false;c.trigger.filter("button").each(function(){this.disabled= +false}).end().filter("img").css({opacity:"1.0",cursor:""})}else if(e=="div"||e=="span"){b=b.children("."+this._inlineClass);b.children().removeClass("ui-state-disabled");b.find("select.ui-datepicker-month, select.ui-datepicker-year").removeAttr("disabled")}this._disabledInputs=d.map(this._disabledInputs,function(f){return f==a?null:f})}},_disableDatepicker:function(a){var b=d(a),c=d.data(a,"datepicker");if(b.hasClass(this.markerClassName)){var e=a.nodeName.toLowerCase();if(e=="input"){a.disabled= +true;c.trigger.filter("button").each(function(){this.disabled=true}).end().filter("img").css({opacity:"0.5",cursor:"default"})}else if(e=="div"||e=="span"){b=b.children("."+this._inlineClass);b.children().addClass("ui-state-disabled");b.find("select.ui-datepicker-month, select.ui-datepicker-year").attr("disabled","disabled")}this._disabledInputs=d.map(this._disabledInputs,function(f){return f==a?null:f});this._disabledInputs[this._disabledInputs.length]=a}},_isDisabledDatepicker:function(a){if(!a)return false; +for(var b=0;b-1}},_doKeyUp:function(a){a=d.datepicker._getInst(a.target);if(a.input.val()!=a.lastVal)try{if(d.datepicker.parseDate(d.datepicker._get(a,"dateFormat"),a.input?a.input.val():null,d.datepicker._getFormatConfig(a))){d.datepicker._setDateFromField(a); +d.datepicker._updateAlternate(a);d.datepicker._updateDatepicker(a)}}catch(b){d.datepicker.log(b)}return true},_showDatepicker:function(a){a=a.target||a;if(a.nodeName.toLowerCase()!="input")a=d("input",a.parentNode)[0];if(!(d.datepicker._isDisabledDatepicker(a)||d.datepicker._lastInput==a)){var b=d.datepicker._getInst(a);d.datepicker._curInst&&d.datepicker._curInst!=b&&d.datepicker._curInst.dpDiv.stop(true,true);var c=d.datepicker._get(b,"beforeShow");H(b.settings,c?c.apply(a,[a,b]):{});b.lastVal= +null;d.datepicker._lastInput=a;d.datepicker._setDateFromField(b);if(d.datepicker._inDialog)a.value="";if(!d.datepicker._pos){d.datepicker._pos=d.datepicker._findPos(a);d.datepicker._pos[1]+=a.offsetHeight}var e=false;d(a).parents().each(function(){e|=d(this).css("position")=="fixed";return!e});if(e&&d.browser.opera){d.datepicker._pos[0]-=document.documentElement.scrollLeft;d.datepicker._pos[1]-=document.documentElement.scrollTop}c={left:d.datepicker._pos[0],top:d.datepicker._pos[1]};d.datepicker._pos= +null;b.dpDiv.empty();b.dpDiv.css({position:"absolute",display:"block",top:"-1000px"});d.datepicker._updateDatepicker(b);c=d.datepicker._checkOffset(b,c,e);b.dpDiv.css({position:d.datepicker._inDialog&&d.blockUI?"static":e?"fixed":"absolute",display:"none",left:c.left+"px",top:c.top+"px"});if(!b.inline){c=d.datepicker._get(b,"showAnim");var f=d.datepicker._get(b,"duration"),h=function(){var i=b.dpDiv.find("iframe.ui-datepicker-cover");if(i.length){var g=d.datepicker._getBorders(b.dpDiv);i.css({left:-g[0], +top:-g[1],width:b.dpDiv.outerWidth(),height:b.dpDiv.outerHeight()})}};b.dpDiv.zIndex(d(a).zIndex()+1);d.datepicker._datepickerShowing=true;d.effects&&d.effects[c]?b.dpDiv.show(c,d.datepicker._get(b,"showOptions"),f,h):b.dpDiv[c||"show"](c?f:null,h);if(!c||!f)h();b.input.is(":visible")&&!b.input.is(":disabled")&&b.input.focus();d.datepicker._curInst=b}}},_updateDatepicker:function(a){var b=d.datepicker._getBorders(a.dpDiv);J=a;a.dpDiv.empty().append(this._generateHTML(a));var c=a.dpDiv.find("iframe.ui-datepicker-cover"); +c.length&&c.css({left:-b[0],top:-b[1],width:a.dpDiv.outerWidth(),height:a.dpDiv.outerHeight()});a.dpDiv.find("."+this._dayOverClass+" a").mouseover();b=this._getNumberOfMonths(a);c=b[1];a.dpDiv.removeClass("ui-datepicker-multi-2 ui-datepicker-multi-3 ui-datepicker-multi-4").width("");c>1&&a.dpDiv.addClass("ui-datepicker-multi-"+c).css("width",17*c+"em");a.dpDiv[(b[0]!=1||b[1]!=1?"add":"remove")+"Class"]("ui-datepicker-multi");a.dpDiv[(this._get(a,"isRTL")?"add":"remove")+"Class"]("ui-datepicker-rtl"); +a==d.datepicker._curInst&&d.datepicker._datepickerShowing&&a.input&&a.input.is(":visible")&&!a.input.is(":disabled")&&a.input[0]!=document.activeElement&&a.input.focus();if(a.yearshtml){var e=a.yearshtml;setTimeout(function(){e===a.yearshtml&&a.yearshtml&&a.dpDiv.find("select.ui-datepicker-year:first").replaceWith(a.yearshtml);e=a.yearshtml=null},0)}},_getBorders:function(a){var b=function(c){return{thin:1,medium:2,thick:3}[c]||c};return[parseFloat(b(a.css("border-left-width"))),parseFloat(b(a.css("border-top-width")))]}, +_checkOffset:function(a,b,c){var e=a.dpDiv.outerWidth(),f=a.dpDiv.outerHeight(),h=a.input?a.input.outerWidth():0,i=a.input?a.input.outerHeight():0,g=document.documentElement.clientWidth+d(document).scrollLeft(),j=document.documentElement.clientHeight+d(document).scrollTop();b.left-=this._get(a,"isRTL")?e-h:0;b.left-=c&&b.left==a.input.offset().left?d(document).scrollLeft():0;b.top-=c&&b.top==a.input.offset().top+i?d(document).scrollTop():0;b.left-=Math.min(b.left,b.left+e>g&&g>e?Math.abs(b.left+e- +g):0);b.top-=Math.min(b.top,b.top+f>j&&j>f?Math.abs(f+i):0);return b},_findPos:function(a){for(var b=this._get(this._getInst(a),"isRTL");a&&(a.type=="hidden"||a.nodeType!=1||d.expr.filters.hidden(a));)a=a[b?"previousSibling":"nextSibling"];a=d(a).offset();return[a.left,a.top]},_hideDatepicker:function(a){var b=this._curInst;if(!(!b||a&&b!=d.data(a,"datepicker")))if(this._datepickerShowing){a=this._get(b,"showAnim");var c=this._get(b,"duration"),e=function(){d.datepicker._tidyDialog(b);this._curInst= +null};d.effects&&d.effects[a]?b.dpDiv.hide(a,d.datepicker._get(b,"showOptions"),c,e):b.dpDiv[a=="slideDown"?"slideUp":a=="fadeIn"?"fadeOut":"hide"](a?c:null,e);a||e();if(a=this._get(b,"onClose"))a.apply(b.input?b.input[0]:null,[b.input?b.input.val():"",b]);this._datepickerShowing=false;this._lastInput=null;if(this._inDialog){this._dialogInput.css({position:"absolute",left:"0",top:"-100px"});if(d.blockUI){d.unblockUI();d("body").append(this.dpDiv)}}this._inDialog=false}},_tidyDialog:function(a){a.dpDiv.removeClass(this._dialogClass).unbind(".ui-datepicker-calendar")}, +_checkExternalClick:function(a){if(d.datepicker._curInst){a=d(a.target);a[0].id!=d.datepicker._mainDivId&&a.parents("#"+d.datepicker._mainDivId).length==0&&!a.hasClass(d.datepicker.markerClassName)&&!a.hasClass(d.datepicker._triggerClass)&&d.datepicker._datepickerShowing&&!(d.datepicker._inDialog&&d.blockUI)&&d.datepicker._hideDatepicker()}},_adjustDate:function(a,b,c){a=d(a);var e=this._getInst(a[0]);if(!this._isDisabledDatepicker(a[0])){this._adjustInstDate(e,b+(c=="M"?this._get(e,"showCurrentAtPos"): +0),c);this._updateDatepicker(e)}},_gotoToday:function(a){a=d(a);var b=this._getInst(a[0]);if(this._get(b,"gotoCurrent")&&b.currentDay){b.selectedDay=b.currentDay;b.drawMonth=b.selectedMonth=b.currentMonth;b.drawYear=b.selectedYear=b.currentYear}else{var c=new Date;b.selectedDay=c.getDate();b.drawMonth=b.selectedMonth=c.getMonth();b.drawYear=b.selectedYear=c.getFullYear()}this._notifyChange(b);this._adjustDate(a)},_selectMonthYear:function(a,b,c){a=d(a);var e=this._getInst(a[0]);e._selectingMonthYear= +false;e["selected"+(c=="M"?"Month":"Year")]=e["draw"+(c=="M"?"Month":"Year")]=parseInt(b.options[b.selectedIndex].value,10);this._notifyChange(e);this._adjustDate(a)},_clickMonthYear:function(a){var b=this._getInst(d(a)[0]);b.input&&b._selectingMonthYear&&setTimeout(function(){b.input.focus()},0);b._selectingMonthYear=!b._selectingMonthYear},_selectDay:function(a,b,c,e){var f=d(a);if(!(d(e).hasClass(this._unselectableClass)||this._isDisabledDatepicker(f[0]))){f=this._getInst(f[0]);f.selectedDay=f.currentDay= +d("a",e).html();f.selectedMonth=f.currentMonth=b;f.selectedYear=f.currentYear=c;this._selectDate(a,this._formatDate(f,f.currentDay,f.currentMonth,f.currentYear))}},_clearDate:function(a){a=d(a);this._getInst(a[0]);this._selectDate(a,"")},_selectDate:function(a,b){a=this._getInst(d(a)[0]);b=b!=null?b:this._formatDate(a);a.input&&a.input.val(b);this._updateAlternate(a);var c=this._get(a,"onSelect");if(c)c.apply(a.input?a.input[0]:null,[b,a]);else a.input&&a.input.trigger("change");if(a.inline)this._updateDatepicker(a); +else{this._hideDatepicker();this._lastInput=a.input[0];typeof a.input[0]!="object"&&a.input.focus();this._lastInput=null}},_updateAlternate:function(a){var b=this._get(a,"altField");if(b){var c=this._get(a,"altFormat")||this._get(a,"dateFormat"),e=this._getDate(a),f=this.formatDate(c,e,this._getFormatConfig(a));d(b).each(function(){d(this).val(f)})}},noWeekends:function(a){a=a.getDay();return[a>0&&a<6,""]},iso8601Week:function(a){a=new Date(a.getTime());a.setDate(a.getDate()+4-(a.getDay()||7));var b= +a.getTime();a.setMonth(0);a.setDate(1);return Math.floor(Math.round((b-a)/864E5)/7)+1},parseDate:function(a,b,c){if(a==null||b==null)throw"Invalid arguments";b=typeof b=="object"?b.toString():b+"";if(b=="")return null;var e=(c?c.shortYearCutoff:null)||this._defaults.shortYearCutoff;e=typeof e!="string"?e:(new Date).getFullYear()%100+parseInt(e,10);for(var f=(c?c.dayNamesShort:null)||this._defaults.dayNamesShort,h=(c?c.dayNames:null)||this._defaults.dayNames,i=(c?c.monthNamesShort:null)||this._defaults.monthNamesShort, +g=(c?c.monthNames:null)||this._defaults.monthNames,j=c=-1,l=-1,u=-1,k=false,o=function(p){(p=A+1-1){j=1;l=u;do{e=this._getDaysInMonth(c,j-1);if(l<=e)break;j++;l-=e}while(1)}v=this._daylightSavingAdjust(new Date(c,j-1,l));if(v.getFullYear()!= +c||v.getMonth()+1!=j||v.getDate()!=l)throw"Invalid date";return v},ATOM:"yy-mm-dd",COOKIE:"D, dd M yy",ISO_8601:"yy-mm-dd",RFC_822:"D, d M y",RFC_850:"DD, dd-M-y",RFC_1036:"D, d M y",RFC_1123:"D, d M yy",RFC_2822:"D, d M yy",RSS:"D, d M y",TICKS:"!",TIMESTAMP:"@",W3C:"yy-mm-dd",_ticksTo1970:(718685+Math.floor(492.5)-Math.floor(19.7)+Math.floor(4.925))*24*60*60*1E7,formatDate:function(a,b,c){if(!b)return"";var e=(c?c.dayNamesShort:null)||this._defaults.dayNamesShort,f=(c?c.dayNames:null)||this._defaults.dayNames, +h=(c?c.monthNamesShort:null)||this._defaults.monthNamesShort;c=(c?c.monthNames:null)||this._defaults.monthNames;var i=function(o){(o=k+112?a.getHours()+2:0);return a},_setDate:function(a,b,c){var e=!b,f=a.selectedMonth,h=a.selectedYear;b=this._restrictMinMax(a,this._determineDate(a,b,new Date));a.selectedDay=a.currentDay=b.getDate();a.drawMonth=a.selectedMonth=a.currentMonth=b.getMonth();a.drawYear=a.selectedYear=a.currentYear=b.getFullYear();if((f!=a.selectedMonth||h!=a.selectedYear)&&!c)this._notifyChange(a);this._adjustInstDate(a);if(a.input)a.input.val(e?"":this._formatDate(a))},_getDate:function(a){return!a.currentYear|| +a.input&&a.input.val()==""?null:this._daylightSavingAdjust(new Date(a.currentYear,a.currentMonth,a.currentDay))},_generateHTML:function(a){var b=new Date;b=this._daylightSavingAdjust(new Date(b.getFullYear(),b.getMonth(),b.getDate()));var c=this._get(a,"isRTL"),e=this._get(a,"showButtonPanel"),f=this._get(a,"hideIfNoPrevNext"),h=this._get(a,"navigationAsDateFormat"),i=this._getNumberOfMonths(a),g=this._get(a,"showCurrentAtPos"),j=this._get(a,"stepMonths"),l=i[0]!=1||i[1]!=1,u=this._daylightSavingAdjust(!a.currentDay? +new Date(9999,9,9):new Date(a.currentYear,a.currentMonth,a.currentDay)),k=this._getMinMaxDate(a,"min"),o=this._getMinMaxDate(a,"max");g=a.drawMonth-g;var m=a.drawYear;if(g<0){g+=12;m--}if(o){var n=this._daylightSavingAdjust(new Date(o.getFullYear(),o.getMonth()-i[0]*i[1]+1,o.getDate()));for(n=k&&nn;){g--;if(g<0){g=11;m--}}}a.drawMonth=g;a.drawYear=m;n=this._get(a,"prevText");n=!h?n:this.formatDate(n,this._daylightSavingAdjust(new Date(m,g-j,1)),this._getFormatConfig(a)); +n=this._canAdjustMonth(a,-1,m,g)?''+n+"":f?"":''+n+"";var r=this._get(a,"nextText");r=!h?r:this.formatDate(r,this._daylightSavingAdjust(new Date(m, +g+j,1)),this._getFormatConfig(a));f=this._canAdjustMonth(a,+1,m,g)?''+r+"":f?"":''+r+"";j=this._get(a,"currentText");r=this._get(a,"gotoCurrent")&& +a.currentDay?u:b;j=!h?j:this.formatDate(j,r,this._getFormatConfig(a));h=!a.inline?'":"";e=e?'
    '+(c?h:"")+(this._isInRange(a,r)?'":"")+(c?"":h)+"
    ":"";h=parseInt(this._get(a,"firstDay"),10);h=isNaN(h)?0:h;j=this._get(a,"showWeek");r=this._get(a,"dayNames");this._get(a,"dayNamesShort");var s=this._get(a,"dayNamesMin"),A=this._get(a,"monthNames"),v=this._get(a,"monthNamesShort"),p=this._get(a,"beforeShowDay"),C=this._get(a,"showOtherMonths"),K=this._get(a,"selectOtherMonths");this._get(a,"calculateWeek");for(var E=this._getDefaultDate(a),w="",x=0;x1)switch(G){case 0:y+=" ui-datepicker-group-first";t=" ui-corner-"+(c?"right":"left");break;case i[1]-1:y+=" ui-datepicker-group-last";t=" ui-corner-"+(c?"left":"right");break;default:y+=" ui-datepicker-group-middle";t="";break}y+='">'}y+='
    '+(/all|left/.test(t)&&x==0?c? +f:n:"")+(/all|right/.test(t)&&x==0?c?n:f:"")+this._generateMonthYearHeader(a,g,m,k,o,x>0||G>0,A,v)+'
    ';var D=j?'":"";for(t=0;t<7;t++){var q=(t+h)%7;D+="=5?' class="ui-datepicker-week-end"':"")+'>'+s[q]+""}y+=D+"";D=this._getDaysInMonth(m,g);if(m==a.selectedYear&&g==a.selectedMonth)a.selectedDay=Math.min(a.selectedDay, +D);t=(this._getFirstDayOfMonth(m,g)-h+7)%7;D=l?6:Math.ceil((t+D)/7);q=this._daylightSavingAdjust(new Date(m,g,1-t));for(var Q=0;Q";var R=!j?"":'";for(t=0;t<7;t++){var I=p?p.apply(a.input?a.input[0]:null,[q]):[true,""],F=q.getMonth()!=g,L=F&&!K||!I[0]||k&&qo;R+='";q.setDate(q.getDate()+1);q=this._daylightSavingAdjust(q)}y+=R+""}g++;if(g>11){g=0;m++}y+="
    '+this._get(a,"weekHeader")+"
    '+this._get(a,"calculateWeek")(q)+""+(F&&!C?" ":L?''+q.getDate()+ +"":''+q.getDate()+"")+"
    "+(l?""+(i[0]>0&&G==i[1]-1?'
    ':""):"");O+=y}w+=O}w+=e+(d.browser.msie&&parseInt(d.browser.version,10)<7&&!a.inline?'': +"");a._keyEvent=false;return w},_generateMonthYearHeader:function(a,b,c,e,f,h,i,g){var j=this._get(a,"changeMonth"),l=this._get(a,"changeYear"),u=this._get(a,"showMonthAfterYear"),k='
    ',o="";if(h||!j)o+=''+i[b]+"";else{i=e&&e.getFullYear()==c;var m=f&&f.getFullYear()==c;o+='"}u||(k+=o+(h||!(j&&l)?" ":""));if(!a.yearshtml){a.yearshtml="";if(h||!l)k+=''+c+"";else{g=this._get(a,"yearRange").split(":");var r=(new Date).getFullYear();i=function(s){s=s.match(/c[+-].*/)?c+parseInt(s.substring(1),10):s.match(/[+-].*/)?r+parseInt(s,10):parseInt(s,10);return isNaN(s)? +r:s};b=i(g[0]);g=Math.max(b,i(g[1]||""));b=e?Math.max(b,e.getFullYear()):b;g=f?Math.min(g,f.getFullYear()):g;for(a.yearshtml+='";k+=a.yearshtml;a.yearshtml=null}}k+=this._get(a,"yearSuffix");if(u)k+= +(h||!(j&&l)?" ":"")+o;k+="
    ";return k},_adjustInstDate:function(a,b,c){var e=a.drawYear+(c=="Y"?b:0),f=a.drawMonth+(c=="M"?b:0);b=Math.min(a.selectedDay,this._getDaysInMonth(e,f))+(c=="D"?b:0);e=this._restrictMinMax(a,this._daylightSavingAdjust(new Date(e,f,b)));a.selectedDay=e.getDate();a.drawMonth=a.selectedMonth=e.getMonth();a.drawYear=a.selectedYear=e.getFullYear();if(c=="M"||c=="Y")this._notifyChange(a)},_restrictMinMax:function(a,b){var c=this._getMinMaxDate(a,"min");a=this._getMinMaxDate(a, +"max");b=c&&ba?a:b},_notifyChange:function(a){var b=this._get(a,"onChangeMonthYear");if(b)b.apply(a.input?a.input[0]:null,[a.selectedYear,a.selectedMonth+1,a])},_getNumberOfMonths:function(a){a=this._get(a,"numberOfMonths");return a==null?[1,1]:typeof a=="number"?[1,a]:a},_getMinMaxDate:function(a,b){return this._determineDate(a,this._get(a,b+"Date"),null)},_getDaysInMonth:function(a,b){return 32-this._daylightSavingAdjust(new Date(a,b,32)).getDate()},_getFirstDayOfMonth:function(a, +b){return(new Date(a,b,1)).getDay()},_canAdjustMonth:function(a,b,c,e){var f=this._getNumberOfMonths(a);c=this._daylightSavingAdjust(new Date(c,e+(b<0?b:f[0]*f[1]),1));b<0&&c.setDate(this._getDaysInMonth(c.getFullYear(),c.getMonth()));return this._isInRange(a,c)},_isInRange:function(a,b){var c=this._getMinMaxDate(a,"min");a=this._getMinMaxDate(a,"max");return(!c||b.getTime()>=c.getTime())&&(!a||b.getTime()<=a.getTime())},_getFormatConfig:function(a){var b=this._get(a,"shortYearCutoff");b=typeof b!= +"string"?b:(new Date).getFullYear()%100+parseInt(b,10);return{shortYearCutoff:b,dayNamesShort:this._get(a,"dayNamesShort"),dayNames:this._get(a,"dayNames"),monthNamesShort:this._get(a,"monthNamesShort"),monthNames:this._get(a,"monthNames")}},_formatDate:function(a,b,c,e){if(!b){a.currentDay=a.selectedDay;a.currentMonth=a.selectedMonth;a.currentYear=a.selectedYear}b=b?typeof b=="object"?b:this._daylightSavingAdjust(new Date(e,c,b)):this._daylightSavingAdjust(new Date(a.currentYear,a.currentMonth,a.currentDay)); +return this.formatDate(this._get(a,"dateFormat"),b,this._getFormatConfig(a))}});d.fn.datepicker=function(a){if(!this.length)return this;if(!d.datepicker.initialized){d(document).mousedown(d.datepicker._checkExternalClick).find("body").append(d.datepicker.dpDiv);d.datepicker.initialized=true}var b=Array.prototype.slice.call(arguments,1);if(typeof a=="string"&&(a=="isDisabled"||a=="getDate"||a=="widget"))return d.datepicker["_"+a+"Datepicker"].apply(d.datepicker,[this[0]].concat(b));if(a=="option"&& +arguments.length==2&&typeof arguments[1]=="string")return d.datepicker["_"+a+"Datepicker"].apply(d.datepicker,[this[0]].concat(b));return this.each(function(){typeof a=="string"?d.datepicker["_"+a+"Datepicker"].apply(d.datepicker,[this].concat(b)):d.datepicker._attachDatepicker(this,a)})};d.datepicker=new M;d.datepicker.initialized=false;d.datepicker.uuid=(new Date).getTime();d.datepicker.version="1.8.13";window["DP_jQuery_"+z]=d})(jQuery); +;/* + * jQuery UI Progressbar 1.8.13 + * + * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI/Progressbar + * + * Depends: + * jquery.ui.core.js + * jquery.ui.widget.js + */ +(function(b,d){b.widget("ui.progressbar",{options:{value:0,max:100},min:0,_create:function(){this.element.addClass("ui-progressbar ui-widget ui-widget-content ui-corner-all").attr({role:"progressbar","aria-valuemin":this.min,"aria-valuemax":this.options.max,"aria-valuenow":this._value()});this.valueDiv=b("
    ").appendTo(this.element);this.oldValue=this._value();this._refreshValue()},destroy:function(){this.element.removeClass("ui-progressbar ui-widget ui-widget-content ui-corner-all").removeAttr("role").removeAttr("aria-valuemin").removeAttr("aria-valuemax").removeAttr("aria-valuenow"); +this.valueDiv.remove();b.Widget.prototype.destroy.apply(this,arguments)},value:function(a){if(a===d)return this._value();this._setOption("value",a);return this},_setOption:function(a,c){if(a==="value"){this.options.value=c;this._refreshValue();this._value()===this.options.max&&this._trigger("complete")}b.Widget.prototype._setOption.apply(this,arguments)},_value:function(){var a=this.options.value;if(typeof a!=="number")a=0;return Math.min(this.options.max,Math.max(this.min,a))},_percentage:function(){return 100* +this._value()/this.options.max},_refreshValue:function(){var a=this.value(),c=this._percentage();if(this.oldValue!==a){this.oldValue=a;this._trigger("change")}this.valueDiv.toggle(a>this.min).toggleClass("ui-corner-right",a===this.options.max).width(c.toFixed(0)+"%");this.element.attr("aria-valuenow",a)}});b.extend(b.ui.progressbar,{version:"1.8.13"})})(jQuery); +;/* + * jQuery UI Effects 1.8.13 + * + * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI/Effects/ + */ +jQuery.effects||function(f,j){function m(c){var a;if(c&&c.constructor==Array&&c.length==3)return c;if(a=/rgb\(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*\)/.exec(c))return[parseInt(a[1],10),parseInt(a[2],10),parseInt(a[3],10)];if(a=/rgb\(\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*\)/.exec(c))return[parseFloat(a[1])*2.55,parseFloat(a[2])*2.55,parseFloat(a[3])*2.55];if(a=/#([a-fA-F0-9]{2})([a-fA-F0-9]{2})([a-fA-F0-9]{2})/.exec(c))return[parseInt(a[1], +16),parseInt(a[2],16),parseInt(a[3],16)];if(a=/#([a-fA-F0-9])([a-fA-F0-9])([a-fA-F0-9])/.exec(c))return[parseInt(a[1]+a[1],16),parseInt(a[2]+a[2],16),parseInt(a[3]+a[3],16)];if(/rgba\(0, 0, 0, 0\)/.exec(c))return n.transparent;return n[f.trim(c).toLowerCase()]}function s(c,a){var b;do{b=f.curCSS(c,a);if(b!=""&&b!="transparent"||f.nodeName(c,"body"))break;a="backgroundColor"}while(c=c.parentNode);return m(b)}function o(){var c=document.defaultView?document.defaultView.getComputedStyle(this,null):this.currentStyle, +a={},b,d;if(c&&c.length&&c[0]&&c[c[0]])for(var e=c.length;e--;){b=c[e];if(typeof c[b]=="string"){d=b.replace(/\-(\w)/g,function(g,h){return h.toUpperCase()});a[d]=c[b]}}else for(b in c)if(typeof c[b]==="string")a[b]=c[b];return a}function p(c){var a,b;for(a in c){b=c[a];if(b==null||f.isFunction(b)||a in t||/scrollbar/.test(a)||!/color/i.test(a)&&isNaN(parseFloat(b)))delete c[a]}return c}function u(c,a){var b={_:0},d;for(d in a)if(c[d]!=a[d])b[d]=a[d];return b}function k(c,a,b,d){if(typeof c=="object"){d= +a;b=null;a=c;c=a.effect}if(f.isFunction(a)){d=a;b=null;a={}}if(typeof a=="number"||f.fx.speeds[a]){d=b;b=a;a={}}if(f.isFunction(b)){d=b;b=null}a=a||{};b=b||a.duration;b=f.fx.off?0:typeof b=="number"?b:b in f.fx.speeds?f.fx.speeds[b]:f.fx.speeds._default;d=d||a.complete;return[c,a,b,d]}function l(c){if(!c||typeof c==="number"||f.fx.speeds[c])return true;if(typeof c==="string"&&!f.effects[c])return true;return false}f.effects={};f.each(["backgroundColor","borderBottomColor","borderLeftColor","borderRightColor", +"borderTopColor","borderColor","color","outlineColor"],function(c,a){f.fx.step[a]=function(b){if(!b.colorInit){b.start=s(b.elem,a);b.end=m(b.end);b.colorInit=true}b.elem.style[a]="rgb("+Math.max(Math.min(parseInt(b.pos*(b.end[0]-b.start[0])+b.start[0],10),255),0)+","+Math.max(Math.min(parseInt(b.pos*(b.end[1]-b.start[1])+b.start[1],10),255),0)+","+Math.max(Math.min(parseInt(b.pos*(b.end[2]-b.start[2])+b.start[2],10),255),0)+")"}});var n={aqua:[0,255,255],azure:[240,255,255],beige:[245,245,220],black:[0, +0,0],blue:[0,0,255],brown:[165,42,42],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgrey:[169,169,169],darkgreen:[0,100,0],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkviolet:[148,0,211],fuchsia:[255,0,255],gold:[255,215,0],green:[0,128,0],indigo:[75,0,130],khaki:[240,230,140],lightblue:[173,216,230],lightcyan:[224,255,255],lightgreen:[144,238,144],lightgrey:[211, +211,211],lightpink:[255,182,193],lightyellow:[255,255,224],lime:[0,255,0],magenta:[255,0,255],maroon:[128,0,0],navy:[0,0,128],olive:[128,128,0],orange:[255,165,0],pink:[255,192,203],purple:[128,0,128],violet:[128,0,128],red:[255,0,0],silver:[192,192,192],white:[255,255,255],yellow:[255,255,0],transparent:[255,255,255]},q=["add","remove","toggle"],t={border:1,borderBottom:1,borderColor:1,borderLeft:1,borderRight:1,borderTop:1,borderWidth:1,margin:1,padding:1};f.effects.animateClass=function(c,a,b, +d){if(f.isFunction(b)){d=b;b=null}return this.queue(function(){var e=f(this),g=e.attr("style")||" ",h=p(o.call(this)),r,v=e.attr("class");f.each(q,function(w,i){c[i]&&e[i+"Class"](c[i])});r=p(o.call(this));e.attr("class",v);e.animate(u(h,r),{queue:false,duration:a,easding:b,complete:function(){f.each(q,function(w,i){c[i]&&e[i+"Class"](c[i])});if(typeof e.attr("style")=="object"){e.attr("style").cssText="";e.attr("style").cssText=g}else e.attr("style",g);d&&d.apply(this,arguments);f.dequeue(this)}})})}; +f.fn.extend({_addClass:f.fn.addClass,addClass:function(c,a,b,d){return a?f.effects.animateClass.apply(this,[{add:c},a,b,d]):this._addClass(c)},_removeClass:f.fn.removeClass,removeClass:function(c,a,b,d){return a?f.effects.animateClass.apply(this,[{remove:c},a,b,d]):this._removeClass(c)},_toggleClass:f.fn.toggleClass,toggleClass:function(c,a,b,d,e){return typeof a=="boolean"||a===j?b?f.effects.animateClass.apply(this,[a?{add:c}:{remove:c},b,d,e]):this._toggleClass(c,a):f.effects.animateClass.apply(this, +[{toggle:c},a,b,d])},switchClass:function(c,a,b,d,e){return f.effects.animateClass.apply(this,[{add:a,remove:c},b,d,e])}});f.extend(f.effects,{version:"1.8.13",save:function(c,a){for(var b=0;b").addClass("ui-effects-wrapper").css({fontSize:"100%",background:"transparent",border:"none",margin:0,padding:0}); +c.wrap(b);b=c.parent();if(c.css("position")=="static"){b.css({position:"relative"});c.css({position:"relative"})}else{f.extend(a,{position:c.css("position"),zIndex:c.css("z-index")});f.each(["top","left","bottom","right"],function(d,e){a[e]=c.css(e);if(isNaN(parseInt(a[e],10)))a[e]="auto"});c.css({position:"relative",top:0,left:0,right:"auto",bottom:"auto"})}return b.css(a).show()},removeWrapper:function(c){if(c.parent().is(".ui-effects-wrapper"))return c.parent().replaceWith(c);return c},setTransition:function(c, +a,b,d){d=d||{};f.each(a,function(e,g){unit=c.cssUnit(g);if(unit[0]>0)d[g]=unit[0]*b+unit[1]});return d}});f.fn.extend({effect:function(c){var a=k.apply(this,arguments),b={options:a[1],duration:a[2],callback:a[3]};a=b.options.mode;var d=f.effects[c];if(f.fx.off||!d)return a?this[a](b.duration,b.callback):this.each(function(){b.callback&&b.callback.call(this)});return d.call(this,b)},_show:f.fn.show,show:function(c){if(l(c))return this._show.apply(this,arguments);else{var a=k.apply(this,arguments); +a[1].mode="show";return this.effect.apply(this,a)}},_hide:f.fn.hide,hide:function(c){if(l(c))return this._hide.apply(this,arguments);else{var a=k.apply(this,arguments);a[1].mode="hide";return this.effect.apply(this,a)}},__toggle:f.fn.toggle,toggle:function(c){if(l(c)||typeof c==="boolean"||f.isFunction(c))return this.__toggle.apply(this,arguments);else{var a=k.apply(this,arguments);a[1].mode="toggle";return this.effect.apply(this,a)}},cssUnit:function(c){var a=this.css(c),b=[];f.each(["em","px","%", +"pt"],function(d,e){if(a.indexOf(e)>0)b=[parseFloat(a),e]});return b}});f.easing.jswing=f.easing.swing;f.extend(f.easing,{def:"easeOutQuad",swing:function(c,a,b,d,e){return f.easing[f.easing.def](c,a,b,d,e)},easeInQuad:function(c,a,b,d,e){return d*(a/=e)*a+b},easeOutQuad:function(c,a,b,d,e){return-d*(a/=e)*(a-2)+b},easeInOutQuad:function(c,a,b,d,e){if((a/=e/2)<1)return d/2*a*a+b;return-d/2*(--a*(a-2)-1)+b},easeInCubic:function(c,a,b,d,e){return d*(a/=e)*a*a+b},easeOutCubic:function(c,a,b,d,e){return d* +((a=a/e-1)*a*a+1)+b},easeInOutCubic:function(c,a,b,d,e){if((a/=e/2)<1)return d/2*a*a*a+b;return d/2*((a-=2)*a*a+2)+b},easeInQuart:function(c,a,b,d,e){return d*(a/=e)*a*a*a+b},easeOutQuart:function(c,a,b,d,e){return-d*((a=a/e-1)*a*a*a-1)+b},easeInOutQuart:function(c,a,b,d,e){if((a/=e/2)<1)return d/2*a*a*a*a+b;return-d/2*((a-=2)*a*a*a-2)+b},easeInQuint:function(c,a,b,d,e){return d*(a/=e)*a*a*a*a+b},easeOutQuint:function(c,a,b,d,e){return d*((a=a/e-1)*a*a*a*a+1)+b},easeInOutQuint:function(c,a,b,d,e){if((a/= +e/2)<1)return d/2*a*a*a*a*a+b;return d/2*((a-=2)*a*a*a*a+2)+b},easeInSine:function(c,a,b,d,e){return-d*Math.cos(a/e*(Math.PI/2))+d+b},easeOutSine:function(c,a,b,d,e){return d*Math.sin(a/e*(Math.PI/2))+b},easeInOutSine:function(c,a,b,d,e){return-d/2*(Math.cos(Math.PI*a/e)-1)+b},easeInExpo:function(c,a,b,d,e){return a==0?b:d*Math.pow(2,10*(a/e-1))+b},easeOutExpo:function(c,a,b,d,e){return a==e?b+d:d*(-Math.pow(2,-10*a/e)+1)+b},easeInOutExpo:function(c,a,b,d,e){if(a==0)return b;if(a==e)return b+d;if((a/= +e/2)<1)return d/2*Math.pow(2,10*(a-1))+b;return d/2*(-Math.pow(2,-10*--a)+2)+b},easeInCirc:function(c,a,b,d,e){return-d*(Math.sqrt(1-(a/=e)*a)-1)+b},easeOutCirc:function(c,a,b,d,e){return d*Math.sqrt(1-(a=a/e-1)*a)+b},easeInOutCirc:function(c,a,b,d,e){if((a/=e/2)<1)return-d/2*(Math.sqrt(1-a*a)-1)+b;return d/2*(Math.sqrt(1-(a-=2)*a)+1)+b},easeInElastic:function(c,a,b,d,e){c=1.70158;var g=0,h=d;if(a==0)return b;if((a/=e)==1)return b+d;g||(g=e*0.3);if(h").css({position:"absolute",visibility:"visible",left:-f*(h/d),top:-e*(i/c)}).parent().addClass("ui-effects-explode").css({position:"absolute",overflow:"hidden",width:h/d,height:i/c,left:g.left+f*(h/d)+(a.options.mode=="show"?(f-Math.floor(d/2))*(h/d):0),top:g.top+e*(i/c)+(a.options.mode=="show"?(e-Math.floor(c/2))*(i/c):0),opacity:a.options.mode=="show"?0:1}).animate({left:g.left+f*(h/d)+(a.options.mode=="show"?0:(f-Math.floor(d/2))*(h/d)),top:g.top+ +e*(i/c)+(a.options.mode=="show"?0:(e-Math.floor(c/2))*(i/c)),opacity:a.options.mode=="show"?1:0},a.duration||500);setTimeout(function(){a.options.mode=="show"?b.css({visibility:"visible"}):b.css({visibility:"visible"}).hide();a.callback&&a.callback.apply(b[0]);b.dequeue();j("div.ui-effects-explode").remove()},a.duration||500)})}})(jQuery); +;/* + * jQuery UI Effects Fade 1.8.13 + * + * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI/Effects/Fade + * + * Depends: + * jquery.effects.core.js + */ +(function(b){b.effects.fade=function(a){return this.queue(function(){var c=b(this),d=b.effects.setMode(c,a.options.mode||"hide");c.animate({opacity:d},{queue:false,duration:a.duration,easing:a.options.easing,complete:function(){a.callback&&a.callback.apply(this,arguments);c.dequeue()}})})}})(jQuery); +;/* + * jQuery UI Effects Fold 1.8.13 + * + * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI/Effects/Fold + * + * Depends: + * jquery.effects.core.js + */ +(function(c){c.effects.fold=function(a){return this.queue(function(){var b=c(this),j=["position","top","bottom","left","right"],d=c.effects.setMode(b,a.options.mode||"hide"),g=a.options.size||15,h=!!a.options.horizFirst,k=a.duration?a.duration/2:c.fx.speeds._default/2;c.effects.save(b,j);b.show();var e=c.effects.createWrapper(b).css({overflow:"hidden"}),f=d=="show"!=h,l=f?["width","height"]:["height","width"];f=f?[e.width(),e.height()]:[e.height(),e.width()];var i=/([0-9]+)%/.exec(g);if(i)g=parseInt(i[1], +10)/100*f[d=="hide"?0:1];if(d=="show")e.css(h?{height:0,width:g}:{height:g,width:0});h={};i={};h[l[0]]=d=="show"?f[0]:g;i[l[1]]=d=="show"?f[1]:0;e.animate(h,k,a.options.easing).animate(i,k,a.options.easing,function(){d=="hide"&&b.hide();c.effects.restore(b,j);c.effects.removeWrapper(b);a.callback&&a.callback.apply(b[0],arguments);b.dequeue()})})}})(jQuery); +;/* + * jQuery UI Effects Highlight 1.8.13 + * + * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI/Effects/Highlight + * + * Depends: + * jquery.effects.core.js + */ +(function(b){b.effects.highlight=function(c){return this.queue(function(){var a=b(this),e=["backgroundImage","backgroundColor","opacity"],d=b.effects.setMode(a,c.options.mode||"show"),f={backgroundColor:a.css("backgroundColor")};if(d=="hide")f.opacity=0;b.effects.save(a,e);a.show().css({backgroundImage:"none",backgroundColor:c.options.color||"#ffff99"}).animate(f,{queue:false,duration:c.duration,easing:c.options.easing,complete:function(){d=="hide"&&a.hide();b.effects.restore(a,e);d=="show"&&!b.support.opacity&& +this.style.removeAttribute("filter");c.callback&&c.callback.apply(this,arguments);a.dequeue()}})})}})(jQuery); +;/* + * jQuery UI Effects Pulsate 1.8.13 + * + * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI/Effects/Pulsate + * + * Depends: + * jquery.effects.core.js + */ +(function(d){d.effects.pulsate=function(a){return this.queue(function(){var b=d(this),c=d.effects.setMode(b,a.options.mode||"show");times=(a.options.times||5)*2-1;duration=a.duration?a.duration/2:d.fx.speeds._default/2;isVisible=b.is(":visible");animateTo=0;if(!isVisible){b.css("opacity",0).show();animateTo=1}if(c=="hide"&&isVisible||c=="show"&&!isVisible)times--;for(c=0;c').appendTo(document.body).addClass(a.options.className).css({top:d.top,left:d.left,height:b.innerHeight(),width:b.innerWidth(),position:"absolute"}).animate(c,a.duration,a.options.easing,function(){f.remove();a.callback&&a.callback.apply(b[0],arguments); +b.dequeue()})})}})(jQuery); +; \ No newline at end of file diff --git a/public/stylesheets/images/ui-bg_diagonals-medium_20_d34d17_40x40.png b/public/stylesheets/images/ui-bg_diagonals-medium_20_d34d17_40x40.png index 8083fb400bf9702e8c5720595ad56bc9bc8a0642..d8bd1be1f11f3bd6d17538b127dff33896fd7b78 100644 GIT binary patch delta 179 zcmey)c${&9Og%%-za6;@3=DmqE{-7)t#7C7=4@~fU_E}At>?|5NjbNr^meha@QVCd z;{Sm)e{=Grhh;PKW-jk7z81FA-@d2+yZj!D(~Rv4R?9dPPGeptYJF<$+PJ2^qJn=A zq2}wnyG|}`j{i^+@bu+^Q!0!&FtbFnsB!HT%>7=${K$I+^YL!Ms6lEl8jKpG2BX2KL257> dj2iqG4eruQupjr6>)QYT002ovPDHLkV1jY@XqEr~ diff --git a/public/stylesheets/images/ui-bg_gloss-wave_90_fff9e5_500x100.png b/public/stylesheets/images/ui-bg_gloss-wave_90_fff9e5_500x100.png index 6e3ad2df76e3669cb737cdc3b36bca9c41fb353a..ae00d7b27e2b9a68916ce75c53de9e498fd6fdf6 100644 GIT binary patch literal 2720 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 Q{{&pmUv#ec?%FT^1*WckbpQYW literal 2257 zcmb`JdsNbC8pnUFv(?mOXEvwIOxCFpM^o1{@4`;2m>sj&yde>-H#8wC!z)P5Y^OC9 zw^mJ3v%pCOg-Jrq`|2Vk2BCtXV^|E{h!7PN5Lu>k`eXjvKlY#ZyyrRRxxCNweLm+c zIujkSYlp)Q004GHo(TIZ0Bl*c-cz=3wVs#x10(?0UKJVkT}*C`dK!gSbbbk(x%k#% z@tT6PkyO0BV$umzE_J_cMsRi2n&Tf&9MLA9fYa(FH))VK13=l;o3_A#KRvSP-|9Ix z^S~sg_$880jV10Jd-+Qr*nIJs$W3t{JY1k@&9rd$uKlgTU$BQ~98uq?n6jX_DnFr{ zIuvKm^LJZ$@FZZYQnFc;)U+I$jAiRzxXQ89vQFtDB+B#q7Bn7g?;NVTlN zw93?ljA}S5V$Lj0I*H=H!j#;sNH%*J-V|;M$l@(Cyl2W!l|{`1Ki#-?97H;Q?Z{kt$-AbZs}d>P5rGgJv5qlXcH>Z@1RWb3 zzczs_5RFqyU(Dy&p(_i=Ej~EGBDM6J;eX+Z;m;7rv`P%2xlIv}7%a5ppLGPfgW7+# zju$#9o3xO>ZdbKFCEZ`l>BBxQf#A^OnDchY5~=JeXPMT@X^S-nEH*H9AqNA&5x;Su@_taLt~9tCDHmYI2Q+_u(4+N{flz@ifUdUBPUf}T4)U5 ztRnU!rs>93d(1M0;xEarmD$p>!Ql*!pJeR^UkiZMCR_|`M&2+ zH}YegJ1M97lG6EecQfQHe%yi}#~3(Ov~Ay{?6yJVHHLu%E$?r*Tc2LoH0kYj=ynqx z&&9^@(@TUQGs(XCG|;S1VxO_U3{!5JhagKI?Jo=YdA6;j@r^_gF2!(mr#MJJI&r#Z zlat+3<3pO*8>inA4k!8W2jIru4d&wdnzLm}ME=-|K;@M(-!+vLhbVM%OAQ-!C>tzJezoENnF=Flp0oT453FJGi^T?vou<86?2mKoCmGHp#cYa zdN{Hk+uj>fzH}mj#}2v^zzg7L*c)&&xO1=6Qam?!@L}dVzP$Y05ERb4Q{PoMP_WNR zkCUf2505N59xaG(Us=uUuNVH}^n#PwFvCP!b-i!y46tN8_YoKnS6hHB`pT-C{=Zvy zwPXGK?}1#>Z~1ds+jPuobQ1m!IB;3;8v@=N^cMjAf|bjAtt3Q#uXg+o3)9F5C~JpqYM(=P0YsZ=k2QAH6o%!@Sb6O#?;+?77?Br7n8#d& zKX60o@~;)_Zhj5}mE^DQM|AT30eUQts`k z$~7r8*7?lvP>Gr9bh$>5D$FhvbbQd2=-*4hqNQnL{q4DIbNtZev{6lE;gC4Ra9e?I zn>=9G7(qcmcelXA=5W!%Bo>>UW&ZMr3bhii!jFX!^r?>1MpqOF zoeh&V6fI*Gj7Lq~@Md@qfx%-R z(bozMFGkL|7u~yx2a?=VQe`f5@1DCZ$T;OQPd3Ga?kA-D+f|y52Jt4?2Y7Wqs#JBd zc9{9BZZI7=Qi)XWX;-owyDkZu^fwn1#`#V>DVs?V!+S{6v5riBjm+S|RABiF86F+RI)35%{{n&3p}qhB diff --git a/public/stylesheets/images/ui-icons_d19405_256x240.png b/public/stylesheets/images/ui-icons_d19405_256x240.png index d168087627fec4186905ec350231e6edd0fc21f7..e993eaa2c36afe3dc843b16bf82097246bbb4fae 100644 GIT binary patch delta 5037 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 diff --git a/public/stylesheets/images/ui-icons_eb990f_256x240.png b/public/stylesheets/images/ui-icons_eb990f_256x240.png index fd0b00a6df15807a2d80ea417b654beb43a5c42e..436ea958ffd2f400ac64d29766e05e10a3275847 100644 GIT binary patch delta 5037 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 diff --git a/public/stylesheets/images/ui-icons_fadc7a_256x240.png b/public/stylesheets/images/ui-icons_fadc7a_256x240.png index 711a99d5fb4eaa3369028a81f32da49ea201f798..f7a4dbfb00393bb7962889f8fa140f17cdd74c65 100644 GIT binary patch delta 5037 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 diff --git a/public/stylesheets/images/ui-icons_ffe180_256x240.png b/public/stylesheets/images/ui-icons_ffe180_256x240.png index 048e8e14f42abb800cb09efd6328fdd538c6927c..2edc97942df73d07c9ff83fa6981e8bbd8cb1489 100644 GIT binary patch delta 5037 zcmV;e6H@GvBI_xT90dWdPI_;#Ayol?6JJS0K~#90?Oh9F+qMw~$x2$Nn4pts2rkicqs$`0#`RooLep(~$=Dh)P5Z%?UHqR&Q(6DAs zo2i7L)F=(Hpn)7PCAh>RawtSt6Ie?Yrcr}TvtCM@0~9J5v`du%z{CZO%CUM>n6g2^ zw6M16e*bx7EmR#$X=U>lQ>#;dC`*9q#fTgllsq8o>tccY+nmiFk0xM;t zjqt1(`8g^%#{U^g8Y<;hMEalMZ}XMTz)NcBWE( zQ<#bcNToJ+-(PmY4PzZu%YrqQd6z(b8TV4xsvnKbBhdy*Iqd8rfBp|4>W;qoO3MX0 z&SaG&hb|4oGeB-uWp|zAC7E~QJ|h#C0nm29v49Xw7ev4s@o%39j}Xv&`_f(^ZbuPHbYz#BobCFnnASABo5Nn(idW!4EEoTfEF{r zQZ$&?ZS&}F(B+p^=wY6u=X3paLtQt2JP>6!EWErl38&i9 z$=}Ma))`e54v*Eu99I{dr!ATK%|pKy^vHHMqQiAmdnGErv^n|GBG2W&R)p-+dj8>0 z#73NlRk;Wh1vuf+j41$Fe!MFg;3eW%tu*gbRAE;{-BS)%)5v9Nbq19YUenQ&Nf__V zO%G=;Um6Zgy>DfIBH1RYei>~bgD2t&bNWw{h|^b+H}oxqvwz^%JB2eI;du3C684e^ zH+iFSh#J%*L%E&gD>-9pO&47*^*C`^j2L7iQoZqDko^F^ui5vi=WAhAUTda=_9Of+ zP(Lblt|Z2Oj|j5QWeipgN@dox8~pofF0j|UVP@-8ytf91JLkd+k1Rr z!7M*(zJNt9cE!Mhg=+&$w#+}-1^}aPJv(IAcx)Tk9Rm*)z(vk`6TkRDIzM5MO)|eE zM{$NiE0t&y0f$2cK6H>}Urzxz!LjhbWcZD!Fn3UFwndO&zzy|5LCJ#0!&~VtpTL@t zdJ$x`VE|Tt#DLQyPvkTv^9L5{(`)oU)9C!hRs^wgfa~S*p9~QvkUT+lhRkLM9WnT}$o|QtOM$r4oO| zwhTcR4^;G1jM43v^lfK4EG|zT(0kbcDTL<%D{3tReK+VaqV`hYaOw^ zsErW<9q)@TzAzkuSKz`cKcnmC720vIB1c!tsG6GPV0X==`|DS~LF3`O=jTS|EzJ;M zVbklY0A;IPoo*t~7@1;CLS4LYD>bFwzX5-o{S7mmM_p6HjxI3+Sz&mo%PH~R!-EHi z)m!|3<-0thzN9PYKJv#4b8Wv7-{@40))&}@DzkIRw4L(AEKA$Auw1H$_1kG`U>{}R z-yH*TS-!#>5das;IeB5)(5VWjOrv}T&z>m;Ok1!FR5wSX2&U@)6~MRmQv4IZ^-#VL zP`ZvJ(yDt1%*+;mq)ro2N%!`lFV=DRNjGCI*2m1uPEOq7k#KN{6I8aqC0 zJW)4B;^=nX%|RJJY|X%f2Z$ey49lP!RRivh7{IyS^uil#Mg}O<{d9mffV)2cyz6sQ z>4sbm0Pn#I`TJH+!??et6Rz-fSAe+z2lBxplTXypqYbz-1>JR|yzTzM(8Lv#Ch1sz zdZY#T?x)vyb_O#C3|x0Vz;{1A1~LN4R$SE&jMw+XKqaBWaj2NvKt>!}s|P!##2@~? zRVWI7zEao(UO2dfYnDHBONHP3ig!vVw(q9C1Om;Abm22pnEMSIOJHk^-uaY~k%G4l zB0@cY-2uIs9w>nC!dbWcpnIjX(Zq2vf$oOzS zm7j~?HS@4h8!uiQPY*l;Yc2ixMPxbY6uP>+It^>Zgd zR)Fy>$YxZ=;GXorea%NQb_RO|*(`imK^UaW^4K;8L5EIR$+$wX{oZ=7*}8!h#qZ#9 z1|nA1Q$U-*Cc#Q7wCS1@4IO2^UcmGcY@*F7U;a}ZH%md6G zwF=n1EvP@!{(u`01##z~cdClVkJVWO(nkd}joMTzP8wT~J_HN&W?5tagx>rH;5Nyr z*c04+ds=Dt?2L75pwR{1M4y}TO4FYj{L%5FQ(Rtp3`_+qbw;}U5_G(O%S(A^f)Mo+ zeQM*`WO8OC<;^qPJV7xqhsU3L3=|k~KA-D|*E&OFpqeh1##Odov{Ef5M90p%~n*GpK%NTU)M(lmCEBez;i_; zT6eh50P|tj8qUp+7TZRDRf62JP@31uJ%N7Uvq{8|`yqTNn_e3Rt_=g%hJlv!`^HbNPG-HZy~9*+dSUtn@EQxofL1_HFE76q z^3YT5&s|f0-Or7ycX+>4Zrj>{52{*6<0A-8{vz21z`xC5U2}ndwTji8=(hG)Hww#O z#{HuX*75pBdv@&j!nB3yKfYG3>9kj0!Hv#FSa&1~R2fe=6Mx=SE6X1WbznCBbBw*X_#_TN38IHRRGI5Q8cxl1%^@OB2U?h*f{9C^SKX{CG_ zKz1-=P8EfN%=Y{5*#i%owW-E-E6k}e6^2)u(&f8yO54qUJUvmJoo%$^TRq{?7zXYr z1C~KEOc;>Brrk=_;7lIjg&9~02#?IjNCO+orpduJI@PTjp&xo_O8sM|4=0rWW+s7& zkLgU?-E^6p%?AL?c6~9!?lsd4%zTBz#wDBEwv8p=GSKnwZ$rSAZ6M>`@n3kVT!8J~ zW3(w&{{vxvMzb?KZVyI$cLtkb4fvpy9v>{1g?^a6(93fGOY?9&?DF+OV%Cawra3W- zwr(Y3(c|t8@8SJU^UGKpI3M8dJAfbh+*Gqz0x@#}=Ykw~$1*Yn@c3bWdWbS`BjQin<9t9>RJymF$DQ&2 zVEj|=9Zk<%0lo`2X5PVo^8xODH{hny4Y?T^A@KfS;Idio-WpL*5HcYA{XzR<;Jzi0 zkr5!>)(-SkS-=36d#I<{3>`tL>nlI!*P)D08t$K{`9T+>)oVX zsMpAU7GC6oN<{8pqUAv_@+cs9xRQl>5x5@V$-@GI$U%vFge;1m$=WM`n1FgK7z&_= zfx`=61oqnncoRH$7s$xS$mqx3mEirVJU$L^TbmJ)2t2xPC;bW)VRn6HwNOi(hm#3F zbmYULcxGzEIG_-I0zZ6c*ltdnaIn+XVdy@C|}q z8GSiGkRx!4$M4TQ@+>E?Ku83d3`2fc0!RhM${!JfRWN+ZVo&0TfP4mH$@{O+a0xwu zk@Rb0+YI)bzIO#GBO~LXqu`S_(SJ)m5)g^pZ^ymR1Op^o(D~R1g~rcDhv$a{(p3J8M3{1|`y3Putzj(Y_VM$Y4ajEs*Od+ou2nPOTg zEL^52Ji8KLfaAb0^XYG}jNTW%C5)ASO5VU$K|S~XBTCkv--ZnLnFUM>GysB#yOaQ) zY)=aTFWjqQ#Hxo3^@%80fQhsKCV;So?A)&T1DRl*p4}K3SjQh)@);U;^beadGBS=1 z;k(v8Dnw@%zTzo^2^*jP@#ipy72UDi5rx<)vTt=tC_S^}*-hz|UJf8QNd;DaAbl*Y zW`qEO`2GTgKCLSu0KPtfl|PyWAcnd?w7rw~W&CPFfJ}hv!we3S7nMVDdLN;pSjgF{$MP zg!RN@Km=xlPA`MWs>i=(o|lM!9#G1IR$VG+nxfRe47%&#mv=6a5&-CzqJw)kx@iGO z>ves?@wrNFGn~Nb#r)?$1t5=hW%cFt59}1NV!i-m^*?vvQ2G*uf_cbS;T6k*tN_8q z#YMUWz;fBOqN#aFyeha-e^vl8enkZERHlCV6g^Jm>3_92Wz``GDtqXEEJpAxx$mI_ z@C!OFS+tMA9cL2=ASmyd0+aZ}ULh`kYN>!61~kZCHU;mB)V1vbHI{D=7zr5qLVbLG z`da`E*Ilj=J402q3R}EV+9`mM(P696R6g@J0u$kCRe^4tLu6VTF=z%p}mb%QIek@ z4zPj#bHjk^0&+o#uP<08bKm?~&CoZ0Le{6wcm23ew zH{I-miZ?{J z2Rf^(ZQ0WGjqkgE-+K|xycCBOfU7Vqyq^a$+f-G5_e|T?0#L+;@9|h4Kp^SYj(klc zu|$OMt1ouY1$q`A4uK!!SQOsX~wpa2fs1^7Ve-n&3X z#)HRygML43+0AU>$A;W5tebaikyHZp(!xxY78}yXhEl$6@yABIqPLS*7h>k$K_!c- zlk-XUXV&loLk;li#Vgw8 z)i9uG$UUdXSyLGq8J`IFeSjhQ7U|o~=yl6~+m;>zzYp*MERa?&Lc2Beor2z%%*`;@ukZKw`#t}A{quf2-mk~&@qWJ+l%B{umS6)BEiUZT9K8$%_+l;0OzcBm zEIOySP1f^6d(F#cW1gyod(f|0p1QOC)bswBcSVlcn~^|^u}$)!9~8&xXN*Lit(BYH zcDFQQky|p7YBvC7JnQS}AwmRg=+|QNUV?}L&>s#}xVuLMv%r@^n`1QjSRrRWXkyJ9 zmDE;*DRaVsT=#K{K8I64nWZmZ2CJZxwB5j90TQ>YE)IWoHc6kou#GbZu9V5G>|hYN zVRMW8lgBiqT0nUXp=u}>7WWEfCP@4Ui-9jfUP?*4MKVF17iwB3mm$LqK*1}l_(_B`9~^*~GUu$qmn-^aeh}Y>05iSV908MyziiVl>p& zj6~f1+CKsSC#VDGYM*~fdr1-dUBzMNK#Lyw4WLYPoxcz})!ixTGcfkrhx_9t z?S~vP21SEgu)b_~6a8De8+J+{PiDHB1J0K@t`zPj_oVf;F!)uM^iS&fV0bX;WAZ;V zr>s4n?qP9_e?fMWA+IPgmPhPSzB#eyTyFX6!7n@*DlKK1Veq!gc+Hb5-d;~WPQE@vX$1JW2dd+>ea>3#CNb?R4k~RU!qW{HFL!Xx5c*m>p<;i za15`C5GqH-{Q~y|0+R9DnMzaWw{F0>zjW=J-ufAHZ->bT731?p zOD7gOc%3;Mu<5ZiZ__FhJu{2k%`iI&aQlp!2 zws3}z=_8(`W2Xf-GOVt1m3$_nZ>lF{S9H`*c^Dq)z<{V=TU3I3bk%zv&aXh6MQNwH zMfpOLCxKm*p9K!VI0aI!pGLCIpON+mEYvx{N7&KnRf9tO31IHjG!+7C|Lu1~`jZ-H zwCQ8q8B^quk#Eq8=209Tg2gfTBO9S0ZZI}0ZqkU*`_(_Bcr}5v{~6&M5w>k$N}zV9 z2^q||)dW=~`LiVN<8QK*0+vzrc;*qEzyheW_(mAviI!yC`ACU^+Jk9+Oln#jF{fh( zLbIgwA|g2YGmO}nt&@edRn~F@;^7K?J(7j9-o!^Kv54iBrf*mnXDb#Y;Q_7N&jRg^ z@M8>2%m|I+yL(e!C%jL!-@MH`VIqJE&~IuNSYeaGXIV+pwwi!65E&_PtpKW_u1;t! zUBS`rp7`!_AW-dZ3>M*;;ORVq?xvnhUez|87Z?_g^l>4Q!3r1xJLo4E;RD3rmVB+% zvcB+~VrhWcpBG*dDn)2F!a^0+U#M%7Eo!L0UmtxLWa zB|!K$Qks0`00}CNJr>CQdhNr~zzwZOKNPI}*8L$0gyS~lUkl4#3#)t%lTZz`xT2sC zaZAGc`@z3qH|&0QXLZf4-wTm-9lch6X(w>YGCY?#oZwYUnkA+?8F)wWQq9^%QTSQO;d%xhGZJU&9tTHxV z#U9_!QwzZ{)0^youAN0kuA4F{%6M+{W6upddRLJ3?#;GyfxPjj(JBUN*m+{IW8nBR zIRN*nqu|Dizr!A+#-%7PPDc_H&JtWGRZQJaP};Coy5Cx102Qo^w_}^ckgW%vGV)LI zZ$e~4bVem~K1GSwoSc^}SY&H?J9scn$-ZJfnHEPMmRfnnytYr`Q*zeiYrshPwx2F| zKb_YumV++);&U~8T4z{4FIq3VyAhHF7!f8jk5M{zMBh9J#M+zS59izMa|?Da)Om`Dvx zzol*neb#I_^7I2I4tZ5zW0z$*M*|$2gYWR&?%-RIwEN9Z1|p#vHwfcXy`HVH;@-Yg zp1gkjz+UmR+%8QqUKa$kp|zY}bF^Em$P=Lh;gU+hGkX?XpofgYdACwNO`+b4R|a0+ z8<+N4qbiPZKCP9z|F-yWXUGp;0_Ai~j4VDNqAkWJeB zsDyemKZfg`Zwo{2jLcF&A)7#5&v|z`x^HNH{{s{lj-FNeg zkhy>WFa^D`>3d=VqrhIrr^(Pb4e2__DJ}{qT7EMPU{~4I`5|+t?$XJChx!8_OROjH z4ogroCKKnXiyw4N6$L#IpW1MyG>T?zGFQHPX=QJNRY(vTepnmyt7AWOUTm%a>b>l{4NXv2z-nnXbomY24 zJ^x4mzV6f2fNrg2GVHcyhryl#yuVZk`WlgS_2AB*#N1Ee>8O(;+Z2xNp;3(M8O796 zLwPq^ln>>2f4`w*MI71t#agk}HpjgeK)jSG{;5xC>m@m1Z?PRJMK&)_=&M&chy=+J zWEy(BplP-vZuU(qmx!d0dJcw$NggLV8QAYW(iXAfyd0&Zok~BdeSD7d8t96=dIuw( zT`}PcF?P;5Y|?2ZB#ra-yK#n$vrqMyLXg1Fuk!bKfrLmX#a=2I|o2(d8vNfEf;U`~@5SZV&BHqANdeF(9+ubidb=Pzu4CHO}^oRf`AV5!>;=Kl3~k3a(E#?QOjkNRyKt zT>tj75Y5(uY|fT`+#qz=o(5R^+!r<&dwGP;JzkI5>=3qN$*D!(2@k6aZDBbI%Cuw& zsbzmz%m3jwn-|^KL|hU4V7ut@aAb1zfESw;K@o%S(Kzb8b_gr3_TqC)#HsyVZWolA zw*|ibkqd`(?+%VKBzRMC|DJ)}l&6162x;1B!J}P(kc+L2-Zs{@Akkg$6s?*fr;wk_wTMQ$?=^$HLA) z6(IW~YSVFurhHNlYBnmAhoRF_F%h($dBB}gf^nEkhXupIjPh@ZvRnIMHYnRH9<nvYnh8=^CXSVnqn%IVIv^OEyTR8~P^xXqk5pWH0HEVp(!h zI00>FYWYNp)RvgJWM?xeSvaBBwY<3#3aH?72LI`{j^cYexQu=g+Y05X338J^=f5)Z z+yCXAp&3unY>i^4%QxP)2F=QC1M6VvJ@AVNFSm{b2k+;@6KlbF+)fUyv(gbe@nnXO z*_W@0Xb1G{9Q+_O{s=)Ilt<@%IWbOIxPRKGjZxaX%6b@eIzECf{ z@;D2Y z0a}-6vBn5hu>2xvjIC{io;sP}HQn{2HKkIyq-GIyn}oV|`DBV$eCPYDg=VKf~M%DmHInYm5VrC|mvFLsd_w#VWx9wYm{82OabMS@_M%nwj&Diq{T=+C> zYO5LbPeuJ(QeWFn<(nfLIR(l_MVf@^hmb{W&SyhG94y;AA1^X|K0z8WLWT~>Qr?^Io)Lp;@!HxKxPZ0x4pxn qSjY#HREPziBU_jER_>FU-`mE$a{&_4r-N)jf3Y}=HmfwnME?hjxyfn( diff --git a/public/stylesheets/jquery-ui-1.8.11.custom.css b/public/stylesheets/jquery-ui-1.8.13.custom.css similarity index 98% rename from public/stylesheets/jquery-ui-1.8.11.custom.css rename to public/stylesheets/jquery-ui-1.8.13.custom.css index 4d8b180b..e045f17f 100644 --- a/public/stylesheets/jquery-ui-1.8.11.custom.css +++ b/public/stylesheets/jquery-ui-1.8.13.custom.css @@ -1,5 +1,5 @@ /* - * jQuery UI CSS Framework 1.8.11 + * jQuery UI CSS Framework 1.8.13 * * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) * Dual licensed under the MIT or GPL Version 2 licenses. @@ -42,7 +42,7 @@ /* - * jQuery UI CSS Framework 1.8.11 + * jQuery UI CSS Framework 1.8.13 * * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) * Dual licensed under the MIT or GPL Version 2 licenses. @@ -293,7 +293,7 @@ /* Overlays */ .ui-widget-overlay { background: #5c5c5c url(images/ui-bg_flat_50_5c5c5c_40x100.png) 50% 50% repeat-x; opacity: .80;filter:Alpha(Opacity=80); } .ui-widget-shadow { margin: -7px 0 0 -7px; padding: 7px; background: #cccccc url(images/ui-bg_flat_30_cccccc_40x100.png) 50% 50% repeat-x; opacity: .60;filter:Alpha(Opacity=60); -moz-border-radius: 8px; -webkit-border-radius: 8px; border-radius: 8px; }/* - * jQuery UI Resizable 1.8.11 + * jQuery UI Resizable 1.8.13 * * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) * Dual licensed under the MIT or GPL Version 2 licenses. @@ -302,7 +302,12 @@ * http://docs.jquery.com/UI/Resizable#theming */ .ui-resizable { position: relative;} -.ui-resizable-handle { position: absolute;font-size: 0.1px;z-index: 99999; display: block;} +.ui-resizable-handle { position: absolute;font-size: 0.1px;z-index: 99999; display: block; + /* http://bugs.jqueryui.com/ticket/7233 + - Resizable: resizable handles fail to work in IE if transparent and content overlaps + */ + background-image:url(data:image/gif;base64,R0lGODlhAQABAAD/ACwAAAAAAQABAAACADs=); +} .ui-resizable-disabled .ui-resizable-handle, .ui-resizable-autohide .ui-resizable-handle { display: none; } .ui-resizable-n { cursor: n-resize; height: 7px; width: 100%; top: -5px; left: 0; } .ui-resizable-s { cursor: s-resize; height: 7px; width: 100%; bottom: -5px; left: 0; } @@ -312,7 +317,7 @@ .ui-resizable-sw { cursor: sw-resize; width: 9px; height: 9px; left: -5px; bottom: -5px; } .ui-resizable-nw { cursor: nw-resize; width: 9px; height: 9px; left: -5px; top: -5px; } .ui-resizable-ne { cursor: ne-resize; width: 9px; height: 9px; right: -5px; top: -5px;}/* - * jQuery UI Selectable 1.8.11 + * jQuery UI Selectable 1.8.13 * * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) * Dual licensed under the MIT or GPL Version 2 licenses. @@ -322,7 +327,7 @@ */ .ui-selectable-helper { position: absolute; z-index: 100; border:1px dotted black; } /* - * jQuery UI Accordion 1.8.11 + * jQuery UI Accordion 1.8.13 * * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) * Dual licensed under the MIT or GPL Version 2 licenses. @@ -341,7 +346,7 @@ .ui-accordion .ui-accordion-content { padding: 1em 2.2em; border-top: 0; margin-top: -2px; position: relative; top: 1px; margin-bottom: 2px; overflow: auto; display: none; zoom: 1; } .ui-accordion .ui-accordion-content-active { display: block; } /* - * jQuery UI Autocomplete 1.8.11 + * jQuery UI Autocomplete 1.8.13 * * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) * Dual licensed under the MIT or GPL Version 2 licenses. @@ -355,7 +360,7 @@ * html .ui-autocomplete { width:1px; } /* without this, the menu expands to 100% in IE6 */ /* - * jQuery UI Menu 1.8.11 + * jQuery UI Menu 1.8.13 * * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about) * Dual licensed under the MIT or GPL Version 2 licenses. @@ -394,7 +399,7 @@ margin: -1px; } /* - * jQuery UI Button 1.8.11 + * jQuery UI Button 1.8.13 * * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) * Dual licensed under the MIT or GPL Version 2 licenses. @@ -432,7 +437,7 @@ input.ui-button { padding: .4em 1em; } /* workarounds */ button.ui-button::-moz-focus-inner { border: 0; padding: 0; } /* reset extra padding in Firefox */ /* - * jQuery UI Dialog 1.8.11 + * jQuery UI Dialog 1.8.13 * * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) * Dual licensed under the MIT or GPL Version 2 licenses. @@ -453,7 +458,7 @@ button.ui-button::-moz-focus-inner { border: 0; padding: 0; } /* reset extra pad .ui-dialog .ui-resizable-se { width: 14px; height: 14px; right: 3px; bottom: 3px; } .ui-draggable .ui-dialog-titlebar { cursor: move; } /* - * jQuery UI Slider 1.8.11 + * jQuery UI Slider 1.8.13 * * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) * Dual licensed under the MIT or GPL Version 2 licenses. @@ -476,7 +481,7 @@ button.ui-button::-moz-focus-inner { border: 0; padding: 0; } /* reset extra pad .ui-slider-vertical .ui-slider-range { left: 0; width: 100%; } .ui-slider-vertical .ui-slider-range-min { bottom: 0; } .ui-slider-vertical .ui-slider-range-max { top: 0; }/* - * jQuery UI Tabs 1.8.11 + * jQuery UI Tabs 1.8.13 * * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) * Dual licensed under the MIT or GPL Version 2 licenses. @@ -494,7 +499,7 @@ button.ui-button::-moz-focus-inner { border: 0; padding: 0; } /* reset extra pad .ui-tabs .ui-tabs-panel { display: block; border-width: 0; padding: 1em 1.4em; background: none; } .ui-tabs .ui-tabs-hide { display: none !important; } /* - * jQuery UI Datepicker 1.8.11 + * jQuery UI Datepicker 1.8.13 * * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) * Dual licensed under the MIT or GPL Version 2 licenses. @@ -561,7 +566,7 @@ button.ui-button::-moz-focus-inner { border: 0; padding: 0; } /* reset extra pad width: 200px; /*must have*/ height: 200px; /*must have*/ }/* - * jQuery UI Progressbar 1.8.11 + * jQuery UI Progressbar 1.8.13 * * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) * Dual licensed under the MIT or GPL Version 2 licenses. From c5c4c65f3c041bcef5bc2153e720a2d307e0b2df Mon Sep 17 00:00:00 2001 From: Reinier Balt Date: Mon, 23 May 2011 14:42:47 +0200 Subject: [PATCH 025/197] fix tab index counter. In case of a server restart the global var does not exist anymore causing an error --- app/helpers/todos_helper.rb | 3 +++ 1 file changed, 3 insertions(+) diff --git a/app/helpers/todos_helper.rb b/app/helpers/todos_helper.rb index 05e68079..8688b924 100644 --- a/app/helpers/todos_helper.rb +++ b/app/helpers/todos_helper.rb @@ -417,6 +417,9 @@ module TodosHelper end def next_tab_index + # make sure it exists if reset was not called. Set to 20 to avoid clashes with existing form in sidebar + $tracks_tab_index ||= 20 + $tracks_tab_index = $tracks_tab_index + 1 return $tracks_tab_index end From 11d1c326ee0a46c93a4f21073fa41af61230b279 Mon Sep 17 00:00:00 2001 From: Ignacio Huerta Date: Tue, 31 May 2011 08:59:22 +0200 Subject: [PATCH 026/197] Add spanish translation ((incomplete) and i18n a couple of string in action editor --- app/views/todos/_edit_form.rhtml | 4 +- config/locales/es.yml | 840 +++++++++++++++++++++++++++++++ 2 files changed, 842 insertions(+), 2 deletions(-) create mode 100644 config/locales/es.yml diff --git a/app/views/todos/_edit_form.rhtml b/app/views/todos/_edit_form.rhtml index 310b507d..ee95961d 100644 --- a/app/views/todos/_edit_form.rhtml +++ b/app/views/todos/_edit_form.rhtml @@ -58,11 +58,11 @@ form_for(todo, :html=> { :name=>'todo', :id => dom_id(@todo, 'form'), :class =>
    <%=image_tag("cancel.png", :alt => "") %> - Cancel + <%= t('common.cancel') %>
    diff --git a/config/locales/es.yml b/config/locales/es.yml new file mode 100644 index 00000000..1ae862a3 --- /dev/null +++ b/config/locales/es.yml @@ -0,0 +1,840 @@ +--- +es: + common: + actions: Tareas + back: !binary | + QXRyw6Fz + + third: Tercero + add: "A\xC3\xB1adir" + go_back: "Volver atr\xC3\xA1s" + logout: Salir + none: Ninguno + week: semana + optional: opcional + cancel: Cancelar + month: mes + second: Segundo + notes: Notas + forum: Foro + server_error: Ha ocurrido un error en el servidor. + action: Tarea + last: "\xC3\x9Altimo" + projects: Proyectos + project: Proyecto + contribute: Contribuir + ok: Ok + first: Primero + numbered_step: Paso %{number} + website: Website + errors_with_fields: "Ha habido problemas con los siguientes campos:" + sort: + by_task_count_title: "Ordenar por n\xC3\xBAmero de tareas" + by_task_count_title_confirm: Are you sure that you want to sort these projects by the number of tasks? This will replace the existing sort order. + alphabetically: "Alfab\xC3\xA9ticamente" + sort: Ordenar + alphabetically_title: Sort projects alphabetically + alphabetically_confirm: Are you sure that you want to sort these projects alphabetically? This will replace the existing sort order. + by_task_count: "Por n\xC3\xBAmero de tareas" + months: meses + drag_handle: ARRASTRAR + contexts: Contextos + fourth: Cuarto + create: Crear + context: Contexto + description: "Descripci\xC3\xB3n" + forth: Siguiente + update: Actualizar + weeks: semanas + bugs: Errores + wiki: Wiki + email: Email + search: Buscar + ajaxError: There was an error retrieving from server + layouts: + toggle_notes: Activar/Desactivar notas + next_actions_rss_feed: RSS feed of next actions + toggle_notes_title: Activar/Desactivar todas las notas + mobile_navigation: + new_action: 0-Nueva tarea + logout: Logout + feeds: Feeds + starred: 4-Starred + projects: 3-Proyectos + tickler: Tickler + contexts: 2-Contexts + home: 1-Home + navigation: + recurring_todos: Tareas repetitivas + api_docs: REST API Docs + manage_users_title: "A\xC3\xB1adir o eliminar usuarios" + feeds: Feeds + stats: "Estad\xC3\xADsticas" + starred: Estrellas + notes_title: Mostrar todas las notas + tickler_title: Tickler + manage_users: Administrar usuarios + export_title: Import and export data + integrations_: Integrar Tracks + preferences: Preferencias + feeds_title: See a list of available feeds + calendar_title: Calendar of due actions + recurring_todos_title: Manage recurring actions + tickler: Tickler + completed_tasks: Done + stats_title: See your statistics + home_title: Inicio + starred_title: See your starred actions + view: Ver + organize: Organizar + completed_tasks_title: Completed + home: Inicio + contexts_title: Contexts + export: Export + preferences_title: Mostrar mis preferencias + search: Search All Items + calendar: Calendar + projects_title: Proyectos + integrations: + opensearch_description: Search in Tracks + gmail_description: Gadget to add Tracks to Gmail as a gadget + applescript_next_action_prompt: "Descripci\xC3\xB3n de la pr\xC3\xB3xima tarea:" + applescript_success_before_id: New next action with ID + applescript_success_after_id: created + activerecord: + attributes: + todo: + predecessors: Depende de + user: + last_name: Apellido + first_name: Nombre + preference: + show_hidden_projects_in_sidebar: Mostrar proyectos ocultos en el lateral + show_hidden_contexts_in_sidebar: Mostrar los contextos ocultos en el lateral + date_format: Formato de fecha + mobile_todos_per_page: "Tareas por p\xC3\xA1gina (Vista M\xC3\xB3vil)" + sms_context: Contexto por defecto para el email + staleness_starts: Comienzo de estancamiento + verbose_action_descriptors: Verbose action descriptors + show_number_completed: "Mostrar n\xC3\xBAmero de tareas completadas" + title_date_format: Title date format + refresh: "Intervalo de actualizaci\xC3\xB3n (en minutos)" + week_starts: Week starts on + due_style: Due style + locale: Idioma + time_zone: Zona horaria + show_project_on_todo_done: "Ir a la p\xC3\xA1gina del proyecto al completar la tarea" + sms_email: Email origen + show_completed_projects_in_sidebar: Show completed projects in sidebar + errors: + messages: + record_invalid: "La validaci\xC3\xB3n ha fallado: %{errores}" + greater_than_or_equal_to: "" + less_than_or_equal_to: "" + confirmation: "" + blank: no puede estar en blanco + invalid: cannot contain the comma (',') character + exclusion: "" + odd: tiene que ser impar + too_short: "" + empty: "no puede estar vac\xC3\xADo" + wrong_length: "" + even: "" + less_than: "" + equal_to: "" + greater_than: "" + too_long: "" + accepted: "" + taken: "" + not_a_number: "no es un n\xC3\xBAmero" + inclusion: "" + models: + project: + attributes: + name: + blank: project must have a name + too_long: El nombre del proyecto tiene que tener menos de 256 caracteres + taken: already exists + full_messages: + format: "" + template: + body: "" + header: + one: "" + other: "" + models: + project: + feed_title: Tracks Projects + feed_description: Lists all the projects for %{username} + todo: + error_date_must_be_future: must be a date in the future + user: + error_context_not_associated: Context id %{context} not associated with user id %{user}. + error_project_not_associated: Project id %{project} not associated with user id %{user}. + preference: + due_on: Due on %{date} + due_in: Due in %{days} days + due_styles: + - Due in ___ days + - Due on _______ + data: + import_successful: Import was successful. + import_errors: Some errors occurred during import + stats: + actions: Actions + totals_active_project_count: Of those %{count} are active projects + tag_cloud_title: Tag cloud for all actions + tag_cloud_description: This tag cloud includes tags of all actions (completed, not completed, visible and/or hidden) + tag_cloud_90days_title: Tag cloud actions in past 90 days + totals_first_action: Since your first action on %{date} + actions_avg_completion_time: Of all your completed actions, the average time to complete is %{count} days. + actions_last_year_legend: + number_of_actions: Number of actions + months_ago: Months ago + current_running_time_of_incomplete_visible_actions: Current running time of incomplete visible actions + running_time_legend: + actions: Tareas + percentage: Percentage + weeks: Running time of an action (weeks). Click on a bar for more info + actions_dow_30days_title: Day of week (past 30 days) + totals_action_count: you have a total of %{count} actions + totals_deferred_actions: of which %{count} are deferred actions in the tickler + legend: + number_of_days: Number of days ago + actions: Tareas + number_of_actions: "N\xC3\xBAmero de tareas" + day_of_week: Day of week + running_time: Running time of an action (weeks) + percentage: Percentage + months_ago: Months ago + top10_longrunning: Top 10 longest running projects + actions_lastyear_title: Actions in the last 12 months + totals_actions_completed: "%{count} of these are completed." + totals_incomplete_actions: You have %{count} incomplete actions + totals_unique_tags: Of those tags, %{count} are unique. + actions_avg_completed_30days: and completed an average of %{count} actions per day. + top5_contexts: Top 5 contexts + actions_last_year: Actions in the last years + totals_context_count: You have %{count} contexts. + totals_visible_context_count: Of those %{count} are visible contexts + totals_blocked_actions: "%{count} are dependent on the completion of their actions." + projects: Projects + action_completion_time_title: Completion time (all completed actions) + actions_day_of_week_title: Day of week (all actions) + tags: Tags + totals_project_count: You have %{count} projects. + actions_min_max_completion_days: The Max-/minimum days to complete is %{min}/%{max}. + actions_min_completion_time: The minimum time to complete is %{time}. + no_tags_available: no tags available + running_time_all: Current running time of all incomplete actions + actions_30days_title: Actions in the last 30 days + actions_further: " and further" + totals_hidden_project_count: "%{count} are hidden" + tod30: Time of day (last 30 days) + totals_tag_count: You have %{count} tags placed on actions. + more_stats_will_appear: More statistics will appear here once you have added some actions. + tag_cloud_90days_description: This tag cloud includes tags of actions that were created or completed in the past 90 days. + time_of_day: Time of day (all actions) + top5_visible_contexts_with_incomplete_actions: Top 5 visible contexts with incomplete actions + click_to_return: Click %{link} to return to the statistics page. + top10_projects: Top 10 projects + click_to_show_actions_from_week: Click %{link} to show the actions from week %{week} and further. + top10_projects_30days: Top 10 project in past 30 days + other_actions_label: (otros) + actions_selected_from_week: "Actions selected from week " + spread_of_actions_for_all_context: Spread of actions for all context + totals_completed_project_count: and %{count} are completed projects. + spread_of_running_actions_for_visible_contexts: Spread of running actions for visible contexts + actions_avg_created: In the last 12 months you created on average %{count} actions + click_to_return_link: here + totals_hidden_context_count: and %{count} are hidden contexts. + actions_avg_completed: and completed an average of %{count} actions per month. + contexts: Contexts + totals: Totals + time_of_day_legend: + number_of_actions: "N\xC3\xBAmero de tareas" + time_of_day: Time of day + click_to_update_actions: Click on a bar in the chart to update the actions below. + no_actions_selected: No hay tareas seleccionadas. + running_time_all_legend: + actions: Tareas + running_time: Running time of an action (weeks). Click on a bar for more info + percentage: Percentage + labels: + month_avg_completed: "%{months} Month avg completed" + completed: Completed + month_avg_created: "%{months} Month avg created" + avg_created: Avg created + avg_completed: Avg completed + created: Created + action_selection_title: TRACKS::Action selection + actions_actions_avg_created_30days: In the last 30 days you created on average %{count} actions + tod30_legend: + number_of_actions: "N\xC3\xBAmero de tareas" + time_of_day: Time of day + todos: + show_from: Show from + error_starring_recurring: Could not toggle the star of recurring todo \'%{description}\' + recurring_action_deleted: Action was deleted. Because this action is recurring, a new action was added + completed_actions: Completed actions + completed_recurring: Completed recurring todos + added_new_next_action: Added new next action + blocked_by: Blocked by %{predecessors} + star_action: Star this action + completed_recurrence_completed: There is no next action after the recurring action you just deleted. The recurrence is completed + defer_date_after_due_date: Defer date is after due date. Please edit and adjust due date before deferring. + unable_to_add_dependency: Unable to add dependency + done: Done? + star_action_with_description: star the action '%{description}' + tagged_with: tagged with ‘%{tag_name}’ + completed: Completed + no_deferred_actions_with: No deferred actions with the tag '%{tag_name}' + no_hidden_actions: Currently there are no hidden actions found + edit_action_with_description: Edit the action '%{description}' + action_due_on: (action due on %{date}) + tags: Tags (separate with commas) + archived_tasks_title: TRACKS::Archived completed tasks + remove_dependency: Remove dependency (does not delete the action) + list_incomplete_next_actions: Lista las siguientes tareas incompletas + action_deleted_success: Successfully deleted next action + new_related_todo_created: "Una nueva tarea fue a\xC3\xB1adida y que pertenece a esta tarea recurrente" + context_changed: Context changed to %{name} + mobile_todos_page_title: Todas las tareas + add_another_dependency: Add another dependency + delete_recurring_action_title: Delete the recurring action + removed_predecessor: Removed %{successor} as dependency from %{predecessor}. + recurring_actions_title: TRACKS::Recurring Actions + next_action_needed: You need to submit at least one next action + action_saved: Action saved + scheduled_overdue: Scheduled to show %{days} days ago + action_deleted_error: Failed to delete the action + next_actions_description: "Filter:" + edit_action: Edit action + added_new_context: Added new context + set_to_pending: "%{task} set to pending" + list_incomplete_next_actions_with_limit: Lists the last %{count} incomplete next actions + added_new_project: Added new project + next_actions_title_additions: + completed: actions completed + due_today: due today + due_within_a_week: due within a week + older_completed_items: Older completed items + append_in_this_project: in this project + error_deleting_item: There was an error deleting the item %{description} + task_list_title: TRACKS::List tasks + no_actions_due_this_week: No actions due in rest of this week + no_recurring_todos: Currently there are no recurring todos + error_completing_todo: There was an error completing / activating the recurring todo %{description} + convert_to_project: Make project + no_deferred_pending_actions: Currently there are no deferred or pending actions + delete_recurring_action_confirm: Are you sure that you want to delete the recurring action '%{description}'? + completed_last_day: Completed in the last 24 hours + error_saving_recurring: There was an error saving the recurring todo \'%{description}\' + completed_more_than_x_days_ago: Completed more than %{count} days ago + show_in_days: Show in %{days} days + no_project: --No project-- + new_related_todo_created_short: creada una nueva tarea + feed_title_in_context: in context '%{context}' + pending: Pending + older_than_days: Older than %{count} days + edit: Edit + completed_actions_with: Completed actions with the tag %{tag_name} + deleted_success: The action was deleted succesfully. + completed_tasks_title: TRACKS::Completed tasks + feed_title_in_project: in project '%{project}' + clear_due_date: Clear due date + error_removing_dependency: There was an error removing the dependency + hidden_actions: Tareas ocultas + was_due_on_date: was due on %{date} + show_on_date: Show on %{date} + recurrence_period: Recurrence period + deferred_actions_with: Deferred actions with the tag '%{tag_name}' + confirm_delete: Are you sure that you want to delete the action '%{description}'? + recurring_deleted_success: The recurring action was deleted succesfully. + deferred_tasks_title: TRACKS::Tickler + next_actions_title: Tracks - Next Actions + next_action_description: "Descripci\xC3\xB3n de la nueva tarea" + no_completed_actions_with: No completed actions with the tag '%{tag_name}' + clear_show_from_date: Clear show from date + in_hidden_state: en estado oculto + calendar_page_title: TRACKS::Calendar + unresolved_dependency: The value you entered in the dependency field did not resolve to an existing action. This value will not be saved with the rest of the action. Continue? + show_today: Show Today + no_actions_found_title: No actions found + next_actions_due_date: + overdue_by: Overdue by %{days} day + due_in_x_days: "Vence en %{days} d\xC3\xADas" + due_today: Vence hoy + overdue_by_plural: Overdue by %{days} days + due_tomorrow: "Vence ma\xC3\xB1ana" + completed_last_x_days: Completed in last %{count} days + no_actions_with: Currently there are no incomplete actions with the tag '%{tag_name}' + defer_x_days: + one: Defer one day + other: Defer %{count} days + added_new_next_action_singular: Added new next action + no_completed_actions: Currently there are no completed actions. + deferred_pending_actions: Deferred/pending actions + has_x_pending: + one: Tiene una tarea pendiente + other: Tiene %{count} tareas pendientes + feeds: + completed: "Completed: %{date}" + due: "Due: %{date}" + delete_action: Delete action + error_deleting_recurring: There was an error deleting the recurring todo \'%{description}\' + recurring_todos: Recurring todos + delete: Delete + drag_action_title: Drag onto another action to make it depend on that action + cannot_add_dependency_to_completed_todo: Cannot add this action as a dependency to a completed action! + depends_on: Depends on + tickler_items_due: + one: One tickler item is now due - refresh the page to see it. + other: "%{count} tickler items are now due - refresh the page to see them." + action_marked_complete: The action '%{description}' was marked as %{completed} + completed_today: + one: You have completed one action so far today. + other: You have completed %{count} actions so far today. + added_new_next_action_plural: Added new next actions + new_related_todo_not_created_short: "no se cre\xC3\xB3 la tarea" + error_starring: Could not toggle the star of this todo \'%{description}\' + calendar: + get_in_ical_format: Get this calendar in iCal format + due_next_week: Due next week + due_this_week: Due in rest of this week + no_actions_due_next_week: No actions due in next week + no_actions_due_today: No actions due today + due_today: Due today + due_next_month_and_later: Due in %{month} and later + no_actions_due_after_this_month: No actions due after this month + no_actions_due_this_month: No actions due in rest of this month + due_this_month: Due in rest of %{month} + show_tomorrow: Show Tomorrow + recurrence: + ends_on_number_times: Ends after %{number} times + ends_on_date: Ends on %{date} + every_work_day: Every work day + recurrence_on_due_date: the date that the todo is due + weekly_options: Settings for weekly recurring actions + weekly: Weekly + monthly_options: Settings for monthly recurring actions + monthly: Monthly + starts_on: Starts on + daily_options: Settings for daily recurring actions + pattern: + month_names: + - + - January + - February + - Match + - April + - May + - June + - July + - August + - September + - October + - November + - December + third: third + every_n: every %{n} + on_day_n: on day %{n} + every_xth_day_of_every_n_months: every %{x} %{day} of every %{n_months} + second: second + from: from + weekly: weekly + every_day: every day + last: last + the_xth_day_of_month: the %{x} %{day} of %{month} + times: for %{number} times + every_year_on: every year on %{date} + first: first + day_names: + - sunday + - monday + - tuesday + - wednesday + - thursday + - friday + - saturday + show: show + on_work_days: on work days + fourth: fourth + due: due + until: until + every_month: every month + daily: Daily + show_option_always: always + recurrence_on_options: Set recurrence on + yearly_every_x_day: Every %{month} %{day} + daily_every_number_day: Every %{number} day(s) + ends_on: Ends on + weekly_every_number_week: Returns every %{number} week on + show_options: Show the todo + yearly_options: Settings for yearly recurring actions + yearly_every_xth_day: The %{day} %{day_of_week} of %{month} + show_days_before: "%{days} days before the todo is due" + from_tickler: the date todo comes from tickler (no due date set) + no_end_date: No end date + day_x_on_every_x_month: Day %{day} on every %{month} month + monthly_every_xth_day: The %{day} %{day_of_week} of every %{month} month + yearly: Yearly + tagged_page_title: TRACKS::Tagged with '%{tag_name}' + no_completed_recurring: Currently there are no completed recurring todos + added_dependency: Added %{dependency} as dependency. + no_deferred_actions: Currently there are no deferred actions. + recurrence_completed: There is no next action after the recurring action you just finished. The recurrence is completed + no_actions_found: Currently there are no incomplete actions. + in_pending_state: en estado pendiente + error_toggle_complete: Could not mark this todo complete + due: "Fecha l\xC3\xADmite" + action_marked_complete_error: The action '%{description}' was NOT marked as %{completed} due to an error on the server. + depends_on_separate_with_commas: Depende de (separar con comas) + action_saved_to_tickler: Action saved to tickler + recurring_action_saved: Recurring action saved + completed_in_archive: + one: There is one completed action in the archive. + other: There are %{count} completed actions in the archive. + to_tickler: to tickler + next_actions_description_additions: + completed: in the last %{count} days + due_date: with a due date %{due_date} or earlier + overdue: Overdue + add_new_recurring: Add a new recurring action + no_incomplete_actions: There are no incomplete actions + notes: + delete_note_title: Delete the note '%{id}' + delete_confirmation: Are you sure that you want to delete the note '%{id}'? + delete_item_title: Delete item + show_note_title: Show note + deleted_note: Deleted note '%{id}' + note_link_title: Show note %{id} + note_location_link: "In:" + edit_item_title: Edit item + note_header: Note %{id} + no_notes_available: "Currently there are no notes: add notes to projects from individual project pages." + delete_note_confirm: Are you sure that you want to delete the note '%{id}'? + states: + hidden_plural: Hidden + completed: Completed + completed_plural: Completed + visible_plural: Visible + visible: Visible + active_plural: Active + hidden: Hidden + active: Active + time: + formats: + month_day: "%B %d" + errors: + user_unauthorized: "401 Unauthorized: Only administrative users are allowed access to this function." + projects: + edit_project_title: Editar proyecto + default_tags_removed_notice: Removed the default tags + default_context_set: Set project's default context to %{default_context} + deferred_actions: Tareas pospuestas para este proyecto + no_actions_in_project: Currently there are no incomplete actions in this project + was_marked_hidden: has been marked as hidden + page_title: "TRACKS::Project: %{project}" + hide_form: Esconder formulario + this_project: This project + project_state: Project is %{state}. + show_form_title: Create a new project + to_new_project_page: Take me to the new project page + no_notes_attached: Currently there are no notes attached to this project + deferred_actions_empty: There are no deferred actions for this project + notes: Notes + todos_append: in this project + no_projects: Currently there are no projects + hide_form_title: Hide new project form + notes_empty: There are no notes for this project + completed_actions_empty: No hay tareas completadas para este proyecto + with_no_default_context: with no default context + delete_project: Delete project + show_form: Add a project + delete_project_confirmation: Are you sure that you want to delete the project '%{name}'? + actions_in_project_title: Actions in this project + with_default_context: with a default context of '%{context_name}' + set_default_tags_notice: Set project's default tags to %{default_tags} + with_default_tags: and with '%{tags}' as the default tags + project_saved_status: Project saved + list_projects: TRACKS::Lista de Proyectos + add_note: "A\xC3\xB1adir una nota" + add_project: "A\xC3\xB1adir Proyecto" + settings: Settings + completed_projects: Proyectos completados + is_active: "est\xC3\xA1 activo" + hidden_projects: Proyectos ocultos + delete_project_title: Delete the project + default_context_removed: Eliminado el contexto por defecto + add_note_submit: "A\xC3\xB1adir nota" + completed_actions: Tareas completadas para este proyecto + was_marked_complete: has been marked as completed + state: This project is %{state} + status_project_name_changed: Name of project was changed + with_no_default_tags: and with no default tags + default_context: The default context for this project is %{context} + active_projects: Active projects + edit_project_settings: Edit Project Settings + no_default_context: Este proyecto no tiene un contexto por defecto + preferences: + staleness_starts_after: Staleness starts after %{days} days + change_identity_url: Change Your Identity URL + open_id_url: Your OpenID URL is + change_password: Change your password + page_title: TRACKS::Preferences + title: Your preferences + token_description: Token (for feeds and API use) + show_number_completed: Show %{number} completed items + is_false: "false" + edit_preferences: Edit preferences + page_title_edit: TRACKS::Edit Preferences + is_true: "true" + sms_context_none: None + generate_new_token: Generate a new token + token_header: Your token + current_authentication_type: Your authentication type is %{auth_type} + change_authentication_type: Change your authentication type + authentication_header: Your authentication + generate_new_token_confirm: Are you sure? Generating a new token will replace the existing one and break any external usages of this token. + date: + month_names: + - + - Enero + - Febrero + - Marzo + - Abril + - Mayo + - Junio + - Julio + - Agosto + - Septiembre + - Octubre + - Noviembre + - Diciembre + abbr_day_names: + - Dom + - Lun + - Mar + - Mie + - Jue + - Vie + - Sab + formats: + default: "%Y-%m-%d" + short: "%b %d" + long: "%B %d, %Y" + day_names: + - Domingo + - Lunes + - Martes + - "Mi\xC3\xA9rcoles" + - Jueves + - Viernes + - "S\xC3\xA1bado" + abbr_month_names: + - + - Ene + - Feb + - Mar + - Abr + - May + - Jun + - Jul + - Ago + - Sep + - Oct + - Nov + - Dic + footer: + send_feedback: Send feedback on %{version} + shared: + multiple_next_actions: Multiple next actions (one on each line) + toggle_single: Add a next action + hide_form: Esconder formulario + add_action: "A\xC3\xB1adir tarea" + add_actions: "A\xC3\xB1adir tareas" + tags_for_all_actions: Tags for all actions (sep. with commas) + toggle_multi: Add multiple next actions + toggle_single_title: Add a new next action + project_for_all_actions: Project for all actions + context_for_all_actions: Context for all actions + separate_tags_with_commas: separar con comas + toggle_multi_title: Toggle single/multi new action form + hide_action_form_title: Hide new action form + contexts: + delete_context_title: Delete context + hide_form: Esconder formulario + show_form_title: Add a context + delete_context: Eliminar contexto + delete_context_confirmation: Are you sure that you want to delete the context '%{name}'? Be aware that this will also delete all (repeating) actions in this context! + edit_context: Edit context + hide_form_title: Hide new context form + no_contexts_active: Currently there are no active contexts + context_hide: "\xC2\xBFEsconder de la p\xC3\xA1gina principal?" + hidden_contexts: Hidden contexts + show_form: Create a new context + save_status_message: Context saved + add_context: "A\xC3\xB1adir contexto" + visible_contexts: Visible contexts + context_name: Nombre del contexto + update_status_message: Name of context was changed + status_active: "El contexto est\xC3\xA1 activo" + new_context_post: "' will be also created. Are you sure?" + context_deleted: Contexto eliminado '%{name}' + no_contexts_hidden: Currently there are no hidden contexts + new_context_pre: New context ' + no_actions: Currently there are no incomplete actions in this context + last_completed_in_context: in this context (last %{number}) + status_hidden: Context is hidden + users: + total_contexts: Total contexts + first_user_heading: "Welcome to TRACKS. To get started, please create an admin account:" + successfully_deleted_user: Successfully deleted user %{username} + failed_to_delete_user: Failed to delete user %{username} + openid_url_verified: You have successfully verified %{url} as your identity and set your authentication type to OpenID. + destroy_successful: User %{login} was successfully destroyed + auth_type_update_error: "There was a problem updating your authentication type: %{error_messages}" + total_projects: Total projects + signup_successful: Signup successful for user %{username}. + new_token_generated: New token successfully generated + user_created: User created. + change_password_submit: Change password + no_signups_title: TRACKS::No signups + account_signup: Account signup + password_updated: Password updated. + manage_users: Manage users + new_user_heading: "Sign up a new user:" + auth_type_updated: Authentication type updated. + total_actions: Total actions + signup: Signup + desired_login: Desired login + confirm_password: Confirm password + change_password_title: TRACKS::Change password + change_auth_type_title: TRACKS::Change authentication type + change_password_prompt: Enter your new password in the fields below and click 'Change password' to replace your current password with your new one. + password_confirmation_label: Confirm password + destroy_error: There was an error deleting the user %{login} + choose_password: Choose password + new_password_label: New password + register_with_cas: With your CAS username + label_auth_type: Authentication type + destroy_user: Destroy user + total_users_count: You have a total of %{count} users + new_user_title: TRACKS::Sign up as the admin user + signup_new_user: Sign up new user + destroy_confirmation: "Warning: this will delete user '%{login}', all their actions, contexts, project and notes. Are you sure that you want to continue?" + change_authentication_type: Change authentication type + auth_change_submit: Change authentication type + openid_ok_pref_failed: You have successfully verified %{url} as your identity but there was a problem saving your authentication preferences. + identity_url: Identity URL + select_authentication_type: Select your new authentication type and click 'Change authentication type' to replace your current settings. + total_notes: Total notes + feedlist: + actions_due_today: Acciones pendientes hoy o antes + choose_context: Choose the context you want a feed of + rss_feed: RSS Feed + ical_feed: iCal feed + all_contexts: All Contexts + legend: "Legend:" + all_projects: All Projects + choose_project: Choose the project you want a feed of + active_projects_wo_next: Active projects with no next actions + project_needed: There needs to be at least one project before you can request a feed + select_feed_for_project: Select the feed for this project + active_starred_actions: All starred, active actions + projects_and_actions: Active projects with their actions + context_needed: There needs to be at least one context before you can request a feed + select_feed_for_context: Select the feed for this context + notice_incomplete_only: "Note: All feeds show only actions that have not been marked as done, unless stated otherwise." + actions_due_next_week: "Tareas pendientes en 7 d\xC3\xADas o menos" + plain_text_feed: Plain Text Feed + last_fixed_number: Last %{number} actions + all_actions: Todas las tareas + actions_completed_last_week: "Tareas completadas en los \xC3\xBAltimos 7 d\xC3\xADas" + context_centric_actions: Feeds for incomplete actions in a specific context + project_centric: Feeds for incomplete actions in a specific project + sidebar: + list_name_active_contexts: Active contexts + list_name_active_projects: Active projects + list_empty: None + list_name_completed_projects: Completed projects + list_name_hidden_projects: Hidden projects + list_name_hidden_contexts: Hidden contexts + datetime: + prompts: + minute: Minuto + month: "" + second: "" + hour: Hora + day: !binary | + RMOtYQ== + + year: "" + distance_in_words: + less_than_x_minutes: + one: "" + other: "" + almost_x_years: + one: "" + other: "" + x_days: + one: "" + other: "" + x_seconds: + one: "" + other: "" + less_than_x_seconds: + one: "" + other: "" + x_months: + one: "" + other: "" + x_minutes: + one: "" + other: "" + about_x_hours: + one: "" + other: "" + about_x_months: + one: "" + other: "" + about_x_years: + one: "" + other: "" + over_x_years: + one: "" + other: "" + half_a_minute: "" + login: + user_no_expiry: Stay logged in + sign_in: Entrar + openid_identity_url_not_found: Sorry, no user by that identity URL exists (%{identity_url}) + login_cas: go to the CAS + successful_with_session_info: "Login successful:" + please_login: Please log in to use Tracks + cas_logged_in_greeting: Hello, %{username}! You are authenticated. + cas_no_user_found: Hello, %{username}! You do not have an account on Tracks. + cas_login: CAS Login + cas_username_not_found: Sorry, no user by that CAS username exists (%{username}) + cas_create_account: If you like to request on please go here to %{signup_link} + mobile_use_openid: "\xE2\x80\xA6or login with an OpenID" + account_login: Acceso a la cuenta + cas_signup_link: Request account + successful: "Has entrado con \xC3\xA9xito. Bienvenido!" + session_will_not_expire: session will not expire. + session_time_out: Session has timed out. Please %{link} + session_will_expire: session will expire after %{hours} hour(s) of inactivity. + option_separator: or, + login_standard: go back to the standard login + login_with_openid: login with an OpenID + unsuccessful: Login unsuccessful. + log_in_again: log in again. + logged_out: You have been logged out of Tracks. + search: + contexts_matching_query: Contexts matching query + tags_matching_query: Tags matching query + no_results: Your search yielded no results. + todos_matching_query: Todos matching query + projects_matching_query: Projects matching query + notes_matching_query: Notes matching query From 4aa0e63e8561512a9eecec48a3a3bea9e1f6de63 Mon Sep 17 00:00:00 2001 From: Reinier Balt Date: Tue, 31 May 2011 19:28:50 +0200 Subject: [PATCH 027/197] update tree with missing 2.3.11 files or files that were not updated this has no real impact on tracks as an app --- config/initializers/backtrace_silencers.rb | 7 ++++ .../cookie_verification_secret.rb | 7 ++++ config/initializers/inflections.rb | 10 ++++++ config/initializers/new_rails_defaults.rb | 21 ++++++++++++ public/404.html | 32 ++++++++++++++--- public/422.html | 30 ++++++++++++++++ public/500.html | 34 +++++++++++++++---- public/robots.txt | 6 +++- script/about | 5 +-- script/console | 4 +-- script/dbconsole | 2 +- script/destroy | 4 +-- script/generate | 4 +-- script/performance/benchmarker | 2 +- script/performance/profiler | 2 +- script/plugin | 4 +-- script/runner | 4 +-- script/server | 4 +-- 18 files changed, 153 insertions(+), 29 deletions(-) create mode 100644 config/initializers/backtrace_silencers.rb create mode 100644 config/initializers/cookie_verification_secret.rb create mode 100644 config/initializers/inflections.rb create mode 100644 config/initializers/new_rails_defaults.rb create mode 100644 public/422.html diff --git a/config/initializers/backtrace_silencers.rb b/config/initializers/backtrace_silencers.rb new file mode 100644 index 00000000..c2169ed0 --- /dev/null +++ b/config/initializers/backtrace_silencers.rb @@ -0,0 +1,7 @@ +# Be sure to restart your server when you modify this file. + +# You can add backtrace silencers for libraries that you're using but don't wish to see in your backtraces. +# Rails.backtrace_cleaner.add_silencer { |line| line =~ /my_noisy_library/ } + +# You can also remove all the silencers if you're trying do debug a problem that might steem from framework code. +# Rails.backtrace_cleaner.remove_silencers! \ No newline at end of file diff --git a/config/initializers/cookie_verification_secret.rb b/config/initializers/cookie_verification_secret.rb new file mode 100644 index 00000000..b824a8a0 --- /dev/null +++ b/config/initializers/cookie_verification_secret.rb @@ -0,0 +1,7 @@ +# Be sure to restart your server when you modify this file. + +# Your secret key for verifying the integrity of signed cookies. +# If you change this key, all old signed cookies will become invalid! +# Make sure the secret is at least 30 characters and all random, +# no regular words or you'll be exposed to dictionary attacks. +ActionController::Base.cookie_verifier_secret = 'cdb112742619b87ea7cdcfc9a0f664abaf49dbd12bbc22d9d94ef990b4a0eb9776a9a62ca225e01a014ca8ac8bfda8ae704ce3367b4f75dea3082cea00d6609f'; diff --git a/config/initializers/inflections.rb b/config/initializers/inflections.rb new file mode 100644 index 00000000..d531b8bb --- /dev/null +++ b/config/initializers/inflections.rb @@ -0,0 +1,10 @@ +# Be sure to restart your server when you modify this file. + +# Add new inflection rules using the following format +# (all these examples are active by default): +# ActiveSupport::Inflector.inflections do |inflect| +# inflect.plural /^(ox)$/i, '\1en' +# inflect.singular /^(ox)en/i, '\1' +# inflect.irregular 'person', 'people' +# inflect.uncountable %w( fish sheep ) +# end diff --git a/config/initializers/new_rails_defaults.rb b/config/initializers/new_rails_defaults.rb new file mode 100644 index 00000000..c94db0a6 --- /dev/null +++ b/config/initializers/new_rails_defaults.rb @@ -0,0 +1,21 @@ +# Be sure to restart your server when you modify this file. + +# These settings change the behavior of Rails 2 apps and will be defaults +# for Rails 3. You can remove this initializer when Rails 3 is released. + +if defined?(ActiveRecord) + # Include Active Record class name as root for JSON serialized output. + ActiveRecord::Base.include_root_in_json = true + + # Store the full class name (including module namespace) in STI type column. + ActiveRecord::Base.store_full_sti_class = true +end + +ActionController::Routing.generate_best_match = false + +# Use ISO 8601 format for JSON serialized times and dates. +ActiveSupport.use_standard_json_time_format = true + +# Don't escape HTML entities in JSON, leave that for the #json_escape helper. +# if you're including raw json in an HTML page. +ActiveSupport.escape_html_entities_in_json = false \ No newline at end of file diff --git a/public/404.html b/public/404.html index 0e184561..eff660b9 100644 --- a/public/404.html +++ b/public/404.html @@ -1,8 +1,30 @@ - - + + + + + + + The page you were looking for doesn't exist (404) + + + -

    File not found

    -

    Change this error message for pages not found in public/404.html

    + +
    +

    The page you were looking for doesn't exist.

    +

    You may have mistyped the address or the page may have moved.

    +
    \ No newline at end of file diff --git a/public/422.html b/public/422.html new file mode 100644 index 00000000..b54e4a3c --- /dev/null +++ b/public/422.html @@ -0,0 +1,30 @@ + + + + + + + The change you wanted was rejected (422) + + + + + +
    +

    The change you wanted was rejected.

    +

    Maybe you tried to change something you didn't have access to.

    +
    + + \ No newline at end of file diff --git a/public/500.html b/public/500.html index a1001a00..ec3bbf02 100644 --- a/public/500.html +++ b/public/500.html @@ -1,8 +1,30 @@ - - + + + + + + + We're sorry, but something went wrong (500) + + + -

    Application error (Apache)

    -

    Change this error message for exceptions thrown outside of an action (like in Dispatcher setups or broken Ruby code) in public/500.html

    + +
    +

    We're sorry, but something went wrong.

    +

    We've been notified about this issue and we'll take a look at it shortly.

    +
    - \ No newline at end of file + diff --git a/public/robots.txt b/public/robots.txt index 4ab9e89f..8e1d4206 100644 --- a/public/robots.txt +++ b/public/robots.txt @@ -1 +1,5 @@ -# See http://www.robotstxt.org/wc/norobots.html for documentation on how to use the robots.txt file \ No newline at end of file +# See http://www.robotstxt.org/wc/norobots.html for documentation on how to use the robots.txt file +# +# To ban all spiders from the entire site uncomment the next two lines: +User-Agent: * +Disallow: / diff --git a/script/about b/script/about index 7b07d46a..1eeb6eb9 100644 --- a/script/about +++ b/script/about @@ -1,3 +1,4 @@ #!/usr/bin/env ruby -require File.dirname(__FILE__) + '/../config/boot' -require 'commands/about' \ No newline at end of file +require File.expand_path('../../config/boot', __FILE__) +$LOAD_PATH.unshift "#{RAILTIES_PATH}/builtin/rails_info" +require 'commands/about' diff --git a/script/console b/script/console index 42f28f7d..235a1f27 100755 --- a/script/console +++ b/script/console @@ -1,3 +1,3 @@ #!/usr/bin/env ruby -require File.dirname(__FILE__) + '/../config/boot' -require 'commands/console' \ No newline at end of file +require File.expand_path('../../config/boot', __FILE__) +require 'commands/console' diff --git a/script/dbconsole b/script/dbconsole index caa60ce8..83c8436a 100755 --- a/script/dbconsole +++ b/script/dbconsole @@ -1,3 +1,3 @@ #!/usr/bin/env ruby -require File.dirname(__FILE__) + '/../config/boot' +require File.expand_path('../../config/boot', __FILE__) require 'commands/dbconsole' diff --git a/script/destroy b/script/destroy index fa0e6fcd..88d295f7 100755 --- a/script/destroy +++ b/script/destroy @@ -1,3 +1,3 @@ #!/usr/bin/env ruby -require File.dirname(__FILE__) + '/../config/boot' -require 'commands/destroy' \ No newline at end of file +require File.expand_path('../../config/boot', __FILE__) +require 'commands/destroy' diff --git a/script/generate b/script/generate index ef976e09..62a8a4c0 100755 --- a/script/generate +++ b/script/generate @@ -1,3 +1,3 @@ #!/usr/bin/env ruby -require File.dirname(__FILE__) + '/../config/boot' -require 'commands/generate' \ No newline at end of file +require File.expand_path('../../config/boot', __FILE__) +require 'commands/generate' diff --git a/script/performance/benchmarker b/script/performance/benchmarker index c842d35d..3bff809f 100755 --- a/script/performance/benchmarker +++ b/script/performance/benchmarker @@ -1,3 +1,3 @@ #!/usr/bin/env ruby -require File.dirname(__FILE__) + '/../../config/boot' +require File.expand_path('../../../config/boot', __FILE__) require 'commands/performance/benchmarker' diff --git a/script/performance/profiler b/script/performance/profiler index d855ac8b..07640575 100755 --- a/script/performance/profiler +++ b/script/performance/profiler @@ -1,3 +1,3 @@ #!/usr/bin/env ruby -require File.dirname(__FILE__) + '/../../config/boot' +require File.expand_path('../../../config/boot', __FILE__) require 'commands/performance/profiler' diff --git a/script/plugin b/script/plugin index 26ca64c0..b82201fa 100755 --- a/script/plugin +++ b/script/plugin @@ -1,3 +1,3 @@ #!/usr/bin/env ruby -require File.dirname(__FILE__) + '/../config/boot' -require 'commands/plugin' \ No newline at end of file +require File.expand_path('../../config/boot', __FILE__) +require 'commands/plugin' diff --git a/script/runner b/script/runner index ccc30f9d..be4c5d45 100755 --- a/script/runner +++ b/script/runner @@ -1,3 +1,3 @@ #!/usr/bin/env ruby -require File.dirname(__FILE__) + '/../config/boot' -require 'commands/runner' \ No newline at end of file +require File.expand_path('../../config/boot', __FILE__) +require 'commands/runner' diff --git a/script/server b/script/server index dfabcb88..b9fcb717 100755 --- a/script/server +++ b/script/server @@ -1,3 +1,3 @@ #!/usr/bin/env ruby -require File.dirname(__FILE__) + '/../config/boot' -require 'commands/server' \ No newline at end of file +require File.expand_path('../../config/boot', __FILE__) +require 'commands/server' From 6a1576c39a21844a2b55fc2cc01ee2b0eb5a6d8c Mon Sep 17 00:00:00 2001 From: Christof Spies Date: Mon, 6 Jun 2011 16:15:08 +0200 Subject: [PATCH 028/197] rake gems undefined method `name' for "RedCloth":String --- config/environment.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/config/environment.rb b/config/environment.rb index a4a016aa..8367c59f 100644 --- a/config/environment.rb +++ b/config/environment.rb @@ -22,7 +22,7 @@ Rails::Initializer.run do |config| config.autoload_paths += %W( #{RAILS_ROOT}/app/apis ) config.gem "highline" - config.gem "RedCloth" + config.gem "RedCloth", :lib => 'redcloth' config.gem "soap4r", :lib => false config.gem 'datanoise-actionwebservice', :lib => 'actionwebservice', :source => "http://gems.github.com" config.gem 'sanitize', :version => '~> 1.2.1' From 6b1cf674a8a031c3bc0e8a747d254e9d2e4da772 Mon Sep 17 00:00:00 2001 From: Reinier Balt Date: Mon, 6 Jun 2011 19:54:03 +0200 Subject: [PATCH 029/197] fix version number for RedCloth since the latest versions fail on compiling extentions --- config/environment.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/config/environment.rb b/config/environment.rb index 8367c59f..a16ce4c8 100644 --- a/config/environment.rb +++ b/config/environment.rb @@ -22,7 +22,7 @@ Rails::Initializer.run do |config| config.autoload_paths += %W( #{RAILS_ROOT}/app/apis ) config.gem "highline" - config.gem "RedCloth", :lib => 'redcloth' + config.gem "RedCloth", :lib => 'redcloth', :version => '4.2.3' config.gem "soap4r", :lib => false config.gem 'datanoise-actionwebservice', :lib => 'actionwebservice', :source => "http://gems.github.com" config.gem 'sanitize', :version => '~> 1.2.1' From 91eeb0c6aae6f2f248bbb1a5775bb3afbfcac602 Mon Sep 17 00:00:00 2001 From: Reinier Balt Date: Tue, 31 May 2011 23:07:20 +0200 Subject: [PATCH 030/197] update require statements to fix path issue --- test/functional/backend_controller_test.rb | 2 +- test/functional/contexts_controller_test.rb | 4 ++-- test/functional/data_controller_test.rb | 2 +- test/functional/integrations_controller_test.rb | 2 +- test/functional/login_controller_test.rb | 2 +- test/functional/preferences_controller_test.rb | 2 +- test/functional/users_controller_test.rb | 2 +- test/integration/context_xml_api_test.rb | 2 +- test/integration/feed_smoke_test.rb | 2 +- test/integration/ldap_auth_test.rb | 2 +- test/integration/project_xml_api_test.rb | 2 +- test/integration/recurring_todos_test.rb | 2 +- test/integration/stories_test.rb | 2 +- test/integration/users_xml_api_test.rb | 2 +- test/test_helper.rb | 1 + test/unit/context_test.rb | 2 +- test/unit/message_gateway_test.rb | 2 +- test/unit/notes_test.rb | 2 +- test/unit/preference_test.rb | 2 +- test/unit/project_test.rb | 2 +- test/unit/recurring_todo_test.rb | 2 +- test/unit/tag_test.rb | 2 +- test/unit/tagging_test.rb | 2 +- test/unit/todo_create_params_helper_test.rb | 2 +- test/unit/todo_test.rb | 2 +- test/unit/user_test.rb | 2 +- 26 files changed, 27 insertions(+), 26 deletions(-) diff --git a/test/functional/backend_controller_test.rb b/test/functional/backend_controller_test.rb index 517743d3..26d4fb56 100644 --- a/test/functional/backend_controller_test.rb +++ b/test/functional/backend_controller_test.rb @@ -1,4 +1,4 @@ -require File.dirname(__FILE__) + '/../test_helper' +require File.expand_path(File.dirname(__FILE__) + '/../test_helper') require 'backend_controller' # Re-raise errors caught by the controller. diff --git a/test/functional/contexts_controller_test.rb b/test/functional/contexts_controller_test.rb index eba1c104..20d46136 100644 --- a/test/functional/contexts_controller_test.rb +++ b/test/functional/contexts_controller_test.rb @@ -1,5 +1,5 @@ -require File.dirname(__FILE__) + '/../test_helper' -require File.dirname(__FILE__) + '/todo_container_controller_test_base' +require File.expand_path(File.dirname(__FILE__) + '/../test_helper') +require File.expand_path(File.dirname(__FILE__) + '/todo_container_controller_test_base') require 'contexts_controller' # Re-raise errors caught by the controller. diff --git a/test/functional/data_controller_test.rb b/test/functional/data_controller_test.rb index 57b466e7..763e5b7c 100644 --- a/test/functional/data_controller_test.rb +++ b/test/functional/data_controller_test.rb @@ -1,4 +1,4 @@ -require File.dirname(__FILE__) + '/../test_helper' +require File.expand_path(File.dirname(__FILE__) + '/../test_helper') require 'data_controller' # Re-raise errors caught by the controller. diff --git a/test/functional/integrations_controller_test.rb b/test/functional/integrations_controller_test.rb index fad4bbef..d1f8db4e 100644 --- a/test/functional/integrations_controller_test.rb +++ b/test/functional/integrations_controller_test.rb @@ -1,4 +1,4 @@ -require File.dirname(__FILE__) + '/../test_helper' +require File.expand_path(File.dirname(__FILE__) + '/../test_helper') require 'integrations_controller' # Re-raise errors caught by the controller. diff --git a/test/functional/login_controller_test.rb b/test/functional/login_controller_test.rb index ecff40ff..4e490456 100644 --- a/test/functional/login_controller_test.rb +++ b/test/functional/login_controller_test.rb @@ -1,4 +1,4 @@ -require File.dirname(__FILE__) + '/../test_helper' +require File.expand_path(File.dirname(__FILE__) + '/../test_helper') require 'login_controller' require_dependency "login_system" diff --git a/test/functional/preferences_controller_test.rb b/test/functional/preferences_controller_test.rb index 08bccc04..c12b007f 100644 --- a/test/functional/preferences_controller_test.rb +++ b/test/functional/preferences_controller_test.rb @@ -1,4 +1,4 @@ -require File.dirname(__FILE__) + '/../test_helper' +require File.expand_path(File.dirname(__FILE__) + '/../test_helper') require 'preferences_controller' require 'preference' diff --git a/test/functional/users_controller_test.rb b/test/functional/users_controller_test.rb index 42aae5bc..99999ab7 100644 --- a/test/functional/users_controller_test.rb +++ b/test/functional/users_controller_test.rb @@ -1,4 +1,4 @@ -require File.dirname(__FILE__) + '/../test_helper' +require File.expand_path(File.dirname(__FILE__) + '/../test_helper') require 'users_controller' # Re-raise errors caught by the controller. diff --git a/test/integration/context_xml_api_test.rb b/test/integration/context_xml_api_test.rb index e95dbb75..0c8fdc7a 100644 --- a/test/integration/context_xml_api_test.rb +++ b/test/integration/context_xml_api_test.rb @@ -1,4 +1,4 @@ -require File.dirname(__FILE__) + '/../test_helper' +require File.expand_path(File.dirname(__FILE__) + '/../test_helper') require 'contexts_controller' # Re-raise errors caught by the controller. diff --git a/test/integration/feed_smoke_test.rb b/test/integration/feed_smoke_test.rb index 7de89ba2..fff1d7d9 100644 --- a/test/integration/feed_smoke_test.rb +++ b/test/integration/feed_smoke_test.rb @@ -1,4 +1,4 @@ -require File.dirname(__FILE__) + '/../test_helper' +require File.expand_path( File.dirname(__FILE__) + '/../test_helper') require 'projects_controller' require 'contexts_controller' require 'todos_controller' diff --git a/test/integration/ldap_auth_test.rb b/test/integration/ldap_auth_test.rb index d7a2ba5d..76866740 100755 --- a/test/integration/ldap_auth_test.rb +++ b/test/integration/ldap_auth_test.rb @@ -1,4 +1,4 @@ -require "#{File.dirname(__FILE__)}/../test_helper" +require File.expand_path( File.dirname(__FILE__) + '/../test_helper') require 'tempfile' module Tracks diff --git a/test/integration/project_xml_api_test.rb b/test/integration/project_xml_api_test.rb index df640f17..87560d7a 100644 --- a/test/integration/project_xml_api_test.rb +++ b/test/integration/project_xml_api_test.rb @@ -1,4 +1,4 @@ -require File.dirname(__FILE__) + '/../test_helper' +require File.expand_path(File.dirname(__FILE__) + '/../test_helper') require 'projects_controller' # Re-raise errors caught by the controller. diff --git a/test/integration/recurring_todos_test.rb b/test/integration/recurring_todos_test.rb index 8cd01bc2..9cf4707d 100644 --- a/test/integration/recurring_todos_test.rb +++ b/test/integration/recurring_todos_test.rb @@ -1,4 +1,4 @@ -require File.dirname(__FILE__) + '/../test_helper' +require File.expand_path(File.dirname(__FILE__) + '/../test_helper') require 'todos_controller' require 'recurring_todos_controller' diff --git a/test/integration/stories_test.rb b/test/integration/stories_test.rb index 8ec5d474..109e9ca1 100644 --- a/test/integration/stories_test.rb +++ b/test/integration/stories_test.rb @@ -1,4 +1,4 @@ -require "#{File.dirname(__FILE__)}/../test_helper" +require File.expand_path(File.dirname(__FILE__) + '/../test_helper') class StoriesTest < ActionController::IntegrationTest fixtures :users, :preferences, :projects, :contexts, :todos, :recurring_todos, :notes diff --git a/test/integration/users_xml_api_test.rb b/test/integration/users_xml_api_test.rb index f80f6b25..6ae04a62 100644 --- a/test/integration/users_xml_api_test.rb +++ b/test/integration/users_xml_api_test.rb @@ -1,4 +1,4 @@ -require File.dirname(__FILE__) + '/../test_helper' +require File.expand_path(File.dirname(__FILE__) + '/../test_helper') require 'users_controller' # Re-raise errors caught by the controller. diff --git a/test/test_helper.rb b/test/test_helper.rb index e621735e..07d55071 100644 --- a/test/test_helper.rb +++ b/test/test_helper.rb @@ -1,4 +1,5 @@ ENV["RAILS_ENV"] = "test" +require 'thread' require File.expand_path(File.dirname(__FILE__) + "/../config/environment") require File.expand_path(File.dirname(__FILE__) + "/../app/controllers/application_controller") require 'test_help' diff --git a/test/unit/context_test.rb b/test/unit/context_test.rb index bf310489..e091c553 100644 --- a/test/unit/context_test.rb +++ b/test/unit/context_test.rb @@ -1,4 +1,4 @@ -require File.dirname(__FILE__) + '/../test_helper' +require File.expand_path(File.dirname(__FILE__) + '/../test_helper') class ContextTest < ActiveSupport::TestCase fixtures :contexts, :todos, :recurring_todos, :users, :preferences diff --git a/test/unit/message_gateway_test.rb b/test/unit/message_gateway_test.rb index ffb8c5c3..7f94cb4e 100644 --- a/test/unit/message_gateway_test.rb +++ b/test/unit/message_gateway_test.rb @@ -1,4 +1,4 @@ -require File.dirname(__FILE__) + '/../test_helper' +require File.expand_path(File.dirname(__FILE__) + '/../test_helper') class MessageGatewayTest < ActiveSupport::TestCase fixtures :users, :contexts, :todos diff --git a/test/unit/notes_test.rb b/test/unit/notes_test.rb index 7f9a83e4..695c0329 100644 --- a/test/unit/notes_test.rb +++ b/test/unit/notes_test.rb @@ -1,4 +1,4 @@ -require File.dirname(__FILE__) + '/../test_helper' +require File.expand_path(File.dirname(__FILE__) + '/../test_helper') class NotesTest < ActiveSupport::TestCase fixtures :notes diff --git a/test/unit/preference_test.rb b/test/unit/preference_test.rb index 1ced0f83..4080cb62 100644 --- a/test/unit/preference_test.rb +++ b/test/unit/preference_test.rb @@ -1,4 +1,4 @@ -require File.dirname(__FILE__) + '/../test_helper' +require File.expand_path(File.dirname(__FILE__) + '/../test_helper') class PreferenceTest < ActiveSupport::TestCase fixtures :users, :preferences diff --git a/test/unit/project_test.rb b/test/unit/project_test.rb index dd89da58..180f0876 100644 --- a/test/unit/project_test.rb +++ b/test/unit/project_test.rb @@ -1,4 +1,4 @@ -require File.dirname(__FILE__) + '/../test_helper' +require File.expand_path(File.dirname(__FILE__) + '/../test_helper') class ProjectTest < ActiveSupport::TestCase fixtures :projects, :contexts, :todos, :recurring_todos, :users, :preferences diff --git a/test/unit/recurring_todo_test.rb b/test/unit/recurring_todo_test.rb index 03f2bb3f..980525be 100644 --- a/test/unit/recurring_todo_test.rb +++ b/test/unit/recurring_todo_test.rb @@ -1,4 +1,4 @@ -require File.dirname(__FILE__) + '/../test_helper' +require File.expand_path(File.dirname(__FILE__) + '/../test_helper') class RecurringTodoTest < ActiveSupport::TestCase fixtures :todos, :users, :contexts, :preferences, :tags, :taggings, :recurring_todos diff --git a/test/unit/tag_test.rb b/test/unit/tag_test.rb index daeb5f27..fff511b9 100644 --- a/test/unit/tag_test.rb +++ b/test/unit/tag_test.rb @@ -1,4 +1,4 @@ -require File.dirname(__FILE__) + '/../test_helper' +require File.expand_path(File.dirname(__FILE__) + '/../test_helper') class TagTest < ActiveSupport::TestCase fixtures :tags diff --git a/test/unit/tagging_test.rb b/test/unit/tagging_test.rb index 6c57c944..b660ea2e 100644 --- a/test/unit/tagging_test.rb +++ b/test/unit/tagging_test.rb @@ -1,4 +1,4 @@ -require File.dirname(__FILE__) + '/../test_helper' +require File.expand_path(File.dirname(__FILE__) + '/../test_helper') class TaggingTest < ActiveSupport::TestCase fixtures :taggings diff --git a/test/unit/todo_create_params_helper_test.rb b/test/unit/todo_create_params_helper_test.rb index 73f2b1b5..8e992907 100644 --- a/test/unit/todo_create_params_helper_test.rb +++ b/test/unit/todo_create_params_helper_test.rb @@ -1,4 +1,4 @@ -require File.dirname(__FILE__) + '/../test_helper' +require File.expand_path(File.dirname(__FILE__) + '/../test_helper') require 'todos_controller' class TodoCreateParamsHelperTest < ActiveSupport::TestCase diff --git a/test/unit/todo_test.rb b/test/unit/todo_test.rb index b5e31034..45b77af7 100644 --- a/test/unit/todo_test.rb +++ b/test/unit/todo_test.rb @@ -1,4 +1,4 @@ -require File.dirname(__FILE__) + '/../test_helper' +require File.expand_path(File.dirname(__FILE__) + '/../test_helper') require 'date' class TodoTest < ActiveSupport::TestCase diff --git a/test/unit/user_test.rb b/test/unit/user_test.rb index 04e5c715..1a673262 100644 --- a/test/unit/user_test.rb +++ b/test/unit/user_test.rb @@ -1,4 +1,4 @@ -require File.dirname(__FILE__) + '/../test_helper' +require File.expand_path(File.dirname(__FILE__) + '/../test_helper') module Tracks class Config From a3c5920a2b4cf6e5a2770bb5333cc9fc3e735e55 Mon Sep 17 00:00:00 2001 From: Reinier Balt Date: Thu, 9 Jun 2011 14:49:58 +0200 Subject: [PATCH 031/197] Merge branches 'ruby1.9' and 'master' From ceda51b5bf64e2eaf340269027142ac6a7d2bc9a Mon Sep 17 00:00:00 2001 From: Reinier Balt Date: Thu, 9 Jun 2011 17:04:00 +0200 Subject: [PATCH 032/197] upgrade to rails 2.3.12 and fix deprecation warning and fix some version numbers of gems used for testing --- Rakefile | 4 +- config/environments/cucumber.rb | 8 +- .../.specification | 8 +- .../datanoise-actionwebservice-2.3.2/Rakefile | 4 +- .../lib/has_many_polymorphs/class_methods.rb | 4 +- vendor/rails/actionmailer/Rakefile | 12 +- .../actionmailer/lib/action_mailer/version.rb | 2 +- vendor/rails/actionpack/Rakefile | 12 +- .../lib/action_controller/request.rb | 4 +- .../session/abstract_store.rb | 1 + .../actionpack/lib/action_pack/version.rb | 2 +- .../controller/session/abstract_store_test.rb | 64 + .../controller/session/cookie_store_test.rb | 44 + vendor/rails/activerecord/Rakefile | 12 +- .../associations/association_collection.rb | 2 +- .../activerecord/lib/active_record/base.rb | 2 +- .../activerecord/lib/active_record/version.rb | 2 +- .../has_many_associations_test.rb | 9 + .../test/fixtures/fixture_database.sqlite | Bin 3072 -> 0 bytes .../test/fixtures/fixture_database.sqlite3 | Bin 181248 -> 67531776 bytes .../test/fixtures/fixture_database_2.sqlite | Bin 3072 -> 0 bytes .../test/fixtures/fixture_database_2.sqlite3 | Bin 3072 -> 3072 bytes vendor/rails/activeresource/Rakefile | 12 +- .../lib/active_resource/version.rb | 2 +- vendor/rails/activeresource/test/debug.log | 11182 ---------------- .../lib/active_support/version.rb | 2 +- vendor/rails/railties/Rakefile | 20 +- .../railties/lib/rails/gem_dependency.rb | 29 +- .../lib/rails/vendor_gem_source_index.rb | 2 +- vendor/rails/railties/lib/rails/version.rb | 2 +- .../components/plugin/templates/Rakefile | 4 +- .../railties/lib/tasks/documentation.rake | 4 +- .../rails/railties/lib/tasks/framework.rake | 2 +- vendor/rails/railties/tags | 2260 ++++ 34 files changed, 2451 insertions(+), 11266 deletions(-) create mode 100644 vendor/rails/actionpack/test/controller/session/abstract_store_test.rb delete mode 100644 vendor/rails/activerecord/test/fixtures/fixture_database.sqlite delete mode 100644 vendor/rails/activerecord/test/fixtures/fixture_database_2.sqlite delete mode 100644 vendor/rails/activeresource/test/debug.log create mode 100644 vendor/rails/railties/tags diff --git a/Rakefile b/Rakefile index 494c7b6f..52e1413e 100644 --- a/Rakefile +++ b/Rakefile @@ -5,7 +5,7 @@ require(File.join(File.dirname(__FILE__), 'config', 'boot')) require 'rake' require 'rake/testtask' -require 'rake/rdoctask' +require 'rdoc/task' require 'tasks/rails' @@ -13,4 +13,4 @@ begin require 'test/rails/rake_tasks' rescue LoadError => e #It's ok if you don't have ZenTest installed if you're not a developer -end \ No newline at end of file +end diff --git a/config/environments/cucumber.rb b/config/environments/cucumber.rb index a7392a85..1ad1a7d6 100644 --- a/config/environments/cucumber.rb +++ b/config/environments/cucumber.rb @@ -26,8 +26,8 @@ config.action_mailer.delivery_method = :test config.action_controller.session_store = :cookie_store config.action_controller.session = { :key => 'TracksCucumber', :secret => SITE_CONFIG['salt'] * (30.0 / SITE_CONFIG['salt'].length).ceil } -config.gem 'cucumber', :lib => false, :version => '<0.10.0' unless File.directory?(File.join(Rails.root, 'vendor/plugins/cucumber')) -config.gem 'cucumber-rails', :lib => false, :version => '>=0.3.2' unless File.directory?(File.join(Rails.root, 'vendor/plugins/cucumber-rails')) -config.gem 'gherkin', :lib => false, :version => '2.2.9' unless File.directory?(File.join(Rails.root, 'vendor/plugins/gherkin')) +config.gem 'cucumber', :lib => false, :version => '=0.9.4' unless File.directory?(File.join(Rails.root, 'vendor/plugins/cucumber')) +config.gem 'cucumber-rails', :lib => false, :version => '=0.3.2' unless File.directory?(File.join(Rails.root, 'vendor/plugins/cucumber-rails')) +config.gem 'gherkin', :lib => false, :version => '=2.4.0' unless File.directory?(File.join(Rails.root, 'vendor/plugins/gherkin')) config.gem 'database_cleaner', :lib => false, :version => '>=0.5.0' unless File.directory?(File.join(Rails.root, 'vendor/plugins/database_cleaner')) -config.gem 'webrat', :lib => false, :version => '>=0.7.0' unless File.directory?(File.join(Rails.root, 'vendor/plugins/webrat')) \ No newline at end of file +config.gem 'webrat', :lib => false, :version => '>=0.7.0' unless File.directory?(File.join(Rails.root, 'vendor/plugins/webrat')) diff --git a/vendor/gems/datanoise-actionwebservice-2.3.2/.specification b/vendor/gems/datanoise-actionwebservice-2.3.2/.specification index 3e8a3ccc..ce200267 100644 --- a/vendor/gems/datanoise-actionwebservice-2.3.2/.specification +++ b/vendor/gems/datanoise-actionwebservice-2.3.2/.specification @@ -29,8 +29,8 @@ dependencies: segments: - 2 - 3 - - 11 - version: 2.3.11 + - 12 + version: 2.3.12 type: :runtime version_requirements: *id001 - !ruby/object:Gem::Dependency @@ -45,8 +45,8 @@ dependencies: segments: - 2 - 3 - - 11 - version: 2.3.11 + - 12 + version: 2.3.12 type: :runtime version_requirements: *id002 description: Adds WSDL/SOAP and XML-RPC web service support to Action Pack diff --git a/vendor/gems/datanoise-actionwebservice-2.3.2/Rakefile b/vendor/gems/datanoise-actionwebservice-2.3.2/Rakefile index c4758806..49e1aefd 100644 --- a/vendor/gems/datanoise-actionwebservice-2.3.2/Rakefile +++ b/vendor/gems/datanoise-actionwebservice-2.3.2/Rakefile @@ -72,8 +72,8 @@ spec = Gem::Specification.new do |s| s.rubyforge_project = "aws" s.homepage = "http://www.rubyonrails.org" - s.add_dependency('actionpack', '= 2.3.11' + PKG_BUILD) - s.add_dependency('activerecord', '= 2.3.11' + PKG_BUILD) + s.add_dependency('actionpack', '= 2.3.12' + PKG_BUILD) + s.add_dependency('activerecord', '= 2.3.12' + PKG_BUILD) s.has_rdoc = true s.requirements << 'none' diff --git a/vendor/gems/has_many_polymorphs-2.13/lib/has_many_polymorphs/class_methods.rb b/vendor/gems/has_many_polymorphs-2.13/lib/has_many_polymorphs/class_methods.rb index 394985cf..1db66969 100644 --- a/vendor/gems/has_many_polymorphs-2.13/lib/has_many_polymorphs/class_methods.rb +++ b/vendor/gems/has_many_polymorphs-2.13/lib/has_many_polymorphs/class_methods.rb @@ -340,7 +340,7 @@ Be aware, however, that NULL != 'Spot' returns false due to SQ options[:parent_extend] = spiked_create_extension_module(association_id, Array(options[:parent_extend]), "Parent") # create the reflection object - returning(create_reflection(:has_many_polymorphs, association_id, options, self)) do |reflection| + create_reflection(:has_many_polymorphs, association_id, options, self).tap do |reflection| # set up the other related associations create_join_association(association_id, reflection) create_has_many_through_associations_for_parent_to_children(association_id, reflection) @@ -355,7 +355,7 @@ Be aware, however, that NULL != 'Spot' returns false due to SQ def build_table_aliases(from) # for the targets - returning({}) do |aliases| + {}.tap do |aliases| from.map(&:to_s).sort.map(&:to_sym).each_with_index do |plural, t_index| begin table = plural._as_class.table_name diff --git a/vendor/rails/actionmailer/Rakefile b/vendor/rails/actionmailer/Rakefile index e7ef2b23..ba85056e 100644 --- a/vendor/rails/actionmailer/Rakefile +++ b/vendor/rails/actionmailer/Rakefile @@ -1,9 +1,9 @@ require 'rubygems' require 'rake' require 'rake/testtask' -require 'rake/rdoctask' +require 'rdoc/task' require 'rake/packagetask' -require 'rake/gempackagetask' +require 'rubygems/package_task' require File.join(File.dirname(__FILE__), 'lib', 'action_mailer', 'version') PKG_BUILD = ENV['PKG_BUILD'] ? '.' + ENV['PKG_BUILD'] : '' @@ -29,7 +29,7 @@ Rake::TestTask.new { |t| # Generate the RDoc documentation -Rake::RDocTask.new { |rdoc| +RDoc::Task.new { |rdoc| rdoc.rdoc_dir = 'doc' rdoc.title = "Action Mailer -- Easy email delivery and testing" rdoc.options << '--line-numbers' << '--inline-source' << '-A cattr_accessor=object' @@ -54,19 +54,17 @@ spec = Gem::Specification.new do |s| s.rubyforge_project = "actionmailer" s.homepage = "http://www.rubyonrails.org" - s.add_dependency('actionpack', '= 2.3.11' + PKG_BUILD) + s.add_dependency('actionpack', '= 2.3.12' + PKG_BUILD) - s.has_rdoc = true s.requirements << 'none' s.require_path = 'lib' - s.autorequire = 'action_mailer' s.files = [ "Rakefile", "install.rb", "README", "CHANGELOG", "MIT-LICENSE" ] s.files = s.files + Dir.glob( "lib/**/*" ).delete_if { |item| item.include?( "\.svn" ) } s.files = s.files + Dir.glob( "test/**/*" ).delete_if { |item| item.include?( "\.svn" ) } end -Rake::GemPackageTask.new(spec) do |p| +Gem::PackageTask.new(spec) do |p| p.gem_spec = spec p.need_tar = true p.need_zip = true diff --git a/vendor/rails/actionmailer/lib/action_mailer/version.rb b/vendor/rails/actionmailer/lib/action_mailer/version.rb index da9b986a..ce0b782e 100644 --- a/vendor/rails/actionmailer/lib/action_mailer/version.rb +++ b/vendor/rails/actionmailer/lib/action_mailer/version.rb @@ -2,7 +2,7 @@ module ActionMailer module VERSION #:nodoc: MAJOR = 2 MINOR = 3 - TINY = 11 + TINY = 12 STRING = [MAJOR, MINOR, TINY].join('.') end diff --git a/vendor/rails/actionpack/Rakefile b/vendor/rails/actionpack/Rakefile index 4c7c4b7b..004ed541 100644 --- a/vendor/rails/actionpack/Rakefile +++ b/vendor/rails/actionpack/Rakefile @@ -1,9 +1,9 @@ require 'rubygems' require 'rake' require 'rake/testtask' -require 'rake/rdoctask' +require 'rdoc/task' require 'rake/packagetask' -require 'rake/gempackagetask' +require 'rubygems/package_task' require File.join(File.dirname(__FILE__), 'lib', 'action_pack', 'version') PKG_BUILD = ENV['PKG_BUILD'] ? '.' + ENV['PKG_BUILD'] : '' @@ -45,7 +45,7 @@ end # Genereate the RDoc documentation -Rake::RDocTask.new { |rdoc| +RDoc::Task.new { |rdoc| rdoc.rdoc_dir = 'doc' rdoc.title = "Action Pack -- On rails from request to response" rdoc.options << '--line-numbers' << '--inline-source' @@ -76,14 +76,12 @@ spec = Gem::Specification.new do |s| s.rubyforge_project = "actionpack" s.homepage = "http://www.rubyonrails.org" - s.has_rdoc = true s.requirements << 'none' - s.add_dependency('activesupport', '= 2.3.11' + PKG_BUILD) + s.add_dependency('activesupport', '= 2.3.12' + PKG_BUILD) s.add_dependency('rack', '~> 1.1.0') s.require_path = 'lib' - s.autorequire = 'action_controller' s.files = [ "Rakefile", "install.rb", "README", "RUNNING_UNIT_TESTS", "CHANGELOG", "MIT-LICENSE" ] dist_dirs.each do |dir| @@ -91,7 +89,7 @@ spec = Gem::Specification.new do |s| end end -Rake::GemPackageTask.new(spec) do |p| +Gem::PackageTask.new(spec) do |p| p.gem_spec = spec p.need_tar = true p.need_zip = true diff --git a/vendor/rails/actionpack/lib/action_controller/request.rb b/vendor/rails/actionpack/lib/action_controller/request.rb index 98c5e8ce..dc462530 100755 --- a/vendor/rails/actionpack/lib/action_controller/request.rb +++ b/vendor/rails/actionpack/lib/action_controller/request.rb @@ -446,7 +446,9 @@ EOM end def reset_session - session.destroy if session + # session may be a hash, if so, we do not want to call destroy + # fixes issue 6440 + session.destroy if session and session.respond_to?(:destroy) self.session = {} end diff --git a/vendor/rails/actionpack/lib/action_controller/session/abstract_store.rb b/vendor/rails/actionpack/lib/action_controller/session/abstract_store.rb index de0163d2..1d2ee87f 100644 --- a/vendor/rails/actionpack/lib/action_controller/session/abstract_store.rb +++ b/vendor/rails/actionpack/lib/action_controller/session/abstract_store.rb @@ -196,6 +196,7 @@ module ActionController if (request_cookies.nil? || request_cookies[@key] != sid) || options[:expire_after] cookie = {:value => sid} + cookie[:expires] = Time.now + options[:expire_after] if options[:expire_after] Rack::Utils.set_cookie_header!(response[1], @key, cookie.merge(options)) end end diff --git a/vendor/rails/actionpack/lib/action_pack/version.rb b/vendor/rails/actionpack/lib/action_pack/version.rb index 227ef601..010bfcb0 100644 --- a/vendor/rails/actionpack/lib/action_pack/version.rb +++ b/vendor/rails/actionpack/lib/action_pack/version.rb @@ -2,7 +2,7 @@ module ActionPack #:nodoc: module VERSION #:nodoc: MAJOR = 2 MINOR = 3 - TINY = 11 + TINY = 12 STRING = [MAJOR, MINOR, TINY].join('.') end diff --git a/vendor/rails/actionpack/test/controller/session/abstract_store_test.rb b/vendor/rails/actionpack/test/controller/session/abstract_store_test.rb new file mode 100644 index 00000000..2df66a2e --- /dev/null +++ b/vendor/rails/actionpack/test/controller/session/abstract_store_test.rb @@ -0,0 +1,64 @@ +require 'abstract_unit' + +# You need to start a memcached server inorder to run these tests +class AbstractStoreTest < ActionController::IntegrationTest + SessionKey = '_myapp_session' + DispatcherApp = ActionController::Dispatcher.new + + class TestController < ActionController::Base + def get_session + session[:test] = 'test' + head :ok + end + end + + def test_expiry_after + with_test_route_set(:expire_after => 5 * 60) do + get 'get_session' + assert_response :success + assert_match /expires=\S+/, headers['Set-Cookie'] + end + end + +protected + + def with_test_route_set(options = {}) + with_routing do |set| + set.draw do |map| + map.with_options :controller => "abstract_store_test/test" do |c| + c.connect "/:action" + end + end + + options = { :key => SessionKey, :secret => 'SessionSecret' }.merge!(options) + @integration_session = open_session(TestStore.new(DispatcherApp, options)) + + yield + end + end + + class TestStore < ActionController::Session::AbstractStore + def initialize(app, options = {}) + super + @_store = Hash.new({}) + end + + private + + def get_session(env, sid) + sid ||= generate_sid + session = @_store[sid] + [sid, session] + end + + def set_session(env, sid, session_data) + @_store[sid] = session_data + end + + def destroy(env) + @_store.delete(sid) + end + end + +end + diff --git a/vendor/rails/actionpack/test/controller/session/cookie_store_test.rb b/vendor/rails/actionpack/test/controller/session/cookie_store_test.rb index b7b922c3..8d02fffa 100644 --- a/vendor/rails/actionpack/test/controller/session/cookie_store_test.rb +++ b/vendor/rails/actionpack/test/controller/session/cookie_store_test.rb @@ -42,6 +42,12 @@ class CookieStoreTest < ActionController::IntegrationTest head :ok end + def call_reset_session_twice + reset_session + reset_session + head :ok + end + def call_reset_session reset_session head :ok @@ -190,6 +196,44 @@ class CookieStoreTest < ActionController::IntegrationTest end end + def test_calling_session_reset_twice + with_test_route_set do + get '/set_session_value' + assert_response :success + session_payload = response.body + assert_equal "_myapp_session=#{response.body}; path=/; HttpOnly", + headers['Set-Cookie'] + + get '/call_reset_session_twice' + assert_response :success + assert_not_equal "", headers['Set-Cookie'] + assert_not_equal session_payload, cookies[SessionKey] + + get '/get_session_value' + assert_response :success + assert_equal 'foo: nil', response.body + end + end + + def test_setting_session_value_after_session_reset + with_test_route_set do + get '/set_session_value' + assert_response :success + session_payload = response.body + assert_equal "_myapp_session=#{response.body}; path=/; HttpOnly", + headers['Set-Cookie'] + + get '/call_reset_session' + assert_response :success + assert_not_equal "", headers['Set-Cookie'] + assert_not_equal session_payload, cookies[SessionKey] + + get '/get_session_value' + assert_response :success + assert_equal 'foo: nil', response.body + end + end + def test_setting_session_value_after_session_reset with_test_route_set do get '/set_session_value' diff --git a/vendor/rails/activerecord/Rakefile b/vendor/rails/activerecord/Rakefile index 613bda69..dcdff6ba 100644 --- a/vendor/rails/activerecord/Rakefile +++ b/vendor/rails/activerecord/Rakefile @@ -1,9 +1,9 @@ require 'rubygems' require 'rake' require 'rake/testtask' -require 'rake/rdoctask' +require 'rdoc/task' require 'rake/packagetask' -require 'rake/gempackagetask' +require 'rubygems/package_task' require File.join(File.dirname(__FILE__), 'lib', 'active_record', 'version') require File.expand_path(File.dirname(__FILE__)) + "/test/config" @@ -157,7 +157,7 @@ task :rebuild_frontbase_databases => 'frontbase:rebuild_databases' # Generate the RDoc documentation -Rake::RDocTask.new { |rdoc| +RDoc::Task.new { |rdoc| rdoc.rdoc_dir = 'doc' rdoc.title = "Active Record -- Object-relation mapping put on rails" rdoc.options << '--line-numbers' << '--inline-source' << '-A cattr_accessor=object' @@ -192,16 +192,14 @@ spec = Gem::Specification.new do |s| s.files = s.files + Dir.glob( "#{dir}/**/*" ).delete_if { |item| item.include?( "\.svn" ) } end - s.add_dependency('activesupport', '= 2.3.11' + PKG_BUILD) + s.add_dependency('activesupport', '= 2.3.12' + PKG_BUILD) s.files.delete FIXTURES_ROOT + "/fixture_database.sqlite" s.files.delete FIXTURES_ROOT + "/fixture_database_2.sqlite" s.files.delete FIXTURES_ROOT + "/fixture_database.sqlite3" s.files.delete FIXTURES_ROOT + "/fixture_database_2.sqlite3" s.require_path = 'lib' - s.autorequire = 'active_record' - s.has_rdoc = true s.extra_rdoc_files = %w( README ) s.rdoc_options.concat ['--main', 'README'] @@ -211,7 +209,7 @@ spec = Gem::Specification.new do |s| s.rubyforge_project = "activerecord" end -Rake::GemPackageTask.new(spec) do |p| +Gem::PackageTask.new(spec) do |p| p.gem_spec = spec p.need_tar = true p.need_zip = true diff --git a/vendor/rails/activerecord/lib/active_record/associations/association_collection.rb b/vendor/rails/activerecord/lib/active_record/associations/association_collection.rb index 3a602e49..c04110a9 100644 --- a/vendor/rails/activerecord/lib/active_record/associations/association_collection.rb +++ b/vendor/rails/activerecord/lib/active_record/associations/association_collection.rb @@ -381,7 +381,7 @@ module ActiveRecord when /^find_or_create_by_(.*)$/ rest = $1 find_args = pull_finder_args_from(DynamicFinderMatch.match(method).attribute_names, *args) - return send("find_by_#{rest}", find_args) || + return send("find_by_#{rest}", *find_args) || method_missing("create_by_#{rest}", *args, &block) when /^create_by_(.*)$/ return create($1.split('_and_').zip(args).inject({}) { |h,kv| k,v=kv ; h[k] = v ; h }, &block) diff --git a/vendor/rails/activerecord/lib/active_record/base.rb b/vendor/rails/activerecord/lib/active_record/base.rb index ac82cc1b..461007fd 100755 --- a/vendor/rails/activerecord/lib/active_record/base.rb +++ b/vendor/rails/activerecord/lib/active_record/base.rb @@ -1286,7 +1286,7 @@ module ActiveRecord #:nodoc: # Turns the +table_name+ back into a class name following the reverse rules of +table_name+. def class_name(table_name = table_name) # :nodoc: - ActiveSupport::Deprecation.warn("ActiveRecord::Base#class_name is deprecated and will be removed in Rails 2.3.9.", caller) + ActiveSupport::Deprecation.warn("ActiveRecord::Base#class_name is deprecated and will be removed in Rails 3.", caller) # remove any prefix and/or suffix from the table name class_name = table_name[table_name_prefix.length..-(table_name_suffix.length + 1)].camelize diff --git a/vendor/rails/activerecord/lib/active_record/version.rb b/vendor/rails/activerecord/lib/active_record/version.rb index f106e409..db0e08ef 100644 --- a/vendor/rails/activerecord/lib/active_record/version.rb +++ b/vendor/rails/activerecord/lib/active_record/version.rb @@ -2,7 +2,7 @@ module ActiveRecord module VERSION #:nodoc: MAJOR = 2 MINOR = 3 - TINY = 11 + TINY = 12 STRING = [MAJOR, MINOR, TINY].join('.') end diff --git a/vendor/rails/activerecord/test/cases/associations/has_many_associations_test.rb b/vendor/rails/activerecord/test/cases/associations/has_many_associations_test.rb index 3996b847..2f715a46 100644 --- a/vendor/rails/activerecord/test/cases/associations/has_many_associations_test.rb +++ b/vendor/rails/activerecord/test/cases/associations/has_many_associations_test.rb @@ -82,6 +82,15 @@ class HasManyAssociationsTest < ActiveRecord::TestCase assert_equal 4, post.comments.length end + def test_find_or_create_by_with_same_parameters_creates_a_single_record + author = Author.first + assert_difference "Post.count", +1 do + 2.times do + author.posts.find_or_create_by_body_and_title('one', 'two') + end + end + end + def test_find_or_create_by_with_block post = Post.create! :title => 'test_find_or_create_by_with_additional_parameters', :body => 'this is the body' comment = post.comments.find_or_create_by_body('other test comment body') { |comment| comment.type = 'test' } diff --git a/vendor/rails/activerecord/test/fixtures/fixture_database.sqlite b/vendor/rails/activerecord/test/fixtures/fixture_database.sqlite deleted file mode 100644 index d7b6b958ab6885a7e5744a2716b76dd8a46dc98c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3072 zcmdPWQV7Y&ELKR%%t=*9&d)1J%*-oRNX%0R4)n<^NmVe?GgL@PEJ;jCEKXI>(qhmk zeSC|Vfq{V$i0=b23lNWj(GVC7fuS4%91K5znHrLpbr~9f*_(}rPe4c)nD28^84`ie zm?60+H4#`KfQ1wi6*LkRGV@AO(^HEy8J_;%zXMb#jDpb+7!85Z5Eu=C(GVC7fguqB E0Q#IG!~g&Q diff --git a/vendor/rails/activerecord/test/fixtures/fixture_database.sqlite3 b/vendor/rails/activerecord/test/fixtures/fixture_database.sqlite3 index 0b18df9ce6e621fbf93763eb5867732180afb0d8..b3299c653a98519d4db51b9e01b306f876c3bd4e 100644 GIT binary patch literal 67531776 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 zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly 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 z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNCfKN1-0M@{tA(9qa}8n4E$32MTcsCqy4#5GAxT9eh}HAPKXQ`OWp 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 z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs 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 z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK;ZxL0^@AZ7QPx98hlgV)_3)N{V+5%Ua!U*p+>BcYUCQFMy=6m^cthatg&kB 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 z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72>hQG=yg(-H?2^pJ|mr;PD`hzQ_{&PYlo#u4&n{Oj zY0XJIAh0{W5!L&e{Kh2lsP4lF=Q>QdnnlsIjI;IY(eQKB5rZ%Z{YL!~17HRg> zJk6GxrBbR$#Z)L1s(wj7r=QY~>4)@v`YugN-==TU*XgVDW%?q0o<2*Trccse)5qzf z^kMoSy`SDo@1}Rs+v%812ydLccZo=eZBXVTN@sq|!eB0ZiS zD-H9p=B>=U zm6^9P^Hyfw%FH`3kLfU>P-x#6tSi$M>C$v@x+qyB9(T5F~*l zxCYlk-3522)D%2O*&Z)EOtU9yKsMG7TI<+R$DRpw4R43L6 zb$lIH$JQ}*bRAVk*7zD%W9x`IyvEe%I;;+@L+aofRR`69bwG`*{cA++SHo-H+Na)8 zd)HpIXYEnD*KW0I?NU3}PPJq0P}|pbwQX%vTh~^#Wxc(&sLgA$+O#&QjccRYur{dm zYrR^x)~U5?ty;6zsMTw=TD4ZGm20J1u~w+%Yq@$`EnCaf(zR4ASxeO7wOB1$i`2rk zP%T))YJr-+=Bs&Yo|?PnsySqqs&daNF;AJilDa6MGtuLtXU_1*eTeY?I@->h%c z19gAhS6{Dt>z=y1?y5WMj`~`CwZ2kct}oRW>kIYy`dodsK2x8r+v`(xTisf>)XjBM z-B>r&^>tlcTi4XpbyZziSJdToSzTI})WzX@5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0tEg;0?W_cK+g>f zto*LJs4lE`)&+Hbomc19IdyiORcF>2b$Xpvr`CizrB1Gs>cl#sj<4hD*gB?;uA}P6 z8eijTY#mXD*O(ezht;8VNF7|G>YzHX4yci}e~qa9YIyBi`_wyX@7k;OtUYS?+O2l2 zU25mrsdlU#YWv!*wykYy>)NWethd(|wRvq;o7N_^acxu^)&{kHtyk;TI<Tky^MGss(FUEl~5FiJz0OOKh*E*clF!)O+8V+u3yzJ>lgL& z`dK|*KdqnCkLySE!+NY9tsm4Q^>95@->(Pjd-dJ=PJO$+Ro|>{)B|;Y-B(|)d+VOM zyY8wx>yG+beYL()U#>6J7wZf4`TAUawmwszuG{NVbz9w9x75vbQ{7lM)b({;U0c`G z)pb=}Sy$BMby;0nm(<1e$@)ZnygpVRt&h})J24&v2oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAnDuZfpO;(fF6g6cHsi|t}nx>|$>1z6#p=PX^ zYUY}yX06$3_L`%H)|@q0&0X`*ov=*zyYl&L2ma3&|nOe5q zR?F4$wL+~}E7i)?qE=b8R;$%(jaswTsd-o@M%S1+ypE``HLk|jk#$rZUB}e1bzB`^C)9~`Qk`6<)Py>sttSU1(pbxYk^x7DZW_WE>vraoJrtIyXL>WlTI`f`1x zzFJ?aJL=B5tM0CQ>fZW#-Bc{ny`e{90KdYbDFY1@|tNL|4QNJ1RAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PJ`c1XliYLp?Vzu*&c1 z_w|SRV?9}as`jt)RQ;u%u4n4m`fE*m-QVi@dZAvdm+IwuWnf^{4!!E28eEgrsG&7y%~f;PJT-64SM%2bHLMn_g=*ni zq!z8kYVlg4maL^}=~||it+&;3wS28mE7nT2a;;J=Y}M6j^;)CWthH+GTBp{n^=kdv zpf;?HYUA3ZHm%KS^V*``UR%~ywRLS%+tzlqeeF;?)=sr^?NYneZnb;uQG3>2wRgRv z_NjeqcrgC>ySFM4y(~MrVg(oYHW?G@pWV!RY%t`b!;71$JYsU zVx3ec*C{ojPOa1G^g5%?th4IuI;YO9^XmM%px#**)Uz=x|zFzm${q;b7qrO?+s&ChK>bv#5 zda%A<57oos&P{;qysf2cp!ll77y=saCF4YSn6S ztF2yZ)S9(ctzGNXy0u=dUmMhhwNY(co7ASYS#4fh)Z1&z+N!p$ZED-vuC}ioYRB5C zcCKA&*V?UiuRUtd+N<`icho+$Zw;^gYDDc{BkO=VunwwGb#NV0ht^>=y2jMubwrJ= zaW%ef}15Ce*2QTAf~J)R}cwon7bDxpiKhUl-In>%zLI z-c|3e_tbmqef9qOKz*=2R3EO7)JN-M_3`>deX=gDOX||PtS+xB>dLyRuC8n9+Pbc; zuN&&dx~XoiTk6)jtv*$^*Qe_<_1XGdeZIa>U#u_Hm+LF_)%sf9QFqo|b$8uU_tw|z zzPi62sBhFa>s$5h`c8efzE=;{_v@j0xE`q=)T8y-fCm8r1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkL{KPIs1 z&l~Ewfq~V2R6nkt)KBa2`dPJqwO`aP>sR&bdZK<)zpdZZ@9Pis$9l5M!+l zJyXxtUu)ucf2-%~g?h1Gs+a4Pfq~VV(&~e1a7|W|*Az8n4XLSW>YApet?6p|nxST_ znQG>mrDm{cB_$PzTmQ zHL4D-L+a2vtVY+EI=qgku{Ey7*O7Hp9bL!Nv2|P>UnkUwbyA&Nr__WxwN9(k>x??H z&Z@KPoI1D8tMluEdS_i&7uCD!-SwV&Z@sVHUmvIs)`#lD^^y8$eXKrSpQumP#dS$t zT9?)3bwyoSSJl;ZOr(&2>xNTDR4w>h}6{eWpHJpR3Q;7wU`krTTJx zrM_BUt2^q>x~uN4d+Of$dfiv|*8}y9`euErzFps`@7DL~!2u5f1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N 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 z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs 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 zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly 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%0D$m}ZU%ypZ(|50Vec3`+vGl}b6eiP; zK+B^r&~rIocjfEujel?0auli$U-MCzcB;p#JY{!z3~KJp7B(!Fwn-OgXD3b0V{*tQ zr@M3ZTp$>=1f(_^n&<@d(*BT*UL z7S{A>_OgW?ilyz675T|+%CE~#{$)e_*rf3l8P?XzHBbKW3^_NPt2vZC{*;TM&3n$0 z{+|&&5JeAkT$Xun=iL9?*#A3^V28`9bSrCd^5zUq4E5!cAN$t7ImxiL-W)!vso#;1 zo#gwFS0#(T8;(z2wLFQk_**$N&W0LaS7-j6{xz?DJnHXkYlM2^Q@~dbh)Z6jZb6>h z-Blfwo@+k+NAstLCPzV}Ll;aBT@X)W>CpYBhbE_`Plp~bJv5mf)1e1W4?S@D85T|t zT{t~-(e%(o+3aw!boIUp?(6W4sUBBXnv!3_s1rdaYXg1 z(dLy@zWcPYcD02ECxe-gLavH>M4~$JTz9SRKY7JRZfpVe5+b~ zwy;mJv{$;CogOn6Kk-ETp-1(`PR(yd@_@G9jOy;cX^G12Ge(Sc#`t?bx( z`3@+r+v@wN@kv1*7w7-IDazc``IO4}e>*qnypf|wlH>oTkN<6N|9@eySh_Y{a;AHu zmbQvrjwY_>&i(ao+3`m!9`%od0J-4}|$obG5kpH%geUPuJzs zuY#}bZ;3zNy8qhZ)W-3CiA?$Pt9T+#cAS@gH(myya(`Rv1$iz4)?4$zb{Dgs}gFN3JYyN!eZ?M|ui=xAyz?;2a6dn5AC_0ia0vvjO6dkq& zzyHbaOcc%g3coiXGf4+opKMCDChKtj7s!{ny$Sz@^M@SC^Bnp;{_Z53lPw9enR#F2 z_eNwhvL4}e5B(1L2e&um_umLRA`hFvWBEejyf5+hedJ%{+x-1i?pv2^#ozx&{>^Ph zectD|9lvJzb>r8LPiPRGpZ=S9pWye$`FmA)c=^8MG4bsk%EN2#kB9r80tzUgfC36A zpnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim} z0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7j zD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUg zfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7> z3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36A zpnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim} z0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7j zD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUg zfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7> z3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36A zpnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim} z0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7j zD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUg zfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7> z3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36A zpnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim} z0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7j zD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUg zfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7> z3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36A zpnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim} z0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7j 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 z0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7j zD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUg zfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7> z3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36A zpnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim} z0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7j zD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUg zfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7> z3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36A zpnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim} z0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7j zD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUg zfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7> z3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36A zpnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim} z0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7j zD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7>fe0M>P71v* zijMda`6BrO`8@d?`7HSi`84?y`6T%S`8fF)`6&4a`7rqq`5^fKc|Um{c`tbnc{h0% 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 diff --git a/config/locales/de.yml b/config/locales/de.yml index 2788a0d4..5def709a 100644 --- a/config/locales/de.yml +++ b/config/locales/de.yml @@ -1,5 +1,49 @@ --- de: + layouts: + toggle_notes: Notizen umschalten + next_actions_rss_feed: RSS-Feed kommende Aufgaben + mobile_navigation: + logout: Abmelden + feeds: Feeds + new_action: 0-Neue Aufgabe + starred: 4-Markiert + projects: 3-Projekte + tickler: Notizbuch + contexts: 2-Kontexte + home: 1-Home + toggle_notes_title: Alle Notizen umschalten + navigation: + manage_users_title: "Benutzer hinzuf\xC3\xBCgen oder entfernen" + recurring_todos: Sich wiederholende To-Dos + api_docs: REST API Docs + feeds: Feeds + starred: Markiert + notes_title: Alle Notizen anzeigen + stats: Statistiken + tickler_title: Notizbuch + manage_users: Benutzer verwalten + export_title: Daten importieren und exportieren + integrations_: Tracks integrieren + preferences: Einstellungen + feeds_title: "Liste der verf\xC3\xBCgbaren Feeds anzeigen" + calendar_title: "Kalender mit \xC3\xBCberf\xC3\xA4lligen Aufgaben" + starred_title: Markierte Aufgaben betrachten + tickler: Notizbuch + recurring_todos_title: Sich wiederholende To-Dos verwalten + completed_tasks: Erledigt + stats_title: Statistiken anzeigen + home_title: Start + organize: Organisieren + view: Betrachten + completed_tasks_title: "Vollst\xC3\xA4ndig" + home: Start + export: Export + contexts_title: Kontexte + calendar: Kalender + projects_title: Projekte + search: "Alle Eintr\xC3\xA4ge durchsuchen" + preferences_title: Meine Einstellungen number: format: separator: "," @@ -34,107 +78,65 @@ de: separator: . precision: delimiter: "," - layouts: - toggle_notes: Notizen umschalten - next_actions_rss_feed: RSS-Feed kommende Aufgaben - toggle_notes_title: Alle Notizen umschalten - mobile_navigation: - logout: Abmelden - feeds: Feeds - new_action: 0-Neue Aufgabe - starred: 4-Markiert - projects: 3-Projekte - tickler: Notizbuch - contexts: 2-Kontexte - home: 1-Home - navigation: - manage_users_title: "Benutzer hinzuf\xC3\xBCgen oder entfernen" - recurring_todos: Sich wiederholende To-Dos - api_docs: REST API Docs - feeds: Feeds - stats: Statistiken - starred: Markiert - notes_title: Alle Notizen anzeigen - tickler_title: Notizbuch - manage_users: Benutzer verwalten - export_title: Daten importieren und exportieren - integrations_: Tracks integrieren - preferences: Einstellungen - feeds_title: "Liste der verf\xC3\xBCgbaren Feeds anzeigen" - calendar_title: "Kalender mit \xC3\xBCberf\xC3\xA4lligen Aufgaben" - recurring_todos_title: Sich wiederholende To-Dos verwalten - completed_tasks: Erledigt - stats_title: Statistiken anzeigen - home_title: Start - tickler: Notizbuch - starred_title: Markierte Aufgaben betrachten - organize: Organisieren - view: Betrachten - completed_tasks_title: "Vollst\xC3\xA4ndig" - export: Export - contexts_title: Kontexte - home: Start - projects_title: Projekte - calendar: Kalender - preferences_title: Meine Einstellungen - search: "Alle Eintr\xC3\xA4ge durchsuchen" - common: - back: "Zur\xC3\xBCck" - third: Dritte - actions: Aktionen - add: "Hinzuf\xC3\xBCgen" - go_back: "Zur\xC3\xBCck" - logout: Abmelden - cancel: Abbrechen - none: Keine - second: Zweite - optional: optional - month: Monat - forum: Forum - notes: Notizen - server_error: Auf dem Server ist ein Fehler aufgetreten. - projects: Projekte - last: Letzte - action: Aktion - project: Projekt - contribute: Mitwirken - ok: Ok - first: Erste - website: Website - numbered_step: Schritt %{number} - fourth: Vierte - sort: - by_task_count_title: Nach Anzahl der Aufgaben sortieren - by_task_count_title_confirm: Sollen diese Projekte wirklich nach Anzahl der Aufgaben sortiert werden? Die bisherige Sortier-Reihenfolge wird damit überschrieben. - alphabetically: Alphabetisch - sort: Sortieren - alphabetically_confirm: Sollen diese Projekte wirklich alphabetisch sortiert werden? Die bisherige Sortier-Reihenfolge wird damit überschrieben. - alphabetically_title: Projekte alphabetisch sortieren - by_task_count: Nach Anzahl der Aufgaben - create: Erstellen - drag_handle: Verschieben - months: Monate - errors_with_fields: "Mit folgenden Feldern sind Probleme aufgetreten:" - context: Kontext - description: Beschreibung - contexts: Kontexte - bugs: Bugs - update: Aktualisieren - weeks: Woche - forth: Vierte - wiki: Wiki - ajaxError: Fehler beim Empfangen vom Server - search: Suchen - email: E-Mail integrations: opensearch_description: In Tracks suchen applescript_next_action_prompt: "Beschreibung der n\xC3\xA4chsten Aufgabe:" gmail_description: "Gadget, um Tracks als Gadget zu Googlemail hinzuzuf\xC3\xBCgen" applescript_success_after_id: erstellt applescript_success_before_id: "N\xC3\xA4chste neue Aufgabe mit ID" - data: - import_successful: Import war erfolgreich. - import_errors: Beim Import sind Fehler aufgetreten. + common: + back: "Zur\xC3\xBCck" + third: Dritte + recurring_todos: Wiederholenden Aktionen + actions: Aktionen + add: "Hinzuf\xC3\xBCgen" + previous: Vorherige + logout: Abmelden + go_back: "Zur\xC3\xBCck" + week: Woche + cancel: Abbrechen + none: Keine + second: Zweite + month: Monat + optional: optional + notes: Notizen + forum: Forum + server_error: Auf dem Server ist ein Fehler aufgetreten. + last: Letzte + action: Aktion + projects: Projekte + project: Projekt + contribute: Mitwirken + ok: Ok + website: Website + first: Erste + numbered_step: Schritt %{number} + errors_with_fields: "Mit folgenden Feldern sind Probleme aufgetreten:" + sort: + by_task_count_title: Nach Anzahl der Aufgaben sortieren + by_task_count_title_confirm: Sollen diese Projekte wirklich nach Anzahl der Aufgaben sortiert werden? Die bisherige Sortier-Reihenfolge wird damit überschrieben. + alphabetically: Alphabetisch + alphabetically_title: Projekte alphabetisch sortieren + sort: Sortieren + alphabetically_confirm: Sollen diese Projekte wirklich alphabetisch sortiert werden? Die bisherige Sortier-Reihenfolge wird damit überschrieben. + by_task_count: Nach Anzahl der Aufgaben + fourth: Vierte + create: Erstellen + months: Monate + todo: Aktione + contexts: Kontexte + context: Kontext + next: "N\xC3\xA4chste" + description: Beschreibung + drag_handle: Verschieben + update: Aktualisieren + weeks: Woche + bugs: Bugs + forth: Vierte + wiki: Wiki + ajaxError: Fehler beim Empfangen vom Server + search: Suchen + email: E-Mail models: project: feed_title: Tracks-Projekte @@ -167,8 +169,8 @@ de: due: Fällig preference: show_hidden_projects_in_sidebar: Zeige Versteckte Projekte in der Sidebar - date_format: Datum Format show_hidden_contexts_in_sidebar: "Zeige Versteckte Zusammenh\xC3\xA4nge in der Sidebar" + date_format: Datum Format staleness_starts: Anfang des Abgestandenheit mobile_todos_per_page: Aufgaben pro Seite (Mobile Version) verbose_action_descriptors: "Ausf\xC3\xBChrlich Aktion Deskriptoren" @@ -177,8 +179,8 @@ de: title_date_format: Titel Datumsformat refresh: Aktualisierungsintverall (in Minuten) week_starts: Woche startet am - due_style: "F\xC3\xA4llig stijl" time_zone: Zeit Zone + due_style: "F\xC3\xA4llig stijl" locale: Zahle show_project_on_todo_done: Zur Projektseite wechseln, wenn To-Do abgeschlossen sms_email: Per E-Mail @@ -222,18 +224,22 @@ de: header: one: "Konnte dieses %{model} Objekt nicht speichern: 1 Fehler." other: "Konnte dieses %{model} Objekt nicht speichern: %{count} Fehler." + data: + import_successful: Import war erfolgreich. + import_errors: Beim Import sind Fehler aufgetreten. stats: tag_cloud_90days_title: Tag-Cloud-Aktionen in den letzten 90 Tagen totals_active_project_count: Von diesen sind %{count} aktive Projekte - actions: Aktionen tag_cloud_title: Tag-Cloud aller Aktionen + actions: Aktionen tag_cloud_description: Diese Tag-Cloud beinhaltet Tags aller Aktionen (abgeschlossen, nicht abgeschlossen, sichtbar und/oder unsichtbar) + actions_avg_completion_time: Durchschnittlich hast du %{count} Tage gebraucht, um eine Aktion abzuschliessen. actions_last_year_legend: number_of_actions: Anzahl Aktionen months_ago: Monate zuvor totals_first_action: Seit deiner ersten Aktion am %{date} - actions_avg_completion_time: Durchschnittlich hast du %{count} Tage gebraucht, um eine Aktion abzuschliessen. totals_action_count: hattest du insgesamt %{count} Aktionen + totals_deferred_actions: "von denen %{count} im Notizbuch zur\xC3\xBCckgestellt sind" legend: number_of_days: Anzahl vergangene Tage actions: Aktionen @@ -242,60 +248,61 @@ de: percentage: Prozentsatz running_time: Laufzeit einer Aktion (Wochen) months_ago: Monate zuvor + top10_longrunning: "Top 10 der am l\xC3\xA4ngsten laufenden Projekte" actions_dow_30days_title: Wochentag (letzte 30 Tage) current_running_time_of_incomplete_visible_actions: "Aktuelle Laufzeit unvollst\xC3\xA4ndiger sichtbarer Aufgaben" running_time_legend: actions: Aufgaben percentage: Prozentsatz weeks: "Vergangene Zeit einer Aktion (Wochen). Klick auf eine Leiste f\xC3\xBCr mehr Informationen." - totals_deferred_actions: "von denen %{count} im Notizbuch zur\xC3\xBCckgestellt sind" - top10_longrunning: "Top 10 der am l\xC3\xA4ngsten laufenden Projekte" - actions_avg_completed_30days: und %{count} durchschnittlich davon erledigt. top5_contexts: Top 5 aller Kontexte actions_lastyear_title: Aktionen der letzten 12 Monate totals_actions_completed: "%{count} davon sind abgeschlossen." totals_incomplete_actions: "Du hast %{count} unvollst\xC3\xA4ndige Aktionen" totals_unique_tags: Von diesen Tags sind %{count} einmalig.. + actions_avg_completed_30days: und %{count} durchschnittlich davon erledigt. totals_visible_context_count: Von diesen sind %{count} sichtbare Kontexte totals_blocked_actions: "%{count} h\xC3\xA4ngen vom Abschluss anderer Aktionen ab." - projects: Projekte action_completion_time_title: Fertigstellungszeit (alle abgeschlossenen Aktionen) actions_last_year: Aktionen im letzten Jahr + projects: Projekte totals_context_count: Du hast %{count} Kontexte. actions_day_of_week_title: Wochentag (alle Aktionen) - tags: Tags totals_project_count: Du hast %{count} Projekte. actions_min_max_completion_days: "Das Minimum/Maximum an Tagen einer Vervollst\xC3\xA4ndigung ist %{min}/%{max}." actions_min_completion_time: "Die minimale Zeit betr\xC3\xA4gt %{time}." no_tags_available: "keine Tags verf\xC3\xBCgbar" - running_time_all: "Aktuelle Laufzeit aller unvollst\xC3\xA4ndigen Aktionen." - tod30: Tageszeit (letzte 30 Tage) - top5_visible_contexts_with_incomplete_actions: "Top 5 der sichtbaren Kontexte mit unvollst\xC3\xA4ndigen Aktionen" - actions_30days_title: _Aktionen der letzten 30 Tage + tags: Tags tag_cloud_90days_description: Diese Tag-Cloud beinhaltet Tags der Aktionen, die in den letzten 90 Tagen erstellt oder abgeschlossen wurden. actions_further: und danach + running_time_all: "Aktuelle Laufzeit aller unvollst\xC3\xA4ndigen Aktionen." time_of_day: Tageszeit (alle Aktionen) + tod30: Tageszeit (letzte 30 Tage) more_stats_will_appear: "Weitere Statistiken werden verf\xC3\xBCgbar, wenn einige Aufgaben hinzugef\xC3\xBCgt wurden." + top5_visible_contexts_with_incomplete_actions: "Top 5 der sichtbaren Kontexte mit unvollst\xC3\xA4ndigen Aktionen" totals_tag_count: Du hast %{count} Tags in Aktionen. + actions_30days_title: _Aktionen der letzten 30 Tage totals_hidden_project_count: "%{count} sind versteckt" - top10_projects: Top 10 aller Projekte - click_to_return: "Klick auf %{link} um zur Statistikseite zur\xC3\xBCckzukehren." - spread_of_actions_for_all_context: Aufgabenverteilung aller Kontexte totals_completed_project_count: und %{count} sind abgeschlossene Projekte. + top10_projects_30days: Top-10-Projekt der letzten 30 Tage actions_selected_from_week: "Aktionen ausgew\xC3\xA4hlt ab Woche" click_to_show_actions_from_week: Klick auf %{link} um die Aktionen von Woche %{week} und danach anzuzeigen. + top10_projects: Top 10 aller Projekte actions_avg_created: In den letzten 12 Monaten hast du im Durchschnitt %{count} Aktionen erstellt + click_to_return: "Klick auf %{link} um zur Statistikseite zur\xC3\xBCckzukehren." spread_of_running_actions_for_visible_contexts: Verteilung der laufenden Aufgaben aller sichtbaren Kontexte + spread_of_actions_for_all_context: Aufgabenverteilung aller Kontexte other_actions_label: (andere) - top10_projects_30days: Top-10-Projekt der letzten 30 Tage + actions_avg_completed: und %{count} durchschnittlich davon monatlich erledigt + totals: Ingesamt time_of_day_legend: number_of_actions: Anzahl Aufgaben time_of_day: Tageszeit + contexts: Kontexte click_to_return_link: hier totals_hidden_context_count: und %{count} sind versteckte Kontexte. - actions_avg_completed: und %{count} durchschnittlich davon monatlich erledigt - totals: Ingesamt - contexts: Kontexte + no_actions_selected: "Es sind keine Aufgaben ausgew\xC3\xA4hlt." + click_to_update_actions: Klicke auf eine Leiste in der Grafik um die Aktionen unten zu aktualisieren. labels: month_avg_completed: "%{months} Monat durchschnittlich fertig gestellt" completed: Erledigt @@ -303,28 +310,27 @@ de: avg_created: Durchschnittlich erstellt avg_completed: Durchschnittlich fertiggestellt created: Erstellt - no_actions_selected: "Es sind keine Aufgaben ausgew\xC3\xA4hlt." - click_to_update_actions: Klicke auf eine Leiste in der Grafik um die Aktionen unten zu aktualisieren. running_time_all_legend: actions: Aktionen percentage: Prozentsatz running_time: "Laufzeit einer Aktion (Wochen). Klick auf eine Leiste f\xC3\xBCr mehr Informationen." + actions_actions_avg_created_30days: In den letzten 30 Tagen hast du im Durchschnitt %{count} Aktionen erstellt tod30_legend: number_of_actions: Anzahl Aufgaben time_of_day: Tageszeit action_selection_title: TRACKS::Aktionsauswahl - actions_actions_avg_created_30days: In den letzten 30 Tagen hast du im Durchschnitt %{count} Aktionen erstellt todos: - error_starring_recurring: Konnte die Hervorhebung der wiederkehrenden Aufgabe \'%{description}\' nicht durchführen show_from: Anzeigen ab dem + error_starring_recurring: Konnte die Hervorhebung der wiederkehrenden Aufgabe \'%{description}\' nicht durchführen recurring_action_deleted: Die Aktion wurde gelöscht. Da dies eine wiederkehrende Aktion ist, wurde eine neue erstellt. completed_actions: Erledigte Aufgaben + completed_rest_of_previous_month: Fertiggestellt den Rest des Vormonats + blocked_by: Blockiert durch %{predecessors} completed_recurring: Abgeschlossene wiederkehrende To-Dos added_new_next_action: Neue Aktion angelegt - blocked_by: Blockiert durch %{predecessors} + defer_date_after_due_date: "Zur\xC3\xBCckstellungsdatum nach Ablaufdatum. Bitte passe das Ablaufdatum an, dass es vor dem Zur\xC3\xBCckstellungsdatum liegt." star_action: Aktion markieren completed_recurrence_completed: Es gibt keine weitere Aktion nach der soeben gelöschten. Die Wiederholung ist abgeschlossen. - defer_date_after_due_date: "Zur\xC3\xBCckstellungsdatum nach Ablaufdatum. Bitte passe das Ablaufdatum an, dass es vor dem Zur\xC3\xBCckstellungsdatum liegt." unable_to_add_dependency: Abhängigkeit nicht hinzufügbar done: Erledigt? star_action_with_description: Aktion '%{description}' markieren @@ -332,27 +338,28 @@ de: completed: Erledigt no_deferred_actions_with: "Keine zur\xC3\xBCckgestellten Aktionen mit dem Tag '%{tag_name}'" no_hidden_actions: Momentan sind keine versteckten Aufgaben vorhanden - edit_action_with_description: Aktion '%{description}' bearbeiten action_due_on: "(Aktion f\xC3\xA4llig am %{date})" + edit_action_with_description: Aktion '%{description}' bearbeiten + tags: Tags (Komma-separiert) archived_tasks_title: TRACKS::Archivierte erledigte Aufgaben remove_dependency: Abhängigkeit löschen (löscht nicht die Aufgabe) list_incomplete_next_actions: Unerledigte Folge-Aufgaben anzeigen action_deleted_success: Die nächste Aktion erfolgreich gelöscht - tags: Tags (Komma-separiert) - delete_recurring_action_title: "Wiederkehrende Aktion '%{description}' l\xC3\xB6schen" - context_changed: Kontext zu %{name} gewechselt - new_related_todo_created: "Eine neue To-Do wurde hinzugef\xC3\xBCgt, die zu dieser wiederkehrenden To-Do geh\xC3\xB6rt" - mobile_todos_page_title: Alle Aufgaben add_another_dependency: "F\xC3\xBCgen Sie eine andere Abh\xC3\xA4ngigkeit" - removed_predecessor: "%{successor} entfernt als Abh\xC3\xA4ngigkeit von %{predecessor}." + new_related_todo_created: "Eine neue To-Do wurde hinzugef\xC3\xBCgt, die zu dieser wiederkehrenden To-Do geh\xC3\xB6rt" + context_changed: Kontext zu %{name} gewechselt + mobile_todos_page_title: Alle Aufgaben + delete_recurring_action_title: "Wiederkehrende Aktion '%{description}' l\xC3\xB6schen" recurring_actions_title: TRACKS::Wiederkehrende Aktionen + removed_predecessor: "%{successor} entfernt als Abh\xC3\xA4ngigkeit von %{predecessor}." next_action_needed: Es muss mindestens eine folgende Aktion angelegt werden - action_saved: Aktion gespeichert scheduled_overdue: "Planm\xC3\xA4\xC3\x9Fig angezeigt vor %{days} Tagen" + action_saved: Aktion gespeichert action_deleted_error: Fehler beim Löschen der Aufgabe edit_action: Aktion bearbeiten added_new_context: "Neuer Kontext hinzugef\xC3\xBCgt" next_actions_description: "Filter:" + older_completed_items: "Ältere erledigte Aufgaben" list_incomplete_next_actions_with_limit: Zeige die letzten %{count} unerledigten Folge-Aufgaben set_to_pending: "%{task} als ausstehend markiert" added_new_project: "Neues Projekt hinzugef\xC3\xBCgt" @@ -360,37 +367,39 @@ de: completed: Aufgaben erledigt due_today: heute fällig due_within_a_week: diese Woche fällig - older_completed_items: "Ältere erledigte Aufgaben" + task_list_title: TRACKS::Aufgaben anzeigen append_in_this_project: in diesem Projekt error_deleting_item: Beim Löschen von %{description} trat ein Fehler auf - task_list_title: TRACKS::Aufgaben anzeigen no_actions_due_this_week: Keine zu erledigenden Aufgaben für den Rest der Woche - no_recurring_todos: Im Augenblick gibt es keine wiederkehrenden To-Dos error_completing_todo: Beim Abschliessen/Aktivieren der wiederkehrenden To-Do %{description} ist ein Fehler aufgetreten + no_recurring_todos: Im Augenblick gibt es keine wiederkehrenden To-Dos + recurring_pattern_removed: Das Wiederauftreten Muster ist aus entfernt %{count} convert_to_project: In Projekt umwandeln no_deferred_pending_actions: Momentan sind keine aufgeschobenen oder ausstehenden Aufgaben vorhanden. delete_recurring_action_confirm: Soll die wiederkehrende Aktion '%{description}' wirklich gelöscht werden? completed_last_day: In den letzten 24 Stunden erledigt - show_in_days: Anzeigen in %{days} Tagen no_project: --Kein Projekt-- + show_in_days: Anzeigen in %{days} Tagen error_saving_recurring: Es gab einen Fehler beim Speichern der wiederkehrenden todo '%{description}' completed_more_than_x_days_ago: Vor mehr als %{count} Tagen erledigt new_related_todo_created_short: hat einen neuen todo feed_title_in_context: im Kontext '%{context}' + all_completed: Alle abgeschlossenen Aktionen older_than_days: "Älter als %{count} Tage" + completed_tagged_page_title: "TRACKS:: Erledigte Aufgaben mit Tag %{tag_name}" edit: Bearbeiten pending: Ausstehend completed_actions_with: Abgeschlossene Aktionen mit dem Tag %{tag_name} + feed_title_in_project: im Projekt '%{project}' deleted_success: "Die Aktion wurde erfolgreich gel\xC3\xB6scht." completed_tasks_title: TRACKS::Erledigte Aufgaben - feed_title_in_project: im Projekt '%{project}' clear_due_date: Fälligkeitsdatum leeren error_removing_dependency: "Beim Entfernen der Abh\xC3\xA4ngigkeit ist ein Fehler aufgetreten" hidden_actions: Verstecke Aufgaben + deferred_actions_with: "Zur\xC3\xBCckgestellte Aktionen mit dem Tag '%{tag_name}'" was_due_on_date: war am %{date} fällig show_on_date: Anzeigen am %{date} recurrence_period: Wiederholungszeitraum - deferred_actions_with: "Zur\xC3\xBCckgestellte Aktionen mit dem Tag '%{tag_name}'" confirm_delete: "Bist du sicher, dass du die Aktion '%{description}' l\xC3\xB6schen m\xC3\xB6chtest?" recurring_deleted_success: "Die wiederkehrende Aktion wurde erfolgreich gel\xC3\xB6scht." next_actions_title: TRACKS::Weitere Aufgaben @@ -398,17 +407,17 @@ de: deferred_tasks_title: TRACKS::Notizbuch no_completed_actions_with: Keine abgeschlossenen Aktionen mit dem Tag '%{tag_name}' clear_show_from_date: Datum leeren - unresolved_dependency: "Der Wert, den Sie in die Abh\xC3\xA4ngigkeit Feld eingegeben nicht zu einer bestehenden Aktion zu l\xC3\xB6sen. Dieser Wert wird nicht mit dem Rest der Aktion gerettet werden. Weiter gehen?" calendar_page_title: TRACKS::Kalender in_hidden_state: als versteckt markiert - show_today: Heute anzeigen - no_actions_found_title: Keine Aktionen gefunden + unresolved_dependency: "Der Wert, den Sie in die Abh\xC3\xA4ngigkeit Feld eingegeben nicht zu einer bestehenden Aktion zu l\xC3\xB6sen. Dieser Wert wird nicht mit dem Rest der Aktion gerettet werden. Weiter gehen?" next_actions_due_date: overdue_by: "\xC3\x9Cberf\xC3\xA4llig mit %{days} Tag" due_today: "Heute f\xC3\xA4llig" due_in_x_days: "F\xC3\xA4llig in %{days} Tagen" overdue_by_plural: "\xC3\x9Cberf\xC3\xA4llig mit %{days} Tagen" due_tomorrow: "F\xC3\xA4llig morgen" + show_today: Heute anzeigen + no_actions_found_title: Keine Aktionen gefunden completed_last_x_days: In den letzten %{count} Tagen erledigt no_actions_with: "Im Augenblick gibt es keine unvollst\xC3\xA4ndigen Aktionen mit dem Tag '%{tag_name}'" defer_x_days: @@ -416,43 +425,44 @@ de: other: "%{count} Tage zur\xC3\xBCckstellen" added_new_next_action_singular: Neue weiterführende Aufgabe angelegt no_completed_actions: Momentan sind keine erledigten Aufgaben vorhanden. + feeds: + completed: "Erledigt: %{date}" + due: "F&auuml;llig: %{date}" deferred_pending_actions: Aufgeschobene/ausstehende Aufgaben has_x_pending: one: Hat eine ausstehende Aktion other: Hat %{count} ausstehende Aktionen - feeds: - completed: "Erledigt: %{date}" - due: "F&auuml;llig: %{date}" + recurring_todos: Wiederkehrende To-Dos delete_action: "Aktion l\xC3\xB6schen" error_deleting_recurring: "Beim L\xC3\xB6schen der wiederkehrenden To-Do %{description} ist ein Fehler aufgetreten" - recurring_todos: Wiederkehrende To-Dos delete: "L\xC3\xB6schen" + no_last_completed_actions: Keine abgeschlossene Aktionen gefunden drag_action_title: "Auf andere Aktion ziehen, um sie als Abh\xC3\xA4ngigkeit zu definieren" cannot_add_dependency_to_completed_todo: "Kann nicht hinzugef\xC3\xBCgt werden diese Aktion als eine Abh\xC3\xA4ngigkeit zu einer abgeschlossenen Aktion!" + action_marked_complete: Die Aktion '%{description}' wurde als %{completed} markiert. + depends_on: "H\xC3\xA4ngt ab von" tickler_items_due: one: Ein Notizbuch-Eintrag ist nun fällig - lade die Seite neu, um sie zu sehen. other: "%{count} Notizbuch-Einträge sind nun fällig - lade die Seite neu, um sie zu sehen." - depends_on: "H\xC3\xA4ngt ab von" - action_marked_complete: Die Aktion '%{description}' wurde als %{completed} markiert. - added_new_next_action_plural: Neue weiterführende Aufgaben angelegt + new_related_todo_not_created_short: nicht schaffen todo completed_today: one: Du hast heute bereits eine Aufgabe erledigt. other: Du hast heute bereits %{count} Aufgaben erledigt. - new_related_todo_not_created_short: nicht schaffen todo + added_new_next_action_plural: Neue weiterführende Aufgaben angelegt + completed_rest_of_week: Fertiggestellt den Rest dieser Woche + error_starring: Konnte die Hervorhebung von \'%{description}\' nicht durchführen calendar: get_in_ical_format: Diesen Kalender im iCal Format herunterladen due_next_week: Nächste Woche fällig - no_actions_due_next_week: Keine Aufgaben für die kommende Woche due_this_week: Die restliche Woche zu erledigen + no_actions_due_next_week: Keine Aufgaben für die kommende Woche due_today: Heute zu erledigen no_actions_due_today: Heute sind keine Aufgaben fällig due_next_month_and_later: Im %{month} und später fällig no_actions_due_after_this_month: Nach diesem Monat sind keine Aufgaben fällig due_this_month: Im %{month} fällig no_actions_due_this_month: Keine Aktionen für den Rest des Monats - error_starring: Konnte die Hervorhebung von \'%{description}\' nicht durchführen show_tomorrow: Morgen anzeigen - no_completed_recurring: Im Augenblick gibt es keine abgeschlossenen wiederkehrenden To-Dos recurrence: ends_on_date: Endet am %{date} every_work_day: Jeden Arbeitstag @@ -468,37 +478,13 @@ de: show_option_always: immer pattern: third: Drittel - every_n: jeden %{n} - second: zweite - on_day_n: am Tag %{n} - every_xth_day_of_every_n_months: "jedes %{x} %{day} jedes %{n_months} \xE2\x80\x8B" - weekly: "w\xC3\xB6chentlich" - from: von - last: zuletzt - every_day: jeden Tag - times: "f\xC3\xBCr %{number} Zeiten" - the_xth_day_of_month: der %{x} %{day} von %{month} - on_work_days: an Wochentagen - first: erste - show: Show - every_year_on: jedes Jahr in %{date} - fourth: vierte - due: "F\xC3\xA4llig" - until: bis - every_month: jeden Monat - day_names: - - Sonntag - - Montag - - Dienstag - - Mittwoch - - Donnerstag - - Freitag - - Samstag month_names: - - Januar - Februar - - März + - !binary | + TcOkcno= + - April - Mai - Juni @@ -508,103 +494,92 @@ de: - Oktober - November - Dezember + every_n: jeden %{n} + on_day_n: am Tag %{n} + second: zweite + every_xth_day_of_every_n_months: "jedes %{x} %{day} jedes %{n_months} \xE2\x80\x8B" + weekly: "w\xC3\xB6chentlich" + from: von + last: zuletzt + every_day: jeden Tag + the_xth_day_of_month: der %{x} %{day} von %{month} + times: "f\xC3\xBCr %{number} Zeiten" + every_year_on: jedes Jahr in %{date} + first: erste + show: Show + day_names: + - Sonntag + - Montag + - Dienstag + - Mittwoch + - Donnerstag + - Freitag + - Samstag + on_work_days: an Wochentagen + fourth: vierte + due: "F\xC3\xA4llig" + until: bis + every_month: jeden Monat yearly_every_x_day: "Jeden %{day}. %{month} " recurrence_on_options: Setze Wiederholung auf daily_every_number_day: Alle %{number} Tage show_options: To-Do anzeigen ends_on: Endet am weekly_every_number_week: Kehrt jede %{number}. Woche wieder am - no_end_date: Kein Enddatum - day_x_on_every_x_month: Tag %{day} in jedem %{month}. Monat yearly_options: "Einstellungen f\xC3\xBCr sich j\xC3\xA4hrlich wiederholende Aktionen" show_days_before: "%{days} Tage bevor die To-Do f\xC3\xA4llig ist" - yearly_every_xth_day: Den %{day} %{day_of_week} des %{month} from_tickler: the date todo comes from tickler (no due date set) - monthly_every_xth_day: Der %{day} %{day_of_week} eines jeden %{month}. Monats + no_end_date: Kein Enddatum + yearly_every_xth_day: Den %{day} %{day_of_week} des %{month} + day_x_on_every_x_month: Tag %{day} in jedem %{month}. Monat yearly: "J\xC3\xA4hrlich" + monthly_every_xth_day: Der %{day} %{day_of_week} eines jeden %{month}. Monats tagged_page_title: TRACKS::Als '%{tag_name}' markiert + no_completed_recurring: Im Augenblick gibt es keine abgeschlossenen wiederkehrenden To-Dos added_dependency: "%{dependency} als Abhängigkeit hinzugefügt." + all_completed_tagged_page_title: "TRACKS:: Alle erledigten Aufgaben mit Tag %{tag_name}" no_deferred_actions: Zur Zeit sind keine zurückgestellten Aktionen vorhanden. + completed_rest_of_month: Fertiggestellt den Rest des Monats recurrence_completed: Nach dieser wiederkehrenden Aktion, die du gerade abgeschlossen hast, folgt keine mehr. Die Wiederholung endet hiermit no_actions_found: "Momentan gibt es keine unvollst\xC3\xA4ndigen Aktionen." in_pending_state: und als ausstehend markiert error_toggle_complete: "K\xC3\xB6nnte nicht diese Marke todo komplett" due: Fällig action_marked_complete_error: Die Aktion '%{description}' wurde aufgrund eines Fehlers NICHT als %{completed} markiert. - action_saved_to_tickler: Aktion im Notizbuch gespeichert - recurring_action_saved: Wiederkehrende Aktion gespeichert - depends_on_separate_with_commas: Hängt ab von (Komma-separiert) completed_in_archive: one: Es befindet sich eine erledigte Aufgabe im Archiv. other: Es befinden sich %{count} erledigte Aufgaben im Archiv. + no_incomplete_actions: Es gibt keine unerledigten Aufgaben + depends_on_separate_with_commas: Hängt ab von (Komma-separiert) + action_saved_to_tickler: Aktion im Notizbuch gespeichert + recurring_action_saved: Wiederkehrende Aktion gespeichert to_tickler: ", im Notizbuch hinterlegt" next_actions_description_additions: completed: In den letzten %{count} Tagen due_date: mit einem Datum %{due_date} oder früher overdue: "Überfällig" add_new_recurring: "F\xC3\xBCge eine neue wiederkehrende Aktion hinzu" - no_incomplete_actions: Es gibt keine unerledigten Aufgaben notes: delete_item_title: Eintrag löschen delete_note_title: Notiz '%{id}' löschen delete_confirmation: "Bist du sicher, dass du die Notiz '%{id}' l\xC3\xB6schen m\xC3\xB6chtest?" + deleted_note: "Notiz '%{id}' l\xC3\xB6schen" note_link_title: Notiz %{id} anzeigen show_note_title: Notiz anzeigen - deleted_note: "Notiz '%{id}' l\xC3\xB6schen" note_location_link: "In:" edit_item_title: Eintrag bearbeiten - note_header: Notiz %{id} no_notes_available: "Derzeit gibt es keine Notizen: f\xC3\xBCge Notizen von der jeweiligen Projektseite hinzu." + note_header: Notiz %{id} delete_note_confirm: Soll die Notiz '%{id}' wirklich gelöscht werden? - projects: - deferred_actions: "Aufgeschobene Aufgaben f\xC3\xBCr dieses Projekt" - was_marked_hidden: wurde als verborgen markiert - edit_project_title: Projekt bearbeiten - default_tags_removed_notice: Standard-Tags entfernt - default_context_set: Standard-Kontext des Projekts auf %{default_context} gesetzt - no_actions_in_project: "Momentan gibt es keine unvollst\xC3\xA4ndigen Aktionen in diesem Projekt" - hide_form: Fomular verstecken - page_title: "TRACKS::Projekt: %{project}" - no_notes_attached: "Im Augenblick sind keine Notizen mit diesem Projekt verkn\xC3\xBCpft." - deferred_actions_empty: "Es gibt keine aufgeschobenen Aufgaben f\xC3\xBCr dieses Projekt" - this_project: Dieses Projekt - project_state: Projekt ist %{state} - show_form_title: Neues Projekt anlegen - to_new_project_page: Zu neuem Projekt weiterleiten - todos_append: an dieses Projekt - notes: Notizen - no_projects: Keine Projekte vorhanden - hide_form_title: Formular verstecken - notes_empty: "Es gibt keine Notizen f\xC3\xBCr dieses Projekt" - with_no_default_context: hat keinen Standardwert Kontext - delete_project: Projekt löschen - completed_actions_empty: "Es gibt keine erledigten Aufgaben f\xC3\xBCr dieses Projekt" - show_form: Projekt erstellen - actions_in_project_title: Die Aktionen in diesem Projekt - delete_project_confirmation: Soll das Projekt '%{name}' wirklich gelöscht werden? - with_default_context: mit einem Standard-Rahmen von '%{context_name}' - set_default_tags_notice: Standard-Tags des Projekts auf %{default_tags} setzen - with_default_tags: und mit '%{tags}' als Standard-Tags - project_saved_status: Projekt gespeichert - is_active: ist aktiv - completed_projects: Abgeschlossene Projekte - add_project: Projekt hinzufügen - settings: Einstellungen - list_projects: TRACKS::Projektliste - add_note: "Notiz hinzuf\xC3\xBCgen" - hidden_projects: Versteckte Projekte - delete_project_title: Projekt löschen - default_context_removed: Standard-Kontext entfernt - add_note_submit: "Notiz hinzuf\xC3\xBCgen" - completed_actions: "Erledigte Aufgaben f\xC3\xBCr dieses Projekt" - was_marked_complete: wurde als erledigt markiert - active_projects: Aktive Projekte - status_project_name_changed: "Projektname ge\xC3\xA4ndert" - no_default_context: Dieses Projekt hat keinen Standard-Kontext - with_no_default_tags: und hat keinen Standardwert Tags - edit_project_settings: Edit Project Settings - default_context: Der Standard-Kontext dieses Projektes ist %{context} - state: Dieses Projekt ist %{state} + states: + hidden_plural: Versteckte + completed: Erledigt + completed_plural: Erledigte + visible_plural: Sichtbare + active_plural: Aktive + visible: Sichtbar + active: Aktiv + hidden: Versteckt time: am: vormittags formats: @@ -614,15 +589,58 @@ de: month_day: "%d. %B" long: "%A, %d. %B %Y, %H:%M Uhr" pm: nachmittags - states: - hidden_plural: Versteckte - completed: Erledigt - completed_plural: Erledigte - visible_plural: Sichtbare - visible: Sichtbar - active_plural: Aktive - active: Aktiv - hidden: Versteckt + projects: + deferred_actions: "Aufgeschobene Aufgaben f\xC3\xBCr dieses Projekt" + was_marked_hidden: wurde als verborgen markiert + edit_project_title: Projekt bearbeiten + default_tags_removed_notice: Standard-Tags entfernt + default_context_set: Standard-Kontext des Projekts auf %{default_context} gesetzt + no_actions_in_project: "Momentan gibt es keine unvollst\xC3\xA4ndigen Aktionen in diesem Projekt" + page_title: "TRACKS::Projekt: %{project}" + hide_form: Fomular verstecken + this_project: Dieses Projekt + project_state: Projekt ist %{state} + show_form_title: Neues Projekt anlegen + to_new_project_page: Zu neuem Projekt weiterleiten + no_notes_attached: "Im Augenblick sind keine Notizen mit diesem Projekt verkn\xC3\xBCpft." + deferred_actions_empty: "Es gibt keine aufgeschobenen Aufgaben f\xC3\xBCr dieses Projekt" + no_last_completed_projects: Keine abgeschlossene Projekte gefunden + notes: Notizen + todos_append: an dieses Projekt + no_projects: Keine Projekte vorhanden + hide_form_title: Formular verstecken + notes_empty: "Es gibt keine Notizen f\xC3\xBCr dieses Projekt" + with_no_default_context: hat keinen Standardwert Kontext + delete_project: Projekt löschen + completed_actions_empty: "Es gibt keine erledigten Aufgaben f\xC3\xBCr dieses Projekt" + delete_project_confirmation: Soll das Projekt '%{name}' wirklich gelöscht werden? + with_default_context: mit einem Standard-Rahmen von '%{context_name}' + show_form: Projekt erstellen + actions_in_project_title: Die Aktionen in diesem Projekt + add_project: Projekt hinzufügen + set_default_tags_notice: Standard-Tags des Projekts auf %{default_tags} setzen + settings: Einstellungen + with_default_tags: und mit '%{tags}' als Standard-Tags + list_projects: TRACKS::Projektliste + project_saved_status: Projekt gespeichert + add_note: "Notiz hinzuf\xC3\xBCgen" + is_active: ist aktiv + completed_projects: Abgeschlossene Projekte + hidden_projects: Versteckte Projekte + delete_project_title: Projekt löschen + default_context_removed: Standard-Kontext entfernt + add_note_submit: "Notiz hinzuf\xC3\xBCgen" + completed_actions: "Erledigte Aufgaben f\xC3\xBCr dieses Projekt" + was_marked_complete: wurde als erledigt markiert + default_context: Der Standard-Kontext dieses Projektes ist %{context} + active_projects: Aktive Projekte + status_project_name_changed: "Projektname ge\xC3\xA4ndert" + no_default_context: Dieses Projekt hat keinen Standard-Kontext + with_no_default_tags: und hat keinen Standardwert Tags + state: Dieses Projekt ist %{state} + edit_project_settings: Edit Project Settings + errors: + user_unauthorized: "401 Unauthorized: Nur administrative Benutzer d\xC3\xBCrfen auf diese Funktion zugreifen." preferences: staleness_starts_after: Abgestandenheit startet nach %{days} Tagen open_id_url: "Deine OpenID-URL lautet:" @@ -631,11 +649,11 @@ de: page_title: TRACKS::Einstellungen title: Deine Einstellungen token_description: "Token (f\xC3\xBCr die Verwendung in Feeds und der API)" - show_number_completed: "Zeige %{number} erledigte Eintr\xC3\xA4ge" is_false: Nein - is_true: Ja + show_number_completed: "Zeige %{number} erledigte Eintr\xC3\xA4ge" edit_preferences: Einstellungen bearbeiten page_title_edit: "TRACKS::Einstellungen \xC3\xA4ndern" + is_true: Ja sms_context_none: Keine generate_new_token: Neues Token generieren token_header: Dein Token @@ -643,14 +661,14 @@ de: authentication_header: Deine Authentifizierung change_authentication_type: "Authentifzierungsart \xC3\xA4ndern" generate_new_token_confirm: "Bist du sicher? Wenn du ein neues Token generierst, wird dies das alte Token ersetzen und jegliche externe Nutzung st\xC3\xB6ren, die das alte Token verwendet." - errors: - user_unauthorized: "401 Unauthorized: Nur administrative Benutzer d\xC3\xBCrfen auf diese Funktion zugreifen." date: month_names: - - Januar - Februar - - März + - !binary | + TcOkcno= + - April - Mai - Juni @@ -660,6 +678,10 @@ de: - Oktober - November - Dezember + order: + - :day + - :month + - :year abbr_day_names: - So - Mo @@ -668,10 +690,6 @@ de: - Do - Fr - Sa - order: - - :day - - :month - - :year formats: only_day: "%e" default: "%d.%m.%Y" @@ -713,8 +731,8 @@ de: send_feedback: Senden Sie Feedback zu %{version} shared: multiple_next_actions: Mehrere neue Aufgaben (eine pro Zeile) - hide_form: Formular verstecken toggle_single: Weitere Aktion erstellen + hide_form: Formular verstecken add_action: "Aufgabe hinzuf\xC3\xBCgen" add_actions: "Aufgaben hinzuf\xC3\xBCgen" tags_for_all_actions: "Tags f\xC3\xBCr alle Aufgaben (mit Kommas trennen)" @@ -726,71 +744,71 @@ de: toggle_multi_title: "Zwischen Einzel- und Mehrfachformular f\xC3\xBCr neue Aufgaben umschalten" hide_action_form_title: "Formular f\xC3\xBCr neue Aufgaben verstecken" users: + auth_type_update_error: "Beim Ändern der Authentifizierung trat ein Fehler auf: %{error_messages}" destroy_successful: "Benutzer %{login} wurde erfolgreich gel\xC3\xB6scht" + successfully_deleted_user: Benutzer %{username} erfolgreich gelöscht. total_contexts: Alle Kontexte failed_to_delete_user: Löschen des Benutzers %{username} fehlgeschlagen first_user_heading: "Willkommen bei TRACKS. Als erstes legen Sie bitte einen Administrator-Zugang an:" openid_url_verified: Die URL %{url} wurde erfolgreich als Identität verifiziert und Deine Authentifizierung auf OpenID umgestellt. - auth_type_update_error: "Beim Ändern der Authentifizierung trat ein Fehler auf: %{error_messages}" - successfully_deleted_user: Benutzer %{username} erfolgreich gelöscht. + new_token_generated: Neuer Token erfolgreich generiert total_projects: Alle Projekte signup_successful: Benutzer %{username} erfolgreich angelegt. - new_token_generated: Neuer Token erfolgreich generiert change_password_submit: "Passwort \xC3\xA4ndern" no_signups_title: TRACKS::Anmeldung nicht erlaubt user_created: Benutzer angelegt. - account_signup: Accounteinrichtung manage_users: Benutzer verwalten + account_signup: Accounteinrichtung password_updated: Passwort aktualisiert. - desired_login: "Gew\xC3\xBCnschter Benutzername" confirm_password: "Passwort best\xC3\xA4tigen" new_user_heading: "Einen neuen Benutzer anlegen:" signup: Registrieren auth_type_updated: Authentifizierungs-Art erfolgreich geändert. total_actions: Alle Aufgaben - choose_password: "Passwort w\xC3\xA4hlen" - change_password_title: TRACKS::Passwort ändern + desired_login: "Gew\xC3\xBCnschter Benutzername" change_auth_type_title: TRACKS::Authentifizierungstyp ändern change_password_prompt: "Gib dein neues Passwort in die unten stehenden Felder ein und klicke auf 'Passwort \xC3\xA4ndern' um dein altes Passwort durch das neue zu ersetzen." password_confirmation_label: "Passwort best\xC3\xA4tigen" destroy_error: "Beim L\xC3\xB6schen des Benutzers %{login} ist ein Fehler aufgetreten." + choose_password: "Passwort w\xC3\xA4hlen" + change_password_title: TRACKS::Passwort ändern label_auth_type: Authentifizierungsart new_password_label: Neues Passwort register_with_cas: Mit deinem CAS-Benutzernamen + new_user_title: TRACKS::Als Administrator anmelden destroy_user: "Benutzer l\xC3\xB6schen" total_users_count: Derzeit existieren %{count} Benutzer - new_user_title: TRACKS::Als Administrator anmelden destroy_confirmation: "Achtung: der Benutzer '%{login}' wird mit all seinen Aufgaben, Kontexten, Projekten und Notizen gel\xC3\xB6scht. Bist du sicher, dass du fortfahren m\xC3\xB6chtest?" signup_new_user: Neuen Benutzer anlegen - auth_change_submit: "Authentifizierungsart \xC3\xA4ndern" openid_ok_pref_failed: Die URL %{url} wurde erfolgreich als Identität verifiziert, beim Speichern der Einstellungen trat jedoch ein Fehler auf. - identity_url: Identity-URL change_authentication_type: "Authentifizierungsart \xC3\xA4ndern" + identity_url: Identity-URL + auth_change_submit: "Authentifizierungsart \xC3\xA4ndern" total_notes: Alle Notizen select_authentication_type: "W\xC3\xA4hle deine neue Authentifizierungsart und klicke 'Authentifizierungsart \xC3\xA4ndern' an, um deine aktuellen Einstellungen zu \xC3\xBCberschreiben." feedlist: choose_context: "Kontext f\xC3\xBCr den Feed w\xC3\xA4hlen" actions_due_today: "Heute oder fr\xC3\xBCher f\xC3\xA4llig" + legend: "Legende:" rss_feed: RSS-Feed ical_feed: iCal-Feed - legend: "Legende:" all_contexts: Alle Kontexte choose_project: "Projekt f\xC3\xBCr den Feed w\xC3\xA4hlen" all_projects: Alle Projekte + project_needed: Es muss mindestens ein Projekt existieren, bevor ein Feed abonniert werden kann. select_feed_for_project: "Feed f\xC3\xBCr dieses Projekt ausw\xC3\xA4hlen" active_projects_wo_next: Aktive Projekte ohne ausstehende Aufgaben - project_needed: Es muss mindestens ein Projekt existieren, bevor ein Feed abonniert werden kann. active_starred_actions: Alle markierten, aktiven Aufgaben - select_feed_for_context: "Feed f\xC3\xBCr diesen Kontext ausw\xC3\xA4hlen" projects_and_actions: Aktive Projekte und deren Aufgaben context_needed: Es muss mindestens ein Kontext existieren, bevor ein Feed abonniert werden kann. + select_feed_for_context: "Feed f\xC3\xBCr diesen Kontext ausw\xC3\xA4hlen" actions_due_next_week: "In den n\xC3\xA4chsten 7 Tagen oder fr\xC3\xBCher f\xC3\xA4llige Aufgaben" notice_incomplete_only: "Hinweis: Alle Feeds zeigen nur Aufgaben, die noch nicht als erledigt markiert wurden." - actions_completed_last_week: In den letzten 7 Tagen abgeschlossene Aufgaben - context_centric_actions: "Feeds f\xC3\xBCr unvollst\xC3\xA4ndige Aufgaben in einem bestimmten Kontext" plain_text_feed: Plain-Text-Feed last_fixed_number: Die letzten %{number} Aufgaben all_actions: Alle Aufgaben + actions_completed_last_week: In den letzten 7 Tagen abgeschlossene Aufgaben + context_centric_actions: "Feeds f\xC3\xBCr unvollst\xC3\xA4ndige Aufgaben in einem bestimmten Kontext" project_centric: "Feeds f\xC3\xBCr unvollst\xC3\xA4ndige Aufgaben in einem bestimmten Kontext" sidebar: list_name_active_contexts: Aktive Kontexte @@ -805,24 +823,24 @@ de: show_form_title: Neuen Kontext erstellen delete_context_confirmation: Soll der Kontext '%{name}' wirklich gelöscht werden? Alle (wiederholenden) Aufgaben dieses Kontexts werden hierdurch ebenfalls gelöscht. delete_context: Kontext löschen - edit_context: Kontext bearbeiten hide_form_title: Formular für neuen Kontext verstecken + edit_context: Kontext bearbeiten no_contexts_active: Derzeit gibt es keine aktiven Kontexte context_hide: Auf Startseite ausblenden? hidden_contexts: Versteckte Kontexte - show_form: Neuen Kontext erstellen visible_contexts: Sichtbare Kontexte + show_form: Neuen Kontext erstellen save_status_message: Kontext gespeichert add_context: "Kontext hinzuf\xC3\xBCgen" context_name: Kontextname update_status_message: "Kontextname wurde ge\xC3\xA4ndert" - new_context_post: "' wird ebenfalls angelegt. Fortfahren?" status_active: Kontext ist aktiv - no_actions: "Momentan gibt es keine unvollst\xC3\xA4ndigen Aufgaben in diesem Kontext" + new_context_post: "' wird ebenfalls angelegt. Fortfahren?" last_completed_in_context: in diesem Kontext (letzte %{number}) context_deleted: "Gel\xC3\xB6schter Kontext '%{name}'" no_contexts_hidden: Derzeit gibt es keine versteckten Kontexte new_context_pre: Der neue Kontext ' + no_actions: "Momentan gibt es keine unvollst\xC3\xA4ndigen Aufgaben in diesem Kontext" status_hidden: Kontext ist versteckt datetime: prompts: @@ -871,9 +889,9 @@ de: half_a_minute: eine halbe Minute login: openid_identity_url_not_found: "Sorry, aber es existiert kein Benutzer mit der Identit\xC3\xA4ts-URL (%{identity_url})" + login_cas: zum CAS gehen user_no_expiry: Angemeldet bleiben sign_in: Anmeldung - login_cas: zum CAS gehen cas_login: CAS-Anmeldung successful_with_session_info: "Anmeldung erfolgreich:" please_login: Bitte melde dich an, um Tracks zu nutzen @@ -890,14 +908,14 @@ de: option_separator: oder, session_time_out: Sitzung abgelaufen. Bitte %{link} login_standard: "zur\xC3\xBCck zum Standard-Login" + log_in_again: Erneut anmelden. logged_out: Sie wurden von Tracks abgemeldet. login_with_openid: Mit einer OpenID anmelden unsuccessful: Anmeldung war nicht erfolgreich. - log_in_again: Erneut anmelden. search: contexts_matching_query: Kontexte entsprechen der Suche tags_matching_query: Tags entsprechen der Suche + todos_matching_query: Todos entsprechen der Suche projects_matching_query: Projekte entsprechen der Suche notes_matching_query: Notizen entsprechen der Suche no_results: Die Suche ergab kein Ergebnis. - todos_matching_query: Todos entsprechen der Suche diff --git a/config/locales/en.yml b/config/locales/en.yml index e1423a24..db45bfc2 100644 --- a/config/locales/en.yml +++ b/config/locales/en.yml @@ -139,6 +139,8 @@ en: new_context_pre: "New context '" new_context_post: "' will be also created. Are you sure?" edit_context: "Edit context" + completed_tasks_title: "TRACKS::Completed actions in the context '%{context_name}'" + all_completed_tasks_title: "TRACKS::All Completed actions in the context '%{context_name}'" data: import_errors: "Some errors occurred during import" import_successful: "Import was successful." @@ -310,6 +312,9 @@ en: edit_project_settings: "Edit Project Settings" page_title: "TRACKS::Project: %{project}" list_projects: "TRACKS::List Projects" + list_completed_projects: "TRACKS::List Completed Projects" + completed_tasks_title: "TRACKS::List Completed Actions in Project '%{project_name}'" + all_completed_tasks_title: "TRACKS::List All Completed Actions in Project '%{project_name}'" no_default_context: "This project does not have a default context" default_context: "The default context for this project is %{context}" project_state: "Project is %{state}." @@ -541,7 +546,7 @@ en: from: from until: until times: for %{number} times - day_names: + day_names: - sunday - monday - tuesday @@ -549,8 +554,8 @@ en: - thursday - friday - saturday - month_names: - - + month_names: + - - January - February - Match @@ -597,6 +602,8 @@ en: action_deleted_success: "Successfully deleted next action" action_deleted_error: "Failed to delete the action" completed_tasks_title: "TRACKS::Completed tasks" + completed_tagged_page_title: "TRACKS::Completed tasks with tag %{tag_name}" + all_completed_tagged_page_title: "TRACKS::All completed tasks with tag %{tag_name}" archived_tasks_title: "TRACKS::Archived completed tasks" deferred_tasks_title: "TRACKS::Tickler" tagged_page_title: "TRACKS::Tagged with '%{tag_name}'" diff --git a/config/locales/nl.yml b/config/locales/nl.yml index fc439bf1..488b55a1 100644 --- a/config/locales/nl.yml +++ b/config/locales/nl.yml @@ -1,5 +1,49 @@ --- nl: + layouts: + toggle_notes: Toggle notities + next_actions_rss_feed: RSS-feed van de acties + mobile_navigation: + logout: Afmelden + feeds: Feeds + new_action: 0-Nieuwe actie + starred: 4-Ster + projects: 3-Projecten + tickler: Tickler + contexts: 2-Contexten + home: 1-Start + toggle_notes_title: Toggle alle notities + navigation: + recurring_todos: Terugkerende acties + manage_users_title: Toevoegen of verwijderen gebruikers + api_docs: REST API Docs + feeds: Feeds + starred: Ster + notes_title: Toon alle notities + stats: Statistieken + tickler_title: Tickler + manage_users: Beheren gebruikers + export_title: Import en export van gegevens + preferences: Voorkeuren + integrations_: Integreer Tracks + feeds_title: Zie een lijst met beschikbare feeds + calendar_title: Kalender met acties met deadline + starred_title: Zie je ster acties + tickler: Tickler + recurring_todos_title: Beheren terugkerende acties + completed_tasks: Gereed + stats_title: Zie je statistieken + home_title: Start + organize: Organiseer + view: Bekijk + completed_tasks_title: Afgerond + home: Start + export: Export + contexts_title: Contexten + calendar: Agenda + projects_title: Projecten + search: Zoeken in alle items + preferences_title: Toon mijn voorkeuren number: format: separator: "," @@ -23,107 +67,65 @@ nl: separator: "," delimiter: . + integrations: + opensearch_description: Zoek in Tracks + applescript_next_action_prompt: "Omschrijving van de actie:" + gmail_description: Gadget om Tracks toe te voegen aan Gmail als een gadget + applescript_success_after_id: gemaakt + applescript_success_before_id: Nieuwe actie met ID common: back: Terug third: Derde + recurring_todos: Herhalende acties actions: Acties add: Toevoegen - go_back: Ga terug + previous: Vorige logout: Log uit + go_back: Ga terug cancel: Annuleer + week: week none: Geen second: Tweede optional: optioneel - forum: Forum + month: maand notes: Notities + forum: Forum server_error: Een fout heeft op de server plaatsgevonden - projects: Projecten last: Laatste + projects: Projecten action: Actie project: Project contribute: Bijdragen ok: Ok - first: Eerste website: Website + first: Eerste numbered_step: Stap %{number} + errors_with_fields: Er waren problemen met de volgende velden sort: by_task_count_title: Sorteer op aantal acties by_task_count_title_confirm: Weet u zeker dat u deze op aantal acties wilt sorteren? Dat zal de huidige sorteervolgorde aanpassen. alphabetically: Alfabetisch + alphabetically_title: Sorteer projecten alfabetisch sort: Sorteer alphabetically_confirm: Weet u zeker dat u deze projecten alfabetisch wilt sorteren? Dat zal de huidige sorteervolgorde aanpassen. - alphabetically_title: Sorteer projecten alfabetisch by_task_count: Op aantal acties fourth: Vierde create: Maken - drag_handle: SLEEP - context: Context - errors_with_fields: Er waren problemen met de volgende velden - description: Beschrijving - contexts: Contexten - update: Bijwerken - wiki: Wiki - bugs: Fouten - ajaxError: Er is een fout opgetreden bij het ophalen van gegevens van de server - email: E-mail - search: Zoeken - month: maand months: maanden + context: Context + contexts: Contexten + todo: actie + next: Volgende + description: Beschrijving + drag_handle: SLEEP + update: Bijwerken + bugs: Fouten weeks: weken forth: Vierde - integrations: - opensearch_description: Zoek in Tracks - gmail_description: Gadget om Tracks toe te voegen aan Gmail als een gadget - applescript_next_action_prompt: "Omschrijving van de actie:" - applescript_success_after_id: gemaakt - applescript_success_before_id: Nieuwe actie met ID - layouts: - toggle_notes: Toggle notities - next_actions_rss_feed: RSS-feed van de acties - toggle_notes_title: Toggle alle notities - mobile_navigation: - logout: Afmelden - feeds: Feeds - new_action: 0-Nieuwe actie - starred: 4-Ster - projects: 3-Projecten - tickler: Tickler - contexts: 2-Contexten - home: 1-Start - navigation: - api_docs: REST API Docs - manage_users_title: Toevoegen of verwijderen gebruikers - recurring_todos: Terugkerende acties - feeds: Feeds - stats: Statistieken - starred: Ster - notes_title: Toon alle notities - tickler_title: Tickler - manage_users: Beheren gebruikers - export_title: Import en export van gegevens - integrations_: Integreer Tracks - preferences: Voorkeuren - feeds_title: Zie een lijst met beschikbare feeds - calendar_title: Kalender met acties met deadline - home_title: Start - starred_title: Zie je ster acties - recurring_todos_title: Beheren terugkerende acties - completed_tasks: Gereed - stats_title: Zie je statistieken - tickler: Tickler - organize: Organiseer - view: Bekijk - completed_tasks_title: Afgerond - export: Export - home: Start - contexts_title: Contexten - preferences_title: Toon mijn voorkeuren - projects_title: Projecten - calendar: Agenda - search: Zoeken in alle items - data: - import_successful: De import was succesvol - import_errors: Er hebben zich fouten voorgedaan bij de import + wiki: Wiki + ajaxError: Er is een fout opgetreden bij het ophalen van gegevens van de server + search: Zoeken + email: E-mail models: project: feed_title: Tracks Projecten @@ -158,19 +160,19 @@ nl: show_hidden_projects_in_sidebar: Toon verborgen projecten in sidebar show_hidden_contexts_in_sidebar: Toon verborgen contexten in sidebar date_format: Datum formaat - mobile_todos_per_page: Acties per pagina (mobiel) staleness_starts: Begin van markeren openstaande actie - sms_context: Standaard context voor email + mobile_todos_per_page: Acties per pagina (mobiel) verbose_action_descriptors: Context en project uitschrijven in actielijst - show_number_completed: Aantal te tonen afgeronde acties + sms_context: Standaard context voor email title_date_format: Datum formaat in titel + show_number_completed: Aantal te tonen afgeronde acties refresh: Ververs interval (in minuten) week_starts: Week start op - due_style: Deadline stijl time_zone: Tijdzone + due_style: Deadline stijl locale: Taal - sms_email: Van email show_project_on_todo_done: Ga naar project pagina wanneer actie gereed is + sms_email: Van email show_completed_projects_in_sidebar: Toon afgeronde projecten in sidebar user: last_name: Achternaam @@ -189,12 +191,12 @@ nl: confirmation: komt niet overeen met de configuratie less_than_or_equal_to: moet kleiner of gelijk zijn aan %{count} blank: mag niet leeg zijn - invalid: "mag niet een komma (',') karakter bevatten" + invalid: mag niet een komma (',') karakter bevatten exclusion: is gereserveerd odd: moet oneven zijn too_short: is te kort (minimum is %{count} karakters) - empty: mag niet leeg zijn wrong_length: heeft de verkeerde lengte (moet %{count} karakters lang zijn) + empty: mag niet leeg zijn even: moet even zijn less_than: moet kleiner zijn dan %{count} greater_than: moet groter zijn dan %{count} @@ -211,18 +213,21 @@ nl: header: one: 1 fout voorkomt het kunnen bewaren van deze %{model} other: "%{count} fouten voorkomen dat dit %{model} bewaard kan worden" + data: + import_successful: De import was succesvol + import_errors: Er hebben zich fouten voorgedaan bij de import stats: - tag_cloud_title: Tag Cloud voor alle acties - tag_cloud_description: Deze tag cloud bevat tags van alle acties (afgerond, niet voltooid, zichtbaar en / of verborgen) tag_cloud_90days_title: Tag cloud met acties in afgelopen 90 dagen - actions: Acties totals_active_project_count: Van deze zijn %{count} actieve projecten + tag_cloud_title: Tag Cloud voor alle acties + actions: Acties + tag_cloud_description: Deze tag cloud bevat tags van alle acties (afgerond, niet voltooid, zichtbaar en / of verborgen) actions_avg_completion_time: Van al uw afgeronde acties, de gemiddelde tijd dat dit in beslag nam is %{count} dagen. actions_last_year_legend: number_of_actions: Aantal acties months_ago: Maanden geleden totals_first_action: Sinds uw eerste actie op %{date} - current_running_time_of_incomplete_visible_actions: Huidige looptijd van onvolledige zichtbare acties + totals_action_count: u heeft een totaal van %{count} acties totals_deferred_actions: waarvan %{count} uitgestelde acties in de tickler zijn legend: number_of_days: Aantal dagen geleden @@ -232,64 +237,61 @@ nl: percentage: Percentage running_time: Looptijd van een actie (weken) months_ago: Maanden geleden - totals_action_count: u heeft een totaal van %{count} acties + top10_longrunning: Top 10 langstlopende projecten actions_dow_30days_title: Dag van de week (laatste 30 dagen) + current_running_time_of_incomplete_visible_actions: Huidige looptijd van onvolledige zichtbare acties running_time_legend: actions: Acties percentage: Percentage weeks: Looptijd van een actie (weken). Klik op een balk voor meer info - top10_longrunning: Top 10 langstlopende projecten + top5_contexts: Top 5 contexten actions_lastyear_title: Acties in de afgelopen 12 maanden totals_actions_completed: "%{count} van deze zijn voltooid." totals_incomplete_actions: U heeft %{count} onvolledige acties totals_unique_tags: Van deze tags zijn %{count} uniek. actions_avg_completed_30days: en voltooide een gemiddelde van %{count} acties per dag. - top5_contexts: Top 5 contexten - action_completion_time_title: Doorlooptijd (alle voltooide acties) - projects: Projecten - actions_last_year: Acties in de afgelopen jaren - totals_context_count: U heeft %{count} contexten. totals_visible_context_count: Van deze zijn %{count} zichtbare contexten totals_blocked_actions: "%{count} zijn afhankelijk van de voltooiing van hun acties." - tags: Tags + action_completion_time_title: Doorlooptijd (alle voltooide acties) + actions_last_year: Acties in de afgelopen jaren + projects: Projecten + totals_context_count: U heeft %{count} contexten. + actions_day_of_week_title: Dag van de week (alle acties) + totals_project_count: U heeft %{count} projecten. actions_min_max_completion_days: De max-/minimum dagen tot voltooiing is %{min}/%{max}. actions_min_completion_time: De minimale tijd tot afronding is %{time}. no_tags_available: geen tags beschikbaar - actions_day_of_week_title: Dag van de week (alle acties) - totals_project_count: U heeft %{count} projecten. - more_stats_will_appear: Meer statistieken zullen hier verschijnen zodra u acties hebt toegevoegd. - totals_hidden_project_count: "%{count} zijn verborgen" - tod30: Tijd van de dag (laatste 30 dagen) - actions_30days_title: Acties in de afgelopen 30 dagen - actions_further: en verder - time_of_day: Tijd van de dag (alle acties) - totals_tag_count: U heeft %{count} tags geplaatst op acties. - running_time_all: Huidige looptijd van alle onvolledige acties - top5_visible_contexts_with_incomplete_actions: Top 5 zichtbare contexten met onvolledige acties + tags: Tags tag_cloud_90days_description: Deze tag cloud bevat tags van acties die zijn gemaakt of voltooid in de afgelopen 90 dagen. - top10_projects_30days: Top 10 project in de laatste 30 dagen - click_to_return: Klik %{link} om terug te keren naar de statistieken pagina. + actions_further: en verder + running_time_all: Huidige looptijd van alle onvolledige acties + time_of_day: Tijd van de dag (alle acties) + tod30: Tijd van de dag (laatste 30 dagen) + more_stats_will_appear: Meer statistieken zullen hier verschijnen zodra u acties hebt toegevoegd. + top5_visible_contexts_with_incomplete_actions: Top 5 zichtbare contexten met onvolledige acties + totals_tag_count: U heeft %{count} tags geplaatst op acties. + actions_30days_title: Acties in de afgelopen 30 dagen + totals_hidden_project_count: "%{count} zijn verborgen" totals_completed_project_count: en %{count} zijn afgeronde projecten. - click_to_show_actions_from_week: Klik %{link} om de acties van week %{week} en verder te zien. - spread_of_running_actions_for_visible_contexts: Verdeling van actieve acties voor zichtbare contexten - other_actions_label: (anderen) - top10_projects: Top 10 projecten - spread_of_actions_for_all_context: Verdeling van acties voor alle contexten + top10_projects_30days: Top 10 project in de laatste 30 dagen actions_selected_from_week: Gekozen acties van week + click_to_show_actions_from_week: Klik %{link} om de acties van week %{week} en verder te zien. + top10_projects: Top 10 projecten actions_avg_created: In de afgelopen 12 maanden heeft u gemiddeld%{count} acties aangemaakt + click_to_return: Klik %{link} om terug te keren naar de statistieken pagina. + spread_of_running_actions_for_visible_contexts: Verdeling van actieve acties voor zichtbare contexten + spread_of_actions_for_all_context: Verdeling van acties voor alle contexten + other_actions_label: (anderen) + actions_avg_completed: en voltooide een gemiddelde van %{count} acties per maand. + totals: Totalen + contexts: Contexten time_of_day_legend: number_of_actions: Aantal acties time_of_day: Tijd van de dag click_to_return_link: hier totals_hidden_context_count: en %{count} zijn verborgen contexten. - actions_avg_completed: en voltooide een gemiddelde van %{count} acties per maand. - totals: Totalen - contexts: Contexten no_actions_selected: Er zijn geen acties geselecteerd. - running_time_all_legend: - actions: Acties - percentage: Percentage - running_time: Looptijd van een actie (weken). Klik op een balk voor meer info + click_to_update_actions: Klik op een balk in de grafiek op de acties hieronder aan te passen. labels: month_avg_completed: "%{months} gem afgerond per maand" completed: Afgerond @@ -297,20 +299,24 @@ nl: avg_created: Gem gemaakt avg_completed: Gem afgerond created: Gemaakt - click_to_update_actions: Klik op een balk in de grafiek op de acties hieronder aan te passen. + running_time_all_legend: + actions: Acties + percentage: Percentage + running_time: Looptijd van een actie (weken). Klik op een balk voor meer info + actions_actions_avg_created_30days: In de afgelopen 30 dagen heeft u gemiddeld %{count} acties gemaakt tod30_legend: number_of_actions: Aantal acties time_of_day: Tijd van de dag action_selection_title: "TRACKS:: Actie selectie" - actions_actions_avg_created_30days: In de afgelopen 30 dagen heeft u gemiddeld %{count} acties gemaakt todos: show_from: Toon vanaf - error_starring_recurring: "Kon niet de ster van deze terugkerende actie niet omgezetten \'%{description}\'" + error_starring_recurring: Kon niet de ster van deze terugkerende actie niet omgezetten \'%{description}\' recurring_action_deleted: Actie werd verwijderd. Omdat deze actie herhalend is. werd een nieuwe actie toegevoegd completed_actions: Voltooide acties + completed_rest_of_previous_month: Afgerond in de rest van de vorige maand + blocked_by: Geblokkeerd door %{predecessors} completed_recurring: Afgesloten terugkerende todos added_new_next_action: Nieuwe actie toegevoegd - blocked_by: Geblokkeerd door %{predecessors} defer_date_after_due_date: Uitsteldatum is na de vervaldag. Gelieve vervaldag bewerken alvorens uitsteldatum aan te passen. star_action: Markeer deze actie met een ster completed_recurrence_completed: Er is geen actie na de terugkerende actie die u new verwijderd heeft. De herhaling is voltooid @@ -323,15 +329,15 @@ nl: no_hidden_actions: Momenteel zijn er geen verborgen acties gevonden action_due_on: (deadline actie op %{date}) edit_action_with_description: Bewerk de actie '%{description}' + tags: Tags (gescheiden door komma's) archived_tasks_title: "TRACKS:: Gearchiveerde voltooide taken" remove_dependency: Verwijder afhankelijkheid (zal niet de actie zelf verwijderen) list_incomplete_next_actions: Toon onvoltooide acties action_deleted_success: Actie succesvol verwijderd - tags: Tags (gescheiden door komma's) + add_another_dependency: Nog een afhankelijkheid toevoegen new_related_todo_created: Een nieuwe actie is toegevoegd, die behoort bij deze terugkerende todo context_changed: Context veranderd in '%{name}' mobile_todos_page_title: Alle acties - add_another_dependency: Nog een afhankelijkheid toevoegen delete_recurring_action_title: Verwijder de terugkerende actie recurring_actions_title: TRACKS::Terugkerende acties removed_predecessor: "'%{successor}' is verwijderd als afhankelijkheid van '%{predecessor}'." @@ -342,6 +348,7 @@ nl: edit_action: Actie bewerken added_new_context: Nieuwe context toegevoegd next_actions_description: "Filter:" + older_completed_items: Oudere voltooide items list_incomplete_next_actions_with_limit: Toont de laatste %{count} onvoltooide acties set_to_pending: "'%{task}' als wachtend ingesteld" added_new_project: Nieuw project toegevoegd @@ -349,16 +356,16 @@ nl: completed: acties voltooid due_today: deadline vandaag due_within_a_week: deadline binnen een week - older_completed_items: Oudere voltooide items + task_list_title: TRACKS::Toon acties append_in_this_project: in dit project error_deleting_item: Er is een fout opgetreden bij het verwijderen van het item '%{description}' - task_list_title: TRACKS::Toon acties no_actions_due_this_week: Geen acties met deadline in rest van deze week - delete_recurring_action_confirm: Weet u zeker dat u wilt de terugkerende actie '%{description}' wilt verwijderen? error_completing_todo: Er was een fout bij het voltooien / activeren van de terugkerende actie '%{description}' no_recurring_todos: Momenteel zijn er geen terugkerende acties + recurring_pattern_removed: Het herhalingspatroon is verwijderd van %{count} convert_to_project: Maak project no_deferred_pending_actions: Momenteel zijn er geen uitgestelde of wachtende acties + delete_recurring_action_confirm: Weet u zeker dat u wilt de terugkerende actie '%{description}' wilt verwijderen? completed_last_day: Voltooid in de laatste 24 uur no_project: -- Geen project -- show_in_days: Toon over %{days} dagen @@ -366,13 +373,15 @@ nl: completed_more_than_x_days_ago: Voltooid meer dan %{count} dagen geleden new_related_todo_created_short: een nieuwe actie gemaakt feed_title_in_context: in context '%{context}' + all_completed: Alle afgeronde acties older_than_days: Ouder dan %{count} dagen + completed_tagged_page_title: "TRACKS:: Afgeronde acties met tag %{tag_name}" edit: Bewerken pending: Wachtend completed_actions_with: Afgeronde acties met de tag %{tag_name} - completed_tasks_title: TRACKS::Voltooide taken - deleted_success: De actie werd met succes verwijderd. feed_title_in_project: In het project '%{project}' + deleted_success: De actie werd met succes verwijderd. + completed_tasks_title: TRACKS::Voltooide taken clear_due_date: Maak deadline leeg error_removing_dependency: Er is een fout opgetreden het verwijderen van de afhankelijke actie hidden_actions: Verborgen acties @@ -390,14 +399,14 @@ nl: calendar_page_title: TRACKS::Agenda in_hidden_state: in verborgen toestand unresolved_dependency: De waarde die u ingevoerd heeft in het afhankelijkheden veld is niet herleidbaar naar een bestaande actie. Deze waarde wordt niet bewaard met de rest van de actie. Doorgaan? - show_today: Toon vandaag - no_actions_found_title: Geen acties gevonden next_actions_due_date: overdue_by: Over deadline met %{days} dag - overdue_by_plural: Over deadline met %{days} dagen due_today: Deadline vandaag due_in_x_days: Deadline over %{days} dagen + overdue_by_plural: Over deadline met %{days} dagen due_tomorrow: Deadline morgen + show_today: Toon vandaag + no_actions_found_title: Geen acties gevonden completed_last_x_days: Voltooid in de laatste %{count} dagen no_actions_with: Momenteel zijn er geen onvoltooide acties met de tag '%{tag_name}' defer_x_days: @@ -405,29 +414,32 @@ nl: other: "%{count} dagen uitstellen" added_new_next_action_singular: Nieuwe actie toegevoegd no_completed_actions: Momenteel zijn er geen voltooide acties. + feeds: + completed: "Voltooid: %{date}" + due: "Deadline: %{date}" deferred_pending_actions: Uitgestelde/wachtende acties has_x_pending: one: Heeft een wachtende actie other: Heeft %{count} wachtende acties - feeds: - completed: "Voltooid: %{date}" - due: "Deadline: %{date}" + recurring_todos: Terugkerende acties delete_action: Verwijder actie error_deleting_recurring: Er is een fout opgetreden bij het verwijderen van het item \'%{description}\' - recurring_todos: Terugkerende acties delete: Verwijder + no_last_completed_actions: Geen afgeronde acties gevonden drag_action_title: Sleep naar een andere actie om deze afhankelijk te maken van die actie cannot_add_dependency_to_completed_todo: Kan deze actie niet als een afhankelijkheid van een voltooide actie toevoegen! + action_marked_complete: De actie '%{description}' werd gemarkeerd als %{completed} depends_on: Hangt af van tickler_items_due: one: Een tickler item wordt nu zichtbaar - vernieuw de pagina om het te zien. other: "%{count} tickerl items zijn nu zichtbaar - vernieuw de pagina om ze te zien." - action_marked_complete: De actie '%{description}' werd gemarkeerd als %{completed} + new_related_todo_not_created_short: een nieuwe actie is niet gemaakt completed_today: one: U heeft een actie tot nu toe vandaag voltooid. other: U heeft %{count} acties tot nu toe vandaag voltooid. added_new_next_action_plural: Nieuwe acties toegevoegd - new_related_todo_not_created_short: een nieuwe actie is niet gemaakt + completed_rest_of_week: Afgerond in de rest van deze week + error_starring: Kon niet de ster van deze actie niet omzetten \'%{description}\' calendar: get_in_ical_format: Ontvang deze agenda in iCal-formaat due_next_week: Deadline volgende week @@ -439,7 +451,6 @@ nl: no_actions_due_after_this_month: Geen acties met deadline na deze maand due_this_month: Deadline in rest van %{month} no_actions_due_this_month: Geen acties met deadline in de rest van deze maand - error_starring: "Kon niet de ster van deze actie niet omzetten \'%{description}\'" show_tomorrow: Toon morgen recurrence: ends_on_date: Eindigt op %{date} @@ -454,48 +465,8 @@ nl: starts_on: Begint op daily: Dagelijks show_option_always: altijd - yearly_every_x_day: Elke %{month} %{day} - recurrence_on_options: Stel herhaling in op - daily_every_number_day: Elke %{number} dag(en) - weekly_every_number_week: Herhaalt elke %{number} weken op - ends_on: Eindigt op - show_options: Toon de actie - no_end_date: Geen einddatum - day_x_on_every_x_month: Dag %{day} op elke %{month} maand - yearly_options: Instellingen voor jaarlijks terugkerende acties - yearly_every_xth_day: De %{day} %{day_of_week} van %{month} - show_days_before: "%{days} dagen v\xC3\xB3\xC3\xB3r de deadline van actie" - from_tickler: de datum dat de actie uit de tickler komt (geen deadline ingesteld) - yearly: Jaarlijks - monthly_every_xth_day: De %{day} %{day_of_week} van elke %{month} maand - pattern: - due: Deadline - show: Tonen - on_work_days: op werkdagen - weekly: wekelijks - every_n: elke %{n} - every_day: elke dag - every_month: elke maand - on_day_n: op dag %{n} - every_year_on: elk jaar op %{date} - the_xth_day_of_month: de %{x} %{day} van %{month} - every_xth_day_of_every_n_months: elke %{x} %{day} van elke %{n_months} - first: eerste - second: tweede + pattern: third: derde - fourth: vierde - last: laatste - from: vanaf - until: tot - times: voor %{number} keer - day_names: - - zondag - - maandag - - dinsdag - - woensdag - - donderdag - - vrijdag - - zaterdag month_names: - - januari @@ -509,49 +480,109 @@ nl: - september - oktober - november - - december - tagged_page_title: "TRACKS::Tagged met '%{tag_name}'" + - december + every_n: elke %{n} + on_day_n: op dag %{n} + second: tweede + every_xth_day_of_every_n_months: elke %{x} %{day} van elke %{n_months} + weekly: wekelijks + from: vanaf + last: laatste + every_day: elke dag + the_xth_day_of_month: de %{x} %{day} van %{month} + times: voor %{number} keer + every_year_on: elk jaar op %{date} + first: eerste + show: Tonen + day_names: + - zondag + - maandag + - dinsdag + - woensdag + - donderdag + - vrijdag + - zaterdag + on_work_days: op werkdagen + fourth: vierde + due: Deadline + until: tot + every_month: elke maand + yearly_every_x_day: Elke %{month} %{day} + recurrence_on_options: Stel herhaling in op + daily_every_number_day: Elke %{number} dag(en) + show_options: Toon de actie + ends_on: Eindigt op + weekly_every_number_week: Herhaalt elke %{number} weken op + yearly_options: Instellingen voor jaarlijks terugkerende acties + show_days_before: "%{days} dagen v\xC3\xB3\xC3\xB3r de deadline van actie" + from_tickler: de datum dat de actie uit de tickler komt (geen deadline ingesteld) + yearly_every_xth_day: De %{day} %{day_of_week} van %{month} + no_end_date: Geen einddatum + day_x_on_every_x_month: Dag %{day} op elke %{month} maand + yearly: Jaarlijks + monthly_every_xth_day: De %{day} %{day_of_week} van elke %{month} maand + tagged_page_title: TRACKS::Tagged met '%{tag_name}' no_completed_recurring: Momenteel zijn er geen voltooide terugkerende acties added_dependency: "%{dependency} als afhankelijkheid toegevoegd." + all_completed_tagged_page_title: "TRACKS:: Alle afgeronde acties met tag %{tag_name}" no_deferred_actions: Momenteel zijn er geen uitgestelde acties. + completed_rest_of_month: Afgerond in de rest van deze maand recurrence_completed: Er is geen volgende actie na de terugkerende actie die u zojuist hebt voltooid. De herhaling is voltooid - in_pending_state: in wachtende toestand no_actions_found: Momenteel zijn er geen onafgeronde acties. + in_pending_state: in wachtende toestand error_toggle_complete: Kon deze actie niet als afgerond markeren due: Deadline - action_marked_complete_error: "De actie '%{description}' is niet gemarkeerd als %{completed} vanwege een fout op de server." - add_new_recurring: Voeg een nieuwe terugkerende actie toe - recurring_action_saved: Terugkerende actie opgeslagen - action_saved_to_tickler: Actie opgeslagen in tickler - depends_on_separate_with_commas: Afhankelijk van (gescheiden door komma's) + action_marked_complete_error: De actie '%{description}' is niet gemarkeerd als %{completed} vanwege een fout op de server. completed_in_archive: one: Er is een voltooide actie in het archief. other: Er zijn %{count} afgeronde acties in het archief. + no_incomplete_actions: Er zijn geen onvoltooide acties + depends_on_separate_with_commas: Afhankelijk van (gescheiden door komma's) + action_saved_to_tickler: Actie opgeslagen in tickler + recurring_action_saved: Terugkerende actie opgeslagen to_tickler: naar tickler next_actions_description_additions: completed: in de afgelopen %{count} dagen due_date: met een deadline %{due_date} of eerder overdue: Achterstallig - no_incomplete_actions: Er zijn geen onvoltooide acties + add_new_recurring: Voeg een nieuwe terugkerende actie toe notes: + delete_item_title: Verwijder item delete_note_title: Verwijder de notitie '%{id}' delete_confirmation: Weet u zeker dat u de notitie '%{id}' wilt verwijderen? - delete_item_title: Verwijder item + deleted_note: Verwijder notitie '%{id}' note_link_title: Toon notitie %{id} show_note_title: Toon notitie - deleted_note: Verwijder notitie '%{id}' note_location_link: "In:" edit_item_title: Item bewerken - note_header: Notitie %{id} no_notes_available: "Momenteel zijn er geen notities: voeg notities toe aan projecten vanaf de individuele project pagina's." + note_header: Notitie %{id} delete_note_confirm: Weet u zeker dat u de notitie '%{id}' wilt verwijderen? + states: + hidden_plural: Verborgen + completed: Afgerond + completed_plural: Afgeronde + visible_plural: Zichtbare + active_plural: Actieve + visible: Zichtbaar + hidden: Verborgen + active: Actief + time: + am: ochtend + formats: + default: "%A, %d %B %Y %H:%M:%S %z" + time: "%H:%M" + short: "%d %B %H:%M" + month_day: "%d %B" + long: "%A, %d. %B %Y, %H:%M" + pm: middag projects: - default_context_set: Stel project standaard context in op %{default_context} - no_actions_in_project: Momenteel zijn er geen onafgeronde acties in dit project deferred_actions: Uitgestelde acties voor dit project was_marked_hidden: is gemarkeerd als verborgen edit_project_title: Bewerk project default_tags_removed_notice: De standaard tags zijn verwijderd + default_context_set: Stel project standaard context in op %{default_context} + no_actions_in_project: Momenteel zijn er geen onafgeronde acties in dit project hide_form: Verberg formulier page_title: "TRACKS:: Project: %{project}" this_project: Dit project @@ -560,80 +591,63 @@ nl: to_new_project_page: Ga naar de nieuwe projectpagina no_notes_attached: Momenteel zijn er geen notities toegevoegd aan dit project deferred_actions_empty: Er zijn geen uitgestelde acties voor dit project + no_last_completed_projects: Geen afgeronde projecten gevonden notes: Notities todos_append: in dit project + no_projects: Momenteel zijn er geen projecten hide_form_title: Verberg nieuw project formulier notes_empty: Er zijn geen notities voor dit project - no_projects: Momenteel zijn er geen projecten with_no_default_context: zonder standaard context delete_project: Project verwijderen completed_actions_empty: Er zijn nog geen afgeronde acties voor dit project - show_form: Toevoegen van een project - actions_in_project_title: Acties in dit project delete_project_confirmation: Weet u zeker dat u wilt het project '%{name} wilt verwijderen? with_default_context: met een standaard context '%{context_name}' + show_form: Toevoegen van een project + actions_in_project_title: Acties in dit project + add_project: Voeg project toe + set_default_tags_notice: Stel project standaard tags in op %{default_tags} settings: Instellingen - add_note: Een notitie toevoegen with_default_tags: en met '%{tags}' als de standaard tags + list_projects: "TRACKS:: Overzicht van projecten" + project_saved_status: Project opgeslagen + add_note: Een notitie toevoegen is_active: is actief completed_projects: Voltooide projecten - add_project: Voeg project toe - list_projects: "TRACKS:: Overzicht van projecten" - set_default_tags_notice: Stel project standaard tags in op %{default_tags} - project_saved_status: Project opgeslagen hidden_projects: Verborgen projecten delete_project_title: Verwijder het project - was_marked_complete: is gemarkeerd als voltooid - completed_actions: Afgeronde acties voor dit project default_context_removed: Standaard context verwijderd add_note_submit: Notitie toevoegen + completed_actions: Afgeronde acties voor dit project + was_marked_complete: is gemarkeerd als voltooid + default_context: De standaard context voor dit project is %{context} active_projects: Actieve projecten status_project_name_changed: Naam van het project werd gewijzigd no_default_context: Dit project heeft geen standaard context with_no_default_tags: en zonder standaard tags - default_context: De standaard context voor dit project is %{context} state: Dit project is %{state} edit_project_settings: Bewerk project instellingen - time: - am: ochtend - formats: - default: "%A, %d %B %Y %H:%M:%S %z" - time: "%H:%M" - short: "%d %B %H:%M" - long: "%A, %d. %B %Y, %H:%M" - month_day: "%d %B" - pm: middag - states: - hidden_plural: Verborgen - completed: Afgerond - completed_plural: Afgeronde - visible_plural: Zichtbare - active_plural: Actieve - visible: Zichtbaar - active: Actief - hidden: Verborgen + errors: + user_unauthorized: "401 Unauthorized: Alleen administratieve gebruikers mogen deze functie gebruiken." preferences: - change_identity_url: Verander uw Identity URL - open_id_url: Uw OpenID URL is staleness_starts_after: Markeren openstaande acties begint na %{days} dagen + open_id_url: Uw OpenID URL is + change_identity_url: Verander uw Identity URL change_password: Wijzig uw wachtwoord page_title: "TRACKS:: Voorkeuren" title: Uw voorkeuren token_description: Token (voor feeds en API gebruik) - show_number_completed: Toon %{number} voltooide items is_false: Nee + show_number_completed: Toon %{number} voltooide items edit_preferences: Voorkeuren bewerken page_title_edit: "TRACKS:: Voorkeuren bewerken" is_true: Ja sms_context_none: Geen generate_new_token: Genereer een nieuwe token token_header: Uw token - change_authentication_type: Verander uw authenticatietype current_authentication_type: Uw authenticatietype is %{auth_type} authentication_header: Uw authenticatie + change_authentication_type: Verander uw authenticatietype generate_new_token_confirm: Weet u dit zeker? Het genereren van een nieuw token zal de bestaande te vervangen en dit zal het extern gebruiken van de oude token laten mislukken. - errors: - user_unauthorized: "401 Unauthorized: Alleen administratieve gebruikers mogen deze functie gebruiken." date: month_names: - @@ -649,6 +663,10 @@ nl: - Oktober - November - December + order: + - :day + - :month + - :year abbr_day_names: - Zo - Ma @@ -657,16 +675,12 @@ nl: - Do - Vr - Za - order: - - :day - - :month - - :year formats: only_day: "%e" default: "%d-%m-%Y" short: "%e %b" - long: "%e %B %Y" month_day: "%B %d" + long: "%e %B %Y" day_names: - Zondag - Maandag @@ -696,6 +710,22 @@ nl: two_words_connector: en select: prompt: Selecteer + footer: + send_feedback: Stuur reactie op %{version} + shared: + multiple_next_actions: Meerdere acties (een op elke regel) + toggle_single: Voeg een actie toe + hide_form: Verberg formulier + add_action: Actie toevoegen + add_actions: Toevoegen acties + tags_for_all_actions: Tags voor alle acties (scheiden met een komma) + toggle_single_title: Voeg een nieuwe actie toe + project_for_all_actions: Project voor alle acties + context_for_all_actions: Context voor alle acties + toggle_multi: Voeg meerdere acties toe + separate_tags_with_commas: gescheiden door komma's + toggle_multi_title: Toggle single / multi actie formulier + hide_action_form_title: Verberg nieuwe actie formulier dates: month_names: - Januari @@ -718,75 +748,35 @@ nl: - Donderdag - Vrijdag - Zaterdag - footer: - send_feedback: Stuur reactie op %{version} - shared: - multiple_next_actions: Meerdere acties (een op elke regel) - toggle_single: Voeg een actie toe - hide_form: Verberg formulier - add_action: Actie toevoegen - add_actions: Toevoegen acties - tags_for_all_actions: Tags voor alle acties (scheiden met een komma) - toggle_single_title: Voeg een nieuwe actie toe - project_for_all_actions: Project voor alle acties - context_for_all_actions: Context voor alle acties - toggle_multi: Voeg meerdere acties toe - separate_tags_with_commas: gescheiden door komma's - toggle_multi_title: Toggle single / multi actie formulier - hide_action_form_title: Verberg nieuwe actie formulier - feedlist: - choose_context: Kies de context waar je een feed van wilt - actions_due_today: Acties die vandaag of eerder af moeten - legend: Legenda - all_contexts: Alle contexten - rss_feed: RSS Feed - ical_feed: iCal feed - choose_project: Kies het project waar je een feed van wilt - all_projects: Alle projecten - project_needed: "Er moet ten minste \xC3\xA9\xC3\xA9n project zijn voor een feed opgevraagd kan worden" - select_feed_for_project: Kies de feed voor dit project - active_projects_wo_next: Actieve projecten zonder acties - active_starred_actions: Alle gesterde, actieve acties - select_feed_for_context: Kies de feed voor deze context - projects_and_actions: Actieve projecten met hun acties - context_needed: "Er moet eerst ten minste \xC3\xA9\xC3\xA9n context zijn voor je een feed kan opvragen" - notice_incomplete_only: "Merk op: alle feeds laten alleen acties zien die niet afgerond zijn, tenzij anders vermeld." - actions_due_next_week: Acties die binnen 7 dagen afgerond moeten - all_actions: Alle acties - actions_completed_last_week: Acties afgerond in de afgelopen 7 dagen - context_centric_actions: Feeds voor onafgeronde acties in een specifieke context - plain_text_feed: Reguliere tekst feed - last_fixed_number: Laatste %{number} acties - project_centric: Feeds voor onafgeronde acties in een specifiek project users: - failed_to_delete_user: Mislukt de gebruiker %{username} te verwijderen - openid_url_verified: Je hebt %{url} met succes geverifieerd als je identiteit en uw authenticatie type OpenID opgeslagen. auth_type_update_error: "Er was een probleem met het bijwerken van uw authenticatietype: %{error_messages}" - successfully_deleted_user: Succesvol gebruiker %{username} verwijderd destroy_successful: Gebruiker %{login} met succes verwijderd + successfully_deleted_user: Succesvol gebruiker %{username} verwijderd total_contexts: Totaal aantal contexten + failed_to_delete_user: Mislukt de gebruiker %{username} te verwijderen first_user_heading: "Welkom bij TRACKS. Om te beginnen, maak dan een admin account:" + openid_url_verified: Je hebt %{url} met succes geverifieerd als je identiteit en uw authenticatie type OpenID opgeslagen. new_token_generated: Nieuwe token met succes gegenereerd total_projects: Totaal aantal projecten signup_successful: Aanmelding succesvol voor gebruiker %{username}. change_password_submit: Wachtwoord wijzigen no_signups_title: "TRACKS:: Geen nieuwe aanmeldingen" user_created: Gebruiker aangemaakt. - password_updated: Wachtwoord bijgewerkt. - account_signup: Aanmelden voor een account manage_users: Beheren gebruikers - desired_login: Gewenste login + account_signup: Aanmelden voor een account + password_updated: Wachtwoord bijgewerkt. confirm_password: Bevestig wachtwoord - signup: Aanmelden new_user_heading: "Registreer een nieuwe gebruiker:" + signup: Aanmelden auth_type_updated: Authenticatietype bijgewerkt. total_actions: Totaal aanal acties - destroy_error: Er is een fout opgetreden bij het verwijderen van de gebruiker '%{login}' - choose_password: Kies een wachtwoord - change_password_title: TRACKS::Wachtwoord wijzigen + desired_login: Gewenste login change_auth_type_title: TRACKS::Wijzig authenticatietype change_password_prompt: Voer uw nieuwe wachtwoord in de onderstaande velden in en kies 'Wachtwoord wijzigen' om uw huidige wachtwoord met uw nieuwe te vervangen. password_confirmation_label: Bevestig wachtwoord + destroy_error: Er is een fout opgetreden bij het verwijderen van de gebruiker '%{login}' + choose_password: Kies een wachtwoord + change_password_title: TRACKS::Wachtwoord wijzigen label_auth_type: Authenticatietype new_password_label: Nieuw wachtwoord register_with_cas: Met uw CAS gebruikersnaam @@ -795,12 +785,36 @@ nl: total_users_count: Je hebt een totaal van %{count} gebruikers destroy_confirmation: "Waarschuwing: dit zal de gebruiker '%{login} verwijderen met al zijn acties, contexten, projecten en notities. Weet u zeker dat u wilt doorgaan?" signup_new_user: Registreer nieuwe gebruiker - change_authentication_type: Wijzigen authenticatietype - auth_change_submit: Wijzigen authenticatietype - identity_url: Identiteit URL openid_ok_pref_failed: Je hebt succesvol de %{url} geverifieerd als je identiteit, maar er was een probleem met het opslaan van uw authenticatie voorkeuren. + change_authentication_type: Wijzigen authenticatietype + identity_url: Identiteit URL + auth_change_submit: Wijzigen authenticatietype total_notes: Totaal aantal notities select_authentication_type: Selecteer uw nieuwe authenticatie type en klik op 'Wijzigen authenticatietype' om uw huidige instellingen te vervangen. + feedlist: + choose_context: Kies de context waar je een feed van wilt + actions_due_today: Acties die vandaag of eerder af moeten + legend: Legenda + rss_feed: RSS Feed + ical_feed: iCal feed + all_contexts: Alle contexten + choose_project: Kies het project waar je een feed van wilt + all_projects: Alle projecten + project_needed: "Er moet ten minste \xC3\xA9\xC3\xA9n project zijn voor een feed opgevraagd kan worden" + select_feed_for_project: Kies de feed voor dit project + active_projects_wo_next: Actieve projecten zonder acties + active_starred_actions: Alle gesterde, actieve acties + projects_and_actions: Actieve projecten met hun acties + context_needed: "Er moet eerst ten minste \xC3\xA9\xC3\xA9n context zijn voor je een feed kan opvragen" + select_feed_for_context: Kies de feed voor deze context + actions_due_next_week: Acties die binnen 7 dagen afgerond moeten + notice_incomplete_only: "Merk op: alle feeds laten alleen acties zien die niet afgerond zijn, tenzij anders vermeld." + plain_text_feed: Reguliere tekst feed + last_fixed_number: Laatste %{number} acties + all_actions: Alle acties + actions_completed_last_week: Acties afgerond in de afgelopen 7 dagen + context_centric_actions: Feeds voor onafgeronde acties in een specifieke context + project_centric: Feeds voor onafgeronde acties in een specifiek project sidebar: list_name_active_contexts: Actieve contexten list_name_active_projects: Actieve projecten @@ -819,19 +833,19 @@ nl: no_contexts_active: Momenteel zijn er geen actieve contexten context_hide: Verberg van de start pagina? hidden_contexts: Verborgen contexten - show_form: Maak een nieuwe context visible_contexts: Zichtbare contexten save_status_message: Context bewaard + show_form: Maak een nieuwe context add_context: Context toevoegen context_name: Context naam update_status_message: Naam van de context was veranderd - new_context_post: "' zal ook gemaakt worden. Weet u dit zeker?" status_active: Context is actief - no_actions: Momenteel zijn er geen onafgeronde acties in deze context + new_context_post: "' zal ook gemaakt worden. Weet u dit zeker?" last_completed_in_context: in deze context (laatste %{number}) context_deleted: De context '%{name}' is verwijderd no_contexts_hidden: Momenteel zijn er geen verborgen contexten new_context_pre: Nieuwe context ' + no_actions: Momenteel zijn er geen onafgeronde acties in deze context status_hidden: Context is verborgen datetime: prompts: @@ -879,10 +893,10 @@ nl: other: over %{count} jaren half_a_minute: halve minuut login: + login_cas: Ga naar het CAS openid_identity_url_not_found: Sorry, geen gebruiker met die identiteit URL bestaat (%{identity_url}) user_no_expiry: Blijf ingelogd sign_in: Meld aan - login_cas: Ga naar het CAS cas_login: CAS Inloggen successful_with_session_info: "Login succesvol:" please_login: Log in om Tracks te gebruiken @@ -899,14 +913,14 @@ nl: option_separator: of, session_time_out: Sessie is verlopen. Gelieve %{link} login_standard: Ga terug naar de standaard login - login_with_openid: inloggen met een OpenID - unsuccessful: Login mislukt. log_in_again: opnieuw in te loggen. logged_out: Je bent afgemeld bij Tracks. + login_with_openid: inloggen met een OpenID + unsuccessful: Login mislukt. search: contexts_matching_query: Contexten passend bij zoekopdracht tags_matching_query: Tags passend bij zoekopdracht - notes_matching_query: Notities passend bij zoekopdracht - no_results: Uw zoekopdracht heeft geen resultaten opgeleverd. todos_matching_query: Todos passend bij zoekopdracht projects_matching_query: Projecten passend bij zoekopdracht + notes_matching_query: Notities passend bij zoekopdracht + no_results: Uw zoekopdracht heeft geen resultaten opgeleverd. diff --git a/config/routes.rb b/config/routes.rb index e1fd8c5d..830e4f63 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -36,6 +36,8 @@ ActionController::Routing::Routes.draw do |map| # routed to mobile view of tags. todos.tag 'todos/tag/:name.m', :action => "tag", :format => 'm' todos.tag 'todos/tag/:name', :action => "tag", :name => /.*/ + todos.done_tag 'todos/done/tag/:name', :action => "done_tag" + todos.all_done_tag 'todos/all_done/tag/:name', :action => "all_done_tag" todos.tags 'tags.autocomplete', :action => "tags", :format => 'autocomplete' todos.auto_complete_for_predecessor 'auto_complete_for_predecessor', :action => 'auto_complete_for_predecessor' diff --git a/features/step_definitions/container_steps.rb b/features/step_definitions/container_steps.rb index b3228384..76216a7d 100644 --- a/features/step_definitions/container_steps.rb +++ b/features/step_definitions/container_steps.rb @@ -60,6 +60,61 @@ Then /^I should not see "([^"]*)" in the context container for "([^"]*)"$/ do |t end end +Then /^I should see "([^"]*)" in the deferred container$/ do |todo_description| + todo = @current_user.todos.find_by_description(todo_description) + todo.should_not be_nil + + xpath = "//div[@id='tickler']//div[@id='line_todo_#{todo.id}']" + + wait_for :timeout => 5 do + selenium.is_element_present(xpath) + end +end + +Then /^I should see "([^"]*)" in the action container$/ do |todo_description| + todo = @current_user.todos.find_by_description(todo_description) + todo.should_not be_nil + + xpath = "//div[@id='p#{todo.project.id}items']//div[@id='line_todo_#{todo.id}']" + + wait_for :timeout => 5 do + selenium.is_element_present(xpath) + end +end + +Then /^I should see "([^"]*)" in the completed container$/ do |todo_description| + todo = @current_user.todos.find_by_description(todo_description) + todo.should_not be_nil + + xpath = "//div[@id='completed_container']//div[@id='line_todo_#{todo.id}']" + + wait_for :timeout => 5 do + selenium.is_element_present(xpath) + end +end + +Then /^I should not see "([^"]*)" in the deferred container$/ do |todo_description| + todo = @current_user.todos.find_by_description(todo_description) + todo.should_not be_nil + + xpath = "//div[@id='tickler']//div[@id='line_todo_#{todo.id}']" + + wait_for :timeout => 5 do + !selenium.is_element_present(xpath) + end +end + +Then /^I should see "([^"]*)" in the due next month container$/ do |todo_description| + todo = @current_user.todos.find_by_description(todo_description) + todo.should_not be_nil + + xpath = "//div[@id='due_after_this_month']//div[@id='line_todo_#{todo.id}']" + + wait_for :timeout => 5 do + selenium.is_element_present(xpath) + end +end + Then /^I should see "([^"]*)" in project container for "([^"]*)"$/ do |todo_description, project_name| todo = @current_user.todos.find_by_description(todo_description) todo.should_not be_nil @@ -75,19 +130,25 @@ end Then /^I should see "([^"]*)" in the active recurring todos container$/ do |repeat_pattern| repeat = @current_user.recurring_todos.find_by_description(repeat_pattern) - repeat.should_not be_nil - xpath = "//div[@id='active_recurring_todos_container']//div[@id='recurring_todo_#{repeat.id}']" - selenium.wait_for_element("xpath=#{xpath}", :timeout_in_seconds => 5) - selenium.is_visible(xpath).should be_true + unless repeat.nil? + xpath = "//div[@id='active_recurring_todos_container']//div[@id='recurring_todo_#{repeat.id}']" + selenium.wait_for_element("xpath=#{xpath}", :timeout_in_seconds => 5) + selenium.is_visible(xpath).should be_true + else + Then "I should not see \"#{repeat_pattern}\"" + end end Then /^I should not see "([^"]*)" in the completed recurring todos container$/ do |repeat_pattern| repeat = @current_user.recurring_todos.find_by_description(repeat_pattern) - repeat.should_not be_nil - - xpath = "//div[@id='completed_recurring_todos_container']//div[@id='recurring_todo_#{repeat.id}']" - selenium.wait_for_element("xpath=#{xpath}", :timeout_in_seconds => 5) - selenium.is_visible(xpath).should be_true + + unless repeat.nil? + xpath = "//div[@id='completed_recurring_todos_container']//div[@id='recurring_todo_#{repeat.id}']" + selenium.wait_for_element("xpath=#{xpath}", :timeout_in_seconds => 5) + selenium.is_visible(xpath).should be_true + else + Then "I should not see \"#{repeat_pattern}\"" + end end diff --git a/features/step_definitions/generic_steps.rb b/features/step_definitions/generic_steps.rb index 4b876ad2..41513295 100644 --- a/features/step_definitions/generic_steps.rb +++ b/features/step_definitions/generic_steps.rb @@ -2,6 +2,10 @@ Given /this is a pending scenario/ do pending end +Given /^I set the locale to "([^"]*)"$/ do |locale| + @locale = locale +end + Given /^I am working on the mobile interface$/ do @mobile_interface = true end @@ -11,7 +15,7 @@ Then /the badge should show (.*)/ do |number| xpath= "//span[@id='badge_count']" if response.respond_to? :selenium - response.should have_xpath(xpath) + response.should have_xpath(xpath) badge = response.selenium.get_text("xpath=#{xpath}").to_i else response.should have_xpath(xpath) do |node| diff --git a/features/step_definitions/todo_steps.rb b/features/step_definitions/todo_steps.rb index ad4eb612..f77d41c8 100644 --- a/features/step_definitions/todo_steps.rb +++ b/features/step_definitions/todo_steps.rb @@ -33,10 +33,6 @@ Given /^I have ([0-9]+) deferred todos$/ do |count| end end -Given /^I have a deferred todo "([^"]*)"$/ do |description| - Given "I have a deferred todo \"#{description}\" in the context \"context B\"" -end - Given /^I have a deferred todo "([^"]*)" in the context "([^"]*)"$/ do |description, context_name| context = @current_user.contexts.find_or_create(:name => context_name) todo = @current_user.todos.create!(:context_id => context.id, :description => description) @@ -44,23 +40,40 @@ Given /^I have a deferred todo "([^"]*)" in the context "([^"]*)"$/ do |descript todo.save! end +Given /^I have a deferred todo "([^"]*)"$/ do |description| + Given "I have a deferred todo \"#{description}\" in the context \"context B\"" +end + Given /^I have ([0-9]+) completed todos in project "([^"]*)" in context "([^"]*)"$/ do |count, project_name, context_name| - context = @current_user.contexts.find_by_name(context_name) - context.should_not be_nil - - project = @current_user.projects.find_by_name(project_name) - project.should_not be_nil - + @context = @current_user.contexts.find_by_name(context_name) + @context.should_not be_nil + + @project = @current_user.projects.find_by_name(project_name) + @project.should_not be_nil + + @todos = [] count.to_i.downto 1 do |i| - todo = @current_user.todos.create!(:context_id => context.id, :description => "todo #{i}", :project_id => project.id) - todo.complete! + @todo = @current_user.todos.create!(:context_id => @context.id, :description => "todo #{i}", :project_id => @project.id) + @todo.complete! + @todos << @todo end end +Given /^I have a completed todo "([^"]*)" in project "([^"]*)" in context "([^"]*)"$/ do |action_description, project_name, context_name| + Given "I have 1 completed todos in project \"#{project_name}\" in context \"#{context_name}\"" + @todos[0].description = action_description + @todos[0].save! +end + +Given /^I have (\d+) completed todos in project "([^"]*)" in context "([^"]*)" with tags "([^"]*)"$/ do |count, project_name, context_name, tags| + Given "I have #{count} completed todos in project \"#{project_name}\" in context \"#{context_name}\"" + @todos.each { |t| t.tag_with(tags); t.save! } +end + Given /^I have ([0-9]+) completed todos in context "([^"]*)"$/ do |count, context_name| context = @current_user.contexts.find_by_name(context_name) context.should_not be_nil - + count.to_i.downto 1 do |i| todo = @current_user.todos.create!(:context_id => context.id, :description => "todo #{i}") todo.complete! @@ -73,11 +86,13 @@ Given /^I have ([0-9]+) completed todos$/ do |count| end Given /^I have ([0-9]+) completed todos with a note$/ do |count| - context = @current_user.contexts.find_or_create(:name => "context D") - count.to_i.downto 1 do |i| - todo = @current_user.todos.create!(:context_id => context.id, :description => "todo #{i}", :notes => "note #{i}") - todo.complete! - end + Given "I have #{count} completed todos" + @todos.each { |t| t.notes = "note #{t.id}"; t.save!} +end + +Given /^I have ([0-9]+) completed todos with a note in project "([^"]*)" in context "([^"]*)" with tags "([^"]*)"$/ do |count, project_name, context_name, tags| + Given "I have #{count} completed todos in project \"#{project_name}\" in context \"#{context_name}\" with tags \"#{tags}\"" + @todos.each { |t| t.notes = "note #{t.id}"; t.save! } end Given /^I have a todo with description "([^"]*)" in project "([^"]*)" with tags "([^"]*)" in the context "([^"]*)"$/ do |action_description, project_name, tags, context_name| @@ -146,10 +161,14 @@ When /^I mark "([^"]*)" as uncompleted$/ do |action_description| todo_container = "p#{todo.project_id}items" if @source_view=="project" todo_container = "c#{todo.context_id}items" if @source_view=="context" || @source_view=="todos" || @source_view=="tag" - todo_container.should_not == "fail" + todo_container.should_not == "fail" unless @source_view=="done" - wait_for :timeout => 5 do - selenium.is_element_present("//div[@id='#{todo_container}']//div[@id='line_todo_#{todo.id}']") + unless @source_view=="done" + wait_for :timeout => 5 do + selenium.is_element_present("//div[@id='#{todo_container}']//div[@id='line_todo_#{todo.id}']") + end + else + wait_for_ajax end end @@ -157,7 +176,6 @@ When /^I mark the complete todo "([^"]*)" active$/ do |action_description| When "I mark \"#{action_description}\" as uncompleted" end - When /^I star the action "([^"]*)"$/ do |action_description| todo = @current_user.todos.find_by_description(action_description) todo.should_not be_nil @@ -175,6 +193,24 @@ When /^I star the action "([^"]*)"$/ do |action_description| end end +When /^I unstar the action "([^"]*)"$/ do |action_description| + todo = @current_user.todos.find_by_description(action_description) + todo.should_not be_nil + + xpath_unstarred = "//div[@id='line_todo_#{todo.id}']//img[@class='unstarred_todo']" + xpath_starred = "//div[@id='line_todo_#{todo.id}']//img[@class='starred_todo']" + + selenium.is_element_present(xpath_starred).should be_true + + star_img = "//img[@id='star_img_#{todo.id}']" + selenium.click(star_img, :wait_for => :ajax, :javascript_framework => :jquery) + + wait_for :timeout => 5 do + selenium.is_element_present(xpath_unstarred) + end +end + + Then /^I should see a starred "([^"]*)"$/ do |action_description| todo = @current_user.todos.find_by_description(action_description) todo.should_not be_nil @@ -184,6 +220,18 @@ Then /^I should see a starred "([^"]*)"$/ do |action_description| selenium.is_element_present(xpath_starred).should be_true end +Then /^I should see an unstarred "([^"]*)"$/ do |action_description| + todo = @current_user.todos.find_by_description(action_description) + todo.should_not be_nil + + xpath_starred = "//div[@id='line_todo_#{todo.id}']//img[@class='unstarred_todo']" + + wait_for :timeout => 5 do + selenium.is_element_present(xpath_starred) + end +end + + When /^I delete the action "([^"]*)"$/ do |action_description| todo = @current_user.todos.find_by_description(action_description) todo.should_not be_nil @@ -231,61 +279,6 @@ Then /^a confirmation for adding a new context "([^"]*)" should be asked$/ do |c selenium.get_confirmation.should == "New context '#{context_name}' will be also created. Are you sure?" end -Then /^I should see "([^"]*)" in the deferred container$/ do |todo_description| - todo = @current_user.todos.find_by_description(todo_description) - todo.should_not be_nil - - xpath = "//div[@id='tickler']//div[@id='line_todo_#{todo.id}']" - - wait_for :timeout => 5 do - selenium.is_element_present(xpath) - end -end - -Then /^I should see "([^"]*)" in the action container$/ do |todo_description| - todo = @current_user.todos.find_by_description(todo_description) - todo.should_not be_nil - - xpath = "//div[@id='p#{todo.project.id}items']//div[@id='line_todo_#{todo.id}']" - - wait_for :timeout => 5 do - selenium.is_element_present(xpath) - end -end - -Then /^I should see "([^"]*)" in the completed container$/ do |todo_description| - todo = @current_user.todos.find_by_description(todo_description) - todo.should_not be_nil - - xpath = "//div[@id='completed_container']//div[@id='line_todo_#{todo.id}']" - - wait_for :timeout => 5 do - selenium.is_element_present(xpath) - end -end - -Then /^I should not see "([^"]*)" in the deferred container$/ do |todo_description| - todo = @current_user.todos.find_by_description(todo_description) - todo.should_not be_nil - - xpath = "//div[@id='tickler']//div[@id='line_todo_#{todo.id}']" - - wait_for :timeout => 5 do - !selenium.is_element_present(xpath) - end -end - -Then /^I should see "([^"]*)" in the due next month container$/ do |todo_description| - todo = @current_user.todos.find_by_description(todo_description) - todo.should_not be_nil - - xpath = "//div[@id='due_after_this_month']//div[@id='line_todo_#{todo.id}']" - - wait_for :timeout => 5 do - selenium.is_element_present(xpath) - end -end - Then /^the selected project should be "([^"]*)"$/ do |content| # Works for mobile. TODO: make it work for both mobile and non-mobile field_labeled("Project").element.search(".//option[@selected = 'selected']").inner_html.should =~ /#{content}/ diff --git a/features/support/paths.rb b/features/support/paths.rb index 3eaea682..5703b413 100644 --- a/features/support/paths.rb +++ b/features/support/paths.rb @@ -7,24 +7,47 @@ module NavigationHelpers # def path_to(page_name) options = @mobile_interface ? {:format => :m} : {} + options.merge({:locale => @locale}) unless @locale.blank? + puts "@@@ l=#{@locale} sv = #{@source_view}- #{options}" @source_view = nil case page_name when /the home\s?page/ @source_view = "todos" root_path(options) + when /the done page/ + @source_view = "done" done_overview_path(options) when /the done actions page for context "([^"]*)"/i + @source_view = "done" context = @current_user.contexts.find_by_name($1) - done_todos_context_path(context) + done_todos_context_path(context, options) when /the done actions page for project "([^"]*)"/i + @source_view = "done" project = @current_user.projects.find_by_name($1) - done_todos_project_path(project) + done_todos_project_path(project, options) + when /the done actions page for tag "([^"]*)"/i + @source_view = "done" + done_tag_path($1, options) when /the done actions page/ + @source_view = "done" done_todos_path(options) + when /the all done actions page for context "([^"]*)"/i + @source_view = "done" + context = @current_user.contexts.find_by_name($1) + all_done_todos_context_path(context, options) + when /the all done actions page for project "([^"]*)"/i + @source_view = "done" + project = @current_user.projects.find_by_name($1) + all_done_todos_project_path(project, options) + when /the all done actions page for tag "([^"]*)"/i + @source_view = "done" + all_done_tag_path($1, options) when /the all done actions page/ + @source_view = "done" all_done_todos_path(options) + when /the statistics page/ @source_view = "stats" stats_path(options) diff --git a/features/view_done.feature b/features/view_done.feature index 35fc4a44..6a9e4dcb 100644 --- a/features/view_done.feature +++ b/features/view_done.feature @@ -8,79 +8,81 @@ Feature: Show done | login | password | is_admin | | testuser | secret | false | And I have logged in as "testuser" with password "secret" - And I have 1 completed todos with a note + And I have a context called "@pc" + And I have a project called "test project" + And I have 1 completed todos in project "test project" in context "@pc" with tags "starred" Scenario: Visit done overview page When I go to the done page Then I should see "Last Completed Actions" And I should see "Last Completed Projects" And I should see "Last Completed Repeating Actions" - - Scenario: Home page links to show all completed todos - When I go to the home page + + Scenario Outline: Page with actions links to show all completed actions + When I go to the Then I should see "Completed actions" And I should see "Show all" When I follow "Show all" - Then I should be on the done actions page + Then I should be on the + + Scenarios: + | page | next page | + | home page | done actions page | + | context page for "@pc" | done actions page for context "@pc" | + | "test project" project | done actions page for project "test project" | + | tag page for "starred" | done actions page for tag "starred" | Scenario Outline: I can see all todos completed in the last timeperiod - Given I have a context called "@pc" - And I have a project called "test" - And I have 1 completed todos in project "test" in context "@pc" When I go to the Then I should see "todo 1" And I should see "Completed today" And I should see "Completed in the rest of this week" And I should see "Completed in the rest of this month" - + Scenarios: - | page | - | done actions page | - | done actions page for context "@pc" | - | done actions page for project "test" | - - Scenario: I can see all todos completed - When I go to the done actions page + | page | + | done actions page | + | done actions page for context "@pc" | + | done actions page for project "test project" | + | done actions page for tag "starred" | + + Scenario Outline: I can see all todos completed + When I go to the And I should see "You can see all completed actions here" When I follow "here" - Then I should be on the all done actions page - - Scenario: I can browse all todos completed by page - Given I have 50 completed todos with a note - When I go to the all done actions page + Then I should be on the + + Scenarios: + | page | other page | + | done actions page | all done actions page | + | done actions page for project "test project" | all done actions page for project "test project" | + | done actions page for context "@pc" | all done actions page for context "@pc" | + | done actions page for tag "starred" | all done actions page for tag "starred" | + + Scenario Outline: I can browse all todos completed by page + Given I have 50 completed todos with a note in project "test project" in context "@pc" with tags "starred" + When I go to the Then I should see the page selector When I follow "2" - Then I should be on the all done actions page + Then I should be on the And the page should be "2" - - Scenario: The context page for a context shows a link to all completed actions - Given I have a context called "@pc" - And I have 1 completed todos in context "@pc" - When I go to the context page for "@pc" - Then I should see "Completed actions" - And I should see "Show all" - When I follow "Show all" - Then I should be on the done actions page for context "@pc" - Scenario: The project page for a project shows a link to all completed actions - Given I have a context called "@pc" - And I have a project called "test" - And I have 1 completed todos in project "test" in context "@pc" - When I go to the "test" project - Then I should see "Completed actions" - And I should see "Show all" - When I follow "Show all" - Then I should be on the done actions page for project "test" + Scenarios: + | page | + | all done actions page | + | all done actions page for project "test project" | + | all done actions page for context "@pc" | + | all done actions page for tag "starred" | Scenario: The projects page shows a link to all completed projects Given I have a completed project called "finished" When I go to the projects page - Then I should see "finished" + Then I should see "finished" And I should see "Show all" When I follow "Show all" Then I should be on the done projects page And I should see "finished" - + Scenario: I can browse all completed projects by page Given I have 40 completed projects When I go to the projects page @@ -95,12 +97,12 @@ Feature: Show done Scenario: The recurring todos page shows a link to all completed recurring todos Given I have a completed repeat pattern "finished" When I go to the recurring todos page - Then I should see "finished" + Then I should see "finished" And I should see "Show all" When I follow "Show all" Then I should be on the done recurring todos page And I should see "finished" - + Scenario: I can browse all completed recurring todos by page Given I have 40 completed repeat patterns When I go to the recurring todos page @@ -110,31 +112,98 @@ Feature: Show done When I follow "2" Then I should be on the done recurring todos page And the page should be "2" - + @selenium Scenario: I can toggle a done recurring todo active from done page - Given I have a completed repeat pattern "test" + Given I have a completed repeat pattern "test pattern" When I go to the done recurring todos page - Then I should see "test" - When I mark the pattern "test" as active - Then I should not see "test" in the completed recurring todos container + Then I should see "test pattern" + When I mark the pattern "test pattern" as active + Then I should not see "test pattern" in the completed recurring todos container When I go to the recurring todos page - Then I should see "test" in the active recurring todos container + Then I should see "test pattern" in the active recurring todos container + @selenium Scenario: I can delete a recurring todo from the done page - Given this scenario is pending - - Scenario: I can toggle a todo active from the done page - Given this scenario is pending + Given I have a completed repeat pattern "test pattern" + When I go to the done recurring todos page + Then I should see "test pattern" + When I delete the pattern "test pattern" + Then I should not see "test pattern" in the completed recurring todos container + When I go to the recurring todos page + Then I should see "test pattern" in the active recurring todos container - Scenario: I can toggle a todo active from the all done page - Given this scenario is pending - - Scenario: I can toggle a todo active from the project done page - Given this scenario is pending + @selenium @wip + Scenario Outline: I can toggle a todo active from the done pages + When I go to the + Then I should see "todo 1" + When I mark the complete todo "todo 1" active + Then I should not see "todo 1" + When I go to the + Then I should see "todo 1" in the context container for "@pc" - Scenario: I can toggle a todo active from the context done page - Given this scenario is pending + Scenarios: + | page | next page | + | done actions page | home page | + | all done actions page | home page | + | done actions page for context "@pc" | context page for "@pc" | + | done actions page for project "test project" | "test project" project | + | done actions page for tag "starred" | home page | + | all done actions page for context "@pc" | context page for "@pc" | + | all done actions page for project "test project"| "test project" project | + | all done actions page for tag "starred" | home page | + @selenium + Scenario Outline: I can toggle the star of a todo from the done pages + When I go to the + Then I should see a starred "todo 1" + When I unstar the action "todo 1" + Then I should see an unstarred "todo 1" + + Scenarios: + | page | + | done actions page | + | all done actions page | + | done actions page for context "@pc" | + | done actions page for project "test project" | + | done actions page for tag "starred" | + | all done actions page for context "@pc" | + | all done actions page for project "test project"| + | all done actions page for tag "starred" | + + @selenium Scenario: I can edit a project to active from the project done page Given this scenario is pending + + @wip + Scenario Outline: All pages are internationalized + Given I set the locale to "" + When I go to the + Then I should not see "translation missing" + + Scenarios: + | page | locale | + | done actions page | en | + | all done actions page | en | + | done actions page for context "@pc" | en | + | done actions page for project "test project" | en | + | done actions page for tag "starred" | en | + | all done actions page for context "@pc" | en | + | all done actions page for project "test project"| en | + | all done actions page for tag "starred" | en | + | done actions page | nl | + | all done actions page | nl | + | done actions page for context "@pc" | nl | + | done actions page for project "test project" | nl | + | done actions page for tag "starred" | nl | + | all done actions page for context "@pc" | nl | + | all done actions page for project "test project"| nl | + | all done actions page for tag "starred" | nl | + | done actions page | de | + | all done actions page | de | + | done actions page for context "@pc" | de | + | done actions page for project "test project" | de | + | done actions page for tag "starred" | de | + | all done actions page for context "@pc" | de | + | all done actions page for project "test project"| de | + | all done actions page for tag "starred" | de | From 8109391f89f8223c87df01e2a883f2af0bf9e5b3 Mon Sep 17 00:00:00 2001 From: Reinier Balt Date: Sat, 9 Jul 2011 14:53:37 +0200 Subject: [PATCH 060/197] fix cucumber stories including test for i18n --- config/locales/de.yml | 363 +++++----- config/locales/es.yml | 749 +++++++++++---------- config/locales/nl.yml | 385 +++++------ features/step_definitions/generic_steps.rb | 5 + features/support/paths.rb | 4 +- features/view_done.feature | 21 +- 6 files changed, 796 insertions(+), 731 deletions(-) diff --git a/config/locales/de.yml b/config/locales/de.yml index 5def709a..094815a7 100644 --- a/config/locales/de.yml +++ b/config/locales/de.yml @@ -3,6 +3,7 @@ de: layouts: toggle_notes: Notizen umschalten next_actions_rss_feed: RSS-Feed kommende Aufgaben + toggle_notes_title: Alle Notizen umschalten mobile_navigation: logout: Abmelden feeds: Feeds @@ -12,10 +13,9 @@ de: tickler: Notizbuch contexts: 2-Kontexte home: 1-Home - toggle_notes_title: Alle Notizen umschalten navigation: - manage_users_title: "Benutzer hinzuf\xC3\xBCgen oder entfernen" recurring_todos: Sich wiederholende To-Dos + manage_users_title: "Benutzer hinzuf\xC3\xBCgen oder entfernen" api_docs: REST API Docs feeds: Feeds starred: Markiert @@ -24,16 +24,16 @@ de: tickler_title: Notizbuch manage_users: Benutzer verwalten export_title: Daten importieren und exportieren - integrations_: Tracks integrieren preferences: Einstellungen + integrations_: Tracks integrieren feeds_title: "Liste der verf\xC3\xBCgbaren Feeds anzeigen" calendar_title: "Kalender mit \xC3\xBCberf\xC3\xA4lligen Aufgaben" - starred_title: Markierte Aufgaben betrachten + home_title: Start tickler: Notizbuch + starred_title: Markierte Aufgaben betrachten recurring_todos_title: Sich wiederholende To-Dos verwalten completed_tasks: Erledigt stats_title: Statistiken anzeigen - home_title: Start organize: Organisieren view: Betrachten completed_tasks_title: "Vollst\xC3\xA4ndig" @@ -82,8 +82,8 @@ de: opensearch_description: In Tracks suchen applescript_next_action_prompt: "Beschreibung der n\xC3\xA4chsten Aufgabe:" gmail_description: "Gadget, um Tracks als Gadget zu Googlemail hinzuzuf\xC3\xBCgen" - applescript_success_after_id: erstellt applescript_success_before_id: "N\xC3\xA4chste neue Aufgabe mit ID" + applescript_success_after_id: erstellt common: back: "Zur\xC3\xBCck" third: Dritte @@ -93,50 +93,50 @@ de: previous: Vorherige logout: Abmelden go_back: "Zur\xC3\xBCck" - week: Woche cancel: Abbrechen + week: Woche none: Keine second: Zweite - month: Monat optional: optional + month: Monat notes: Notizen forum: Forum server_error: Auf dem Server ist ein Fehler aufgetreten. last: Letzte - action: Aktion projects: Projekte + action: Aktion project: Projekt contribute: Mitwirken ok: Ok website: Website - first: Erste numbered_step: Schritt %{number} - errors_with_fields: "Mit folgenden Feldern sind Probleme aufgetreten:" + first: Erste + fourth: Vierte sort: by_task_count_title: Nach Anzahl der Aufgaben sortieren by_task_count_title_confirm: Sollen diese Projekte wirklich nach Anzahl der Aufgaben sortiert werden? Die bisherige Sortier-Reihenfolge wird damit überschrieben. alphabetically: Alphabetisch alphabetically_title: Projekte alphabetisch sortieren - sort: Sortieren alphabetically_confirm: Sollen diese Projekte wirklich alphabetisch sortiert werden? Die bisherige Sortier-Reihenfolge wird damit überschrieben. + sort: Sortieren by_task_count: Nach Anzahl der Aufgaben - fourth: Vierte create: Erstellen months: Monate - todo: Aktione - contexts: Kontexte context: Kontext + contexts: Kontexte + todo: Aktione next: "N\xC3\xA4chste" + errors_with_fields: "Mit folgenden Feldern sind Probleme aufgetreten:" description: Beschreibung drag_handle: Verschieben + bugs: Bugs update: Aktualisieren weeks: Woche - bugs: Bugs forth: Vierte wiki: Wiki - ajaxError: Fehler beim Empfangen vom Server search: Suchen email: E-Mail + ajaxError: Fehler beim Empfangen vom Server models: project: feed_title: Tracks-Projekte @@ -171,19 +171,19 @@ de: show_hidden_projects_in_sidebar: Zeige Versteckte Projekte in der Sidebar show_hidden_contexts_in_sidebar: "Zeige Versteckte Zusammenh\xC3\xA4nge in der Sidebar" date_format: Datum Format - staleness_starts: Anfang des Abgestandenheit - mobile_todos_per_page: Aufgaben pro Seite (Mobile Version) verbose_action_descriptors: "Ausf\xC3\xBChrlich Aktion Deskriptoren" sms_context: Standard-E-Mail-Kontext - show_number_completed: "Zeige Zahl der abgeschlossenen Ma\xC3\x9Fnahmen" + staleness_starts: Anfang des Abgestandenheit + mobile_todos_per_page: Aufgaben pro Seite (Mobile Version) title_date_format: Titel Datumsformat + show_number_completed: "Zeige Zahl der abgeschlossenen Ma\xC3\x9Fnahmen" refresh: Aktualisierungsintverall (in Minuten) week_starts: Woche startet am - time_zone: Zeit Zone due_style: "F\xC3\xA4llig stijl" + time_zone: Zeit Zone locale: Zahle - show_project_on_todo_done: Zur Projektseite wechseln, wenn To-Do abgeschlossen sms_email: Per E-Mail + show_project_on_todo_done: Zur Projektseite wechseln, wenn To-Do abgeschlossen show_completed_projects_in_sidebar: Zeige abgeschlossene Projekte in der Sidebar user: last_name: Nachname @@ -206,8 +206,8 @@ de: exclusion: "ist nicht verf\xC3\xBCgbar" odd: muss ungerade sein too_short: ist zu kurz (nicht weniger als %{count} Zeichen) - wrong_length: "hat die falsche L\xC3\xA4nge (muss genau %{count} Zeichen haben)" empty: "muss ausgef\xC3\xBCllt werden" + wrong_length: "hat die falsche L\xC3\xA4nge (muss genau %{count} Zeichen haben)" even: muss gerade sein less_than: muss kleiner als %{count} sein greater_than: "muss gr\xC3\xB6\xC3\x9Fer als %{count} sein" @@ -228,18 +228,16 @@ de: import_successful: Import war erfolgreich. import_errors: Beim Import sind Fehler aufgetreten. stats: + tag_cloud_title: Tag-Cloud aller Aktionen + tag_cloud_description: Diese Tag-Cloud beinhaltet Tags aller Aktionen (abgeschlossen, nicht abgeschlossen, sichtbar und/oder unsichtbar) + actions: Aktionen tag_cloud_90days_title: Tag-Cloud-Aktionen in den letzten 90 Tagen totals_active_project_count: Von diesen sind %{count} aktive Projekte - tag_cloud_title: Tag-Cloud aller Aktionen - actions: Aktionen - tag_cloud_description: Diese Tag-Cloud beinhaltet Tags aller Aktionen (abgeschlossen, nicht abgeschlossen, sichtbar und/oder unsichtbar) actions_avg_completion_time: Durchschnittlich hast du %{count} Tage gebraucht, um eine Aktion abzuschliessen. actions_last_year_legend: number_of_actions: Anzahl Aktionen months_ago: Monate zuvor totals_first_action: Seit deiner ersten Aktion am %{date} - totals_action_count: hattest du insgesamt %{count} Aktionen - totals_deferred_actions: "von denen %{count} im Notizbuch zur\xC3\xBCckgestellt sind" legend: number_of_days: Anzahl vergangene Tage actions: Aktionen @@ -250,49 +248,51 @@ de: months_ago: Monate zuvor top10_longrunning: "Top 10 der am l\xC3\xA4ngsten laufenden Projekte" actions_dow_30days_title: Wochentag (letzte 30 Tage) + totals_action_count: hattest du insgesamt %{count} Aktionen current_running_time_of_incomplete_visible_actions: "Aktuelle Laufzeit unvollst\xC3\xA4ndiger sichtbarer Aufgaben" + totals_deferred_actions: "von denen %{count} im Notizbuch zur\xC3\xBCckgestellt sind" running_time_legend: actions: Aufgaben percentage: Prozentsatz weeks: "Vergangene Zeit einer Aktion (Wochen). Klick auf eine Leiste f\xC3\xBCr mehr Informationen." - top5_contexts: Top 5 aller Kontexte - actions_lastyear_title: Aktionen der letzten 12 Monate - totals_actions_completed: "%{count} davon sind abgeschlossen." totals_incomplete_actions: "Du hast %{count} unvollst\xC3\xA4ndige Aktionen" totals_unique_tags: Von diesen Tags sind %{count} einmalig.. actions_avg_completed_30days: und %{count} durchschnittlich davon erledigt. + top5_contexts: Top 5 aller Kontexte + actions_lastyear_title: Aktionen der letzten 12 Monate + totals_actions_completed: "%{count} davon sind abgeschlossen." + actions_last_year: Aktionen im letzten Jahr + totals_context_count: Du hast %{count} Kontexte. totals_visible_context_count: Von diesen sind %{count} sichtbare Kontexte + projects: Projekte totals_blocked_actions: "%{count} h\xC3\xA4ngen vom Abschluss anderer Aktionen ab." action_completion_time_title: Fertigstellungszeit (alle abgeschlossenen Aktionen) - actions_last_year: Aktionen im letzten Jahr - projects: Projekte - totals_context_count: Du hast %{count} Kontexte. - actions_day_of_week_title: Wochentag (alle Aktionen) - totals_project_count: Du hast %{count} Projekte. actions_min_max_completion_days: "Das Minimum/Maximum an Tagen einer Vervollst\xC3\xA4ndigung ist %{min}/%{max}." actions_min_completion_time: "Die minimale Zeit betr\xC3\xA4gt %{time}." no_tags_available: "keine Tags verf\xC3\xBCgbar" + actions_day_of_week_title: Wochentag (alle Aktionen) + totals_project_count: Du hast %{count} Projekte. tags: Tags - tag_cloud_90days_description: Diese Tag-Cloud beinhaltet Tags der Aktionen, die in den letzten 90 Tagen erstellt oder abgeschlossen wurden. actions_further: und danach + totals_tag_count: Du hast %{count} Tags in Aktionen. running_time_all: "Aktuelle Laufzeit aller unvollst\xC3\xA4ndigen Aktionen." + actions_30days_title: _Aktionen der letzten 30 Tage time_of_day: Tageszeit (alle Aktionen) + totals_hidden_project_count: "%{count} sind versteckt" tod30: Tageszeit (letzte 30 Tage) more_stats_will_appear: "Weitere Statistiken werden verf\xC3\xBCgbar, wenn einige Aufgaben hinzugef\xC3\xBCgt wurden." + tag_cloud_90days_description: Diese Tag-Cloud beinhaltet Tags der Aktionen, die in den letzten 90 Tagen erstellt oder abgeschlossen wurden. top5_visible_contexts_with_incomplete_actions: "Top 5 der sichtbaren Kontexte mit unvollst\xC3\xA4ndigen Aktionen" - totals_tag_count: Du hast %{count} Tags in Aktionen. - actions_30days_title: _Aktionen der letzten 30 Tage - totals_hidden_project_count: "%{count} sind versteckt" totals_completed_project_count: und %{count} sind abgeschlossene Projekte. + click_to_return: "Klick auf %{link} um zur Statistikseite zur\xC3\xBCckzukehren." top10_projects_30days: Top-10-Projekt der letzten 30 Tage + spread_of_running_actions_for_visible_contexts: Verteilung der laufenden Aufgaben aller sichtbaren Kontexte actions_selected_from_week: "Aktionen ausgew\xC3\xA4hlt ab Woche" + spread_of_actions_for_all_context: Aufgabenverteilung aller Kontexte click_to_show_actions_from_week: Klick auf %{link} um die Aktionen von Woche %{week} und danach anzuzeigen. + other_actions_label: (andere) top10_projects: Top 10 aller Projekte actions_avg_created: In den letzten 12 Monaten hast du im Durchschnitt %{count} Aktionen erstellt - click_to_return: "Klick auf %{link} um zur Statistikseite zur\xC3\xBCckzukehren." - spread_of_running_actions_for_visible_contexts: Verteilung der laufenden Aufgaben aller sichtbaren Kontexte - spread_of_actions_for_all_context: Aufgabenverteilung aller Kontexte - other_actions_label: (andere) actions_avg_completed: und %{count} durchschnittlich davon monatlich erledigt totals: Ingesamt time_of_day_legend: @@ -301,7 +301,6 @@ de: contexts: Kontexte click_to_return_link: hier totals_hidden_context_count: und %{count} sind versteckte Kontexte. - no_actions_selected: "Es sind keine Aufgaben ausgew\xC3\xA4hlt." click_to_update_actions: Klicke auf eine Leiste in der Grafik um die Aktionen unten zu aktualisieren. labels: month_avg_completed: "%{months} Monat durchschnittlich fertig gestellt" @@ -310,6 +309,7 @@ de: avg_created: Durchschnittlich erstellt avg_completed: Durchschnittlich fertiggestellt created: Erstellt + no_actions_selected: "Es sind keine Aufgaben ausgew\xC3\xA4hlt." running_time_all_legend: actions: Aktionen percentage: Prozentsatz @@ -320,17 +320,17 @@ de: time_of_day: Tageszeit action_selection_title: TRACKS::Aktionsauswahl todos: + completed_actions: Erledigte Aufgaben show_from: Anzeigen ab dem error_starring_recurring: Konnte die Hervorhebung der wiederkehrenden Aufgabe \'%{description}\' nicht durchführen recurring_action_deleted: Die Aktion wurde gelöscht. Da dies eine wiederkehrende Aktion ist, wurde eine neue erstellt. - completed_actions: Erledigte Aufgaben completed_rest_of_previous_month: Fertiggestellt den Rest des Vormonats - blocked_by: Blockiert durch %{predecessors} completed_recurring: Abgeschlossene wiederkehrende To-Dos added_new_next_action: Neue Aktion angelegt - defer_date_after_due_date: "Zur\xC3\xBCckstellungsdatum nach Ablaufdatum. Bitte passe das Ablaufdatum an, dass es vor dem Zur\xC3\xBCckstellungsdatum liegt." - star_action: Aktion markieren + blocked_by: Blockiert durch %{predecessors} completed_recurrence_completed: Es gibt keine weitere Aktion nach der soeben gelöschten. Die Wiederholung ist abgeschlossen. + star_action: Aktion markieren + defer_date_after_due_date: "Zur\xC3\xBCckstellungsdatum nach Ablaufdatum. Bitte passe das Ablaufdatum an, dass es vor dem Zur\xC3\xBCckstellungsdatum liegt." unable_to_add_dependency: Abhängigkeit nicht hinzufügbar done: Erledigt? star_action_with_description: Aktion '%{description}' markieren @@ -338,68 +338,68 @@ de: completed: Erledigt no_deferred_actions_with: "Keine zur\xC3\xBCckgestellten Aktionen mit dem Tag '%{tag_name}'" no_hidden_actions: Momentan sind keine versteckten Aufgaben vorhanden - action_due_on: "(Aktion f\xC3\xA4llig am %{date})" edit_action_with_description: Aktion '%{description}' bearbeiten + action_due_on: "(Aktion f\xC3\xA4llig am %{date})" tags: Tags (Komma-separiert) archived_tasks_title: TRACKS::Archivierte erledigte Aufgaben remove_dependency: Abhängigkeit löschen (löscht nicht die Aufgabe) list_incomplete_next_actions: Unerledigte Folge-Aufgaben anzeigen action_deleted_success: Die nächste Aktion erfolgreich gelöscht - add_another_dependency: "F\xC3\xBCgen Sie eine andere Abh\xC3\xA4ngigkeit" + mobile_todos_page_title: Alle Aufgaben new_related_todo_created: "Eine neue To-Do wurde hinzugef\xC3\xBCgt, die zu dieser wiederkehrenden To-Do geh\xC3\xB6rt" context_changed: Kontext zu %{name} gewechselt - mobile_todos_page_title: Alle Aufgaben + add_another_dependency: "F\xC3\xBCgen Sie eine andere Abh\xC3\xA4ngigkeit" delete_recurring_action_title: "Wiederkehrende Aktion '%{description}' l\xC3\xB6schen" - recurring_actions_title: TRACKS::Wiederkehrende Aktionen removed_predecessor: "%{successor} entfernt als Abh\xC3\xA4ngigkeit von %{predecessor}." + recurring_actions_title: TRACKS::Wiederkehrende Aktionen next_action_needed: Es muss mindestens eine folgende Aktion angelegt werden - scheduled_overdue: "Planm\xC3\xA4\xC3\x9Fig angezeigt vor %{days} Tagen" action_saved: Aktion gespeichert + scheduled_overdue: "Planm\xC3\xA4\xC3\x9Fig angezeigt vor %{days} Tagen" action_deleted_error: Fehler beim Löschen der Aufgabe edit_action: Aktion bearbeiten added_new_context: "Neuer Kontext hinzugef\xC3\xBCgt" next_actions_description: "Filter:" - older_completed_items: "Ältere erledigte Aufgaben" - list_incomplete_next_actions_with_limit: Zeige die letzten %{count} unerledigten Folge-Aufgaben - set_to_pending: "%{task} als ausstehend markiert" - added_new_project: "Neues Projekt hinzugef\xC3\xBCgt" next_actions_title_additions: completed: Aufgaben erledigt due_today: heute fällig due_within_a_week: diese Woche fällig - task_list_title: TRACKS::Aufgaben anzeigen - append_in_this_project: in diesem Projekt + list_incomplete_next_actions_with_limit: Zeige die letzten %{count} unerledigten Folge-Aufgaben + set_to_pending: "%{task} als ausstehend markiert" + added_new_project: "Neues Projekt hinzugef\xC3\xBCgt" + older_completed_items: "Ältere erledigte Aufgaben" error_deleting_item: Beim Löschen von %{description} trat ein Fehler auf + append_in_this_project: in diesem Projekt + task_list_title: TRACKS::Aufgaben anzeigen no_actions_due_this_week: Keine zu erledigenden Aufgaben für den Rest der Woche - error_completing_todo: Beim Abschliessen/Aktivieren der wiederkehrenden To-Do %{description} ist ein Fehler aufgetreten no_recurring_todos: Im Augenblick gibt es keine wiederkehrenden To-Dos + error_completing_todo: Beim Abschliessen/Aktivieren der wiederkehrenden To-Do %{description} ist ein Fehler aufgetreten recurring_pattern_removed: Das Wiederauftreten Muster ist aus entfernt %{count} convert_to_project: In Projekt umwandeln no_deferred_pending_actions: Momentan sind keine aufgeschobenen oder ausstehenden Aufgaben vorhanden. - delete_recurring_action_confirm: Soll die wiederkehrende Aktion '%{description}' wirklich gelöscht werden? completed_last_day: In den letzten 24 Stunden erledigt - no_project: --Kein Projekt-- + delete_recurring_action_confirm: Soll die wiederkehrende Aktion '%{description}' wirklich gelöscht werden? show_in_days: Anzeigen in %{days} Tagen + no_project: --Kein Projekt-- error_saving_recurring: Es gab einen Fehler beim Speichern der wiederkehrenden todo '%{description}' completed_more_than_x_days_ago: Vor mehr als %{count} Tagen erledigt - new_related_todo_created_short: hat einen neuen todo - feed_title_in_context: im Kontext '%{context}' all_completed: Alle abgeschlossenen Aktionen + feed_title_in_context: im Kontext '%{context}' + new_related_todo_created_short: hat einen neuen todo older_than_days: "Älter als %{count} Tage" completed_tagged_page_title: "TRACKS:: Erledigte Aufgaben mit Tag %{tag_name}" edit: Bearbeiten pending: Ausstehend completed_actions_with: Abgeschlossene Aktionen mit dem Tag %{tag_name} - feed_title_in_project: im Projekt '%{project}' deleted_success: "Die Aktion wurde erfolgreich gel\xC3\xB6scht." completed_tasks_title: TRACKS::Erledigte Aufgaben + feed_title_in_project: im Projekt '%{project}' clear_due_date: Fälligkeitsdatum leeren error_removing_dependency: "Beim Entfernen der Abh\xC3\xA4ngigkeit ist ein Fehler aufgetreten" hidden_actions: Verstecke Aufgaben - deferred_actions_with: "Zur\xC3\xBCckgestellte Aktionen mit dem Tag '%{tag_name}'" was_due_on_date: war am %{date} fällig show_on_date: Anzeigen am %{date} recurrence_period: Wiederholungszeitraum + deferred_actions_with: "Zur\xC3\xBCckgestellte Aktionen mit dem Tag '%{tag_name}'" confirm_delete: "Bist du sicher, dass du die Aktion '%{description}' l\xC3\xB6schen m\xC3\xB6chtest?" recurring_deleted_success: "Die wiederkehrende Aktion wurde erfolgreich gel\xC3\xB6scht." next_actions_title: TRACKS::Weitere Aufgaben @@ -407,17 +407,17 @@ de: deferred_tasks_title: TRACKS::Notizbuch no_completed_actions_with: Keine abgeschlossenen Aktionen mit dem Tag '%{tag_name}' clear_show_from_date: Datum leeren + unresolved_dependency: "Der Wert, den Sie in die Abh\xC3\xA4ngigkeit Feld eingegeben nicht zu einer bestehenden Aktion zu l\xC3\xB6sen. Dieser Wert wird nicht mit dem Rest der Aktion gerettet werden. Weiter gehen?" calendar_page_title: TRACKS::Kalender in_hidden_state: als versteckt markiert - unresolved_dependency: "Der Wert, den Sie in die Abh\xC3\xA4ngigkeit Feld eingegeben nicht zu einer bestehenden Aktion zu l\xC3\xB6sen. Dieser Wert wird nicht mit dem Rest der Aktion gerettet werden. Weiter gehen?" + show_today: Heute anzeigen + no_actions_found_title: Keine Aktionen gefunden next_actions_due_date: overdue_by: "\xC3\x9Cberf\xC3\xA4llig mit %{days} Tag" due_today: "Heute f\xC3\xA4llig" due_in_x_days: "F\xC3\xA4llig in %{days} Tagen" overdue_by_plural: "\xC3\x9Cberf\xC3\xA4llig mit %{days} Tagen" due_tomorrow: "F\xC3\xA4llig morgen" - show_today: Heute anzeigen - no_actions_found_title: Keine Aktionen gefunden completed_last_x_days: In den letzten %{count} Tagen erledigt no_actions_with: "Im Augenblick gibt es keine unvollst\xC3\xA4ndigen Aktionen mit dem Tag '%{tag_name}'" defer_x_days: @@ -436,21 +436,20 @@ de: delete_action: "Aktion l\xC3\xB6schen" error_deleting_recurring: "Beim L\xC3\xB6schen der wiederkehrenden To-Do %{description} ist ein Fehler aufgetreten" delete: "L\xC3\xB6schen" - no_last_completed_actions: Keine abgeschlossene Aktionen gefunden drag_action_title: "Auf andere Aktion ziehen, um sie als Abh\xC3\xA4ngigkeit zu definieren" cannot_add_dependency_to_completed_todo: "Kann nicht hinzugef\xC3\xBCgt werden diese Aktion als eine Abh\xC3\xA4ngigkeit zu einer abgeschlossenen Aktion!" - action_marked_complete: Die Aktion '%{description}' wurde als %{completed} markiert. + no_last_completed_actions: Keine abgeschlossene Aktionen gefunden depends_on: "H\xC3\xA4ngt ab von" tickler_items_due: one: Ein Notizbuch-Eintrag ist nun fällig - lade die Seite neu, um sie zu sehen. other: "%{count} Notizbuch-Einträge sind nun fällig - lade die Seite neu, um sie zu sehen." - new_related_todo_not_created_short: nicht schaffen todo - completed_today: - one: Du hast heute bereits eine Aufgabe erledigt. - other: Du hast heute bereits %{count} Aufgaben erledigt. + action_marked_complete: Die Aktion '%{description}' wurde als %{completed} markiert. + completed_today: Heute Fertiggestellt added_new_next_action_plural: Neue weiterführende Aufgaben angelegt + new_related_todo_not_created_short: nicht schaffen todo completed_rest_of_week: Fertiggestellt den Rest dieser Woche error_starring: Konnte die Hervorhebung von \'%{description}\' nicht durchführen + show_tomorrow: Morgen anzeigen calendar: get_in_ical_format: Diesen Kalender im iCal Format herunterladen due_next_week: Nächste Woche fällig @@ -462,20 +461,19 @@ de: no_actions_due_after_this_month: Nach diesem Monat sind keine Aufgaben fällig due_this_month: Im %{month} fällig no_actions_due_this_month: Keine Aktionen für den Rest des Monats - show_tomorrow: Morgen anzeigen + tagged_page_title: TRACKS::Als '%{tag_name}' markiert recurrence: + ends_on_number_times: Endet nach %{number} Mal ends_on_date: Endet am %{date} every_work_day: Jeden Arbeitstag - ends_on_number_times: Endet nach %{number} Mal recurrence_on_due_date: Das Datum der To-Do ist verstrichen. weekly_options: "Einstellungen f\xC3\xBCr sich w\xC3\xB6chentlich wiederholende Aktionen" - monthly_options: "Einstellungen f\xC3\xBCr sich monatlich wiederholende Aktionen" weekly: "W\xC3\xB6chentlich" + monthly_options: "Einstellungen f\xC3\xBCr sich monatlich wiederholende Aktionen" daily_options: "Einstellungen f\xC3\xBCr sich t\xC3\xA4glich wiederholenden Aktionen" monthly: Monatlich starts_on: Beginnt am daily: "T\xC3\xA4glich" - show_option_always: immer pattern: third: Drittel month_names: @@ -495,18 +493,19 @@ de: - November - Dezember every_n: jeden %{n} - on_day_n: am Tag %{n} - second: zweite every_xth_day_of_every_n_months: "jedes %{x} %{day} jedes %{n_months} \xE2\x80\x8B" + second: zweite + on_day_n: am Tag %{n} weekly: "w\xC3\xB6chentlich" from: von last: zuletzt every_day: jeden Tag - the_xth_day_of_month: der %{x} %{day} von %{month} times: "f\xC3\xBCr %{number} Zeiten" - every_year_on: jedes Jahr in %{date} - first: erste + the_xth_day_of_month: der %{x} %{day} von %{month} show: Show + first: erste + every_year_on: jedes Jahr in %{date} + on_work_days: an Wochentagen day_names: - Sonntag - Montag @@ -515,59 +514,58 @@ de: - Donnerstag - Freitag - Samstag - on_work_days: an Wochentagen fourth: vierte due: "F\xC3\xA4llig" - until: bis every_month: jeden Monat + until: bis + show_option_always: immer yearly_every_x_day: "Jeden %{day}. %{month} " recurrence_on_options: Setze Wiederholung auf daily_every_number_day: Alle %{number} Tage show_options: To-Do anzeigen - ends_on: Endet am weekly_every_number_week: Kehrt jede %{number}. Woche wieder am + ends_on: Endet am yearly_options: "Einstellungen f\xC3\xBCr sich j\xC3\xA4hrlich wiederholende Aktionen" show_days_before: "%{days} Tage bevor die To-Do f\xC3\xA4llig ist" from_tickler: the date todo comes from tickler (no due date set) no_end_date: Kein Enddatum yearly_every_xth_day: Den %{day} %{day_of_week} des %{month} day_x_on_every_x_month: Tag %{day} in jedem %{month}. Monat - yearly: "J\xC3\xA4hrlich" monthly_every_xth_day: Der %{day} %{day_of_week} eines jeden %{month}. Monats - tagged_page_title: TRACKS::Als '%{tag_name}' markiert + yearly: "J\xC3\xA4hrlich" no_completed_recurring: Im Augenblick gibt es keine abgeschlossenen wiederkehrenden To-Dos added_dependency: "%{dependency} als Abhängigkeit hinzugefügt." all_completed_tagged_page_title: "TRACKS:: Alle erledigten Aufgaben mit Tag %{tag_name}" no_deferred_actions: Zur Zeit sind keine zurückgestellten Aktionen vorhanden. completed_rest_of_month: Fertiggestellt den Rest des Monats recurrence_completed: Nach dieser wiederkehrenden Aktion, die du gerade abgeschlossen hast, folgt keine mehr. Die Wiederholung endet hiermit - no_actions_found: "Momentan gibt es keine unvollst\xC3\xA4ndigen Aktionen." in_pending_state: und als ausstehend markiert + no_actions_found: "Momentan gibt es keine unvollst\xC3\xA4ndigen Aktionen." error_toggle_complete: "K\xC3\xB6nnte nicht diese Marke todo komplett" due: Fällig action_marked_complete_error: Die Aktion '%{description}' wurde aufgrund eines Fehlers NICHT als %{completed} markiert. + depends_on_separate_with_commas: Hängt ab von (Komma-separiert) + recurring_action_saved: Wiederkehrende Aktion gespeichert + action_saved_to_tickler: Aktion im Notizbuch gespeichert completed_in_archive: one: Es befindet sich eine erledigte Aufgabe im Archiv. other: Es befinden sich %{count} erledigte Aufgaben im Archiv. - no_incomplete_actions: Es gibt keine unerledigten Aufgaben - depends_on_separate_with_commas: Hängt ab von (Komma-separiert) - action_saved_to_tickler: Aktion im Notizbuch gespeichert - recurring_action_saved: Wiederkehrende Aktion gespeichert to_tickler: ", im Notizbuch hinterlegt" next_actions_description_additions: completed: In den letzten %{count} Tagen due_date: mit einem Datum %{due_date} oder früher overdue: "Überfällig" + no_incomplete_actions: Es gibt keine unerledigten Aufgaben add_new_recurring: "F\xC3\xBCge eine neue wiederkehrende Aktion hinzu" notes: + delete_confirmation: "Bist du sicher, dass du die Notiz '%{id}' l\xC3\xB6schen m\xC3\xB6chtest?" delete_item_title: Eintrag löschen delete_note_title: Notiz '%{id}' löschen - delete_confirmation: "Bist du sicher, dass du die Notiz '%{id}' l\xC3\xB6schen m\xC3\xB6chtest?" deleted_note: "Notiz '%{id}' l\xC3\xB6schen" note_link_title: Notiz %{id} anzeigen show_note_title: Notiz anzeigen - note_location_link: "In:" edit_item_title: Eintrag bearbeiten + note_location_link: "In:" no_notes_available: "Derzeit gibt es keine Notizen: f\xC3\xBCge Notizen von der jeweiligen Projektseite hinzu." note_header: Notiz %{id} delete_note_confirm: Soll die Notiz '%{id}' wirklich gelöscht werden? @@ -576,10 +574,10 @@ de: completed: Erledigt completed_plural: Erledigte visible_plural: Sichtbare - active_plural: Aktive visible: Sichtbar - active: Aktiv + active_plural: Aktive hidden: Versteckt + active: Aktiv time: am: vormittags formats: @@ -590,22 +588,24 @@ de: long: "%A, %d. %B %Y, %H:%M Uhr" pm: nachmittags projects: + default_context_set: Standard-Kontext des Projekts auf %{default_context} gesetzt + no_actions_in_project: "Momentan gibt es keine unvollst\xC3\xA4ndigen Aktionen in diesem Projekt" deferred_actions: "Aufgeschobene Aufgaben f\xC3\xBCr dieses Projekt" was_marked_hidden: wurde als verborgen markiert edit_project_title: Projekt bearbeiten default_tags_removed_notice: Standard-Tags entfernt - default_context_set: Standard-Kontext des Projekts auf %{default_context} gesetzt - no_actions_in_project: "Momentan gibt es keine unvollst\xC3\xA4ndigen Aktionen in diesem Projekt" - page_title: "TRACKS::Projekt: %{project}" hide_form: Fomular verstecken + page_title: "TRACKS::Projekt: %{project}" + all_completed_tasks_title: "TRACKS:: Alle auflisten Abgeschlossene Aktionen in Project '%{project_name}'" this_project: Dieses Projekt project_state: Projekt ist %{state} show_form_title: Neues Projekt anlegen + list_completed_projects: "TRACKS:: Liste Abgeschlossene Projekte" to_new_project_page: Zu neuem Projekt weiterleiten no_notes_attached: "Im Augenblick sind keine Notizen mit diesem Projekt verkn\xC3\xBCpft." deferred_actions_empty: "Es gibt keine aufgeschobenen Aufgaben f\xC3\xBCr dieses Projekt" - no_last_completed_projects: Keine abgeschlossene Projekte gefunden notes: Notizen + no_last_completed_projects: Keine abgeschlossene Projekte gefunden todos_append: an dieses Projekt no_projects: Keine Projekte vorhanden hide_form_title: Formular verstecken @@ -613,52 +613,53 @@ de: with_no_default_context: hat keinen Standardwert Kontext delete_project: Projekt löschen completed_actions_empty: "Es gibt keine erledigten Aufgaben f\xC3\xBCr dieses Projekt" - delete_project_confirmation: Soll das Projekt '%{name}' wirklich gelöscht werden? with_default_context: mit einem Standard-Rahmen von '%{context_name}' show_form: Projekt erstellen actions_in_project_title: Die Aktionen in diesem Projekt + delete_project_confirmation: Soll das Projekt '%{name}' wirklich gelöscht werden? + project_saved_status: Projekt gespeichert add_project: Projekt hinzufügen + add_note: "Notiz hinzuf\xC3\xBCgen" set_default_tags_notice: Standard-Tags des Projekts auf %{default_tags} setzen + is_active: ist aktiv settings: Einstellungen + completed_projects: Abgeschlossene Projekte with_default_tags: und mit '%{tags}' als Standard-Tags list_projects: TRACKS::Projektliste - project_saved_status: Projekt gespeichert - add_note: "Notiz hinzuf\xC3\xBCgen" - is_active: ist aktiv - completed_projects: Abgeschlossene Projekte - hidden_projects: Versteckte Projekte delete_project_title: Projekt löschen + completed_tasks_title: "TRACKS:: Liste Abgeschlossene Aktionen in Project '%{project_name}'" + hidden_projects: Versteckte Projekte default_context_removed: Standard-Kontext entfernt add_note_submit: "Notiz hinzuf\xC3\xBCgen" completed_actions: "Erledigte Aufgaben f\xC3\xBCr dieses Projekt" was_marked_complete: wurde als erledigt markiert + edit_project_settings: Edit Project Settings default_context: Der Standard-Kontext dieses Projektes ist %{context} active_projects: Aktive Projekte status_project_name_changed: "Projektname ge\xC3\xA4ndert" no_default_context: Dieses Projekt hat keinen Standard-Kontext - with_no_default_tags: und hat keinen Standardwert Tags state: Dieses Projekt ist %{state} - edit_project_settings: Edit Project Settings + with_no_default_tags: und hat keinen Standardwert Tags errors: user_unauthorized: "401 Unauthorized: Nur administrative Benutzer d\xC3\xBCrfen auf diese Funktion zugreifen." preferences: + change_identity_url: "\xC3\x84ndere deine Identit\xC3\xA4ts-URL" staleness_starts_after: Abgestandenheit startet nach %{days} Tagen open_id_url: "Deine OpenID-URL lautet:" - change_identity_url: "\xC3\x84ndere deine Identit\xC3\xA4ts-URL" change_password: "Passwort \xC3\xA4ndern" page_title: TRACKS::Einstellungen title: Deine Einstellungen token_description: "Token (f\xC3\xBCr die Verwendung in Feeds und der API)" is_false: Nein show_number_completed: "Zeige %{number} erledigte Eintr\xC3\xA4ge" + is_true: Ja edit_preferences: Einstellungen bearbeiten page_title_edit: "TRACKS::Einstellungen \xC3\xA4ndern" - is_true: Ja sms_context_none: Keine generate_new_token: Neues Token generieren token_header: Dein Token - current_authentication_type: Dein Authentifizierungsart ist %{auth_type} authentication_header: Deine Authentifizierung + current_authentication_type: Dein Authentifizierungsart ist %{auth_type} change_authentication_type: "Authentifzierungsart \xC3\xA4ndern" generate_new_token_confirm: "Bist du sicher? Wenn du ein neues Token generierst, wird dies das alte Token ersetzen und jegliche externe Nutzung st\xC3\xB6ren, die das alte Token verwendet." date: @@ -731,68 +732,25 @@ de: send_feedback: Senden Sie Feedback zu %{version} shared: multiple_next_actions: Mehrere neue Aufgaben (eine pro Zeile) - toggle_single: Weitere Aktion erstellen hide_form: Formular verstecken + toggle_single: Weitere Aktion erstellen add_action: "Aufgabe hinzuf\xC3\xBCgen" add_actions: "Aufgaben hinzuf\xC3\xBCgen" tags_for_all_actions: "Tags f\xC3\xBCr alle Aufgaben (mit Kommas trennen)" - toggle_single_title: Eine weitere Aktion hinzufügen - project_for_all_actions: "Projekt f\xC3\xBCr alle Aufgaben" context_for_all_actions: "Kontext f\xC3\xBCr alle Aufgaben" toggle_multi: "Mehrere neue Aufgabeneintr\xC3\xA4ge hinzuf\xC3\xBCgen" + toggle_single_title: Eine weitere Aktion hinzufügen + project_for_all_actions: "Projekt f\xC3\xBCr alle Aufgaben" separate_tags_with_commas: mit Kommas trennen toggle_multi_title: "Zwischen Einzel- und Mehrfachformular f\xC3\xBCr neue Aufgaben umschalten" hide_action_form_title: "Formular f\xC3\xBCr neue Aufgaben verstecken" - users: - auth_type_update_error: "Beim Ändern der Authentifizierung trat ein Fehler auf: %{error_messages}" - destroy_successful: "Benutzer %{login} wurde erfolgreich gel\xC3\xB6scht" - successfully_deleted_user: Benutzer %{username} erfolgreich gelöscht. - total_contexts: Alle Kontexte - failed_to_delete_user: Löschen des Benutzers %{username} fehlgeschlagen - first_user_heading: "Willkommen bei TRACKS. Als erstes legen Sie bitte einen Administrator-Zugang an:" - openid_url_verified: Die URL %{url} wurde erfolgreich als Identität verifiziert und Deine Authentifizierung auf OpenID umgestellt. - new_token_generated: Neuer Token erfolgreich generiert - total_projects: Alle Projekte - signup_successful: Benutzer %{username} erfolgreich angelegt. - change_password_submit: "Passwort \xC3\xA4ndern" - no_signups_title: TRACKS::Anmeldung nicht erlaubt - user_created: Benutzer angelegt. - manage_users: Benutzer verwalten - account_signup: Accounteinrichtung - password_updated: Passwort aktualisiert. - confirm_password: "Passwort best\xC3\xA4tigen" - new_user_heading: "Einen neuen Benutzer anlegen:" - signup: Registrieren - auth_type_updated: Authentifizierungs-Art erfolgreich geändert. - total_actions: Alle Aufgaben - desired_login: "Gew\xC3\xBCnschter Benutzername" - change_auth_type_title: TRACKS::Authentifizierungstyp ändern - change_password_prompt: "Gib dein neues Passwort in die unten stehenden Felder ein und klicke auf 'Passwort \xC3\xA4ndern' um dein altes Passwort durch das neue zu ersetzen." - password_confirmation_label: "Passwort best\xC3\xA4tigen" - destroy_error: "Beim L\xC3\xB6schen des Benutzers %{login} ist ein Fehler aufgetreten." - choose_password: "Passwort w\xC3\xA4hlen" - change_password_title: TRACKS::Passwort ändern - label_auth_type: Authentifizierungsart - new_password_label: Neues Passwort - register_with_cas: Mit deinem CAS-Benutzernamen - new_user_title: TRACKS::Als Administrator anmelden - destroy_user: "Benutzer l\xC3\xB6schen" - total_users_count: Derzeit existieren %{count} Benutzer - destroy_confirmation: "Achtung: der Benutzer '%{login}' wird mit all seinen Aufgaben, Kontexten, Projekten und Notizen gel\xC3\xB6scht. Bist du sicher, dass du fortfahren m\xC3\xB6chtest?" - signup_new_user: Neuen Benutzer anlegen - openid_ok_pref_failed: Die URL %{url} wurde erfolgreich als Identität verifiziert, beim Speichern der Einstellungen trat jedoch ein Fehler auf. - change_authentication_type: "Authentifizierungsart \xC3\xA4ndern" - identity_url: Identity-URL - auth_change_submit: "Authentifizierungsart \xC3\xA4ndern" - total_notes: Alle Notizen - select_authentication_type: "W\xC3\xA4hle deine neue Authentifizierungsart und klicke 'Authentifizierungsart \xC3\xA4ndern' an, um deine aktuellen Einstellungen zu \xC3\xBCberschreiben." feedlist: choose_context: "Kontext f\xC3\xBCr den Feed w\xC3\xA4hlen" actions_due_today: "Heute oder fr\xC3\xBCher f\xC3\xA4llig" - legend: "Legende:" - rss_feed: RSS-Feed ical_feed: iCal-Feed + legend: "Legende:" all_contexts: Alle Kontexte + rss_feed: RSS-Feed choose_project: "Projekt f\xC3\xBCr den Feed w\xC3\xA4hlen" all_projects: Alle Projekte project_needed: Es muss mindestens ein Projekt existieren, bevor ein Feed abonniert werden kann. @@ -802,24 +760,61 @@ de: projects_and_actions: Aktive Projekte und deren Aufgaben context_needed: Es muss mindestens ein Kontext existieren, bevor ein Feed abonniert werden kann. select_feed_for_context: "Feed f\xC3\xBCr diesen Kontext ausw\xC3\xA4hlen" - actions_due_next_week: "In den n\xC3\xA4chsten 7 Tagen oder fr\xC3\xBCher f\xC3\xA4llige Aufgaben" notice_incomplete_only: "Hinweis: Alle Feeds zeigen nur Aufgaben, die noch nicht als erledigt markiert wurden." + actions_due_next_week: "In den n\xC3\xA4chsten 7 Tagen oder fr\xC3\xBCher f\xC3\xA4llige Aufgaben" plain_text_feed: Plain-Text-Feed last_fixed_number: Die letzten %{number} Aufgaben all_actions: Alle Aufgaben actions_completed_last_week: In den letzten 7 Tagen abgeschlossene Aufgaben context_centric_actions: "Feeds f\xC3\xBCr unvollst\xC3\xA4ndige Aufgaben in einem bestimmten Kontext" project_centric: "Feeds f\xC3\xBCr unvollst\xC3\xA4ndige Aufgaben in einem bestimmten Kontext" - sidebar: - list_name_active_contexts: Aktive Kontexte - list_name_active_projects: Aktive Projekte - list_empty: Keine - list_name_completed_projects: Abgeschlossene Projekte - list_name_hidden_projects: Versteckte Projekte - list_name_hidden_contexts: Versteckte Kontexte + users: + total_contexts: Alle Kontexte + failed_to_delete_user: Löschen des Benutzers %{username} fehlgeschlagen + first_user_heading: "Willkommen bei TRACKS. Als erstes legen Sie bitte einen Administrator-Zugang an:" + auth_type_update_error: "Beim Ändern der Authentifizierung trat ein Fehler auf: %{error_messages}" + openid_url_verified: Die URL %{url} wurde erfolgreich als Identität verifiziert und Deine Authentifizierung auf OpenID umgestellt. + destroy_successful: "Benutzer %{login} wurde erfolgreich gel\xC3\xB6scht" + successfully_deleted_user: Benutzer %{username} erfolgreich gelöscht. + new_token_generated: Neuer Token erfolgreich generiert + total_projects: Alle Projekte + signup_successful: Benutzer %{username} erfolgreich angelegt. + change_password_submit: "Passwort \xC3\xA4ndern" + no_signups_title: TRACKS::Anmeldung nicht erlaubt + user_created: Benutzer angelegt. + account_signup: Accounteinrichtung + manage_users: Benutzer verwalten + password_updated: Passwort aktualisiert. + signup: Registrieren + confirm_password: "Passwort best\xC3\xA4tigen" + new_user_heading: "Einen neuen Benutzer anlegen:" + auth_type_updated: Authentifizierungs-Art erfolgreich geändert. + total_actions: Alle Aufgaben + desired_login: "Gew\xC3\xBCnschter Benutzername" + change_password_title: TRACKS::Passwort ändern + change_auth_type_title: TRACKS::Authentifizierungstyp ändern + change_password_prompt: "Gib dein neues Passwort in die unten stehenden Felder ein und klicke auf 'Passwort \xC3\xA4ndern' um dein altes Passwort durch das neue zu ersetzen." + password_confirmation_label: "Passwort best\xC3\xA4tigen" + destroy_error: "Beim L\xC3\xB6schen des Benutzers %{login} ist ein Fehler aufgetreten." + choose_password: "Passwort w\xC3\xA4hlen" + label_auth_type: Authentifizierungsart + new_password_label: Neues Passwort + register_with_cas: Mit deinem CAS-Benutzernamen + new_user_title: TRACKS::Als Administrator anmelden + destroy_user: "Benutzer l\xC3\xB6schen" + total_users_count: Derzeit existieren %{count} Benutzer + destroy_confirmation: "Achtung: der Benutzer '%{login}' wird mit all seinen Aufgaben, Kontexten, Projekten und Notizen gel\xC3\xB6scht. Bist du sicher, dass du fortfahren m\xC3\xB6chtest?" + signup_new_user: Neuen Benutzer anlegen + openid_ok_pref_failed: Die URL %{url} wurde erfolgreich als Identität verifiziert, beim Speichern der Einstellungen trat jedoch ein Fehler auf. + auth_change_submit: "Authentifizierungsart \xC3\xA4ndern" + identity_url: Identity-URL + change_authentication_type: "Authentifizierungsart \xC3\xA4ndern" + select_authentication_type: "W\xC3\xA4hle deine neue Authentifizierungsart und klicke 'Authentifizierungsart \xC3\xA4ndern' an, um deine aktuellen Einstellungen zu \xC3\xBCberschreiben." + total_notes: Alle Notizen contexts: delete_context_title: Kontext löschen hide_form: Formular verstecken + all_completed_tasks_title: "TRACKS:: Alle Abgeschlossene Ma\xC3\x9Fnahmen im context '%{context_name}'" show_form_title: Neuen Kontext erstellen delete_context_confirmation: Soll der Kontext '%{name}' wirklich gelöscht werden? Alle (wiederholenden) Aufgaben dieses Kontexts werden hierdurch ebenfalls gelöscht. delete_context: Kontext löschen @@ -828,20 +823,28 @@ de: no_contexts_active: Derzeit gibt es keine aktiven Kontexte context_hide: Auf Startseite ausblenden? hidden_contexts: Versteckte Kontexte - visible_contexts: Sichtbare Kontexte - show_form: Neuen Kontext erstellen save_status_message: Kontext gespeichert + show_form: Neuen Kontext erstellen add_context: "Kontext hinzuf\xC3\xBCgen" + visible_contexts: Sichtbare Kontexte context_name: Kontextname update_status_message: "Kontextname wurde ge\xC3\xA4ndert" + completed_tasks_title: "TRACKS:: Abgeschlossene Ma\xC3\x9Fnahmen im context '%{context_name}'" status_active: Kontext ist aktiv new_context_post: "' wird ebenfalls angelegt. Fortfahren?" + no_actions: "Momentan gibt es keine unvollst\xC3\xA4ndigen Aufgaben in diesem Kontext" last_completed_in_context: in diesem Kontext (letzte %{number}) context_deleted: "Gel\xC3\xB6schter Kontext '%{name}'" no_contexts_hidden: Derzeit gibt es keine versteckten Kontexte new_context_pre: Der neue Kontext ' - no_actions: "Momentan gibt es keine unvollst\xC3\xA4ndigen Aufgaben in diesem Kontext" status_hidden: Kontext ist versteckt + sidebar: + list_name_active_contexts: Aktive Kontexte + list_name_active_projects: Aktive Projekte + list_empty: Keine + list_name_completed_projects: Abgeschlossene Projekte + list_name_hidden_projects: Versteckte Projekte + list_name_hidden_contexts: Versteckte Kontexte datetime: prompts: minute: Minuten @@ -888,34 +891,34 @@ de: other: mehr als %{count} Jahre half_a_minute: eine halbe Minute login: - openid_identity_url_not_found: "Sorry, aber es existiert kein Benutzer mit der Identit\xC3\xA4ts-URL (%{identity_url})" login_cas: zum CAS gehen + openid_identity_url_not_found: "Sorry, aber es existiert kein Benutzer mit der Identit\xC3\xA4ts-URL (%{identity_url})" user_no_expiry: Angemeldet bleiben sign_in: Anmeldung + cas_logged_in_greeting: Hallo, %{username}! Du bist authentifiziert. + cas_no_user_found: Hallo, %{username}! Du hast leider keinen Tracks-Account. cas_login: CAS-Anmeldung successful_with_session_info: "Anmeldung erfolgreich:" please_login: Bitte melde dich an, um Tracks zu nutzen - cas_logged_in_greeting: Hallo, %{username}! Du bist authentifiziert. - cas_no_user_found: Hallo, %{username}! Du hast leider keinen Tracks-Account. cas_username_not_found: Sorry, aber es existiert kein Benutzer mit dem CAS-Benutzernamen (%{username}) - mobile_use_openid: "\xE2\x80\xA6oder mit einer OpenID anmelden" cas_create_account: "Wenn du die Anfrage fortsetzen m\xC3\xB6chtest, klicke bitte hier: %{signup_link}" + mobile_use_openid: "\xE2\x80\xA6oder mit einer OpenID anmelden" cas_signup_link: Account beantragen account_login: Account-Anmeldung session_will_not_expire: Sitzung wird nicht ablaufen. successful: "Anmeldung erfolgreich. Willkommen zur\xC3\xBCck!" - session_will_expire: "Sitzung wird nach %{hours} Stunde(n) der Inaktivit\xC3\xA4t ablaufen." option_separator: oder, session_time_out: Sitzung abgelaufen. Bitte %{link} + session_will_expire: "Sitzung wird nach %{hours} Stunde(n) der Inaktivit\xC3\xA4t ablaufen." login_standard: "zur\xC3\xBCck zum Standard-Login" - log_in_again: Erneut anmelden. logged_out: Sie wurden von Tracks abgemeldet. login_with_openid: Mit einer OpenID anmelden unsuccessful: Anmeldung war nicht erfolgreich. + log_in_again: Erneut anmelden. search: contexts_matching_query: Kontexte entsprechen der Suche tags_matching_query: Tags entsprechen der Suche - todos_matching_query: Todos entsprechen der Suche projects_matching_query: Projekte entsprechen der Suche notes_matching_query: Notizen entsprechen der Suche no_results: Die Suche ergab kein Ergebnis. + todos_matching_query: Todos entsprechen der Suche diff --git a/config/locales/es.yml b/config/locales/es.yml index 1ae862a3..5d8285e3 100644 --- a/config/locales/es.yml +++ b/config/locales/es.yml @@ -1,265 +1,287 @@ --- es: - common: - actions: Tareas - back: !binary | - QXRyw6Fz - - third: Tercero - add: "A\xC3\xB1adir" - go_back: "Volver atr\xC3\xA1s" - logout: Salir - none: Ninguno - week: semana - optional: opcional - cancel: Cancelar - month: mes - second: Segundo - notes: Notas - forum: Foro - server_error: Ha ocurrido un error en el servidor. - action: Tarea - last: "\xC3\x9Altimo" - projects: Proyectos - project: Proyecto - contribute: Contribuir - ok: Ok - first: Primero - numbered_step: Paso %{number} - website: Website - errors_with_fields: "Ha habido problemas con los siguientes campos:" - sort: - by_task_count_title: "Ordenar por n\xC3\xBAmero de tareas" - by_task_count_title_confirm: Are you sure that you want to sort these projects by the number of tasks? This will replace the existing sort order. - alphabetically: "Alfab\xC3\xA9ticamente" - sort: Ordenar - alphabetically_title: Sort projects alphabetically - alphabetically_confirm: Are you sure that you want to sort these projects alphabetically? This will replace the existing sort order. - by_task_count: "Por n\xC3\xBAmero de tareas" - months: meses - drag_handle: ARRASTRAR - contexts: Contextos - fourth: Cuarto - create: Crear - context: Contexto - description: "Descripci\xC3\xB3n" - forth: Siguiente - update: Actualizar - weeks: semanas - bugs: Errores - wiki: Wiki - email: Email - search: Buscar - ajaxError: There was an error retrieving from server layouts: toggle_notes: Activar/Desactivar notas next_actions_rss_feed: RSS feed of next actions toggle_notes_title: Activar/Desactivar todas las notas mobile_navigation: - new_action: 0-Nueva tarea - logout: Logout + logout: "Cerrar sesi\xC3\xB3n" feeds: Feeds - starred: 4-Starred + new_action: 0-Nueva tarea + starred: 4-Favoritos projects: 3-Proyectos tickler: Tickler - contexts: 2-Contexts - home: 1-Home + contexts: 2-Contextos + home: 1-Inicio navigation: + manage_users_title: "A\xC3\xB1adir o eliminar usuarios" recurring_todos: Tareas repetitivas api_docs: REST API Docs - manage_users_title: "A\xC3\xB1adir o eliminar usuarios" feeds: Feeds - stats: "Estad\xC3\xADsticas" starred: Estrellas notes_title: Mostrar todas las notas + stats: "Estad\xC3\xADsticas" tickler_title: Tickler manage_users: Administrar usuarios export_title: Import and export data - integrations_: Integrar Tracks preferences: Preferencias + integrations_: Integrar Tracks feeds_title: See a list of available feeds - calendar_title: Calendar of due actions - recurring_todos_title: Manage recurring actions - tickler: Tickler - completed_tasks: Done - stats_title: See your statistics + calendar_title: Calendario de las acciones por home_title: Inicio + tickler: Tickler starred_title: See your starred actions - view: Ver + recurring_todos_title: Manage recurring actions + completed_tasks: Hecho + stats_title: See your statistics organize: Organizar + view: Ver completed_tasks_title: Completed home: Inicio - contexts_title: Contexts export: Export - preferences_title: Mostrar mis preferencias - search: Search All Items - calendar: Calendar + contexts_title: Contexts + calendar: Calendario projects_title: Proyectos + search: Search All Items + preferences_title: Mostrar mis preferencias + number: + format: + separator: . + delimiter: "," + human: + storage_units: + format: "%n %u" + units: + kb: KB + tb: Tuberculosis + gb: GB + byte: + one: Byte + other: Bytes + mb: MB + currency: + format: + format: "%u%n" + unit: !binary | + 4oKs + + separator: . + delimiter: "," integrations: - opensearch_description: Search in Tracks - gmail_description: Gadget to add Tracks to Gmail as a gadget + opensearch_description: Buscar en las Tracks applescript_next_action_prompt: "Descripci\xC3\xB3n de la pr\xC3\xB3xima tarea:" - applescript_success_before_id: New next action with ID - applescript_success_after_id: created - activerecord: - attributes: - todo: - predecessors: Depende de - user: - last_name: Apellido - first_name: Nombre - preference: - show_hidden_projects_in_sidebar: Mostrar proyectos ocultos en el lateral - show_hidden_contexts_in_sidebar: Mostrar los contextos ocultos en el lateral - date_format: Formato de fecha - mobile_todos_per_page: "Tareas por p\xC3\xA1gina (Vista M\xC3\xB3vil)" - sms_context: Contexto por defecto para el email - staleness_starts: Comienzo de estancamiento - verbose_action_descriptors: Verbose action descriptors - show_number_completed: "Mostrar n\xC3\xBAmero de tareas completadas" - title_date_format: Title date format - refresh: "Intervalo de actualizaci\xC3\xB3n (en minutos)" - week_starts: Week starts on - due_style: Due style - locale: Idioma - time_zone: Zona horaria - show_project_on_todo_done: "Ir a la p\xC3\xA1gina del proyecto al completar la tarea" - sms_email: Email origen - show_completed_projects_in_sidebar: Show completed projects in sidebar - errors: - messages: - record_invalid: "La validaci\xC3\xB3n ha fallado: %{errores}" - greater_than_or_equal_to: "" - less_than_or_equal_to: "" - confirmation: "" - blank: no puede estar en blanco - invalid: cannot contain the comma (',') character - exclusion: "" - odd: tiene que ser impar - too_short: "" - empty: "no puede estar vac\xC3\xADo" - wrong_length: "" - even: "" - less_than: "" - equal_to: "" - greater_than: "" - too_long: "" - accepted: "" - taken: "" - not_a_number: "no es un n\xC3\xBAmero" - inclusion: "" - models: - project: - attributes: - name: - blank: project must have a name - too_long: El nombre del proyecto tiene que tener menos de 256 caracteres - taken: already exists - full_messages: - format: "" - template: - body: "" - header: - one: "" - other: "" + gmail_description: "Gadget para a\xC3\xB1adir pistas a Gmail como un gadget" + applescript_success_before_id: "Nueva acci\xC3\xB3n junto con la identificaci\xC3\xB3n" + applescript_success_after_id: creado + common: + back: !binary | + QXRyw6Fz + + third: Tercero + recurring_todos: "Repetici\xC3\xB3n de acciones" + actions: Tareas + add: "A\xC3\xB1adir" + previous: Anterior + logout: Salir + go_back: "Volver atr\xC3\xA1s" + cancel: Cancelar + week: semana + none: Ninguno + second: Segundo + month: mes + optional: opcional + notes: Notas + forum: Foro + server_error: Ha ocurrido un error en el servidor. + last: "\xC3\x9Altimo" + projects: Proyectos + action: Tarea + project: Proyecto + contribute: Contribuir + ok: Ok + website: Website + numbered_step: Paso %{number} + first: Primero + fourth: Cuarto + sort: + by_task_count_title: "Ordenar por n\xC3\xBAmero de tareas" + by_task_count_title_confirm: "\xC2\xBFEst\xC3\xA1 seguro que desea ordenar los proyectos por el n\xC3\xBAmero de tareas? Esto reemplazar\xC3\xA1 el orden existente." + alphabetically: "Alfab\xC3\xA9ticamente" + alphabetically_title: "Proyectos de ordenar alfab\xC3\xA9ticamente" + alphabetically_confirm: "\xC2\xBFEst\xC3\xA1 seguro que desea ordenar los proyectos por orden alfab\xC3\xA9tico? Esto reemplazar\xC3\xA1 el orden existente." + sort: Ordenar + by_task_count: "Por n\xC3\xBAmero de tareas" + create: Crear + months: meses + todo: Todo + context: Contexto + contexts: Contextos + next: "Pr\xC3\xB3ximo" + errors_with_fields: "Ha habido problemas con los siguientes campos:" + description: "Descripci\xC3\xB3n" + drag_handle: ARRASTRAR + bugs: Errores + update: Actualizar + weeks: semanas + forth: Siguiente + wiki: Wiki + search: Buscar + ajaxError: Hubo un error al recuperar desde el servidor + email: Email models: project: feed_title: Tracks Projects feed_description: Lists all the projects for %{username} todo: error_date_must_be_future: must be a date in the future - user: - error_context_not_associated: Context id %{context} not associated with user id %{user}. - error_project_not_associated: Project id %{project} not associated with user id %{user}. preference: due_on: Due on %{date} due_in: Due in %{days} days due_styles: - Due in ___ days - Due on _______ + user: + error_context_not_associated: Context id %{context} not associated with user id %{user}. + error_project_not_associated: Project id %{project} not associated with user id %{user}. + activerecord: + attributes: + todo: + predecessors: Depende de la + preference: + show_hidden_projects_in_sidebar: Mostrar proyectos ocultos en el lateral + show_hidden_contexts_in_sidebar: Mostrar los contextos ocultos en el lateral + date_format: Formato de fecha + verbose_action_descriptors: "Descriptores detallado de acci\xC3\xB3n" + sms_context: Contexto por defecto para el email + staleness_starts: Comienzo de estancamiento + mobile_todos_per_page: "Tareas por p\xC3\xA1gina (Vista M\xC3\xB3vil)" + title_date_format: "T\xC3\xADtulo del formato de fecha" + show_number_completed: "Mostrar n\xC3\xBAmero de tareas completadas" + refresh: "Intervalo de actualizaci\xC3\xB3n (en minutos)" + week_starts: La semana comienza + due_style: Debido al estilo + time_zone: Zona horaria + locale: Lugar + sms_email: Email origen + show_project_on_todo_done: "Ir a la p\xC3\xA1gina del proyecto al completar la tarea" + show_completed_projects_in_sidebar: Show completed projects in sidebar + user: + last_name: Apellido + first_name: Primer nombre + errors: + models: + project: + attributes: + name: + blank: proyecto debe tener un nombre + too_long: El nombre del proyecto tiene que tener menos de 256 caracteres + taken: ya existe + messages: + record_invalid: "La validaci\xC3\xB3n ha fallado: %{errores}" + greater_than_or_equal_to: debe ser mayor que o igual a %{count} + confirmation: "no coincide con la confirmaci\xC3\xB3n" + less_than_or_equal_to: debe ser menor o igual a %{count} + blank: no puede estar en blanco + invalid: "no puede contener el car\xC3\xA1cter de coma (',')" + exclusion: "est\xC3\xA1 reservado" + odd: tiene que ser impar + too_short: "es demasiado corto (m\xC3\xADnimo %{count} caracteres)" + empty: "no puede estar vac\xC3\xADo" + wrong_length: es la longitud del mal (debe ser %{count} caracteres) + even: "debe ser a\xC3\xBAn" + less_than: debe ser menor que %{count} + greater_than: debe ser mayor que %{count} + equal_to: debe ser igual a %{count} + accepted: debe ser aceptada + too_long: "es demasiado largo (el m\xC3\xA1ximo es %{count} caracteres)" + taken: Ya se ha dado + not_a_number: "no es un n\xC3\xBAmero" + inclusion: "no est\xC3\xA1 incluido en la lista" + full_messages: + format: "%{attribute} %{message}" + template: + body: "Hubo problemas con los campos siguientes:" + header: + one: Un error esta prohibido %{model} se guarden + other: "%{count} errores proh\xC3\xADbe este %{model} que se guarden" data: - import_successful: Import was successful. - import_errors: Some errors occurred during import + import_successful: "Importaci\xC3\xB3n se realiz\xC3\xB3 correctamente." + import_errors: "Han ocurrido algunos errores durante la importaci\xC3\xB3n" stats: - actions: Actions - totals_active_project_count: Of those %{count} are active projects tag_cloud_title: Tag cloud for all actions tag_cloud_description: This tag cloud includes tags of all actions (completed, not completed, visible and/or hidden) + actions: Actions tag_cloud_90days_title: Tag cloud actions in past 90 days - totals_first_action: Since your first action on %{date} + totals_active_project_count: Of those %{count} are active projects actions_avg_completion_time: Of all your completed actions, the average time to complete is %{count} days. actions_last_year_legend: number_of_actions: Number of actions months_ago: Months ago - current_running_time_of_incomplete_visible_actions: Current running time of incomplete visible actions - running_time_legend: - actions: Tareas - percentage: Percentage - weeks: Running time of an action (weeks). Click on a bar for more info - actions_dow_30days_title: Day of week (past 30 days) - totals_action_count: you have a total of %{count} actions - totals_deferred_actions: of which %{count} are deferred actions in the tickler + totals_first_action: Since your first action on %{date} legend: number_of_days: Number of days ago actions: Tareas number_of_actions: "N\xC3\xBAmero de tareas" day_of_week: Day of week - running_time: Running time of an action (weeks) percentage: Percentage + running_time: Running time of an action (weeks) months_ago: Months ago top10_longrunning: Top 10 longest running projects - actions_lastyear_title: Actions in the last 12 months - totals_actions_completed: "%{count} of these are completed." + actions_dow_30days_title: Day of week (past 30 days) + totals_action_count: you have a total of %{count} actions + current_running_time_of_incomplete_visible_actions: Current running time of incomplete visible actions + totals_deferred_actions: of which %{count} are deferred actions in the tickler + running_time_legend: + actions: Tareas + percentage: Percentage + weeks: Running time of an action (weeks). Click on a bar for more info totals_incomplete_actions: You have %{count} incomplete actions totals_unique_tags: Of those tags, %{count} are unique. actions_avg_completed_30days: and completed an average of %{count} actions per day. top5_contexts: Top 5 contexts + actions_lastyear_title: Actions in the last 12 months + totals_actions_completed: "%{count} of these are completed." actions_last_year: Actions in the last years totals_context_count: You have %{count} contexts. totals_visible_context_count: Of those %{count} are visible contexts - totals_blocked_actions: "%{count} are dependent on the completion of their actions." projects: Projects + totals_blocked_actions: "%{count} are dependent on the completion of their actions." action_completion_time_title: Completion time (all completed actions) - actions_day_of_week_title: Day of week (all actions) - tags: Tags - totals_project_count: You have %{count} projects. actions_min_max_completion_days: The Max-/minimum days to complete is %{min}/%{max}. actions_min_completion_time: The minimum time to complete is %{time}. no_tags_available: no tags available + actions_day_of_week_title: Day of week (all actions) + totals_project_count: You have %{count} projects. + tags: Tags + actions_further: " and further" + totals_tag_count: You have %{count} tags placed on actions. running_time_all: Current running time of all incomplete actions actions_30days_title: Actions in the last 30 days - actions_further: " and further" + time_of_day: Time of day (all actions) totals_hidden_project_count: "%{count} are hidden" tod30: Time of day (last 30 days) - totals_tag_count: You have %{count} tags placed on actions. more_stats_will_appear: More statistics will appear here once you have added some actions. tag_cloud_90days_description: This tag cloud includes tags of actions that were created or completed in the past 90 days. - time_of_day: Time of day (all actions) top5_visible_contexts_with_incomplete_actions: Top 5 visible contexts with incomplete actions + totals_completed_project_count: and %{count} are completed projects. click_to_return: Click %{link} to return to the statistics page. - top10_projects: Top 10 projects - click_to_show_actions_from_week: Click %{link} to show the actions from week %{week} and further. top10_projects_30days: Top 10 project in past 30 days - other_actions_label: (otros) + spread_of_running_actions_for_visible_contexts: Spread of running actions for visible contexts actions_selected_from_week: "Actions selected from week " spread_of_actions_for_all_context: Spread of actions for all context - totals_completed_project_count: and %{count} are completed projects. - spread_of_running_actions_for_visible_contexts: Spread of running actions for visible contexts + click_to_show_actions_from_week: Click %{link} to show the actions from week %{week} and further. + other_actions_label: (otros) + top10_projects: Top 10 projects actions_avg_created: In the last 12 months you created on average %{count} actions - click_to_return_link: here - totals_hidden_context_count: and %{count} are hidden contexts. actions_avg_completed: and completed an average of %{count} actions per month. - contexts: Contexts totals: Totals time_of_day_legend: number_of_actions: "N\xC3\xBAmero de tareas" time_of_day: Time of day + contexts: Contexts + click_to_return_link: here + totals_hidden_context_count: and %{count} are hidden contexts. click_to_update_actions: Click on a bar in the chart to update the actions below. - no_actions_selected: No hay tareas seleccionadas. - running_time_all_legend: - actions: Tareas - running_time: Running time of an action (weeks). Click on a bar for more info - percentage: Percentage labels: month_avg_completed: "%{months} Month avg completed" completed: Completed @@ -267,21 +289,27 @@ es: avg_created: Avg created avg_completed: Avg completed created: Created - action_selection_title: TRACKS::Action selection + no_actions_selected: No hay tareas seleccionadas. + running_time_all_legend: + actions: Tareas + percentage: Percentage + running_time: Running time of an action (weeks). Click on a bar for more info actions_actions_avg_created_30days: In the last 30 days you created on average %{count} actions tod30_legend: number_of_actions: "N\xC3\xBAmero de tareas" time_of_day: Time of day + action_selection_title: TRACKS::Action selection todos: + completed_actions: Completed actions show_from: Show from error_starring_recurring: Could not toggle the star of recurring todo \'%{description}\' recurring_action_deleted: Action was deleted. Because this action is recurring, a new action was added - completed_actions: Completed actions + completed_rest_of_previous_month: Completado en el resto del mes anterior completed_recurring: Completed recurring todos added_new_next_action: Added new next action blocked_by: Blocked by %{predecessors} - star_action: Star this action completed_recurrence_completed: There is no next action after the recurring action you just deleted. The recurrence is completed + star_action: Star this action defer_date_after_due_date: Defer date is after due date. Please edit and adjust due date before deferring. unable_to_add_dependency: Unable to add dependency done: Done? @@ -297,9 +325,9 @@ es: remove_dependency: Remove dependency (does not delete the action) list_incomplete_next_actions: Lista las siguientes tareas incompletas action_deleted_success: Successfully deleted next action + mobile_todos_page_title: Todas las tareas new_related_todo_created: "Una nueva tarea fue a\xC3\xB1adida y que pertenece a esta tarea recurrente" context_changed: Context changed to %{name} - mobile_todos_page_title: Todas las tareas add_another_dependency: Add another dependency delete_recurring_action_title: Delete the recurring action removed_predecessor: Removed %{successor} as dependency from %{predecessor}. @@ -308,36 +336,39 @@ es: action_saved: Action saved scheduled_overdue: Scheduled to show %{days} days ago action_deleted_error: Failed to delete the action - next_actions_description: "Filter:" edit_action: Edit action added_new_context: Added new context - set_to_pending: "%{task} set to pending" - list_incomplete_next_actions_with_limit: Lists the last %{count} incomplete next actions - added_new_project: Added new project + next_actions_description: "Filter:" next_actions_title_additions: completed: actions completed due_today: due today due_within_a_week: due within a week + list_incomplete_next_actions_with_limit: Lists the last %{count} incomplete next actions + set_to_pending: "%{task} set to pending" + added_new_project: Added new project older_completed_items: Older completed items - append_in_this_project: in this project error_deleting_item: There was an error deleting the item %{description} + append_in_this_project: in this project task_list_title: TRACKS::List tasks no_actions_due_this_week: No actions due in rest of this week no_recurring_todos: Currently there are no recurring todos error_completing_todo: There was an error completing / activating the recurring todo %{description} + recurring_pattern_removed: "El patr\xC3\xB3n de repetici\xC3\xB3n se retira de %{count}" convert_to_project: Make project no_deferred_pending_actions: Currently there are no deferred or pending actions - delete_recurring_action_confirm: Are you sure that you want to delete the recurring action '%{description}'? completed_last_day: Completed in the last 24 hours - error_saving_recurring: There was an error saving the recurring todo \'%{description}\' - completed_more_than_x_days_ago: Completed more than %{count} days ago + delete_recurring_action_confirm: Are you sure that you want to delete the recurring action '%{description}'? show_in_days: Show in %{days} days no_project: --No project-- - new_related_todo_created_short: creada una nueva tarea + error_saving_recurring: There was an error saving the recurring todo \'%{description}\' + completed_more_than_x_days_ago: Completed more than %{count} days ago + all_completed: Todas las acciones realizadas feed_title_in_context: in context '%{context}' - pending: Pending + new_related_todo_created_short: creada una nueva tarea older_than_days: Older than %{count} days + completed_tagged_page_title: "TRACKS:: Las tareas completadas con etiqueta %{tag_name}" edit: Edit + pending: Pending completed_actions_with: Completed actions with the tag %{tag_name} deleted_success: The action was deleted succesfully. completed_tasks_title: TRACKS::Completed tasks @@ -351,20 +382,20 @@ es: deferred_actions_with: Deferred actions with the tag '%{tag_name}' confirm_delete: Are you sure that you want to delete the action '%{description}'? recurring_deleted_success: The recurring action was deleted succesfully. - deferred_tasks_title: TRACKS::Tickler next_actions_title: Tracks - Next Actions next_action_description: "Descripci\xC3\xB3n de la nueva tarea" + deferred_tasks_title: TRACKS::Tickler no_completed_actions_with: No completed actions with the tag '%{tag_name}' clear_show_from_date: Clear show from date - in_hidden_state: en estado oculto - calendar_page_title: TRACKS::Calendar unresolved_dependency: The value you entered in the dependency field did not resolve to an existing action. This value will not be saved with the rest of the action. Continue? + calendar_page_title: TRACKS::Calendar + in_hidden_state: en estado oculto show_today: Show Today no_actions_found_title: No actions found next_actions_due_date: overdue_by: Overdue by %{days} day - due_in_x_days: "Vence en %{days} d\xC3\xADas" due_today: Vence hoy + due_in_x_days: "Vence en %{days} d\xC3\xADas" overdue_by_plural: Overdue by %{days} days due_tomorrow: "Vence ma\xC3\xB1ana" completed_last_x_days: Completed in last %{count} days @@ -374,42 +405,43 @@ es: other: Defer %{count} days added_new_next_action_singular: Added new next action no_completed_actions: Currently there are no completed actions. + feeds: + completed: "Completed: %{date}" + due: "Due: %{date}" deferred_pending_actions: Deferred/pending actions has_x_pending: one: Tiene una tarea pendiente other: Tiene %{count} tareas pendientes - feeds: - completed: "Completed: %{date}" - due: "Due: %{date}" + recurring_todos: Recurring todos delete_action: Delete action error_deleting_recurring: There was an error deleting the recurring todo \'%{description}\' - recurring_todos: Recurring todos delete: Delete drag_action_title: Drag onto another action to make it depend on that action cannot_add_dependency_to_completed_todo: Cannot add this action as a dependency to a completed action! + no_last_completed_actions: "No encontr\xC3\xB3 las acciones realizadas" depends_on: Depends on tickler_items_due: one: One tickler item is now due - refresh the page to see it. other: "%{count} tickler items are now due - refresh the page to see them." action_marked_complete: The action '%{description}' was marked as %{completed} - completed_today: - one: You have completed one action so far today. - other: You have completed %{count} actions so far today. + completed_today: Completed Today added_new_next_action_plural: Added new next actions new_related_todo_not_created_short: "no se cre\xC3\xB3 la tarea" + completed_rest_of_week: Completado en el resto de esta semana error_starring: Could not toggle the star of this todo \'%{description}\' + show_tomorrow: Show Tomorrow calendar: get_in_ical_format: Get this calendar in iCal format due_next_week: Due next week due_this_week: Due in rest of this week no_actions_due_next_week: No actions due in next week - no_actions_due_today: No actions due today due_today: Due today + no_actions_due_today: No actions due today due_next_month_and_later: Due in %{month} and later no_actions_due_after_this_month: No actions due after this month - no_actions_due_this_month: No actions due in rest of this month due_this_month: Due in rest of %{month} - show_tomorrow: Show Tomorrow + no_actions_due_this_month: No actions due in rest of this month + tagged_page_title: TRACKS::Tagged with '%{tag_name}' recurrence: ends_on_number_times: Ends after %{number} times ends_on_date: Ends on %{date} @@ -418,10 +450,12 @@ es: weekly_options: Settings for weekly recurring actions weekly: Weekly monthly_options: Settings for monthly recurring actions + daily_options: Settings for daily recurring actions monthly: Monthly starts_on: Starts on - daily_options: Settings for daily recurring actions + daily: Daily pattern: + third: third month_names: - - January @@ -436,19 +470,20 @@ es: - October - November - December - third: third every_n: every %{n} - on_day_n: on day %{n} every_xth_day_of_every_n_months: every %{x} %{day} of every %{n_months} second: second - from: from + on_day_n: on day %{n} weekly: weekly - every_day: every day + from: from last: last + every_day: every day the_xth_day_of_month: the %{x} %{day} of %{month} times: for %{number} times every_year_on: every year on %{date} first: first + show: show + on_work_days: on work days day_names: - sunday - monday @@ -457,41 +492,39 @@ es: - thursday - friday - saturday - show: show - on_work_days: on work days fourth: fourth due: due - until: until every_month: every month - daily: Daily + until: until show_option_always: always - recurrence_on_options: Set recurrence on yearly_every_x_day: Every %{month} %{day} + recurrence_on_options: Set recurrence on daily_every_number_day: Every %{number} day(s) - ends_on: Ends on - weekly_every_number_week: Returns every %{number} week on show_options: Show the todo + weekly_every_number_week: Returns every %{number} week on + ends_on: Ends on yearly_options: Settings for yearly recurring actions - yearly_every_xth_day: The %{day} %{day_of_week} of %{month} show_days_before: "%{days} days before the todo is due" from_tickler: the date todo comes from tickler (no due date set) no_end_date: No end date + yearly_every_xth_day: The %{day} %{day_of_week} of %{month} day_x_on_every_x_month: Day %{day} on every %{month} month monthly_every_xth_day: The %{day} %{day_of_week} of every %{month} month yearly: Yearly - tagged_page_title: TRACKS::Tagged with '%{tag_name}' no_completed_recurring: Currently there are no completed recurring todos added_dependency: Added %{dependency} as dependency. + all_completed_tagged_page_title: "TRACKS:: Todas las tareas realizadas con etiqueta %{tag_name}" no_deferred_actions: Currently there are no deferred actions. + completed_rest_of_month: Completado en el resto de este mes recurrence_completed: There is no next action after the recurring action you just finished. The recurrence is completed - no_actions_found: Currently there are no incomplete actions. in_pending_state: en estado pendiente + no_actions_found: Currently there are no incomplete actions. error_toggle_complete: Could not mark this todo complete due: "Fecha l\xC3\xADmite" action_marked_complete_error: The action '%{description}' was NOT marked as %{completed} due to an error on the server. depends_on_separate_with_commas: Depende de (separar con comas) - action_saved_to_tickler: Action saved to tickler recurring_action_saved: Recurring action saved + action_saved_to_tickler: Action saved to tickler completed_in_archive: one: There is one completed action in the archive. other: There are %{count} completed actions in the archive. @@ -500,19 +533,19 @@ es: completed: in the last %{count} days due_date: with a due date %{due_date} or earlier overdue: Overdue - add_new_recurring: Add a new recurring action no_incomplete_actions: There are no incomplete actions + add_new_recurring: Add a new recurring action notes: - delete_note_title: Delete the note '%{id}' delete_confirmation: Are you sure that you want to delete the note '%{id}'? delete_item_title: Delete item - show_note_title: Show note + delete_note_title: Delete the note '%{id}' deleted_note: Deleted note '%{id}' note_link_title: Show note %{id} - note_location_link: "In:" + show_note_title: Show note edit_item_title: Edit item - note_header: Note %{id} + note_location_link: "In:" no_notes_available: "Currently there are no notes: add notes to projects from individual project pages." + note_header: Note %{id} delete_note_confirm: Are you sure that you want to delete the note '%{id}'? states: hidden_plural: Hidden @@ -524,78 +557,87 @@ es: hidden: Hidden active: Active time: + am: soy formats: + default: "%a, %d %b %Y %H:%M:%S %z" + short: "%d %b %H:%M" month_day: "%B %d" - errors: - user_unauthorized: "401 Unauthorized: Only administrative users are allowed access to this function." + long: "%B %d, %Y %H:%M" + pm: pm projects: + default_context_set: Set project's default context to %{default_context} + no_actions_in_project: Currently there are no incomplete actions in this project + deferred_actions: Tareas pospuestas para este proyecto + was_marked_hidden: has been marked as hidden edit_project_title: Editar proyecto default_tags_removed_notice: Removed the default tags - default_context_set: Set project's default context to %{default_context} - deferred_actions: Tareas pospuestas para este proyecto - no_actions_in_project: Currently there are no incomplete actions in this project - was_marked_hidden: has been marked as hidden - page_title: "TRACKS::Project: %{project}" hide_form: Esconder formulario + page_title: "TRACKS::Project: %{project}" + all_completed_tasks_title: "TRACKS:: Lista de todas las acciones terminado en '%{project_name}' Proyecto" this_project: This project project_state: Project is %{state}. show_form_title: Create a new project + list_completed_projects: "TRACKS:: Lista de Proyectos Realizados" to_new_project_page: Take me to the new project page no_notes_attached: Currently there are no notes attached to this project deferred_actions_empty: There are no deferred actions for this project notes: Notes + no_last_completed_projects: No hay proyectos terminados encontrado todos_append: in this project no_projects: Currently there are no projects hide_form_title: Hide new project form notes_empty: There are no notes for this project - completed_actions_empty: No hay tareas completadas para este proyecto with_no_default_context: with no default context delete_project: Delete project - show_form: Add a project - delete_project_confirmation: Are you sure that you want to delete the project '%{name}'? - actions_in_project_title: Actions in this project + completed_actions_empty: No hay tareas completadas para este proyecto with_default_context: with a default context of '%{context_name}' - set_default_tags_notice: Set project's default tags to %{default_tags} - with_default_tags: and with '%{tags}' as the default tags + show_form: Add a project + actions_in_project_title: Actions in this project + delete_project_confirmation: Are you sure that you want to delete the project '%{name}'? project_saved_status: Project saved - list_projects: TRACKS::Lista de Proyectos - add_note: "A\xC3\xB1adir una nota" add_project: "A\xC3\xB1adir Proyecto" + add_note: "A\xC3\xB1adir una nota" + set_default_tags_notice: Set project's default tags to %{default_tags} + is_active: "est\xC3\xA1 activo" settings: Settings completed_projects: Proyectos completados - is_active: "est\xC3\xA1 activo" - hidden_projects: Proyectos ocultos + with_default_tags: and with '%{tags}' as the default tags + list_projects: TRACKS::Lista de Proyectos delete_project_title: Delete the project + completed_tasks_title: "TRACKS:: Lista de Acciones completadas en '%{project_name}' Proyecto" + hidden_projects: Proyectos ocultos default_context_removed: Eliminado el contexto por defecto - add_note_submit: "A\xC3\xB1adir nota" completed_actions: Tareas completadas para este proyecto + add_note_submit: "A\xC3\xB1adir nota" was_marked_complete: has been marked as completed - state: This project is %{state} - status_project_name_changed: Name of project was changed - with_no_default_tags: and with no default tags + edit_project_settings: Edit Project Settings default_context: The default context for this project is %{context} active_projects: Active projects - edit_project_settings: Edit Project Settings + status_project_name_changed: Name of project was changed no_default_context: Este proyecto no tiene un contexto por defecto + state: This project is %{state} + with_no_default_tags: and with no default tags + errors: + user_unauthorized: "401 No autorizado: Solo los usuarios administrativos pueden acceder a esta funci\xC3\xB3n." preferences: - staleness_starts_after: Staleness starts after %{days} days change_identity_url: Change Your Identity URL + staleness_starts_after: Staleness starts after %{days} days open_id_url: Your OpenID URL is change_password: Change your password page_title: TRACKS::Preferences title: Your preferences token_description: Token (for feeds and API use) - show_number_completed: Show %{number} completed items is_false: "false" + show_number_completed: Show %{number} completed items + is_true: "true" edit_preferences: Edit preferences page_title_edit: TRACKS::Edit Preferences - is_true: "true" sms_context_none: None generate_new_token: Generate a new token token_header: Your token + authentication_header: Your authentication current_authentication_type: Your authentication type is %{auth_type} change_authentication_type: Change your authentication type - authentication_header: Your authentication generate_new_token_confirm: Are you sure? Generating a new token will replace the existing one and break any external usages of this token. date: month_names: @@ -646,114 +688,123 @@ es: - Oct - Nov - Dic + support: + array: + last_word_connector: ", y" + words_connector: "," + two_words_connector: y + select: + prompt: Por favor seleccione footer: - send_feedback: Send feedback on %{version} + send_feedback: "Env\xC3\xADa comentarios sobre el %{version}" shared: multiple_next_actions: Multiple next actions (one on each line) - toggle_single: Add a next action hide_form: Esconder formulario + toggle_single: Add a next action add_action: "A\xC3\xB1adir tarea" add_actions: "A\xC3\xB1adir tareas" tags_for_all_actions: Tags for all actions (sep. with commas) + context_for_all_actions: Context for all actions toggle_multi: Add multiple next actions toggle_single_title: Add a new next action project_for_all_actions: Project for all actions - context_for_all_actions: Context for all actions separate_tags_with_commas: separar con comas toggle_multi_title: Toggle single/multi new action form hide_action_form_title: Hide new action form - contexts: - delete_context_title: Delete context - hide_form: Esconder formulario - show_form_title: Add a context - delete_context: Eliminar contexto - delete_context_confirmation: Are you sure that you want to delete the context '%{name}'? Be aware that this will also delete all (repeating) actions in this context! - edit_context: Edit context - hide_form_title: Hide new context form - no_contexts_active: Currently there are no active contexts - context_hide: "\xC2\xBFEsconder de la p\xC3\xA1gina principal?" - hidden_contexts: Hidden contexts - show_form: Create a new context - save_status_message: Context saved - add_context: "A\xC3\xB1adir contexto" - visible_contexts: Visible contexts - context_name: Nombre del contexto - update_status_message: Name of context was changed - status_active: "El contexto est\xC3\xA1 activo" - new_context_post: "' will be also created. Are you sure?" - context_deleted: Contexto eliminado '%{name}' - no_contexts_hidden: Currently there are no hidden contexts - new_context_pre: New context ' - no_actions: Currently there are no incomplete actions in this context - last_completed_in_context: in this context (last %{number}) - status_hidden: Context is hidden users: total_contexts: Total contexts - first_user_heading: "Welcome to TRACKS. To get started, please create an admin account:" - successfully_deleted_user: Successfully deleted user %{username} failed_to_delete_user: Failed to delete user %{username} + first_user_heading: "Welcome to TRACKS. To get started, please create an admin account:" + auth_type_update_error: "There was a problem updating your authentication type: %{error_messages}" openid_url_verified: You have successfully verified %{url} as your identity and set your authentication type to OpenID. destroy_successful: User %{login} was successfully destroyed - auth_type_update_error: "There was a problem updating your authentication type: %{error_messages}" + successfully_deleted_user: Successfully deleted user %{username} + new_token_generated: New token successfully generated total_projects: Total projects signup_successful: Signup successful for user %{username}. - new_token_generated: New token successfully generated - user_created: User created. change_password_submit: Change password no_signups_title: TRACKS::No signups + user_created: User created. account_signup: Account signup - password_updated: Password updated. manage_users: Manage users + password_updated: Password updated. + signup: Signup + confirm_password: Confirm password new_user_heading: "Sign up a new user:" auth_type_updated: Authentication type updated. total_actions: Total actions - signup: Signup desired_login: Desired login - confirm_password: Confirm password change_password_title: TRACKS::Change password change_auth_type_title: TRACKS::Change authentication type change_password_prompt: Enter your new password in the fields below and click 'Change password' to replace your current password with your new one. password_confirmation_label: Confirm password destroy_error: There was an error deleting the user %{login} choose_password: Choose password + label_auth_type: Authentication type new_password_label: New password register_with_cas: With your CAS username - label_auth_type: Authentication type + new_user_title: TRACKS::Sign up as the admin user destroy_user: Destroy user total_users_count: You have a total of %{count} users - new_user_title: TRACKS::Sign up as the admin user - signup_new_user: Sign up new user destroy_confirmation: "Warning: this will delete user '%{login}', all their actions, contexts, project and notes. Are you sure that you want to continue?" - change_authentication_type: Change authentication type - auth_change_submit: Change authentication type + signup_new_user: Sign up new user openid_ok_pref_failed: You have successfully verified %{url} as your identity but there was a problem saving your authentication preferences. + auth_change_submit: Change authentication type identity_url: Identity URL + change_authentication_type: Change authentication type select_authentication_type: Select your new authentication type and click 'Change authentication type' to replace your current settings. total_notes: Total notes feedlist: + choose_context: Elija el contexto en el que desea un canal de actions_due_today: Acciones pendientes hoy o antes - choose_context: Choose the context you want a feed of + ical_feed: "iCal alimentaci\xC3\xB3n" + legend: "Leyenda:" + all_contexts: Todos los contextos rss_feed: RSS Feed - ical_feed: iCal feed - all_contexts: All Contexts - legend: "Legend:" - all_projects: All Projects - choose_project: Choose the project you want a feed of - active_projects_wo_next: Active projects with no next actions - project_needed: There needs to be at least one project before you can request a feed - select_feed_for_project: Select the feed for this project - active_starred_actions: All starred, active actions - projects_and_actions: Active projects with their actions - context_needed: There needs to be at least one context before you can request a feed - select_feed_for_context: Select the feed for this context - notice_incomplete_only: "Note: All feeds show only actions that have not been marked as done, unless stated otherwise." + choose_project: Elegir el proyecto que quiere un canal de + all_projects: Todos los proyectos + project_needed: Es necesario que haya al menos un proyecto antes de poder solicitar un feed + select_feed_for_project: Seleccione la fuente para este proyecto + active_projects_wo_next: "Proyectos activos, sin las pr\xC3\xB3ximas acciones" + active_starred_actions: "Todas las acciones que protagoniz\xC3\xB3, activa" + projects_and_actions: Proyectos activos con sus acciones + context_needed: Es necesario que haya al menos un contexto antes de poder solicitar un feed + select_feed_for_context: "Seleccione la alimentaci\xC3\xB3n de este contexto" + notice_incomplete_only: "Nota: Todos los alimentos muestran s\xC3\xB3lo las acciones que no han sido marcadas como realizadas, a menos que se indique lo contrario." actions_due_next_week: "Tareas pendientes en 7 d\xC3\xADas o menos" - plain_text_feed: Plain Text Feed - last_fixed_number: Last %{number} actions + plain_text_feed: Canal Texto sin formato + last_fixed_number: "\xC3\x9Altima %{number} acciones" all_actions: Todas las tareas actions_completed_last_week: "Tareas completadas en los \xC3\xBAltimos 7 d\xC3\xADas" - context_centric_actions: Feeds for incomplete actions in a specific context - project_centric: Feeds for incomplete actions in a specific project + context_centric_actions: "Feeds de acciones incompletas en un contexto espec\xC3\xADfico" + project_centric: "Feeds de acciones incompletas en un proyecto espec\xC3\xADfico" + contexts: + delete_context_title: Eliminar contexto + hide_form: Esconder formulario + all_completed_tasks_title: "TRACKS:: Todas las acciones completadas en '%{context_name}' contexto" + show_form_title: "A\xC3\xB1adir un contexto" + delete_context_confirmation: "\xC2\xBFEst\xC3\xA1 seguro que desea eliminar '%{name}' el contexto? Tenga en cuenta que esto tambi\xC3\xA9n se eliminar\xC3\xA1n todas las acciones (la repetici\xC3\xB3n) en este contexto!" + delete_context: Eliminar contexto + hide_form_title: Ocultar el formulario nuevo contexto + edit_context: Editar contexto + no_contexts_active: Actualmente no hay contextos activos + context_hide: "\xC2\xBFEsconder de la p\xC3\xA1gina principal?" + hidden_contexts: Contextos ocultos + save_status_message: Contexto guardado + show_form: Crear un nuevo contexto + add_context: "A\xC3\xB1adir contexto" + visible_contexts: Contextos visible + context_name: Nombre del contexto + update_status_message: Nombre de contexto ha cambiado + completed_tasks_title: "TRACKS:: Las acciones completadas en '%{context_name}' el contexto" + status_active: "El contexto est\xC3\xA1 activo" + new_context_post: "' Tambi\xC3\xA9n se ha creado. \xC2\xBFEst\xC3\xA1 seguro?" + no_actions: Actualmente no hay acciones incompletas en este contexto + last_completed_in_context: "en este contexto (\xC3\xBAltimos %{number})" + context_deleted: Contexto eliminado '%{name}' + no_contexts_hidden: Actualmente no hay contextos ocultos + new_context_pre: Nuevo contexto ' + status_hidden: Contexto se oculta sidebar: list_name_active_contexts: Active contexts list_name_active_projects: Active projects @@ -764,77 +815,81 @@ es: datetime: prompts: minute: Minuto - month: "" - second: "" + second: Segundos + month: Mes hour: Hora day: !binary | RMOtYQ== - year: "" + year: !binary | + QcOxbw== + distance_in_words: less_than_x_minutes: - one: "" - other: "" + one: menos de un minuto + other: menos de %{count} minutos almost_x_years: - one: "" - other: "" + one: "casi 1 a\xC3\xB1o" + other: "Casi %{count} a\xC3\xB1os" x_days: - one: "" - other: "" + one: !binary | + MSBkw61h + + other: "%{count} d\xC3\xADas" x_seconds: - one: "" - other: "" - less_than_x_seconds: - one: "" - other: "" - x_months: - one: "" - other: "" - x_minutes: - one: "" - other: "" + one: Un segundo + other: "%{count} segundos" about_x_hours: - one: "" - other: "" - about_x_months: - one: "" - other: "" + one: alrededor de 1 hora + other: Acerca de %{count} horas + less_than_x_seconds: + one: menos de 1 segundo + other: menos de %{count} segundos + x_months: + one: 1 mes + other: "%{count} meses" + x_minutes: + one: 1 minuto + other: "%{count} minutos" about_x_years: - one: "" - other: "" + one: "alrededor de 1 a\xC3\xB1o" + other: "Acerca de %{count} a\xC3\xB1os" + about_x_months: + one: alrededor de 1 mes + other: Acerca de %{count} meses over_x_years: - one: "" - other: "" - half_a_minute: "" + one: "m\xC3\xA1s de 1 a\xC3\xB1o" + other: "en %{count} a\xC3\xB1os" + half_a_minute: medio minuto login: + login_cas: go to the CAS + openid_identity_url_not_found: Sorry, no user by that identity URL exists (%{identity_url}) user_no_expiry: Stay logged in sign_in: Entrar - openid_identity_url_not_found: Sorry, no user by that identity URL exists (%{identity_url}) - login_cas: go to the CAS - successful_with_session_info: "Login successful:" - please_login: Please log in to use Tracks cas_logged_in_greeting: Hello, %{username}! You are authenticated. cas_no_user_found: Hello, %{username}! You do not have an account on Tracks. cas_login: CAS Login + successful_with_session_info: "Login successful:" + please_login: Please log in to use Tracks cas_username_not_found: Sorry, no user by that CAS username exists (%{username}) cas_create_account: If you like to request on please go here to %{signup_link} mobile_use_openid: "\xE2\x80\xA6or login with an OpenID" - account_login: Acceso a la cuenta cas_signup_link: Request account - successful: "Has entrado con \xC3\xA9xito. Bienvenido!" + account_login: Acceso a la cuenta session_will_not_expire: session will not expire. + successful: "Has entrado con \xC3\xA9xito. Bienvenido!" + option_separator: or, session_time_out: Session has timed out. Please %{link} session_will_expire: session will expire after %{hours} hour(s) of inactivity. - option_separator: or, login_standard: go back to the standard login + logged_out: You have been logged out of Tracks. login_with_openid: login with an OpenID unsuccessful: Login unsuccessful. log_in_again: log in again. - logged_out: You have been logged out of Tracks. search: contexts_matching_query: Contexts matching query tags_matching_query: Tags matching query - no_results: Your search yielded no results. - todos_matching_query: Todos matching query projects_matching_query: Projects matching query notes_matching_query: Notes matching query + no_results: Your search yielded no results. + todos_matching_query: Todos matching query diff --git a/config/locales/nl.yml b/config/locales/nl.yml index 488b55a1..08406e59 100644 --- a/config/locales/nl.yml +++ b/config/locales/nl.yml @@ -3,6 +3,7 @@ nl: layouts: toggle_notes: Toggle notities next_actions_rss_feed: RSS-feed van de acties + toggle_notes_title: Toggle alle notities mobile_navigation: logout: Afmelden feeds: Feeds @@ -12,10 +13,9 @@ nl: tickler: Tickler contexts: 2-Contexten home: 1-Start - toggle_notes_title: Toggle alle notities navigation: - recurring_todos: Terugkerende acties manage_users_title: Toevoegen of verwijderen gebruikers + recurring_todos: Terugkerende acties api_docs: REST API Docs feeds: Feeds starred: Ster @@ -24,16 +24,16 @@ nl: tickler_title: Tickler manage_users: Beheren gebruikers export_title: Import en export van gegevens - preferences: Voorkeuren integrations_: Integreer Tracks + preferences: Voorkeuren feeds_title: Zie een lijst met beschikbare feeds calendar_title: Kalender met acties met deadline - starred_title: Zie je ster acties + home_title: Start tickler: Tickler + starred_title: Zie je ster acties recurring_todos_title: Beheren terugkerende acties completed_tasks: Gereed stats_title: Zie je statistieken - home_title: Start organize: Organiseer view: Bekijk completed_tasks_title: Afgerond @@ -71,8 +71,8 @@ nl: opensearch_description: Zoek in Tracks applescript_next_action_prompt: "Omschrijving van de actie:" gmail_description: Gadget om Tracks toe te voegen aan Gmail als een gadget - applescript_success_after_id: gemaakt applescript_success_before_id: Nieuwe actie met ID + applescript_success_after_id: gemaakt common: back: Terug third: Derde @@ -82,50 +82,50 @@ nl: previous: Vorige logout: Log uit go_back: Ga terug - cancel: Annuleer week: week + cancel: Annuleer none: Geen second: Tweede - optional: optioneel month: maand + optional: optioneel notes: Notities forum: Forum server_error: Een fout heeft op de server plaatsgevonden last: Laatste - projects: Projecten action: Actie + projects: Projecten project: Project contribute: Bijdragen ok: Ok website: Website - first: Eerste numbered_step: Stap %{number} - errors_with_fields: Er waren problemen met de volgende velden + first: Eerste + fourth: Vierde sort: by_task_count_title: Sorteer op aantal acties by_task_count_title_confirm: Weet u zeker dat u deze op aantal acties wilt sorteren? Dat zal de huidige sorteervolgorde aanpassen. alphabetically: Alfabetisch alphabetically_title: Sorteer projecten alfabetisch - sort: Sorteer alphabetically_confirm: Weet u zeker dat u deze projecten alfabetisch wilt sorteren? Dat zal de huidige sorteervolgorde aanpassen. + sort: Sorteer by_task_count: Op aantal acties - fourth: Vierde create: Maken months: maanden - context: Context - contexts: Contexten todo: actie + contexts: Contexten + context: Context next: Volgende + errors_with_fields: Er waren problemen met de volgende velden description: Beschrijving drag_handle: SLEEP - update: Bijwerken bugs: Fouten + update: Bijwerken weeks: weken forth: Vierde wiki: Wiki - ajaxError: Er is een fout opgetreden bij het ophalen van gegevens van de server search: Zoeken email: E-mail + ajaxError: Er is een fout opgetreden bij het ophalen van gegevens van de server models: project: feed_title: Tracks Projecten @@ -160,19 +160,19 @@ nl: show_hidden_projects_in_sidebar: Toon verborgen projecten in sidebar show_hidden_contexts_in_sidebar: Toon verborgen contexten in sidebar date_format: Datum formaat - staleness_starts: Begin van markeren openstaande actie - mobile_todos_per_page: Acties per pagina (mobiel) verbose_action_descriptors: Context en project uitschrijven in actielijst sms_context: Standaard context voor email + staleness_starts: Begin van markeren openstaande actie + mobile_todos_per_page: Acties per pagina (mobiel) title_date_format: Datum formaat in titel show_number_completed: Aantal te tonen afgeronde acties refresh: Ververs interval (in minuten) week_starts: Week start op - time_zone: Tijdzone due_style: Deadline stijl + time_zone: Tijdzone locale: Taal - show_project_on_todo_done: Ga naar project pagina wanneer actie gereed is sms_email: Van email + show_project_on_todo_done: Ga naar project pagina wanneer actie gereed is show_completed_projects_in_sidebar: Toon afgeronde projecten in sidebar user: last_name: Achternaam @@ -195,8 +195,8 @@ nl: exclusion: is gereserveerd odd: moet oneven zijn too_short: is te kort (minimum is %{count} karakters) - wrong_length: heeft de verkeerde lengte (moet %{count} karakters lang zijn) empty: mag niet leeg zijn + wrong_length: heeft de verkeerde lengte (moet %{count} karakters lang zijn) even: moet even zijn less_than: moet kleiner zijn dan %{count} greater_than: moet groter zijn dan %{count} @@ -217,18 +217,16 @@ nl: import_successful: De import was succesvol import_errors: Er hebben zich fouten voorgedaan bij de import stats: + tag_cloud_title: Tag Cloud voor alle acties + tag_cloud_description: Deze tag cloud bevat tags van alle acties (afgerond, niet voltooid, zichtbaar en / of verborgen) + actions: Acties tag_cloud_90days_title: Tag cloud met acties in afgelopen 90 dagen totals_active_project_count: Van deze zijn %{count} actieve projecten - tag_cloud_title: Tag Cloud voor alle acties - actions: Acties - tag_cloud_description: Deze tag cloud bevat tags van alle acties (afgerond, niet voltooid, zichtbaar en / of verborgen) actions_avg_completion_time: Van al uw afgeronde acties, de gemiddelde tijd dat dit in beslag nam is %{count} dagen. actions_last_year_legend: number_of_actions: Aantal acties months_ago: Maanden geleden totals_first_action: Sinds uw eerste actie op %{date} - totals_action_count: u heeft een totaal van %{count} acties - totals_deferred_actions: waarvan %{count} uitgestelde acties in de tickler zijn legend: number_of_days: Aantal dagen geleden actions: Acties @@ -239,58 +237,59 @@ nl: months_ago: Maanden geleden top10_longrunning: Top 10 langstlopende projecten actions_dow_30days_title: Dag van de week (laatste 30 dagen) + totals_action_count: u heeft een totaal van %{count} acties current_running_time_of_incomplete_visible_actions: Huidige looptijd van onvolledige zichtbare acties + totals_deferred_actions: waarvan %{count} uitgestelde acties in de tickler zijn running_time_legend: actions: Acties percentage: Percentage weeks: Looptijd van een actie (weken). Klik op een balk voor meer info - top5_contexts: Top 5 contexten - actions_lastyear_title: Acties in de afgelopen 12 maanden - totals_actions_completed: "%{count} van deze zijn voltooid." totals_incomplete_actions: U heeft %{count} onvolledige acties totals_unique_tags: Van deze tags zijn %{count} uniek. actions_avg_completed_30days: en voltooide een gemiddelde van %{count} acties per dag. + top5_contexts: Top 5 contexten + actions_lastyear_title: Acties in de afgelopen 12 maanden + totals_actions_completed: "%{count} van deze zijn voltooid." + actions_last_year: Acties in de afgelopen jaren + totals_context_count: U heeft %{count} contexten. totals_visible_context_count: Van deze zijn %{count} zichtbare contexten + projects: Projecten totals_blocked_actions: "%{count} zijn afhankelijk van de voltooiing van hun acties." action_completion_time_title: Doorlooptijd (alle voltooide acties) - actions_last_year: Acties in de afgelopen jaren - projects: Projecten - totals_context_count: U heeft %{count} contexten. - actions_day_of_week_title: Dag van de week (alle acties) - totals_project_count: U heeft %{count} projecten. actions_min_max_completion_days: De max-/minimum dagen tot voltooiing is %{min}/%{max}. actions_min_completion_time: De minimale tijd tot afronding is %{time}. no_tags_available: geen tags beschikbaar + actions_day_of_week_title: Dag van de week (alle acties) + totals_project_count: U heeft %{count} projecten. tags: Tags - tag_cloud_90days_description: Deze tag cloud bevat tags van acties die zijn gemaakt of voltooid in de afgelopen 90 dagen. actions_further: en verder + totals_tag_count: U heeft %{count} tags geplaatst op acties. running_time_all: Huidige looptijd van alle onvolledige acties + actions_30days_title: Acties in de afgelopen 30 dagen time_of_day: Tijd van de dag (alle acties) + totals_hidden_project_count: "%{count} zijn verborgen" tod30: Tijd van de dag (laatste 30 dagen) more_stats_will_appear: Meer statistieken zullen hier verschijnen zodra u acties hebt toegevoegd. + tag_cloud_90days_description: Deze tag cloud bevat tags van acties die zijn gemaakt of voltooid in de afgelopen 90 dagen. top5_visible_contexts_with_incomplete_actions: Top 5 zichtbare contexten met onvolledige acties - totals_tag_count: U heeft %{count} tags geplaatst op acties. - actions_30days_title: Acties in de afgelopen 30 dagen - totals_hidden_project_count: "%{count} zijn verborgen" totals_completed_project_count: en %{count} zijn afgeronde projecten. + click_to_return: Klik %{link} om terug te keren naar de statistieken pagina. top10_projects_30days: Top 10 project in de laatste 30 dagen + spread_of_running_actions_for_visible_contexts: Verdeling van actieve acties voor zichtbare contexten actions_selected_from_week: Gekozen acties van week + spread_of_actions_for_all_context: Verdeling van acties voor alle contexten click_to_show_actions_from_week: Klik %{link} om de acties van week %{week} en verder te zien. + other_actions_label: (anderen) top10_projects: Top 10 projecten actions_avg_created: In de afgelopen 12 maanden heeft u gemiddeld%{count} acties aangemaakt - click_to_return: Klik %{link} om terug te keren naar de statistieken pagina. - spread_of_running_actions_for_visible_contexts: Verdeling van actieve acties voor zichtbare contexten - spread_of_actions_for_all_context: Verdeling van acties voor alle contexten - other_actions_label: (anderen) actions_avg_completed: en voltooide een gemiddelde van %{count} acties per maand. totals: Totalen - contexts: Contexten time_of_day_legend: number_of_actions: Aantal acties time_of_day: Tijd van de dag + contexts: Contexten click_to_return_link: hier totals_hidden_context_count: en %{count} zijn verborgen contexten. - no_actions_selected: Er zijn geen acties geselecteerd. click_to_update_actions: Klik op een balk in de grafiek op de acties hieronder aan te passen. labels: month_avg_completed: "%{months} gem afgerond per maand" @@ -299,6 +298,7 @@ nl: avg_created: Gem gemaakt avg_completed: Gem afgerond created: Gemaakt + no_actions_selected: Er zijn geen acties geselecteerd. running_time_all_legend: actions: Acties percentage: Percentage @@ -309,17 +309,17 @@ nl: time_of_day: Tijd van de dag action_selection_title: "TRACKS:: Actie selectie" todos: + completed_actions: Voltooide acties show_from: Toon vanaf error_starring_recurring: Kon niet de ster van deze terugkerende actie niet omgezetten \'%{description}\' recurring_action_deleted: Actie werd verwijderd. Omdat deze actie herhalend is. werd een nieuwe actie toegevoegd - completed_actions: Voltooide acties completed_rest_of_previous_month: Afgerond in de rest van de vorige maand - blocked_by: Geblokkeerd door %{predecessors} completed_recurring: Afgesloten terugkerende todos added_new_next_action: Nieuwe actie toegevoegd - defer_date_after_due_date: Uitsteldatum is na de vervaldag. Gelieve vervaldag bewerken alvorens uitsteldatum aan te passen. - star_action: Markeer deze actie met een ster + blocked_by: Geblokkeerd door %{predecessors} completed_recurrence_completed: Er is geen actie na de terugkerende actie die u new verwijderd heeft. De herhaling is voltooid + star_action: Markeer deze actie met een ster + defer_date_after_due_date: Uitsteldatum is na de vervaldag. Gelieve vervaldag bewerken alvorens uitsteldatum aan te passen. unable_to_add_dependency: Niet in staat om de afhankelijkheid toe te voegen done: Voltooid? star_action_with_description: markeer de actie '%{description}' met een ster @@ -327,68 +327,68 @@ nl: completed: Afgerond no_deferred_actions_with: Geen uitgestelde acties met de tag '%{tag_name}' no_hidden_actions: Momenteel zijn er geen verborgen acties gevonden - action_due_on: (deadline actie op %{date}) edit_action_with_description: Bewerk de actie '%{description}' + action_due_on: (deadline actie op %{date}) tags: Tags (gescheiden door komma's) archived_tasks_title: "TRACKS:: Gearchiveerde voltooide taken" remove_dependency: Verwijder afhankelijkheid (zal niet de actie zelf verwijderen) list_incomplete_next_actions: Toon onvoltooide acties action_deleted_success: Actie succesvol verwijderd - add_another_dependency: Nog een afhankelijkheid toevoegen + mobile_todos_page_title: Alle acties new_related_todo_created: Een nieuwe actie is toegevoegd, die behoort bij deze terugkerende todo context_changed: Context veranderd in '%{name}' - mobile_todos_page_title: Alle acties + add_another_dependency: Nog een afhankelijkheid toevoegen delete_recurring_action_title: Verwijder de terugkerende actie - recurring_actions_title: TRACKS::Terugkerende acties removed_predecessor: "'%{successor}' is verwijderd als afhankelijkheid van '%{predecessor}'." + recurring_actions_title: TRACKS::Terugkerende acties next_action_needed: U dient ten minste een actie in te vullen - scheduled_overdue: Gepland om %{days} dagen geleden te tonen action_saved: Actie opgeslagen + scheduled_overdue: Gepland om %{days} dagen geleden te tonen action_deleted_error: Verwijderen van de actie is mislukt edit_action: Actie bewerken added_new_context: Nieuwe context toegevoegd next_actions_description: "Filter:" - older_completed_items: Oudere voltooide items - list_incomplete_next_actions_with_limit: Toont de laatste %{count} onvoltooide acties - set_to_pending: "'%{task}' als wachtend ingesteld" - added_new_project: Nieuw project toegevoegd next_actions_title_additions: completed: acties voltooid due_today: deadline vandaag due_within_a_week: deadline binnen een week - task_list_title: TRACKS::Toon acties - append_in_this_project: in dit project + list_incomplete_next_actions_with_limit: Toont de laatste %{count} onvoltooide acties + set_to_pending: "'%{task}' als wachtend ingesteld" + added_new_project: Nieuw project toegevoegd + older_completed_items: Oudere voltooide items error_deleting_item: Er is een fout opgetreden bij het verwijderen van het item '%{description}' + append_in_this_project: in dit project + task_list_title: TRACKS::Toon acties no_actions_due_this_week: Geen acties met deadline in rest van deze week - error_completing_todo: Er was een fout bij het voltooien / activeren van de terugkerende actie '%{description}' no_recurring_todos: Momenteel zijn er geen terugkerende acties + error_completing_todo: Er was een fout bij het voltooien / activeren van de terugkerende actie '%{description}' recurring_pattern_removed: Het herhalingspatroon is verwijderd van %{count} convert_to_project: Maak project no_deferred_pending_actions: Momenteel zijn er geen uitgestelde of wachtende acties - delete_recurring_action_confirm: Weet u zeker dat u wilt de terugkerende actie '%{description}' wilt verwijderen? completed_last_day: Voltooid in de laatste 24 uur - no_project: -- Geen project -- + delete_recurring_action_confirm: Weet u zeker dat u wilt de terugkerende actie '%{description}' wilt verwijderen? show_in_days: Toon over %{days} dagen + no_project: -- Geen project -- error_saving_recurring: Er is een fout opgetreden het opslaan van de terugkerende actie '%{description}' completed_more_than_x_days_ago: Voltooid meer dan %{count} dagen geleden - new_related_todo_created_short: een nieuwe actie gemaakt - feed_title_in_context: in context '%{context}' all_completed: Alle afgeronde acties + feed_title_in_context: in context '%{context}' + new_related_todo_created_short: een nieuwe actie gemaakt older_than_days: Ouder dan %{count} dagen completed_tagged_page_title: "TRACKS:: Afgeronde acties met tag %{tag_name}" edit: Bewerken pending: Wachtend completed_actions_with: Afgeronde acties met de tag %{tag_name} - feed_title_in_project: In het project '%{project}' deleted_success: De actie werd met succes verwijderd. completed_tasks_title: TRACKS::Voltooide taken + feed_title_in_project: In het project '%{project}' clear_due_date: Maak deadline leeg error_removing_dependency: Er is een fout opgetreden het verwijderen van de afhankelijke actie hidden_actions: Verborgen acties - deferred_actions_with: Uitgestelde acties met de tag '%{tag_name}' was_due_on_date: had deadline op %{date} show_on_date: Toon op %{date} recurrence_period: Herhaling periode + deferred_actions_with: Uitgestelde acties met de tag '%{tag_name}' confirm_delete: Weet u zeker dat u de actie '%{description}' wilt verwijderen? recurring_deleted_success: De recurrente actie is succesvol verwijderd. next_actions_title: Tracks - Acties @@ -396,17 +396,17 @@ nl: deferred_tasks_title: TRACKS::Tickler no_completed_actions_with: Geen voltooide acties met de tag '%{tag_name}' clear_show_from_date: Maak de datum Tonen Vanaf leeg + unresolved_dependency: De waarde die u ingevoerd heeft in het afhankelijkheden veld is niet herleidbaar naar een bestaande actie. Deze waarde wordt niet bewaard met de rest van de actie. Doorgaan? calendar_page_title: TRACKS::Agenda in_hidden_state: in verborgen toestand - unresolved_dependency: De waarde die u ingevoerd heeft in het afhankelijkheden veld is niet herleidbaar naar een bestaande actie. Deze waarde wordt niet bewaard met de rest van de actie. Doorgaan? + show_today: Toon vandaag + no_actions_found_title: Geen acties gevonden next_actions_due_date: overdue_by: Over deadline met %{days} dag due_today: Deadline vandaag due_in_x_days: Deadline over %{days} dagen overdue_by_plural: Over deadline met %{days} dagen due_tomorrow: Deadline morgen - show_today: Toon vandaag - no_actions_found_title: Geen acties gevonden completed_last_x_days: Voltooid in de laatste %{count} dagen no_actions_with: Momenteel zijn er geen onvoltooide acties met de tag '%{tag_name}' defer_x_days: @@ -425,21 +425,20 @@ nl: delete_action: Verwijder actie error_deleting_recurring: Er is een fout opgetreden bij het verwijderen van het item \'%{description}\' delete: Verwijder - no_last_completed_actions: Geen afgeronde acties gevonden drag_action_title: Sleep naar een andere actie om deze afhankelijk te maken van die actie cannot_add_dependency_to_completed_todo: Kan deze actie niet als een afhankelijkheid van een voltooide actie toevoegen! - action_marked_complete: De actie '%{description}' werd gemarkeerd als %{completed} + no_last_completed_actions: Geen afgeronde acties gevonden depends_on: Hangt af van tickler_items_due: one: Een tickler item wordt nu zichtbaar - vernieuw de pagina om het te zien. other: "%{count} tickerl items zijn nu zichtbaar - vernieuw de pagina om ze te zien." - new_related_todo_not_created_short: een nieuwe actie is niet gemaakt - completed_today: - one: U heeft een actie tot nu toe vandaag voltooid. - other: U heeft %{count} acties tot nu toe vandaag voltooid. + action_marked_complete: De actie '%{description}' werd gemarkeerd als %{completed} + completed_today: Vandaag afgerond added_new_next_action_plural: Nieuwe acties toegevoegd + new_related_todo_not_created_short: een nieuwe actie is niet gemaakt completed_rest_of_week: Afgerond in de rest van deze week error_starring: Kon niet de ster van deze actie niet omzetten \'%{description}\' + show_tomorrow: Toon morgen calendar: get_in_ical_format: Ontvang deze agenda in iCal-formaat due_next_week: Deadline volgende week @@ -451,20 +450,19 @@ nl: no_actions_due_after_this_month: Geen acties met deadline na deze maand due_this_month: Deadline in rest van %{month} no_actions_due_this_month: Geen acties met deadline in de rest van deze maand - show_tomorrow: Toon morgen + tagged_page_title: TRACKS::Tagged met '%{tag_name}' recurrence: + ends_on_number_times: Eindigt na %{number} keer ends_on_date: Eindigt op %{date} every_work_day: Elke werkdag - ends_on_number_times: Eindigt na %{number} keer recurrence_on_due_date: de datum dat deadline van de actie is weekly_options: Instellingen voor de wekelijkse terugkerende acties - monthly_options: Instellingen voor maandelijks terugkerende acties weekly: Wekelijks + monthly_options: Instellingen voor maandelijks terugkerende acties daily_options: Instellingen voor dagelijks terugkerende acties monthly: Maandelijks starts_on: Begint op daily: Dagelijks - show_option_always: altijd pattern: third: derde month_names: @@ -482,18 +480,19 @@ nl: - november - december every_n: elke %{n} - on_day_n: op dag %{n} - second: tweede every_xth_day_of_every_n_months: elke %{x} %{day} van elke %{n_months} + second: tweede + on_day_n: op dag %{n} weekly: wekelijks from: vanaf last: laatste every_day: elke dag - the_xth_day_of_month: de %{x} %{day} van %{month} times: voor %{number} keer - every_year_on: elk jaar op %{date} - first: eerste + the_xth_day_of_month: de %{x} %{day} van %{month} show: Tonen + first: eerste + every_year_on: elk jaar op %{date} + on_work_days: op werkdagen day_names: - zondag - maandag @@ -502,59 +501,58 @@ nl: - donderdag - vrijdag - zaterdag - on_work_days: op werkdagen fourth: vierde due: Deadline - until: tot every_month: elke maand + until: tot + show_option_always: altijd yearly_every_x_day: Elke %{month} %{day} recurrence_on_options: Stel herhaling in op daily_every_number_day: Elke %{number} dag(en) show_options: Toon de actie - ends_on: Eindigt op weekly_every_number_week: Herhaalt elke %{number} weken op + ends_on: Eindigt op yearly_options: Instellingen voor jaarlijks terugkerende acties show_days_before: "%{days} dagen v\xC3\xB3\xC3\xB3r de deadline van actie" from_tickler: de datum dat de actie uit de tickler komt (geen deadline ingesteld) - yearly_every_xth_day: De %{day} %{day_of_week} van %{month} no_end_date: Geen einddatum + yearly_every_xth_day: De %{day} %{day_of_week} van %{month} day_x_on_every_x_month: Dag %{day} op elke %{month} maand - yearly: Jaarlijks monthly_every_xth_day: De %{day} %{day_of_week} van elke %{month} maand - tagged_page_title: TRACKS::Tagged met '%{tag_name}' + yearly: Jaarlijks no_completed_recurring: Momenteel zijn er geen voltooide terugkerende acties added_dependency: "%{dependency} als afhankelijkheid toegevoegd." all_completed_tagged_page_title: "TRACKS:: Alle afgeronde acties met tag %{tag_name}" no_deferred_actions: Momenteel zijn er geen uitgestelde acties. completed_rest_of_month: Afgerond in de rest van deze maand recurrence_completed: Er is geen volgende actie na de terugkerende actie die u zojuist hebt voltooid. De herhaling is voltooid - no_actions_found: Momenteel zijn er geen onafgeronde acties. in_pending_state: in wachtende toestand + no_actions_found: Momenteel zijn er geen onafgeronde acties. error_toggle_complete: Kon deze actie niet als afgerond markeren due: Deadline action_marked_complete_error: De actie '%{description}' is niet gemarkeerd als %{completed} vanwege een fout op de server. + depends_on_separate_with_commas: Afhankelijk van (gescheiden door komma's) + recurring_action_saved: Terugkerende actie opgeslagen + action_saved_to_tickler: Actie opgeslagen in tickler completed_in_archive: one: Er is een voltooide actie in het archief. other: Er zijn %{count} afgeronde acties in het archief. - no_incomplete_actions: Er zijn geen onvoltooide acties - depends_on_separate_with_commas: Afhankelijk van (gescheiden door komma's) - action_saved_to_tickler: Actie opgeslagen in tickler - recurring_action_saved: Terugkerende actie opgeslagen to_tickler: naar tickler next_actions_description_additions: completed: in de afgelopen %{count} dagen due_date: met een deadline %{due_date} of eerder overdue: Achterstallig + no_incomplete_actions: Er zijn geen onvoltooide acties add_new_recurring: Voeg een nieuwe terugkerende actie toe notes: + delete_confirmation: Weet u zeker dat u de notitie '%{id}' wilt verwijderen? delete_item_title: Verwijder item delete_note_title: Verwijder de notitie '%{id}' - delete_confirmation: Weet u zeker dat u de notitie '%{id}' wilt verwijderen? deleted_note: Verwijder notitie '%{id}' note_link_title: Toon notitie %{id} show_note_title: Toon notitie - note_location_link: "In:" edit_item_title: Item bewerken + note_location_link: "In:" no_notes_available: "Momenteel zijn er geen notities: voeg notities toe aan projecten vanaf de individuele project pagina's." note_header: Notitie %{id} delete_note_confirm: Weet u zeker dat u de notitie '%{id}' wilt verwijderen? @@ -563,10 +561,10 @@ nl: completed: Afgerond completed_plural: Afgeronde visible_plural: Zichtbare - active_plural: Actieve visible: Zichtbaar - hidden: Verborgen + active_plural: Actieve active: Actief + hidden: Verborgen time: am: ochtend formats: @@ -577,22 +575,24 @@ nl: long: "%A, %d. %B %Y, %H:%M" pm: middag projects: + default_context_set: Stel project standaard context in op %{default_context} + no_actions_in_project: Momenteel zijn er geen onafgeronde acties in dit project deferred_actions: Uitgestelde acties voor dit project was_marked_hidden: is gemarkeerd als verborgen edit_project_title: Bewerk project default_tags_removed_notice: De standaard tags zijn verwijderd - default_context_set: Stel project standaard context in op %{default_context} - no_actions_in_project: Momenteel zijn er geen onafgeronde acties in dit project hide_form: Verberg formulier page_title: "TRACKS:: Project: %{project}" + all_completed_tasks_title: TRACKS::Toon alle afgeronde acties in het project '{project_name}' this_project: Dit project project_state: Project is %{state}. show_form_title: Maak een nieuw project + list_completed_projects: TRACKS::Toon afgeronde projecten to_new_project_page: Ga naar de nieuwe projectpagina no_notes_attached: Momenteel zijn er geen notities toegevoegd aan dit project deferred_actions_empty: Er zijn geen uitgestelde acties voor dit project - no_last_completed_projects: Geen afgeronde projecten gevonden notes: Notities + no_last_completed_projects: Geen afgeronde projecten gevonden todos_append: in dit project no_projects: Momenteel zijn er geen projecten hide_form_title: Verberg nieuw project formulier @@ -600,52 +600,53 @@ nl: with_no_default_context: zonder standaard context delete_project: Project verwijderen completed_actions_empty: Er zijn nog geen afgeronde acties voor dit project - delete_project_confirmation: Weet u zeker dat u wilt het project '%{name} wilt verwijderen? with_default_context: met een standaard context '%{context_name}' show_form: Toevoegen van een project actions_in_project_title: Acties in dit project + delete_project_confirmation: Weet u zeker dat u wilt het project '%{name} wilt verwijderen? + project_saved_status: Project opgeslagen add_project: Voeg project toe + add_note: Een notitie toevoegen set_default_tags_notice: Stel project standaard tags in op %{default_tags} + is_active: is actief settings: Instellingen + completed_projects: Voltooide projecten with_default_tags: en met '%{tags}' als de standaard tags list_projects: "TRACKS:: Overzicht van projecten" - project_saved_status: Project opgeslagen - add_note: Een notitie toevoegen - is_active: is actief - completed_projects: Voltooide projecten - hidden_projects: Verborgen projecten delete_project_title: Verwijder het project + completed_tasks_title: TRACKS::Toon afgeronde acties in het project '%{project_name}' + hidden_projects: Verborgen projecten default_context_removed: Standaard context verwijderd add_note_submit: Notitie toevoegen completed_actions: Afgeronde acties voor dit project was_marked_complete: is gemarkeerd als voltooid + edit_project_settings: Bewerk project instellingen default_context: De standaard context voor dit project is %{context} active_projects: Actieve projecten status_project_name_changed: Naam van het project werd gewijzigd no_default_context: Dit project heeft geen standaard context - with_no_default_tags: en zonder standaard tags state: Dit project is %{state} - edit_project_settings: Bewerk project instellingen + with_no_default_tags: en zonder standaard tags errors: user_unauthorized: "401 Unauthorized: Alleen administratieve gebruikers mogen deze functie gebruiken." preferences: + change_identity_url: Verander uw Identity URL staleness_starts_after: Markeren openstaande acties begint na %{days} dagen open_id_url: Uw OpenID URL is - change_identity_url: Verander uw Identity URL change_password: Wijzig uw wachtwoord page_title: "TRACKS:: Voorkeuren" title: Uw voorkeuren token_description: Token (voor feeds en API gebruik) is_false: Nee show_number_completed: Toon %{number} voltooide items + is_true: Ja edit_preferences: Voorkeuren bewerken page_title_edit: "TRACKS:: Voorkeuren bewerken" - is_true: Ja sms_context_none: Geen generate_new_token: Genereer een nieuwe token token_header: Uw token - current_authentication_type: Uw authenticatietype is %{auth_type} authentication_header: Uw authenticatie + current_authentication_type: Uw authenticatietype is %{auth_type} change_authentication_type: Verander uw authenticatietype generate_new_token_confirm: Weet u dit zeker? Het genereren van een nieuw token zal de bestaande te vervangen en dit zal het extern gebruiken van de oude token laten mislukken. date: @@ -710,22 +711,6 @@ nl: two_words_connector: en select: prompt: Selecteer - footer: - send_feedback: Stuur reactie op %{version} - shared: - multiple_next_actions: Meerdere acties (een op elke regel) - toggle_single: Voeg een actie toe - hide_form: Verberg formulier - add_action: Actie toevoegen - add_actions: Toevoegen acties - tags_for_all_actions: Tags voor alle acties (scheiden met een komma) - toggle_single_title: Voeg een nieuwe actie toe - project_for_all_actions: Project voor alle acties - context_for_all_actions: Context voor alle acties - toggle_multi: Voeg meerdere acties toe - separate_tags_with_commas: gescheiden door komma's - toggle_multi_title: Toggle single / multi actie formulier - hide_action_form_title: Verberg nieuwe actie formulier dates: month_names: - Januari @@ -748,56 +733,29 @@ nl: - Donderdag - Vrijdag - Zaterdag - users: - auth_type_update_error: "Er was een probleem met het bijwerken van uw authenticatietype: %{error_messages}" - destroy_successful: Gebruiker %{login} met succes verwijderd - successfully_deleted_user: Succesvol gebruiker %{username} verwijderd - total_contexts: Totaal aantal contexten - failed_to_delete_user: Mislukt de gebruiker %{username} te verwijderen - first_user_heading: "Welkom bij TRACKS. Om te beginnen, maak dan een admin account:" - openid_url_verified: Je hebt %{url} met succes geverifieerd als je identiteit en uw authenticatie type OpenID opgeslagen. - new_token_generated: Nieuwe token met succes gegenereerd - total_projects: Totaal aantal projecten - signup_successful: Aanmelding succesvol voor gebruiker %{username}. - change_password_submit: Wachtwoord wijzigen - no_signups_title: "TRACKS:: Geen nieuwe aanmeldingen" - user_created: Gebruiker aangemaakt. - manage_users: Beheren gebruikers - account_signup: Aanmelden voor een account - password_updated: Wachtwoord bijgewerkt. - confirm_password: Bevestig wachtwoord - new_user_heading: "Registreer een nieuwe gebruiker:" - signup: Aanmelden - auth_type_updated: Authenticatietype bijgewerkt. - total_actions: Totaal aanal acties - desired_login: Gewenste login - change_auth_type_title: TRACKS::Wijzig authenticatietype - change_password_prompt: Voer uw nieuwe wachtwoord in de onderstaande velden in en kies 'Wachtwoord wijzigen' om uw huidige wachtwoord met uw nieuwe te vervangen. - password_confirmation_label: Bevestig wachtwoord - destroy_error: Er is een fout opgetreden bij het verwijderen van de gebruiker '%{login}' - choose_password: Kies een wachtwoord - change_password_title: TRACKS::Wachtwoord wijzigen - label_auth_type: Authenticatietype - new_password_label: Nieuw wachtwoord - register_with_cas: Met uw CAS gebruikersnaam - new_user_title: "TRACKS:: Aanmelden als de admin gebruiker" - destroy_user: Verwijder de gebruiker - total_users_count: Je hebt een totaal van %{count} gebruikers - destroy_confirmation: "Waarschuwing: dit zal de gebruiker '%{login} verwijderen met al zijn acties, contexten, projecten en notities. Weet u zeker dat u wilt doorgaan?" - signup_new_user: Registreer nieuwe gebruiker - openid_ok_pref_failed: Je hebt succesvol de %{url} geverifieerd als je identiteit, maar er was een probleem met het opslaan van uw authenticatie voorkeuren. - change_authentication_type: Wijzigen authenticatietype - identity_url: Identiteit URL - auth_change_submit: Wijzigen authenticatietype - total_notes: Totaal aantal notities - select_authentication_type: Selecteer uw nieuwe authenticatie type en klik op 'Wijzigen authenticatietype' om uw huidige instellingen te vervangen. + footer: + send_feedback: Stuur reactie op %{version} + shared: + multiple_next_actions: Meerdere acties (een op elke regel) + hide_form: Verberg formulier + toggle_single: Voeg een actie toe + add_action: Actie toevoegen + add_actions: Toevoegen acties + tags_for_all_actions: Tags voor alle acties (scheiden met een komma) + context_for_all_actions: Context voor alle acties + toggle_multi: Voeg meerdere acties toe + toggle_single_title: Voeg een nieuwe actie toe + project_for_all_actions: Project voor alle acties + separate_tags_with_commas: gescheiden door komma's + toggle_multi_title: Toggle single / multi actie formulier + hide_action_form_title: Verberg nieuwe actie formulier feedlist: choose_context: Kies de context waar je een feed van wilt actions_due_today: Acties die vandaag of eerder af moeten - legend: Legenda - rss_feed: RSS Feed ical_feed: iCal feed + legend: Legenda all_contexts: Alle contexten + rss_feed: RSS Feed choose_project: Kies het project waar je een feed van wilt all_projects: Alle projecten project_needed: "Er moet ten minste \xC3\xA9\xC3\xA9n project zijn voor een feed opgevraagd kan worden" @@ -807,24 +765,61 @@ nl: projects_and_actions: Actieve projecten met hun acties context_needed: "Er moet eerst ten minste \xC3\xA9\xC3\xA9n context zijn voor je een feed kan opvragen" select_feed_for_context: Kies de feed voor deze context - actions_due_next_week: Acties die binnen 7 dagen afgerond moeten notice_incomplete_only: "Merk op: alle feeds laten alleen acties zien die niet afgerond zijn, tenzij anders vermeld." + actions_due_next_week: Acties die binnen 7 dagen afgerond moeten plain_text_feed: Reguliere tekst feed last_fixed_number: Laatste %{number} acties all_actions: Alle acties actions_completed_last_week: Acties afgerond in de afgelopen 7 dagen context_centric_actions: Feeds voor onafgeronde acties in een specifieke context project_centric: Feeds voor onafgeronde acties in een specifiek project - sidebar: - list_name_active_contexts: Actieve contexten - list_name_active_projects: Actieve projecten - list_empty: Geen - list_name_completed_projects: Voltooide projecten - list_name_hidden_projects: Verborgen projecten - list_name_hidden_contexts: Verborgen contexten + users: + total_contexts: Totaal aantal contexten + failed_to_delete_user: Mislukt de gebruiker %{username} te verwijderen + first_user_heading: "Welkom bij TRACKS. Om te beginnen, maak dan een admin account:" + auth_type_update_error: "Er was een probleem met het bijwerken van uw authenticatietype: %{error_messages}" + openid_url_verified: Je hebt %{url} met succes geverifieerd als je identiteit en uw authenticatie type OpenID opgeslagen. + destroy_successful: Gebruiker %{login} met succes verwijderd + successfully_deleted_user: Succesvol gebruiker %{username} verwijderd + new_token_generated: Nieuwe token met succes gegenereerd + total_projects: Totaal aantal projecten + signup_successful: Aanmelding succesvol voor gebruiker %{username}. + change_password_submit: Wachtwoord wijzigen + no_signups_title: "TRACKS:: Geen nieuwe aanmeldingen" + user_created: Gebruiker aangemaakt. + account_signup: Aanmelden voor een account + manage_users: Beheren gebruikers + password_updated: Wachtwoord bijgewerkt. + signup: Aanmelden + confirm_password: Bevestig wachtwoord + new_user_heading: "Registreer een nieuwe gebruiker:" + auth_type_updated: Authenticatietype bijgewerkt. + total_actions: Totaal aanal acties + desired_login: Gewenste login + change_password_title: TRACKS::Wachtwoord wijzigen + change_auth_type_title: TRACKS::Wijzig authenticatietype + change_password_prompt: Voer uw nieuwe wachtwoord in de onderstaande velden in en kies 'Wachtwoord wijzigen' om uw huidige wachtwoord met uw nieuwe te vervangen. + password_confirmation_label: Bevestig wachtwoord + destroy_error: Er is een fout opgetreden bij het verwijderen van de gebruiker '%{login}' + choose_password: Kies een wachtwoord + label_auth_type: Authenticatietype + new_password_label: Nieuw wachtwoord + register_with_cas: Met uw CAS gebruikersnaam + new_user_title: "TRACKS:: Aanmelden als de admin gebruiker" + destroy_user: Verwijder de gebruiker + total_users_count: Je hebt een totaal van %{count} gebruikers + destroy_confirmation: "Waarschuwing: dit zal de gebruiker '%{login} verwijderen met al zijn acties, contexten, projecten en notities. Weet u zeker dat u wilt doorgaan?" + signup_new_user: Registreer nieuwe gebruiker + openid_ok_pref_failed: Je hebt succesvol de %{url} geverifieerd als je identiteit, maar er was een probleem met het opslaan van uw authenticatie voorkeuren. + auth_change_submit: Wijzigen authenticatietype + identity_url: Identiteit URL + change_authentication_type: Wijzigen authenticatietype + select_authentication_type: Selecteer uw nieuwe authenticatie type en klik op 'Wijzigen authenticatietype' om uw huidige instellingen te vervangen. + total_notes: Totaal aantal notities contexts: delete_context_title: Verwijder context hide_form: Verberg formulier + all_completed_tasks_title: "TRACKS:: Alle voltooide acties in context '%{context_name}'" show_form_title: Voeg een context toe delete_context_confirmation: Weet u zeker dat u de context '%{name}' wilt verwijderen? Merk op dat dit ook alle (herhalende) acties in deze context zal verwijderen! delete_context: Verwijder context @@ -833,20 +828,28 @@ nl: no_contexts_active: Momenteel zijn er geen actieve contexten context_hide: Verberg van de start pagina? hidden_contexts: Verborgen contexten - visible_contexts: Zichtbare contexten save_status_message: Context bewaard show_form: Maak een nieuwe context add_context: Context toevoegen + visible_contexts: Zichtbare contexten context_name: Context naam update_status_message: Naam van de context was veranderd + completed_tasks_title: "TRACKS:: Voltooid acties in de context '%{context_name}'" status_active: Context is actief new_context_post: "' zal ook gemaakt worden. Weet u dit zeker?" + no_actions: Momenteel zijn er geen onafgeronde acties in deze context last_completed_in_context: in deze context (laatste %{number}) context_deleted: De context '%{name}' is verwijderd no_contexts_hidden: Momenteel zijn er geen verborgen contexten new_context_pre: Nieuwe context ' - no_actions: Momenteel zijn er geen onafgeronde acties in deze context status_hidden: Context is verborgen + sidebar: + list_name_active_contexts: Actieve contexten + list_name_active_projects: Actieve projecten + list_empty: Geen + list_name_completed_projects: Voltooide projecten + list_name_hidden_projects: Verborgen projecten + list_name_hidden_contexts: Verborgen contexten datetime: prompts: minute: Minuut @@ -897,30 +900,30 @@ nl: openid_identity_url_not_found: Sorry, geen gebruiker met die identiteit URL bestaat (%{identity_url}) user_no_expiry: Blijf ingelogd sign_in: Meld aan + cas_logged_in_greeting: Hallo, %{username}! U bent geauthenticeerd. + cas_no_user_found: Hallo,%{username}! Je hebt nog geen account op Tracks. cas_login: CAS Inloggen successful_with_session_info: "Login succesvol:" please_login: Log in om Tracks te gebruiken - cas_logged_in_greeting: Hallo, %{username}! U bent geauthenticeerd. - cas_no_user_found: Hallo,%{username}! Je hebt nog geen account op Tracks. cas_username_not_found: Sorry, geen gebruiker met die CAS gebruikersnaam bestaat (%{username}) - mobile_use_openid: ... if inloggen met een OpenID cas_create_account: Als u willen vragen ga hier om %{signup_link} + mobile_use_openid: ... if inloggen met een OpenID cas_signup_link: Aanvragen account account_login: Account login session_will_not_expire: sessie zal niet verlopen. successful: Succesvol aangemeld. Welkom terug! - session_will_expire: sessie zal verlopen na %{hours} u(u)r(en) van inactiviteit. option_separator: of, session_time_out: Sessie is verlopen. Gelieve %{link} + session_will_expire: sessie zal verlopen na %{hours} u(u)r(en) van inactiviteit. login_standard: Ga terug naar de standaard login - log_in_again: opnieuw in te loggen. logged_out: Je bent afgemeld bij Tracks. login_with_openid: inloggen met een OpenID unsuccessful: Login mislukt. + log_in_again: opnieuw in te loggen. search: contexts_matching_query: Contexten passend bij zoekopdracht tags_matching_query: Tags passend bij zoekopdracht - todos_matching_query: Todos passend bij zoekopdracht projects_matching_query: Projecten passend bij zoekopdracht notes_matching_query: Notities passend bij zoekopdracht no_results: Uw zoekopdracht heeft geen resultaten opgeleverd. + todos_matching_query: Todos passend bij zoekopdracht diff --git a/features/step_definitions/generic_steps.rb b/features/step_definitions/generic_steps.rb index 41513295..9e12cfde 100644 --- a/features/step_definitions/generic_steps.rb +++ b/features/step_definitions/generic_steps.rb @@ -49,3 +49,8 @@ Then /^I should see an error flash message saying "([^"]*)"$/ do |message| text = response.selenium.get_text("xpath=#{xpath}") text.should == message end + +Then /^I should see "([^"]*)" $/ do |text| + Then "I should see \"#{text}\"" +end + diff --git a/features/support/paths.rb b/features/support/paths.rb index 5703b413..a2e4e786 100644 --- a/features/support/paths.rb +++ b/features/support/paths.rb @@ -7,9 +7,9 @@ module NavigationHelpers # def path_to(page_name) options = @mobile_interface ? {:format => :m} : {} - options.merge({:locale => @locale}) unless @locale.blank? - puts "@@@ l=#{@locale} sv = #{@source_view}- #{options}" + options = {:locale => @locale}.merge(options) if @locale @source_view = nil + case page_name when /the home\s?page/ diff --git a/features/view_done.feature b/features/view_done.feature index 6a9e4dcb..5dd1c7f6 100644 --- a/features/view_done.feature +++ b/features/view_done.feature @@ -140,18 +140,18 @@ Feature: Show done When I mark the complete todo "todo 1" active Then I should not see "todo 1" When I go to the - Then I should see "todo 1" in the context container for "@pc" + Then I should see "todo 1" Scenarios: - | page | next page | - | done actions page | home page | - | all done actions page | home page | - | done actions page for context "@pc" | context page for "@pc" | - | done actions page for project "test project" | "test project" project | - | done actions page for tag "starred" | home page | - | all done actions page for context "@pc" | context page for "@pc" | - | all done actions page for project "test project"| "test project" project | - | all done actions page for tag "starred" | home page | + | page | next page | where | + | done actions page | home page | in the context container for "@pc" | + | all done actions page | home page | in the context container for "@pc" | + | done actions page for context "@pc" | context page for "@pc" | | + | done actions page for project "test project" | "test project" project | | + | done actions page for tag "starred" | home page | in the context container for "@pc" | + | all done actions page for context "@pc" | context page for "@pc" | | + | all done actions page for project "test project"| "test project" project | | + | all done actions page for tag "starred" | home page | in the context container for "@pc" | @selenium Scenario Outline: I can toggle the star of a todo from the done pages @@ -175,7 +175,6 @@ Feature: Show done Scenario: I can edit a project to active from the project done page Given this scenario is pending - @wip Scenario Outline: All pages are internationalized Given I set the locale to "" When I go to the From 02d5abd5b8661b170cfb825b23d6846f95aba79b Mon Sep 17 00:00:00 2001 From: Reinier Balt Date: Sat, 9 Jul 2011 17:27:13 +0200 Subject: [PATCH 061/197] Merge branches 'done_view' and 'master' From ed2154b94bd7e9dcff5bb6ce4597b324707816d9 Mon Sep 17 00:00:00 2001 From: Reinier Balt Date: Sat, 9 Jul 2011 17:46:52 +0200 Subject: [PATCH 062/197] fix #953 by adding tags to the xml returned by the REST API --- app/controllers/todos_controller.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/controllers/todos_controller.rb b/app/controllers/todos_controller.rb index 97a15a49..12dbba66 100644 --- a/app/controllers/todos_controller.rb +++ b/app/controllers/todos_controller.rb @@ -230,7 +230,7 @@ class TodosController < ApplicationController @return_path=cookies[:mobile_url] ? cookies[:mobile_url] : mobile_path render :action => 'show' end - format.xml { render :xml => @todo.to_xml( :root => 'todo', :except => :user_id ) } + format.xml { render :xml => @todo.to_xml( :root => 'todo', :except => :user_id, :include => [:tags] ) } end end From 174becee81cb4f87f44ee30070ce41d50e767637 Mon Sep 17 00:00:00 2001 From: Reinier Balt Date: Sat, 9 Jul 2011 18:47:30 +0200 Subject: [PATCH 063/197] fix #1078 and document it on the REST_API page --- app/controllers/todos_controller.rb | 40 +++++++++++++++++++----- app/views/integrations/rest_api.html.erb | 29 ++++++++++++----- config/routes.rb | 21 +++++++------ 3 files changed, 67 insertions(+), 23 deletions(-) diff --git a/app/controllers/todos_controller.rb b/app/controllers/todos_controller.rb index 12dbba66..058dfd5c 100644 --- a/app/controllers/todos_controller.rb +++ b/app/controllers/todos_controller.rb @@ -26,7 +26,7 @@ class TodosController < ApplicationController respond_to do |format| format.html &render_todos_html format.m &render_todos_mobile - format.xml { render :xml => @todos.to_xml( :except => :user_id ) } + format.xml { render :xml => @todos.to_xml( *to_xml_params ) } format.rss &render_rss_feed format.atom &render_atom_feed format.text &render_text_feed @@ -230,7 +230,7 @@ class TodosController < ApplicationController @return_path=cookies[:mobile_url] ? cookies[:mobile_url] : mobile_path render :action => 'show' end - format.xml { render :xml => @todo.to_xml( :root => 'todo', :except => :user_id, :include => [:tags] ) } + format.xml { render :xml => @todo.to_xml( *to_xml_params ) } end end @@ -305,7 +305,7 @@ class TodosController < ApplicationController end render end - format.xml { render :xml => @todo.to_xml( :except => :user_id ) } + format.xml { render :xml => @todo.to_xml( *to_xml_params ) } format.html do if @saved # TODO: I think this will work, but can't figure out how to test it @@ -325,7 +325,7 @@ class TodosController < ApplicationController @saved = true # cannot determine error respond_to do |format| format.js - format.xml { render :xml => @todo.to_xml( :except => :user_id ) } + format.xml { render :xml => @todo.to_xml( *to_xml_params ) } format.html { redirect_to request.referrer} end end @@ -345,7 +345,7 @@ class TodosController < ApplicationController respond_to do |format| format.js { render :action => :update } - format.xml { render :xml => @todo.to_xml( :except => :user_id ) } + format.xml { render :xml => @todo.to_xml( *to_xml_params ) } end end @@ -385,7 +385,7 @@ class TodosController < ApplicationController @status_message = t('todos.added_new_project') + ' / ' + @status_message if @new_project_created @status_message = t('todos.added_new_context') + ' / ' + @status_message if @new_context_created } - format.xml { render :xml => @todo.to_xml( :except => :user_id ) } + format.xml { render :xml => @todo.to_xml( *to_xml_params ) } format.m do if @saved if cookies[:mobile_url] @@ -473,6 +473,11 @@ class TodosController < ApplicationController @done_this_week = get_done_this_week(completed_todos) @done_this_month = get_done_this_month(completed_todos) @count = @done_today.size + @done_this_week.size + @done_this_month.size + + respond_to do |format| + format.html + format.xml { render :xml => completed_todos.to_xml( *to_xml_params ) } + end end def all_done @@ -497,7 +502,7 @@ class TodosController < ApplicationController respond_to do |format| format.html format.m { render :action => 'mobile_list_deferred' } - format.xml { render :xml => @not_done_todos.to_xml( :except => :user_id ) } + format.xml { render :xml => @not_done_todos.to_xml( *to_xml_params ) } end end @@ -687,6 +692,19 @@ class TodosController < ApplicationController @due_all = current_user.todos.not_completed.are_due.find(:all, :order => "due") render :action => 'calendar', :layout => false, :content_type => Mime::ICS } + format.xml { + @due_all = current_user.todos.not_completed.are_due.find(:all, :order => "due") + render :xml => @due_all.to_xml( *to_xml_params ) + } + end + end + + def list_hidden + @hidden = current_user.todos.hidden + respond_to do |format| + format.xml { + render :xml => @hidden.to_xml( *to_xml_params ) + } end end @@ -754,6 +772,14 @@ class TodosController < ApplicationController private + def to_xml_params + if params[:limit_fields] == 'index' + return [:only => [:id, :created_at, :updated_at, :completed_at] ] + else + return [:except => :user_id, :include => [:tags] ] + end + end + def get_todo_from_params # TODO: this was a :append_before but was removed to tune performance per # method. Reconsider re-enabling it diff --git a/app/views/integrations/rest_api.html.erb b/app/views/integrations/rest_api.html.erb index e4769410..317332ab 100644 --- a/app/views/integrations/rest_api.html.erb +++ b/app/views/integrations/rest_api.html.erb @@ -56,6 +56,10 @@
    • /todos.xml
    • /todos/ID.xml
    • +
    • /tickler.xml
    • +
    • /done.xml
    • +
    • /hidden.xml
    • +
    • /calendar.xml
    • /contexts.xml
    • /contexts/ID.xml
    • /contexts/ID/todos.xml
    • @@ -64,6 +68,17 @@
    • /projects/ID/todos.xml
    +

    For the todo resources (todos, tickler, done, hidden and calendar) you can limit the returned +field to ID, created_at, modified_at, completed_at by adding the parameter +limit_fields and setting it to index. For example:

    + +
    +
    +  $ curl -u username:p4ssw0rd -H "Content-Type: text/xml" \
    +  <%= home_url %>tickler.xml?limit_fields=index
    +
    +
    +

    Writing to the API

    The API provides mechanisms for adding, updating and deleting resources using the HTTP methods PUT, POST and DELETE in combination with the content.

    @@ -173,17 +188,17 @@ $ curl -u username:p4ssw0rd -H "Content-Type: text/xml" \
     
    -$ script/console 
    +$ script/console
     Loading development environment (Rails 1.2.4)
     >> class Context < ActiveResource::Base; end
     => nil
     >> Context.site = "<%= home_url %>"
    -=> "<%= home_url %>" 
    ->> Context.site.user = "username" 
    -=> "username" 
    +=> "<%= home_url %>"
    +>> Context.site.user = "username"
    +=> "username"
     
    ->> Context.site.password = CGI.escape "p4ssw0rd" 
    -=> "p4ssw0rd" 
    +>> Context.site.password = CGI.escape "p4ssw0rd"
    +=> "p4ssw0rd"
     >> Context.find :first
     => #<Context:0x262396c @prefix_options={}, @attributes={...}>
     >> >> Context.find :all
    @@ -201,7 +216,7 @@ $ SITE="http://username:p4ssw0rd@<%= request.host_with_port %>" irb \
     
     irb(main):001:0> inbox = Tracks::Context.find :first
     irb(main):002:0> inbox.name
    -=> "@inbox" 
    +=> "@inbox"
     irb(main):003:0>
     
     
    diff --git a/config/routes.rb b/config/routes.rb index 830e4f63..1261ed40 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -3,7 +3,7 @@ ActionController::Routing::Routes.draw do |map| :member => {:change_password => :get, :update_password => :post, :change_auth_type => :get, :update_auth_type => :post, :complete => :get, :refresh_token => :post } - + map.with_options :controller => :users do |users| users.signup 'signup', :action => "new" end @@ -12,11 +12,11 @@ ActionController::Routing::Routes.draw do |map| contexts.resources :todos, :name_prefix => "context_" end - map.resources :projects, :collection => {:order => :post, :alphabetize => :post, :actionize => :post, :done => :get}, + map.resources :projects, :collection => {:order => :post, :alphabetize => :post, :actionize => :post, :done => :get}, :member => {:done_todos => :get, :all_done_todos => :get} do |projects| projects.resources :todos, :name_prefix => "project_" end - + map.resources :notes map.resources :todos, @@ -28,7 +28,7 @@ ActionController::Routing::Routes.draw do |map| todos.home '', :action => "index" todos.tickler 'tickler.:format', :action => "list_deferred" todos.mobile_tickler 'tickler.m', :action => "list_deferred", :format => 'm' - + # This route works for tags with dots like /todos/tag/version1.5 # please note that this pattern consumes everything after /todos/tag # so /todos/tag/version1.5.xml will result in :name => 'version1.5.xml' @@ -41,10 +41,13 @@ ActionController::Routing::Routes.draw do |map| todos.tags 'tags.autocomplete', :action => "tags", :format => 'autocomplete' todos.auto_complete_for_predecessor 'auto_complete_for_predecessor', :action => 'auto_complete_for_predecessor' - + todos.calendar 'calendar.ics', :action => "calendar", :format => 'ics' + todos.calendar 'calendar.xml', :action => "calendar", :format => 'xml' todos.calendar 'calendar', :action => "calendar" - + + todos.hidden 'hidden.xml', :action => "list_hidden", :format => 'xml' + todos.mobile 'mobile', :action => "index", :format => 'm' todos.mobile_abbrev 'm', :action => "index", :format => 'm' todos.mobile_abbrev_new 'm/new', :action => "new", :format => 'm' @@ -74,7 +77,7 @@ ActionController::Routing::Routes.draw do |map| fl.mobile_feeds 'feeds.m', :action => 'index', :format => 'm' fl.feeds 'feeds', :action => 'index' end - + map.with_options :controller => :integrations do |i| i.integrations 'integrations', :action => 'index' i.rest_api_docs 'integrations/rest_api', :action => "rest_api" @@ -83,12 +86,12 @@ ActionController::Routing::Routes.draw do |map| end map.preferences 'preferences', :controller => 'preferences', :action => 'index' - + map.with_options :controller => :stats do |stats| stats.stats 'stats', :action => 'index' stats.done_overview 'done', :action => 'done' end - + map.search 'search', :controller => 'search', :action => 'index' map.data 'data', :controller => 'data', :action => 'index' From 5c015fea16e65ddce82e50c676684425cb608e44 Mon Sep 17 00:00:00 2001 From: Reinier Balt Date: Sun, 10 Jul 2011 21:48:43 +0200 Subject: [PATCH 064/197] fix #999 by adding a menu to the mobile interface where you can choose the action you want to take on a todo, including deferring --- app/controllers/todos_controller.rb | 47 ++- ...t_mobile.rhtml => _edit_mobile_form.rhtml} | 16 +- app/views/todos/edit_mobile.html.erb | 5 + app/views/todos/new.m.erb | 2 +- app/views/todos/show.m.erb | 34 +- config/locales/de.yml | 333 ++++++++--------- config/locales/en.yml | 3 +- config/locales/es.yml | 331 ++++++++--------- config/locales/nl.yml | 337 +++++++++--------- config/routes.rb | 2 +- features/mobile_edit_a_todo.feature | 16 +- 11 files changed, 603 insertions(+), 523 deletions(-) rename app/views/todos/{_edit_mobile.rhtml => _edit_mobile_form.rhtml} (87%) create mode 100644 app/views/todos/edit_mobile.html.erb diff --git a/app/controllers/todos_controller.rb b/app/controllers/todos_controller.rb index 058dfd5c..01b17f02 100644 --- a/app/controllers/todos_controller.rb +++ b/app/controllers/todos_controller.rb @@ -217,19 +217,20 @@ class TodosController < ApplicationController @tag_name = params['_tag_name'] respond_to do |format| format.js + format.m { + @projects = current_user.projects.active + @contexts = current_user.contexts.find(:all) + @edit_mobile = true + @return_path=cookies[:mobile_url] ? cookies[:mobile_url] : mobile_path + render :template => "/todos/edit_mobile.html.erb" + } end end def show @todo = current_user.todos.find(params['id']) respond_to do |format| - format.m do - @projects = current_user.projects.active - @contexts = current_user.contexts.find(:all) - @edit_mobile = true - @return_path=cookies[:mobile_url] ? cookies[:mobile_url] : mobile_path - render :action => 'show' - end + format.m { render :action => 'show' } format.xml { render :xml => @todo.to_xml( *to_xml_params ) } end end @@ -316,6 +317,17 @@ class TodosController < ApplicationController redirect_to :action => "index" end end + format.m { + if cookies[:mobile_url] + old_path = cookies[:mobile_url] + cookies[:mobile_url] = {:value => nil, :secure => SITE_CONFIG['secure_cookies']} + notify(:notice, t("todos.action_marked_complete", :description => @todo.description, :completed => @todo.completed? ? 'complete' : 'incomplete')) + redirect_to old_path + else + notify(:notice, t("todos.action_marked_complete", :description => @todo.description, :completed => @todo.completed? ? 'complete' : 'incomplete')) + redirect_to todos_path(:format => 'm') + end + } end end @@ -327,6 +339,17 @@ class TodosController < ApplicationController format.js format.xml { render :xml => @todo.to_xml( *to_xml_params ) } format.html { redirect_to request.referrer} + format.m { + if cookies[:mobile_url] + old_path = cookies[:mobile_url] + cookies[:mobile_url] = {:value => nil, :secure => SITE_CONFIG['secure_cookies']} + notify(:notice, "Star toggled") + redirect_to old_path + else + notify(:notice, "Star toggled") + redirect_to todos_path(:format => 'm') + end + } end end @@ -648,6 +671,16 @@ class TodosController < ApplicationController respond_to do |format| format.html { redirect_to :back } format.js {render :action => 'update'} + format.m { + notify(:notice, t("todos.action_deferred", :description => @todo.description)) + if cookies[:mobile_url] + old_path = cookies[:mobile_url] + cookies[:mobile_url] = {:value => nil, :secure => SITE_CONFIG['secure_cookies']} + redirect_to old_path + else + redirect_to todos_path(:format => 'm') + end + } end end diff --git a/app/views/todos/_edit_mobile.rhtml b/app/views/todos/_edit_mobile_form.rhtml similarity index 87% rename from app/views/todos/_edit_mobile.rhtml rename to app/views/todos/_edit_mobile_form.rhtml index 5acfb061..63ede714 100644 --- a/app/views/todos/_edit_mobile.rhtml +++ b/app/views/todos/_edit_mobile_form.rhtml @@ -1,10 +1,10 @@ -<% @tag_list_text = "" +<% @tag_list_text = "" @tag_list_text = tag_list_text if @todo -%> <%= error_messages_for("todo") %> -<% this_year = current_user.time.to_date.strftime("%Y").to_i -if parent_container_type == 'show_mobile' -%> +<% this_year = current_user.time.to_date.strftime("%Y").to_i -%> +<% if parent_container_type == 'show_mobile' -%>

     <%= check_box_tag("done", 1, @todo && @todo.completed?, "tabindex" => 1, "onClick" => "document.mobileEdit.submit()") %>

    <% end -%>

    @@ -13,10 +13,10 @@ if parent_container_type == 'show_mobile' -%> <%= text_area( "todo", "notes", "cols" => 40, "rows" => 3, "tabindex" => 3) %>

    <%= unless @mobile_from_context - collection_select( "todo", "context_id", @contexts, "id", "name", {}, {"tabindex" => 4} ) + collection_select( "todo", "context_id", @contexts, "id", "name", {}, {"tabindex" => 4} ) else select_tag("todo[context_id]", options_from_collection_for_select( - @contexts, "id", "name", @mobile_from_context.id), + @contexts, "id", "name", @mobile_from_context.id), {"id" => :todo_context_id, :tabindex => 4} ) end %>

    @@ -24,10 +24,10 @@ end %> collection_select( "todo", "project_id", @projects, "id", "name", {:include_blank => t('todos.no_project')}, {"tabindex" => 5} ) else - # manually add blank option since :include_blank does not work + # manually add blank option since :include_blank does not work # with options_from_collection_for_select select_tag("todo[project_id]", ""+options_from_collection_for_select( - @projects, "id", "name", @mobile_from_project.id), + @projects, "id", "name", @mobile_from_project.id), {"id" => :todo_project_id, :tabindex => 5} ) end %>

    @@ -36,5 +36,5 @@ end %> <%= date_select("todo", "due", {:order => [:day, :month, :year], :start_year => this_year, :include_blank => '--'}, :tabindex => 7) %>

    -<%= date_select("todo", "show_from", {:order => [:day, :month, :year], +<%= date_select("todo", "show_from", {:order => [:day, :month, :year], :start_year => this_year, :include_blank => true}, :tabindex => 8) %> diff --git a/app/views/todos/edit_mobile.html.erb b/app/views/todos/edit_mobile.html.erb new file mode 100644 index 00000000..0cf73eb4 --- /dev/null +++ b/app/views/todos/edit_mobile.html.erb @@ -0,0 +1,5 @@ +<% form_tag todo_path(@todo, :format => 'm'), :name => 'mobileEdit', :method => :put do %> + <%= render :partial => 'edit_mobile_form', :locals => { :parent_container_type => "show_mobile" } %> +

    +<% end -%> +<%= link_to t('common.cancel'), @return_path %> diff --git a/app/views/todos/new.m.erb b/app/views/todos/new.m.erb index 44da0853..cf6403a4 100644 --- a/app/views/todos/new.m.erb +++ b/app/views/todos/new.m.erb @@ -1,5 +1,5 @@ <% form_tag todos_path(:format => 'm'), :method => :post do %> - <%= render :partial => 'edit_mobile' %> + <%= render :partial => 'edit_mobile_form' %>

    <% end -%> <%= link_to t('common.back'), @return_path %> diff --git a/app/views/todos/show.m.erb b/app/views/todos/show.m.erb index 0ab19a9b..5db38371 100644 --- a/app/views/todos/show.m.erb +++ b/app/views/todos/show.m.erb @@ -1,5 +1,29 @@ -<% form_tag todo_path(@todo, :format => 'm'), :name => 'mobileEdit', :method => :put do %> - <%= render :partial => 'edit_mobile', :locals => { :parent_container_type => "show_mobile" } %> -

    -<% end -%> -<%= link_to t('common.cancel'), @return_path %> +

    Description

    +<%= @todo.description %>
    + +

    Actions

    + +
    + + +

    + +
    + + +

    + +
    + + +

    + +
    + + +

    + +
    + + +

    \ No newline at end of file diff --git a/config/locales/de.yml b/config/locales/de.yml index 094815a7..e15e47cc 100644 --- a/config/locales/de.yml +++ b/config/locales/de.yml @@ -3,7 +3,6 @@ de: layouts: toggle_notes: Notizen umschalten next_actions_rss_feed: RSS-Feed kommende Aufgaben - toggle_notes_title: Alle Notizen umschalten mobile_navigation: logout: Abmelden feeds: Feeds @@ -13,9 +12,10 @@ de: tickler: Notizbuch contexts: 2-Kontexte home: 1-Home + toggle_notes_title: Alle Notizen umschalten navigation: - recurring_todos: Sich wiederholende To-Dos manage_users_title: "Benutzer hinzuf\xC3\xBCgen oder entfernen" + recurring_todos: Sich wiederholende To-Dos api_docs: REST API Docs feeds: Feeds starred: Markiert @@ -24,16 +24,16 @@ de: tickler_title: Notizbuch manage_users: Benutzer verwalten export_title: Daten importieren und exportieren - preferences: Einstellungen integrations_: Tracks integrieren + preferences: Einstellungen feeds_title: "Liste der verf\xC3\xBCgbaren Feeds anzeigen" calendar_title: "Kalender mit \xC3\xBCberf\xC3\xA4lligen Aufgaben" - home_title: Start + stats_title: Statistiken anzeigen tickler: Notizbuch + home_title: Start starred_title: Markierte Aufgaben betrachten recurring_todos_title: Sich wiederholende To-Dos verwalten completed_tasks: Erledigt - stats_title: Statistiken anzeigen organize: Organisieren view: Betrachten completed_tasks_title: "Vollst\xC3\xA4ndig" @@ -82,8 +82,8 @@ de: opensearch_description: In Tracks suchen applescript_next_action_prompt: "Beschreibung der n\xC3\xA4chsten Aufgabe:" gmail_description: "Gadget, um Tracks als Gadget zu Googlemail hinzuzuf\xC3\xBCgen" - applescript_success_before_id: "N\xC3\xA4chste neue Aufgabe mit ID" applescript_success_after_id: erstellt + applescript_success_before_id: "N\xC3\xA4chste neue Aufgabe mit ID" common: back: "Zur\xC3\xBCck" third: Dritte @@ -93,50 +93,50 @@ de: previous: Vorherige logout: Abmelden go_back: "Zur\xC3\xBCck" - cancel: Abbrechen week: Woche + cancel: Abbrechen none: Keine second: Zweite - optional: optional month: Monat + optional: optional notes: Notizen forum: Forum server_error: Auf dem Server ist ein Fehler aufgetreten. last: Letzte - projects: Projekte action: Aktion + projects: Projekte project: Projekt contribute: Mitwirken ok: Ok website: Website - numbered_step: Schritt %{number} first: Erste - fourth: Vierte + numbered_step: Schritt %{number} sort: by_task_count_title: Nach Anzahl der Aufgaben sortieren by_task_count_title_confirm: Sollen diese Projekte wirklich nach Anzahl der Aufgaben sortiert werden? Die bisherige Sortier-Reihenfolge wird damit überschrieben. alphabetically: Alphabetisch - alphabetically_title: Projekte alphabetisch sortieren alphabetically_confirm: Sollen diese Projekte wirklich alphabetisch sortiert werden? Die bisherige Sortier-Reihenfolge wird damit überschrieben. sort: Sortieren + alphabetically_title: Projekte alphabetisch sortieren by_task_count: Nach Anzahl der Aufgaben + fourth: Vierte create: Erstellen months: Monate - context: Kontext - contexts: Kontexte todo: Aktione + contexts: Kontexte + context: Kontext next: "N\xC3\xA4chste" - errors_with_fields: "Mit folgenden Feldern sind Probleme aufgetreten:" description: Beschreibung + errors_with_fields: "Mit folgenden Feldern sind Probleme aufgetreten:" drag_handle: Verschieben - bugs: Bugs update: Aktualisieren + bugs: Bugs weeks: Woche forth: Vierte wiki: Wiki search: Suchen - email: E-Mail ajaxError: Fehler beim Empfangen vom Server + email: E-Mail models: project: feed_title: Tracks-Projekte @@ -169,18 +169,18 @@ de: due: Fällig preference: show_hidden_projects_in_sidebar: Zeige Versteckte Projekte in der Sidebar - show_hidden_contexts_in_sidebar: "Zeige Versteckte Zusammenh\xC3\xA4nge in der Sidebar" date_format: Datum Format + show_hidden_contexts_in_sidebar: "Zeige Versteckte Zusammenh\xC3\xA4nge in der Sidebar" + mobile_todos_per_page: Aufgaben pro Seite (Mobile Version) verbose_action_descriptors: "Ausf\xC3\xBChrlich Aktion Deskriptoren" sms_context: Standard-E-Mail-Kontext staleness_starts: Anfang des Abgestandenheit - mobile_todos_per_page: Aufgaben pro Seite (Mobile Version) title_date_format: Titel Datumsformat show_number_completed: "Zeige Zahl der abgeschlossenen Ma\xC3\x9Fnahmen" refresh: Aktualisierungsintverall (in Minuten) week_starts: Woche startet am - due_style: "F\xC3\xA4llig stijl" time_zone: Zeit Zone + due_style: "F\xC3\xA4llig stijl" locale: Zahle sms_email: Per E-Mail show_project_on_todo_done: Zur Projektseite wechseln, wenn To-Do abgeschlossen @@ -206,8 +206,8 @@ de: exclusion: "ist nicht verf\xC3\xBCgbar" odd: muss ungerade sein too_short: ist zu kurz (nicht weniger als %{count} Zeichen) - empty: "muss ausgef\xC3\xBCllt werden" wrong_length: "hat die falsche L\xC3\xA4nge (muss genau %{count} Zeichen haben)" + empty: "muss ausgef\xC3\xBCllt werden" even: muss gerade sein less_than: muss kleiner als %{count} sein greater_than: "muss gr\xC3\xB6\xC3\x9Fer als %{count} sein" @@ -228,16 +228,17 @@ de: import_successful: Import war erfolgreich. import_errors: Beim Import sind Fehler aufgetreten. stats: - tag_cloud_title: Tag-Cloud aller Aktionen - tag_cloud_description: Diese Tag-Cloud beinhaltet Tags aller Aktionen (abgeschlossen, nicht abgeschlossen, sichtbar und/oder unsichtbar) - actions: Aktionen - tag_cloud_90days_title: Tag-Cloud-Aktionen in den letzten 90 Tagen totals_active_project_count: Von diesen sind %{count} aktive Projekte - actions_avg_completion_time: Durchschnittlich hast du %{count} Tage gebraucht, um eine Aktion abzuschliessen. + tag_cloud_title: Tag-Cloud aller Aktionen + actions: Aktionen + tag_cloud_description: Diese Tag-Cloud beinhaltet Tags aller Aktionen (abgeschlossen, nicht abgeschlossen, sichtbar und/oder unsichtbar) + tag_cloud_90days_title: Tag-Cloud-Aktionen in den letzten 90 Tagen actions_last_year_legend: number_of_actions: Anzahl Aktionen months_ago: Monate zuvor totals_first_action: Seit deiner ersten Aktion am %{date} + actions_avg_completion_time: Durchschnittlich hast du %{count} Tage gebraucht, um eine Aktion abzuschliessen. + totals_action_count: hattest du insgesamt %{count} Aktionen legend: number_of_days: Anzahl vergangene Tage actions: Aktionen @@ -246,62 +247,60 @@ de: percentage: Prozentsatz running_time: Laufzeit einer Aktion (Wochen) months_ago: Monate zuvor - top10_longrunning: "Top 10 der am l\xC3\xA4ngsten laufenden Projekte" - actions_dow_30days_title: Wochentag (letzte 30 Tage) - totals_action_count: hattest du insgesamt %{count} Aktionen current_running_time_of_incomplete_visible_actions: "Aktuelle Laufzeit unvollst\xC3\xA4ndiger sichtbarer Aufgaben" totals_deferred_actions: "von denen %{count} im Notizbuch zur\xC3\xBCckgestellt sind" running_time_legend: actions: Aufgaben percentage: Prozentsatz weeks: "Vergangene Zeit einer Aktion (Wochen). Klick auf eine Leiste f\xC3\xBCr mehr Informationen." + top10_longrunning: "Top 10 der am l\xC3\xA4ngsten laufenden Projekte" + actions_dow_30days_title: Wochentag (letzte 30 Tage) + actions_lastyear_title: Aktionen der letzten 12 Monate + totals_actions_completed: "%{count} davon sind abgeschlossen." totals_incomplete_actions: "Du hast %{count} unvollst\xC3\xA4ndige Aktionen" totals_unique_tags: Von diesen Tags sind %{count} einmalig.. actions_avg_completed_30days: und %{count} durchschnittlich davon erledigt. top5_contexts: Top 5 aller Kontexte - actions_lastyear_title: Aktionen der letzten 12 Monate - totals_actions_completed: "%{count} davon sind abgeschlossen." + action_completion_time_title: Fertigstellungszeit (alle abgeschlossenen Aktionen) actions_last_year: Aktionen im letzten Jahr totals_context_count: Du hast %{count} Kontexte. - totals_visible_context_count: Von diesen sind %{count} sichtbare Kontexte projects: Projekte + totals_visible_context_count: Von diesen sind %{count} sichtbare Kontexte totals_blocked_actions: "%{count} h\xC3\xA4ngen vom Abschluss anderer Aktionen ab." - action_completion_time_title: Fertigstellungszeit (alle abgeschlossenen Aktionen) + actions_day_of_week_title: Wochentag (alle Aktionen) + totals_project_count: Du hast %{count} Projekte. actions_min_max_completion_days: "Das Minimum/Maximum an Tagen einer Vervollst\xC3\xA4ndigung ist %{min}/%{max}." actions_min_completion_time: "Die minimale Zeit betr\xC3\xA4gt %{time}." no_tags_available: "keine Tags verf\xC3\xBCgbar" - actions_day_of_week_title: Wochentag (alle Aktionen) - totals_project_count: Du hast %{count} Projekte. tags: Tags - actions_further: und danach - totals_tag_count: Du hast %{count} Tags in Aktionen. running_time_all: "Aktuelle Laufzeit aller unvollst\xC3\xA4ndigen Aktionen." + tag_cloud_90days_description: Diese Tag-Cloud beinhaltet Tags der Aktionen, die in den letzten 90 Tagen erstellt oder abgeschlossen wurden. actions_30days_title: _Aktionen der letzten 30 Tage + top5_visible_contexts_with_incomplete_actions: "Top 5 der sichtbaren Kontexte mit unvollst\xC3\xA4ndigen Aktionen" time_of_day: Tageszeit (alle Aktionen) totals_hidden_project_count: "%{count} sind versteckt" + actions_further: und danach tod30: Tageszeit (letzte 30 Tage) + totals_tag_count: Du hast %{count} Tags in Aktionen. more_stats_will_appear: "Weitere Statistiken werden verf\xC3\xBCgbar, wenn einige Aufgaben hinzugef\xC3\xBCgt wurden." - tag_cloud_90days_description: Diese Tag-Cloud beinhaltet Tags der Aktionen, die in den letzten 90 Tagen erstellt oder abgeschlossen wurden. - top5_visible_contexts_with_incomplete_actions: "Top 5 der sichtbaren Kontexte mit unvollst\xC3\xA4ndigen Aktionen" - totals_completed_project_count: und %{count} sind abgeschlossene Projekte. click_to_return: "Klick auf %{link} um zur Statistikseite zur\xC3\xBCckzukehren." + other_actions_label: (andere) top10_projects_30days: Top-10-Projekt der letzten 30 Tage + top10_projects: Top 10 aller Projekte spread_of_running_actions_for_visible_contexts: Verteilung der laufenden Aufgaben aller sichtbaren Kontexte + actions_avg_created: In den letzten 12 Monaten hast du im Durchschnitt %{count} Aktionen erstellt actions_selected_from_week: "Aktionen ausgew\xC3\xA4hlt ab Woche" spread_of_actions_for_all_context: Aufgabenverteilung aller Kontexte + totals_completed_project_count: und %{count} sind abgeschlossene Projekte. click_to_show_actions_from_week: Klick auf %{link} um die Aktionen von Woche %{week} und danach anzuzeigen. - other_actions_label: (andere) - top10_projects: Top 10 aller Projekte - actions_avg_created: In den letzten 12 Monaten hast du im Durchschnitt %{count} Aktionen erstellt - actions_avg_completed: und %{count} durchschnittlich davon monatlich erledigt totals: Ingesamt time_of_day_legend: number_of_actions: Anzahl Aufgaben time_of_day: Tageszeit - contexts: Kontexte click_to_return_link: hier + contexts: Kontexte totals_hidden_context_count: und %{count} sind versteckte Kontexte. - click_to_update_actions: Klicke auf eine Leiste in der Grafik um die Aktionen unten zu aktualisieren. + actions_avg_completed: und %{count} durchschnittlich davon monatlich erledigt labels: month_avg_completed: "%{months} Monat durchschnittlich fertig gestellt" completed: Erledigt @@ -310,6 +309,7 @@ de: avg_completed: Durchschnittlich fertiggestellt created: Erstellt no_actions_selected: "Es sind keine Aufgaben ausgew\xC3\xA4hlt." + click_to_update_actions: Klicke auf eine Leiste in der Grafik um die Aktionen unten zu aktualisieren. running_time_all_legend: actions: Aktionen percentage: Prozentsatz @@ -324,12 +324,12 @@ de: show_from: Anzeigen ab dem error_starring_recurring: Konnte die Hervorhebung der wiederkehrenden Aufgabe \'%{description}\' nicht durchführen recurring_action_deleted: Die Aktion wurde gelöscht. Da dies eine wiederkehrende Aktion ist, wurde eine neue erstellt. - completed_rest_of_previous_month: Fertiggestellt den Rest des Vormonats completed_recurring: Abgeschlossene wiederkehrende To-Dos added_new_next_action: Neue Aktion angelegt + completed_rest_of_previous_month: Fertiggestellt den Rest des Vormonats blocked_by: Blockiert durch %{predecessors} - completed_recurrence_completed: Es gibt keine weitere Aktion nach der soeben gelöschten. Die Wiederholung ist abgeschlossen. star_action: Aktion markieren + completed_recurrence_completed: Es gibt keine weitere Aktion nach der soeben gelöschten. Die Wiederholung ist abgeschlossen. defer_date_after_due_date: "Zur\xC3\xBCckstellungsdatum nach Ablaufdatum. Bitte passe das Ablaufdatum an, dass es vor dem Zur\xC3\xBCckstellungsdatum liegt." unable_to_add_dependency: Abhängigkeit nicht hinzufügbar done: Erledigt? @@ -341,10 +341,10 @@ de: edit_action_with_description: Aktion '%{description}' bearbeiten action_due_on: "(Aktion f\xC3\xA4llig am %{date})" tags: Tags (Komma-separiert) + action_deleted_success: Die nächste Aktion erfolgreich gelöscht archived_tasks_title: TRACKS::Archivierte erledigte Aufgaben remove_dependency: Abhängigkeit löschen (löscht nicht die Aufgabe) list_incomplete_next_actions: Unerledigte Folge-Aufgaben anzeigen - action_deleted_success: Die nächste Aktion erfolgreich gelöscht mobile_todos_page_title: Alle Aufgaben new_related_todo_created: "Eine neue To-Do wurde hinzugef\xC3\xBCgt, die zu dieser wiederkehrenden To-Do geh\xC3\xB6rt" context_changed: Kontext zu %{name} gewechselt @@ -363,12 +363,12 @@ de: completed: Aufgaben erledigt due_today: heute fällig due_within_a_week: diese Woche fällig + added_new_project: "Neues Projekt hinzugef\xC3\xBCgt" list_incomplete_next_actions_with_limit: Zeige die letzten %{count} unerledigten Folge-Aufgaben set_to_pending: "%{task} als ausstehend markiert" - added_new_project: "Neues Projekt hinzugef\xC3\xBCgt" older_completed_items: "Ältere erledigte Aufgaben" - error_deleting_item: Beim Löschen von %{description} trat ein Fehler auf append_in_this_project: in diesem Projekt + error_deleting_item: Beim Löschen von %{description} trat ein Fehler auf task_list_title: TRACKS::Aufgaben anzeigen no_actions_due_this_week: Keine zu erledigenden Aufgaben für den Rest der Woche no_recurring_todos: Im Augenblick gibt es keine wiederkehrenden To-Dos @@ -376,22 +376,22 @@ de: recurring_pattern_removed: Das Wiederauftreten Muster ist aus entfernt %{count} convert_to_project: In Projekt umwandeln no_deferred_pending_actions: Momentan sind keine aufgeschobenen oder ausstehenden Aufgaben vorhanden. - completed_last_day: In den letzten 24 Stunden erledigt delete_recurring_action_confirm: Soll die wiederkehrende Aktion '%{description}' wirklich gelöscht werden? + completed_last_day: In den letzten 24 Stunden erledigt + all_completed: Alle abgeschlossenen Aktionen + error_saving_recurring: Es gab einen Fehler beim Speichern der wiederkehrenden todo '%{description}' show_in_days: Anzeigen in %{days} Tagen no_project: --Kein Projekt-- - error_saving_recurring: Es gab einen Fehler beim Speichern der wiederkehrenden todo '%{description}' completed_more_than_x_days_ago: Vor mehr als %{count} Tagen erledigt - all_completed: Alle abgeschlossenen Aktionen feed_title_in_context: im Kontext '%{context}' new_related_todo_created_short: hat einen neuen todo - older_than_days: "Älter als %{count} Tage" completed_tagged_page_title: "TRACKS:: Erledigte Aufgaben mit Tag %{tag_name}" + older_than_days: "Älter als %{count} Tage" edit: Bearbeiten pending: Ausstehend completed_actions_with: Abgeschlossene Aktionen mit dem Tag %{tag_name} - deleted_success: "Die Aktion wurde erfolgreich gel\xC3\xB6scht." completed_tasks_title: TRACKS::Erledigte Aufgaben + deleted_success: "Die Aktion wurde erfolgreich gel\xC3\xB6scht." feed_title_in_project: im Projekt '%{project}' clear_due_date: Fälligkeitsdatum leeren error_removing_dependency: "Beim Entfernen der Abh\xC3\xA4ngigkeit ist ein Fehler aufgetreten" @@ -400,22 +400,22 @@ de: show_on_date: Anzeigen am %{date} recurrence_period: Wiederholungszeitraum deferred_actions_with: "Zur\xC3\xBCckgestellte Aktionen mit dem Tag '%{tag_name}'" - confirm_delete: "Bist du sicher, dass du die Aktion '%{description}' l\xC3\xB6schen m\xC3\xB6chtest?" recurring_deleted_success: "Die wiederkehrende Aktion wurde erfolgreich gel\xC3\xB6scht." + confirm_delete: "Bist du sicher, dass du die Aktion '%{description}' l\xC3\xB6schen m\xC3\xB6chtest?" + deferred_tasks_title: TRACKS::Notizbuch next_actions_title: TRACKS::Weitere Aufgaben next_action_description: "Beschreibung der n\xC3\xA4chsten Aktion" - deferred_tasks_title: TRACKS::Notizbuch no_completed_actions_with: Keine abgeschlossenen Aktionen mit dem Tag '%{tag_name}' clear_show_from_date: Datum leeren - unresolved_dependency: "Der Wert, den Sie in die Abh\xC3\xA4ngigkeit Feld eingegeben nicht zu einer bestehenden Aktion zu l\xC3\xB6sen. Dieser Wert wird nicht mit dem Rest der Aktion gerettet werden. Weiter gehen?" calendar_page_title: TRACKS::Kalender + unresolved_dependency: "Der Wert, den Sie in die Abh\xC3\xA4ngigkeit Feld eingegeben nicht zu einer bestehenden Aktion zu l\xC3\xB6sen. Dieser Wert wird nicht mit dem Rest der Aktion gerettet werden. Weiter gehen?" in_hidden_state: als versteckt markiert show_today: Heute anzeigen no_actions_found_title: Keine Aktionen gefunden next_actions_due_date: overdue_by: "\xC3\x9Cberf\xC3\xA4llig mit %{days} Tag" - due_today: "Heute f\xC3\xA4llig" due_in_x_days: "F\xC3\xA4llig in %{days} Tagen" + due_today: "Heute f\xC3\xA4llig" overdue_by_plural: "\xC3\x9Cberf\xC3\xA4llig mit %{days} Tagen" due_tomorrow: "F\xC3\xA4llig morgen" completed_last_x_days: In den letzten %{count} Tagen erledigt @@ -435,9 +435,9 @@ de: recurring_todos: Wiederkehrende To-Dos delete_action: "Aktion l\xC3\xB6schen" error_deleting_recurring: "Beim L\xC3\xB6schen der wiederkehrenden To-Do %{description} ist ein Fehler aufgetreten" + cannot_add_dependency_to_completed_todo: "Kann nicht hinzugef\xC3\xBCgt werden diese Aktion als eine Abh\xC3\xA4ngigkeit zu einer abgeschlossenen Aktion!" delete: "L\xC3\xB6schen" drag_action_title: "Auf andere Aktion ziehen, um sie als Abh\xC3\xA4ngigkeit zu definieren" - cannot_add_dependency_to_completed_todo: "Kann nicht hinzugef\xC3\xBCgt werden diese Aktion als eine Abh\xC3\xA4ngigkeit zu einer abgeschlossenen Aktion!" no_last_completed_actions: Keine abgeschlossene Aktionen gefunden depends_on: "H\xC3\xA4ngt ab von" tickler_items_due: @@ -449,19 +449,18 @@ de: new_related_todo_not_created_short: nicht schaffen todo completed_rest_of_week: Fertiggestellt den Rest dieser Woche error_starring: Konnte die Hervorhebung von \'%{description}\' nicht durchführen - show_tomorrow: Morgen anzeigen calendar: get_in_ical_format: Diesen Kalender im iCal Format herunterladen due_next_week: Nächste Woche fällig due_this_week: Die restliche Woche zu erledigen no_actions_due_next_week: Keine Aufgaben für die kommende Woche - due_today: Heute zu erledigen no_actions_due_today: Heute sind keine Aufgaben fällig + due_today: Heute zu erledigen due_next_month_and_later: Im %{month} und später fällig no_actions_due_after_this_month: Nach diesem Monat sind keine Aufgaben fällig due_this_month: Im %{month} fällig no_actions_due_this_month: Keine Aktionen für den Rest des Monats - tagged_page_title: TRACKS::Als '%{tag_name}' markiert + show_tomorrow: Morgen anzeigen recurrence: ends_on_number_times: Endet nach %{number} Mal ends_on_date: Endet am %{date} @@ -473,6 +472,7 @@ de: daily_options: "Einstellungen f\xC3\xBCr sich t\xC3\xA4glich wiederholenden Aktionen" monthly: Monatlich starts_on: Beginnt am + show_option_always: immer daily: "T\xC3\xA4glich" pattern: third: Drittel @@ -500,12 +500,11 @@ de: from: von last: zuletzt every_day: jeden Tag - times: "f\xC3\xBCr %{number} Zeiten" the_xth_day_of_month: der %{x} %{day} von %{month} - show: Show - first: erste - every_year_on: jedes Jahr in %{date} + times: "f\xC3\xBCr %{number} Zeiten" on_work_days: an Wochentagen + first: erste + show: Show day_names: - Sonntag - Montag @@ -514,38 +513,40 @@ de: - Donnerstag - Freitag - Samstag + every_year_on: jedes Jahr in %{date} fourth: vierte due: "F\xC3\xA4llig" - every_month: jeden Monat until: bis - show_option_always: immer + every_month: jeden Monat yearly_every_x_day: "Jeden %{day}. %{month} " recurrence_on_options: Setze Wiederholung auf daily_every_number_day: Alle %{number} Tage - show_options: To-Do anzeigen weekly_every_number_week: Kehrt jede %{number}. Woche wieder am ends_on: Endet am - yearly_options: "Einstellungen f\xC3\xBCr sich j\xC3\xA4hrlich wiederholende Aktionen" + show_options: To-Do anzeigen show_days_before: "%{days} Tage bevor die To-Do f\xC3\xA4llig ist" from_tickler: the date todo comes from tickler (no due date set) no_end_date: Kein Enddatum - yearly_every_xth_day: Den %{day} %{day_of_week} des %{month} day_x_on_every_x_month: Tag %{day} in jedem %{month}. Monat - monthly_every_xth_day: Der %{day} %{day_of_week} eines jeden %{month}. Monats + yearly_every_xth_day: Den %{day} %{day_of_week} des %{month} + yearly_options: "Einstellungen f\xC3\xBCr sich j\xC3\xA4hrlich wiederholende Aktionen" yearly: "J\xC3\xA4hrlich" + monthly_every_xth_day: Der %{day} %{day_of_week} eines jeden %{month}. Monats + action_deferred: Die Aktion \'% {description}\' wurde vertagt + tagged_page_title: TRACKS::Als '%{tag_name}' markiert no_completed_recurring: Im Augenblick gibt es keine abgeschlossenen wiederkehrenden To-Dos added_dependency: "%{dependency} als Abhängigkeit hinzugefügt." - all_completed_tagged_page_title: "TRACKS:: Alle erledigten Aufgaben mit Tag %{tag_name}" - no_deferred_actions: Zur Zeit sind keine zurückgestellten Aktionen vorhanden. completed_rest_of_month: Fertiggestellt den Rest des Monats + no_deferred_actions: Zur Zeit sind keine zurückgestellten Aktionen vorhanden. + all_completed_tagged_page_title: "TRACKS:: Alle erledigten Aufgaben mit Tag %{tag_name}" recurrence_completed: Nach dieser wiederkehrenden Aktion, die du gerade abgeschlossen hast, folgt keine mehr. Die Wiederholung endet hiermit - in_pending_state: und als ausstehend markiert - no_actions_found: "Momentan gibt es keine unvollst\xC3\xA4ndigen Aktionen." - error_toggle_complete: "K\xC3\xB6nnte nicht diese Marke todo komplett" due: Fällig + no_actions_found: "Momentan gibt es keine unvollst\xC3\xA4ndigen Aktionen." + in_pending_state: und als ausstehend markiert + error_toggle_complete: "K\xC3\xB6nnte nicht diese Marke todo komplett" action_marked_complete_error: Die Aktion '%{description}' wurde aufgrund eines Fehlers NICHT als %{completed} markiert. - depends_on_separate_with_commas: Hängt ab von (Komma-separiert) recurring_action_saved: Wiederkehrende Aktion gespeichert + depends_on_separate_with_commas: Hängt ab von (Komma-separiert) action_saved_to_tickler: Aktion im Notizbuch gespeichert completed_in_archive: one: Es befindet sich eine erledigte Aufgabe im Archiv. @@ -555,8 +556,8 @@ de: completed: In den letzten %{count} Tagen due_date: mit einem Datum %{due_date} oder früher overdue: "Überfällig" - no_incomplete_actions: Es gibt keine unerledigten Aufgaben add_new_recurring: "F\xC3\xBCge eine neue wiederkehrende Aktion hinzu" + no_incomplete_actions: Es gibt keine unerledigten Aufgaben notes: delete_confirmation: "Bist du sicher, dass du die Notiz '%{id}' l\xC3\xB6schen m\xC3\xB6chtest?" delete_item_title: Eintrag löschen @@ -574,10 +575,10 @@ de: completed: Erledigt completed_plural: Erledigte visible_plural: Sichtbare - visible: Sichtbar active_plural: Aktive - hidden: Versteckt + visible: Sichtbar active: Aktiv + hidden: Versteckt time: am: vormittags formats: @@ -588,73 +589,73 @@ de: long: "%A, %d. %B %Y, %H:%M Uhr" pm: nachmittags projects: + edit_project_title: Projekt bearbeiten + default_tags_removed_notice: Standard-Tags entfernt default_context_set: Standard-Kontext des Projekts auf %{default_context} gesetzt no_actions_in_project: "Momentan gibt es keine unvollst\xC3\xA4ndigen Aktionen in diesem Projekt" deferred_actions: "Aufgeschobene Aufgaben f\xC3\xBCr dieses Projekt" was_marked_hidden: wurde als verborgen markiert - edit_project_title: Projekt bearbeiten - default_tags_removed_notice: Standard-Tags entfernt - hide_form: Fomular verstecken - page_title: "TRACKS::Projekt: %{project}" all_completed_tasks_title: "TRACKS:: Alle auflisten Abgeschlossene Aktionen in Project '%{project_name}'" - this_project: Dieses Projekt - project_state: Projekt ist %{state} + page_title: "TRACKS::Projekt: %{project}" + hide_form: Fomular verstecken show_form_title: Neues Projekt anlegen list_completed_projects: "TRACKS:: Liste Abgeschlossene Projekte" to_new_project_page: Zu neuem Projekt weiterleiten no_notes_attached: "Im Augenblick sind keine Notizen mit diesem Projekt verkn\xC3\xBCpft." + this_project: Dieses Projekt deferred_actions_empty: "Es gibt keine aufgeschobenen Aufgaben f\xC3\xBCr dieses Projekt" - notes: Notizen + project_state: Projekt ist %{state} no_last_completed_projects: Keine abgeschlossene Projekte gefunden todos_append: an dieses Projekt + notes: Notizen + notes_empty: "Es gibt keine Notizen f\xC3\xBCr dieses Projekt" no_projects: Keine Projekte vorhanden hide_form_title: Formular verstecken - notes_empty: "Es gibt keine Notizen f\xC3\xBCr dieses Projekt" with_no_default_context: hat keinen Standardwert Kontext delete_project: Projekt löschen completed_actions_empty: "Es gibt keine erledigten Aufgaben f\xC3\xBCr dieses Projekt" + delete_project_confirmation: Soll das Projekt '%{name}' wirklich gelöscht werden? with_default_context: mit einem Standard-Rahmen von '%{context_name}' show_form: Projekt erstellen actions_in_project_title: Die Aktionen in diesem Projekt - delete_project_confirmation: Soll das Projekt '%{name}' wirklich gelöscht werden? - project_saved_status: Projekt gespeichert add_project: Projekt hinzufügen + with_default_tags: und mit '%{tags}' als Standard-Tags add_note: "Notiz hinzuf\xC3\xBCgen" + list_projects: TRACKS::Projektliste set_default_tags_notice: Standard-Tags des Projekts auf %{default_tags} setzen is_active: ist aktiv settings: Einstellungen + project_saved_status: Projekt gespeichert completed_projects: Abgeschlossene Projekte - with_default_tags: und mit '%{tags}' als Standard-Tags - list_projects: TRACKS::Projektliste - delete_project_title: Projekt löschen completed_tasks_title: "TRACKS:: Liste Abgeschlossene Aktionen in Project '%{project_name}'" + delete_project_title: Projekt löschen hidden_projects: Versteckte Projekte - default_context_removed: Standard-Kontext entfernt add_note_submit: "Notiz hinzuf\xC3\xBCgen" - completed_actions: "Erledigte Aufgaben f\xC3\xBCr dieses Projekt" was_marked_complete: wurde als erledigt markiert + completed_actions: "Erledigte Aufgaben f\xC3\xBCr dieses Projekt" + default_context_removed: Standard-Kontext entfernt edit_project_settings: Edit Project Settings - default_context: Der Standard-Kontext dieses Projektes ist %{context} active_projects: Aktive Projekte + default_context: Der Standard-Kontext dieses Projektes ist %{context} status_project_name_changed: "Projektname ge\xC3\xA4ndert" no_default_context: Dieses Projekt hat keinen Standard-Kontext - state: Dieses Projekt ist %{state} with_no_default_tags: und hat keinen Standardwert Tags + state: Dieses Projekt ist %{state} errors: user_unauthorized: "401 Unauthorized: Nur administrative Benutzer d\xC3\xBCrfen auf diese Funktion zugreifen." preferences: change_identity_url: "\xC3\x84ndere deine Identit\xC3\xA4ts-URL" - staleness_starts_after: Abgestandenheit startet nach %{days} Tagen open_id_url: "Deine OpenID-URL lautet:" + staleness_starts_after: Abgestandenheit startet nach %{days} Tagen change_password: "Passwort \xC3\xA4ndern" page_title: TRACKS::Einstellungen title: Deine Einstellungen token_description: "Token (f\xC3\xBCr die Verwendung in Feeds und der API)" is_false: Nein show_number_completed: "Zeige %{number} erledigte Eintr\xC3\xA4ge" + page_title_edit: "TRACKS::Einstellungen \xC3\xA4ndern" is_true: Ja edit_preferences: Einstellungen bearbeiten - page_title_edit: "TRACKS::Einstellungen \xC3\xA4ndern" sms_context_none: Keine generate_new_token: Neues Token generieren token_header: Dein Token @@ -732,24 +733,74 @@ de: send_feedback: Senden Sie Feedback zu %{version} shared: multiple_next_actions: Mehrere neue Aufgaben (eine pro Zeile) - hide_form: Formular verstecken toggle_single: Weitere Aktion erstellen + hide_form: Formular verstecken add_action: "Aufgabe hinzuf\xC3\xBCgen" add_actions: "Aufgaben hinzuf\xC3\xBCgen" tags_for_all_actions: "Tags f\xC3\xBCr alle Aufgaben (mit Kommas trennen)" + project_for_all_actions: "Projekt f\xC3\xBCr alle Aufgaben" context_for_all_actions: "Kontext f\xC3\xBCr alle Aufgaben" toggle_multi: "Mehrere neue Aufgabeneintr\xC3\xA4ge hinzuf\xC3\xBCgen" toggle_single_title: Eine weitere Aktion hinzufügen - project_for_all_actions: "Projekt f\xC3\xBCr alle Aufgaben" separate_tags_with_commas: mit Kommas trennen toggle_multi_title: "Zwischen Einzel- und Mehrfachformular f\xC3\xBCr neue Aufgaben umschalten" hide_action_form_title: "Formular f\xC3\xBCr neue Aufgaben verstecken" + sidebar: + list_name_active_contexts: Aktive Kontexte + list_name_active_projects: Aktive Projekte + list_empty: Keine + list_name_completed_projects: Abgeschlossene Projekte + list_name_hidden_projects: Versteckte Projekte + list_name_hidden_contexts: Versteckte Kontexte + users: + auth_type_update_error: "Beim Ändern der Authentifizierung trat ein Fehler auf: %{error_messages}" + openid_url_verified: Die URL %{url} wurde erfolgreich als Identität verifiziert und Deine Authentifizierung auf OpenID umgestellt. + destroy_successful: "Benutzer %{login} wurde erfolgreich gel\xC3\xB6scht" + total_contexts: Alle Kontexte + successfully_deleted_user: Benutzer %{username} erfolgreich gelöscht. + failed_to_delete_user: Löschen des Benutzers %{username} fehlgeschlagen + first_user_heading: "Willkommen bei TRACKS. Als erstes legen Sie bitte einen Administrator-Zugang an:" + new_token_generated: Neuer Token erfolgreich generiert + total_projects: Alle Projekte + signup_successful: Benutzer %{username} erfolgreich angelegt. + change_password_submit: "Passwort \xC3\xA4ndern" + no_signups_title: TRACKS::Anmeldung nicht erlaubt + user_created: Benutzer angelegt. + account_signup: Accounteinrichtung + manage_users: Benutzer verwalten + password_updated: Passwort aktualisiert. + confirm_password: "Passwort best\xC3\xA4tigen" + signup: Registrieren + new_user_heading: "Einen neuen Benutzer anlegen:" + auth_type_updated: Authentifizierungs-Art erfolgreich geändert. + total_actions: Alle Aufgaben + desired_login: "Gew\xC3\xBCnschter Benutzername" + choose_password: "Passwort w\xC3\xA4hlen" + change_password_title: TRACKS::Passwort ändern + change_auth_type_title: TRACKS::Authentifizierungstyp ändern + change_password_prompt: "Gib dein neues Passwort in die unten stehenden Felder ein und klicke auf 'Passwort \xC3\xA4ndern' um dein altes Passwort durch das neue zu ersetzen." + password_confirmation_label: "Passwort best\xC3\xA4tigen" + destroy_error: "Beim L\xC3\xB6schen des Benutzers %{login} ist ein Fehler aufgetreten." + label_auth_type: Authentifizierungsart + new_password_label: Neues Passwort + register_with_cas: Mit deinem CAS-Benutzernamen + new_user_title: TRACKS::Als Administrator anmelden + destroy_user: "Benutzer l\xC3\xB6schen" + total_users_count: Derzeit existieren %{count} Benutzer + destroy_confirmation: "Achtung: der Benutzer '%{login}' wird mit all seinen Aufgaben, Kontexten, Projekten und Notizen gel\xC3\xB6scht. Bist du sicher, dass du fortfahren m\xC3\xB6chtest?" + signup_new_user: Neuen Benutzer anlegen + openid_ok_pref_failed: Die URL %{url} wurde erfolgreich als Identität verifiziert, beim Speichern der Einstellungen trat jedoch ein Fehler auf. + auth_change_submit: "Authentifizierungsart \xC3\xA4ndern" + identity_url: Identity-URL + change_authentication_type: "Authentifizierungsart \xC3\xA4ndern" + total_notes: Alle Notizen + select_authentication_type: "W\xC3\xA4hle deine neue Authentifizierungsart und klicke 'Authentifizierungsart \xC3\xA4ndern' an, um deine aktuellen Einstellungen zu \xC3\xBCberschreiben." feedlist: choose_context: "Kontext f\xC3\xBCr den Feed w\xC3\xA4hlen" actions_due_today: "Heute oder fr\xC3\xBCher f\xC3\xA4llig" ical_feed: iCal-Feed - legend: "Legende:" all_contexts: Alle Kontexte + legend: "Legende:" rss_feed: RSS-Feed choose_project: "Projekt f\xC3\xBCr den Feed w\xC3\xA4hlen" all_projects: Alle Projekte @@ -768,83 +819,33 @@ de: actions_completed_last_week: In den letzten 7 Tagen abgeschlossene Aufgaben context_centric_actions: "Feeds f\xC3\xBCr unvollst\xC3\xA4ndige Aufgaben in einem bestimmten Kontext" project_centric: "Feeds f\xC3\xBCr unvollst\xC3\xA4ndige Aufgaben in einem bestimmten Kontext" - users: - total_contexts: Alle Kontexte - failed_to_delete_user: Löschen des Benutzers %{username} fehlgeschlagen - first_user_heading: "Willkommen bei TRACKS. Als erstes legen Sie bitte einen Administrator-Zugang an:" - auth_type_update_error: "Beim Ändern der Authentifizierung trat ein Fehler auf: %{error_messages}" - openid_url_verified: Die URL %{url} wurde erfolgreich als Identität verifiziert und Deine Authentifizierung auf OpenID umgestellt. - destroy_successful: "Benutzer %{login} wurde erfolgreich gel\xC3\xB6scht" - successfully_deleted_user: Benutzer %{username} erfolgreich gelöscht. - new_token_generated: Neuer Token erfolgreich generiert - total_projects: Alle Projekte - signup_successful: Benutzer %{username} erfolgreich angelegt. - change_password_submit: "Passwort \xC3\xA4ndern" - no_signups_title: TRACKS::Anmeldung nicht erlaubt - user_created: Benutzer angelegt. - account_signup: Accounteinrichtung - manage_users: Benutzer verwalten - password_updated: Passwort aktualisiert. - signup: Registrieren - confirm_password: "Passwort best\xC3\xA4tigen" - new_user_heading: "Einen neuen Benutzer anlegen:" - auth_type_updated: Authentifizierungs-Art erfolgreich geändert. - total_actions: Alle Aufgaben - desired_login: "Gew\xC3\xBCnschter Benutzername" - change_password_title: TRACKS::Passwort ändern - change_auth_type_title: TRACKS::Authentifizierungstyp ändern - change_password_prompt: "Gib dein neues Passwort in die unten stehenden Felder ein und klicke auf 'Passwort \xC3\xA4ndern' um dein altes Passwort durch das neue zu ersetzen." - password_confirmation_label: "Passwort best\xC3\xA4tigen" - destroy_error: "Beim L\xC3\xB6schen des Benutzers %{login} ist ein Fehler aufgetreten." - choose_password: "Passwort w\xC3\xA4hlen" - label_auth_type: Authentifizierungsart - new_password_label: Neues Passwort - register_with_cas: Mit deinem CAS-Benutzernamen - new_user_title: TRACKS::Als Administrator anmelden - destroy_user: "Benutzer l\xC3\xB6schen" - total_users_count: Derzeit existieren %{count} Benutzer - destroy_confirmation: "Achtung: der Benutzer '%{login}' wird mit all seinen Aufgaben, Kontexten, Projekten und Notizen gel\xC3\xB6scht. Bist du sicher, dass du fortfahren m\xC3\xB6chtest?" - signup_new_user: Neuen Benutzer anlegen - openid_ok_pref_failed: Die URL %{url} wurde erfolgreich als Identität verifiziert, beim Speichern der Einstellungen trat jedoch ein Fehler auf. - auth_change_submit: "Authentifizierungsart \xC3\xA4ndern" - identity_url: Identity-URL - change_authentication_type: "Authentifizierungsart \xC3\xA4ndern" - select_authentication_type: "W\xC3\xA4hle deine neue Authentifizierungsart und klicke 'Authentifizierungsart \xC3\xA4ndern' an, um deine aktuellen Einstellungen zu \xC3\xBCberschreiben." - total_notes: Alle Notizen contexts: delete_context_title: Kontext löschen - hide_form: Formular verstecken all_completed_tasks_title: "TRACKS:: Alle Abgeschlossene Ma\xC3\x9Fnahmen im context '%{context_name}'" + hide_form: Formular verstecken show_form_title: Neuen Kontext erstellen delete_context_confirmation: Soll der Kontext '%{name}' wirklich gelöscht werden? Alle (wiederholenden) Aufgaben dieses Kontexts werden hierdurch ebenfalls gelöscht. delete_context: Kontext löschen - hide_form_title: Formular für neuen Kontext verstecken edit_context: Kontext bearbeiten + hide_form_title: Formular für neuen Kontext verstecken no_contexts_active: Derzeit gibt es keine aktiven Kontexte context_hide: Auf Startseite ausblenden? hidden_contexts: Versteckte Kontexte save_status_message: Kontext gespeichert - show_form: Neuen Kontext erstellen add_context: "Kontext hinzuf\xC3\xBCgen" + show_form: Neuen Kontext erstellen visible_contexts: Sichtbare Kontexte - context_name: Kontextname update_status_message: "Kontextname wurde ge\xC3\xA4ndert" + context_name: Kontextname completed_tasks_title: "TRACKS:: Abgeschlossene Ma\xC3\x9Fnahmen im context '%{context_name}'" - status_active: Kontext ist aktiv new_context_post: "' wird ebenfalls angelegt. Fortfahren?" + status_active: Kontext ist aktiv no_actions: "Momentan gibt es keine unvollst\xC3\xA4ndigen Aufgaben in diesem Kontext" last_completed_in_context: in diesem Kontext (letzte %{number}) context_deleted: "Gel\xC3\xB6schter Kontext '%{name}'" no_contexts_hidden: Derzeit gibt es keine versteckten Kontexte new_context_pre: Der neue Kontext ' status_hidden: Kontext ist versteckt - sidebar: - list_name_active_contexts: Aktive Kontexte - list_name_active_projects: Aktive Projekte - list_empty: Keine - list_name_completed_projects: Abgeschlossene Projekte - list_name_hidden_projects: Versteckte Projekte - list_name_hidden_contexts: Versteckte Kontexte datetime: prompts: minute: Minuten @@ -895,30 +896,30 @@ de: openid_identity_url_not_found: "Sorry, aber es existiert kein Benutzer mit der Identit\xC3\xA4ts-URL (%{identity_url})" user_no_expiry: Angemeldet bleiben sign_in: Anmeldung + successful_with_session_info: "Anmeldung erfolgreich:" + please_login: Bitte melde dich an, um Tracks zu nutzen cas_logged_in_greeting: Hallo, %{username}! Du bist authentifiziert. cas_no_user_found: Hallo, %{username}! Du hast leider keinen Tracks-Account. cas_login: CAS-Anmeldung - successful_with_session_info: "Anmeldung erfolgreich:" - please_login: Bitte melde dich an, um Tracks zu nutzen cas_username_not_found: Sorry, aber es existiert kein Benutzer mit dem CAS-Benutzernamen (%{username}) - cas_create_account: "Wenn du die Anfrage fortsetzen m\xC3\xB6chtest, klicke bitte hier: %{signup_link}" mobile_use_openid: "\xE2\x80\xA6oder mit einer OpenID anmelden" + cas_create_account: "Wenn du die Anfrage fortsetzen m\xC3\xB6chtest, klicke bitte hier: %{signup_link}" cas_signup_link: Account beantragen account_login: Account-Anmeldung session_will_not_expire: Sitzung wird nicht ablaufen. successful: "Anmeldung erfolgreich. Willkommen zur\xC3\xBCck!" - option_separator: oder, session_time_out: Sitzung abgelaufen. Bitte %{link} session_will_expire: "Sitzung wird nach %{hours} Stunde(n) der Inaktivit\xC3\xA4t ablaufen." + option_separator: oder, login_standard: "zur\xC3\xBCck zum Standard-Login" - logged_out: Sie wurden von Tracks abgemeldet. login_with_openid: Mit einer OpenID anmelden unsuccessful: Anmeldung war nicht erfolgreich. log_in_again: Erneut anmelden. + logged_out: Sie wurden von Tracks abgemeldet. search: contexts_matching_query: Kontexte entsprechen der Suche tags_matching_query: Tags entsprechen der Suche - projects_matching_query: Projekte entsprechen der Suche notes_matching_query: Notizen entsprechen der Suche no_results: Die Suche ergab kein Ergebnis. todos_matching_query: Todos entsprechen der Suche + projects_matching_query: Projekte entsprechen der Suche diff --git a/config/locales/en.yml b/config/locales/en.yml index db45bfc2..b612c6e6 100644 --- a/config/locales/en.yml +++ b/config/locales/en.yml @@ -465,10 +465,11 @@ en: action_saved_to_tickler: "Action saved to tickler" added_new_project: "Added new project" added_new_context: "Added new context" - error_starring: "Could not toggle the star of this todo \'%{description}\'" + error_starring: "Could not toggle the star of this todo '%{description}'" error_toggle_complete: "Could not mark this todo complete" recurrence_completed: "There is no next action after the recurring action you just finished. The recurrence is completed" tagged_with: "tagged with ‘%{tag_name}’" + action_deferred: "The action '%{description}' was deferred" no_actions_found_title: "No actions found" no_actions_found: "Currently there are no incomplete actions." no_actions_with: "Currently there are no incomplete actions with the tag '%{tag_name}'" diff --git a/config/locales/es.yml b/config/locales/es.yml index 5d8285e3..41a86229 100644 --- a/config/locales/es.yml +++ b/config/locales/es.yml @@ -3,7 +3,6 @@ es: layouts: toggle_notes: Activar/Desactivar notas next_actions_rss_feed: RSS feed of next actions - toggle_notes_title: Activar/Desactivar todas las notas mobile_navigation: logout: "Cerrar sesi\xC3\xB3n" feeds: Feeds @@ -13,9 +12,10 @@ es: tickler: Tickler contexts: 2-Contextos home: 1-Inicio + toggle_notes_title: Activar/Desactivar todas las notas navigation: - manage_users_title: "A\xC3\xB1adir o eliminar usuarios" recurring_todos: Tareas repetitivas + manage_users_title: "A\xC3\xB1adir o eliminar usuarios" api_docs: REST API Docs feeds: Feeds starred: Estrellas @@ -24,16 +24,16 @@ es: tickler_title: Tickler manage_users: Administrar usuarios export_title: Import and export data - preferences: Preferencias integrations_: Integrar Tracks + preferences: Preferencias feeds_title: See a list of available feeds calendar_title: Calendario de las acciones por - home_title: Inicio + stats_title: See your statistics tickler: Tickler + home_title: Inicio starred_title: See your starred actions recurring_todos_title: Manage recurring actions completed_tasks: Hecho - stats_title: See your statistics organize: Organizar view: Ver completed_tasks_title: Completed @@ -71,8 +71,8 @@ es: opensearch_description: Buscar en las Tracks applescript_next_action_prompt: "Descripci\xC3\xB3n de la pr\xC3\xB3xima tarea:" gmail_description: "Gadget para a\xC3\xB1adir pistas a Gmail como un gadget" - applescript_success_before_id: "Nueva acci\xC3\xB3n junto con la identificaci\xC3\xB3n" applescript_success_after_id: creado + applescript_success_before_id: "Nueva acci\xC3\xB3n junto con la identificaci\xC3\xB3n" common: back: !binary | QXRyw6Fz @@ -84,50 +84,50 @@ es: previous: Anterior logout: Salir go_back: "Volver atr\xC3\xA1s" - cancel: Cancelar week: semana + cancel: Cancelar none: Ninguno second: Segundo - month: mes optional: opcional + month: mes notes: Notas forum: Foro server_error: Ha ocurrido un error en el servidor. last: "\xC3\x9Altimo" - projects: Proyectos action: Tarea + projects: Proyectos project: Proyecto contribute: Contribuir ok: Ok website: Website - numbered_step: Paso %{number} first: Primero - fourth: Cuarto + numbered_step: Paso %{number} sort: by_task_count_title: "Ordenar por n\xC3\xBAmero de tareas" by_task_count_title_confirm: "\xC2\xBFEst\xC3\xA1 seguro que desea ordenar los proyectos por el n\xC3\xBAmero de tareas? Esto reemplazar\xC3\xA1 el orden existente." alphabetically: "Alfab\xC3\xA9ticamente" - alphabetically_title: "Proyectos de ordenar alfab\xC3\xA9ticamente" alphabetically_confirm: "\xC2\xBFEst\xC3\xA1 seguro que desea ordenar los proyectos por orden alfab\xC3\xA9tico? Esto reemplazar\xC3\xA1 el orden existente." sort: Ordenar + alphabetically_title: "Proyectos de ordenar alfab\xC3\xA9ticamente" by_task_count: "Por n\xC3\xBAmero de tareas" + fourth: Cuarto create: Crear months: meses - todo: Todo - context: Contexto contexts: Contextos + context: Contexto + todo: Todo next: "Pr\xC3\xB3ximo" - errors_with_fields: "Ha habido problemas con los siguientes campos:" description: "Descripci\xC3\xB3n" + errors_with_fields: "Ha habido problemas con los siguientes campos:" drag_handle: ARRASTRAR - bugs: Errores update: Actualizar + bugs: Errores weeks: semanas forth: Siguiente wiki: Wiki search: Buscar - ajaxError: Hubo un error al recuperar desde el servidor email: Email + ajaxError: Hubo un error al recuperar desde el servidor models: project: feed_title: Tracks Projects @@ -149,18 +149,18 @@ es: predecessors: Depende de la preference: show_hidden_projects_in_sidebar: Mostrar proyectos ocultos en el lateral - show_hidden_contexts_in_sidebar: Mostrar los contextos ocultos en el lateral date_format: Formato de fecha + show_hidden_contexts_in_sidebar: Mostrar los contextos ocultos en el lateral + mobile_todos_per_page: "Tareas por p\xC3\xA1gina (Vista M\xC3\xB3vil)" verbose_action_descriptors: "Descriptores detallado de acci\xC3\xB3n" sms_context: Contexto por defecto para el email staleness_starts: Comienzo de estancamiento - mobile_todos_per_page: "Tareas por p\xC3\xA1gina (Vista M\xC3\xB3vil)" title_date_format: "T\xC3\xADtulo del formato de fecha" show_number_completed: "Mostrar n\xC3\xBAmero de tareas completadas" refresh: "Intervalo de actualizaci\xC3\xB3n (en minutos)" week_starts: La semana comienza - due_style: Debido al estilo time_zone: Zona horaria + due_style: Debido al estilo locale: Lugar sms_email: Email origen show_project_on_todo_done: "Ir a la p\xC3\xA1gina del proyecto al completar la tarea" @@ -186,8 +186,8 @@ es: exclusion: "est\xC3\xA1 reservado" odd: tiene que ser impar too_short: "es demasiado corto (m\xC3\xADnimo %{count} caracteres)" - empty: "no puede estar vac\xC3\xADo" wrong_length: es la longitud del mal (debe ser %{count} caracteres) + empty: "no puede estar vac\xC3\xADo" even: "debe ser a\xC3\xBAn" less_than: debe ser menor que %{count} greater_than: debe ser mayor que %{count} @@ -208,16 +208,17 @@ es: import_successful: "Importaci\xC3\xB3n se realiz\xC3\xB3 correctamente." import_errors: "Han ocurrido algunos errores durante la importaci\xC3\xB3n" stats: - tag_cloud_title: Tag cloud for all actions - tag_cloud_description: This tag cloud includes tags of all actions (completed, not completed, visible and/or hidden) - actions: Actions - tag_cloud_90days_title: Tag cloud actions in past 90 days totals_active_project_count: Of those %{count} are active projects - actions_avg_completion_time: Of all your completed actions, the average time to complete is %{count} days. + tag_cloud_title: Tag cloud for all actions + actions: Actions + tag_cloud_description: This tag cloud includes tags of all actions (completed, not completed, visible and/or hidden) + tag_cloud_90days_title: Tag cloud actions in past 90 days actions_last_year_legend: number_of_actions: Number of actions months_ago: Months ago totals_first_action: Since your first action on %{date} + actions_avg_completion_time: Of all your completed actions, the average time to complete is %{count} days. + totals_action_count: you have a total of %{count} actions legend: number_of_days: Number of days ago actions: Tareas @@ -226,62 +227,60 @@ es: percentage: Percentage running_time: Running time of an action (weeks) months_ago: Months ago - top10_longrunning: Top 10 longest running projects - actions_dow_30days_title: Day of week (past 30 days) - totals_action_count: you have a total of %{count} actions current_running_time_of_incomplete_visible_actions: Current running time of incomplete visible actions totals_deferred_actions: of which %{count} are deferred actions in the tickler running_time_legend: actions: Tareas percentage: Percentage weeks: Running time of an action (weeks). Click on a bar for more info + top10_longrunning: Top 10 longest running projects + actions_dow_30days_title: Day of week (past 30 days) + actions_lastyear_title: Actions in the last 12 months + totals_actions_completed: "%{count} of these are completed." totals_incomplete_actions: You have %{count} incomplete actions totals_unique_tags: Of those tags, %{count} are unique. actions_avg_completed_30days: and completed an average of %{count} actions per day. top5_contexts: Top 5 contexts - actions_lastyear_title: Actions in the last 12 months - totals_actions_completed: "%{count} of these are completed." + action_completion_time_title: Completion time (all completed actions) actions_last_year: Actions in the last years totals_context_count: You have %{count} contexts. - totals_visible_context_count: Of those %{count} are visible contexts projects: Projects + totals_visible_context_count: Of those %{count} are visible contexts totals_blocked_actions: "%{count} are dependent on the completion of their actions." - action_completion_time_title: Completion time (all completed actions) + actions_day_of_week_title: Day of week (all actions) + totals_project_count: You have %{count} projects. actions_min_max_completion_days: The Max-/minimum days to complete is %{min}/%{max}. actions_min_completion_time: The minimum time to complete is %{time}. no_tags_available: no tags available - actions_day_of_week_title: Day of week (all actions) - totals_project_count: You have %{count} projects. tags: Tags - actions_further: " and further" - totals_tag_count: You have %{count} tags placed on actions. running_time_all: Current running time of all incomplete actions + tag_cloud_90days_description: This tag cloud includes tags of actions that were created or completed in the past 90 days. actions_30days_title: Actions in the last 30 days + top5_visible_contexts_with_incomplete_actions: Top 5 visible contexts with incomplete actions time_of_day: Time of day (all actions) totals_hidden_project_count: "%{count} are hidden" + actions_further: " and further" tod30: Time of day (last 30 days) + totals_tag_count: You have %{count} tags placed on actions. more_stats_will_appear: More statistics will appear here once you have added some actions. - tag_cloud_90days_description: This tag cloud includes tags of actions that were created or completed in the past 90 days. - top5_visible_contexts_with_incomplete_actions: Top 5 visible contexts with incomplete actions - totals_completed_project_count: and %{count} are completed projects. click_to_return: Click %{link} to return to the statistics page. + other_actions_label: (otros) top10_projects_30days: Top 10 project in past 30 days + top10_projects: Top 10 projects spread_of_running_actions_for_visible_contexts: Spread of running actions for visible contexts + actions_avg_created: In the last 12 months you created on average %{count} actions actions_selected_from_week: "Actions selected from week " spread_of_actions_for_all_context: Spread of actions for all context + totals_completed_project_count: and %{count} are completed projects. click_to_show_actions_from_week: Click %{link} to show the actions from week %{week} and further. - other_actions_label: (otros) - top10_projects: Top 10 projects - actions_avg_created: In the last 12 months you created on average %{count} actions - actions_avg_completed: and completed an average of %{count} actions per month. totals: Totals time_of_day_legend: number_of_actions: "N\xC3\xBAmero de tareas" time_of_day: Time of day - contexts: Contexts click_to_return_link: here + contexts: Contexts totals_hidden_context_count: and %{count} are hidden contexts. - click_to_update_actions: Click on a bar in the chart to update the actions below. + actions_avg_completed: and completed an average of %{count} actions per month. labels: month_avg_completed: "%{months} Month avg completed" completed: Completed @@ -290,6 +289,7 @@ es: avg_completed: Avg completed created: Created no_actions_selected: No hay tareas seleccionadas. + click_to_update_actions: Click on a bar in the chart to update the actions below. running_time_all_legend: actions: Tareas percentage: Percentage @@ -304,12 +304,12 @@ es: show_from: Show from error_starring_recurring: Could not toggle the star of recurring todo \'%{description}\' recurring_action_deleted: Action was deleted. Because this action is recurring, a new action was added - completed_rest_of_previous_month: Completado en el resto del mes anterior completed_recurring: Completed recurring todos added_new_next_action: Added new next action + completed_rest_of_previous_month: Completado en el resto del mes anterior blocked_by: Blocked by %{predecessors} - completed_recurrence_completed: There is no next action after the recurring action you just deleted. The recurrence is completed star_action: Star this action + completed_recurrence_completed: There is no next action after the recurring action you just deleted. The recurrence is completed defer_date_after_due_date: Defer date is after due date. Please edit and adjust due date before deferring. unable_to_add_dependency: Unable to add dependency done: Done? @@ -321,10 +321,10 @@ es: edit_action_with_description: Edit the action '%{description}' action_due_on: (action due on %{date}) tags: Tags (separate with commas) + action_deleted_success: Successfully deleted next action archived_tasks_title: TRACKS::Archived completed tasks remove_dependency: Remove dependency (does not delete the action) list_incomplete_next_actions: Lista las siguientes tareas incompletas - action_deleted_success: Successfully deleted next action mobile_todos_page_title: Todas las tareas new_related_todo_created: "Una nueva tarea fue a\xC3\xB1adida y que pertenece a esta tarea recurrente" context_changed: Context changed to %{name} @@ -343,12 +343,12 @@ es: completed: actions completed due_today: due today due_within_a_week: due within a week + added_new_project: Added new project list_incomplete_next_actions_with_limit: Lists the last %{count} incomplete next actions set_to_pending: "%{task} set to pending" - added_new_project: Added new project older_completed_items: Older completed items - error_deleting_item: There was an error deleting the item %{description} append_in_this_project: in this project + error_deleting_item: There was an error deleting the item %{description} task_list_title: TRACKS::List tasks no_actions_due_this_week: No actions due in rest of this week no_recurring_todos: Currently there are no recurring todos @@ -356,22 +356,22 @@ es: recurring_pattern_removed: "El patr\xC3\xB3n de repetici\xC3\xB3n se retira de %{count}" convert_to_project: Make project no_deferred_pending_actions: Currently there are no deferred or pending actions - completed_last_day: Completed in the last 24 hours delete_recurring_action_confirm: Are you sure that you want to delete the recurring action '%{description}'? + completed_last_day: Completed in the last 24 hours + all_completed: Todas las acciones realizadas + error_saving_recurring: There was an error saving the recurring todo \'%{description}\' show_in_days: Show in %{days} days no_project: --No project-- - error_saving_recurring: There was an error saving the recurring todo \'%{description}\' completed_more_than_x_days_ago: Completed more than %{count} days ago - all_completed: Todas las acciones realizadas feed_title_in_context: in context '%{context}' new_related_todo_created_short: creada una nueva tarea - older_than_days: Older than %{count} days completed_tagged_page_title: "TRACKS:: Las tareas completadas con etiqueta %{tag_name}" + older_than_days: Older than %{count} days edit: Edit pending: Pending completed_actions_with: Completed actions with the tag %{tag_name} - deleted_success: The action was deleted succesfully. completed_tasks_title: TRACKS::Completed tasks + deleted_success: The action was deleted succesfully. feed_title_in_project: in project '%{project}' clear_due_date: Clear due date error_removing_dependency: There was an error removing the dependency @@ -380,22 +380,22 @@ es: show_on_date: Show on %{date} recurrence_period: Recurrence period deferred_actions_with: Deferred actions with the tag '%{tag_name}' - confirm_delete: Are you sure that you want to delete the action '%{description}'? recurring_deleted_success: The recurring action was deleted succesfully. + confirm_delete: Are you sure that you want to delete the action '%{description}'? + deferred_tasks_title: TRACKS::Tickler next_actions_title: Tracks - Next Actions next_action_description: "Descripci\xC3\xB3n de la nueva tarea" - deferred_tasks_title: TRACKS::Tickler no_completed_actions_with: No completed actions with the tag '%{tag_name}' clear_show_from_date: Clear show from date - unresolved_dependency: The value you entered in the dependency field did not resolve to an existing action. This value will not be saved with the rest of the action. Continue? calendar_page_title: TRACKS::Calendar + unresolved_dependency: The value you entered in the dependency field did not resolve to an existing action. This value will not be saved with the rest of the action. Continue? in_hidden_state: en estado oculto show_today: Show Today no_actions_found_title: No actions found next_actions_due_date: overdue_by: Overdue by %{days} day - due_today: Vence hoy due_in_x_days: "Vence en %{days} d\xC3\xADas" + due_today: Vence hoy overdue_by_plural: Overdue by %{days} days due_tomorrow: "Vence ma\xC3\xB1ana" completed_last_x_days: Completed in last %{count} days @@ -415,9 +415,9 @@ es: recurring_todos: Recurring todos delete_action: Delete action error_deleting_recurring: There was an error deleting the recurring todo \'%{description}\' + cannot_add_dependency_to_completed_todo: Cannot add this action as a dependency to a completed action! delete: Delete drag_action_title: Drag onto another action to make it depend on that action - cannot_add_dependency_to_completed_todo: Cannot add this action as a dependency to a completed action! no_last_completed_actions: "No encontr\xC3\xB3 las acciones realizadas" depends_on: Depends on tickler_items_due: @@ -429,19 +429,18 @@ es: new_related_todo_not_created_short: "no se cre\xC3\xB3 la tarea" completed_rest_of_week: Completado en el resto de esta semana error_starring: Could not toggle the star of this todo \'%{description}\' - show_tomorrow: Show Tomorrow calendar: get_in_ical_format: Get this calendar in iCal format due_next_week: Due next week due_this_week: Due in rest of this week no_actions_due_next_week: No actions due in next week - due_today: Due today no_actions_due_today: No actions due today + due_today: Due today due_next_month_and_later: Due in %{month} and later no_actions_due_after_this_month: No actions due after this month due_this_month: Due in rest of %{month} no_actions_due_this_month: No actions due in rest of this month - tagged_page_title: TRACKS::Tagged with '%{tag_name}' + show_tomorrow: Show Tomorrow recurrence: ends_on_number_times: Ends after %{number} times ends_on_date: Ends on %{date} @@ -453,6 +452,7 @@ es: daily_options: Settings for daily recurring actions monthly: Monthly starts_on: Starts on + show_option_always: always daily: Daily pattern: third: third @@ -480,10 +480,9 @@ es: every_day: every day the_xth_day_of_month: the %{x} %{day} of %{month} times: for %{number} times - every_year_on: every year on %{date} - first: first - show: show on_work_days: on work days + show: show + first: first day_names: - sunday - monday @@ -492,38 +491,40 @@ es: - thursday - friday - saturday + every_year_on: every year on %{date} fourth: fourth due: due - every_month: every month until: until - show_option_always: always + every_month: every month yearly_every_x_day: Every %{month} %{day} recurrence_on_options: Set recurrence on daily_every_number_day: Every %{number} day(s) - show_options: Show the todo weekly_every_number_week: Returns every %{number} week on ends_on: Ends on - yearly_options: Settings for yearly recurring actions + show_options: Show the todo show_days_before: "%{days} days before the todo is due" from_tickler: the date todo comes from tickler (no due date set) no_end_date: No end date - yearly_every_xth_day: The %{day} %{day_of_week} of %{month} day_x_on_every_x_month: Day %{day} on every %{month} month - monthly_every_xth_day: The %{day} %{day_of_week} of every %{month} month + yearly_every_xth_day: The %{day} %{day_of_week} of %{month} + yearly_options: Settings for yearly recurring actions yearly: Yearly + monthly_every_xth_day: The %{day} %{day_of_week} of every %{month} month + action_deferred: "La acci\xC3\xB3n \\'%{description}\\' se aplaz\xC3\xB3" + tagged_page_title: TRACKS::Tagged with '%{tag_name}' no_completed_recurring: Currently there are no completed recurring todos added_dependency: Added %{dependency} as dependency. - all_completed_tagged_page_title: "TRACKS:: Todas las tareas realizadas con etiqueta %{tag_name}" - no_deferred_actions: Currently there are no deferred actions. completed_rest_of_month: Completado en el resto de este mes + no_deferred_actions: Currently there are no deferred actions. + all_completed_tagged_page_title: "TRACKS:: Todas las tareas realizadas con etiqueta %{tag_name}" recurrence_completed: There is no next action after the recurring action you just finished. The recurrence is completed - in_pending_state: en estado pendiente - no_actions_found: Currently there are no incomplete actions. - error_toggle_complete: Could not mark this todo complete due: "Fecha l\xC3\xADmite" + no_actions_found: Currently there are no incomplete actions. + in_pending_state: en estado pendiente + error_toggle_complete: Could not mark this todo complete action_marked_complete_error: The action '%{description}' was NOT marked as %{completed} due to an error on the server. - depends_on_separate_with_commas: Depende de (separar con comas) recurring_action_saved: Recurring action saved + depends_on_separate_with_commas: Depende de (separar con comas) action_saved_to_tickler: Action saved to tickler completed_in_archive: one: There is one completed action in the archive. @@ -533,8 +534,8 @@ es: completed: in the last %{count} days due_date: with a due date %{due_date} or earlier overdue: Overdue - no_incomplete_actions: There are no incomplete actions add_new_recurring: Add a new recurring action + no_incomplete_actions: There are no incomplete actions notes: delete_confirmation: Are you sure that you want to delete the note '%{id}'? delete_item_title: Delete item @@ -552,10 +553,10 @@ es: completed: Completed completed_plural: Completed visible_plural: Visible - visible: Visible active_plural: Active - hidden: Hidden + visible: Visible active: Active + hidden: Hidden time: am: soy formats: @@ -565,73 +566,73 @@ es: long: "%B %d, %Y %H:%M" pm: pm projects: + edit_project_title: Editar proyecto + default_tags_removed_notice: Removed the default tags default_context_set: Set project's default context to %{default_context} no_actions_in_project: Currently there are no incomplete actions in this project deferred_actions: Tareas pospuestas para este proyecto was_marked_hidden: has been marked as hidden - edit_project_title: Editar proyecto - default_tags_removed_notice: Removed the default tags - hide_form: Esconder formulario - page_title: "TRACKS::Project: %{project}" all_completed_tasks_title: "TRACKS:: Lista de todas las acciones terminado en '%{project_name}' Proyecto" - this_project: This project - project_state: Project is %{state}. + page_title: "TRACKS::Project: %{project}" + hide_form: Esconder formulario show_form_title: Create a new project list_completed_projects: "TRACKS:: Lista de Proyectos Realizados" to_new_project_page: Take me to the new project page no_notes_attached: Currently there are no notes attached to this project + this_project: This project deferred_actions_empty: There are no deferred actions for this project - notes: Notes + project_state: Project is %{state}. no_last_completed_projects: No hay proyectos terminados encontrado todos_append: in this project + notes: Notes + notes_empty: There are no notes for this project no_projects: Currently there are no projects hide_form_title: Hide new project form - notes_empty: There are no notes for this project with_no_default_context: with no default context delete_project: Delete project completed_actions_empty: No hay tareas completadas para este proyecto + delete_project_confirmation: Are you sure that you want to delete the project '%{name}'? with_default_context: with a default context of '%{context_name}' show_form: Add a project actions_in_project_title: Actions in this project - delete_project_confirmation: Are you sure that you want to delete the project '%{name}'? - project_saved_status: Project saved add_project: "A\xC3\xB1adir Proyecto" + with_default_tags: and with '%{tags}' as the default tags add_note: "A\xC3\xB1adir una nota" + list_projects: TRACKS::Lista de Proyectos set_default_tags_notice: Set project's default tags to %{default_tags} is_active: "est\xC3\xA1 activo" settings: Settings + project_saved_status: Project saved completed_projects: Proyectos completados - with_default_tags: and with '%{tags}' as the default tags - list_projects: TRACKS::Lista de Proyectos - delete_project_title: Delete the project completed_tasks_title: "TRACKS:: Lista de Acciones completadas en '%{project_name}' Proyecto" + delete_project_title: Delete the project hidden_projects: Proyectos ocultos - default_context_removed: Eliminado el contexto por defecto - completed_actions: Tareas completadas para este proyecto add_note_submit: "A\xC3\xB1adir nota" was_marked_complete: has been marked as completed + completed_actions: Tareas completadas para este proyecto + default_context_removed: Eliminado el contexto por defecto edit_project_settings: Edit Project Settings - default_context: The default context for this project is %{context} active_projects: Active projects + default_context: The default context for this project is %{context} status_project_name_changed: Name of project was changed no_default_context: Este proyecto no tiene un contexto por defecto - state: This project is %{state} with_no_default_tags: and with no default tags + state: This project is %{state} errors: user_unauthorized: "401 No autorizado: Solo los usuarios administrativos pueden acceder a esta funci\xC3\xB3n." preferences: change_identity_url: Change Your Identity URL - staleness_starts_after: Staleness starts after %{days} days open_id_url: Your OpenID URL is + staleness_starts_after: Staleness starts after %{days} days change_password: Change your password page_title: TRACKS::Preferences title: Your preferences token_description: Token (for feeds and API use) is_false: "false" show_number_completed: Show %{number} completed items + page_title_edit: TRACKS::Edit Preferences is_true: "true" edit_preferences: Edit preferences - page_title_edit: TRACKS::Edit Preferences sms_context_none: None generate_new_token: Generate a new token token_header: Your token @@ -699,67 +700,31 @@ es: send_feedback: "Env\xC3\xADa comentarios sobre el %{version}" shared: multiple_next_actions: Multiple next actions (one on each line) - hide_form: Esconder formulario toggle_single: Add a next action + hide_form: Esconder formulario add_action: "A\xC3\xB1adir tarea" add_actions: "A\xC3\xB1adir tareas" tags_for_all_actions: Tags for all actions (sep. with commas) + project_for_all_actions: Project for all actions context_for_all_actions: Context for all actions toggle_multi: Add multiple next actions toggle_single_title: Add a new next action - project_for_all_actions: Project for all actions separate_tags_with_commas: separar con comas toggle_multi_title: Toggle single/multi new action form hide_action_form_title: Hide new action form - users: - total_contexts: Total contexts - failed_to_delete_user: Failed to delete user %{username} - first_user_heading: "Welcome to TRACKS. To get started, please create an admin account:" - auth_type_update_error: "There was a problem updating your authentication type: %{error_messages}" - openid_url_verified: You have successfully verified %{url} as your identity and set your authentication type to OpenID. - destroy_successful: User %{login} was successfully destroyed - successfully_deleted_user: Successfully deleted user %{username} - new_token_generated: New token successfully generated - total_projects: Total projects - signup_successful: Signup successful for user %{username}. - change_password_submit: Change password - no_signups_title: TRACKS::No signups - user_created: User created. - account_signup: Account signup - manage_users: Manage users - password_updated: Password updated. - signup: Signup - confirm_password: Confirm password - new_user_heading: "Sign up a new user:" - auth_type_updated: Authentication type updated. - total_actions: Total actions - desired_login: Desired login - change_password_title: TRACKS::Change password - change_auth_type_title: TRACKS::Change authentication type - change_password_prompt: Enter your new password in the fields below and click 'Change password' to replace your current password with your new one. - password_confirmation_label: Confirm password - destroy_error: There was an error deleting the user %{login} - choose_password: Choose password - label_auth_type: Authentication type - new_password_label: New password - register_with_cas: With your CAS username - new_user_title: TRACKS::Sign up as the admin user - destroy_user: Destroy user - total_users_count: You have a total of %{count} users - destroy_confirmation: "Warning: this will delete user '%{login}', all their actions, contexts, project and notes. Are you sure that you want to continue?" - signup_new_user: Sign up new user - openid_ok_pref_failed: You have successfully verified %{url} as your identity but there was a problem saving your authentication preferences. - auth_change_submit: Change authentication type - identity_url: Identity URL - change_authentication_type: Change authentication type - select_authentication_type: Select your new authentication type and click 'Change authentication type' to replace your current settings. - total_notes: Total notes + sidebar: + list_name_active_contexts: Active contexts + list_name_active_projects: Active projects + list_empty: None + list_name_completed_projects: Completed projects + list_name_hidden_projects: Hidden projects + list_name_hidden_contexts: Hidden contexts feedlist: choose_context: Elija el contexto en el que desea un canal de actions_due_today: Acciones pendientes hoy o antes ical_feed: "iCal alimentaci\xC3\xB3n" - legend: "Leyenda:" all_contexts: Todos los contextos + legend: "Leyenda:" rss_feed: RSS Feed choose_project: Elegir el proyecto que quiere un canal de all_projects: Todos los proyectos @@ -778,40 +743,76 @@ es: actions_completed_last_week: "Tareas completadas en los \xC3\xBAltimos 7 d\xC3\xADas" context_centric_actions: "Feeds de acciones incompletas en un contexto espec\xC3\xADfico" project_centric: "Feeds de acciones incompletas en un proyecto espec\xC3\xADfico" + users: + auth_type_update_error: "There was a problem updating your authentication type: %{error_messages}" + openid_url_verified: You have successfully verified %{url} as your identity and set your authentication type to OpenID. + destroy_successful: User %{login} was successfully destroyed + total_contexts: Total contexts + successfully_deleted_user: Successfully deleted user %{username} + failed_to_delete_user: Failed to delete user %{username} + first_user_heading: "Welcome to TRACKS. To get started, please create an admin account:" + new_token_generated: New token successfully generated + total_projects: Total projects + signup_successful: Signup successful for user %{username}. + change_password_submit: Change password + no_signups_title: TRACKS::No signups + user_created: User created. + account_signup: Account signup + manage_users: Manage users + password_updated: Password updated. + confirm_password: Confirm password + signup: Signup + new_user_heading: "Sign up a new user:" + auth_type_updated: Authentication type updated. + total_actions: Total actions + desired_login: Desired login + choose_password: Choose password + change_password_title: TRACKS::Change password + change_auth_type_title: TRACKS::Change authentication type + change_password_prompt: Enter your new password in the fields below and click 'Change password' to replace your current password with your new one. + password_confirmation_label: Confirm password + destroy_error: There was an error deleting the user %{login} + label_auth_type: Authentication type + new_password_label: New password + register_with_cas: With your CAS username + new_user_title: TRACKS::Sign up as the admin user + destroy_user: Destroy user + total_users_count: You have a total of %{count} users + destroy_confirmation: "Warning: this will delete user '%{login}', all their actions, contexts, project and notes. Are you sure that you want to continue?" + signup_new_user: Sign up new user + openid_ok_pref_failed: You have successfully verified %{url} as your identity but there was a problem saving your authentication preferences. + auth_change_submit: Change authentication type + identity_url: Identity URL + change_authentication_type: Change authentication type + total_notes: Total notes + select_authentication_type: Select your new authentication type and click 'Change authentication type' to replace your current settings. contexts: delete_context_title: Eliminar contexto - hide_form: Esconder formulario all_completed_tasks_title: "TRACKS:: Todas las acciones completadas en '%{context_name}' contexto" + hide_form: Esconder formulario show_form_title: "A\xC3\xB1adir un contexto" delete_context_confirmation: "\xC2\xBFEst\xC3\xA1 seguro que desea eliminar '%{name}' el contexto? Tenga en cuenta que esto tambi\xC3\xA9n se eliminar\xC3\xA1n todas las acciones (la repetici\xC3\xB3n) en este contexto!" delete_context: Eliminar contexto - hide_form_title: Ocultar el formulario nuevo contexto edit_context: Editar contexto + hide_form_title: Ocultar el formulario nuevo contexto no_contexts_active: Actualmente no hay contextos activos context_hide: "\xC2\xBFEsconder de la p\xC3\xA1gina principal?" hidden_contexts: Contextos ocultos save_status_message: Contexto guardado - show_form: Crear un nuevo contexto add_context: "A\xC3\xB1adir contexto" + show_form: Crear un nuevo contexto visible_contexts: Contextos visible - context_name: Nombre del contexto update_status_message: Nombre de contexto ha cambiado + context_name: Nombre del contexto completed_tasks_title: "TRACKS:: Las acciones completadas en '%{context_name}' el contexto" - status_active: "El contexto est\xC3\xA1 activo" new_context_post: "' Tambi\xC3\xA9n se ha creado. \xC2\xBFEst\xC3\xA1 seguro?" + status_active: "El contexto est\xC3\xA1 activo" no_actions: Actualmente no hay acciones incompletas en este contexto last_completed_in_context: "en este contexto (\xC3\xBAltimos %{number})" context_deleted: Contexto eliminado '%{name}' no_contexts_hidden: Actualmente no hay contextos ocultos new_context_pre: Nuevo contexto ' status_hidden: Contexto se oculta - sidebar: - list_name_active_contexts: Active contexts - list_name_active_projects: Active projects - list_empty: None - list_name_completed_projects: Completed projects - list_name_hidden_projects: Hidden projects - list_name_hidden_contexts: Hidden contexts datetime: prompts: minute: Minuto @@ -866,30 +867,30 @@ es: openid_identity_url_not_found: Sorry, no user by that identity URL exists (%{identity_url}) user_no_expiry: Stay logged in sign_in: Entrar + successful_with_session_info: "Login successful:" + please_login: Please log in to use Tracks cas_logged_in_greeting: Hello, %{username}! You are authenticated. cas_no_user_found: Hello, %{username}! You do not have an account on Tracks. cas_login: CAS Login - successful_with_session_info: "Login successful:" - please_login: Please log in to use Tracks cas_username_not_found: Sorry, no user by that CAS username exists (%{username}) - cas_create_account: If you like to request on please go here to %{signup_link} mobile_use_openid: "\xE2\x80\xA6or login with an OpenID" + cas_create_account: If you like to request on please go here to %{signup_link} cas_signup_link: Request account account_login: Acceso a la cuenta session_will_not_expire: session will not expire. successful: "Has entrado con \xC3\xA9xito. Bienvenido!" - option_separator: or, session_time_out: Session has timed out. Please %{link} session_will_expire: session will expire after %{hours} hour(s) of inactivity. + option_separator: or, login_standard: go back to the standard login - logged_out: You have been logged out of Tracks. login_with_openid: login with an OpenID unsuccessful: Login unsuccessful. log_in_again: log in again. + logged_out: You have been logged out of Tracks. search: contexts_matching_query: Contexts matching query tags_matching_query: Tags matching query - projects_matching_query: Projects matching query notes_matching_query: Notes matching query no_results: Your search yielded no results. todos_matching_query: Todos matching query + projects_matching_query: Projects matching query diff --git a/config/locales/nl.yml b/config/locales/nl.yml index 08406e59..c6f4ef18 100644 --- a/config/locales/nl.yml +++ b/config/locales/nl.yml @@ -3,7 +3,6 @@ nl: layouts: toggle_notes: Toggle notities next_actions_rss_feed: RSS-feed van de acties - toggle_notes_title: Toggle alle notities mobile_navigation: logout: Afmelden feeds: Feeds @@ -13,9 +12,10 @@ nl: tickler: Tickler contexts: 2-Contexten home: 1-Start + toggle_notes_title: Toggle alle notities navigation: - manage_users_title: Toevoegen of verwijderen gebruikers recurring_todos: Terugkerende acties + manage_users_title: Toevoegen of verwijderen gebruikers api_docs: REST API Docs feeds: Feeds starred: Ster @@ -24,16 +24,16 @@ nl: tickler_title: Tickler manage_users: Beheren gebruikers export_title: Import en export van gegevens - integrations_: Integreer Tracks preferences: Voorkeuren + integrations_: Integreer Tracks feeds_title: Zie een lijst met beschikbare feeds calendar_title: Kalender met acties met deadline - home_title: Start + stats_title: Zie je statistieken tickler: Tickler + home_title: Start starred_title: Zie je ster acties recurring_todos_title: Beheren terugkerende acties completed_tasks: Gereed - stats_title: Zie je statistieken organize: Organiseer view: Bekijk completed_tasks_title: Afgerond @@ -71,8 +71,8 @@ nl: opensearch_description: Zoek in Tracks applescript_next_action_prompt: "Omschrijving van de actie:" gmail_description: Gadget om Tracks toe te voegen aan Gmail als een gadget - applescript_success_before_id: Nieuwe actie met ID applescript_success_after_id: gemaakt + applescript_success_before_id: Nieuwe actie met ID common: back: Terug third: Derde @@ -82,50 +82,50 @@ nl: previous: Vorige logout: Log uit go_back: Ga terug - week: week cancel: Annuleer + week: week none: Geen second: Tweede - month: maand optional: optioneel + month: maand notes: Notities forum: Forum server_error: Een fout heeft op de server plaatsgevonden last: Laatste - action: Actie projects: Projecten + action: Actie project: Project contribute: Bijdragen ok: Ok website: Website - numbered_step: Stap %{number} first: Eerste - fourth: Vierde + numbered_step: Stap %{number} sort: by_task_count_title: Sorteer op aantal acties by_task_count_title_confirm: Weet u zeker dat u deze op aantal acties wilt sorteren? Dat zal de huidige sorteervolgorde aanpassen. alphabetically: Alfabetisch - alphabetically_title: Sorteer projecten alfabetisch alphabetically_confirm: Weet u zeker dat u deze projecten alfabetisch wilt sorteren? Dat zal de huidige sorteervolgorde aanpassen. sort: Sorteer + alphabetically_title: Sorteer projecten alfabetisch by_task_count: Op aantal acties + fourth: Vierde create: Maken months: maanden - todo: actie - contexts: Contexten context: Context + contexts: Contexten + todo: actie next: Volgende - errors_with_fields: Er waren problemen met de volgende velden description: Beschrijving + errors_with_fields: Er waren problemen met de volgende velden drag_handle: SLEEP - bugs: Fouten update: Bijwerken + bugs: Fouten weeks: weken forth: Vierde wiki: Wiki search: Zoeken - email: E-mail ajaxError: Er is een fout opgetreden bij het ophalen van gegevens van de server + email: E-mail models: project: feed_title: Tracks Projecten @@ -158,18 +158,18 @@ nl: due: Deadline preference: show_hidden_projects_in_sidebar: Toon verborgen projecten in sidebar - show_hidden_contexts_in_sidebar: Toon verborgen contexten in sidebar date_format: Datum formaat + show_hidden_contexts_in_sidebar: Toon verborgen contexten in sidebar + mobile_todos_per_page: Acties per pagina (mobiel) verbose_action_descriptors: Context en project uitschrijven in actielijst sms_context: Standaard context voor email staleness_starts: Begin van markeren openstaande actie - mobile_todos_per_page: Acties per pagina (mobiel) title_date_format: Datum formaat in titel show_number_completed: Aantal te tonen afgeronde acties refresh: Ververs interval (in minuten) week_starts: Week start op - due_style: Deadline stijl time_zone: Tijdzone + due_style: Deadline stijl locale: Taal sms_email: Van email show_project_on_todo_done: Ga naar project pagina wanneer actie gereed is @@ -195,8 +195,8 @@ nl: exclusion: is gereserveerd odd: moet oneven zijn too_short: is te kort (minimum is %{count} karakters) - empty: mag niet leeg zijn wrong_length: heeft de verkeerde lengte (moet %{count} karakters lang zijn) + empty: mag niet leeg zijn even: moet even zijn less_than: moet kleiner zijn dan %{count} greater_than: moet groter zijn dan %{count} @@ -217,16 +217,17 @@ nl: import_successful: De import was succesvol import_errors: Er hebben zich fouten voorgedaan bij de import stats: - tag_cloud_title: Tag Cloud voor alle acties - tag_cloud_description: Deze tag cloud bevat tags van alle acties (afgerond, niet voltooid, zichtbaar en / of verborgen) - actions: Acties - tag_cloud_90days_title: Tag cloud met acties in afgelopen 90 dagen totals_active_project_count: Van deze zijn %{count} actieve projecten - actions_avg_completion_time: Van al uw afgeronde acties, de gemiddelde tijd dat dit in beslag nam is %{count} dagen. + tag_cloud_title: Tag Cloud voor alle acties + actions: Acties + tag_cloud_description: Deze tag cloud bevat tags van alle acties (afgerond, niet voltooid, zichtbaar en / of verborgen) + tag_cloud_90days_title: Tag cloud met acties in afgelopen 90 dagen actions_last_year_legend: number_of_actions: Aantal acties months_ago: Maanden geleden totals_first_action: Sinds uw eerste actie op %{date} + actions_avg_completion_time: Van al uw afgeronde acties, de gemiddelde tijd dat dit in beslag nam is %{count} dagen. + totals_action_count: u heeft een totaal van %{count} acties legend: number_of_days: Aantal dagen geleden actions: Acties @@ -235,62 +236,60 @@ nl: percentage: Percentage running_time: Looptijd van een actie (weken) months_ago: Maanden geleden - top10_longrunning: Top 10 langstlopende projecten - actions_dow_30days_title: Dag van de week (laatste 30 dagen) - totals_action_count: u heeft een totaal van %{count} acties current_running_time_of_incomplete_visible_actions: Huidige looptijd van onvolledige zichtbare acties totals_deferred_actions: waarvan %{count} uitgestelde acties in de tickler zijn running_time_legend: actions: Acties percentage: Percentage weeks: Looptijd van een actie (weken). Klik op een balk voor meer info + top10_longrunning: Top 10 langstlopende projecten + actions_dow_30days_title: Dag van de week (laatste 30 dagen) + actions_lastyear_title: Acties in de afgelopen 12 maanden + totals_actions_completed: "%{count} van deze zijn voltooid." totals_incomplete_actions: U heeft %{count} onvolledige acties totals_unique_tags: Van deze tags zijn %{count} uniek. actions_avg_completed_30days: en voltooide een gemiddelde van %{count} acties per dag. top5_contexts: Top 5 contexten - actions_lastyear_title: Acties in de afgelopen 12 maanden - totals_actions_completed: "%{count} van deze zijn voltooid." + action_completion_time_title: Doorlooptijd (alle voltooide acties) actions_last_year: Acties in de afgelopen jaren totals_context_count: U heeft %{count} contexten. - totals_visible_context_count: Van deze zijn %{count} zichtbare contexten projects: Projecten + totals_visible_context_count: Van deze zijn %{count} zichtbare contexten totals_blocked_actions: "%{count} zijn afhankelijk van de voltooiing van hun acties." - action_completion_time_title: Doorlooptijd (alle voltooide acties) + actions_day_of_week_title: Dag van de week (alle acties) + totals_project_count: U heeft %{count} projecten. actions_min_max_completion_days: De max-/minimum dagen tot voltooiing is %{min}/%{max}. actions_min_completion_time: De minimale tijd tot afronding is %{time}. no_tags_available: geen tags beschikbaar - actions_day_of_week_title: Dag van de week (alle acties) - totals_project_count: U heeft %{count} projecten. tags: Tags - actions_further: en verder - totals_tag_count: U heeft %{count} tags geplaatst op acties. running_time_all: Huidige looptijd van alle onvolledige acties + tag_cloud_90days_description: Deze tag cloud bevat tags van acties die zijn gemaakt of voltooid in de afgelopen 90 dagen. actions_30days_title: Acties in de afgelopen 30 dagen + top5_visible_contexts_with_incomplete_actions: Top 5 zichtbare contexten met onvolledige acties time_of_day: Tijd van de dag (alle acties) totals_hidden_project_count: "%{count} zijn verborgen" + actions_further: en verder tod30: Tijd van de dag (laatste 30 dagen) + totals_tag_count: U heeft %{count} tags geplaatst op acties. more_stats_will_appear: Meer statistieken zullen hier verschijnen zodra u acties hebt toegevoegd. - tag_cloud_90days_description: Deze tag cloud bevat tags van acties die zijn gemaakt of voltooid in de afgelopen 90 dagen. - top5_visible_contexts_with_incomplete_actions: Top 5 zichtbare contexten met onvolledige acties - totals_completed_project_count: en %{count} zijn afgeronde projecten. click_to_return: Klik %{link} om terug te keren naar de statistieken pagina. + other_actions_label: (anderen) top10_projects_30days: Top 10 project in de laatste 30 dagen + top10_projects: Top 10 projecten spread_of_running_actions_for_visible_contexts: Verdeling van actieve acties voor zichtbare contexten + actions_avg_created: In de afgelopen 12 maanden heeft u gemiddeld%{count} acties aangemaakt actions_selected_from_week: Gekozen acties van week spread_of_actions_for_all_context: Verdeling van acties voor alle contexten + totals_completed_project_count: en %{count} zijn afgeronde projecten. click_to_show_actions_from_week: Klik %{link} om de acties van week %{week} en verder te zien. - other_actions_label: (anderen) - top10_projects: Top 10 projecten - actions_avg_created: In de afgelopen 12 maanden heeft u gemiddeld%{count} acties aangemaakt - actions_avg_completed: en voltooide een gemiddelde van %{count} acties per maand. totals: Totalen time_of_day_legend: number_of_actions: Aantal acties time_of_day: Tijd van de dag - contexts: Contexten click_to_return_link: hier + contexts: Contexten totals_hidden_context_count: en %{count} zijn verborgen contexten. - click_to_update_actions: Klik op een balk in de grafiek op de acties hieronder aan te passen. + actions_avg_completed: en voltooide een gemiddelde van %{count} acties per maand. labels: month_avg_completed: "%{months} gem afgerond per maand" completed: Afgerond @@ -299,6 +298,7 @@ nl: avg_completed: Gem afgerond created: Gemaakt no_actions_selected: Er zijn geen acties geselecteerd. + click_to_update_actions: Klik op een balk in de grafiek op de acties hieronder aan te passen. running_time_all_legend: actions: Acties percentage: Percentage @@ -313,12 +313,12 @@ nl: show_from: Toon vanaf error_starring_recurring: Kon niet de ster van deze terugkerende actie niet omgezetten \'%{description}\' recurring_action_deleted: Actie werd verwijderd. Omdat deze actie herhalend is. werd een nieuwe actie toegevoegd - completed_rest_of_previous_month: Afgerond in de rest van de vorige maand completed_recurring: Afgesloten terugkerende todos added_new_next_action: Nieuwe actie toegevoegd + completed_rest_of_previous_month: Afgerond in de rest van de vorige maand blocked_by: Geblokkeerd door %{predecessors} - completed_recurrence_completed: Er is geen actie na de terugkerende actie die u new verwijderd heeft. De herhaling is voltooid star_action: Markeer deze actie met een ster + completed_recurrence_completed: Er is geen actie na de terugkerende actie die u new verwijderd heeft. De herhaling is voltooid defer_date_after_due_date: Uitsteldatum is na de vervaldag. Gelieve vervaldag bewerken alvorens uitsteldatum aan te passen. unable_to_add_dependency: Niet in staat om de afhankelijkheid toe te voegen done: Voltooid? @@ -330,10 +330,10 @@ nl: edit_action_with_description: Bewerk de actie '%{description}' action_due_on: (deadline actie op %{date}) tags: Tags (gescheiden door komma's) + action_deleted_success: Actie succesvol verwijderd archived_tasks_title: "TRACKS:: Gearchiveerde voltooide taken" remove_dependency: Verwijder afhankelijkheid (zal niet de actie zelf verwijderen) list_incomplete_next_actions: Toon onvoltooide acties - action_deleted_success: Actie succesvol verwijderd mobile_todos_page_title: Alle acties new_related_todo_created: Een nieuwe actie is toegevoegd, die behoort bij deze terugkerende todo context_changed: Context veranderd in '%{name}' @@ -352,12 +352,12 @@ nl: completed: acties voltooid due_today: deadline vandaag due_within_a_week: deadline binnen een week + added_new_project: Nieuw project toegevoegd list_incomplete_next_actions_with_limit: Toont de laatste %{count} onvoltooide acties set_to_pending: "'%{task}' als wachtend ingesteld" - added_new_project: Nieuw project toegevoegd older_completed_items: Oudere voltooide items - error_deleting_item: Er is een fout opgetreden bij het verwijderen van het item '%{description}' append_in_this_project: in dit project + error_deleting_item: Er is een fout opgetreden bij het verwijderen van het item '%{description}' task_list_title: TRACKS::Toon acties no_actions_due_this_week: Geen acties met deadline in rest van deze week no_recurring_todos: Momenteel zijn er geen terugkerende acties @@ -365,22 +365,22 @@ nl: recurring_pattern_removed: Het herhalingspatroon is verwijderd van %{count} convert_to_project: Maak project no_deferred_pending_actions: Momenteel zijn er geen uitgestelde of wachtende acties - completed_last_day: Voltooid in de laatste 24 uur delete_recurring_action_confirm: Weet u zeker dat u wilt de terugkerende actie '%{description}' wilt verwijderen? + completed_last_day: Voltooid in de laatste 24 uur + all_completed: Alle afgeronde acties + error_saving_recurring: Er is een fout opgetreden het opslaan van de terugkerende actie '%{description}' show_in_days: Toon over %{days} dagen no_project: -- Geen project -- - error_saving_recurring: Er is een fout opgetreden het opslaan van de terugkerende actie '%{description}' completed_more_than_x_days_ago: Voltooid meer dan %{count} dagen geleden - all_completed: Alle afgeronde acties feed_title_in_context: in context '%{context}' new_related_todo_created_short: een nieuwe actie gemaakt - older_than_days: Ouder dan %{count} dagen completed_tagged_page_title: "TRACKS:: Afgeronde acties met tag %{tag_name}" + older_than_days: Ouder dan %{count} dagen edit: Bewerken pending: Wachtend completed_actions_with: Afgeronde acties met de tag %{tag_name} - deleted_success: De actie werd met succes verwijderd. completed_tasks_title: TRACKS::Voltooide taken + deleted_success: De actie werd met succes verwijderd. feed_title_in_project: In het project '%{project}' clear_due_date: Maak deadline leeg error_removing_dependency: Er is een fout opgetreden het verwijderen van de afhankelijke actie @@ -389,22 +389,22 @@ nl: show_on_date: Toon op %{date} recurrence_period: Herhaling periode deferred_actions_with: Uitgestelde acties met de tag '%{tag_name}' - confirm_delete: Weet u zeker dat u de actie '%{description}' wilt verwijderen? recurring_deleted_success: De recurrente actie is succesvol verwijderd. + confirm_delete: Weet u zeker dat u de actie '%{description}' wilt verwijderen? + deferred_tasks_title: TRACKS::Tickler next_actions_title: Tracks - Acties next_action_description: Actie beschrijving - deferred_tasks_title: TRACKS::Tickler no_completed_actions_with: Geen voltooide acties met de tag '%{tag_name}' clear_show_from_date: Maak de datum Tonen Vanaf leeg - unresolved_dependency: De waarde die u ingevoerd heeft in het afhankelijkheden veld is niet herleidbaar naar een bestaande actie. Deze waarde wordt niet bewaard met de rest van de actie. Doorgaan? calendar_page_title: TRACKS::Agenda + unresolved_dependency: De waarde die u ingevoerd heeft in het afhankelijkheden veld is niet herleidbaar naar een bestaande actie. Deze waarde wordt niet bewaard met de rest van de actie. Doorgaan? in_hidden_state: in verborgen toestand show_today: Toon vandaag no_actions_found_title: Geen acties gevonden next_actions_due_date: overdue_by: Over deadline met %{days} dag - due_today: Deadline vandaag due_in_x_days: Deadline over %{days} dagen + due_today: Deadline vandaag overdue_by_plural: Over deadline met %{days} dagen due_tomorrow: Deadline morgen completed_last_x_days: Voltooid in de laatste %{count} dagen @@ -424,9 +424,9 @@ nl: recurring_todos: Terugkerende acties delete_action: Verwijder actie error_deleting_recurring: Er is een fout opgetreden bij het verwijderen van het item \'%{description}\' + cannot_add_dependency_to_completed_todo: Kan deze actie niet als een afhankelijkheid van een voltooide actie toevoegen! delete: Verwijder drag_action_title: Sleep naar een andere actie om deze afhankelijk te maken van die actie - cannot_add_dependency_to_completed_todo: Kan deze actie niet als een afhankelijkheid van een voltooide actie toevoegen! no_last_completed_actions: Geen afgeronde acties gevonden depends_on: Hangt af van tickler_items_due: @@ -438,19 +438,18 @@ nl: new_related_todo_not_created_short: een nieuwe actie is niet gemaakt completed_rest_of_week: Afgerond in de rest van deze week error_starring: Kon niet de ster van deze actie niet omzetten \'%{description}\' - show_tomorrow: Toon morgen calendar: get_in_ical_format: Ontvang deze agenda in iCal-formaat due_next_week: Deadline volgende week due_this_week: Deadline in rest van deze week no_actions_due_next_week: Geen acties met deadline in volgende week - due_today: Deadline vandaag no_actions_due_today: Geen acties met deadline vandaag + due_today: Deadline vandaag due_next_month_and_later: Deadline in %{month} en later no_actions_due_after_this_month: Geen acties met deadline na deze maand due_this_month: Deadline in rest van %{month} no_actions_due_this_month: Geen acties met deadline in de rest van deze maand - tagged_page_title: TRACKS::Tagged met '%{tag_name}' + show_tomorrow: Toon morgen recurrence: ends_on_number_times: Eindigt na %{number} keer ends_on_date: Eindigt op %{date} @@ -462,6 +461,7 @@ nl: daily_options: Instellingen voor dagelijks terugkerende acties monthly: Maandelijks starts_on: Begint op + show_option_always: altijd daily: Dagelijks pattern: third: derde @@ -487,12 +487,11 @@ nl: from: vanaf last: laatste every_day: elke dag - times: voor %{number} keer the_xth_day_of_month: de %{x} %{day} van %{month} - show: Tonen - first: eerste - every_year_on: elk jaar op %{date} + times: voor %{number} keer on_work_days: op werkdagen + first: eerste + show: Tonen day_names: - zondag - maandag @@ -501,38 +500,40 @@ nl: - donderdag - vrijdag - zaterdag + every_year_on: elk jaar op %{date} fourth: vierde due: Deadline - every_month: elke maand until: tot - show_option_always: altijd + every_month: elke maand yearly_every_x_day: Elke %{month} %{day} recurrence_on_options: Stel herhaling in op daily_every_number_day: Elke %{number} dag(en) - show_options: Toon de actie weekly_every_number_week: Herhaalt elke %{number} weken op ends_on: Eindigt op - yearly_options: Instellingen voor jaarlijks terugkerende acties + show_options: Toon de actie show_days_before: "%{days} dagen v\xC3\xB3\xC3\xB3r de deadline van actie" from_tickler: de datum dat de actie uit de tickler komt (geen deadline ingesteld) no_end_date: Geen einddatum - yearly_every_xth_day: De %{day} %{day_of_week} van %{month} day_x_on_every_x_month: Dag %{day} op elke %{month} maand - monthly_every_xth_day: De %{day} %{day_of_week} van elke %{month} maand + yearly_every_xth_day: De %{day} %{day_of_week} van %{month} + yearly_options: Instellingen voor jaarlijks terugkerende acties yearly: Jaarlijks + monthly_every_xth_day: De %{day} %{day_of_week} van elke %{month} maand + action_deferred: De actie '%{description}' is uitgesteld + tagged_page_title: TRACKS::Tagged met '%{tag_name}' no_completed_recurring: Momenteel zijn er geen voltooide terugkerende acties added_dependency: "%{dependency} als afhankelijkheid toegevoegd." - all_completed_tagged_page_title: "TRACKS:: Alle afgeronde acties met tag %{tag_name}" - no_deferred_actions: Momenteel zijn er geen uitgestelde acties. completed_rest_of_month: Afgerond in de rest van deze maand + no_deferred_actions: Momenteel zijn er geen uitgestelde acties. + all_completed_tagged_page_title: "TRACKS:: Alle afgeronde acties met tag %{tag_name}" recurrence_completed: Er is geen volgende actie na de terugkerende actie die u zojuist hebt voltooid. De herhaling is voltooid - in_pending_state: in wachtende toestand - no_actions_found: Momenteel zijn er geen onafgeronde acties. - error_toggle_complete: Kon deze actie niet als afgerond markeren due: Deadline + no_actions_found: Momenteel zijn er geen onafgeronde acties. + in_pending_state: in wachtende toestand + error_toggle_complete: Kon deze actie niet als afgerond markeren action_marked_complete_error: De actie '%{description}' is niet gemarkeerd als %{completed} vanwege een fout op de server. - depends_on_separate_with_commas: Afhankelijk van (gescheiden door komma's) recurring_action_saved: Terugkerende actie opgeslagen + depends_on_separate_with_commas: Afhankelijk van (gescheiden door komma's) action_saved_to_tickler: Actie opgeslagen in tickler completed_in_archive: one: Er is een voltooide actie in het archief. @@ -542,8 +543,8 @@ nl: completed: in de afgelopen %{count} dagen due_date: met een deadline %{due_date} of eerder overdue: Achterstallig - no_incomplete_actions: Er zijn geen onvoltooide acties add_new_recurring: Voeg een nieuwe terugkerende actie toe + no_incomplete_actions: Er zijn geen onvoltooide acties notes: delete_confirmation: Weet u zeker dat u de notitie '%{id}' wilt verwijderen? delete_item_title: Verwijder item @@ -561,10 +562,10 @@ nl: completed: Afgerond completed_plural: Afgeronde visible_plural: Zichtbare - visible: Zichtbaar active_plural: Actieve - active: Actief + visible: Zichtbaar hidden: Verborgen + active: Actief time: am: ochtend formats: @@ -575,73 +576,73 @@ nl: long: "%A, %d. %B %Y, %H:%M" pm: middag projects: + edit_project_title: Bewerk project + default_tags_removed_notice: De standaard tags zijn verwijderd default_context_set: Stel project standaard context in op %{default_context} no_actions_in_project: Momenteel zijn er geen onafgeronde acties in dit project deferred_actions: Uitgestelde acties voor dit project was_marked_hidden: is gemarkeerd als verborgen - edit_project_title: Bewerk project - default_tags_removed_notice: De standaard tags zijn verwijderd - hide_form: Verberg formulier - page_title: "TRACKS:: Project: %{project}" all_completed_tasks_title: TRACKS::Toon alle afgeronde acties in het project '{project_name}' - this_project: Dit project - project_state: Project is %{state}. + page_title: "TRACKS:: Project: %{project}" + hide_form: Verberg formulier show_form_title: Maak een nieuw project list_completed_projects: TRACKS::Toon afgeronde projecten to_new_project_page: Ga naar de nieuwe projectpagina no_notes_attached: Momenteel zijn er geen notities toegevoegd aan dit project + this_project: Dit project deferred_actions_empty: Er zijn geen uitgestelde acties voor dit project - notes: Notities + project_state: Project is %{state}. no_last_completed_projects: Geen afgeronde projecten gevonden todos_append: in dit project + notes: Notities + notes_empty: Er zijn geen notities voor dit project no_projects: Momenteel zijn er geen projecten hide_form_title: Verberg nieuw project formulier - notes_empty: Er zijn geen notities voor dit project with_no_default_context: zonder standaard context delete_project: Project verwijderen completed_actions_empty: Er zijn nog geen afgeronde acties voor dit project + delete_project_confirmation: Weet u zeker dat u wilt het project '%{name} wilt verwijderen? with_default_context: met een standaard context '%{context_name}' show_form: Toevoegen van een project actions_in_project_title: Acties in dit project - delete_project_confirmation: Weet u zeker dat u wilt het project '%{name} wilt verwijderen? - project_saved_status: Project opgeslagen add_project: Voeg project toe + with_default_tags: en met '%{tags}' als de standaard tags add_note: Een notitie toevoegen + list_projects: "TRACKS:: Overzicht van projecten" set_default_tags_notice: Stel project standaard tags in op %{default_tags} is_active: is actief settings: Instellingen + project_saved_status: Project opgeslagen completed_projects: Voltooide projecten - with_default_tags: en met '%{tags}' als de standaard tags - list_projects: "TRACKS:: Overzicht van projecten" - delete_project_title: Verwijder het project completed_tasks_title: TRACKS::Toon afgeronde acties in het project '%{project_name}' + delete_project_title: Verwijder het project hidden_projects: Verborgen projecten - default_context_removed: Standaard context verwijderd add_note_submit: Notitie toevoegen - completed_actions: Afgeronde acties voor dit project was_marked_complete: is gemarkeerd als voltooid + completed_actions: Afgeronde acties voor dit project + default_context_removed: Standaard context verwijderd edit_project_settings: Bewerk project instellingen - default_context: De standaard context voor dit project is %{context} active_projects: Actieve projecten + default_context: De standaard context voor dit project is %{context} status_project_name_changed: Naam van het project werd gewijzigd no_default_context: Dit project heeft geen standaard context - state: Dit project is %{state} with_no_default_tags: en zonder standaard tags + state: Dit project is %{state} errors: user_unauthorized: "401 Unauthorized: Alleen administratieve gebruikers mogen deze functie gebruiken." preferences: change_identity_url: Verander uw Identity URL - staleness_starts_after: Markeren openstaande acties begint na %{days} dagen open_id_url: Uw OpenID URL is + staleness_starts_after: Markeren openstaande acties begint na %{days} dagen change_password: Wijzig uw wachtwoord page_title: "TRACKS:: Voorkeuren" title: Uw voorkeuren token_description: Token (voor feeds en API gebruik) is_false: Nee show_number_completed: Toon %{number} voltooide items + page_title_edit: "TRACKS:: Voorkeuren bewerken" is_true: Ja edit_preferences: Voorkeuren bewerken - page_title_edit: "TRACKS:: Voorkeuren bewerken" sms_context_none: Geen generate_new_token: Genereer een nieuwe token token_header: Uw token @@ -711,6 +712,8 @@ nl: two_words_connector: en select: prompt: Selecteer + footer: + send_feedback: Stuur reactie op %{version} dates: month_names: - Januari @@ -733,28 +736,76 @@ nl: - Donderdag - Vrijdag - Zaterdag - footer: - send_feedback: Stuur reactie op %{version} shared: multiple_next_actions: Meerdere acties (een op elke regel) - hide_form: Verberg formulier toggle_single: Voeg een actie toe + hide_form: Verberg formulier add_action: Actie toevoegen add_actions: Toevoegen acties tags_for_all_actions: Tags voor alle acties (scheiden met een komma) + project_for_all_actions: Project voor alle acties context_for_all_actions: Context voor alle acties toggle_multi: Voeg meerdere acties toe toggle_single_title: Voeg een nieuwe actie toe - project_for_all_actions: Project voor alle acties separate_tags_with_commas: gescheiden door komma's toggle_multi_title: Toggle single / multi actie formulier hide_action_form_title: Verberg nieuwe actie formulier + sidebar: + list_name_active_contexts: Actieve contexten + list_name_active_projects: Actieve projecten + list_empty: Geen + list_name_completed_projects: Voltooide projecten + list_name_hidden_projects: Verborgen projecten + list_name_hidden_contexts: Verborgen contexten + users: + auth_type_update_error: "Er was een probleem met het bijwerken van uw authenticatietype: %{error_messages}" + openid_url_verified: Je hebt %{url} met succes geverifieerd als je identiteit en uw authenticatie type OpenID opgeslagen. + destroy_successful: Gebruiker %{login} met succes verwijderd + total_contexts: Totaal aantal contexten + successfully_deleted_user: Succesvol gebruiker %{username} verwijderd + failed_to_delete_user: Mislukt de gebruiker %{username} te verwijderen + first_user_heading: "Welkom bij TRACKS. Om te beginnen, maak dan een admin account:" + new_token_generated: Nieuwe token met succes gegenereerd + total_projects: Totaal aantal projecten + signup_successful: Aanmelding succesvol voor gebruiker %{username}. + change_password_submit: Wachtwoord wijzigen + no_signups_title: "TRACKS:: Geen nieuwe aanmeldingen" + user_created: Gebruiker aangemaakt. + account_signup: Aanmelden voor een account + manage_users: Beheren gebruikers + password_updated: Wachtwoord bijgewerkt. + confirm_password: Bevestig wachtwoord + signup: Aanmelden + new_user_heading: "Registreer een nieuwe gebruiker:" + auth_type_updated: Authenticatietype bijgewerkt. + total_actions: Totaal aanal acties + desired_login: Gewenste login + choose_password: Kies een wachtwoord + change_password_title: TRACKS::Wachtwoord wijzigen + change_auth_type_title: TRACKS::Wijzig authenticatietype + change_password_prompt: Voer uw nieuwe wachtwoord in de onderstaande velden in en kies 'Wachtwoord wijzigen' om uw huidige wachtwoord met uw nieuwe te vervangen. + password_confirmation_label: Bevestig wachtwoord + destroy_error: Er is een fout opgetreden bij het verwijderen van de gebruiker '%{login}' + label_auth_type: Authenticatietype + new_password_label: Nieuw wachtwoord + register_with_cas: Met uw CAS gebruikersnaam + new_user_title: "TRACKS:: Aanmelden als de admin gebruiker" + destroy_user: Verwijder de gebruiker + total_users_count: Je hebt een totaal van %{count} gebruikers + destroy_confirmation: "Waarschuwing: dit zal de gebruiker '%{login} verwijderen met al zijn acties, contexten, projecten en notities. Weet u zeker dat u wilt doorgaan?" + signup_new_user: Registreer nieuwe gebruiker + openid_ok_pref_failed: Je hebt succesvol de %{url} geverifieerd als je identiteit, maar er was een probleem met het opslaan van uw authenticatie voorkeuren. + auth_change_submit: Wijzigen authenticatietype + identity_url: Identiteit URL + change_authentication_type: Wijzigen authenticatietype + total_notes: Totaal aantal notities + select_authentication_type: Selecteer uw nieuwe authenticatie type en klik op 'Wijzigen authenticatietype' om uw huidige instellingen te vervangen. feedlist: choose_context: Kies de context waar je een feed van wilt actions_due_today: Acties die vandaag of eerder af moeten ical_feed: iCal feed - legend: Legenda all_contexts: Alle contexten + legend: Legenda rss_feed: RSS Feed choose_project: Kies het project waar je een feed van wilt all_projects: Alle projecten @@ -773,83 +824,33 @@ nl: actions_completed_last_week: Acties afgerond in de afgelopen 7 dagen context_centric_actions: Feeds voor onafgeronde acties in een specifieke context project_centric: Feeds voor onafgeronde acties in een specifiek project - users: - total_contexts: Totaal aantal contexten - failed_to_delete_user: Mislukt de gebruiker %{username} te verwijderen - first_user_heading: "Welkom bij TRACKS. Om te beginnen, maak dan een admin account:" - auth_type_update_error: "Er was een probleem met het bijwerken van uw authenticatietype: %{error_messages}" - openid_url_verified: Je hebt %{url} met succes geverifieerd als je identiteit en uw authenticatie type OpenID opgeslagen. - destroy_successful: Gebruiker %{login} met succes verwijderd - successfully_deleted_user: Succesvol gebruiker %{username} verwijderd - new_token_generated: Nieuwe token met succes gegenereerd - total_projects: Totaal aantal projecten - signup_successful: Aanmelding succesvol voor gebruiker %{username}. - change_password_submit: Wachtwoord wijzigen - no_signups_title: "TRACKS:: Geen nieuwe aanmeldingen" - user_created: Gebruiker aangemaakt. - account_signup: Aanmelden voor een account - manage_users: Beheren gebruikers - password_updated: Wachtwoord bijgewerkt. - signup: Aanmelden - confirm_password: Bevestig wachtwoord - new_user_heading: "Registreer een nieuwe gebruiker:" - auth_type_updated: Authenticatietype bijgewerkt. - total_actions: Totaal aanal acties - desired_login: Gewenste login - change_password_title: TRACKS::Wachtwoord wijzigen - change_auth_type_title: TRACKS::Wijzig authenticatietype - change_password_prompt: Voer uw nieuwe wachtwoord in de onderstaande velden in en kies 'Wachtwoord wijzigen' om uw huidige wachtwoord met uw nieuwe te vervangen. - password_confirmation_label: Bevestig wachtwoord - destroy_error: Er is een fout opgetreden bij het verwijderen van de gebruiker '%{login}' - choose_password: Kies een wachtwoord - label_auth_type: Authenticatietype - new_password_label: Nieuw wachtwoord - register_with_cas: Met uw CAS gebruikersnaam - new_user_title: "TRACKS:: Aanmelden als de admin gebruiker" - destroy_user: Verwijder de gebruiker - total_users_count: Je hebt een totaal van %{count} gebruikers - destroy_confirmation: "Waarschuwing: dit zal de gebruiker '%{login} verwijderen met al zijn acties, contexten, projecten en notities. Weet u zeker dat u wilt doorgaan?" - signup_new_user: Registreer nieuwe gebruiker - openid_ok_pref_failed: Je hebt succesvol de %{url} geverifieerd als je identiteit, maar er was een probleem met het opslaan van uw authenticatie voorkeuren. - auth_change_submit: Wijzigen authenticatietype - identity_url: Identiteit URL - change_authentication_type: Wijzigen authenticatietype - select_authentication_type: Selecteer uw nieuwe authenticatie type en klik op 'Wijzigen authenticatietype' om uw huidige instellingen te vervangen. - total_notes: Totaal aantal notities contexts: delete_context_title: Verwijder context - hide_form: Verberg formulier all_completed_tasks_title: "TRACKS:: Alle voltooide acties in context '%{context_name}'" + hide_form: Verberg formulier show_form_title: Voeg een context toe delete_context_confirmation: Weet u zeker dat u de context '%{name}' wilt verwijderen? Merk op dat dit ook alle (herhalende) acties in deze context zal verwijderen! delete_context: Verwijder context - hide_form_title: "Verberg formulier voor nieuwe context " edit_context: Bewerk context + hide_form_title: "Verberg formulier voor nieuwe context " no_contexts_active: Momenteel zijn er geen actieve contexten context_hide: Verberg van de start pagina? hidden_contexts: Verborgen contexten save_status_message: Context bewaard - show_form: Maak een nieuwe context add_context: Context toevoegen + show_form: Maak een nieuwe context visible_contexts: Zichtbare contexten - context_name: Context naam update_status_message: Naam van de context was veranderd + context_name: Context naam completed_tasks_title: "TRACKS:: Voltooid acties in de context '%{context_name}'" - status_active: Context is actief new_context_post: "' zal ook gemaakt worden. Weet u dit zeker?" + status_active: Context is actief no_actions: Momenteel zijn er geen onafgeronde acties in deze context last_completed_in_context: in deze context (laatste %{number}) context_deleted: De context '%{name}' is verwijderd no_contexts_hidden: Momenteel zijn er geen verborgen contexten new_context_pre: Nieuwe context ' status_hidden: Context is verborgen - sidebar: - list_name_active_contexts: Actieve contexten - list_name_active_projects: Actieve projecten - list_empty: Geen - list_name_completed_projects: Voltooide projecten - list_name_hidden_projects: Verborgen projecten - list_name_hidden_contexts: Verborgen contexten datetime: prompts: minute: Minuut @@ -900,30 +901,30 @@ nl: openid_identity_url_not_found: Sorry, geen gebruiker met die identiteit URL bestaat (%{identity_url}) user_no_expiry: Blijf ingelogd sign_in: Meld aan + successful_with_session_info: "Login succesvol:" + please_login: Log in om Tracks te gebruiken cas_logged_in_greeting: Hallo, %{username}! U bent geauthenticeerd. cas_no_user_found: Hallo,%{username}! Je hebt nog geen account op Tracks. cas_login: CAS Inloggen - successful_with_session_info: "Login succesvol:" - please_login: Log in om Tracks te gebruiken cas_username_not_found: Sorry, geen gebruiker met die CAS gebruikersnaam bestaat (%{username}) - cas_create_account: Als u willen vragen ga hier om %{signup_link} mobile_use_openid: ... if inloggen met een OpenID + cas_create_account: Als u willen vragen ga hier om %{signup_link} cas_signup_link: Aanvragen account account_login: Account login session_will_not_expire: sessie zal niet verlopen. successful: Succesvol aangemeld. Welkom terug! - option_separator: of, session_time_out: Sessie is verlopen. Gelieve %{link} session_will_expire: sessie zal verlopen na %{hours} u(u)r(en) van inactiviteit. + option_separator: of, login_standard: Ga terug naar de standaard login - logged_out: Je bent afgemeld bij Tracks. login_with_openid: inloggen met een OpenID unsuccessful: Login mislukt. log_in_again: opnieuw in te loggen. + logged_out: Je bent afgemeld bij Tracks. search: contexts_matching_query: Contexten passend bij zoekopdracht tags_matching_query: Tags passend bij zoekopdracht - projects_matching_query: Projecten passend bij zoekopdracht notes_matching_query: Notities passend bij zoekopdracht no_results: Uw zoekopdracht heeft geen resultaten opgeleverd. todos_matching_query: Todos passend bij zoekopdracht + projects_matching_query: Projecten passend bij zoekopdracht diff --git a/config/routes.rb b/config/routes.rb index 1261ed40..7a551b1e 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -20,7 +20,7 @@ ActionController::Routing::Routes.draw do |map| map.resources :notes map.resources :todos, - :member => {:toggle_check => :put, :toggle_star => :put}, + :member => {:toggle_check => :put, :toggle_star => :put, :defer => :put}, :collection => {:check_deferred => :post, :filter_to_context => :post, :filter_to_project => :post, :done => :get, :all_done => :get } diff --git a/features/mobile_edit_a_todo.feature b/features/mobile_edit_a_todo.feature index 62b8ad77..5726d99a 100644 --- a/features/mobile_edit_a_todo.feature +++ b/features/mobile_edit_a_todo.feature @@ -17,13 +17,17 @@ Feature: Edit a next action from the mobile view Scenario: I can edit an action on the mobile page When I am on the home page Then the badge should show 1 - Then I should see "test action" + And I should see "test action" When I follow "test action" + Then I should see "Actions" + When I press "Edit this action" + Then I should see "Description" And I fill in "Description" with "changed action" And I press "Update" Then I should see "changed action" And I should not see "test action" When I follow "changed action" + And I press "Edit this action" And I check "done" And I press "Update" Then I should not see "changed action" @@ -36,3 +40,13 @@ Feature: Edit a next action from the mobile view Then the badge should show 0 When I follow "Feeds" Then I should see "Last 15 actions" + + Scenario: I can defer an action on the mobile page + When I am on the home page + Then the badge should show 1 + And I should see "test action" + When I follow "test action" + And I press "Defer 1 day" + Then I should see "There are no incomplete actions" + When I follow "Tickler" + Then I should see "test action" \ No newline at end of file From ed26ebdfb6a23dac7d7db15498eeea25a8c66861 Mon Sep 17 00:00:00 2001 From: bsag Date: Sat, 16 Jul 2011 11:58:32 +0100 Subject: [PATCH 065/197] Added information about the move to the TracksApp Organization. --- README | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/README b/README index b9cb792d..e38e5544 100644 --- a/README +++ b/README @@ -1,5 +1,11 @@ # Tracks: a GTD(TM) web application, built with Ruby on Rails +**IMPORTANT: Tracks is moving to a GitHub Organization to make it easier to continue administering the project. Development will soon cease at bsag/tracks and move to TracksApp/tracks. If you are currently pulling from bsag/tracks, please pull from TracksApp instead.** + +`git clone git://github.com/TracksApp/tracks.git` + +**The new home for Tracks is https://github.com/TracksApp/tracks** + * Project homepage: http://getontracks.org/ * Manual: http://bsag.github.com/tracks/ * Source at GitHub: http://github.com/bsag/tracks/ @@ -22,4 +28,4 @@ If you are thinking about contributing towards the development of Tracks, please While fully usable for everyday use, Tracks is still a work in progress. Make sure that you take sensible precautions and back up all your data frequently, taking particular care when you are upgrading. -Enjoy being productive! \ No newline at end of file +Enjoy being productive! From 6576984f768e5b2595f05c0115bcd4ee0719f984 Mon Sep 17 00:00:00 2001 From: Reinier Balt Date: Wed, 27 Jul 2011 15:24:10 +0200 Subject: [PATCH 066/197] fix #1184 by adding the fr locale contributed by olivierrochvilato. Thanks. Also adds the es locale for datepicker --- config/locales/fr.yml | 900 ++++++++++++++++++ .../i18n/jquery.ui.datepicker-es.js | 23 + .../i18n/jquery.ui.datepicker-fr.js | 23 + 3 files changed, 946 insertions(+) create mode 100644 config/locales/fr.yml create mode 100644 public/javascripts/i18n/jquery.ui.datepicker-es.js create mode 100644 public/javascripts/i18n/jquery.ui.datepicker-fr.js diff --git a/config/locales/fr.yml b/config/locales/fr.yml new file mode 100644 index 00000000..8050a941 --- /dev/null +++ b/config/locales/fr.yml @@ -0,0 +1,900 @@ +--- +fr: + number: + format: + separator: "." + precision: 2 + delimiter: "," + human: + format: + precision: 1 + delimiter: "" + storage_units: + format: "%n %u" + units: + kb: KB + tb: TB + gb: GB + byte: + one: Octet + other: Octets + mb: MB + percentage: + format: + delimiter: "" + precision: + format: + delimiter: "" + currency: + format: + format: "%u%n" + unit: $ + separator: . + delimiter: "," + layouts: + toggle_notes: Afficher/Cacher notes + next_actions_rss_feed: Flux RSS des prochaines actions + toggle_notes_title: Afficher/Cacher toutes les notes + mobile_navigation: + logout: "D\xC3\xA9connexion" + feeds: Flux + new_action: 0-Nouvelle action + starred: "4-Marqu\xC3\xA9" + projects: 3-Projets + tickler: "Reporteur" + contexts: 2-Contextes + home: 1-Accueil + navigation: + manage_users_title: Ajouter ou supprimer des utilisateurs + recurring_todos: "T\xC3\xA2ches (todos) r\xC3\xA9p\xC3\xA9titives" + api_docs: Doc REST API + feeds: Flux + stats: Statistiques + starred: "Marqu\xC3\xA9" + notes_title: Voir toutes les notes + tickler_title: "Reporteur" + manage_users: Gestion des utilisateurs + export_title: "Importer et exporter des donn\xC3\xA9es" + integrations_: "Int\xC3\xA9grer Tracks" + preferences: "Pr\xC3\xA9f\xC3\xA9rences" + feeds_title: Voir une liste des flux disponibles + calendar_title: "Calendrier des actions \xC3\xA0 \xC3\xA9ch\xC3\xA9ance" + home_title: Accueil + starred_title: "Voir vos actions pr\xC3\xA9f\xC3\xA9r\xC3\xA9es" + recurring_todos_title: "Gerer les actions r\xC3\xA9currentes" + completed_tasks: "Termin\xC3\xA9" + tickler: "Reporteur" + stats_title: Voir vos statistiques + organize: Organiser + view: Vue + completed_tasks_title: "Termin\xC3\xA9" + export: Exporter + contexts_title: Contextes + home: Accueil + calendar: Calendrier + search: Recherches tous les items + projects_title: Projets + preferences_title: "Voir mes pr\xC3\xA9f\xC3\xA9rences" + common: + back: Retour + actions: Actions + third: "Troisi\xC3\xA8me" + add: Ajouter + go_back: Retour + logout: "D\xC3\xA9connexion" + optional: optionnel + week: semaine + none: Aucun + second: Seconde + cancel: Annuler + month: mois + server_error: Une erreur s\'est produite sur le serveur + forum: Forum + notes: Notes + action: Action + last: Dernier + projects: Projets + project: Projet + contribute: Contribuer + ok: Ok + website: Site Web + first: Premier + numbered_step: Etape %{number} + fourth: "Quatri\xC3\xA8me" + errors_with_fields: "Il y a des probl\xC3\xA8me avec les champs suivants :" + sort: + by_task_count_title: "Trier par nombre de t\xC3\xA2ches" + by_task_count_title_confirm: "Etes vous s\xC3\xBBr de vouloir trier ces projets par nombre de t\xC3\xA2ches ? L\\'ordre actuel sera remplac\xC3\xA9." + alphabetically: "Par ordre alphab\xC3\xA9tique" + alphabetically_confirm: "Etes vous s\xC3\xBBr de vouloir trier ces projets par ordre alphab\xC3\xA9tique ? L\\'ordre actuel sera remplac\xC3\xA9." + alphabetically_title: "Trier les projets par ordre alphab\xC3\xA9tique" + sort: Trier + by_task_count: "Par nombre de t\xC3\xA2ches" + contexts: Contextes + context: Contexte + create: "Cr\xC3\xA9er" + months: Mois + drag_handle: DRAG + description: Description + update: "Mettre \xC3\xA0 jour" + bugs: Bugs + forth: FORTH + weeks: semaines + wiki: Wiki + email: Email + ajaxError: "Une erreur s'est produite en acc\xC3\xA9dant un serveur" + search: Rechercher + integrations: + opensearch_description: Rechercher dans Tracks + applescript_next_action_prompt: "Description de l'action suivante:" + gmail_description: "Gadget pour ajouter Tracks \xC3\xA0 Gmail" + applescript_success_after_id: "Cr\xC3\xA9\xC3\xA9" + applescript_success_before_id: Nouvelle action suivante avec ID + data: + import_successful: "L'import a r\xC3\xA9ussi." + import_errors: Des erreurs se sont produites durant l'import + models: + project: + feed_title: Projets Tracks + feed_description: Liste de tous les projets de %{username} + todo: + error_date_must_be_future: "doit \xC3\xAAtre une date dans le futur" + preference: + due_on: "Ech\xC3\xA9ance le %{date}" + due_in: "Ech\xC3\xA9ance dans %{days} jours" + due_styles: + - "Ech\xC3\xA9ance dans ____ jours" + - "Ech\xC3\xA9ance le ____" + user: + error_context_not_associated: "L'identifiant contexte %{context} n'est pas associ\xC3\xA9 \xC3\xA0 l'identifiant utilisateur %{user}." + error_project_not_associated: "L'identifiant projet %{context} n'est pas associ\xC3\xA9 \xC3\xA0 l'identifiant utilisateur %{user}." + activerecord: + attributes: + project: + name: Nom + default_tags: Tags par defaut + default_context_name: Contexte par defaut + description: Description + todo: + predecessors: "D\xC3\xA9pend de" + show_from: Afficher depuis + notes: Note + project: Projet + context: Contexte + description: Description + due: "Ech\xC3\xA9ance" + preference: + show_hidden_projects_in_sidebar: "Montrer les projets cach\xC3\xA9s dans le panneau lat\xC3\xA9ral" + show_hidden_contexts_in_sidebar: "Montrer les contextes cach\xC3\xA9s dans le panneau lat\xC3\xA9ral" + date_format: Format date + mobile_todos_per_page: Actions par page (Vue Mobile) + sms_context: Contexte Email par default + staleness_starts: "D\xC3\xA9but de d\xC3\xA9passement" + verbose_action_descriptors: "Descripteurs d\\'action d\xC3\xA9taill\xC3\xA9s" + title_date_format: Format de la date en titre + show_number_completed: "Montrer le nombre d\\'action compl\xC3\xA9t\xC3\xA9es" + refresh: Intervalle de rafraichissement (en minutes) + week_starts: Les semaines commencent un + locale: Langue + time_zone: Fuseau horaire + due_style: "Style Ech\xC3\xA9ance" + show_project_on_todo_done: "Aller au projet quand la t\xC3\xA2che est termin\xC3\xA9e" + sms_email: De l\'Email + show_completed_projects_in_sidebar: "Montrer les projets compl\xC3\xA9t\xC3\xA9s dans le panneau lat\xC3\xA9ral" + user: + last_name: Nom + first_name: "Pr\xC3\xA9nom" + errors: + models: + project: + attributes: + name: + blank: le projet doit avoir un nom + taken: "Existe d\xC3\xA9j\xC3\xA0" + too_long: "le nom du projet doit faire moins de 256 caract\xC3\xA8res" + messages: + record_invalid: "La validation \xC3\xA0 \xC3\xA9chou\xC3\xA9 : %{errors}" + greater_than_or_equal_to: "doit \xC3\xAAtre plus grand ou \xC3\xA9gal \xC3\xA0 %{count}" + confirmation: "n\\'est pas identique \xC3\xA0 la confirmation" + less_than_or_equal_to: "doit \xC3\xAAtre inf\xC3\xA9rieur ou \xC3\xA9gal \xC3\xA0 %{count}" + blank: "ne peux \xC3\xAAtre vide" + exclusion: "exclusion?" + invalid: "ne peut contenir le caract\xC3\xA8re virgule (\\',\\')" + odd: "doit \xC3\xAAtre impair" + wrong_length: "est de longueur incorrecte (doit \xC3\xAAtre de %{count} caract\xC3\xA8res)" + empty: "ne peut \xC3\xAAtre vide" + even: "doit \xC3\xAAtre pair" + too_short: "est trop court (minimum de %{count} charact\xC3\xA8res)" + less_than: "doit \xC3\xAAtre inf\xC3\xA9rieur \xC3\xA0 %{count}" + equal_to: "doit \xC3\xAAtre \xC3\xA9gal \xC3\xA0 %{count}" + greater_than: "doit \xC3\xAAtre plus grand que %{count}" + taken: "est d\xC3\xA9j\xC3\xA0 pris" + accepted: "doit \xC3\xAAtre accept\xC3\xA9" + too_long: "est trop long (maximum de %{count} caract\xC3\xA8res)" + not_a_number: n\'est pas un nombre + inclusion: n\'est pas inclus dans la liste + full_messages: + format: "%{attribute} %{message}" + template: + body: "Il y a des probl\xC3\xA8mes avec les champs suivants :" + header: + one: "1 erreur a emp\xC3\xA9ch\xC3\xA9 ce %{model} d\\'\xC3\xAAtre sauvegard\xC3\xA9" + other: "%{count} erreurs ont emp\xC3\xA9ch\xC3\xA9 ce %{model} d\\'\xC3\xAAtre sauvegard\xC3\xA9" + stats: + tag_cloud_90days_title: Nuage de tag des actions des 90 derniers jours + actions: Actions + totals_active_project_count: De ceux-ci %{count} sont des projets actifs + tag_cloud_title: Nuage de tag pour toutes les actions + tag_cloud_description: "Ce nuage de tags contient les tags de toutes les actions (r\xC3\xA9alis\xC3\xA9es, en cours, visibles ou cach\xC3\xA9es)" + actions_last_year_legend: + number_of_actions: Nombre d'actions + months_ago: "Mois pr\xC3\xA9c\xC3\xA9dents" + totals_first_action: "Depuis votre premi\xC3\xA8re action du %{date}" + actions_avg_completion_time: "Pour toutes vos actions r\xC3\xA9alis\xC3\xA9s, le temps moyen de r\xC3\xA9alisation est %{count} jours." + totals_deferred_actions: "desquels %{count} sont des actions report\xC3\xA9s dans le Reporteur" + legend: + actions: Actions + number_of_days: Il y a ... jours + number_of_actions: Nombre d'actions + day_of_week: Jour de la semaine + running_time: Temps en cours d'une action (en semaines) + percentage: Pourcentage + months_ago: Il y a ... mois + top10_longrunning: Top 10 des plus long projets en cours + actions_dow_30days_title: Jour de la semaine (les 30 derniers jours) + current_running_time_of_incomplete_visible_actions: "Dur\xC3\xA9e en cours des actions incompl\xC3\xA8tes visibles" + running_time_legend: + actions: Actions + percentage: Pourcentage + weeks: Temps en cours d'une action (en semaines). Cliquer sur une barre pour plus d'info + totals_action_count: vous avez un total de %{count} actions + top5_contexts: Top 5 des contextes + actions_lastyear_title: Actions des 12 derniers mois + totals_actions_completed: "dont %{count} sont r\xC3\xA9alis\xC3\xA9es." + totals_incomplete_actions: Vous avez %{count} actions en cours + totals_unique_tags: De ces tags, %{count} sont uniques. + actions_avg_completed_30days: "et r\xC3\xA9alis\xC3\xA9 une moyenne de %{count} actions par jour." + totals_blocked_actions: "%{count} d\xC3\xA9pendent de la r\xC3\xA9alisation de leurs actions" + action_completion_time_title: "Temps de r\xC3\xA9alisation (toutes les actions r\xC3\xA9alis\xC3\xA9es)" + actions_last_year: "Actions des derni\xC3\xA8res ann\xC3\xA9es" + totals_context_count: Vous avez %{count} contextes. + projects: Projets + totals_visible_context_count: De ceux-ci %{count} sont des contextes visibles + actions_day_of_week_title: Jour de la semaine (toutes les actions) + totals_project_count: Vous avez %{count} projets + tags: Tags + actions_min_max_completion_days: "Le nombre max/min de jours pour r\xC3\xA9aliser est %{min}/%{max}." + actions_min_completion_time: "Le temps minimum de r\xC3\xA9alisation est %{time}." + no_tags_available: pas de tags disponibles + actions_further: et plus + running_time_all: "Temps en cours de toutes les actions incompl\xC3\xA8tes" + time_of_day: Heure (toutes les actions) + tod30: Heure (30 derniers jours) + more_stats_will_appear: Plus de statistiques apparaitront quand vous aurez ajouter quelques actions. + top5_visible_contexts_with_incomplete_actions: Top 5 des contextes visible avec des actions en cours + totals_tag_count: Vous avez %{count} tags sur des actions. + actions_30days_title: Actions des 30 derniers jours + totals_hidden_project_count: "%{count} sont cach\xC3\xA9s" + tag_cloud_90days_description: "Ce nuage de tag contient les tags des actions cr\xC3\xA9\xC3\xA9es ou r\xC3\xA9alis\xC3\xA9es dans les 90 derniers jours." + top10_projects_30days: Top 10 des projets des 30 derniers jours + actions_selected_from_week: "Actions selectionn\xC3\xA9es depuis la semaine" + click_to_show_actions_from_week: Cliquer %{link} pour voir les actions depuis la semaine %{week}. + top10_projects: Top 10 des projets + actions_avg_created: "Dans les 12 derniers mois vous avez cr\xC3\xA9\xC3\xA9 une moyenne de %{count} actions" + click_to_return: "Cliquer %{link} pour revenir \xC3\xA0 la page des statistiques" + spread_of_running_actions_for_visible_contexts: Vue des actions en cours pour tous les contextes + spread_of_actions_for_all_context: Vue des actions pour tous les contextes + other_actions_label: (autres) + totals_completed_project_count: "et %{count} sont des projets r\xC3\xA9alis\xC3\xA9s." + actions_avg_completed: "et r\xC3\xA9alis\xC3\xA9 une moyenne de %{count} actions par mois." + totals: Totaux + contexts: Contextes + time_of_day_legend: + number_of_actions: Nombre d'actions + time_of_day: Heure + click_to_return_link: ici + totals_hidden_context_count: "et %{count} sont des contextes cach\xC3\xA9s." + click_to_update_actions: "Cliquer sur une barre du graphique pour mettre \xC3\xA0 jour les actions ci-dessous" + labels: + month_avg_completed: "%{month} mois moy. r\xC3\xA9alis\xC3\xA9" + completed: "Compl\xC3\xA9t\xC3\xA9" + month_avg_created: "%{month} mois moy. cr\xC3\xA9\xC3\xA9" + avg_created: "Moy. Cr\xC3\xA9\xC3\xA9" + avg_completed: "Moy. R\xC3\xA9alis\xC3\xA9" + created: "Cr\xC3\xA9\xC3\xA9" + running_time_all_legend: + actions: Actions + running_time: Temps en cours d'une action (en semaines). Cliquer sur une barre pour plus d'info + percentage: Pourcentage + no_actions_selected: "Il n'y a pas d'actions s\xC3\xA9lectionn\xC3\xA9es." + actions_actions_avg_created_30days: "Dans les 30 jours vous avez cr\xC3\xA9er en moyenne %{count} actions" + click_to_update_actions: "Cliquer sur une barre du graphique pour mettre a jour les actions ci-dessous." + tod30_legend: + number_of_actions: Nombre d'actions + time_of_day: Heure + action_selection_title: TRACKS::Selection action + todos: + show_from: Afficher depuis + error_starring_recurring: "Impossible d'actionner l'\xC3\xA9toile de la tache r\xC3\xA9currente \\'%{description}\\'" + recurring_action_deleted: "L'action a \xC3\xA9t\xC3\xA9 supprim\xC3\xA9e. Parce que cette action est r\xC3\xA9currente, une nouvelle action \xC3\xA0 \xC3\xA9t\xC3\xA9 ajout\xC3\xA9e" + completed_actions: "Action compl\xC3\xA9t\xC3\xA9es" + completed_recurring: "T\xC3\xA2ches reccurents compl\xC3\xA9t\xC3\xA9s" + added_new_next_action: "Nouvelle action suivante ajout\xC3\xA9e" + blocked_by: "Bloqu\xC3\xA9 par %{predecessors}" + unable_to_add_dependency: "Impossible d'ajouter la d\xC3\xA9pendance" + star_action: Elire cette action + completed_recurrence_completed: "Il n'y pas d'action suivante apr\xC3\xA8s l'action r\xC3\xA9currente que vous avez supprim\xC3\xA9e. La r\xC3\xA9currence est termin\xC3\xA9e" + defer_date_after_due_date: "La date de report est apr\xC3\xA8s la date d'\xC3\xA9ch\xC3\xA9ance. Veuillez ajuster la date d'\xC3\xA9cheance avant de reporter." + done: "Termin\xC3\xA9 ?" + star_action_with_description: Elire l'action '%{description}' + completed: "Compl\xC3\xA9t\xC3\xA9" + tagged_with: "tagg\xC3\xA9 avec ‘%{tag_name}’" + no_deferred_actions_with: "Pas d'actions report\xC3\xA9es avec le tag '%{tag_name}'" + no_hidden_actions: "Il n'y a pas d'actions cach\xC3\xA9es actuellement" + edit_action_with_description: Modifier l'action '%{description}' + action_due_on: "(action \xC3\xA0 terminer avant le %{data})" + tags: "Tags (s\xC3\xA9par\xC3\xA9s par des virgules)" + archived_tasks_title: "TRACKS::T\xC3\xA2ches r\xC3\xA9alis\xC3\xA9es archiv\xC3\xA9es" + remove_dependency: "Enlever les d\xC3\xA9pendances (l'action n'est pas supprim\xC3\xA9e)" + list_incomplete_next_actions: "Liste les prochaines actions incompl\xC3\xA8tes" + action_deleted_success: "L'action suivante \xC3\xA0 \xC3\xA9t\xC3\xA9 supprim\xC3\xA9e avec succ\xC3\xA8s" + new_related_todo_created: "Une nouvelle t\xC3\xA2che a \xC3\xA9t\xC3\xA9 ajout\xC3\xA9e qui appartient \xC3\xA0 cette t\xC3\xA2che r\xC3\xA9currente" + context_changed: "Contexte chang\xC3\xA9 en %{name}" + mobile_todos_page_title: Toutes les actions + add_another_dependency: "Ajouter une autre d\xC3\xA9pendance" + delete_recurring_action_title: "Supprimer l'action r\xC3\xA9currente" + removed_predecessor: "Suppression de %{successor} comme d\xC3\xA9pendance de %{predecessor}" + recurring_actions_title: "TRACKS::Actions r\xC3\xA9currentes" + next_action_needed: Vous devez soumettre au moins une prochaine action + action_deleted_error: "La suppression de l'action a \xC3\xA9chou\xC3\xA9" + action_saved: "Action sauvegard\xC3\xA9e" + scheduled_overdue: "Programm\xC3\xA9e pour apparaitre il y a %{days} jours" + next_actions_description: "Filtre:" + edit_action: Modifier action + added_new_context: "Nouveau context ajout\xC3\xA9" + list_incomplete_next_actions_with_limit: "Liste les %{count} derni\xC3\xA8res actions suivantes incompl\xC3\xA8tes" + set_to_pending: "%{task} mise en attente" + added_new_project: "Nouveau projet ajout\xC3\xA9" + next_actions_title_additions: + completed: "Actions compl\xC3\xA9t\xC3\xA9es" + due_today: "\xC3\xA9ch\xC3\xA9ance aujourd'hui" + due_within_a_week: "\xC3\xA9ch\xC3\xA9ance dans la semaine" + older_completed_items: "Anciens \xC3\xA9l\xC3\xA9ments compl\xC3\xA9t\xC3\xA9s" + append_in_this_project: dans ce projet + error_deleting_item: "Il s'est produit une erreur lors de la suppression de l'\xC3\xA9l\xC3\xA9ment %{description}" + task_list_title: "TRACKS::Lister les t\xC3\xA2ches" + no_actions_due_this_week: "Pas actions \xC3\xA0 faire cette semaine" + no_deferred_pending_actions: "Il n'y pas d'actions report\xC3\xA9es ou en attente actuellement" + no_recurring_todos: "Il n'y a pas de t\xC3\xA2ches r\xC3\xA9currentes actuellement" + error_completing_todo: "Il s'est produit une erreur lors de l'execution de l'action r\xC3\xA9currente %{description}" + convert_to_project: Faire projet + delete_recurring_action_confirm: "Etes-vous s\xC3\xBBr de vouloir supprimer l'action r\xC3\xA9currente '%{description'}?" + completed_last_day: "Compl\xC3\xA9t\xC3\xA9 ces derni\xC3\xA8res 24 heures" + show_in_days: Afficher dans %{days} jours + no_project: --Pas de projet-- + error_saving_recurring: "Il s'est produit une erreur lors de la sauvegarde de la t\xC3\xA2che r\xC3\xA9currente \\'%{description}\\'" + completed_more_than_x_days_ago: "Compl\xC3\xA9t\xC3\xA9 il y a plus de %{count} jours" + new_related_todo_created_short: "\xC3\xA0 cr\xC3\xA9\xC3\xA9 une nouvelle t\xC3\xA2che" + feed_title_in_context: dans le contexte '%{context}' + older_than_days: Plus ancien que %{count} jours + edit: Modifier + pending: En attente + completed_actions_with: "Action compl\xC3\xA9t\xC3\xA9es avec le tag %{tag_name}" + deleted_success: "Action supprim\xC3\xA9e avec succ\xC3\xA8s." + completed_tasks_title: "TRACKS::T\xC3\xA2ches compl\xC3\xA9t\xC3\xA9es" + feed_title_in_project: dans le projet '%{project}' + clear_due_date: "Effacer la date d'\xC3\xA9ch\xC3\xA9ance" + error_removing_dependency: "Il s'est produit une erreur lors de la suppression de la d\xC3\xA9pendance" + hidden_actions: "Actions cach\xC3\xA9es" + was_due_on_date: "arriv\xC3\xA9e \xC3\xA0 \xC3\xA9ch\xC3\xA9ance le %{date}" + show_on_date: Afficher le %{date} + recurrence_period: "Periode de r\xC3\xA9currence" + deferred_actions_with: "Action report\xC3\xA9es avec le tag '%{tag_name}'" + recurring_deleted_success: "L'action r\xC3\xA9currente a \xC3\xA9t\xC3\xA9 supprim\xC3\xA9e avec succ\xC3\xA8s." + confirm_delete: "Etes-vous s\xC3\xBBr de vouloir supprimer l'action '%{description}' ?" + deferred_tasks_title: TRACKS::Reporteur + next_actions_title: Tracks - Prochaines Actions + next_action_description: Description de la prochaine action + no_completed_actions_with: "Pas d'actions compl\xC3\xA9t\xC3\xA9es avec le tag '%{tag_name}'" + clear_show_from_date: Effacer show from date + calendar_page_title: TRACKS::Calendrier + unresolved_dependency: "La valeur saisie dans le champ d\xC3\xA9pendance ne correspond pas \xC3\xA0 une action existante. Cette valeur ne sera pas sauvegard\xC3\xA9e avec le reste de l'action. Continuer ?" + in_hidden_state: "a l\\'\xC3\xA9tat cach\xC3\xA9" + show_today: Afficher aujourd'hui + no_actions_found_title: "Aucune action trouv\xC3\xA9e" + next_actions_due_date: + overdue_by: "D\xC3\xA9pass\xC3\xA9e de %{days} jour" + due_in_x_days: "Ech\xC3\xA9ance dans %{days} days" + due_today: "Ech\xC3\xA9ance aujourd'hui" + overdue_by_plural: "D\xC3\xA9pass\xC3\xA9e de %{days} jours" + due_tomorrow: "Ech\xC3\xA9ance demain" + completed_last_x_days: "Compl\xC3\xA9t\xC3\xA9 ces %{count} jours" + no_actions_with: "Il n'y pas d'actions incompl\xC3\xA8tes avec le tag '%{tag_name}' actuellement" + defer_x_days: + one: Reporter d'un jour + other: Report de %{count} jours + added_new_next_action_singular: "Nouvelle action suivante ajout\xC3\xA9e" + no_completed_actions: "Il n'y a pas d'actions compl\xC3\xA9t\xC3\xA9es actuellement." + deferred_pending_actions: "Actions report\xC3\xA9es ou en attente" + has_x_pending: + one: A une action en attente + other: A %{count} actions en attente + feeds: + completed: "Compl\xC3\xA9t\xC3\xA9 : %{date}" + due: "Ech\xC3\xA9ance : %{date}" + delete_action: Supprimer action + error_deleting_recurring: "Il s'est produit une erreur lors de la suppression de la t\xC3\xA2che r\xC3\xA9currente \\'%{description}\\'" + recurring_todos: "T\xC3\xA2ches r\xC3\xA9currentes" + delete: Supprimer + drag_action_title: "D\xC3\xA9placer sur une autre action pour la rendre d\xC3\xA9pendante de cette action" + cannot_add_dependency_to_completed_todo: "Impossible d'ajouter cette action comme d\xC3\xA9pendance d'une action compl\xC3\xA9t\xC3\xA9e !" + depends_on: "D\xC3\xA9pend de" + tickler_items_due: + one: "Un \xC3\xA9l\xC3\xA9ment du reporteur est arriv\xC3\xA9 \xC3\xA0 \xC3\xA9ch\xC3\xA9ance - rafraichir la page pour le voir." + other: "%{count} \xC3\xA9l\xC3\xA9ments du reporteur sont arriv\xC3\xA9s \xC3\xA0 \xC3\xA9ch\xC3\xA9ance - rafraichir la page pour les voir." + action_marked_complete: "L'action '%{description}' a \xC3\xA9t\xC3\xA9 marqu\xC3\xA9e comme %{completed}" + completed_today: + one: "Vous avez compl\xC3\xA9t\xC3\xA9 une action aujourd'hui" + other: "Vous avez compl\xC3\xA9t\xC3\xA9 %{count} action aujourd'hui" + added_new_next_action_plural: "Nouvelles actions suivantes ajout\xC3\xA9es" + new_related_todo_not_created_short: "n'a pas cr\xC3\xA9\xC3\xA9 la t\xC3\xA2che" + error_starring: "Impossible d'actionner l'\xC3\xA9toile de cette tache \\'%{description}\\'" + show_tomorrow: Afficher demain + calendar: + get_in_ical_format: Obtenir ce calendrier au format iCal + due_next_week: "A r\xC3\xA9aliser la semaine prochaine" + no_actions_due_next_week: "Pas d'actions \xC3\xA0 terminer la semaine prochaine" + due_this_week: "A r\xC3\xA9aliser avant la fin de cette semaine" + no_actions_due_today: "Pas d'action \xC3\xA0 terminer aujourd'hui" + due_today: "A r\xC3\xA9aliser aujourd'hui" + due_next_month_and_later: "A r\xC3\xA9aliser dans %{month} et plus" + no_actions_due_after_this_month: "Pas d'actions \xC3\xA0 r\xC3\xA9aliser apr\xC3\xA8s ce mois" + due_this_month: "A r\xC3\xA9aliser avant la fin de %{month}" + no_actions_due_this_month: "Pas d'actions \xC3\xA0 terminer pour ce mois" + tagged_page_title: "TRACKS::Tagg\xC3\xA9 avec %{tag_name}'" + recurrence: + ends_on_date: Fini le %{date} + every_work_day: "Chaque jour ouvr\xC3\xA9" + ends_on_number_times: Fini au bout de %{number} fois + recurrence_on_due_date: "La date d'\xC3\xA9ch\xC3\xA9ance de la t\xC3\xA2che" + weekly_options: "Param\xC3\xA8tres pour les actions r\xC3\xA9currentes hebdomadaires" + monthly_options: "Param\xC3\xA8tres pour les actions r\xC3\xA9currentes mensuelles" + weekly: Toutes les semaines + starts_on: "D\xC3\xA9marre le" + daily_options: "Param\xC3\xA8tres des actions r\xC3\xA9currentes quotidiennes" + monthly: Mensuellement + daily: Quotidiennement + pattern: + third: "troisi\xC3\xA8me" + every_n: tous les %{n} + on_day_n: le %{n}e jour + every_xth_day_of_every_n_months: tous les %{x} %{day} tous les %{n_months} + second: seconde + weekly: Toutes les semaines + from: de + every_day: chaque jour + last: dernier + the_xth_day_of_month: le %{x} %{day} de %{month} + times: pour %{number} fois + first: premier + on_work_days: "les jours ouvr\xC3\xA9s" + every_year_on: "chaque ann\xC3\xA9e le %{date}" + show: montrer + fourth: "quatri\xC3\xA8me" + due: "Ech\xC3\xA9ance" + every_month: chaque mois + until: jusqu'a + day_names: + - Dimanche + - Lundi + - Mardi + - Mercredi + - Jeudi + - Vendredi + - Samedi + month_names: + - + - Janvier + - "F\xC3\xA9vrier" + - Mars + - Avril + - Mai + - Juin + - Juillet + - Aout + - Septembre + - Octobre + - Novembre + - "D\xC3\xA9cembre" + show_option_always: toujours + yearly_every_x_day: Chaque %{month} %{day} + recurrence_on_options: "Activer la r\xC3\xA9currence" + daily_every_number_day: Tous les %{number} jour(s) + ends_on: Fini le + show_options: "Montrer la t\xC3\xA2che" + weekly_every_number_week: Returns every %{number} week on + show_days_before: "%{days} jours avant la date d'\xC3\xA9ch\xC3\xA9ance de la t\xC3\xA2che" + yearly_every_xth_day: Chaque %{day} %{day_of_week} de %{month} + from_tickler: "la date de la t\xC3\xA2che provient du reporteur (pas de date d\\'\xC3\xA9ch\xC3\xA9ance d\xC3\xA9finie)" + no_end_date: Pas de date de fin + day_x_on_every_x_month: Le %{day} tous les %{month} mois + yearly_options: "Param\xC3\xA8tres pour les actions r\xC3\xA9currentes annuelles" + monthly_every_xth_day: Le %{day} %{day_of_week} tous les %{month} mois + yearly: Tous les ans + no_completed_recurring: "Il n'y a pas d'actions r\xC3\xA9currentes compl\xC3\xA9t\xC3\xA9es actuellement" + added_dependency: "%{dependency} ajout\xC3\xA9e comme d\xC3\xA9pendance" + recurrence_completed: "Il n'y a pas d'action suivante apr\xC3\xA8s l'action r\xC3\xA9currente que vous venez de terminer. Fin de la r\xC3\xA9currence" + no_deferred_actions: "Il n'y a pas d'actions report\xC3\xA9es actuellement" + no_actions_found: "Il n'y pas d'actions incompl\xC3\xA8tes actuellement." + in_pending_state: en attente + error_toggle_complete: "Impossible de marquer cette tache comme compl\xC3\xA9t\xC3\xA9e" + due: "Ech\xC3\xA9ance" + action_marked_complete_error: "L'action '%{description}' n'a PAS \xC3\xA9t\xC3\xA9 marqu\xC3\xA9e comme %{completed} a cause d'une erreur sur le serveur " + depends_on_separate_with_commas: "D\xC3\xA9pend de (s\xC3\xA9parer avec des virgules)" + recurring_action_saved: "Action r\xC3\xA9currente sauv\xC3\xA9e" + action_saved_to_tickler: "Action sauvegard\xC3\xA9e dans le Reporteur" + completed_in_archive: + one: "Il n'y a pas d'action compl\xC3\xA9t\xC3\xA9e dans l'archive" + other: "Il y a %{count} actions compl\xC3\xA9t\xC3\xA9es dans l'archive" + to_tickler: Vers le reporteur + next_actions_description_additions: + completed: dans les %{count} derniers jours + due_date: "avec au plus la date d'\xC3\xA9ch\xC3\xA9ance %{due_date}" + overdue: En retard + add_new_recurring: "Ajouter une nouvelle action r\xC3\xA9currente" + no_incomplete_actions: "Il n'y a pas d'actions incompl\xC3\xA8tes" + notes: + delete_item_title: "Supprimer l'\xC3\xA9l\xC3\xA9ment" + delete_note_title: Supprimer la note '%{id}' + delete_confirmation: Etes-vous sur de vouloir supprimer la note '%{id}' ? + note_link_title: Voir note %{id} + show_note_title: Voir note + deleted_note: Supprimer la note '%{id}' + note_location_link: "ln:" + edit_item_title: "Modifier l'\xC3\xA9l\xC3\xA9ment" + no_notes_available: "Il n'y a actuellement aucune note: ajouter des notes aux projets sur les pages individuelles des projets." + note_header: Note %{id} + delete_note_confirm: Etes-vous sur de vouloir supprimer la note '%{id}' ? + projects: + no_actions_in_project: "Il n'y pas d'action incompl\xC3\xA8tes pour ce projet" + deferred_actions: "Actions report\xC3\xA9es pour ce projet" + was_marked_hidden: "est cach\xC3\xA9" + edit_project_title: Editer le projet + default_tags_removed_notice: Supprimer les tags par defaut + default_context_set: "D\xC3\xA9finir le contexte par d\xC3\xA9faut du projet \xC3\xA0 %{default_context}" + hide_form: Cacher le formulaire + page_title: "TRACKS::Projet: %{project}" + deferred_actions_empty: "Il n'y a pas d'actions report\xC3\xA9es pour ce projet" + this_project: Ce projet + project_state: Le projet est %{state} + show_form_title: "Cr\xC3\xA9er un nouveau projet" + to_new_project_page: "Aller \xC3\xA0 la page du nouveau projet" + no_notes_attached: "Il n'y a actuellement aucune note attach\xC3\xA9e \xC3\xA0 ce projet" + todos_append: dans ce projet + notes: Notes + no_projects: Il n'y a actuellement aucun projet + hide_form_title: Cacher le formulaire nouveau projet + notes_empty: Il n'y a pas de notes pour ce projet + with_no_default_context: "sans contexte par d\xC3\xA9faut" + delete_project: Supprimer projet + completed_actions_empty: "Il n'y a pas d'actions r\xC3\xA9alis\xC3\xA9es pour ce projet" + actions_in_project_title: Actions pour ce projet + delete_project_confirmation: "Etes vous s\xC3\xBBr de vouloir supprimer le projet '%{name}' ?" + with_default_context: "avec '%{context_name}' comme contexte par d\xC3\xA9faut" + show_form: Ajouter un projet + add_project: Ajouter projet + set_default_tags_notice: "D\xC3\xA9finir les tags par d\xC3\xA9faut du projet \xC3\xA0 %{default_tags}" + settings: "Param\xC3\xA8tres" + with_default_tags: et avec '%{tags'} comme tags par defaut + list_projects: TRACKS::Liste des Projets + project_saved_status: "Projet sauvegard\xC3\xA9" + add_note: Ajouter une note + is_active: est actif + completed_projects: "Projets r\xC3\xA9alis\xC3\xA9s" + delete_project_title: Supprimer le projet + hidden_projects: "Projets cach\xC3\xA9s" + completed_actions: "Actions r\xC3\xA9alis\xC3\xA9es pour ce projet" + default_context_removed: "Contexte par d\xC3\xA9faut supprim\xC3\xA9" + add_note_submit: Ajouter note + was_marked_complete: "est compl\xC3\xA9t\xC3\xA9" + edit_project_settings: "Modifier les param\xC3\xA8tres du projet" + state: Le projet est %{state} + default_context: "Le contexte par d\xC3\xA9faut pour ce projet est %{context}" + status_project_name_changed: "Le nom du projet a \xC3\xA9t\xC3\xA9 modifi\xC3\xA9" + active_projects: Projets actifs + no_default_context: Ce projet n'a pas de contexte par defaut + with_no_default_tags: "et sans tags par d\xC3\xA9faut" + time: + am: am + formats: + default: "%a, %d %b %Y %H:%M:%S %z" + time: "%H:%M" + short: "%d %b %H:%M" + month_day: "%B %d" + long: "%B %d, %Y %H:%M" + pm: pm + states: + hidden_plural: "Cach\xC3\xA9s" + completed: "Complet\xC3\xA9" + completed_plural: "Complet\xC3\xA9s" + visible_plural: Visibles + active_plural: Actifs + visible: Visible + hidden: "Cach\xC3\xA9" + active: Actif + preferences: + staleness_starts_after: "\"date de fraicher\" d\xC3\xA9pass\xC3\xA9e \xC3\xA0 pr\xC3\xA8s %{days} days" + change_identity_url: "Modifier votre URL d'identit\xC3\xA9" + open_id_url: Votre URL OpenID est + change_password: Modifier votre mot de passe + page_title: "TRACKS::Pr\xC3\xA9f\xC3\xA9rences" + title: "Vos pr\xC3\xA9f\xC3\xA9rences" + token_description: Jeton (pour flux et utilisation API) + is_false: faux + show_number_completed: "Montrer %{number} items r\xC3\xA9alis\xC3\xA9s" + is_true: vrai + edit_preferences: "Editer les pr\xC3\xA9f\xC3\xA9rences" + page_title_edit: "TRACKS::Editer les pr\xC3\xA9f\xC3\xA9rences" + sms_context_none: Aucun + generate_new_token: "G\xC3\xA9n\xC3\xA9rer un nouveau jeton" + token_header: Votre jeton + current_authentication_type: Votre type d'authentification est %{auth_type} + change_authentication_type: Modifier votre type d'authentification + authentication_header: Votre authentification + generate_new_token_confirm: "Etes vous s\xC3\xBBr ? G\xC3\xA9n\xC3\xA9rer un nouveau jeton va remplacer le jeton existant et en interdire les utilisations externes." + errors: + user_unauthorized: "401 Non autoris\xC3\xA9: Administrateur seulement." + date: + month_names: + - + - janvier + - "f\xC3\xA9vrier" + - mars + - avril + - mai + - juin + - juillet + - "Aout" + - septembre + - octobre + - novembre + - "d\xC3\xA9cembre" + order: + - :day + - :month + - :year + abbr_day_names: + - dim + - lun + - mar + - mer + - jeu + - ven + - sam + formats: + only_day: "%e" + default: "%d/%m/%Y" + short: "%e %b" + month_day: "%d. %B" + long: "%e %B %Y" + day_names: + - dimanche + - lundi + - mardi + - mercredi + - jeudi + - vendredi + - samedi + abbr_month_names: + - + - jan. + - "F\xC3\xA9v." + - mar. + - avr. + - mai + - juin + - juil. + - aout + - sept. + - oct. + - nov. + - d\xC3\xA9c. + support: + array: + last_word_connector: ", et" + words_connector: "," + two_words_connector: et + select: + prompt: "Veuillez s\xC3\xA9lectionner" + shared: + multiple_next_actions: Actions suivante multiples (une sur chaque ligne) + toggle_single: Ajouter action suivante + hide_form: Cacher le formulaire + add_action: Ajouter action + add_actions: Ajouter actions + tags_for_all_actions: Tags pour toutes les actions (sep. avec des virgules) + context_for_all_actions: Contexte pour toutes les actions + toggle_multi: Ajouter plusieurs actions suivantes + toggle_single_title: Ajouter une nouvelle action suivante + project_for_all_actions: Projet pour toutes les actions + separate_tags_with_commas: "s\xC3\xA9parer avec des virgules" + toggle_multi_title: Basculer formulaire action simple/multiple + hide_action_form_title: Cacher le formulaire nouvelle action + footer: + send_feedback: Envoyer un feedback sur %{version} + sidebar: + list_name_active_contexts: Contextes actifs + list_name_active_projects: Projets actifs + list_empty: Aucun + list_name_completed_projects: "Projets r\xC3\xA9alis\xC3\xA9s" + list_name_hidden_projects: "Projets cach\xC3\xA9s" + list_name_hidden_contexts: "Contextes cach\xC3\xA9s" + users: + failed_to_delete_user: "La suppression de l'utilisateur {username} \xC3\xA0 \xC3\xA9chou\xC3\xA9" + first_user_heading: "Bienvenu \xC3\xA0 TRAKS. Pour commencer, veuillez cr\xC3\xA9er un compte administrateur" + openid_url_verified: "Vous avez v\xC3\xA9rifi\xC3\xA9 avec succ\xC3\xA8s votre identit\xC3\xA9 comme %{url} et d\xC3\xA9fini votre type authentification comme OpenID" + auth_type_update_error: "Un probl\xC3\xA8me est survenu lors de la modification du type d'authentification : %{error_messages}" + destroy_successful: "Utilisateur %{login} supprim\xC3\xA9 avec succ\xC3\xA8s" + successfully_deleted_user: "Utilisateur %{username} supprim\xC3\xA9 avec succ\xC3\xA8s" + total_contexts: Total contextes + total_projects: Total projets + signup_successful: "Utilisateur %{username} cr\xC3\xA9\xC3\xA9 avec succ\xC3\xA8s." + new_token_generated: "Nouveau token g\xC3\xA9n\xC3\xA9r\xC3\xA9 avec succ\xC3\xA9s" + change_password_submit: Modifier mot de passe + no_signups_title: TRACKS::Pas de signups + user_created: "Utilisateur cr\xC3\xA9\xC3\xA9." + account_signup: "Cr\xC3\xA9er un compte" + manage_users: "G\xC3\xA9rer utilisateurs" + password_updated: "Mot de passe modifi\xC3\xA9." + total_actions: Total actions + signup: "Cr\xC3\xA9ation" + desired_login: "Login souhait\xC3\xA9" + confirm_password: Confirmer le mot de passe + new_user_heading: "Cr\xC3\xA9er un nouvel utilisateur:" + auth_type_updated: "Type d'authentification modifi\xC3\xA9." + destroy_error: Une erreur s'est produite lors de la suppression de l'utilisateur %{login} + choose_password: Choisir le mot de passe + change_password_title: TRACKS::Modifier mot de passe + change_auth_type_title: TRACKS::Modifier le type d'authentification + change_password_prompt: Entrer votre nouveau mot de passe dans les champs ci-dessous et cliquer sur 'Modifier mot de passe' pour remplacer votre mot de passe actuel par le nouveau. + password_confirmation_label: Confirmer mot de passe + register_with_cas: Avec votre nom d'utilisateur CAS + label_auth_type: Type d'authentification + new_password_label: Nouveau mot de passe + destroy_user: Supprimer utilisateur + total_users_count: Vous avez %{count} utilisateurs + new_user_title: "TRACKS::Cr\xC3\xA9er un administrateur" + destroy_confirmation: "Attention : cela va supprimer l'utilisateur '%{login}', toutes ses actions, contextes, projets et notes. Etes-vous s\xC3\xBBr de vouloir continuer ?" + signup_new_user: "Cr\xC3\xA9er un nouvel utilisateur" + change_authentication_type: Modifier le type d'authentification + auth_change_submit: Modifier le type d'authenfication + identity_url: "URL Identit\xC3\xA9" + openid_ok_pref_failed: "Vous avez v\xC3\xA9rifi\xC3\xA9 avec succ\xC3\xA8s votre identit\xC3\xA9 comme %{url} mais un probl\xC3\xA8me est survenu lors de la sauvegarde de vos pr\xC3\xA9f\xC3\xA9rences d'authentification." + total_notes: Total notes + select_authentication_type: "S\xC3\xA9lectionner votre nouveau type d'authentification et cliquer sur 'Modifier type d'authenfication' pour remplacer les param\xC3\xA8tres actuels." + contexts: + delete_context_title: Supprimer contexte + hide_form: Cacher le formulaire + show_form_title: Ajouter un contexte + delete_context_confirmation: "Etes vous s\xC3\xBBr de vouloir supprimer le contexte %{name}? Toutes les actions (r\xC3\xA9p\xC3\xA9titives) de ce contexte seront \xC3\xA9galement supprim\xC3\xA9es !" + delete_context: Supprimer contexte + hide_form_title: Cacher le formulaire nouveau contexte + edit_context: Modifier contexte + no_contexts_active: Actuellement, il n'y a pas de contextes actifs + context_hide: "Cach\xC3\xA9 de la premi\xC3\xA8re page ?" + hidden_contexts: "Contextes cach\xC3\xA9s" + visible_contexts: Contextes visibles + save_status_message: "Contexte sauvegard\xC3\xA9" + add_context: Ajouter un contexte + show_form: "Cr\xC3\xA9er un nouveau contexte" + update_status_message: "Le nom du contexte \xC3\xA0 \xC3\xA9t\xC3\xA9 modifi\xC3\xA9" + context_name: Nom du Contexte + new_context_post: "'sera aussi cr\xC3\xA9\xC3\xA9. Etes-vous s\xC3\xBBr ?" + status_active: Le Contexte est actif + no_contexts_hidden: "Actuellement, il n'y a pas de contextes cach\xC3\xA9s" + new_context_pre: Nouveau contexte ' + no_actions: "Actuellement, il n'y pas d'actions incompl\xC3\xA8tes dans ce contexte" + last_completed_in_context: dans ce contexte (dernier %{number}) + context_deleted: "Contexte \\'%{name}\\' supprim\xC3\xA9" + status_hidden: "Le Contexte est cach\xC3\xA9" + feedlist: + choose_context: Choisir le contexte dont vous voulez un flux + actions_due_today: Actions devant se terminer aujourd'hui ou avant + legend: "L\xC3\xA9gende" + rss_feed: Flux RSS + ical_feed: Flux iCal + all_contexts: Tous les contextes + all_projects: Tous les projets + choose_project: Choisir le projet dont vous voulez un flux + select_feed_for_project: Selectionner le flux pour ce projet + active_projects_wo_next: Projets actifs avec aucune action suivante + project_needed: Il faut au moins un projet pour le flux + active_starred_actions: "Toutes les actions pr\xC3\xA9ferr\xC3\xA9es actives" + select_feed_for_context: Selectionner un flux pour ce contexte + projects_and_actions: Projets actifs et leurs actions + context_needed: Il faut au moins un contexte pour le flux + actions_due_next_week: Actions devant se terminer dans les 7 prochains jours ou moins + notice_incomplete_only: "NB: Les flux ne montrent que les actions incompl\xC3\xA8tes, sauf indication contraire" + all_actions: Toutes les actions + actions_completed_last_week: "Actions r\xC3\xA9alis\xC3\xA9es dans les 7 derniers jours" + context_centric_actions: "Flux des actions dans un contexte sp\xC3\xA9cifique" + plain_text_feed: Flux texte + last_fixed_number: "Derni\xC3\xA8res %{number} actions" + project_centric: "Flux des actions incompl\xC3\xA8tes d'un projet sp\xC3\xA9cifique" + datetime: + prompts: + minute: Minute + second: Secondes + month: Mois + hour: Heure + day: Jour + year: "Ann\xC3\xA9e" + distance_in_words: + less_than_x_minutes: + one: moins d'une minute + other: moins de %{count} minutes + zero: Moins de 1 minute + almost_x_years: + one: presque 1 an + other: presque %{count} ans + x_days: + one: 1 jour + other: "%{count} jours" + x_seconds: + one: 1 seconde + other: "%{count} secondes" + less_than_x_seconds: + one: moins d'1 seconde + other: moins de %{count} secondes + zero: Moins de 1 seconde + x_months: + one: 1 mois + other: "%{count} mois" + x_minutes: + one: 1 minute + other: "%{count} minutes" + about_x_hours: + one: environ 1 heure + other: environ %{count} heures + about_x_months: + one: environ 1 mois + other: environ %{count} mois + about_x_years: + one: environ 1 an + other: environ %{count} ans + over_x_years: + one: plus d'1 an + other: plus de %{count} ans + half_a_minute: une demi-minute + login: + openid_identity_url_not_found: "D\xC3\xA9sol\xC3\xA9, aucun utilisateur avec cette identit\xC3\xA9 URL n'existe (%{identity_url})" + user_no_expiry: "Rester connect\xC3\xA9" + sign_in: Se connecter + login_cas: Aller au CAS + cas_logged_in_greeting: "Bonjour, %{username}! Vous \xC3\xAAtes authentifi\xC3\xA9." + cas_no_user_found: Bonjour, %{username}! Vous n'avez pas de compte sur Tracks. + cas_login: Login CAS + successful_with_session_info: "La connexion \xC3\xA0 r\xC3\xA9ussi:" + please_login: Veuillez vous connecter pour utiliser Tracks + cas_username_not_found: "D\xC3\xA9sol\xC3\xA9, aucun utilisateur avec ce nom CAS n'existe (%{username})" + mobile_use_openid: ... ou ce connecter avec un OpenID + cas_create_account: "Si vous voulez vous inscrire aller \xC3\xA0 %{signup_link}" + cas_signup_link: Demander un compte + account_login: Identifiant du compte + session_will_not_expire: la session n'expire jamais. + successful: "La connexion \xC3\xA0 r\xC3\xA9ussi. Bienvenue !" + option_separator: ou, + session_time_out: "La session \xC3\xA0 expir\xC3\xA9. Merci de %{link}" + session_will_expire: "la session expire apr\xC3\xA8s %{hours} heure(s) d'inactivit\xC3\xA9." + login_standard: "retourner \xC3\xA0 l'\xC3\xA9cran de connexion standard" + logged_out: "Vous avez \xC3\xA9t\xC3\xA9 d\xC3\xA9connect\xC3\xA9 de Tracks." + login_with_openid: se connecter avec un OpenID + unsuccessful: "La connexion \xC3\xA0 \xC3\xA9chou\xC3\xA9." + log_in_again: Se reconnecter + search: + contexts_matching_query: "Contextes correspondant \xC3\xA0 la requ\xC3\xAAte" + tags_matching_query: "Tags correspondant \xC3\xA0 la requ\xC3\xAAte" + notes_matching_query: "Notes correspondant \xC3\xA0 la requ\xC3\xAAte" + no_results: "Aucun r\xC3\xA9sultat \xC3\xA0 votre recherche." + todos_matching_query: "AFaire (todos) correspondant \xC3\xA0 la requ\xC3\xAAte" + projects_matching_query: "Projets correspondant \xC3\xA0 la requ\xC3\xAAte" diff --git a/public/javascripts/i18n/jquery.ui.datepicker-es.js b/public/javascripts/i18n/jquery.ui.datepicker-es.js new file mode 100644 index 00000000..a02133de --- /dev/null +++ b/public/javascripts/i18n/jquery.ui.datepicker-es.js @@ -0,0 +1,23 @@ +/* Inicialización en español para la extensión 'UI date picker' para jQuery. */ +/* Traducido por Vester (xvester@gmail.com). */ +jQuery(function($){ + $.datepicker.regional['es'] = { + closeText: 'Cerrar', + prevText: '<Ant', + nextText: 'Sig>', + currentText: 'Hoy', + monthNames: ['Enero','Febrero','Marzo','Abril','Mayo','Junio', + 'Julio','Agosto','Septiembre','Octubre','Noviembre','Diciembre'], + monthNamesShort: ['Ene','Feb','Mar','Abr','May','Jun', + 'Jul','Ago','Sep','Oct','Nov','Dic'], + dayNames: ['Domingo','Lunes','Martes','Miércoles','Jueves','Viernes','Sábado'], + dayNamesShort: ['Dom','Lun','Mar','Mié','Juv','Vie','Sáb'], + dayNamesMin: ['Do','Lu','Ma','Mi','Ju','Vi','Sá'], + weekHeader: 'Sm', + dateFormat: 'dd/mm/yy', + firstDay: 1, + isRTL: false, + showMonthAfterYear: false, + yearSuffix: ''}; + $.datepicker.setDefaults($.datepicker.regional['es']); +}); \ No newline at end of file diff --git a/public/javascripts/i18n/jquery.ui.datepicker-fr.js b/public/javascripts/i18n/jquery.ui.datepicker-fr.js new file mode 100644 index 00000000..134bda65 --- /dev/null +++ b/public/javascripts/i18n/jquery.ui.datepicker-fr.js @@ -0,0 +1,23 @@ +/* French initialisation for the jQuery UI date picker plugin. */ +/* Written by Keith Wood (kbwood{at}iinet.com.au) and Stéphane Nahmani (sholby@sholby.net). */ +jQuery(function($){ + $.datepicker.regional['fr'] = { + closeText: 'Fermer', + prevText: '<Préc', + nextText: 'Suiv>', + currentText: 'Courant', + monthNames: ['Janvier','Février','Mars','Avril','Mai','Juin', + 'Juillet','Août','Septembre','Octobre','Novembre','Décembre'], + monthNamesShort: ['Jan','Fév','Mar','Avr','Mai','Jun', + 'Jul','Aoû','Sep','Oct','Nov','Déc'], + dayNames: ['Dimanche','Lundi','Mardi','Mercredi','Jeudi','Vendredi','Samedi'], + dayNamesShort: ['Dim','Lun','Mar','Mer','Jeu','Ven','Sam'], + dayNamesMin: ['Di','Lu','Ma','Me','Je','Ve','Sa'], + weekHeader: 'Sm', + dateFormat: 'dd/mm/yy', + firstDay: 1, + isRTL: false, + showMonthAfterYear: false, + yearSuffix: ''}; + $.datepicker.setDefaults($.datepicker.regional['fr']); +}); \ No newline at end of file From f4a07110ff1950219fd2ac33d1f4508d8b639e1e Mon Sep 17 00:00:00 2001 From: Reinier Balt Date: Wed, 27 Jul 2011 15:39:47 +0200 Subject: [PATCH 067/197] change urls to their new location in documentation --- README | 6 +++--- doc/CHANGELOG | 24 ++++++++++++++++-------- doc/README_DEVELOPERS | 8 ++++---- 3 files changed, 23 insertions(+), 15 deletions(-) diff --git a/README b/README index e38e5544..f5c9686f 100644 --- a/README +++ b/README @@ -7,10 +7,10 @@ **The new home for Tracks is https://github.com/TracksApp/tracks** * Project homepage: http://getontracks.org/ -* Manual: http://bsag.github.com/tracks/ -* Source at GitHub: http://github.com/bsag/tracks/ +* Manual: http://TracksApp.github.com/tracks/ +* Source at GitHub: http://github.com/TracksApp/tracks/ * Assembla space (for bug reports and feature requests): http://www.assembla.com/spaces/tracks-tickets/tickets -* Wiki (community contributed information): http://getontracks.org/wiki/ +* Wiki (community contributed information): https://github.com/tracksapp/tracks/wiki * Forum: http://getontracks.org/forums/ * Mailing list: http://lists.rousette.org.uk/mailman/listinfo/tracks-discuss * Original developer: bsag (http://www.rousette.org.uk/) diff --git a/doc/CHANGELOG b/doc/CHANGELOG index 75eb2c31..fd5e4769 100644 --- a/doc/CHANGELOG +++ b/doc/CHANGELOG @@ -1,20 +1,28 @@ = Tracks: a GTD web application, built with Ruby on Rails * Project homepage: http://getontracks.org/ -* Manual: http://bsag.github.com/tracks/ -* Source at GitHub: http://github.com/bsag/tracks/ +* Manual: http://tracksapp.github.com/tracks/ +* Source at GitHub: http://github.com/tracksapp/tracks/ * Assembla space (for bug reports and feature requests): http://www.assembla.com/spaces/tracks-tickets/tickets -* Wiki (community contributed information): http://getontracks.org/wiki/ +* Wiki (community contributed information): https://github.com/tracksapp/tracks/wiki * Forum: http://getontracks.org/forums/ * Mailing list: http://lists.rousette.org.uk/mailman/listinfo/tracks-discuss * Original developer: bsag (http://www.rousette.org.uk/) -* Contributors: http://getontracks.org/wiki/Contributors +* Contributors: https://github.com/tracksapp/tracks/wiki/Contributors * Version: 2.1devel * Copyright: (cc) 2004-2011 rousette.org.uk. * License: GNU GPL == Version 2.1devel +This version of tracks has moved to a new place on github. Also the wiki moved +to github, see the changed URLs above + +New features: +1. redesign of the completed todos: a new overview page. Also all context and + project pages have a link to their completed actions +2. New locales (es and fr) and updated locales (de, nl) + == Version 2.0 New features: @@ -35,7 +43,7 @@ New features: 11.You can enable open signup (like in tracks.tra.in) 12.Cleanup of context page 13.Support for CAS for login -14.Support for adding Tracks as a GMail Widget with instructions on the +14.Support for adding Tracks as a GMail Widget with instructions on the Integrations page 15.Tracks now support internationalization. First translations are German and Dutch. See http://www.getontracks.org/wiki/Translating-Tracks it you like to @@ -68,7 +76,7 @@ Under the hood: == Version 1.6 1. upgrade to rails 2.0.2 2. new mobile interface (with some iPhone compatibility fixes) -3. new search functionality to search on todos, projects, contexts and notes +3. new search functionality to search on todos, projects, contexts and notes 4. Bugfixes == Version 1.5 @@ -87,7 +95,7 @@ Under the hood: 13. Add optional Default Context for a Project 14. Add ability to sort projects alphabetically 15. Add "starring" of actions -16. Statistics page with graphs +16. Statistics page with graphs 17. Rake task to set password. Usage: rake tracks:password USER=useranme == Version 1.041 @@ -116,7 +124,7 @@ Under the hood: 10. The Completed Items box on the home, context and project pages now shows the same format for the actions as the Done page. 11. The navigation bar now shows which page you are on by underlining the appropriate link and colouring the text black. 12. There are new accesskeys for the notes page (alt/ctrl o) and user preferences (alt/ctrl u). - + == Version 1.04 1. Tidied up the interface a bit, fixing mistakes in the wording. diff --git a/doc/README_DEVELOPERS b/doc/README_DEVELOPERS index 771037d1..96c494ea 100644 --- a/doc/README_DEVELOPERS +++ b/doc/README_DEVELOPERS @@ -20,7 +20,7 @@ Install them using 3. Wiki -There are some pointers for setting up your Tracks copy for testing at http://www.getontracks.org/wiki/Testing/ +There are some pointers for setting up your Tracks copy for testing at https://github.com/tracksapp/tracks/wiki/Testing/ 4. SQLITE3 FOR TESTING @@ -36,7 +36,7 @@ If you want to run tests using another database, that's fine, too. Just change y This testing style is deprecated and tests are being moved over to Selenium via Cucumber. -See the wiki for more information to run the tests that are not yet migrated: http://www.getontracks.org/wiki/Testing +See the wiki for more information to run the tests that are not yet migrated: https://github.com/tracksapp/tracks/wiki/Testing 6. RSPEC tests @@ -53,5 +53,5 @@ To run the cucumber test run and for those using javascript/ajax use rake cucumber:selenium - -See the wiki for more information on testing: http://www.getontracks.org/wiki/Testing \ No newline at end of file + +See the wiki for more information on testing: https://github.com/tracksapp/tracks/wiki/Testing \ No newline at end of file From 0d2a057d27b3b34b3cac2844dddfa5eb38058f97 Mon Sep 17 00:00:00 2001 From: Mickey Reiss Date: Thu, 28 Jul 2011 06:16:15 -0400 Subject: [PATCH 068/197] Added missing translation from /done in en and de. TODO: Same translation for other languages (these were the only two I know) --- config/locales/de.yml | 1 + config/locales/en.yml | 1 + 2 files changed, 2 insertions(+) diff --git a/config/locales/de.yml b/config/locales/de.yml index e15e47cc..1466ef8d 100644 --- a/config/locales/de.yml +++ b/config/locales/de.yml @@ -606,6 +606,7 @@ de: deferred_actions_empty: "Es gibt keine aufgeschobenen Aufgaben f\xC3\xBCr dieses Projekt" project_state: Projekt ist %{state} no_last_completed_projects: Keine abgeschlossene Projekte gefunden + no_last_completed_recurring_todos: "Keine abgeschlossene sich wiederholende To-Dos gefunden" todos_append: an dieses Projekt notes: Notizen notes_empty: "Es gibt keine Notizen f\xC3\xBCr dieses Projekt" diff --git a/config/locales/en.yml b/config/locales/en.yml index b612c6e6..9f82d32b 100644 --- a/config/locales/en.yml +++ b/config/locales/en.yml @@ -296,6 +296,7 @@ en: notes: "Notes" notes_empty: "There are no notes for this project" no_last_completed_projects: "No completed projects found" + no_last_completed_recurring_todos: "No completed recurring todos found" settings: "Settings" state: "This project is %{state}" this_project: "This project" From c45b11dc70c0293359dc399393bc6dbee2bd3757 Mon Sep 17 00:00:00 2001 From: Demian Gemperli Date: Sat, 30 Jul 2011 18:52:11 +0200 Subject: [PATCH 069/197] Have a Star option on task entry screens #928 --- app/controllers/todos_controller.rb | 2 ++ app/helpers/todos_helper.rb | 3 +-- app/models/todo.rb | 16 +++++++++------- app/views/todos/_new_todo_form.rhtml | 6 ++++-- app/views/todos/create.js.erb | 4 +++- app/views/todos/toggle_star.js.erb | 2 +- public/javascripts/application.js | 4 ++++ public/stylesheets/standard.css | 9 +++++---- 8 files changed, 29 insertions(+), 17 deletions(-) diff --git a/app/controllers/todos_controller.rb b/app/controllers/todos_controller.rb index 01b17f02..6494137c 100644 --- a/app/controllers/todos_controller.rb +++ b/app/controllers/todos_controller.rb @@ -83,6 +83,8 @@ class TodosController < ApplicationController @todo.context_id = context.id end + @todo.starred= params[:new_todo_starred].include? "true" + @todo.add_predecessor_list(predecessor_list) # Fix for #977 because AASM overrides @state on creation diff --git a/app/helpers/todos_helper.rb b/app/helpers/todos_helper.rb index 8688b924..98947bfe 100644 --- a/app/helpers/todos_helper.rb +++ b/app/helpers/todos_helper.rb @@ -427,8 +427,7 @@ module TodosHelper private def image_tag_for_star(todo) - class_str = todo.starred? ? "starred_todo" : "unstarred_todo" - image_tag("blank.png", :title =>t('todos.star_action'), :class => class_str, :id => "star_img_"+todo.id.to_s) + image_tag("blank.png", :title =>t('todos.star_action'), :class => "todo_star"+(todo.starred? ? " starred":""), :id => "star_img_"+todo.id.to_s) end end diff --git a/app/models/todo.rb b/app/models/todo.rb index 382d8588..4904b791 100644 --- a/app/models/todo.rb +++ b/app/models/todo.rb @@ -248,14 +248,16 @@ class Todo < ActiveRecord::Base end def toggle_star! - if starred? - _remove_tags STARRED_TAG_NAME - tags.reload - else + starred=!starred? + end + + def starred=(starred) + if starred _add_tags(STARRED_TAG_NAME) - tags.reload - end - starred? + else + _remove_tags STARRED_TAG_NAME + end + starred end def from_recurring_todo? diff --git a/app/views/todos/_new_todo_form.rhtml b/app/views/todos/_new_todo_form.rhtml index eedca1d8..16beb13a 100644 --- a/app/views/todos/_new_todo_form.rhtml +++ b/app/views/todos/_new_todo_form.rhtml @@ -4,10 +4,12 @@ <% form_for(todo, :html=> { :id=>'todo-form-new-action', :name=>'todo', :class => 'inline-form new_todo_form' }) do |t|%> +
    <%= error_messages_for("item", :object_name => 'action') %>
    - + + <%= image_tag("blank.png", :title =>t('todos.star_action'), :class => "todo_star", :style=> "float: right")%> <%= t.text_field("description", "size" => 30, "tabindex" => next_tab_index, "maxlength" => 100, "autocomplete" => "off", :autofocus => 1) %> @@ -57,4 +59,4 @@ <% end # form_for -%> - \ No newline at end of file + diff --git a/app/views/todos/create.js.erb b/app/views/todos/create.js.erb index 17373b4f..c7e77133 100644 --- a/app/views/todos/create.js.erb +++ b/app/views/todos/create.js.erb @@ -22,6 +22,8 @@ function clear_form() { TracksForm.set_project_name('<%=escape_javascript @initial_project_name%>'); TracksForm.set_tag_list('<%=escape_javascript @default_tags%>'); $('#todo-form-new-action input:text:first').focus(); + $('#new_todo_starred_link .todo_star').removeClass('starred'); + $('#new_todo_starred').val('false'); } function insert_new_context_with_new_todo() { @@ -64,4 +66,4 @@ function html_for_new_context() { function html_for_new_todo() { return "<%= @saved ? escape_javascript(render(:partial => @todo, :locals => { :parent_container_type => parent_container_type, :source_view => @source_view })) : "" %>"; -} \ No newline at end of file +} diff --git a/app/views/todos/toggle_star.js.erb b/app/views/todos/toggle_star.js.erb index 9ec02520..eaf4a2af 100644 --- a/app/views/todos/toggle_star.js.erb +++ b/app/views/todos/toggle_star.js.erb @@ -1,5 +1,5 @@ <%- if @saved -%> - $('div#line_todo_<%= @todo.id %> a.star_item img').toggleClass('starred_todo').toggleClass('unstarred_todo'); + $('div#line_todo_<%= @todo.id %> a.star_item img').toggleClass('starred'); <%- else -%> TracksPages.page_notify('error', '<%= t('todos.error_starring', :description => @todo.description) %>', 8); <%- end -%> diff --git a/public/javascripts/application.js b/public/javascripts/application.js index 45c13712..48b0076a 100644 --- a/public/javascripts/application.js +++ b/public/javascripts/application.js @@ -74,6 +74,10 @@ var TracksForm = { $(this).prev().val(''); }); + $("#new_todo_starred_link").click(function() { + $("#new_todo_starred").val($(this).children(".todo_star").toggleClass("starred").hasClass("starred")); + }); + /* submit todo form after entering new todo */ $("button#todo_new_action_submit").live('click', function (ev) { if ($('input#predecessor_input').val() != "") diff --git a/public/stylesheets/standard.css b/public/stylesheets/standard.css index c029ed91..25eaafe0 100644 --- a/public/stylesheets/standard.css +++ b/public/stylesheets/standard.css @@ -79,10 +79,11 @@ a:hover img.edit_item {background-image: url(../images/edit_on.png); background- img.delete_item {background-image: url(../images/delete_off.png); background-repeat: no-repeat; border: none;} a:hover img.delete_item {background-image: url(../images/delete_on.png);background-color: transparent;background-repeat: no-repeat; border: none;} -img.starred_todo {background-image: url(../images/staricons.png); background-repeat: no-repeat; border:none; background-position: 0px 0px;} -a:hover img.starred_todo {background-image: url(../images/staricons.png); background-repeat: no-repeat; border:none; background-position: -16px 0px;} -img.unstarred_todo {background-image: url(../images/staricons.png); background-repeat: no-repeat; border:none; background-position: -32px 0px;} -a:hover img.unstarred_todo {background-image: url(../images/staricons.png); background-repeat: no-repeat; border:none; background-position: -48px 0px;} +a.undecorated_link {background-color:transparent;color:transparent;} +img.todo_star {background-image: url(../images/staricons.png); background-repeat: no-repeat; border:none; background-position: -32px 0px;} +img.todo_star.starred{ background-position: 0px 0px; } +a:hover img.todo_star { background-position: -48px 0px;} +a:hover img.todo_star.starred { background-position: -16px 0px; } a.to_top {background: transparent url(../images/top_off.png) no-repeat;} a.to_top:hover {background: transparent url(../images/top_on.png) no-repeat;} From 2441aa92b564db750c6096ac44e793e545de2c40 Mon Sep 17 00:00:00 2001 From: Reinier Balt Date: Tue, 2 Aug 2011 11:01:50 +0200 Subject: [PATCH 070/197] correct small errors in docs --- README | 4 ++-- doc/CHANGELOG | 8 ++++---- doc/README_DEVELOPERS | 6 +++--- 3 files changed, 9 insertions(+), 9 deletions(-) diff --git a/README b/README index f5c9686f..3ba3299b 100644 --- a/README +++ b/README @@ -10,11 +10,11 @@ * Manual: http://TracksApp.github.com/tracks/ * Source at GitHub: http://github.com/TracksApp/tracks/ * Assembla space (for bug reports and feature requests): http://www.assembla.com/spaces/tracks-tickets/tickets -* Wiki (community contributed information): https://github.com/tracksapp/tracks/wiki +* Wiki (community contributed information): https://github.com/TracksApp/tracks/wiki * Forum: http://getontracks.org/forums/ * Mailing list: http://lists.rousette.org.uk/mailman/listinfo/tracks-discuss * Original developer: bsag (http://www.rousette.org.uk/) -* Contributors: http://getontracks.org/wiki/Contributors +* Contributors: https://github.com/TracksApp/tracks/wiki/Contributors * Version: 2.1devel * Copyright: (cc) 2004-2011 rousette.org.uk. * License: GNU GPL diff --git a/doc/CHANGELOG b/doc/CHANGELOG index fd5e4769..b30f0707 100644 --- a/doc/CHANGELOG +++ b/doc/CHANGELOG @@ -1,14 +1,14 @@ = Tracks: a GTD web application, built with Ruby on Rails * Project homepage: http://getontracks.org/ -* Manual: http://tracksapp.github.com/tracks/ -* Source at GitHub: http://github.com/tracksapp/tracks/ +* Manual: http://TracksApp.github.com/tracks/ +* Source at GitHub: http://github.com/TracksApp/tracks/ * Assembla space (for bug reports and feature requests): http://www.assembla.com/spaces/tracks-tickets/tickets -* Wiki (community contributed information): https://github.com/tracksapp/tracks/wiki +* Wiki (community contributed information): https://github.com/TracksApp/tracks/wiki * Forum: http://getontracks.org/forums/ * Mailing list: http://lists.rousette.org.uk/mailman/listinfo/tracks-discuss * Original developer: bsag (http://www.rousette.org.uk/) -* Contributors: https://github.com/tracksapp/tracks/wiki/Contributors +* Contributors: https://github.com/TracksApp/tracks/wiki/Contributors * Version: 2.1devel * Copyright: (cc) 2004-2011 rousette.org.uk. * License: GNU GPL diff --git a/doc/README_DEVELOPERS b/doc/README_DEVELOPERS index 96c494ea..685a7efc 100644 --- a/doc/README_DEVELOPERS +++ b/doc/README_DEVELOPERS @@ -20,7 +20,7 @@ Install them using 3. Wiki -There are some pointers for setting up your Tracks copy for testing at https://github.com/tracksapp/tracks/wiki/Testing/ +There are some pointers for setting up your Tracks copy for testing at https://github.com/TracksApp/tracks/wiki/Testing/ 4. SQLITE3 FOR TESTING @@ -36,7 +36,7 @@ If you want to run tests using another database, that's fine, too. Just change y This testing style is deprecated and tests are being moved over to Selenium via Cucumber. -See the wiki for more information to run the tests that are not yet migrated: https://github.com/tracksapp/tracks/wiki/Testing +See the wiki for more information to run the tests that are not yet migrated: https://github.com/TracksApp/tracks/wiki/Testing 6. RSPEC tests @@ -54,4 +54,4 @@ and for those using javascript/ajax use rake cucumber:selenium -See the wiki for more information on testing: https://github.com/tracksapp/tracks/wiki/Testing \ No newline at end of file +See the wiki for more information on testing: https://github.com/TracksApp/tracks/wiki/Testing \ No newline at end of file From 367476bd773ac8f29c2f3d0eaea36ea63f481a14 Mon Sep 17 00:00:00 2001 From: Demian Gemperli Date: Thu, 4 Aug 2011 23:14:29 +0200 Subject: [PATCH 071/197] fixed tests for starred todos --- app/controllers/todos_controller.rb | 2 +- app/models/todo.rb | 4 ++-- app/views/recurring_todos/toggle_star.js.erb | 2 +- config/environments/cucumber.rb | 6 +++--- test/views/todos_helper_test.rb | 2 +- 5 files changed, 8 insertions(+), 8 deletions(-) diff --git a/app/controllers/todos_controller.rb b/app/controllers/todos_controller.rb index 6494137c..d962c753 100644 --- a/app/controllers/todos_controller.rb +++ b/app/controllers/todos_controller.rb @@ -83,7 +83,7 @@ class TodosController < ApplicationController @todo.context_id = context.id end - @todo.starred= params[:new_todo_starred].include? "true" + @todo.starred= (params[:new_todo_starred]||"").include? "true" @todo.add_predecessor_list(predecessor_list) diff --git a/app/models/todo.rb b/app/models/todo.rb index 4904b791..3a14830c 100644 --- a/app/models/todo.rb +++ b/app/models/todo.rb @@ -248,12 +248,12 @@ class Todo < ActiveRecord::Base end def toggle_star! - starred=!starred? + self.starred= !starred? end def starred=(starred) if starred - _add_tags(STARRED_TAG_NAME) + _add_tags STARRED_TAG_NAME unless starred? else _remove_tags STARRED_TAG_NAME end diff --git a/app/views/recurring_todos/toggle_star.js.erb b/app/views/recurring_todos/toggle_star.js.erb index 85eb1d66..129a67b5 100644 --- a/app/views/recurring_todos/toggle_star.js.erb +++ b/app/views/recurring_todos/toggle_star.js.erb @@ -1,5 +1,5 @@ <%- if @saved -%> - $('div#recurring_todo_<%= @recurring_todo.id %> a.star_item img').toggleClass('starred_todo').toggleClass('unstarred_todo'); + $('div#recurring_todo_<%= @recurring_todo.id %> a.star_item img').toggleClass('starred'); <%- else -%> TracksPages.page_notify('error', '<%= t('todos.error_starring_recurring', :description => @recurring_todo.description) %>', 8); <%- end -%> diff --git a/config/environments/cucumber.rb b/config/environments/cucumber.rb index 1ad1a7d6..64d9b6d5 100644 --- a/config/environments/cucumber.rb +++ b/config/environments/cucumber.rb @@ -26,8 +26,8 @@ config.action_mailer.delivery_method = :test config.action_controller.session_store = :cookie_store config.action_controller.session = { :key => 'TracksCucumber', :secret => SITE_CONFIG['salt'] * (30.0 / SITE_CONFIG['salt'].length).ceil } -config.gem 'cucumber', :lib => false, :version => '=0.9.4' unless File.directory?(File.join(Rails.root, 'vendor/plugins/cucumber')) -config.gem 'cucumber-rails', :lib => false, :version => '=0.3.2' unless File.directory?(File.join(Rails.root, 'vendor/plugins/cucumber-rails')) -config.gem 'gherkin', :lib => false, :version => '=2.4.0' unless File.directory?(File.join(Rails.root, 'vendor/plugins/gherkin')) +config.gem 'cucumber', :lib => false unless File.directory?(File.join(Rails.root, 'vendor/plugins/cucumber')) +config.gem 'cucumber-rails', :lib => false unless File.directory?(File.join(Rails.root, 'vendor/plugins/cucumber-rails')) +config.gem 'gherkin', :lib => false unless File.directory?(File.join(Rails.root, 'vendor/plugins/gherkin')) config.gem 'database_cleaner', :lib => false, :version => '>=0.5.0' unless File.directory?(File.join(Rails.root, 'vendor/plugins/database_cleaner')) config.gem 'webrat', :lib => false, :version => '>=0.7.0' unless File.directory?(File.join(Rails.root, 'vendor/plugins/webrat')) diff --git a/test/views/todos_helper_test.rb b/test/views/todos_helper_test.rb index dede1b62..441ec2b5 100644 --- a/test/views/todos_helper_test.rb +++ b/test/views/todos_helper_test.rb @@ -63,7 +63,7 @@ class TodosHelperTest < ActiveSupport::HelperTestCase def test_remote_star_icon_unstarred @todo = flexmock(:id => 1, :to_param => 1, :description => 'Get gas', :starred? => false) # added dot (.) to regexp because somehouw the extra dot is added in the tests while its not in the rendered html - assert_remote_star_icon_helper_matches %r{Blank} + assert_remote_star_icon_helper_matches %r{Blank} assert_behavior_registered end From 3d948989f84a4a0383c6f18447f287a2182a6f4e Mon Sep 17 00:00:00 2001 From: Demian Gemperli Date: Fri, 5 Aug 2011 18:51:16 +0200 Subject: [PATCH 072/197] Set back cucumber to the right version for rails 2.x --- config/environments/cucumber.rb | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/config/environments/cucumber.rb b/config/environments/cucumber.rb index 64d9b6d5..1ad1a7d6 100644 --- a/config/environments/cucumber.rb +++ b/config/environments/cucumber.rb @@ -26,8 +26,8 @@ config.action_mailer.delivery_method = :test config.action_controller.session_store = :cookie_store config.action_controller.session = { :key => 'TracksCucumber', :secret => SITE_CONFIG['salt'] * (30.0 / SITE_CONFIG['salt'].length).ceil } -config.gem 'cucumber', :lib => false unless File.directory?(File.join(Rails.root, 'vendor/plugins/cucumber')) -config.gem 'cucumber-rails', :lib => false unless File.directory?(File.join(Rails.root, 'vendor/plugins/cucumber-rails')) -config.gem 'gherkin', :lib => false unless File.directory?(File.join(Rails.root, 'vendor/plugins/gherkin')) +config.gem 'cucumber', :lib => false, :version => '=0.9.4' unless File.directory?(File.join(Rails.root, 'vendor/plugins/cucumber')) +config.gem 'cucumber-rails', :lib => false, :version => '=0.3.2' unless File.directory?(File.join(Rails.root, 'vendor/plugins/cucumber-rails')) +config.gem 'gherkin', :lib => false, :version => '=2.4.0' unless File.directory?(File.join(Rails.root, 'vendor/plugins/gherkin')) config.gem 'database_cleaner', :lib => false, :version => '>=0.5.0' unless File.directory?(File.join(Rails.root, 'vendor/plugins/database_cleaner')) config.gem 'webrat', :lib => false, :version => '>=0.7.0' unless File.directory?(File.join(Rails.root, 'vendor/plugins/webrat')) From 30c578f93a2ae2dd83677c8cce7b57777b4345cd Mon Sep 17 00:00:00 2001 From: Reinier Balt Date: Thu, 11 Aug 2011 10:13:53 +0200 Subject: [PATCH 073/197] fix failing selenium scenarios because of starring changes --- features/step_definitions/recurring_todo_steps.rb | 2 +- features/step_definitions/todo_steps.rb | 12 ++++++------ 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/features/step_definitions/recurring_todo_steps.rb b/features/step_definitions/recurring_todo_steps.rb index 6b556677..48a0a864 100644 --- a/features/step_definitions/recurring_todo_steps.rb +++ b/features/step_definitions/recurring_todo_steps.rb @@ -93,7 +93,7 @@ end Then /^the pattern "([^\"]*)" should be starred$/ do |pattern_name| pattern = @current_user.recurring_todos.find_by_description(pattern_name) pattern.should_not be_nil - xpath = "//div[@id='recurring_todo_#{pattern.id}']//img[@class='starred_todo']" + xpath = "//div[@id='recurring_todo_#{pattern.id}']//img[@class='todo_star starred']" response.should have_xpath(xpath) end diff --git a/features/step_definitions/todo_steps.rb b/features/step_definitions/todo_steps.rb index f77d41c8..d91f9eb1 100644 --- a/features/step_definitions/todo_steps.rb +++ b/features/step_definitions/todo_steps.rb @@ -180,8 +180,8 @@ When /^I star the action "([^"]*)"$/ do |action_description| todo = @current_user.todos.find_by_description(action_description) todo.should_not be_nil - xpath_unstarred = "//div[@id='line_todo_#{todo.id}']//img[@class='unstarred_todo']" - xpath_starred = "//div[@id='line_todo_#{todo.id}']//img[@class='starred_todo']" + xpath_unstarred = "//div[@id='line_todo_#{todo.id}']//img[@class='todo_star']" + xpath_starred = "//div[@id='line_todo_#{todo.id}']//img[@class='todo_star starred']" selenium.is_element_present(xpath_unstarred).should be_true @@ -197,8 +197,8 @@ When /^I unstar the action "([^"]*)"$/ do |action_description| todo = @current_user.todos.find_by_description(action_description) todo.should_not be_nil - xpath_unstarred = "//div[@id='line_todo_#{todo.id}']//img[@class='unstarred_todo']" - xpath_starred = "//div[@id='line_todo_#{todo.id}']//img[@class='starred_todo']" + xpath_unstarred = "//div[@id='line_todo_#{todo.id}']//img[@class='todo_star']" + xpath_starred = "//div[@id='line_todo_#{todo.id}']//img[@class='todo_star starred']" selenium.is_element_present(xpath_starred).should be_true @@ -215,7 +215,7 @@ Then /^I should see a starred "([^"]*)"$/ do |action_description| todo = @current_user.todos.find_by_description(action_description) todo.should_not be_nil - xpath_starred = "//div[@id='line_todo_#{todo.id}']//img[@class='starred_todo']" + xpath_starred = "//div[@id='line_todo_#{todo.id}']//img[@class='todo_star starred']" selenium.is_element_present(xpath_starred).should be_true end @@ -224,7 +224,7 @@ Then /^I should see an unstarred "([^"]*)"$/ do |action_description| todo = @current_user.todos.find_by_description(action_description) todo.should_not be_nil - xpath_starred = "//div[@id='line_todo_#{todo.id}']//img[@class='unstarred_todo']" + xpath_starred = "//div[@id='line_todo_#{todo.id}']//img[@class='todo_star']" wait_for :timeout => 5 do selenium.is_element_present(xpath_starred) From f544c80fbcbe7517d7f1fcadae5773d226c7ded4 Mon Sep 17 00:00:00 2001 From: Reinier Balt Date: Thu, 11 Aug 2011 17:13:01 +0200 Subject: [PATCH 074/197] add some pending cucumber scenarios and fix a small bug it uncovered --- app/controllers/todos_controller.rb | 19 ++++++- app/helpers/todos_helper.rb | 54 +++++++++---------- app/views/todos/destroy.js.erb | 25 ++++++--- features/context_edit.feature | 48 +++++++++++++++-- features/dependencies.feature | 18 ++++++- features/edit_a_todo.feature | 35 ++++++++++-- features/project_edit.feature | 6 +-- features/shared_add_new_todo.feature | 10 +++- features/step_definitions/container_steps.rb | 21 +++++++- .../step_definitions/dependencies_steps.rb | 3 +- features/step_definitions/project_steps.rb | 14 ++--- .../step_definitions/todo_create_steps.rb | 24 +++++++++ features/step_definitions/todo_edit_steps.rb | 12 +++-- features/step_definitions/todo_steps.rb | 38 ++++++++++++- features/view_done.feature | 28 +++++++++- 15 files changed, 290 insertions(+), 65 deletions(-) diff --git a/app/controllers/todos_controller.rb b/app/controllers/todos_controller.rb index d962c753..cc2223b9 100644 --- a/app/controllers/todos_controller.rb +++ b/app/controllers/todos_controller.rb @@ -437,6 +437,11 @@ class TodosController < ApplicationController @todo_was_destroyed_from_pending_state = @todo.pending? @todo_was_destroyed_from_deferred_or_pending_state = @todo_was_destroyed_from_deferred_state || @todo_was_destroyed_from_pending_state + @uncompleted_predecessors = [] + @todo.uncompleted_predecessors.each do |predecessor| + @uncompleted_predecessors << predecessor + end + # activate successors if they only depend on this todo activated_successor_count = 0 @pending_to_activate = [] @@ -961,7 +966,16 @@ class TodosController < ApplicationController @down_count = current_user.todos.active.not_hidden.count end from.context do - @down_count = current_user.contexts.find(@todo.context_id).todos.not_completed.count(:all) + context_id = @original_item_context_id || @todo.context_id + todos = current_user.contexts.find(context_id).todos.not_completed + + if @todo.context.hide? + # include hidden todos + @down_count = todos.count(:all) + else + # exclude hidden_todos + @down_count = todos.not_hidden.count(:all) + end end from.project do unless @todo.project_id == nil @@ -1352,6 +1366,9 @@ class TodosController < ApplicationController @tag_name = params['_tag_name'] @tag_was_removed = !@todo.has_tag?(@tag_name) end + page.context do + @todo_should_be_hidden = @todo_hidden_state_changed && @todo.hidden? + end end end diff --git a/app/helpers/todos_helper.rb b/app/helpers/todos_helper.rb index 98947bfe..c1ac9a53 100644 --- a/app/helpers/todos_helper.rb +++ b/app/helpers/todos_helper.rb @@ -18,7 +18,7 @@ module TodosHelper def remote_delete_menu_item(todo) return link_to( image_tag("delete_off.png", :mouseover => "delete_on.png", :alt => t('todos.delete'), :align => "absmiddle")+" "+t('todos.delete'), - {:controller => 'todos', :action => 'destroy', :id => todo.id}, + {:controller => 'todos', :action => 'destroy', :id => todo.id}, :class => "icon_delete_item", :id => "delete_#{dom_id(todo)}", :x_confirm_message => t('todos.confirm_delete', :description => todo.description), @@ -88,12 +88,12 @@ module TodosHelper {:controller => "recurring_todos", :action => "index"}, :class => "recurring_icon", :title => recurrence_pattern_as_text(todo.recurring_todo)) end - + def remote_toggle_checkbox(todo=@todo) check_box_tag("mark_complete_#{todo.id}", toggle_check_todo_path(todo), todo.completed?, :class => 'item-checkbox', :title => todo.pending? ? t('todos.blocked_by', :predecessors => todo.uncompleted_predecessors.map(&:description).join(', ')) : "", :readonly => todo.pending?) end - + def date_span(todo=@todo) if todo.completed? content_tag(:span, {:class => :grey}) { format_date( todo.completed_at ) } @@ -106,7 +106,7 @@ module TodosHelper due_date( todo.due ) end end - + def successors_span(todo=@todo) unless todo.pending_successors.empty? pending_count = todo.pending_successors.length @@ -114,7 +114,7 @@ module TodosHelper image_tag( 'successor_off.png', :width=>'10', :height=>'16', :border=>'0', :title => title ) end end - + def grip_span(todo=@todo) unless todo.completed? image_tag('grip.png', :width => '7', :height => '16', :border => '0', @@ -122,17 +122,17 @@ module TodosHelper :class => 'grip') end end - + def tag_list_text(todo=@todo) todo.tags.collect{|t| t.name}.join(', ') end - + def tag_list(todo=@todo) tags_except_starred = todo.tags.reject{|t| t.name == Todo::STARRED_TAG_NAME} tag_list = tags_except_starred.collect{|t| "" + link_to(t.name, :controller => "todos", :action => "tag", :id => t.name) + ""}.join('') "#{tag_list}" end - + def tag_list_mobile(todo=@todo) tags_except_starred = todo.tags.reject{|t| t.name == Todo::STARRED_TAG_NAME} # removed the link. TODO: add link to mobile view of tagged actions @@ -142,13 +142,13 @@ module TodosHelper ""}.join('') if tag_list.empty? then "" else "#{tag_list}" end end - + def deferred_due_date(todo=@todo) if todo.deferred? && todo.due t('todos.action_due_on', :date => format_date(todo.due)) end end - + def project_and_context_links(todo, parent_container_type, opts = {}) str = '' if todo.completed? @@ -167,7 +167,7 @@ module TodosHelper end return str end - + # Uses the 'staleness_starts' value from settings.yml (in days) to colour the # background of the action appropriately according to the age of the creation # date: @@ -198,7 +198,7 @@ module TodosHelper end days = days_from_today(d) - + case days # overdue or due very soon! sound the alarm! when -1000..-1 @@ -219,7 +219,7 @@ module TodosHelper "#{t('todos.show_in_days', :days => days.to_s)} " end end - + def should_show_new_item source_view do |page| page.todo { return !@todo.hidden? } @@ -251,7 +251,7 @@ module TodosHelper def should_add_new_context return @new_context_created && !source_view_is(:project) end - + def parent_container_type return 'tickler' if source_view_is :deferred return 'project' if source_view_is :project @@ -259,18 +259,18 @@ module TodosHelper return 'tag' if source_view_is :tag return 'context' end - + def todo_container_is_empty default_container_empty = ( @down_count == 0 ) deferred_container_empty = ( @todo.deferred? && @remaining_deferred_count == 0) return default_container_empty || deferred_container_empty end - + def default_contexts_for_autocomplete projects = current_user.uncompleted.projects.find(:all, :include => [:context], :conditions => ['default_context_id is not null']) Hash[*projects.map{ |p| [escape_javascript(p.name), escape_javascript(p.default_context.name)] }.flatten].to_json end - + def default_tags_for_autocomplete projects = current_user.projects.uncompleted.find(:all, :conditions => ["default_tags != ''"]) Hash[*projects.map{ |p| [escape_javascript(p.name), p.default_tags] }.flatten].to_json @@ -283,7 +283,7 @@ module TodosHelper end joined_notes || "" end - + def formatted_pagination(total) s = will_paginate(@todos) (s.gsub(/(<\/[^<]+>)/, '\1 ')).chomp(' ') @@ -305,7 +305,7 @@ module TodosHelper def update_needs_to_remove_todo_from_container source_view do |page| - page.context { return @context_changed || @todo.deferred? || @todo.pending? } + page.context { return @context_changed || @todo.deferred? || @todo.pending? || @todo_should_be_hidden } page.project { return @todo_deferred_state_changed || @todo_pending_state_changed || @project_changed} page.deferred { return @context_changed || !(@todo.deferred? || @todo.pending?) } page.calendar { return @due_date_changed || !@todo.due } @@ -411,23 +411,23 @@ module TodosHelper html += "}}) " * animation.size return html + ";" end - + def reset_tab_index - $tracks_tab_index = 0 + $tracks_tab_index = 0 end - + def next_tab_index # make sure it exists if reset was not called. Set to 20 to avoid clashes with existing form in sidebar - $tracks_tab_index ||= 20 - + $tracks_tab_index ||= 20 + $tracks_tab_index = $tracks_tab_index + 1 return $tracks_tab_index end - + private - + def image_tag_for_star(todo) image_tag("blank.png", :title =>t('todos.star_action'), :class => "todo_star"+(todo.starred? ? " starred":""), :id => "star_img_"+todo.id.to_s) end - + end diff --git a/app/views/todos/destroy.js.erb b/app/views/todos/destroy.js.erb index 86808c58..8d9b1d43 100644 --- a/app/views/todos/destroy.js.erb +++ b/app/views/todos/destroy.js.erb @@ -4,12 +4,13 @@ remove_todo_from_page(); show_new_todo_if_todo_was_recurring(); activate_pending_todos(); + update_predecessors(); show_empty_messages(); <%- else -%> TracksPages.page_notify('error', "<%= t('todos.error_deleting_item', :description => @todo.description) %>", 8); <%- end -%> -<% if @saved +<% if @saved # do not send the js in case of an error -%> @@ -44,12 +45,12 @@ function remove_todo_from_page() { <%= show_empty_message_in_source_container %> $('#<%=dom_id(@todo)%>').slideUp(400, function() { $('#<%=dom_id(@todo)%>').remove(); - <% if source_view_is :calendar - # in calendar view it is possible to have a todo twice on the page + <% if source_view_is :calendar + # in calendar view it is possible to have a todo twice on the page -%> $('#<%=dom_id(@todo)%>').remove(); <% end %> - }); + }); <% end -%> } @@ -69,7 +70,7 @@ function show_new_todo_if_todo_was_recurring() { } function activate_pending_todos() { - <% # Activate pending todos that are successors of the completed + <% # Activate pending todos that are successors of the deleted if @saved && @pending_to_activate # do not render the js in case of an error or if no todos to activate @pending_to_activate.each do |t| @@ -89,10 +90,22 @@ function activate_pending_todos() { <% end -%> } +function update_predecessors() { +<% + if @todo_was_destroyed_from_pending_state + @uncompleted_predecessors.each do |p| -%> + if ($('#<%=item_container_id(p)%>')) { + $('#<%=dom_id(p)%>').html('<%=escape_javascript(render(:partial => p, :locals => { :parent_container_type => parent_container_type }))%>'); + } +<% end + end +%> +} + function html_for_new_recurring_todo() { return "<%= @saved && @new_recurring_todo ? escape_javascript(render(:partial => @new_recurring_todo, :locals => { :parent_container_type => parent_container_type })) : "" %>"; } -<% end +<% end # if @saved -%> diff --git a/features/context_edit.feature b/features/context_edit.feature index 8cca170d..25cb5c87 100644 --- a/features/context_edit.feature +++ b/features/context_edit.feature @@ -8,6 +8,9 @@ Feature: Edit a context | login | password | is_admin | | testuser | secret | false | And I have logged in as "testuser" with password "secret" + And I have a context called "@pc" + And I have a project called "test project" + And I have 2 todos in project "test project" in context "@pc" with tags "starred" @selenium Scenario: In place edit of context name @@ -19,17 +22,52 @@ Feature: Edit a context Then he should see that a context named "Errands" is not present And he should see that a context named "OutAndAbout" is present + @selenium Scenario: Editing the context of a todo will remove the todo - Given this is a pending scenario + When I go to the the context page for "@pc" + Then the badge should show 2 + When I edit the context of "todo 1" to "@laptop" + Then I should not see "todo 1" + And the badge should show 1 + @selenium Scenario: Editing the description of a a todo will update that todo - Given this is a pending scenario + When I go to the the context page for "@pc" + And I edit the description of "todo 1" to "changed" + Then I should not see "todo 1" + And I should see "changed" + @selenium Scenario: Editing the context of the last todo will remove the todo and show empty message - Given this is a pending scenario + When I go to the the context page for "@pc" + And I edit the context of "todo 1" to "@laptop" + Then I should not see "todo 1" + And the badge should show 1 + When I edit the context of "todo 2" to "@laptop" + Then I should not see "todo 2" + And the badge should show 0 + And I should see "Currently there are no incomplete actions in this context" + @selenium Scenario: Adding a todo to a hidden project will not show the todo - Given this is a pending scenario + Given I have a hidden project called "hidden project" + When I go to the the context page for "@pc" + And I edit the project of "todo 1" to "hidden project" + Then I should not see "todo 1" + When I submit a new action with description "todo X" to project "hidden project" in the context "@pc" + Then I should not see "todo X" + When I go to the "hidden project" project + Then I should see "todo 1" + And I should see "todo X" + And the badge should show 2 + @selenium Scenario: Adding a todo to a hidden context will show that todo - Given this is a pending scenario + Given I have a hidden context called "@personal" + When I go to the the context page for "@pc" + And I edit the context of "todo 1" to "@personal" + Then I should not see "todo 1" + When I go to the context page for "@personal" + Then I should see "todo 1" + When I submit a new action with description "todo X" to project "test project" in the context "@personal" + Then I should see "todo X" diff --git a/features/dependencies.feature b/features/dependencies.feature index b7dec50a..1f75bf47 100644 --- a/features/dependencies.feature +++ b/features/dependencies.feature @@ -92,8 +92,24 @@ Feature: dependencies And I should not see "test 2" in the deferred container And I should see the empty message in the deferred container + @selenium Scenario: Deleting a successor will update predecessor - Given this is a pending scenario + Given I have a context called "@pc" + And I have a project "dependencies" that has the following todos + | description | context | + | test 1 | @pc | + | test 2 | @pc | + | test 3 | @pc | + And "test 2" depends on "test 1" + And "test 3" depends on "test 1" + When I go to the "dependencies" project + And I expand the dependencies of "test 1" + Then I should see "test 2" within the dependencies of "test 1" + And I should see "test 3" within the dependencies of "test 1" + When I delete the action "test 2" + And I expand the dependencies of "test 1" + Then I should see "test 3" within the dependencies of "test 1" + And I should not see "test 2" @selenium Scenario: Dragging an action to a completed action will not add it as a dependency diff --git a/features/edit_a_todo.feature b/features/edit_a_todo.feature index fbe3c73e..bcaedbc1 100644 --- a/features/edit_a_todo.feature +++ b/features/edit_a_todo.feature @@ -153,9 +153,38 @@ Feature: Edit a next action from every page | tag page for "starred" | | calendar page | - Scenario: I can edit a todo to move it to another context - # for home and tickler and tag - Given this is a pending scenario + @selenium + Scenario Outline: I can edit a todo to move it to another context + Given I have a context called "@pc" + And I have a context called "@laptop" + And I have a project "my project" that has the following todos + | context | description | tags | + | @pc | first action | bla | + | @laptop | second action | bla | + When I go to the + Then I should see "first action" in the context container for "@pc" + When I edit the context of "first action" to "@laptop" + Then I should not see "first action" in the context container for "@pc" + Then I should see "first action" in the context container for "@laptop" + + Scenarios: + | page | + | home page | + | tag page for "bla" | + + @selenium + Scenario: I can edit a todo to move it to another context in tickler page + Given I have a context called "@pc" + And I have a context called "@laptop" + And I have a project "my project" that has the following deferred todos + | context | description | + | @pc | first action | + | @laptop | second action | + When I go to the tickler page + Then I should see "first action" in the context container for "@pc" + When I edit the context of "first action" to "@laptop" + Then I should not see "first action" in the context container for "@pc" + Then I should see "first action" in the context container for "@laptop" Scenario: I can edit a todo to move it to another project Given this is a pending scenario diff --git a/features/project_edit.feature b/features/project_edit.feature index cb6f38f8..c3741c59 100644 --- a/features/project_edit.feature +++ b/features/project_edit.feature @@ -103,6 +103,6 @@ Feature: Edit a project Given I have a project "foo" with 2 todos And I have a project called "bar" When I go to the "foo" project - And I change the project_name field of "Todo 1" to "bar" - Then I should not see "Todo 1" - And I should see "Todo 2" + And I change the project_name field of "todo 1" to "bar" + Then I should not see "todo 1" + And I should see "todo 2" diff --git a/features/shared_add_new_todo.feature b/features/shared_add_new_todo.feature index 523446eb..11f1cc65 100644 --- a/features/shared_add_new_todo.feature +++ b/features/shared_add_new_todo.feature @@ -200,15 +200,21 @@ Feature: Add new next action from every page @selenium Scenario: Adding a todo to an empty container hides the empty message # TODO: make outline - And I have a context called "visible context" + Given I have a context called "visible context" When I go to the tag page for "test" Then I should see "Currently there are no incomplete actions with the tag 'test'" When I submit a new action with description "a new todo" and the tags "test" in the context "visible context" Then I should see "a new todo" And I should not see "Currently there are no incomplete actions with the tag 'bla'" + @selenium Scenario: Adding a dependency to a todo updated the successor - Given this is a pending scenario + When I go to the "test project" project + Then I should see "todo 1" + When I submit a new action with description "a new todo" with a dependency on "todo 1" + Then I should not see "a new todo" in the project container of "test project" + When I expand the dependencies of "todo 1" + Then I should see "a new todo" within the dependencies of "todo 1" @selenium Scenario: I can add multiple todos in a new project and a new context diff --git a/features/step_definitions/container_steps.rb b/features/step_definitions/container_steps.rb index 76216a7d..e63fafb5 100644 --- a/features/step_definitions/container_steps.rb +++ b/features/step_definitions/container_steps.rb @@ -51,7 +51,7 @@ Then /^I should not see "([^"]*)" in the context container for "([^"]*)"$/ do |t todo.should_not be_nil xpath = "xpath=//div[@id=\"c#{context.id}\"]//div[@id='line_todo_#{todo.id}']" - + if selenium.is_element_present(xpath) # give jquery some time to finish wait_for :timeout_in_seconds => 5 do @@ -82,6 +82,23 @@ Then /^I should see "([^"]*)" in the action container$/ do |todo_description| end end +Then /^I should not see "([^"]*)" in the project container of "([^"]*)"$/ do |todo_description, project_name| + todo = @current_user.todos.find_by_description(todo_description) + todo.should_not be_nil + + project = @current_user.projects.find_by_name(project_name) + project.should_not be_nil + + xpath = "//div[@id='p#{todo.project.id}items']//div[@id='line_todo_#{todo.id}']" + + if selenium.is_element_present(xpath) + wait_for :timeout => 5 do + !selenium.is_element_present(xpath) + end + end +end + + Then /^I should see "([^"]*)" in the completed container$/ do |todo_description| todo = @current_user.todos.find_by_description(todo_description) todo.should_not be_nil @@ -130,7 +147,7 @@ end Then /^I should see "([^"]*)" in the active recurring todos container$/ do |repeat_pattern| repeat = @current_user.recurring_todos.find_by_description(repeat_pattern) - + unless repeat.nil? xpath = "//div[@id='active_recurring_todos_container']//div[@id='recurring_todo_#{repeat.id}']" selenium.wait_for_element("xpath=#{xpath}", :timeout_in_seconds => 5) diff --git a/features/step_definitions/dependencies_steps.rb b/features/step_definitions/dependencies_steps.rb index 5de5cde4..3a30cd91 100644 --- a/features/step_definitions/dependencies_steps.rb +++ b/features/step_definitions/dependencies_steps.rb @@ -65,7 +65,7 @@ When /^I edit the dependency of "([^"]*)" to remove "([^"]*)" as predecessor$/ d wait_for :timeout=>5 do !selenium.is_element_present(delete_dep_button) end - + submit_edit_todo_form(todo) # note that animations will be running after the ajax is completed end @@ -109,6 +109,7 @@ Then /^I should not see "([^"]*)" within the dependencies of "([^"]*)"$/ do |suc successor.should_not be_nil # let selenium look for the presence of the successor xpath = "xpath=//div[@id='line_todo_#{todo.id}']//div[@id='successor_line_todo_#{successor.id}']//span" + wait_for :timeout => 5 do !selenium.is_element_present(xpath) end diff --git a/features/step_definitions/project_steps.rb b/features/step_definitions/project_steps.rb index 233dc50a..8ca46b2f 100644 --- a/features/step_definitions/project_steps.rb +++ b/features/step_definitions/project_steps.rb @@ -1,11 +1,11 @@ Given /^I have a project "([^\"]*)" with (.*) todos$/ do |project_name, num_todos| - context = @current_user.contexts.find_or_create_by_name("Context A") - project = @current_user.projects.create!(:name => project_name) + @context = @current_user.contexts.find_or_create_by_name("Context A") + @project = @current_user.projects.create!(:name => project_name) 1.upto num_todos.to_i do |i| @current_user.todos.create!( - :project_id => project.id, - :context_id => context.id, - :description => "Todo #{i}") + :project_id => @project.id, + :context_id => @context.id, + :description => "todo #{i}") end end @@ -71,7 +71,7 @@ When /^I edit the project name to "([^\"]*)"$/ do |new_title| wait_for do selenium.is_element_present("submit_project_#{@project.id}") end - + fill_in "project[name]", :with => new_title selenium.click "submit_project_#{@project.id}", @@ -180,7 +180,7 @@ Then /^I should see the bold text "([^\"]*)" in the project description$/ do |bo response.should have_xpath(xpath) bold_text = response.selenium.get_text("xpath=#{xpath}") - + bold_text.should =~ /#{bold}/ end diff --git a/features/step_definitions/todo_create_steps.rb b/features/step_definitions/todo_create_steps.rb index 01fd572d..ea51fa65 100644 --- a/features/step_definitions/todo_create_steps.rb +++ b/features/step_definitions/todo_create_steps.rb @@ -3,6 +3,30 @@ When /^I submit a new action with description "([^"]*)"$/ do |description| submit_next_action_form end +When /^I submit a new action with description "([^"]*)" with a dependency on "([^"]*)"$/ do |todo_description, predecessor_description| + predecessor = @current_user.todos.find_by_description(predecessor_description) + predecessor.should_not be_nil + + fill_in "todo[description]", :with => todo_description + + input = "xpath=//form[@id='todo-form-new-action']//input[@id='predecessor_input']" + selenium.focus(input) + selenium.type_keys input, predecessor_description + + # wait for auto complete + autocomplete = "xpath=//a[@id='ui-active-menuitem']" + selenium.wait_for_element(autocomplete, :timeout_in_seconds => 5) + + # click first line + first_elem = "xpath=//ul/li[1]/a[@id='ui-active-menuitem']" + selenium.click(first_elem) + + new_dependency_line = "xpath=//li[@id='pred_#{predecessor.id}']" + selenium.wait_for_element(new_dependency_line, :timeout_in_seconds => 5) + + submit_next_action_form +end + When /^I submit a new action with description "([^"]*)" and the tags "([^"]*)" in the context "([^"]*)"$/ do |description, tags, context_name| fill_in "todo[description]", :with => description fill_in "tag_list", :with => tags diff --git a/features/step_definitions/todo_edit_steps.rb b/features/step_definitions/todo_edit_steps.rb index 2be789f1..2865cf52 100644 --- a/features/step_definitions/todo_edit_steps.rb +++ b/features/step_definitions/todo_edit_steps.rb @@ -7,8 +7,12 @@ When /I change the (.*) field of "([^\"]*)" to "([^\"]*)"$/ do |field_name, todo submit_edit_todo_form(todo) end -When /^I edit the context of "([^"]*)" to "([^"]*)"$/ do |context_old_name, context_new_name| - When "I change the context_name field of \"#{context_old_name}\" to \"#{context_new_name}\"" +When /^I edit the context of "([^"]*)" to "([^"]*)"$/ do |todo_name, context_new_name| + When "I change the context_name field of \"#{todo_name}\" to \"#{context_new_name}\"" +end + +When /^I edit the project of "([^"]*)" to "([^"]*)"$/ do |todo_name, project_new_name| + When "I change the project_name field of \"#{todo_name}\" to \"#{project_new_name}\"" end When /^I edit the description of "([^"]*)" to "([^"]*)"$/ do |action_description, new_description| @@ -46,9 +50,9 @@ end When /^I remove the show from date from "([^"]*)"$/ do |action_description| todo = @current_user.todos.find_by_description(action_description) todo.should_not be_nil - + open_edit_form_for(todo) selenium.click("//div[@id='edit_todo_#{todo.id}']//a[@id='show_from_x_todo_#{todo.id}']/img", :wait_for => :ajax, :javascript_framework => :jquery) - + submit_edit_todo_form(todo) end diff --git a/features/step_definitions/todo_steps.rb b/features/step_definitions/todo_steps.rb index d91f9eb1..488a92f3 100644 --- a/features/step_definitions/todo_steps.rb +++ b/features/step_definitions/todo_steps.rb @@ -4,7 +4,7 @@ end Given /^I have a todo "([^"]*)" in the context "([^"]*)"$/ do |description, context_name| context = @current_user.contexts.find_or_create(:name => context_name) - @current_user.todos.create!(:context_id => context.id, :description => description) + @todo = @current_user.todos.create!(:context_id => context.id, :description => description) end Given /^I have a todo "([^"]*)" in the context "([^"]*)" which is due tomorrow$/ do |description, context_name| @@ -14,6 +14,22 @@ Given /^I have a todo "([^"]*)" in the context "([^"]*)" which is due tomorrow$/ @todo.save! end +Given /^I have (\d+) todos in project "([^"]*)" in context "([^"]*)" with tags "([^"]*)"$/ do |number_of_todos, project_name, context_name, tag_names| + @context = @current_user.contexts.find_by_name(context_name) + @context.should_not be_nil + + @project = @current_user.projects.find_by_name(project_name) + @project.should_not be_nil + + @todos = [] + number_of_todos.to_i.downto 1 do |i| + todo = @current_user.todos.create!(:context_id => @context.id, :description => "todo #{i}", :project_id => @project.id) + todo.tag_with(tag_names) + todo.save! + @todos << todo + end +end + Given /^I have a todo "([^"]*)"$/ do |description| Given "I have a todo \"#{description}\" in the context \"Context A\"" end @@ -133,6 +149,26 @@ Given /^I have a project "([^"]*)" that has the following todos$/ do |project_na end end +Given /^I have a project "([^"]*)" that has the following deferred todos$/ do |project_name, todos| + Given "I have a project called \"#{project_name}\"" + @project.should_not be_nil + todos.hashes.each do |todo| + context = @current_user.contexts.find_by_name(todo[:context]) + context.should_not be_nil + new_todo = @current_user.todos.create!( + :description => todo[:description], + :context_id => context.id, + :project_id=>@project.id, + :show_from=>Time.zone.now+1.week) + unless todo[:tags].nil? + new_todo.tag_with(todo[:tags]) + end + unless todo[:completed].nil? + new_todo.complete! if todo[:completed] == 'yes' + end + end +end + When /^I mark "([^"]*)" as complete$/ do |action_description| todo = @current_user.todos.find_by_description(action_description) todo.should_not be_nil diff --git a/features/view_done.feature b/features/view_done.feature index 5dd1c7f6..4f9b1fee 100644 --- a/features/view_done.feature +++ b/features/view_done.feature @@ -133,7 +133,7 @@ Feature: Show done When I go to the recurring todos page Then I should see "test pattern" in the active recurring todos container - @selenium @wip + @selenium Scenario Outline: I can toggle a todo active from the done pages When I go to the Then I should see "todo 1" @@ -173,7 +173,14 @@ Feature: Show done @selenium Scenario: I can edit a project to active from the project done page - Given this scenario is pending + Given I have a completed project called "completed project" + When I go to the done projects page + Then I should see "completed project" + When I edit the project state of "completed project" to "active" + Then I should not see "completed project" + When I go to the projects page + Then I should see "completed project" + Scenario Outline: All pages are internationalized Given I set the locale to "" @@ -206,3 +213,20 @@ Feature: Show done | all done actions page for context "@pc" | de | | all done actions page for project "test project"| de | | all done actions page for tag "starred" | de | + | done actions page | es | + | all done actions page | es | + | done actions page for context "@pc" | es | + | done actions page for project "test project" | es | + | done actions page for tag "starred" | es | + | all done actions page for context "@pc" | es | + | all done actions page for project "test project"| es | + | all done actions page for tag "starred" | es | +# fr locale needs changes from preference branch +# | done actions page | fr | +# | all done actions page | fr | +# | done actions page for context "@pc" | fr | +# | done actions page for project "test project" | fr | +# | done actions page for tag "starred" | fr | +# | all done actions page for context "@pc" | fr | +# | all done actions page for project "test project"| fr | +# | all done actions page for tag "starred" | fr | From b40998e0bc45436982ee823739421c4979efe8f2 Mon Sep 17 00:00:00 2001 From: Reinier Balt Date: Thu, 11 Aug 2011 20:53:54 +0200 Subject: [PATCH 075/197] add a few cucumber scenario's for editing a todo --- app/helpers/todos_helper.rb | 4 +- features/edit_a_todo.feature | 45 +++++++++++++++++--- features/step_definitions/todo_edit_steps.rb | 33 ++++++++++++++ features/step_definitions/todo_steps.rb | 6 +++ 4 files changed, 80 insertions(+), 8 deletions(-) diff --git a/app/helpers/todos_helper.rb b/app/helpers/todos_helper.rb index c1ac9a53..8ce9ccb1 100644 --- a/app/helpers/todos_helper.rb +++ b/app/helpers/todos_helper.rb @@ -30,7 +30,7 @@ module TodosHelper :_source_view => (@source_view.underscore.gsub(/\s+/,'_') rescue "")} url[:_tag_name] = @tag_name if @source_view == 'tag' - options = {:x_defer_alert => false, :class => "icon_defer_item" } + options = {:x_defer_alert => false, :class => "icon_defer_item", :id => "defer_#{days}_#{dom_id(todo)}" } if todo.due futuredate = (todo.show_from || todo.user.date) + days.days if futuredate > todo.due @@ -55,7 +55,7 @@ module TodosHelper :_source_view => (@source_view.underscore.gsub(/\s+/,'_') rescue "")} url[:_tag_name] = @tag_name if @source_view == 'tag' - return link_to(image_tag("to_project_off.png", :align => "absmiddle")+" " + t('todos.convert_to_project'), url) + return link_to(image_tag("to_project_off.png", :align => "absmiddle")+" " + t('todos.convert_to_project'), url, {:id => "to_project_#{dom_id(todo)}"}) end def image_tag_for_defer(days) diff --git a/features/edit_a_todo.feature b/features/edit_a_todo.feature index bcaedbc1..70b25b1e 100644 --- a/features/edit_a_todo.feature +++ b/features/edit_a_todo.feature @@ -8,6 +8,7 @@ Feature: Edit a next action from every page | login | password | is_admin | | testuser | secret | false | And I have logged in as "testuser" with password "secret" + And I have a context called "@pc" @selenium Scenario: I can toggle the star of a todo @@ -186,17 +187,43 @@ Feature: Edit a next action from every page Then I should not see "first action" in the context container for "@pc" Then I should see "first action" in the context container for "@laptop" + @selenium Scenario: I can edit a todo to move it to another project - Given this is a pending scenario + Given I have a project called "project one" + And I have a project "project two" with 1 todos + When I go to the "project two" project + And I edit the project of "todo 1" to "project one" + Then I should not see "todo 1" + When I go to the "project one" project + Then I should see "todo 1" + @selenium Scenario: I can edit a todo to move it to the tickler - Given this is a pending scenario + When I go to the home page + And I submit a new action with description "start later" in the context "@pc" + And I edit the show from date of "start later" to next month + Then I should not see "start later" + When I go to the tickler page + Then I should see "start later" + @selenium Scenario: I can defer a todo - Given this is a pending scenario + When I go to the home page + And I submit a new action with description "start later" in the context "@pc" + And I defer "start later" for 1 day + Then I should not see "start later" + When I go to the tickler page + Then I should see "start later" + @selenium Scenario: I can make a project from a todo - Given this is a pending scenario + When I go to the home page + And I submit a new action with description "buy mediacenter" in the context "@pc" + And I make a project of "buy mediacenter" + #sidebar does not update + Then I should be on the "buy mediacenter" project + When I go to the projects page + Then I should see "buy mediacenter" Scenario: I can show the notes of a todo Given this is a pending scenario @@ -205,13 +232,19 @@ Feature: Edit a next action from every page Given this is a pending scenario Scenario: Clicking a tag of a todo will go to that tag page - Given this is a pending scenario + Given I have a todo "tag you are it" in context "@tags" with tags "taga, tagb" + When I go to the home page + Then I should see "tag you are it" + And I should see "taga" + When I follow "taga" + Then I should be on the tag page for "taga" Scenario: I can edit the tags of a todo Given this is a pending scenario Scenario: Editing the context of a todo to a new context will show new context - Given this is a pending scenario # for home and tickler and tag + # for home and tickler and tag + Given this is a pending scenario Scenario: Making an error when editing a todo will show error message Given this is a pending scenario diff --git a/features/step_definitions/todo_edit_steps.rb b/features/step_definitions/todo_edit_steps.rb index 2865cf52..18212a73 100644 --- a/features/step_definitions/todo_edit_steps.rb +++ b/features/step_definitions/todo_edit_steps.rb @@ -39,6 +39,14 @@ When /^I edit the due date of "([^"]*)" to next month$/ do |action_description| submit_edit_todo_form(todo) end +When /^I edit the show from date of "([^"]*)" to next month$/ do |action_description| + todo = @current_user.todos.find_by_description(action_description) + todo.should_not be_nil + open_edit_form_for(todo) + fill_in "show_from_todo_#{todo.id}", :with => format_date(todo.created_at + 1.month) + submit_edit_todo_form(todo) +end + When /^I clear the due date of "([^"]*)"$/ do |action_description| todo = @current_user.todos.find_by_description(action_description) todo.should_not be_nil @@ -56,3 +64,28 @@ When /^I remove the show from date from "([^"]*)"$/ do |action_description| submit_edit_todo_form(todo) end + +When /^I defer "([^"]*)" for 1 day$/ do |action_description| + todo = @current_user.todos.find_by_description(action_description) + todo.should_not be_nil + + defer_todo_1day_button = "xpath=//a[@id='defer_1_todo_#{todo.id}']/img" + selenium.click defer_todo_1day_button + + wait_for :timeout => 5 do + !selenium.is_element_present("//div[@id='line_todo_#{todo.id}']") + end +end + +When /^I make a project of "([^"]*)"$/ do |action_description| + todo = @current_user.todos.find_by_description(action_description) + todo.should_not be_nil + + make_project_button = "xpath=//a[@id='to_project_todo_#{todo.id}']/img" + selenium.click make_project_button + + wait_for :timeout => 5 do + !selenium.is_element_present("//div[@id='line_todo_#{todo.id}']") + end +end + diff --git a/features/step_definitions/todo_steps.rb b/features/step_definitions/todo_steps.rb index 488a92f3..fe61dbda 100644 --- a/features/step_definitions/todo_steps.rb +++ b/features/step_definitions/todo_steps.rb @@ -7,6 +7,12 @@ Given /^I have a todo "([^"]*)" in the context "([^"]*)"$/ do |description, cont @todo = @current_user.todos.create!(:context_id => context.id, :description => description) end +Given /^I have a todo "([^"]*)" in context "([^"]*)" with tags "([^"]*)"$/ do |description, context_name, tag_names| + Given "I have a todo \"#{description}\" in the context \"#{context_name}\"" + @todo.tag_with(tag_names) + @todo.save! +end + Given /^I have a todo "([^"]*)" in the context "([^"]*)" which is due tomorrow$/ do |description, context_name| context = @current_user.contexts.find_or_create(:name => context_name) @todo = @current_user.todos.create!(:context_id => context.id, :description => description) From ef961188ea56ec9fc17d2612937857000098a83c Mon Sep 17 00:00:00 2001 From: Reinier Balt Date: Mon, 15 Aug 2011 17:04:59 +0200 Subject: [PATCH 076/197] add more cucumber scenarios --- app/controllers/todos_controller.rb | 14 ++++- app/views/todos/_edit_form.rhtml | 2 +- app/views/todos/_new_todo_form.rhtml | 4 +- features/edit_a_todo.feature | 58 ++++++++++++++---- features/project_edit.feature | 32 +++++++--- features/step_definitions/context_steps.rb | 2 +- features/step_definitions/project_steps.rb | 24 +++++++- .../step_definitions/todo_create_steps.rb | 8 +-- features/step_definitions/todo_edit_steps.rb | 28 ++++++++- features/step_definitions/todo_steps.rb | 59 ++++++++++++++----- features/tagging_todos.feature | 17 +----- public/javascripts/application.js | 13 ++-- 12 files changed, 190 insertions(+), 71 deletions(-) diff --git a/app/controllers/todos_controller.rb b/app/controllers/todos_controller.rb index cc2223b9..d7afdcc1 100644 --- a/app/controllers/todos_controller.rb +++ b/app/controllers/todos_controller.rb @@ -1303,12 +1303,20 @@ class TodosController < ApplicationController def update_due_and_show_from_dates if params["todo"].has_key?("due") - params["todo"]["due"] = parse_date_per_user_prefs(params["todo"]["due"]) + begin + params["todo"]["due"] = parse_date_per_user_prefs(params["todo"]["due"]) + rescue + @todo.errors.add_to_base("Invalid due date") + end else params["todo"]["due"] = "" end if params['todo']['show_from'] - params['todo']['show_from'] = parse_date_per_user_prefs(params['todo']['show_from']) + begin + params['todo']['show_from'] = parse_date_per_user_prefs(params['todo']['show_from']) + rescue + @todo.errors.add_to_base("Invalid show from date") + end end end @@ -1441,7 +1449,7 @@ class TodosController < ApplicationController end def tag_list - @params['tag_list'] + @params['todo_tag_list'] end def predecessor_list diff --git a/app/views/todos/_edit_form.rhtml b/app/views/todos/_edit_form.rhtml index ee95961d..9ffb3d39 100644 --- a/app/views/todos/_edit_form.rhtml +++ b/app/views/todos/_edit_form.rhtml @@ -1,7 +1,7 @@ <% todo = edit_form form_for(todo, :html=> { :name=>'todo', :id => dom_id(@todo, 'form'), :class => 'inline-form edit_todo_form' }) do |t|%> -
    <%= error_messages_for("todo", :object_name => 'action') %>
    +
    <%= error_messages_for("todo", :object_name => 'action') %>
    <%= t.hidden_field( "id" ) -%> <%= source_view_tag( @source_view ) -%> diff --git a/app/views/todos/_new_todo_form.rhtml b/app/views/todos/_new_todo_form.rhtml index 16beb13a..5e0e746c 100644 --- a/app/views/todos/_new_todo_form.rhtml +++ b/app/views/todos/_new_todo_form.rhtml @@ -22,8 +22,8 @@ - - <%= text_field_tag "tag_list", @default_tags, :size => 30, :tabindex => next_tab_index %> + + <%= text_field_tag "todo_tag_list", @default_tags, :size => 30, :tabindex => next_tab_index %> <%= content_tag("div", "", :id => "tag_list_auto_complete", :class => "auto_complete") %>
    diff --git a/features/edit_a_todo.feature b/features/edit_a_todo.feature index 70b25b1e..42af3c58 100644 --- a/features/edit_a_todo.feature +++ b/features/edit_a_todo.feature @@ -30,7 +30,6 @@ Feature: Edit a next action from every page @selenium Scenario: Removing the last todo in context will hide context Given I have a todo "delete me" in the context "@home" - And I have a context called "@pc" When I go to the home page Then I should see the container for context "@home" And I should see "delete me" in the context container for "@home" @@ -156,8 +155,7 @@ Feature: Edit a next action from every page @selenium Scenario Outline: I can edit a todo to move it to another context - Given I have a context called "@pc" - And I have a context called "@laptop" + Given I have a context called "@laptop" And I have a project "my project" that has the following todos | context | description | tags | | @pc | first action | bla | @@ -175,8 +173,7 @@ Feature: Edit a next action from every page @selenium Scenario: I can edit a todo to move it to another context in tickler page - Given I have a context called "@pc" - And I have a context called "@laptop" + Given I have a context called "@laptop" And I have a project "my project" that has the following deferred todos | context | description | | @pc | first action | @@ -225,11 +222,22 @@ Feature: Edit a next action from every page When I go to the projects page Then I should see "buy mediacenter" + @selenium Scenario: I can show the notes of a todo - Given this is a pending scenario + Given I have a todo "read the notes" with notes "several things to read" + When I go to the home page + Then I should see "read the notes" + And I should not see "several things to read" + When I open the notes of "read the notes" + Then I should see "several things to read" + @selenium Scenario: I can tag a todo - Given this is a pending scenario + Given I have a todo "tag me" + When I go to the home page + And I edit the tags of "tag me" to "bla, bli" + Then I should see "bla" + And I should see "bli" Scenario: Clicking a tag of a todo will go to that tag page Given I have a todo "tag you are it" in context "@tags" with tags "taga, tagb" @@ -239,12 +247,38 @@ Feature: Edit a next action from every page When I follow "taga" Then I should be on the tag page for "taga" + @selenium Scenario: I can edit the tags of a todo - Given this is a pending scenario + Given I have a todo "tag you are it" in context "@tags" with tags "taga, tagb" + When I go to the home page + Then I should see "tag you are it" + When I edit the tags of "tag you are it" to "tagb, tagc" + Then I should not see "taga" + And I should see "tagb" + And I should see "tagc" - Scenario: Editing the context of a todo to a new context will show new context - # for home and tickler and tag - Given this is a pending scenario + @selenium + Scenario Outline: Editing the context of a todo to a new context will show new context + Given I have a todo "moving" in context "@pc" with tags "tag" + When I go to the + And I edit the context of "moving" to "@new" + And I should see the container for context "@new" + Scenarios: + | page | + | home page | + | tag page for "tag" | + + @selenium + Scenario: Editing the context of a todo in the tickler to a new context will show new context + Given I have a deferred todo "moving" in context "@pc" with tags "tag" + When I go to the tickler page + And I edit the context of "moving" to "@new" + And I should see the container for context "@new" + + @selenium Scenario: Making an error when editing a todo will show error message - Given this is a pending scenario + Given I have a todo "test" + When I go to the home page + And I try to edit the description of "test" to "" + Then I should see an error message diff --git a/features/project_edit.feature b/features/project_edit.feature index c3741c59..d98c1ecc 100644 --- a/features/project_edit.feature +++ b/features/project_edit.feature @@ -82,20 +82,38 @@ Feature: Edit a project Then I should not see "123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890TOO LONG" And I should see "12345678901234567890123456789012345678901234567890123456789012345678901234567890123456" + @selenium Scenario: Cancelling editing a project will restore project settings - Given this is a pending scenario - - Scenario: Editing the description of a todo will update todo - Given this is a pending scenario + Given I have a project called "test" + When I go to the "test" project + Then I should see "This project is active with no default context and with no default tags" + When I open the project edit form + Then I should not see "This project is active with no default context and with no default tags" + When I cancel the project edit form + Then I should see "This project is active with no default context and with no default tags" + @selenium Scenario: Moving the todo to the tickler will move todo to tickler container - Given this is a pending scenario + Given I have a project "test" with 1 todos + When I go to the "test" project + Then I should see "todo 1" in the action container + When I defer "todo 1" for 1 day + Then I should see "todo 1" in the deferred container + @selenium Scenario: Moving the todo out of the tickler will move todo to active container - Given this is a pending scenario + Given I have a project "test" with 1 todos + When I go to the "test" project + Then I should see "todo 1" in the action container + When I defer "todo 1" for 1 day + Then I should see "todo 1" in the deferred container + @selenium Scenario: Making all todos inactive will show empty message - Given this is a pending scenario # empty message is in separate container + Given I have a project "test" with 1 todos + When I go to the "test" project + And I mark "todo 1" as complete + Then I should see "Currently there are no incomplete actions in this project" # Ticket #1043 @selenium diff --git a/features/step_definitions/context_steps.rb b/features/step_definitions/context_steps.rb index dc3b9e09..c44691bd 100644 --- a/features/step_definitions/context_steps.rb +++ b/features/step_definitions/context_steps.rb @@ -6,7 +6,7 @@ end Given /^there exists an active context called "([^"]*)" for user "([^"]*)"$/ do |context_name, login| user = User.find_by_login(login) user.should_not be_nil - @context = user.contexts.create!(:name => context_name, :hide => false) + @context = user.contexts.find_or_create(:name => context_name, :hide => false) end Given /^there exists a context called "([^"]*)" for user "([^"]*)"$/ do |context_name, login| diff --git a/features/step_definitions/project_steps.rb b/features/step_definitions/project_steps.rb index 8ca46b2f..d18861fc 100644 --- a/features/step_definitions/project_steps.rb +++ b/features/step_definitions/project_steps.rb @@ -59,10 +59,32 @@ Given /^I have a hidden project called "([^"]*)"$/ do |project_name| @project.hide! end +When /^I open the project edit form$/ do + click_link "link_edit_project_#{@project.id}" + + wait_for do + selenium.is_element_present("submit_project_#{@project.id}") + end +end + +When /^I cancel the project edit form$/ do + click_link "cancel_project_#{@project.id}" + + if selenium.is_visible("submit_project_#{@project.id}") + wait_for do + !selenium.is_visible("submit_project_#{@project.id}") + end + end +end + When /^I edit the project description to "([^\"]*)"$/ do |new_description| click_link "link_edit_project_#{@project.id}" fill_in "project[description]", :with => new_description click_button "submit_project_#{@project.id}" + + wait_for do + !selenium.is_element_present("submit_project_#{@project.id}") + end end When /^I edit the project name to "([^\"]*)"$/ do |new_title| @@ -80,7 +102,7 @@ When /^I edit the project name to "([^\"]*)"$/ do |new_title| :timeout => 5 wait_for do - !selenium.is_element_present("submit_context_#{@project.id}") + !selenium.is_element_present("submit_project_#{@project.id}") end end diff --git a/features/step_definitions/todo_create_steps.rb b/features/step_definitions/todo_create_steps.rb index ea51fa65..edf02ec3 100644 --- a/features/step_definitions/todo_create_steps.rb +++ b/features/step_definitions/todo_create_steps.rb @@ -29,7 +29,7 @@ end When /^I submit a new action with description "([^"]*)" and the tags "([^"]*)" in the context "([^"]*)"$/ do |description, tags, context_name| fill_in "todo[description]", :with => description - fill_in "tag_list", :with => tags + fill_in "todo_tag_list", :with => tags # fill_in does not seem to work when the field is prefilled with something. Empty the field first clear_context_name_from_next_action_form @@ -43,7 +43,7 @@ When /^I submit a new deferred action with description "([^"]*)" and the tags "( clear_context_name_from_next_action_form fill_in "todo_context_name", :with => context_name - fill_in "tag_list", :with => tags + fill_in "todo_tag_list", :with => tags fill_in "todo[show_from]", :with => format_date(@current_user.time + 1.week) submit_next_action_form end @@ -56,7 +56,7 @@ When /^I submit a new deferred action with description "([^"]*)" to project "([^ fill_in "todo_project_name", :with => project_name fill_in "todo_context_name", :with => context_name - fill_in "tag_list", :with => tags + fill_in "todo_tag_list", :with => tags fill_in "todo[show_from]", :with => format_date(@current_user.time + 1.week) submit_next_action_form @@ -80,7 +80,7 @@ When /^I submit a new action with description "([^"]*)" to project "([^"]*)" wit fill_in "todo_project_name", :with => project_name fill_in "todo_context_name", :with => context_name - fill_in "tag_list", :with => tags + fill_in "todo_tag_list", :with => tags submit_next_action_form end diff --git a/features/step_definitions/todo_edit_steps.rb b/features/step_definitions/todo_edit_steps.rb index 18212a73..30ae79b0 100644 --- a/features/step_definitions/todo_edit_steps.rb +++ b/features/step_definitions/todo_edit_steps.rb @@ -23,6 +23,15 @@ When /^I edit the description of "([^"]*)" to "([^"]*)"$/ do |action_description submit_edit_todo_form(todo) end +When /^I try to edit the description of "([^"]*)" to "([^"]*)"$/ do |action_description, new_description| + todo = @current_user.todos.find_by_description(action_description) + todo.should_not be_nil + open_edit_form_for(todo) + fill_in "todo_description", :with => new_description + selenium.click("//div[@id='edit_todo_#{todo.id}']//button[@id='submit_todo_#{todo.id}']", :wait_for => :ajax, :javascript_framework => :jquery) + # do not wait for form to disappear to be able to test failures +end + When /^I edit the due date of "([^"]*)" to tomorrow$/ do |action_description| todo = @current_user.todos.find_by_description(action_description) todo.should_not be_nil @@ -65,6 +74,15 @@ When /^I remove the show from date from "([^"]*)"$/ do |action_description| submit_edit_todo_form(todo) end +When /^I edit the tags of "([^"]*)" to "([^"]*)"$/ do |action_description, tags| + todo = @current_user.todos.find_by_description(action_description) + todo.should_not be_nil + + open_edit_form_for(todo) + fill_in "tag_list", :with => tags + submit_edit_todo_form(todo) +end + When /^I defer "([^"]*)" for 1 day$/ do |action_description| todo = @current_user.todos.find_by_description(action_description) todo.should_not be_nil @@ -72,9 +90,7 @@ When /^I defer "([^"]*)" for 1 day$/ do |action_description| defer_todo_1day_button = "xpath=//a[@id='defer_1_todo_#{todo.id}']/img" selenium.click defer_todo_1day_button - wait_for :timeout => 5 do - !selenium.is_element_present("//div[@id='line_todo_#{todo.id}']") - end + wait_for_ajax end When /^I make a project of "([^"]*)"$/ do |action_description| @@ -89,3 +105,9 @@ When /^I make a project of "([^"]*)"$/ do |action_description| end end +Then /^I should see an error message$/ do + error_block = "xpath=//form/div[@id='edit_error_status']" + wait_for :timeout => 5 do + selenium.is_element_present(error_block) + end +end diff --git a/features/step_definitions/todo_steps.rb b/features/step_definitions/todo_steps.rb index fe61dbda..650d60d5 100644 --- a/features/step_definitions/todo_steps.rb +++ b/features/step_definitions/todo_steps.rb @@ -40,12 +40,34 @@ Given /^I have a todo "([^"]*)"$/ do |description| Given "I have a todo \"#{description}\" in the context \"Context A\"" end +Given /^I have a todo "([^"]*)" with notes "([^"]*)"$/ do |description, notes| + Given "I have a todo \"#{description}\" in the context \"Context A\"" + @todo.notes = notes + @todo.save! +end + Given /^I have ([0-9]+) todos$/ do |count| count.to_i.downto 1 do |i| Given "I have a todo \"todo #{i}\" in the context \"Context A\"" end end +Given /^I have a todo with description "([^"]*)" in project "([^"]*)" with tags "([^"]*)" in the context "([^"]*)"$/ do |action_description, project_name, tags, context_name| + context = @current_user.contexts.find_or_create(:name => context_name) + project = @current_user.projects.find_or_create(:name => project_name) + @todo = @current_user.todos.create!(:context_id => context.id, :project_id => project.id, :description => action_description) + @todo.tag_with(tags) + @todo.save +end + +Given /^I have a todo with description "([^"]*)" in project "([^"]*)" with tags "([^"]*)" in the context "([^"]*)" that is due next week$/ do |action_description, project_name, tags, context_name| + Given "I have a todo with description \"#{action_description}\" in project \"#{project_name}\" with tags \"#{tags}\" in the context \"#{context_name}\"" + @todo.due = @current_user.time + 1.week + @todo.save! +end + +###### DEFERRED TODOS ####### + Given /^I have ([0-9]+) deferred todos$/ do |count| context = @current_user.contexts.create!(:name => "context B") count.to_i.downto 1 do |i| @@ -66,6 +88,14 @@ Given /^I have a deferred todo "([^"]*)"$/ do |description| Given "I have a deferred todo \"#{description}\" in the context \"context B\"" end +Given /^I have a deferred todo "([^"]*)" in context "([^"]*)" with tags "([^"]*)"$/ do |action_description, context_name, tag_list| + Given "I have a todo \"#{action_description}\" in context \"#{context_name}\" with tags \"#{tag_list}\"" + @todo.show_from = @current_user.time + 1.week + @todo.save! +end + +####### COMPLETED TODOS ####### + Given /^I have ([0-9]+) completed todos in project "([^"]*)" in context "([^"]*)"$/ do |count, project_name, context_name| @context = @current_user.contexts.find_by_name(context_name) @context.should_not be_nil @@ -117,25 +147,13 @@ Given /^I have ([0-9]+) completed todos with a note in project "([^"]*)" in cont @todos.each { |t| t.notes = "note #{t.id}"; t.save! } end -Given /^I have a todo with description "([^"]*)" in project "([^"]*)" with tags "([^"]*)" in the context "([^"]*)"$/ do |action_description, project_name, tags, context_name| - context = @current_user.contexts.find_or_create(:name => context_name) - project = @current_user.projects.find_or_create(:name => project_name) - @todo = @current_user.todos.create!(:context_id => context.id, :project_id => project.id, :description => action_description) - @todo.tag_with(tags) - @todo.save -end - -Given /^I have a todo with description "([^"]*)" in project "([^"]*)" with tags "([^"]*)" in the context "([^"]*)" that is due next week$/ do |action_description, project_name, tags, context_name| - Given "I have a todo with description \"#{action_description}\" in project \"#{project_name}\" with tags \"#{tags}\" in the context \"#{context_name}\"" - @todo.due = @current_user.time + 1.week - @todo.save! -end - Given /^I have a completed todo with description "([^"]*)" in project "([^"]*)" with tags "([^"]*)" in the context "([^"]*)"$/ do |action_description, project_name, tags, context_name| Given "I have a todo with description \"#{action_description}\" in project \"#{project_name}\" with tags \"#{tags}\" in the context \"#{context_name}\"" @todo.complete! end +####### PROJECT WITH TODOS ###### + Given /^I have a project "([^"]*)" that has the following todos$/ do |project_name, todos| Given "I have a project called \"#{project_name}\"" @project.should_not be_nil @@ -273,7 +291,6 @@ Then /^I should see an unstarred "([^"]*)"$/ do |action_description| end end - When /^I delete the action "([^"]*)"$/ do |action_description| todo = @current_user.todos.find_by_description(action_description) todo.should_not be_nil @@ -291,6 +308,18 @@ When /^I delete the todo "([^"]*)"$/ do |action_description| When "I delete the action \"#{action_description}\"" end +When /^I open the notes of "([^"]*)"$/ do |action_description| + todo = @current_user.todos.find_by_description(action_description) + todo.should_not be_nil + + show_notes_img = "xpath=//div[@id='line_todo_#{todo.id}']/div/a/img" + selenium.click show_notes_img + + wait_for :timeout => 5 do + selenium.is_visible "//div[@id='notes_todo_#{todo.id}']" + end +end + Then /^I should see ([0-9]+) todos$/ do |count| count.to_i.downto 1 do |i| match_xpath "div[" diff --git a/features/tagging_todos.feature b/features/tagging_todos.feature index 2ab5a72e..d958f6cd 100644 --- a/features/tagging_todos.feature +++ b/features/tagging_todos.feature @@ -9,15 +9,6 @@ Feature: Tagging todos | testuser | secret | false | And I have logged in as "testuser" with password "secret" - Scenario: I can edit a todo to add tags to that todo - Given this is a pending scenario - - Scenario: I can add a new todo with tags - Given this is a pending scenario - - Scenario: I can show all todos tagged with a specific tag - Given this is a pending scenario - Scenario: I can remove a tag from a todo from the tag view and the tag will be removed Given this is a pending scenario @@ -27,14 +18,8 @@ Feature: Tagging todos Scenario: I can add a new todo from tag view with a different tag and it will not be added to the page Given this is a pending scenario - Scenario: I can change the context of a tagged todo in tag view and it will move the tag on the page - Given this is a pending scenario - - Scenario: I can defer a tagged todo in tag view and it will move the todo on the page to the deferred container - Given this is a pending scenario - Scenario: I can move a tagged todo in tag view to a hidden project and it will move the todo on the page to the hidden container Given this is a pending scenario -Scenario: I can move a tagged todo in tag view to a hidden context and it will move the todo on the page to the hidden container + Scenario: I can move a tagged todo in tag view to a hidden context and it will move the todo on the page to the hidden container Given this is a pending scenario diff --git a/public/javascripts/application.js b/public/javascripts/application.js index 48b0076a..71ba9e5e 100644 --- a/public/javascripts/application.js +++ b/public/javascripts/application.js @@ -12,7 +12,7 @@ var TracksForm = { $('#'+formId+' input:text:first').focus(); } toggleLink.parent().toggleClass('hide_form'); - }, + }, set_project_name: function (name) { $('input#todo_project_name').val(name); }, @@ -35,7 +35,7 @@ var TracksForm = { $('#project_name').html(name); }, set_tag_list: function (name) { - $('input#tag_list').val(name); + $('input#todo_tag_list').val(name); }, set_tag_list_for_multi_add: function (name) { $('#multi_tag_list').val(name); @@ -80,7 +80,7 @@ var TracksForm = { /* submit todo form after entering new todo */ $("button#todo_new_action_submit").live('click', function (ev) { - if ($('input#predecessor_input').val() != "") + if ($('input#predecessor_input').val() != "") if (!confirm(i18n['todos.unresolved_dependency'])) return false; if (TodoItems.askIfNewContextProvided('', this)) @@ -181,12 +181,12 @@ var TracksPages = { var flash = $('div#message_holder'); flash.html("

    "+message+"

    "); flash = $('h4#flash'); - + fadein_duration = 1500; fadeout_duration = 1500; show_duration = fade_duration_in_sec*1000 - fadein_duration - fadeout_duration if (show_duration < 0) - show_duration = 1000; + show_duration = 1000; flash.fadeIn(fadein_duration).delay(show_duration).fadeOut(fadeout_duration); }, set_page_badge: function(count) { @@ -251,7 +251,8 @@ var TracksPages = { ProjectItems.setup_autocomplete_for_projects('input[name=project_name]'); ContextItems.setup_autocomplete_for_contexts('input[name=context_name]'); ContextItems.setup_autocomplete_for_contexts('input[id="project_default_context_name"]'); - TracksPages.setup_autocomplete_for_tag_list('input[name=tag_list]'); + TracksPages.setup_autocomplete_for_tag_list('input[name=tag_list]'); // todo edit form + TracksPages.setup_autocomplete_for_tag_list('input[name=todo_tag_list]'); // new todo form TracksPages.setup_autocomplete_for_tag_list('input[id="project_default_tags"]'); TodoItems.setup_autocomplete_for_predecessor(); }, From a8f4199adc99bc68d055d53fed60d880f4463724 Mon Sep 17 00:00:00 2001 From: Reinier Balt Date: Mon, 15 Aug 2011 20:44:59 +0200 Subject: [PATCH 077/197] clean up cucumber scenarios and add a few more --- app/helpers/todos_helper.rb | 5 - app/views/todos/create.js.erb | 2 +- features/step_definitions/container_steps.rb | 11 + .../step_definitions/todo_create_steps.rb | 265 +++++++++++++-- features/step_definitions/todo_edit_steps.rb | 129 +++++-- features/step_definitions/todo_steps.rb | 317 ++---------------- features/tagging_todos.feature | 39 ++- 7 files changed, 411 insertions(+), 357 deletions(-) diff --git a/app/helpers/todos_helper.rb b/app/helpers/todos_helper.rb index 8ce9ccb1..43f8242f 100644 --- a/app/helpers/todos_helper.rb +++ b/app/helpers/todos_helper.rb @@ -62,11 +62,6 @@ module TodosHelper image_tag("defer_#{days}_off.png", :mouseover => "defer_#{days}.png", :alt => t('todos.defer_x_days', :count => days), :align => "absmiddle")+" "+t('todos.defer_x_days', :count => days) end - # waiting stuff can be deleted after migration of defer and dependencies - def successor_start_waiting_js(successor) - return "$('##{dom_id(successor, "successor")}').block({message: null})" - end - def collapsed_notes_image(todo) link = link_to(image_tag( 'blank.png', :width=>'16', :height=>'16', :border=>'0' ), "#", {:class => 'show_notes', :title => 'Show notes'}) notes = content_tag(:div, {:class => "todo_notes", :id => dom_id(todo, 'notes'), :style => "display:none"}) { format_note(todo.notes) } diff --git a/app/views/todos/create.js.erb b/app/views/todos/create.js.erb index c7e77133..7c33f6f5 100644 --- a/app/views/todos/create.js.erb +++ b/app/views/todos/create.js.erb @@ -37,7 +37,7 @@ function insert_new_context_with_new_todo() { function add_todo_to_existing_context() { <% if source_view_is_one_of(:todo, :deferred, :tag) -%> - <% unless source_view_is_one_of(:todo, :tag) && @todo.deferred? -%> + <% unless source_view_is_one_of(:todo, :tag) && (@todo.deferred?||@todo.hidden?) -%> $('#c<%= @todo.context_id %>').fadeIn(500, function() {}); $('#no_todos_in_view').slideUp(100); <%= "$('#tickler-empty-nd').slideUp(100);" if source_view_is(:deferred) && @todo.deferred? %> diff --git a/features/step_definitions/container_steps.rb b/features/step_definitions/container_steps.rb index e63fafb5..2c1dae20 100644 --- a/features/step_definitions/container_steps.rb +++ b/features/step_definitions/container_steps.rb @@ -121,6 +121,17 @@ Then /^I should not see "([^"]*)" in the deferred container$/ do |todo_descripti end end +Then /^I should see "([^"]*)" in the hidden container$/ do |todo_description| + todo = @current_user.todos.find_by_description(todo_description) + todo.should_not be_nil + + xpath = "//div[@id='hidden']//div[@id='line_todo_#{todo.id}']" + + wait_for :timeout => 5 do + selenium.is_element_present(xpath) + end +end + Then /^I should see "([^"]*)" in the due next month container$/ do |todo_description| todo = @current_user.todos.find_by_description(todo_description) todo.should_not be_nil diff --git a/features/step_definitions/todo_create_steps.rb b/features/step_definitions/todo_create_steps.rb index edf02ec3..083c5be5 100644 --- a/features/step_definitions/todo_create_steps.rb +++ b/features/step_definitions/todo_create_steps.rb @@ -1,3 +1,200 @@ +Given /^I have no todos$/ do + Todo.delete_all +end + +Given /^I have a todo "([^"]*)" in the context "([^"]*)"$/ do |description, context_name| + context = @current_user.contexts.find_or_create(:name => context_name) + @todo = @current_user.todos.create!(:context_id => context.id, :description => description) +end + +Given /^I have a todo "([^"]*)" in context "([^"]*)" with tags "([^"]*)"$/ do |description, context_name, tag_names| + Given "I have a todo \"#{description}\" in the context \"#{context_name}\"" + @todo.tag_with(tag_names) + @todo.save! +end + +Given /^I have a todo "([^"]*)" in the context "([^"]*)" which is due tomorrow$/ do |description, context_name| + context = @current_user.contexts.find_or_create(:name => context_name) + @todo = @current_user.todos.create!(:context_id => context.id, :description => description) + @todo.due = @todo.created_at + 1.day + @todo.save! +end + +Given /^I have (\d+) todos in project "([^"]*)" in context "([^"]*)" with tags "([^"]*)"$/ do |number_of_todos, project_name, context_name, tag_names| + @context = @current_user.contexts.find_by_name(context_name) + @context.should_not be_nil + + @project = @current_user.projects.find_by_name(project_name) + @project.should_not be_nil + + @todos = [] + number_of_todos.to_i.downto 1 do |i| + todo = @current_user.todos.create!(:context_id => @context.id, :description => "todo #{i}", :project_id => @project.id) + todo.tag_with(tag_names) + todo.save! + @todos << todo + end +end + +Given /^I have a todo "([^"]*)"$/ do |description| + Given "I have a todo \"#{description}\" in the context \"Context A\"" +end + +Given /^I have a todo "([^"]*)" with notes "([^"]*)"$/ do |description, notes| + Given "I have a todo \"#{description}\" in the context \"Context A\"" + @todo.notes = notes + @todo.save! +end + +Given /^I have ([0-9]+) todos$/ do |count| + count.to_i.downto 1 do |i| + Given "I have a todo \"todo #{i}\" in the context \"Context A\"" + end +end + +Given /^I have a todo with description "([^"]*)" in project "([^"]*)" with tags "([^"]*)" in the context "([^"]*)"$/ do |action_description, project_name, tags, context_name| + context = @current_user.contexts.find_or_create(:name => context_name) + project = @current_user.projects.find_or_create(:name => project_name) + @todo = @current_user.todos.create!(:context_id => context.id, :project_id => project.id, :description => action_description) + @todo.tag_with(tags) + @todo.save +end + +Given /^I have a todo with description "([^"]*)" in project "([^"]*)" with tags "([^"]*)" in the context "([^"]*)" that is due next week$/ do |action_description, project_name, tags, context_name| + Given "I have a todo with description \"#{action_description}\" in project \"#{project_name}\" with tags \"#{tags}\" in the context \"#{context_name}\"" + @todo.due = @current_user.time + 1.week + @todo.save! +end + +###### DEFERRED TODOS ####### + +Given /^I have ([0-9]+) deferred todos$/ do |count| + context = @current_user.contexts.create!(:name => "context B") + count.to_i.downto 1 do |i| + todo = @current_user.todos.create!(:context_id => context.id, :description => "todo #{i}") + todo.show_from = @current_user.time + 1.week + todo.save! + end +end + +Given /^I have a deferred todo "([^"]*)" in the context "([^"]*)"$/ do |description, context_name| + context = @current_user.contexts.find_or_create(:name => context_name) + todo = @current_user.todos.create!(:context_id => context.id, :description => description) + todo.show_from = @current_user.time + 1.week + todo.save! +end + +Given /^I have a deferred todo "([^"]*)"$/ do |description| + Given "I have a deferred todo \"#{description}\" in the context \"context B\"" +end + +Given /^I have a deferred todo "([^"]*)" in context "([^"]*)" with tags "([^"]*)"$/ do |action_description, context_name, tag_list| + Given "I have a todo \"#{action_description}\" in context \"#{context_name}\" with tags \"#{tag_list}\"" + @todo.show_from = @current_user.time + 1.week + @todo.save! +end + +####### COMPLETED TODOS ####### + +Given /^I have ([0-9]+) completed todos in project "([^"]*)" in context "([^"]*)"$/ do |count, project_name, context_name| + @context = @current_user.contexts.find_by_name(context_name) + @context.should_not be_nil + + @project = @current_user.projects.find_by_name(project_name) + @project.should_not be_nil + + @todos = [] + count.to_i.downto 1 do |i| + @todo = @current_user.todos.create!(:context_id => @context.id, :description => "todo #{i}", :project_id => @project.id) + @todo.complete! + @todos << @todo + end +end + +Given /^I have a completed todo "([^"]*)" in project "([^"]*)" in context "([^"]*)"$/ do |action_description, project_name, context_name| + Given "I have 1 completed todos in project \"#{project_name}\" in context \"#{context_name}\"" + @todos[0].description = action_description + @todos[0].save! +end + +Given /^I have (\d+) completed todos in project "([^"]*)" in context "([^"]*)" with tags "([^"]*)"$/ do |count, project_name, context_name, tags| + Given "I have #{count} completed todos in project \"#{project_name}\" in context \"#{context_name}\"" + @todos.each { |t| t.tag_with(tags); t.save! } +end + +Given /^I have ([0-9]+) completed todos in context "([^"]*)"$/ do |count, context_name| + context = @current_user.contexts.find_by_name(context_name) + context.should_not be_nil + + count.to_i.downto 1 do |i| + todo = @current_user.todos.create!(:context_id => context.id, :description => "todo #{i}") + todo.complete! + end +end + +Given /^I have ([0-9]+) completed todos$/ do |count| + Given "I have a context called \"context D\"" + Given "I have #{count} completed todos in context \"context D\"" +end + +Given /^I have ([0-9]+) completed todos with a note$/ do |count| + Given "I have #{count} completed todos" + @todos.each { |t| t.notes = "note #{t.id}"; t.save!} +end + +Given /^I have ([0-9]+) completed todos with a note in project "([^"]*)" in context "([^"]*)" with tags "([^"]*)"$/ do |count, project_name, context_name, tags| + Given "I have #{count} completed todos in project \"#{project_name}\" in context \"#{context_name}\" with tags \"#{tags}\"" + @todos.each { |t| t.notes = "note #{t.id}"; t.save! } +end + +Given /^I have a completed todo with description "([^"]*)" in project "([^"]*)" with tags "([^"]*)" in the context "([^"]*)"$/ do |action_description, project_name, tags, context_name| + Given "I have a todo with description \"#{action_description}\" in project \"#{project_name}\" with tags \"#{tags}\" in the context \"#{context_name}\"" + @todo.complete! +end + +####### PROJECT WITH TODOS ###### + +Given /^I have a project "([^"]*)" that has the following todos$/ do |project_name, todos| + Given "I have a project called \"#{project_name}\"" + @project.should_not be_nil + todos.hashes.each do |todo| + context = @current_user.contexts.find_by_name(todo[:context]) + context.should_not be_nil + new_todo = @current_user.todos.create!( + :description => todo[:description], + :context_id => context.id, + :project_id=>@project.id) + unless todo[:tags].nil? + new_todo.tag_with(todo[:tags]) + end + unless todo[:completed].nil? + new_todo.complete! if todo[:completed] == 'yes' + end + end +end + +Given /^I have a project "([^"]*)" that has the following deferred todos$/ do |project_name, todos| + Given "I have a project called \"#{project_name}\"" + @project.should_not be_nil + todos.hashes.each do |todo| + context = @current_user.contexts.find_by_name(todo[:context]) + context.should_not be_nil + new_todo = @current_user.todos.create!( + :description => todo[:description], + :context_id => context.id, + :project_id=>@project.id, + :show_from=>Time.zone.now+1.week) + unless todo[:tags].nil? + new_todo.tag_with(todo[:tags]) + end + unless todo[:completed].nil? + new_todo.complete! if todo[:completed] == 'yes' + end + end +end + +####### submitting using sidebar form ####### + When /^I submit a new action with description "([^"]*)"$/ do |description| fill_in "todo[description]", :with => description submit_next_action_form @@ -37,6 +234,41 @@ When /^I submit a new action with description "([^"]*)" and the tags "([^"]*)" i submit_next_action_form end +When /^I submit a new action with description "([^"]*)" to project "([^"]*)" with tags "([^"]*)" in the context "([^"]*)"$/ do |description, project_name, tags, context_name| + fill_in "todo[description]", :with => description + + clear_project_name_from_next_action_form + clear_context_name_from_next_action_form + + fill_in "todo_project_name", :with => project_name + fill_in "todo_context_name", :with => context_name + fill_in "todo_tag_list", :with => tags + + submit_next_action_form +end + +When /^I submit a new action with description "([^"]*)" to project "([^"]*)" in the context "([^"]*)"$/ do |description, project_name, context_name| + When "I submit a new action with description \"#{description}\" to project \"#{project_name}\" with tags \"\" in the context \"#{context_name}\"" +end + + +When /^I submit a new action with description "([^"]*)" in the context "([^"]*)"$/ do |description, context_name| + fill_in "todo[description]", :with => description + + clear_context_name_from_next_action_form + fill_in "todo_context_name", :with => context_name + + submit_next_action_form +end + +####### submitting using sidebar form: DEFERRED ####### + +When /^I submit a new deferred action with description "([^"]*)"$/ do |description| + fill_in "todo[description]", :with => description + fill_in "todo[show_from]", :with => format_date(@current_user.time + 1.week) + submit_next_action_form +end + When /^I submit a new deferred action with description "([^"]*)" and the tags "([^"]*)" in the context "([^"]*)"$/ do |description, tags, context_name| fill_in "todo[description]", :with => description @@ -66,38 +298,7 @@ When /^I submit a deferred new action with description "([^"]*)" to project "([^ When "I submit a new deferred action with description \"#{description}\" to project \"#{project_name}\" with tags \"\" in the context \"#{context_name}\"" end -When /^I submit a new deferred action with description "([^"]*)"$/ do |description| - fill_in "todo[description]", :with => description - fill_in "todo[show_from]", :with => format_date(@current_user.time + 1.week) - submit_next_action_form -end - -When /^I submit a new action with description "([^"]*)" to project "([^"]*)" with tags "([^"]*)" in the context "([^"]*)"$/ do |description, project_name, tags, context_name| - fill_in "todo[description]", :with => description - - clear_project_name_from_next_action_form - clear_context_name_from_next_action_form - - fill_in "todo_project_name", :with => project_name - fill_in "todo_context_name", :with => context_name - fill_in "todo_tag_list", :with => tags - - submit_next_action_form -end - -When /^I submit a new action with description "([^"]*)" to project "([^"]*)" in the context "([^"]*)"$/ do |description, project_name, context_name| - When "I submit a new action with description \"#{description}\" to project \"#{project_name}\" with tags \"\" in the context \"#{context_name}\"" -end - - -When /^I submit a new action with description "([^"]*)" in the context "([^"]*)"$/ do |description, context_name| - fill_in "todo[description]", :with => description - - clear_context_name_from_next_action_form - fill_in "todo_context_name", :with => context_name - - submit_next_action_form -end +####### submitting using sidebar form: MULTIPLE ACTIONS ####### When /^I submit multiple actions with using$/ do |multiple_actions| fill_in "todo[multiple_todos]", :with => multiple_actions diff --git a/features/step_definitions/todo_edit_steps.rb b/features/step_definitions/todo_edit_steps.rb index 30ae79b0..3a95e8b5 100644 --- a/features/step_definitions/todo_edit_steps.rb +++ b/features/step_definitions/todo_edit_steps.rb @@ -1,3 +1,86 @@ +####### MARK (UN)COMPLETE ####### + +When /^I mark "([^"]*)" as complete$/ do |action_description| + todo = @current_user.todos.find_by_description(action_description) + todo.should_not be_nil + + check "mark_complete_#{todo.id}" + + todo_container = "fail" # fail this test if @source_view is wrong + todo_container = "p#{todo.project_id}items" if @source_view=="project" + todo_container = "c#{todo.context_id}items" if @source_view=="context" || @source_view=="todos" || @source_view=="tag" + + # container should be there + selenium.is_element_present("//div[@id='#{todo_container}']").should be_true + + wait_for :timeout => 5 do + !selenium.is_element_present("//div[@id='#{todo_container}']//div[@id='line_todo_#{todo.id}']") + end +end + +When /^I mark "([^"]*)" as uncompleted$/ do |action_description| + todo = @current_user.todos.find_by_description(action_description) + todo.should_not be_nil + + check "mark_complete_#{todo.id}" + + todo_container = "fail" # fail this test if @source_view is wrong + todo_container = "p#{todo.project_id}items" if @source_view=="project" + todo_container = "c#{todo.context_id}items" if @source_view=="context" || @source_view=="todos" || @source_view=="tag" + + todo_container.should_not == "fail" unless @source_view=="done" + + unless @source_view=="done" + wait_for :timeout => 5 do + selenium.is_element_present("//div[@id='#{todo_container}']//div[@id='line_todo_#{todo.id}']") + end + else + wait_for_ajax + end +end + +When /^I mark the complete todo "([^"]*)" active$/ do |action_description| + When "I mark \"#{action_description}\" as uncompleted" +end + +####### (UN)STARRING ####### + +When /^I star the action "([^"]*)"$/ do |action_description| + todo = @current_user.todos.find_by_description(action_description) + todo.should_not be_nil + + xpath_unstarred = "//div[@id='line_todo_#{todo.id}']//img[@class='todo_star']" + xpath_starred = "//div[@id='line_todo_#{todo.id}']//img[@class='todo_star starred']" + + selenium.is_element_present(xpath_unstarred).should be_true + + star_img = "//img[@id='star_img_#{todo.id}']" + selenium.click(star_img, :wait_for => :ajax, :javascript_framework => :jquery) + + wait_for :timeout => 5 do + selenium.is_element_present(xpath_starred) + end +end + +When /^I unstar the action "([^"]*)"$/ do |action_description| + todo = @current_user.todos.find_by_description(action_description) + todo.should_not be_nil + + xpath_unstarred = "//div[@id='line_todo_#{todo.id}']//img[@class='todo_star']" + xpath_starred = "//div[@id='line_todo_#{todo.id}']//img[@class='todo_star starred']" + + selenium.is_element_present(xpath_starred).should be_true + + star_img = "//img[@id='star_img_#{todo.id}']" + selenium.click(star_img, :wait_for => :ajax, :javascript_framework => :jquery) + + wait_for :timeout => 5 do + selenium.is_element_present(xpath_unstarred) + end +end + +####### Editing a todo using Edit Form ####### + When /I change the (.*) field of "([^\"]*)" to "([^\"]*)"$/ do |field_name, todo_name, new_value| todo = @current_user.todos.find_by_description(todo_name) todo.should_not be_nil @@ -32,19 +115,29 @@ When /^I try to edit the description of "([^"]*)" to "([^"]*)"$/ do |action_desc # do not wait for form to disappear to be able to test failures end -When /^I edit the due date of "([^"]*)" to tomorrow$/ do |action_description| +When /^I edit the due date of "([^"]*)" to "([^"]*)"$/ do |action_description, date| todo = @current_user.todos.find_by_description(action_description) todo.should_not be_nil open_edit_form_for(todo) - fill_in "due_todo_#{todo.id}", :with => format_date(todo.created_at + 1.day) + fill_in "due_todo_#{todo.id}", :with => date submit_edit_todo_form(todo) end +When /^I edit the due date of "([^"]*)" to tomorrow$/ do |action_description| + date = format_date(todo.created_at + 1.day) + When "I edit the due date of \"#{action_description}\" to \"#{date}\"" +end + When /^I edit the due date of "([^"]*)" to next month$/ do |action_description| + date = format_date(todo.created_at + 1.month) + When "I edit the due date of \"#{action_description}\" to \"#{date}\"" +end + +When /^I clear the due date of "([^"]*)"$/ do |action_description| todo = @current_user.todos.find_by_description(action_description) todo.should_not be_nil open_edit_form_for(todo) - fill_in "due_todo_#{todo.id}", :with => format_date(todo.created_at + 1.month) + selenium.click("//div[@id='edit_todo_#{todo.id}']//a[@id='due_x_todo_#{todo.id}']/img", :wait_for => :ajax, :javascript_framework => :jquery) submit_edit_todo_form(todo) end @@ -56,14 +149,6 @@ When /^I edit the show from date of "([^"]*)" to next month$/ do |action_descri submit_edit_todo_form(todo) end -When /^I clear the due date of "([^"]*)"$/ do |action_description| - todo = @current_user.todos.find_by_description(action_description) - todo.should_not be_nil - open_edit_form_for(todo) - selenium.click("//div[@id='edit_todo_#{todo.id}']//a[@id='due_x_todo_#{todo.id}']/img", :wait_for => :ajax, :javascript_framework => :jquery) - submit_edit_todo_form(todo) -end - When /^I remove the show from date from "([^"]*)"$/ do |action_description| todo = @current_user.todos.find_by_description(action_description) todo.should_not be_nil @@ -74,15 +159,6 @@ When /^I remove the show from date from "([^"]*)"$/ do |action_description| submit_edit_todo_form(todo) end -When /^I edit the tags of "([^"]*)" to "([^"]*)"$/ do |action_description, tags| - todo = @current_user.todos.find_by_description(action_description) - todo.should_not be_nil - - open_edit_form_for(todo) - fill_in "tag_list", :with => tags - submit_edit_todo_form(todo) -end - When /^I defer "([^"]*)" for 1 day$/ do |action_description| todo = @current_user.todos.find_by_description(action_description) todo.should_not be_nil @@ -93,6 +169,15 @@ When /^I defer "([^"]*)" for 1 day$/ do |action_description| wait_for_ajax end +When /^I edit the tags of "([^"]*)" to "([^"]*)"$/ do |action_description, tags| + todo = @current_user.todos.find_by_description(action_description) + todo.should_not be_nil + + open_edit_form_for(todo) + fill_in "tag_list", :with => tags + submit_edit_todo_form(todo) +end + When /^I make a project of "([^"]*)"$/ do |action_description| todo = @current_user.todos.find_by_description(action_description) todo.should_not be_nil @@ -105,9 +190,11 @@ When /^I make a project of "([^"]*)"$/ do |action_description| end end +####### THEN ####### + Then /^I should see an error message$/ do error_block = "xpath=//form/div[@id='edit_error_status']" wait_for :timeout => 5 do selenium.is_element_present(error_block) end -end +end \ No newline at end of file diff --git a/features/step_definitions/todo_steps.rb b/features/step_definitions/todo_steps.rb index 650d60d5..32783ac9 100644 --- a/features/step_definitions/todo_steps.rb +++ b/features/step_definitions/todo_steps.rb @@ -1,295 +1,4 @@ -Given /^I have no todos$/ do - Todo.delete_all -end - -Given /^I have a todo "([^"]*)" in the context "([^"]*)"$/ do |description, context_name| - context = @current_user.contexts.find_or_create(:name => context_name) - @todo = @current_user.todos.create!(:context_id => context.id, :description => description) -end - -Given /^I have a todo "([^"]*)" in context "([^"]*)" with tags "([^"]*)"$/ do |description, context_name, tag_names| - Given "I have a todo \"#{description}\" in the context \"#{context_name}\"" - @todo.tag_with(tag_names) - @todo.save! -end - -Given /^I have a todo "([^"]*)" in the context "([^"]*)" which is due tomorrow$/ do |description, context_name| - context = @current_user.contexts.find_or_create(:name => context_name) - @todo = @current_user.todos.create!(:context_id => context.id, :description => description) - @todo.due = @todo.created_at + 1.day - @todo.save! -end - -Given /^I have (\d+) todos in project "([^"]*)" in context "([^"]*)" with tags "([^"]*)"$/ do |number_of_todos, project_name, context_name, tag_names| - @context = @current_user.contexts.find_by_name(context_name) - @context.should_not be_nil - - @project = @current_user.projects.find_by_name(project_name) - @project.should_not be_nil - - @todos = [] - number_of_todos.to_i.downto 1 do |i| - todo = @current_user.todos.create!(:context_id => @context.id, :description => "todo #{i}", :project_id => @project.id) - todo.tag_with(tag_names) - todo.save! - @todos << todo - end -end - -Given /^I have a todo "([^"]*)"$/ do |description| - Given "I have a todo \"#{description}\" in the context \"Context A\"" -end - -Given /^I have a todo "([^"]*)" with notes "([^"]*)"$/ do |description, notes| - Given "I have a todo \"#{description}\" in the context \"Context A\"" - @todo.notes = notes - @todo.save! -end - -Given /^I have ([0-9]+) todos$/ do |count| - count.to_i.downto 1 do |i| - Given "I have a todo \"todo #{i}\" in the context \"Context A\"" - end -end - -Given /^I have a todo with description "([^"]*)" in project "([^"]*)" with tags "([^"]*)" in the context "([^"]*)"$/ do |action_description, project_name, tags, context_name| - context = @current_user.contexts.find_or_create(:name => context_name) - project = @current_user.projects.find_or_create(:name => project_name) - @todo = @current_user.todos.create!(:context_id => context.id, :project_id => project.id, :description => action_description) - @todo.tag_with(tags) - @todo.save -end - -Given /^I have a todo with description "([^"]*)" in project "([^"]*)" with tags "([^"]*)" in the context "([^"]*)" that is due next week$/ do |action_description, project_name, tags, context_name| - Given "I have a todo with description \"#{action_description}\" in project \"#{project_name}\" with tags \"#{tags}\" in the context \"#{context_name}\"" - @todo.due = @current_user.time + 1.week - @todo.save! -end - -###### DEFERRED TODOS ####### - -Given /^I have ([0-9]+) deferred todos$/ do |count| - context = @current_user.contexts.create!(:name => "context B") - count.to_i.downto 1 do |i| - todo = @current_user.todos.create!(:context_id => context.id, :description => "todo #{i}") - todo.show_from = @current_user.time + 1.week - todo.save! - end -end - -Given /^I have a deferred todo "([^"]*)" in the context "([^"]*)"$/ do |description, context_name| - context = @current_user.contexts.find_or_create(:name => context_name) - todo = @current_user.todos.create!(:context_id => context.id, :description => description) - todo.show_from = @current_user.time + 1.week - todo.save! -end - -Given /^I have a deferred todo "([^"]*)"$/ do |description| - Given "I have a deferred todo \"#{description}\" in the context \"context B\"" -end - -Given /^I have a deferred todo "([^"]*)" in context "([^"]*)" with tags "([^"]*)"$/ do |action_description, context_name, tag_list| - Given "I have a todo \"#{action_description}\" in context \"#{context_name}\" with tags \"#{tag_list}\"" - @todo.show_from = @current_user.time + 1.week - @todo.save! -end - -####### COMPLETED TODOS ####### - -Given /^I have ([0-9]+) completed todos in project "([^"]*)" in context "([^"]*)"$/ do |count, project_name, context_name| - @context = @current_user.contexts.find_by_name(context_name) - @context.should_not be_nil - - @project = @current_user.projects.find_by_name(project_name) - @project.should_not be_nil - - @todos = [] - count.to_i.downto 1 do |i| - @todo = @current_user.todos.create!(:context_id => @context.id, :description => "todo #{i}", :project_id => @project.id) - @todo.complete! - @todos << @todo - end -end - -Given /^I have a completed todo "([^"]*)" in project "([^"]*)" in context "([^"]*)"$/ do |action_description, project_name, context_name| - Given "I have 1 completed todos in project \"#{project_name}\" in context \"#{context_name}\"" - @todos[0].description = action_description - @todos[0].save! -end - -Given /^I have (\d+) completed todos in project "([^"]*)" in context "([^"]*)" with tags "([^"]*)"$/ do |count, project_name, context_name, tags| - Given "I have #{count} completed todos in project \"#{project_name}\" in context \"#{context_name}\"" - @todos.each { |t| t.tag_with(tags); t.save! } -end - -Given /^I have ([0-9]+) completed todos in context "([^"]*)"$/ do |count, context_name| - context = @current_user.contexts.find_by_name(context_name) - context.should_not be_nil - - count.to_i.downto 1 do |i| - todo = @current_user.todos.create!(:context_id => context.id, :description => "todo #{i}") - todo.complete! - end -end - -Given /^I have ([0-9]+) completed todos$/ do |count| - Given "I have a context called \"context D\"" - Given "I have #{count} completed todos in context \"context D\"" -end - -Given /^I have ([0-9]+) completed todos with a note$/ do |count| - Given "I have #{count} completed todos" - @todos.each { |t| t.notes = "note #{t.id}"; t.save!} -end - -Given /^I have ([0-9]+) completed todos with a note in project "([^"]*)" in context "([^"]*)" with tags "([^"]*)"$/ do |count, project_name, context_name, tags| - Given "I have #{count} completed todos in project \"#{project_name}\" in context \"#{context_name}\" with tags \"#{tags}\"" - @todos.each { |t| t.notes = "note #{t.id}"; t.save! } -end - -Given /^I have a completed todo with description "([^"]*)" in project "([^"]*)" with tags "([^"]*)" in the context "([^"]*)"$/ do |action_description, project_name, tags, context_name| - Given "I have a todo with description \"#{action_description}\" in project \"#{project_name}\" with tags \"#{tags}\" in the context \"#{context_name}\"" - @todo.complete! -end - -####### PROJECT WITH TODOS ###### - -Given /^I have a project "([^"]*)" that has the following todos$/ do |project_name, todos| - Given "I have a project called \"#{project_name}\"" - @project.should_not be_nil - todos.hashes.each do |todo| - context = @current_user.contexts.find_by_name(todo[:context]) - context.should_not be_nil - new_todo = @current_user.todos.create!( - :description => todo[:description], - :context_id => context.id, - :project_id=>@project.id) - unless todo[:tags].nil? - new_todo.tag_with(todo[:tags]) - end - unless todo[:completed].nil? - new_todo.complete! if todo[:completed] == 'yes' - end - end -end - -Given /^I have a project "([^"]*)" that has the following deferred todos$/ do |project_name, todos| - Given "I have a project called \"#{project_name}\"" - @project.should_not be_nil - todos.hashes.each do |todo| - context = @current_user.contexts.find_by_name(todo[:context]) - context.should_not be_nil - new_todo = @current_user.todos.create!( - :description => todo[:description], - :context_id => context.id, - :project_id=>@project.id, - :show_from=>Time.zone.now+1.week) - unless todo[:tags].nil? - new_todo.tag_with(todo[:tags]) - end - unless todo[:completed].nil? - new_todo.complete! if todo[:completed] == 'yes' - end - end -end - -When /^I mark "([^"]*)" as complete$/ do |action_description| - todo = @current_user.todos.find_by_description(action_description) - todo.should_not be_nil - - check "mark_complete_#{todo.id}" - - todo_container = "fail" # fail this test if @source_view is wrong - todo_container = "p#{todo.project_id}items" if @source_view=="project" - todo_container = "c#{todo.context_id}items" if @source_view=="context" || @source_view=="todos" || @source_view=="tag" - - # container should be there - selenium.is_element_present("//div[@id='#{todo_container}']").should be_true - - wait_for :timeout => 5 do - !selenium.is_element_present("//div[@id='#{todo_container}']//div[@id='line_todo_#{todo.id}']") - end -end - -When /^I mark "([^"]*)" as uncompleted$/ do |action_description| - todo = @current_user.todos.find_by_description(action_description) - todo.should_not be_nil - - check "mark_complete_#{todo.id}" - - todo_container = "fail" # fail this test if @source_view is wrong - todo_container = "p#{todo.project_id}items" if @source_view=="project" - todo_container = "c#{todo.context_id}items" if @source_view=="context" || @source_view=="todos" || @source_view=="tag" - - todo_container.should_not == "fail" unless @source_view=="done" - - unless @source_view=="done" - wait_for :timeout => 5 do - selenium.is_element_present("//div[@id='#{todo_container}']//div[@id='line_todo_#{todo.id}']") - end - else - wait_for_ajax - end -end - -When /^I mark the complete todo "([^"]*)" active$/ do |action_description| - When "I mark \"#{action_description}\" as uncompleted" -end - -When /^I star the action "([^"]*)"$/ do |action_description| - todo = @current_user.todos.find_by_description(action_description) - todo.should_not be_nil - - xpath_unstarred = "//div[@id='line_todo_#{todo.id}']//img[@class='todo_star']" - xpath_starred = "//div[@id='line_todo_#{todo.id}']//img[@class='todo_star starred']" - - selenium.is_element_present(xpath_unstarred).should be_true - - star_img = "//img[@id='star_img_#{todo.id}']" - selenium.click(star_img, :wait_for => :ajax, :javascript_framework => :jquery) - - wait_for :timeout => 5 do - selenium.is_element_present(xpath_starred) - end -end - -When /^I unstar the action "([^"]*)"$/ do |action_description| - todo = @current_user.todos.find_by_description(action_description) - todo.should_not be_nil - - xpath_unstarred = "//div[@id='line_todo_#{todo.id}']//img[@class='todo_star']" - xpath_starred = "//div[@id='line_todo_#{todo.id}']//img[@class='todo_star starred']" - - selenium.is_element_present(xpath_starred).should be_true - - star_img = "//img[@id='star_img_#{todo.id}']" - selenium.click(star_img, :wait_for => :ajax, :javascript_framework => :jquery) - - wait_for :timeout => 5 do - selenium.is_element_present(xpath_unstarred) - end -end - - -Then /^I should see a starred "([^"]*)"$/ do |action_description| - todo = @current_user.todos.find_by_description(action_description) - todo.should_not be_nil - - xpath_starred = "//div[@id='line_todo_#{todo.id}']//img[@class='todo_star starred']" - - selenium.is_element_present(xpath_starred).should be_true -end - -Then /^I should see an unstarred "([^"]*)"$/ do |action_description| - todo = @current_user.todos.find_by_description(action_description) - todo.should_not be_nil - - xpath_starred = "//div[@id='line_todo_#{todo.id}']//img[@class='todo_star']" - - wait_for :timeout => 5 do - selenium.is_element_present(xpath_starred) - end -end +####### DELETE ####### When /^I delete the action "([^"]*)"$/ do |action_description| todo = @current_user.todos.find_by_description(action_description) @@ -308,6 +17,8 @@ When /^I delete the todo "([^"]*)"$/ do |action_description| When "I delete the action \"#{action_description}\"" end +####### Notes ####### + When /^I open the notes of "([^"]*)"$/ do |action_description| todo = @current_user.todos.find_by_description(action_description) todo.should_not be_nil @@ -320,6 +31,28 @@ When /^I open the notes of "([^"]*)"$/ do |action_description| end end +####### THEN ####### + +Then /^I should see a starred "([^"]*)"$/ do |action_description| + todo = @current_user.todos.find_by_description(action_description) + todo.should_not be_nil + + xpath_starred = "//div[@id='line_todo_#{todo.id}']//img[@class='todo_star starred']" + + selenium.is_element_present(xpath_starred).should be_true +end + +Then /^I should see an unstarred "([^"]*)"$/ do |action_description| + todo = @current_user.todos.find_by_description(action_description) + todo.should_not be_nil + + xpath_starred = "//div[@id='line_todo_#{todo.id}']//img[@class='todo_star']" + + wait_for :timeout => 5 do + selenium.is_element_present(xpath_starred) + end +end + Then /^I should see ([0-9]+) todos$/ do |count| count.to_i.downto 1 do |i| match_xpath "div[" diff --git a/features/tagging_todos.feature b/features/tagging_todos.feature index d958f6cd..5fae6165 100644 --- a/features/tagging_todos.feature +++ b/features/tagging_todos.feature @@ -8,18 +8,45 @@ Feature: Tagging todos | login | password | is_admin | | testuser | secret | false | And I have logged in as "testuser" with password "secret" + And I have a context called "@pc" + And I have a project called "hacking tracks" - Scenario: I can remove a tag from a todo from the tag view and the tag will be removed - Given this is a pending scenario + @selenium + Scenario: I can remove a tag from a todo from the tag view and the todo will be removed + Given I have a todo "fix tests" in context "@pc" with tags "now" + When I go to the tag page for "now" + Then I should see "fix tests" + When I edit the tags of "fix tests" to "later" + Then I should not see "fix tests" + @selenium Scenario: I can add a new todo from tag view with that tag and it will be added to the page - Given this is a pending scenario + When I go to the tag page for "tracks" + And I submit a new action with description "prepare release" and the tags "tracks, release" in the context "@pc" + Then I should see "prepare release" in the context container for "@pc" + @selenium Scenario: I can add a new todo from tag view with a different tag and it will not be added to the page - Given this is a pending scenario + When I go to the tag page for "tracks" + And I submit a new action with description "prepare release" with tags "release, next" in the context "@pc" + Then I should not see "prepare release" + @selenium Scenario: I can move a tagged todo in tag view to a hidden project and it will move the todo on the page to the hidden container - Given this is a pending scenario + Given I have a hidden project called "secret" + When I go to the tag page for "tracks" + And I submit a new action with description "prepare release" to project "hacking tracks" with tags "release, tracks" in the context "@pc" + Then I should see "prepare release" in the context container for "@pc" + When I edit the project of "prepare release" to "secret" + Then I should not see "prepare release" in the context container for "@pc" + And I should see "prepare release" in the hidden container + @selenium @wip Scenario: I can move a tagged todo in tag view to a hidden context and it will move the todo on the page to the hidden container - Given this is a pending scenario + Given I have a hidden context called "@secret" + When I go to the tag page for "tracks" + And I submit a new action with description "prepare release" and the tags "release, tracks" in the context "@pc" + Then I should see "prepare release" in the context container for "@pc" + When I edit the context of "prepare release" to "@secret" + Then I should not see "prepare release" in the context container for "@pc" + Then I should see "prepare release" in the hidden container \ No newline at end of file From c6c51ee83cf98ecf5673883a09e750de93b39a0e Mon Sep 17 00:00:00 2001 From: Reinier Balt Date: Tue, 16 Aug 2011 11:49:04 +0200 Subject: [PATCH 078/197] fix failing specs --- features/tagging_todos.feature | 2 +- spec/models/context_spec.rb | 9 +--- spec/models/todo_spec.rb | 49 ++------------------- spec/models/user_spec.rb | 26 +---------- test/functional/todos_controller_test.rb | 10 ++--- test/unit/todo_create_params_helper_test.rb | 30 ++++++------- 6 files changed, 28 insertions(+), 98 deletions(-) diff --git a/features/tagging_todos.feature b/features/tagging_todos.feature index 5fae6165..280d3704 100644 --- a/features/tagging_todos.feature +++ b/features/tagging_todos.feature @@ -41,7 +41,7 @@ Feature: Tagging todos Then I should not see "prepare release" in the context container for "@pc" And I should see "prepare release" in the hidden container - @selenium @wip + @selenium Scenario: I can move a tagged todo in tag view to a hidden context and it will move the todo on the page to the hidden container Given I have a hidden context called "@secret" When I go to the tag page for "tracks" diff --git a/spec/models/context_spec.rb b/spec/models/context_spec.rb index 320c889b..d1cf608b 100644 --- a/spec/models/context_spec.rb +++ b/spec/models/context_spec.rb @@ -1,10 +1,10 @@ require File.expand_path(File.dirname(__FILE__) + '/../spec_helper') - + describe Context do def valid_attributes {:name => 'Errands'} end - + before(:each) do @context = Context.new end @@ -30,11 +30,6 @@ describe Context do Context.new(:hide => true).should be_hidden end - it 'produces correct summary depending on visibility' do - Context.new(:hide => true).summary(3).should == '

    3. Context is Hidden.

    ' - Context.new(:hide => false).summary(3).should == '

    3. Context is Active.

    ' - end - it 'returns name as title' do Context.new(:name => 'foo').title.should == 'foo' end diff --git a/spec/models/todo_spec.rb b/spec/models/todo_spec.rb index 5818defb..b31ab7a2 100644 --- a/spec/models/todo_spec.rb +++ b/spec/models/todo_spec.rb @@ -48,7 +48,9 @@ describe Todo do end it 'is deferred when show from is in the future' do - create_todo(:show_from => 1.week.from_now).should be_deferred + todo = create_todo + todo.show_from = 1.week.from_now + todo.should be_deferred end describe 'active' do @@ -110,14 +112,6 @@ describe Todo do end end - it 'unhides to deferred when if show_from' do - todo = create_todo(:show_from => 4.days.from_now) - todo.hide! - todo.should be_project_hidden - todo.unhide! - todo.should be_deferred - end - it 'unhides to active when not show_from' do todo = create_todo(:show_from => '') todo.hide! @@ -126,43 +120,6 @@ describe Todo do todo.should be_active end end - - describe 'when update_state_from_project is called' do - it "should unhide when project is active" do - project = Factory.create(:project) - todo = Factory.create(:todo, :project => project, :state => 'project_hidden') - todo.hide! - todo.should be_project_hidden - todo.update_state_from_project - todo.should be_active - end - - it "should unhide when project is null" do - todo = Factory.create(:todo, :project => nil) - todo.hide! - todo.should be_project_hidden - todo.update_state_from_project - todo.should be_active - end - - it "should hide when project is hidden" do - project = Factory.create(:project) - project.hide! - todo = Factory.create(:todo, :project => project) - - todo.should be_active - todo.update_state_from_project - todo.should be_project_hidden - end - end - - it "is deferrable from `active'" do - todo = create_todo - todo.activate! - todo.should be_active - todo.defer! - todo.should be_deferred - end end describe 'when toggling completion' do diff --git a/spec/models/user_spec.rb b/spec/models/user_spec.rb index 437a4938..3fd36dfa 100644 --- a/spec/models/user_spec.rb +++ b/spec/models/user_spec.rb @@ -26,21 +26,6 @@ describe User do with_dependent(:delete_all) end - # TODO: uses fixtures to test those - it 'has many active_projects' do - User.should have_many(:active_projects). - with_order('projects.position ASC'). - with_conditions('state = ?', 'active'). - with_class_name('Project') - end - - it 'has many active contexts' do - User.should have_many(:active_contexts). - with_order('position ASC'). - with_conditions('hide = ?', false). - with_class_name('Context') - end - it 'has many todos' do User.should have_many(:todos). with_order('todos.completed_at DESC, todos.created_at DESC'). @@ -54,14 +39,6 @@ describe User do with_class_name('Todo') end - it 'has many completed todos' do - User.should have_many(:completed_todos). - with_order('todos.completed_at DESC'). - with_conditions('todos.state = ? AND NOT(todos.completed_at IS NULL)', 'completed'). - with_include(:project, :context). - with_class_name('Todo') - end - it 'has many notes' do User.should have_many(:notes). with_order('created_at DESC'). @@ -179,7 +156,8 @@ describe User do user.preference.update_attribute('time_zone', 'Pacific Time (US & Canada)') # Time.zone = 'Pacific Time (US & Canada)' Time.stub!(:now).and_return(Time.new.end_of_day - 20.minutes) - todo = user.todos.build(:description => 'test task', :context => context, :show_from => user.date + 1.days) + todo = user.todos.build(:description => 'test task', :context => context) + todo.show_from = user.date + 1.days todo.save! user.deferred_todos.find_and_activate_ready diff --git a/test/functional/todos_controller_test.rb b/test/functional/todos_controller_test.rb index 98df9dd5..47d70e37 100644 --- a/test/functional/todos_controller_test.rb +++ b/test/functional/todos_controller_test.rb @@ -32,7 +32,7 @@ class TodosControllerTest < ActionController::TestCase assert_equal 3, assigns['context_not_done_counts'][contexts(:call).id] assert_equal 1, assigns['context_not_done_counts'][contexts(:lab).id] end - + def test_cached_not_done_counts_after_hiding_project p = Project.find(1) p.hide! @@ -59,7 +59,7 @@ class TodosControllerTest < ActionController::TestCase assert_difference 'Todo.count' do put :create, :_source_view => 'todo', "context_name"=>"library", "project_name"=>"Build a working time machine", "todo"=>{ "notes"=>"", "description"=>"test tags", "due"=>"30/11/2006"}, - "tag_list"=>"1234,5667,9876" + "todo_tag_list"=>"1234,5667,9876" # default has_many_polymorphs will fail on these high numbers as tags with those id's do not exist end t = assigns['todo'] @@ -73,7 +73,7 @@ class TodosControllerTest < ActionController::TestCase assert_difference 'Todo.count' do put :create, :_source_view => 'todo', "context_name"=>"library", "project_name"=>"Build a working time machine", "todo"=>{ "notes"=>"", "description"=>"test tags", "due"=>"30/11/2006"}, - "tag_list"=>"a,,b" + "todo_tag_list"=>"a,,b" # default has_many_polymorphs will fail on the empty tag end t = assigns['todo'] @@ -138,7 +138,7 @@ class TodosControllerTest < ActionController::TestCase def test_fail_to_create_todo_via_xml login_as(:admin_user) # #try to create with no context, which is not valid - put :create, :format => "xml", "request" => { + put :create, :format => "xml", "request" => { "project_name"=>"Build a working time machine", "todo"=>{"notes"=>"", "description"=>"Call Warren Buffet to find out how much he makes per day", "due"=>"30/11/2006"}, "tag_list"=>"foo bar" } assert_response 422 @@ -550,7 +550,7 @@ class TodosControllerTest < ActionController::TestCase todo.reload() assert_equal "active", todo.state end - + def test_url_with_slash_in_query_string_are_parsed_correctly # See http://blog.swivel.com/code/2009/06/rails-auto_link-and-certain-query-strings.html login_as(:admin_user) diff --git a/test/unit/todo_create_params_helper_test.rb b/test/unit/todo_create_params_helper_test.rb index 8e992907..4aecff69 100644 --- a/test/unit/todo_create_params_helper_test.rb +++ b/test/unit/todo_create_params_helper_test.rb @@ -16,7 +16,7 @@ class TodoCreateParamsHelperTest < ActiveSupport::TestCase params_helper = TodosController::TodoCreateParamsHelper.new(params, prefs) assert_equal({'description' => 'foo'}, params_helper.attributes) end - + def test_show_from_accessor expected_date = Time.now params = { 'todo' => { 'show_from' => expected_date}} @@ -24,7 +24,7 @@ class TodoCreateParamsHelperTest < ActiveSupport::TestCase params_helper = TodosController::TodoCreateParamsHelper.new(params, prefs) assert_equal(expected_date, params_helper.show_from) end - + def test_due_accessor expected_date = Time.now params = { 'todo' => { 'due' => expected_date}} @@ -32,14 +32,14 @@ class TodoCreateParamsHelperTest < ActiveSupport::TestCase params_helper = TodosController::TodoCreateParamsHelper.new(params, prefs) assert_equal(expected_date, params_helper.due) end - + def test_tag_list_accessor - params = { 'todo' => { }, 'tag_list' => 'foo, bar'} + params = { 'todo' => { }, 'todo_tag_list' => 'foo, bar'} prefs = flexmock() params_helper = TodosController::TodoCreateParamsHelper.new(params, prefs) assert_equal('foo, bar', params_helper.tag_list) end - + def test_parse_dates_parses_show_from_date_based_on_prefs params = { 'todo' => { 'show_from' => '5/20/07', 'due' => '5/23/07'}} prefs = flexmock() @@ -69,68 +69,68 @@ class TodoCreateParamsHelperTest < ActiveSupport::TestCase params_helper.parse_dates() assert_equal '', params_helper.due end - + def test_project_name_is_stripped_of_leading_and_trailing_whitespace params = { 'project_name' => ' Visit New Orleans ' } prefs = flexmock() params_helper = TodosController::TodoCreateParamsHelper.new(params, prefs) assert_equal 'Visit New Orleans', params_helper.project_name end - + def test_project_name_is_nil_when_unspecified params = { } prefs = flexmock() params_helper = TodosController::TodoCreateParamsHelper.new(params, prefs) assert_nil params_helper.project_name end - + def test_context_name_is_stripped_of_leading_and_trailing_whitespace params = { 'context_name' => ' mobile phone ' } prefs = flexmock() params_helper = TodosController::TodoCreateParamsHelper.new(params, prefs) assert_equal 'mobile phone', params_helper.context_name end - + def test_context_name_is_nil_when_unspecified params = { } prefs = flexmock() params_helper = TodosController::TodoCreateParamsHelper.new(params, prefs) assert_nil params_helper.context_name end - + def test_project_specified_by_name_is_false_when_project_id_is_specified params = { 'todo' => { 'project_id' => 2 } } prefs = flexmock() params_helper = TodosController::TodoCreateParamsHelper.new(params, prefs) assert_equal false, params_helper.project_specified_by_name? end - + def test_project_specified_by_name_is_false_when_project_name_is_blank params = { 'project_name' => nil, 'todo' => {} } prefs = flexmock() params_helper = TodosController::TodoCreateParamsHelper.new(params, prefs) assert_equal false, params_helper.project_specified_by_name? end - + def test_project_specified_by_name_is_false_when_project_name_is_none params = { 'project_name' => 'None', 'todo' => {} } prefs = flexmock() params_helper = TodosController::TodoCreateParamsHelper.new(params, prefs) assert_equal false, params_helper.project_specified_by_name? end - + def test_context_specified_by_name_is_false_when_context_id_is_specified params = { 'todo' => { 'context_id' => 3 } } prefs = flexmock() params_helper = TodosController::TodoCreateParamsHelper.new(params, prefs) assert_equal false, params_helper.context_specified_by_name? end - + def test_context_specified_by_name_is_false_when_context_name_is_blank params = { 'context_name' => nil, 'todo' => {} } prefs = flexmock() params_helper = TodosController::TodoCreateParamsHelper.new(params, prefs) assert_equal false, params_helper.context_specified_by_name? end - + end \ No newline at end of file From 2db16406953ee7638a5659db86068aa349247317 Mon Sep 17 00:00:00 2001 From: Reinier Balt Date: Wed, 17 Aug 2011 09:06:22 +0200 Subject: [PATCH 079/197] finish pending scenarios for statistics feature and update CHANGELOG --- doc/CHANGELOG | 15 ++++++++- features/show_statistics.feature | 35 +++++++++++++------- features/step_definitions/todo_edit_steps.rb | 1 + 3 files changed, 38 insertions(+), 13 deletions(-) diff --git a/doc/CHANGELOG b/doc/CHANGELOG index b30f0707..b71ceb9c 100644 --- a/doc/CHANGELOG +++ b/doc/CHANGELOG @@ -15,13 +15,26 @@ == Version 2.1devel +NOTE: to use this version you need to migrate your database. Not migrating will +cause new actions not to appear! + This version of tracks has moved to a new place on github. Also the wiki moved -to github, see the changed URLs above +to github, see the changed URLs above. New features: 1. redesign of the completed todos: a new overview page. Also all context and project pages have a link to their completed actions 2. New locales (es and fr) and updated locales (de, nl) +3. You can star an action right from the form to add a new action + +Under the hood: +1. Upgraded rails to 2.3.12, jquery to 1.6.1 and jquery-ui to 1.8.13 +2. fixed several issues with the REST API +3. upgraded the act_as_statemachine plugin. This change requires a + migration, see note above! + +See https://github.com/tracksapp/tracks/compare/v2.0...master for all +detailled changes == Version 2.0 diff --git a/features/show_statistics.feature b/features/show_statistics.feature index 7a74aeef..228e4855 100644 --- a/features/show_statistics.feature +++ b/features/show_statistics.feature @@ -7,17 +7,16 @@ Feature: Show statistics Given the following user record | login | password | is_admin | | testuser | secret | false | + Given I have logged in as "testuser" with password "secret" Scenario: Show statistics with no history - Given I have logged in as "testuser" with password "secret" - And I have no todos + Given I have no todos When I go to the statistics page Then I should see "Totals" And I should see " More statistics will appear here once you have added some actions." Scenario: Show statistics with history - Given I have logged in as "testuser" with password "secret" - And I have 5 todos + Given I have 5 todos And I have 2 deferred todos And I have 2 completed todos When I go to the statistics page @@ -32,16 +31,14 @@ Feature: Show statistics And I should see "Tags" Scenario: Click through to see chart of all actions per month - Given I have logged in as "testuser" with password "secret" - And I have 5 todos + Given I have 5 todos When I go to the statistics page And I click on the chart for actions done in the last 12 months Then I should see a chart And I should see "to return to the statistics page" Scenario: Click through to see all incomplete actions of a week - Given I have logged in as "testuser" with password "secret" - And I have 5 todos + Given I have 5 todos And I have 2 deferred todos When I go to the statistics page And I click on the chart for running time of all incomplete actions @@ -52,8 +49,7 @@ Feature: Show statistics And I should see "to show the actions from week 0 and further" Scenario: Click through to see all incomplete visible actions of a week - Given I have logged in as "testuser" with password "secret" - And I have 5 todos + Given I have 5 todos And I have 3 deferred todos When I go to the statistics page And I click on the chart for running time of all incomplete actions @@ -63,8 +59,23 @@ Feature: Show statistics And I should see "to return to the statistics page" And I should see "to show the actions from week 0 and further" + @selenium Scenario: I can edit the todos selected from a chart - Given this is a pending scenario + Given I have 5 todos + When I go to the statistics page + And I click on the chart for running time of all incomplete actions + Then I should see 5 todos + And I should see "todo 1" + When I edit the description of "todo 1" to "foo bar" + Then I should not see the todo "todo 1" + And I should see the todo "foo bar" + @selenium @wip Scenario: Marking a todo selected from a chart as complete will remove it from the page - Given this is a pending scenario + Given I have 5 todos + When I go to the statistics page + And I click on the chart for running time of all incomplete actions + Then I should see 5 todos + And I should see "todo 1" + When I mark "todo 1" as complete + Then I should not see the todo "todo 1" \ No newline at end of file diff --git a/features/step_definitions/todo_edit_steps.rb b/features/step_definitions/todo_edit_steps.rb index 3a95e8b5..88d5cfdc 100644 --- a/features/step_definitions/todo_edit_steps.rb +++ b/features/step_definitions/todo_edit_steps.rb @@ -9,6 +9,7 @@ When /^I mark "([^"]*)" as complete$/ do |action_description| todo_container = "fail" # fail this test if @source_view is wrong todo_container = "p#{todo.project_id}items" if @source_view=="project" todo_container = "c#{todo.context_id}items" if @source_view=="context" || @source_view=="todos" || @source_view=="tag" + todo_container = "tickler_container" if @source_view=="stats" # container should be there selenium.is_element_present("//div[@id='#{todo_container}']").should be_true From fe1f67a8cf2f7c72a877c57043b8df74c946cffb Mon Sep 17 00:00:00 2001 From: Reinier Balt Date: Wed, 17 Aug 2011 09:55:36 +0200 Subject: [PATCH 080/197] upgrade vendored rails to 2.3.14 --- doc/README_DEVELOPERS | 2 ++ features/recurring_todos.feature | 21 +++++++++++++++--- .../step_definitions/recurring_todo_steps.rb | 8 +++++++ vendor/rails/actionmailer/Rakefile | 2 +- .../actionmailer/lib/action_mailer/version.rb | 2 +- vendor/rails/actionpack/CHANGELOG | 4 ++-- vendor/rails/actionpack/Rakefile | 2 +- .../lib/action_controller/response.rb | 3 ++- .../vendor/html-scanner/html/node.rb | 2 +- .../actionpack/lib/action_pack/version.rb | 2 +- .../test/controller/content_type_test.rb | 10 +++++++++ .../controller/html-scanner/sanitizer_test.rb | 7 ++++++ vendor/rails/activerecord/Rakefile | 2 +- .../connection_adapters/mysql_adapter.rb | 2 +- .../connection_adapters/sqlite_adapter.rb | 2 +- .../lib/active_record/validations.rb | 1 - .../activerecord/lib/active_record/version.rb | 2 +- .../activerecord/test/cases/base_test.rb | 17 ++++++++++++++ .../test/fixtures/fixture_database.sqlite3 | Bin 67531776 -> 0 bytes .../test/fixtures/fixture_database_2.sqlite3 | Bin 3072 -> 0 bytes vendor/rails/activeresource/Rakefile | 2 +- .../lib/active_resource/version.rb | 2 +- .../core_ext/string/output_safety.rb | 2 +- .../lib/active_support/ordered_hash.rb | 10 ++++++--- .../lib/active_support/version.rb | 2 +- vendor/rails/railties/Rakefile | 10 ++++----- vendor/rails/railties/lib/rails/version.rb | 2 +- .../railties/lib/tasks/documentation.rake | 5 +++++ 28 files changed, 97 insertions(+), 29 deletions(-) delete mode 100644 vendor/rails/activerecord/test/fixtures/fixture_database.sqlite3 delete mode 100644 vendor/rails/activerecord/test/fixtures/fixture_database_2.sqlite3 diff --git a/doc/README_DEVELOPERS b/doc/README_DEVELOPERS index 685a7efc..b0a98d3e 100644 --- a/doc/README_DEVELOPERS +++ b/doc/README_DEVELOPERS @@ -8,6 +8,8 @@ Tracks is using See README for links to the respective sites +Also see the Development pages on the wiki for details on installing, upgrading, etc. + 2. Dependencies The dependencies are maintained by Tracks. For development we try not to vendor them diff --git a/features/recurring_todos.feature b/features/recurring_todos.feature index 2792bec8..9369510e 100644 --- a/features/recurring_todos.feature +++ b/features/recurring_todos.feature @@ -62,11 +62,26 @@ Feature: Manage recurring todos Then the pattern "I'm done" should be in the state list "active" And the state list "completed" should be empty + @selenium @wip Scenario: Following the recurring todo link of a todo takes me to the recurring todos page - Given this is a pending scenario + When I go to the home page + Then I should see the todo "run tests" + When I follow the recurring todo link of "run tests" + Then I should be on the repeating todos page + @selenium @wip Scenario: Deleting a recurring todo with ending pattern will show message - Given this is a pending scenario + When I go to the repeating todos page + And I mark the pattern "run tests" as complete + And I go to the home page + Then I should see "run tests" + When I delete the action "run tests" + Then I should see "@@message@@" + @selenium @wip Scenario: Deleting a recurring todo with active pattern will show new todo - Given this is a pending scenario + When I go to the home page + Then I should see "run tests" + When I delete the action "run tests" + Then I should see "@@message@@" + And I should see "run tests" in the context container for "test context" \ No newline at end of file diff --git a/features/step_definitions/recurring_todo_steps.rb b/features/step_definitions/recurring_todo_steps.rb index 48a0a864..eb68e0c1 100644 --- a/features/step_definitions/recurring_todo_steps.rb +++ b/features/step_definitions/recurring_todo_steps.rb @@ -84,6 +84,14 @@ When /^I mark the pattern "([^"]*)" as active$/ do |pattern_name| wait_for_ajax end +When /^I follow the recurring todo link of "([^"]*)"$/ do |action_description| + todo = @current_user.todos.find_by_description(action_description) + todo.should_not be_nil + + recurring_todo_link = "div.todo_#{todo.id} div a.recurring_icon" + click_link recurring_todo_link +end + Then /^the state list "([^"]*)" should be empty$/ do |state| empty_id = "recurring-todos-empty-nd" if state.downcase == "active" empty_id = "completed-empty-nd" if state.downcase == "completed" diff --git a/vendor/rails/actionmailer/Rakefile b/vendor/rails/actionmailer/Rakefile index ba85056e..7e0a0239 100644 --- a/vendor/rails/actionmailer/Rakefile +++ b/vendor/rails/actionmailer/Rakefile @@ -54,7 +54,7 @@ spec = Gem::Specification.new do |s| s.rubyforge_project = "actionmailer" s.homepage = "http://www.rubyonrails.org" - s.add_dependency('actionpack', '= 2.3.12' + PKG_BUILD) + s.add_dependency('actionpack', '= 2.3.14' + PKG_BUILD) s.requirements << 'none' s.require_path = 'lib' diff --git a/vendor/rails/actionmailer/lib/action_mailer/version.rb b/vendor/rails/actionmailer/lib/action_mailer/version.rb index ce0b782e..7627ff22 100644 --- a/vendor/rails/actionmailer/lib/action_mailer/version.rb +++ b/vendor/rails/actionmailer/lib/action_mailer/version.rb @@ -2,7 +2,7 @@ module ActionMailer module VERSION #:nodoc: MAJOR = 2 MINOR = 3 - TINY = 12 + TINY = 14 STRING = [MAJOR, MINOR, TINY].join('.') end diff --git a/vendor/rails/actionpack/CHANGELOG b/vendor/rails/actionpack/CHANGELOG index af6b0be2..3270c72f 100644 --- a/vendor/rails/actionpack/CHANGELOG +++ b/vendor/rails/actionpack/CHANGELOG @@ -1935,7 +1935,7 @@ superclass' view_paths. [Rick Olson] * Update documentation for erb trim syntax. #5651 [matt@mattmargolis.net] -* Pass :id => nil or :class => nil to error_messages_for to supress that html attribute. #3586 [olivier_ansaldi@yahoo.com, sebastien@goetzilla.info] +* Pass :id => nil or :class => nil to error_messages_for to supress that html attribute. #3586 [olivier_ansaldi@yahoo.com] * Reset @html_document between requests so assert_tag works. #4810 [Jarkko Laine, easleydp@gmail.com] @@ -2532,7 +2532,7 @@ superclass' view_paths. [Rick Olson] * Provide support for decimal columns to form helpers. Closes #5672. [Dave Thomas] -* Pass :id => nil or :class => nil to error_messages_for to supress that html attribute. #3586 [olivier_ansaldi@yahoo.com, sebastien@goetzilla.info] +* Pass :id => nil or :class => nil to error_messages_for to supress that html attribute. #3586 [olivier_ansaldi@yahoo.com] * Reset @html_document between requests so assert_tag works. #4810 [Jarkko Laine, easleydp@gmail.com] diff --git a/vendor/rails/actionpack/Rakefile b/vendor/rails/actionpack/Rakefile index 004ed541..ce4c41aa 100644 --- a/vendor/rails/actionpack/Rakefile +++ b/vendor/rails/actionpack/Rakefile @@ -78,7 +78,7 @@ spec = Gem::Specification.new do |s| s.requirements << 'none' - s.add_dependency('activesupport', '= 2.3.12' + PKG_BUILD) + s.add_dependency('activesupport', '= 2.3.14' + PKG_BUILD) s.add_dependency('rack', '~> 1.1.0') s.require_path = 'lib' diff --git a/vendor/rails/actionpack/lib/action_controller/response.rb b/vendor/rails/actionpack/lib/action_controller/response.rb index 815f749e..ff1702e8 100644 --- a/vendor/rails/actionpack/lib/action_controller/response.rb +++ b/vendor/rails/actionpack/lib/action_controller/response.rb @@ -64,12 +64,13 @@ module ActionController # :nodoc: # the character set information will also be included in the content type # information. def content_type=(mime_type) - self.headers["Content-Type"] = + new_content_type = if mime_type =~ /charset/ || (c = charset).nil? mime_type.to_s else "#{mime_type}; charset=#{c}" end + self.headers["Content-Type"] = URI.escape(new_content_type, "\r\n") end # Returns the response's content MIME type, or nil if content type has been set. diff --git a/vendor/rails/actionpack/lib/action_controller/vendor/html-scanner/html/node.rb b/vendor/rails/actionpack/lib/action_controller/vendor/html-scanner/html/node.rb index 0cd05d8e..ae24723d 100644 --- a/vendor/rails/actionpack/lib/action_controller/vendor/html-scanner/html/node.rb +++ b/vendor/rails/actionpack/lib/action_controller/vendor/html-scanner/html/node.rb @@ -162,7 +162,7 @@ module HTML #:nodoc: end closing = ( scanner.scan(/\//) ? :close : nil ) - return Text.new(parent, line, pos, content) unless name = scanner.scan(/[-:\w\x00-\x09\x0b-\x0c\x0e-\x1f]+/) + return Text.new(parent, line, pos, content) unless name = scanner.scan(/[^\s!>\/]+/) name.downcase! unless closing diff --git a/vendor/rails/actionpack/lib/action_pack/version.rb b/vendor/rails/actionpack/lib/action_pack/version.rb index 010bfcb0..330eecb1 100644 --- a/vendor/rails/actionpack/lib/action_pack/version.rb +++ b/vendor/rails/actionpack/lib/action_pack/version.rb @@ -2,7 +2,7 @@ module ActionPack #:nodoc: module VERSION #:nodoc: MAJOR = 2 MINOR = 3 - TINY = 12 + TINY = 14 STRING = [MAJOR, MINOR, TINY].join('.') end diff --git a/vendor/rails/actionpack/test/controller/content_type_test.rb b/vendor/rails/actionpack/test/controller/content_type_test.rb index 32c1757e..852fbfaa 100644 --- a/vendor/rails/actionpack/test/controller/content_type_test.rb +++ b/vendor/rails/actionpack/test/controller/content_type_test.rb @@ -46,6 +46,11 @@ class ContentTypeController < ActionController::Base format.rss { render :text => "hello world!", :content_type => Mime::XML } end end + + def render_content_type_from_user_input + response.content_type= params[:hello] + render :text=>"hello" + end def rescue_action(e) raise end end @@ -129,6 +134,11 @@ class ContentTypeTest < ActionController::TestCase assert_equal Mime::HTML, @response.content_type assert_equal "utf-8", @response.charset end + + def test_user_supplied_value + get :render_content_type_from_user_input, :hello=>"hello/world\r\nAttack: true" + assert_equal "hello/world%0D%0AAttack: true", @response.content_type + end end class AcceptBasedContentTypeTest < ActionController::TestCase diff --git a/vendor/rails/actionpack/test/controller/html-scanner/sanitizer_test.rb b/vendor/rails/actionpack/test/controller/html-scanner/sanitizer_test.rb index 19235448..92032514 100644 --- a/vendor/rails/actionpack/test/controller/html-scanner/sanitizer_test.rb +++ b/vendor/rails/actionpack/test/controller/html-scanner/sanitizer_test.rb @@ -5,6 +5,13 @@ class SanitizerTest < ActionController::TestCase @sanitizer = nil # used by assert_sanitizer end + def test_strip_tags_with_quote + sanitizer = HTML::FullSanitizer.new + string = '<" hi' + + assert_equal ' hi', sanitizer.sanitize(string) + end + def test_strip_tags sanitizer = HTML::FullSanitizer.new assert_equal("<< '"', + 'MysqlAdapter' => '`', + 'Mysql2Adapter' => '`', + 'PostgreSQLAdapter' => '"', + 'OracleAdapter' => '"', + }.fetch(classname) { + raise "need a bad char for #{classname}" + } + + quoted = conn.quote_column_name "foo#{badchar}bar" + assert_equal("#{badchar}foo#{badchar * 2}bar#{badchar}", quoted) + end + def test_table_exists assert !NonExistentTable.table_exists? assert Topic.table_exists? diff --git a/vendor/rails/activerecord/test/fixtures/fixture_database.sqlite3 b/vendor/rails/activerecord/test/fixtures/fixture_database.sqlite3 deleted file mode 100644 index b3299c653a98519d4db51b9e01b306f876c3bd4e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 67531776 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 zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly 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 z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNCfKN1-0M@{tA(9qa}8n4E$32MTcsCqy4#5GAxT9eh}HAPKXQ`OWp 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 z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs 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 z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK;ZxL0^@AZ7QPx98hlgV)_3)N{V+5%Ua!U*p+>BcYUCQFMy=6m^cthatg&kB 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 z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF 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 z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N 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 z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs 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 zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly 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%0D$m}ZU%ypZ(|50Vec3`+vGl}b6eiP; zK+B^r&~rIocjfEujel?0auli$U-MCzcB;p#JY{!z3~KJp7B(!Fwn-OgXD3b0V{*tQ zr@M3ZTp$>=1f(_^n&<@d(*BT*UL z7S{A>_OgW?ilyz675T|+%CE~#{$)e_*rf3l8P?XzHBbKW3^_NPt2vZC{*;TM&3n$0 z{+|&&5JeAkT$Xun=iL9?*#A3^V28`9bSrCd^5zUq4E5!cAN$t7ImxiL-W)!vso#;1 zo#gwFS0#(T8;(z2wLFQk_**$N&W0LaS7-j6{xz?DJnHXkYlM2^Q@~dbh)Z6jZb6>h z-Blfwo@+k+NAstLCPzV}Ll;aBT@X)W>CpYBhbE_`Plp~bJv5mf)1e1W4?S@D85T|t zT{t~-(e%(o+3aw!boIUp?(6W4sUBBXnv!3_s1rdaYXg1 z(dLy@zWcPYcD02ECxe-gLavH>M4~$JTz9SRKY7JRZfpVe5+b~ zwy;mJv{$;CogOn6Kk-ETp-1(`PR(yd@_@G9jOy;cX^G12Ge(Sc#`t?bx( z`3@+r+v@wN@kv1*7w7-IDazc``IO4}e>*qnypf|wlH>oTkN<6N|9@eySh_Y{a;AHu zmbQvrjwY_>&i(ao+3`m!9`%od0J-4}|$obG5kpH%geUPuJzs zuY#}bZ;3zNy8qhZ)W-3CiA?$Pt9T+#cAS@gH(myya(`Rv1$iz4)?4$zb{Dgs}gFN3JYyN!eZ?M|ui=xAyz?;2a6dn5AC_0ia0vvjO6dkq& zzyHbaOcc%g3coiXGf4+opKMCDChKtj7s!{ny$Sz@^M@SC^Bnp;{_Z53lPw9enR#F2 z_eNwhvL4}e5B(1L2e&um_umLRA`hFvWBEejyf5+hedJ%{+x-1i?pv2^#ozx&{>^Ph zectD|9lvJzb>r8LPiPRGpZ=S9pWye$`FmA)c=^8MG4bsk%EN2#kB9r80tzUgfC36A zpnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim} z0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7j zD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUg zfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7> z3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36A zpnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim} z0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7j zD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUg zfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7> z3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36A zpnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim} z0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7j zD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUg zfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7> z3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36A zpnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim} z0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7j zD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUg zfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7> z3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36A zpnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim} z0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7j zD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUg zfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7jtg*lm8}Lu=i=x9fBb$;<$i`$NvLWIA z!`CP4k(p#&vJRO+I!T6f5T53+f0O?s{~`~Nf0BQY`w6dc*x$+D$Y04{$e+od$REic z$nVMT$ZyGS$gjz-$S=t+$j`~o$WO^n$dAd7$PdX6$oI+j$al$i$hXP2$T!J1$k)l& z$XCf%$d}2N$QQ{M$mhxD$Y;rC$fwDt$S27s$j8aY$VbUX$cM>?$Op*>$ot9r$a~3q z$h*nA$UDisQoi!4l;p?=SxJV;3UVnK zBFo7j86f?nkMxpdq=#HWy2-`lB617>3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUg zfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7> z3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36A zpnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim} z0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7j zD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUg zfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7> z3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36A zpnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim} z0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7j zD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUg zfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7> z3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36A zpnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim} z0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7j zD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUg zfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7> z3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36A zpnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim} z0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7j zD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUg zfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7> z3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36A zpnw7jD4>7>3Mim}0tzUgfC36Apnw7jDDbEW9Pwpd>b@vCVtuk6nMu|q>yR0wlVnH- z;h~5BoBSX77kPmEll+6+Pk5fg|4#l!{!0Er{!IQv{z(2neouZ!eoKBseocNweo1~o zeolTyeoB5qeoTHuen@^mzE8eKzDvGCzD>SGzDd48zD~YIzDmAAsPFJEkuQ=jkk6CP zk;q$(zU<$s5S)$?M2#$!o}~$*agcR*@^o736Xg*jFHR8D9Mo#vXTsw735MfM3$35GC=xCAL%8_NDsM$ zbd!t8MdU(q0Xd(XN6sbZkSCF|$yww~at1k_oJLM1r;wA$N#sOw0y&->M~)@Okfr2k zvVl<>`nF}S+XaY zL-ruMlikR!WEZkCnN4;gJCYs9_GCMWDBx+7> z3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36A zpnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim} z0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7j zD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUg zfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7> z3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36A zpnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim} z0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7j zD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUg zfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7> z3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36A zpnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim} z0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7j zD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUg zfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7> z3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36A zpnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim} z0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7j zD4>7>3Mim}0tzUgfC36Apnw7jD4>7>3Mim}0tzUgfC36Apnw7jD4>7>fe0M>P71v* zijMda`6BrO`8@d?`7HSi`84?y`6T%S`8fF)`6&4a`7rqq`5^fKc|Um{c`tbnc{h0% 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

    (qlpI11CI^uN$pK`4vLD%(>_he@dyzfK9%Og2 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

    ');/sw|se|ne|nw/.test(f)&&g.css({zIndex:++a.zIndex});"se"==f&&g.addClass("ui-icon ui-icon-gripsmall-diagonal-se");this.handles[f]=".ui-resizable-"+f;this.element.append(g)}}this._renderAxis=function(h){h=h||this.element;for(var i in this.handles){if(this.handles[i].constructor== -String)this.handles[i]=e(this.handles[i],this.element).show();if(this.elementIsWrapper&&this.originalElement[0].nodeName.match(/textarea|input|select|button/i)){var j=e(this.handles[i],this.element),k=0;k=/sw|ne|nw|se|n|s/.test(i)?j.outerHeight():j.outerWidth();j=["padding",/ne|nw|n/.test(i)?"Top":/se|sw|s/.test(i)?"Bottom":/^e$/.test(i)?"Right":"Left"].join("");h.css(j,k);this._proportionallyResize()}e(this.handles[i])}};this._renderAxis(this.element);this._handles=e(".ui-resizable-handle",this.element).disableSelection(); +String)this.handles[i]=e(this.handles[i],this.element).show();if(this.elementIsWrapper&&this.originalElement[0].nodeName.match(/textarea|input|select|button/i)){var j=e(this.handles[i],this.element),l=0;l=/sw|ne|nw|se|n|s/.test(i)?j.outerHeight():j.outerWidth();j=["padding",/ne|nw|n/.test(i)?"Top":/se|sw|s/.test(i)?"Bottom":/^e$/.test(i)?"Right":"Left"].join("");h.css(j,l);this._proportionallyResize()}e(this.handles[i])}};this._renderAxis(this.element);this._handles=e(".ui-resizable-handle",this.element).disableSelection(); this._handles.mouseover(function(){if(!b.resizing){if(this.className)var h=this.className.match(/ui-resizable-(se|sw|ne|nw|n|e|s|w)/i);b.axis=h&&h[1]?h[1]:"se"}});if(a.autoHide){this._handles.hide();e(this.element).addClass("ui-resizable-autohide").hover(function(){if(!a.disabled){e(this).removeClass("ui-resizable-autohide");b._handles.show()}},function(){if(!a.disabled)if(!b.resizing){e(this).addClass("ui-resizable-autohide");b._handles.hide()}})}this._mouseInit()},destroy:function(){this._mouseDestroy(); var b=function(c){e(c).removeClass("ui-resizable ui-resizable-disabled ui-resizable-resizing").removeData("resizable").unbind(".resizable").find(".ui-resizable-handle").remove()};if(this.elementIsWrapper){b(this.element);var a=this.element;a.after(this.originalElement.css({position:a.css("position"),width:a.outerWidth(),height:a.outerHeight(),top:a.css("top"),left:a.css("left")})).remove()}this.originalElement.css("resize",this.originalResizeStyle);b(this.originalElement);return this},_mouseCapture:function(b){var a= false;for(var c in this.handles)if(e(this.handles[c])[0]==b.target)a=true;return!this.options.disabled&&a},_mouseStart:function(b){var a=this.options,c=this.element.position(),d=this.element;this.resizing=true;this.documentScroll={top:e(document).scrollTop(),left:e(document).scrollLeft()};if(d.is(".ui-draggable")||/absolute/.test(d.css("position")))d.css({position:"absolute",top:c.top,left:c.left});e.browser.opera&&/relative/.test(d.css("position"))&&d.css({position:"relative",top:"auto",left:"auto"}); this._renderProxy();c=m(this.helper.css("left"));var f=m(this.helper.css("top"));if(a.containment){c+=e(a.containment).scrollLeft()||0;f+=e(a.containment).scrollTop()||0}this.offset=this.helper.offset();this.position={left:c,top:f};this.size=this._helper?{width:d.outerWidth(),height:d.outerHeight()}:{width:d.width(),height:d.height()};this.originalSize=this._helper?{width:d.outerWidth(),height:d.outerHeight()}:{width:d.width(),height:d.height()};this.originalPosition={left:c,top:f};this.sizeDiff= {width:d.outerWidth()-d.width(),height:d.outerHeight()-d.height()};this.originalMousePosition={left:b.pageX,top:b.pageY};this.aspectRatio=typeof a.aspectRatio=="number"?a.aspectRatio:this.originalSize.width/this.originalSize.height||1;a=e(".ui-resizable-"+this.axis).css("cursor");e("body").css("cursor",a=="auto"?this.axis+"-resize":a);d.addClass("ui-resizable-resizing");this._propagate("start",b);return true},_mouseDrag:function(b){var a=this.helper,c=this.originalMousePosition,d=this._change[this.axis]; -if(!d)return false;c=d.apply(this,[b,b.pageX-c.left||0,b.pageY-c.top||0]);if(this._aspectRatio||b.shiftKey)c=this._updateRatio(c,b);c=this._respectSize(c,b);this._propagate("resize",b);a.css({top:this.position.top+"px",left:this.position.left+"px",width:this.size.width+"px",height:this.size.height+"px"});!this._helper&&this._proportionallyResizeElements.length&&this._proportionallyResize();this._updateCache(c);this._trigger("resize",b,this.ui());return false},_mouseStop:function(b){this.resizing= -false;var a=this.options,c=this;if(this._helper){var d=this._proportionallyResizeElements,f=d.length&&/textarea/i.test(d[0].nodeName);d=f&&e.ui.hasScroll(d[0],"left")?0:c.sizeDiff.height;f=f?0:c.sizeDiff.width;f={width:c.helper.width()-f,height:c.helper.height()-d};d=parseInt(c.element.css("left"),10)+(c.position.left-c.originalPosition.left)||null;var g=parseInt(c.element.css("top"),10)+(c.position.top-c.originalPosition.top)||null;a.animate||this.element.css(e.extend(f,{top:g,left:d}));c.helper.height(c.size.height); -c.helper.width(c.size.width);this._helper&&!a.animate&&this._proportionallyResize()}e("body").css("cursor","auto");this.element.removeClass("ui-resizable-resizing");this._propagate("stop",b);this._helper&&this.helper.remove();return false},_updateCache:function(b){this.offset=this.helper.offset();if(l(b.left))this.position.left=b.left;if(l(b.top))this.position.top=b.top;if(l(b.height))this.size.height=b.height;if(l(b.width))this.size.width=b.width},_updateRatio:function(b){var a=this.position,c=this.size, -d=this.axis;if(b.height)b.width=c.height*this.aspectRatio;else if(b.width)b.height=c.width/this.aspectRatio;if(d=="sw"){b.left=a.left+(c.width-b.width);b.top=null}if(d=="nw"){b.top=a.top+(c.height-b.height);b.left=a.left+(c.width-b.width)}return b},_respectSize:function(b){var a=this.options,c=this.axis,d=l(b.width)&&a.maxWidth&&a.maxWidthb.width,h=l(b.height)&&a.minHeight&&a.minHeight>b.height;if(g)b.width= -a.minWidth;if(h)b.height=a.minHeight;if(d)b.width=a.maxWidth;if(f)b.height=a.maxHeight;var i=this.originalPosition.left+this.originalSize.width,j=this.position.top+this.size.height,k=/sw|nw|w/.test(c);c=/nw|ne|n/.test(c);if(g&&k)b.left=i-a.minWidth;if(d&&k)b.left=i-a.maxWidth;if(h&&c)b.top=j-a.minHeight;if(f&&c)b.top=j-a.maxHeight;if((a=!b.width&&!b.height)&&!b.left&&b.top)b.top=null;else if(a&&!b.top&&b.left)b.left=null;return b},_proportionallyResize:function(){if(this._proportionallyResizeElements.length)for(var b= -this.helper||this.element,a=0;a');var a=e.browser.msie&&e.browser.version<7,c=a?1:0;a=a?2:-1;this.helper.addClass(this._helper).css({width:this.element.outerWidth()+a,height:this.element.outerHeight()+a,position:"absolute",left:this.elementOffset.left- -c+"px",top:this.elementOffset.top-c+"px",zIndex:++b.zIndex});this.helper.appendTo("body").disableSelection()}else this.helper=this.element},_change:{e:function(b,a){return{width:this.originalSize.width+a}},w:function(b,a){return{left:this.originalPosition.left+a,width:this.originalSize.width-a}},n:function(b,a,c){return{top:this.originalPosition.top+c,height:this.originalSize.height-c}},s:function(b,a,c){return{height:this.originalSize.height+c}},se:function(b,a,c){return e.extend(this._change.s.apply(this, -arguments),this._change.e.apply(this,[b,a,c]))},sw:function(b,a,c){return e.extend(this._change.s.apply(this,arguments),this._change.w.apply(this,[b,a,c]))},ne:function(b,a,c){return e.extend(this._change.n.apply(this,arguments),this._change.e.apply(this,[b,a,c]))},nw:function(b,a,c){return e.extend(this._change.n.apply(this,arguments),this._change.w.apply(this,[b,a,c]))}},_propagate:function(b,a){e.ui.plugin.call(this,b,[a,this.ui()]);b!="resize"&&this._trigger(b,a,this.ui())},plugins:{},ui:function(){return{originalElement:this.originalElement, -element:this.element,helper:this.helper,position:this.position,size:this.size,originalSize:this.originalSize,originalPosition:this.originalPosition}}});e.extend(e.ui.resizable,{version:"1.8.13"});e.ui.plugin.add("resizable","alsoResize",{start:function(){var b=e(this).data("resizable").options,a=function(c){e(c).each(function(){var d=e(this);d.data("resizable-alsoresize",{width:parseInt(d.width(),10),height:parseInt(d.height(),10),left:parseInt(d.css("left"),10),top:parseInt(d.css("top"),10),position:d.css("position")})})}; -if(typeof b.alsoResize=="object"&&!b.alsoResize.parentNode)if(b.alsoResize.length){b.alsoResize=b.alsoResize[0];a(b.alsoResize)}else e.each(b.alsoResize,function(c){a(c)});else a(b.alsoResize)},resize:function(b,a){var c=e(this).data("resizable");b=c.options;var d=c.originalSize,f=c.originalPosition,g={height:c.size.height-d.height||0,width:c.size.width-d.width||0,top:c.position.top-f.top||0,left:c.position.left-f.left||0},h=function(i,j){e(i).each(function(){var k=e(this),q=e(this).data("resizable-alsoresize"), -p={},r=j&&j.length?j:k.parents(a.originalElement[0]).length?["width","height"]:["width","height","top","left"];e.each(r,function(n,o){if((n=(q[o]||0)+(g[o]||0))&&n>=0)p[o]=n||null});if(e.browser.opera&&/relative/.test(k.css("position"))){c._revertToRelativePosition=true;k.css({position:"absolute",top:"auto",left:"auto"})}k.css(p)})};typeof b.alsoResize=="object"&&!b.alsoResize.nodeType?e.each(b.alsoResize,function(i,j){h(i,j)}):h(b.alsoResize)},stop:function(){var b=e(this).data("resizable"),a=b.options, -c=function(d){e(d).each(function(){var f=e(this);f.css({position:f.data("resizable-alsoresize").position})})};if(b._revertToRelativePosition){b._revertToRelativePosition=false;typeof a.alsoResize=="object"&&!a.alsoResize.nodeType?e.each(a.alsoResize,function(d){c(d)}):c(a.alsoResize)}e(this).removeData("resizable-alsoresize")}});e.ui.plugin.add("resizable","animate",{stop:function(b){var a=e(this).data("resizable"),c=a.options,d=a._proportionallyResizeElements,f=d.length&&/textarea/i.test(d[0].nodeName), -g=f&&e.ui.hasScroll(d[0],"left")?0:a.sizeDiff.height;f={width:a.size.width-(f?0:a.sizeDiff.width),height:a.size.height-g};g=parseInt(a.element.css("left"),10)+(a.position.left-a.originalPosition.left)||null;var h=parseInt(a.element.css("top"),10)+(a.position.top-a.originalPosition.top)||null;a.element.animate(e.extend(f,h&&g?{top:h,left:g}:{}),{duration:c.animateDuration,easing:c.animateEasing,step:function(){var i={width:parseInt(a.element.css("width"),10),height:parseInt(a.element.css("height"), -10),top:parseInt(a.element.css("top"),10),left:parseInt(a.element.css("left"),10)};d&&d.length&&e(d[0]).css({width:i.width,height:i.height});a._updateCache(i);a._propagate("resize",b)}})}});e.ui.plugin.add("resizable","containment",{start:function(){var b=e(this).data("resizable"),a=b.element,c=b.options.containment;if(a=c instanceof e?c.get(0):/parent/.test(c)?a.parent().get(0):c){b.containerElement=e(a);if(/document/.test(c)||c==document){b.containerOffset={left:0,top:0};b.containerPosition={left:0, -top:0};b.parentData={element:e(document),left:0,top:0,width:e(document).width(),height:e(document).height()||document.body.parentNode.scrollHeight}}else{var d=e(a),f=[];e(["Top","Right","Left","Bottom"]).each(function(i,j){f[i]=m(d.css("padding"+j))});b.containerOffset=d.offset();b.containerPosition=d.position();b.containerSize={height:d.innerHeight()-f[3],width:d.innerWidth()-f[1]};c=b.containerOffset;var g=b.containerSize.height,h=b.containerSize.width;h=e.ui.hasScroll(a,"left")?a.scrollWidth:h; -g=e.ui.hasScroll(a)?a.scrollHeight:g;b.parentData={element:a,left:c.left,top:c.top,width:h,height:g}}}},resize:function(b){var a=e(this).data("resizable"),c=a.options,d=a.containerOffset,f=a.position;b=a._aspectRatio||b.shiftKey;var g={top:0,left:0},h=a.containerElement;if(h[0]!=document&&/static/.test(h.css("position")))g=d;if(f.left<(a._helper?d.left:0)){a.size.width+=a._helper?a.position.left-d.left:a.position.left-g.left;if(b)a.size.height=a.size.width/c.aspectRatio;a.position.left=c.helper?d.left: -0}if(f.top<(a._helper?d.top:0)){a.size.height+=a._helper?a.position.top-d.top:a.position.top;if(b)a.size.width=a.size.height*c.aspectRatio;a.position.top=a._helper?d.top:0}a.offset.left=a.parentData.left+a.position.left;a.offset.top=a.parentData.top+a.position.top;c=Math.abs((a._helper?a.offset.left-g.left:a.offset.left-g.left)+a.sizeDiff.width);d=Math.abs((a._helper?a.offset.top-g.top:a.offset.top-d.top)+a.sizeDiff.height);f=a.containerElement.get(0)==a.element.parent().get(0);g=/relative|absolute/.test(a.containerElement.css("position")); -if(f&&g)c-=a.parentData.left;if(c+a.size.width>=a.parentData.width){a.size.width=a.parentData.width-c;if(b)a.size.height=a.size.width/a.aspectRatio}if(d+a.size.height>=a.parentData.height){a.size.height=a.parentData.height-d;if(b)a.size.width=a.size.height*a.aspectRatio}},stop:function(){var b=e(this).data("resizable"),a=b.options,c=b.containerOffset,d=b.containerPosition,f=b.containerElement,g=e(b.helper),h=g.offset(),i=g.outerWidth()-b.sizeDiff.width;g=g.outerHeight()-b.sizeDiff.height;b._helper&& -!a.animate&&/relative/.test(f.css("position"))&&e(this).css({left:h.left-d.left-c.left,width:i,height:g});b._helper&&!a.animate&&/static/.test(f.css("position"))&&e(this).css({left:h.left-d.left-c.left,width:i,height:g})}});e.ui.plugin.add("resizable","ghost",{start:function(){var b=e(this).data("resizable"),a=b.options,c=b.size;b.ghost=b.originalElement.clone();b.ghost.css({opacity:0.25,display:"block",position:"relative",height:c.height,width:c.width,margin:0,left:0,top:0}).addClass("ui-resizable-ghost").addClass(typeof a.ghost== -"string"?a.ghost:"");b.ghost.appendTo(b.helper)},resize:function(){var b=e(this).data("resizable");b.ghost&&b.ghost.css({position:"relative",height:b.size.height,width:b.size.width})},stop:function(){var b=e(this).data("resizable");b.ghost&&b.helper&&b.helper.get(0).removeChild(b.ghost.get(0))}});e.ui.plugin.add("resizable","grid",{resize:function(){var b=e(this).data("resizable"),a=b.options,c=b.size,d=b.originalSize,f=b.originalPosition,g=b.axis;a.grid=typeof a.grid=="number"?[a.grid,a.grid]:a.grid; -var h=Math.round((c.width-d.width)/(a.grid[0]||1))*(a.grid[0]||1);a=Math.round((c.height-d.height)/(a.grid[1]||1))*(a.grid[1]||1);if(/^(se|s|e)$/.test(g)){b.size.width=d.width+h;b.size.height=d.height+a}else if(/^(ne)$/.test(g)){b.size.width=d.width+h;b.size.height=d.height+a;b.position.top=f.top-a}else{if(/^(sw)$/.test(g)){b.size.width=d.width+h;b.size.height=d.height+a}else{b.size.width=d.width+h;b.size.height=d.height+a;b.position.top=f.top-a}b.position.left=f.left-h}}});var m=function(b){return parseInt(b, -10)||0},l=function(b){return!isNaN(parseInt(b,10))}})(jQuery); +if(!d)return false;c=d.apply(this,[b,b.pageX-c.left||0,b.pageY-c.top||0]);this._updateVirtualBoundaries(b.shiftKey);if(this._aspectRatio||b.shiftKey)c=this._updateRatio(c,b);c=this._respectSize(c,b);this._propagate("resize",b);a.css({top:this.position.top+"px",left:this.position.left+"px",width:this.size.width+"px",height:this.size.height+"px"});!this._helper&&this._proportionallyResizeElements.length&&this._proportionallyResize();this._updateCache(c);this._trigger("resize",b,this.ui());return false}, +_mouseStop:function(b){this.resizing=false;var a=this.options,c=this;if(this._helper){var d=this._proportionallyResizeElements,f=d.length&&/textarea/i.test(d[0].nodeName);d=f&&e.ui.hasScroll(d[0],"left")?0:c.sizeDiff.height;f=f?0:c.sizeDiff.width;f={width:c.helper.width()-f,height:c.helper.height()-d};d=parseInt(c.element.css("left"),10)+(c.position.left-c.originalPosition.left)||null;var g=parseInt(c.element.css("top"),10)+(c.position.top-c.originalPosition.top)||null;a.animate||this.element.css(e.extend(f, +{top:g,left:d}));c.helper.height(c.size.height);c.helper.width(c.size.width);this._helper&&!a.animate&&this._proportionallyResize()}e("body").css("cursor","auto");this.element.removeClass("ui-resizable-resizing");this._propagate("stop",b);this._helper&&this.helper.remove();return false},_updateVirtualBoundaries:function(b){var a=this.options,c,d,f;a={minWidth:k(a.minWidth)?a.minWidth:0,maxWidth:k(a.maxWidth)?a.maxWidth:Infinity,minHeight:k(a.minHeight)?a.minHeight:0,maxHeight:k(a.maxHeight)?a.maxHeight: +Infinity};if(this._aspectRatio||b){b=a.minHeight*this.aspectRatio;d=a.minWidth/this.aspectRatio;c=a.maxHeight*this.aspectRatio;f=a.maxWidth/this.aspectRatio;if(b>a.minWidth)a.minWidth=b;if(d>a.minHeight)a.minHeight=d;if(cb.width,h=k(b.height)&&a.minHeight&&a.minHeight>b.height;if(g)b.width=a.minWidth;if(h)b.height=a.minHeight;if(d)b.width=a.maxWidth;if(f)b.height=a.maxHeight;var i=this.originalPosition.left+this.originalSize.width,j=this.position.top+this.size.height,l=/sw|nw|w/.test(c);c=/nw|ne|n/.test(c);if(g&&l)b.left=i-a.minWidth;if(d&&l)b.left=i-a.maxWidth;if(h&&c)b.top=j-a.minHeight;if(f&&c)b.top=j-a.maxHeight;if((a=!b.width&&!b.height)&&!b.left&&b.top)b.top=null;else if(a&&!b.top&&b.left)b.left= +null;return b},_proportionallyResize:function(){if(this._proportionallyResizeElements.length)for(var b=this.helper||this.element,a=0;a');var a=e.browser.msie&&e.browser.version<7,c=a?1:0;a=a?2:-1;this.helper.addClass(this._helper).css({width:this.element.outerWidth()+ +a,height:this.element.outerHeight()+a,position:"absolute",left:this.elementOffset.left-c+"px",top:this.elementOffset.top-c+"px",zIndex:++b.zIndex});this.helper.appendTo("body").disableSelection()}else this.helper=this.element},_change:{e:function(b,a){return{width:this.originalSize.width+a}},w:function(b,a){return{left:this.originalPosition.left+a,width:this.originalSize.width-a}},n:function(b,a,c){return{top:this.originalPosition.top+c,height:this.originalSize.height-c}},s:function(b,a,c){return{height:this.originalSize.height+ +c}},se:function(b,a,c){return e.extend(this._change.s.apply(this,arguments),this._change.e.apply(this,[b,a,c]))},sw:function(b,a,c){return e.extend(this._change.s.apply(this,arguments),this._change.w.apply(this,[b,a,c]))},ne:function(b,a,c){return e.extend(this._change.n.apply(this,arguments),this._change.e.apply(this,[b,a,c]))},nw:function(b,a,c){return e.extend(this._change.n.apply(this,arguments),this._change.w.apply(this,[b,a,c]))}},_propagate:function(b,a){e.ui.plugin.call(this,b,[a,this.ui()]); +b!="resize"&&this._trigger(b,a,this.ui())},plugins:{},ui:function(){return{originalElement:this.originalElement,element:this.element,helper:this.helper,position:this.position,size:this.size,originalSize:this.originalSize,originalPosition:this.originalPosition}}});e.extend(e.ui.resizable,{version:"1.8.15"});e.ui.plugin.add("resizable","alsoResize",{start:function(){var b=e(this).data("resizable").options,a=function(c){e(c).each(function(){var d=e(this);d.data("resizable-alsoresize",{width:parseInt(d.width(), +10),height:parseInt(d.height(),10),left:parseInt(d.css("left"),10),top:parseInt(d.css("top"),10),position:d.css("position")})})};if(typeof b.alsoResize=="object"&&!b.alsoResize.parentNode)if(b.alsoResize.length){b.alsoResize=b.alsoResize[0];a(b.alsoResize)}else e.each(b.alsoResize,function(c){a(c)});else a(b.alsoResize)},resize:function(b,a){var c=e(this).data("resizable");b=c.options;var d=c.originalSize,f=c.originalPosition,g={height:c.size.height-d.height||0,width:c.size.width-d.width||0,top:c.position.top- +f.top||0,left:c.position.left-f.left||0},h=function(i,j){e(i).each(function(){var l=e(this),q=e(this).data("resizable-alsoresize"),p={},r=j&&j.length?j:l.parents(a.originalElement[0]).length?["width","height"]:["width","height","top","left"];e.each(r,function(n,o){if((n=(q[o]||0)+(g[o]||0))&&n>=0)p[o]=n||null});if(e.browser.opera&&/relative/.test(l.css("position"))){c._revertToRelativePosition=true;l.css({position:"absolute",top:"auto",left:"auto"})}l.css(p)})};typeof b.alsoResize=="object"&&!b.alsoResize.nodeType? +e.each(b.alsoResize,function(i,j){h(i,j)}):h(b.alsoResize)},stop:function(){var b=e(this).data("resizable"),a=b.options,c=function(d){e(d).each(function(){var f=e(this);f.css({position:f.data("resizable-alsoresize").position})})};if(b._revertToRelativePosition){b._revertToRelativePosition=false;typeof a.alsoResize=="object"&&!a.alsoResize.nodeType?e.each(a.alsoResize,function(d){c(d)}):c(a.alsoResize)}e(this).removeData("resizable-alsoresize")}});e.ui.plugin.add("resizable","animate",{stop:function(b){var a= +e(this).data("resizable"),c=a.options,d=a._proportionallyResizeElements,f=d.length&&/textarea/i.test(d[0].nodeName),g=f&&e.ui.hasScroll(d[0],"left")?0:a.sizeDiff.height;f={width:a.size.width-(f?0:a.sizeDiff.width),height:a.size.height-g};g=parseInt(a.element.css("left"),10)+(a.position.left-a.originalPosition.left)||null;var h=parseInt(a.element.css("top"),10)+(a.position.top-a.originalPosition.top)||null;a.element.animate(e.extend(f,h&&g?{top:h,left:g}:{}),{duration:c.animateDuration,easing:c.animateEasing, +step:function(){var i={width:parseInt(a.element.css("width"),10),height:parseInt(a.element.css("height"),10),top:parseInt(a.element.css("top"),10),left:parseInt(a.element.css("left"),10)};d&&d.length&&e(d[0]).css({width:i.width,height:i.height});a._updateCache(i);a._propagate("resize",b)}})}});e.ui.plugin.add("resizable","containment",{start:function(){var b=e(this).data("resizable"),a=b.element,c=b.options.containment;if(a=c instanceof e?c.get(0):/parent/.test(c)?a.parent().get(0):c){b.containerElement= +e(a);if(/document/.test(c)||c==document){b.containerOffset={left:0,top:0};b.containerPosition={left:0,top:0};b.parentData={element:e(document),left:0,top:0,width:e(document).width(),height:e(document).height()||document.body.parentNode.scrollHeight}}else{var d=e(a),f=[];e(["Top","Right","Left","Bottom"]).each(function(i,j){f[i]=m(d.css("padding"+j))});b.containerOffset=d.offset();b.containerPosition=d.position();b.containerSize={height:d.innerHeight()-f[3],width:d.innerWidth()-f[1]};c=b.containerOffset; +var g=b.containerSize.height,h=b.containerSize.width;h=e.ui.hasScroll(a,"left")?a.scrollWidth:h;g=e.ui.hasScroll(a)?a.scrollHeight:g;b.parentData={element:a,left:c.left,top:c.top,width:h,height:g}}}},resize:function(b){var a=e(this).data("resizable"),c=a.options,d=a.containerOffset,f=a.position;b=a._aspectRatio||b.shiftKey;var g={top:0,left:0},h=a.containerElement;if(h[0]!=document&&/static/.test(h.css("position")))g=d;if(f.left<(a._helper?d.left:0)){a.size.width+=a._helper?a.position.left-d.left: +a.position.left-g.left;if(b)a.size.height=a.size.width/c.aspectRatio;a.position.left=c.helper?d.left:0}if(f.top<(a._helper?d.top:0)){a.size.height+=a._helper?a.position.top-d.top:a.position.top;if(b)a.size.width=a.size.height*c.aspectRatio;a.position.top=a._helper?d.top:0}a.offset.left=a.parentData.left+a.position.left;a.offset.top=a.parentData.top+a.position.top;c=Math.abs((a._helper?a.offset.left-g.left:a.offset.left-g.left)+a.sizeDiff.width);d=Math.abs((a._helper?a.offset.top-g.top:a.offset.top- +d.top)+a.sizeDiff.height);f=a.containerElement.get(0)==a.element.parent().get(0);g=/relative|absolute/.test(a.containerElement.css("position"));if(f&&g)c-=a.parentData.left;if(c+a.size.width>=a.parentData.width){a.size.width=a.parentData.width-c;if(b)a.size.height=a.size.width/a.aspectRatio}if(d+a.size.height>=a.parentData.height){a.size.height=a.parentData.height-d;if(b)a.size.width=a.size.height*a.aspectRatio}},stop:function(){var b=e(this).data("resizable"),a=b.options,c=b.containerOffset,d=b.containerPosition, +f=b.containerElement,g=e(b.helper),h=g.offset(),i=g.outerWidth()-b.sizeDiff.width;g=g.outerHeight()-b.sizeDiff.height;b._helper&&!a.animate&&/relative/.test(f.css("position"))&&e(this).css({left:h.left-d.left-c.left,width:i,height:g});b._helper&&!a.animate&&/static/.test(f.css("position"))&&e(this).css({left:h.left-d.left-c.left,width:i,height:g})}});e.ui.plugin.add("resizable","ghost",{start:function(){var b=e(this).data("resizable"),a=b.options,c=b.size;b.ghost=b.originalElement.clone();b.ghost.css({opacity:0.25, +display:"block",position:"relative",height:c.height,width:c.width,margin:0,left:0,top:0}).addClass("ui-resizable-ghost").addClass(typeof a.ghost=="string"?a.ghost:"");b.ghost.appendTo(b.helper)},resize:function(){var b=e(this).data("resizable");b.ghost&&b.ghost.css({position:"relative",height:b.size.height,width:b.size.width})},stop:function(){var b=e(this).data("resizable");b.ghost&&b.helper&&b.helper.get(0).removeChild(b.ghost.get(0))}});e.ui.plugin.add("resizable","grid",{resize:function(){var b= +e(this).data("resizable"),a=b.options,c=b.size,d=b.originalSize,f=b.originalPosition,g=b.axis;a.grid=typeof a.grid=="number"?[a.grid,a.grid]:a.grid;var h=Math.round((c.width-d.width)/(a.grid[0]||1))*(a.grid[0]||1);a=Math.round((c.height-d.height)/(a.grid[1]||1))*(a.grid[1]||1);if(/^(se|s|e)$/.test(g)){b.size.width=d.width+h;b.size.height=d.height+a}else if(/^(ne)$/.test(g)){b.size.width=d.width+h;b.size.height=d.height+a;b.position.top=f.top-a}else{if(/^(sw)$/.test(g)){b.size.width=d.width+h;b.size.height= +d.height+a}else{b.size.width=d.width+h;b.size.height=d.height+a;b.position.top=f.top-a}b.position.left=f.left-h}}});var m=function(b){return parseInt(b,10)||0},k=function(b){return!isNaN(parseInt(b,10))}})(jQuery); ;/* - * jQuery UI Selectable 1.8.13 + * jQuery UI Selectable 1.8.15 * * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) * Dual licensed under the MIT or GPL Version 2 licenses. @@ -208,9 +211,9 @@ c,{unselecting:b.element})}});e(c.target).parents().andSelf().each(function(){va this.options,b=this.opos[0],g=this.opos[1],h=c.pageX,i=c.pageY;if(b>h){var j=h;h=b;b=j}if(g>i){j=i;i=g;g=j}this.helper.css({left:b,top:g,width:h-b,height:i-g});this.selectees.each(function(){var a=e.data(this,"selectable-item");if(!(!a||a.element==f.element[0])){var k=false;if(d.tolerance=="touch")k=!(a.left>h||a.righti||a.bottomb&&a.rightg&&a.bottomthis.containment[2])f=this.containment[2]+this.offset.click.left;if(a.pageY-this.offset.click.top>this.containment[3])g=this.containment[3]+this.offset.click.top}if(b.grid){g=this.originalPageY+Math.round((g- this.originalPageY)/b.grid[1])*b.grid[1];g=this.containment?!(g-this.offset.click.topthis.containment[3])?g:!(g-this.offset.click.topthis.containment[2])?f:!(f-this.offset.click.left=0;e--)if(d.ui.contains(this.containers[e].element[0],this.currentItem[0])&&!b){c.push(function(f){return function(g){f._trigger("receive",g,this._uiHash(this))}}.call(this,this.containers[e]));c.push(function(f){return function(g){f._trigger("update",g,this._uiHash(this))}}.call(this,this.containers[e]))}}for(e=this.containers.length-1;e>=0;e--){b||c.push(function(f){return function(g){f._trigger("deactivate",g,this._uiHash(this))}}.call(this, this.containers[e]));if(this.containers[e].containerCache.over){c.push(function(f){return function(g){f._trigger("out",g,this._uiHash(this))}}.call(this,this.containers[e]));this.containers[e].containerCache.over=0}}this._storedCursor&&d("body").css("cursor",this._storedCursor);this._storedOpacity&&this.helper.css("opacity",this._storedOpacity);if(this._storedZIndex)this.helper.css("zIndex",this._storedZIndex=="auto"?"":this._storedZIndex);this.dragging=false;if(this.cancelHelperRemoval){if(!b){this._trigger("beforeStop", a,this._uiHash());for(e=0;e").addClass("ui-autocomplete").appendTo(d(this.options.appendTo||"body",b)[0]).mousedown(function(c){var f=a.menu.element[0];d(c.target).closest(".ui-menu-item").length||setTimeout(function(){d(document).one("mousedown",function(h){h.target!==a.element[0]&&h.target!==f&&!d.ui.contains(f,h.target)&&a.close()})},1);setTimeout(function(){clearTimeout(a.closing)},13)}).menu({focus:function(c,f){f=f.item.data("item.autocomplete");false!==a._trigger("focus",c,{item:f})&&/^key/.test(c.originalEvent.type)&& @@ -332,7 +335,7 @@ this.element.children(a))},nextPage:function(e){if(this.hasScroll())if(!this.act this.last()?":first":":last"))},previousPage:function(e){if(this.hasScroll())if(!this.active||this.first())this.activate(e,this.element.children(".ui-menu-item:last"));else{var a=this.active.offset().top,b=this.element.height();result=this.element.children(".ui-menu-item").filter(function(){var g=d(this).offset().top-a+b-d(this).height();return g<10&&g>-10});result.length||(result=this.element.children(".ui-menu-item:first"));this.activate(e,result)}else this.activate(e,this.element.children(".ui-menu-item").filter(!this.active|| this.first()?":last":":first"))},hasScroll:function(){return this.element.height()").addClass("ui-button-text").html(this.options.label).appendTo(b.empty()).text(),d=this.options.icons,f=d.primary&&d.secondary,e=[];if(d.primary||d.secondary){if(this.options.text)e.push("ui-button-text-icon"+(f?"s":d.primary?"-primary":"-secondary"));d.primary&&b.prepend("");d.secondary&&b.append("");if(!this.options.text){e.push(f?"ui-button-icons-only": -"ui-button-icon-only");this.hasTitle||b.attr("title",c)}}else e.push("ui-button-text-only");b.addClass(e.join(" "))}}});a.widget("ui.buttonset",{options:{items:":button, :submit, :reset, :checkbox, :radio, a, :data(button)"},_create:function(){this.element.addClass("ui-buttonset")},_init:function(){this.refresh()},_setOption:function(b,c){b==="disabled"&&this.buttons.button("option",b,c);a.Widget.prototype._setOption.apply(this,arguments)},refresh:function(){this.buttons=this.element.find(this.options.items).filter(":ui-button").button("refresh").end().not(":ui-button").button().end().map(function(){return a(this).button("widget")[0]}).removeClass("ui-corner-all ui-corner-left ui-corner-right").filter(":first").addClass("ui-corner-left").end().filter(":last").addClass("ui-corner-right").end().end()}, -destroy:function(){this.element.removeClass("ui-buttonset");this.buttons.map(function(){return a(this).button("widget")[0]}).removeClass("ui-corner-left ui-corner-right").end().button("destroy");a.Widget.prototype.destroy.call(this)}})})(jQuery); +(function(b){var h,i,j,g,l=function(){var a=b(this).find(":ui-button");setTimeout(function(){a.button("refresh")},1)},k=function(a){var c=a.name,e=a.form,f=b([]);if(c)f=e?b(e).find("[name='"+c+"']"):b("[name='"+c+"']",a.ownerDocument).filter(function(){return!this.form});return f};b.widget("ui.button",{options:{disabled:null,text:true,label:null,icons:{primary:null,secondary:null}},_create:function(){this.element.closest("form").unbind("reset.button").bind("reset.button",l);if(typeof this.options.disabled!== +"boolean")this.options.disabled=this.element.propAttr("disabled");this._determineButtonType();this.hasTitle=!!this.buttonElement.attr("title");var a=this,c=this.options,e=this.type==="checkbox"||this.type==="radio",f="ui-state-hover"+(!e?" ui-state-active":"");if(c.label===null)c.label=this.buttonElement.html();if(this.element.is(":disabled"))c.disabled=true;this.buttonElement.addClass("ui-button ui-widget ui-state-default ui-corner-all").attr("role","button").bind("mouseenter.button",function(){if(!c.disabled){b(this).addClass("ui-state-hover"); +this===h&&b(this).addClass("ui-state-active")}}).bind("mouseleave.button",function(){c.disabled||b(this).removeClass(f)}).bind("click.button",function(d){if(c.disabled){d.preventDefault();d.stopImmediatePropagation()}});this.element.bind("focus.button",function(){a.buttonElement.addClass("ui-state-focus")}).bind("blur.button",function(){a.buttonElement.removeClass("ui-state-focus")});if(e){this.element.bind("change.button",function(){g||a.refresh()});this.buttonElement.bind("mousedown.button",function(d){if(!c.disabled){g= +false;i=d.pageX;j=d.pageY}}).bind("mouseup.button",function(d){if(!c.disabled)if(i!==d.pageX||j!==d.pageY)g=true})}if(this.type==="checkbox")this.buttonElement.bind("click.button",function(){if(c.disabled||g)return false;b(this).toggleClass("ui-state-active");a.buttonElement.attr("aria-pressed",a.element[0].checked)});else if(this.type==="radio")this.buttonElement.bind("click.button",function(){if(c.disabled||g)return false;b(this).addClass("ui-state-active");a.buttonElement.attr("aria-pressed","true"); +var d=a.element[0];k(d).not(d).map(function(){return b(this).button("widget")[0]}).removeClass("ui-state-active").attr("aria-pressed","false")});else{this.buttonElement.bind("mousedown.button",function(){if(c.disabled)return false;b(this).addClass("ui-state-active");h=this;b(document).one("mouseup",function(){h=null})}).bind("mouseup.button",function(){if(c.disabled)return false;b(this).removeClass("ui-state-active")}).bind("keydown.button",function(d){if(c.disabled)return false;if(d.keyCode==b.ui.keyCode.SPACE|| +d.keyCode==b.ui.keyCode.ENTER)b(this).addClass("ui-state-active")}).bind("keyup.button",function(){b(this).removeClass("ui-state-active")});this.buttonElement.is("a")&&this.buttonElement.keyup(function(d){d.keyCode===b.ui.keyCode.SPACE&&b(this).click()})}this._setOption("disabled",c.disabled);this._resetButton()},_determineButtonType:function(){this.type=this.element.is(":checkbox")?"checkbox":this.element.is(":radio")?"radio":this.element.is("input")?"input":"button";if(this.type==="checkbox"||this.type=== +"radio"){var a=this.element.parents().filter(":last"),c="label[for="+this.element.attr("id")+"]";this.buttonElement=a.find(c);if(!this.buttonElement.length){a=a.length?a.siblings():this.element.siblings();this.buttonElement=a.filter(c);if(!this.buttonElement.length)this.buttonElement=a.find(c)}this.element.addClass("ui-helper-hidden-accessible");(a=this.element.is(":checked"))&&this.buttonElement.addClass("ui-state-active");this.buttonElement.attr("aria-pressed",a)}else this.buttonElement=this.element}, +widget:function(){return this.buttonElement},destroy:function(){this.element.removeClass("ui-helper-hidden-accessible");this.buttonElement.removeClass("ui-button ui-widget ui-state-default ui-corner-all ui-state-hover ui-state-active ui-button-icons-only ui-button-icon-only ui-button-text-icons ui-button-text-icon-primary ui-button-text-icon-secondary ui-button-text-only").removeAttr("role").removeAttr("aria-pressed").html(this.buttonElement.find(".ui-button-text").html());this.hasTitle||this.buttonElement.removeAttr("title"); +b.Widget.prototype.destroy.call(this)},_setOption:function(a,c){b.Widget.prototype._setOption.apply(this,arguments);if(a==="disabled")c?this.element.propAttr("disabled",true):this.element.propAttr("disabled",false);else this._resetButton()},refresh:function(){var a=this.element.is(":disabled");a!==this.options.disabled&&this._setOption("disabled",a);if(this.type==="radio")k(this.element[0]).each(function(){b(this).is(":checked")?b(this).button("widget").addClass("ui-state-active").attr("aria-pressed", +"true"):b(this).button("widget").removeClass("ui-state-active").attr("aria-pressed","false")});else if(this.type==="checkbox")this.element.is(":checked")?this.buttonElement.addClass("ui-state-active").attr("aria-pressed","true"):this.buttonElement.removeClass("ui-state-active").attr("aria-pressed","false")},_resetButton:function(){if(this.type==="input")this.options.label&&this.element.val(this.options.label);else{var a=this.buttonElement.removeClass("ui-button-icons-only ui-button-icon-only ui-button-text-icons ui-button-text-icon-primary ui-button-text-icon-secondary ui-button-text-only"), +c=b("").addClass("ui-button-text").html(this.options.label).appendTo(a.empty()).text(),e=this.options.icons,f=e.primary&&e.secondary,d=[];if(e.primary||e.secondary){if(this.options.text)d.push("ui-button-text-icon"+(f?"s":e.primary?"-primary":"-secondary"));e.primary&&a.prepend("");e.secondary&&a.append("");if(!this.options.text){d.push(f?"ui-button-icons-only": +"ui-button-icon-only");this.hasTitle||a.attr("title",c)}}else d.push("ui-button-text-only");a.addClass(d.join(" "))}}});b.widget("ui.buttonset",{options:{items:":button, :submit, :reset, :checkbox, :radio, a, :data(button)"},_create:function(){this.element.addClass("ui-buttonset")},_init:function(){this.refresh()},_setOption:function(a,c){a==="disabled"&&this.buttons.button("option",a,c);b.Widget.prototype._setOption.apply(this,arguments)},refresh:function(){var a=this.element.css("direction")=== +"ltr";this.buttons=this.element.find(this.options.items).filter(":ui-button").button("refresh").end().not(":ui-button").button().end().map(function(){return b(this).button("widget")[0]}).removeClass("ui-corner-all ui-corner-left ui-corner-right").filter(":first").addClass(a?"ui-corner-left":"ui-corner-right").end().filter(":last").addClass(a?"ui-corner-right":"ui-corner-left").end().end()},destroy:function(){this.element.removeClass("ui-buttonset");this.buttons.map(function(){return b(this).button("widget")[0]}).removeClass("ui-corner-left ui-corner-right").end().button("destroy"); +b.Widget.prototype.destroy.call(this)}})})(jQuery); ;/* - * jQuery UI Dialog 1.8.13 + * jQuery UI Dialog 1.8.15 * * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) * Dual licensed under the MIT or GPL Version 2 licenses. @@ -380,8 +385,8 @@ b.dialogClass).css({zIndex:b.zIndex}).attr("tabIndex",-1).css("outline",0).keydo h=c('').addClass("ui-dialog-titlebar-close ui-corner-all").attr("role","button").hover(function(){h.addClass("ui-state-hover")},function(){h.removeClass("ui-state-hover")}).focus(function(){h.addClass("ui-state-focus")}).blur(function(){h.removeClass("ui-state-focus")}).click(function(i){a.close(i);return false}).appendTo(f);(a.uiDialogTitlebarCloseText=c("")).addClass("ui-icon ui-icon-closethick").text(b.closeText).appendTo(h);c("").addClass("ui-dialog-title").attr("id", e).html(d).prependTo(f);if(c.isFunction(b.beforeclose)&&!c.isFunction(b.beforeClose))b.beforeClose=b.beforeclose;f.find("*").add(f).disableSelection();b.draggable&&c.fn.draggable&&a._makeDraggable();b.resizable&&c.fn.resizable&&a._makeResizable();a._createButtons(b.buttons);a._isOpen=false;c.fn.bgiframe&&g.bgiframe()},_init:function(){this.options.autoOpen&&this.open()},destroy:function(){var a=this;a.overlay&&a.overlay.destroy();a.uiDialog.hide();a.element.unbind(".dialog").removeData("dialog").removeClass("ui-dialog-content ui-widget-content").hide().appendTo("body"); a.uiDialog.remove();a.originalTitle&&a.element.attr("title",a.originalTitle);return a},widget:function(){return this.uiDialog},close:function(a){var b=this,d,e;if(false!==b._trigger("beforeClose",a)){b.overlay&&b.overlay.destroy();b.uiDialog.unbind("keypress.ui-dialog");b._isOpen=false;if(b.options.hide)b.uiDialog.hide(b.options.hide,function(){b._trigger("close",a)});else{b.uiDialog.hide();b._trigger("close",a)}c.ui.dialog.overlay.resize();if(b.options.modal){d=0;c(".ui-dialog").each(function(){if(this!== -b.uiDialog[0]){e=c(this).css("z-index");isNaN(e)||(d=Math.max(d,e))}});c.ui.dialog.maxZ=d}return b}},isOpen:function(){return this._isOpen},moveToTop:function(a,b){var d=this,e=d.options;if(e.modal&&!a||!e.stack&&!e.modal)return d._trigger("focus",b);if(e.zIndex>c.ui.dialog.maxZ)c.ui.dialog.maxZ=e.zIndex;if(d.overlay){c.ui.dialog.maxZ+=1;d.overlay.$el.css("z-index",c.ui.dialog.overlay.maxZ=c.ui.dialog.maxZ)}a={scrollTop:d.element.attr("scrollTop"),scrollLeft:d.element.attr("scrollLeft")};c.ui.dialog.maxZ+= -1;d.uiDialog.css("z-index",c.ui.dialog.maxZ);d.element.attr(a);d._trigger("focus",b);return d},open:function(){if(!this._isOpen){var a=this,b=a.options,d=a.uiDialog;a.overlay=b.modal?new c.ui.dialog.overlay(a):null;a._size();a._position(b.position);d.show(b.show);a.moveToTop(true);b.modal&&d.bind("keypress.ui-dialog",function(e){if(e.keyCode===c.ui.keyCode.TAB){var g=c(":tabbable",this),f=g.filter(":first");g=g.filter(":last");if(e.target===g[0]&&!e.shiftKey){f.focus(1);return false}else if(e.target=== +b.uiDialog[0]){e=c(this).css("z-index");isNaN(e)||(d=Math.max(d,e))}});c.ui.dialog.maxZ=d}return b}},isOpen:function(){return this._isOpen},moveToTop:function(a,b){var d=this,e=d.options;if(e.modal&&!a||!e.stack&&!e.modal)return d._trigger("focus",b);if(e.zIndex>c.ui.dialog.maxZ)c.ui.dialog.maxZ=e.zIndex;if(d.overlay){c.ui.dialog.maxZ+=1;d.overlay.$el.css("z-index",c.ui.dialog.overlay.maxZ=c.ui.dialog.maxZ)}a={scrollTop:d.element.scrollTop(),scrollLeft:d.element.scrollLeft()};c.ui.dialog.maxZ+=1; +d.uiDialog.css("z-index",c.ui.dialog.maxZ);d.element.attr(a);d._trigger("focus",b);return d},open:function(){if(!this._isOpen){var a=this,b=a.options,d=a.uiDialog;a.overlay=b.modal?new c.ui.dialog.overlay(a):null;a._size();a._position(b.position);d.show(b.show);a.moveToTop(true);b.modal&&d.bind("keypress.ui-dialog",function(e){if(e.keyCode===c.ui.keyCode.TAB){var g=c(":tabbable",this),f=g.filter(":first");g=g.filter(":last");if(e.target===g[0]&&!e.shiftKey){f.focus(1);return false}else if(e.target=== f[0]&&e.shiftKey){g.focus(1);return false}}});c(a.element.find(":tabbable").get().concat(d.find(".ui-dialog-buttonpane :tabbable").get().concat(d.get()))).eq(0).focus();a._isOpen=true;a._trigger("open");return a}},_createButtons:function(a){var b=this,d=false,e=c("
    ").addClass("ui-dialog-buttonpane ui-widget-content ui-helper-clearfix"),g=c("
    ").addClass("ui-dialog-buttonset").appendTo(e);b.uiDialog.find(".ui-dialog-buttonpane").remove();typeof a==="object"&&a!==null&&c.each(a, function(){return!(d=true)});if(d){c.each(a,function(f,h){h=c.isFunction(h)?{click:h,text:f}:h;var i=c('').click(function(){h.click.apply(b.element[0],arguments)}).appendTo(g);c.each(h,function(j,k){if(j!=="click")j in o?i[j](k):i.attr(j,k)});c.fn.button&&i.button()});e.appendTo(b.uiDialog)}},_makeDraggable:function(){function a(f){return{position:f.position,offset:f.offset}}var b=this,d=b.options,e=c(document),g;b.uiDialog.draggable({cancel:".ui-dialog-content, .ui-dialog-titlebar-close", handle:".ui-dialog-titlebar",containment:"document",start:function(f,h){g=d.height==="auto"?"auto":c(this).height();c(this).height(c(this).height()).addClass("ui-dialog-dragging");b._trigger("dragStart",f,a(h))},drag:function(f,h){b._trigger("drag",f,a(h))},stop:function(f,h){d.position=[h.position.left-e.scrollLeft(),h.position.top-e.scrollTop()];c(this).removeClass("ui-dialog-dragging").height(g);b._trigger("dragStop",f,a(h));c.ui.dialog.overlay.resize()}})},_makeResizable:function(a){function b(f){return{originalPosition:f.originalPosition, @@ -391,13 +396,13 @@ f,b(h))},stop:function(f,h){c(this).removeClass("ui-dialog-resizing");e.height=c if(g in m)e=true;if(g in n)d[g]=f});e&&this._size();this.uiDialog.is(":data(resizable)")&&this.uiDialog.resizable("option",d)},_setOption:function(a,b){var d=this,e=d.uiDialog;switch(a){case "beforeclose":a="beforeClose";break;case "buttons":d._createButtons(b);break;case "closeText":d.uiDialogTitlebarCloseText.text(""+b);break;case "dialogClass":e.removeClass(d.options.dialogClass).addClass("ui-dialog ui-widget ui-widget-content ui-corner-all "+b);break;case "disabled":b?e.addClass("ui-dialog-disabled"): e.removeClass("ui-dialog-disabled");break;case "draggable":var g=e.is(":data(draggable)");g&&!b&&e.draggable("destroy");!g&&b&&d._makeDraggable();break;case "position":d._position(b);break;case "resizable":(g=e.is(":data(resizable)"))&&!b&&e.resizable("destroy");g&&typeof b==="string"&&e.resizable("option","handles",b);!g&&b!==false&&d._makeResizable(b);break;case "title":c(".ui-dialog-title",d.uiDialogTitlebar).html(""+(b||" "));break}c.Widget.prototype._setOption.apply(d,arguments)},_size:function(){var a= this.options,b,d,e=this.uiDialog.is(":visible");this.element.show().css({width:"auto",minHeight:0,height:0});if(a.minWidth>a.width)a.width=a.minWidth;b=this.uiDialog.css({height:"auto",width:a.width}).height();d=Math.max(0,a.minHeight-b);if(a.height==="auto")if(c.support.minHeight)this.element.css({minHeight:d,height:"auto"});else{this.uiDialog.show();a=this.element.css("height","auto").height();e||this.uiDialog.hide();this.element.height(Math.max(a,d))}else this.element.height(Math.max(a.height- -b,0));this.uiDialog.is(":data(resizable)")&&this.uiDialog.resizable("option","minHeight",this._minHeight())}});c.extend(c.ui.dialog,{version:"1.8.13",uuid:0,maxZ:0,getTitleId:function(a){a=a.attr("id");if(!a){this.uuid+=1;a=this.uuid}return"ui-dialog-title-"+a},overlay:function(a){this.$el=c.ui.dialog.overlay.create(a)}});c.extend(c.ui.dialog.overlay,{instances:[],oldInstances:[],maxZ:0,events:c.map("focus,mousedown,mouseup,keydown,keypress,click".split(","),function(a){return a+".dialog-overlay"}).join(" "), +b,0));this.uiDialog.is(":data(resizable)")&&this.uiDialog.resizable("option","minHeight",this._minHeight())}});c.extend(c.ui.dialog,{version:"1.8.15",uuid:0,maxZ:0,getTitleId:function(a){a=a.attr("id");if(!a){this.uuid+=1;a=this.uuid}return"ui-dialog-title-"+a},overlay:function(a){this.$el=c.ui.dialog.overlay.create(a)}});c.extend(c.ui.dialog.overlay,{instances:[],oldInstances:[],maxZ:0,events:c.map("focus,mousedown,mouseup,keydown,keypress,click".split(","),function(a){return a+".dialog-overlay"}).join(" "), create:function(a){if(this.instances.length===0){setTimeout(function(){c.ui.dialog.overlay.instances.length&&c(document).bind(c.ui.dialog.overlay.events,function(d){if(c(d.target).zIndex()").addClass("ui-widget-overlay")).appendTo(document.body).css({width:this.width(), height:this.height()});c.fn.bgiframe&&b.bgiframe();this.instances.push(b);return b},destroy:function(a){var b=c.inArray(a,this.instances);b!=-1&&this.oldInstances.push(this.instances.splice(b,1)[0]);this.instances.length===0&&c([document,window]).unbind(".dialog-overlay");a.remove();var d=0;c.each(this.instances,function(){d=Math.max(d,this.css("z-index"))});this.maxZ=d},height:function(){var a,b;if(c.browser.msie&&c.browser.version<7){a=Math.max(document.documentElement.scrollHeight,document.body.scrollHeight); -b=Math.max(document.documentElement.offsetHeight,document.body.offsetHeight);return a").appendTo(this.element).addClass("ui-slider-range ui-widget-header"+(a.range==="min"||a.range==="max"?" ui-slider-range-"+a.range:""))}for(var j=c.length;j"); -this.handles=c.add(d(e.join("")).appendTo(b.element));this.handle=this.handles.eq(0);this.handles.add(this.range).filter("a").click(function(g){g.preventDefault()}).hover(function(){a.disabled||d(this).addClass("ui-state-hover")},function(){d(this).removeClass("ui-state-hover")}).focus(function(){if(a.disabled)d(this).blur();else{d(".ui-slider .ui-state-focus").removeClass("ui-state-focus");d(this).addClass("ui-state-focus")}}).blur(function(){d(this).removeClass("ui-state-focus")});this.handles.each(function(g){d(this).data("index.ui-slider-handle", -g)});this.handles.keydown(function(g){var k=true,l=d(this).data("index.ui-slider-handle"),i,h,m;if(!b.options.disabled){switch(g.keyCode){case d.ui.keyCode.HOME:case d.ui.keyCode.END:case d.ui.keyCode.PAGE_UP:case d.ui.keyCode.PAGE_DOWN:case d.ui.keyCode.UP:case d.ui.keyCode.RIGHT:case d.ui.keyCode.DOWN:case d.ui.keyCode.LEFT:k=false;if(!b._keySliding){b._keySliding=true;d(this).addClass("ui-state-active");i=b._start(g,l);if(i===false)return}break}m=b.options.step;i=b.options.values&&b.options.values.length? -(h=b.values(l)):(h=b.value());switch(g.keyCode){case d.ui.keyCode.HOME:h=b._valueMin();break;case d.ui.keyCode.END:h=b._valueMax();break;case d.ui.keyCode.PAGE_UP:h=b._trimAlignValue(i+(b._valueMax()-b._valueMin())/5);break;case d.ui.keyCode.PAGE_DOWN:h=b._trimAlignValue(i-(b._valueMax()-b._valueMin())/5);break;case d.ui.keyCode.UP:case d.ui.keyCode.RIGHT:if(i===b._valueMax())return;h=b._trimAlignValue(i+m);break;case d.ui.keyCode.DOWN:case d.ui.keyCode.LEFT:if(i===b._valueMin())return;h=b._trimAlignValue(i- -m);break}b._slide(g,l,h);return k}}).keyup(function(g){var k=d(this).data("index.ui-slider-handle");if(b._keySliding){b._keySliding=false;b._stop(g,k);b._change(g,k);d(this).removeClass("ui-state-active")}});this._refreshValue();this._animateOff=false},destroy:function(){this.handles.remove();this.range.remove();this.element.removeClass("ui-slider ui-slider-horizontal ui-slider-vertical ui-slider-disabled ui-widget ui-widget-content ui-corner-all").removeData("slider").unbind(".slider");this._mouseDestroy(); -return this},_mouseCapture:function(b){var a=this.options,c,f,e,j,g;if(a.disabled)return false;this.elementSize={width:this.element.outerWidth(),height:this.element.outerHeight()};this.elementOffset=this.element.offset();c=this._normValueFromMouse({x:b.pageX,y:b.pageY});f=this._valueMax()-this._valueMin()+1;j=this;this.handles.each(function(k){var l=Math.abs(c-j.values(k));if(f>l){f=l;e=d(this);g=k}});if(a.range===true&&this.values(1)===a.min){g+=1;e=d(this.handles[g])}if(this._start(b,g)===false)return false; -this._mouseSliding=true;j._handleIndex=g;e.addClass("ui-state-active").focus();a=e.offset();this._clickOffset=!d(b.target).parents().andSelf().is(".ui-slider-handle")?{left:0,top:0}:{left:b.pageX-a.left-e.width()/2,top:b.pageY-a.top-e.height()/2-(parseInt(e.css("borderTopWidth"),10)||0)-(parseInt(e.css("borderBottomWidth"),10)||0)+(parseInt(e.css("marginTop"),10)||0)};this.handles.hasClass("ui-state-hover")||this._slide(b,g,c);return this._animateOff=true},_mouseStart:function(){return true},_mouseDrag:function(b){var a= -this._normValueFromMouse({x:b.pageX,y:b.pageY});this._slide(b,this._handleIndex,a);return false},_mouseStop:function(b){this.handles.removeClass("ui-state-active");this._mouseSliding=false;this._stop(b,this._handleIndex);this._change(b,this._handleIndex);this._clickOffset=this._handleIndex=null;return this._animateOff=false},_detectOrientation:function(){this.orientation=this.options.orientation==="vertical"?"vertical":"horizontal"},_normValueFromMouse:function(b){var a;if(this.orientation==="horizontal"){a= -this.elementSize.width;b=b.x-this.elementOffset.left-(this._clickOffset?this._clickOffset.left:0)}else{a=this.elementSize.height;b=b.y-this.elementOffset.top-(this._clickOffset?this._clickOffset.top:0)}a=b/a;if(a>1)a=1;if(a<0)a=0;if(this.orientation==="vertical")a=1-a;b=this._valueMax()-this._valueMin();return this._trimAlignValue(this._valueMin()+a*b)},_start:function(b,a){var c={handle:this.handles[a],value:this.value()};if(this.options.values&&this.options.values.length){c.value=this.values(a); -c.values=this.values()}return this._trigger("start",b,c)},_slide:function(b,a,c){var f;if(this.options.values&&this.options.values.length){f=this.values(a?0:1);if(this.options.values.length===2&&this.options.range===true&&(a===0&&c>f||a===1&&c1){this.options.values[b]=this._trimAlignValue(a);this._refreshValue();this._change(null,b)}else if(arguments.length)if(d.isArray(arguments[0])){c=this.options.values;f=arguments[0];for(e=0;e=this._valueMax())return this._valueMax();var a=this.options.step>0?this.options.step:1,c=(b-this._valueMin())%a;alignValue=b-c;if(Math.abs(c)*2>=a)alignValue+=c>0?a:-a;return parseFloat(alignValue.toFixed(5))},_valueMin:function(){return this.options.min},_valueMax:function(){return this.options.max}, -_refreshValue:function(){var b=this.options.range,a=this.options,c=this,f=!this._animateOff?a.animate:false,e,j={},g,k,l,i;if(this.options.values&&this.options.values.length)this.handles.each(function(h){e=(c.values(h)-c._valueMin())/(c._valueMax()-c._valueMin())*100;j[c.orientation==="horizontal"?"left":"bottom"]=e+"%";d(this).stop(1,1)[f?"animate":"css"](j,a.animate);if(c.options.range===true)if(c.orientation==="horizontal"){if(h===0)c.range.stop(1,1)[f?"animate":"css"]({left:e+"%"},a.animate); -if(h===1)c.range[f?"animate":"css"]({width:e-g+"%"},{queue:false,duration:a.animate})}else{if(h===0)c.range.stop(1,1)[f?"animate":"css"]({bottom:e+"%"},a.animate);if(h===1)c.range[f?"animate":"css"]({height:e-g+"%"},{queue:false,duration:a.animate})}g=e});else{k=this.value();l=this._valueMin();i=this._valueMax();e=i!==l?(k-l)/(i-l)*100:0;j[c.orientation==="horizontal"?"left":"bottom"]=e+"%";this.handle.stop(1,1)[f?"animate":"css"](j,a.animate);if(b==="min"&&this.orientation==="horizontal")this.range.stop(1, -1)[f?"animate":"css"]({width:e+"%"},a.animate);if(b==="max"&&this.orientation==="horizontal")this.range[f?"animate":"css"]({width:100-e+"%"},{queue:false,duration:a.animate});if(b==="min"&&this.orientation==="vertical")this.range.stop(1,1)[f?"animate":"css"]({height:e+"%"},a.animate);if(b==="max"&&this.orientation==="vertical")this.range[f?"animate":"css"]({height:100-e+"%"},{queue:false,duration:a.animate})}}});d.extend(d.ui.slider,{version:"1.8.13"})})(jQuery); +(function(d){d.widget("ui.slider",d.ui.mouse,{widgetEventPrefix:"slide",options:{animate:false,distance:0,max:100,min:0,orientation:"horizontal",range:false,step:1,value:0,values:null},_create:function(){var a=this,b=this.options,c=this.element.find(".ui-slider-handle").addClass("ui-state-default ui-corner-all"),f=b.values&&b.values.length||1,e=[];this._mouseSliding=this._keySliding=false;this._animateOff=true;this._handleIndex=null;this._detectOrientation();this._mouseInit();this.element.addClass("ui-slider ui-slider-"+ +this.orientation+" ui-widget ui-widget-content ui-corner-all"+(b.disabled?" ui-slider-disabled ui-disabled":""));this.range=d([]);if(b.range){if(b.range===true){if(!b.values)b.values=[this._valueMin(),this._valueMin()];if(b.values.length&&b.values.length!==2)b.values=[b.values[0],b.values[0]]}this.range=d("
    ").appendTo(this.element).addClass("ui-slider-range ui-widget-header"+(b.range==="min"||b.range==="max"?" ui-slider-range-"+b.range:""))}for(var j=c.length;j"); +this.handles=c.add(d(e.join("")).appendTo(a.element));this.handle=this.handles.eq(0);this.handles.add(this.range).filter("a").click(function(g){g.preventDefault()}).hover(function(){b.disabled||d(this).addClass("ui-state-hover")},function(){d(this).removeClass("ui-state-hover")}).focus(function(){if(b.disabled)d(this).blur();else{d(".ui-slider .ui-state-focus").removeClass("ui-state-focus");d(this).addClass("ui-state-focus")}}).blur(function(){d(this).removeClass("ui-state-focus")});this.handles.each(function(g){d(this).data("index.ui-slider-handle", +g)});this.handles.keydown(function(g){var k=true,l=d(this).data("index.ui-slider-handle"),i,h,m;if(!a.options.disabled){switch(g.keyCode){case d.ui.keyCode.HOME:case d.ui.keyCode.END:case d.ui.keyCode.PAGE_UP:case d.ui.keyCode.PAGE_DOWN:case d.ui.keyCode.UP:case d.ui.keyCode.RIGHT:case d.ui.keyCode.DOWN:case d.ui.keyCode.LEFT:k=false;if(!a._keySliding){a._keySliding=true;d(this).addClass("ui-state-active");i=a._start(g,l);if(i===false)return}break}m=a.options.step;i=a.options.values&&a.options.values.length? +(h=a.values(l)):(h=a.value());switch(g.keyCode){case d.ui.keyCode.HOME:h=a._valueMin();break;case d.ui.keyCode.END:h=a._valueMax();break;case d.ui.keyCode.PAGE_UP:h=a._trimAlignValue(i+(a._valueMax()-a._valueMin())/5);break;case d.ui.keyCode.PAGE_DOWN:h=a._trimAlignValue(i-(a._valueMax()-a._valueMin())/5);break;case d.ui.keyCode.UP:case d.ui.keyCode.RIGHT:if(i===a._valueMax())return;h=a._trimAlignValue(i+m);break;case d.ui.keyCode.DOWN:case d.ui.keyCode.LEFT:if(i===a._valueMin())return;h=a._trimAlignValue(i- +m);break}a._slide(g,l,h);return k}}).keyup(function(g){var k=d(this).data("index.ui-slider-handle");if(a._keySliding){a._keySliding=false;a._stop(g,k);a._change(g,k);d(this).removeClass("ui-state-active")}});this._refreshValue();this._animateOff=false},destroy:function(){this.handles.remove();this.range.remove();this.element.removeClass("ui-slider ui-slider-horizontal ui-slider-vertical ui-slider-disabled ui-widget ui-widget-content ui-corner-all").removeData("slider").unbind(".slider");this._mouseDestroy(); +return this},_mouseCapture:function(a){var b=this.options,c,f,e,j,g;if(b.disabled)return false;this.elementSize={width:this.element.outerWidth(),height:this.element.outerHeight()};this.elementOffset=this.element.offset();c=this._normValueFromMouse({x:a.pageX,y:a.pageY});f=this._valueMax()-this._valueMin()+1;j=this;this.handles.each(function(k){var l=Math.abs(c-j.values(k));if(f>l){f=l;e=d(this);g=k}});if(b.range===true&&this.values(1)===b.min){g+=1;e=d(this.handles[g])}if(this._start(a,g)===false)return false; +this._mouseSliding=true;j._handleIndex=g;e.addClass("ui-state-active").focus();b=e.offset();this._clickOffset=!d(a.target).parents().andSelf().is(".ui-slider-handle")?{left:0,top:0}:{left:a.pageX-b.left-e.width()/2,top:a.pageY-b.top-e.height()/2-(parseInt(e.css("borderTopWidth"),10)||0)-(parseInt(e.css("borderBottomWidth"),10)||0)+(parseInt(e.css("marginTop"),10)||0)};this.handles.hasClass("ui-state-hover")||this._slide(a,g,c);return this._animateOff=true},_mouseStart:function(){return true},_mouseDrag:function(a){var b= +this._normValueFromMouse({x:a.pageX,y:a.pageY});this._slide(a,this._handleIndex,b);return false},_mouseStop:function(a){this.handles.removeClass("ui-state-active");this._mouseSliding=false;this._stop(a,this._handleIndex);this._change(a,this._handleIndex);this._clickOffset=this._handleIndex=null;return this._animateOff=false},_detectOrientation:function(){this.orientation=this.options.orientation==="vertical"?"vertical":"horizontal"},_normValueFromMouse:function(a){var b;if(this.orientation==="horizontal"){b= +this.elementSize.width;a=a.x-this.elementOffset.left-(this._clickOffset?this._clickOffset.left:0)}else{b=this.elementSize.height;a=a.y-this.elementOffset.top-(this._clickOffset?this._clickOffset.top:0)}b=a/b;if(b>1)b=1;if(b<0)b=0;if(this.orientation==="vertical")b=1-b;a=this._valueMax()-this._valueMin();return this._trimAlignValue(this._valueMin()+b*a)},_start:function(a,b){var c={handle:this.handles[b],value:this.value()};if(this.options.values&&this.options.values.length){c.value=this.values(b); +c.values=this.values()}return this._trigger("start",a,c)},_slide:function(a,b,c){var f;if(this.options.values&&this.options.values.length){f=this.values(b?0:1);if(this.options.values.length===2&&this.options.range===true&&(b===0&&c>f||b===1&&c1){this.options.values[a]=this._trimAlignValue(b);this._refreshValue();this._change(null,a)}else if(arguments.length)if(d.isArray(arguments[0])){c=this.options.values;f=arguments[0];for(e=0;e=this._valueMax())return this._valueMax();var b=this.options.step>0?this.options.step:1,c=(a-this._valueMin())%b;a=a-c;if(Math.abs(c)*2>=b)a+=c>0?b:-b;return parseFloat(a.toFixed(5))},_valueMin:function(){return this.options.min},_valueMax:function(){return this.options.max},_refreshValue:function(){var a= +this.options.range,b=this.options,c=this,f=!this._animateOff?b.animate:false,e,j={},g,k,l,i;if(this.options.values&&this.options.values.length)this.handles.each(function(h){e=(c.values(h)-c._valueMin())/(c._valueMax()-c._valueMin())*100;j[c.orientation==="horizontal"?"left":"bottom"]=e+"%";d(this).stop(1,1)[f?"animate":"css"](j,b.animate);if(c.options.range===true)if(c.orientation==="horizontal"){if(h===0)c.range.stop(1,1)[f?"animate":"css"]({left:e+"%"},b.animate);if(h===1)c.range[f?"animate":"css"]({width:e- +g+"%"},{queue:false,duration:b.animate})}else{if(h===0)c.range.stop(1,1)[f?"animate":"css"]({bottom:e+"%"},b.animate);if(h===1)c.range[f?"animate":"css"]({height:e-g+"%"},{queue:false,duration:b.animate})}g=e});else{k=this.value();l=this._valueMin();i=this._valueMax();e=i!==l?(k-l)/(i-l)*100:0;j[c.orientation==="horizontal"?"left":"bottom"]=e+"%";this.handle.stop(1,1)[f?"animate":"css"](j,b.animate);if(a==="min"&&this.orientation==="horizontal")this.range.stop(1,1)[f?"animate":"css"]({width:e+"%"}, +b.animate);if(a==="max"&&this.orientation==="horizontal")this.range[f?"animate":"css"]({width:100-e+"%"},{queue:false,duration:b.animate});if(a==="min"&&this.orientation==="vertical")this.range.stop(1,1)[f?"animate":"css"]({height:e+"%"},b.animate);if(a==="max"&&this.orientation==="vertical")this.range[f?"animate":"css"]({height:100-e+"%"},{queue:false,duration:b.animate})}}});d.extend(d.ui.slider,{version:"1.8.15"})})(jQuery); ;/* - * jQuery UI Tabs 1.8.13 + * jQuery UI Tabs 1.8.15 * * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) * Dual licensed under the MIT or GPL Version 2 licenses. @@ -462,10 +467,10 @@ if(a.hasClass("ui-tabs-selected")&&this.anchors.length>1)this.select(b+(b+1'))}function N(a){return a.delegate("button, .ui-datepicker-prev, .ui-datepicker-next, .ui-datepicker-calendar td a", -"mouseout",function(){d(this).removeClass("ui-state-hover");this.className.indexOf("ui-datepicker-prev")!=-1&&d(this).removeClass("ui-datepicker-prev-hover");this.className.indexOf("ui-datepicker-next")!=-1&&d(this).removeClass("ui-datepicker-next-hover")}).delegate("button, .ui-datepicker-prev, .ui-datepicker-next, .ui-datepicker-calendar td a","mouseover",function(){if(!d.datepicker._isDisabledDatepicker(J.inline?a.parent()[0]:J.input[0])){d(this).parents(".ui-datepicker-calendar").find("a").removeClass("ui-state-hover"); -d(this).addClass("ui-state-hover");this.className.indexOf("ui-datepicker-prev")!=-1&&d(this).addClass("ui-datepicker-prev-hover");this.className.indexOf("ui-datepicker-next")!=-1&&d(this).addClass("ui-datepicker-next-hover")}})}function H(a,b){d.extend(a,b);for(var c in b)if(b[c]==null||b[c]==B)a[c]=b[c];return a}d.extend(d.ui,{datepicker:{version:"1.8.13"}});var z=(new Date).getTime(),J;d.extend(M.prototype,{markerClassName:"hasDatepicker",log:function(){this.debug&&console.log.apply("",arguments)}, -_widgetDatepicker:function(){return this.dpDiv},setDefaults:function(a){H(this._defaults,a||{});return this},_attachDatepicker:function(a,b){var c=null;for(var e in this._defaults){var f=a.getAttribute("date:"+e);if(f){c=c||{};try{c[e]=eval(f)}catch(h){c[e]=f}}}e=a.nodeName.toLowerCase();f=e=="div"||e=="span";if(!a.id){this.uuid+=1;a.id="dp"+this.uuid}var i=this._newInst(d(a),f);i.settings=d.extend({},b||{},c||{});if(e=="input")this._connectDatepicker(a,i);else f&&this._inlineDatepicker(a,i)},_newInst:function(a, -b){return{id:a[0].id.replace(/([^A-Za-z0-9_-])/g,"\\\\$1"),input:a,selectedDay:0,selectedMonth:0,selectedYear:0,drawMonth:0,drawYear:0,inline:b,dpDiv:!b?this.dpDiv:N(d('
    '))}},_connectDatepicker:function(a,b){var c=d(a);b.append=d([]);b.trigger=d([]);if(!c.hasClass(this.markerClassName)){this._attachments(c,b);c.addClass(this.markerClassName).keydown(this._doKeyDown).keypress(this._doKeyPress).keyup(this._doKeyUp).bind("setData.datepicker", -function(e,f,h){b.settings[f]=h}).bind("getData.datepicker",function(e,f){return this._get(b,f)});this._autoSize(b);d.data(a,"datepicker",b)}},_attachments:function(a,b){var c=this._get(b,"appendText"),e=this._get(b,"isRTL");b.append&&b.append.remove();if(c){b.append=d(''+c+"");a[e?"before":"after"](b.append)}a.unbind("focus",this._showDatepicker);b.trigger&&b.trigger.remove();c=this._get(b,"showOn");if(c=="focus"||c=="both")a.focus(this._showDatepicker); -if(c=="button"||c=="both"){c=this._get(b,"buttonText");var f=this._get(b,"buttonImage");b.trigger=d(this._get(b,"buttonImageOnly")?d("").addClass(this._triggerClass).attr({src:f,alt:c,title:c}):d('').addClass(this._triggerClass).html(f==""?c:d("").attr({src:f,alt:c,title:c})));a[e?"before":"after"](b.trigger);b.trigger.click(function(){d.datepicker._datepickerShowing&&d.datepicker._lastInput==a[0]?d.datepicker._hideDatepicker():d.datepicker._showDatepicker(a[0]); -return false})}},_autoSize:function(a){if(this._get(a,"autoSize")&&!a.inline){var b=new Date(2009,11,20),c=this._get(a,"dateFormat");if(c.match(/[DM]/)){var e=function(f){for(var h=0,i=0,g=0;gh){h=f[g].length;i=g}return i};b.setMonth(e(this._get(a,c.match(/MM/)?"monthNames":"monthNamesShort")));b.setDate(e(this._get(a,c.match(/DD/)?"dayNames":"dayNamesShort"))+20-b.getDay())}a.input.attr("size",this._formatDate(a,b).length)}},_inlineDatepicker:function(a,b){var c=d(a); -if(!c.hasClass(this.markerClassName)){c.addClass(this.markerClassName).append(b.dpDiv).bind("setData.datepicker",function(e,f,h){b.settings[f]=h}).bind("getData.datepicker",function(e,f){return this._get(b,f)});d.data(a,"datepicker",b);this._setDate(b,this._getDefaultDate(b),true);this._updateDatepicker(b);this._updateAlternate(b);b.dpDiv.show()}},_dialogDatepicker:function(a,b,c,e,f){a=this._dialogInst;if(!a){this.uuid+=1;this._dialogInput=d(''); -this._dialogInput.keydown(this._doKeyDown);d("body").append(this._dialogInput);a=this._dialogInst=this._newInst(this._dialogInput,false);a.settings={};d.data(this._dialogInput[0],"datepicker",a)}H(a.settings,e||{});b=b&&b.constructor==Date?this._formatDate(a,b):b;this._dialogInput.val(b);this._pos=f?f.length?f:[f.pageX,f.pageY]:null;if(!this._pos)this._pos=[document.documentElement.clientWidth/2-100+(document.documentElement.scrollLeft||document.body.scrollLeft),document.documentElement.clientHeight/ -2-150+(document.documentElement.scrollTop||document.body.scrollTop)];this._dialogInput.css("left",this._pos[0]+20+"px").css("top",this._pos[1]+"px");a.settings.onSelect=c;this._inDialog=true;this.dpDiv.addClass(this._dialogClass);this._showDatepicker(this._dialogInput[0]);d.blockUI&&d.blockUI(this.dpDiv);d.data(this._dialogInput[0],"datepicker",a);return this},_destroyDatepicker:function(a){var b=d(a),c=d.data(a,"datepicker");if(b.hasClass(this.markerClassName)){var e=a.nodeName.toLowerCase();d.removeData(a, -"datepicker");if(e=="input"){c.append.remove();c.trigger.remove();b.removeClass(this.markerClassName).unbind("focus",this._showDatepicker).unbind("keydown",this._doKeyDown).unbind("keypress",this._doKeyPress).unbind("keyup",this._doKeyUp)}else if(e=="div"||e=="span")b.removeClass(this.markerClassName).empty()}},_enableDatepicker:function(a){var b=d(a),c=d.data(a,"datepicker");if(b.hasClass(this.markerClassName)){var e=a.nodeName.toLowerCase();if(e=="input"){a.disabled=false;c.trigger.filter("button").each(function(){this.disabled= -false}).end().filter("img").css({opacity:"1.0",cursor:""})}else if(e=="div"||e=="span"){b=b.children("."+this._inlineClass);b.children().removeClass("ui-state-disabled");b.find("select.ui-datepicker-month, select.ui-datepicker-year").removeAttr("disabled")}this._disabledInputs=d.map(this._disabledInputs,function(f){return f==a?null:f})}},_disableDatepicker:function(a){var b=d(a),c=d.data(a,"datepicker");if(b.hasClass(this.markerClassName)){var e=a.nodeName.toLowerCase();if(e=="input"){a.disabled= -true;c.trigger.filter("button").each(function(){this.disabled=true}).end().filter("img").css({opacity:"0.5",cursor:"default"})}else if(e=="div"||e=="span"){b=b.children("."+this._inlineClass);b.children().addClass("ui-state-disabled");b.find("select.ui-datepicker-month, select.ui-datepicker-year").attr("disabled","disabled")}this._disabledInputs=d.map(this._disabledInputs,function(f){return f==a?null:f});this._disabledInputs[this._disabledInputs.length]=a}},_isDisabledDatepicker:function(a){if(!a)return false; -for(var b=0;b-1}},_doKeyUp:function(a){a=d.datepicker._getInst(a.target);if(a.input.val()!=a.lastVal)try{if(d.datepicker.parseDate(d.datepicker._get(a,"dateFormat"),a.input?a.input.val():null,d.datepicker._getFormatConfig(a))){d.datepicker._setDateFromField(a); -d.datepicker._updateAlternate(a);d.datepicker._updateDatepicker(a)}}catch(b){d.datepicker.log(b)}return true},_showDatepicker:function(a){a=a.target||a;if(a.nodeName.toLowerCase()!="input")a=d("input",a.parentNode)[0];if(!(d.datepicker._isDisabledDatepicker(a)||d.datepicker._lastInput==a)){var b=d.datepicker._getInst(a);d.datepicker._curInst&&d.datepicker._curInst!=b&&d.datepicker._curInst.dpDiv.stop(true,true);var c=d.datepicker._get(b,"beforeShow");H(b.settings,c?c.apply(a,[a,b]):{});b.lastVal= -null;d.datepicker._lastInput=a;d.datepicker._setDateFromField(b);if(d.datepicker._inDialog)a.value="";if(!d.datepicker._pos){d.datepicker._pos=d.datepicker._findPos(a);d.datepicker._pos[1]+=a.offsetHeight}var e=false;d(a).parents().each(function(){e|=d(this).css("position")=="fixed";return!e});if(e&&d.browser.opera){d.datepicker._pos[0]-=document.documentElement.scrollLeft;d.datepicker._pos[1]-=document.documentElement.scrollTop}c={left:d.datepicker._pos[0],top:d.datepicker._pos[1]};d.datepicker._pos= -null;b.dpDiv.empty();b.dpDiv.css({position:"absolute",display:"block",top:"-1000px"});d.datepicker._updateDatepicker(b);c=d.datepicker._checkOffset(b,c,e);b.dpDiv.css({position:d.datepicker._inDialog&&d.blockUI?"static":e?"fixed":"absolute",display:"none",left:c.left+"px",top:c.top+"px"});if(!b.inline){c=d.datepicker._get(b,"showAnim");var f=d.datepicker._get(b,"duration"),h=function(){var i=b.dpDiv.find("iframe.ui-datepicker-cover");if(i.length){var g=d.datepicker._getBorders(b.dpDiv);i.css({left:-g[0], -top:-g[1],width:b.dpDiv.outerWidth(),height:b.dpDiv.outerHeight()})}};b.dpDiv.zIndex(d(a).zIndex()+1);d.datepicker._datepickerShowing=true;d.effects&&d.effects[c]?b.dpDiv.show(c,d.datepicker._get(b,"showOptions"),f,h):b.dpDiv[c||"show"](c?f:null,h);if(!c||!f)h();b.input.is(":visible")&&!b.input.is(":disabled")&&b.input.focus();d.datepicker._curInst=b}}},_updateDatepicker:function(a){var b=d.datepicker._getBorders(a.dpDiv);J=a;a.dpDiv.empty().append(this._generateHTML(a));var c=a.dpDiv.find("iframe.ui-datepicker-cover"); -c.length&&c.css({left:-b[0],top:-b[1],width:a.dpDiv.outerWidth(),height:a.dpDiv.outerHeight()});a.dpDiv.find("."+this._dayOverClass+" a").mouseover();b=this._getNumberOfMonths(a);c=b[1];a.dpDiv.removeClass("ui-datepicker-multi-2 ui-datepicker-multi-3 ui-datepicker-multi-4").width("");c>1&&a.dpDiv.addClass("ui-datepicker-multi-"+c).css("width",17*c+"em");a.dpDiv[(b[0]!=1||b[1]!=1?"add":"remove")+"Class"]("ui-datepicker-multi");a.dpDiv[(this._get(a,"isRTL")?"add":"remove")+"Class"]("ui-datepicker-rtl"); -a==d.datepicker._curInst&&d.datepicker._datepickerShowing&&a.input&&a.input.is(":visible")&&!a.input.is(":disabled")&&a.input[0]!=document.activeElement&&a.input.focus();if(a.yearshtml){var e=a.yearshtml;setTimeout(function(){e===a.yearshtml&&a.yearshtml&&a.dpDiv.find("select.ui-datepicker-year:first").replaceWith(a.yearshtml);e=a.yearshtml=null},0)}},_getBorders:function(a){var b=function(c){return{thin:1,medium:2,thick:3}[c]||c};return[parseFloat(b(a.css("border-left-width"))),parseFloat(b(a.css("border-top-width")))]}, -_checkOffset:function(a,b,c){var e=a.dpDiv.outerWidth(),f=a.dpDiv.outerHeight(),h=a.input?a.input.outerWidth():0,i=a.input?a.input.outerHeight():0,g=document.documentElement.clientWidth+d(document).scrollLeft(),j=document.documentElement.clientHeight+d(document).scrollTop();b.left-=this._get(a,"isRTL")?e-h:0;b.left-=c&&b.left==a.input.offset().left?d(document).scrollLeft():0;b.top-=c&&b.top==a.input.offset().top+i?d(document).scrollTop():0;b.left-=Math.min(b.left,b.left+e>g&&g>e?Math.abs(b.left+e- -g):0);b.top-=Math.min(b.top,b.top+f>j&&j>f?Math.abs(f+i):0);return b},_findPos:function(a){for(var b=this._get(this._getInst(a),"isRTL");a&&(a.type=="hidden"||a.nodeType!=1||d.expr.filters.hidden(a));)a=a[b?"previousSibling":"nextSibling"];a=d(a).offset();return[a.left,a.top]},_hideDatepicker:function(a){var b=this._curInst;if(!(!b||a&&b!=d.data(a,"datepicker")))if(this._datepickerShowing){a=this._get(b,"showAnim");var c=this._get(b,"duration"),e=function(){d.datepicker._tidyDialog(b);this._curInst= -null};d.effects&&d.effects[a]?b.dpDiv.hide(a,d.datepicker._get(b,"showOptions"),c,e):b.dpDiv[a=="slideDown"?"slideUp":a=="fadeIn"?"fadeOut":"hide"](a?c:null,e);a||e();if(a=this._get(b,"onClose"))a.apply(b.input?b.input[0]:null,[b.input?b.input.val():"",b]);this._datepickerShowing=false;this._lastInput=null;if(this._inDialog){this._dialogInput.css({position:"absolute",left:"0",top:"-100px"});if(d.blockUI){d.unblockUI();d("body").append(this.dpDiv)}}this._inDialog=false}},_tidyDialog:function(a){a.dpDiv.removeClass(this._dialogClass).unbind(".ui-datepicker-calendar")}, +minDate:null,maxDate:null,duration:"fast",beforeShowDay:null,beforeShow:null,onSelect:null,onChangeMonthYear:null,onClose:null,numberOfMonths:1,showCurrentAtPos:0,stepMonths:1,stepBigMonths:12,altField:"",altFormat:"",constrainInput:true,showButtonPanel:false,autoSize:false,disabled:false};d.extend(this._defaults,this.regional[""]);this.dpDiv=N(d('
    '))}function N(a){return a.bind("mouseout", +function(b){b=d(b.target).closest("button, .ui-datepicker-prev, .ui-datepicker-next, .ui-datepicker-calendar td a");b.length&&b.removeClass("ui-state-hover ui-datepicker-prev-hover ui-datepicker-next-hover")}).bind("mouseover",function(b){b=d(b.target).closest("button, .ui-datepicker-prev, .ui-datepicker-next, .ui-datepicker-calendar td a");if(!(d.datepicker._isDisabledDatepicker(J.inline?a.parent()[0]:J.input[0])||!b.length)){b.parents(".ui-datepicker-calendar").find("a").removeClass("ui-state-hover"); +b.addClass("ui-state-hover");b.hasClass("ui-datepicker-prev")&&b.addClass("ui-datepicker-prev-hover");b.hasClass("ui-datepicker-next")&&b.addClass("ui-datepicker-next-hover")}})}function H(a,b){d.extend(a,b);for(var c in b)if(b[c]==null||b[c]==C)a[c]=b[c];return a}d.extend(d.ui,{datepicker:{version:"1.8.15"}});var B=(new Date).getTime(),J;d.extend(M.prototype,{markerClassName:"hasDatepicker",maxRows:4,log:function(){this.debug&&console.log.apply("",arguments)},_widgetDatepicker:function(){return this.dpDiv}, +setDefaults:function(a){H(this._defaults,a||{});return this},_attachDatepicker:function(a,b){var c=null;for(var e in this._defaults){var f=a.getAttribute("date:"+e);if(f){c=c||{};try{c[e]=eval(f)}catch(h){c[e]=f}}}e=a.nodeName.toLowerCase();f=e=="div"||e=="span";if(!a.id){this.uuid+=1;a.id="dp"+this.uuid}var i=this._newInst(d(a),f);i.settings=d.extend({},b||{},c||{});if(e=="input")this._connectDatepicker(a,i);else f&&this._inlineDatepicker(a,i)},_newInst:function(a,b){return{id:a[0].id.replace(/([^A-Za-z0-9_-])/g, +"\\\\$1"),input:a,selectedDay:0,selectedMonth:0,selectedYear:0,drawMonth:0,drawYear:0,inline:b,dpDiv:!b?this.dpDiv:N(d('
    '))}},_connectDatepicker:function(a,b){var c=d(a);b.append=d([]);b.trigger=d([]);if(!c.hasClass(this.markerClassName)){this._attachments(c,b);c.addClass(this.markerClassName).keydown(this._doKeyDown).keypress(this._doKeyPress).keyup(this._doKeyUp).bind("setData.datepicker", +function(e,f,h){b.settings[f]=h}).bind("getData.datepicker",function(e,f){return this._get(b,f)});this._autoSize(b);d.data(a,"datepicker",b);b.settings.disabled&&this._disableDatepicker(a)}},_attachments:function(a,b){var c=this._get(b,"appendText"),e=this._get(b,"isRTL");b.append&&b.append.remove();if(c){b.append=d(''+c+"");a[e?"before":"after"](b.append)}a.unbind("focus",this._showDatepicker);b.trigger&&b.trigger.remove();c=this._get(b,"showOn");if(c== +"focus"||c=="both")a.focus(this._showDatepicker);if(c=="button"||c=="both"){c=this._get(b,"buttonText");var f=this._get(b,"buttonImage");b.trigger=d(this._get(b,"buttonImageOnly")?d("").addClass(this._triggerClass).attr({src:f,alt:c,title:c}):d('').addClass(this._triggerClass).html(f==""?c:d("").attr({src:f,alt:c,title:c})));a[e?"before":"after"](b.trigger);b.trigger.click(function(){d.datepicker._datepickerShowing&&d.datepicker._lastInput==a[0]?d.datepicker._hideDatepicker(): +d.datepicker._showDatepicker(a[0]);return false})}},_autoSize:function(a){if(this._get(a,"autoSize")&&!a.inline){var b=new Date(2009,11,20),c=this._get(a,"dateFormat");if(c.match(/[DM]/)){var e=function(f){for(var h=0,i=0,g=0;gh){h=f[g].length;i=g}return i};b.setMonth(e(this._get(a,c.match(/MM/)?"monthNames":"monthNamesShort")));b.setDate(e(this._get(a,c.match(/DD/)?"dayNames":"dayNamesShort"))+20-b.getDay())}a.input.attr("size",this._formatDate(a,b).length)}},_inlineDatepicker:function(a, +b){var c=d(a);if(!c.hasClass(this.markerClassName)){c.addClass(this.markerClassName).append(b.dpDiv).bind("setData.datepicker",function(e,f,h){b.settings[f]=h}).bind("getData.datepicker",function(e,f){return this._get(b,f)});d.data(a,"datepicker",b);this._setDate(b,this._getDefaultDate(b),true);this._updateDatepicker(b);this._updateAlternate(b);b.settings.disabled&&this._disableDatepicker(a);b.dpDiv.css("display","block")}},_dialogDatepicker:function(a,b,c,e,f){a=this._dialogInst;if(!a){this.uuid+= +1;this._dialogInput=d('');this._dialogInput.keydown(this._doKeyDown);d("body").append(this._dialogInput);a=this._dialogInst=this._newInst(this._dialogInput,false);a.settings={};d.data(this._dialogInput[0],"datepicker",a)}H(a.settings,e||{});b=b&&b.constructor==Date?this._formatDate(a,b):b;this._dialogInput.val(b);this._pos=f?f.length?f:[f.pageX,f.pageY]:null;if(!this._pos)this._pos=[document.documentElement.clientWidth/ +2-100+(document.documentElement.scrollLeft||document.body.scrollLeft),document.documentElement.clientHeight/2-150+(document.documentElement.scrollTop||document.body.scrollTop)];this._dialogInput.css("left",this._pos[0]+20+"px").css("top",this._pos[1]+"px");a.settings.onSelect=c;this._inDialog=true;this.dpDiv.addClass(this._dialogClass);this._showDatepicker(this._dialogInput[0]);d.blockUI&&d.blockUI(this.dpDiv);d.data(this._dialogInput[0],"datepicker",a);return this},_destroyDatepicker:function(a){var b= +d(a),c=d.data(a,"datepicker");if(b.hasClass(this.markerClassName)){var e=a.nodeName.toLowerCase();d.removeData(a,"datepicker");if(e=="input"){c.append.remove();c.trigger.remove();b.removeClass(this.markerClassName).unbind("focus",this._showDatepicker).unbind("keydown",this._doKeyDown).unbind("keypress",this._doKeyPress).unbind("keyup",this._doKeyUp)}else if(e=="div"||e=="span")b.removeClass(this.markerClassName).empty()}},_enableDatepicker:function(a){var b=d(a),c=d.data(a,"datepicker");if(b.hasClass(this.markerClassName)){var e= +a.nodeName.toLowerCase();if(e=="input"){a.disabled=false;c.trigger.filter("button").each(function(){this.disabled=false}).end().filter("img").css({opacity:"1.0",cursor:""})}else if(e=="div"||e=="span"){b=b.children("."+this._inlineClass);b.children().removeClass("ui-state-disabled");b.find("select.ui-datepicker-month, select.ui-datepicker-year").removeAttr("disabled")}this._disabledInputs=d.map(this._disabledInputs,function(f){return f==a?null:f})}},_disableDatepicker:function(a){var b=d(a),c=d.data(a, +"datepicker");if(b.hasClass(this.markerClassName)){var e=a.nodeName.toLowerCase();if(e=="input"){a.disabled=true;c.trigger.filter("button").each(function(){this.disabled=true}).end().filter("img").css({opacity:"0.5",cursor:"default"})}else if(e=="div"||e=="span"){b=b.children("."+this._inlineClass);b.children().addClass("ui-state-disabled");b.find("select.ui-datepicker-month, select.ui-datepicker-year").attr("disabled","disabled")}this._disabledInputs=d.map(this._disabledInputs,function(f){return f== +a?null:f});this._disabledInputs[this._disabledInputs.length]=a}},_isDisabledDatepicker:function(a){if(!a)return false;for(var b=0;b-1}},_doKeyUp:function(a){a=d.datepicker._getInst(a.target);if(a.input.val()!=a.lastVal)try{if(d.datepicker.parseDate(d.datepicker._get(a,"dateFormat"),a.input?a.input.val():null,d.datepicker._getFormatConfig(a))){d.datepicker._setDateFromField(a);d.datepicker._updateAlternate(a);d.datepicker._updateDatepicker(a)}}catch(b){d.datepicker.log(b)}return true},_showDatepicker:function(a){a=a.target||a;if(a.nodeName.toLowerCase()!="input")a=d("input", +a.parentNode)[0];if(!(d.datepicker._isDisabledDatepicker(a)||d.datepicker._lastInput==a)){var b=d.datepicker._getInst(a);if(d.datepicker._curInst&&d.datepicker._curInst!=b){d.datepicker._datepickerShowing&&d.datepicker._triggerOnClose(d.datepicker._curInst);d.datepicker._curInst.dpDiv.stop(true,true)}var c=d.datepicker._get(b,"beforeShow");H(b.settings,c?c.apply(a,[a,b]):{});b.lastVal=null;d.datepicker._lastInput=a;d.datepicker._setDateFromField(b);if(d.datepicker._inDialog)a.value="";if(!d.datepicker._pos){d.datepicker._pos= +d.datepicker._findPos(a);d.datepicker._pos[1]+=a.offsetHeight}var e=false;d(a).parents().each(function(){e|=d(this).css("position")=="fixed";return!e});if(e&&d.browser.opera){d.datepicker._pos[0]-=document.documentElement.scrollLeft;d.datepicker._pos[1]-=document.documentElement.scrollTop}c={left:d.datepicker._pos[0],top:d.datepicker._pos[1]};d.datepicker._pos=null;b.dpDiv.empty();b.dpDiv.css({position:"absolute",display:"block",top:"-1000px"});d.datepicker._updateDatepicker(b);c=d.datepicker._checkOffset(b, +c,e);b.dpDiv.css({position:d.datepicker._inDialog&&d.blockUI?"static":e?"fixed":"absolute",display:"none",left:c.left+"px",top:c.top+"px"});if(!b.inline){c=d.datepicker._get(b,"showAnim");var f=d.datepicker._get(b,"duration"),h=function(){var i=b.dpDiv.find("iframe.ui-datepicker-cover");if(i.length){var g=d.datepicker._getBorders(b.dpDiv);i.css({left:-g[0],top:-g[1],width:b.dpDiv.outerWidth(),height:b.dpDiv.outerHeight()})}};b.dpDiv.zIndex(d(a).zIndex()+1);d.datepicker._datepickerShowing=true;d.effects&& +d.effects[c]?b.dpDiv.show(c,d.datepicker._get(b,"showOptions"),f,h):b.dpDiv[c||"show"](c?f:null,h);if(!c||!f)h();b.input.is(":visible")&&!b.input.is(":disabled")&&b.input.focus();d.datepicker._curInst=b}}},_updateDatepicker:function(a){this.maxRows=4;var b=d.datepicker._getBorders(a.dpDiv);J=a;a.dpDiv.empty().append(this._generateHTML(a));var c=a.dpDiv.find("iframe.ui-datepicker-cover");c.length&&c.css({left:-b[0],top:-b[1],width:a.dpDiv.outerWidth(),height:a.dpDiv.outerHeight()});a.dpDiv.find("."+ +this._dayOverClass+" a").mouseover();b=this._getNumberOfMonths(a);c=b[1];a.dpDiv.removeClass("ui-datepicker-multi-2 ui-datepicker-multi-3 ui-datepicker-multi-4").width("");c>1&&a.dpDiv.addClass("ui-datepicker-multi-"+c).css("width",17*c+"em");a.dpDiv[(b[0]!=1||b[1]!=1?"add":"remove")+"Class"]("ui-datepicker-multi");a.dpDiv[(this._get(a,"isRTL")?"add":"remove")+"Class"]("ui-datepicker-rtl");a==d.datepicker._curInst&&d.datepicker._datepickerShowing&&a.input&&a.input.is(":visible")&&!a.input.is(":disabled")&& +a.input[0]!=document.activeElement&&a.input.focus();if(a.yearshtml){var e=a.yearshtml;setTimeout(function(){e===a.yearshtml&&a.yearshtml&&a.dpDiv.find("select.ui-datepicker-year:first").replaceWith(a.yearshtml);e=a.yearshtml=null},0)}},_getBorders:function(a){var b=function(c){return{thin:1,medium:2,thick:3}[c]||c};return[parseFloat(b(a.css("border-left-width"))),parseFloat(b(a.css("border-top-width")))]},_checkOffset:function(a,b,c){var e=a.dpDiv.outerWidth(),f=a.dpDiv.outerHeight(),h=a.input?a.input.outerWidth(): +0,i=a.input?a.input.outerHeight():0,g=document.documentElement.clientWidth+d(document).scrollLeft(),j=document.documentElement.clientHeight+d(document).scrollTop();b.left-=this._get(a,"isRTL")?e-h:0;b.left-=c&&b.left==a.input.offset().left?d(document).scrollLeft():0;b.top-=c&&b.top==a.input.offset().top+i?d(document).scrollTop():0;b.left-=Math.min(b.left,b.left+e>g&&g>e?Math.abs(b.left+e-g):0);b.top-=Math.min(b.top,b.top+f>j&&j>f?Math.abs(f+i):0);return b},_findPos:function(a){for(var b=this._get(this._getInst(a), +"isRTL");a&&(a.type=="hidden"||a.nodeType!=1||d.expr.filters.hidden(a));)a=a[b?"previousSibling":"nextSibling"];a=d(a).offset();return[a.left,a.top]},_triggerOnClose:function(a){var b=this._get(a,"onClose");if(b)b.apply(a.input?a.input[0]:null,[a.input?a.input.val():"",a])},_hideDatepicker:function(a){var b=this._curInst;if(!(!b||a&&b!=d.data(a,"datepicker")))if(this._datepickerShowing){a=this._get(b,"showAnim");var c=this._get(b,"duration"),e=function(){d.datepicker._tidyDialog(b);this._curInst= +null};d.effects&&d.effects[a]?b.dpDiv.hide(a,d.datepicker._get(b,"showOptions"),c,e):b.dpDiv[a=="slideDown"?"slideUp":a=="fadeIn"?"fadeOut":"hide"](a?c:null,e);a||e();d.datepicker._triggerOnClose(b);this._datepickerShowing=false;this._lastInput=null;if(this._inDialog){this._dialogInput.css({position:"absolute",left:"0",top:"-100px"});if(d.blockUI){d.unblockUI();d("body").append(this.dpDiv)}}this._inDialog=false}},_tidyDialog:function(a){a.dpDiv.removeClass(this._dialogClass).unbind(".ui-datepicker-calendar")}, _checkExternalClick:function(a){if(d.datepicker._curInst){a=d(a.target);a[0].id!=d.datepicker._mainDivId&&a.parents("#"+d.datepicker._mainDivId).length==0&&!a.hasClass(d.datepicker.markerClassName)&&!a.hasClass(d.datepicker._triggerClass)&&d.datepicker._datepickerShowing&&!(d.datepicker._inDialog&&d.blockUI)&&d.datepicker._hideDatepicker()}},_adjustDate:function(a,b,c){a=d(a);var e=this._getInst(a[0]);if(!this._isDisabledDatepicker(a[0])){this._adjustInstDate(e,b+(c=="M"?this._get(e,"showCurrentAtPos"): -0),c);this._updateDatepicker(e)}},_gotoToday:function(a){a=d(a);var b=this._getInst(a[0]);if(this._get(b,"gotoCurrent")&&b.currentDay){b.selectedDay=b.currentDay;b.drawMonth=b.selectedMonth=b.currentMonth;b.drawYear=b.selectedYear=b.currentYear}else{var c=new Date;b.selectedDay=c.getDate();b.drawMonth=b.selectedMonth=c.getMonth();b.drawYear=b.selectedYear=c.getFullYear()}this._notifyChange(b);this._adjustDate(a)},_selectMonthYear:function(a,b,c){a=d(a);var e=this._getInst(a[0]);e._selectingMonthYear= -false;e["selected"+(c=="M"?"Month":"Year")]=e["draw"+(c=="M"?"Month":"Year")]=parseInt(b.options[b.selectedIndex].value,10);this._notifyChange(e);this._adjustDate(a)},_clickMonthYear:function(a){var b=this._getInst(d(a)[0]);b.input&&b._selectingMonthYear&&setTimeout(function(){b.input.focus()},0);b._selectingMonthYear=!b._selectingMonthYear},_selectDay:function(a,b,c,e){var f=d(a);if(!(d(e).hasClass(this._unselectableClass)||this._isDisabledDatepicker(f[0]))){f=this._getInst(f[0]);f.selectedDay=f.currentDay= -d("a",e).html();f.selectedMonth=f.currentMonth=b;f.selectedYear=f.currentYear=c;this._selectDate(a,this._formatDate(f,f.currentDay,f.currentMonth,f.currentYear))}},_clearDate:function(a){a=d(a);this._getInst(a[0]);this._selectDate(a,"")},_selectDate:function(a,b){a=this._getInst(d(a)[0]);b=b!=null?b:this._formatDate(a);a.input&&a.input.val(b);this._updateAlternate(a);var c=this._get(a,"onSelect");if(c)c.apply(a.input?a.input[0]:null,[b,a]);else a.input&&a.input.trigger("change");if(a.inline)this._updateDatepicker(a); -else{this._hideDatepicker();this._lastInput=a.input[0];typeof a.input[0]!="object"&&a.input.focus();this._lastInput=null}},_updateAlternate:function(a){var b=this._get(a,"altField");if(b){var c=this._get(a,"altFormat")||this._get(a,"dateFormat"),e=this._getDate(a),f=this.formatDate(c,e,this._getFormatConfig(a));d(b).each(function(){d(this).val(f)})}},noWeekends:function(a){a=a.getDay();return[a>0&&a<6,""]},iso8601Week:function(a){a=new Date(a.getTime());a.setDate(a.getDate()+4-(a.getDay()||7));var b= -a.getTime();a.setMonth(0);a.setDate(1);return Math.floor(Math.round((b-a)/864E5)/7)+1},parseDate:function(a,b,c){if(a==null||b==null)throw"Invalid arguments";b=typeof b=="object"?b.toString():b+"";if(b=="")return null;var e=(c?c.shortYearCutoff:null)||this._defaults.shortYearCutoff;e=typeof e!="string"?e:(new Date).getFullYear()%100+parseInt(e,10);for(var f=(c?c.dayNamesShort:null)||this._defaults.dayNamesShort,h=(c?c.dayNames:null)||this._defaults.dayNames,i=(c?c.monthNamesShort:null)||this._defaults.monthNamesShort, -g=(c?c.monthNames:null)||this._defaults.monthNames,j=c=-1,l=-1,u=-1,k=false,o=function(p){(p=A+1-1){j=1;l=u;do{e=this._getDaysInMonth(c,j-1);if(l<=e)break;j++;l-=e}while(1)}v=this._daylightSavingAdjust(new Date(c,j-1,l));if(v.getFullYear()!= -c||v.getMonth()+1!=j||v.getDate()!=l)throw"Invalid date";return v},ATOM:"yy-mm-dd",COOKIE:"D, dd M yy",ISO_8601:"yy-mm-dd",RFC_822:"D, d M y",RFC_850:"DD, dd-M-y",RFC_1036:"D, d M y",RFC_1123:"D, d M yy",RFC_2822:"D, d M yy",RSS:"D, d M y",TICKS:"!",TIMESTAMP:"@",W3C:"yy-mm-dd",_ticksTo1970:(718685+Math.floor(492.5)-Math.floor(19.7)+Math.floor(4.925))*24*60*60*1E7,formatDate:function(a,b,c){if(!b)return"";var e=(c?c.dayNamesShort:null)||this._defaults.dayNamesShort,f=(c?c.dayNames:null)||this._defaults.dayNames, -h=(c?c.monthNamesShort:null)||this._defaults.monthNamesShort;c=(c?c.monthNames:null)||this._defaults.monthNames;var i=function(o){(o=k+112?a.getHours()+2:0);return a},_setDate:function(a,b,c){var e=!b,f=a.selectedMonth,h=a.selectedYear;b=this._restrictMinMax(a,this._determineDate(a,b,new Date));a.selectedDay=a.currentDay=b.getDate();a.drawMonth=a.selectedMonth=a.currentMonth=b.getMonth();a.drawYear=a.selectedYear=a.currentYear=b.getFullYear();if((f!=a.selectedMonth||h!=a.selectedYear)&&!c)this._notifyChange(a);this._adjustInstDate(a);if(a.input)a.input.val(e?"":this._formatDate(a))},_getDate:function(a){return!a.currentYear|| -a.input&&a.input.val()==""?null:this._daylightSavingAdjust(new Date(a.currentYear,a.currentMonth,a.currentDay))},_generateHTML:function(a){var b=new Date;b=this._daylightSavingAdjust(new Date(b.getFullYear(),b.getMonth(),b.getDate()));var c=this._get(a,"isRTL"),e=this._get(a,"showButtonPanel"),f=this._get(a,"hideIfNoPrevNext"),h=this._get(a,"navigationAsDateFormat"),i=this._getNumberOfMonths(a),g=this._get(a,"showCurrentAtPos"),j=this._get(a,"stepMonths"),l=i[0]!=1||i[1]!=1,u=this._daylightSavingAdjust(!a.currentDay? -new Date(9999,9,9):new Date(a.currentYear,a.currentMonth,a.currentDay)),k=this._getMinMaxDate(a,"min"),o=this._getMinMaxDate(a,"max");g=a.drawMonth-g;var m=a.drawYear;if(g<0){g+=12;m--}if(o){var n=this._daylightSavingAdjust(new Date(o.getFullYear(),o.getMonth()-i[0]*i[1]+1,o.getDate()));for(n=k&&nn;){g--;if(g<0){g=11;m--}}}a.drawMonth=g;a.drawYear=m;n=this._get(a,"prevText");n=!h?n:this.formatDate(n,this._daylightSavingAdjust(new Date(m,g-j,1)),this._getFormatConfig(a)); -n=this._canAdjustMonth(a,-1,m,g)?''+n+"":f?"":''+n+"";var r=this._get(a,"nextText");r=!h?r:this.formatDate(r,this._daylightSavingAdjust(new Date(m, -g+j,1)),this._getFormatConfig(a));f=this._canAdjustMonth(a,+1,m,g)?''+r+"":f?"":''+r+"";j=this._get(a,"currentText");r=this._get(a,"gotoCurrent")&& -a.currentDay?u:b;j=!h?j:this.formatDate(j,r,this._getFormatConfig(a));h=!a.inline?'":"";e=e?'
    '+(c?h:"")+(this._isInRange(a,r)?'":"")+(c?"":h)+"
    ":"";h=parseInt(this._get(a,"firstDay"),10);h=isNaN(h)?0:h;j=this._get(a,"showWeek");r=this._get(a,"dayNames");this._get(a,"dayNamesShort");var s=this._get(a,"dayNamesMin"),A=this._get(a,"monthNames"),v=this._get(a,"monthNamesShort"),p=this._get(a,"beforeShowDay"),C=this._get(a,"showOtherMonths"),K=this._get(a,"selectOtherMonths");this._get(a,"calculateWeek");for(var E=this._getDefaultDate(a),w="",x=0;x1)switch(G){case 0:y+=" ui-datepicker-group-first";t=" ui-corner-"+(c?"right":"left");break;case i[1]-1:y+=" ui-datepicker-group-last";t=" ui-corner-"+(c?"left":"right");break;default:y+=" ui-datepicker-group-middle";t="";break}y+='">'}y+='
    '+(/all|left/.test(t)&&x==0?c? -f:n:"")+(/all|right/.test(t)&&x==0?c?n:f:"")+this._generateMonthYearHeader(a,g,m,k,o,x>0||G>0,A,v)+'
    ';var D=j?'":"";for(t=0;t<7;t++){var q=(t+h)%7;D+="=5?' class="ui-datepicker-week-end"':"")+'>'+s[q]+""}y+=D+"";D=this._getDaysInMonth(m,g);if(m==a.selectedYear&&g==a.selectedMonth)a.selectedDay=Math.min(a.selectedDay, -D);t=(this._getFirstDayOfMonth(m,g)-h+7)%7;D=l?6:Math.ceil((t+D)/7);q=this._daylightSavingAdjust(new Date(m,g,1-t));for(var Q=0;Q";var R=!j?"":'";for(t=0;t<7;t++){var I=p?p.apply(a.input?a.input[0]:null,[q]):[true,""],F=q.getMonth()!=g,L=F&&!K||!I[0]||k&&qo;R+='";q.setDate(q.getDate()+1);q=this._daylightSavingAdjust(q)}y+=R+""}g++;if(g>11){g=0;m++}y+="
    '+this._get(a,"weekHeader")+"
    '+this._get(a,"calculateWeek")(q)+""+(F&&!C?" ":L?''+q.getDate()+ -"":''+q.getDate()+"")+"
    "+(l?""+(i[0]>0&&G==i[1]-1?'
    ':""):"");O+=y}w+=O}w+=e+(d.browser.msie&&parseInt(d.browser.version,10)<7&&!a.inline?'': -"");a._keyEvent=false;return w},_generateMonthYearHeader:function(a,b,c,e,f,h,i,g){var j=this._get(a,"changeMonth"),l=this._get(a,"changeYear"),u=this._get(a,"showMonthAfterYear"),k='
    ',o="";if(h||!j)o+=''+i[b]+"";else{i=e&&e.getFullYear()==c;var m=f&&f.getFullYear()==c;o+='"}u||(k+=o+(h||!(j&&l)?" ":""));if(!a.yearshtml){a.yearshtml="";if(h||!l)k+=''+c+"";else{g=this._get(a,"yearRange").split(":");var r=(new Date).getFullYear();i=function(s){s=s.match(/c[+-].*/)?c+parseInt(s.substring(1),10):s.match(/[+-].*/)?r+parseInt(s,10):parseInt(s,10);return isNaN(s)? -r:s};b=i(g[0]);g=Math.max(b,i(g[1]||""));b=e?Math.max(b,e.getFullYear()):b;g=f?Math.min(g,f.getFullYear()):g;for(a.yearshtml+='";k+=a.yearshtml;a.yearshtml=null}}k+=this._get(a,"yearSuffix");if(u)k+= -(h||!(j&&l)?" ":"")+o;k+="
    ";return k},_adjustInstDate:function(a,b,c){var e=a.drawYear+(c=="Y"?b:0),f=a.drawMonth+(c=="M"?b:0);b=Math.min(a.selectedDay,this._getDaysInMonth(e,f))+(c=="D"?b:0);e=this._restrictMinMax(a,this._daylightSavingAdjust(new Date(e,f,b)));a.selectedDay=e.getDate();a.drawMonth=a.selectedMonth=e.getMonth();a.drawYear=a.selectedYear=e.getFullYear();if(c=="M"||c=="Y")this._notifyChange(a)},_restrictMinMax:function(a,b){var c=this._getMinMaxDate(a,"min");a=this._getMinMaxDate(a, -"max");b=c&&ba?a:b},_notifyChange:function(a){var b=this._get(a,"onChangeMonthYear");if(b)b.apply(a.input?a.input[0]:null,[a.selectedYear,a.selectedMonth+1,a])},_getNumberOfMonths:function(a){a=this._get(a,"numberOfMonths");return a==null?[1,1]:typeof a=="number"?[1,a]:a},_getMinMaxDate:function(a,b){return this._determineDate(a,this._get(a,b+"Date"),null)},_getDaysInMonth:function(a,b){return 32-this._daylightSavingAdjust(new Date(a,b,32)).getDate()},_getFirstDayOfMonth:function(a, -b){return(new Date(a,b,1)).getDay()},_canAdjustMonth:function(a,b,c,e){var f=this._getNumberOfMonths(a);c=this._daylightSavingAdjust(new Date(c,e+(b<0?b:f[0]*f[1]),1));b<0&&c.setDate(this._getDaysInMonth(c.getFullYear(),c.getMonth()));return this._isInRange(a,c)},_isInRange:function(a,b){var c=this._getMinMaxDate(a,"min");a=this._getMinMaxDate(a,"max");return(!c||b.getTime()>=c.getTime())&&(!a||b.getTime()<=a.getTime())},_getFormatConfig:function(a){var b=this._get(a,"shortYearCutoff");b=typeof b!= -"string"?b:(new Date).getFullYear()%100+parseInt(b,10);return{shortYearCutoff:b,dayNamesShort:this._get(a,"dayNamesShort"),dayNames:this._get(a,"dayNames"),monthNamesShort:this._get(a,"monthNamesShort"),monthNames:this._get(a,"monthNames")}},_formatDate:function(a,b,c,e){if(!b){a.currentDay=a.selectedDay;a.currentMonth=a.selectedMonth;a.currentYear=a.selectedYear}b=b?typeof b=="object"?b:this._daylightSavingAdjust(new Date(e,c,b)):this._daylightSavingAdjust(new Date(a.currentYear,a.currentMonth,a.currentDay)); -return this.formatDate(this._get(a,"dateFormat"),b,this._getFormatConfig(a))}});d.fn.datepicker=function(a){if(!this.length)return this;if(!d.datepicker.initialized){d(document).mousedown(d.datepicker._checkExternalClick).find("body").append(d.datepicker.dpDiv);d.datepicker.initialized=true}var b=Array.prototype.slice.call(arguments,1);if(typeof a=="string"&&(a=="isDisabled"||a=="getDate"||a=="widget"))return d.datepicker["_"+a+"Datepicker"].apply(d.datepicker,[this[0]].concat(b));if(a=="option"&& -arguments.length==2&&typeof arguments[1]=="string")return d.datepicker["_"+a+"Datepicker"].apply(d.datepicker,[this[0]].concat(b));return this.each(function(){typeof a=="string"?d.datepicker["_"+a+"Datepicker"].apply(d.datepicker,[this].concat(b)):d.datepicker._attachDatepicker(this,a)})};d.datepicker=new M;d.datepicker.initialized=false;d.datepicker.uuid=(new Date).getTime();d.datepicker.version="1.8.13";window["DP_jQuery_"+z]=d})(jQuery); +0),c);this._updateDatepicker(e)}},_gotoToday:function(a){a=d(a);var b=this._getInst(a[0]);if(this._get(b,"gotoCurrent")&&b.currentDay){b.selectedDay=b.currentDay;b.drawMonth=b.selectedMonth=b.currentMonth;b.drawYear=b.selectedYear=b.currentYear}else{var c=new Date;b.selectedDay=c.getDate();b.drawMonth=b.selectedMonth=c.getMonth();b.drawYear=b.selectedYear=c.getFullYear()}this._notifyChange(b);this._adjustDate(a)},_selectMonthYear:function(a,b,c){a=d(a);var e=this._getInst(a[0]);e["selected"+(c=="M"? +"Month":"Year")]=e["draw"+(c=="M"?"Month":"Year")]=parseInt(b.options[b.selectedIndex].value,10);this._notifyChange(e);this._adjustDate(a)},_selectDay:function(a,b,c,e){var f=d(a);if(!(d(e).hasClass(this._unselectableClass)||this._isDisabledDatepicker(f[0]))){f=this._getInst(f[0]);f.selectedDay=f.currentDay=d("a",e).html();f.selectedMonth=f.currentMonth=b;f.selectedYear=f.currentYear=c;this._selectDate(a,this._formatDate(f,f.currentDay,f.currentMonth,f.currentYear))}},_clearDate:function(a){a=d(a); +this._getInst(a[0]);this._selectDate(a,"")},_selectDate:function(a,b){a=this._getInst(d(a)[0]);b=b!=null?b:this._formatDate(a);a.input&&a.input.val(b);this._updateAlternate(a);var c=this._get(a,"onSelect");if(c)c.apply(a.input?a.input[0]:null,[b,a]);else a.input&&a.input.trigger("change");if(a.inline)this._updateDatepicker(a);else{this._hideDatepicker();this._lastInput=a.input[0];a.input.focus();this._lastInput=null}},_updateAlternate:function(a){var b=this._get(a,"altField");if(b){var c=this._get(a, +"altFormat")||this._get(a,"dateFormat"),e=this._getDate(a),f=this.formatDate(c,e,this._getFormatConfig(a));d(b).each(function(){d(this).val(f)})}},noWeekends:function(a){a=a.getDay();return[a>0&&a<6,""]},iso8601Week:function(a){a=new Date(a.getTime());a.setDate(a.getDate()+4-(a.getDay()||7));var b=a.getTime();a.setMonth(0);a.setDate(1);return Math.floor(Math.round((b-a)/864E5)/7)+1},parseDate:function(a,b,c){if(a==null||b==null)throw"Invalid arguments";b=typeof b=="object"?b.toString():b+"";if(b== +"")return null;var e=(c?c.shortYearCutoff:null)||this._defaults.shortYearCutoff;e=typeof e!="string"?e:(new Date).getFullYear()%100+parseInt(e,10);for(var f=(c?c.dayNamesShort:null)||this._defaults.dayNamesShort,h=(c?c.dayNames:null)||this._defaults.dayNames,i=(c?c.monthNamesShort:null)||this._defaults.monthNamesShort,g=(c?c.monthNames:null)||this._defaults.monthNames,j=c=-1,l=-1,u=-1,k=false,o=function(p){(p=A+1-1){j=1;l=u;do{e=this._getDaysInMonth(c,j-1);if(l<=e)break;j++;l-=e}while(1)}v=this._daylightSavingAdjust(new Date(c,j-1,l));if(v.getFullYear()!=c||v.getMonth()+1!=j||v.getDate()!=l)throw"Invalid date";return v},ATOM:"yy-mm-dd",COOKIE:"D, dd M yy",ISO_8601:"yy-mm-dd",RFC_822:"D, d M y",RFC_850:"DD, dd-M-y", +RFC_1036:"D, d M y",RFC_1123:"D, d M yy",RFC_2822:"D, d M yy",RSS:"D, d M y",TICKS:"!",TIMESTAMP:"@",W3C:"yy-mm-dd",_ticksTo1970:(718685+Math.floor(492.5)-Math.floor(19.7)+Math.floor(4.925))*24*60*60*1E7,formatDate:function(a,b,c){if(!b)return"";var e=(c?c.dayNamesShort:null)||this._defaults.dayNamesShort,f=(c?c.dayNames:null)||this._defaults.dayNames,h=(c?c.monthNamesShort:null)||this._defaults.monthNamesShort;c=(c?c.monthNames:null)||this._defaults.monthNames;var i=function(o){(o=k+112?a.getHours()+2:0);return a},_setDate:function(a,b,c){var e=!b,f=a.selectedMonth,h=a.selectedYear; +b=this._restrictMinMax(a,this._determineDate(a,b,new Date));a.selectedDay=a.currentDay=b.getDate();a.drawMonth=a.selectedMonth=a.currentMonth=b.getMonth();a.drawYear=a.selectedYear=a.currentYear=b.getFullYear();if((f!=a.selectedMonth||h!=a.selectedYear)&&!c)this._notifyChange(a);this._adjustInstDate(a);if(a.input)a.input.val(e?"":this._formatDate(a));if(c=this._get(a,"onSelect")){e=this._formatDate(a);c.apply(a.input?a.input[0]:null,[e,a])}},_getDate:function(a){return!a.currentYear||a.input&&a.input.val()== +""?null:this._daylightSavingAdjust(new Date(a.currentYear,a.currentMonth,a.currentDay))},_generateHTML:function(a){var b=new Date;b=this._daylightSavingAdjust(new Date(b.getFullYear(),b.getMonth(),b.getDate()));var c=this._get(a,"isRTL"),e=this._get(a,"showButtonPanel"),f=this._get(a,"hideIfNoPrevNext"),h=this._get(a,"navigationAsDateFormat"),i=this._getNumberOfMonths(a),g=this._get(a,"showCurrentAtPos"),j=this._get(a,"stepMonths"),l=i[0]!=1||i[1]!=1,u=this._daylightSavingAdjust(!a.currentDay?new Date(9999, +9,9):new Date(a.currentYear,a.currentMonth,a.currentDay)),k=this._getMinMaxDate(a,"min"),o=this._getMinMaxDate(a,"max");g=a.drawMonth-g;var m=a.drawYear;if(g<0){g+=12;m--}if(o){var n=this._daylightSavingAdjust(new Date(o.getFullYear(),o.getMonth()-i[0]*i[1]+1,o.getDate()));for(n=k&&nn;){g--;if(g<0){g=11;m--}}}a.drawMonth=g;a.drawYear=m;n=this._get(a,"prevText");n=!h?n:this.formatDate(n,this._daylightSavingAdjust(new Date(m,g-j,1)),this._getFormatConfig(a)); +n=this._canAdjustMonth(a,-1,m,g)?''+n+"":f?"":''+n+"";var s=this._get(a,"nextText");s=!h?s:this.formatDate(s,this._daylightSavingAdjust(new Date(m, +g+j,1)),this._getFormatConfig(a));f=this._canAdjustMonth(a,+1,m,g)?''+s+"":f?"":''+s+"";j=this._get(a,"currentText");s=this._get(a,"gotoCurrent")&& +a.currentDay?u:b;j=!h?j:this.formatDate(j,s,this._getFormatConfig(a));h=!a.inline?'":"";e=e?'
    '+(c?h:"")+(this._isInRange(a,s)?'":"")+(c?"":h)+"
    ":"";h=parseInt(this._get(a,"firstDay"),10);h=isNaN(h)?0:h;j=this._get(a,"showWeek");s=this._get(a,"dayNames");this._get(a,"dayNamesShort");var q=this._get(a,"dayNamesMin"),A=this._get(a,"monthNames"),v=this._get(a,"monthNamesShort"),p=this._get(a,"beforeShowDay"),D=this._get(a,"showOtherMonths"),K=this._get(a,"selectOtherMonths");this._get(a,"calculateWeek");for(var E=this._getDefaultDate(a),w="",x=0;x1)switch(G){case 0:y+=" ui-datepicker-group-first";t=" ui-corner-"+(c?"right":"left");break;case i[1]-1:y+=" ui-datepicker-group-last";t=" ui-corner-"+(c?"left":"right");break;default:y+=" ui-datepicker-group-middle";t="";break}y+='">'}y+='
    '+(/all|left/.test(t)&& +x==0?c?f:n:"")+(/all|right/.test(t)&&x==0?c?n:f:"")+this._generateMonthYearHeader(a,g,m,k,o,x>0||G>0,A,v)+'
    ';var z=j?'":"";for(t=0;t<7;t++){var r=(t+h)%7;z+="=5?' class="ui-datepicker-week-end"':"")+'>'+q[r]+""}y+=z+"";z=this._getDaysInMonth(m,g);if(m==a.selectedYear&&g==a.selectedMonth)a.selectedDay=Math.min(a.selectedDay, +z);t=(this._getFirstDayOfMonth(m,g)-h+7)%7;z=Math.ceil((t+z)/7);this.maxRows=z=l?this.maxRows>z?this.maxRows:z:z;r=this._daylightSavingAdjust(new Date(m,g,1-t));for(var Q=0;Q";var R=!j?"":'";for(t=0;t<7;t++){var I=p?p.apply(a.input?a.input[0]:null,[r]):[true,""],F=r.getMonth()!=g,L=F&&!K||!I[0]||k&&ro;R+='";r.setDate(r.getDate()+1);r=this._daylightSavingAdjust(r)}y+=R+""}g++;if(g>11){g=0;m++}y+="
    '+this._get(a,"weekHeader")+"
    '+this._get(a,"calculateWeek")(r)+""+(F&&!D?" ":L?''+ +r.getDate()+"":''+r.getDate()+"")+"
    "+(l?""+(i[0]>0&&G==i[1]-1?'
    ':""):"");O+=y}w+=O}w+=e+(d.browser.msie&&parseInt(d.browser.version,10)<7&&!a.inline?'': +"");a._keyEvent=false;return w},_generateMonthYearHeader:function(a,b,c,e,f,h,i,g){var j=this._get(a,"changeMonth"),l=this._get(a,"changeYear"),u=this._get(a,"showMonthAfterYear"),k='
    ',o="";if(h||!j)o+=''+i[b]+"";else{i=e&&e.getFullYear()==c;var m=f&&f.getFullYear()==c;o+='"}u||(k+=o+(h||!(j&&l)?" ":""));if(!a.yearshtml){a.yearshtml="";if(h||!l)k+=''+c+"";else{g=this._get(a,"yearRange").split(":");var s=(new Date).getFullYear();i=function(q){q=q.match(/c[+-].*/)?c+parseInt(q.substring(1),10):q.match(/[+-].*/)?s+parseInt(q,10):parseInt(q,10);return isNaN(q)?s:q};b=i(g[0]);g=Math.max(b,i(g[1]||""));b=e?Math.max(b, +e.getFullYear()):b;g=f?Math.min(g,f.getFullYear()):g;for(a.yearshtml+='";k+=a.yearshtml;a.yearshtml=null}}k+=this._get(a,"yearSuffix");if(u)k+=(h||!(j&&l)?" ":"")+o;k+="
    ";return k},_adjustInstDate:function(a,b,c){var e=a.drawYear+(c=="Y"?b:0),f=a.drawMonth+ +(c=="M"?b:0);b=Math.min(a.selectedDay,this._getDaysInMonth(e,f))+(c=="D"?b:0);e=this._restrictMinMax(a,this._daylightSavingAdjust(new Date(e,f,b)));a.selectedDay=e.getDate();a.drawMonth=a.selectedMonth=e.getMonth();a.drawYear=a.selectedYear=e.getFullYear();if(c=="M"||c=="Y")this._notifyChange(a)},_restrictMinMax:function(a,b){var c=this._getMinMaxDate(a,"min");a=this._getMinMaxDate(a,"max");b=c&&ba?a:b},_notifyChange:function(a){var b=this._get(a,"onChangeMonthYear");if(b)b.apply(a.input? +a.input[0]:null,[a.selectedYear,a.selectedMonth+1,a])},_getNumberOfMonths:function(a){a=this._get(a,"numberOfMonths");return a==null?[1,1]:typeof a=="number"?[1,a]:a},_getMinMaxDate:function(a,b){return this._determineDate(a,this._get(a,b+"Date"),null)},_getDaysInMonth:function(a,b){return 32-this._daylightSavingAdjust(new Date(a,b,32)).getDate()},_getFirstDayOfMonth:function(a,b){return(new Date(a,b,1)).getDay()},_canAdjustMonth:function(a,b,c,e){var f=this._getNumberOfMonths(a);c=this._daylightSavingAdjust(new Date(c, +e+(b<0?b:f[0]*f[1]),1));b<0&&c.setDate(this._getDaysInMonth(c.getFullYear(),c.getMonth()));return this._isInRange(a,c)},_isInRange:function(a,b){var c=this._getMinMaxDate(a,"min");a=this._getMinMaxDate(a,"max");return(!c||b.getTime()>=c.getTime())&&(!a||b.getTime()<=a.getTime())},_getFormatConfig:function(a){var b=this._get(a,"shortYearCutoff");b=typeof b!="string"?b:(new Date).getFullYear()%100+parseInt(b,10);return{shortYearCutoff:b,dayNamesShort:this._get(a,"dayNamesShort"),dayNames:this._get(a, +"dayNames"),monthNamesShort:this._get(a,"monthNamesShort"),monthNames:this._get(a,"monthNames")}},_formatDate:function(a,b,c,e){if(!b){a.currentDay=a.selectedDay;a.currentMonth=a.selectedMonth;a.currentYear=a.selectedYear}b=b?typeof b=="object"?b:this._daylightSavingAdjust(new Date(e,c,b)):this._daylightSavingAdjust(new Date(a.currentYear,a.currentMonth,a.currentDay));return this.formatDate(this._get(a,"dateFormat"),b,this._getFormatConfig(a))}});d.fn.datepicker=function(a){if(!this.length)return this; +if(!d.datepicker.initialized){d(document).mousedown(d.datepicker._checkExternalClick).find("body").append(d.datepicker.dpDiv);d.datepicker.initialized=true}var b=Array.prototype.slice.call(arguments,1);if(typeof a=="string"&&(a=="isDisabled"||a=="getDate"||a=="widget"))return d.datepicker["_"+a+"Datepicker"].apply(d.datepicker,[this[0]].concat(b));if(a=="option"&&arguments.length==2&&typeof arguments[1]=="string")return d.datepicker["_"+a+"Datepicker"].apply(d.datepicker,[this[0]].concat(b));return this.each(function(){typeof a== +"string"?d.datepicker["_"+a+"Datepicker"].apply(d.datepicker,[this].concat(b)):d.datepicker._attachDatepicker(this,a)})};d.datepicker=new M;d.datepicker.initialized=false;d.datepicker.uuid=(new Date).getTime();d.datepicker.version="1.8.15";window["DP_jQuery_"+B]=d})(jQuery); ;/* - * jQuery UI Progressbar 1.8.13 + * jQuery UI Progressbar 1.8.15 * * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) * Dual licensed under the MIT or GPL Version 2 licenses. @@ -561,9 +567,9 @@ arguments.length==2&&typeof arguments[1]=="string")return d.datepicker["_"+a+"Da */ (function(b,d){b.widget("ui.progressbar",{options:{value:0,max:100},min:0,_create:function(){this.element.addClass("ui-progressbar ui-widget ui-widget-content ui-corner-all").attr({role:"progressbar","aria-valuemin":this.min,"aria-valuemax":this.options.max,"aria-valuenow":this._value()});this.valueDiv=b("
    ").appendTo(this.element);this.oldValue=this._value();this._refreshValue()},destroy:function(){this.element.removeClass("ui-progressbar ui-widget ui-widget-content ui-corner-all").removeAttr("role").removeAttr("aria-valuemin").removeAttr("aria-valuemax").removeAttr("aria-valuenow"); this.valueDiv.remove();b.Widget.prototype.destroy.apply(this,arguments)},value:function(a){if(a===d)return this._value();this._setOption("value",a);return this},_setOption:function(a,c){if(a==="value"){this.options.value=c;this._refreshValue();this._value()===this.options.max&&this._trigger("complete")}b.Widget.prototype._setOption.apply(this,arguments)},_value:function(){var a=this.options.value;if(typeof a!=="number")a=0;return Math.min(this.options.max,Math.max(this.min,a))},_percentage:function(){return 100* -this._value()/this.options.max},_refreshValue:function(){var a=this.value(),c=this._percentage();if(this.oldValue!==a){this.oldValue=a;this._trigger("change")}this.valueDiv.toggle(a>this.min).toggleClass("ui-corner-right",a===this.options.max).width(c.toFixed(0)+"%");this.element.attr("aria-valuenow",a)}});b.extend(b.ui.progressbar,{version:"1.8.13"})})(jQuery); +this._value()/this.options.max},_refreshValue:function(){var a=this.value(),c=this._percentage();if(this.oldValue!==a){this.oldValue=a;this._trigger("change")}this.valueDiv.toggle(a>this.min).toggleClass("ui-corner-right",a===this.options.max).width(c.toFixed(0)+"%");this.element.attr("aria-valuenow",a)}});b.extend(b.ui.progressbar,{version:"1.8.15"})})(jQuery); ;/* - * jQuery UI Effects 1.8.13 + * jQuery UI Effects 1.8.15 * * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) * Dual licensed under the MIT or GPL Version 2 licenses. @@ -578,9 +584,9 @@ a;b=null;a=c;c=a.effect}if(f.isFunction(a)){d=a;b=null;a={}}if(typeof a=="number "borderTopColor","borderColor","color","outlineColor"],function(c,a){f.fx.step[a]=function(b){if(!b.colorInit){b.start=s(b.elem,a);b.end=m(b.end);b.colorInit=true}b.elem.style[a]="rgb("+Math.max(Math.min(parseInt(b.pos*(b.end[0]-b.start[0])+b.start[0],10),255),0)+","+Math.max(Math.min(parseInt(b.pos*(b.end[1]-b.start[1])+b.start[1],10),255),0)+","+Math.max(Math.min(parseInt(b.pos*(b.end[2]-b.start[2])+b.start[2],10),255),0)+")"}});var n={aqua:[0,255,255],azure:[240,255,255],beige:[245,245,220],black:[0, 0,0],blue:[0,0,255],brown:[165,42,42],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgrey:[169,169,169],darkgreen:[0,100,0],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkviolet:[148,0,211],fuchsia:[255,0,255],gold:[255,215,0],green:[0,128,0],indigo:[75,0,130],khaki:[240,230,140],lightblue:[173,216,230],lightcyan:[224,255,255],lightgreen:[144,238,144],lightgrey:[211, 211,211],lightpink:[255,182,193],lightyellow:[255,255,224],lime:[0,255,0],magenta:[255,0,255],maroon:[128,0,0],navy:[0,0,128],olive:[128,128,0],orange:[255,165,0],pink:[255,192,203],purple:[128,0,128],violet:[128,0,128],red:[255,0,0],silver:[192,192,192],white:[255,255,255],yellow:[255,255,0],transparent:[255,255,255]},q=["add","remove","toggle"],t={border:1,borderBottom:1,borderColor:1,borderLeft:1,borderRight:1,borderTop:1,borderWidth:1,margin:1,padding:1};f.effects.animateClass=function(c,a,b, -d){if(f.isFunction(b)){d=b;b=null}return this.queue(function(){var e=f(this),g=e.attr("style")||" ",h=p(o.call(this)),r,v=e.attr("class");f.each(q,function(w,i){c[i]&&e[i+"Class"](c[i])});r=p(o.call(this));e.attr("class",v);e.animate(u(h,r),{queue:false,duration:a,easding:b,complete:function(){f.each(q,function(w,i){c[i]&&e[i+"Class"](c[i])});if(typeof e.attr("style")=="object"){e.attr("style").cssText="";e.attr("style").cssText=g}else e.attr("style",g);d&&d.apply(this,arguments);f.dequeue(this)}})})}; +d){if(f.isFunction(b)){d=b;b=null}return this.queue(function(){var e=f(this),g=e.attr("style")||" ",h=p(o.call(this)),r,v=e.attr("class");f.each(q,function(w,i){c[i]&&e[i+"Class"](c[i])});r=p(o.call(this));e.attr("class",v);e.animate(u(h,r),{queue:false,duration:a,easing:b,complete:function(){f.each(q,function(w,i){c[i]&&e[i+"Class"](c[i])});if(typeof e.attr("style")=="object"){e.attr("style").cssText="";e.attr("style").cssText=g}else e.attr("style",g);d&&d.apply(this,arguments);f.dequeue(this)}})})}; f.fn.extend({_addClass:f.fn.addClass,addClass:function(c,a,b,d){return a?f.effects.animateClass.apply(this,[{add:c},a,b,d]):this._addClass(c)},_removeClass:f.fn.removeClass,removeClass:function(c,a,b,d){return a?f.effects.animateClass.apply(this,[{remove:c},a,b,d]):this._removeClass(c)},_toggleClass:f.fn.toggleClass,toggleClass:function(c,a,b,d,e){return typeof a=="boolean"||a===j?b?f.effects.animateClass.apply(this,[a?{add:c}:{remove:c},b,d,e]):this._toggleClass(c,a):f.effects.animateClass.apply(this, -[{toggle:c},a,b,d])},switchClass:function(c,a,b,d,e){return f.effects.animateClass.apply(this,[{add:a,remove:c},b,d,e])}});f.extend(f.effects,{version:"1.8.13",save:function(c,a){for(var b=0;b").addClass("ui-effects-wrapper").css({fontSize:"100%",background:"transparent",border:"none",margin:0,padding:0}); c.wrap(b);b=c.parent();if(c.css("position")=="static"){b.css({position:"relative"});c.css({position:"relative"})}else{f.extend(a,{position:c.css("position"),zIndex:c.css("z-index")});f.each(["top","left","bottom","right"],function(d,e){a[e]=c.css(e);if(isNaN(parseInt(a[e],10)))a[e]="auto"});c.css({position:"relative",top:0,left:0,right:"auto",bottom:"auto"})}return b.css(a).show()},removeWrapper:function(c){if(c.parent().is(".ui-effects-wrapper"))return c.parent().replaceWith(c);return c},setTransition:function(c, a,b,d){d=d||{};f.each(a,function(e,g){unit=c.cssUnit(g);if(unit[0]>0)d[g]=unit[0]*b+unit[1]});return d}});f.fn.extend({effect:function(c){var a=k.apply(this,arguments),b={options:a[1],duration:a[2],callback:a[3]};a=b.options.mode;var d=f.effects[c];if(f.fx.off||!d)return a?this[a](b.duration,b.callback):this.each(function(){b.callback&&b.callback.call(this)});return d.call(this,b)},_show:f.fn.show,show:function(c){if(l(c))return this._show.apply(this,arguments);else{var a=k.apply(this,arguments); @@ -593,7 +599,7 @@ h);return-(h*Math.pow(2,10*(a-=1))*Math.sin((a*e-c)*2*Math.PI/g))+b},easeOutElas h*Math.pow(2,10*(a-=1))*Math.sin((a*e-c)*2*Math.PI/g)+b;return h*Math.pow(2,-10*(a-=1))*Math.sin((a*e-c)*2*Math.PI/g)*0.5+d+b},easeInBack:function(c,a,b,d,e,g){if(g==j)g=1.70158;return d*(a/=e)*a*((g+1)*a-g)+b},easeOutBack:function(c,a,b,d,e,g){if(g==j)g=1.70158;return d*((a=a/e-1)*a*((g+1)*a+g)+1)+b},easeInOutBack:function(c,a,b,d,e,g){if(g==j)g=1.70158;if((a/=e/2)<1)return d/2*a*a*(((g*=1.525)+1)*a-g)+b;return d/2*((a-=2)*a*(((g*=1.525)+1)*a+g)+2)+b},easeInBounce:function(c,a,b,d,e){return d-f.easing.easeOutBounce(c, e-a,0,d,e)+b},easeOutBounce:function(c,a,b,d,e){return(a/=e)<1/2.75?d*7.5625*a*a+b:a<2/2.75?d*(7.5625*(a-=1.5/2.75)*a+0.75)+b:a<2.5/2.75?d*(7.5625*(a-=2.25/2.75)*a+0.9375)+b:d*(7.5625*(a-=2.625/2.75)*a+0.984375)+b},easeInOutBounce:function(c,a,b,d,e){if(a").css({position:"absolute",visibility:"visible",left:-f*(h/d),top:-e*(i/c)}).parent().addClass("ui-effects-explode").css({position:"absolute",overflow:"hidden",width:h/d,height:i/c,left:g.left+f*(h/d)+(a.options.mode=="show"?(f-Math.floor(d/2))*(h/d):0),top:g.top+e*(i/c)+(a.options.mode=="show"?(e-Math.floor(c/2))*(i/c):0),opacity:a.options.mode=="show"?0:1}).animate({left:g.left+f*(h/d)+(a.options.mode=="show"?0:(f-Math.floor(d/2))*(h/d)),top:g.top+ e*(i/c)+(a.options.mode=="show"?0:(e-Math.floor(c/2))*(i/c)),opacity:a.options.mode=="show"?1:0},a.duration||500);setTimeout(function(){a.options.mode=="show"?b.css({visibility:"visible"}):b.css({visibility:"visible"}).hide();a.callback&&a.callback.apply(b[0]);b.dequeue();j("div.ui-effects-explode").remove()},a.duration||500)})}})(jQuery); ;/* - * jQuery UI Effects Fade 1.8.13 + * jQuery UI Effects Fade 1.8.15 * * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) * Dual licensed under the MIT or GPL Version 2 licenses. @@ -678,7 +684,7 @@ e*(i/c)+(a.options.mode=="show"?0:(e-Math.floor(c/2))*(i/c)),opacity:a.options.m */ (function(b){b.effects.fade=function(a){return this.queue(function(){var c=b(this),d=b.effects.setMode(c,a.options.mode||"hide");c.animate({opacity:d},{queue:false,duration:a.duration,easing:a.options.easing,complete:function(){a.callback&&a.callback.apply(this,arguments);c.dequeue()}})})}})(jQuery); ;/* - * jQuery UI Effects Fold 1.8.13 + * jQuery UI Effects Fold 1.8.15 * * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) * Dual licensed under the MIT or GPL Version 2 licenses. @@ -692,7 +698,7 @@ e*(i/c)+(a.options.mode=="show"?0:(e-Math.floor(c/2))*(i/c)),opacity:a.options.m (function(c){c.effects.fold=function(a){return this.queue(function(){var b=c(this),j=["position","top","bottom","left","right"],d=c.effects.setMode(b,a.options.mode||"hide"),g=a.options.size||15,h=!!a.options.horizFirst,k=a.duration?a.duration/2:c.fx.speeds._default/2;c.effects.save(b,j);b.show();var e=c.effects.createWrapper(b).css({overflow:"hidden"}),f=d=="show"!=h,l=f?["width","height"]:["height","width"];f=f?[e.width(),e.height()]:[e.height(),e.width()];var i=/([0-9]+)%/.exec(g);if(i)g=parseInt(i[1], 10)/100*f[d=="hide"?0:1];if(d=="show")e.css(h?{height:0,width:g}:{height:g,width:0});h={};i={};h[l[0]]=d=="show"?f[0]:g;i[l[1]]=d=="show"?f[1]:0;e.animate(h,k,a.options.easing).animate(i,k,a.options.easing,function(){d=="hide"&&b.hide();c.effects.restore(b,j);c.effects.removeWrapper(b);a.callback&&a.callback.apply(b[0],arguments);b.dequeue()})})}})(jQuery); ;/* - * jQuery UI Effects Highlight 1.8.13 + * jQuery UI Effects Highlight 1.8.15 * * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) * Dual licensed under the MIT or GPL Version 2 licenses. @@ -706,7 +712,7 @@ e*(i/c)+(a.options.mode=="show"?0:(e-Math.floor(c/2))*(i/c)),opacity:a.options.m (function(b){b.effects.highlight=function(c){return this.queue(function(){var a=b(this),e=["backgroundImage","backgroundColor","opacity"],d=b.effects.setMode(a,c.options.mode||"show"),f={backgroundColor:a.css("backgroundColor")};if(d=="hide")f.opacity=0;b.effects.save(a,e);a.show().css({backgroundImage:"none",backgroundColor:c.options.color||"#ffff99"}).animate(f,{queue:false,duration:c.duration,easing:c.options.easing,complete:function(){d=="hide"&&a.hide();b.effects.restore(a,e);d=="show"&&!b.support.opacity&& this.style.removeAttribute("filter");c.callback&&c.callback.apply(this,arguments);a.dequeue()}})})}})(jQuery); ;/* - * jQuery UI Effects Pulsate 1.8.13 + * jQuery UI Effects Pulsate 1.8.15 * * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) * Dual licensed under the MIT or GPL Version 2 licenses. @@ -720,7 +726,7 @@ this.style.removeAttribute("filter");c.callback&&c.callback.apply(this,arguments (function(d){d.effects.pulsate=function(a){return this.queue(function(){var b=d(this),c=d.effects.setMode(b,a.options.mode||"show");times=(a.options.times||5)*2-1;duration=a.duration?a.duration/2:d.fx.speeds._default/2;isVisible=b.is(":visible");animateTo=0;if(!isVisible){b.css("opacity",0).show();animateTo=1}if(c=="hide"&&isVisible||c=="show"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 B(Ifx> literal 3122 zcmb7GX;jkb9{yLSX{PlwO1h`CGN$!$uf#*GY+I+?j3lA z2A4^%*@%b>iq$;6x+Uw=qQ*)cBaNn5EoECv}2yho@42eV^mXt9PgVxBQ>Hvr7McI-cE zx^;?uV>|F1h#FW2>;blT0lLoQ zxuJQ8gTrEDu3D0M%RdwoH-wI7z|y8zsSx2&0!24`cW`KjDo)@S_tttn`gJH z=npt{}i-uO5);7k{w=(h z>OsLqxPZ=%l#@5tVz)I-UF6`JX*ksQlPRy;47FQjDb?)Uko*dL{Mk4++F}#g3S!mZ z)6hwuZID*&4JV_a-Y7??7==Z`8$6}@mv%^57rn7t)yl_bBu8Ohdnp=H40s|x@CC>9 zX=BvNfYu{Uf)FeZrw=xC-3rdx!LE)(r%d5Ju*g4HS971>wO=R2Bd zeSSzEx?7F@7?j;19hg@zwK}IY4{cfEI^g-PYuvxXBhO)j2~3%{KSAnw1X;Jlky%St zYwz88A_M7}4>Uzt5%+5Gkn1W&?6Uuy^F1XrodzfP9Dt0?rwmimD?^3Hb7r)<%gMw- zV&@#5P#PSexzj%GZG&JXiTNjsGw+7CdoAVV?34QvfI0Z#c1BmqiY8S;f3Ay$~cWN(NYsa;+GHSCK@lu zShM|eyhK}4A%yK^hJcfuh-!!hYvpKI?XV_K8k_12vgLegy~L+&Gdt0LDp2Y zc2FlVO6hy`2k*m%J0Uh+?j3EAO2o6l4m3A0#+>I$u?iIO!J9ngpE?Ha0uCAW{XynYhHraoZPm>9p0pNLi z2t7CVA>ytBp-f?&+KP(K-8s_wjv3pb-skjq#Ok=>NiwXF(j~d7_Z?zZHp9wvqF(tg zsD2u`sLS<0XpViI+pYO zyt=IEnlUq>+1wrM{m^IO`txkS@3#l8Os#p6Z z`ecom{6O2haM7s6UVq!V0{z*1x8VAL%wk}9HAFifJ>DF9kfv;UvK~u^$dU)t;|CQs zde^-bi{%Jz>H1D3BT3XMWhdW2yO5POJWWH27F#%S76QwkVT=-_0&u zdxDnwf^Hu{Ea`eiMY=2oCSqCACh z$U|-W|PI8OKgX6=p=rzo>yGi+^mgP#p_;kz)B1?!~$WdR(MHD zkp%ZR+CnIdh9B z)H>*xzOzWAiS*jY{R7-x(_Lkkna`$>h9KLHP;;=Cw@uxKvhW45;DL@S=!GT&qSeMDY-XbyR$cb374QqTms5q(@61!)Kz+kgtKh|Nkv%`QHy zxCw0(wNK0H^b`eruFqC8rtP-fw@DLqMH;C1k#YSX_^8BY!7Lg|rBkBYJ*IRkN zv|r*py6+H)3nmP)L>=e*SZqVcbjph7DS0+WPFIX&(<-xZ^6{O5n}^u-?$e9=D%6Gt zrzhXvtSS(Q<*l~wE9b3>v&7vyQ8?%71wxxHwgdY;A*_@vj?+?Iui_j4yct`NI+zOgjkR^ynK{a65!3N!T`R$yB@WTGQk-RCl#aI3N^vX3^n3JP+1x$T_jEV!?PJpjI2~}-zwy+i G8~*{uZE~Xk diff --git a/public/stylesheets/images/ui-bg_highlight-soft_100_feeebd_1x100.png b/public/stylesheets/images/ui-bg_highlight-soft_100_feeebd_1x100.png index 05c5a070e2592a3de9c64fa1dc49b4bd1a1dc635..8c5c35cea2b397d97b332900a02139ed4ea749fa 100644 GIT binary patch delta 86 zcmV-c0IC0z0c?;QPyk0PT3`SG05eHMK~xx(WBB*u$$usW1_p+qMEw89z{J4tA4VX! s5Y|7!tiPB#AQJykSqNglJxw(N019g*Z#6q#i~s-t07*qoM6N<$f{k4tzW@LL delta 125 zcmV-@0D}K)lL3$%cL6XfYW4sC09r{zK~xx(wa!5bfG`Y1(NFGwOb;NsX=yrf)k3L) zMclkilF6X7g#k<`WB88Y2L_r~0B!?981-xcN(;A-gtt~oos1FXUBH*;OGF*k00000NkvXXu0mjf{X{W( diff --git a/public/stylesheets/images/ui-icons_bd7b00_256x240.png b/public/stylesheets/images/ui-icons_bd7b00_256x240.png index 648d91b93cd32f2c8a40ba5c686c642b7d271d07..e81995d57fea6327c3280d21e6df369b1f8239a2 100644 GIT binary patch delta 4043 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 delta 5037 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 delta 5037 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 delta 5037 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 Date: Wed, 17 Aug 2011 10:57:30 +0200 Subject: [PATCH 083/197] add last pending scenarios the scenarios for preferences will be added with the planned changes --- doc/CHANGELOG | 2 +- features/recurring_todos.feature | 10 +++++----- features/step_definitions/recurring_todo_steps.rb | 5 +++-- 3 files changed, 9 insertions(+), 8 deletions(-) diff --git a/doc/CHANGELOG b/doc/CHANGELOG index b71ceb9c..f571653c 100644 --- a/doc/CHANGELOG +++ b/doc/CHANGELOG @@ -28,7 +28,7 @@ New features: 3. You can star an action right from the form to add a new action Under the hood: -1. Upgraded rails to 2.3.12, jquery to 1.6.1 and jquery-ui to 1.8.13 +1. Upgraded rails to 2.3.12, jquery to 1.6.2 and jquery-ui to 1.8.14 2. fixed several issues with the REST API 3. upgraded the act_as_statemachine plugin. This change requires a migration, see note above! diff --git a/features/recurring_todos.feature b/features/recurring_todos.feature index 9369510e..e541cb7f 100644 --- a/features/recurring_todos.feature +++ b/features/recurring_todos.feature @@ -62,26 +62,26 @@ Feature: Manage recurring todos Then the pattern "I'm done" should be in the state list "active" And the state list "completed" should be empty - @selenium @wip + @selenium Scenario: Following the recurring todo link of a todo takes me to the recurring todos page When I go to the home page Then I should see the todo "run tests" When I follow the recurring todo link of "run tests" Then I should be on the repeating todos page - @selenium @wip + @selenium Scenario: Deleting a recurring todo with ending pattern will show message When I go to the repeating todos page And I mark the pattern "run tests" as complete And I go to the home page Then I should see "run tests" When I delete the action "run tests" - Then I should see "@@message@@" + Then I should see "There is no next action after the recurring action you just deleted. The recurrence is completed" - @selenium @wip + @selenium Scenario: Deleting a recurring todo with active pattern will show new todo When I go to the home page Then I should see "run tests" When I delete the action "run tests" - Then I should see "@@message@@" + Then I should see "Action was deleted. Because this action is recurring, a new action was added" And I should see "run tests" in the context container for "test context" \ No newline at end of file diff --git a/features/step_definitions/recurring_todo_steps.rb b/features/step_definitions/recurring_todo_steps.rb index eb68e0c1..a4156078 100644 --- a/features/step_definitions/recurring_todo_steps.rb +++ b/features/step_definitions/recurring_todo_steps.rb @@ -88,8 +88,9 @@ When /^I follow the recurring todo link of "([^"]*)"$/ do |action_description| todo = @current_user.todos.find_by_description(action_description) todo.should_not be_nil - recurring_todo_link = "div.todo_#{todo.id} div a.recurring_icon" - click_link recurring_todo_link + recurring_todo_link = "xpath=//div[@id='todo_#{todo.id}']//a[@class='recurring_icon']/img" + selenium.click( recurring_todo_link ) + selenium.wait_for_page_to_load(5000) end Then /^the state list "([^"]*)" should be empty$/ do |state| From 977b57dbb29a25f53f5cbf2623aec165fa8551b3 Mon Sep 17 00:00:00 2001 From: Reinier Balt Date: Wed, 27 Jul 2011 17:19:05 +0200 Subject: [PATCH 084/197] first pass to distribute settings over tabs --- app/helpers/preferences_helper.rb | 16 +++ app/views/preferences/index.html.erb | 139 +++++++++++++----------- app/views/preferences/oldindex.html.erb | 68 ++++++++++++ config/environment.rb | 2 +- public/javascripts/application.js | 8 +- 5 files changed, 167 insertions(+), 66 deletions(-) create mode 100644 app/views/preferences/oldindex.html.erb diff --git a/app/helpers/preferences_helper.rb b/app/helpers/preferences_helper.rb index 8838ec68..a56e75c6 100644 --- a/app/helpers/preferences_helper.rb +++ b/app/helpers/preferences_helper.rb @@ -1,2 +1,18 @@ module PreferencesHelper + + def pref(model, pref_name, &block) + s = "
    " + s << yield + s << "

    " + s + end + + def pref_with_select_field(model, pref_name, collection = [ [t('preferences.is_true'),true], [t('preferences.is_false'), false] ]) + pref(model, pref_name) { select(model, pref_name, collection) } + end + + def pref_with_text_field(model, pref_name, nowrap_label = false) + pref(model, pref_name) { text_field(model, pref_name) } + end + end diff --git a/app/views/preferences/index.html.erb b/app/views/preferences/index.html.erb index 138aef73..8c9c85eb 100644 --- a/app/views/preferences/index.html.erb +++ b/app/views/preferences/index.html.erb @@ -1,68 +1,79 @@ -
    - -

    <%= t('preferences.title') %>

    - -
      -
    • <%= User.human_attribute_name('first_name') %>: <%= current_user.first_name %>
    • -
    • <%= User.human_attribute_name('last_name') %>: <%= current_user.last_name %>
    • -
    • <%= Preference.human_attribute_name('date_format') %>: <%= current_user.prefs.date_format %> Your current date: <%= format_date(current_user.time) %>
    • -
    • <%= Preference.human_attribute_name('locale') %>: <%= current_user.prefs.locale %>
    • -
    • <%= Preference.human_attribute_name('title_date_format') %>: <%= current_user.prefs.title_date_format %> Your current title date: <%= current_user.time.strftime(current_user.prefs.title_date_format) %>
    • -
    • <%= Preference.human_attribute_name('time_zone') %>: <%= current_user.prefs.time_zone %> Your current time: <%= current_user.time.strftime('%I:%M %p') %>
    • -
    • <%= Preference.human_attribute_name('week_starts') %>: <%= t('date.day_names')[current_user.prefs.week_starts] %>
    • -
    • <%= t('preferences.show_number_completed', :number=> "#{current_user.prefs.show_number_completed}")%>
    • -
    • <%= Preference.human_attribute_name('show_completed_projects_in_sidebar') %>: <%= current_user.prefs.show_completed_projects_in_sidebar %>
    • -
    • <%= Preference.human_attribute_name('show_hidden_projects_in_sidebar') %>: <%= current_user.prefs.show_hidden_projects_in_sidebar %>
    • -
    • <%= Preference.human_attribute_name('show_hidden_contexts_in_sidebar') %>: <%= current_user.prefs.show_hidden_contexts_in_sidebar %>
    • -
    • <%= Preference.human_attribute_name('show_project_on_todo_done') %>: <%= current_user.prefs.show_project_on_todo_done %>
    • -
    • <%= t('preferences.staleness_starts_after', :days => "#{current_user.prefs.staleness_starts}") %>
    • -
    • <%= Preference.human_attribute_name('due_style') %>: - <% if prefs.due_style == Preference.due_styles[:due_in_n_days] %> - <%= t('models.preference.due_styles')[0] %> - <% else %> - <%= t('models.preference.due_styles')[1] %> - <% end %> -
    • - <% if current_user.is_admin? %> -
    • <%= Preference.human_attribute_name('admin_email') %>: <%= current_user.prefs.admin_email %>
    • +
      + +
      +

      Profile

      + <% form_tag :action => 'update' do %> + <%= pref_with_text_field 'user', 'first_name' %> + <%= pref_with_text_field 'user', 'last_name' %> + <%= pref_with_select_field('prefs', 'locale', I18n.available_locales.map {|l| l.to_s}) %> + <% if current_user.is_admin? %> <%= pref_with_text_field('prefs', 'admin_email') %> <% end %> <% end %> -
    • <%= Preference.human_attribute_name('refresh') %>: <%= current_user.prefs.refresh %>
    • -
    • <%= Preference.human_attribute_name('verbose_action_descriptors') %>: <%= current_user.prefs.verbose_action_descriptors %>
    • -
    • <%= Preference.human_attribute_name('mobile_todos_per_page') %>: <%= current_user.prefs.mobile_todos_per_page %>
    • -
    • <%= Preference.human_attribute_name('sms_email') %>: <%= current_user.prefs.sms_email %>
    • -
    • <%= Preference.human_attribute_name('sms_context') %>: <%= current_user.prefs.sms_context.nil? ? t('preferences.sms_context_none') : current_user.prefs.sms_context.name %>
    • -
    -
    - <%= link_to t('preferences.edit_preferences') + " »", { :controller => 'preferences', :action => 'edit'}, :class => 'edit_link' %> -
    - -

    <%= t('preferences.token_header') %>

    -
    -
    <%= t('preferences.token_description') %>:
    -
    <%= current_user.token %>
    -
    - <%= button_to t('preferences.generate_new_token'), refresh_token_user_path(current_user), - :confirm => t('preferences.generate_new_token_confirm') %> -
    -
    -

    <%= t('preferences.authentication_header') %>

    -
    - <% if Tracks::Config.auth_schemes.length > 1 %> -

    <%= t('preferences.current_authentication_type', :auth_type => "#{current_user.auth_type}") %>.

    -
    - <%= link_to(t('preferences.change_authentication_type') + " »", change_auth_type_user_path(current_user), :class => 'edit_link') %> -
    - <% end %> - <% if current_user.auth_type == 'database' %> -
    - <%= link_to(t('preferences.change_password') + ' »', change_password_user_path(current_user)) %> -
    - <% end %> - <% if current_user.auth_type == 'open_id' %> -

    <%= t('preferences.open_id_url') %> <%= current_user.open_id_url %>.

    -
    - <%= link_to(t('preferences.change_identity_url') + ' »', change_auth_type_user_path(current_user)) %>
    - <% end %> +
    +

    Authentication

    + +
    + +
    + <%= t('preferences.token_description') %>: <%= current_user.token %> + <%= button_to t('preferences.generate_new_token'), refresh_token_user_path(current_user), + :confirm => t('preferences.generate_new_token_confirm') %> + +
    + +
    + <% if Tracks::Config.auth_schemes.length > 1 %> + <% form_tag :action => 'update_auth_type' do %> + +
    + <% Tracks::Config.auth_schemes.each do |scheme| %> + <%= radio_button_tag('user[auth_type]', scheme, current_user.auth_type == scheme) %><%=scheme%>
    + <% end %> + +
    +
    + +
    + <%= submit_tag t('users.auth_change_submit') %> <%= link_to t('common.cancel'), preferences_path %> + <%= observe_field( :user_auth_type, :function => "$('#open_id')[0].style.display = value == 'open_id' ? 'block' : 'none'") %> + <% end %> + <% end %> + + <% if current_user.auth_type == 'database' %> + <%= link_to(t('preferences.change_password') + ' »', change_password_user_path(current_user)) %> + <% end %> + <% if current_user.auth_type == 'open_id' %> +

    <%= t('preferences.open_id_url') %> <%= current_user.open_id_url %>.

    + <%= link_to(t('preferences.change_identity_url') + ' »', change_auth_type_user_path(current_user)) %> + <% end %>
    +
    +

    Date and time

    + <%= pref_with_text_field('prefs', 'date_format') %> + <%= pref_with_text_field('prefs', 'title_date_format') %> + <%= pref('prefs', 'time_zone') { time_zone_select('prefs','time_zone') } %> + + <%= pref_with_select_field('prefs', "week_starts", (0..6).to_a.map {|num| [t('date.day_names')[num], num] }) %> + +
    +
    +

    Tracks behavior

    + <%= pref_with_select_field('prefs', "due_style", [[t('models.preference.due_styles')[0],Preference.due_styles[:due_in_n_days]],[t('models.preference.due_styles')[1],Preference.due_styles[:due_on]]]) %> + <%= pref_with_select_field('prefs', "show_completed_projects_in_sidebar") %> + <%= pref_with_select_field('prefs', "show_hidden_projects_in_sidebar") %> + <%= pref_with_select_field('prefs', "show_hidden_contexts_in_sidebar") %> + <%= pref_with_select_field('prefs', "show_project_on_todo_done") %> + <%= pref_with_text_field('prefs', 'staleness_starts') %> + <%= pref_with_text_field('prefs', 'show_number_completed') %> + <%= pref_with_text_field('prefs', 'refresh') %> + <%= pref_with_select_field('prefs', "verbose_action_descriptors") %> + <%= pref_with_text_field('prefs', "mobile_todos_per_page") %> + <%= pref_with_text_field('prefs', "sms_email") %> + <%= pref('prefs', "sms_context") { select('prefs', 'sms_context_id', current_user.contexts.map{|c| [c.name, c.id]}) } %> +
    diff --git a/app/views/preferences/oldindex.html.erb b/app/views/preferences/oldindex.html.erb new file mode 100644 index 00000000..138aef73 --- /dev/null +++ b/app/views/preferences/oldindex.html.erb @@ -0,0 +1,68 @@ +
    + +

    <%= t('preferences.title') %>

    + +
      +
    • <%= User.human_attribute_name('first_name') %>: <%= current_user.first_name %>
    • +
    • <%= User.human_attribute_name('last_name') %>: <%= current_user.last_name %>
    • +
    • <%= Preference.human_attribute_name('date_format') %>: <%= current_user.prefs.date_format %> Your current date: <%= format_date(current_user.time) %>
    • +
    • <%= Preference.human_attribute_name('locale') %>: <%= current_user.prefs.locale %>
    • +
    • <%= Preference.human_attribute_name('title_date_format') %>: <%= current_user.prefs.title_date_format %> Your current title date: <%= current_user.time.strftime(current_user.prefs.title_date_format) %>
    • +
    • <%= Preference.human_attribute_name('time_zone') %>: <%= current_user.prefs.time_zone %> Your current time: <%= current_user.time.strftime('%I:%M %p') %>
    • +
    • <%= Preference.human_attribute_name('week_starts') %>: <%= t('date.day_names')[current_user.prefs.week_starts] %>
    • +
    • <%= t('preferences.show_number_completed', :number=> "#{current_user.prefs.show_number_completed}")%>
    • +
    • <%= Preference.human_attribute_name('show_completed_projects_in_sidebar') %>: <%= current_user.prefs.show_completed_projects_in_sidebar %>
    • +
    • <%= Preference.human_attribute_name('show_hidden_projects_in_sidebar') %>: <%= current_user.prefs.show_hidden_projects_in_sidebar %>
    • +
    • <%= Preference.human_attribute_name('show_hidden_contexts_in_sidebar') %>: <%= current_user.prefs.show_hidden_contexts_in_sidebar %>
    • +
    • <%= Preference.human_attribute_name('show_project_on_todo_done') %>: <%= current_user.prefs.show_project_on_todo_done %>
    • +
    • <%= t('preferences.staleness_starts_after', :days => "#{current_user.prefs.staleness_starts}") %>
    • +
    • <%= Preference.human_attribute_name('due_style') %>: + <% if prefs.due_style == Preference.due_styles[:due_in_n_days] %> + <%= t('models.preference.due_styles')[0] %> + <% else %> + <%= t('models.preference.due_styles')[1] %> + <% end %> +
    • + <% if current_user.is_admin? %> +
    • <%= Preference.human_attribute_name('admin_email') %>: <%= current_user.prefs.admin_email %>
    • + <% end %> +
    • <%= Preference.human_attribute_name('refresh') %>: <%= current_user.prefs.refresh %>
    • +
    • <%= Preference.human_attribute_name('verbose_action_descriptors') %>: <%= current_user.prefs.verbose_action_descriptors %>
    • +
    • <%= Preference.human_attribute_name('mobile_todos_per_page') %>: <%= current_user.prefs.mobile_todos_per_page %>
    • +
    • <%= Preference.human_attribute_name('sms_email') %>: <%= current_user.prefs.sms_email %>
    • +
    • <%= Preference.human_attribute_name('sms_context') %>: <%= current_user.prefs.sms_context.nil? ? t('preferences.sms_context_none') : current_user.prefs.sms_context.name %>
    • +
    +
    + <%= link_to t('preferences.edit_preferences') + " »", { :controller => 'preferences', :action => 'edit'}, :class => 'edit_link' %> +
    + +

    <%= t('preferences.token_header') %>

    +
    +
    <%= t('preferences.token_description') %>:
    +
    <%= current_user.token %>
    +
    + <%= button_to t('preferences.generate_new_token'), refresh_token_user_path(current_user), + :confirm => t('preferences.generate_new_token_confirm') %> +
    +
    +

    <%= t('preferences.authentication_header') %>

    +
    + <% if Tracks::Config.auth_schemes.length > 1 %> +

    <%= t('preferences.current_authentication_type', :auth_type => "#{current_user.auth_type}") %>.

    +
    + <%= link_to(t('preferences.change_authentication_type') + " »", change_auth_type_user_path(current_user), :class => 'edit_link') %> +
    + <% end %> + <% if current_user.auth_type == 'database' %> +
    + <%= link_to(t('preferences.change_password') + ' »', change_password_user_path(current_user)) %> +
    + <% end %> + <% if current_user.auth_type == 'open_id' %> +

    <%= t('preferences.open_id_url') %> <%= current_user.open_id_url %>.

    +
    + <%= link_to(t('preferences.change_identity_url') + ' »', change_auth_type_user_path(current_user)) %> +
    + <% end %> +
    +
    diff --git a/config/environment.rb b/config/environment.rb index bb4e50fc..3be292b1 100644 --- a/config/environment.rb +++ b/config/environment.rb @@ -70,7 +70,7 @@ Rails::Initializer.run do |config| # The default locale is :en and all translations from config/locales/*.rb,yml are auto loaded. # config.i18n.load_path += Dir[Rails.root.join('my', 'locales', '*.{rb,yml}').to_s] # config.i18n.default_locale = :de - + # See Rails::Configuration for more options if ( SITE_CONFIG['authentication_schemes'].include? 'cas') #requires rubycas-client gem to be installed diff --git a/public/javascripts/application.js b/public/javascripts/application.js index 71ba9e5e..044397e3 100644 --- a/public/javascripts/application.js +++ b/public/javascripts/application.js @@ -641,6 +641,12 @@ var UsersPage = { } } +var PreferencesPage = { + setup_behavior: function() { + $( "#tabs" ).tabs(); + } +} + var ProjectListPage = { update_state_count: function(state, count) { $('#'+state+'-projects-count').html(count); @@ -1238,7 +1244,7 @@ $(document).ready(function() { TodoItemsContainer.setup_container_toggles(); /* enable page specific behavior */ - $([ 'IntegrationsPage', 'NotesPage', 'ProjectListPage', 'ContextListPage', + $([ 'PreferencesPage', 'IntegrationsPage', 'NotesPage', 'ProjectListPage', 'ContextListPage', 'FeedsPage', 'RecurringTodosPage', 'TodoItems', 'TracksPages', 'TracksForm', 'SearchPage', 'UsersPage' ]).each(function() { eval(this+'.setup_behavior();'); From 89ec9898a36d3599eaf7b1732fc0819d82f5ea8b Mon Sep 17 00:00:00 2001 From: Reinier Balt Date: Tue, 2 Aug 2011 17:25:45 +0200 Subject: [PATCH 085/197] finish gui changes --- app/helpers/preferences_helper.rb | 2 +- .../preferences/_authentication.html.erb | 26 + app/views/preferences/_date_and_time.html.erb | 7 + app/views/preferences/_profile.html.erb | 6 + .../preferences/_tracks_behavior.html.erb | 13 + app/views/preferences/index.html.erb | 102 +- app/views/users/_update_password.html.erb | 4 + app/views/users/change_password.html.erb | 20 +- config/locales/de.yml | 609 ++++--- config/locales/en.yml | 1620 +++++++++-------- config/locales/es.yml | 544 +++--- config/locales/fr.yml | 818 +++++---- config/locales/nl.yml | 604 +++--- public/javascripts/application.js | 8 + public/stylesheets/standard.css | 200 +- 15 files changed, 2459 insertions(+), 2124 deletions(-) create mode 100644 app/views/preferences/_authentication.html.erb create mode 100644 app/views/preferences/_date_and_time.html.erb create mode 100644 app/views/preferences/_profile.html.erb create mode 100644 app/views/preferences/_tracks_behavior.html.erb create mode 100644 app/views/users/_update_password.html.erb diff --git a/app/helpers/preferences_helper.rb b/app/helpers/preferences_helper.rb index a56e75c6..4dd9330e 100644 --- a/app/helpers/preferences_helper.rb +++ b/app/helpers/preferences_helper.rb @@ -11,7 +11,7 @@ module PreferencesHelper pref(model, pref_name) { select(model, pref_name, collection) } end - def pref_with_text_field(model, pref_name, nowrap_label = false) + def pref_with_text_field(model, pref_name) pref(model, pref_name) { text_field(model, pref_name) } end diff --git a/app/views/preferences/_authentication.html.erb b/app/views/preferences/_authentication.html.erb new file mode 100644 index 00000000..f2c610af --- /dev/null +++ b/app/views/preferences/_authentication.html.erb @@ -0,0 +1,26 @@ +

    +<%= t('preferences.token_description') %>: <%= current_user.token %> +<% # TODO: make remote AJAX call for new token %> +<%= button_to t('preferences.generate_new_token'), refresh_token_user_path(current_user), + :confirm => t('preferences.generate_new_token_confirm') %> +
    + +<% if Tracks::Config.auth_schemes.length > 1 %> +
    + <% Tracks::Config.auth_schemes.each do |scheme| %> + <%= radio_button_tag('user[auth_type]', scheme, current_user.auth_type == scheme) %><%=scheme%>
    + <% end %> + +
    + +
    +
    + +
    + +
    + <%= render :partial => 'users/update_password' %> +
    + +<% end %> + diff --git a/app/views/preferences/_date_and_time.html.erb b/app/views/preferences/_date_and_time.html.erb new file mode 100644 index 00000000..f511bfa9 --- /dev/null +++ b/app/views/preferences/_date_and_time.html.erb @@ -0,0 +1,7 @@ + +<%= pref_with_text_field('prefs', 'date_format') %> +<%= pref_with_text_field('prefs', 'title_date_format') %> +<%= pref('prefs', 'time_zone') { time_zone_select('prefs','time_zone') } %> + +<%= pref_with_select_field('prefs', "week_starts", (0..6).to_a.map {|num| [t('date.day_names')[num], num] }) %> + diff --git a/app/views/preferences/_profile.html.erb b/app/views/preferences/_profile.html.erb new file mode 100644 index 00000000..478df97b --- /dev/null +++ b/app/views/preferences/_profile.html.erb @@ -0,0 +1,6 @@ +<%= pref_with_text_field 'user', 'first_name' %> +<%= pref_with_text_field 'user', 'last_name' %> +<%= pref_with_select_field('prefs', 'locale', I18n.available_locales.map {|l| l.to_s}) %> +<% if current_user.is_admin? %> + <%= pref_with_text_field('prefs', 'admin_email') %> +<% end %> diff --git a/app/views/preferences/_tracks_behavior.html.erb b/app/views/preferences/_tracks_behavior.html.erb new file mode 100644 index 00000000..480b647f --- /dev/null +++ b/app/views/preferences/_tracks_behavior.html.erb @@ -0,0 +1,13 @@ + +<%= pref_with_select_field('prefs', "due_style", [[t('models.preference.due_styles')[0],Preference.due_styles[:due_in_n_days]],[t('models.preference.due_styles')[1],Preference.due_styles[:due_on]]]) %> +<%= pref_with_select_field('prefs', "show_completed_projects_in_sidebar") %> +<%= pref_with_select_field('prefs', "show_hidden_projects_in_sidebar") %> +<%= pref_with_select_field('prefs', "show_hidden_contexts_in_sidebar") %> +<%= pref_with_select_field('prefs', "show_project_on_todo_done") %> +<%= pref_with_text_field('prefs', 'staleness_starts') %> +<%= pref_with_text_field('prefs', 'show_number_completed') %> +<%= pref_with_text_field('prefs', 'refresh') %> +<%= pref_with_select_field('prefs', "verbose_action_descriptors") %> +<%= pref_with_text_field('prefs', "mobile_todos_per_page") %> +<%= pref_with_text_field('prefs', "sms_email") %> +<%= pref('prefs', "sms_context") { select('prefs', 'sms_context_id', current_user.contexts.map{|c| [c.name, c.id]}) } %> diff --git a/app/views/preferences/index.html.erb b/app/views/preferences/index.html.erb index 8c9c85eb..5617f787 100644 --- a/app/views/preferences/index.html.erb +++ b/app/views/preferences/index.html.erb @@ -1,79 +1,29 @@ -
    - -
    -

    Profile

    - <% form_tag :action => 'update' do %> - <%= pref_with_text_field 'user', 'first_name' %> - <%= pref_with_text_field 'user', 'last_name' %> - <%= pref_with_select_field('prefs', 'locale', I18n.available_locales.map {|l| l.to_s}) %> - <% if current_user.is_admin? %> <%= pref_with_text_field('prefs', 'admin_email') %> <% end %> - <% end %> -
    -
    -

    Authentication

    - -
    - -
    - <%= t('preferences.token_description') %>: <%= current_user.token %> - <%= button_to t('preferences.generate_new_token'), refresh_token_user_path(current_user), - :confirm => t('preferences.generate_new_token_confirm') %> - -
    - -
    - <% if Tracks::Config.auth_schemes.length > 1 %> - <% form_tag :action => 'update_auth_type' do %> - -
    - <% Tracks::Config.auth_schemes.each do |scheme| %> - <%= radio_button_tag('user[auth_type]', scheme, current_user.auth_type == scheme) %><%=scheme%>
    - <% end %> - -
    -
    - -
    - <%= submit_tag t('users.auth_change_submit') %> <%= link_to t('common.cancel'), preferences_path %> - <%= observe_field( :user_auth_type, :function => "$('#open_id')[0].style.display = value == 'open_id' ? 'block' : 'none'") %> - <% end %> - <% end %> - - <% if current_user.auth_type == 'database' %> - <%= link_to(t('preferences.change_password') + ' »', change_password_user_path(current_user)) %> - <% end %> - <% if current_user.auth_type == 'open_id' %> -

    <%= t('preferences.open_id_url') %> <%= current_user.open_id_url %>.

    - <%= link_to(t('preferences.change_identity_url') + ' »', change_auth_type_user_path(current_user)) %> - <% end %> +
    + <% form_tag :action => 'update' do %> +
    + +
    + <%= render :partial => 'profile'%> +
    +
    + <%= render :partial => 'authentication'%> +
    +
    + <%= render :partial => 'date_and_time'%> +
    +
    + <%= render :partial => 'tracks_behavior'%> +
    -
    -

    Date and time

    - <%= pref_with_text_field('prefs', 'date_format') %> - <%= pref_with_text_field('prefs', 'title_date_format') %> - <%= pref('prefs', 'time_zone') { time_zone_select('prefs','time_zone') } %> - <%= pref_with_select_field('prefs', "week_starts", (0..6).to_a.map {|num| [t('date.day_names')[num], num] }) %> +
    -
    -
    -

    Tracks behavior

    - <%= pref_with_select_field('prefs', "due_style", [[t('models.preference.due_styles')[0],Preference.due_styles[:due_in_n_days]],[t('models.preference.due_styles')[1],Preference.due_styles[:due_on]]]) %> - <%= pref_with_select_field('prefs', "show_completed_projects_in_sidebar") %> - <%= pref_with_select_field('prefs', "show_hidden_projects_in_sidebar") %> - <%= pref_with_select_field('prefs', "show_hidden_contexts_in_sidebar") %> - <%= pref_with_select_field('prefs', "show_project_on_todo_done") %> - <%= pref_with_text_field('prefs', 'staleness_starts') %> - <%= pref_with_text_field('prefs', 'show_number_completed') %> - <%= pref_with_text_field('prefs', 'refresh') %> - <%= pref_with_select_field('prefs', "verbose_action_descriptors") %> - <%= pref_with_text_field('prefs', "mobile_todos_per_page") %> - <%= pref_with_text_field('prefs', "sms_email") %> - <%= pref('prefs', "sms_context") { select('prefs', 'sms_context_id', current_user.contexts.map{|c| [c.name, c.id]}) } %> -
    -
    + + + <% end %> +
    \ No newline at end of file diff --git a/app/views/users/_update_password.html.erb b/app/views/users/_update_password.html.erb new file mode 100644 index 00000000..1bb6ecfe --- /dev/null +++ b/app/views/users/_update_password.html.erb @@ -0,0 +1,4 @@ +
    +<%= password_field "user", "password", :size => 40 %>
    +
    +<%= password_field "user", "password_confirmation", :size => 40 %>
    diff --git a/app/views/users/change_password.html.erb b/app/views/users/change_password.html.erb index e16183e4..cc3fe546 100644 --- a/app/views/users/change_password.html.erb +++ b/app/views/users/change_password.html.erb @@ -1,5 +1,5 @@
    - +

    <%= @page_title %>

    <%= error_messages_for 'user' %> @@ -7,20 +7,10 @@

    <%= t('users.change_password_prompt') %>

    <% form_tag :action => 'update_password' do %> - - - - - - - - - - - - - -
    <%= password_field "updateuser", "password", :size => 40 %>
    <%= password_field "updateuser", "password_confirmation", :size => 40 %>
    <%= link_to t('common.cancel'), preferences_path %><%= submit_tag t('users.change_password_submit') %>
    + <%= render :partial => 'update_password' %> +
    + <%= link_to t('common.cancel'), preferences_path %> + <%= submit_tag t('users.change_password_submit') %> <% end %>
    \ No newline at end of file diff --git a/config/locales/de.yml b/config/locales/de.yml index 1466ef8d..d9a9dda7 100644 --- a/config/locales/de.yml +++ b/config/locales/de.yml @@ -3,16 +3,16 @@ de: layouts: toggle_notes: Notizen umschalten next_actions_rss_feed: RSS-Feed kommende Aufgaben + toggle_notes_title: Alle Notizen umschalten mobile_navigation: + new_action: 0-Neue Aufgabe logout: Abmelden feeds: Feeds - new_action: 0-Neue Aufgabe starred: 4-Markiert projects: 3-Projekte tickler: Notizbuch contexts: 2-Kontexte home: 1-Home - toggle_notes_title: Alle Notizen umschalten navigation: manage_users_title: "Benutzer hinzuf\xC3\xBCgen oder entfernen" recurring_todos: Sich wiederholende To-Dos @@ -24,26 +24,32 @@ de: tickler_title: Notizbuch manage_users: Benutzer verwalten export_title: Daten importieren und exportieren - integrations_: Tracks integrieren preferences: Einstellungen + integrations_: Tracks integrieren feeds_title: "Liste der verf\xC3\xBCgbaren Feeds anzeigen" calendar_title: "Kalender mit \xC3\xBCberf\xC3\xA4lligen Aufgaben" - stats_title: Statistiken anzeigen + completed_tasks: Erledigt tickler: Notizbuch + stats_title: Statistiken anzeigen home_title: Start starred_title: Markierte Aufgaben betrachten recurring_todos_title: Sich wiederholende To-Dos verwalten - completed_tasks: Erledigt - organize: Organisieren view: Betrachten + organize: Organisieren completed_tasks_title: "Vollst\xC3\xA4ndig" home: Start export: Export contexts_title: Kontexte calendar: Kalender projects_title: Projekte - search: "Alle Eintr\xC3\xA4ge durchsuchen" preferences_title: Meine Einstellungen + search: "Alle Eintr\xC3\xA4ge durchsuchen" + integrations: + opensearch_description: In Tracks suchen + applescript_next_action_prompt: "Beschreibung der n\xC3\xA4chsten Aufgabe:" + gmail_description: "Gadget, um Tracks als Gadget zu Googlemail hinzuzuf\xC3\xBCgen" + applescript_success_after_id: erstellt + applescript_success_before_id: "N\xC3\xA4chste neue Aufgabe mit ID" number: format: separator: "," @@ -66,9 +72,6 @@ de: percentage: format: delimiter: "" - precision: - format: - delimiter: "" currency: format: format: "%n%u" @@ -78,12 +81,9 @@ de: separator: . precision: delimiter: "," - integrations: - opensearch_description: In Tracks suchen - applescript_next_action_prompt: "Beschreibung der n\xC3\xA4chsten Aufgabe:" - gmail_description: "Gadget, um Tracks als Gadget zu Googlemail hinzuzuf\xC3\xBCgen" - applescript_success_after_id: erstellt - applescript_success_before_id: "N\xC3\xA4chste neue Aufgabe mit ID" + precision: + format: + delimiter: "" common: back: "Zur\xC3\xBCck" third: Dritte @@ -93,65 +93,68 @@ de: previous: Vorherige logout: Abmelden go_back: "Zur\xC3\xBCck" - week: Woche + optional: optional cancel: Abbrechen + week: Woche none: Keine second: Zweite month: Monat - optional: optional - notes: Notizen - forum: Forum server_error: Auf dem Server ist ein Fehler aufgetreten. + forum: Forum + notes: Notizen last: Letzte - action: Aktion projects: Projekte + action: Aktion project: Projekt - contribute: Mitwirken ok: Ok + contribute: Mitwirken website: Website - first: Erste numbered_step: Schritt %{number} + first: Erste sort: by_task_count_title: Nach Anzahl der Aufgaben sortieren by_task_count_title_confirm: Sollen diese Projekte wirklich nach Anzahl der Aufgaben sortiert werden? Die bisherige Sortier-Reihenfolge wird damit überschrieben. alphabetically: Alphabetisch alphabetically_confirm: Sollen diese Projekte wirklich alphabetisch sortiert werden? Die bisherige Sortier-Reihenfolge wird damit überschrieben. - sort: Sortieren alphabetically_title: Projekte alphabetisch sortieren + sort: Sortieren by_task_count: Nach Anzahl der Aufgaben fourth: Vierte create: Erstellen - months: Monate - todo: Aktione contexts: Kontexte - context: Kontext - next: "N\xC3\xA4chste" - description: Beschreibung + months: Monate errors_with_fields: "Mit folgenden Feldern sind Probleme aufgetreten:" + next: "N\xC3\xA4chste" + context: Kontext + todo: Aktione drag_handle: Verschieben - update: Aktualisieren + description: Beschreibung bugs: Bugs - weeks: Woche + update: Aktualisieren forth: Vierte + weeks: Woche wiki: Wiki + email: E-Mail search: Suchen ajaxError: Fehler beim Empfangen vom Server - email: E-Mail + data: + import_successful: Import war erfolgreich. + import_errors: Beim Import sind Fehler aufgetreten. models: project: feed_title: Tracks-Projekte feed_description: "Listet alle Projekte f\xC3\xBCr %{username} auf" todo: error_date_must_be_future: muss ein Datum in der Zukunft sein + user: + error_context_not_associated: "Kontext-ID %{context} nicht mit Benutzer-ID %{user} verkn\xC3\xBCpft." + error_project_not_associated: "Projekt-ID %{project} nicht mit User-ID %{user} verkn\xC3\xBCpft." preference: due_on: "F\xC3\xA4llig auf %{date}" due_in: "F\xC3\xA4llig in %{days} Tagen" due_styles: - "F\xC3\xA4llig in ___ Tagen" - "F\xC3\xA4llig am _______" - user: - error_context_not_associated: "Kontext-ID %{context} nicht mit Benutzer-ID %{user} verkn\xC3\xBCpft." - error_project_not_associated: "Projekt-ID %{project} nicht mit User-ID %{user} verkn\xC3\xBCpft." activerecord: attributes: project: @@ -160,35 +163,58 @@ de: default_context_name: Standard Kontext description: Beschreibung todo: - show_from: Zeigen ab dem predecessors: "H\xC3\xA4ngt ab von" + show_from: Zeigen ab dem notes: Notizen project: Projekt context: Kontext description: Beschreibung due: Fällig + user: + last_name: Nachname + first_name: Vorname preference: show_hidden_projects_in_sidebar: Zeige Versteckte Projekte in der Sidebar date_format: Datum Format show_hidden_contexts_in_sidebar: "Zeige Versteckte Zusammenh\xC3\xA4nge in der Sidebar" mobile_todos_per_page: Aufgaben pro Seite (Mobile Version) verbose_action_descriptors: "Ausf\xC3\xBChrlich Aktion Deskriptoren" - sms_context: Standard-E-Mail-Kontext staleness_starts: Anfang des Abgestandenheit + sms_context: Standard-E-Mail-Kontext title_date_format: Titel Datumsformat show_number_completed: "Zeige Zahl der abgeschlossenen Ma\xC3\x9Fnahmen" refresh: Aktualisierungsintverall (in Minuten) week_starts: Woche startet am - time_zone: Zeit Zone - due_style: "F\xC3\xA4llig stijl" - locale: Zahle - sms_email: Per E-Mail - show_project_on_todo_done: Zur Projektseite wechseln, wenn To-Do abgeschlossen - show_completed_projects_in_sidebar: Zeige abgeschlossene Projekte in der Sidebar - user: last_name: Nachname - first_name: Vorname + locale: Zahle + due_style: "F\xC3\xA4llig stijl" + time_zone: Zeit Zone + show_project_on_todo_done: Zur Projektseite wechseln, wenn To-Do abgeschlossen + sms_email: Per E-Mail + first_name: Name + show_completed_projects_in_sidebar: Zeige abgeschlossene Projekte in der Sidebar errors: + messages: + greater_than_or_equal_to: "muss gr\xC3\xB6\xC3\x9Fer oder gleich %{count} sein" + record_invalid: "Validierung fehlgeschlagen: %{Fehler}" + confirmation: "stimmt nicht mit der Best\xC3\xA4tigung \xC3\xBCberein" + less_than_or_equal_to: muss kleiner oder gleich %{count} sein + blank: "muss ausgef\xC3\xBCllt werden" + invalid: "ist nicht g\xC3\xBCltig" + exclusion: "ist nicht verf\xC3\xBCgbar" + odd: muss ungerade sein + even: muss gerade sein + too_short: ist zu kurz (nicht weniger als %{count} Zeichen) + empty: "muss ausgef\xC3\xBCllt werden" + wrong_length: "hat die falsche L\xC3\xA4nge (muss genau %{count} Zeichen haben)" + less_than: muss kleiner als %{count} sein + greater_than: "muss gr\xC3\xB6\xC3\x9Fer als %{count} sein" + equal_to: muss genau %{count} sein + accepted: muss akzeptiert werden + too_long: ist zu lang (nicht mehr als %{count} Zeichen) + taken: ist bereits vergeben + inclusion: "ist kein g\xC3\xBCltiger Wert" + not_a_number: ist keine Zahl models: project: attributes: @@ -196,27 +222,6 @@ de: blank: Projekt muss einen Namen haben too_long: Projektname muss weniger als 256 Zeichen haben taken: existiert bereits - messages: - record_invalid: "Validierung fehlgeschlagen: %{Fehler}" - greater_than_or_equal_to: "muss gr\xC3\xB6\xC3\x9Fer oder gleich %{count} sein" - confirmation: "stimmt nicht mit der Best\xC3\xA4tigung \xC3\xBCberein" - less_than_or_equal_to: muss kleiner oder gleich %{count} sein - blank: "muss ausgef\xC3\xBCllt werden" - invalid: "ist nicht g\xC3\xBCltig" - exclusion: "ist nicht verf\xC3\xBCgbar" - odd: muss ungerade sein - too_short: ist zu kurz (nicht weniger als %{count} Zeichen) - wrong_length: "hat die falsche L\xC3\xA4nge (muss genau %{count} Zeichen haben)" - empty: "muss ausgef\xC3\xBCllt werden" - even: muss gerade sein - less_than: muss kleiner als %{count} sein - greater_than: "muss gr\xC3\xB6\xC3\x9Fer als %{count} sein" - equal_to: muss genau %{count} sein - accepted: muss akzeptiert werden - too_long: ist zu lang (nicht mehr als %{count} Zeichen) - taken: ist bereits vergeben - not_a_number: ist keine Zahl - inclusion: "ist kein g\xC3\xBCltiger Wert" full_messages: format: "%{attribute} %{message}" template: @@ -224,24 +229,22 @@ de: header: one: "Konnte dieses %{model} Objekt nicht speichern: 1 Fehler." other: "Konnte dieses %{model} Objekt nicht speichern: %{count} Fehler." - data: - import_successful: Import war erfolgreich. - import_errors: Beim Import sind Fehler aufgetreten. stats: - totals_active_project_count: Von diesen sind %{count} aktive Projekte tag_cloud_title: Tag-Cloud aller Aktionen - actions: Aktionen tag_cloud_description: Diese Tag-Cloud beinhaltet Tags aller Aktionen (abgeschlossen, nicht abgeschlossen, sichtbar und/oder unsichtbar) tag_cloud_90days_title: Tag-Cloud-Aktionen in den letzten 90 Tagen + actions: Aktionen + totals_active_project_count: Von diesen sind %{count} aktive Projekte actions_last_year_legend: number_of_actions: Anzahl Aktionen months_ago: Monate zuvor totals_first_action: Seit deiner ersten Aktion am %{date} actions_avg_completion_time: Durchschnittlich hast du %{count} Tage gebraucht, um eine Aktion abzuschliessen. - totals_action_count: hattest du insgesamt %{count} Aktionen + top10_longrunning: "Top 10 der am l\xC3\xA4ngsten laufenden Projekte" + actions_dow_30days_title: Wochentag (letzte 30 Tage) legend: - number_of_days: Anzahl vergangene Tage actions: Aktionen + number_of_days: Anzahl vergangene Tage number_of_actions: Anzahl Aktionen day_of_week: Wochentag percentage: Prozentsatz @@ -253,54 +256,53 @@ de: actions: Aufgaben percentage: Prozentsatz weeks: "Vergangene Zeit einer Aktion (Wochen). Klick auf eine Leiste f\xC3\xBCr mehr Informationen." - top10_longrunning: "Top 10 der am l\xC3\xA4ngsten laufenden Projekte" - actions_dow_30days_title: Wochentag (letzte 30 Tage) - actions_lastyear_title: Aktionen der letzten 12 Monate - totals_actions_completed: "%{count} davon sind abgeschlossen." + totals_action_count: hattest du insgesamt %{count} Aktionen totals_incomplete_actions: "Du hast %{count} unvollst\xC3\xA4ndige Aktionen" totals_unique_tags: Von diesen Tags sind %{count} einmalig.. actions_avg_completed_30days: und %{count} durchschnittlich davon erledigt. top5_contexts: Top 5 aller Kontexte - action_completion_time_title: Fertigstellungszeit (alle abgeschlossenen Aktionen) - actions_last_year: Aktionen im letzten Jahr + actions_lastyear_title: Aktionen der letzten 12 Monate + totals_actions_completed: "%{count} davon sind abgeschlossen." totals_context_count: Du hast %{count} Kontexte. - projects: Projekte totals_visible_context_count: Von diesen sind %{count} sichtbare Kontexte totals_blocked_actions: "%{count} h\xC3\xA4ngen vom Abschluss anderer Aktionen ab." - actions_day_of_week_title: Wochentag (alle Aktionen) - totals_project_count: Du hast %{count} Projekte. + projects: Projekte + action_completion_time_title: Fertigstellungszeit (alle abgeschlossenen Aktionen) + actions_last_year: Aktionen im letzten Jahr actions_min_max_completion_days: "Das Minimum/Maximum an Tagen einer Vervollst\xC3\xA4ndigung ist %{min}/%{max}." + tags: Tags actions_min_completion_time: "Die minimale Zeit betr\xC3\xA4gt %{time}." no_tags_available: "keine Tags verf\xC3\xBCgbar" - tags: Tags + actions_day_of_week_title: Wochentag (alle Aktionen) + totals_project_count: Du hast %{count} Projekte. running_time_all: "Aktuelle Laufzeit aller unvollst\xC3\xA4ndigen Aktionen." - tag_cloud_90days_description: Diese Tag-Cloud beinhaltet Tags der Aktionen, die in den letzten 90 Tagen erstellt oder abgeschlossen wurden. actions_30days_title: _Aktionen der letzten 30 Tage - top5_visible_contexts_with_incomplete_actions: "Top 5 der sichtbaren Kontexte mit unvollst\xC3\xA4ndigen Aktionen" time_of_day: Tageszeit (alle Aktionen) totals_hidden_project_count: "%{count} sind versteckt" - actions_further: und danach tod30: Tageszeit (letzte 30 Tage) - totals_tag_count: Du hast %{count} Tags in Aktionen. + tag_cloud_90days_description: Diese Tag-Cloud beinhaltet Tags der Aktionen, die in den letzten 90 Tagen erstellt oder abgeschlossen wurden. more_stats_will_appear: "Weitere Statistiken werden verf\xC3\xBCgbar, wenn einige Aufgaben hinzugef\xC3\xBCgt wurden." - click_to_return: "Klick auf %{link} um zur Statistikseite zur\xC3\xBCckzukehren." - other_actions_label: (andere) + top5_visible_contexts_with_incomplete_actions: "Top 5 der sichtbaren Kontexte mit unvollst\xC3\xA4ndigen Aktionen" + actions_further: und danach + totals_tag_count: Du hast %{count} Tags in Aktionen. top10_projects_30days: Top-10-Projekt der letzten 30 Tage - top10_projects: Top 10 aller Projekte spread_of_running_actions_for_visible_contexts: Verteilung der laufenden Aufgaben aller sichtbaren Kontexte - actions_avg_created: In den letzten 12 Monaten hast du im Durchschnitt %{count} Aktionen erstellt actions_selected_from_week: "Aktionen ausgew\xC3\xA4hlt ab Woche" spread_of_actions_for_all_context: Aufgabenverteilung aller Kontexte - totals_completed_project_count: und %{count} sind abgeschlossene Projekte. click_to_show_actions_from_week: Klick auf %{link} um die Aktionen von Woche %{week} und danach anzuzeigen. + other_actions_label: (andere) + top10_projects: Top 10 aller Projekte + totals_completed_project_count: und %{count} sind abgeschlossene Projekte. + actions_avg_created: In den letzten 12 Monaten hast du im Durchschnitt %{count} Aktionen erstellt + click_to_return: "Klick auf %{link} um zur Statistikseite zur\xC3\xBCckzukehren." + actions_avg_completed: und %{count} durchschnittlich davon monatlich erledigt totals: Ingesamt time_of_day_legend: number_of_actions: Anzahl Aufgaben time_of_day: Tageszeit - click_to_return_link: hier contexts: Kontexte + click_to_return_link: hier totals_hidden_context_count: und %{count} sind versteckte Kontexte. - actions_avg_completed: und %{count} durchschnittlich davon monatlich erledigt labels: month_avg_completed: "%{months} Monat durchschnittlich fertig gestellt" completed: Erledigt @@ -308,22 +310,22 @@ de: avg_created: Durchschnittlich erstellt avg_completed: Durchschnittlich fertiggestellt created: Erstellt - no_actions_selected: "Es sind keine Aufgaben ausgew\xC3\xA4hlt." - click_to_update_actions: Klicke auf eine Leiste in der Grafik um die Aktionen unten zu aktualisieren. running_time_all_legend: actions: Aktionen percentage: Prozentsatz running_time: "Laufzeit einer Aktion (Wochen). Klick auf eine Leiste f\xC3\xBCr mehr Informationen." + click_to_update_actions: Klicke auf eine Leiste in der Grafik um die Aktionen unten zu aktualisieren. + no_actions_selected: "Es sind keine Aufgaben ausgew\xC3\xA4hlt." actions_actions_avg_created_30days: In den letzten 30 Tagen hast du im Durchschnitt %{count} Aktionen erstellt tod30_legend: number_of_actions: Anzahl Aufgaben time_of_day: Tageszeit action_selection_title: TRACKS::Aktionsauswahl todos: - completed_actions: Erledigte Aufgaben show_from: Anzeigen ab dem error_starring_recurring: Konnte die Hervorhebung der wiederkehrenden Aufgabe \'%{description}\' nicht durchführen recurring_action_deleted: Die Aktion wurde gelöscht. Da dies eine wiederkehrende Aktion ist, wurde eine neue erstellt. + completed_actions: Erledigte Aufgaben completed_recurring: Abgeschlossene wiederkehrende To-Dos added_new_next_action: Neue Aktion angelegt completed_rest_of_previous_month: Fertiggestellt den Rest des Vormonats @@ -337,18 +339,18 @@ de: tagged_with: getagged mit ‘%{tag_name}’ completed: Erledigt no_deferred_actions_with: "Keine zur\xC3\xBCckgestellten Aktionen mit dem Tag '%{tag_name}'" - no_hidden_actions: Momentan sind keine versteckten Aufgaben vorhanden edit_action_with_description: Aktion '%{description}' bearbeiten + no_hidden_actions: Momentan sind keine versteckten Aufgaben vorhanden action_due_on: "(Aktion f\xC3\xA4llig am %{date})" + remove_dependency: Abhängigkeit löschen (löscht nicht die Aufgabe) + archived_tasks_title: TRACKS::Archivierte erledigte Aufgaben + list_incomplete_next_actions: Unerledigte Folge-Aufgaben anzeigen tags: Tags (Komma-separiert) action_deleted_success: Die nächste Aktion erfolgreich gelöscht - archived_tasks_title: TRACKS::Archivierte erledigte Aufgaben - remove_dependency: Abhängigkeit löschen (löscht nicht die Aufgabe) - list_incomplete_next_actions: Unerledigte Folge-Aufgaben anzeigen - mobile_todos_page_title: Alle Aufgaben new_related_todo_created: "Eine neue To-Do wurde hinzugef\xC3\xBCgt, die zu dieser wiederkehrenden To-Do geh\xC3\xB6rt" context_changed: Kontext zu %{name} gewechselt add_another_dependency: "F\xC3\xBCgen Sie eine andere Abh\xC3\xA4ngigkeit" + mobile_todos_page_title: Alle Aufgaben delete_recurring_action_title: "Wiederkehrende Aktion '%{description}' l\xC3\xB6schen" removed_predecessor: "%{successor} entfernt als Abh\xC3\xA4ngigkeit von %{predecessor}." recurring_actions_title: TRACKS::Wiederkehrende Aktionen @@ -359,43 +361,43 @@ de: edit_action: Aktion bearbeiten added_new_context: "Neuer Kontext hinzugef\xC3\xBCgt" next_actions_description: "Filter:" + list_incomplete_next_actions_with_limit: Zeige die letzten %{count} unerledigten Folge-Aufgaben + set_to_pending: "%{task} als ausstehend markiert" + added_new_project: "Neues Projekt hinzugef\xC3\xBCgt" next_actions_title_additions: completed: Aufgaben erledigt due_today: heute fällig due_within_a_week: diese Woche fällig - added_new_project: "Neues Projekt hinzugef\xC3\xBCgt" - list_incomplete_next_actions_with_limit: Zeige die letzten %{count} unerledigten Folge-Aufgaben - set_to_pending: "%{task} als ausstehend markiert" older_completed_items: "Ältere erledigte Aufgaben" append_in_this_project: in diesem Projekt error_deleting_item: Beim Löschen von %{description} trat ein Fehler auf task_list_title: TRACKS::Aufgaben anzeigen no_actions_due_this_week: Keine zu erledigenden Aufgaben für den Rest der Woche + no_deferred_pending_actions: Momentan sind keine aufgeschobenen oder ausstehenden Aufgaben vorhanden. no_recurring_todos: Im Augenblick gibt es keine wiederkehrenden To-Dos error_completing_todo: Beim Abschliessen/Aktivieren der wiederkehrenden To-Do %{description} ist ein Fehler aufgetreten recurring_pattern_removed: Das Wiederauftreten Muster ist aus entfernt %{count} convert_to_project: In Projekt umwandeln - no_deferred_pending_actions: Momentan sind keine aufgeschobenen oder ausstehenden Aufgaben vorhanden. delete_recurring_action_confirm: Soll die wiederkehrende Aktion '%{description}' wirklich gelöscht werden? completed_last_day: In den letzten 24 Stunden erledigt - all_completed: Alle abgeschlossenen Aktionen - error_saving_recurring: Es gab einen Fehler beim Speichern der wiederkehrenden todo '%{description}' + completed_more_than_x_days_ago: Vor mehr als %{count} Tagen erledigt show_in_days: Anzeigen in %{days} Tagen no_project: --Kein Projekt-- - completed_more_than_x_days_ago: Vor mehr als %{count} Tagen erledigt - feed_title_in_context: im Kontext '%{context}' + error_saving_recurring: Es gab einen Fehler beim Speichern der wiederkehrenden todo '%{description}' new_related_todo_created_short: hat einen neuen todo - completed_tagged_page_title: "TRACKS:: Erledigte Aufgaben mit Tag %{tag_name}" + all_completed: Alle abgeschlossenen Aktionen + feed_title_in_context: im Kontext '%{context}' older_than_days: "Älter als %{count} Tage" + completed_tagged_page_title: "TRACKS:: Erledigte Aufgaben mit Tag %{tag_name}" edit: Bearbeiten pending: Ausstehend completed_actions_with: Abgeschlossene Aktionen mit dem Tag %{tag_name} - completed_tasks_title: TRACKS::Erledigte Aufgaben deleted_success: "Die Aktion wurde erfolgreich gel\xC3\xB6scht." + completed_tasks_title: TRACKS::Erledigte Aufgaben feed_title_in_project: im Projekt '%{project}' clear_due_date: Fälligkeitsdatum leeren - error_removing_dependency: "Beim Entfernen der Abh\xC3\xA4ngigkeit ist ein Fehler aufgetreten" hidden_actions: Verstecke Aufgaben + error_removing_dependency: "Beim Entfernen der Abh\xC3\xA4ngigkeit ist ein Fehler aufgetreten" was_due_on_date: war am %{date} fällig show_on_date: Anzeigen am %{date} recurrence_period: Wiederholungszeitraum @@ -414,8 +416,8 @@ de: no_actions_found_title: Keine Aktionen gefunden next_actions_due_date: overdue_by: "\xC3\x9Cberf\xC3\xA4llig mit %{days} Tag" - due_in_x_days: "F\xC3\xA4llig in %{days} Tagen" due_today: "Heute f\xC3\xA4llig" + due_in_x_days: "F\xC3\xA4llig in %{days} Tagen" overdue_by_plural: "\xC3\x9Cberf\xC3\xA4llig mit %{days} Tagen" due_tomorrow: "F\xC3\xA4llig morgen" completed_last_x_days: In den letzten %{count} Tagen erledigt @@ -432,9 +434,9 @@ de: has_x_pending: one: Hat eine ausstehende Aktion other: Hat %{count} ausstehende Aktionen - recurring_todos: Wiederkehrende To-Dos delete_action: "Aktion l\xC3\xB6schen" error_deleting_recurring: "Beim L\xC3\xB6schen der wiederkehrenden To-Do %{description} ist ein Fehler aufgetreten" + recurring_todos: Wiederkehrende To-Dos cannot_add_dependency_to_completed_todo: "Kann nicht hinzugef\xC3\xBCgt werden diese Aktion als eine Abh\xC3\xA4ngigkeit zu einer abgeschlossenen Aktion!" delete: "L\xC3\xB6schen" drag_action_title: "Auf andere Aktion ziehen, um sie als Abh\xC3\xA4ngigkeit zu definieren" @@ -452,15 +454,17 @@ de: calendar: get_in_ical_format: Diesen Kalender im iCal Format herunterladen due_next_week: Nächste Woche fällig - due_this_week: Die restliche Woche zu erledigen no_actions_due_next_week: Keine Aufgaben für die kommende Woche - no_actions_due_today: Heute sind keine Aufgaben fällig + due_this_week: Die restliche Woche zu erledigen due_today: Heute zu erledigen + no_actions_due_today: Heute sind keine Aufgaben fällig due_next_month_and_later: Im %{month} und später fällig no_actions_due_after_this_month: Nach diesem Monat sind keine Aufgaben fällig due_this_month: Im %{month} fällig no_actions_due_this_month: Keine Aktionen für den Rest des Monats show_tomorrow: Morgen anzeigen + tagged_page_title: TRACKS::Als '%{tag_name}' markiert + action_deferred: Die Aktion \'% {description}\' wurde vertagt recurrence: ends_on_number_times: Endet nach %{number} Mal ends_on_date: Endet am %{date} @@ -469,13 +473,10 @@ de: weekly_options: "Einstellungen f\xC3\xBCr sich w\xC3\xB6chentlich wiederholende Aktionen" weekly: "W\xC3\xB6chentlich" monthly_options: "Einstellungen f\xC3\xBCr sich monatlich wiederholende Aktionen" + starts_on: Beginnt am daily_options: "Einstellungen f\xC3\xBCr sich t\xC3\xA4glich wiederholenden Aktionen" monthly: Monatlich - starts_on: Beginnt am - show_option_always: immer - daily: "T\xC3\xA4glich" pattern: - third: Drittel month_names: - - Januar @@ -492,19 +493,20 @@ de: - Oktober - November - Dezember + third: Drittel every_n: jeden %{n} - every_xth_day_of_every_n_months: "jedes %{x} %{day} jedes %{n_months} \xE2\x80\x8B" - second: zweite on_day_n: am Tag %{n} - weekly: "w\xC3\xB6chentlich" + second: zweite + every_xth_day_of_every_n_months: "jedes %{x} %{day} jedes %{n_months} \xE2\x80\x8B" from: von + weekly: "w\xC3\xB6chentlich" last: zuletzt every_day: jeden Tag the_xth_day_of_month: der %{x} %{day} von %{month} times: "f\xC3\xBCr %{number} Zeiten" on_work_days: an Wochentagen + every_year_on: jedes Jahr in %{date} first: erste - show: Show day_names: - Sonntag - Montag @@ -513,41 +515,41 @@ de: - Donnerstag - Freitag - Samstag - every_year_on: jedes Jahr in %{date} + show: Show fourth: vierte due: "F\xC3\xA4llig" until: bis every_month: jeden Monat + show_option_always: immer + daily: "T\xC3\xA4glich" yearly_every_x_day: "Jeden %{day}. %{month} " recurrence_on_options: Setze Wiederholung auf daily_every_number_day: Alle %{number} Tage + show_options: To-Do anzeigen weekly_every_number_week: Kehrt jede %{number}. Woche wieder am ends_on: Endet am - show_options: To-Do anzeigen show_days_before: "%{days} Tage bevor die To-Do f\xC3\xA4llig ist" from_tickler: the date todo comes from tickler (no due date set) no_end_date: Kein Enddatum day_x_on_every_x_month: Tag %{day} in jedem %{month}. Monat - yearly_every_xth_day: Den %{day} %{day_of_week} des %{month} yearly_options: "Einstellungen f\xC3\xBCr sich j\xC3\xA4hrlich wiederholende Aktionen" - yearly: "J\xC3\xA4hrlich" + yearly_every_xth_day: Den %{day} %{day_of_week} des %{month} monthly_every_xth_day: Der %{day} %{day_of_week} eines jeden %{month}. Monats - action_deferred: Die Aktion \'% {description}\' wurde vertagt - tagged_page_title: TRACKS::Als '%{tag_name}' markiert + yearly: "J\xC3\xA4hrlich" no_completed_recurring: Im Augenblick gibt es keine abgeschlossenen wiederkehrenden To-Dos added_dependency: "%{dependency} als Abhängigkeit hinzugefügt." - completed_rest_of_month: Fertiggestellt den Rest des Monats no_deferred_actions: Zur Zeit sind keine zurückgestellten Aktionen vorhanden. all_completed_tagged_page_title: "TRACKS:: Alle erledigten Aufgaben mit Tag %{tag_name}" + completed_rest_of_month: Fertiggestellt den Rest des Monats recurrence_completed: Nach dieser wiederkehrenden Aktion, die du gerade abgeschlossen hast, folgt keine mehr. Die Wiederholung endet hiermit - due: Fällig + error_toggle_complete: "K\xC3\xB6nnte nicht diese Marke todo komplett" no_actions_found: "Momentan gibt es keine unvollst\xC3\xA4ndigen Aktionen." in_pending_state: und als ausstehend markiert - error_toggle_complete: "K\xC3\xB6nnte nicht diese Marke todo komplett" + due: Fällig action_marked_complete_error: Die Aktion '%{description}' wurde aufgrund eines Fehlers NICHT als %{completed} markiert. recurring_action_saved: Wiederkehrende Aktion gespeichert - depends_on_separate_with_commas: Hängt ab von (Komma-separiert) action_saved_to_tickler: Aktion im Notizbuch gespeichert + depends_on_separate_with_commas: Hängt ab von (Komma-separiert) completed_in_archive: one: Es befindet sich eine erledigte Aufgabe im Archiv. other: Es befinden sich %{count} erledigte Aufgaben im Archiv. @@ -562,9 +564,9 @@ de: delete_confirmation: "Bist du sicher, dass du die Notiz '%{id}' l\xC3\xB6schen m\xC3\xB6chtest?" delete_item_title: Eintrag löschen delete_note_title: Notiz '%{id}' löschen - deleted_note: "Notiz '%{id}' l\xC3\xB6schen" note_link_title: Notiz %{id} anzeigen show_note_title: Notiz anzeigen + deleted_note: "Notiz '%{id}' l\xC3\xB6schen" edit_item_title: Eintrag bearbeiten note_location_link: "In:" no_notes_available: "Derzeit gibt es keine Notizen: f\xC3\xBCge Notizen von der jeweiligen Projektseite hinzu." @@ -575,10 +577,64 @@ de: completed: Erledigt completed_plural: Erledigte visible_plural: Sichtbare - active_plural: Aktive visible: Sichtbar - active: Aktiv + active_plural: Aktive hidden: Versteckt + active: Aktiv + projects: + was_marked_hidden: wurde als verborgen markiert + edit_project_title: Projekt bearbeiten + default_tags_removed_notice: Standard-Tags entfernt + default_context_set: Standard-Kontext des Projekts auf %{default_context} gesetzt + no_actions_in_project: "Momentan gibt es keine unvollst\xC3\xA4ndigen Aktionen in diesem Projekt" + deferred_actions: "Aufgeschobene Aufgaben f\xC3\xBCr dieses Projekt" + all_completed_tasks_title: "TRACKS:: Alle auflisten Abgeschlossene Aktionen in Project '%{project_name}'" + hide_form: Fomular verstecken + page_title: "TRACKS::Projekt: %{project}" + list_completed_projects: "TRACKS:: Liste Abgeschlossene Projekte" + show_form_title: Neues Projekt anlegen + to_new_project_page: Zu neuem Projekt weiterleiten + no_notes_attached: "Im Augenblick sind keine Notizen mit diesem Projekt verkn\xC3\xBCpft." + deferred_actions_empty: "Es gibt keine aufgeschobenen Aufgaben f\xC3\xBCr dieses Projekt" + this_project: Dieses Projekt + project_state: Projekt ist %{state} + todos_append: an dieses Projekt + no_last_completed_projects: Keine abgeschlossene Projekte gefunden + notes: Notizen + no_last_completed_recurring_todos: Keine abgeschlossene sich wiederholende To-Dos gefunden + notes_empty: "Es gibt keine Notizen f\xC3\xBCr dieses Projekt" + no_projects: Keine Projekte vorhanden + hide_form_title: Formular verstecken + with_no_default_context: hat keinen Standardwert Kontext + delete_project: Projekt löschen + completed_actions_empty: "Es gibt keine erledigten Aufgaben f\xC3\xBCr dieses Projekt" + show_form: Projekt erstellen + actions_in_project_title: Die Aktionen in diesem Projekt + delete_project_confirmation: Soll das Projekt '%{name}' wirklich gelöscht werden? + with_default_context: mit einem Standard-Rahmen von '%{context_name}' + set_default_tags_notice: Standard-Tags des Projekts auf %{default_tags} setzen + is_active: ist aktiv + settings: Einstellungen + completed_projects: Abgeschlossene Projekte + with_default_tags: und mit '%{tags}' als Standard-Tags + list_projects: TRACKS::Projektliste + project_saved_status: Projekt gespeichert + add_project: Projekt hinzufügen + add_note: "Notiz hinzuf\xC3\xBCgen" + completed_tasks_title: "TRACKS:: Liste Abgeschlossene Aktionen in Project '%{project_name}'" + delete_project_title: Projekt löschen + hidden_projects: Versteckte Projekte + add_note_submit: "Notiz hinzuf\xC3\xBCgen" + was_marked_complete: wurde als erledigt markiert + completed_actions: "Erledigte Aufgaben f\xC3\xBCr dieses Projekt" + default_context_removed: Standard-Kontext entfernt + default_context: Der Standard-Kontext dieses Projektes ist %{context} + status_project_name_changed: "Projektname ge\xC3\xA4ndert" + active_projects: Aktive Projekte + no_default_context: Dieses Projekt hat keinen Standard-Kontext + with_no_default_tags: und hat keinen Standardwert Tags + edit_project_settings: Edit Project Settings + state: Dieses Projekt ist %{state} time: am: vormittags formats: @@ -588,66 +644,10 @@ de: month_day: "%d. %B" long: "%A, %d. %B %Y, %H:%M Uhr" pm: nachmittags - projects: - edit_project_title: Projekt bearbeiten - default_tags_removed_notice: Standard-Tags entfernt - default_context_set: Standard-Kontext des Projekts auf %{default_context} gesetzt - no_actions_in_project: "Momentan gibt es keine unvollst\xC3\xA4ndigen Aktionen in diesem Projekt" - deferred_actions: "Aufgeschobene Aufgaben f\xC3\xBCr dieses Projekt" - was_marked_hidden: wurde als verborgen markiert - all_completed_tasks_title: "TRACKS:: Alle auflisten Abgeschlossene Aktionen in Project '%{project_name}'" - page_title: "TRACKS::Projekt: %{project}" - hide_form: Fomular verstecken - show_form_title: Neues Projekt anlegen - list_completed_projects: "TRACKS:: Liste Abgeschlossene Projekte" - to_new_project_page: Zu neuem Projekt weiterleiten - no_notes_attached: "Im Augenblick sind keine Notizen mit diesem Projekt verkn\xC3\xBCpft." - this_project: Dieses Projekt - deferred_actions_empty: "Es gibt keine aufgeschobenen Aufgaben f\xC3\xBCr dieses Projekt" - project_state: Projekt ist %{state} - no_last_completed_projects: Keine abgeschlossene Projekte gefunden - no_last_completed_recurring_todos: "Keine abgeschlossene sich wiederholende To-Dos gefunden" - todos_append: an dieses Projekt - notes: Notizen - notes_empty: "Es gibt keine Notizen f\xC3\xBCr dieses Projekt" - no_projects: Keine Projekte vorhanden - hide_form_title: Formular verstecken - with_no_default_context: hat keinen Standardwert Kontext - delete_project: Projekt löschen - completed_actions_empty: "Es gibt keine erledigten Aufgaben f\xC3\xBCr dieses Projekt" - delete_project_confirmation: Soll das Projekt '%{name}' wirklich gelöscht werden? - with_default_context: mit einem Standard-Rahmen von '%{context_name}' - show_form: Projekt erstellen - actions_in_project_title: Die Aktionen in diesem Projekt - add_project: Projekt hinzufügen - with_default_tags: und mit '%{tags}' als Standard-Tags - add_note: "Notiz hinzuf\xC3\xBCgen" - list_projects: TRACKS::Projektliste - set_default_tags_notice: Standard-Tags des Projekts auf %{default_tags} setzen - is_active: ist aktiv - settings: Einstellungen - project_saved_status: Projekt gespeichert - completed_projects: Abgeschlossene Projekte - completed_tasks_title: "TRACKS:: Liste Abgeschlossene Aktionen in Project '%{project_name}'" - delete_project_title: Projekt löschen - hidden_projects: Versteckte Projekte - add_note_submit: "Notiz hinzuf\xC3\xBCgen" - was_marked_complete: wurde als erledigt markiert - completed_actions: "Erledigte Aufgaben f\xC3\xBCr dieses Projekt" - default_context_removed: Standard-Kontext entfernt - edit_project_settings: Edit Project Settings - active_projects: Aktive Projekte - default_context: Der Standard-Kontext dieses Projektes ist %{context} - status_project_name_changed: "Projektname ge\xC3\xA4ndert" - no_default_context: Dieses Projekt hat keinen Standard-Kontext - with_no_default_tags: und hat keinen Standardwert Tags - state: Dieses Projekt ist %{state} - errors: - user_unauthorized: "401 Unauthorized: Nur administrative Benutzer d\xC3\xBCrfen auf diese Funktion zugreifen." preferences: - change_identity_url: "\xC3\x84ndere deine Identit\xC3\xA4ts-URL" open_id_url: "Deine OpenID-URL lautet:" staleness_starts_after: Abgestandenheit startet nach %{days} Tagen + change_identity_url: "\xC3\x84ndere deine Identit\xC3\xA4ts-URL" change_password: "Passwort \xC3\xA4ndern" page_title: TRACKS::Einstellungen title: Deine Einstellungen @@ -664,6 +664,13 @@ de: current_authentication_type: Dein Authentifizierungsart ist %{auth_type} change_authentication_type: "Authentifzierungsart \xC3\xA4ndern" generate_new_token_confirm: "Bist du sicher? Wenn du ein neues Token generierst, wird dies das alte Token ersetzen und jegliche externe Nutzung st\xC3\xB6ren, die das alte Token verwendet." + tabs: + authentication: Authentication + tracks_behavior: Tracks Verhalten + profile: Profil + date_and_time: Datum und Uhrzeit + errors: + user_unauthorized: "401 Unauthorized: Nur administrative Benutzer d\xC3\xBCrfen auf diese Funktion zugreifen." date: month_names: - @@ -681,10 +688,6 @@ de: - Oktober - November - Dezember - order: - - :day - - :month - - :year abbr_day_names: - So - Mo @@ -693,6 +696,10 @@ de: - Do - Fr - Sa + order: + - :day + - :month + - :year formats: only_day: "%e" default: "%d.%m.%Y" @@ -725,8 +732,8 @@ de: - Dez support: array: - last_word_connector: " und " words_connector: ", " + last_word_connector: " und " two_words_connector: " und " select: prompt: "Bitte w\xC3\xA4hlen Sie" @@ -734,18 +741,85 @@ de: send_feedback: Senden Sie Feedback zu %{version} shared: multiple_next_actions: Mehrere neue Aufgaben (eine pro Zeile) - toggle_single: Weitere Aktion erstellen hide_form: Formular verstecken + toggle_single: Weitere Aktion erstellen add_action: "Aufgabe hinzuf\xC3\xBCgen" add_actions: "Aufgaben hinzuf\xC3\xBCgen" tags_for_all_actions: "Tags f\xC3\xBCr alle Aufgaben (mit Kommas trennen)" + toggle_single_title: Eine weitere Aktion hinzufügen project_for_all_actions: "Projekt f\xC3\xBCr alle Aufgaben" context_for_all_actions: "Kontext f\xC3\xBCr alle Aufgaben" toggle_multi: "Mehrere neue Aufgabeneintr\xC3\xA4ge hinzuf\xC3\xBCgen" - toggle_single_title: Eine weitere Aktion hinzufügen separate_tags_with_commas: mit Kommas trennen toggle_multi_title: "Zwischen Einzel- und Mehrfachformular f\xC3\xBCr neue Aufgaben umschalten" hide_action_form_title: "Formular f\xC3\xBCr neue Aufgaben verstecken" + feedlist: + choose_context: "Kontext f\xC3\xBCr den Feed w\xC3\xA4hlen" + actions_due_today: "Heute oder fr\xC3\xBCher f\xC3\xA4llig" + rss_feed: RSS-Feed + ical_feed: iCal-Feed + legend: "Legende:" + all_contexts: Alle Kontexte + all_projects: Alle Projekte + choose_project: "Projekt f\xC3\xBCr den Feed w\xC3\xA4hlen" + select_feed_for_project: "Feed f\xC3\xBCr dieses Projekt ausw\xC3\xA4hlen" + active_projects_wo_next: Aktive Projekte ohne ausstehende Aufgaben + project_needed: Es muss mindestens ein Projekt existieren, bevor ein Feed abonniert werden kann. + active_starred_actions: Alle markierten, aktiven Aufgaben + select_feed_for_context: "Feed f\xC3\xBCr diesen Kontext ausw\xC3\xA4hlen" + projects_and_actions: Aktive Projekte und deren Aufgaben + context_needed: Es muss mindestens ein Kontext existieren, bevor ein Feed abonniert werden kann. + actions_due_next_week: "In den n\xC3\xA4chsten 7 Tagen oder fr\xC3\xBCher f\xC3\xA4llige Aufgaben" + notice_incomplete_only: "Hinweis: Alle Feeds zeigen nur Aufgaben, die noch nicht als erledigt markiert wurden." + all_actions: Alle Aufgaben + actions_completed_last_week: In den letzten 7 Tagen abgeschlossene Aufgaben + context_centric_actions: "Feeds f\xC3\xBCr unvollst\xC3\xA4ndige Aufgaben in einem bestimmten Kontext" + plain_text_feed: Plain-Text-Feed + last_fixed_number: Die letzten %{number} Aufgaben + project_centric: "Feeds f\xC3\xBCr unvollst\xC3\xA4ndige Aufgaben in einem bestimmten Kontext" + users: + successfully_deleted_user: Benutzer %{username} erfolgreich gelöscht. + failed_to_delete_user: Löschen des Benutzers %{username} fehlgeschlagen + total_contexts: Alle Kontexte + first_user_heading: "Willkommen bei TRACKS. Als erstes legen Sie bitte einen Administrator-Zugang an:" + openid_url_verified: Die URL %{url} wurde erfolgreich als Identität verifiziert und Deine Authentifizierung auf OpenID umgestellt. + auth_type_update_error: "Beim Ändern der Authentifizierung trat ein Fehler auf: %{error_messages}" + destroy_successful: "Benutzer %{login} wurde erfolgreich gel\xC3\xB6scht" + new_token_generated: Neuer Token erfolgreich generiert + total_projects: Alle Projekte + signup_successful: Benutzer %{username} erfolgreich angelegt. + change_password_submit: "Passwort \xC3\xA4ndern" + no_signups_title: TRACKS::Anmeldung nicht erlaubt + user_created: Benutzer angelegt. + manage_users: Benutzer verwalten + account_signup: Accounteinrichtung + password_updated: Passwort aktualisiert. + desired_login: "Gew\xC3\xBCnschter Benutzername" + signup: Registrieren + confirm_password: "Passwort best\xC3\xA4tigen" + new_user_heading: "Einen neuen Benutzer anlegen:" + auth_type_updated: Authentifizierungs-Art erfolgreich geändert. + total_actions: Alle Aufgaben + change_password_title: TRACKS::Passwort ändern + change_auth_type_title: TRACKS::Authentifizierungstyp ändern + change_password_prompt: "Gib dein neues Passwort in die unten stehenden Felder ein und klicke auf 'Passwort \xC3\xA4ndern' um dein altes Passwort durch das neue zu ersetzen." + password_confirmation_label: "Passwort best\xC3\xA4tigen" + destroy_error: "Beim L\xC3\xB6schen des Benutzers %{login} ist ein Fehler aufgetreten." + choose_password: "Passwort w\xC3\xA4hlen" + register_with_cas: Mit deinem CAS-Benutzernamen + label_auth_type: Authentifizierungsart + new_password_label: Neues Passwort + new_user_title: TRACKS::Als Administrator anmelden + destroy_user: "Benutzer l\xC3\xB6schen" + total_users_count: Derzeit existieren %{count} Benutzer + destroy_confirmation: "Achtung: der Benutzer '%{login}' wird mit all seinen Aufgaben, Kontexten, Projekten und Notizen gel\xC3\xB6scht. Bist du sicher, dass du fortfahren m\xC3\xB6chtest?" + signup_new_user: Neuen Benutzer anlegen + openid_ok_pref_failed: Die URL %{url} wurde erfolgreich als Identität verifiziert, beim Speichern der Einstellungen trat jedoch ein Fehler auf. + identity_url: Identity-URL + change_authentication_type: "Authentifizierungsart \xC3\xA4ndern" + auth_change_submit: "Authentifizierungsart \xC3\xA4ndern" + total_notes: Alle Notizen + select_authentication_type: "W\xC3\xA4hle deine neue Authentifizierungsart und klicke 'Authentifizierungsart \xC3\xA4ndern' an, um deine aktuellen Einstellungen zu \xC3\xBCberschreiben." sidebar: list_name_active_contexts: Aktive Kontexte list_name_active_projects: Aktive Projekte @@ -753,73 +827,6 @@ de: list_name_completed_projects: Abgeschlossene Projekte list_name_hidden_projects: Versteckte Projekte list_name_hidden_contexts: Versteckte Kontexte - users: - auth_type_update_error: "Beim Ändern der Authentifizierung trat ein Fehler auf: %{error_messages}" - openid_url_verified: Die URL %{url} wurde erfolgreich als Identität verifiziert und Deine Authentifizierung auf OpenID umgestellt. - destroy_successful: "Benutzer %{login} wurde erfolgreich gel\xC3\xB6scht" - total_contexts: Alle Kontexte - successfully_deleted_user: Benutzer %{username} erfolgreich gelöscht. - failed_to_delete_user: Löschen des Benutzers %{username} fehlgeschlagen - first_user_heading: "Willkommen bei TRACKS. Als erstes legen Sie bitte einen Administrator-Zugang an:" - new_token_generated: Neuer Token erfolgreich generiert - total_projects: Alle Projekte - signup_successful: Benutzer %{username} erfolgreich angelegt. - change_password_submit: "Passwort \xC3\xA4ndern" - no_signups_title: TRACKS::Anmeldung nicht erlaubt - user_created: Benutzer angelegt. - account_signup: Accounteinrichtung - manage_users: Benutzer verwalten - password_updated: Passwort aktualisiert. - confirm_password: "Passwort best\xC3\xA4tigen" - signup: Registrieren - new_user_heading: "Einen neuen Benutzer anlegen:" - auth_type_updated: Authentifizierungs-Art erfolgreich geändert. - total_actions: Alle Aufgaben - desired_login: "Gew\xC3\xBCnschter Benutzername" - choose_password: "Passwort w\xC3\xA4hlen" - change_password_title: TRACKS::Passwort ändern - change_auth_type_title: TRACKS::Authentifizierungstyp ändern - change_password_prompt: "Gib dein neues Passwort in die unten stehenden Felder ein und klicke auf 'Passwort \xC3\xA4ndern' um dein altes Passwort durch das neue zu ersetzen." - password_confirmation_label: "Passwort best\xC3\xA4tigen" - destroy_error: "Beim L\xC3\xB6schen des Benutzers %{login} ist ein Fehler aufgetreten." - label_auth_type: Authentifizierungsart - new_password_label: Neues Passwort - register_with_cas: Mit deinem CAS-Benutzernamen - new_user_title: TRACKS::Als Administrator anmelden - destroy_user: "Benutzer l\xC3\xB6schen" - total_users_count: Derzeit existieren %{count} Benutzer - destroy_confirmation: "Achtung: der Benutzer '%{login}' wird mit all seinen Aufgaben, Kontexten, Projekten und Notizen gel\xC3\xB6scht. Bist du sicher, dass du fortfahren m\xC3\xB6chtest?" - signup_new_user: Neuen Benutzer anlegen - openid_ok_pref_failed: Die URL %{url} wurde erfolgreich als Identität verifiziert, beim Speichern der Einstellungen trat jedoch ein Fehler auf. - auth_change_submit: "Authentifizierungsart \xC3\xA4ndern" - identity_url: Identity-URL - change_authentication_type: "Authentifizierungsart \xC3\xA4ndern" - total_notes: Alle Notizen - select_authentication_type: "W\xC3\xA4hle deine neue Authentifizierungsart und klicke 'Authentifizierungsart \xC3\xA4ndern' an, um deine aktuellen Einstellungen zu \xC3\xBCberschreiben." - feedlist: - choose_context: "Kontext f\xC3\xBCr den Feed w\xC3\xA4hlen" - actions_due_today: "Heute oder fr\xC3\xBCher f\xC3\xA4llig" - ical_feed: iCal-Feed - all_contexts: Alle Kontexte - legend: "Legende:" - rss_feed: RSS-Feed - choose_project: "Projekt f\xC3\xBCr den Feed w\xC3\xA4hlen" - all_projects: Alle Projekte - project_needed: Es muss mindestens ein Projekt existieren, bevor ein Feed abonniert werden kann. - select_feed_for_project: "Feed f\xC3\xBCr dieses Projekt ausw\xC3\xA4hlen" - active_projects_wo_next: Aktive Projekte ohne ausstehende Aufgaben - active_starred_actions: Alle markierten, aktiven Aufgaben - projects_and_actions: Aktive Projekte und deren Aufgaben - context_needed: Es muss mindestens ein Kontext existieren, bevor ein Feed abonniert werden kann. - select_feed_for_context: "Feed f\xC3\xBCr diesen Kontext ausw\xC3\xA4hlen" - notice_incomplete_only: "Hinweis: Alle Feeds zeigen nur Aufgaben, die noch nicht als erledigt markiert wurden." - actions_due_next_week: "In den n\xC3\xA4chsten 7 Tagen oder fr\xC3\xBCher f\xC3\xA4llige Aufgaben" - plain_text_feed: Plain-Text-Feed - last_fixed_number: Die letzten %{number} Aufgaben - all_actions: Alle Aufgaben - actions_completed_last_week: In den letzten 7 Tagen abgeschlossene Aufgaben - context_centric_actions: "Feeds f\xC3\xBCr unvollst\xC3\xA4ndige Aufgaben in einem bestimmten Kontext" - project_centric: "Feeds f\xC3\xBCr unvollst\xC3\xA4ndige Aufgaben in einem bestimmten Kontext" contexts: delete_context_title: Kontext löschen all_completed_tasks_title: "TRACKS:: Alle Abgeschlossene Ma\xC3\x9Fnahmen im context '%{context_name}'" @@ -829,15 +836,15 @@ de: delete_context: Kontext löschen edit_context: Kontext bearbeiten hide_form_title: Formular für neuen Kontext verstecken - no_contexts_active: Derzeit gibt es keine aktiven Kontexte context_hide: Auf Startseite ausblenden? hidden_contexts: Versteckte Kontexte - save_status_message: Kontext gespeichert - add_context: "Kontext hinzuf\xC3\xBCgen" + no_contexts_active: Derzeit gibt es keine aktiven Kontexte show_form: Neuen Kontext erstellen visible_contexts: Sichtbare Kontexte - update_status_message: "Kontextname wurde ge\xC3\xA4ndert" + save_status_message: Kontext gespeichert + add_context: "Kontext hinzuf\xC3\xBCgen" context_name: Kontextname + update_status_message: "Kontextname wurde ge\xC3\xA4ndert" completed_tasks_title: "TRACKS:: Abgeschlossene Ma\xC3\x9Fnahmen im context '%{context_name}'" new_context_post: "' wird ebenfalls angelegt. Fortfahren?" status_active: Kontext ist aktiv @@ -847,6 +854,31 @@ de: no_contexts_hidden: Derzeit gibt es keine versteckten Kontexte new_context_pre: Der neue Kontext ' status_hidden: Kontext ist versteckt + login: + login_cas: zum CAS gehen + sign_in: Anmeldung + openid_identity_url_not_found: "Sorry, aber es existiert kein Benutzer mit der Identit\xC3\xA4ts-URL (%{identity_url})" + user_no_expiry: Angemeldet bleiben + cas_no_user_found: Hallo, %{username}! Du hast leider keinen Tracks-Account. + cas_login: CAS-Anmeldung + successful_with_session_info: "Anmeldung erfolgreich:" + please_login: Bitte melde dich an, um Tracks zu nutzen + cas_logged_in_greeting: Hallo, %{username}! Du bist authentifiziert. + cas_username_not_found: Sorry, aber es existiert kein Benutzer mit dem CAS-Benutzernamen (%{username}) + mobile_use_openid: "\xE2\x80\xA6oder mit einer OpenID anmelden" + cas_create_account: "Wenn du die Anfrage fortsetzen m\xC3\xB6chtest, klicke bitte hier: %{signup_link}" + account_login: Account-Anmeldung + cas_signup_link: Account beantragen + session_will_not_expire: Sitzung wird nicht ablaufen. + successful: "Anmeldung erfolgreich. Willkommen zur\xC3\xBCck!" + option_separator: oder, + session_time_out: Sitzung abgelaufen. Bitte %{link} + session_will_expire: "Sitzung wird nach %{hours} Stunde(n) der Inaktivit\xC3\xA4t ablaufen." + login_standard: "zur\xC3\xBCck zum Standard-Login" + logged_out: Sie wurden von Tracks abgemeldet. + login_with_openid: Mit einer OpenID anmelden + unsuccessful: Anmeldung war nicht erfolgreich. + log_in_again: Erneut anmelden. datetime: prompts: minute: Minuten @@ -860,12 +892,12 @@ de: one: weniger als eine Minute other: weniger als %{count} Minuten zero: weniger als 1 Minute - almost_x_years: - one: fast 1 Jahr - other: fast %{count} Jahre x_days: one: 1 Tag other: "%{count} Tage" + almost_x_years: + one: fast 1 Jahr + other: fast %{count} Jahre x_seconds: one: 1 Sekunde other: "%{count} Sekunden" @@ -892,31 +924,6 @@ de: one: mehr als 1 Jahr other: mehr als %{count} Jahre half_a_minute: eine halbe Minute - login: - login_cas: zum CAS gehen - openid_identity_url_not_found: "Sorry, aber es existiert kein Benutzer mit der Identit\xC3\xA4ts-URL (%{identity_url})" - user_no_expiry: Angemeldet bleiben - sign_in: Anmeldung - successful_with_session_info: "Anmeldung erfolgreich:" - please_login: Bitte melde dich an, um Tracks zu nutzen - cas_logged_in_greeting: Hallo, %{username}! Du bist authentifiziert. - cas_no_user_found: Hallo, %{username}! Du hast leider keinen Tracks-Account. - cas_login: CAS-Anmeldung - cas_username_not_found: Sorry, aber es existiert kein Benutzer mit dem CAS-Benutzernamen (%{username}) - mobile_use_openid: "\xE2\x80\xA6oder mit einer OpenID anmelden" - cas_create_account: "Wenn du die Anfrage fortsetzen m\xC3\xB6chtest, klicke bitte hier: %{signup_link}" - cas_signup_link: Account beantragen - account_login: Account-Anmeldung - session_will_not_expire: Sitzung wird nicht ablaufen. - successful: "Anmeldung erfolgreich. Willkommen zur\xC3\xBCck!" - session_time_out: Sitzung abgelaufen. Bitte %{link} - session_will_expire: "Sitzung wird nach %{hours} Stunde(n) der Inaktivit\xC3\xA4t ablaufen." - option_separator: oder, - login_standard: "zur\xC3\xBCck zum Standard-Login" - login_with_openid: Mit einer OpenID anmelden - unsuccessful: Anmeldung war nicht erfolgreich. - log_in_again: Erneut anmelden. - logged_out: Sie wurden von Tracks abgemeldet. search: contexts_matching_query: Kontexte entsprechen der Suche tags_matching_query: Tags entsprechen der Suche diff --git a/config/locales/en.yml b/config/locales/en.yml index 9f82d32b..632bcba2 100644 --- a/config/locales/en.yml +++ b/config/locales/en.yml @@ -1,563 +1,482 @@ -en: - activerecord: - errors: - models: - project: - attributes: - name: - blank: "project must have a name" - too_long: "project name must be less than 256 characters" - taken: "already exists" - messages: - invalid: "cannot contain the comma (',') character" - attributes: - user: - first_name: "First name" - last_name: "Last name" - todo: - predecessors: "Depends on" - preference: - week_starts: "Week starts on" - show_project_on_todo_done: "Go to project page on todo complete" - refresh: "Refresh interval (in minutes)" - mobile_todos_per_page: "Actions per page (Mobile View)" - sms_email: "From email" - sms_context: "Default email context" - show_hidden_projects_in_sidebar: "Show hidden projects in sidebar" - show_hidden_contexts_in_sidebar: "Show hidden contexts in sidebar" - date_format: Date format - staleness_starts: "Start of staleness" - sms_context: Default email context - verbose_action_descriptors: "Verbose action descriptors" - mobile_todos_per_page: Actions per page (Mobile View) - show_number_completed: "Show number of completed actions" - title_date_format: "Title date format" - refresh: Refresh interval (in minutes) - week_starts: Week starts on - due_style: "Due style" - time_zone: "Time zone" - locale: Locale - sms_email: From email - show_project_on_todo_done: Go to project page on completing todo - show_completed_projects_in_sidebar: "Show completed projects in sidebar" - time: - formats: - month_day: "%B %d" - models: - project: - feed_title: "Tracks Projects" - feed_description: "Lists all the projects for %{username}" - preference: - due_styles: ['Due in ___ days', 'Due on _______'] - due_on: "Due on %{date}" - due_in: "Due in %{days} days" - user: - error_context_not_associated: "Context id %{context} not associated with user id %{user}." - error_project_not_associated: "Project id %{project} not associated with user id %{user}." - todo: - error_date_must_be_future: "must be a date in the future" - common: - update: "Update" - logout: "Logout" - cancel: "Cancel" - ok: "Ok" - add: "Add" - previous: "Previous" - next: "Next" - last: "Last" - project: "Project" - projects: "Projects" - context: "Context" - action: "Action" - actions: "Actions" - todo: 'todo' - server_error: "An error occurred on the server." - contexts: "Contexts" - numbered_step: "Step %{number}" - errors_with_fields: "There were problems with the following fields:" - back: "Back" - create: "Create" - go_back: "Go back" - search: "Search" - none: "None" - description: "Description" - notes: "Notes" - optional: "optional" - ajaxError: 'There was an error retrieving from server' - sort: - sort: "Sort" - alphabetically: "Alphabetically" - alphabetically_title: "Sort projects alphabetically" - alphabetically_confirm: "Are you sure that you want to sort these projects alphabetically? This will replace the existing sort order." - by_task_count: "By number of tasks" - by_task_count_title: "Sort by number of tasks" - by_task_count_title_confirm: "Are you sure that you want to sort these projects by the number of tasks? This will replace the existing sort order." - drag_handle: DRAG - bugs: Bugs +--- +en: + layouts: + toggle_notes: Toggle notes + next_actions_rss_feed: RSS feed of next actions + toggle_notes_title: Toggle all notes + mobile_navigation: + new_action: 0-New action + logout: Logout + feeds: Feeds + starred: 4-Starred + projects: 3-Projects + tickler: Tickler + contexts: 2-Contexts + home: 1-Home + navigation: + manage_users_title: Add or delete users + recurring_todos: Repeating todos + api_docs: REST API Docs + feeds: Feeds + starred: Starred + notes_title: Show all notes + stats: Statistics + tickler_title: Tickler + manage_users: Manage users + export_title: Import and export data + preferences: Preferences + integrations_: Integrate Tracks + feeds_title: See a list of available feeds + calendar_title: Calendar of due actions + completed_tasks: Done + stats_title: See your statistics + tickler: Tickler + home_title: Home + starred_title: See your starred actions + recurring_todos_title: Manage recurring actions + view: View + organize: Organize + completed_tasks_title: Completed + home: Home + export: Export + contexts_title: Contexts + calendar: Calendar + projects_title: Projects + search: Search All Items + preferences_title: Show my preferences + integrations: + opensearch_description: Search in Tracks + applescript_next_action_prompt: "Description of next action:" + gmail_description: Gadget to add Tracks to Gmail as a gadget + applescript_success_after_id: created + applescript_success_before_id: New next action with ID + number: + format: + separator: . + precision: 3 + delimiter: "," + human: + format: + precision: 1 + delimiter: "" + storage_units: + format: "%n %u" + units: + kb: KB + tb: TB + gb: GB + byte: + one: Byte + other: Bytes + mb: MB + percentage: + format: + delimiter: "" + currency: + format: + format: "%u%n" + unit: $ + separator: . + precision: 2 + delimiter: "," + precision: + format: + delimiter: "" + common: + back: Back + third: Third + recurring_todos: Repeating Actions + actions: Actions + add: Add + previous: Previous + logout: Logout + go_back: Go back + optional: optional + week: week + cancel: Cancel + none: None + second: Second + month: month + server_error: An error occurred on the server. forum: Forum + notes: Notes + last: Last + projects: Projects + action: Action + project: Project + ok: Ok + contribute: Contribute + website: Website + first: First + numbered_step: Step %{number} + sort: + by_task_count_title: Sort by number of tasks + by_task_count_title_confirm: Are you sure that you want to sort these projects by the number of tasks? This will replace the existing sort order. + alphabetically: Alphabetically + alphabetically_confirm: Are you sure that you want to sort these projects alphabetically? This will replace the existing sort order. + alphabetically_title: Sort projects alphabetically + sort: Sort + by_task_count: By number of tasks + fourth: Fourth + create: Create + months: months + contexts: Contexts + errors_with_fields: "There were problems with the following fields:" + next: Next + todo: todo + context: Context + drag_handle: DRAG + description: Description + bugs: Bugs + update: Update + forth: Forth + weeks: weeks wiki: Wiki email: Email - website: Website - contribute: Contribute - first: First - second: Second - third: Third - forth: Forth - fourth: Fourth - last: Last - month: month - months: months - week: week - weeks: weeks - recurring_todos: Repeating Actions - errors: - user_unauthorized: "401 Unauthorized: Only administrative users are allowed access to this function." - footer: - send_feedback: Send feedback on %{version} - contexts: - status_hidden: "Context is hidden" - status_active: "Context is active" - no_actions: "Currently there are no incomplete actions in this context" - context_name: "Context name" - update_status_message: "Name of context was changed" - save_status_message: "Context saved" - last_completed_in_context: "in this context (last %{number})" - add_context: "Add Context" - context_hide: "Hide from front page?" - hide_form: "Hide form" - hide_form_title: "Hide new context form" - show_form: "Create a new context" - show_form_title: "Add a context" - visible_contexts: "Visible contexts" - hidden_contexts: "Hidden contexts" - context_deleted: "Deleted context '%{name}'" - no_contexts_hidden: "Currently there are no hidden contexts" - no_contexts_active: "Currently there are no active contexts" - delete_context: "Delete context" - delete_context_title: "Delete context" - delete_context_confirmation: "Are you sure that you want to delete the context '%{name}'? Be aware that this will also delete all (repeating) actions in this context!" - new_context_pre: "New context '" - new_context_post: "' will be also created. Are you sure?" - edit_context: "Edit context" - completed_tasks_title: "TRACKS::Completed actions in the context '%{context_name}'" - all_completed_tasks_title: "TRACKS::All Completed actions in the context '%{context_name}'" - data: - import_errors: "Some errors occurred during import" - import_successful: "Import was successful." - feedlist: - legend: "Legend:" - rss_feed: "RSS Feed" - plain_text_feed: "Plain Text Feed" - ical_feed: "iCal feed" - notice_incomplete_only: "Note: All feeds show only actions that have not been marked as done, unless stated otherwise." - last_fixed_number: "Last %{number} actions" - all_actions: "All actions" - actions_due_today: "Actions due today or earlier" - actions_due_next_week: "Actions due in 7 days or earlier" - actions_completed_last_week: "Actions completed in the last 7 days" - all_contexts: "All Contexts" - all_projects: "All Projects" - active_projects_wo_next: "Active projects with no next actions" - active_starred_actions: "All starred, active actions" - projects_and_actions: "Active projects with their actions" - context_centric_actions: "Feeds for incomplete actions in a specific context" - context_needed: "There needs to be at least one context before you can request a feed" - choose_context: "Choose the context you want a feed of" - select_feed_for_context: "Select the feed for this context" - project_centric: "Feeds for incomplete actions in a specific project" - project_needed: "There needs to be at least one project before you can request a feed" - choose_project: "Choose the project you want a feed of" - select_feed_for_project: "Select the feed for this project" - integrations: - opensearch_description: "Search in Tracks" - applescript_next_action_prompt: "Description of next action:" - applescript_success_before_id: "New next action with ID" - applescript_success_after_id: "created" - gmail_description: "Gadget to add Tracks to Gmail as a gadget" - layouts: - toggle_notes: "Toggle notes" - toggle_notes_title: "Toggle all notes" - navigation: - home: "Home" - home_title: "Home" - starred: "Starred" - starred_title: "See your starred actions" - projects_title: "Projects" - tickler: "Tickler" - tickler_title: "Tickler" - organize: "Organize" - contexts_title: "Contexts" - notes_title: "Show all notes" - recurring_todos: "Repeating todos" - recurring_todos_title: "Manage recurring actions" - calendar: "Calendar" - completed_tasks: "Done" - completed_tasks_title: "Completed" - feeds: "Feeds" - feeds_title: "See a list of available feeds" - stats: "Statistics" - stats_title: "See your statistics" - view: "View" - calendar_title: "Calendar of due actions" - preferences: "Preferences" - preferences_title: "Show my preferences" - export_title: "Import and export data" - export: "Export" - manage_users: "Manage users" - manage_users_title: "Add or delete users" - integrations_: "Integrate Tracks" - api_docs: "REST API Docs" - search: "Search All Items" - next_actions_rss_feed: "RSS feed of next actions" - mobile_navigation: - new_action: "0-New action" - home: "1-Home" - contexts: "2-Contexts" - projects: "3-Projects" - starred: "4-Starred" - logout: "Logout" - tickler: "Tickler" - feeds: "Feeds" - login: - successful: "Logged in successfully. Welcome back!" - unsuccessful: "Login unsuccessful." - log_in_again: "log in again." - session_time_out: "Session has timed out. Please %{link}" - logged_out: "You have been logged out of Tracks." - session_will_expire: "session will expire after %{hours} hour(s) of inactivity." - session_will_not_expire: "session will not expire." - successful_with_session_info: "Login successful:" - cas_username_not_found: "Sorry, no user by that CAS username exists (%{username})" - openid_identity_url_not_found: "Sorry, no user by that identity URL exists (%{identity_url})" - account_login: "Account login" - please_login: "Please log in to use Tracks" - user_no_expiry: "Stay logged in" - sign_in: "Sign in" - cas_logged_in_greeting: "Hello, %{username}! You are authenticated." - cas_no_user_found: "Hello, %{username}! You do not have an account on Tracks." - cas_create_account: "If you like to request on please go here to %{signup_link}" - cas_signup_link: "Request account" - cas_login: "CAS Login" - login_with_openid: "login with an OpenID" - login_standard: "go back to the standard login" - login_cas: "go to the CAS" - option_separator: "or," - mobile_use_openid: "…or login with an OpenID" - notes: - note_location_link: "In:" - note_header: "Note %{id}" - note_link_title: "Show note %{id}" - delete_note_title: "Delete this note" - delete_confirmation: "Are you sure that you want to delete the note '%{id}'?" - edit_item_title: "Edit item" - delete_item_title: "Delete item" - show_note_title: "Show note" - deleted_note: "Deleted note '%{id}'" - delete_note_title: "Delete the note '%{id}'" - delete_note_confirm: "Are you sure that you want to delete the note '%{id}'?" - no_notes_available: "Currently there are no notes: add notes to projects from individual project pages." - preferences: - title: "Your preferences" - show_number_completed: "Show %{number} completed items" - staleness_starts_after: "Staleness starts after %{days} days" - sms_context_none: "None" - edit_preferences: "Edit preferences" - token_header: "Your token" - token_description: "Token (for feeds and API use)" - generate_new_token: "Generate a new token" - generate_new_token_confirm: "Are you sure? Generating a new token will replace the existing one and break any external usages of this token." - authentication_header: "Your authentication" - current_authentication_type: "Your authentication type is %{auth_type}" - change_authentication_type: "Change your authentication type" - change_password: "Change your password" - open_id_url: "Your OpenID URL is" - change_identity_url: "Change Your Identity URL" - page_title: "TRACKS::Preferences" - page_title_edit: "TRACKS::Edit Preferences" - is_true: "true" - is_false: "false" - projects: - status_project_name_changed: "Name of project was changed" - default_tags_removed_notice: "Removed the default tags" - set_default_tags_notice: "Set project's default tags to %{default_tags}" - default_context_removed: "Removed default context" - default_context_set: "Set project's default context to %{default_context}" - project_saved_status: "Project saved" - no_notes_attached: "Currently there are no notes attached to this project" - add_note: "Add a note" - todos_append: "in this project" - add_note_submit: "Add note" - deferred_actions: "Deferred actions for this project" - deferred_actions_empty: "There are no deferred actions for this project" - completed_actions: "Completed actions for this project" - completed_actions_empty: "There are no completed actions for this project" - no_actions_in_project: "Currently there are no incomplete actions in this project" - actions_in_project_title: "Actions in this project" - notes: "Notes" - notes_empty: "There are no notes for this project" - no_last_completed_projects: "No completed projects found" - no_last_completed_recurring_todos: "No completed recurring todos found" - settings: "Settings" - state: "This project is %{state}" - this_project: "This project" - active_projects: "Active projects" - hidden_projects: "Hidden projects" - completed_projects: "Completed projects" - was_marked_complete: "has been marked as completed" - was_marked_hidden: "has been marked as hidden" - is_active: "is active" - with_no_default_context: "with no default context" - with_default_context: "with a default context of '%{context_name}'" - with_no_default_tags: "and with no default tags" - with_default_tags: "and with '%{tags}' as the default tags" - edit_project_settings: "Edit Project Settings" - page_title: "TRACKS::Project: %{project}" - list_projects: "TRACKS::List Projects" - list_completed_projects: "TRACKS::List Completed Projects" - completed_tasks_title: "TRACKS::List Completed Actions in Project '%{project_name}'" - all_completed_tasks_title: "TRACKS::List All Completed Actions in Project '%{project_name}'" - no_default_context: "This project does not have a default context" - default_context: "The default context for this project is %{context}" - project_state: "Project is %{state}." - no_projects: "Currently there are no projects" - hide_form_title: "Hide new project form" - hide_form: "Hide form" - show_form_title: "Create a new project" - show_form: "Add a project" - add_project: "Add Project" - to_new_project_page: "Take me to the new project page" - delete_project_title: "Delete the project" - delete_project_confirmation: "Are you sure that you want to delete the project '%{name}'?" - delete_project: "Delete project" - edit_project_title: "Edit project" - states: - active: "Active" - active_plural: "Active" - completed: "Completed" - completed_plural: "Completed" - hidden: "Hidden" - hidden_plural: "Hidden" - visible: "Visible" - visible_plural: "Visible" - search: - no_results: "Your search yielded no results." - todos_matching_query: "Todos matching query" - projects_matching_query: "Projects matching query" - notes_matching_query: "Notes matching query" - contexts_matching_query: "Contexts matching query" - tags_matching_query: "Tags matching query" - shared: - hide_action_form_title: "Hide new action form" - hide_form: "Hide form" - toggle_multi_title: "Toggle single/multi new action form" - toggle_multi: "Add multiple next actions" - toggle_single: 'Add a next action' - toggle_single_title: 'Add a new next action' - separate_tags_with_commas: "separate with commas" - add_action: "Add action" - multiple_next_actions: "Multiple next actions (one on each line)" - project_for_all_actions: "Project for all actions" - context_for_all_actions: "Context for all actions" - tags_for_all_actions: "Tags for all actions (sep. with commas)" - add_actions: "Add actions" - sidebar: - list_empty: "None" - list_name_active_projects: "Active projects" - list_name_active_contexts: "Active contexts" - list_name_hidden_projects: "Hidden projects" - list_name_completed_projects: "Completed projects" - list_name_hidden_contexts: "Hidden contexts" - stats: - tod30_legend: - time_of_day: "Time of day" - number_of_actions: "Number of actions" - tod30: "Time of day (last 30 days)" - no_actions_selected: "There are no actions selected." - totals: "Totals" - tags: "Tags" - more_stats_will_appear: "More statistics will appear here once you have added some actions." - spread_of_actions_for_all_context: "Spread of actions for all context" - spread_of_running_actions_for_visible_contexts: "Spread of running actions for visible contexts" - current_running_time_of_incomplete_visible_actions: "Current running time of incomplete visible actions" - running_time_legend: - actions: "Actions" - percentage: "Percentage" - weeks: "Running time of an action (weeks). Click on a bar for more info" - time_of_day: "Time of day (all actions)" - time_of_day_legend: - number_of_actions: "Number of actions" - time_of_day: "Time of day" - labels: - created: "Created" - completed: "Completed" - avg_created: "Avg created" - avg_completed: "Avg completed" - month_avg_created: "%{months} Month avg created" - month_avg_completed: "%{months} Month avg completed" - click_to_update_actions: "Click on a bar in the chart to update the actions below." - click_to_return: "Click %{link} to return to the statistics page." - click_to_return_link: "here" - click_to_show_actions_from_week: "Click %{link} to show the actions from week %{week} and further." - running_time_all: "Current running time of all incomplete actions" - running_time_all_legend: - actions: "Actions" - percentage: "Percentage" - running_time: "Running time of an action (weeks). Click on a bar for more info" - actions_last_year: "Actions in the last years" - actions_last_year_legend: - number_of_actions: "Number of actions" - months_ago: "Months ago" - other_actions_label: "(others)" - action_selection_title: "TRACKS::Action selection" - actions_selected_from_week: "Actions selected from week " - actions_further: " and further" - totals_project_count: "You have %{count} projects." - totals_active_project_count: "Of those %{count} are active projects" - totals_hidden_project_count: "%{count} are hidden" - totals_completed_project_count: "and %{count} are completed projects." - totals_context_count: "You have %{count} contexts." - totals_visible_context_count: "Of those %{count} are visible contexts" - totals_hidden_context_count: "and %{count} are hidden contexts." - totals_first_action: "Since your first action on %{date}" - totals_action_count: "you have a total of %{count} actions" - totals_actions_completed: "%{count} of these are completed." - totals_incomplete_actions: "You have %{count} incomplete actions" - totals_deferred_actions: "of which %{count} are deferred actions in the tickler" - totals_blocked_actions: "%{count} are dependent on the completion of their actions." - totals_tag_count: "You have %{count} tags placed on actions." - totals_unique_tags: "Of those tags, %{count} are unique." - actions_avg_completion_time: "Of all your completed actions, the average time to complete is %{count} days." - actions_min_max_completion_days: "The Max-/minimum days to complete is %{min}/%{max}." - actions_min_completion_time: "The minimum time to complete is %{time}." - actions_actions_avg_created_30days: "In the last 30 days you created on average %{count} actions" - actions_avg_completed_30days: "and completed an average of %{count} actions per day." - actions_avg_created: "In the last 12 months you created on average %{count} actions" - actions_avg_completed: "and completed an average of %{count} actions per month." - tag_cloud_title: "Tag cloud for all actions" - tag_cloud_description: "This tag cloud includes tags of all actions (completed, not completed, visible and/or hidden)" - no_tags_available: "no tags available" - tag_cloud_90days_title: "Tag cloud actions in past 90 days" - tag_cloud_90days_description: "This tag cloud includes tags of actions that were created or completed in the past 90 days." - top10_projects: "Top 10 projects" - top10_projects_30days: "Top 10 project in past 30 days" - top10_longrunning: "Top 10 longest running projects" - top5_contexts: "Top 5 contexts" - top5_visible_contexts_with_incomplete_actions: "Top 5 visible contexts with incomplete actions" - actions_30days_title: "Actions in the last 30 days" - actions_lastyear_title: "Actions in the last 12 months" - legend: - number_of_actions: "Number of actions" - months_ago: "Months ago" - number_of_days: "Number of days ago" - day_of_week: "Day of week" - actions: "Actions" - percentage: "Percentage" - running_time: "Running time of an action (weeks)" - actions_day_of_week_title: "Day of week (all actions)" - actions_dow_30days_title: "Day of week (past 30 days)" - action_completion_time_title: "Completion time (all completed actions)" + search: Search + ajaxError: There was an error retrieving from server + data: + import_successful: Import was successful. + import_errors: Some errors occurred during import + models: + project: + feed_title: Tracks Projects + feed_description: Lists all the projects for %{username} + todo: + error_date_must_be_future: must be a date in the future + user: + error_context_not_associated: Context id %{context} not associated with user id %{user}. + error_project_not_associated: Project id %{project} not associated with user id %{user}. + preference: + due_on: Due on %{date} + due_in: Due in %{days} days + due_styles: + - Due in ___ days + - Due on _______ + activerecord: + attributes: + project: + name: Name + default_tags: Default Tags + default_context_name: Default context + description: Description + todo: + predecessors: Depends on + show_from: Show from + notes: Notes + project: Project + context: Context + description: Description + due: Due + user: + last_name: Last name + first_name: First name + preference: + show_hidden_projects_in_sidebar: Show hidden projects in sidebar + date_format: Date format + show_hidden_contexts_in_sidebar: Show hidden contexts in sidebar + mobile_todos_per_page: Actions per page (Mobile View) + verbose_action_descriptors: Verbose action descriptors + staleness_starts: Start of staleness + sms_context: Default email context + title_date_format: Title date format + show_number_completed: Show number of completed actions + refresh: Refresh interval (in minutes) + week_starts: Week starts on + last_name: Last name + locale: Locale + due_style: Due style + time_zone: Time zone + show_project_on_todo_done: Go to project page on completing todo + sms_email: From email + first_name: First name + show_completed_projects_in_sidebar: Show completed projects in sidebar + errors: + messages: + greater_than_or_equal_to: must be greater than or equal to %{count} + record_invalid: "Validation failed: %{errors}" + confirmation: doesn't match confirmation + less_than_or_equal_to: must be less than or equal to %{count} + blank: can't be blank + invalid: cannot contain the comma (',') character + exclusion: is reserved + odd: must be odd + even: must be even + too_short: is too short (minimum is %{count} characters) + empty: can't be empty + wrong_length: is the wrong length (should be %{count} characters) + less_than: must be less than %{count} + greater_than: must be greater than %{count} + equal_to: must be equal to %{count} + accepted: must be accepted + too_long: is too long (maximum is %{count} characters) + taken: has already been taken + inclusion: is not included in the list + not_a_number: is not a number + models: + project: + attributes: + name: + blank: project must have a name + too_long: project name must be less than 256 characters + taken: already exists + full_messages: + format: "%{attribute} %{message}" + template: + body: "There were problems with the following fields:" + header: + one: 1 error prohibited this %{model} from being saved + other: "%{count} errors prohibited this %{model} from being saved" + stats: + tag_cloud_title: Tag cloud for all actions + tag_cloud_description: This tag cloud includes tags of all actions (completed, not completed, visible and/or hidden) + tag_cloud_90days_title: Tag cloud actions in past 90 days actions: Actions - contexts: Contexts + totals_active_project_count: Of those %{count} are active projects + actions_last_year_legend: + number_of_actions: Number of actions + months_ago: Months ago + totals_first_action: Since your first action on %{date} + actions_avg_completion_time: Of all your completed actions, the average time to complete is %{count} days. + top10_longrunning: Top 10 longest running projects + actions_dow_30days_title: Day of week (past 30 days) + legend: + actions: Actions + number_of_days: Number of days ago + number_of_actions: Number of actions + day_of_week: Day of week + percentage: Percentage + running_time: Running time of an action (weeks) + months_ago: Months ago + current_running_time_of_incomplete_visible_actions: Current running time of incomplete visible actions + totals_deferred_actions: of which %{count} are deferred actions in the tickler + running_time_legend: + actions: Actions + percentage: Percentage + weeks: Running time of an action (weeks). Click on a bar for more info + totals_action_count: you have a total of %{count} actions + totals_incomplete_actions: You have %{count} incomplete actions + totals_unique_tags: Of those tags, %{count} are unique. + actions_avg_completed_30days: and completed an average of %{count} actions per day. + top5_contexts: Top 5 contexts + actions_lastyear_title: Actions in the last 12 months + totals_actions_completed: "%{count} of these are completed." + totals_context_count: You have %{count} contexts. + totals_visible_context_count: Of those %{count} are visible contexts + totals_blocked_actions: "%{count} are dependent on the completion of their actions." projects: Projects - todos: - unresolved_dependency: "The value you entered in the dependency field did not resolve to an existing action. This value will not be saved with the rest of the action. Continue?" - action_saved: "Action saved" - recurring_action_saved: "Recurring action saved" - action_saved_to_tickler: "Action saved to tickler" - added_new_project: "Added new project" - added_new_context: "Added new context" - error_starring: "Could not toggle the star of this todo '%{description}'" - error_toggle_complete: "Could not mark this todo complete" - recurrence_completed: "There is no next action after the recurring action you just finished. The recurrence is completed" - tagged_with: "tagged with ‘%{tag_name}’" - action_deferred: "The action '%{description}' was deferred" - no_actions_found_title: "No actions found" - no_actions_found: "Currently there are no incomplete actions." - no_actions_with: "Currently there are no incomplete actions with the tag '%{tag_name}'" - removed_predecessor: "Removed %{successor} as dependency from %{predecessor}." - add_another_dependency: "Add another dependency" - error_removing_dependency: "There was an error removing the dependency" - deferred_actions_with: "Deferred actions with the tag '%{tag_name}'" - no_deferred_actions_with: "No deferred actions with the tag '%{tag_name}'" - completed_actions_with: "Completed actions with the tag %{tag_name}" - no_completed_actions_with: "No completed actions with the tag '%{tag_name}'" - no_last_completed_actions: "No completed actions found" - next_action_description: "Next action description" - new_related_todo_created: "A new todo was added which belongs to this recurring todo" - new_related_todo_created_short: "created a new todo" - new_related_todo_not_created_short: "did not create todo" - error_completing_todo: "There was an error completing / activating the recurring todo %{description}" - recurring_todos: "Recurring todos" - no_recurring_todos: "Currently there are no recurring todos" - completed_recurring: "Completed recurring todos" - no_completed_recurring: "Currently there are no completed recurring todos" - add_new_recurring: "Add a new recurring action" - recurring_deleted_success: "The recurring action was deleted succesfully." - recurring_pattern_removed: "The recurrence pattern is removed from %{count}" - deleted_success: "The action was deleted succesfully." - error_deleting_recurring: "There was an error deleting the recurring todo \'%{description}\'" - error_saving_recurring: "There was an error saving the recurring todo \'%{description}\'" - error_starring_recurring: "Could not toggle the star of recurring todo \'%{description}\'" - recurrence_period: "Recurrence period" - action_marked_complete: "The action '%{description}' was marked as %{completed}" - action_marked_complete_error: "The action '%{description}' was NOT marked as %{completed} due to an error on the server." - recurrence: - daily: "Daily" - weekly: "Weekly" - monthly: "Monthly" - yearly: "Yearly" - starts_on: "Starts on" - ends_on: "Ends on" - no_end_date: "No end date" - ends_on_number_times: "Ends after %{number} times" - ends_on_date: "Ends on %{date}" - daily_options: "Settings for daily recurring actions" - daily_every_number_day: "Every %{number} day(s)" - every_work_day: "Every work day" - weekly_options: "Settings for weekly recurring actions" - weekly_every_number_week: "Returns every %{number} week on" - monthly_options: "Settings for monthly recurring actions" - day_x_on_every_x_month: "Day %{day} on every %{month} month" - monthly_every_xth_day: "The %{day} %{day_of_week} of every %{month} month" - yearly_options: "Settings for yearly recurring actions" - yearly_every_x_day: "Every %{month} %{day}" - yearly_every_xth_day: "The %{day} %{day_of_week} of %{month}" - recurrence_on_options: "Set recurrence on" - recurrence_on_due_date: "the date that the todo is due" - show_options: "Show the todo" - show_option_always: "always" - show_days_before: "%{days} days before the todo is due" - from_tickler: "the date todo comes from tickler (no due date set)" - pattern: - due: due - show: show - on_work_days: on work days - weekly: weekly - every_n: every %{n} - every_day: every day - every_month: every month - on_day_n: on day %{n} - every_year_on: every year on %{date} - the_xth_day_of_month: the %{x} %{day} of %{month} - every_xth_day_of_every_n_months: every %{x} %{day} of every %{n_months} - first: first - second: second - third: third - fourth: fourth - last: last - from: from - until: until - times: for %{number} times - day_names: - - sunday - - monday - - tuesday - - wednesday - - thursday - - friday - - saturday - month_names: - - + action_completion_time_title: Completion time (all completed actions) + actions_last_year: Actions in the last years + actions_min_max_completion_days: The Max-/minimum days to complete is %{min}/%{max}. + tags: Tags + actions_min_completion_time: The minimum time to complete is %{time}. + no_tags_available: no tags available + actions_day_of_week_title: Day of week (all actions) + totals_project_count: You have %{count} projects. + running_time_all: Current running time of all incomplete actions + actions_30days_title: Actions in the last 30 days + time_of_day: Time of day (all actions) + totals_hidden_project_count: "%{count} are hidden" + tod30: Time of day (last 30 days) + tag_cloud_90days_description: This tag cloud includes tags of actions that were created or completed in the past 90 days. + more_stats_will_appear: More statistics will appear here once you have added some actions. + top5_visible_contexts_with_incomplete_actions: Top 5 visible contexts with incomplete actions + actions_further: " and further" + totals_tag_count: You have %{count} tags placed on actions. + top10_projects_30days: Top 10 project in past 30 days + spread_of_running_actions_for_visible_contexts: Spread of running actions for visible contexts + actions_selected_from_week: "Actions selected from week " + spread_of_actions_for_all_context: Spread of actions for all context + click_to_show_actions_from_week: Click %{link} to show the actions from week %{week} and further. + other_actions_label: (others) + top10_projects: Top 10 projects + totals_completed_project_count: and %{count} are completed projects. + actions_avg_created: In the last 12 months you created on average %{count} actions + click_to_return: Click %{link} to return to the statistics page. + actions_avg_completed: and completed an average of %{count} actions per month. + totals: Totals + time_of_day_legend: + number_of_actions: Number of actions + time_of_day: Time of day + contexts: Contexts + click_to_return_link: here + totals_hidden_context_count: and %{count} are hidden contexts. + labels: + month_avg_completed: "%{months} Month avg completed" + completed: Completed + month_avg_created: "%{months} Month avg created" + avg_created: Avg created + avg_completed: Avg completed + created: Created + running_time_all_legend: + actions: Actions + percentage: Percentage + running_time: Running time of an action (weeks). Click on a bar for more info + click_to_update_actions: Click on a bar in the chart to update the actions below. + no_actions_selected: There are no actions selected. + actions_actions_avg_created_30days: In the last 30 days you created on average %{count} actions + tod30_legend: + number_of_actions: Number of actions + time_of_day: Time of day + action_selection_title: TRACKS::Action selection + todos: + show_from: Show from + error_starring_recurring: Could not toggle the star of recurring todo \'%{description}\' + recurring_action_deleted: Action was deleted. Because this action is recurring, a new action was added + completed_actions: Completed actions + completed_recurring: Completed recurring todos + added_new_next_action: Added new next action + completed_rest_of_previous_month: Completed in the rest of the previous month + blocked_by: Blocked by %{predecessors} + star_action: Star this action + completed_recurrence_completed: There is no next action after the recurring action you just deleted. The recurrence is completed + defer_date_after_due_date: Defer date is after due date. Please edit and adjust due date before deferring. + unable_to_add_dependency: Unable to add dependency + done: Done? + star_action_with_description: star the action '%{description}' + tagged_with: tagged with ‘%{tag_name}’ + completed: Completed + no_deferred_actions_with: No deferred actions with the tag '%{tag_name}' + edit_action_with_description: Edit the action '%{description}' + no_hidden_actions: Currently there are no hidden actions found + action_due_on: (action due on %{date}) + remove_dependency: Remove dependency (does not delete the action) + archived_tasks_title: TRACKS::Archived completed tasks + list_incomplete_next_actions: Lists incomplete next actions + tags: Tags (separate with commas) + action_deleted_success: Successfully deleted next action + new_related_todo_created: A new todo was added which belongs to this recurring todo + context_changed: Context changed to %{name} + add_another_dependency: Add another dependency + mobile_todos_page_title: All actions + delete_recurring_action_title: Delete the recurring action + removed_predecessor: Removed %{successor} as dependency from %{predecessor}. + recurring_actions_title: TRACKS::Recurring Actions + next_action_needed: You need to submit at least one next action + action_saved: Action saved + scheduled_overdue: Scheduled to show %{days} days ago + action_deleted_error: Failed to delete the action + edit_action: Edit action + added_new_context: Added new context + next_actions_description: "Filter:" + list_incomplete_next_actions_with_limit: Lists the last %{count} incomplete next actions + set_to_pending: "%{task} set to pending" + added_new_project: Added new project + next_actions_title_additions: + completed: actions completed + due_today: due today + due_within_a_week: due within a week + older_completed_items: "" + append_in_this_project: in this project + error_deleting_item: There was an error deleting the item %{description} + task_list_title: TRACKS::List tasks + no_actions_due_this_week: No actions due in rest of this week + no_deferred_pending_actions: Currently there are no deferred or pending actions + no_recurring_todos: Currently there are no recurring todos + error_completing_todo: There was an error completing / activating the recurring todo %{description} + recurring_pattern_removed: The recurrence pattern is removed from %{count} + convert_to_project: Make project + delete_recurring_action_confirm: Are you sure that you want to delete the recurring action '%{description}'? + completed_last_day: Completed in the last 24 hours + completed_more_than_x_days_ago: "" + show_in_days: Show in %{days} days + no_project: --No project-- + error_saving_recurring: There was an error saving the recurring todo \'%{description}\' + new_related_todo_created_short: created a new todo + all_completed: All completed actions + feed_title_in_context: in context '%{context}' + older_than_days: "" + completed_tagged_page_title: TRACKS::Completed tasks with tag %{tag_name} + edit: Edit + pending: Pending + completed_actions_with: Completed actions with the tag %{tag_name} + deleted_success: The action was deleted succesfully. + completed_tasks_title: TRACKS::Completed tasks + feed_title_in_project: in project '%{project}' + clear_due_date: Clear due date + hidden_actions: Hidden actions + error_removing_dependency: There was an error removing the dependency + was_due_on_date: was due on %{date} + show_on_date: Show on %{date} + recurrence_period: Recurrence period + deferred_actions_with: Deferred actions with the tag '%{tag_name}' + recurring_deleted_success: The recurring action was deleted succesfully. + confirm_delete: Are you sure that you want to delete the action '%{description}'? + deferred_tasks_title: TRACKS::Tickler + next_actions_title: Tracks - Next Actions + next_action_description: Next action description + no_completed_actions_with: No completed actions with the tag '%{tag_name}' + clear_show_from_date: Clear show from date + calendar_page_title: TRACKS::Calendar + unresolved_dependency: The value you entered in the dependency field did not resolve to an existing action. This value will not be saved with the rest of the action. Continue? + in_hidden_state: in hidden state + show_today: Show Today + no_actions_found_title: No actions found + next_actions_due_date: + overdue_by: Overdue by %{days} day + due_today: Due Today + due_in_x_days: Due in %{days} days + overdue_by_plural: Overdue by %{days} days + due_tomorrow: Due Tomorrow + completed_last_x_days: Completed in the last %{count} days + no_actions_with: Currently there are no incomplete actions with the tag '%{tag_name}' + defer_x_days: + one: Defer one day + other: Defer %{count} days + added_new_next_action_singular: Added new next action + no_completed_actions: Currently there are no completed actions. + feeds: + completed: "Completed: %{date}" + due: "Due: %{date}" + deferred_pending_actions: Deferred/pending actions + has_x_pending: + one: Has one pending action + other: Has %{count} pending actions + delete_action: Delete action + error_deleting_recurring: There was an error deleting the recurring todo \'%{description}\' + recurring_todos: Recurring todos + delete: Delete + cannot_add_dependency_to_completed_todo: Cannot add this action as a dependency to a completed action! + drag_action_title: Drag onto another action to make it depend on that action + no_last_completed_actions: No completed actions found + depends_on: Depends on + tickler_items_due: + one: One tickler item is now due - refresh the page to see it. + other: "%{count} tickler items are now due - refresh the page to see them." + action_marked_complete: The action '%{description}' was marked as %{completed} + completed_today: Completed today + added_new_next_action_plural: Added new next actions + new_related_todo_not_created_short: did not create todo + completed_rest_of_week: Completed in the rest of this week + error_starring: Could not toggle the star of this todo '%{description}' + calendar: + get_in_ical_format: Get this calendar in iCal format + due_next_week: Due next week + no_actions_due_next_week: No actions due in next week + due_this_week: Due in rest of this week + due_today: Due today + no_actions_due_today: No actions due today + due_next_month_and_later: Due in %{month} and later + no_actions_due_after_this_month: No actions due after this month + due_this_month: Due in rest of %{month} + no_actions_due_this_month: No actions due in rest of this month + show_tomorrow: Show Tomorrow + tagged_page_title: TRACKS::Tagged with '%{tag_name}' + action_deferred: The action '%{description}' was deferred + recurrence: + ends_on_number_times: Ends after %{number} times + ends_on_date: Ends on %{date} + every_work_day: Every work day + recurrence_on_due_date: the date that the todo is due + weekly_options: Settings for weekly recurring actions + weekly: Weekly + monthly_options: Settings for monthly recurring actions + starts_on: Starts on + daily_options: Settings for daily recurring actions + monthly: Monthly + pattern: + month_names: + - - January - February - Match @@ -570,164 +489,437 @@ en: - October - November - December - delete_recurring_action_confirm: "Are you sure that you want to delete the recurring action '%{description}'?" - delete_recurring_action_title: "Delete the recurring action" - star_action_with_description: "star the action '%{description}'" - star_action: "Star this action" - delete_action: "Delete action" - edit_action: "Edit action" - edit_action_with_description: "Edit the action '%{description}'" - confirm_delete: "Are you sure that you want to delete the action '%{description}'?" - delete: "Delete" - edit: "Edit" - defer_date_after_due_date: "Defer date is after due date. Please edit and adjust due date before deferring." - convert_to_project: "Make project" - blocked_by: "Blocked by %{predecessors}" - depends_on: "Depends on" - pending: "Pending" - drag_action_title: "Drag onto another action to make it depend on that action" - action_due_on: "(action due on %{date})" - scheduled_overdue: "Scheduled to show %{days} days ago" - show_today: "Show Today" - show_tomorrow: "Show Tomorrow" - show_on_date: "Show on %{date}" - show_in_days: "Show in %{days} days" - defer_x_days: - one: "Defer one day" - other: "Defer %{count} days" - has_x_pending: - one: "Has one pending action" - other: "Has %{count} pending actions" - recurring_actions_title: "TRACKS::Recurring Actions" - next_action_needed: "You need to submit at least one next action" - context_changed: "Context changed to %{name}" - action_deleted_success: "Successfully deleted next action" - action_deleted_error: "Failed to delete the action" - completed_tasks_title: "TRACKS::Completed tasks" - completed_tagged_page_title: "TRACKS::Completed tasks with tag %{tag_name}" - all_completed_tagged_page_title: "TRACKS::All completed tasks with tag %{tag_name}" - archived_tasks_title: "TRACKS::Archived completed tasks" - deferred_tasks_title: "TRACKS::Tickler" - tagged_page_title: "TRACKS::Tagged with '%{tag_name}'" - calendar_page_title: "TRACKS::Calendar" - next_actions_title: "Tracks - Next Actions" - next_actions_description: "Filter:" - next_actions_due_date: - due_today: Due Today - due_tomorrow: Due Tomorrow - due_in_x_days: "Due in %{days} days" - overdue_by: "Overdue by %{days} day" - overdue_by_plural: "Overdue by %{days} days" - next_actions_title_additions: - due_today: "due today" - due_within_a_week: "due within a week" - completed: "actions completed" - next_actions_description_additions: - due_date: "with a due date %{due_date} or earlier" - completed: "in the last %{count} days" - feed_title_in_context: "in context '%{context}'" - feed_title_in_project: "in project '%{project}'" - list_incomplete_next_actions_with_limit: "Lists the last %{count} incomplete next actions" - list_incomplete_next_actions: "Lists incomplete next actions" - task_list_title: "TRACKS::List tasks" - mobile_todos_page_title: "All actions" - feeds: - due: "Due: %{date}" - completed: "Completed: %{date}" - deferred_pending_actions: "Deferred/pending actions" - no_deferred_pending_actions: "Currently there are no deferred or pending actions" - completed_actions: "Completed actions" - no_completed_actions: "Currently there are no completed actions." - was_due_on_date: "was due on %{date}" - tags: "Tags (separate with commas)" - clear_due_date: "Clear due date" - show_from: "Show from" - clear_show_from_date: "Clear show from date" - depends_on_separate_with_commas: "Depends on (separate with commas)" - done: "Done?" - no_project: "--No project--" - due: "Due" - hidden_actions: "Hidden actions" - no_hidden_actions: "Currently there are no hidden actions found" - no_incomplete_actions: "There are no incomplete actions" - remove_dependency: "Remove dependency (does not delete the action)" - completed: "Completed" - added_dependency: "Added %{dependency} as dependency." - set_to_pending: "%{task} set to pending" - append_in_this_project: "in this project" - unable_to_add_dependency: "Unable to add dependency" - cannot_add_dependency_to_completed_todo : "Cannot add this action as a dependency to a completed action!" - calendar: - due_today: "Due today" - no_actions_due_today: "No actions due today" - due_this_week: "Due in rest of this week" - due_next_week: "Due next week" - no_actions_due_next_week: "No actions due in next week" - due_this_month: "Due in rest of %{month}" - no_actions_due_this_month: "No actions due in rest of this month" - due_next_month_and_later: "Due in %{month} and later" - no_actions_due_after_this_month: "No actions due after this month" - get_in_ical_format: "Get this calendar in iCal format" - no_actions_due_this_week: "No actions due in rest of this week" - overdue: "Overdue" - tickler_items_due: - one: "One tickler item is now due - refresh the page to see it." - other: "%{count} tickler items are now due - refresh the page to see them." - completed_today: "Completed today" - completed_rest_of_week: "Completed in the rest of this week" - completed_rest_of_month: "Completed in the rest of this month" - completed_rest_of_previous_month: "Completed in the rest of the previous month" - all_completed: "All completed actions" - added_new_next_action: "Added new next action" - added_new_next_action_singular: "Added new next action" - added_new_next_action_plural: "Added new next actions" - to_tickler: "to tickler" - in_pending_state: "in pending state" - in_hidden_state: "in hidden state" - recurring_action_deleted: "Action was deleted. Because this action is recurring, a new action was added" - completed_recurrence_completed: "There is no next action after the recurring action you just deleted. The recurrence is completed" - error_deleting_item: "There was an error deleting the item %{description}" - no_deferred_actions: "Currently there are no deferred actions." - users: - change_authentication_type: "Change authentication type" - select_authentication_type: "Select your new authentication type and click 'Change authentication type' to replace your current settings." - label_auth_type: "Authentication type" - identity_url: "Identity URL" - auth_change_submit: "Change authentication type" - change_password_prompt: "Enter your new password in the fields below and click 'Change password' to replace your current password with your new one." - new_password_label: "New password" - password_confirmation_label: "Confirm password" - change_password_submit: "Change password" - destroy_successful: "User %{login} was successfully destroyed" - destroy_error: "There was an error deleting the user %{login}" - total_actions: "Total actions" - total_contexts: "Total contexts" - total_projects: "Total projects" - total_notes: "Total notes" - destroy_user: "Destroy user" - destroy_confirmation: "Warning: this will delete user '%{login}', all their actions, contexts, project and notes. Are you sure that you want to continue?" - signup_new_user: "Sign up new user" - manage_users: "Manage users" - total_users_count: "You have a total of %{count} users" - account_signup: "Account signup" - register_with_cas: "With your CAS username" - desired_login: "Desired login" - choose_password: "Choose password" - confirm_password: "Confirm password" - signup: "Signup" - new_user_title: "TRACKS::Sign up as the admin user" + third: third + every_n: every %{n} + on_day_n: on day %{n} + second: second + every_xth_day_of_every_n_months: every %{x} %{day} of every %{n_months} + from: from + weekly: weekly + last: last + every_day: every day + the_xth_day_of_month: the %{x} %{day} of %{month} + times: for %{number} times + on_work_days: on work days + first: first + every_year_on: every year on %{date} + day_names: + - sunday + - monday + - tuesday + - wednesday + - thursday + - friday + - saturday + show: show + fourth: fourth + due: due + until: until + every_month: every month + show_option_always: always + daily: Daily + yearly_every_x_day: Every %{month} %{day} + recurrence_on_options: Set recurrence on + daily_every_number_day: Every %{number} day(s) + show_options: Show the todo + weekly_every_number_week: Returns every %{number} week on + ends_on: Ends on + show_days_before: "%{days} days before the todo is due" + from_tickler: the date todo comes from tickler (no due date set) + no_end_date: No end date + day_x_on_every_x_month: Day %{day} on every %{month} month + yearly_options: Settings for yearly recurring actions + yearly_every_xth_day: The %{day} %{day_of_week} of %{month} + monthly_every_xth_day: The %{day} %{day_of_week} of every %{month} month + yearly: Yearly + no_completed_recurring: Currently there are no completed recurring todos + added_dependency: Added %{dependency} as dependency. + no_deferred_actions: Currently there are no deferred actions. + all_completed_tagged_page_title: TRACKS::All completed tasks with tag %{tag_name} + completed_rest_of_month: Completed in the rest of this month + recurrence_completed: There is no next action after the recurring action you just finished. The recurrence is completed + error_toggle_complete: Could not mark this todo complete + no_actions_found: Currently there are no incomplete actions. + in_pending_state: in pending state + due: Due + action_marked_complete_error: The action '%{description}' was NOT marked as %{completed} due to an error on the server. + depends_on_separate_with_commas: Depends on (separate with commas) + action_saved_to_tickler: Action saved to tickler + recurring_action_saved: Recurring action saved + completed_in_archive: + one: There is a completed action in the archive. + other: There are %{count} completed actions in the archive. + to_tickler: to tickler + next_actions_description_additions: + completed: in the last %{count} days + due_date: with a due date %{due_date} or earlier + overdue: Overdue + add_new_recurring: Add a new recurring action + no_incomplete_actions: There are no incomplete actions + notes: + delete_confirmation: Are you sure that you want to delete the note '%{id}'? + delete_item_title: Delete item + delete_note_title: Delete the note '%{id}' + note_link_title: Show note %{id} + show_note_title: Show note + deleted_note: Deleted note '%{id}' + edit_item_title: Edit item + note_location_link: "In:" + no_notes_available: "Currently there are no notes: add notes to projects from individual project pages." + note_header: Note %{id} + delete_note_confirm: Are you sure that you want to delete the note '%{id}'? + states: + hidden_plural: Hidden + completed: Completed + completed_plural: Completed + visible_plural: Visible + visible: Visible + active_plural: Active + hidden: Hidden + active: Active + projects: + was_marked_hidden: has been marked as hidden + edit_project_title: Edit project + default_tags_removed_notice: Removed the default tags + default_context_set: Set project's default context to %{default_context} + no_actions_in_project: Currently there are no incomplete actions in this project + deferred_actions: Deferred actions for this project + all_completed_tasks_title: TRACKS::List All Completed Actions in Project '%{project_name}' + hide_form: Hide form + page_title: "TRACKS::Project: %{project}" + show_form_title: Create a new project + list_completed_projects: TRACKS::List Completed Projects + to_new_project_page: Take me to the new project page + no_notes_attached: Currently there are no notes attached to this project + deferred_actions_empty: There are no deferred actions for this project + this_project: This project + project_state: Project is %{state}. + todos_append: in this project + no_last_completed_projects: No completed projects found + notes: Notes + no_last_completed_recurring_todos: No completed recurring todos found + notes_empty: There are no notes for this project + no_projects: Currently there are no projects + hide_form_title: Hide new project form + with_no_default_context: with no default context + delete_project: Delete project + completed_actions_empty: There are no completed actions for this project + show_form: Add a project + actions_in_project_title: Actions in this project + delete_project_confirmation: Are you sure that you want to delete the project '%{name}'? + with_default_context: with a default context of '%{context_name}' + set_default_tags_notice: Set project's default tags to %{default_tags} + is_active: is active + settings: Settings + completed_projects: Completed projects + with_default_tags: and with '%{tags}' as the default tags + list_projects: TRACKS::List Projects + project_saved_status: Project saved + add_project: Add Project + add_note: Add a note + completed_tasks_title: TRACKS::List Completed Actions in Project '%{project_name}' + delete_project_title: Delete the project + hidden_projects: Hidden projects + add_note_submit: Add note + was_marked_complete: has been marked as completed + completed_actions: Completed actions for this project + default_context_removed: Removed default context + default_context: The default context for this project is %{context} + status_project_name_changed: Name of project was changed + active_projects: Active projects + no_default_context: This project does not have a default context + with_no_default_tags: and with no default tags + edit_project_settings: Edit Project Settings + state: This project is %{state} + time: + am: am + formats: + default: "%a, %d %b %Y %H:%M:%S %z" + time: "" + short: "%d %b %H:%M" + month_day: "%B %d" + long: "%B %d, %Y %H:%M" + pm: pm + preferences: + open_id_url: Your OpenID URL is + staleness_starts_after: Staleness starts after %{days} days + change_identity_url: Change Your Identity URL + change_password: Change your password + page_title: TRACKS::Preferences + title: Your preferences + token_description: Token (for feeds and API use) + is_false: "false" + show_number_completed: Show %{number} completed items + page_title_edit: TRACKS::Edit Preferences + is_true: "true" + edit_preferences: Edit preferences + sms_context_none: None + generate_new_token: Generate a new token + token_header: Your token + authentication_header: Your authentication + current_authentication_type: Your authentication type is %{auth_type} + change_authentication_type: Change your authentication type + tabs: + authentication: Authentication + tracks_behavior: Tracks behavior + profile: Profile + date_and_time: Date and time + generate_new_token_confirm: Are you sure? Generating a new token will replace the existing one and break any external usages of this token. + errors: + user_unauthorized: "401 Unauthorized: Only administrative users are allowed access to this function." + date: + month_names: + - + - January + - February + - March + - April + - May + - June + - July + - August + - September + - October + - November + - December + abbr_day_names: + - Sun + - Mon + - Tue + - Wed + - Thu + - Fri + - Sat + order: + - :year + - :month + - :day + formats: + only_day: "" + default: "%Y-%m-%d" + short: "%b %d" + month_day: "" + long: "%B %d, %Y" + day_names: + - Sunday + - Monday + - Tuesday + - Wednesday + - Thursday + - Friday + - Saturday + abbr_month_names: + - + - Jan + - Feb + - Mar + - Apr + - May + - Jun + - Jul + - Aug + - Sep + - Oct + - Nov + - Dec + support: + array: + words_connector: ", " + last_word_connector: ", and " + two_words_connector: " and " + select: + prompt: Please select + footer: + send_feedback: Send feedback on %{version} + shared: + multiple_next_actions: Multiple next actions (one on each line) + hide_form: Hide form + toggle_single: Add a next action + add_action: Add action + add_actions: Add actions + tags_for_all_actions: Tags for all actions (sep. with commas) + toggle_single_title: Add a new next action + project_for_all_actions: Project for all actions + context_for_all_actions: Context for all actions + toggle_multi: Add multiple next actions + separate_tags_with_commas: separate with commas + toggle_multi_title: Toggle single/multi new action form + hide_action_form_title: Hide new action form + users: + successfully_deleted_user: Successfully deleted user %{username} + failed_to_delete_user: Failed to delete user %{username} + total_contexts: Total contexts first_user_heading: "Welcome to TRACKS. To get started, please create an admin account:" - new_user_heading: "Sign up a new user:" - no_signups_title: "TRACKS::No signups" - signup_successful: "Signup successful for user %{username}." - user_created: "User created." - successfully_deleted_user: "Successfully deleted user %{username}" - failed_to_delete_user: "Failed to delete user %{username}" - change_password_title: "TRACKS::Change password" - password_updated: "Password updated." - change_auth_type_title: "TRACKS::Change authentication type" - openid_url_verified: "You have successfully verified %{url} as your identity and set your authentication type to OpenID." - openid_ok_pref_failed: "You have successfully verified %{url} as your identity but there was a problem saving your authentication preferences." - auth_type_updated: "Authentication type updated." + openid_url_verified: You have successfully verified %{url} as your identity and set your authentication type to OpenID. auth_type_update_error: "There was a problem updating your authentication type: %{error_messages}" - new_token_generated: "New token successfully generated" \ No newline at end of file + destroy_successful: User %{login} was successfully destroyed + new_token_generated: New token successfully generated + total_projects: Total projects + signup_successful: Signup successful for user %{username}. + change_password_submit: Change password + no_signups_title: TRACKS::No signups + user_created: User created. + manage_users: Manage users + account_signup: Account signup + password_updated: Password updated. + desired_login: Desired login + signup: Signup + confirm_password: Confirm password + new_user_heading: "Sign up a new user:" + auth_type_updated: Authentication type updated. + total_actions: Total actions + change_password_title: TRACKS::Change password + change_auth_type_title: TRACKS::Change authentication type + change_password_prompt: Enter your new password in the fields below and click 'Change password' to replace your current password with your new one. + password_confirmation_label: Confirm password + destroy_error: There was an error deleting the user %{login} + choose_password: Choose password + register_with_cas: With your CAS username + label_auth_type: Authentication type + new_password_label: New password + new_user_title: TRACKS::Sign up as the admin user + destroy_user: Destroy user + total_users_count: You have a total of %{count} users + destroy_confirmation: "Warning: this will delete user '%{login}', all their actions, contexts, project and notes. Are you sure that you want to continue?" + signup_new_user: Sign up new user + openid_ok_pref_failed: You have successfully verified %{url} as your identity but there was a problem saving your authentication preferences. + identity_url: Identity URL + auth_change_submit: Change authentication type + change_authentication_type: Change authentication type + total_notes: Total notes + select_authentication_type: Select your new authentication type and click 'Change authentication type' to replace your current settings. + sidebar: + list_name_active_contexts: Active contexts + list_name_active_projects: Active projects + list_empty: None + list_name_completed_projects: Completed projects + list_name_hidden_projects: Hidden projects + list_name_hidden_contexts: Hidden contexts + feedlist: + choose_context: Choose the context you want a feed of + actions_due_today: Actions due today or earlier + rss_feed: RSS Feed + ical_feed: iCal feed + all_contexts: All Contexts + legend: "Legend:" + all_projects: All Projects + choose_project: Choose the project you want a feed of + select_feed_for_project: Select the feed for this project + active_projects_wo_next: Active projects with no next actions + project_needed: There needs to be at least one project before you can request a feed + active_starred_actions: All starred, active actions + select_feed_for_context: Select the feed for this context + projects_and_actions: Active projects with their actions + context_needed: There needs to be at least one context before you can request a feed + actions_due_next_week: Actions due in 7 days or earlier + notice_incomplete_only: "Note: All feeds show only actions that have not been marked as done, unless stated otherwise." + all_actions: All actions + actions_completed_last_week: Actions completed in the last 7 days + context_centric_actions: Feeds for incomplete actions in a specific context + plain_text_feed: Plain Text Feed + last_fixed_number: Last %{number} actions + project_centric: Feeds for incomplete actions in a specific project + contexts: + delete_context_title: Delete context + all_completed_tasks_title: TRACKS::All Completed actions in the context '%{context_name}' + hide_form: Hide form + show_form_title: Add a context + delete_context_confirmation: Are you sure that you want to delete the context '%{name}'? Be aware that this will also delete all (repeating) actions in this context! + delete_context: Delete context + edit_context: Edit context + hide_form_title: Hide new context form + context_hide: Hide from front page? + hidden_contexts: Hidden contexts + no_contexts_active: Currently there are no active contexts + show_form: Create a new context + visible_contexts: Visible contexts + save_status_message: Context saved + add_context: Add Context + context_name: Context name + update_status_message: Name of context was changed + completed_tasks_title: TRACKS::Completed actions in the context '%{context_name}' + new_context_post: "' will be also created. Are you sure?" + status_active: Context is active + no_actions: Currently there are no incomplete actions in this context + last_completed_in_context: in this context (last %{number}) + context_deleted: Deleted context '%{name}' + no_contexts_hidden: Currently there are no hidden contexts + new_context_pre: New context ' + status_hidden: Context is hidden + login: + login_cas: go to the CAS + sign_in: Sign in + openid_identity_url_not_found: Sorry, no user by that identity URL exists (%{identity_url}) + user_no_expiry: Stay logged in + cas_no_user_found: Hello, %{username}! You do not have an account on Tracks. + cas_login: CAS Login + successful_with_session_info: "Login successful:" + please_login: Please log in to use Tracks + cas_logged_in_greeting: Hello, %{username}! You are authenticated. + cas_username_not_found: Sorry, no user by that CAS username exists (%{username}) + mobile_use_openid: "\xE2\x80\xA6or login with an OpenID" + cas_create_account: If you like to request on please go here to %{signup_link} + account_login: Account login + cas_signup_link: Request account + session_will_not_expire: session will not expire. + successful: Logged in successfully. Welcome back! + option_separator: or, + session_time_out: Session has timed out. Please %{link} + session_will_expire: session will expire after %{hours} hour(s) of inactivity. + login_standard: go back to the standard login + logged_out: You have been logged out of Tracks. + login_with_openid: login with an OpenID + unsuccessful: Login unsuccessful. + log_in_again: log in again. + datetime: + prompts: + minute: Minute + second: Seconds + month: Month + hour: Hour + day: Day + year: Year + distance_in_words: + less_than_x_minutes: + one: less than a minute + other: less than %{count} minutes + zero: less than 1 minute + x_days: + one: 1 day + other: "%{count} days" + almost_x_years: + one: almost 1 year + other: almost %{count} years + x_seconds: + one: 1 second + other: "%{count} seconds" + about_x_hours: + one: about 1 hour + other: about %{count} hours + less_than_x_seconds: + one: less than 1 second + other: less than %{count} seconds + zero: less than 1 second + x_months: + one: 1 month + other: "%{count} months" + x_minutes: + one: 1 minute + other: "%{count} minutes" + about_x_years: + one: about 1 year + other: about %{count} years + about_x_months: + one: about 1 month + other: about %{count} months + over_x_years: + one: over 1 year + other: over %{count} years + half_a_minute: half a minute + search: + contexts_matching_query: Contexts matching query + tags_matching_query: Tags matching query + notes_matching_query: Notes matching query + no_results: Your search yielded no results. + todos_matching_query: Todos matching query + projects_matching_query: Projects matching query diff --git a/config/locales/es.yml b/config/locales/es.yml index 41a86229..23b24d40 100644 --- a/config/locales/es.yml +++ b/config/locales/es.yml @@ -3,19 +3,19 @@ es: layouts: toggle_notes: Activar/Desactivar notas next_actions_rss_feed: RSS feed of next actions + toggle_notes_title: Activar/Desactivar todas las notas mobile_navigation: + new_action: 0-Nueva tarea logout: "Cerrar sesi\xC3\xB3n" feeds: Feeds - new_action: 0-Nueva tarea starred: 4-Favoritos projects: 3-Proyectos tickler: Tickler contexts: 2-Contextos home: 1-Inicio - toggle_notes_title: Activar/Desactivar todas las notas navigation: - recurring_todos: Tareas repetitivas manage_users_title: "A\xC3\xB1adir o eliminar usuarios" + recurring_todos: Tareas repetitivas api_docs: REST API Docs feeds: Feeds starred: Estrellas @@ -24,26 +24,32 @@ es: tickler_title: Tickler manage_users: Administrar usuarios export_title: Import and export data - integrations_: Integrar Tracks preferences: Preferencias + integrations_: Integrar Tracks feeds_title: See a list of available feeds calendar_title: Calendario de las acciones por - stats_title: See your statistics + completed_tasks: Hecho tickler: Tickler + stats_title: See your statistics home_title: Inicio starred_title: See your starred actions recurring_todos_title: Manage recurring actions - completed_tasks: Hecho - organize: Organizar view: Ver + organize: Organizar completed_tasks_title: Completed home: Inicio export: Export contexts_title: Contexts calendar: Calendario projects_title: Proyectos - search: Search All Items preferences_title: Mostrar mis preferencias + search: Search All Items + integrations: + opensearch_description: Buscar en las Tracks + applescript_next_action_prompt: "Descripci\xC3\xB3n de la pr\xC3\xB3xima tarea:" + gmail_description: "Gadget para a\xC3\xB1adir pistas a Gmail como un gadget" + applescript_success_after_id: creado + applescript_success_before_id: "Nueva acci\xC3\xB3n junto con la identificaci\xC3\xB3n" number: format: separator: . @@ -67,12 +73,6 @@ es: separator: . delimiter: "," - integrations: - opensearch_description: Buscar en las Tracks - applescript_next_action_prompt: "Descripci\xC3\xB3n de la pr\xC3\xB3xima tarea:" - gmail_description: "Gadget para a\xC3\xB1adir pistas a Gmail como un gadget" - applescript_success_after_id: creado - applescript_success_before_id: "Nueva acci\xC3\xB3n junto con la identificaci\xC3\xB3n" common: back: !binary | QXRyw6Fz @@ -84,91 +84,128 @@ es: previous: Anterior logout: Salir go_back: "Volver atr\xC3\xA1s" - week: semana + optional: opcional cancel: Cancelar + week: semana none: Ninguno second: Segundo - optional: opcional month: mes - notes: Notas - forum: Foro server_error: Ha ocurrido un error en el servidor. + forum: Foro + notes: Notas last: "\xC3\x9Altimo" - action: Tarea projects: Proyectos + action: Tarea project: Proyecto - contribute: Contribuir ok: Ok + contribute: Contribuir website: Website - first: Primero numbered_step: Paso %{number} + first: Primero sort: by_task_count_title: "Ordenar por n\xC3\xBAmero de tareas" by_task_count_title_confirm: "\xC2\xBFEst\xC3\xA1 seguro que desea ordenar los proyectos por el n\xC3\xBAmero de tareas? Esto reemplazar\xC3\xA1 el orden existente." alphabetically: "Alfab\xC3\xA9ticamente" alphabetically_confirm: "\xC2\xBFEst\xC3\xA1 seguro que desea ordenar los proyectos por orden alfab\xC3\xA9tico? Esto reemplazar\xC3\xA1 el orden existente." - sort: Ordenar alphabetically_title: "Proyectos de ordenar alfab\xC3\xA9ticamente" + sort: Ordenar by_task_count: "Por n\xC3\xBAmero de tareas" fourth: Cuarto create: Crear - months: meses contexts: Contextos - context: Contexto - todo: Todo - next: "Pr\xC3\xB3ximo" - description: "Descripci\xC3\xB3n" + months: meses errors_with_fields: "Ha habido problemas con los siguientes campos:" + next: "Pr\xC3\xB3ximo" + todo: Todo + context: Contexto drag_handle: ARRASTRAR - update: Actualizar + description: "Descripci\xC3\xB3n" bugs: Errores - weeks: semanas + update: Actualizar forth: Siguiente + weeks: semanas wiki: Wiki - search: Buscar email: Email + search: Buscar ajaxError: Hubo un error al recuperar desde el servidor + data: + import_successful: "Importaci\xC3\xB3n se realiz\xC3\xB3 correctamente." + import_errors: "Han ocurrido algunos errores durante la importaci\xC3\xB3n" models: project: feed_title: Tracks Projects feed_description: Lists all the projects for %{username} todo: error_date_must_be_future: must be a date in the future + user: + error_context_not_associated: Context id %{context} not associated with user id %{user}. + error_project_not_associated: Project id %{project} not associated with user id %{user}. preference: due_on: Due on %{date} due_in: Due in %{days} days due_styles: - Due in ___ days - Due on _______ - user: - error_context_not_associated: Context id %{context} not associated with user id %{user}. - error_project_not_associated: Project id %{project} not associated with user id %{user}. activerecord: attributes: + project: + name: Nombre + default_tags: "Etiquetas est\xC3\xA1ndar" + default_context_name: Default contexto + description: "Descripci\xC3\xB3n" todo: predecessors: Depende de la + show_from: Mostrar + notes: Notas + project: Proyecto + context: Contexto + description: "Descripci\xC3\xB3n" + due: "Fecha l\xC3\xADmite" + user: + last_name: Apellido + first_name: Primer nombre preference: show_hidden_projects_in_sidebar: Mostrar proyectos ocultos en el lateral date_format: Formato de fecha show_hidden_contexts_in_sidebar: Mostrar los contextos ocultos en el lateral mobile_todos_per_page: "Tareas por p\xC3\xA1gina (Vista M\xC3\xB3vil)" verbose_action_descriptors: "Descriptores detallado de acci\xC3\xB3n" - sms_context: Contexto por defecto para el email staleness_starts: Comienzo de estancamiento + sms_context: Contexto por defecto para el email title_date_format: "T\xC3\xADtulo del formato de fecha" show_number_completed: "Mostrar n\xC3\xBAmero de tareas completadas" refresh: "Intervalo de actualizaci\xC3\xB3n (en minutos)" week_starts: La semana comienza - time_zone: Zona horaria - due_style: Debido al estilo - locale: Lugar - sms_email: Email origen - show_project_on_todo_done: "Ir a la p\xC3\xA1gina del proyecto al completar la tarea" - show_completed_projects_in_sidebar: Show completed projects in sidebar - user: last_name: Apellido - first_name: Primer nombre + locale: Lugar + due_style: Debido al estilo + time_zone: Zona horaria + show_project_on_todo_done: "Ir a la p\xC3\xA1gina del proyecto al completar la tarea" + sms_email: Email origen + first_name: Nombre + show_completed_projects_in_sidebar: Show completed projects in sidebar errors: + messages: + greater_than_or_equal_to: debe ser mayor que o igual a %{count} + record_invalid: "La validaci\xC3\xB3n ha fallado: %{errores}" + confirmation: "no coincide con la confirmaci\xC3\xB3n" + less_than_or_equal_to: debe ser menor o igual a %{count} + blank: no puede estar en blanco + invalid: "no puede contener el car\xC3\xA1cter de coma (',')" + exclusion: "est\xC3\xA1 reservado" + odd: tiene que ser impar + even: "debe ser a\xC3\xBAn" + too_short: "es demasiado corto (m\xC3\xADnimo %{count} caracteres)" + empty: "no puede estar vac\xC3\xADo" + wrong_length: es la longitud del mal (debe ser %{count} caracteres) + less_than: debe ser menor que %{count} + greater_than: debe ser mayor que %{count} + equal_to: debe ser igual a %{count} + accepted: debe ser aceptada + too_long: "es demasiado largo (el m\xC3\xA1ximo es %{count} caracteres)" + taken: Ya se ha dado + inclusion: "no est\xC3\xA1 incluido en la lista" + not_a_number: "no es un n\xC3\xBAmero" models: project: attributes: @@ -176,27 +213,6 @@ es: blank: proyecto debe tener un nombre too_long: El nombre del proyecto tiene que tener menos de 256 caracteres taken: ya existe - messages: - record_invalid: "La validaci\xC3\xB3n ha fallado: %{errores}" - greater_than_or_equal_to: debe ser mayor que o igual a %{count} - confirmation: "no coincide con la confirmaci\xC3\xB3n" - less_than_or_equal_to: debe ser menor o igual a %{count} - blank: no puede estar en blanco - invalid: "no puede contener el car\xC3\xA1cter de coma (',')" - exclusion: "est\xC3\xA1 reservado" - odd: tiene que ser impar - too_short: "es demasiado corto (m\xC3\xADnimo %{count} caracteres)" - wrong_length: es la longitud del mal (debe ser %{count} caracteres) - empty: "no puede estar vac\xC3\xADo" - even: "debe ser a\xC3\xBAn" - less_than: debe ser menor que %{count} - greater_than: debe ser mayor que %{count} - equal_to: debe ser igual a %{count} - accepted: debe ser aceptada - too_long: "es demasiado largo (el m\xC3\xA1ximo es %{count} caracteres)" - taken: Ya se ha dado - not_a_number: "no es un n\xC3\xBAmero" - inclusion: "no est\xC3\xA1 incluido en la lista" full_messages: format: "%{attribute} %{message}" template: @@ -204,24 +220,22 @@ es: header: one: Un error esta prohibido %{model} se guarden other: "%{count} errores proh\xC3\xADbe este %{model} que se guarden" - data: - import_successful: "Importaci\xC3\xB3n se realiz\xC3\xB3 correctamente." - import_errors: "Han ocurrido algunos errores durante la importaci\xC3\xB3n" stats: - totals_active_project_count: Of those %{count} are active projects tag_cloud_title: Tag cloud for all actions - actions: Actions tag_cloud_description: This tag cloud includes tags of all actions (completed, not completed, visible and/or hidden) tag_cloud_90days_title: Tag cloud actions in past 90 days + actions: Actions + totals_active_project_count: Of those %{count} are active projects actions_last_year_legend: number_of_actions: Number of actions months_ago: Months ago totals_first_action: Since your first action on %{date} actions_avg_completion_time: Of all your completed actions, the average time to complete is %{count} days. - totals_action_count: you have a total of %{count} actions + top10_longrunning: Top 10 longest running projects + actions_dow_30days_title: Day of week (past 30 days) legend: - number_of_days: Number of days ago actions: Tareas + number_of_days: Number of days ago number_of_actions: "N\xC3\xBAmero de tareas" day_of_week: Day of week percentage: Percentage @@ -233,54 +247,53 @@ es: actions: Tareas percentage: Percentage weeks: Running time of an action (weeks). Click on a bar for more info - top10_longrunning: Top 10 longest running projects - actions_dow_30days_title: Day of week (past 30 days) - actions_lastyear_title: Actions in the last 12 months - totals_actions_completed: "%{count} of these are completed." + totals_action_count: you have a total of %{count} actions totals_incomplete_actions: You have %{count} incomplete actions totals_unique_tags: Of those tags, %{count} are unique. actions_avg_completed_30days: and completed an average of %{count} actions per day. top5_contexts: Top 5 contexts - action_completion_time_title: Completion time (all completed actions) - actions_last_year: Actions in the last years + actions_lastyear_title: Actions in the last 12 months + totals_actions_completed: "%{count} of these are completed." totals_context_count: You have %{count} contexts. - projects: Projects totals_visible_context_count: Of those %{count} are visible contexts totals_blocked_actions: "%{count} are dependent on the completion of their actions." - actions_day_of_week_title: Day of week (all actions) - totals_project_count: You have %{count} projects. + projects: Projects + action_completion_time_title: Completion time (all completed actions) + actions_last_year: Actions in the last years actions_min_max_completion_days: The Max-/minimum days to complete is %{min}/%{max}. + tags: Tags actions_min_completion_time: The minimum time to complete is %{time}. no_tags_available: no tags available - tags: Tags + actions_day_of_week_title: Day of week (all actions) + totals_project_count: You have %{count} projects. running_time_all: Current running time of all incomplete actions - tag_cloud_90days_description: This tag cloud includes tags of actions that were created or completed in the past 90 days. actions_30days_title: Actions in the last 30 days - top5_visible_contexts_with_incomplete_actions: Top 5 visible contexts with incomplete actions time_of_day: Time of day (all actions) totals_hidden_project_count: "%{count} are hidden" - actions_further: " and further" tod30: Time of day (last 30 days) - totals_tag_count: You have %{count} tags placed on actions. + tag_cloud_90days_description: This tag cloud includes tags of actions that were created or completed in the past 90 days. more_stats_will_appear: More statistics will appear here once you have added some actions. - click_to_return: Click %{link} to return to the statistics page. - other_actions_label: (otros) + top5_visible_contexts_with_incomplete_actions: Top 5 visible contexts with incomplete actions + actions_further: " and further" + totals_tag_count: You have %{count} tags placed on actions. top10_projects_30days: Top 10 project in past 30 days - top10_projects: Top 10 projects spread_of_running_actions_for_visible_contexts: Spread of running actions for visible contexts - actions_avg_created: In the last 12 months you created on average %{count} actions actions_selected_from_week: "Actions selected from week " spread_of_actions_for_all_context: Spread of actions for all context - totals_completed_project_count: and %{count} are completed projects. click_to_show_actions_from_week: Click %{link} to show the actions from week %{week} and further. + other_actions_label: (otros) + top10_projects: Top 10 projects + totals_completed_project_count: and %{count} are completed projects. + actions_avg_created: In the last 12 months you created on average %{count} actions + click_to_return: Click %{link} to return to the statistics page. + actions_avg_completed: and completed an average of %{count} actions per month. totals: Totals time_of_day_legend: number_of_actions: "N\xC3\xBAmero de tareas" time_of_day: Time of day - click_to_return_link: here contexts: Contexts + click_to_return_link: here totals_hidden_context_count: and %{count} are hidden contexts. - actions_avg_completed: and completed an average of %{count} actions per month. labels: month_avg_completed: "%{months} Month avg completed" completed: Completed @@ -288,22 +301,22 @@ es: avg_created: Avg created avg_completed: Avg completed created: Created - no_actions_selected: No hay tareas seleccionadas. - click_to_update_actions: Click on a bar in the chart to update the actions below. running_time_all_legend: actions: Tareas percentage: Percentage running_time: Running time of an action (weeks). Click on a bar for more info + click_to_update_actions: Click on a bar in the chart to update the actions below. + no_actions_selected: No hay tareas seleccionadas. actions_actions_avg_created_30days: In the last 30 days you created on average %{count} actions tod30_legend: number_of_actions: "N\xC3\xBAmero de tareas" time_of_day: Time of day action_selection_title: TRACKS::Action selection todos: - completed_actions: Completed actions show_from: Show from error_starring_recurring: Could not toggle the star of recurring todo \'%{description}\' recurring_action_deleted: Action was deleted. Because this action is recurring, a new action was added + completed_actions: Completed actions completed_recurring: Completed recurring todos added_new_next_action: Added new next action completed_rest_of_previous_month: Completado en el resto del mes anterior @@ -317,18 +330,18 @@ es: tagged_with: tagged with ‘%{tag_name}’ completed: Completed no_deferred_actions_with: No deferred actions with the tag '%{tag_name}' - no_hidden_actions: Currently there are no hidden actions found edit_action_with_description: Edit the action '%{description}' + no_hidden_actions: Currently there are no hidden actions found action_due_on: (action due on %{date}) + remove_dependency: Remove dependency (does not delete the action) + archived_tasks_title: TRACKS::Archived completed tasks + list_incomplete_next_actions: Lista las siguientes tareas incompletas tags: Tags (separate with commas) action_deleted_success: Successfully deleted next action - archived_tasks_title: TRACKS::Archived completed tasks - remove_dependency: Remove dependency (does not delete the action) - list_incomplete_next_actions: Lista las siguientes tareas incompletas - mobile_todos_page_title: Todas las tareas new_related_todo_created: "Una nueva tarea fue a\xC3\xB1adida y que pertenece a esta tarea recurrente" context_changed: Context changed to %{name} add_another_dependency: Add another dependency + mobile_todos_page_title: Todas las tareas delete_recurring_action_title: Delete the recurring action removed_predecessor: Removed %{successor} as dependency from %{predecessor}. recurring_actions_title: TRACKS::Recurring Actions @@ -339,43 +352,43 @@ es: edit_action: Edit action added_new_context: Added new context next_actions_description: "Filter:" + list_incomplete_next_actions_with_limit: Lists the last %{count} incomplete next actions + set_to_pending: "%{task} set to pending" + added_new_project: Added new project next_actions_title_additions: completed: actions completed due_today: due today due_within_a_week: due within a week - added_new_project: Added new project - list_incomplete_next_actions_with_limit: Lists the last %{count} incomplete next actions - set_to_pending: "%{task} set to pending" older_completed_items: Older completed items append_in_this_project: in this project error_deleting_item: There was an error deleting the item %{description} task_list_title: TRACKS::List tasks no_actions_due_this_week: No actions due in rest of this week + no_deferred_pending_actions: Currently there are no deferred or pending actions no_recurring_todos: Currently there are no recurring todos error_completing_todo: There was an error completing / activating the recurring todo %{description} recurring_pattern_removed: "El patr\xC3\xB3n de repetici\xC3\xB3n se retira de %{count}" convert_to_project: Make project - no_deferred_pending_actions: Currently there are no deferred or pending actions delete_recurring_action_confirm: Are you sure that you want to delete the recurring action '%{description}'? completed_last_day: Completed in the last 24 hours - all_completed: Todas las acciones realizadas - error_saving_recurring: There was an error saving the recurring todo \'%{description}\' + completed_more_than_x_days_ago: Completed more than %{count} days ago show_in_days: Show in %{days} days no_project: --No project-- - completed_more_than_x_days_ago: Completed more than %{count} days ago - feed_title_in_context: in context '%{context}' + error_saving_recurring: There was an error saving the recurring todo \'%{description}\' new_related_todo_created_short: creada una nueva tarea - completed_tagged_page_title: "TRACKS:: Las tareas completadas con etiqueta %{tag_name}" + all_completed: Todas las acciones realizadas + feed_title_in_context: in context '%{context}' older_than_days: Older than %{count} days + completed_tagged_page_title: "TRACKS:: Las tareas completadas con etiqueta %{tag_name}" edit: Edit pending: Pending completed_actions_with: Completed actions with the tag %{tag_name} - completed_tasks_title: TRACKS::Completed tasks deleted_success: The action was deleted succesfully. + completed_tasks_title: TRACKS::Completed tasks feed_title_in_project: in project '%{project}' clear_due_date: Clear due date - error_removing_dependency: There was an error removing the dependency hidden_actions: Tareas ocultas + error_removing_dependency: There was an error removing the dependency was_due_on_date: was due on %{date} show_on_date: Show on %{date} recurrence_period: Recurrence period @@ -394,8 +407,8 @@ es: no_actions_found_title: No actions found next_actions_due_date: overdue_by: Overdue by %{days} day - due_in_x_days: "Vence en %{days} d\xC3\xADas" due_today: Vence hoy + due_in_x_days: "Vence en %{days} d\xC3\xADas" overdue_by_plural: Overdue by %{days} days due_tomorrow: "Vence ma\xC3\xB1ana" completed_last_x_days: Completed in last %{count} days @@ -412,9 +425,9 @@ es: has_x_pending: one: Tiene una tarea pendiente other: Tiene %{count} tareas pendientes - recurring_todos: Recurring todos delete_action: Delete action error_deleting_recurring: There was an error deleting the recurring todo \'%{description}\' + recurring_todos: Recurring todos cannot_add_dependency_to_completed_todo: Cannot add this action as a dependency to a completed action! delete: Delete drag_action_title: Drag onto another action to make it depend on that action @@ -432,15 +445,17 @@ es: calendar: get_in_ical_format: Get this calendar in iCal format due_next_week: Due next week - due_this_week: Due in rest of this week no_actions_due_next_week: No actions due in next week - no_actions_due_today: No actions due today + due_this_week: Due in rest of this week due_today: Due today + no_actions_due_today: No actions due today due_next_month_and_later: Due in %{month} and later no_actions_due_after_this_month: No actions due after this month due_this_month: Due in rest of %{month} no_actions_due_this_month: No actions due in rest of this month show_tomorrow: Show Tomorrow + tagged_page_title: TRACKS::Tagged with '%{tag_name}' + action_deferred: "La acci\xC3\xB3n \\'%{description}\\' se aplaz\xC3\xB3" recurrence: ends_on_number_times: Ends after %{number} times ends_on_date: Ends on %{date} @@ -449,13 +464,10 @@ es: weekly_options: Settings for weekly recurring actions weekly: Weekly monthly_options: Settings for monthly recurring actions + starts_on: Starts on daily_options: Settings for daily recurring actions monthly: Monthly - starts_on: Starts on - show_option_always: always - daily: Daily pattern: - third: third month_names: - - January @@ -470,18 +482,19 @@ es: - October - November - December + third: third every_n: every %{n} - every_xth_day_of_every_n_months: every %{x} %{day} of every %{n_months} - second: second on_day_n: on day %{n} - weekly: weekly + second: second + every_xth_day_of_every_n_months: every %{x} %{day} of every %{n_months} from: from + weekly: weekly last: last every_day: every day the_xth_day_of_month: the %{x} %{day} of %{month} times: for %{number} times on_work_days: on work days - show: show + every_year_on: every year on %{date} first: first day_names: - sunday @@ -491,41 +504,41 @@ es: - thursday - friday - saturday - every_year_on: every year on %{date} + show: show fourth: fourth due: due until: until every_month: every month + show_option_always: always + daily: Daily yearly_every_x_day: Every %{month} %{day} recurrence_on_options: Set recurrence on daily_every_number_day: Every %{number} day(s) + show_options: Show the todo weekly_every_number_week: Returns every %{number} week on ends_on: Ends on - show_options: Show the todo show_days_before: "%{days} days before the todo is due" from_tickler: the date todo comes from tickler (no due date set) no_end_date: No end date day_x_on_every_x_month: Day %{day} on every %{month} month - yearly_every_xth_day: The %{day} %{day_of_week} of %{month} yearly_options: Settings for yearly recurring actions - yearly: Yearly + yearly_every_xth_day: The %{day} %{day_of_week} of %{month} monthly_every_xth_day: The %{day} %{day_of_week} of every %{month} month - action_deferred: "La acci\xC3\xB3n \\'%{description}\\' se aplaz\xC3\xB3" - tagged_page_title: TRACKS::Tagged with '%{tag_name}' + yearly: Yearly no_completed_recurring: Currently there are no completed recurring todos added_dependency: Added %{dependency} as dependency. - completed_rest_of_month: Completado en el resto de este mes no_deferred_actions: Currently there are no deferred actions. all_completed_tagged_page_title: "TRACKS:: Todas las tareas realizadas con etiqueta %{tag_name}" + completed_rest_of_month: Completado en el resto de este mes recurrence_completed: There is no next action after the recurring action you just finished. The recurrence is completed - due: "Fecha l\xC3\xADmite" + error_toggle_complete: Could not mark this todo complete no_actions_found: Currently there are no incomplete actions. in_pending_state: en estado pendiente - error_toggle_complete: Could not mark this todo complete + due: "Fecha l\xC3\xADmite" action_marked_complete_error: The action '%{description}' was NOT marked as %{completed} due to an error on the server. recurring_action_saved: Recurring action saved - depends_on_separate_with_commas: Depende de (separar con comas) action_saved_to_tickler: Action saved to tickler + depends_on_separate_with_commas: Depende de (separar con comas) completed_in_archive: one: There is one completed action in the archive. other: There are %{count} completed actions in the archive. @@ -540,9 +553,9 @@ es: delete_confirmation: Are you sure that you want to delete the note '%{id}'? delete_item_title: Delete item delete_note_title: Delete the note '%{id}' - deleted_note: Deleted note '%{id}' note_link_title: Show note %{id} show_note_title: Show note + deleted_note: Deleted note '%{id}' edit_item_title: Edit item note_location_link: "In:" no_notes_available: "Currently there are no notes: add notes to projects from individual project pages." @@ -553,25 +566,17 @@ es: completed: Completed completed_plural: Completed visible_plural: Visible - active_plural: Active visible: Visible - active: Active + active_plural: Active hidden: Hidden - time: - am: soy - formats: - default: "%a, %d %b %Y %H:%M:%S %z" - short: "%d %b %H:%M" - month_day: "%B %d" - long: "%B %d, %Y %H:%M" - pm: pm + active: Active projects: + was_marked_hidden: has been marked as hidden edit_project_title: Editar proyecto default_tags_removed_notice: Removed the default tags default_context_set: Set project's default context to %{default_context} no_actions_in_project: Currently there are no incomplete actions in this project deferred_actions: Tareas pospuestas para este proyecto - was_marked_hidden: has been marked as hidden all_completed_tasks_title: "TRACKS:: Lista de todas las acciones terminado en '%{project_name}' Proyecto" page_title: "TRACKS::Project: %{project}" hide_form: Esconder formulario @@ -579,31 +584,32 @@ es: list_completed_projects: "TRACKS:: Lista de Proyectos Realizados" to_new_project_page: Take me to the new project page no_notes_attached: Currently there are no notes attached to this project - this_project: This project deferred_actions_empty: There are no deferred actions for this project + this_project: This project project_state: Project is %{state}. - no_last_completed_projects: No hay proyectos terminados encontrado todos_append: in this project + no_last_completed_projects: No hay proyectos terminados encontrado notes: Notes + no_last_completed_recurring_todos: No se ha completado las acciones repetitivas que se encuentran notes_empty: There are no notes for this project no_projects: Currently there are no projects hide_form_title: Hide new project form with_no_default_context: with no default context delete_project: Delete project completed_actions_empty: No hay tareas completadas para este proyecto - delete_project_confirmation: Are you sure that you want to delete the project '%{name}'? - with_default_context: with a default context of '%{context_name}' show_form: Add a project actions_in_project_title: Actions in this project - add_project: "A\xC3\xB1adir Proyecto" - with_default_tags: and with '%{tags}' as the default tags - add_note: "A\xC3\xB1adir una nota" - list_projects: TRACKS::Lista de Proyectos + delete_project_confirmation: Are you sure that you want to delete the project '%{name}'? + with_default_context: with a default context of '%{context_name}' set_default_tags_notice: Set project's default tags to %{default_tags} is_active: "est\xC3\xA1 activo" settings: Settings - project_saved_status: Project saved completed_projects: Proyectos completados + with_default_tags: and with '%{tags}' as the default tags + list_projects: TRACKS::Lista de Proyectos + project_saved_status: Project saved + add_project: "A\xC3\xB1adir Proyecto" + add_note: "A\xC3\xB1adir una nota" completed_tasks_title: "TRACKS:: Lista de Acciones completadas en '%{project_name}' Proyecto" delete_project_title: Delete the project hidden_projects: Proyectos ocultos @@ -611,19 +617,26 @@ es: was_marked_complete: has been marked as completed completed_actions: Tareas completadas para este proyecto default_context_removed: Eliminado el contexto por defecto - edit_project_settings: Edit Project Settings - active_projects: Active projects default_context: The default context for this project is %{context} status_project_name_changed: Name of project was changed + active_projects: Active projects no_default_context: Este proyecto no tiene un contexto por defecto with_no_default_tags: and with no default tags + edit_project_settings: Edit Project Settings state: This project is %{state} - errors: - user_unauthorized: "401 No autorizado: Solo los usuarios administrativos pueden acceder a esta funci\xC3\xB3n." + time: + am: soy + formats: + default: "%a, %d %b %Y %H:%M:%S %z" + time: "" + short: "%d %b %H:%M" + month_day: "%B %d" + long: "%B %d, %Y %H:%M" + pm: pm preferences: - change_identity_url: Change Your Identity URL open_id_url: Your OpenID URL is staleness_starts_after: Staleness starts after %{days} days + change_identity_url: Change Your Identity URL change_password: Change your password page_title: TRACKS::Preferences title: Your preferences @@ -640,6 +653,13 @@ es: current_authentication_type: Your authentication type is %{auth_type} change_authentication_type: Change your authentication type generate_new_token_confirm: Are you sure? Generating a new token will replace the existing one and break any external usages of this token. + tabs: + authentication: "Autenticaci\xC3\xB3n" + tracks_behavior: Rastrea el comportamiento de + profile: Perfil + date_and_time: Fecha y hora + errors: + user_unauthorized: "401 No autorizado: Solo los usuarios administrativos pueden acceder a esta funci\xC3\xB3n." date: month_names: - @@ -664,8 +684,10 @@ es: - Vie - Sab formats: + only_day: "" default: "%Y-%m-%d" short: "%b %d" + month_day: "" long: "%B %d, %Y" day_names: - Domingo @@ -691,8 +713,8 @@ es: - Dic support: array: - last_word_connector: ", y" words_connector: "," + last_word_connector: ", y" two_words_connector: y select: prompt: Por favor seleccione @@ -700,18 +722,85 @@ es: send_feedback: "Env\xC3\xADa comentarios sobre el %{version}" shared: multiple_next_actions: Multiple next actions (one on each line) - toggle_single: Add a next action hide_form: Esconder formulario + toggle_single: Add a next action add_action: "A\xC3\xB1adir tarea" add_actions: "A\xC3\xB1adir tareas" tags_for_all_actions: Tags for all actions (sep. with commas) + toggle_single_title: Add a new next action project_for_all_actions: Project for all actions context_for_all_actions: Context for all actions toggle_multi: Add multiple next actions - toggle_single_title: Add a new next action separate_tags_with_commas: separar con comas toggle_multi_title: Toggle single/multi new action form hide_action_form_title: Hide new action form + users: + successfully_deleted_user: Successfully deleted user %{username} + failed_to_delete_user: Failed to delete user %{username} + total_contexts: Total contexts + first_user_heading: "Welcome to TRACKS. To get started, please create an admin account:" + openid_url_verified: You have successfully verified %{url} as your identity and set your authentication type to OpenID. + auth_type_update_error: "There was a problem updating your authentication type: %{error_messages}" + destroy_successful: User %{login} was successfully destroyed + new_token_generated: New token successfully generated + total_projects: Total projects + signup_successful: Signup successful for user %{username}. + change_password_submit: Change password + no_signups_title: TRACKS::No signups + user_created: User created. + manage_users: Manage users + account_signup: Account signup + password_updated: Password updated. + desired_login: Desired login + signup: Signup + confirm_password: Confirm password + new_user_heading: "Sign up a new user:" + auth_type_updated: Authentication type updated. + total_actions: Total actions + change_password_title: TRACKS::Change password + change_auth_type_title: TRACKS::Change authentication type + change_password_prompt: Enter your new password in the fields below and click 'Change password' to replace your current password with your new one. + password_confirmation_label: Confirm password + destroy_error: There was an error deleting the user %{login} + choose_password: Choose password + register_with_cas: With your CAS username + label_auth_type: Authentication type + new_password_label: New password + new_user_title: TRACKS::Sign up as the admin user + destroy_user: Destroy user + total_users_count: You have a total of %{count} users + destroy_confirmation: "Warning: this will delete user '%{login}', all their actions, contexts, project and notes. Are you sure that you want to continue?" + signup_new_user: Sign up new user + openid_ok_pref_failed: You have successfully verified %{url} as your identity but there was a problem saving your authentication preferences. + identity_url: Identity URL + change_authentication_type: Change authentication type + auth_change_submit: Change authentication type + total_notes: Total notes + select_authentication_type: Select your new authentication type and click 'Change authentication type' to replace your current settings. + feedlist: + choose_context: Elija el contexto en el que desea un canal de + actions_due_today: Acciones pendientes hoy o antes + rss_feed: RSS Feed + ical_feed: "iCal alimentaci\xC3\xB3n" + legend: "Leyenda:" + all_contexts: Todos los contextos + all_projects: Todos los proyectos + choose_project: Elegir el proyecto que quiere un canal de + select_feed_for_project: Seleccione la fuente para este proyecto + active_projects_wo_next: "Proyectos activos, sin las pr\xC3\xB3ximas acciones" + project_needed: Es necesario que haya al menos un proyecto antes de poder solicitar un feed + active_starred_actions: "Todas las acciones que protagoniz\xC3\xB3, activa" + select_feed_for_context: "Seleccione la alimentaci\xC3\xB3n de este contexto" + projects_and_actions: Proyectos activos con sus acciones + context_needed: Es necesario que haya al menos un contexto antes de poder solicitar un feed + actions_due_next_week: "Tareas pendientes en 7 d\xC3\xADas o menos" + notice_incomplete_only: "Nota: Todos los alimentos muestran s\xC3\xB3lo las acciones que no han sido marcadas como realizadas, a menos que se indique lo contrario." + all_actions: Todas las tareas + actions_completed_last_week: "Tareas completadas en los \xC3\xBAltimos 7 d\xC3\xADas" + context_centric_actions: "Feeds de acciones incompletas en un contexto espec\xC3\xADfico" + plain_text_feed: Canal Texto sin formato + last_fixed_number: "\xC3\x9Altima %{number} acciones" + project_centric: "Feeds de acciones incompletas en un proyecto espec\xC3\xADfico" sidebar: list_name_active_contexts: Active contexts list_name_active_projects: Active projects @@ -719,73 +808,6 @@ es: list_name_completed_projects: Completed projects list_name_hidden_projects: Hidden projects list_name_hidden_contexts: Hidden contexts - feedlist: - choose_context: Elija el contexto en el que desea un canal de - actions_due_today: Acciones pendientes hoy o antes - ical_feed: "iCal alimentaci\xC3\xB3n" - all_contexts: Todos los contextos - legend: "Leyenda:" - rss_feed: RSS Feed - choose_project: Elegir el proyecto que quiere un canal de - all_projects: Todos los proyectos - project_needed: Es necesario que haya al menos un proyecto antes de poder solicitar un feed - select_feed_for_project: Seleccione la fuente para este proyecto - active_projects_wo_next: "Proyectos activos, sin las pr\xC3\xB3ximas acciones" - active_starred_actions: "Todas las acciones que protagoniz\xC3\xB3, activa" - projects_and_actions: Proyectos activos con sus acciones - context_needed: Es necesario que haya al menos un contexto antes de poder solicitar un feed - select_feed_for_context: "Seleccione la alimentaci\xC3\xB3n de este contexto" - notice_incomplete_only: "Nota: Todos los alimentos muestran s\xC3\xB3lo las acciones que no han sido marcadas como realizadas, a menos que se indique lo contrario." - actions_due_next_week: "Tareas pendientes en 7 d\xC3\xADas o menos" - plain_text_feed: Canal Texto sin formato - last_fixed_number: "\xC3\x9Altima %{number} acciones" - all_actions: Todas las tareas - actions_completed_last_week: "Tareas completadas en los \xC3\xBAltimos 7 d\xC3\xADas" - context_centric_actions: "Feeds de acciones incompletas en un contexto espec\xC3\xADfico" - project_centric: "Feeds de acciones incompletas en un proyecto espec\xC3\xADfico" - users: - auth_type_update_error: "There was a problem updating your authentication type: %{error_messages}" - openid_url_verified: You have successfully verified %{url} as your identity and set your authentication type to OpenID. - destroy_successful: User %{login} was successfully destroyed - total_contexts: Total contexts - successfully_deleted_user: Successfully deleted user %{username} - failed_to_delete_user: Failed to delete user %{username} - first_user_heading: "Welcome to TRACKS. To get started, please create an admin account:" - new_token_generated: New token successfully generated - total_projects: Total projects - signup_successful: Signup successful for user %{username}. - change_password_submit: Change password - no_signups_title: TRACKS::No signups - user_created: User created. - account_signup: Account signup - manage_users: Manage users - password_updated: Password updated. - confirm_password: Confirm password - signup: Signup - new_user_heading: "Sign up a new user:" - auth_type_updated: Authentication type updated. - total_actions: Total actions - desired_login: Desired login - choose_password: Choose password - change_password_title: TRACKS::Change password - change_auth_type_title: TRACKS::Change authentication type - change_password_prompt: Enter your new password in the fields below and click 'Change password' to replace your current password with your new one. - password_confirmation_label: Confirm password - destroy_error: There was an error deleting the user %{login} - label_auth_type: Authentication type - new_password_label: New password - register_with_cas: With your CAS username - new_user_title: TRACKS::Sign up as the admin user - destroy_user: Destroy user - total_users_count: You have a total of %{count} users - destroy_confirmation: "Warning: this will delete user '%{login}', all their actions, contexts, project and notes. Are you sure that you want to continue?" - signup_new_user: Sign up new user - openid_ok_pref_failed: You have successfully verified %{url} as your identity but there was a problem saving your authentication preferences. - auth_change_submit: Change authentication type - identity_url: Identity URL - change_authentication_type: Change authentication type - total_notes: Total notes - select_authentication_type: Select your new authentication type and click 'Change authentication type' to replace your current settings. contexts: delete_context_title: Eliminar contexto all_completed_tasks_title: "TRACKS:: Todas las acciones completadas en '%{context_name}' contexto" @@ -795,15 +817,15 @@ es: delete_context: Eliminar contexto edit_context: Editar contexto hide_form_title: Ocultar el formulario nuevo contexto - no_contexts_active: Actualmente no hay contextos activos context_hide: "\xC2\xBFEsconder de la p\xC3\xA1gina principal?" hidden_contexts: Contextos ocultos - save_status_message: Contexto guardado - add_context: "A\xC3\xB1adir contexto" + no_contexts_active: Actualmente no hay contextos activos show_form: Crear un nuevo contexto visible_contexts: Contextos visible - update_status_message: Nombre de contexto ha cambiado + save_status_message: Contexto guardado + add_context: "A\xC3\xB1adir contexto" context_name: Nombre del contexto + update_status_message: Nombre de contexto ha cambiado completed_tasks_title: "TRACKS:: Las acciones completadas en '%{context_name}' el contexto" new_context_post: "' Tambi\xC3\xA9n se ha creado. \xC2\xBFEst\xC3\xA1 seguro?" status_active: "El contexto est\xC3\xA1 activo" @@ -813,6 +835,31 @@ es: no_contexts_hidden: Actualmente no hay contextos ocultos new_context_pre: Nuevo contexto ' status_hidden: Contexto se oculta + login: + login_cas: go to the CAS + sign_in: Entrar + openid_identity_url_not_found: Sorry, no user by that identity URL exists (%{identity_url}) + user_no_expiry: Stay logged in + cas_no_user_found: Hello, %{username}! You do not have an account on Tracks. + cas_login: CAS Login + successful_with_session_info: "Login successful:" + please_login: Please log in to use Tracks + cas_logged_in_greeting: Hello, %{username}! You are authenticated. + cas_username_not_found: Sorry, no user by that CAS username exists (%{username}) + mobile_use_openid: "\xE2\x80\xA6or login with an OpenID" + cas_create_account: If you like to request on please go here to %{signup_link} + account_login: Acceso a la cuenta + cas_signup_link: Request account + session_will_not_expire: session will not expire. + successful: "Has entrado con \xC3\xA9xito. Bienvenido!" + option_separator: or, + session_time_out: Session has timed out. Please %{link} + session_will_expire: session will expire after %{hours} hour(s) of inactivity. + login_standard: go back to the standard login + logged_out: You have been logged out of Tracks. + login_with_openid: login with an OpenID + unsuccessful: Login unsuccessful. + log_in_again: log in again. datetime: prompts: minute: Minuto @@ -829,14 +876,15 @@ es: less_than_x_minutes: one: menos de un minuto other: menos de %{count} minutos - almost_x_years: - one: "casi 1 a\xC3\xB1o" - other: "Casi %{count} a\xC3\xB1os" + zero: menos de 1 minuto x_days: one: !binary | MSBkw61h other: "%{count} d\xC3\xADas" + almost_x_years: + one: "casi 1 a\xC3\xB1o" + other: "Casi %{count} a\xC3\xB1os" x_seconds: one: Un segundo other: "%{count} segundos" @@ -846,6 +894,7 @@ es: less_than_x_seconds: one: menos de 1 segundo other: menos de %{count} segundos + zero: menos de 1 segundo x_months: one: 1 mes other: "%{count} meses" @@ -862,31 +911,6 @@ es: one: "m\xC3\xA1s de 1 a\xC3\xB1o" other: "en %{count} a\xC3\xB1os" half_a_minute: medio minuto - login: - login_cas: go to the CAS - openid_identity_url_not_found: Sorry, no user by that identity URL exists (%{identity_url}) - user_no_expiry: Stay logged in - sign_in: Entrar - successful_with_session_info: "Login successful:" - please_login: Please log in to use Tracks - cas_logged_in_greeting: Hello, %{username}! You are authenticated. - cas_no_user_found: Hello, %{username}! You do not have an account on Tracks. - cas_login: CAS Login - cas_username_not_found: Sorry, no user by that CAS username exists (%{username}) - mobile_use_openid: "\xE2\x80\xA6or login with an OpenID" - cas_create_account: If you like to request on please go here to %{signup_link} - cas_signup_link: Request account - account_login: Acceso a la cuenta - session_will_not_expire: session will not expire. - successful: "Has entrado con \xC3\xA9xito. Bienvenido!" - session_time_out: Session has timed out. Please %{link} - session_will_expire: session will expire after %{hours} hour(s) of inactivity. - option_separator: or, - login_standard: go back to the standard login - login_with_openid: login with an OpenID - unsuccessful: Login unsuccessful. - log_in_again: log in again. - logged_out: You have been logged out of Tracks. search: contexts_matching_query: Contexts matching query tags_matching_query: Tags matching query diff --git a/config/locales/fr.yml b/config/locales/fr.yml index 8050a941..6869c26b 100644 --- a/config/locales/fr.yml +++ b/config/locales/fr.yml @@ -1,8 +1,62 @@ --- fr: + layouts: + toggle_notes: Afficher/Cacher notes + next_actions_rss_feed: Flux RSS des prochaines actions + toggle_notes_title: Afficher/Cacher toutes les notes + mobile_navigation: + new_action: 0-Nouvelle action + logout: "D\xC3\xA9connexion" + feeds: Flux + starred: "4-Marqu\xC3\xA9" + projects: 3-Projets + tickler: Reporteur + contexts: 2-Contextes + home: 1-Accueil + navigation: + manage_users_title: Ajouter ou supprimer des utilisateurs + recurring_todos: "T\xC3\xA2ches (todos) r\xC3\xA9p\xC3\xA9titives" + api_docs: Doc REST API + feeds: Flux + starred: "Marqu\xC3\xA9" + notes_title: Voir toutes les notes + stats: Statistiques + tickler_title: Reporteur + manage_users: Gestion des utilisateurs + export_title: "Importer et exporter des donn\xC3\xA9es" + preferences: !binary | + UHLDqWbDqXJlbmNlcw== + + integrations_: "Int\xC3\xA9grer Tracks" + feeds_title: Voir une liste des flux disponibles + calendar_title: "Calendrier des actions \xC3\xA0 \xC3\xA9ch\xC3\xA9ance" + completed_tasks: "Termin\xC3\xA9" + stats_title: Voir vos statistiques + tickler: Reporteur + home_title: Accueil + starred_title: "Voir vos actions pr\xC3\xA9f\xC3\xA9r\xC3\xA9es" + recurring_todos_title: "Gerer les actions r\xC3\xA9currentes" + view: Vue + organize: Organiser + completed_tasks_title: "Termin\xC3\xA9" + home: Accueil + export: Exporter + contexts_title: Contextes + calendar: Calendrier + projects_title: Projets + preferences_title: "Voir mes pr\xC3\xA9f\xC3\xA9rences" + search: Recherches tous les items + integrations: + opensearch_description: Rechercher dans Tracks + applescript_next_action_prompt: "Description de l'action suivante:" + gmail_description: "Gadget pour ajouter Tracks \xC3\xA0 Gmail" + applescript_success_after_id: !binary | + Q3LDqcOp + + applescript_success_before_id: Nouvelle action suivante avec ID number: format: - separator: "." + separator: . precision: 2 delimiter: "," human: @@ -22,98 +76,62 @@ fr: percentage: format: delimiter: "" - precision: - format: - delimiter: "" - currency: + currency: format: format: "%u%n" unit: $ separator: . delimiter: "," - layouts: - toggle_notes: Afficher/Cacher notes - next_actions_rss_feed: Flux RSS des prochaines actions - toggle_notes_title: Afficher/Cacher toutes les notes - mobile_navigation: - logout: "D\xC3\xA9connexion" - feeds: Flux - new_action: 0-Nouvelle action - starred: "4-Marqu\xC3\xA9" - projects: 3-Projets - tickler: "Reporteur" - contexts: 2-Contextes - home: 1-Accueil - navigation: - manage_users_title: Ajouter ou supprimer des utilisateurs - recurring_todos: "T\xC3\xA2ches (todos) r\xC3\xA9p\xC3\xA9titives" - api_docs: Doc REST API - feeds: Flux - stats: Statistiques - starred: "Marqu\xC3\xA9" - notes_title: Voir toutes les notes - tickler_title: "Reporteur" - manage_users: Gestion des utilisateurs - export_title: "Importer et exporter des donn\xC3\xA9es" - integrations_: "Int\xC3\xA9grer Tracks" - preferences: "Pr\xC3\xA9f\xC3\xA9rences" - feeds_title: Voir une liste des flux disponibles - calendar_title: "Calendrier des actions \xC3\xA0 \xC3\xA9ch\xC3\xA9ance" - home_title: Accueil - starred_title: "Voir vos actions pr\xC3\xA9f\xC3\xA9r\xC3\xA9es" - recurring_todos_title: "Gerer les actions r\xC3\xA9currentes" - completed_tasks: "Termin\xC3\xA9" - tickler: "Reporteur" - stats_title: Voir vos statistiques - organize: Organiser - view: Vue - completed_tasks_title: "Termin\xC3\xA9" - export: Exporter - contexts_title: Contextes - home: Accueil - calendar: Calendrier - search: Recherches tous les items - projects_title: Projets - preferences_title: "Voir mes pr\xC3\xA9f\xC3\xA9rences" + precision: + format: + delimiter: "" common: back: Retour - actions: Actions third: "Troisi\xC3\xA8me" + recurring_todos: "R\xC3\xA9p\xC3\xA9tition d'actions" + actions: Actions add: Ajouter - go_back: Retour + previous: !binary | + UHLDqWPDqWRlbnRl + logout: "D\xC3\xA9connexion" + go_back: Retour optional: optionnel week: semaine + cancel: Annuler none: Aucun second: Seconde - cancel: Annuler month: mois server_error: Une erreur s\'est produite sur le serveur forum: Forum notes: Notes - action: Action last: Dernier projects: Projets + action: Action project: Projet - contribute: Contribuer ok: Ok + contribute: Contribuer website: Site Web first: Premier numbered_step: Etape %{number} - fourth: "Quatri\xC3\xA8me" - errors_with_fields: "Il y a des probl\xC3\xA8me avec les champs suivants :" sort: by_task_count_title: "Trier par nombre de t\xC3\xA2ches" by_task_count_title_confirm: "Etes vous s\xC3\xBBr de vouloir trier ces projets par nombre de t\xC3\xA2ches ? L\\'ordre actuel sera remplac\xC3\xA9." alphabetically: "Par ordre alphab\xC3\xA9tique" alphabetically_confirm: "Etes vous s\xC3\xBBr de vouloir trier ces projets par ordre alphab\xC3\xA9tique ? L\\'ordre actuel sera remplac\xC3\xA9." - alphabetically_title: "Trier les projets par ordre alphab\xC3\xA9tique" sort: Trier + alphabetically_title: "Trier les projets par ordre alphab\xC3\xA9tique" by_task_count: "Par nombre de t\xC3\xA2ches" + fourth: "Quatri\xC3\xA8me" + create: !binary | + Q3LDqWVy + contexts: Contextes - context: Contexte - create: "Cr\xC3\xA9er" months: Mois + errors_with_fields: "Il y a des probl\xC3\xA8me avec les champs suivants :" + next: Suivant + context: Contexte + todo: Action drag_handle: DRAG description: Description update: "Mettre \xC3\xA0 jour" @@ -122,14 +140,8 @@ fr: weeks: semaines wiki: Wiki email: Email - ajaxError: "Une erreur s'est produite en acc\xC3\xA9dant un serveur" search: Rechercher - integrations: - opensearch_description: Rechercher dans Tracks - applescript_next_action_prompt: "Description de l'action suivante:" - gmail_description: "Gadget pour ajouter Tracks \xC3\xA0 Gmail" - applescript_success_after_id: "Cr\xC3\xA9\xC3\xA9" - applescript_success_before_id: Nouvelle action suivante avec ID + ajaxError: "Une erreur s'est produite en acc\xC3\xA9dant un serveur" data: import_successful: "L'import a r\xC3\xA9ussi." import_errors: Des erreurs se sont produites durant l'import @@ -139,15 +151,15 @@ fr: feed_description: Liste de tous les projets de %{username} todo: error_date_must_be_future: "doit \xC3\xAAtre une date dans le futur" - preference: - due_on: "Ech\xC3\xA9ance le %{date}" - due_in: "Ech\xC3\xA9ance dans %{days} jours" - due_styles: - - "Ech\xC3\xA9ance dans ____ jours" - - "Ech\xC3\xA9ance le ____" user: error_context_not_associated: "L'identifiant contexte %{context} n'est pas associ\xC3\xA9 \xC3\xA0 l'identifiant utilisateur %{user}." error_project_not_associated: "L'identifiant projet %{context} n'est pas associ\xC3\xA9 \xC3\xA0 l'identifiant utilisateur %{user}." + preference: + due_on: "Ech\xC3\xA9ance le %{date}" + due_in: "Ech\xC3\xA9ance dans %{days} jours" + due_styles: + - "Ech\xC3\xA9ance dans ____ jours" + - "Ech\xC3\xA9ance le ____" activerecord: attributes: project: @@ -163,56 +175,60 @@ fr: context: Contexte description: Description due: "Ech\xC3\xA9ance" + user: + last_name: Nom + first_name: "Pr\xC3\xA9nom" preference: show_hidden_projects_in_sidebar: "Montrer les projets cach\xC3\xA9s dans le panneau lat\xC3\xA9ral" - show_hidden_contexts_in_sidebar: "Montrer les contextes cach\xC3\xA9s dans le panneau lat\xC3\xA9ral" date_format: Format date + show_hidden_contexts_in_sidebar: "Montrer les contextes cach\xC3\xA9s dans le panneau lat\xC3\xA9ral" mobile_todos_per_page: Actions par page (Vue Mobile) - sms_context: Contexte Email par default - staleness_starts: "D\xC3\xA9but de d\xC3\xA9passement" verbose_action_descriptors: "Descripteurs d\\'action d\xC3\xA9taill\xC3\xA9s" + staleness_starts: "D\xC3\xA9but de d\xC3\xA9passement" + sms_context: Contexte Email par default title_date_format: Format de la date en titre show_number_completed: "Montrer le nombre d\\'action compl\xC3\xA9t\xC3\xA9es" refresh: Intervalle de rafraichissement (en minutes) week_starts: Les semaines commencent un + last_name: Nom locale: Langue - time_zone: Fuseau horaire due_style: "Style Ech\xC3\xA9ance" + time_zone: Fuseau horaire show_project_on_todo_done: "Aller au projet quand la t\xC3\xA2che est termin\xC3\xA9e" sms_email: De l\'Email + first_name: Nom show_completed_projects_in_sidebar: "Montrer les projets compl\xC3\xA9t\xC3\xA9s dans le panneau lat\xC3\xA9ral" - user: - last_name: Nom - first_name: "Pr\xC3\xA9nom" errors: + messages: + greater_than_or_equal_to: "doit \xC3\xAAtre plus grand ou \xC3\xA9gal \xC3\xA0 %{count}" + record_invalid: "La validation \xC3\xA0 \xC3\xA9chou\xC3\xA9 : %{errors}" + confirmation: "n\\'est pas identique \xC3\xA0 la confirmation" + less_than_or_equal_to: "doit \xC3\xAAtre inf\xC3\xA9rieur ou \xC3\xA9gal \xC3\xA0 %{count}" + blank: "ne peux \xC3\xAAtre vide" + invalid: "ne peut contenir le caract\xC3\xA8re virgule (\\',\\')" + exclusion: exclusion? + odd: "doit \xC3\xAAtre impair" + even: "doit \xC3\xAAtre pair" + too_short: "est trop court (minimum de %{count} charact\xC3\xA8res)" + empty: "ne peut \xC3\xAAtre vide" + wrong_length: "est de longueur incorrecte (doit \xC3\xAAtre de %{count} caract\xC3\xA8res)" + less_than: "doit \xC3\xAAtre inf\xC3\xA9rieur \xC3\xA0 %{count}" + greater_than: "doit \xC3\xAAtre plus grand que %{count}" + equal_to: "doit \xC3\xAAtre \xC3\xA9gal \xC3\xA0 %{count}" + accepted: "doit \xC3\xAAtre accept\xC3\xA9" + too_long: "est trop long (maximum de %{count} caract\xC3\xA8res)" + taken: "est d\xC3\xA9j\xC3\xA0 pris" + inclusion: n\'est pas inclus dans la liste + not_a_number: n\'est pas un nombre models: project: attributes: name: blank: le projet doit avoir un nom - taken: "Existe d\xC3\xA9j\xC3\xA0" - too_long: "le nom du projet doit faire moins de 256 caract\xC3\xA8res" - messages: - record_invalid: "La validation \xC3\xA0 \xC3\xA9chou\xC3\xA9 : %{errors}" - greater_than_or_equal_to: "doit \xC3\xAAtre plus grand ou \xC3\xA9gal \xC3\xA0 %{count}" - confirmation: "n\\'est pas identique \xC3\xA0 la confirmation" - less_than_or_equal_to: "doit \xC3\xAAtre inf\xC3\xA9rieur ou \xC3\xA9gal \xC3\xA0 %{count}" - blank: "ne peux \xC3\xAAtre vide" - exclusion: "exclusion?" - invalid: "ne peut contenir le caract\xC3\xA8re virgule (\\',\\')" - odd: "doit \xC3\xAAtre impair" - wrong_length: "est de longueur incorrecte (doit \xC3\xAAtre de %{count} caract\xC3\xA8res)" - empty: "ne peut \xC3\xAAtre vide" - even: "doit \xC3\xAAtre pair" - too_short: "est trop court (minimum de %{count} charact\xC3\xA8res)" - less_than: "doit \xC3\xAAtre inf\xC3\xA9rieur \xC3\xA0 %{count}" - equal_to: "doit \xC3\xAAtre \xC3\xA9gal \xC3\xA0 %{count}" - greater_than: "doit \xC3\xAAtre plus grand que %{count}" - taken: "est d\xC3\xA9j\xC3\xA0 pris" - accepted: "doit \xC3\xAAtre accept\xC3\xA9" - too_long: "est trop long (maximum de %{count} caract\xC3\xA8res)" - not_a_number: n\'est pas un nombre - inclusion: n\'est pas inclus dans la liste + too_long: "le nom du projet doit faire moins de 256 caract\xC3\xA8res" + taken: !binary | + RXhpc3RlIGTDqWrDoA== + full_messages: format: "%{attribute} %{message}" template: @@ -221,94 +237,99 @@ fr: one: "1 erreur a emp\xC3\xA9ch\xC3\xA9 ce %{model} d\\'\xC3\xAAtre sauvegard\xC3\xA9" other: "%{count} erreurs ont emp\xC3\xA9ch\xC3\xA9 ce %{model} d\\'\xC3\xAAtre sauvegard\xC3\xA9" stats: + tag_cloud_title: Nuage de tag pour toutes les actions + tag_cloud_description: "Ce nuage de tags contient les tags de toutes les actions (r\xC3\xA9alis\xC3\xA9es, en cours, visibles ou cach\xC3\xA9es)" tag_cloud_90days_title: Nuage de tag des actions des 90 derniers jours actions: Actions totals_active_project_count: De ceux-ci %{count} sont des projets actifs - tag_cloud_title: Nuage de tag pour toutes les actions - tag_cloud_description: "Ce nuage de tags contient les tags de toutes les actions (r\xC3\xA9alis\xC3\xA9es, en cours, visibles ou cach\xC3\xA9es)" actions_last_year_legend: number_of_actions: Nombre d'actions months_ago: "Mois pr\xC3\xA9c\xC3\xA9dents" totals_first_action: "Depuis votre premi\xC3\xA8re action du %{date}" actions_avg_completion_time: "Pour toutes vos actions r\xC3\xA9alis\xC3\xA9s, le temps moyen de r\xC3\xA9alisation est %{count} jours." - totals_deferred_actions: "desquels %{count} sont des actions report\xC3\xA9s dans le Reporteur" + top10_longrunning: Top 10 des plus long projets en cours + actions_dow_30days_title: Jour de la semaine (les 30 derniers jours) legend: actions: Actions number_of_days: Il y a ... jours number_of_actions: Nombre d'actions day_of_week: Jour de la semaine - running_time: Temps en cours d'une action (en semaines) percentage: Pourcentage + running_time: Temps en cours d'une action (en semaines) months_ago: Il y a ... mois - top10_longrunning: Top 10 des plus long projets en cours - actions_dow_30days_title: Jour de la semaine (les 30 derniers jours) current_running_time_of_incomplete_visible_actions: "Dur\xC3\xA9e en cours des actions incompl\xC3\xA8tes visibles" + totals_deferred_actions: "desquels %{count} sont des actions report\xC3\xA9s dans le Reporteur" running_time_legend: actions: Actions percentage: Pourcentage weeks: Temps en cours d'une action (en semaines). Cliquer sur une barre pour plus d'info totals_action_count: vous avez un total de %{count} actions - top5_contexts: Top 5 des contextes - actions_lastyear_title: Actions des 12 derniers mois - totals_actions_completed: "dont %{count} sont r\xC3\xA9alis\xC3\xA9es." totals_incomplete_actions: Vous avez %{count} actions en cours totals_unique_tags: De ces tags, %{count} sont uniques. actions_avg_completed_30days: "et r\xC3\xA9alis\xC3\xA9 une moyenne de %{count} actions par jour." + top5_contexts: Top 5 des contextes + actions_lastyear_title: Actions des 12 derniers mois + totals_actions_completed: "dont %{count} sont r\xC3\xA9alis\xC3\xA9es." + totals_context_count: Vous avez %{count} contextes. + totals_visible_context_count: De ceux-ci %{count} sont des contextes visibles totals_blocked_actions: "%{count} d\xC3\xA9pendent de la r\xC3\xA9alisation de leurs actions" + projects: Projets action_completion_time_title: "Temps de r\xC3\xA9alisation (toutes les actions r\xC3\xA9alis\xC3\xA9es)" actions_last_year: "Actions des derni\xC3\xA8res ann\xC3\xA9es" - totals_context_count: Vous avez %{count} contextes. - projects: Projets - totals_visible_context_count: De ceux-ci %{count} sont des contextes visibles - actions_day_of_week_title: Jour de la semaine (toutes les actions) - totals_project_count: Vous avez %{count} projets - tags: Tags actions_min_max_completion_days: "Le nombre max/min de jours pour r\xC3\xA9aliser est %{min}/%{max}." + tags: Tags actions_min_completion_time: "Le temps minimum de r\xC3\xA9alisation est %{time}." no_tags_available: pas de tags disponibles - actions_further: et plus + actions_day_of_week_title: Jour de la semaine (toutes les actions) + totals_project_count: Vous avez %{count} projets running_time_all: "Temps en cours de toutes les actions incompl\xC3\xA8tes" + actions_30days_title: Actions des 30 derniers jours time_of_day: Heure (toutes les actions) + totals_hidden_project_count: "%{count} sont cach\xC3\xA9s" tod30: Heure (30 derniers jours) + tag_cloud_90days_description: "Ce nuage de tag contient les tags des actions cr\xC3\xA9\xC3\xA9es ou r\xC3\xA9alis\xC3\xA9es dans les 90 derniers jours." more_stats_will_appear: Plus de statistiques apparaitront quand vous aurez ajouter quelques actions. top5_visible_contexts_with_incomplete_actions: Top 5 des contextes visible avec des actions en cours + actions_further: et plus totals_tag_count: Vous avez %{count} tags sur des actions. - actions_30days_title: Actions des 30 derniers jours - totals_hidden_project_count: "%{count} sont cach\xC3\xA9s" - tag_cloud_90days_description: "Ce nuage de tag contient les tags des actions cr\xC3\xA9\xC3\xA9es ou r\xC3\xA9alis\xC3\xA9es dans les 90 derniers jours." top10_projects_30days: Top 10 des projets des 30 derniers jours + spread_of_running_actions_for_visible_contexts: Vue des actions en cours pour tous les contextes actions_selected_from_week: "Actions selectionn\xC3\xA9es depuis la semaine" + spread_of_actions_for_all_context: Vue des actions pour tous les contextes click_to_show_actions_from_week: Cliquer %{link} pour voir les actions depuis la semaine %{week}. + other_actions_label: (autres) top10_projects: Top 10 des projets + totals_completed_project_count: "et %{count} sont des projets r\xC3\xA9alis\xC3\xA9s." actions_avg_created: "Dans les 12 derniers mois vous avez cr\xC3\xA9\xC3\xA9 une moyenne de %{count} actions" click_to_return: "Cliquer %{link} pour revenir \xC3\xA0 la page des statistiques" - spread_of_running_actions_for_visible_contexts: Vue des actions en cours pour tous les contextes - spread_of_actions_for_all_context: Vue des actions pour tous les contextes - other_actions_label: (autres) - totals_completed_project_count: "et %{count} sont des projets r\xC3\xA9alis\xC3\xA9s." actions_avg_completed: "et r\xC3\xA9alis\xC3\xA9 une moyenne de %{count} actions par mois." totals: Totaux - contexts: Contextes time_of_day_legend: number_of_actions: Nombre d'actions time_of_day: Heure + contexts: Contextes click_to_return_link: ici totals_hidden_context_count: "et %{count} sont des contextes cach\xC3\xA9s." - click_to_update_actions: "Cliquer sur une barre du graphique pour mettre \xC3\xA0 jour les actions ci-dessous" labels: month_avg_completed: "%{month} mois moy. r\xC3\xA9alis\xC3\xA9" - completed: "Compl\xC3\xA9t\xC3\xA9" + completed: !binary | + Q29tcGzDqXTDqQ== + month_avg_created: "%{month} mois moy. cr\xC3\xA9\xC3\xA9" - avg_created: "Moy. Cr\xC3\xA9\xC3\xA9" + avg_created: !binary | + TW95LiBDcsOpw6k= + avg_completed: "Moy. R\xC3\xA9alis\xC3\xA9" - created: "Cr\xC3\xA9\xC3\xA9" + created: !binary | + Q3LDqcOp + running_time_all_legend: actions: Actions - running_time: Temps en cours d'une action (en semaines). Cliquer sur une barre pour plus d'info percentage: Pourcentage + running_time: Temps en cours d'une action (en semaines). Cliquer sur une barre pour plus d'info + click_to_update_actions: Cliquer sur une barre du graphique pour mettre a jour les actions ci-dessous. no_actions_selected: "Il n'y a pas d'actions s\xC3\xA9lectionn\xC3\xA9es." actions_actions_avg_created_30days: "Dans les 30 jours vous avez cr\xC3\xA9er en moyenne %{count} actions" - click_to_update_actions: "Cliquer sur une barre du graphique pour mettre a jour les actions ci-dessous." tod30_legend: number_of_actions: Nombre d'actions time_of_day: Heure @@ -320,38 +341,41 @@ fr: completed_actions: "Action compl\xC3\xA9t\xC3\xA9es" completed_recurring: "T\xC3\xA2ches reccurents compl\xC3\xA9t\xC3\xA9s" added_new_next_action: "Nouvelle action suivante ajout\xC3\xA9e" + completed_rest_of_previous_month: "Compl\xC3\xA9t\xC3\xA9 dans le reste du mois pr\xC3\xA9c\xC3\xA9dent" blocked_by: "Bloqu\xC3\xA9 par %{predecessors}" - unable_to_add_dependency: "Impossible d'ajouter la d\xC3\xA9pendance" star_action: Elire cette action completed_recurrence_completed: "Il n'y pas d'action suivante apr\xC3\xA8s l'action r\xC3\xA9currente que vous avez supprim\xC3\xA9e. La r\xC3\xA9currence est termin\xC3\xA9e" defer_date_after_due_date: "La date de report est apr\xC3\xA8s la date d'\xC3\xA9ch\xC3\xA9ance. Veuillez ajuster la date d'\xC3\xA9cheance avant de reporter." + unable_to_add_dependency: "Impossible d'ajouter la d\xC3\xA9pendance" done: "Termin\xC3\xA9 ?" star_action_with_description: Elire l'action '%{description}' - completed: "Compl\xC3\xA9t\xC3\xA9" tagged_with: "tagg\xC3\xA9 avec ‘%{tag_name}’" + completed: !binary | + Q29tcGzDqXTDqQ== + no_deferred_actions_with: "Pas d'actions report\xC3\xA9es avec le tag '%{tag_name}'" - no_hidden_actions: "Il n'y a pas d'actions cach\xC3\xA9es actuellement" edit_action_with_description: Modifier l'action '%{description}' + no_hidden_actions: "Il n'y a pas d'actions cach\xC3\xA9es actuellement" action_due_on: "(action \xC3\xA0 terminer avant le %{data})" - tags: "Tags (s\xC3\xA9par\xC3\xA9s par des virgules)" - archived_tasks_title: "TRACKS::T\xC3\xA2ches r\xC3\xA9alis\xC3\xA9es archiv\xC3\xA9es" remove_dependency: "Enlever les d\xC3\xA9pendances (l'action n'est pas supprim\xC3\xA9e)" + archived_tasks_title: "TRACKS::T\xC3\xA2ches r\xC3\xA9alis\xC3\xA9es archiv\xC3\xA9es" list_incomplete_next_actions: "Liste les prochaines actions incompl\xC3\xA8tes" + tags: "Tags (s\xC3\xA9par\xC3\xA9s par des virgules)" action_deleted_success: "L'action suivante \xC3\xA0 \xC3\xA9t\xC3\xA9 supprim\xC3\xA9e avec succ\xC3\xA8s" new_related_todo_created: "Une nouvelle t\xC3\xA2che a \xC3\xA9t\xC3\xA9 ajout\xC3\xA9e qui appartient \xC3\xA0 cette t\xC3\xA2che r\xC3\xA9currente" context_changed: "Contexte chang\xC3\xA9 en %{name}" - mobile_todos_page_title: Toutes les actions add_another_dependency: "Ajouter une autre d\xC3\xA9pendance" + mobile_todos_page_title: Toutes les actions delete_recurring_action_title: "Supprimer l'action r\xC3\xA9currente" removed_predecessor: "Suppression de %{successor} comme d\xC3\xA9pendance de %{predecessor}" recurring_actions_title: "TRACKS::Actions r\xC3\xA9currentes" next_action_needed: Vous devez soumettre au moins une prochaine action - action_deleted_error: "La suppression de l'action a \xC3\xA9chou\xC3\xA9" action_saved: "Action sauvegard\xC3\xA9e" scheduled_overdue: "Programm\xC3\xA9e pour apparaitre il y a %{days} jours" - next_actions_description: "Filtre:" + action_deleted_error: "La suppression de l'action a \xC3\xA9chou\xC3\xA9" edit_action: Modifier action added_new_context: "Nouveau context ajout\xC3\xA9" + next_actions_description: "Filtre:" list_incomplete_next_actions_with_limit: "Liste les %{count} derni\xC3\xA8res actions suivantes incompl\xC3\xA8tes" set_to_pending: "%{task} mise en attente" added_new_project: "Nouveau projet ajout\xC3\xA9" @@ -367,16 +391,19 @@ fr: no_deferred_pending_actions: "Il n'y pas d'actions report\xC3\xA9es ou en attente actuellement" no_recurring_todos: "Il n'y a pas de t\xC3\xA2ches r\xC3\xA9currentes actuellement" error_completing_todo: "Il s'est produit une erreur lors de l'execution de l'action r\xC3\xA9currente %{description}" + recurring_pattern_removed: "" convert_to_project: Faire projet delete_recurring_action_confirm: "Etes-vous s\xC3\xBBr de vouloir supprimer l'action r\xC3\xA9currente '%{description'}?" completed_last_day: "Compl\xC3\xA9t\xC3\xA9 ces derni\xC3\xA8res 24 heures" + completed_more_than_x_days_ago: "Compl\xC3\xA9t\xC3\xA9 il y a plus de %{count} jours" show_in_days: Afficher dans %{days} jours no_project: --Pas de projet-- error_saving_recurring: "Il s'est produit une erreur lors de la sauvegarde de la t\xC3\xA2che r\xC3\xA9currente \\'%{description}\\'" - completed_more_than_x_days_ago: "Compl\xC3\xA9t\xC3\xA9 il y a plus de %{count} jours" new_related_todo_created_short: "\xC3\xA0 cr\xC3\xA9\xC3\xA9 une nouvelle t\xC3\xA2che" + all_completed: "Toutes les actions r\xC3\xA9alis\xC3\xA9es" feed_title_in_context: dans le contexte '%{context}' older_than_days: Plus ancien que %{count} jours + completed_tagged_page_title: "" edit: Modifier pending: En attente completed_actions_with: "Action compl\xC3\xA9t\xC3\xA9es avec le tag %{tag_name}" @@ -384,8 +411,8 @@ fr: completed_tasks_title: "TRACKS::T\xC3\xA2ches compl\xC3\xA9t\xC3\xA9es" feed_title_in_project: dans le projet '%{project}' clear_due_date: "Effacer la date d'\xC3\xA9ch\xC3\xA9ance" - error_removing_dependency: "Il s'est produit une erreur lors de la suppression de la d\xC3\xA9pendance" hidden_actions: "Actions cach\xC3\xA9es" + error_removing_dependency: "Il s'est produit une erreur lors de la suppression de la d\xC3\xA9pendance" was_due_on_date: "arriv\xC3\xA9e \xC3\xA0 \xC3\xA9ch\xC3\xA9ance le %{date}" show_on_date: Afficher le %{date} recurrence_period: "Periode de r\xC3\xA9currence" @@ -404,8 +431,8 @@ fr: no_actions_found_title: "Aucune action trouv\xC3\xA9e" next_actions_due_date: overdue_by: "D\xC3\xA9pass\xC3\xA9e de %{days} jour" - due_in_x_days: "Ech\xC3\xA9ance dans %{days} days" due_today: "Ech\xC3\xA9ance aujourd'hui" + due_in_x_days: "Ech\xC3\xA9ance dans %{days} days" overdue_by_plural: "D\xC3\xA9pass\xC3\xA9e de %{days} jours" due_tomorrow: "Ech\xC3\xA9ance demain" completed_last_x_days: "Compl\xC3\xA9t\xC3\xA9 ces %{count} jours" @@ -415,19 +442,20 @@ fr: other: Report de %{count} jours added_new_next_action_singular: "Nouvelle action suivante ajout\xC3\xA9e" no_completed_actions: "Il n'y a pas d'actions compl\xC3\xA9t\xC3\xA9es actuellement." + feeds: + completed: "Compl\xC3\xA9t\xC3\xA9 : %{date}" + due: "Ech\xC3\xA9ance : %{date}" deferred_pending_actions: "Actions report\xC3\xA9es ou en attente" has_x_pending: one: A une action en attente other: A %{count} actions en attente - feeds: - completed: "Compl\xC3\xA9t\xC3\xA9 : %{date}" - due: "Ech\xC3\xA9ance : %{date}" delete_action: Supprimer action error_deleting_recurring: "Il s'est produit une erreur lors de la suppression de la t\xC3\xA2che r\xC3\xA9currente \\'%{description}\\'" recurring_todos: "T\xC3\xA2ches r\xC3\xA9currentes" delete: Supprimer - drag_action_title: "D\xC3\xA9placer sur une autre action pour la rendre d\xC3\xA9pendante de cette action" cannot_add_dependency_to_completed_todo: "Impossible d'ajouter cette action comme d\xC3\xA9pendance d'une action compl\xC3\xA9t\xC3\xA9e !" + drag_action_title: "D\xC3\xA9placer sur une autre action pour la rendre d\xC3\xA9pendante de cette action" + no_last_completed_actions: "Aucune action achev\xC3\xA9e trouve" depends_on: "D\xC3\xA9pend de" tickler_items_due: one: "Un \xC3\xA9l\xC3\xA9ment du reporteur est arriv\xC3\xA9 \xC3\xA0 \xC3\xA9ch\xC3\xA9ance - rafraichir la page pour le voir." @@ -438,60 +466,34 @@ fr: other: "Vous avez compl\xC3\xA9t\xC3\xA9 %{count} action aujourd'hui" added_new_next_action_plural: "Nouvelles actions suivantes ajout\xC3\xA9es" new_related_todo_not_created_short: "n'a pas cr\xC3\xA9\xC3\xA9 la t\xC3\xA2che" + completed_rest_of_week: "Compl\xC3\xA9t\xC3\xA9 dans le reste de cette semaine" error_starring: "Impossible d'actionner l'\xC3\xA9toile de cette tache \\'%{description}\\'" - show_tomorrow: Afficher demain calendar: get_in_ical_format: Obtenir ce calendrier au format iCal due_next_week: "A r\xC3\xA9aliser la semaine prochaine" no_actions_due_next_week: "Pas d'actions \xC3\xA0 terminer la semaine prochaine" due_this_week: "A r\xC3\xA9aliser avant la fin de cette semaine" - no_actions_due_today: "Pas d'action \xC3\xA0 terminer aujourd'hui" due_today: "A r\xC3\xA9aliser aujourd'hui" + no_actions_due_today: "Pas d'action \xC3\xA0 terminer aujourd'hui" due_next_month_and_later: "A r\xC3\xA9aliser dans %{month} et plus" no_actions_due_after_this_month: "Pas d'actions \xC3\xA0 r\xC3\xA9aliser apr\xC3\xA8s ce mois" due_this_month: "A r\xC3\xA9aliser avant la fin de %{month}" no_actions_due_this_month: "Pas d'actions \xC3\xA0 terminer pour ce mois" + show_tomorrow: Afficher demain tagged_page_title: "TRACKS::Tagg\xC3\xA9 avec %{tag_name}'" + action_deferred: "" recurrence: + ends_on_number_times: Fini au bout de %{number} fois ends_on_date: Fini le %{date} every_work_day: "Chaque jour ouvr\xC3\xA9" - ends_on_number_times: Fini au bout de %{number} fois recurrence_on_due_date: "La date d'\xC3\xA9ch\xC3\xA9ance de la t\xC3\xA2che" weekly_options: "Param\xC3\xA8tres pour les actions r\xC3\xA9currentes hebdomadaires" - monthly_options: "Param\xC3\xA8tres pour les actions r\xC3\xA9currentes mensuelles" weekly: Toutes les semaines + monthly_options: "Param\xC3\xA8tres pour les actions r\xC3\xA9currentes mensuelles" starts_on: "D\xC3\xA9marre le" daily_options: "Param\xC3\xA8tres des actions r\xC3\xA9currentes quotidiennes" monthly: Mensuellement - daily: Quotidiennement pattern: - third: "troisi\xC3\xA8me" - every_n: tous les %{n} - on_day_n: le %{n}e jour - every_xth_day_of_every_n_months: tous les %{x} %{day} tous les %{n_months} - second: seconde - weekly: Toutes les semaines - from: de - every_day: chaque jour - last: dernier - the_xth_day_of_month: le %{x} %{day} de %{month} - times: pour %{number} fois - first: premier - on_work_days: "les jours ouvr\xC3\xA9s" - every_year_on: "chaque ann\xC3\xA9e le %{date}" - show: montrer - fourth: "quatri\xC3\xA8me" - due: "Ech\xC3\xA9ance" - every_month: chaque mois - until: jusqu'a - day_names: - - Dimanche - - Lundi - - Mardi - - Mercredi - - Jeudi - - Vendredi - - Samedi month_names: - - Janvier @@ -506,33 +508,63 @@ fr: - Octobre - Novembre - "D\xC3\xA9cembre" + third: "troisi\xC3\xA8me" + every_n: tous les %{n} + on_day_n: le %{n}e jour + second: seconde + every_xth_day_of_every_n_months: tous les %{x} %{day} tous les %{n_months} + from: de + weekly: Toutes les semaines + last: dernier + every_day: chaque jour + the_xth_day_of_month: le %{x} %{day} de %{month} + times: pour %{number} fois + on_work_days: "les jours ouvr\xC3\xA9s" + every_year_on: "chaque ann\xC3\xA9e le %{date}" + first: premier + day_names: + - Dimanche + - Lundi + - Mardi + - Mercredi + - Jeudi + - Vendredi + - Samedi + show: montrer + fourth: "quatri\xC3\xA8me" + due: "Ech\xC3\xA9ance" + until: jusqu'a + every_month: chaque mois show_option_always: toujours + daily: Quotidiennement yearly_every_x_day: Chaque %{month} %{day} recurrence_on_options: "Activer la r\xC3\xA9currence" daily_every_number_day: Tous les %{number} jour(s) - ends_on: Fini le show_options: "Montrer la t\xC3\xA2che" weekly_every_number_week: Returns every %{number} week on + ends_on: Fini le show_days_before: "%{days} jours avant la date d'\xC3\xA9ch\xC3\xA9ance de la t\xC3\xA2che" - yearly_every_xth_day: Chaque %{day} %{day_of_week} de %{month} from_tickler: "la date de la t\xC3\xA2che provient du reporteur (pas de date d\\'\xC3\xA9ch\xC3\xA9ance d\xC3\xA9finie)" no_end_date: Pas de date de fin day_x_on_every_x_month: Le %{day} tous les %{month} mois yearly_options: "Param\xC3\xA8tres pour les actions r\xC3\xA9currentes annuelles" + yearly_every_xth_day: Chaque %{day} %{day_of_week} de %{month} monthly_every_xth_day: Le %{day} %{day_of_week} tous les %{month} mois yearly: Tous les ans no_completed_recurring: "Il n'y a pas d'actions r\xC3\xA9currentes compl\xC3\xA9t\xC3\xA9es actuellement" added_dependency: "%{dependency} ajout\xC3\xA9e comme d\xC3\xA9pendance" - recurrence_completed: "Il n'y a pas d'action suivante apr\xC3\xA8s l'action r\xC3\xA9currente que vous venez de terminer. Fin de la r\xC3\xA9currence" no_deferred_actions: "Il n'y a pas d'actions report\xC3\xA9es actuellement" + all_completed_tagged_page_title: "" + completed_rest_of_month: "Compl\xC3\xA9t\xC3\xA9 dans le reste de ce mois-ci" + recurrence_completed: "Il n'y a pas d'action suivante apr\xC3\xA8s l'action r\xC3\xA9currente que vous venez de terminer. Fin de la r\xC3\xA9currence" + error_toggle_complete: "Impossible de marquer cette tache comme compl\xC3\xA9t\xC3\xA9e" no_actions_found: "Il n'y pas d'actions incompl\xC3\xA8tes actuellement." in_pending_state: en attente - error_toggle_complete: "Impossible de marquer cette tache comme compl\xC3\xA9t\xC3\xA9e" due: "Ech\xC3\xA9ance" action_marked_complete_error: "L'action '%{description}' n'a PAS \xC3\xA9t\xC3\xA9 marqu\xC3\xA9e comme %{completed} a cause d'une erreur sur le serveur " depends_on_separate_with_commas: "D\xC3\xA9pend de (s\xC3\xA9parer avec des virgules)" - recurring_action_saved: "Action r\xC3\xA9currente sauv\xC3\xA9e" action_saved_to_tickler: "Action sauvegard\xC3\xA9e dans le Reporteur" + recurring_action_saved: "Action r\xC3\xA9currente sauv\xC3\xA9e" completed_in_archive: one: "Il n'y a pas d'action compl\xC3\xA9t\xC3\xA9e dans l'archive" other: "Il y a %{count} actions compl\xC3\xA9t\xC3\xA9es dans l'archive" @@ -544,66 +576,28 @@ fr: add_new_recurring: "Ajouter une nouvelle action r\xC3\xA9currente" no_incomplete_actions: "Il n'y a pas d'actions incompl\xC3\xA8tes" notes: + delete_confirmation: Etes-vous sur de vouloir supprimer la note '%{id}' ? delete_item_title: "Supprimer l'\xC3\xA9l\xC3\xA9ment" delete_note_title: Supprimer la note '%{id}' - delete_confirmation: Etes-vous sur de vouloir supprimer la note '%{id}' ? note_link_title: Voir note %{id} show_note_title: Voir note deleted_note: Supprimer la note '%{id}' - note_location_link: "ln:" edit_item_title: "Modifier l'\xC3\xA9l\xC3\xA9ment" + note_location_link: "ln:" no_notes_available: "Il n'y a actuellement aucune note: ajouter des notes aux projets sur les pages individuelles des projets." note_header: Note %{id} delete_note_confirm: Etes-vous sur de vouloir supprimer la note '%{id}' ? - projects: - no_actions_in_project: "Il n'y pas d'action incompl\xC3\xA8tes pour ce projet" - deferred_actions: "Actions report\xC3\xA9es pour ce projet" - was_marked_hidden: "est cach\xC3\xA9" - edit_project_title: Editer le projet - default_tags_removed_notice: Supprimer les tags par defaut - default_context_set: "D\xC3\xA9finir le contexte par d\xC3\xA9faut du projet \xC3\xA0 %{default_context}" - hide_form: Cacher le formulaire - page_title: "TRACKS::Projet: %{project}" - deferred_actions_empty: "Il n'y a pas d'actions report\xC3\xA9es pour ce projet" - this_project: Ce projet - project_state: Le projet est %{state} - show_form_title: "Cr\xC3\xA9er un nouveau projet" - to_new_project_page: "Aller \xC3\xA0 la page du nouveau projet" - no_notes_attached: "Il n'y a actuellement aucune note attach\xC3\xA9e \xC3\xA0 ce projet" - todos_append: dans ce projet - notes: Notes - no_projects: Il n'y a actuellement aucun projet - hide_form_title: Cacher le formulaire nouveau projet - notes_empty: Il n'y a pas de notes pour ce projet - with_no_default_context: "sans contexte par d\xC3\xA9faut" - delete_project: Supprimer projet - completed_actions_empty: "Il n'y a pas d'actions r\xC3\xA9alis\xC3\xA9es pour ce projet" - actions_in_project_title: Actions pour ce projet - delete_project_confirmation: "Etes vous s\xC3\xBBr de vouloir supprimer le projet '%{name}' ?" - with_default_context: "avec '%{context_name}' comme contexte par d\xC3\xA9faut" - show_form: Ajouter un projet - add_project: Ajouter projet - set_default_tags_notice: "D\xC3\xA9finir les tags par d\xC3\xA9faut du projet \xC3\xA0 %{default_tags}" - settings: "Param\xC3\xA8tres" - with_default_tags: et avec '%{tags'} comme tags par defaut - list_projects: TRACKS::Liste des Projets - project_saved_status: "Projet sauvegard\xC3\xA9" - add_note: Ajouter une note - is_active: est actif - completed_projects: "Projets r\xC3\xA9alis\xC3\xA9s" - delete_project_title: Supprimer le projet - hidden_projects: "Projets cach\xC3\xA9s" - completed_actions: "Actions r\xC3\xA9alis\xC3\xA9es pour ce projet" - default_context_removed: "Contexte par d\xC3\xA9faut supprim\xC3\xA9" - add_note_submit: Ajouter note - was_marked_complete: "est compl\xC3\xA9t\xC3\xA9" - edit_project_settings: "Modifier les param\xC3\xA8tres du projet" - state: Le projet est %{state} - default_context: "Le contexte par d\xC3\xA9faut pour ce projet est %{context}" - status_project_name_changed: "Le nom du projet a \xC3\xA9t\xC3\xA9 modifi\xC3\xA9" - active_projects: Projets actifs - no_default_context: Ce projet n'a pas de contexte par defaut - with_no_default_tags: "et sans tags par d\xC3\xA9faut" + states: + hidden_plural: "Cach\xC3\xA9s" + completed: "Complet\xC3\xA9" + completed_plural: "Complet\xC3\xA9s" + visible_plural: Visibles + visible: Visible + active_plural: Actifs + active: Actif + hidden: !binary | + Q2FjaMOp + time: am: am formats: @@ -613,35 +607,85 @@ fr: month_day: "%B %d" long: "%B %d, %Y %H:%M" pm: pm - states: - hidden_plural: "Cach\xC3\xA9s" - completed: "Complet\xC3\xA9" - completed_plural: "Complet\xC3\xA9s" - visible_plural: Visibles - active_plural: Actifs - visible: Visible - hidden: "Cach\xC3\xA9" - active: Actif + projects: + was_marked_hidden: "est cach\xC3\xA9" + edit_project_title: Editer le projet + default_tags_removed_notice: Supprimer les tags par defaut + default_context_set: "D\xC3\xA9finir le contexte par d\xC3\xA9faut du projet \xC3\xA0 %{default_context}" + no_actions_in_project: "Il n'y pas d'action incompl\xC3\xA8tes pour ce projet" + deferred_actions: "Actions report\xC3\xA9es pour ce projet" + all_completed_tasks_title: "" + hide_form: Cacher le formulaire + page_title: "TRACKS::Projet: %{project}" + show_form_title: "Cr\xC3\xA9er un nouveau projet" + list_completed_projects: "" + to_new_project_page: "Aller \xC3\xA0 la page du nouveau projet" + no_notes_attached: "Il n'y a actuellement aucune note attach\xC3\xA9e \xC3\xA0 ce projet" + deferred_actions_empty: "Il n'y a pas d'actions report\xC3\xA9es pour ce projet" + this_project: Ce projet + project_state: Le projet est %{state} + todos_append: dans ce projet + no_last_completed_projects: "Pas de projets termin\xC3\xA9s trouv\xC3\xA9s" + notes: Notes + no_last_completed_recurring_todos: "Non termin\xC3\xA9 actions r\xC3\xA9p\xC3\xA9titives trouv\xC3\xA9es" + notes_empty: Il n'y a pas de notes pour ce projet + no_projects: Il n'y a actuellement aucun projet + hide_form_title: Cacher le formulaire nouveau projet + with_no_default_context: "sans contexte par d\xC3\xA9faut" + delete_project: Supprimer projet + completed_actions_empty: "Il n'y a pas d'actions r\xC3\xA9alis\xC3\xA9es pour ce projet" + show_form: Ajouter un projet + actions_in_project_title: Actions pour ce projet + delete_project_confirmation: "Etes vous s\xC3\xBBr de vouloir supprimer le projet '%{name}' ?" + with_default_context: "avec '%{context_name}' comme contexte par d\xC3\xA9faut" + set_default_tags_notice: "D\xC3\xA9finir les tags par d\xC3\xA9faut du projet \xC3\xA0 %{default_tags}" + is_active: est actif + settings: "Param\xC3\xA8tres" + completed_projects: "Projets r\xC3\xA9alis\xC3\xA9s" + with_default_tags: et avec '%{tags'} comme tags par defaut + list_projects: TRACKS::Liste des Projets + project_saved_status: "Projet sauvegard\xC3\xA9" + add_project: Ajouter projet + add_note: Ajouter une note + completed_tasks_title: "" + delete_project_title: Supprimer le projet + hidden_projects: "Projets cach\xC3\xA9s" + add_note_submit: Ajouter note + was_marked_complete: "est compl\xC3\xA9t\xC3\xA9" + completed_actions: "Actions r\xC3\xA9alis\xC3\xA9es pour ce projet" + default_context_removed: "Contexte par d\xC3\xA9faut supprim\xC3\xA9" + default_context: "Le contexte par d\xC3\xA9faut pour ce projet est %{context}" + status_project_name_changed: "Le nom du projet a \xC3\xA9t\xC3\xA9 modifi\xC3\xA9" + active_projects: Projets actifs + no_default_context: Ce projet n'a pas de contexte par defaut + with_no_default_tags: "et sans tags par d\xC3\xA9faut" + edit_project_settings: "Modifier les param\xC3\xA8tres du projet" + state: Le projet est %{state} preferences: + open_id_url: Votre URL OpenID est staleness_starts_after: "\"date de fraicher\" d\xC3\xA9pass\xC3\xA9e \xC3\xA0 pr\xC3\xA8s %{days} days" change_identity_url: "Modifier votre URL d'identit\xC3\xA9" - open_id_url: Votre URL OpenID est change_password: Modifier votre mot de passe page_title: "TRACKS::Pr\xC3\xA9f\xC3\xA9rences" title: "Vos pr\xC3\xA9f\xC3\xA9rences" token_description: Jeton (pour flux et utilisation API) is_false: faux show_number_completed: "Montrer %{number} items r\xC3\xA9alis\xC3\xA9s" + page_title_edit: "TRACKS::Editer les pr\xC3\xA9f\xC3\xA9rences" is_true: vrai edit_preferences: "Editer les pr\xC3\xA9f\xC3\xA9rences" - page_title_edit: "TRACKS::Editer les pr\xC3\xA9f\xC3\xA9rences" sms_context_none: Aucun generate_new_token: "G\xC3\xA9n\xC3\xA9rer un nouveau jeton" token_header: Votre jeton + authentication_header: Votre authentification current_authentication_type: Votre type d'authentification est %{auth_type} change_authentication_type: Modifier votre type d'authentification - authentication_header: Votre authentification generate_new_token_confirm: "Etes vous s\xC3\xBBr ? G\xC3\xA9n\xC3\xA9rer un nouveau jeton va remplacer le jeton existant et en interdire les utilisations externes." + tabs: + authentication: Authentification + tracks_behavior: Comportements Tracks + profile: Profil + date_and_time: Date et heure errors: user_unauthorized: "401 Non autoris\xC3\xA9: Administrateur seulement." date: @@ -654,15 +698,11 @@ fr: - mai - juin - juillet - - "Aout" + - Aout - septembre - octobre - novembre - "d\xC3\xA9cembre" - order: - - :day - - :month - - :year abbr_day_names: - dim - lun @@ -671,6 +711,10 @@ fr: - jeu - ven - sam + order: + - :day + - :month + - :year formats: only_day: "%e" default: "%d/%m/%Y" @@ -688,7 +732,9 @@ fr: abbr_month_names: - - jan. - - "F\xC3\xA9v." + - !binary | + RsOpdi4= + - mar. - avr. - mai @@ -701,109 +747,34 @@ fr: - d\xC3\xA9c. support: array: - last_word_connector: ", et" words_connector: "," + last_word_connector: ", et" two_words_connector: et select: prompt: "Veuillez s\xC3\xA9lectionner" + footer: + send_feedback: Envoyer un feedback sur %{version} shared: multiple_next_actions: Actions suivante multiples (une sur chaque ligne) - toggle_single: Ajouter action suivante hide_form: Cacher le formulaire + toggle_single: Ajouter action suivante add_action: Ajouter action add_actions: Ajouter actions tags_for_all_actions: Tags pour toutes les actions (sep. avec des virgules) - context_for_all_actions: Contexte pour toutes les actions - toggle_multi: Ajouter plusieurs actions suivantes toggle_single_title: Ajouter une nouvelle action suivante project_for_all_actions: Projet pour toutes les actions + context_for_all_actions: Contexte pour toutes les actions + toggle_multi: Ajouter plusieurs actions suivantes separate_tags_with_commas: "s\xC3\xA9parer avec des virgules" toggle_multi_title: Basculer formulaire action simple/multiple hide_action_form_title: Cacher le formulaire nouvelle action - footer: - send_feedback: Envoyer un feedback sur %{version} - sidebar: - list_name_active_contexts: Contextes actifs - list_name_active_projects: Projets actifs - list_empty: Aucun - list_name_completed_projects: "Projets r\xC3\xA9alis\xC3\xA9s" - list_name_hidden_projects: "Projets cach\xC3\xA9s" - list_name_hidden_contexts: "Contextes cach\xC3\xA9s" - users: - failed_to_delete_user: "La suppression de l'utilisateur {username} \xC3\xA0 \xC3\xA9chou\xC3\xA9" - first_user_heading: "Bienvenu \xC3\xA0 TRAKS. Pour commencer, veuillez cr\xC3\xA9er un compte administrateur" - openid_url_verified: "Vous avez v\xC3\xA9rifi\xC3\xA9 avec succ\xC3\xA8s votre identit\xC3\xA9 comme %{url} et d\xC3\xA9fini votre type authentification comme OpenID" - auth_type_update_error: "Un probl\xC3\xA8me est survenu lors de la modification du type d'authentification : %{error_messages}" - destroy_successful: "Utilisateur %{login} supprim\xC3\xA9 avec succ\xC3\xA8s" - successfully_deleted_user: "Utilisateur %{username} supprim\xC3\xA9 avec succ\xC3\xA8s" - total_contexts: Total contextes - total_projects: Total projets - signup_successful: "Utilisateur %{username} cr\xC3\xA9\xC3\xA9 avec succ\xC3\xA8s." - new_token_generated: "Nouveau token g\xC3\xA9n\xC3\xA9r\xC3\xA9 avec succ\xC3\xA9s" - change_password_submit: Modifier mot de passe - no_signups_title: TRACKS::Pas de signups - user_created: "Utilisateur cr\xC3\xA9\xC3\xA9." - account_signup: "Cr\xC3\xA9er un compte" - manage_users: "G\xC3\xA9rer utilisateurs" - password_updated: "Mot de passe modifi\xC3\xA9." - total_actions: Total actions - signup: "Cr\xC3\xA9ation" - desired_login: "Login souhait\xC3\xA9" - confirm_password: Confirmer le mot de passe - new_user_heading: "Cr\xC3\xA9er un nouvel utilisateur:" - auth_type_updated: "Type d'authentification modifi\xC3\xA9." - destroy_error: Une erreur s'est produite lors de la suppression de l'utilisateur %{login} - choose_password: Choisir le mot de passe - change_password_title: TRACKS::Modifier mot de passe - change_auth_type_title: TRACKS::Modifier le type d'authentification - change_password_prompt: Entrer votre nouveau mot de passe dans les champs ci-dessous et cliquer sur 'Modifier mot de passe' pour remplacer votre mot de passe actuel par le nouveau. - password_confirmation_label: Confirmer mot de passe - register_with_cas: Avec votre nom d'utilisateur CAS - label_auth_type: Type d'authentification - new_password_label: Nouveau mot de passe - destroy_user: Supprimer utilisateur - total_users_count: Vous avez %{count} utilisateurs - new_user_title: "TRACKS::Cr\xC3\xA9er un administrateur" - destroy_confirmation: "Attention : cela va supprimer l'utilisateur '%{login}', toutes ses actions, contextes, projets et notes. Etes-vous s\xC3\xBBr de vouloir continuer ?" - signup_new_user: "Cr\xC3\xA9er un nouvel utilisateur" - change_authentication_type: Modifier le type d'authentification - auth_change_submit: Modifier le type d'authenfication - identity_url: "URL Identit\xC3\xA9" - openid_ok_pref_failed: "Vous avez v\xC3\xA9rifi\xC3\xA9 avec succ\xC3\xA8s votre identit\xC3\xA9 comme %{url} mais un probl\xC3\xA8me est survenu lors de la sauvegarde de vos pr\xC3\xA9f\xC3\xA9rences d'authentification." - total_notes: Total notes - select_authentication_type: "S\xC3\xA9lectionner votre nouveau type d'authentification et cliquer sur 'Modifier type d'authenfication' pour remplacer les param\xC3\xA8tres actuels." - contexts: - delete_context_title: Supprimer contexte - hide_form: Cacher le formulaire - show_form_title: Ajouter un contexte - delete_context_confirmation: "Etes vous s\xC3\xBBr de vouloir supprimer le contexte %{name}? Toutes les actions (r\xC3\xA9p\xC3\xA9titives) de ce contexte seront \xC3\xA9galement supprim\xC3\xA9es !" - delete_context: Supprimer contexte - hide_form_title: Cacher le formulaire nouveau contexte - edit_context: Modifier contexte - no_contexts_active: Actuellement, il n'y a pas de contextes actifs - context_hide: "Cach\xC3\xA9 de la premi\xC3\xA8re page ?" - hidden_contexts: "Contextes cach\xC3\xA9s" - visible_contexts: Contextes visibles - save_status_message: "Contexte sauvegard\xC3\xA9" - add_context: Ajouter un contexte - show_form: "Cr\xC3\xA9er un nouveau contexte" - update_status_message: "Le nom du contexte \xC3\xA0 \xC3\xA9t\xC3\xA9 modifi\xC3\xA9" - context_name: Nom du Contexte - new_context_post: "'sera aussi cr\xC3\xA9\xC3\xA9. Etes-vous s\xC3\xBBr ?" - status_active: Le Contexte est actif - no_contexts_hidden: "Actuellement, il n'y a pas de contextes cach\xC3\xA9s" - new_context_pre: Nouveau contexte ' - no_actions: "Actuellement, il n'y pas d'actions incompl\xC3\xA8tes dans ce contexte" - last_completed_in_context: dans ce contexte (dernier %{number}) - context_deleted: "Contexte \\'%{name}\\' supprim\xC3\xA9" - status_hidden: "Le Contexte est cach\xC3\xA9" feedlist: choose_context: Choisir le contexte dont vous voulez un flux actions_due_today: Actions devant se terminer aujourd'hui ou avant - legend: "L\xC3\xA9gende" rss_feed: Flux RSS ical_feed: Flux iCal all_contexts: Tous les contextes + legend: "L\xC3\xA9gende" all_projects: Tous les projets choose_project: Choisir le projet dont vous voulez un flux select_feed_for_project: Selectionner le flux pour ce projet @@ -821,66 +792,98 @@ fr: plain_text_feed: Flux texte last_fixed_number: "Derni\xC3\xA8res %{number} actions" project_centric: "Flux des actions incompl\xC3\xA8tes d'un projet sp\xC3\xA9cifique" - datetime: - prompts: - minute: Minute - second: Secondes - month: Mois - hour: Heure - day: Jour - year: "Ann\xC3\xA9e" - distance_in_words: - less_than_x_minutes: - one: moins d'une minute - other: moins de %{count} minutes - zero: Moins de 1 minute - almost_x_years: - one: presque 1 an - other: presque %{count} ans - x_days: - one: 1 jour - other: "%{count} jours" - x_seconds: - one: 1 seconde - other: "%{count} secondes" - less_than_x_seconds: - one: moins d'1 seconde - other: moins de %{count} secondes - zero: Moins de 1 seconde - x_months: - one: 1 mois - other: "%{count} mois" - x_minutes: - one: 1 minute - other: "%{count} minutes" - about_x_hours: - one: environ 1 heure - other: environ %{count} heures - about_x_months: - one: environ 1 mois - other: environ %{count} mois - about_x_years: - one: environ 1 an - other: environ %{count} ans - over_x_years: - one: plus d'1 an - other: plus de %{count} ans - half_a_minute: une demi-minute + users: + successfully_deleted_user: "Utilisateur %{username} supprim\xC3\xA9 avec succ\xC3\xA8s" + failed_to_delete_user: "La suppression de l'utilisateur {username} \xC3\xA0 \xC3\xA9chou\xC3\xA9" + total_contexts: Total contextes + first_user_heading: "Bienvenu \xC3\xA0 TRAKS. Pour commencer, veuillez cr\xC3\xA9er un compte administrateur" + openid_url_verified: "Vous avez v\xC3\xA9rifi\xC3\xA9 avec succ\xC3\xA8s votre identit\xC3\xA9 comme %{url} et d\xC3\xA9fini votre type authentification comme OpenID" + auth_type_update_error: "Un probl\xC3\xA8me est survenu lors de la modification du type d'authentification : %{error_messages}" + destroy_successful: "Utilisateur %{login} supprim\xC3\xA9 avec succ\xC3\xA8s" + new_token_generated: "Nouveau token g\xC3\xA9n\xC3\xA9r\xC3\xA9 avec succ\xC3\xA9s" + total_projects: Total projets + signup_successful: "Utilisateur %{username} cr\xC3\xA9\xC3\xA9 avec succ\xC3\xA8s." + change_password_submit: Modifier mot de passe + no_signups_title: TRACKS::Pas de signups + user_created: "Utilisateur cr\xC3\xA9\xC3\xA9." + manage_users: "G\xC3\xA9rer utilisateurs" + account_signup: "Cr\xC3\xA9er un compte" + password_updated: "Mot de passe modifi\xC3\xA9." + desired_login: "Login souhait\xC3\xA9" + confirm_password: Confirmer le mot de passe + signup: "Cr\xC3\xA9ation" + new_user_heading: "Cr\xC3\xA9er un nouvel utilisateur:" + auth_type_updated: "Type d'authentification modifi\xC3\xA9." + total_actions: Total actions + change_password_title: TRACKS::Modifier mot de passe + change_auth_type_title: TRACKS::Modifier le type d'authentification + change_password_prompt: Entrer votre nouveau mot de passe dans les champs ci-dessous et cliquer sur 'Modifier mot de passe' pour remplacer votre mot de passe actuel par le nouveau. + password_confirmation_label: Confirmer mot de passe + destroy_error: Une erreur s'est produite lors de la suppression de l'utilisateur %{login} + choose_password: Choisir le mot de passe + register_with_cas: Avec votre nom d'utilisateur CAS + label_auth_type: Type d'authentification + new_password_label: Nouveau mot de passe + new_user_title: "TRACKS::Cr\xC3\xA9er un administrateur" + destroy_user: Supprimer utilisateur + total_users_count: Vous avez %{count} utilisateurs + destroy_confirmation: "Attention : cela va supprimer l'utilisateur '%{login}', toutes ses actions, contextes, projets et notes. Etes-vous s\xC3\xBBr de vouloir continuer ?" + signup_new_user: "Cr\xC3\xA9er un nouvel utilisateur" + openid_ok_pref_failed: "Vous avez v\xC3\xA9rifi\xC3\xA9 avec succ\xC3\xA8s votre identit\xC3\xA9 comme %{url} mais un probl\xC3\xA8me est survenu lors de la sauvegarde de vos pr\xC3\xA9f\xC3\xA9rences d'authentification." + identity_url: "URL Identit\xC3\xA9" + auth_change_submit: Modifier le type d'authenfication + change_authentication_type: Modifier le type d'authentification + total_notes: Total notes + select_authentication_type: "S\xC3\xA9lectionner votre nouveau type d'authentification et cliquer sur 'Modifier type d'authenfication' pour remplacer les param\xC3\xA8tres actuels." + sidebar: + list_name_active_contexts: Contextes actifs + list_name_active_projects: Projets actifs + list_empty: Aucun + list_name_completed_projects: "Projets r\xC3\xA9alis\xC3\xA9s" + list_name_hidden_projects: "Projets cach\xC3\xA9s" + list_name_hidden_contexts: "Contextes cach\xC3\xA9s" + contexts: + delete_context_title: Supprimer contexte + all_completed_tasks_title: "" + hide_form: Cacher le formulaire + show_form_title: Ajouter un contexte + delete_context_confirmation: "Etes vous s\xC3\xBBr de vouloir supprimer le contexte %{name}? Toutes les actions (r\xC3\xA9p\xC3\xA9titives) de ce contexte seront \xC3\xA9galement supprim\xC3\xA9es !" + delete_context: Supprimer contexte + edit_context: Modifier contexte + hide_form_title: Cacher le formulaire nouveau contexte + context_hide: "Cach\xC3\xA9 de la premi\xC3\xA8re page ?" + hidden_contexts: "Contextes cach\xC3\xA9s" + no_contexts_active: Actuellement, il n'y a pas de contextes actifs + show_form: "Cr\xC3\xA9er un nouveau contexte" + visible_contexts: Contextes visibles + save_status_message: "Contexte sauvegard\xC3\xA9" + add_context: Ajouter un contexte + context_name: Nom du Contexte + update_status_message: "Le nom du contexte \xC3\xA0 \xC3\xA9t\xC3\xA9 modifi\xC3\xA9" + completed_tasks_title: "" + new_context_post: "'sera aussi cr\xC3\xA9\xC3\xA9. Etes-vous s\xC3\xBBr ?" + status_active: Le Contexte est actif + no_actions: "Actuellement, il n'y pas d'actions incompl\xC3\xA8tes dans ce contexte" + last_completed_in_context: dans ce contexte (dernier %{number}) + context_deleted: "Contexte \\'%{name}\\' supprim\xC3\xA9" + no_contexts_hidden: "Actuellement, il n'y a pas de contextes cach\xC3\xA9s" + new_context_pre: Nouveau contexte ' + status_hidden: "Le Contexte est cach\xC3\xA9" login: + login_cas: Aller au CAS + sign_in: Se connecter openid_identity_url_not_found: "D\xC3\xA9sol\xC3\xA9, aucun utilisateur avec cette identit\xC3\xA9 URL n'existe (%{identity_url})" user_no_expiry: "Rester connect\xC3\xA9" - sign_in: Se connecter - login_cas: Aller au CAS - cas_logged_in_greeting: "Bonjour, %{username}! Vous \xC3\xAAtes authentifi\xC3\xA9." cas_no_user_found: Bonjour, %{username}! Vous n'avez pas de compte sur Tracks. cas_login: Login CAS successful_with_session_info: "La connexion \xC3\xA0 r\xC3\xA9ussi:" please_login: Veuillez vous connecter pour utiliser Tracks + cas_logged_in_greeting: "Bonjour, %{username}! Vous \xC3\xAAtes authentifi\xC3\xA9." cas_username_not_found: "D\xC3\xA9sol\xC3\xA9, aucun utilisateur avec ce nom CAS n'existe (%{username})" mobile_use_openid: ... ou ce connecter avec un OpenID cas_create_account: "Si vous voulez vous inscrire aller \xC3\xA0 %{signup_link}" - cas_signup_link: Demander un compte account_login: Identifiant du compte + cas_signup_link: Demander un compte session_will_not_expire: la session n'expire jamais. successful: "La connexion \xC3\xA0 r\xC3\xA9ussi. Bienvenue !" option_separator: ou, @@ -891,6 +894,53 @@ fr: login_with_openid: se connecter avec un OpenID unsuccessful: "La connexion \xC3\xA0 \xC3\xA9chou\xC3\xA9." log_in_again: Se reconnecter + datetime: + prompts: + minute: Minute + second: Secondes + month: Mois + hour: Heure + day: Jour + year: !binary | + QW5uw6ll + + distance_in_words: + less_than_x_minutes: + one: moins d'une minute + other: moins de %{count} minutes + zero: Moins de 1 minute + x_days: + one: 1 jour + other: "%{count} jours" + almost_x_years: + one: presque 1 an + other: presque %{count} ans + x_seconds: + one: 1 seconde + other: "%{count} secondes" + about_x_hours: + one: environ 1 heure + other: environ %{count} heures + less_than_x_seconds: + one: moins d'1 seconde + other: moins de %{count} secondes + zero: Moins de 1 seconde + x_months: + one: 1 mois + other: "%{count} mois" + x_minutes: + one: 1 minute + other: "%{count} minutes" + about_x_years: + one: environ 1 an + other: environ %{count} ans + about_x_months: + one: environ 1 mois + other: environ %{count} mois + over_x_years: + one: plus d'1 an + other: plus de %{count} ans + half_a_minute: une demi-minute search: contexts_matching_query: "Contextes correspondant \xC3\xA0 la requ\xC3\xAAte" tags_matching_query: "Tags correspondant \xC3\xA0 la requ\xC3\xAAte" diff --git a/config/locales/nl.yml b/config/locales/nl.yml index c6f4ef18..3525ad3f 100644 --- a/config/locales/nl.yml +++ b/config/locales/nl.yml @@ -3,19 +3,19 @@ nl: layouts: toggle_notes: Toggle notities next_actions_rss_feed: RSS-feed van de acties + toggle_notes_title: Toggle alle notities mobile_navigation: + new_action: 0-Nieuwe actie logout: Afmelden feeds: Feeds - new_action: 0-Nieuwe actie starred: 4-Ster projects: 3-Projecten tickler: Tickler contexts: 2-Contexten home: 1-Start - toggle_notes_title: Toggle alle notities navigation: - recurring_todos: Terugkerende acties manage_users_title: Toevoegen of verwijderen gebruikers + recurring_todos: Terugkerende acties api_docs: REST API Docs feeds: Feeds starred: Ster @@ -28,22 +28,28 @@ nl: integrations_: Integreer Tracks feeds_title: Zie een lijst met beschikbare feeds calendar_title: Kalender met acties met deadline - stats_title: Zie je statistieken + completed_tasks: Gereed tickler: Tickler + stats_title: Zie je statistieken home_title: Start starred_title: Zie je ster acties recurring_todos_title: Beheren terugkerende acties - completed_tasks: Gereed - organize: Organiseer view: Bekijk + organize: Organiseer completed_tasks_title: Afgerond home: Start export: Export contexts_title: Contexten calendar: Agenda projects_title: Projecten - search: Zoeken in alle items preferences_title: Toon mijn voorkeuren + search: Zoeken in alle items + integrations: + opensearch_description: Zoek in Tracks + applescript_next_action_prompt: "Omschrijving van de actie:" + gmail_description: Gadget om Tracks toe te voegen aan Gmail als een gadget + applescript_success_after_id: gemaakt + applescript_success_before_id: Nieuwe actie met ID number: format: separator: "," @@ -67,12 +73,6 @@ nl: separator: "," delimiter: . - integrations: - opensearch_description: Zoek in Tracks - applescript_next_action_prompt: "Omschrijving van de actie:" - gmail_description: Gadget om Tracks toe te voegen aan Gmail als een gadget - applescript_success_after_id: gemaakt - applescript_success_before_id: Nieuwe actie met ID common: back: Terug third: Derde @@ -82,65 +82,68 @@ nl: previous: Vorige logout: Log uit go_back: Ga terug - cancel: Annuleer + optional: optioneel week: week + cancel: Annuleer none: Geen second: Tweede - optional: optioneel month: maand - notes: Notities - forum: Forum server_error: Een fout heeft op de server plaatsgevonden + forum: Forum + notes: Notities last: Laatste projects: Projecten action: Actie project: Project - contribute: Bijdragen ok: Ok + contribute: Bijdragen website: Website - first: Eerste numbered_step: Stap %{number} + first: Eerste sort: by_task_count_title: Sorteer op aantal acties by_task_count_title_confirm: Weet u zeker dat u deze op aantal acties wilt sorteren? Dat zal de huidige sorteervolgorde aanpassen. alphabetically: Alfabetisch alphabetically_confirm: Weet u zeker dat u deze projecten alfabetisch wilt sorteren? Dat zal de huidige sorteervolgorde aanpassen. - sort: Sorteer alphabetically_title: Sorteer projecten alfabetisch + sort: Sorteer by_task_count: Op aantal acties fourth: Vierde create: Maken - months: maanden - context: Context contexts: Contexten - todo: actie - next: Volgende - description: Beschrijving + months: maanden errors_with_fields: Er waren problemen met de volgende velden + next: Volgende + todo: actie + context: Context drag_handle: SLEEP - update: Bijwerken + description: Beschrijving bugs: Fouten - weeks: weken + update: Bijwerken forth: Vierde + weeks: weken wiki: Wiki + email: E-mail search: Zoeken ajaxError: Er is een fout opgetreden bij het ophalen van gegevens van de server - email: E-mail + data: + import_successful: De import was succesvol + import_errors: Er hebben zich fouten voorgedaan bij de import models: project: feed_title: Tracks Projecten feed_description: Een overzicht van alle projecten voor %{username} todo: error_date_must_be_future: moet een datum in de toekomst zijn + user: + error_context_not_associated: Context %{context} niet geassocieerd met gebruikers %{user}. + error_project_not_associated: Project %{project} niet geassocieerd met gebruikers %{user}. preference: due_on: Deadline op %{date} due_in: Deadline over %{days} dagen due_styles: - Deadline over ____ dagen - Deadline op ____ - user: - error_context_not_associated: Context %{context} niet geassocieerd met gebruikers %{user}. - error_project_not_associated: Project %{project} niet geassocieerd met gebruikers %{user}. activerecord: attributes: project: @@ -149,35 +152,58 @@ nl: default_context_name: Standaard context description: Beschrijving todo: - show_from: Tonen vanaf predecessors: Afhankelijkheden + show_from: Tonen vanaf notes: Notities project: Project context: Context description: Beschrijving due: Deadline + user: + last_name: Achternaam + first_name: Voornaam preference: show_hidden_projects_in_sidebar: Toon verborgen projecten in sidebar date_format: Datum formaat show_hidden_contexts_in_sidebar: Toon verborgen contexten in sidebar mobile_todos_per_page: Acties per pagina (mobiel) verbose_action_descriptors: Context en project uitschrijven in actielijst - sms_context: Standaard context voor email staleness_starts: Begin van markeren openstaande actie + sms_context: Standaard context voor email title_date_format: Datum formaat in titel show_number_completed: Aantal te tonen afgeronde acties refresh: Ververs interval (in minuten) week_starts: Week start op - time_zone: Tijdzone - due_style: Deadline stijl - locale: Taal - sms_email: Van email - show_project_on_todo_done: Ga naar project pagina wanneer actie gereed is - show_completed_projects_in_sidebar: Toon afgeronde projecten in sidebar - user: last_name: Achternaam + locale: Taal + due_style: Deadline stijl + time_zone: Tijdzone + show_project_on_todo_done: Ga naar project pagina wanneer actie gereed is + sms_email: Van email first_name: Voornaam + show_completed_projects_in_sidebar: Toon afgeronde projecten in sidebar errors: + messages: + greater_than_or_equal_to: moet groter of gelijk zijn aan %{count} + record_invalid: "Validatie mislukt: %{errors}" + confirmation: komt niet overeen met de configuratie + less_than_or_equal_to: moet kleiner of gelijk zijn aan %{count} + blank: mag niet leeg zijn + invalid: mag niet een komma (',') karakter bevatten + exclusion: is gereserveerd + odd: moet oneven zijn + even: moet even zijn + too_short: is te kort (minimum is %{count} karakters) + empty: mag niet leeg zijn + wrong_length: heeft de verkeerde lengte (moet %{count} karakters lang zijn) + less_than: moet kleiner zijn dan %{count} + greater_than: moet groter zijn dan %{count} + equal_to: moet gelijk zijn aan %{count} + accepted: moet geaccepteerd worden + too_long: is te lang (maximum is %{count} karakters) + taken: is al gepakt + inclusion: is niet opgenomen in de lijst + not_a_number: is niet een getal models: project: attributes: @@ -185,27 +211,6 @@ nl: blank: project moet een naam hebben too_long: project naam moet minder dan 256 karakters hebben taken: bestaat al - messages: - record_invalid: "Validatie mislukt: %{errors}" - greater_than_or_equal_to: moet groter of gelijk zijn aan %{count} - confirmation: komt niet overeen met de configuratie - less_than_or_equal_to: moet kleiner of gelijk zijn aan %{count} - blank: mag niet leeg zijn - invalid: mag niet een komma (',') karakter bevatten - exclusion: is gereserveerd - odd: moet oneven zijn - too_short: is te kort (minimum is %{count} karakters) - wrong_length: heeft de verkeerde lengte (moet %{count} karakters lang zijn) - empty: mag niet leeg zijn - even: moet even zijn - less_than: moet kleiner zijn dan %{count} - greater_than: moet groter zijn dan %{count} - equal_to: moet gelijk zijn aan %{count} - accepted: moet geaccepteerd worden - too_long: is te lang (maximum is %{count} karakters) - taken: is al gepakt - not_a_number: is niet een getal - inclusion: is niet opgenomen in de lijst full_messages: format: "%{attribute} %{message}" template: @@ -213,24 +218,22 @@ nl: header: one: 1 fout voorkomt het kunnen bewaren van deze %{model} other: "%{count} fouten voorkomen dat dit %{model} bewaard kan worden" - data: - import_successful: De import was succesvol - import_errors: Er hebben zich fouten voorgedaan bij de import stats: - totals_active_project_count: Van deze zijn %{count} actieve projecten tag_cloud_title: Tag Cloud voor alle acties - actions: Acties tag_cloud_description: Deze tag cloud bevat tags van alle acties (afgerond, niet voltooid, zichtbaar en / of verborgen) tag_cloud_90days_title: Tag cloud met acties in afgelopen 90 dagen + actions: Acties + totals_active_project_count: Van deze zijn %{count} actieve projecten actions_last_year_legend: number_of_actions: Aantal acties months_ago: Maanden geleden totals_first_action: Sinds uw eerste actie op %{date} actions_avg_completion_time: Van al uw afgeronde acties, de gemiddelde tijd dat dit in beslag nam is %{count} dagen. - totals_action_count: u heeft een totaal van %{count} acties + top10_longrunning: Top 10 langstlopende projecten + actions_dow_30days_title: Dag van de week (laatste 30 dagen) legend: - number_of_days: Aantal dagen geleden actions: Acties + number_of_days: Aantal dagen geleden number_of_actions: Aantal acties day_of_week: Dag van de week percentage: Percentage @@ -242,54 +245,53 @@ nl: actions: Acties percentage: Percentage weeks: Looptijd van een actie (weken). Klik op een balk voor meer info - top10_longrunning: Top 10 langstlopende projecten - actions_dow_30days_title: Dag van de week (laatste 30 dagen) - actions_lastyear_title: Acties in de afgelopen 12 maanden - totals_actions_completed: "%{count} van deze zijn voltooid." + totals_action_count: u heeft een totaal van %{count} acties totals_incomplete_actions: U heeft %{count} onvolledige acties totals_unique_tags: Van deze tags zijn %{count} uniek. actions_avg_completed_30days: en voltooide een gemiddelde van %{count} acties per dag. top5_contexts: Top 5 contexten - action_completion_time_title: Doorlooptijd (alle voltooide acties) - actions_last_year: Acties in de afgelopen jaren + actions_lastyear_title: Acties in de afgelopen 12 maanden + totals_actions_completed: "%{count} van deze zijn voltooid." totals_context_count: U heeft %{count} contexten. - projects: Projecten totals_visible_context_count: Van deze zijn %{count} zichtbare contexten totals_blocked_actions: "%{count} zijn afhankelijk van de voltooiing van hun acties." - actions_day_of_week_title: Dag van de week (alle acties) - totals_project_count: U heeft %{count} projecten. + projects: Projecten + action_completion_time_title: Doorlooptijd (alle voltooide acties) + actions_last_year: Acties in de afgelopen jaren actions_min_max_completion_days: De max-/minimum dagen tot voltooiing is %{min}/%{max}. + tags: Tags actions_min_completion_time: De minimale tijd tot afronding is %{time}. no_tags_available: geen tags beschikbaar - tags: Tags + actions_day_of_week_title: Dag van de week (alle acties) + totals_project_count: U heeft %{count} projecten. running_time_all: Huidige looptijd van alle onvolledige acties - tag_cloud_90days_description: Deze tag cloud bevat tags van acties die zijn gemaakt of voltooid in de afgelopen 90 dagen. actions_30days_title: Acties in de afgelopen 30 dagen - top5_visible_contexts_with_incomplete_actions: Top 5 zichtbare contexten met onvolledige acties time_of_day: Tijd van de dag (alle acties) totals_hidden_project_count: "%{count} zijn verborgen" - actions_further: en verder tod30: Tijd van de dag (laatste 30 dagen) - totals_tag_count: U heeft %{count} tags geplaatst op acties. + tag_cloud_90days_description: Deze tag cloud bevat tags van acties die zijn gemaakt of voltooid in de afgelopen 90 dagen. more_stats_will_appear: Meer statistieken zullen hier verschijnen zodra u acties hebt toegevoegd. - click_to_return: Klik %{link} om terug te keren naar de statistieken pagina. - other_actions_label: (anderen) + top5_visible_contexts_with_incomplete_actions: Top 5 zichtbare contexten met onvolledige acties + actions_further: en verder + totals_tag_count: U heeft %{count} tags geplaatst op acties. top10_projects_30days: Top 10 project in de laatste 30 dagen - top10_projects: Top 10 projecten spread_of_running_actions_for_visible_contexts: Verdeling van actieve acties voor zichtbare contexten - actions_avg_created: In de afgelopen 12 maanden heeft u gemiddeld%{count} acties aangemaakt actions_selected_from_week: Gekozen acties van week spread_of_actions_for_all_context: Verdeling van acties voor alle contexten - totals_completed_project_count: en %{count} zijn afgeronde projecten. click_to_show_actions_from_week: Klik %{link} om de acties van week %{week} en verder te zien. + other_actions_label: (anderen) + top10_projects: Top 10 projecten + totals_completed_project_count: en %{count} zijn afgeronde projecten. + actions_avg_created: In de afgelopen 12 maanden heeft u gemiddeld%{count} acties aangemaakt + click_to_return: Klik %{link} om terug te keren naar de statistieken pagina. + actions_avg_completed: en voltooide een gemiddelde van %{count} acties per maand. totals: Totalen time_of_day_legend: number_of_actions: Aantal acties time_of_day: Tijd van de dag - click_to_return_link: hier contexts: Contexten + click_to_return_link: hier totals_hidden_context_count: en %{count} zijn verborgen contexten. - actions_avg_completed: en voltooide een gemiddelde van %{count} acties per maand. labels: month_avg_completed: "%{months} gem afgerond per maand" completed: Afgerond @@ -297,22 +299,22 @@ nl: avg_created: Gem gemaakt avg_completed: Gem afgerond created: Gemaakt - no_actions_selected: Er zijn geen acties geselecteerd. - click_to_update_actions: Klik op een balk in de grafiek op de acties hieronder aan te passen. running_time_all_legend: actions: Acties percentage: Percentage running_time: Looptijd van een actie (weken). Klik op een balk voor meer info + click_to_update_actions: Klik op een balk in de grafiek op de acties hieronder aan te passen. + no_actions_selected: Er zijn geen acties geselecteerd. actions_actions_avg_created_30days: In de afgelopen 30 dagen heeft u gemiddeld %{count} acties gemaakt tod30_legend: number_of_actions: Aantal acties time_of_day: Tijd van de dag action_selection_title: "TRACKS:: Actie selectie" todos: - completed_actions: Voltooide acties show_from: Toon vanaf - error_starring_recurring: Kon niet de ster van deze terugkerende actie niet omgezetten \'%{description}\' + error_starring_recurring: Kon niet de ster van deze terugkerende actie niet omzetten \'%{description}\' recurring_action_deleted: Actie werd verwijderd. Omdat deze actie herhalend is. werd een nieuwe actie toegevoegd + completed_actions: Voltooide acties completed_recurring: Afgesloten terugkerende todos added_new_next_action: Nieuwe actie toegevoegd completed_rest_of_previous_month: Afgerond in de rest van de vorige maand @@ -326,18 +328,18 @@ nl: tagged_with: gelabeld met ‘%{tag_name}’ completed: Afgerond no_deferred_actions_with: Geen uitgestelde acties met de tag '%{tag_name}' - no_hidden_actions: Momenteel zijn er geen verborgen acties gevonden edit_action_with_description: Bewerk de actie '%{description}' + no_hidden_actions: Momenteel zijn er geen verborgen acties gevonden action_due_on: (deadline actie op %{date}) + remove_dependency: Verwijder afhankelijkheid (zal niet de actie zelf verwijderen) + archived_tasks_title: "TRACKS:: Gearchiveerde voltooide taken" + list_incomplete_next_actions: Toon onvoltooide acties tags: Tags (gescheiden door komma's) action_deleted_success: Actie succesvol verwijderd - archived_tasks_title: "TRACKS:: Gearchiveerde voltooide taken" - remove_dependency: Verwijder afhankelijkheid (zal niet de actie zelf verwijderen) - list_incomplete_next_actions: Toon onvoltooide acties - mobile_todos_page_title: Alle acties new_related_todo_created: Een nieuwe actie is toegevoegd, die behoort bij deze terugkerende todo context_changed: Context veranderd in '%{name}' add_another_dependency: Nog een afhankelijkheid toevoegen + mobile_todos_page_title: Alle acties delete_recurring_action_title: Verwijder de terugkerende actie removed_predecessor: "'%{successor}' is verwijderd als afhankelijkheid van '%{predecessor}'." recurring_actions_title: TRACKS::Terugkerende acties @@ -348,43 +350,43 @@ nl: edit_action: Actie bewerken added_new_context: Nieuwe context toegevoegd next_actions_description: "Filter:" + list_incomplete_next_actions_with_limit: Toont de laatste %{count} onvoltooide acties + set_to_pending: "'%{task}' als wachtend ingesteld" + added_new_project: Nieuw project toegevoegd next_actions_title_additions: completed: acties voltooid due_today: deadline vandaag due_within_a_week: deadline binnen een week - added_new_project: Nieuw project toegevoegd - list_incomplete_next_actions_with_limit: Toont de laatste %{count} onvoltooide acties - set_to_pending: "'%{task}' als wachtend ingesteld" older_completed_items: Oudere voltooide items append_in_this_project: in dit project error_deleting_item: Er is een fout opgetreden bij het verwijderen van het item '%{description}' task_list_title: TRACKS::Toon acties no_actions_due_this_week: Geen acties met deadline in rest van deze week + no_deferred_pending_actions: Momenteel zijn er geen uitgestelde of wachtende acties no_recurring_todos: Momenteel zijn er geen terugkerende acties error_completing_todo: Er was een fout bij het voltooien / activeren van de terugkerende actie '%{description}' recurring_pattern_removed: Het herhalingspatroon is verwijderd van %{count} convert_to_project: Maak project - no_deferred_pending_actions: Momenteel zijn er geen uitgestelde of wachtende acties delete_recurring_action_confirm: Weet u zeker dat u wilt de terugkerende actie '%{description}' wilt verwijderen? completed_last_day: Voltooid in de laatste 24 uur - all_completed: Alle afgeronde acties - error_saving_recurring: Er is een fout opgetreden het opslaan van de terugkerende actie '%{description}' + completed_more_than_x_days_ago: Voltooid meer dan %{count} dagen geleden show_in_days: Toon over %{days} dagen no_project: -- Geen project -- - completed_more_than_x_days_ago: Voltooid meer dan %{count} dagen geleden - feed_title_in_context: in context '%{context}' + error_saving_recurring: Er is een fout opgetreden het opslaan van de terugkerende actie '%{description}' new_related_todo_created_short: een nieuwe actie gemaakt - completed_tagged_page_title: "TRACKS:: Afgeronde acties met tag %{tag_name}" + all_completed: Alle afgeronde acties + feed_title_in_context: in context '%{context}' older_than_days: Ouder dan %{count} dagen + completed_tagged_page_title: "TRACKS:: Afgeronde acties met tag %{tag_name}" edit: Bewerken pending: Wachtend completed_actions_with: Afgeronde acties met de tag %{tag_name} - completed_tasks_title: TRACKS::Voltooide taken deleted_success: De actie werd met succes verwijderd. + completed_tasks_title: TRACKS::Voltooide taken feed_title_in_project: In het project '%{project}' clear_due_date: Maak deadline leeg - error_removing_dependency: Er is een fout opgetreden het verwijderen van de afhankelijke actie hidden_actions: Verborgen acties + error_removing_dependency: Er is een fout opgetreden het verwijderen van de afhankelijke actie was_due_on_date: had deadline op %{date} show_on_date: Toon op %{date} recurrence_period: Herhaling periode @@ -403,8 +405,8 @@ nl: no_actions_found_title: Geen acties gevonden next_actions_due_date: overdue_by: Over deadline met %{days} dag - due_in_x_days: Deadline over %{days} dagen due_today: Deadline vandaag + due_in_x_days: Deadline over %{days} dagen overdue_by_plural: Over deadline met %{days} dagen due_tomorrow: Deadline morgen completed_last_x_days: Voltooid in de laatste %{count} dagen @@ -421,9 +423,9 @@ nl: has_x_pending: one: Heeft een wachtende actie other: Heeft %{count} wachtende acties - recurring_todos: Terugkerende acties delete_action: Verwijder actie error_deleting_recurring: Er is een fout opgetreden bij het verwijderen van het item \'%{description}\' + recurring_todos: Terugkerende acties cannot_add_dependency_to_completed_todo: Kan deze actie niet als een afhankelijkheid van een voltooide actie toevoegen! delete: Verwijder drag_action_title: Sleep naar een andere actie om deze afhankelijk te maken van die actie @@ -441,15 +443,17 @@ nl: calendar: get_in_ical_format: Ontvang deze agenda in iCal-formaat due_next_week: Deadline volgende week - due_this_week: Deadline in rest van deze week no_actions_due_next_week: Geen acties met deadline in volgende week - no_actions_due_today: Geen acties met deadline vandaag + due_this_week: Deadline in rest van deze week due_today: Deadline vandaag + no_actions_due_today: Geen acties met deadline vandaag due_next_month_and_later: Deadline in %{month} en later no_actions_due_after_this_month: Geen acties met deadline na deze maand due_this_month: Deadline in rest van %{month} no_actions_due_this_month: Geen acties met deadline in de rest van deze maand show_tomorrow: Toon morgen + tagged_page_title: TRACKS::Tagged met '%{tag_name}' + action_deferred: De actie '%{description}' is uitgesteld recurrence: ends_on_number_times: Eindigt na %{number} keer ends_on_date: Eindigt op %{date} @@ -458,13 +462,10 @@ nl: weekly_options: Instellingen voor de wekelijkse terugkerende acties weekly: Wekelijks monthly_options: Instellingen voor maandelijks terugkerende acties + starts_on: Begint op daily_options: Instellingen voor dagelijks terugkerende acties monthly: Maandelijks - starts_on: Begint op - show_option_always: altijd - daily: Dagelijks pattern: - third: derde month_names: - - januari @@ -479,19 +480,20 @@ nl: - oktober - november - december + third: derde every_n: elke %{n} - every_xth_day_of_every_n_months: elke %{x} %{day} van elke %{n_months} - second: tweede on_day_n: op dag %{n} - weekly: wekelijks + second: tweede + every_xth_day_of_every_n_months: elke %{x} %{day} van elke %{n_months} from: vanaf + weekly: wekelijks last: laatste every_day: elke dag the_xth_day_of_month: de %{x} %{day} van %{month} times: voor %{number} keer on_work_days: op werkdagen + every_year_on: elk jaar op %{date} first: eerste - show: Tonen day_names: - zondag - maandag @@ -500,41 +502,41 @@ nl: - donderdag - vrijdag - zaterdag - every_year_on: elk jaar op %{date} + show: Tonen fourth: vierde due: Deadline until: tot every_month: elke maand + show_option_always: altijd + daily: Dagelijks yearly_every_x_day: Elke %{month} %{day} recurrence_on_options: Stel herhaling in op daily_every_number_day: Elke %{number} dag(en) + show_options: Toon de actie weekly_every_number_week: Herhaalt elke %{number} weken op ends_on: Eindigt op - show_options: Toon de actie show_days_before: "%{days} dagen v\xC3\xB3\xC3\xB3r de deadline van actie" from_tickler: de datum dat de actie uit de tickler komt (geen deadline ingesteld) no_end_date: Geen einddatum day_x_on_every_x_month: Dag %{day} op elke %{month} maand - yearly_every_xth_day: De %{day} %{day_of_week} van %{month} yearly_options: Instellingen voor jaarlijks terugkerende acties - yearly: Jaarlijks + yearly_every_xth_day: De %{day} %{day_of_week} van %{month} monthly_every_xth_day: De %{day} %{day_of_week} van elke %{month} maand - action_deferred: De actie '%{description}' is uitgesteld - tagged_page_title: TRACKS::Tagged met '%{tag_name}' + yearly: Jaarlijks no_completed_recurring: Momenteel zijn er geen voltooide terugkerende acties added_dependency: "%{dependency} als afhankelijkheid toegevoegd." - completed_rest_of_month: Afgerond in de rest van deze maand no_deferred_actions: Momenteel zijn er geen uitgestelde acties. all_completed_tagged_page_title: "TRACKS:: Alle afgeronde acties met tag %{tag_name}" + completed_rest_of_month: Afgerond in de rest van deze maand recurrence_completed: Er is geen volgende actie na de terugkerende actie die u zojuist hebt voltooid. De herhaling is voltooid - due: Deadline + error_toggle_complete: Kon deze actie niet als afgerond markeren no_actions_found: Momenteel zijn er geen onafgeronde acties. in_pending_state: in wachtende toestand - error_toggle_complete: Kon deze actie niet als afgerond markeren + due: Deadline action_marked_complete_error: De actie '%{description}' is niet gemarkeerd als %{completed} vanwege een fout op de server. recurring_action_saved: Terugkerende actie opgeslagen - depends_on_separate_with_commas: Afhankelijk van (gescheiden door komma's) action_saved_to_tickler: Actie opgeslagen in tickler + depends_on_separate_with_commas: Afhankelijk van (gescheiden door komma's) completed_in_archive: one: Er is een voltooide actie in het archief. other: Er zijn %{count} afgeronde acties in het archief. @@ -549,9 +551,9 @@ nl: delete_confirmation: Weet u zeker dat u de notitie '%{id}' wilt verwijderen? delete_item_title: Verwijder item delete_note_title: Verwijder de notitie '%{id}' - deleted_note: Verwijder notitie '%{id}' note_link_title: Toon notitie %{id} show_note_title: Toon notitie + deleted_note: Verwijder notitie '%{id}' edit_item_title: Item bewerken note_location_link: "In:" no_notes_available: "Momenteel zijn er geen notities: voeg notities toe aan projecten vanaf de individuele project pagina's." @@ -562,10 +564,64 @@ nl: completed: Afgerond completed_plural: Afgeronde visible_plural: Zichtbare - active_plural: Actieve visible: Zichtbaar - hidden: Verborgen + active_plural: Actieve active: Actief + hidden: Verborgen + projects: + was_marked_hidden: is gemarkeerd als verborgen + edit_project_title: Bewerk project + default_tags_removed_notice: De standaard tags zijn verwijderd + default_context_set: Stel project standaard context in op %{default_context} + no_actions_in_project: Momenteel zijn er geen onafgeronde acties in dit project + deferred_actions: Uitgestelde acties voor dit project + all_completed_tasks_title: TRACKS::Toon alle afgeronde acties in het project '{project_name}' + page_title: "TRACKS:: Project: %{project}" + hide_form: Verberg formulier + show_form_title: Maak een nieuw project + list_completed_projects: TRACKS::Toon afgeronde projecten + to_new_project_page: Ga naar de nieuwe projectpagina + no_notes_attached: Momenteel zijn er geen notities toegevoegd aan dit project + deferred_actions_empty: Er zijn geen uitgestelde acties voor dit project + this_project: Dit project + project_state: Project is %{state}. + todos_append: in dit project + no_last_completed_projects: Geen afgeronde projecten gevonden + notes: Notities + no_last_completed_recurring_todos: Geen afgeronde herhalende acties gevonden + notes_empty: Er zijn geen notities voor dit project + no_projects: Momenteel zijn er geen projecten + hide_form_title: Verberg nieuw project formulier + with_no_default_context: zonder standaard context + delete_project: Project verwijderen + completed_actions_empty: Er zijn nog geen afgeronde acties voor dit project + show_form: Toevoegen van een project + actions_in_project_title: Acties in dit project + delete_project_confirmation: Weet u zeker dat u wilt het project '%{name} wilt verwijderen? + with_default_context: met een standaard context '%{context_name}' + set_default_tags_notice: Stel project standaard tags in op %{default_tags} + is_active: is actief + settings: Instellingen + completed_projects: Voltooide projecten + with_default_tags: en met '%{tags}' als de standaard tags + list_projects: "TRACKS:: Overzicht van projecten" + project_saved_status: Project opgeslagen + add_project: Voeg project toe + add_note: Een notitie toevoegen + completed_tasks_title: TRACKS::Toon afgeronde acties in het project '%{project_name}' + delete_project_title: Verwijder het project + hidden_projects: Verborgen projecten + add_note_submit: Notitie toevoegen + was_marked_complete: is gemarkeerd als voltooid + completed_actions: Afgeronde acties voor dit project + default_context_removed: Standaard context verwijderd + default_context: De standaard context voor dit project is %{context} + status_project_name_changed: Naam van het project werd gewijzigd + active_projects: Actieve projecten + no_default_context: Dit project heeft geen standaard context + with_no_default_tags: en zonder standaard tags + edit_project_settings: Bewerk project instellingen + state: Dit project is %{state} time: am: ochtend formats: @@ -575,65 +631,10 @@ nl: month_day: "%d %B" long: "%A, %d. %B %Y, %H:%M" pm: middag - projects: - edit_project_title: Bewerk project - default_tags_removed_notice: De standaard tags zijn verwijderd - default_context_set: Stel project standaard context in op %{default_context} - no_actions_in_project: Momenteel zijn er geen onafgeronde acties in dit project - deferred_actions: Uitgestelde acties voor dit project - was_marked_hidden: is gemarkeerd als verborgen - all_completed_tasks_title: TRACKS::Toon alle afgeronde acties in het project '{project_name}' - page_title: "TRACKS:: Project: %{project}" - hide_form: Verberg formulier - show_form_title: Maak een nieuw project - list_completed_projects: TRACKS::Toon afgeronde projecten - to_new_project_page: Ga naar de nieuwe projectpagina - no_notes_attached: Momenteel zijn er geen notities toegevoegd aan dit project - this_project: Dit project - deferred_actions_empty: Er zijn geen uitgestelde acties voor dit project - project_state: Project is %{state}. - no_last_completed_projects: Geen afgeronde projecten gevonden - todos_append: in dit project - notes: Notities - notes_empty: Er zijn geen notities voor dit project - no_projects: Momenteel zijn er geen projecten - hide_form_title: Verberg nieuw project formulier - with_no_default_context: zonder standaard context - delete_project: Project verwijderen - completed_actions_empty: Er zijn nog geen afgeronde acties voor dit project - delete_project_confirmation: Weet u zeker dat u wilt het project '%{name} wilt verwijderen? - with_default_context: met een standaard context '%{context_name}' - show_form: Toevoegen van een project - actions_in_project_title: Acties in dit project - add_project: Voeg project toe - with_default_tags: en met '%{tags}' als de standaard tags - add_note: Een notitie toevoegen - list_projects: "TRACKS:: Overzicht van projecten" - set_default_tags_notice: Stel project standaard tags in op %{default_tags} - is_active: is actief - settings: Instellingen - project_saved_status: Project opgeslagen - completed_projects: Voltooide projecten - completed_tasks_title: TRACKS::Toon afgeronde acties in het project '%{project_name}' - delete_project_title: Verwijder het project - hidden_projects: Verborgen projecten - add_note_submit: Notitie toevoegen - was_marked_complete: is gemarkeerd als voltooid - completed_actions: Afgeronde acties voor dit project - default_context_removed: Standaard context verwijderd - edit_project_settings: Bewerk project instellingen - active_projects: Actieve projecten - default_context: De standaard context voor dit project is %{context} - status_project_name_changed: Naam van het project werd gewijzigd - no_default_context: Dit project heeft geen standaard context - with_no_default_tags: en zonder standaard tags - state: Dit project is %{state} - errors: - user_unauthorized: "401 Unauthorized: Alleen administratieve gebruikers mogen deze functie gebruiken." preferences: - change_identity_url: Verander uw Identity URL open_id_url: Uw OpenID URL is staleness_starts_after: Markeren openstaande acties begint na %{days} dagen + change_identity_url: Verander uw Identity URL change_password: Wijzig uw wachtwoord page_title: "TRACKS:: Voorkeuren" title: Uw voorkeuren @@ -650,6 +651,13 @@ nl: current_authentication_type: Uw authenticatietype is %{auth_type} change_authentication_type: Verander uw authenticatietype generate_new_token_confirm: Weet u dit zeker? Het genereren van een nieuw token zal de bestaande te vervangen en dit zal het extern gebruiken van de oude token laten mislukken. + tabs: + authentication: Authenticatie + tracks_behavior: Tracks gedrag + profile: Profiel + date_and_time: Datum en tijd + errors: + user_unauthorized: "401 Unauthorized: Alleen administratieve gebruikers mogen deze functie gebruiken." date: month_names: - @@ -665,10 +673,6 @@ nl: - Oktober - November - December - order: - - :day - - :month - - :year abbr_day_names: - Zo - Ma @@ -677,6 +681,10 @@ nl: - Do - Vr - Za + order: + - :day + - :month + - :year formats: only_day: "%e" default: "%d-%m-%Y" @@ -707,13 +715,11 @@ nl: - Dec support: array: - last_word_connector: ", en" words_connector: "," + last_word_connector: ", en" two_words_connector: en select: prompt: Selecteer - footer: - send_feedback: Stuur reactie op %{version} dates: month_names: - Januari @@ -736,20 +742,89 @@ nl: - Donderdag - Vrijdag - Zaterdag + footer: + send_feedback: Stuur reactie op %{version} shared: multiple_next_actions: Meerdere acties (een op elke regel) - toggle_single: Voeg een actie toe hide_form: Verberg formulier + toggle_single: Voeg een actie toe add_action: Actie toevoegen add_actions: Toevoegen acties tags_for_all_actions: Tags voor alle acties (scheiden met een komma) + toggle_single_title: Voeg een nieuwe actie toe project_for_all_actions: Project voor alle acties context_for_all_actions: Context voor alle acties toggle_multi: Voeg meerdere acties toe - toggle_single_title: Voeg een nieuwe actie toe separate_tags_with_commas: gescheiden door komma's toggle_multi_title: Toggle single / multi actie formulier hide_action_form_title: Verberg nieuwe actie formulier + feedlist: + choose_context: Kies de context waar je een feed van wilt + actions_due_today: Acties die vandaag of eerder af moeten + rss_feed: RSS Feed + ical_feed: iCal feed + legend: Legenda + all_contexts: Alle contexten + all_projects: Alle projecten + choose_project: Kies het project waar je een feed van wilt + select_feed_for_project: Kies de feed voor dit project + active_projects_wo_next: Actieve projecten zonder acties + project_needed: "Er moet ten minste \xC3\xA9\xC3\xA9n project zijn voor een feed opgevraagd kan worden" + active_starred_actions: Alle gesterde, actieve acties + select_feed_for_context: Kies de feed voor deze context + projects_and_actions: Actieve projecten met hun acties + context_needed: "Er moet eerst ten minste \xC3\xA9\xC3\xA9n context zijn voor je een feed kan opvragen" + actions_due_next_week: Acties die binnen 7 dagen afgerond moeten + notice_incomplete_only: "Merk op: alle feeds laten alleen acties zien die niet afgerond zijn, tenzij anders vermeld." + all_actions: Alle acties + actions_completed_last_week: Acties afgerond in de afgelopen 7 dagen + context_centric_actions: Feeds voor onafgeronde acties in een specifieke context + plain_text_feed: Reguliere tekst feed + last_fixed_number: Laatste %{number} acties + project_centric: Feeds voor onafgeronde acties in een specifiek project + users: + successfully_deleted_user: Succesvol gebruiker %{username} verwijderd + failed_to_delete_user: Mislukt de gebruiker %{username} te verwijderen + total_contexts: Totaal aantal contexten + first_user_heading: "Welkom bij TRACKS. Om te beginnen, maak dan een admin account:" + openid_url_verified: Je hebt %{url} met succes geverifieerd als je identiteit en uw authenticatie type OpenID opgeslagen. + auth_type_update_error: "Er was een probleem met het bijwerken van uw authenticatietype: %{error_messages}" + destroy_successful: Gebruiker %{login} met succes verwijderd + new_token_generated: Nieuwe token met succes gegenereerd + total_projects: Totaal aantal projecten + signup_successful: Aanmelding succesvol voor gebruiker %{username}. + change_password_submit: Wachtwoord wijzigen + no_signups_title: "TRACKS:: Geen nieuwe aanmeldingen" + user_created: Gebruiker aangemaakt. + manage_users: Beheren gebruikers + account_signup: Aanmelden voor een account + password_updated: Wachtwoord bijgewerkt. + desired_login: Gewenste login + signup: Aanmelden + confirm_password: Bevestig wachtwoord + new_user_heading: "Registreer een nieuwe gebruiker:" + auth_type_updated: Authenticatietype bijgewerkt. + total_actions: Totaal aanal acties + change_password_title: TRACKS::Wachtwoord wijzigen + change_auth_type_title: TRACKS::Wijzig authenticatietype + change_password_prompt: Voer uw nieuwe wachtwoord in de onderstaande velden in en kies 'Wachtwoord wijzigen' om uw huidige wachtwoord met uw nieuwe te vervangen. + password_confirmation_label: Bevestig wachtwoord + destroy_error: Er is een fout opgetreden bij het verwijderen van de gebruiker '%{login}' + choose_password: Kies een wachtwoord + register_with_cas: Met uw CAS gebruikersnaam + label_auth_type: Authenticatietype + new_password_label: Nieuw wachtwoord + new_user_title: "TRACKS:: Aanmelden als de admin gebruiker" + destroy_user: Verwijder de gebruiker + total_users_count: Je hebt een totaal van %{count} gebruikers + destroy_confirmation: "Waarschuwing: dit zal de gebruiker '%{login} verwijderen met al zijn acties, contexten, projecten en notities. Weet u zeker dat u wilt doorgaan?" + signup_new_user: Registreer nieuwe gebruiker + openid_ok_pref_failed: Je hebt succesvol de %{url} geverifieerd als je identiteit, maar er was een probleem met het opslaan van uw authenticatie voorkeuren. + identity_url: Identiteit URL + change_authentication_type: Wijzigen authenticatietype + auth_change_submit: Wijzigen authenticatietype + total_notes: Totaal aantal notities + select_authentication_type: Selecteer uw nieuwe authenticatie type en klik op 'Wijzigen authenticatietype' om uw huidige instellingen te vervangen. sidebar: list_name_active_contexts: Actieve contexten list_name_active_projects: Actieve projecten @@ -757,73 +832,6 @@ nl: list_name_completed_projects: Voltooide projecten list_name_hidden_projects: Verborgen projecten list_name_hidden_contexts: Verborgen contexten - users: - auth_type_update_error: "Er was een probleem met het bijwerken van uw authenticatietype: %{error_messages}" - openid_url_verified: Je hebt %{url} met succes geverifieerd als je identiteit en uw authenticatie type OpenID opgeslagen. - destroy_successful: Gebruiker %{login} met succes verwijderd - total_contexts: Totaal aantal contexten - successfully_deleted_user: Succesvol gebruiker %{username} verwijderd - failed_to_delete_user: Mislukt de gebruiker %{username} te verwijderen - first_user_heading: "Welkom bij TRACKS. Om te beginnen, maak dan een admin account:" - new_token_generated: Nieuwe token met succes gegenereerd - total_projects: Totaal aantal projecten - signup_successful: Aanmelding succesvol voor gebruiker %{username}. - change_password_submit: Wachtwoord wijzigen - no_signups_title: "TRACKS:: Geen nieuwe aanmeldingen" - user_created: Gebruiker aangemaakt. - account_signup: Aanmelden voor een account - manage_users: Beheren gebruikers - password_updated: Wachtwoord bijgewerkt. - confirm_password: Bevestig wachtwoord - signup: Aanmelden - new_user_heading: "Registreer een nieuwe gebruiker:" - auth_type_updated: Authenticatietype bijgewerkt. - total_actions: Totaal aanal acties - desired_login: Gewenste login - choose_password: Kies een wachtwoord - change_password_title: TRACKS::Wachtwoord wijzigen - change_auth_type_title: TRACKS::Wijzig authenticatietype - change_password_prompt: Voer uw nieuwe wachtwoord in de onderstaande velden in en kies 'Wachtwoord wijzigen' om uw huidige wachtwoord met uw nieuwe te vervangen. - password_confirmation_label: Bevestig wachtwoord - destroy_error: Er is een fout opgetreden bij het verwijderen van de gebruiker '%{login}' - label_auth_type: Authenticatietype - new_password_label: Nieuw wachtwoord - register_with_cas: Met uw CAS gebruikersnaam - new_user_title: "TRACKS:: Aanmelden als de admin gebruiker" - destroy_user: Verwijder de gebruiker - total_users_count: Je hebt een totaal van %{count} gebruikers - destroy_confirmation: "Waarschuwing: dit zal de gebruiker '%{login} verwijderen met al zijn acties, contexten, projecten en notities. Weet u zeker dat u wilt doorgaan?" - signup_new_user: Registreer nieuwe gebruiker - openid_ok_pref_failed: Je hebt succesvol de %{url} geverifieerd als je identiteit, maar er was een probleem met het opslaan van uw authenticatie voorkeuren. - auth_change_submit: Wijzigen authenticatietype - identity_url: Identiteit URL - change_authentication_type: Wijzigen authenticatietype - total_notes: Totaal aantal notities - select_authentication_type: Selecteer uw nieuwe authenticatie type en klik op 'Wijzigen authenticatietype' om uw huidige instellingen te vervangen. - feedlist: - choose_context: Kies de context waar je een feed van wilt - actions_due_today: Acties die vandaag of eerder af moeten - ical_feed: iCal feed - all_contexts: Alle contexten - legend: Legenda - rss_feed: RSS Feed - choose_project: Kies het project waar je een feed van wilt - all_projects: Alle projecten - project_needed: "Er moet ten minste \xC3\xA9\xC3\xA9n project zijn voor een feed opgevraagd kan worden" - select_feed_for_project: Kies de feed voor dit project - active_projects_wo_next: Actieve projecten zonder acties - active_starred_actions: Alle gesterde, actieve acties - projects_and_actions: Actieve projecten met hun acties - context_needed: "Er moet eerst ten minste \xC3\xA9\xC3\xA9n context zijn voor je een feed kan opvragen" - select_feed_for_context: Kies de feed voor deze context - notice_incomplete_only: "Merk op: alle feeds laten alleen acties zien die niet afgerond zijn, tenzij anders vermeld." - actions_due_next_week: Acties die binnen 7 dagen afgerond moeten - plain_text_feed: Reguliere tekst feed - last_fixed_number: Laatste %{number} acties - all_actions: Alle acties - actions_completed_last_week: Acties afgerond in de afgelopen 7 dagen - context_centric_actions: Feeds voor onafgeronde acties in een specifieke context - project_centric: Feeds voor onafgeronde acties in een specifiek project contexts: delete_context_title: Verwijder context all_completed_tasks_title: "TRACKS:: Alle voltooide acties in context '%{context_name}'" @@ -833,15 +841,15 @@ nl: delete_context: Verwijder context edit_context: Bewerk context hide_form_title: "Verberg formulier voor nieuwe context " - no_contexts_active: Momenteel zijn er geen actieve contexten context_hide: Verberg van de start pagina? hidden_contexts: Verborgen contexten - save_status_message: Context bewaard - add_context: Context toevoegen + no_contexts_active: Momenteel zijn er geen actieve contexten show_form: Maak een nieuwe context visible_contexts: Zichtbare contexten - update_status_message: Naam van de context was veranderd + save_status_message: Context bewaard + add_context: Context toevoegen context_name: Context naam + update_status_message: Naam van de context was veranderd completed_tasks_title: "TRACKS:: Voltooid acties in de context '%{context_name}'" new_context_post: "' zal ook gemaakt worden. Weet u dit zeker?" status_active: Context is actief @@ -851,6 +859,31 @@ nl: no_contexts_hidden: Momenteel zijn er geen verborgen contexten new_context_pre: Nieuwe context ' status_hidden: Context is verborgen + login: + login_cas: Ga naar het CAS + sign_in: Meld aan + openid_identity_url_not_found: Sorry, geen gebruiker met die identiteit URL bestaat (%{identity_url}) + user_no_expiry: Blijf ingelogd + cas_no_user_found: Hallo,%{username}! Je hebt nog geen account op Tracks. + cas_login: CAS Inloggen + successful_with_session_info: "Login succesvol:" + please_login: Log in om Tracks te gebruiken + cas_logged_in_greeting: Hallo, %{username}! U bent geauthenticeerd. + cas_username_not_found: Sorry, geen gebruiker met die CAS gebruikersnaam bestaat (%{username}) + mobile_use_openid: ... if inloggen met een OpenID + cas_create_account: Als u willen vragen ga hier om %{signup_link} + account_login: Account login + cas_signup_link: Aanvragen account + session_will_not_expire: sessie zal niet verlopen. + successful: Succesvol aangemeld. Welkom terug! + option_separator: of, + session_time_out: Sessie is verlopen. Gelieve %{link} + session_will_expire: sessie zal verlopen na %{hours} u(u)r(en) van inactiviteit. + login_standard: Ga terug naar de standaard login + logged_out: Je bent afgemeld bij Tracks. + login_with_openid: inloggen met een OpenID + unsuccessful: Login mislukt. + log_in_again: opnieuw in te loggen. datetime: prompts: minute: Minuut @@ -864,12 +897,12 @@ nl: one: minder dan een minuut other: minder dan %{count} minuten zero: minder dan 1 minuut - almost_x_years: - one: bijna 1 jaar - other: bijna %{count} jaren x_days: one: 1 dag other: "%{count} dagen" + almost_x_years: + one: bijna 1 jaar + other: bijna %{count} jaren x_seconds: one: 1 seconde other: "%{count} seconden" @@ -896,31 +929,6 @@ nl: one: over 1 jaar other: over %{count} jaren half_a_minute: halve minuut - login: - login_cas: Ga naar het CAS - openid_identity_url_not_found: Sorry, geen gebruiker met die identiteit URL bestaat (%{identity_url}) - user_no_expiry: Blijf ingelogd - sign_in: Meld aan - successful_with_session_info: "Login succesvol:" - please_login: Log in om Tracks te gebruiken - cas_logged_in_greeting: Hallo, %{username}! U bent geauthenticeerd. - cas_no_user_found: Hallo,%{username}! Je hebt nog geen account op Tracks. - cas_login: CAS Inloggen - cas_username_not_found: Sorry, geen gebruiker met die CAS gebruikersnaam bestaat (%{username}) - mobile_use_openid: ... if inloggen met een OpenID - cas_create_account: Als u willen vragen ga hier om %{signup_link} - cas_signup_link: Aanvragen account - account_login: Account login - session_will_not_expire: sessie zal niet verlopen. - successful: Succesvol aangemeld. Welkom terug! - session_time_out: Sessie is verlopen. Gelieve %{link} - session_will_expire: sessie zal verlopen na %{hours} u(u)r(en) van inactiviteit. - option_separator: of, - login_standard: Ga terug naar de standaard login - login_with_openid: inloggen met een OpenID - unsuccessful: Login mislukt. - log_in_again: opnieuw in te loggen. - logged_out: Je bent afgemeld bij Tracks. search: contexts_matching_query: Contexten passend bij zoekopdracht tags_matching_query: Tags passend bij zoekopdracht diff --git a/public/javascripts/application.js b/public/javascripts/application.js index 044397e3..e36c05f4 100644 --- a/public/javascripts/application.js +++ b/public/javascripts/application.js @@ -644,6 +644,14 @@ var UsersPage = { var PreferencesPage = { setup_behavior: function() { $( "#tabs" ).tabs(); + + $( "button#prefs_submit" ).button(); + + $('input[name="user[auth_type]"]').change(function() { + var value = $('input[name="user[auth_type]"]:checked').val(); + $('#open_id')[0].style.display = value == 'open_id' ? 'block' : 'none' + $('#database')[0].style.display = value == 'database' ? 'block' : 'none' + }); } } diff --git a/public/stylesheets/standard.css b/public/stylesheets/standard.css index 25eaafe0..6382308e 100644 --- a/public/stylesheets/standard.css +++ b/public/stylesheets/standard.css @@ -1,33 +1,36 @@ -/* @override http://0.0.0.0:3000/stylesheets/standard.css?1181841150 */ - -/* @override http://0.0.0.0:3000/stylesheets/standard.css?1180885851 */ - -div,dl,dt,dd,ul,ol,li,h1,h2,h3,h4,h5,h6,pre,form,fieldset,input,textarea,p,blockquote,th,td { +div,dl,dt,dd,ul,ol,li,h1,h2,h3,h4,h5,h6,pre,form,fieldset,input,textarea,p,blockquote,th,td { margin:0; padding:0; } + table { border-collapse:collapse; border-spacing:0; } -fieldset,img { + +fieldset,img { border:0; } ol,ul { list-style:none; } + caption,th { text-align:left; } + h1,h2,h3,h4,h5,h6 { font-size:100%; font-weight:normal; } + q:before,q:after { content:''; } -abbr,acronym { border:0; + +abbr,acronym { + border:0; } body { @@ -54,7 +57,7 @@ a, a:link, a:active, a:visited { a:hover { color: #fff; background-color: #cc3334; -} +} h1 { font-size: 304%; @@ -115,19 +118,6 @@ a.show_successors:hover, a.link_to_successors:hover {background-image: url(../im padding-left: 5px; } -body.preferences div#display_box { - margin-right:510px; -} - -body.preferences div#input_box { - width:490px; - right:15px; -} - -body.preferences select#prefs_time_zone, body.preferences select#prefs_sms_context_id { - width: 250px; -} - #single_box { width: 60%; margin: 80px auto; @@ -145,6 +135,8 @@ body.preferences select#prefs_time_zone, body.preferences select#prefs_sms_conte margin: 0px 15px 90px 15px; } +/* recurring todos */ + #recurring_timespan, #recurring_target { border: none; clear: both; @@ -206,10 +198,10 @@ body.preferences select#prefs_time_zone, body.preferences select#prefs_sms_conte } .recurring_container { - padding: 0px 5px 0px 5px; + padding: 0px 5px 0px 5px; border: 1px solid #999; margin: 0px 0px 0px 0px; - background: #fff; + background: #fff; text-align: left; } @@ -219,7 +211,7 @@ body.preferences select#prefs_time_zone, body.preferences select#prefs_sms_conte text-align: center; clear: both; border: none; -} +} /* Navigation links at the top */ @@ -278,7 +270,7 @@ body.preferences select#prefs_time_zone, body.preferences select#prefs_sms_conte padding-left: 15px; margin-top: 15px; margin-bottom: 5px; - white-space: nowrap; /* added 2006-05-17 for safari display, timfm */ + white-space: nowrap; /* added 2006-05-17 for safari display, timfm */ } #date h1 { font-size: 152%; @@ -293,14 +285,14 @@ body.preferences select#prefs_time_zone, body.preferences select#prefs_sms_conte } .container { - padding: 0px 5px 0px 5px; + padding: 0px 5px 0px 5px; border: 1px solid #999; margin: 0px 0px 15px 0px; - background: #fff; + background: #fff; } .completed { - background: #eee; + background: #eee; } .container h2 { @@ -309,9 +301,9 @@ body.preferences select#prefs_time_zone, body.preferences select#prefs_sms_conte margin-top: 0px; margin-left: -5px; margin-right: -5px; - margin-bottom: 0px; + margin-bottom: 0px; color: #666; - position:static; + position:static; } .container_toggle img { @@ -342,7 +334,7 @@ div#input_box { #input_box h2 { color: #999; - + } #input_box ul {list-style-type: circle; font-size: 0.9em;} @@ -410,7 +402,7 @@ div.item-container { a.recurring_icon { vertical-align: middle; - background-color: transparent; + background-color: transparent; } a.icon { @@ -454,11 +446,39 @@ input.item-checkbox { padding: 0px; } +a.footer_link {color: #cc3334; font-style: normal;} +a.footer_link:hover {color: #fff; background-color: #cc3334 !important;} + +/* preferences */ + +body.preferences div#display_box { + margin-right:510px; +} + +body.preferences div#input_box { + width:490px; + right:15px; +} + +body.preferences select#prefs_time_zone, body.preferences select#prefs_sms_context_id { + width: 250px; +} + body.preferences div#footer { margin-right:410px; } -/* The notes which may be attached to an item */ +/* override jquery css to match tracks defaults better */ + +body.preferences div.ui-widget { + font-size: 1em; +} + +body.preferences div.ui-tabs li a { + padding: 0.1em 1em; +} + +/* The notes which may be attached to an item */ .todo_notes { margin: 5px; padding: 5px; @@ -538,13 +558,16 @@ div.add_note_link { margin-top:12px; float: right; } + div#project_status > div { padding: 10px; } + #project_status span { margin-right:5px; background-color:white; } + #project_status .active_state { font-weight:bold; } @@ -555,8 +578,6 @@ div#default_context > div{ div#default_tags > div{ padding:10px; } -a.footer_link {color: #cc3334; font-style: normal;} -a.footer_link:hover {color: #fff; background-color: #cc3334 !important;} /* Tag formatting */ @@ -568,9 +589,9 @@ span.tag { margin-right: 2px; } -span.tag a, -span.tag a:link, -span.tag a:active, +span.tag a, +span.tag a:link, +span.tag a:active, span.tag a:visited { color: #000; } @@ -599,16 +620,16 @@ h4.alert { } h4.warning { - border: 1px solid #ED2E38; + border: 1px solid #ED2E38; background-color: #F6979C; color: #000; } h4.error { - color:#fff; + color:#fff; background:#c00; } h4.notice { - border: 1px solid #007E00; + border: 1px solid #007E00; background-color: #c2ffc2; color: #007E00; } @@ -616,14 +637,14 @@ h4.notice { /* *****/ .project_completed { - border: 1px solid #007E00; + border: 1px solid #007E00; background-color: #c2ffc2; padding: 5px; color: #007E00; text-align: center; } -/* Draw attention to some text +/* Draw attention to some text Same format as traffic lights */ .red { color: #fff; @@ -671,7 +692,7 @@ Same format as traffic lights */ .highlight { background: #ffC; padding: 2px; -} +} /* Backgrounds marking out 'staleness' of a task based on age of creation date The colour of the background gets progressively yellower with age */ @@ -809,6 +830,7 @@ div.project_settings { font-size: 10px; font-weight: normal; } + #project-next-prev { text-align:right; } @@ -830,7 +852,7 @@ form { /* expand form contents to fill the whole form */ .inline-form table, -.inline-form textarea#item_notes, +.inline-form textarea#item_notes, .inline-form input#item_description { width: 100%; } @@ -839,6 +861,7 @@ form { .inline-form table td.label { width: 13ex; } + #todo_new_action_container, #project_new_project_container, #context_new_container, #recurring_new_container { background: #ddd; width: 270px; @@ -855,8 +878,8 @@ form { padding-top: 50px; } -#todo_new_action_container input, -#todo_new_action_container textarea, +#todo_new_action_container input, +#todo_new_action_container textarea, #project_new_project_container input, #project_new_project_container textarea, #context_new_container input { @@ -918,6 +941,7 @@ input#go_to_project, input#context_hide { .hide_form { text-align:right; } + #todo-form-new-action label, .edit_todo_form label { display: block; padding-bottom: 3px; @@ -946,15 +970,15 @@ input, select, textarea { } .feed { - font-family: verdana, sans-serif; - font-size: 10px; - font-weight:bold; - text-decoration:none; - color: white; - background-color: #F60; - border:1px solid; - border-color: #FC9 #630 #330 #F96; - padding:0px 3px 0px 3px; + font-family: verdana, sans-serif; + font-size: 10px; + font-weight:bold; + text-decoration:none; + color: white; + background-color: #F60; + border:1px solid; + border-color: #FC9 #630 #330 #F96; + padding:0px 3px 0px 3px; margin:0px; } @@ -972,7 +996,7 @@ input, select, textarea { } div.message { - margin: 5px 0px; + margin: 5px 0px; background: #FAF4B5; padding: 2px; } @@ -1005,9 +1029,6 @@ div.message { border: 4px dotted #999; } -.context_target.hover { -} - /* Error message styles */ .fieldWithErrors { padding: 2px; @@ -1045,7 +1066,7 @@ div.message { list-style-type: disc; list-style-position: inside; margin-left:7px; - color: #333; + color: #333; } ul#prefs {list-style-type: disc; margin-left: 15px;} @@ -1054,21 +1075,26 @@ ul#prefs {list-style-type: disc; margin-left: 15px;} margin-top:20px; margin-bottom:10px; } -#token_area .description{ + +#token_area .description{ font-weight:bold; } + #token_area form { width:100%; text-align:center; } + .prefscontainer .actions { text-align:center; margin-bottom:20px; } + .authtype_container .actions { margin-top:20px; - margin-bottom:20px; + margin-bottom:20px; } + #feedlegend { padding: 2px; background-color: #D2D3D6; @@ -1076,39 +1102,48 @@ ul#prefs {list-style-type: disc; margin-left: 15px;} padding: 5px 20px; text-align: left; } + #feedlegend h3, #feedlegend dl, #feedlegend dt, #feedlegend dd { display: inline; } + #feedlegend dt { margin-left: 15px; } + #feedlegend dd { margin-left: 3px; } + #feedlegend p { margin-bottom: 0px; } + #feeds img.rss-icon { margin-bottom: -4px; } + #feeds li { font-size:13px; font-family: "Lucida Grande", Verdana, Geneva, Arial, sans-serif; } + #feeds li h4 { margin-top: 12px; margin-bottom: 4px; font-weight: normal; font-style:oblique; } + input.open_id { - background: url(../images/open-id-login-bg.gif) no-repeat; - background-color: #fff; + background: url(../images/open-id-login-bg.gif) no-repeat; + background-color: #fff; background-position: 0 50%; color: #000; padding-left: 18px; width:182px; } + div.page_name_auto_complete { width: 100%; background: #fff; @@ -1132,12 +1167,12 @@ div.page_name_auto_complete ul li { color: #000; } -div.page_name_auto_complete ul li.selected { - background-color: #ffb; +div.page_name_auto_complete ul li.selected { + background-color: #ffb; } -div.page_name_auto_complete ul strong.highlight { - color: #800; +div.page_name_auto_complete ul strong.highlight { + color: #800; margin: 0; padding: 0; } @@ -1160,7 +1195,7 @@ table.users_table { table.export_table { border: 1px solid #666; background-color: #fff; - border-spacing: 0px; + border-spacing: 0px; } .export_table th {color: #fff; background-color: #000;} @@ -1177,7 +1212,7 @@ http://particletree.com/features/rediscovering-the-button-element/ */ border:1px solid #dedede; border-top:1px solid #eee; border-left:1px solid #eee; - + font-family:"Lucida Grande", Verdana, Geneva, Arial, sans-serif; font-size:80%; line-height:100%; @@ -1280,24 +1315,28 @@ button.positive, .widgets a.positive{ background-position:center center; background-color:black; } + .stats_content .open-flash-chart, .stats_content .stats_module { float: left; width: 450px; margin-right:20px; padding-bottom:20px; } + .stats_content h2 { clear:both; margin-top:15px; margin-bottom:15px; } + div.integrations h2 { margin-top:40px; padding-top:20px; margin-bottom:10px; border-top:1px solid #ccc; } + div.integrations p, div.integrations li { font-size:1.0em; } @@ -1309,17 +1348,20 @@ div.integrations pre { div.integrations li { list-style-type: disc; list-style-position: inside; - margin-left:30px; + margin-left:30px; } + div.integrations textarea { margin:10px; padding:3px; width:80%; background-color:#ddd; } + .defer-container { float:right; } + .defer-container a:hover { background-color: inherit; } @@ -1329,6 +1371,7 @@ div.auto_complete { background: #fff; color: #000; } + div.auto_complete ul { border:1px solid #888; margin:0; @@ -1336,22 +1379,29 @@ div.auto_complete ul { width:100%; list-style-type:none; } + div.auto_complete ul li { font-size: 1.0em; margin:0; padding:3px; list-style-type: none; } + div.auto_complete ul li.selected { background-color: #ffb; font-weight:bold; } + div.auto_complete ul strong.highlight { color: #800; margin:0; padding:0; } -.ui-datepicker { - z-index: 1000; + +.ui-datepicker { + z-index: 1000; +} + +.ui-autocomplete-loading { + background: white url('/images/ui-anim_basic_16x16.gif') right center no-repeat; } -.ui-autocomplete-loading { background: white url('/images/ui-anim_basic_16x16.gif') right center no-repeat; } From 555311b681f5b6184edb009ea650d44032fb5bb7 Mon Sep 17 00:00:00 2001 From: Reinier Balt Date: Wed, 17 Aug 2011 22:51:02 +0200 Subject: [PATCH 086/197] updating preferences on user and prefs model work. also add date_format picker --- app/controllers/preferences_controller.rb | 26 +- app/views/preferences/_date_and_time.html.erb | 18 +- app/views/preferences/edit.html.erb | 59 --- app/views/preferences/index.html.erb | 3 + app/views/preferences/oldindex.html.erb | 68 --- config/locales/de.yml | 493 +++++++++--------- config/locales/en.yml | 217 ++++---- config/locales/es.yml | 339 ++++++------ config/locales/fr.yml | 343 ++++++------ config/locales/nl.yml | 357 ++++++------- config/routes.rb | 5 +- public/javascripts/application.js | 27 + 12 files changed, 945 insertions(+), 1010 deletions(-) delete mode 100644 app/views/preferences/edit.html.erb delete mode 100644 app/views/preferences/oldindex.html.erb diff --git a/app/controllers/preferences_controller.rb b/app/controllers/preferences_controller.rb index db27434b..e1c8638c 100644 --- a/app/controllers/preferences_controller.rb +++ b/app/controllers/preferences_controller.rb @@ -1,23 +1,31 @@ class PreferencesController < ApplicationController - + def index @page_title = t('preferences.page_title') @prefs = current_user.prefs + @user = current_user end - def edit - @page_title = t('preferences.page_title_edit') - @prefs = current_user.prefs - end - def update + @prefs = current_user.prefs + @user = current_user user_updated = current_user.update_attributes(params['user']) prefs_updated = current_user.preference.update_attributes(params['prefs']) - if user_updated && prefs_updated + if (user_updated && prefs_updated) + notify :notice, "Preferences updated" redirect_to :action => 'index' else - render :action => 'edit' + msg = "Preferences could not be updated: " + msg += "User model errors; " unless user_updated + msg += "Prefs model errors; " unless prefs_updated + notify :warning, msg + render 'index' end end - + + def render_date_format + format = params[:date_format] + render :text => l(Date.today, :format => format) + end + end diff --git a/app/views/preferences/_date_and_time.html.erb b/app/views/preferences/_date_and_time.html.erb index f511bfa9..60c94f5b 100644 --- a/app/views/preferences/_date_and_time.html.erb +++ b/app/views/preferences/_date_and_time.html.erb @@ -1,6 +1,22 @@ - <%= pref_with_text_field('prefs', 'date_format') %> + +
    This will result in: <%= l(Date.today, :format => current_user.prefs.date_format) %>
    +
    +Or pick one of the following:
    +<% %w{default short long longer}.each do |format| %> +<%= radio_button_tag("date_picker1", t("date.formats.#{format}")) %> <%= l(Date.today, :format => format.to_sym) %>
    +<% end %> +
    + <%= pref_with_text_field('prefs', 'title_date_format') %> +
    This will result in: <%= l(Date.today, :format => current_user.prefs.title_date_format) %>
    +
    +Or pick one of the following:
    +<% %w{default short long longer}.each do |format| %> +<%= radio_button_tag("date_picker2", t("date.formats.#{format}")) %> <%= l(Date.today, :format => format.to_sym) %>
    +<% end %> +
    + <%= pref('prefs', 'time_zone') { time_zone_select('prefs','time_zone') } %> <%= pref_with_select_field('prefs', "week_starts", (0..6).to_a.map {|num| [t('date.day_names')[num], num] }) %> diff --git a/app/views/preferences/edit.html.erb b/app/views/preferences/edit.html.erb deleted file mode 100644 index e2485b40..00000000 --- a/app/views/preferences/edit.html.erb +++ /dev/null @@ -1,59 +0,0 @@ -
    - <%= render :partial => 'help' %> -
    - -
    - <% form_tag :action => 'update' do %> - - - - - - - - - - <% - def table_row(pref_name, nowrap_label = false, &block) - nowrap_attribute = nowrap_label ? ' nowrap="nowrap"' : '' - s = %Q|\n\n" - s - end - - def row_with_select_field(pref_name, collection = [ [t('preferences.is_true'),true], [t('preferences.is_false'), false] ], nowrap_label = false) - table_row(pref_name, nowrap_label) { select('prefs', pref_name, collection) } - end - - def row_with_text_field(pref_name, nowrap_label = false) - table_row(pref_name, nowrap_label) { text_field('prefs', pref_name) } - end - %> - <%= row_with_select_field('locale', I18n.available_locales.map {|l| l.to_s}) %> - <%= row_with_text_field('date_format') %> - <%= row_with_text_field('title_date_format') %> - <%= table_row('time_zone', false) { time_zone_select('prefs','time_zone') } %> - - <%= row_with_select_field("week_starts", (0..6).to_a.map {|num| [t('date.day_names')[num], num] }) %> - <%= row_with_select_field("due_style", [[t('models.preference.due_styles')[0],Preference.due_styles[:due_in_n_days]],[t('models.preference.due_styles')[1],Preference.due_styles[:due_on]]]) %> - <%= row_with_select_field("show_completed_projects_in_sidebar") %> - <%= row_with_select_field("show_hidden_projects_in_sidebar") %> - <%= row_with_select_field("show_hidden_contexts_in_sidebar") %> - <%= row_with_select_field("show_project_on_todo_done") %> - - <% if current_user.is_admin? %> <%= row_with_text_field('admin_email') %> <% end %> - <%= row_with_text_field('staleness_starts', false) %> - <%= row_with_text_field('show_number_completed') %> - <%= row_with_text_field('refresh') %> - <%= row_with_select_field("verbose_action_descriptors") %> - <%= row_with_text_field("mobile_todos_per_page") %> - <%= row_with_text_field("sms_email") %> - <%= table_row("sms_context", false) { select('prefs', 'sms_context_id', current_user.contexts.map{|c| [c.name, c.id]}) } %> - - - - -
    <%= text_field 'user', 'first_name' %>
    <%= text_field 'user', 'last_name' %>
    \n| - s << yield - s << "\n
    <%= submit_tag t('common.update') %><%= link_to t('common.cancel'), :action => 'index' %>
    - <% end %> -
    diff --git a/app/views/preferences/index.html.erb b/app/views/preferences/index.html.erb index 5617f787..65c37c77 100644 --- a/app/views/preferences/index.html.erb +++ b/app/views/preferences/index.html.erb @@ -1,4 +1,7 @@
    + +
    <%= error_messages_for(:user) + error_messages_for(:prefs) %>
    + <% form_tag :action => 'update' do %>

    (qlpI11CI^uN$pK`4vLD%(>_he@dyzfK9%Og2 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