Permalink
Browse files

Merge branch 'master' into rails3

Conflicts:
	.gitignore
	app/views/common/_calendar.rhtml
	config/environments/test.rb
  • Loading branch information...
2 parents 146d354 + bd1384d commit 5aa90cc7666c57cce5547cca08e9891a724c3ca2 @jeremy committed Jul 3, 2010
Showing with 1,714 additions and 159 deletions.
  1. +1 −1 Gemfile
  2. +7 −1 app/controllers/members_controller.rb
  3. +1 −1 app/controllers/projects_controller.rb
  4. +1 −1 app/controllers/search_controller.rb
  5. +56 −47 app/controllers/timelog_controller.rb
  6. +1 −1 app/controllers/watchers_controller.rb
  7. +4 −0 app/helpers/projects_helper.rb
  8. +7 −2 app/models/attachment.rb
  9. +8 −1 app/models/issue.rb
  10. +2 −2 app/models/mail_handler.rb
  11. +15 −3 app/models/user.rb
  12. +3 −3 app/views/common/_calendar.rhtml
  13. +2 −2 app/views/issues/index.rhtml
  14. +2 −2 app/views/my/_sidebar.rhtml
  15. +5 −0 app/views/projects/index.rhtml
  16. +2 −0 app/views/reports/issue_report.rhtml
  17. +2 −0 app/views/welcome/index.rhtml
  18. +0 −2 config/environments/test.rb
  19. +3 −1 config/locales/bg.yml
  20. +3 −1 config/locales/bs.yml
  21. +3 −1 config/locales/ca.yml
  22. +3 −1 config/locales/cs.yml
  23. +3 −1 config/locales/da.yml
  24. +3 −1 config/locales/de.yml
  25. +3 −1 config/locales/el.yml
  26. +909 −0 config/locales/en-GB.yml
  27. +3 −1 config/locales/en.yml
  28. +3 −1 config/locales/es.yml
  29. +3 −1 config/locales/eu.yml
  30. +3 −1 config/locales/fi.yml
  31. +3 −1 config/locales/fr.yml
  32. +3 −1 config/locales/gl.yml
  33. +3 −1 config/locales/he.yml
  34. +3 −1 config/locales/hr.yml
  35. +3 −1 config/locales/hu.yml
  36. +3 −1 config/locales/id.yml
  37. +3 −1 config/locales/it.yml
  38. +3 −1 config/locales/ja.yml
  39. +3 −1 config/locales/ko.yml
  40. +3 −1 config/locales/lt.yml
  41. +3 −1 config/locales/lv.yml
  42. +3 −1 config/locales/mn.yml
  43. +3 −1 config/locales/nl.yml
  44. +3 −1 config/locales/no.yml
  45. +3 −1 config/locales/pl.yml
  46. +3 −1 config/locales/pt-BR.yml
  47. +3 −1 config/locales/pt.yml
  48. +3 −1 config/locales/ro.yml
  49. +3 −1 config/locales/ru.yml
  50. +3 −1 config/locales/sk.yml
  51. +3 −1 config/locales/sl.yml
  52. +3 −1 config/locales/sr-CY.yml
  53. +3 −1 config/locales/sr.yml
  54. +9 −7 config/locales/sv.yml
  55. +3 −1 config/locales/th.yml
  56. +3 −1 config/locales/tr.yml
  57. +3 −1 config/locales/uk.yml
  58. +3 −1 config/locales/vi.yml
  59. +3 −1 config/locales/zh-TW.yml
  60. +3 −1 config/locales/zh.yml
  61. +12 −0 doc/CHANGELOG
  62. +1 −1 doc/INSTALL
  63. +2 −2 doc/UPGRADING
  64. +2 −0 lib/generators/redmine_plugin/templates/init.rb.erb
  65. +2 −0 lib/generators/redmine_plugin_controller/templates/controller.rb.erb
  66. +1 −0 lib/generators/redmine_plugin_model/templates/model.rb.erb
  67. +2 −2 lib/redmine/default_data/loader.rb
  68. +14 −7 lib/redmine/scm/adapters/subversion_adapter.rb
  69. +1 −1 lib/redmine/version.rb
  70. +5 −0 lib/redmine/wiki_formatting/textile/formatter.rb
  71. +1 −1 lib/tabular_form_builder.rb
  72. +7 −0 lib/tasks/initializers.rake
  73. +4 −2 public/javascripts/application.js
  74. +21 −9 public/javascripts/calendar/calendar.js
  75. +127 −0 public/javascripts/calendar/lang/calendar-en-gb.js
  76. +16 −0 public/javascripts/jstoolbar/lang/jstoolbar-en-gb.js
  77. +7 −6 public/stylesheets/application.css
  78. +1 −5 test/exemplars/attachment_exemplar.rb
  79. +17 −0 test/fixtures/mail_handler/ticket_by_empty_user.eml
  80. +57 −0 test/fixtures/mail_handler/ticket_with_long_subject.eml
  81. BIN test/fixtures/repositories/subversion_repository.dump.gz
  82. +2 −0 test/functional/admin_controller_test.rb
  83. +44 −0 test/functional/calendars_controller_test.rb
  84. +18 −0 test/functional/documents_controller_test.rb
  85. +27 −0 test/functional/projects_controller_test.rb
  86. +1 −1 test/functional/repositories_subversion_controller_test.rb
  87. +6 −0 test/functional/search_controller_test.rb
  88. +18 −0 test/functional/timelog_controller_test.rb
  89. +10 −0 test/test_helper.rb
  90. +19 −0 test/unit/attachment_test.rb
  91. +7 −1 test/unit/helpers/application_helper_test.rb
  92. +9 −0 test/unit/issue_nested_set_test.rb
  93. +15 −0 test/unit/mail_handler_test.rb
  94. +30 −4 test/unit/repository_subversion_test.rb
  95. +49 −0 test/unit/user_test.rb
  96. +2 −1 vendor/plugins/acts_as_watchable/lib/acts_as_watchable.rb
