mirror of
https://github.com/TracksApp/tracks.git
synced 2025-09-22 05:50:47 +02:00
Added locale selection to preferences
Mostly completed transition to full i18n Incorporated german translations by Ulf Klose <ulf.klose@gmail.com>
This commit is contained in:
parent
d57bd479f9
commit
338d4bb5a6
44 changed files with 1071 additions and 209 deletions
|
@ -36,7 +36,7 @@ class ApplicationController < ActionController::Base
|
|||
before_filter :set_locale
|
||||
prepend_before_filter :login_required
|
||||
prepend_before_filter :enable_mobile_content_negotiation
|
||||
after_filter :set_locale
|
||||
# after_filter :set_locale
|
||||
after_filter :set_charset
|
||||
|
||||
include ActionView::Helpers::TextHelper
|
||||
|
@ -50,9 +50,10 @@ class ApplicationController < ActionController::Base
|
|||
end
|
||||
|
||||
def set_locale
|
||||
locale = params[:locale]
|
||||
locale = params[:locale] # specifying a locale in the request takes precedence
|
||||
locale = locale || prefs.locale unless current_user.nil? # otherwise, the locale of the currently logged in user takes over
|
||||
locale = locale || request.env['HTTP_ACCEPT_LANGUAGE'].scan(/^[a-z]{2}/).first if request.env['HTTP_ACCEPT_LANGUAGE']
|
||||
I18n.locale = I18n::available_locales.include?(locale) ? locale : I18n.default_locale
|
||||
I18n.locale = I18n::available_locales.include?(locale.to_sym) ? locale : I18n.default_locale
|
||||
logger.debug("Selected '#{I18n.locale}' as locale")
|
||||
end
|
||||
|
||||
|
|
|
@ -1,12 +1,12 @@
|
|||
class PreferencesController < ApplicationController
|
||||
|
||||
def index
|
||||
@page_title = "TRACKS::Preferences"
|
||||
@page_title = t('preferences.page_title')
|
||||
@prefs = prefs
|
||||
end
|
||||
|
||||
def edit
|
||||
@page_title = "TRACKS::Edit Preferences"
|
||||
@page_title = t('preferences.page_title_edit')
|
||||
end
|
||||
|
||||
def update
|
||||
|
|
|
@ -43,7 +43,7 @@ class ProjectsController < ApplicationController
|
|||
def show
|
||||
@max_completed = current_user.prefs.show_number_completed
|
||||
init_data_for_sidebar unless mobile?
|
||||
@page_title = "TRACKS::Project: #{@project.name}"
|
||||
@page_title = t('projects.page_title', :project => @project.name)
|
||||
|
||||
@not_done = @project.not_done_todos_including_hidden
|
||||
@deferred = @project.deferred_todos
|
||||
|
@ -204,7 +204,7 @@ class ProjectsController < ApplicationController
|
|||
|
||||
def render_projects_html
|
||||
lambda do
|
||||
@page_title = "TRACKS::List Projects"
|
||||
@page_title = t('projects.list_projects')
|
||||
@count = current_user.projects.size
|
||||
@active_projects = current_user.projects.active
|
||||
@hidden_projects = current_user.projects.hidden
|
||||
|
@ -230,10 +230,9 @@ class ProjectsController < ApplicationController
|
|||
def render_project_mobile
|
||||
lambda do
|
||||
if @project.default_context.nil?
|
||||
@project_default_context = "This project does not have a default context"
|
||||
@project_default_context = t('projects.no_default_context')
|
||||
else
|
||||
@project_default_context = "The default context for this project is "+
|
||||
@project.default_context.name
|
||||
@project_default_context = t('projects.default_context', :context => @project.default_context.name)
|
||||
end
|
||||
cookies[:mobile_url]= {:value => request.request_uri, :secure => SITE_CONFIG['secure_cookies']}
|
||||
@mobile_from_project = @project.id
|
||||
|
@ -293,7 +292,7 @@ class ProjectsController < ApplicationController
|
|||
project_description = ''
|
||||
project_description += sanitize(markdown( project.description )) unless project.description.blank?
|
||||
project_description += "<p>#{count_undone_todos_phrase(p)}. "
|
||||
project_description += "Project is #{project.state}."
|
||||
project_description += t('projects.project_state', :state => project.state)
|
||||
project_description += "</p>"
|
||||
project_description
|
||||
end
|
||||
|
|
|
@ -173,7 +173,7 @@ class TodosController < ApplicationController
|
|||
if @todos.size > 0
|
||||
@default_tags = @todos[0].project.default_tags unless @todos[0].project.nil?
|
||||
else
|
||||
@multiple_error = "You need to submit at least one next action"
|
||||
@multiple_error = t('todos.next_action_needed')
|
||||
@saved = false;
|
||||
@default_tags = current_user.projects.find_by_name(@initial_project_name).default_tags unless @initial_project_name.blank?
|
||||
end
|
||||
|
@ -277,10 +277,10 @@ class TodosController < ApplicationController
|
|||
format.html do
|
||||
if @saved
|
||||
# TODO: I think this will work, but can't figure out how to test it
|
||||
notify :notice, "The action <strong>'#{@todo.description}'</strong> was marked as <strong>#{@todo.completed? ? 'complete' : 'incomplete' }</strong>"
|
||||
notify(:notice, t("todos.action_marked_complete", :description => @todo.description, :completed => @todo.completed? ? 'complete' : 'incomplete'))
|
||||
redirect_to :action => "index"
|
||||
else
|
||||
notify :notice, "The action <strong>'#{@todo.description}'</strong> was NOT marked as <strong>#{@todo.completed? ? 'complete' : 'incomplete' } due to an error on the server.</strong>", "index"
|
||||
notify(:notice, t("todos.action_marked_complete_error", :description => @todo.description, :completed => @todo.completed? ? 'complete' : 'incomplete'), "index")
|
||||
redirect_to :action => "index"
|
||||
end
|
||||
end
|
||||
|
@ -304,7 +304,7 @@ class TodosController < ApplicationController
|
|||
@saved = @todo.save
|
||||
|
||||
@context_changed = true
|
||||
@message = "Context changed to #{@context.name}"
|
||||
@message = t('todos.context_changed', :name => @context.name)
|
||||
determine_remaining_in_context_count(@original_item_context_id)
|
||||
|
||||
respond_to do |format|
|
||||
|
@ -476,14 +476,14 @@ class TodosController < ApplicationController
|
|||
|
||||
format.html do
|
||||
if @saved
|
||||
message = "Successfully deleted next action"
|
||||
message = t('todos.action_deleted_success')
|
||||
if activated_successor_count > 0
|
||||
message += " activated #{pluralize(activated_successor_count, 'pending action')}"
|
||||
end
|
||||
notify :notice, message, 2.0
|
||||
redirect_to :action => 'index'
|
||||
else
|
||||
notify :error, "Failed to delete the action", 2.0
|
||||
notify :error, t('todos.action_deleted_error'), 2.0
|
||||
redirect_to :action => 'index'
|
||||
end
|
||||
end
|
||||
|
@ -507,7 +507,7 @@ class TodosController < ApplicationController
|
|||
end
|
||||
|
||||
def completed
|
||||
@page_title = "TRACKS::Completed tasks"
|
||||
@page_title = t('todos.completed_tasks_title')
|
||||
@done = current_user.completed_todos
|
||||
@done_today = @done.completed_within Time.zone.now - 1.day
|
||||
@done_this_week = @done.completed_within Time.zone.now - 1.week
|
||||
|
@ -516,7 +516,7 @@ class TodosController < ApplicationController
|
|||
end
|
||||
|
||||
def completed_archive
|
||||
@page_title = "TRACKS::Archived completed tasks"
|
||||
@page_title = t('todos.archived_tasks_title')
|
||||
@done = current_user.completed_todos
|
||||
@count = @done.size
|
||||
@done_archive = @done.completed_more_than Time.zone.now - 28.days
|
||||
|
@ -524,7 +524,7 @@ class TodosController < ApplicationController
|
|||
|
||||
def list_deferred
|
||||
@source_view = 'deferred'
|
||||
@page_title = "TRACKS::Tickler"
|
||||
@page_title = t('todos.deferred_tasks_title')
|
||||
|
||||
@contexts_to_show = @contexts = current_user.contexts.find(:all)
|
||||
|
||||
|
@ -561,7 +561,7 @@ class TodosController < ApplicationController
|
|||
def tag
|
||||
@source_view = params['_source_view'] || 'tag'
|
||||
@tag_name = params[:name]
|
||||
@page_title = "TRACKS::Tagged with \'#{@tag_name}\'"
|
||||
@page_title = t('todos.tagged_page_title', :tag_name => @tag_name)
|
||||
|
||||
# mobile tags are routed with :name ending on .m. So we need to chomp it
|
||||
@tag_name = @tag_name.chomp('.m') if mobile?
|
||||
|
@ -645,7 +645,7 @@ class TodosController < ApplicationController
|
|||
|
||||
def calendar
|
||||
@source_view = params['_source_view'] || 'calendar'
|
||||
@page_title = "TRACKS::Calendar"
|
||||
@page_title = t('todos.calendar_page_title')
|
||||
|
||||
@projects = current_user.projects.find(:all)
|
||||
|
||||
|
@ -778,24 +778,24 @@ class TodosController < ApplicationController
|
|||
condition_builder.add 'todos.state = ?', 'active'
|
||||
end
|
||||
|
||||
@title = "Tracks - Next Actions"
|
||||
@description = "Filter: "
|
||||
@title = t('todos.next_actions_title')
|
||||
@description = t('todos.next_actions_description')
|
||||
|
||||
if params.key?('due')
|
||||
due_within = params['due'].to_i
|
||||
due_within_when = Time.zone.now + due_within.days
|
||||
condition_builder.add('todos.due <= ?', due_within_when)
|
||||
due_within_date_s = due_within_when.strftime("%Y-%m-%d")
|
||||
@title << " due today" if (due_within == 0)
|
||||
@title << " due within a week" if (due_within == 6)
|
||||
@description << " with a due date #{due_within_date_s} or earlier"
|
||||
@title << t('todos.next_actions_title_additions.due_today') if (due_within == 0)
|
||||
@title << t('todos.next_actions_title_additions.due_within_a_week') if (due_within == 6)
|
||||
@description << t('todos.next_actions_description_additions.due_date', :due_date => due_within_date_s)
|
||||
end
|
||||
|
||||
if params.key?('done')
|
||||
done_in_last = params['done'].to_i
|
||||
condition_builder.add('todos.completed_at >= ?', Time.zone.now - done_in_last.days)
|
||||
@title << " actions completed"
|
||||
@description << " in the last #{done_in_last.to_s} days"
|
||||
@title << t('todos.next_actions_title_additions.completed')
|
||||
@description << t('todos.next_actions_description_additions.completed', :count => done_in_last.to_s)
|
||||
end
|
||||
|
||||
if params.key?('tag')
|
||||
|
@ -813,16 +813,16 @@ class TodosController < ApplicationController
|
|||
end
|
||||
|
||||
def with_parent_resource_scope(&block)
|
||||
@feed_title = "Actions "
|
||||
@feed_title = t('todos.feed_title')
|
||||
if (params[:context_id])
|
||||
@context = current_user.contexts.find_by_params(params)
|
||||
@feed_title = @feed_title + "in context '#{@context.name}'"
|
||||
@feed_title = @feed_title + t('todos.feed_title_in_context', :context => @context.name)
|
||||
Todo.send :with_scope, :find => {:conditions => ['todos.context_id = ?', @context.id]} do
|
||||
yield
|
||||
end
|
||||
elsif (params[:project_id])
|
||||
@project = current_user.projects.find_by_params(params)
|
||||
@feed_title = @feed_title + "in project '#{@project.name}'"
|
||||
@feed_title = @feed_title + t('todos.feed_title_in_project', :project => @project.name)
|
||||
@project_feed = true
|
||||
Todo.send :with_scope, :find => {:conditions => ['todos.project_id = ?', @project.id]} do
|
||||
yield
|
||||
|
@ -839,9 +839,9 @@ class TodosController < ApplicationController
|
|||
end
|
||||
if TodosController.is_feed_request(request) && @description
|
||||
if params.key?('limit')
|
||||
@description << "Lists the last #{params['limit']} incomplete next actions"
|
||||
@description << t('todos.list_incomplete_next_actions_with_limit', :count => params['limit'])
|
||||
else
|
||||
@description << "Lists incomplete next actions"
|
||||
@description << t('todos.list_incomplete_next_actions')
|
||||
end
|
||||
end
|
||||
else
|
||||
|
@ -971,7 +971,7 @@ class TodosController < ApplicationController
|
|||
|
||||
def render_todos_html
|
||||
lambda do
|
||||
@page_title = "TRACKS::List tasks"
|
||||
@page_title = t('todos.task_list_title')
|
||||
|
||||
# If you've set no_completed to zero, the completed items box isn't shown
|
||||
# on the home page
|
||||
|
@ -996,7 +996,7 @@ class TodosController < ApplicationController
|
|||
|
||||
def render_todos_mobile
|
||||
lambda do
|
||||
@page_title = "All actions"
|
||||
@page_title = t('todos.mobile_todos_page_title')
|
||||
@home = true
|
||||
cookies[:mobile_url]= { :value => request.request_uri, :secure => SITE_CONFIG['secure_cookies']}
|
||||
determine_down_count
|
||||
|
@ -1026,15 +1026,15 @@ class TodosController < ApplicationController
|
|||
def todo_feed_content
|
||||
lambda do |i|
|
||||
item_notes = sanitize(markdown( i.notes )) if i.notes?
|
||||
due = "<div>Due: #{format_date(i.due)}</div>\n" if i.due?
|
||||
done = "<div>Completed: #{format_date(i.completed_at)}</div>\n" if i.completed?
|
||||
due = "<div>#{t('todos.feeds.due', :date => format_date(i.due))}</div>\n" if i.due?
|
||||
done = "<div>#{t('todos.feeds.completed', :date => format_date(i.completed_at))}</div>\n" if i.completed?
|
||||
context_link = "<a href=\"#{ context_url(i.context) }\">#{ i.context.name }</a>"
|
||||
if i.project_id?
|
||||
project_link = "<a href=\"#{ project_url(i.project) }\">#{ i.project.name }</a>"
|
||||
else
|
||||
project_link = "<em>none</em>"
|
||||
project_link = "<em>#{t('common.none')}</em>"
|
||||
end
|
||||
"#{done||''}#{due||''}#{item_notes||''}\n<div>Project: #{project_link}</div>\n<div>Context: #{context_link}</div>"
|
||||
"#{done||''}#{due||''}#{item_notes||''}\n<div>#{t('common.project')}: #{project_link}</div>\n<div>#{t('common.context')}: #{context_link}</div>"
|
||||
end
|
||||
end
|
||||
|
||||
|
|
|
@ -35,15 +35,15 @@ class UsersController < ApplicationController
|
|||
end
|
||||
|
||||
if User.no_users_yet?
|
||||
@page_title = "TRACKS::Sign up as the admin user"
|
||||
@heading = "Welcome to TRACKS. To get started, please create an admin account:"
|
||||
@page_title = t('users.new_user_title')
|
||||
@heading = t('users.first_user_heading')
|
||||
@user = get_new_user
|
||||
elsif (@user && @user.is_admin?) || SITE_CONFIG['open_signups']
|
||||
@page_title = "TRACKS::Sign up a new user"
|
||||
@heading = "Sign up a new user:"
|
||||
@page_title = t('users.new_user_title')
|
||||
@heading = t('users.new_user_heading')
|
||||
@user = get_new_user
|
||||
else # all other situations (i.e. a non-admin is logged in, or no one is logged in, but we have some users)
|
||||
@page_title = "TRACKS::No signups"
|
||||
@page_title = t('users.no_signups_title')
|
||||
@admin_email = User.find_admin.preference.admin_email
|
||||
render :action => "nosignup", :layout => "login"
|
||||
return
|
||||
|
@ -66,7 +66,7 @@ class UsersController < ApplicationController
|
|||
respond_to do |format|
|
||||
format.html do
|
||||
unless User.no_users_yet? || (@user && @user.is_admin?) || SITE_CONFIG['open_signups']
|
||||
@page_title = "No signups"
|
||||
@page_title = t('users.no_signups_title')
|
||||
@admin_email = User.find_admin.preference.admin_email
|
||||
render :action => "nosignup", :layout => "login"
|
||||
return
|
||||
|
@ -98,10 +98,10 @@ class UsersController < ApplicationController
|
|||
user.is_admin = true if first_user_signing_up
|
||||
if user.save
|
||||
@user = User.authenticate(user.login, params['user']['password'])
|
||||
@user.create_preference
|
||||
@user.create_preference({:locale => I18n.locale})
|
||||
@user.save
|
||||
session['user_id'] = @user.id if first_user_signing_up
|
||||
notify :notice, "Signup successful for user #{@user.login}."
|
||||
notify :notice, t('users.signup_successful', :username => @user.login)
|
||||
redirect_back_or_home
|
||||
end
|
||||
return
|
||||
|
@ -121,7 +121,7 @@ class UsersController < ApplicationController
|
|||
end
|
||||
user.password_confirmation = params[:request][:password]
|
||||
if user.save
|
||||
render :text => "User created.", :status => 200
|
||||
render :text => t('users.user_created'), :status => 200
|
||||
else
|
||||
render_failure user.errors.to_xml
|
||||
end
|
||||
|
@ -139,9 +139,9 @@ class UsersController < ApplicationController
|
|||
respond_to do |format|
|
||||
format.html do
|
||||
if @saved
|
||||
notify :notice, "Successfully deleted user #{@deleted_user.login}", 2.0
|
||||
notify :notice, t('users.successfully_deleted_user', :username => @deleted_user.login), 2.0
|
||||
else
|
||||
notify :error, "Failed to delete user #{@deleted_user.login}", 2.0
|
||||
notify :error, t('users.failed_to_delete_user', :username => @deleted_user.login), 2.0
|
||||
end
|
||||
redirect_to users_url
|
||||
end
|
||||
|
@ -152,12 +152,12 @@ class UsersController < ApplicationController
|
|||
|
||||
|
||||
def change_password
|
||||
@page_title = "TRACKS::Change password"
|
||||
@page_title = t('users.change_password_title')
|
||||
end
|
||||
|
||||
def update_password
|
||||
@user.change_password(params[:updateuser][:password], params[:updateuser][:password_confirmation])
|
||||
notify :notice, "Password updated."
|
||||
notify :notice, t('users.password_updated')
|
||||
redirect_to preferences_path
|
||||
rescue Exception => error
|
||||
notify :error, error.message
|
||||
|
@ -165,7 +165,7 @@ class UsersController < ApplicationController
|
|||
end
|
||||
|
||||
def change_auth_type
|
||||
@page_title = "TRACKS::Change authentication type"
|
||||
@page_title = t('users.change_auth_type_title')
|
||||
end
|
||||
|
||||
def update_auth_type
|
||||
|
@ -177,10 +177,10 @@ class UsersController < ApplicationController
|
|||
@user.auth_type = 'open_id'
|
||||
@user.open_id_url = identity_url
|
||||
if @user.save
|
||||
notify :notice, "You have successfully verified #{identity_url} as your identity and set your authentication type to Open ID."
|
||||
notify :notice, t('users.openid_url_verified', :url => identity_url)
|
||||
else
|
||||
debugger
|
||||
notify :warning, "You have successfully verified #{identity_url} as your identity but there was a problem saving your authentication preferences."
|
||||
notify :warning, t('users.openid_ok_pref_failed', :url => identity_url)
|
||||
end
|
||||
redirect_to preferences_path
|
||||
else
|
||||
|
@ -192,10 +192,10 @@ class UsersController < ApplicationController
|
|||
end
|
||||
@user.auth_type = params[:user][:auth_type]
|
||||
if @user.save
|
||||
notify :notice, "Authentication type updated."
|
||||
notify :notice, t('users.auth_type_updated')
|
||||
redirect_to preferences_path
|
||||
else
|
||||
notify :warning, "There was a problem updating your authentication type: #{ @user.errors.full_messages.join(', ')}"
|
||||
notify :warning, t('users.auth_type_update_error', :error_messages => @user.errors.full_messages.join(', '))
|
||||
redirect_to :action => 'change_auth_type'
|
||||
end
|
||||
end
|
||||
|
@ -203,7 +203,7 @@ class UsersController < ApplicationController
|
|||
def refresh_token
|
||||
@user.generate_token
|
||||
@user.save!
|
||||
notify :notice, "New token successfully generated"
|
||||
notify :notice, t('users.new_token_generated')
|
||||
redirect_to preferences_path
|
||||
end
|
||||
|
||||
|
|
|
@ -3,6 +3,7 @@ require 'digest/sha1'
|
|||
class User < ActiveRecord::Base
|
||||
# Virtual attribute for the unencrypted password
|
||||
attr_accessor :password
|
||||
attr_protected :is_admin # don't allow mass-assignment for this
|
||||
|
||||
has_many :contexts,
|
||||
:order => 'position ASC',
|
||||
|
@ -11,11 +12,11 @@ class User < ActiveRecord::Base
|
|||
find(params['id'] || params['context_id']) || nil
|
||||
end
|
||||
def update_positions(context_ids)
|
||||
context_ids.each_with_index do |id, position|
|
||||
context_ids.each_with_index {|id, position|
|
||||
context = self.detect { |c| c.id == id.to_i }
|
||||
raise I18n.t('models.user.error_context_not_associated', :context => id, :user => @user.id) if context.nil?
|
||||
context.update_attribute(:position, position + 1)
|
||||
end
|
||||
}
|
||||
end
|
||||
end
|
||||
has_many :projects,
|
||||
|
@ -25,11 +26,11 @@ class User < ActiveRecord::Base
|
|||
find(params['id'] || params['project_id'])
|
||||
end
|
||||
def update_positions(project_ids)
|
||||
project_ids.each_with_index do |id, position|
|
||||
project_ids.each_with_index {|id, position|
|
||||
project = self.detect { |p| p.id == id.to_i }
|
||||
raise I18n.t('models.user.error_project_not_associated', :project => id, :user => @user.id) if project.nil?
|
||||
project.update_attribute(:position, position + 1)
|
||||
end
|
||||
}
|
||||
end
|
||||
def projects_in_state_by_position(state)
|
||||
self.sort{ |a,b| a.position <=> b.position }.select{ |p| p.state == state }
|
||||
|
|
|
@ -6,7 +6,7 @@
|
|||
<div id="<%= dom_id(context) %>" class="context sortable_row" style="display:'';">
|
||||
<% unless suppress_drag_handle -%>
|
||||
<div class="position">
|
||||
<span class="handle">DRAG</span>
|
||||
<span class="handle"><%= t('common.drag_handle') %></span>
|
||||
</div>
|
||||
<% end -%>
|
||||
<div class="data">
|
||||
|
@ -15,22 +15,22 @@
|
|||
|
||||
<div class="buttons">
|
||||
<% if context.hide? %>
|
||||
<span class="grey">HIDDEN</span>
|
||||
<span class="grey"><%= t('states.hidden') %></span>
|
||||
<% else %>
|
||||
<span class="grey">VISIBLE</span>
|
||||
<span class="grey"><%= t('states.visible') %></span>
|
||||
<% end %>
|
||||
<%= link_to_remote(
|
||||
image_tag( "blank.png", :title => "Delete context", :class=>"delete_item"),
|
||||
image_tag( "blank.png", :title => t('contexts.delete_context'), :class=>"delete_item"),
|
||||
:url => {:controller => 'contexts', :action => 'destroy', :id => context.id},
|
||||
:method => 'delete',
|
||||
:with => "'_source_view=#{@source_view}'",
|
||||
:before => "$('#{dom_id(context)}').block({message:null});",
|
||||
:complete => "$('#{dom_id(context)}').unblock();",
|
||||
:confirm => "Are you sure that you want to delete the context '#{context.name}'? Be aware that this will also delete all (repeating) actions in this context!",
|
||||
:confirm => t('contexts.delete_context_confirmation', :name => context.name),
|
||||
:html => { :id => dom_id(context, 'delete') }
|
||||
) %>
|
||||
<%= link_to_remote(
|
||||
image_tag( "blank.png", :title => "Edit context", :class=>"edit_item"),
|
||||
image_tag( "blank.png", :title => t('contexts.edit_context'), :class=>"edit_item"),
|
||||
:url => {:controller => 'contexts', :action => 'edit', :id => context.id},
|
||||
:method => 'get',
|
||||
:with => "'_source_view=#{@source_view}'",
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
<div class="list-stategroup-contexts-container">
|
||||
<h2><span id="<%= state %>-contexts-count" class="badge"><%= context_state_group.length %></span><%= state.titlecase %> <%= t('common.contexts') %></h2>
|
||||
<h2><span id="<%= state %>-contexts-count" class="badge"><%= context_state_group.length %></span><%= t('states.'+ state +'_plural')%> <%= t('common.contexts') %></h2>
|
||||
<div id="<%= state%>-contexts-empty-nd" style="<%= no_contexts ? 'display:block' : 'display:none'%>">
|
||||
<div class="message"><p><%= t('contexts.no_contexts', :state => state) %></p></div>
|
||||
<div class="message"><p><%= t('contexts.no_contexts_' + state) %></p></div>
|
||||
</div>
|
||||
<div id="list-contexts-<%= state %>">
|
||||
<%= render :partial => 'context_listing', :collection => context_state_group %>
|
||||
|
|
|
@ -13,8 +13,8 @@
|
|||
</head><body>
|
||||
<% if !(@new_mobile || @edit_mobile)
|
||||
if !@prefs.nil? -%>
|
||||
<h1><span class="count"><%= @down_count %></span> <%=
|
||||
current_user.time.strftime(@prefs.title_date_format) -%></h1>
|
||||
<h1><span class="count"><%= @down_count %></span> <%=
|
||||
l(Date.today, :format => @prefs.title_date_format) -%></h1>
|
||||
<div class="nav">
|
||||
<%= (link_to(t('layouts.mobile_navigation.new_action'), new_todo_path(new_todo_params))+" | ") unless @new_mobile -%>
|
||||
<%= (link_to(t('layouts.mobile_navigation.home'), todos_path(:format => 'm'))+" | ") unless @home -%>
|
||||
|
|
|
@ -36,7 +36,7 @@
|
|||
<% if @count -%>
|
||||
<span id="badge_count" class="badge"><%= @count %></span>
|
||||
<% end -%>
|
||||
<%= current_user.time.strftime(@prefs.title_date_format) %>
|
||||
<%= l(Date.today, :format => @prefs.title_date_format) %>
|
||||
</h1>
|
||||
</div>
|
||||
<div id="minilinks">
|
||||
|
@ -48,12 +48,12 @@
|
|||
<ul class="sf-menu">
|
||||
<li><%= navigation_link(t('layouts.navigation.home'), home_path, {:accesskey => "t", :title => t('layouts.navigation.home_title')} ) %></li>
|
||||
<li><%= navigation_link(t('layouts.navigation.starred'), tag_path("starred"), :title => t('layouts.navigation.starred_title')) %></li>
|
||||
<li><%= navigation_link(t('layouts.navigation.projects'), projects_path, {:accesskey=>"p", :title=>t('layouts.navigation.projects_title')} ) %></li>
|
||||
<li><%= navigation_link(t('common.projects'), projects_path, {:accesskey=>"p", :title=>t('layouts.navigation.projects_title')} ) %></li>
|
||||
<li><%= navigation_link(t('layouts.navigation.tickler'), tickler_path, {:accesskey =>"k", :title => t('layouts.navigation.tickler_title')} ) %></li>
|
||||
<li><a href="#"><%= t('layouts.navigation.organize') %></a>
|
||||
<ul>
|
||||
<li><%= navigation_link( t('layouts.navigation.contexts'), contexts_path, {:accesskey=>"c", :title=>t('layouts.navigation.contexts_title')} ) %></li>
|
||||
<li><%= navigation_link( t('layouts.navigation.notes'), notes_path, {:accesskey => "o", :title => t('layouts.navigation.notes_title')} ) %></li>
|
||||
<li><%= navigation_link( t('common.contexts'), contexts_path, {:accesskey=>"c", :title=>t('layouts.navigation.contexts_title')} ) %></li>
|
||||
<li><%= navigation_link( t('common.notes'), notes_path, {:accesskey => "o", :title => t('layouts.navigation.notes_title')} ) %></li>
|
||||
<li><%= navigation_link( t('layouts.navigation.recurring_todos'), {:controller => "recurring_todos", :action => "index"}, :title => t('layouts.navigation.recurring_todos_title')) %></li>
|
||||
</ul>
|
||||
</li>
|
||||
|
|
|
@ -6,17 +6,17 @@
|
|||
<% form_tag :action => 'update' do %>
|
||||
<table>
|
||||
<tr>
|
||||
<td><label><%= Preference.human_attribute_name('first_name') %></label></td>
|
||||
<td><label><%= User.human_attribute_name('first_name') %></label></td>
|
||||
<td><%= text_field 'user', 'first_name' %></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><label><%= Preference.human_attribute_name('last_name') %></label></td>
|
||||
<td><label><%= User.human_attribute_name('last_name') %></label></td>
|
||||
<td><%= text_field 'user', 'last_name' %></td>
|
||||
</tr>
|
||||
<%
|
||||
def table_row(pref_name, nowrap_label = false, &block)
|
||||
nowrap_attribute = nowrap_label ? ' nowrap="nowrap"' : ''
|
||||
s = %Q|<tr>\n<td#{nowrap_attribute}><label>#{pref_name.gsub(/_/,' ')}:</label></td>\n<td>\n|
|
||||
s = %Q|<tr>\n<td#{nowrap_attribute}><label>#{Preference.human_attribute_name(pref_name)}:</label></td>\n<td>\n|
|
||||
s << yield
|
||||
s << "\n</td></tr>"
|
||||
s
|
||||
|
@ -30,6 +30,7 @@
|
|||
table_row(pref_name, nowrap_label) { text_field('prefs', pref_name) }
|
||||
end
|
||||
%>
|
||||
<%= row_with_select_field('locale', I18n.available_locales) %>
|
||||
<%= row_with_text_field('date_format') %>
|
||||
<%= row_with_text_field('title_date_format') %>
|
||||
<%= table_row('time_zone', false) { time_zone_select('prefs','time_zone') } %>
|
||||
|
|
|
@ -6,6 +6,7 @@
|
|||
<li><%= User.human_attribute_name('first_name') %>: <span class="highlight"><%= current_user.first_name %></span></li>
|
||||
<li><%= User.human_attribute_name('last_name') %>: <span class="highlight"><%= current_user.last_name %></span></li>
|
||||
<li><%= Preference.human_attribute_name('date_format') %>: <span class="highlight"><%= prefs.date_format %></span> Your current date: <%= format_date(current_user.time) %></li>
|
||||
<li><%= Preference.human_attribute_name('locale') %>: <span class="highlight"><%= prefs.locale %></span></li>
|
||||
<li><%= Preference.human_attribute_name('title_date_format') %>: <span class="highlight"><%= prefs.title_date_format %></span> Your current title date: <%= current_user.time.strftime(prefs.title_date_format) %></li>
|
||||
<li><%= Preference.human_attribute_name('time_zone') %>: <span class="highlight"><%= prefs.time_zone %></span> Your current time: <%= current_user.time.strftime('%I:%M %p') %></li>
|
||||
<li><%= Preference.human_attribute_name('week_starts') %>: <span class="highlight"><%= t('date.day_names')[prefs.week_starts] %></span></li>
|
||||
|
|
|
@ -6,23 +6,23 @@ suppress_edit_button ||= false
|
|||
<div id="<%= dom_id(project) %>" class="project sortable_row" style="display:''">
|
||||
<% unless suppress_drag_handle -%>
|
||||
<div class="position">
|
||||
<span class="handle">DRAG</span>
|
||||
<span class="handle"><%= t('common.drag_handle') %></span>
|
||||
</div>
|
||||
<% end -%>
|
||||
<div class="data">
|
||||
<%= link_to_project( project ) %><%= " (" + count_undone_todos_and_notes_phrase(project,"actions") + ")" %>
|
||||
</div>
|
||||
<div class="buttons">
|
||||
<span class="grey"><%= project.current_state.to_s.upcase %></span>
|
||||
<span class="grey"><%= t('states.' + project.current_state.to_s).upcase %></span>
|
||||
<a class="delete_project_button"
|
||||
href="<%= project_path(project, :format => 'js') %>"
|
||||
title="delete the project '<%= project.name %>'"><%= image_tag( "blank.png",
|
||||
:title => "Delete project",
|
||||
title="<%= t('projects.delete_project_title') %> '<%= project.name %>'"><%= image_tag( "blank.png",
|
||||
:title => t('projects.delete_project'),
|
||||
:class=>"delete_item") %></a>
|
||||
|
||||
<% unless suppress_edit_button -%>
|
||||
<%= link_to_remote(
|
||||
image_tag( "blank.png", :title => "Edit project", :class=>"edit_item"),
|
||||
image_tag( "blank.png", :title => t('projects.edit_project_title'), :class=>"edit_item"),
|
||||
:url => {:controller => 'projects', :action => 'edit', :id => project.id},
|
||||
:method => 'get',
|
||||
:with => "'_source_view=#{@source_view}'",
|
||||
|
|
|
@ -1,12 +1,12 @@
|
|||
<div class="project-state-group" id="list-<%= state %>-projects-container" <%= " style=\"display:none\"" if project_state_group.empty? %>>
|
||||
<h2><span id="<%= state %>-projects-count" class="badge"><%= project_state_group.length %></span><%= state.titlecase %> Projects</h2>
|
||||
<div class="menu_sort"><span class="sort_separator">Sort </span>
|
||||
<h2><span id="<%= state %>-projects-count" class="badge"><%= project_state_group.length %></span><%= t('states.'+state+'_plural' )%> <%= t('common.projects') %></h2>
|
||||
<div class="menu_sort"><span class="sort_separator"><%= t('common.sort.sort') %> </span>
|
||||
<div class="alpha_sort">
|
||||
<%= link_to("Alphabetically", alphabetize_projects_path(:state => state),
|
||||
:class => "alphabetize_link", :title => "Sort these projects alphabetically") %>
|
||||
<%= link_to(t('common.sort.alphabetically'), alphabetize_projects_path(:state => state),
|
||||
:class => "alphabetize_link", :title => t('common.sort.alphabetically_title')) %>
|
||||
</div><span class="sort_separator"> | </span><div class="tasks_sort">
|
||||
<%= link_to("By number of tasks", actionize_projects_path(:state => state),
|
||||
:class => "actionize_link", :title => "Sort these projects by number of tasks") %>
|
||||
<%= link_to(t('common.sort.by_task_count'), actionize_projects_path(:state => state),
|
||||
:class => "actionize_link", :title => t('common.sort.by_task_count_title')) %>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
<div id="display_box">
|
||||
<div id="projects-empty-nd" style="<%= @no_projects ? 'display:block' : 'display:none'%>">
|
||||
<div class="message"><p>Currently there are no projects</p></div>
|
||||
<div class="message"><p><%= t('projects.no_projects') %></p></div>
|
||||
</div>
|
||||
<%= render :partial => 'project_state_group', :object => @active_projects, :locals => { :state => 'active'} %>
|
||||
<%= render :partial => 'project_state_group', :object => @hidden_projects, :locals => { :state => 'hidden'} %>
|
||||
|
@ -13,7 +13,7 @@
|
|||
<div id="project_new_project_container">
|
||||
|
||||
<div id="toggle_project_new" class="hide_form">
|
||||
<a title="Hide new project form" accesskey="n">« Hide form</a>
|
||||
<a title="<%= t('projects.hide_new_project_form') %>" accesskey="n">« <%= t('projects.hide_form') %></a>
|
||||
</div>
|
||||
|
||||
<div id="project_new" class="project_new" style="display:block">
|
||||
|
@ -24,19 +24,19 @@
|
|||
|
||||
<div id="status"><%= error_messages_for('project') %></div>
|
||||
|
||||
<label for="project_name">Name:</label><br />
|
||||
<label for="project_name"><%= Project.human_attribute_name(:name) %>:</label><br />
|
||||
<%= text_field 'project', 'name', "tabindex" => 1 %><br />
|
||||
|
||||
<label for="project_description">Description (optional):</label><br />
|
||||
<label for="project_description"><%= Project.human_attribute_name(:description) %> (<%= t('common.optional') %>):</label><br />
|
||||
<%= text_area 'project', 'description', "cols" => 30, "rows" => 4, "tabindex" => 2 %><br />
|
||||
|
||||
<% unless @contexts.empty? -%>
|
||||
<label for="default_context_name">Default Context (optional):</label><br />
|
||||
<label for="default_context_name"><%= Project.human_attribute_name(:default_context_name) %> (<%= t('common.optional') %>):</label><br />
|
||||
<%= text_field_tag("project[default_context_name]", @project.default_context.name, :tabindex => 3) %>
|
||||
<br />
|
||||
<% end -%>
|
||||
|
||||
<label for="default_tags">Default Tags (optional):</label><br />
|
||||
<label for="default_tags"><%= Project.human_attribute_name(:default_tags) %> (<%= t('common.optional') %>):</label><br />
|
||||
<%= text_field_tag("project[default_tags]", @project.default_tags, :tabindex => 4) %>
|
||||
<br />
|
||||
|
||||
|
@ -45,13 +45,13 @@
|
|||
<div class="submit_box">
|
||||
<div class="widgets">
|
||||
<button type="submit" class="positive" id="project_new_project_submit">
|
||||
<%= image_tag("accept.png", :alt => "") + 'Add Project' %>
|
||||
<%= image_tag("accept.png", :alt => "") + t('projects.add_project') %>
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<br/><br/>
|
||||
<input id="go_to_project" type="checkbox" tabindex="5" name="go_to_project"/><label for="go_to_project"> Take me to the new project page</label><br />
|
||||
<input id="go_to_project" type="checkbox" tabindex="5" name="go_to_project"/><label for="go_to_project"><%= t('projects.to_new_project_page') %></label><br />
|
||||
|
||||
<% end -%>
|
||||
</div>
|
||||
|
|
|
@ -7,12 +7,12 @@
|
|||
<% if collapsible %>
|
||||
<a href="#" class="container_toggle" id="toggle_completed"><%= image_tag("collapse.png") %></a>
|
||||
<% end %>
|
||||
Completed actions <%= suffix %>
|
||||
<%= t('todos.completed_actions') %> <%= suffix %>
|
||||
</h2>
|
||||
<div id="completed_containeritems" class="items toggle_target">
|
||||
|
||||
<div id="empty-d" style="display:<%= @done.empty? ? 'block' : 'none' %>">
|
||||
<div class="message"><p>Currently there are no completed actions.</p></div>
|
||||
<div class="message"><p><%= t('todos.no_completed_actions') %></p></div>
|
||||
</div>
|
||||
|
||||
<%= render :partial => "todos/todo", :collection => done, :locals => { :parent_container_type => "completed", :suppress_context => suppress_context, :suppress_project => suppress_project } %>
|
||||
|
|
|
@ -3,12 +3,12 @@
|
|||
<% if collapsible %>
|
||||
<a href="#" class="container_toggle" id="toggle_deferred"><%= image_tag("collapse.png") %></a>
|
||||
<% end %>
|
||||
Deferred/pending actions <%= append_descriptor ? append_descriptor : '' %>
|
||||
<%= t('todos.deferred_pending_actions') %> <%= append_descriptor ? append_descriptor : '' %>
|
||||
</h2>
|
||||
|
||||
<div id="tickleritems" class="items toggle_target">
|
||||
<div id="tickler-empty-nd" style="display:<%= deferred.empty? && pending.empty? ? 'block' : 'none'%>;">
|
||||
<div class="message"><p>Currently there are no deferred or pending actions</p></div>
|
||||
<div class="message"><p><%= t('todos.no_deferred_pending_actions') %></p></div>
|
||||
</div>
|
||||
|
||||
<%= render :partial => "todos/todo", :collection => deferred, :locals => { :parent_container_type => parent_container_type } %>
|
||||
|
|
|
@ -11,7 +11,7 @@
|
|||
<% end %>
|
||||
|
||||
<% if done.due %>
|
||||
<%= " - was due on " + format_date( done.due ) %>
|
||||
<%= " - " + t('todos.was_due_on_date', :date => format_date( done.due )) %>
|
||||
<% end %>
|
||||
|
||||
<% if done.notes? -%>
|
||||
|
|
|
@ -4,42 +4,42 @@
|
|||
<%= source_view_tag( @source_view ) -%>
|
||||
<%= "<INPUT TYPE=\"hidden\" name=\"_tag_name\" value=\""+ @tag_name+"\">" unless @tag_name.nil? -%>
|
||||
|
||||
<label for="<%= dom_id(@todo, 'description') %>">Description</label>
|
||||
<label for="<%= dom_id(@todo, 'description') %>"><%= t('common.description') %></label>
|
||||
<%= text_field( "todo", "description", "size" => 30, "tabindex" => 8, "maxlength" => 100) %>
|
||||
|
||||
<label for="<%= dom_id(@todo, 'notes') %>">Notes</label>
|
||||
<label for="<%= dom_id(@todo, 'notes') %>"><%= t('common.notes') %></label>
|
||||
<%= text_area( "todo", "notes", "cols" => 29, "rows" => 4, "tabindex" => 9) %>
|
||||
|
||||
<div class="project_input">
|
||||
<label for="<%= dom_id(@todo, 'project_name') %>">Project</label>
|
||||
<label for="<%= dom_id(@todo, 'project_name') %>"><%= t('common.project') %></label>
|
||||
<input id="<%= dom_id(@todo, 'project_name') %>" name="project_name" autocomplete="off" tabindex="10" size="30" type="text" value="<%= @todo.project.nil? ? 'None' : @todo.project.name.gsub(/"/,""") %>" />
|
||||
</div>
|
||||
|
||||
<div class="context_input">
|
||||
<label for="<%= dom_id(@todo, 'context_name') %>">Context</label>
|
||||
<label for="<%= dom_id(@todo, 'context_name') %>"><%= t('common.context') %></label>
|
||||
<input id="<%= dom_id(@todo, 'context_name') %>" name="context_name" autocomplete="off" tabindex="11" size="30" type="text" value="<%= @todo.context.name %>" />
|
||||
</div>
|
||||
|
||||
<label class="tag_list_label" for="<%= dom_id(@todo, 'tag_list') %>">Tags (separate with commas)</label>
|
||||
<label class="tag_list_label" for="<%= dom_id(@todo, 'tag_list') %>"><%= t('todos.tags') %></label>
|
||||
<%= text_field_tag 'tag_list', tag_list_text, :id => dom_id(@todo, 'tag_list'), :size => 30, :tabindex => 12 %>
|
||||
|
||||
<div class="due_input">
|
||||
<label for="<%= dom_id(@todo, 'due_label') %>">Due</label>
|
||||
<%= date_field_tag("todo[due]", dom_id(@todo, 'due'), format_date(@todo.due), "tabindex" => 13) %>
|
||||
<a href="#" id="<%= dom_id(@todo, 'due_x') %>" class="date_clear" title="Clear due date">
|
||||
<%= image_tag("delete_off.png", :alt => "Clear due date") %>
|
||||
<a href="#" id="<%= dom_id(@todo, 'due_x') %>" class="date_clear" title="<%= t('todos.clear_due_date') %>">
|
||||
<%= image_tag("delete_off.png", :alt => "<%= t('todos.clear_due_date') %>") %>
|
||||
</a>
|
||||
</div>
|
||||
|
||||
<div class="show_from_input">
|
||||
<label for="<%= dom_id(@todo, 'show_from') %>">Show from</label>
|
||||
<label for="<%= dom_id(@todo, 'show_from') %>"><%= t('todos.show_from') %></label>
|
||||
<%= date_field_tag("todo[show_from]", dom_id(@todo, 'show_from'), format_date(@todo.show_from), "tabindex" => 14) %>
|
||||
<a href="#" id="<%= dom_id(@todo, 'show_from_x') %>" class="date_clear" title="Clear show from date">
|
||||
<%= image_tag("delete_off.png", :alt => "Clear show from date") %>
|
||||
<a href="#" id="<%= dom_id(@todo, 'show_from_x') %>" class="date_clear" title="<%= t('todos.clear_show_from_date') %>">
|
||||
<%= image_tag("delete_off.png", :alt => "<%= t('todos.clear_show_from_date') %>") %>
|
||||
</a>
|
||||
</div>
|
||||
|
||||
<label class="predecessor_list_label" for="<%= dom_id(@todo, 'predecessor_list') %>">Depends on (separate with commas)</label>
|
||||
<label class="predecessor_list_label" for="<%= dom_id(@todo, 'predecessor_list') %>"><%= t('todos.depends_on_separate_with_commas') %></label>
|
||||
<%= text_field_tag 'predecessor_list', predecessor_list_text, :id => dom_id(@todo, 'predecessor_list'), :size => 30, :tabindex => 15 %>
|
||||
|
||||
<% if controller.controller_name == "project" || @todo.deferred? -%>
|
||||
|
@ -49,12 +49,12 @@
|
|||
<div class="submit_box">
|
||||
<div class="widgets">
|
||||
<button type="submit" class="positive" id="<%= dom_id(@todo, 'submit') %>" tabindex="16">
|
||||
<%=image_tag("accept.png", :alt => "") %>
|
||||
Update
|
||||
<%= image_tag("accept.png", :alt => "") %>
|
||||
<%= t('common.update') %>
|
||||
</button>
|
||||
<a href="#" class="negative">
|
||||
<%=image_tag("cancel.png", :alt => "") %>
|
||||
Cancel
|
||||
<%= image_tag("cancel.png", :alt => "") %>
|
||||
<%= t('common.cancel') %>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
|
|
|
@ -5,13 +5,13 @@
|
|||
</span>
|
||||
<% this_year = current_user.time.to_date.strftime("%Y").to_i
|
||||
if parent_container_type == 'show_mobile' -%>
|
||||
<p><label for="todo_done">Done?</label> <%= check_box_tag("done", 1, @todo && @todo.completed?, "tabindex" => 1) %></p>
|
||||
<p><label for="todo_done"><%= t('todos.done') %></label> <%= check_box_tag("done", 1, @todo && @todo.completed?, "tabindex" => 1) %></p>
|
||||
<% end -%>
|
||||
<h2><label for="todo_description">Description</label></h2>
|
||||
<h2><label for="todo_description"><%= t('common.description') %></label></h2>
|
||||
<%= text_field( "todo", "description", "tabindex" => 2, "maxlength" => 100, "size" => 50) %>
|
||||
<h2><label for="todo_notes">Notes</label></h2>
|
||||
<h2><label for="todo_notes"><%= t('common.notes') %></label></h2>
|
||||
<%= text_area( "todo", "notes", "cols" => 40, "rows" => 3, "tabindex" => 3) %>
|
||||
<h2><label for="todo_context_id">Context</label></h2>
|
||||
<h2><label for="todo_context_id"><%= t('common.context') %></label></h2>
|
||||
<%= unless @mobile_from_context
|
||||
collection_select( "todo", "context_id", @contexts, "id", "name", {}, {"tabindex" => 4} )
|
||||
else
|
||||
|
@ -19,10 +19,10 @@ else
|
|||
@contexts, "id", "name", @mobile_from_context.id),
|
||||
{"id" => :todo_context_id, :tabindex => 4} )
|
||||
end %>
|
||||
<h2><label for="todo_project_id">Project</label></h2>
|
||||
<h2><label for="todo_project_id"><%= t('common.context') %></label></h2>
|
||||
<%= unless @mobile_from_project
|
||||
collection_select( "todo", "project_id", @projects, "id", "name",
|
||||
{:include_blank => '--No project--'}, {"tabindex" => 5} )
|
||||
{:include_blank => t('todos.no_project')}, {"tabindex" => 5} )
|
||||
else
|
||||
# manually add blank option since :include_blank does not work
|
||||
# with options_from_collection_for_select
|
||||
|
@ -30,11 +30,11 @@ else
|
|||
@projects, "id", "name", @mobile_from_project.id),
|
||||
{"id" => :todo_project_id, :tabindex => 5} )
|
||||
end %>
|
||||
<h2><label for="tag_list">Tags (separate with commas)</label></h2>
|
||||
<h2><label for="tag_list"><%= t('todos.tags') %></label></h2>
|
||||
<%= text_field_tag "tag_list", @tag_list_text, :size => 50, :tabindex => 6 %>
|
||||
<h2><label for="todo_due">Due</label></h2>
|
||||
<h2><label for="todo_due"><%= t('todos.due') %></label></h2>
|
||||
<%= date_select("todo", "due", {:order => [:day, :month, :year],
|
||||
:start_year => this_year, :include_blank => '--'}, :tabindex => 7) %>
|
||||
<h2><label for="todo_show_from">Show from</label></h2>
|
||||
<h2><label for="todo_show_from"><%= t('todos.show_from') %></label></h2>
|
||||
<%= date_select("todo", "show_from", {:order => [:day, :month, :year],
|
||||
:start_year => this_year, :include_blank => true}, :tabindex => 8) %>
|
||||
|
|
|
@ -3,12 +3,12 @@
|
|||
<% if collapsible %>
|
||||
<a href="#" class="container_toggle" id="toggle_deferred"><%= image_tag("collapse.png") %></a>
|
||||
<% end %>
|
||||
Hidden actions <%= append_descriptor ? append_descriptor : '' %>
|
||||
<%= t('todos.hidden_actions') %> <%= append_descriptor ? append_descriptor : '' %>
|
||||
</h2>
|
||||
|
||||
<div id="hiddenitems" class="items toggle_target">
|
||||
<div id="hidden-empty-nd" style="display:<%= hidden.empty? ? 'block' : 'none'%>;">
|
||||
<div class="message"><p>Currently there are no hidden actions found</p></div>
|
||||
<div class="message"><p><%= t('todos.no_hidden_actions') %></p></div>
|
||||
</div>
|
||||
|
||||
<%= render :partial => "todos/todo", :collection => hidden, :locals => { :parent_container_type => 'tag' } %>
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
<% if @not_done_todos.empty? -%>
|
||||
<p>There are no incomplete actions</p>
|
||||
<p><%= t('todos.no_incomplete_actions') %></p>
|
||||
<% else -%>
|
||||
<%= render :partial => "contexts/mobile_context", :collection => @contexts_to_show -%>
|
||||
<% end -%>
|
|
@ -12,7 +12,7 @@ parameters += "&_tag_name=#{@tag_name}" if @source_view == 'tag'
|
|||
<span class="todo.descr"><%= h sanitize(successor.description) %></span>
|
||||
|
||||
<%= link_to_remote(
|
||||
image_tag("blank.png", :title => "Remove dependency (does not delete the action)", :align => "absmiddle", :class => "delete_item"),
|
||||
image_tag("blank.png", :title => t('todos.remove_dependency'), :align => "absmiddle", :class => "delete_item"),
|
||||
{:url => {:controller => 'todos', :action => 'remove_predecessor', :id => successor.id},
|
||||
:method => 'delete',
|
||||
:with => "'#{parameters}&predecessor=#{predecessor.id}'",
|
||||
|
|
|
@ -8,11 +8,11 @@ else
|
|||
end
|
||||
|
||||
if (todo.completed?) && todo.completed_at
|
||||
result_string << "[Completed: " + format_date(todo.completed_at) + "] "
|
||||
result_string << "["+ t('todos.completed') +": " + format_date(todo.completed_at) + "] "
|
||||
end
|
||||
|
||||
if todo.due
|
||||
result_string << "[Due: " + format_date(todo.due) + "] "
|
||||
result_string << "[" + t('todos.due') + ": " + format_date(todo.due) + "] "
|
||||
result_string << todo.description + " "
|
||||
else
|
||||
result_string << todo.description + " "
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
if @saved
|
||||
# show update message
|
||||
status_message = "Added #{@predecessor.description} as dependency."
|
||||
status_message = t('todos.added_dependency', :dependency => @predecessor.description)
|
||||
unless @original_state == 'pending'
|
||||
status_message += " #{@todo.description} set to pending"
|
||||
status_message += t('todos.set_to_pending', :task => @todo.description)
|
||||
end
|
||||
# remove successor from page
|
||||
page[@todo].remove
|
||||
|
@ -22,7 +22,7 @@ if @saved
|
|||
page['tickler-empty-nd'].hide
|
||||
page.replace "tickler", :partial => 'todos/deferred', :locals => { :deferred => @todo.project.deferred_todos,
|
||||
:collapsible => false,
|
||||
:append_descriptor => "in this project",
|
||||
:append_descriptor => t('todos.append_in_this_project'),
|
||||
:parent_container_type => 'project',
|
||||
:pending => @todo.project.pending_todos }
|
||||
end
|
||||
|
@ -30,6 +30,6 @@ if @saved
|
|||
page << 'enable_rich_interaction();'
|
||||
page.notify :notice, status_message, 5.0
|
||||
else
|
||||
page.replace_html "status", content_tag("div", content_tag("h2", "Unable to add dependency"), "id" => "errorExplanation", "class" => "errorExplanation")
|
||||
page.replace_html "status", content_tag("div", content_tag("h2", t('todos.unable_to_add_dependency')), "id" => "errorExplanation", "class" => "errorExplanation")
|
||||
end
|
||||
|
||||
|
|
|
@ -1,9 +1,9 @@
|
|||
<div id="display_box">
|
||||
|
||||
<div class="container">
|
||||
<h2>Due today</h2>
|
||||
<h2><%= t('todos.calendar.due_today') %></h2>
|
||||
<div id="empty_due_today" <%= "style=\"display:none\"" unless @due_today.empty? %>>
|
||||
No actions due today
|
||||
<%= t('todos.calendar.no_actions_due_today') %>
|
||||
</div>
|
||||
<div id="due_today">
|
||||
<%= render :partial => "todos/todo", :collection => @due_today %>
|
||||
|
@ -11,9 +11,9 @@
|
|||
</div>
|
||||
|
||||
<div class="container">
|
||||
<h2>Due in rest of this week</h2>
|
||||
<h2><%= t('todos.calendar.due_this_week') %></h2>
|
||||
<div id="empty_due_this_week" <%= "style=\"display:none\"" unless @due_this_week.empty? %>>
|
||||
No actions due in rest of this week
|
||||
<%= t('todos.no_actions_due_this_week') %>
|
||||
</div>
|
||||
<div id="due_this_week">
|
||||
<%= render :partial => "todos/todo", :collection => @due_this_week %>
|
||||
|
@ -21,9 +21,9 @@
|
|||
</div>
|
||||
|
||||
<div class="container">
|
||||
<h2>Due next week</h2>
|
||||
<h2><%= t('todos.calendar.due_next_week') %></h2>
|
||||
<div id="empty_due_next_week" <%= "style=\"display:none\"" unless @due_next_week.empty? %>>
|
||||
No actions due in next week
|
||||
<%= t('todos.calendar.no_actions_due_next_week') %>
|
||||
</div>
|
||||
<div id="due_next_week">
|
||||
<%= render :partial => "todos/todo", :collection => @due_next_week %>
|
||||
|
@ -31,9 +31,9 @@
|
|||
</div>
|
||||
|
||||
<div class="container">
|
||||
<h2>Due in rest of <%= Time.zone.now.strftime("%B") %> </h2>
|
||||
<h2><%= t('todos.calendar.due_this_month', :month => Time.zone.now.strftime("%B")) %></h2>
|
||||
<div id="empty_due_this_month" <%= "style=\"display:none\"" unless @due_this_month.empty? %>>
|
||||
No actions due in rest of this month
|
||||
<%= t('todos.calendar.no_actions_due_this_month') %>
|
||||
</div>
|
||||
<div id="due_this_month">
|
||||
<%= render :partial => "todos/todo", :collection => @due_this_month %>
|
||||
|
@ -41,9 +41,9 @@
|
|||
</div>
|
||||
|
||||
<div class="container">
|
||||
<h2>Due in <%= (Time.zone.now+1.month).strftime("%B") %> and later</h2>
|
||||
<h2><%= t('todos.calendar.due_next_month_and_later', :month => (Time.zone.now+1.month).strftime("%B")) %></h2>
|
||||
<div id="empty_due_after_this_month" <%= "style=\"display:none\"" unless @due_after_this_month.empty? %>>
|
||||
No actions due after this month
|
||||
<%= t('todos.calendar.no_actions_due_after_this_month') %>
|
||||
</div>
|
||||
<div id="due_after_this_month">
|
||||
<%= render :partial => "todos/todo", :collection => @due_after_this_month %>
|
||||
|
@ -53,5 +53,5 @@
|
|||
</div><!-- End of display_box -->
|
||||
<div class="input_box" id="input_box">
|
||||
<p><%= link_to('<span class="feed">iCal</span>', {:format => 'ics', :token => current_user.token}, :title => "iCal feed" ) %>
|
||||
- Get this calendar in iCal format</p>
|
||||
- <%= t('todos.calendar.get_in_ical_format') %></p>
|
||||
</div>
|
||||
|
|
|
@ -9,7 +9,7 @@ X-WR-CALNAME:Tracks
|
|||
overdue_text = ""
|
||||
if due_date.at_midnight < Time.zone.now.at_midnight
|
||||
due_date = Time.zone.now
|
||||
overdue_text = "Overdue: "
|
||||
overdue_text = t('todos.overdue') +": "
|
||||
end
|
||||
modified = todo.updated_at || todo.created_at
|
||||
%>BEGIN:VEVENT
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
unless @due_tickles.empty?
|
||||
#TODO: why not just add the new items here in addition to notifying?
|
||||
page.notify :notice, "#{@due_tickles.length} tickler items are now due - refresh the page to see them.", 5.0
|
||||
page.notify :notice, t('todos.tickler_items_due', :count => @due_tickles.length), 5.0
|
||||
end
|
|
@ -1,25 +1,25 @@
|
|||
<div id="display_box_projects">
|
||||
<p>You have completed <%= pluralize @done_today.length, 'action' %> so far today.</p>
|
||||
<p><%= t('todos.completed_today', :count => @due_tickles.nil? ? 0 : @due_tickles.length) %></p>
|
||||
<div class="container">
|
||||
<h2>Completed in the last 24 hours</h2>
|
||||
<h2><%= t('todos.completed_last_day') %></h2>
|
||||
<table class="next_actions" border="0">
|
||||
<%= render :partial => "done", :collection => @done_today %>
|
||||
</table>
|
||||
</div>
|
||||
|
||||
<div class="container">
|
||||
<h2>Completed in last 7 days</h2>
|
||||
<h2><%= t('todos.completed_last_x_days', :count => 7) %></h2>
|
||||
<table class="next_actions" border="0">
|
||||
<%= render :partial => "done", :collection => @done_this_week %>
|
||||
</table>
|
||||
</div>
|
||||
|
||||
<div class="container">
|
||||
<h2>Completed in the last 28 days</h2>
|
||||
<h2><%= t('todos.completed_last_x_days', :count => 28) %></h2>
|
||||
<table class="next_actions" border="0">
|
||||
<%= render :partial => "done", :collection => @done_this_month %>
|
||||
</table>
|
||||
</div>
|
||||
|
||||
<p>Older completed items: <%= link_to( "Older than 31 days", done_archive_path ) %></p>
|
||||
<p><%= t('todos.older_completed_items') %>: <%= link_to( t('todos.older_than_days', :count => 31), done_archive_path ) %></p>
|
||||
</div><!-- End of display_box -->
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
<div id="display_box_projects">
|
||||
|
||||
<p>There <%= @done_archive.length == 1 ? 'is' : 'are' %> <%= pluralize @done_archive.length, 'completed action' %> in the archive.</p>
|
||||
<p><%= t('todos.completed_in_archive', :count => @done_archive.length) %></p>
|
||||
<div class="container">
|
||||
<h2>Completed more than 31 days ago</h2>
|
||||
<h2><%= t('todos.completed_more_than_x_days_ago', :count => 31) %></h2>
|
||||
<table class="next_actions" cellspacing="5" cellpadding="0" border="0">
|
||||
<%= render :partial => "done", :collection => @done_archive %>
|
||||
</table>
|
||||
|
|
|
@ -1,10 +1,10 @@
|
|||
if @saved
|
||||
page.hide 'status'
|
||||
status_message = 'Added new next action'
|
||||
status_message += ' to tickler' if @todo.deferred?
|
||||
status_message += ' in pending state' if @todo.pending?
|
||||
status_message = 'Added new project / ' + status_message if @new_project_created
|
||||
status_message = 'Added new context / ' + status_message if @new_context_created
|
||||
status_message = t('todos.added_new_next_action')
|
||||
status_message += t('todos.to_tickler') if @todo.deferred?
|
||||
status_message += t('todos.in_pending_state') if @todo.pending?
|
||||
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
|
||||
page.notify :notice, status_message, 5.0
|
||||
page['badge_count'].replace_html @down_count
|
||||
page.send :record, "$('#todo-form-new-action').clearForm();$('#todo-form-new-action input:text:first').focus();"
|
||||
|
|
|
@ -1,10 +1,10 @@
|
|||
if @saved
|
||||
page.hide 'multiple_status'
|
||||
|
||||
status_message = 'Added new next action'
|
||||
status_message = t('todos.added_new_next_action')
|
||||
status_message += 's' if @todos.size > 1
|
||||
status_message = 'Added new project / ' + status_message if @new_project_created
|
||||
status_message = 'Added new context / ' + status_message if @new_context_created
|
||||
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
|
||||
page.notify :notice, status_message, 5.0
|
||||
|
||||
page['badge_count'].replace_html @down_count
|
||||
|
|
|
@ -16,10 +16,10 @@ if @saved
|
|||
page.call "todoItems.ensureVisibleWithEffectAppear", item_container_id(@new_recurring_todo)
|
||||
page.insert_html :bottom, item_container_id(@new_recurring_todo), :partial => 'todos/todo', :locals => { :todo => @new_recurring_todo, :parent_container_type => parent_container_type }
|
||||
page.visual_effect :highlight, dom_id(@new_recurring_todo, 'line'), {'startcolor' => "'#99ff99'"}
|
||||
page.notify :notice, "Action was deleted. Because this action is recurring, a new action was added", 6.0
|
||||
page.notify :notice, t('todos.recurring_action_deleted'), 6.0
|
||||
else
|
||||
if @todo.recurring_todo.todos.active.count == 0
|
||||
page.notify :notice, "There is no next action after the recurring action you just deleted. The recurrence is completed", 6.0 if @new_recurring_todo.nil?
|
||||
page.notify :notice, t('todos.completed_recurrence_completed'), 6.0 if @new_recurring_todo.nil?
|
||||
end
|
||||
end
|
||||
end
|
||||
|
@ -32,5 +32,5 @@ if @saved
|
|||
page.visual_effect :highlight, dom_id(t, 'line'), {'startcolor' => "'#99ff99'", :duration => 2}
|
||||
end
|
||||
else
|
||||
page.notify :error, "There was an error deleting the item #{@todo.description}", 8.0
|
||||
page.notify :error, t('todos.error_deleting_item', :description => @todo.description), 8.0
|
||||
end
|
||||
|
|
|
@ -1 +1 @@
|
|||
page.notify :error, @error_message || "An error occurred on the server.", 8.0
|
||||
page.notify :error, @error_message || t('common.server_error'), 8.0
|
|
@ -1,7 +1,7 @@
|
|||
<div id="display_box">
|
||||
|
||||
<div id="tickler-empty-nd" style="display:<%= (@count == 0) ? 'block' : 'none'%>;">
|
||||
<div class="message"><p>Currently there are no deferred actions.</p></div>
|
||||
<div class="message"><p><%= t('todos.no_deferred_actions') %></p></div>
|
||||
</div>
|
||||
|
||||
<%= render :partial => "contexts/context", :collection => @contexts,
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
<% if @count == 0 -%>
|
||||
<div class="message"><p>Currently there are no deferred actions.</p></div>
|
||||
<div class="message"><p><%= t('todos.no_deferred_actions') %></p></div>
|
||||
<% end -%>
|
||||
<%= render :partial => "contexts/mobile_context", :collection => @contexts,
|
||||
:locals => { :collapsible => true } -%>
|
|
@ -14,6 +14,8 @@ class Rails::Configuration
|
|||
attr_accessor :action_web_service
|
||||
end
|
||||
|
||||
Encoding.default_external = Encoding::UTF_8 if RUBY_VERSION > "1.9"
|
||||
|
||||
Rails::Initializer.run do |config|
|
||||
# Skip frameworks you're not going to use
|
||||
# config.frameworks -= [ :action_web_service, :action_mailer ]
|
||||
|
|
716
config/locales/de.yml
Normal file
716
config/locales/de.yml
Normal file
|
@ -0,0 +1,716 @@
|
|||
de:
|
||||
date:
|
||||
formats:
|
||||
default: "%d.%m.%Y"
|
||||
short: "%e. %b"
|
||||
long: "%e. %B %Y"
|
||||
only_day: "%e"
|
||||
day_names: [Sonntag, Montag, Dienstag, Mittwoch, Donnerstag, Freitag, Samstag]
|
||||
abbr_day_names: [So, Mo, Di, Mi, Do, Fr, Sa]
|
||||
month_names: [~, Januar, Februar, März, April, Mai, Juni, Juli, August, September, Oktober, November, Dezember]
|
||||
abbr_month_names: [~, Jan, Feb, Mär, Apr, Mai, Jun, Jul, Aug, Sep, Okt, Nov, Dez]
|
||||
order: [ :day, :month, :year ]
|
||||
time:
|
||||
formats:
|
||||
default: "%A, %d. %B %Y, %H:%M Uhr"
|
||||
short: "%d. %B, %H:%M Uhr"
|
||||
long: "%A, %d. %B %Y, %H:%M Uhr"
|
||||
time: "%H:%M"
|
||||
am: "vormittags"
|
||||
pm: "nachmittags"
|
||||
datetime:
|
||||
distance_in_words:
|
||||
half_a_minute: 'eine halbe Minute'
|
||||
less_than_x_seconds:
|
||||
zero: 'weniger als 1 Sekunde'
|
||||
one: 'weniger als 1 Sekunde'
|
||||
other: 'weniger als {{count}} Sekunden'
|
||||
x_seconds:
|
||||
one: '1 Sekunde'
|
||||
other: '{{count}} Sekunden'
|
||||
less_than_x_minutes:
|
||||
zero: 'weniger als 1 Minute'
|
||||
one: 'weniger als eine Minute'
|
||||
other: 'weniger als {{count}} Minuten'
|
||||
x_minutes:
|
||||
one: '1 Minute'
|
||||
other: '{{count}} Minuten'
|
||||
about_x_hours:
|
||||
one: 'etwa 1 Stunde'
|
||||
other: 'etwa {{count}} Stunden'
|
||||
x_days:
|
||||
one: '1 Tag'
|
||||
other: '{{count}} Tage'
|
||||
about_x_months:
|
||||
one: 'etwa 1 Monat'
|
||||
other: 'etwa {{count}} Monate'
|
||||
x_months:
|
||||
one: '1 Monat'
|
||||
other: '{{count}} Monate'
|
||||
about_x_years:
|
||||
one: 'etwa 1 Jahr'
|
||||
other: 'etwa {{count}} Jahre'
|
||||
over_x_years:
|
||||
one: 'mehr als 1 Jahr'
|
||||
other: 'mehr als {{count}} Jahre'
|
||||
prompts:
|
||||
second: "Sekunden"
|
||||
minute: "Minuten"
|
||||
hour: "Stunden"
|
||||
day: "Tag"
|
||||
month: "Monat"
|
||||
year: "Jahr"
|
||||
number:
|
||||
format:
|
||||
precision: 2
|
||||
separator: ','
|
||||
delimiter: '.'
|
||||
currency:
|
||||
format:
|
||||
unit: '€'
|
||||
format: '%n%u'
|
||||
separator:
|
||||
delimiter:
|
||||
precision:
|
||||
percentage:
|
||||
format:
|
||||
delimiter: ""
|
||||
precision:
|
||||
format:
|
||||
delimiter: ""
|
||||
human:
|
||||
format:
|
||||
delimiter: ""
|
||||
precision: 1
|
||||
storage_units:
|
||||
# Storage units output formatting.
|
||||
# %u is the storage unit, %n is the number (default: 2 MB)
|
||||
format: "%n %u"
|
||||
units:
|
||||
byte:
|
||||
one: "Byte"
|
||||
other: "Bytes"
|
||||
kb: "KB"
|
||||
mb: "MB"
|
||||
gb: "GB"
|
||||
tb: "TB"
|
||||
support:
|
||||
array:
|
||||
words_connector: ", "
|
||||
two_words_connector: " und "
|
||||
last_word_connector: " und "
|
||||
activerecord:
|
||||
errors:
|
||||
template:
|
||||
header:
|
||||
one: "Konnte dieses {{model}} Objekt nicht speichern: 1 Fehler."
|
||||
other: "Konnte dieses {{model}} Objekt nicht speichern: {{count}} Fehler."
|
||||
body: "Bitte überprüfen Sie die folgenden Felder:"
|
||||
models:
|
||||
project:
|
||||
attributes:
|
||||
name:
|
||||
blank: "Projekt muss einen Namen haben"
|
||||
too_long: "Projektname muss weniger als 256 Zeichen haben"
|
||||
taken: "existiert bereits"
|
||||
messages:
|
||||
inclusion: "ist kein gültiger Wert"
|
||||
exclusion: "ist nicht verfügbar"
|
||||
invalid: "ist nicht gültig"
|
||||
confirmation: "stimmt nicht mit der Bestätigung überein"
|
||||
accepted: "muss akzeptiert werden"
|
||||
empty: "muss ausgefüllt werden"
|
||||
blank: "muss ausgefüllt werden"
|
||||
too_long: "ist zu lang (nicht mehr als {{count}} Zeichen)"
|
||||
too_short: "ist zu kurz (nicht weniger als {{count}} Zeichen)"
|
||||
wrong_length: "hat die falsche Länge (muss genau {{count}} Zeichen haben)"
|
||||
taken: "ist bereits vergeben"
|
||||
not_a_number: "ist keine Zahl"
|
||||
greater_than: "muss größer als {{count}} sein"
|
||||
greater_than_or_equal_to: "muss größer oder gleich {{count}} sein"
|
||||
equal_to: "muss genau {{count}} sein"
|
||||
less_than: "muss kleiner als {{count}} sein"
|
||||
less_than_or_equal_to: "muss kleiner oder gleich {{count}} sein"
|
||||
odd: "muss ungerade sein"
|
||||
even: "muss gerade sein"
|
||||
attributes:
|
||||
user:
|
||||
first_name: "Vorname"
|
||||
last_name: "Nachname"
|
||||
todo:
|
||||
predecessors: "Hängt ab von"
|
||||
due: "Fällig"
|
||||
show_from: "Zeigen ab dem"
|
||||
project: "Projekt"
|
||||
description: "Beschreibung"
|
||||
notes: "Notizen"
|
||||
context: "Kontext"
|
||||
preference:
|
||||
week_starts: "Woche startet am"
|
||||
show_project_on_todo_done: "Zur Projektseite wechseln, wenn To-Do abgeschlossen"
|
||||
refresh: "Aktualisierungsintverall (in Minuten)"
|
||||
mobile_todos_per_page: "Aufgaben pro Seite (Mobile Version)"
|
||||
sms_email: "Per E-Mail"
|
||||
sms_context: "Standard-E-Mail-Kontext"
|
||||
project:
|
||||
description: "Beschreibung"
|
||||
default_context_name: "Standard Kontext"
|
||||
default_tags: "Standard Tags"
|
||||
models:
|
||||
project:
|
||||
feed_title: "Tracks-Projekte"
|
||||
feed_description: "Listet alle Projekte für {{username}} auf"
|
||||
preference:
|
||||
due_styles: ['Fällig in ___ Tagen', 'Fällig am _______']
|
||||
user:
|
||||
error_context_not_associated: "Kontext-ID {{context}} nicht mit Benutzer-ID {{user}} verknüpft."
|
||||
error_project_not_associated: "Projekt-ID {{project}} nicht mit User-ID {{user}} verknüpft."
|
||||
todo:
|
||||
error_date_must_be_future: "muss ein Datum in der Zukunft sein"
|
||||
common:
|
||||
update: "Aktualisieren"
|
||||
logout: "Abmelden"
|
||||
cancel: "Abbrechen"
|
||||
project: "Projekt"
|
||||
projects: "Projekte"
|
||||
context: "Kontext"
|
||||
action: "Aktion"
|
||||
actions: "Aktionen"
|
||||
server_error: "Auf dem Server ist ein Fehler aufgetreten."
|
||||
contexts: "Kontexte"
|
||||
numbered_step: "Schritt {{number}}"
|
||||
errors_with_fields: "Mit folgenden Feldern sind Probleme aufgetreten:"
|
||||
back: "Zurück"
|
||||
create: "Erstellen"
|
||||
go_back: "Zurück"
|
||||
search: "Suchen"
|
||||
none: "Keine"
|
||||
description: "Beschreibung"
|
||||
notes: "Notizen"
|
||||
sort:
|
||||
sort: "Sortieren"
|
||||
alphabetically: "Alphabetisch"
|
||||
alphabetically_title: "Projekte alphabetisch sortieren"
|
||||
by_task_count: "Nach Anzahl der Aufgaben"
|
||||
by_task_count_title: "Nach Anzahl der Aufgaben sortieren"
|
||||
drag_handle: "Verschieben"
|
||||
optional: "optional"
|
||||
contexts:
|
||||
status_hidden: "Kontext ist versteckt"
|
||||
status_active: "Kontext ist aktiv"
|
||||
no_actions: "Momentan gibt es keine unvollständigen Aufgaben in diesem Kontext"
|
||||
context_name: "Kontextname"
|
||||
update_status_message: "Kontextname wurde geändert"
|
||||
save_status_message: "Kontext gespeichert"
|
||||
last_completed_in_context: "in diesem Kontext (letzte {{number}})"
|
||||
add_context: "Kontext hinzufügen"
|
||||
context_hide: "Auf Startseite ausblenden?"
|
||||
hide_form: "Formular verstecken"
|
||||
visible_contexts: "Sichtbare Kontexte"
|
||||
hidden_contexts: "Versteckte Kontexte"
|
||||
context_deleted: "Gelöschter Kontext '{{name}}'"
|
||||
no_contexts_active: "Derzeit gibt es keine aktiven Kontexte"
|
||||
no_contexts_hidden: "Derzeit gibt es keine versteckten Kontexte"
|
||||
hide_form_link_title: "Verstecktes, neues Kontextformular"
|
||||
data:
|
||||
import_errors: "Beim Import sind Fehler aufgetreten."
|
||||
import_successful: "Import war erfolgreich."
|
||||
feedlist:
|
||||
legend: "Legende:"
|
||||
rss_feed: "RSS-Feed"
|
||||
plain_text_feed: "Plain-Text-Feed"
|
||||
ical_feed: "iCal-Feed"
|
||||
notice_incomplete_only: "Hinweis: Alle Feeds zeigen nur Aufgaben, die noch nicht als erledigt markiert wurden."
|
||||
last_fixed_number: "Die letzten {{number}} Aufgaben"
|
||||
all_actions: "Alle Aufgaben"
|
||||
actions_due_today: "Heute oder früher fällig"
|
||||
actions_due_next_week: "In den nächsten 7 Tagen oder früher fällige Aufgaben"
|
||||
actions_completed_last_week: "In den letzten 7 Tagen abgeschlossene Aufgaben"
|
||||
all_contexts: "Alle Kontexte"
|
||||
all_projects: "Alle Projekte"
|
||||
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_centric_actions: "Feeds für unvollständige Aufgaben in einem bestimmten Kontext"
|
||||
context_needed: "Es muss mindestens ein Kontext existieren, bevor ein Feed abonniert werden kann."
|
||||
choose_context: "Kontext für den Feed wählen"
|
||||
select_feed_for_context: "Feed für diesen Kontext auswählen"
|
||||
project_centric: "Feeds für unvollständige Aufgaben in einem bestimmten Kontext"
|
||||
project_needed: "Es muss mindestens ein Projekt existieren, bevor ein Feed abonniert werden kann."
|
||||
choose_project: "Projekt für den Feed wählen"
|
||||
select_feed_for_project: "Feed für dieses Projekt auswählen"
|
||||
integrations:
|
||||
opensearch_description: "In Tracks suchen"
|
||||
applescript_next_action_prompt: "Beschreibung der nächsten Aufgabe:"
|
||||
applescript_success_before_id: "Nächste neue Aufgabe mit ID"
|
||||
applescript_success_after_id: "erstellt"
|
||||
gmail_description: "Gadget, um Tracks als Gadget zu Googlemail hinzuzufügen"
|
||||
layouts:
|
||||
toggle_notes: "Notizen umschalten"
|
||||
toggle_notes_title: "Alle Notizen umschalten"
|
||||
navigation:
|
||||
home: "Start"
|
||||
home_title: "Start"
|
||||
starred: "Markiert"
|
||||
starred_title: "Markierte Aufgaben betrachten"
|
||||
projects_title: "Projekte"
|
||||
tickler: "Notizbuch"
|
||||
tickler_title: "Notizbuch"
|
||||
organize: "Organisieren"
|
||||
contexts_title: "Kontexte"
|
||||
notes_title: "Alle Notizen anzeigen"
|
||||
recurring_todos: "Sich wiederholende To-Dos"
|
||||
recurring_todos_title: "Sich wiederholende To-Dos verwalten"
|
||||
calendar: "Kalender"
|
||||
completed_tasks: "Erledigt"
|
||||
completed_tasks_title: "Vollständig"
|
||||
feeds: "Feeds"
|
||||
feeds_title: "Liste der verfügbaren Feeds anzeigen"
|
||||
stats: "Statistiken"
|
||||
stats_title: "Statistiken anzeigen"
|
||||
view: "Betrachten"
|
||||
calendar_title: "Kalender mit überfälligen Aufgaben"
|
||||
preferences: "Einstellungen"
|
||||
preferences_title: "Meine Einstellungen"
|
||||
export_title: "Daten importieren und exportieren"
|
||||
export: "Export"
|
||||
manage_users: "Benutzer verwalten"
|
||||
manage_users_title: "Benutzer hinzufügen oder entfernen"
|
||||
integrations_: "Tracks integrieren"
|
||||
api_docs: "REST API Docs"
|
||||
search: "Alle Einträge durchsuchen"
|
||||
next_actions_rss_feed: "RSS-Feed kommende Aufgaben"
|
||||
mobile_navigation:
|
||||
new_action: "0-Neue Aufgabe"
|
||||
home: "1-Home"
|
||||
contexts: "2-Kontexte"
|
||||
projects: "3-Projekte"
|
||||
starred: "4-Markiert"
|
||||
logout: "Abmelden"
|
||||
tickler: "Notizbuch"
|
||||
feeds: "Feeds"
|
||||
login:
|
||||
successful: "Anmeldung erfolgreich. Willkommen zurück!"
|
||||
unsuccessful: "Anmeldung war nicht erfolgreich."
|
||||
log_in_again: "Erneut anmelden."
|
||||
session_time_out: "Sitzung abgelaufen. Bitte {{link}}"
|
||||
logged_out: "Sie wurden von Tracks abgemeldet."
|
||||
session_will_expire: "Sitzung wird nach {{hours}} Stunde(n) der Inaktivität ablaufen."
|
||||
session_will_not_expire: "Sitzung wird nicht ablaufen."
|
||||
successful_with_session_info: "Anmeldung erfolgreich:"
|
||||
cas_username_not_found: "Sorry, aber es existiert kein Benutzer mit dem CAS-Benutzernamen ({{username}})"
|
||||
openid_identity_url_not_found: "Sorry, aber es existiert kein Benutzer mit der Identitäts-URL ({{identity_url}})"
|
||||
account_login: "Account-Anmeldung"
|
||||
please_login: "Bitte melde dich an, um Tracks zu nutzen"
|
||||
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_create_account: "Wenn du die Anfrage fortsetzen möchtest, klicke bitte hier: {{signup_link}}"
|
||||
cas_signup_link: "Account beantragen"
|
||||
cas_login: "CAS-Anmeldung"
|
||||
login_with_openid: "Mit einer OpenID anmelden"
|
||||
login_standard: "zurück zum Standard-Login"
|
||||
login_cas: "zum CAS gehen"
|
||||
option_separator: "oder,"
|
||||
mobile_use_openid: "…oder mit einer OpenID anmelden"
|
||||
notes:
|
||||
note_location_link: "In:"
|
||||
note_header: "Notiz {{id}}"
|
||||
note_link_title: "Notiz {{id}} anzeigen"
|
||||
delete_note_title: "Diese Notiz löschen"
|
||||
delete_confirmation: "Bist du sicher, dass du die Notiz '{{id}}' löschen möchtest?"
|
||||
edit_item_title: "Eintrag bearbeiten"
|
||||
show_note_title: "Notiz anzeigen"
|
||||
deleted_note: "Notiz '{{id}}' löschen"
|
||||
no_notes_available: "Derzeit gibt es keine Notizen: füge Notizen von der jeweiligen Projektseite hinzu."
|
||||
preferences:
|
||||
title: "Deine Einstellungen"
|
||||
show_number_completed: "Zeige {{number}} erledigte Einträge"
|
||||
staleness_starts_after: "Staleness starts after {{days}} days"
|
||||
sms_context_none: "Keine"
|
||||
edit_preferences: "Einstellungen bearbeiten"
|
||||
token_header: "Dein Token"
|
||||
token_description: "Token (für die Verwendung in Feeds und der API)"
|
||||
generate_new_token: "Neues Token generieren"
|
||||
generate_new_token_confirm: "Bist du sicher? Wenn du ein neues Token generierst, wird dies das alte Token ersetzen und jegliche externe Nutzung stören, die das alte Token verwendet."
|
||||
authentication_header: "Deine Authentifizierung"
|
||||
current_authentication_type: "Dein Authentifizierungsart ist {{auth_type}}"
|
||||
change_authentication_type: "Authentifzierungsart ändern"
|
||||
change_password: "Passwort ändern"
|
||||
open_id_url: "Deine OpenID-URL lautet:"
|
||||
change_identity_url: "Ändere deine Identitäts-URL"
|
||||
page_title: "TRACKS::Einstellungen"
|
||||
page_title_edit: "TRACKS::Einstellungen ändern"
|
||||
projects:
|
||||
status_project_name_changed: "Projektname geändert"
|
||||
default_tags_removed_notice: "Standard-Tags entfernt"
|
||||
set_default_tags_notice: "Standard-Tags des Projekts auf {{default_tags}} setzen"
|
||||
default_context_removed: "Standard-Kontext entfernt"
|
||||
default_context_set: "Standard-Kontext des Projekts auf {{default_context}} gesetzt"
|
||||
project_saved_status: "Projekt gespeichert"
|
||||
no_notes_attached: "Im Augenblick sind keine Notizen mit diesem Projekt verknüpft."
|
||||
add_note: "Notiz hinzufügen"
|
||||
todos_append: "an dieses Projekt"
|
||||
add_note_submit: "Notiz hinzufügen"
|
||||
deferred_actions: "Aufgeschobene Aufgaben für dieses Projekt"
|
||||
deferred_actions_empty: "Es gibt keine aufgeschobenen Aufgaben für dieses Projekt"
|
||||
completed_actions: "Erledigte Aufgaben für dieses Projekt"
|
||||
completed_actions_empty: "Es gibt keine erledigten Aufgaben für dieses Projekt"
|
||||
notes: "Notizen"
|
||||
notes_empty: "Es gibt keine Notizen für dieses Projekt"
|
||||
settings: "Einstellungen"
|
||||
state: "Dieses Projekt ist {{state}}"
|
||||
active_projects: "Aktive Projekte"
|
||||
hidden_projects: "Versteckte Projekte"
|
||||
completed_projects: "Abgeschlossene Projekte"
|
||||
page_title: "TRACKS::Projekt: {{project}}"
|
||||
list_projects: "TRACKS::Projektliste"
|
||||
no_default_context: "Dieses Projekt hat keinen Standard-Kontext"
|
||||
default_context: "Der Standard-Kontext dieses Projektes ist {{context}}"
|
||||
project_state: "Projekt ist {{state}}"
|
||||
hide_new_project_form: "Formular verstecken"
|
||||
hide_form: "Fomular verstecken"
|
||||
add_project: "Projekt hinzufügen"
|
||||
to_new_project_page: "Zu neuem Projekt weiterleiten"
|
||||
delete_project_title: "Projekt löschen"
|
||||
delete_project: "Projekt löschen"
|
||||
edit_project_title: "Projekt bearbeiten"
|
||||
states:
|
||||
active: "Aktiv"
|
||||
active_plural: "Aktive"
|
||||
completed: "Erledigt"
|
||||
completed_plural: "Erledigte"
|
||||
hidden: "Versteckt"
|
||||
hidden_plural: "Versteckte"
|
||||
visible: "Sichtbar"
|
||||
visible_plural: "Sichtbare"
|
||||
search:
|
||||
no_results: "Die Suche ergab kein Ergebnis."
|
||||
todos_matching_query: "Todos entsprechen der Suche"
|
||||
projects_matching_query: "Projekte entsprechen der Suche"
|
||||
notes_matching_query: "Notizen entsprechen der Suche"
|
||||
contexts_matching_query: "Kontexte entsprechen der Suche"
|
||||
tags_matching_query: "Tags entsprechen der Suche"
|
||||
shared:
|
||||
hide_action_form_title: "Formular für neue Aufgaben verstecken"
|
||||
hide_form: "Formular verstecken"
|
||||
toggle_multi_title: "Zwischen Einzel- und Mehrfachformular für neue Aufgaben umschalten"
|
||||
toggle_multi: "Mehrere neue Aufgabeneinträge hinzufügen"
|
||||
separate_tags_with_commas: "mit Kommas trennen"
|
||||
add_action: "Aufgabe hinzufügen"
|
||||
multiple_next_actions: "Mehrere neue Aufgaben (eine pro Zeile)"
|
||||
project_for_all_actions: "Projekt für alle Aufgaben"
|
||||
context_for_all_actions: "Kontext für alle Aufgaben"
|
||||
tags_for_all_actions: "Tags für alle Aufgaben (mit Kommas trennen)"
|
||||
add_actions: "Aufgaben hinzufügen"
|
||||
sidebar:
|
||||
list_empty: "Keine"
|
||||
list_name_active_projects: "Aktive Projekte"
|
||||
list_name_active_contexts: "Aktive Kontexte"
|
||||
list_name_hidden_projects: "Versteckte Projekte"
|
||||
list_name_completed_projects: "Abgeschlossene Projekte"
|
||||
list_name_hidden_contexts: "Versteckte Kontexte"
|
||||
stats:
|
||||
tod30_legend:
|
||||
time_of_day: "Tageszeit"
|
||||
number_of_actions: "Anzahl Aufgaben"
|
||||
tod30: "Tageszeit (letzte 30 Tage)"
|
||||
no_actions_selected: "Es sind keine Aufgaben ausgewählt."
|
||||
totals: "Ingesamt"
|
||||
tags: "Tags"
|
||||
more_stats_will_appear: "Weitere Statistiken werden verfügbar, wenn einige Aufgaben hinzugefügt wurden."
|
||||
spread_of_actions_for_all_context: "Aufgabenverteilung aller Kontexte"
|
||||
spread_of_running_actions_for_visible_contexts: "Verteilung der laufenden Aufgaben aller sichtbaren Kontexte"
|
||||
current_running_time_of_incomplete_visible_actions: "Aktuelle Laufzeit unvollständiger sichtbarer Aufgaben"
|
||||
running_time_legend:
|
||||
actions: "Aufgaben"
|
||||
percentage: "Prozentsatz"
|
||||
weeks: "Vergangene Zeit einer Aktion (Wochen). Klick auf eine Leiste für mehr Informationen."
|
||||
time_of_day: "Tageszeit (alle Aktionen)"
|
||||
time_of_day_legend:
|
||||
number_of_actions: "Anzahl Aufgaben"
|
||||
time_of_day: "Tageszeit"
|
||||
labels:
|
||||
created: "Erstellt"
|
||||
completed: "Erledigt"
|
||||
avg_created: "Durchschnittlich erstellt"
|
||||
avg_completed: "Durchschnittlich fertiggestellt"
|
||||
month_avg_created: "{{months}} Monat durchschnittlich erstellt"
|
||||
month_avg_completed: "{{months}} Monat durchschnittlich fertig gestellt"
|
||||
click_to_update_actions: "Klicke auf eine Leiste in der Grafik um die Aktionen unten zu aktualisieren."
|
||||
click_to_return: "Klick auf {{link}} um zur Statistikseite zurückzukehren."
|
||||
click_to_return_link: "hier"
|
||||
click_to_show_actions_from_week: "Klick auf {{link}} um die Aktionen von Woche {{week}} und danach anzuzeigen."
|
||||
running_time_all: "Aktuelle Laufzeit aller unvollständigen Aktionen."
|
||||
running_time_all_legend:
|
||||
actions: "Aktionen"
|
||||
percentage: "Prozentsatz"
|
||||
running_time: "Laufzeit einer Aktion (Wochen). Klick auf eine Leiste für mehr Informationen."
|
||||
actions_last_year: "Aktionen im letzten Jahr"
|
||||
actions_last_year_legend:
|
||||
number_of_actions: "Anzahl Aktionen"
|
||||
months_ago: "Monate zuvor"
|
||||
other_actions_label: "(andere)"
|
||||
action_selection_title: "TRACKS::Aktionsauswahl"
|
||||
actions_selected_from_week: "Aktionen ausgewählt ab Woche"
|
||||
actions_further: "und danach"
|
||||
totals_project_count: "Du hast {{count}} Projekte."
|
||||
totals_active_project_count: "Von diesen sind {{count}} aktive Projekte"
|
||||
totals_hidden_project_count: "{{count}} sind versteckt"
|
||||
totals_completed_project_count: "und {{count}} sind abgeschlossene Projekte."
|
||||
totals_context_count: "Du hast {{count}} Kontexte."
|
||||
totals_visible_context_count: "Von diesen sind {{count}} sichtbare Kontexte"
|
||||
totals_hidden_context_count: "und {{count}} sind versteckte Kontexte."
|
||||
totals_first_action: "Seit deiner ersten Aktion am {{date}}"
|
||||
totals_action_count: "hattest du insgesamt {{count}} Aktionen"
|
||||
totals_actions_completed: "{{count}} davon sind abgeschlossen."
|
||||
totals_incomplete_actions: "Du hast {{count}} unvollständige Aktionen"
|
||||
totals_deferred_actions: "von denen {{count}} im Notizbuch zurückgestellt sind"
|
||||
totals_blocked_actions: "{{count}} hängen vom Abschluss anderer Aktionen ab."
|
||||
totals_tag_count: "Du hast {{count}} Tags in Aktionen."
|
||||
totals_unique_tags: "Von diesen Tags sind {{count}} einmalig.."
|
||||
actions_avg_completion_time: "Durchschnittlich hast du {{count}} Tage gebraucht, um eine Aktion abzuschliessen."
|
||||
actions_min_max_completion_days: "Das Minimum/Maximum an Tagen einer Vervollständigung ist {{min}}/{{max}}."
|
||||
actions_min_completion_time: "Die minimale Zeit beträgt {{time}}."
|
||||
actions_actions_avg_created_30days: "In den letzten 30 Tagen hast du im Durchschnitt {{count}} Aktionen erstellt"
|
||||
actions_avg_completed_30days: "und {{count}} durchschnittlich davon erledigt."
|
||||
actions_avg_created: "In den letzten 12 Monaten hast du im Durchschnitt {{count}} Aktionen erstellt"
|
||||
actions_avg_completed: "und {{count}} durchschnittlich davon monatlich erledigt"
|
||||
tag_cloud_title: "Tag-Cloud aller Aktionen"
|
||||
tag_cloud_description: "Diese Tag-Cloud beinhaltet Tags aller Aktionen (abgeschlossen, nicht abgeschlossen, sichtbar und/oder unsichtbar)"
|
||||
no_tags_available: "keine Tags verfügbar"
|
||||
tag_cloud_90days_title: "Tag-Cloud-Aktionen in den letzten 90 Tagen"
|
||||
tag_cloud_90days_description: "Diese Tag-Cloud beinhaltet Tags der Aktionen, die in den letzten 90 Tagen erstellt oder abgeschlossen wurden."
|
||||
top10_projects: "Top 10 aller Projekte"
|
||||
top10_projects_30days: "Top-10-Projekt der letzten 30 Tage"
|
||||
top10_longrunning: "Top 10 der am längsten laufenden Projekte"
|
||||
top5_contexts: "Top 5 aller Kontexte"
|
||||
top5_visible_contexts_with_incomplete_actions: "Top 5 der sichtbaren Kontexte mit unvollständigen Aktionen"
|
||||
actions_30days_title: "_Aktionen der letzten 30 Tage"
|
||||
actions_lastyear_title: "Aktionen der letzten 12 Monate"
|
||||
legend:
|
||||
number_of_actions: "Anzahl Aktionen"
|
||||
months_ago: "Monate zuvor"
|
||||
number_of_days: "Anzahl vergangene Tage"
|
||||
day_of_week: "Wochentag"
|
||||
actions: "Aktionen"
|
||||
percentage: "Prozentsatz"
|
||||
running_time: "Laufzeit einer Aktion (Wochen)"
|
||||
actions_day_of_week_title: "Wochentag (alle Aktionen)"
|
||||
actions_dow_30days_title: "Wochentag (letzte 30 Tage)"
|
||||
action_completion_time_title: "Fertigstellungszeit (alle abgeschlossenen Aktionen)"
|
||||
todos:
|
||||
action_saved: "Aktion gespeichert"
|
||||
recurring_action_saved: "Wiederkehrende Aktion gespeichert"
|
||||
action_saved_to_tickler: "Aktion im Notizbuch gespeichert"
|
||||
added_new_project: "Neues Projekt hinzugefügt"
|
||||
added_new_context: "Neuer Kontext hinzugefügt"
|
||||
recurrence_completed: "Nach dieser wiederkehrenden Aktion, die du gerade abgeschlossen hast, folgt keine mehr. Die Wiederholung endet hiermit"
|
||||
tagged_with: "getagged mit ‘{{tag_name}}’"
|
||||
no_actions_found: "Keine Aktionen gefunden"
|
||||
no_actions_with: "Im Augenblick gibt es keine unvollständigen Aktionen mit dem Tag '{{tag_name}}'"
|
||||
removed_predecessor: "{{successor}} entfernt als Abhängigkeit von {{predecessor}}."
|
||||
error_removing_dependency: "Beim Entfernen der Abhängigkeit ist ein Fehler aufgetreten"
|
||||
deferred_actions_with: "Zurückgestellte Aktionen mit dem Tag '{{tag_name}}'"
|
||||
no_deferred_actions_with: "Keine zurückgestellten Aktionen mit dem Tag '{{tag_name}}'"
|
||||
completed_actions_with: "Abgeschlossene Aktionen mit dem Tag {{tag_name}}"
|
||||
no_completed_actions_with: "Keine abgeschlossenen Aktionen mit dem Tag '{{tag_name}}'"
|
||||
next_action_description: "Beschreibung der nächsten Aktion"
|
||||
notes: "Notizen"
|
||||
new_related_todo_created: "Eine neue To-Do wurde hinzugefügt, die zu dieser wiederkehrenden To-Do gehört"
|
||||
error_completing_todo: "Beim Abschliessen/Aktivieren der wiederkehrenden To-Do {{description}} ist ein Fehler aufgetreten"
|
||||
recurring_todos: "Wiederkehrende To-Dos"
|
||||
no_recurring_todos: "Im Augenblick gibt es keine wiederkehrenden To-Dos"
|
||||
completed_recurring: "Abgeschlossene wiederkehrende To-Dos"
|
||||
no_completed_recurring: "Im Augenblick gibt es keine abgeschlossenen wiederkehrenden To-Dos"
|
||||
add_new_recurring: "Füge eine neue wiederkehrende Aktion hinzu"
|
||||
recurring_deleted_success: "Die wiederkehrende Aktion wurde erfolgreich gelöscht."
|
||||
error_deleting_recurring: "Beim Löschen der wiederkehrenden To-Do {{description}} ist ein Fehler aufgetreten"
|
||||
recurrence_period: "Wiederholungszeitraum"
|
||||
action_marked_complete: "Die Aktion <strong>'{{description}}'</strong> wurde als <strong>{{completed}}</strong> markiert."
|
||||
action_marked_complete_error: "Die Aktion <strong>'{{description}}'</strong> wurde aufgrund eines Fehlers NICHT als <strong>{{completed}}</strong> markiert."
|
||||
recurrence:
|
||||
daily: "Täglich"
|
||||
weekly: "Wöchentlich"
|
||||
monthly: "Monatlich"
|
||||
yearly: "Jährlich"
|
||||
starts_on: "Beginnt am"
|
||||
ends_on: "Endet am"
|
||||
no_end_date: "Kein Enddatum"
|
||||
ends_on_number_times: "Endet nach {{number}} Mal"
|
||||
ends_on_date: "Endet am {{date}}"
|
||||
daily_options: "Einstellungen für sich täglich wiederholenden Aktionen"
|
||||
daily_every_number_day: "Alle {{number}} Tage"
|
||||
every_work_day: "Jeden Arbeitstag"
|
||||
weekly_options: "Einstellungen für sich wöchentlich wiederholende Aktionen"
|
||||
weekly_every_number_week: "Kehrt jede {{number}}. Woche wieder am"
|
||||
monthly_options: "Einstellungen für sich monatlich wiederholende Aktionen"
|
||||
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_options: "Einstellungen für sich jährlich wiederholende Aktionen"
|
||||
yearly_every_x_day: "Jeden {{day}}. {{month}} "
|
||||
yearly_every_xth_day: "Den {{day}} {{day_of_week}} des {{month}}"
|
||||
recurrence_on_options: "Setze Wiederholung auf"
|
||||
recurrence_on_due_date: "Das Datum der To-Do ist verstrichen."
|
||||
show_options: "To-Do anzeigen"
|
||||
show_option_always: "immer"
|
||||
show_days_before: "{{days}} Tage bevor die To-Do fällig ist"
|
||||
from_tickler: "the date todo comes from tickler (no due date set)"
|
||||
delete_recurring_action: "wiederkehrende Aktion '{{description}}' löschen"
|
||||
star_action_with_description: "Aktion '{{description}}' markieren"
|
||||
star_action: "Aktion markieren"
|
||||
delete_action: "Aktion löschen"
|
||||
edit_action: "Aktion bearbeiten"
|
||||
edit_action_with_description: "Aktion '{{description}}' bearbeiten"
|
||||
confirm_delete: "Bist du sicher, dass du die Aktion '{{description}}' löschen möchtest?"
|
||||
delete: "Löschen"
|
||||
edit: "Bearbeiten"
|
||||
defer_date_after_due_date: "Zurückstellungsdatum nach Ablaufdatum. Bitte passe das Ablaufdatum an, dass es vor dem Zurückstellungsdatum liegt."
|
||||
convert_to_project: "In Projekt umwandeln"
|
||||
blocked_by: "Blockiert durch {{predecessors}"
|
||||
depends_on: "Hängt ab von"
|
||||
pending: "Ausstehend"
|
||||
drag_action_title: "Auf andere Aktion ziehen, um sie als Abhängigkeit zu definieren"
|
||||
action_due_on: "(Aktion fällig am {{date}})"
|
||||
scheduled_overdue: "Planmäßig angezeigt vor {{days}} Tagen"
|
||||
show_today: "Heute anzeigen"
|
||||
show_tomorrow: "Morgen anzeigen"
|
||||
show_on_date: "Anzeigen am {{date}}"
|
||||
show_in_days: "Anzeigen in {{days}} Tagen"
|
||||
defer_x_days:
|
||||
one: "Einen Tag zurückstellen"
|
||||
other: "{{count}} Tage zurückstellen"
|
||||
has_x_pending:
|
||||
one: "Hat eine ausstehende Aktion"
|
||||
other: "Hat {{count}} ausstehende Aktionen"
|
||||
recurring_actions_title: "TRACKS::Wiederkehrende Aktionen"
|
||||
next_action_needed: "Es muss mindestens eine folgende Aktion angelegt werden"
|
||||
context_changed: "Kontext zu {{name}} gewechselt"
|
||||
action_deleted_success: "Die nächste Aktion erfolgreich gelöscht"
|
||||
action_deleted_error: "Fehler beim Löschen der Aufgabe"
|
||||
completed_tasks_title: "TRACKS::Erledigte Aufgaben"
|
||||
archived_tasks_title: "TRACKS::Archivierte erledigte Aufgaben"
|
||||
deferred_tasks_title: "TRACKS::Notizbuch"
|
||||
tagged_page_title: "TRACKS::Als '{{tag_name}}' markiert"
|
||||
calendar_page_title: "TRACKS::Kalender"
|
||||
next_actions_title: "TRACKS::Weitere Aufgaben"
|
||||
next_actions_description: "Filter:"
|
||||
next_actions_title_additions:
|
||||
due_today: "heute fällig"
|
||||
due_within_a_week: "diese Woche fällig"
|
||||
completed: "Aufgaben erledigt"
|
||||
next_actions_description_additions:
|
||||
due_date: "mit einem Datum {{due_date}} oder früher"
|
||||
completed: "In den letzten {{count}} Tagen"
|
||||
feed_title_in_context: "im Kontext '{{context}}'"
|
||||
feed_title: "Aufgaben"
|
||||
feed_title_in_project: "im Projekt '{{project}}'"
|
||||
list_incomplete_next_actions_with_limit: "Zeige die letzten {{count}} unerledigten Folge-Aufgaben"
|
||||
list_incomplete_next_actions: "Unerledigte Folge-Aufgaben anzeigen"
|
||||
task_list_title: "TRACKS::Aufgaben anzeigen"
|
||||
mobile_todos_page_title: "Alle Aufgaben"
|
||||
feeds:
|
||||
due: "F&auuml;llig: {{date}}"
|
||||
completed: "Erledigt: {{date}}"
|
||||
deferred_pending_actions: "Aufgeschobene/ausstehende Aufgaben"
|
||||
no_deferred_pending_actions: "Momentan sind keine aufgeschobenen oder ausstehenden Aufgaben vorhanden."
|
||||
completed_actions: "Erledigte Aufgaben"
|
||||
no_completed_actions: "Momentan sind keine erledigten Aufgaben vorhanden."
|
||||
was_due_on_date: "war am {{date}} fällig"
|
||||
tags: "Tags (Komma-separiert)"
|
||||
clear_due_date: "Fälligkeitsdatum leeren"
|
||||
show_from: "Anzeigen ab dem"
|
||||
clear_show_from_date: "Datum leeren"
|
||||
depends_on_separate_with_commas: "Hängt ab von (Komma-separiert)"
|
||||
done: "Erledigt?"
|
||||
no_project: "--Kein Projekt--"
|
||||
due: "Fällig"
|
||||
hidden_actions: "Verstecke Aufgaben"
|
||||
no_hidden_actions: "Momentan sind keine versteckten Aufgaben vorhanden"
|
||||
no_incomplete_actions: "Es gibt keine unerledigten Aufgaben"
|
||||
remove_dependency: "Abhängigkeit löschen (löscht nicht die Aufgabe)"
|
||||
completed: "Erledigt"
|
||||
added_dependency: "{{dependency}} als Abhängigkeit hinzugefügt."
|
||||
set_to_pending: "{{task}} als ausstehend markiert"
|
||||
append_in_this_project: "in diesem Projekt"
|
||||
unable_to_add_dependency: "Abhängigkeit nicht hinzufügbar"
|
||||
calendar:
|
||||
due_today: "Heute zu erledigen"
|
||||
no_actions_due_today: "Heute sind keine Aufgaben fällig"
|
||||
due_this_week: "Die restliche Woche zu erledigen"
|
||||
due_next_week: "Nächste Woche fällig"
|
||||
no_actions_due_next_week: "Keine Aufgaben für die kommende Woche"
|
||||
due_this_month: "Im {{month}} fällig"
|
||||
no_actions_due_this_month: "Keine Aktionen für den Rest des Monats"
|
||||
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"
|
||||
get_in_ical_format: "Diesen Kalender im iCal Format herunterladen"
|
||||
no_actions_due_this_week: "Keine zu erledigenden Aufgaben für den Rest der Woche"
|
||||
overdue: "Überfällig"
|
||||
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."
|
||||
completed_today:
|
||||
one: "Du hast heute bereits eine Aufgabe erledigt."
|
||||
other: "Du hast heute bereits {{count}} Aufgaben erledigt."
|
||||
completed_last_day: "In den letzten 24 Stunden erledigt"
|
||||
completed_last_x_days: "In den letzten {{count}} Tagen erledigt"
|
||||
older_completed_items: "Ältere erledigte Aufgaben"
|
||||
older_than_days: "Älter als {{count}} Tage"
|
||||
completed_in_archive:
|
||||
one: "Es befindet sich eine erledigte Aufgabe im Archiv."
|
||||
other: "Es befinden sich {{count}} erledigte Aufgaben im Archiv."
|
||||
completed_more_than_x_days_ago: "Vor mehr als {{count}} Tagen erledigt"
|
||||
added_new_next_action: "Neue Aktion angelegt"
|
||||
to_tickler: ", im Notizbuch hinterlegt"
|
||||
in_pending_state: "und als ausstehend markiert"
|
||||
recurring_action_deleted: "Die Aktion wurde gelöscht. Da dies eine wiederkehrende Aktion ist, wurde eine neue erstellt."
|
||||
completed_recurrence_completed: "Es gibt keine weitere Aktion nach der soeben gelöschten. Die Wiederholung ist abgeschlossen."
|
||||
error_deleting_item: "Beim Löschen von {{description}} trat ein Fehler auf"
|
||||
no_deferred_actions: "Zur Zeit sind keine zurückgestellten Aktionen vorhanden."
|
||||
users:
|
||||
change_authentication_type: "Authentifizierungsart ändern"
|
||||
select_authentication_type: "Wähle deine neue Authentifizierungsart und klicke 'Authentifizierungsart ändern' an, um deine aktuellen Einstellungen zu überschreiben."
|
||||
label_auth_type: "Authentifizierungsart"
|
||||
identity_url: "Identity-URL"
|
||||
auth_change_submit: "Authentifizierungsart ändern"
|
||||
change_password_prompt: "Gib dein neues Passwort in die unten stehenden Felder ein und klicke auf 'Passwort ändern' um dein altes Passwort durch das neue zu ersetzen."
|
||||
new_password_label: "Neues Passwort"
|
||||
password_confirmation_label: "Passwort bestätigen"
|
||||
change_password_submit: "Passwort ändern"
|
||||
destroy_successful: "Benutzer {{login}} wurde erfolgreich gelöscht"
|
||||
destroy_error: "Beim Löschen des Benutzers {{login}} ist ein Fehler aufgetreten."
|
||||
total_actions: "Alle Aufgaben"
|
||||
total_contexts: "Alle Kontexte"
|
||||
total_projects: "Alle Projekte"
|
||||
total_notes: "Alle Notizen"
|
||||
destroy_user: "Benutzer löschen"
|
||||
destroy_confirmation: "Achtung: der Benutzer '{{login}}' wird mit all seinen Aufgaben, Kontexten, Projekten und Notizen gelöscht. Bist du sicher, dass du fortfahren möchtest?"
|
||||
signup_new_user: "Neuen Benutzer anlegen"
|
||||
manage_users: "Benutzer verwalten"
|
||||
total_users_count: "Derzeit existieren {{count}} Benutzer"
|
||||
account_signup: "Accounteinrichtung"
|
||||
register_with_cas: "Mit deinem CAS-Benutzernamen"
|
||||
desired_login: "Gewünschter Benutzername"
|
||||
choose_password: "Passwort wählen"
|
||||
confirm_password: "Passwort bestätigen"
|
||||
signup: "Registrieren"
|
||||
new_user_title: "TRACKS::Als Administrator anmelden"
|
||||
first_user_heading: "Willkommen bei TRACKS. Als erstes legen Sie bitte einen Administrator-Zugang an:"
|
||||
new_user_heading: "Einen neuen Benutzer anlegen:"
|
||||
no_signups_title: "TRACKS::Anmeldung nicht erlaubt"
|
||||
signup_successful: "Benutzer {{username}} erfolgreich angelegt."
|
||||
user_created: "Benutzer angelegt."
|
||||
successfully_deleted_user: "Benutzer {{username}} erfolgreich gelöscht."
|
||||
failed_to_delete_user: "Löschen des Benutzers {{username}} fehlgeschlagen"
|
||||
change_password_title: "TRACKS::Passwort ändern"
|
||||
password_updated: "Passwort aktualisiert."
|
||||
change_auth_type_title: "TRACKS::Authentifizierungstyp ändern"
|
||||
openid_url_verified: "Die URL {{url}} wurde erfolgreich als Identität verifiziert und Deine Authentifizierung auf OpenID umgestellt."
|
||||
openid_ok_pref_failed: "Die URL {{url}} wurde erfolgreich als Identität verifiziert, beim Speichern der Einstellungen trat jedoch ein Fehler auf."
|
||||
auth_type_updated: "Authentifizierungs-Art erfolgreich geändert."
|
||||
auth_type_update_error: "Beim Ändern der Authentifizierung trat ein Fehler auf: {{error_messages}}"
|
||||
new_token_generated: "Neuer Token erfolgreich generiert"
|
||||
errors:
|
||||
user_unauthorized: "401 Unauthorized: Nur administrative Benutzer dürfen auf diese Funktion zugreifen."
|
|
@ -1,4 +1,3 @@
|
|||
en:
|
||||
activerecord:
|
||||
errors:
|
||||
models:
|
||||
|
@ -38,6 +37,11 @@ en:
|
|||
update: "Update"
|
||||
logout: "Logout"
|
||||
cancel: "Cancel"
|
||||
project: "Project"
|
||||
projects: "Projects"
|
||||
context: "Context"
|
||||
action: "Action"
|
||||
actions: "Actions"
|
||||
server_error: "An error occurred on the server."
|
||||
contexts: "Contexts"
|
||||
numbered_step: "Step {{number}}"
|
||||
|
@ -46,6 +50,17 @@ en:
|
|||
create: "Create"
|
||||
go_back: "Go back"
|
||||
search: "Search"
|
||||
none: "None"
|
||||
description: "Description"
|
||||
notes: "Notes"
|
||||
optional: "optional"
|
||||
sort:
|
||||
sort: "Sort"
|
||||
alphabetically: "Alphabetically"
|
||||
alphabetically_title: "Sort projects alphabetically"
|
||||
by_task_count: "By number of tasks"
|
||||
by_task_count_title: "Sort by number of tasks"
|
||||
drag_handle: "DRAG"
|
||||
contexts:
|
||||
status_hidden: "Context is hidden"
|
||||
status_active: "Context is active"
|
||||
|
@ -57,11 +72,15 @@ en:
|
|||
add_context: "Add Context"
|
||||
context_hide: "Hide from front page?"
|
||||
hide_form: "Hide form"
|
||||
visible_contexts: "Visible Contexts"
|
||||
hidden_contexts: "Hidden Contexts"
|
||||
visible_contexts: "Visible contexts"
|
||||
hidden_contexts: "Hidden contexts"
|
||||
context_deleted: "Deleted context '{{name}}'"
|
||||
no_contexts: "Currently there are no {{state}} contexts"
|
||||
no_contexts_hidden: "Currently there are no hidden contexts"
|
||||
no_contexts_active: "Currently there are no active contexts"
|
||||
hide_form_link_title: "Hide new context form"
|
||||
delete_context: "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!"
|
||||
edit_context: "Edit context"
|
||||
data:
|
||||
import_errors: "Some errors occurred during import"
|
||||
import_successful: "Import was successful."
|
||||
|
@ -82,17 +101,17 @@ en:
|
|||
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 need to be at least one context before you can request a feed"
|
||||
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 need to be at least one project before you can request a feed"
|
||||
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_before_id: "New next action with ID"
|
||||
applescript_success_after_id: "created"
|
||||
gmail_description: "Gadget to add Tracks to Gmail as a gadget"
|
||||
layouts:
|
||||
|
@ -103,14 +122,11 @@ en:
|
|||
home_title: "Home"
|
||||
starred: "Starred"
|
||||
starred_title: "See your starred actions"
|
||||
projects: "Projects"
|
||||
projects_title: "Projects"
|
||||
tickler: "Tickler"
|
||||
tickler_title: "Tickler"
|
||||
organize: "Organize"
|
||||
contexts: "Contexts"
|
||||
contexts_title: "Contexts"
|
||||
notes: "Notes"
|
||||
notes_title: "Show all notes"
|
||||
recurring_todos: "Repeating todos"
|
||||
recurring_todos_title: "Manage recurring actions"
|
||||
|
@ -160,13 +176,13 @@ en:
|
|||
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_signup_link: "Request account"
|
||||
cas_login: "CAS Login"
|
||||
login_with_openid: "login with an OpenId"
|
||||
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 Open ID"
|
||||
mobile_use_openid: "…or login with an OpenID"
|
||||
notes:
|
||||
note_location_link: "In:"
|
||||
note_header: "Note {{id}}"
|
||||
|
@ -191,8 +207,10 @@ en:
|
|||
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 Open ID URL is"
|
||||
open_id_url: "Your OpenID URL is"
|
||||
change_identity_url: "Change Your Identity URL"
|
||||
page_title: "TRACKS::Preferences"
|
||||
page_title_edit: "TRACKS::Edit Preferences"
|
||||
projects:
|
||||
status_project_name_changed: "Name of project was changed"
|
||||
default_tags_removed_notice: "Removed the default tags"
|
||||
|
@ -215,6 +233,28 @@ en:
|
|||
active_projects: "Active projects"
|
||||
hidden_projects: "Hidden projects"
|
||||
completed_projects: "Completed projects"
|
||||
page_title: "TRACKS::Project: {{project}}"
|
||||
list_projects: "TRACKS::List Projects"
|
||||
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_new_project_form: "Hide new project form"
|
||||
hide_form: "Hide form"
|
||||
add_project: "Add Project"
|
||||
to_new_project_page: "Take me to the new project page"
|
||||
delete_project_title: "delete the project"
|
||||
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"
|
||||
|
@ -236,21 +276,18 @@ en:
|
|||
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"
|
||||
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"
|
||||
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"
|
||||
actions: "Actions"
|
||||
contexts: "Contexts"
|
||||
projects: "Projects"
|
||||
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"
|
||||
|
@ -263,14 +300,14 @@ en:
|
|||
time_of_day: "Time of day (all actions)"
|
||||
time_of_day_legend:
|
||||
number_of_actions: "Number of actions"
|
||||
time_of_day: "Time of Day"
|
||||
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"
|
||||
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"
|
||||
|
@ -310,16 +347,16 @@ en:
|
|||
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_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_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"
|
||||
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:
|
||||
|
@ -350,7 +387,6 @@ en:
|
|||
completed_actions_with: "Completed actions with the tag {{tag_name}}"
|
||||
no_completed_actions_with: "No completed actions with the tag '{{tag_name}}'"
|
||||
next_action_description: "Next action description"
|
||||
notes: "Notes"
|
||||
new_related_todo_created: "A new todo was added which belongs to this recurring todo"
|
||||
error_completing_todo: "There was an error completing / activating the recurring todo {{description}}"
|
||||
recurring_todos: "Recurring todos"
|
||||
|
@ -361,6 +397,8 @@ en:
|
|||
recurring_deleted_success: "The recurring action was deleted succesfully."
|
||||
error_deleting_recurring: "There was an error deleting the recurring todo {{description}}"
|
||||
recurrence_period: "Recurrence period"
|
||||
action_marked_complete: "The action <strong>'{{description}}'</strong> was marked as <strong>{{completed}}</strong>"
|
||||
action_marked_complete_error: "The action <strong>'{{description}}'</strong> was NOT marked as <strong>{{completed}} due to an error on the server.</strong>"
|
||||
recurrence:
|
||||
daily: "Daily"
|
||||
weekly: "Weekly"
|
||||
|
@ -416,13 +454,91 @@ en:
|
|||
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"
|
||||
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_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: "Actions"
|
||||
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"
|
||||
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: "{{count}} tickler items are now due - refresh the page to see them."
|
||||
completed_today: "You have completed {{count}} actions so far today."
|
||||
completed_last_day: "Completed in the last 24 hours"
|
||||
completed_last_x_days: "Completed in last {{count}} days"
|
||||
older_completed_items: "Older completed items"
|
||||
older_than_days: "Older than {{count}} days"
|
||||
completed_in_archive: "There are {{count}} completed actions in the archive."
|
||||
completed_more_than_x_days_ago: "Completed more than {{count}} days ago"
|
||||
added_new_next_action: "Added new next action"
|
||||
to_tickler: "to tickler"
|
||||
in_pending_state: "in pending 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."
|
||||
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."
|
||||
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"
|
||||
|
@ -434,7 +550,7 @@ en:
|
|||
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: "Signup new user"
|
||||
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"
|
||||
|
@ -443,5 +559,21 @@ en:
|
|||
choose_password: "Choose password"
|
||||
confirm_password: "Confirm password"
|
||||
signup: "Signup"
|
||||
new_user_title: "TRACKS::Sign up as the admin user"
|
||||
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."
|
||||
auth_type_update_error: "There was a problem updating your authentication type: {{error_messages}}"
|
||||
new_token_generated: "New token successfully generated"
|
||||
errors:
|
||||
user_unauthorized: "401 Unauthorized: Only administrative users are allowed access to this function."
|
||||
|
|
9
db/migrate/20110104200112_add_locale_to_preference.rb
Normal file
9
db/migrate/20110104200112_add_locale_to_preference.rb
Normal file
|
@ -0,0 +1,9 @@
|
|||
class AddLocaleToPreference < ActiveRecord::Migration
|
||||
def self.up
|
||||
add_column :preferences, :locale, :string
|
||||
end
|
||||
|
||||
def self.down
|
||||
remove_column :preferences, :locale
|
||||
end
|
||||
end
|
Loading…
Add table
Add a link
Reference in a new issue