View
2 Gemfile
@@ -15,6 +15,6 @@ end
group :test do
gem 'test-unit'
gem 'mocha'
- gem 'shoulda'
+ gem 'shoulda', '~> 2.10.3'
gem 'object_daddy', :git => 'http://github.com/edavis10/object_daddy.git'
end
View
8 app/controllers/members_controller.rb
@@ -43,6 +43,7 @@ def new
format.js {
render(:update) {|page|
page.replace_html "tab-content-members", :partial => 'projects/settings/members'
+ page << 'hideOnLoad()'
members.each {|member| page.visual_effect(:highlight, "member-#{member.id}") }
}
}
@@ -69,6 +70,7 @@ def edit
format.js {
render(:update) {|page|
page.replace_html "tab-content-members", :partial => 'projects/settings/members'
+ page << 'hideOnLoad()'
page.visual_effect(:highlight, "member-#{@member.id}")
}
}
@@ -82,7 +84,11 @@ def destroy
end
respond_to do |format|
format.html { redirect_to :controller => 'projects', :action => 'settings', :tab => 'members', :id => @project }
- format.js { render(:update) {|page| page.replace_html "tab-content-members", :partial => 'projects/settings/members'} }
+ format.js { render(:update) {|page|
+ page.replace_html "tab-content-members", :partial => 'projects/settings/members'
+ page << 'hideOnLoad()'
+ }
+ }
end
end
View
2 app/controllers/projects_controller.rb
@@ -27,7 +27,7 @@ class ProjectsController < ApplicationController
before_filter :authorize, :except => [ :index, :list, :add, :copy, :archive, :unarchive, :destroy, :activity ]
before_filter :authorize_global, :only => :add
before_filter :require_admin, :only => [ :copy, :archive, :unarchive, :destroy ]
- accept_key_auth :activity
+ accept_key_auth :activity, :index
after_filter :only => [:add, :edit, :archive, :unarchive, :destroy] do |controller|
if controller.request.post?
View
2 app/controllers/search_controller.rb
@@ -43,7 +43,7 @@ def index
begin; offset = params[:offset].to_time if params[:offset]; rescue; end
# quick jump to an issue
- if @question.match(/^#?(\d+)$/) && Issue.visible.find_by_id($1)
+ if @question.match(/^#?(\d+)$/) && Issue.visible.find_by_id($1.to_i)
redirect_to :controller => "issues", :action => "show", :id => $1
return
end
View
103 app/controllers/timelog_controller.rb
@@ -19,6 +19,7 @@ class TimelogController < ApplicationController
menu_item :issues
before_filter :find_project, :authorize, :only => [:edit, :destroy]
before_filter :find_optional_project, :only => [:report, :details]
+ before_filter :load_available_criterias, :only => [:report]
verify :method => :post, :only => :destroy, :redirect_to => { :action => :details }
@@ -30,51 +31,6 @@ class TimelogController < ApplicationController
include CustomFieldsHelper
def report
- @available_criterias = { 'project' => {:sql => "#{TimeEntry.table_name}.project_id",
- :klass => Project,
- :label => :label_project},
- 'version' => {:sql => "#{Issue.table_name}.fixed_version_id",
- :klass => Version,
- :label => :label_version},
- 'category' => {:sql => "#{Issue.table_name}.category_id",
- :klass => IssueCategory,
- :label => :field_category},
- 'member' => {:sql => "#{TimeEntry.table_name}.user_id",
- :klass => User,
- :label => :label_member},
- 'tracker' => {:sql => "#{Issue.table_name}.tracker_id",
- :klass => Tracker,
- :label => :label_tracker},
- 'activity' => {:sql => "#{TimeEntry.table_name}.activity_id",
- :klass => TimeEntryActivity,
- :label => :label_activity},
- 'issue' => {:sql => "#{TimeEntry.table_name}.issue_id",
- :klass => Issue,
- :label => :label_issue}
- }
-
- # Add list and boolean custom fields as available criterias
- custom_fields = (@project.nil? ? IssueCustomField.for_all : @project.all_issue_custom_fields)
- custom_fields.select {|cf| %w(list bool).include? cf.field_format }.each do |cf|
- @available_criterias["cf_#{cf.id}"] = {:sql => "(SELECT c.value FROM #{CustomValue.table_name} c WHERE c.custom_field_id = #{cf.id} AND c.customized_type = 'Issue' AND c.customized_id = #{Issue.table_name}.id)",
- :format => cf.field_format,
- :label => cf.name}
- end if @project
-
- # Add list and boolean time entry custom fields
- TimeEntryCustomField.find(:all).select {|cf| %w(list bool).include? cf.field_format }.each do |cf|
- @available_criterias["cf_#{cf.id}"] = {:sql => "(SELECT c.value FROM #{CustomValue.table_name} c WHERE c.custom_field_id = #{cf.id} AND c.customized_type = 'TimeEntry' AND c.customized_id = #{TimeEntry.table_name}.id)",
- :format => cf.field_format,
- :label => cf.name}
- end
-
- # Add list and boolean time entry activity custom fields
- TimeEntryActivityCustomField.find(:all).select {|cf| %w(list bool).include? cf.field_format }.each do |cf|
- @available_criterias["cf_#{cf.id}"] = {:sql => "(SELECT c.value FROM #{CustomValue.table_name} c WHERE c.custom_field_id = #{cf.id} AND c.customized_type = 'Enumeration' AND c.customized_id = #{TimeEntry.table_name}.activity_id)",
- :format => cf.field_format,
- :label => cf.name}
- end
-
@criterias = params[:criterias] || []
@criterias = @criterias.select{|criteria| @available_criterias.has_key? criteria}
@criterias.uniq!
@@ -225,8 +181,11 @@ def edit
def destroy
(render_404; return) unless @time_entry
(render_403; return) unless @time_entry.editable_by?(User.current)
- @time_entry.destroy
- flash[:notice] = l(:notice_successful_delete)
+ if @time_entry.destroy && @time_entry.destroyed?
+ flash[:notice] = l(:notice_successful_delete)
+ else
+ flash[:error] = l(:notice_unable_delete_time_entry)
+ end
redirect_to :back
rescue ::ActionController::RedirectBackError
redirect_to :action => 'details', :project_id => @time_entry.project
@@ -305,4 +264,54 @@ def retrieve_date_range
@from ||= (TimeEntry.minimum(:spent_on, :include => :project, :conditions => Project.allowed_to_condition(User.current, :view_time_entries)) || Date.today) - 1
@to ||= (TimeEntry.maximum(:spent_on, :include => :project, :conditions => Project.allowed_to_condition(User.current, :view_time_entries)) || Date.today)
end
+
+ def load_available_criterias
+ @available_criterias = { 'project' => {:sql => "#{TimeEntry.table_name}.project_id",
+ :klass => Project,
+ :label => :label_project},
+ 'version' => {:sql => "#{Issue.table_name}.fixed_version_id",
+ :klass => Version,
+ :label => :label_version},
+ 'category' => {:sql => "#{Issue.table_name}.category_id",
+ :klass => IssueCategory,
+ :label => :field_category},
+ 'member' => {:sql => "#{TimeEntry.table_name}.user_id",
+ :klass => User,
+ :label => :label_member},
+ 'tracker' => {:sql => "#{Issue.table_name}.tracker_id",
+ :klass => Tracker,
+ :label => :label_tracker},
+ 'activity' => {:sql => "#{TimeEntry.table_name}.activity_id",
+ :klass => TimeEntryActivity,
+ :label => :label_activity},
+ 'issue' => {:sql => "#{TimeEntry.table_name}.issue_id",
+ :klass => Issue,
+ :label => :label_issue}
+ }
+
+ # Add list and boolean custom fields as available criterias
+ custom_fields = (@project.nil? ? IssueCustomField.for_all : @project.all_issue_custom_fields)
+ custom_fields.select {|cf| %w(list bool).include? cf.field_format }.each do |cf|
+ @available_criterias["cf_#{cf.id}"] = {:sql => "(SELECT c.value FROM #{CustomValue.table_name} c WHERE c.custom_field_id = #{cf.id} AND c.customized_type = 'Issue' AND c.customized_id = #{Issue.table_name}.id)",
+ :format => cf.field_format,
+ :label => cf.name}
+ end if @project
+
+ # Add list and boolean time entry custom fields
+ TimeEntryCustomField.find(:all).select {|cf| %w(list bool).include? cf.field_format }.each do |cf|
+ @available_criterias["cf_#{cf.id}"] = {:sql => "(SELECT c.value FROM #{CustomValue.table_name} c WHERE c.custom_field_id = #{cf.id} AND c.customized_type = 'TimeEntry' AND c.customized_id = #{TimeEntry.table_name}.id)",
+ :format => cf.field_format,
+ :label => cf.name}
+ end
+
+ # Add list and boolean time entry activity custom fields
+ TimeEntryActivityCustomField.find(:all).select {|cf| %w(list bool).include? cf.field_format }.each do |cf|
+ @available_criterias["cf_#{cf.id}"] = {:sql => "(SELECT c.value FROM #{CustomValue.table_name} c WHERE c.custom_field_id = #{cf.id} AND c.customized_type = 'Enumeration' AND c.customized_id = #{TimeEntry.table_name}.activity_id)",
+ :format => cf.field_format,
+ :label => cf.name}
+ end
+
+ call_hook(:controller_timelog_available_criterias, { :available_criterias => @available_criterias, :project => @project })
+ @available_criterias
+ end
end
View
2 app/controllers/watchers_controller.rb
@@ -83,7 +83,7 @@ def set_watcher(user, watching)
replace_ids = [params[:replace]]
end
else
- replace_ids = 'watcher'
+ replace_ids = ['watcher']
end
respond_to do |format|
format.html { redirect_to :back }
View
4 app/helpers/projects_helper.rb
@@ -56,7 +56,10 @@ def render_project_hierarchy(projects)
s = ''
if projects.any?
ancestors = []
+ original_project = @project
projects.each do |project|
+ # set the project environment to please macros.
+ @project = project
if (ancestors.empty? || project.is_descendant_of?(ancestors.last))
s << "<ul class='projects #{ ancestors.empty? ? 'root' : nil}'>\n"
else
@@ -75,6 +78,7 @@ def render_project_hierarchy(projects)
ancestors << project
end
s << ("</li></ul>\n" * ancestors.size)
+ @project = original_project
end
s.html_safe
end
View
9 app/models/attachment.rb
@@ -113,7 +113,6 @@ def readable?
# :unsaved => array of the files that could not be attached
def self.attach_files(obj, attachments)
attached = []
- unsaved = []
if attachments && attachments.is_a?(Hash)
attachments.each_value do |attachment|
file = attachment['file']
@@ -122,7 +121,13 @@ def self.attach_files(obj, attachments)
:file => file,
:description => attachment['description'].to_s.strip,
:author => User.current)
- a.new_record? ? (obj.unsaved_attachments << a) : (attached << a)
+
+ if a.new_record?
+ obj.unsaved_attachments ||= []
+ obj.unsaved_attachments << a
+ else
+ attached << a
+ end
end
end
{:files => attached, :unsaved => obj.unsaved_attachments}
View
9 app/models/issue.rb
@@ -581,6 +581,7 @@ def update_nested_set_attributes
end
reload
elsif parent_issue_id != parent_id
+ former_parent_id = parent_id
# moving an existing issue
if @parent_issue && @parent_issue.root_id == root_id
# inside the same tree
@@ -610,12 +611,18 @@ def update_nested_set_attributes
relation.destroy unless relation.valid?
end
end
+ # update former parent
+ recalculate_attributes_for(former_parent_id) if former_parent_id
end
remove_instance_variable(:@parent_issue) if instance_variable_defined?(:@parent_issue)
end
def update_parent_attributes
- if parent_id && p = Issue.find_by_id(parent_id)
+ recalculate_attributes_for(parent_id) if parent_id
+ end
+
+ def recalculate_attributes_for(issue_id)
+ if issue_id && p = Issue.find_by_id(issue_id)
# priority = highest priority of children
if priority_position = p.children.maximum("#{IssuePriority.table_name}.position", :include => :priority)
p.priority = IssuePriority.find_by_position(priority_position)
View
4 app/models/mail_handler.rb
@@ -49,7 +49,7 @@ def receive(email)
logger.info "MailHandler: ignoring email from Redmine emission address [#{sender_email}]" if logger && logger.info
return false
end
- @user = User.find_by_mail(sender_email)
+ @user = User.find_by_mail(sender_email) if sender_email.present?
if @user && !@user.active?
logger.info "MailHandler: ignoring email from non-active user [#{@user.login}]" if logger && logger.info
return false
@@ -134,7 +134,7 @@ def receive_issue
if status && issue.new_statuses_allowed_to(user).include?(status)
issue.status = status
end
- issue.subject = email.subject.chomp
+ issue.subject = email.subject.chomp[0,255]
if issue.subject.blank?
issue.subject = '(no subject)'
end
View
18 app/models/user.rb
@@ -53,7 +53,7 @@ class User < Principal
attr_protected :login, :admin, :password, :password_confirmation, :hashed_password, :group_ids
validates_presence_of :login, :firstname, :lastname, :mail, :if => Proc.new { |user| !user.is_a?(AnonymousUser) }
- validates_uniqueness_of :login, :if => Proc.new { |user| !user.login.blank? }
+ validates_uniqueness_of :login, :if => Proc.new { |user| !user.login.blank? }, :case_sensitive => false
validates_uniqueness_of :mail, :if => Proc.new { |user| !user.mail.blank? }, :case_sensitive => false
# Login must contain lettres, numbers, underscores only
validates_format_of :login, :with => /^[a-z0-9_\-@\.]*$/i
@@ -90,7 +90,7 @@ def identity_url=(url)
def self.try_to_login(login, password)
# Make sure no one can sign in with an empty password
return nil if password.to_s.empty?
- user = find(:first, :conditions => ["login=?", login])
+ user = find_by_login(login)
if user
# user is already in local database
return nil if !user.active?
@@ -215,7 +215,19 @@ def notified_project_ids=(ids)
@notified_projects_ids = nil
notified_projects_ids
end
-
+
+ # Find a user account by matching the exact login and then a case-insensitive
+ # version. Exact matches will be given priority.
+ def self.find_by_login(login)
+ # force string comparison to be case sensitive on MySQL
+ type_cast = (ActiveRecord::Base.connection.adapter_name == 'MySQL') ? 'BINARY' : ''
+
+ # First look for an exact match
+ user = first(:conditions => ["#{type_cast} login = ?", login])
+ # Fail over to case-insensitive if none was found
+ user ||= first(:conditions => ["#{type_cast} LOWER(login) = ?", login.to_s.downcase])
+ end
+
def self.find_by_rss_key(key)
token = Token.find_by_value(key)
token && token.user.active? ? token.user : nil
View
6 app/views/common/_calendar.rhtml
@@ -1,12 +1,12 @@
<table class="cal">
<thead>
-<tr><td></td><% 7.times do |i| %><th><%= day_name( (calendar.first_wday+i)%7 ) %></th><% end %></tr>
+<tr><th scope="col" title="<%= l(:label_week) %>" class="week-number"></th><% 7.times do |i| %><th scope="col"><%= day_name( (calendar.first_wday+i)%7 ) %></th><% end %></tr>
</thead>
<tbody>
<tr>
<% day = calendar.startdt
while day <= calendar.enddt %>
-<%= "<th>#{day.cweek}</th>".html_safe if day.cwday == calendar.first_wday %>
+<%= raw("<td class='week-number' title='#{ l(:label_week) }'>#{(day+(11-day.cwday)%7).cweek}</td>") if day.cwday == calendar.first_wday %>
<td class="<%= day.month==calendar.month ? 'even' : 'odd' %><%= ' today' if Date.today == day %>">
<p class="day-num"><%= day.day %></p>
<% calendar.events_on(day).each do |i| %>
@@ -24,7 +24,7 @@ while day <= calendar.enddt %>
<% end %>
<% end %>
</td>
-<%= '</tr><tr>'.html_safe if day.cwday==calendar.last_wday and day!=calendar.enddt %>
+<%= raw('</tr><tr>') if day.cwday==calendar.last_wday and day!=calendar.enddt %>
<% day = day + 1
end %>
</tr>
View
4 app/views/issues/index.rhtml
@@ -10,7 +10,7 @@
<% form_tag({ :controller => 'queries', :action => 'new' }, :id => 'query_form') do %>
<%= hidden_field_tag('project_id', @project.to_param) if @project %>
- <div id="query_form_content">
+ <div id="query_form_content" class="hide-when-print">
<fieldset id="filters" class="collapsible <%= @query.new_record? ? "" : "collapsed" %>">
<legend onclick="toggleFieldset(this);"><%= l(:label_filter_plural) %></legend>
<div style="<%= @query.new_record? ? "" : "display: none;" %>">
@@ -33,7 +33,7 @@
</div>
</fieldset>
</div>
- <p class="buttons">
+ <p class="buttons hide-when-print">
<%= link_to_remote l(:button_apply),
{ :url => { :set_filter => 1 },
View
4 app/views/my/_sidebar.rhtml
@@ -17,10 +17,10 @@
<% if Setting.rest_api_enabled? %>
<h4><%= l(:label_api_access_key) %></h4>
-<p>
+<div>
<%= link_to_function(l(:button_show), "$('api-access-key').toggle();")%>
<pre id='api-access-key' class='autoscroll'><%= @user.api_key %></pre>
-</p>
+</div>
<%= javascript_tag("$('api-access-key').hide();") %>
<p>
<% if @user.api_token %>
View
5 app/views/projects/index.rhtml
@@ -1,6 +1,11 @@
+<% content_for :header_tags do %>
+ <%= auto_discovery_link_tag(:atom, {:action => 'index', :format => 'atom', :key => User.current.rss_key}) %>
+<% end %>
+
<div class="contextual">
<%= link_to(l(:label_project_new), {:controller => 'projects', :action => 'add'}, :class => 'icon icon-add') + ' |' if User.current.allowed_to?(:add_project, nil, :global => true) %>
<%= link_to(l(:label_issue_view_all), { :controller => 'issues' }) + ' |' if User.current.allowed_to?(:view_issues, nil, :global => true) %>
+ <%= link_to(l(:label_overall_spent_time), { :controller => 'time_entries' }) + ' |' if User.current.allowed_to?(:view_time_entries, nil, :global => true) %>
<%= link_to l(:label_overall_activity), { :controller => 'projects', :action => 'activity' }%>
</div>
View
2 app/views/reports/issue_report.rhtml
@@ -13,6 +13,7 @@
<h3><%=l(:field_author)%>&nbsp;&nbsp;<%= link_to image_tag('zoom_in.png'), :action => 'issue_report_details', :detail => 'author' %></h3>
<%= render :partial => 'simple', :locals => { :data => @issues_by_author, :field_name => "author_id", :rows => @authors } %>
<br />
+<%= call_hook(:view_reports_issue_report_split_content_left, :project => @project) %>
</div>
<div class="splitcontentright">
@@ -27,5 +28,6 @@
<h3><%=l(:field_category)%>&nbsp;&nbsp;<%= link_to image_tag('zoom_in.png'), :action => 'issue_report_details', :detail => 'category' %></h3>
<%= render :partial => 'simple', :locals => { :data => @issues_by_category, :field_name => "category_id", :rows => @categories } %>
<br />
+<%= call_hook(:view_reports_issue_report_split_content_right, :project => @project) %>
</div>
View
2 app/views/welcome/index.rhtml
@@ -18,11 +18,13 @@
<h3><%=l(:label_project_latest)%></h3>
<ul>
<% for project in @projects %>
+ <% @project = project %>
<li>
<%= link_to h(project.name), :controller => 'projects', :action => 'show', :id => project %> (<%= format_time(project.created_on) %>)
<%= textilizable project.short_description, :project => project %>
</li>
<% end %>
+ <% @project = nil %>
</ul>
</div>
<% end %>
View
2 config/environments/test.rb
@@ -19,5 +19,3 @@
config.action_mailer.perform_deliveries = true
config.action_mailer.delivery_method = :test
end
-
-
View
4 config/locales/bg.yml
@@ -574,7 +574,7 @@ bg:
text_issue_category_reassign_to: Преобвързване с категория
default_role_manager: Мениджър
- default_role_developper: Разработчик
+ default_role_developer: Разработчик
default_role_reporter: Публикуващ
default_tracker_bug: Бъг
default_tracker_feature: Функционалност
@@ -896,3 +896,5 @@ bg:
notice_failed_to_save_members: "Failed to save member(s): {{errors}}."
text_zoom_out: Zoom out
text_zoom_in: Zoom in
+ notice_unable_delete_time_entry: Unable to delete time log entry.
+ label_overall_spent_time: Overall spent time
View
4 config/locales/bs.yml
@@ -788,7 +788,7 @@ bs:
text_custom_field_possible_values_info: 'Jedna linija za svaku vrijednost'
default_role_manager: Menadžer
- default_role_developper: Programer
+ default_role_developer: Programer
default_role_reporter: Reporter
default_tracker_bug: Greška
default_tracker_feature: Nova funkcija
@@ -920,3 +920,5 @@ bs:
notice_failed_to_save_members: "Failed to save member(s): {{errors}}."
text_zoom_out: Zoom out
text_zoom_in: Zoom in
+ notice_unable_delete_time_entry: Unable to delete time log entry.
+ label_overall_spent_time: Overall spent time
View
4 config/locales/ca.yml
@@ -775,7 +775,7 @@ ca:
text_custom_field_possible_values_info: 'Una línia per a cada valor'
default_role_manager: Gestor
- default_role_developper: Desenvolupador
+ default_role_developer: Desenvolupador
default_role_reporter: Informador
default_tracker_bug: Error
default_tracker_feature: Característica
@@ -899,3 +899,5 @@ ca:
notice_failed_to_save_members: "Failed to save member(s): {{errors}}."
text_zoom_out: Zoom out
text_zoom_in: Zoom in
+ notice_unable_delete_time_entry: Unable to delete time log entry.
+ label_overall_spent_time: Overall spent time
View
4 config/locales/cs.yml
@@ -681,7 +681,7 @@ cs:
text_reassign_time_entries: 'Přeřadit evidované hodiny k tomuto úkolu:'
default_role_manager: Manažer
- default_role_developper: Vývojář
+ default_role_developer: Vývojář
default_role_reporter: Reportér
default_tracker_bug: Chyba
default_tracker_feature: Požadavek
@@ -902,3 +902,5 @@ cs:
notice_failed_to_save_members: "Failed to save member(s): {{errors}}."
text_zoom_out: Zoom out
text_zoom_in: Zoom in
+ notice_unable_delete_time_entry: Unable to delete time log entry.
+ label_overall_spent_time: Overall spent time
View
4 config/locales/da.yml
@@ -683,7 +683,7 @@ da:
text_rmagick_available: RMagick tilgængelig (valgfri)
default_role_manager: Leder
- default_role_developper: Udvikler
+ default_role_developer: Udvikler
default_role_reporter: Rapportør
default_tracker_bug: Bug
default_tracker_feature: Feature
@@ -922,3 +922,5 @@ da:
notice_failed_to_save_members: "Failed to save member(s): {{errors}}."
text_zoom_out: Zoom out
text_zoom_in: Zoom in
+ notice_unable_delete_time_entry: Unable to delete time log entry.
+ label_overall_spent_time: Overall spent time
View
4 config/locales/de.yml
@@ -175,6 +175,7 @@ de:
notice_account_pending: "Ihr Konto wurde erstellt und wartet jetzt auf die Genehmigung des Administrators."
notice_default_data_loaded: Die Standard-Konfiguration wurde erfolgreich geladen.
notice_unable_delete_version: Die Version konnte nicht gelöscht werden.
+ notice_unable_delete_time_entry: Der Zeiterfassungseintrag konnte nicht gelöscht werden.
notice_issue_done_ratios_updated: Der Ticket-Fortschritt wurde aktualisiert.
error_can_t_load_default_data: "Die Standard-Konfiguration konnte nicht geladen werden: {{value}}"
@@ -646,6 +647,7 @@ de:
label_changes_details: Details aller Änderungen
label_issue_tracking: Tickets
label_spent_time: Aufgewendete Zeit
+ label_overall_spent_time: Aufgewendete Zeit aller Projekte anzeigen
label_f_hour: "{{value}} Stunde"
label_f_hour_plural: "{{value}} Stunden"
label_time_tracking: Zeiterfassung
@@ -880,7 +882,7 @@ de:
Sind Sie sicher, dass Sie dies tun möchten?
default_role_manager: Manager
- default_role_developper: Entwickler
+ default_role_developer: Entwickler
default_role_reporter: Reporter
default_tracker_bug: Fehler
default_tracker_feature: Feature
View
4 config/locales/el.yml
@@ -799,7 +799,7 @@ el:
text_wiki_page_reassign_children: "Επανεκχώριση των σελίδων τέκνων στη γονική σελίδα"
default_role_manager: Manager
- default_role_developper: Developer
+ default_role_developer: Developer
default_role_reporter: Reporter
default_tracker_bug: Σφάλματα
default_tracker_feature: Λειτουργίες
@@ -902,3 +902,5 @@ el:
notice_failed_to_save_members: "Failed to save member(s): {{errors}}."
text_zoom_out: Zoom out
text_zoom_in: Zoom in
+ notice_unable_delete_time_entry: Unable to delete time log entry.
+ label_overall_spent_time: Overall spent time
View
909 config/locales/en-GB.yml
@@ -0,0 +1,909 @@
+en-GB:
+ date:
+ formats:
+ # Use the strftime parameters for formats.
+ # When no format has been given, it uses default.
+ # You can provide other formats here if you like!
+ default: "%d/%m/%Y"
+ short: "%d %b"
+ long: "%d %B, %Y"
+
+ day_names: [Sunday, Monday, Tuesday, Wednesday, Thursday, Friday, Saturday]
+ abbr_day_names: [Sun, Mon, Tue, Wed, Thu, Fri, Sat]
+
+ # Don't forget the nil at the beginning; there's no such thing as a 0th month
+ month_names: [~, January, February, March, April, May, June, July, August, September, October, November, December]
+ abbr_month_names: [~, Jan, Feb, Mar, Apr, May, Jun, Jul, Aug, Sep, Oct, Nov, Dec]
+ # Used in date_select and datime_select.
+ order: [ :year, :month, :day ]
+
+ time:
+ formats:
+ default: "%d/%m/%Y %I:%M %p"
+ time: "%I:%M %p"
+ short: "%d %b %H:%M"
+ long: "%d %B, %Y %H:%M"
+ am: "am"
+ pm: "pm"
+
+ datetime:
+ distance_in_words:
+ half_a_minute: "half a minute"
+ less_than_x_seconds:
+ one: "less than 1 second"
+ other: "less than {{count}} seconds"
+ x_seconds:
+ one: "1 second"
+ other: "{{count}} seconds"
+ less_than_x_minutes:
+ one: "less than a minute"
+ other: "less than {{count}} minutes"
+ x_minutes:
+ one: "1 minute"
+ other: "{{count}} minutes"
+ about_x_hours:
+ one: "about 1 hour"
+ other: "about {{count}} hours"
+ x_days:
+ one: "1 day"
+ other: "{{count}} days"
+ about_x_months:
+ one: "about 1 month"
+ other: "about {{count}} months"
+ x_months:
+ one: "1 month"
+ other: "{{count}} months"
+ about_x_years:
+ one: "about 1 year"
+ other: "about {{count}} years"
+ over_x_years:
+ one: "over 1 year"
+ other: "over {{count}} years"
+ almost_x_years:
+ one: "almost 1 year"
+ other: "almost {{count}} years"
+
+ number:
+ currency:
+ format:
+ format: "%u%n"
+ unit: "£"
+ human:
+ format:
+ delimiter: ""
+ precision: 1
+ storage_units:
+ format: "%n %u"
+ units:
+ byte:
+ one: "Byte"
+ other: "Bytes"
+ kb: "KB"
+ mb: "MB"
+ gb: "GB"
+ tb: "TB"
+
+
+# Used in array.to_sentence.
+ support:
+ array:
+ sentence_connector: "and"
+ skip_last_comma: false
+
+ activerecord:
+ errors:
+ messages:
+ inclusion: "is not included in the list"
+ exclusion: "is reserved"
+ invalid: "is invalid"
+ confirmation: "doesn't match confirmation"
+ accepted: "must be accepted"
+ empty: "can't be empty"
+ blank: "can't be blank"
+ too_long: "is too long (maximum is {{count}} characters)"
+ too_short: "is too short (minimum is {{count}} characters)"
+ wrong_length: "is the wrong length (should be {{count}} characters)"
+ taken: "has already been taken"
+ not_a_number: "is not a number"
+ not_a_date: "is not a valid date"
+ greater_than: "must be greater than {{count}}"
+ greater_than_or_equal_to: "must be greater than or equal to {{count}}"
+ equal_to: "must be equal to {{count}}"
+ less_than: "must be less than {{count}}"
+ less_than_or_equal_to: "must be less than or equal to {{count}}"
+ odd: "must be odd"
+ even: "must be even"
+ greater_than_start_date: "must be greater than start date"
+ not_same_project: "doesn't belong to the same project"
+ circular_dependency: "This relation would create a circular dependency"
+
+ actionview_instancetag_blank_option: Please select
+
+ general_text_No: 'No'
+ general_text_Yes: 'Yes'
+ general_text_no: 'no'
+ general_text_yes: 'yes'
+ general_lang_name: 'English (British)'
+ general_csv_separator: ','
+ general_csv_decimal_separator: '.'
+ general_csv_encoding: ISO-8859-1
+ general_pdf_encoding: ISO-8859-1
+ general_first_day_of_week: '1'
+
+ notice_account_updated: Account was successfully updated.
+ notice_account_invalid_creditentials: Invalid user or password
+ notice_account_password_updated: Password was successfully updated.
+ notice_account_wrong_password: Wrong password
+ notice_account_register_done: Account was successfully created. To activate your account, click on the link that was emailed to you.
+ notice_account_unknown_email: Unknown user.
+ notice_can_t_change_password: This account uses an external authentication source. Impossible to change the password.
+ notice_account_lost_email_sent: An email with instructions to choose a new password has been sent to you.
+ notice_account_activated: Your account has been activated. You can now log in.
+ notice_successful_create: Successful creation.
+ notice_successful_update: Successful update.
+ notice_successful_delete: Successful deletion.
+ notice_successful_connection: Successful connection.
+ notice_file_not_found: The page you were trying to access doesn't exist or has been removed.
+ notice_locking_conflict: Data has been updated by another user.
+ notice_not_authorized: You are not authorised to access this page.
+ notice_email_sent: "An email was sent to {{value}}"
+ notice_email_error: "An error occurred while sending mail ({{value}})"
+ notice_feeds_access_key_reseted: Your RSS access key was reset.
+ notice_api_access_key_reseted: Your API access key was reset.
+ notice_failed_to_save_issues: "Failed to save {{count}} issue(s) on {{total}} selected: {{ids}}."
+ notice_no_issue_selected: "No issue is selected! Please, check the issues you want to edit."
+ notice_account_pending: "Your account was created and is now pending administrator approval."
+ notice_default_data_loaded: Default configuration successfully loaded.
+ notice_unable_delete_version: Unable to delete version.
+ notice_issue_done_ratios_updated: Issue done ratios updated.
+
+ error_can_t_load_default_data: "Default configuration could not be loaded: {{value}}"
+ error_scm_not_found: "The entry or revision was not found in the repository."
+ error_scm_command_failed: "An error occurred when trying to access the repository: {{value}}"
+ error_scm_annotate: "The entry does not exist or can not be annotated."
+ error_issue_not_found_in_project: 'The issue was not found or does not belong to this project'
+ error_no_tracker_in_project: 'No tracker is associated to this project. Please check the Project settings.'
+ error_no_default_issue_status: 'No default issue status is defined. Please check your configuration (Go to "Administration -> Issue statuses").'
+ error_can_not_reopen_issue_on_closed_version: 'An issue assigned to a closed version can not be reopened'
+ error_can_not_archive_project: This project can not be archived
+ error_issue_done_ratios_not_updated: "Issue done ratios not updated."
+ error_workflow_copy_source: 'Please select a source tracker or role'
+ error_workflow_copy_target: 'Please select target tracker(s) and role(s)'
+
+ warning_attachments_not_saved: "{{count}} file(s) could not be saved."
+
+ mail_subject_lost_password: "Your {{value}} password"
+ mail_body_lost_password: 'To change your password, click on the following link:'
+ mail_subject_register: "Your {{value}} account activation"
+ mail_body_register: 'To activate your account, click on the following link:'
+ mail_body_account_information_external: "You can use your {{value}} account to log in."
+ mail_body_account_information: Your account information
+ mail_subject_account_activation_request: "{{value}} account activation request"
+ mail_body_account_activation_request: "A new user ({{value}}) has registered. The account is pending your approval:"
+ mail_subject_reminder: "{{count}} issue(s) due in the next days"
+ mail_body_reminder: "{{count}} issue(s) that are assigned to you are due in the next {{days}} days:"
+ mail_subject_wiki_content_added: "'{{page}}' wiki page has been added"
+ mail_body_wiki_content_added: "The '{{page}}' wiki page has been added by {{author}}."
+ mail_subject_wiki_content_updated: "'{{page}}' wiki page has been updated"
+ mail_body_wiki_content_updated: "The '{{page}}' wiki page has been updated by {{author}}."
+
+ gui_validation_error: 1 error
+ gui_validation_error_plural: "{{count}} errors"
+
+ field_name: Name
+ field_description: Description
+ field_summary: Summary
+ field_is_required: Required
+ field_firstname: Firstname
+ field_lastname: Lastname
+ field_mail: Email
+ field_filename: File
+ field_filesize: Size
+ field_downloads: Downloads
+ field_author: Author
+ field_created_on: Created
+ field_updated_on: Updated
+ field_field_format: Format
+ field_is_for_all: For all projects
+ field_possible_values: Possible values
+ field_regexp: Regular expression
+ field_min_length: Minimum length
+ field_max_length: Maximum length
+ field_value: Value
+ field_category: Category
+ field_title: Title
+ field_project: Project
+ field_issue: Issue
+ field_status: Status
+ field_notes: Notes
+ field_is_closed: Issue closed
+ field_is_default: Default value
+ field_tracker: Tracker
+ field_subject: Subject
+ field_due_date: Due date
+ field_assigned_to: Assigned to
+ field_priority: Priority
+ field_fixed_version: Target version
+ field_user: User
+ field_role: Role
+ field_homepage: Homepage
+ field_is_public: Public
+ field_parent: Subproject of
+ field_is_in_roadmap: Issues displayed in roadmap
+ field_login: Login
+ field_mail_notification: Email notifications
+ field_admin: Administrator
+ field_last_login_on: Last connection
+ field_language: Language
+ field_effective_date: Date
+ field_password: Password
+ field_new_password: New password
+ field_password_confirmation: Confirmation
+ field_version: Version
+ field_type: Type
+ field_host: Host
+ field_port: Port
+ field_account: Account
+ field_base_dn: Base DN
+ field_attr_login: Login attribute
+ field_attr_firstname: Firstname attribute
+ field_attr_lastname: Lastname attribute
+ field_attr_mail: Email attribute
+ field_onthefly: On-the-fly user creation
+ field_start_date: Start
+ field_done_ratio: % Done
+ field_auth_source: Authentication mode
+ field_hide_mail: Hide my email address
+ field_comments: Comment
+ field_url: URL
+ field_start_page: Start page
+ field_subproject: Subproject
+ field_hours: Hours
+ field_activity: Activity
+ field_spent_on: Date
+ field_identifier: Identifier
+ field_is_filter: Used as a filter
+ field_issue_to: Related issue
+ field_delay: Delay
+ field_assignable: Issues can be assigned to this role
+ field_redirect_existing_links: Redirect existing links
+ field_estimated_hours: Estimated time
+ field_column_names: Columns
+ field_time_zone: Time zone
+ field_searchable: Searchable
+ field_default_value: Default value
+ field_comments_sorting: Display comments
+ field_parent_title: Parent page
+ field_editable: Editable
+ field_watcher: Watcher
+ field_identity_url: OpenID URL
+ field_content: Content
+ field_group_by: Group results by
+ field_sharing: Sharing
+
+ setting_app_title: Application title
+ setting_app_subtitle: Application subtitle
+ setting_welcome_text: Welcome text
+ setting_default_language: Default language
+ setting_login_required: Authentication required
+ setting_self_registration: Self-registration
+ setting_attachment_max_size: Attachment max. size
+ setting_issues_export_limit: Issues export limit
+ setting_mail_from: Emission email address
+ setting_bcc_recipients: Blind carbon copy recipients (bcc)
+ setting_plain_text_mail: Plain text mail (no HTML)
+ setting_host_name: Host name and path
+ setting_text_formatting: Text formatting
+ setting_wiki_compression: Wiki history compression
+ setting_feeds_limit: Feed content limit
+ setting_default_projects_public: New projects are public by default
+ setting_autofetch_changesets: Autofetch commits
+ setting_sys_api_enabled: Enable WS for repository management
+ setting_commit_ref_keywords: Referencing keywords
+ setting_commit_fix_keywords: Fixing keywords
+ setting_autologin: Autologin
+ setting_date_format: Date format
+ setting_time_format: Time format
+ setting_cross_project_issue_relations: Allow cross-project issue relations
+ setting_issue_list_default_columns: Default columns displayed on the issue list
+ setting_repositories_encodings: Repositories encodings
+ setting_commit_logs_encoding: Commit messages encoding
+ setting_emails_footer: Emails footer
+ setting_protocol: Protocol
+ setting_per_page_options: Objects per page options
+ setting_user_format: Users display format
+ setting_activity_days_default: Days displayed on project activity
+ setting_display_subprojects_issues: Display subprojects issues on main projects by default
+ setting_enabled_scm: Enabled SCM
+ setting_mail_handler_body_delimiters: "Truncate emails after one of these lines"
+ setting_mail_handler_api_enabled: Enable WS for incoming emails
+ setting_mail_handler_api_key: API key
+ setting_sequential_project_identifiers: Generate sequential project identifiers
+ setting_gravatar_enabled: Use Gravatar user icons
+ setting_gravatar_default: Default Gravatar image
+ setting_diff_max_lines_displayed: Max number of diff lines displayed
+ setting_file_max_size_displayed: Max size of text files displayed inline
+ setting_repository_log_display_limit: Maximum number of revisions displayed on file log
+ setting_openid: Allow OpenID login and registration
+ setting_password_min_length: Minimum password length
+ setting_new_project_user_role_id: Role given to a non-admin user who creates a project
+ setting_default_projects_modules: Default enabled modules for new projects
+ setting_issue_done_ratio: Calculate the issue done ratio with
+ setting_issue_done_ratio_issue_field: Use the issue field
+ setting_issue_done_ratio_issue_status: Use the issue status
+ setting_start_of_week: Start calendars on
+ setting_rest_api_enabled: Enable REST web service
+ setting_cache_formatted_text: Cache formatted text
+
+ permission_add_project: Create project
+ permission_add_subprojects: Create subprojects
+ permission_edit_project: Edit project
+ permission_select_project_modules: Select project modules
+ permission_manage_members: Manage members
+ permission_manage_project_activities: Manage project activities
+ permission_manage_versions: Manage versions
+ permission_manage_categories: Manage issue categories
+ permission_view_issues: View Issues
+ permission_add_issues: Add issues
+ permission_edit_issues: Edit issues
+ permission_manage_issue_relations: Manage issue relations
+ permission_add_issue_notes: Add notes
+ permission_edit_issue_notes: Edit notes
+ permission_edit_own_issue_notes: Edit own notes
+ permission_move_issues: Move issues
+ permission_delete_issues: Delete issues
+ permission_manage_public_queries: Manage public queries
+ permission_save_queries: Save queries
+ permission_view_gantt: View gantt chart
+ permission_view_calendar: View calendar
+ permission_view_issue_watchers: View watchers list
+ permission_add_issue_watchers: Add watchers
+ permission_delete_issue_watchers: Delete watchers
+ permission_log_time: Log spent time
+ permission_view_time_entries: View spent time
+ permission_edit_time_entries: Edit time logs
+ permission_edit_own_time_entries: Edit own time logs
+ permission_manage_news: Manage news
+ permission_comment_news: Comment news
+ permission_manage_documents: Manage documents
+ permission_view_documents: View documents
+ permission_manage_files: Manage files
+ permission_view_files: View files
+ permission_manage_wiki: Manage wiki
+ permission_rename_wiki_pages: Rename wiki pages
+ permission_delete_wiki_pages: Delete wiki pages
+ permission_view_wiki_pages: View wiki
+ permission_view_wiki_edits: View wiki history
+ permission_edit_wiki_pages: Edit wiki pages
+ permission_delete_wiki_pages_attachments: Delete attachments
+ permission_protect_wiki_pages: Protect wiki pages
+ permission_manage_repository: Manage repository
+ permission_browse_repository: Browse repository
+ permission_view_changesets: View changesets
+ permission_commit_access: Commit access
+ permission_manage_boards: Manage boards
+ permission_view_messages: View messages
+ permission_add_messages: Post messages
+ permission_edit_messages: Edit messages
+ permission_edit_own_messages: Edit own messages
+ permission_delete_messages: Delete messages
+ permission_delete_own_messages: Delete own messages
+ permission_export_wiki_pages: Export wiki pages
+
+ project_module_issue_tracking: Issue tracking
+ project_module_time_tracking: Time tracking
+ project_module_news: News
+ project_module_documents: Documents
+ project_module_files: Files
+ project_module_wiki: Wiki
+ project_module_repository: Repository
+ project_module_boards: Boards
+
+ label_user: User
+ label_user_plural: Users
+ label_user_new: New user
+ label_user_anonymous: Anonymous
+ label_project: Project
+ label_project_new: New project
+ label_project_plural: Projects
+ label_x_projects:
+ zero: no projects
+ one: 1 project
+ other: "{{count}} projects"
+ label_project_all: All Projects
+ label_project_latest: Latest projects
+ label_issue: Issue
+ label_issue_new: New issue
+ label_issue_plural: Issues
+ label_issue_view_all: View all issues
+ label_issues_by: "Issues by {{value}}"
+ label_issue_added: Issue added
+ label_issue_updated: Issue updated
+ label_document: Document
+ label_document_new: New document
+ label_document_plural: Documents
+ label_document_added: Document added
+ label_role: Role
+ label_role_plural: Roles
+ label_role_new: New role
+ label_role_and_permissions: Roles and permissions
+ label_member: Member
+ label_member_new: New member
+ label_member_plural: Members
+ label_tracker: Tracker
+ label_tracker_plural: Trackers
+ label_tracker_new: New tracker
+ label_workflow: Workflow
+ label_issue_status: Issue status
+ label_issue_status_plural: Issue statuses
+ label_issue_status_new: New status
+ label_issue_category: Issue category
+ label_issue_category_plural: Issue categories
+ label_issue_category_new: New category
+ label_custom_field: Custom field
+ label_custom_field_plural: Custom fields
+ label_custom_field_new: New custom field
+ label_enumerations: Enumerations
+ label_enumeration_new: New value
+ label_information: Information
+ label_information_plural: Information
+ label_please_login: Please log in
+ label_register: Register
+ label_login_with_open_id_option: or login with OpenID
+ label_password_lost: Lost password
+ label_home: Home
+ label_my_page: My page
+ label_my_account: My account
+ label_my_projects: My projects
+ label_administration: Administration
+ label_login: Sign in
+ label_logout: Sign out
+ label_help: Help
+ label_reported_issues: Reported issues
+ label_assigned_to_me_issues: Issues assigned to me
+ label_last_login: Last connection
+ label_registered_on: Registered on
+ label_activity: Activity
+ label_overall_activity: Overall activity
+ label_user_activity: "{{value}}'s activity"
+ label_new: New
+ label_logged_as: Logged in as
+ label_environment: Environment
+ label_authentication: Authentication
+ label_auth_source: Authentication mode
+ label_auth_source_new: New authentication mode
+ label_auth_source_plural: Authentication modes
+ label_subproject_plural: Subprojects
+ label_subproject_new: New subproject
+ label_and_its_subprojects: "{{value}} and its subprojects"
+ label_min_max_length: Min - Max length
+ label_list: List
+ label_date: Date
+ label_integer: Integer
+ label_float: Float
+ label_boolean: Boolean
+ label_string: Text
+ label_text: Long text
+ label_attribute: Attribute
+ label_attribute_plural: Attributes
+ label_download: "{{count}} Download"
+ label_download_plural: "{{count}} Downloads"
+ label_no_data: No data to display
+ label_change_status: Change status
+ label_history: History
+ label_attachment: File
+ label_attachment_new: New file
+ label_attachment_delete: Delete file
+ label_attachment_plural: Files
+ label_file_added: File added
+ label_report: Report
+ label_report_plural: Reports
+ label_news: News
+ label_news_new: Add news
+ label_news_plural: News
+ label_news_latest: Latest news
+ label_news_view_all: View all news
+ label_news_added: News added
+ label_settings: Settings
+ label_overview: Overview
+ label_version: Version
+ label_version_new: New version
+ label_version_plural: Versions
+ label_close_versions: Close completed versions
+ label_confirmation: Confirmation
+ label_export_to: 'Also available in:'
+ label_read: Read...
+ label_public_projects: Public projects
+ label_open_issues: open
+ label_open_issues_plural: open
+ label_closed_issues: closed
+ label_closed_issues_plural: closed
+ label_x_open_issues_abbr_on_total:
+ zero: 0 open / {{total}}
+ one: 1 open / {{total}}
+ other: "{{count}} open / {{total}}"
+ label_x_open_issues_abbr:
+ zero: 0 open
+ one: 1 open
+ other: "{{count}} open"
+ label_x_closed_issues_abbr:
+ zero: 0 closed
+ one: 1 closed
+ other: "{{count}} closed"
+ label_total: Total
+ label_permissions: Permissions
+ label_current_status: Current status
+ label_new_statuses_allowed: New statuses allowed
+ label_all: all
+ label_none: none
+ label_nobody: nobody
+ label_next: Next
+ label_previous: Previous
+ label_used_by: Used by
+ label_details: Details
+ label_add_note: Add a note
+ label_per_page: Per page
+ label_calendar: Calendar
+ label_months_from: months from
+ label_gantt: Gantt
+ label_internal: Internal
+ label_last_changes: "last {{count}} changes"
+ label_change_view_all: View all changes
+ label_personalize_page: Personalise this page
+ label_comment: Comment
+ label_comment_plural: Comments
+ label_x_comments:
+ zero: no comments
+ one: 1 comment
+ other: "{{count}} comments"
+ label_comment_add: Add a comment
+ label_comment_added: Comment added
+ label_comment_delete: Delete comments
+ label_query: Custom query
+ label_query_plural: Custom queries
+ label_query_new: New query
+ label_filter_add: Add filter
+ label_filter_plural: Filters
+ label_equals: is
+ label_not_equals: is not
+ label_in_less_than: in less than
+ label_in_more_than: in more than
+ label_greater_or_equal: '>='
+ label_less_or_equal: '<='
+ label_in: in
+ label_today: today
+ label_all_time: all time
+ label_yesterday: yesterday
+ label_this_week: this week
+ label_last_week: last week
+ label_last_n_days: "last {{count}} days"
+ label_this_month: this month
+ label_last_month: last month
+ label_this_year: this year
+ label_date_range: Date range
+ label_less_than_ago: less than days ago
+ label_more_than_ago: more than days ago
+ label_ago: days ago
+ label_contains: contains
+ label_not_contains: doesn't contain
+ label_day_plural: days
+ label_repository: Repository
+ label_repository_plural: Repositories
+ label_browse: Browse
+ label_modification: "{{count}} change"
+ label_modification_plural: "{{count}} changes"
+ label_branch: Branch
+ label_tag: Tag
+ label_revision: Revision
+ label_revision_plural: Revisions
+ label_revision_id: "Revision {{value}}"
+ label_associated_revisions: Associated revisions
+ label_added: added
+ label_modified: modified
+ label_copied: copied
+ label_renamed: renamed
+ label_deleted: deleted
+ label_latest_revision: Latest revision
+ label_latest_revision_plural: Latest revisions
+ label_view_revisions: View revisions
+ label_view_all_revisions: View all revisions
+ label_max_size: Maximum size
+ label_sort_highest: Move to top
+ label_sort_higher: Move up
+ label_sort_lower: Move down
+ label_sort_lowest: Move to bottom
+ label_roadmap: Roadmap
+ label_roadmap_due_in: "Due in {{value}}"
+ label_roadmap_overdue: "{{value}} late"
+ label_roadmap_no_issues: No issues for this version
+ label_search: Search
+ label_result_plural: Results
+ label_all_words: All words
+ label_wiki: Wiki
+ label_wiki_edit: Wiki edit
+ label_wiki_edit_plural: Wiki edits
+ label_wiki_page: Wiki page
+ label_wiki_page_plural: Wiki pages
+ label_index_by_title: Index by title
+ label_index_by_date: Index by date
+ label_current_version: Current version
+ label_preview: Preview
+ label_feed_plural: Feeds
+ label_changes_details: Details of all changes
+ label_issue_tracking: Issue tracking
+ label_spent_time: Spent time
+ label_f_hour: "{{value}} hour"
+ label_f_hour_plural: "{{value}} hours"
+ label_time_tracking: Time tracking
+ label_change_plural: Changes
+ label_statistics: Statistics
+ label_commits_per_month: Commits per month
+ label_commits_per_author: Commits per author
+ label_view_diff: View differences
+ label_diff_inline: inline
+ label_diff_side_by_side: side by side
+ label_options: Options
+ label_copy_workflow_from: Copy workflow from
+ label_permissions_report: Permissions report
+ label_watched_issues: Watched issues
+ label_related_issues: Related issues
+ label_applied_status: Applied status
+ label_loading: Loading...
+ label_relation_new: New relation
+ label_relation_delete: Delete relation
+ label_relates_to: related to
+ label_duplicates: duplicates
+ label_duplicated_by: duplicated by
+ label_blocks: blocks
+ label_blocked_by: blocked by
+ label_precedes: precedes
+ label_follows: follows
+ label_end_to_start: end to start
+ label_end_to_end: end to end
+ label_start_to_start: start to start
+ label_start_to_end: start to end
+ label_stay_logged_in: Stay logged in
+ label_disabled: disabled
+ label_show_completed_versions: Show completed versions
+ label_me: me
+ label_board: Forum
+ label_board_new: New forum
+ label_board_plural: Forums
+ label_board_locked: Locked
+ label_board_sticky: Sticky
+ label_topic_plural: Topics
+ label_message_plural: Messages
+ label_message_last: Last message
+ label_message_new: New message
+ label_message_posted: Message added
+ label_reply_plural: Replies
+ label_send_information: Send account information to the user
+ label_year: Year
+ label_month: Month
+ label_week: Week
+ label_date_from: From
+ label_date_to: To
+ label_language_based: Based on user's language
+ label_sort_by: "Sort by {{value}}"
+ label_send_test_email: Send a test email
+ label_feeds_access_key: RSS access key
+ label_missing_feeds_access_key: Missing a RSS access key
+ label_feeds_access_key_created_on: "RSS access key created {{value}} ago"
+ label_module_plural: Modules
+ label_added_time_by: "Added by {{author}} {{age}} ago"
+ label_updated_time_by: "Updated by {{author}} {{age}} ago"
+ label_updated_time: "Updated {{value}} ago"
+ label_jump_to_a_project: Jump to a project...
+ label_file_plural: Files
+ label_changeset_plural: Changesets
+ label_default_columns: Default columns
+ label_no_change_option: (No change)
+ label_bulk_edit_selected_issues: Bulk edit selected issues
+ label_theme: Theme
+ label_default: Default
+ label_search_titles_only: Search titles only
+ label_user_mail_option_all: "For any event on all my projects"
+ label_user_mail_option_selected: "For any event on the selected projects only..."
+ label_user_mail_option_none: "Only for things I watch or I'm involved in"
+ label_user_mail_no_self_notified: "I don't want to be notified of changes that I make myself"
+ label_registration_activation_by_email: account activation by email
+ label_registration_manual_activation: manual account activation
+ label_registration_automatic_activation: automatic account activation
+ label_display_per_page: "Per page: {{value}}"
+ label_age: Age
+ label_change_properties: Change properties
+ label_general: General
+ label_more: More
+ label_scm: SCM
+ label_plugins: Plugins
+ label_ldap_authentication: LDAP authentication
+ label_downloads_abbr: D/L
+ label_optional_description: Optional description
+ label_add_another_file: Add another file
+ label_preferences: Preferences
+ label_chronological_order: In chronological order
+ label_reverse_chronological_order: In reverse chronological order
+ label_planning: Planning
+ label_incoming_emails: Incoming emails
+ label_generate_key: Generate a key
+ label_issue_watchers: Watchers
+ label_example: Example
+ label_display: Display
+ label_sort: Sort
+ label_ascending: Ascending
+ label_descending: Descending
+ label_date_from_to: From {{start}} to {{end}}
+ label_wiki_content_added: Wiki page added
+ label_wiki_content_updated: Wiki page updated
+ label_group: Group
+ label_group_plural: Groups
+ label_group_new: New group
+ label_time_entry_plural: Spent time
+ label_version_sharing_none: Not shared
+ label_version_sharing_descendants: With subprojects
+ label_version_sharing_hierarchy: With project hierarchy
+ label_version_sharing_tree: With project tree
+ label_version_sharing_system: With all projects
+ label_update_issue_done_ratios: Update issue done ratios
+ label_copy_source: Source
+ label_copy_target: Target
+ label_copy_same_as_target: Same as target
+ label_display_used_statuses_only: Only display statuses that are used by this tracker
+ label_api_access_key: API access key
+ label_missing_api_access_key: Missing an API access key
+ label_api_access_key_created_on: "API access key created {{value}} ago"
+
+ button_login: Login
+ button_submit: Submit
+ button_save: Save
+ button_check_all: Check all
+ button_uncheck_all: Uncheck all
+ button_delete: Delete
+ button_create: Create
+ button_create_and_continue: Create and continue
+ button_test: Test
+ button_edit: Edit
+ button_add: Add
+ button_change: Change
+ button_apply: Apply
+ button_clear: Clear
+ button_lock: Lock
+ button_unlock: Unlock
+ button_download: Download
+ button_list: List
+ button_view: View
+ button_move: Move
+ button_move_and_follow: Move and follow
+ button_back: Back
+ button_cancel: Cancel
+ button_activate: Activate
+ button_sort: Sort
+ button_log_time: Log time
+ button_rollback: Rollback to this version
+ button_watch: Watch
+ button_unwatch: Unwatch
+ button_reply: Reply
+ button_archive: Archive
+ button_unarchive: Unarchive
+ button_reset: Reset
+ button_rename: Rename
+ button_change_password: Change password
+ button_copy: Copy
+ button_copy_and_follow: Copy and follow
+ button_annotate: Annotate
+ button_update: Update
+ button_configure: Configure
+ button_quote: Quote
+ button_duplicate: Duplicate
+ button_show: Show
+
+ status_active: active
+ status_registered: registered
+ status_locked: locked
+
+ version_status_open: open
+ version_status_locked: locked
+ version_status_closed: closed
+
+ field_active: Active
+
+ text_select_mail_notifications: Select actions for which email notifications should be sent.
+ text_regexp_info: eg. ^[A-Z0-9]+$
+ text_min_max_length_info: 0 means no restriction
+ text_project_destroy_confirmation: Are you sure you want to delete this project and related data?
+ text_subprojects_destroy_warning: "Its subproject(s): {{value}} will be also deleted."
+ text_workflow_edit: Select a role and a tracker to edit the workflow
+ text_are_you_sure: Are you sure?
+ text_journal_changed: "{{label}} changed from {{old}} to {{new}}"
+ text_journal_set_to: "{{label}} set to {{value}}"
+ text_journal_deleted: "{{label}} deleted ({{old}})"
+ text_journal_added: "{{label}} {{value}} added"
+ text_tip_task_begin_day: task beginning this day
+ text_tip_task_end_day: task ending this day
+ text_tip_task_begin_end_day: task beginning and ending this day
+ text_project_identifier_info: 'Only lower case letters (a-z), numbers and dashes are allowed.<br />Once saved, the identifier can not be changed.'
+ text_caracters_maximum: "{{count}} characters maximum."
+ text_caracters_minimum: "Must be at least {{count}} characters long."
+ text_length_between: "Length between {{min}} and {{max}} characters."
+ text_tracker_no_workflow: No workflow defined for this tracker
+ text_unallowed_characters: Unallowed characters
+ text_comma_separated: Multiple values allowed (comma separated).
+ text_line_separated: Multiple values allowed (one line for each value).
+ text_issues_ref_in_commit_messages: Referencing and fixing issues in commit messages
+ text_issue_added: "Issue {{id}} has been reported by {{author}}."
+ text_issue_updated: "Issue {{id}} has been updated by {{author}}."
+ text_wiki_destroy_confirmation: Are you sure you want to delete this wiki and all its content?
+ text_issue_category_destroy_question: "Some issues ({{count}}) are assigned to this category. What do you want to do?"
+ text_issue_category_destroy_assignments: Remove category assignments
+ text_issue_category_reassign_to: Reassign issues to this category
+ text_user_mail_option: "For unselected projects, you will only receive notifications about things you watch or you're involved in (eg. issues you're the author or assignee)."
+ text_no_configuration_data: "Roles, trackers, issue statuses and workflow have not been configured yet.\nIt is highly recommended to load the default configuration. You will be able to modify it once loaded."
+ text_load_default_configuration: Load the default configuration
+ text_status_changed_by_changeset: "Applied in changeset {{value}}."
+ text_issues_destroy_confirmation: 'Are you sure you want to delete the selected issue(s)?'
+ text_select_project_modules: 'Select modules to enable for this project:'
+ text_default_administrator_account_changed: Default administrator account changed
+ text_file_repository_writable: Attachments directory writable
+ text_plugin_assets_writable: Plugin assets directory writable
+ text_rmagick_available: RMagick available (optional)
+ text_destroy_time_entries_question: "{{hours}} hours were reported on the issues you are about to delete. What do you want to do?"
+ text_destroy_time_entries: Delete reported hours
+ text_assign_time_entries_to_project: Assign reported hours to the project
+ text_reassign_time_entries: 'Reassign reported hours to this issue:'
+ text_user_wrote: "{{value}} wrote:"
+ text_enumeration_destroy_question: "{{count}} objects are assigned to this value."
+ text_enumeration_category_reassign_to: 'Reassign them to this value:'
+ text_email_delivery_not_configured: "Email delivery is not configured, and notifications are disabled.\nConfigure your SMTP server in config/email.yml and restart the application to enable them."
+ text_repository_usernames_mapping: "Select or update the Redmine user mapped to each username found in the repository log.\nUsers with the same Redmine and repository username or email are automatically mapped."
+ text_diff_truncated: '... This diff was truncated because it exceeds the maximum size that can be displayed.'
+ text_custom_field_possible_values_info: 'One line for each value'
+ text_wiki_page_destroy_question: "This page has {{descendants}} child page(s) and descendant(s). What do you want to do?"
+ text_wiki_page_nullify_children: "Keep child pages as root pages"
+ text_wiki_page_destroy_children: "Delete child pages and all their descendants"
+ text_wiki_page_reassign_children: "Reassign child pages to this parent page"
+ text_own_membership_delete_confirmation: "You are about to remove some or all of your permissions and may no longer be able to edit this project after that.\nAre you sure you want to continue?"
+
+ default_role_manager: Manager
+ default_role_developer: Developer
+ default_role_reporter: Reporter
+ default_tracker_bug: Bug
+ default_tracker_feature: Feature
+ default_tracker_support: Support
+ default_issue_status_new: New
+ default_issue_status_in_progress: In Progress
+ default_issue_status_resolved: Resolved
+ default_issue_status_feedback: Feedback
+ default_issue_status_closed: Closed
+ default_issue_status_rejected: Rejected
+ default_doc_category_user: User documentation
+ default_doc_category_tech: Technical documentation
+ default_priority_low: Low
+ default_priority_normal: Normal
+ default_priority_high: High
+ default_priority_urgent: Urgent
+ default_priority_immediate: Immediate
+ default_activity_design: Design
+ default_activity_development: Development
+
+ enumeration_issue_priorities: Issue priorities
+ enumeration_doc_categories: Document categories
+ enumeration_activities: Activities (time tracking)
+ enumeration_system_activity: System Activity
+
+ notice_unable_delete_time_entry: Unable to delete time log entry.
+ error_can_not_delete_custom_field: Unable to delete custom field
+ permission_manage_subtasks: Manage subtasks
+ label_profile: Profile
+ error_unable_to_connect: Unable to connect ({{value}})
+ label_overall_spent_time: Overall spent time
+ error_can_not_remove_role: This role is in use and can not be deleted.
+ field_principal: Principal
+ field_parent_issue: Parent task
+ label_my_page_block: My page block
+ text_zoom_out: Zoom out
+ text_zoom_in: Zoom in
+ error_unable_delete_issue_status: Unable to delete issue status
+ label_subtask_plural: Subtasks
+ error_can_not_delete_tracker: This tracker contains issues and can't be deleted.
+ notice_failed_to_save_members: "Failed to save member(s): {{errors}}."
+ label_project_copy_notifications: Send email notifications during the project copy
View
4 config/locales/en.yml
@@ -153,6 +153,7 @@ en:
notice_account_pending: "Your account was created and is now pending administrator approval."
notice_default_data_loaded: Default configuration successfully loaded.
notice_unable_delete_version: Unable to delete version.
+ notice_unable_delete_time_entry: Unable to delete time log entry.
notice_issue_done_ratios_updated: Issue done ratios updated.
error_can_t_load_default_data: "Default configuration could not be loaded: {{value}}"
@@ -638,6 +639,7 @@ en:
label_changes_details: Details of all changes
label_issue_tracking: Issue tracking
label_spent_time: Spent time
+ label_overall_spent_time: Overall spent time
label_f_hour: "{{value}} hour"
label_f_hour_plural: "{{value}} hours"
label_time_tracking: Time tracking
@@ -875,7 +877,7 @@ en:
text_zoom_out: Zoom out
default_role_manager: Manager
- default_role_developper: Developer
+ default_role_developer: Developer
default_role_reporter: Reporter
default_tracker_bug: Bug
default_tracker_feature: Feature
View
4 config/locales/es.yml
@@ -228,7 +228,7 @@ es:
default_priority_low: Baja
default_priority_normal: Normal
default_priority_urgent: Urgente
- default_role_developper: Desarrollador
+ default_role_developer: Desarrollador
default_role_manager: Jefe de proyecto
default_role_reporter: Informador
default_tracker_bug: Errores
@@ -946,3 +946,5 @@ es:
notice_failed_to_save_members: "Failed to save member(s): {{errors}}."
text_zoom_out: Zoom out
text_zoom_in: Zoom in
+ notice_unable_delete_time_entry: Unable to delete time log entry.
+ label_overall_spent_time: Overall spent time
View
4 config/locales/eu.yml
@@ -861,7 +861,7 @@ eu:
text_own_membership_delete_confirmation: "Zure baimen batzuk (edo guztiak) kentzera zoaz eta baliteke horren ondoren proiektu hau ezin editatzea.\n Ziur zaude jarraitu nahi duzula?"
default_role_manager: Kudeatzailea
- default_role_developper: Garatzailea
+ default_role_developer: Garatzailea
default_role_reporter: Berriemailea
default_tracker_bug: Errorea
default_tracker_feature: Eginbidea
@@ -906,3 +906,5 @@ eu:
notice_failed_to_save_members: "Failed to save member(s): {{errors}}."
text_zoom_out: Zoom out
text_zoom_in: Zoom in
+ notice_unable_delete_time_entry: Unable to delete time log entry.
+ label_overall_spent_time: Overall spent time
View
4 config/locales/fi.yml
@@ -657,7 +657,7 @@ fi:
text_load_default_configuration: Lataa vakioasetukset
default_role_manager: Päälikkö
- default_role_developper: Kehittäjä
+ default_role_developer: Kehittäjä
default_role_reporter: Tarkastelija
default_tracker_bug: Ohjelmointivirhe
default_tracker_feature: Ominaisuus
@@ -932,3 +932,5 @@ fi:
notice_failed_to_save_members: "Failed to save member(s): {{errors}}."
text_zoom_out: Zoom out
text_zoom_in: Zoom in
+ notice_unable_delete_time_entry: Unable to delete time log entry.
+ label_overall_spent_time: Overall spent time
View
4 config/locales/fr.yml
@@ -878,7 +878,7 @@ fr:
text_own_membership_delete_confirmation: "Vous allez supprimer tout ou partie de vos permissions sur ce projet et ne serez peut-être plus autorisé à modifier ce projet.\nEtes-vous sûr de vouloir continuer ?"
default_role_manager: "Manager "
- default_role_developper: "Développeur "
+ default_role_developer: "Développeur "
default_role_reporter: "Rapporteur "
default_tracker_bug: Anomalie
default_tracker_feature: Evolution
@@ -925,3 +925,5 @@ fr:
notice_failed_to_save_members: "Failed to save member(s): {{errors}}."
text_zoom_out: Zoom out
text_zoom_in: Zoom in
+ notice_unable_delete_time_entry: Unable to delete time log entry.
+ label_overall_spent_time: Overall spent time
View
4 config/locales/gl.yml
@@ -205,7 +205,7 @@ gl:
default_priority_low: Baixa
default_priority_normal: Normal
default_priority_urgent: Urxente
- default_role_developper: Desenvolvedor
+ default_role_developer: Desenvolvedor
default_role_manager: Xefe de proxecto
default_role_reporter: Informador
default_tracker_bug: Erros
@@ -922,3 +922,5 @@ gl:
notice_failed_to_save_members: "Failed to save member(s): {{errors}}."
text_zoom_out: Zoom out
text_zoom_in: Zoom in
+ notice_unable_delete_time_entry: Unable to delete time log entry.
+ label_overall_spent_time: Overall spent time
View
4 config/locales/he.yml
@@ -596,7 +596,7 @@ he:
text_issue_category_reassign_to: הצב מחדש את הקטגוריה לנושאים
default_role_manager: מנהל
- default_role_developper: מפתח
+ default_role_developer: מפתח
default_role_reporter: מדווח
default_tracker_bug: באג
default_tracker_feature: פיצ'ר
@@ -906,3 +906,5 @@ he:
notice_failed_to_save_members: "Failed to save member(s): {{errors}}."
text_zoom_out: Zoom out
text_zoom_in: Zoom in
+ notice_unable_delete_time_entry: Unable to delete time log entry.
+ label_overall_spent_time: Overall spent time
View
4 config/locales/hr.yml
@@ -854,7 +854,7 @@ hr:
text_wiki_page_destroy_children: "Delete child pages and all their descendants"
text_wiki_page_reassign_children: "Reassign child pages to this parent page"
default_role_manager: Upravitelj
- default_role_developper: Razvojni inženjer
+ default_role_developer: Razvojni inženjer
default_role_reporter: Korisnik
default_tracker_bug: Pogreška
default_tracker_feature: Funkcionalnost
@@ -909,3 +909,5 @@ hr:
notice_failed_to_save_members: "Failed to save member(s): {{errors}}."
text_zoom_out: Zoom out
text_zoom_in: Zoom in
+ notice_unable_delete_time_entry: Unable to delete time log entry.
+ label_overall_spent_time: Overall spent time
View
4 config/locales/hu.yml
@@ -712,7 +712,7 @@
text_reassign_time_entries: 'A rögzített órák újra hozzárendelése másik feladathoz:'
default_role_manager: Vezető
- default_role_developper: Fejlesztő
+ default_role_developer: Fejlesztő
default_role_reporter: Bejelentő
default_tracker_bug: Hiba
default_tracker_feature: Fejlesztés
@@ -929,3 +929,5 @@
notice_failed_to_save_members: "Failed to save member(s): {{errors}}."
text_zoom_out: Zoom out
text_zoom_in: Zoom in
+ notice_unable_delete_time_entry: Unable to delete time log entry.
+ label_overall_spent_time: Overall spent time
View
4 config/locales/id.yml
@@ -838,7 +838,7 @@ id:
text_wiki_page_reassign_children: "Tujukan halaman anak ke halaman induk yang ini"
default_role_manager: Manager
- default_role_developper: Pengembang
+ default_role_developer: Pengembang
default_role_reporter: Pelapor
default_tracker_bug: Bug
default_tracker_feature: Fitur
@@ -914,3 +914,5 @@ id:
notice_failed_to_save_members: "Failed to save member(s): {{errors}}."
text_zoom_out: Zoom out
text_zoom_in: Zoom in
+ notice_unable_delete_time_entry: Unable to delete time log entry.
+ label_overall_spent_time: Overall spent time
View
4 config/locales/it.yml
@@ -587,7 +587,7 @@ it:
text_issue_category_reassign_to: Riassegna segnalazioni a questa categoria
default_role_manager: Manager
- default_role_developper: Sviluppatore
+ default_role_developer: Sviluppatore
default_role_reporter: Reporter
default_tracker_bug: Segnalazione
default_tracker_feature: Funzione
@@ -909,3 +909,5 @@ it:
notice_failed_to_save_members: "Failed to save member(s): {{errors}}."
text_zoom_out: Zoom out
text_zoom_in: Zoom in
+ notice_unable_delete_time_entry: Unable to delete time log entry.
+ label_overall_spent_time: Overall spent time
View
4 config/locales/ja.yml
@@ -183,6 +183,7 @@ ja:
notice_account_pending: アカウントは作成済みで、管理者の承認待ちです。
notice_default_data_loaded: デフォルト設定をロードしました。
notice_unable_delete_version: バージョンを削除できません
+ notice_unable_delete_time_entry: 作業時間を削除できません
notice_issue_done_ratios_updated: チケットの進捗が更新されました。
error_can_t_load_default_data: "デフォルト設定がロードできませんでした: {{value}}"
@@ -670,6 +671,7 @@ ja:
label_changes_details: 全変更の詳細
label_issue_tracking: チケットトラッキング
label_spent_time: 作業時間の記録
+ label_overall_spent_time: 全ての作業時間の記録
label_f_hour: "{{value}}時間"
label_f_hour_plural: "{{value}}時間"
label_time_tracking: 時間トラッキング
@@ -906,7 +908,7 @@ ja:
text_zoom_out: 縮小
default_role_manager: 管理者
- default_role_developper: 開発者
+ default_role_developer: 開発者
default_role_reporter: 報告者
default_tracker_bug: バグ
default_tracker_feature: 機能
View
4 config/locales/ko.yml
@@ -852,7 +852,7 @@ ko:
text_wiki_page_reassign_children: 하위 페이지를 이 페이지 아래로 지정
default_role_manager: 관리자
- default_role_developper: 개발자
+ default_role_developer: 개발자
default_role_reporter: 보고자
default_tracker_bug: 결함
default_tracker_feature: 새기능
@@ -962,3 +962,5 @@ ko:
notice_failed_to_save_members: "Failed to save member(s): {{errors}}."
text_zoom_out: Zoom out
text_zoom_in: Zoom in
+ notice_unable_delete_time_entry: Unable to delete time log entry.
+ label_overall_spent_time: Overall spent time
View
4 config/locales/lt.yml
@@ -894,7 +894,7 @@ lt:
text_wiki_page_destroy_children: Pašalinti child puslapius ir jų sekinius
default_role_manager: Vadovas
- default_role_developper: Projektuotojas
+ default_role_developer: Projektuotojas
default_role_reporter: Pranešėjas
default_tracker_bug: Klaida
default_tracker_feature: Ypatybė
@@ -970,3 +970,5 @@ lt:
notice_failed_to_save_members: "Failed to save member(s): {{errors}}."
text_zoom_out: Zoom out
text_zoom_in: Zoom in
+ notice_unable_delete_time_entry: Unable to delete time log entry.
+ label_overall_spent_time: Overall spent time
View
4 config/locales/lv.yml
@@ -856,7 +856,7 @@ lv:
text_own_membership_delete_confirmation: "Jūs tūlīt dzēsīsiet dažas vai visas atļaujas, un Jums pēc tam var nebūt atļauja labot šo projektu.\nVai turpināt?"
default_role_manager: Menedžeris
- default_role_developper: Izstrādātājs
+ default_role_developer: Izstrādātājs
default_role_reporter: Ziņotājs
default_tracker_bug: Kļūda
default_tracker_feature: Iezīme
@@ -897,3 +897,5 @@ lv:
notice_failed_to_save_members: "Failed to save member(s): {{errors}}."
text_zoom_out: Zoom out
text_zoom_in: Zoom in
+ notice_unable_delete_time_entry: Unable to delete time log entry.
+ label_overall_spent_time: Overall spent time
View
4 config/locales/mn.yml
@@ -861,7 +861,7 @@ mn:
text_own_membership_delete_confirmation: "You are about to remove some or all of your permissions and may no longer be able to edit this project after that.\nAre you sure you want to continue?"
default_role_manager: Менежер
- default_role_developper: Хөгжүүлэгч
+ default_role_developer: Хөгжүүлэгч
default_role_reporter: Мэдэгдэгч
default_tracker_bug: Алдаа
default_tracker_feature: Онцлог
@@ -903,3 +903,5 @@ mn:
notice_failed_to_save_members: "Failed to save member(s): {{errors}}."
text_zoom_out: Zoom out
text_zoom_in: Zoom in
+ notice_unable_delete_time_entry: Unable to delete time log entry.