Compare commits

...

42 Commits
1.1.2 ... 1.1.3

Author SHA1 Message Date
Jean-Philippe Lang
7e5ef18503 tagged version 1.1.3
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/tags/1.1.3@5594 e93f8b46-1217-0410-a6f0-8f06a7374b81
2011-04-29 09:37:47 +00:00
Jean-Philippe Lang
3f302b66ce Updates for 1.1.3 release.
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/branches/1.1-stable@5592 e93f8b46-1217-0410-a6f0-8f06a7374b81
2011-04-29 09:23:34 +00:00
Jean-Philippe Lang
32022267af Merged r5285 from trunk.
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/branches/1.1-stable@5591 e93f8b46-1217-0410-a6f0-8f06a7374b81
2011-04-29 09:07:40 +00:00
Jean-Philippe Lang
f078f7127c Merged r5283 from trunk.
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/branches/1.1-stable@5590 e93f8b46-1217-0410-a6f0-8f06a7374b81
2011-04-29 09:06:32 +00:00
Jean-Philippe Lang
c2cd4b7f48 Merged r5176 from trunk.
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/branches/1.1-stable@5589 e93f8b46-1217-0410-a6f0-8f06a7374b81
2011-04-29 09:02:29 +00:00
Jean-Philippe Lang
0b5b8bebd1 Merged r5171 from trunk.
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/branches/1.1-stable@5588 e93f8b46-1217-0410-a6f0-8f06a7374b81
2011-04-29 09:01:37 +00:00
Jean-Philippe Lang
9f36f18b39 Merged r4735 from trunk.
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/branches/1.1-stable@5587 e93f8b46-1217-0410-a6f0-8f06a7374b81
2011-04-29 08:59:30 +00:00
Jean-Philippe Lang
fab0774c4b Fixes Prototypejs Form.serialize() for multiple selects (#7954).
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/branches/1.1-stable@5586 e93f8b46-1217-0410-a6f0-8f06a7374b81
2011-04-29 07:38:24 +00:00
Jean-Philippe Lang
93c0b120de Merged r5469 from trunk.
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/branches/1.1-stable@5585 e93f8b46-1217-0410-a6f0-8f06a7374b81
2011-04-29 07:37:03 +00:00
Jean-Philippe Lang
e20191e666 Backported r5581 from trunk.
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/branches/1.1-stable@5584 e93f8b46-1217-0410-a6f0-8f06a7374b81
2011-04-29 07:34:09 +00:00
Jean-Philippe Lang
8d3b32644b Merged r5330 from trunk.
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/branches/1.1-stable@5583 e93f8b46-1217-0410-a6f0-8f06a7374b81
2011-04-29 07:31:21 +00:00
Jean-Philippe Lang
6153d5ab83 Merged r5265 from trunk.
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/branches/1.1-stable@5582 e93f8b46-1217-0410-a6f0-8f06a7374b81
2011-04-29 07:29:23 +00:00
Jean-Philippe Lang
f49904569d Merged r5215 from trunk.
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/branches/1.1-stable@5580 e93f8b46-1217-0410-a6f0-8f06a7374b81
2011-04-29 07:16:39 +00:00
Jean-Philippe Lang
f48460da4f Merged r5300 from trunk.
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/branches/1.1-stable@5579 e93f8b46-1217-0410-a6f0-8f06a7374b81
2011-04-29 07:15:46 +00:00
Jean-Philippe Lang
bd55d7f815 Merged r5232 from trunk.
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/branches/1.1-stable@5578 e93f8b46-1217-0410-a6f0-8f06a7374b81
2011-04-29 07:14:52 +00:00
Jean-Philippe Lang
4402e7e232 Merged r5214 from trunk.
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/branches/1.1-stable@5577 e93f8b46-1217-0410-a6f0-8f06a7374b81
2011-04-29 07:13:59 +00:00
Jean-Philippe Lang
b43ebcbdc4 Merged r5186 from trunk.
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/branches/1.1-stable@5576 e93f8b46-1217-0410-a6f0-8f06a7374b81
2011-04-29 07:12:52 +00:00
Jean-Philippe Lang
55fd2f5562 Merged r5185 from trunk.
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/branches/1.1-stable@5575 e93f8b46-1217-0410-a6f0-8f06a7374b81
2011-04-29 07:11:56 +00:00
Jean-Philippe Lang
8a734f9997 Merged r5157 from trunk.
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/branches/1.1-stable@5574 e93f8b46-1217-0410-a6f0-8f06a7374b81
2011-04-29 07:10:27 +00:00
Jean-Philippe Lang
d60949ca87 Merged r5181 from trunk.
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/branches/1.1-stable@5573 e93f8b46-1217-0410-a6f0-8f06a7374b81
2011-04-29 07:09:19 +00:00
Jean-Philippe Lang
aef8228b0e Merged r5100 from trunk.
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/branches/1.1-stable@5572 e93f8b46-1217-0410-a6f0-8f06a7374b81
2011-04-29 07:08:39 +00:00
Jean-Philippe Lang
20e6652109 Merged r5236 from trunk.
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/branches/1.1-stable@5571 e93f8b46-1217-0410-a6f0-8f06a7374b81
2011-04-29 07:07:28 +00:00
Jean-Philippe Lang
d2bc5a9473 Merged r5105 from trunk.
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/branches/1.1-stable@5570 e93f8b46-1217-0410-a6f0-8f06a7374b81
2011-04-29 07:05:41 +00:00
Jean-Philippe Lang
23e75d87d3 Merged r5097 from trunk.
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/branches/1.1-stable@5569 e93f8b46-1217-0410-a6f0-8f06a7374b81
2011-04-29 07:04:23 +00:00
Jean-Philippe Lang
8a13595c64 Merged r5230 from trunk.
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/branches/1.1-stable@5568 e93f8b46-1217-0410-a6f0-8f06a7374b81
2011-04-29 07:02:26 +00:00
Jean-Philippe Lang
7845843596 Merged r5225 from trunk.
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/branches/1.1-stable@5567 e93f8b46-1217-0410-a6f0-8f06a7374b81
2011-04-29 07:00:16 +00:00
Toshi MARUYAMA
f26a504045 Merged r5557 from trunk.
Delete doc/git.rdoc.

http://www.redmine.org/projects/redmine/wiki/Contribute?version=27 has the github mirror link.

git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/branches/1.1-stable@5558 e93f8b46-1217-0410-a6f0-8f06a7374b81
2011-04-27 22:43:42 +00:00
Toshi MARUYAMA
f274193893 Merged r5555 from trunk.
Remove obsolete github descriptions from doc/git.rdoc.

git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/branches/1.1-stable@5556 e93f8b46-1217-0410-a6f0-8f06a7374b81
2011-04-27 14:08:01 +00:00
Toshi MARUYAMA
0ba400834c Merged r5553 from trunk.
Fix notice_failed_to_save_issues format in es, gl and ca locales.

Contributed by Jose M. Prieto.

git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/branches/1.1-stable@5554 e93f8b46-1217-0410-a6f0-8f06a7374b81
2011-04-27 10:51:10 +00:00
Toshi MARUYAMA
e6148cfdd4 Merged r5502 from trunk.
Simplified Chinese translation updated by Peng Wang.

git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/branches/1.1-stable@5503 e93f8b46-1217-0410-a6f0-8f06a7374b81
2011-04-18 04:29:28 +00:00
Toshi MARUYAMA
99b1b95222 Merged r5500 from trunk.
Czech translation updated by Lubor Nosek.

git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/branches/1.1-stable@5501 e93f8b46-1217-0410-a6f0-8f06a7374b81
2011-04-17 23:42:31 +00:00
Toshi MARUYAMA
a9a5870d25 Merged r4901 from trunk.
Updated basque and czech translations. Contributed by Ales Zabala Alava and Michal Gebauer.

#7390 depends on this commit.

git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/branches/1.1-stable@5497 e93f8b46-1217-0410-a6f0-8f06a7374b81
2011-04-17 16:26:53 +00:00
Toshi MARUYAMA
f09f2e8e63 scm: git: backout r5336 (#8081, #8083).
Git on Redmine CI Server does not support "--no-decorate" option of "git log".

git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/branches/1.1-stable@5347 e93f8b46-1217-0410-a6f0-8f06a7374b81
2011-04-06 06:59:50 +00:00
Toshi MARUYAMA
2a1203bfef scm: git: backout r5340 (#8081, #8083).
Git on Redmine CI Server does not support "--no-decorate" option of "git log".

git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/branches/1.1-stable@5346 e93f8b46-1217-0410-a6f0-8f06a7374b81
2011-04-06 06:58:47 +00:00
Toshi MARUYAMA
f6918d0242 Merged r5338 from trunk.
scm: git: add "decorate = short" in config log section of test repository.

git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/branches/1.1-stable@5340 e93f8b46-1217-0410-a6f0-8f06a7374b81
2011-04-06 02:52:59 +00:00
Toshi MARUYAMA
e338f522dd Merged r5334 from trunk.
scm: git: add "--no-decorate" option in "git log".

git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/branches/1.1-stable@5336 e93f8b46-1217-0410-a6f0-8f06a7374b81
2011-04-05 23:18:29 +00:00
Jean-Philippe Lang
ab10e187a6 Merged r5322 from trunk.
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/branches/1.1-stable@5323 e93f8b46-1217-0410-a6f0-8f06a7374b81
2011-04-05 12:17:43 +00:00
Toshi MARUYAMA
12801275a8 Merged r5281 from trunk.
r5256 in trunk and r5271 in 1.1-stable fixed #7794 completely.
r5253 (r5183) in trunk and r5184 effect the width of the ASCII character of Japanese PDF.

Contributed by Jun NAITOH.

git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/branches/1.1-stable@5282 e93f8b46-1217-0410-a6f0-8f06a7374b81
2011-04-01 15:54:05 +00:00
Toshi MARUYAMA
e35e04de8e PDF: fix the width of the ASCII character of Japanese PDF (#7794).
r5256 in trunk has this change.
So, there is no need to commit in trunk.

Contributed by Jun NAITOH.

git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/branches/1.1-stable@5271 e93f8b46-1217-0410-a6f0-8f06a7374b81
2011-04-01 01:26:38 +00:00
Toshi MARUYAMA
3ca48e1ecf Merged r5233 from trunk.
i18n: fix typo general_pdf_encoding "UFT-8" in sl.yml.

git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/branches/1.1-stable@5234 e93f8b46-1217-0410-a6f0-8f06a7374b81
2011-03-28 01:14:15 +00:00
Toshi MARUYAMA
f49bbf48e7 Merged r5183 from trunk.
Fix an internal server error on formatting an issue as a PDF in Japanese.

Contributed by Yuki Sonoda.

git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/branches/1.1-stable@5184 e93f8b46-1217-0410-a6f0-8f06a7374b81
2011-03-21 06:17:06 +00:00
Toshi MARUYAMA
891ed84fe3 Merged r5091 from trunk.
scm: mercurial: add :order => 'id DESC' explicitly for MySQL test fails.

Because :order => 'id DESC' is defined at 'has_many',
there is no need to set 'order'.
But, MySQL test fails.
Sqlite3 and PostgreSQL pass.
Is this MySQL bug?

MySQL svn trunk test on Redmine CI server fails.
But, svn 1.1-stable passes.
If this is MySQL bug, this effects 1.1-stable, too.

git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/branches/1.1-stable@5092 e93f8b46-1217-0410-a6f0-8f06a7374b81
2011-03-11 07:46:23 +00:00
46 changed files with 4602 additions and 2631 deletions

View File

@@ -236,7 +236,13 @@ class IssuesController < ApplicationController
return unless api_request?
end
end
@issues.each(&:destroy)
@issues.each do |issue|
begin
issue.reload.destroy
rescue ::ActiveRecord::RecordNotFound # raised by #reload if issue no longer exists
# nothing to do, issue was already deleted (eg. by a parent)
end
end
respond_to do |format|
format.html { redirect_back_or_default(:action => 'index', :project_id => @project) }
format.api { head :ok }

View File

@@ -117,7 +117,6 @@ class ProjectsController < ApplicationController
Mailer.with_deliveries(params[:notifications] == '1') do
@project = Project.new
@project.safe_attributes = params[:project]
@project.enabled_module_names = params[:enabled_modules]
if validate_parent_id && @project.copy(@source_project, :only => params[:only])
@project.set_allowed_parent!(params[:project]['parent_id']) if params[:project].has_key?('parent_id')
flash[:notice] = l(:notice_successful_create)

View File

@@ -93,9 +93,6 @@ class WikiController < ApplicationController
# To prevent StaleObjectError exception when reverting to a previous version
@content.version = @page.content.version
rescue ActiveRecord::StaleObjectError
# Optimistic locking exception
flash[:error] = l(:notice_locking_conflict)
end
verify :method => :put, :only => :update, :render => {:nothing => true, :status => :method_not_allowed }
@@ -131,7 +128,8 @@ class WikiController < ApplicationController
rescue ActiveRecord::StaleObjectError
# Optimistic locking exception
flash[:error] = l(:notice_locking_conflict)
flash.now[:error] = l(:notice_locking_conflict)
render :action => 'edit'
end
# rename a page

View File

@@ -1,5 +1,5 @@
# redMine - project management software
# Copyright (C) 2006 Jean-Philippe Lang
# Redmine - project management software
# Copyright (C) 2006-2011 Jean-Philippe Lang
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
@@ -37,7 +37,7 @@ module CustomFieldsHelper
field_id = "#{name}_custom_field_values_#{custom_field.id}"
field_format = Redmine::CustomFieldFormat.find_by_name(custom_field.field_format)
case field_format.edit_as
case field_format.try(:edit_as)
when "date"
text_field_tag(field_name, custom_value.value, :id => field_id, :size => 10) +
calendar_for(field_id)
@@ -72,7 +72,7 @@ module CustomFieldsHelper
field_name = "#{name}[custom_field_values][#{custom_field.id}]"
field_id = "#{name}_custom_field_values_#{custom_field.id}"
field_format = Redmine::CustomFieldFormat.find_by_name(custom_field.field_format)
case field_format.edit_as
case field_format.try(:edit_as)
when "date"
text_field_tag(field_name, '', :id => field_id, :size => 10) +
calendar_for(field_id)

View File

@@ -185,7 +185,7 @@ class Changeset < ActiveRecord::Base
return nil if id.blank?
issue = Issue.find_by_id(id.to_i, :include => :project)
if issue
unless project == issue.project || project.is_ancestor_of?(issue.project) || project.is_descendant_of?(issue.project)
unless issue.project && (project == issue.project || project.is_ancestor_of?(issue.project) || project.is_descendant_of?(issue.project))
issue = nil
end
end

View File

@@ -34,7 +34,7 @@ class Issue < ActiveRecord::Base
has_many :relations_from, :class_name => 'IssueRelation', :foreign_key => 'issue_from_id', :dependent => :delete_all
has_many :relations_to, :class_name => 'IssueRelation', :foreign_key => 'issue_to_id', :dependent => :delete_all
acts_as_nested_set :scope => 'root_id'
acts_as_nested_set :scope => 'root_id', :dependent => :destroy
acts_as_attachable :after_remove => :attachment_removed
acts_as_customizable
acts_as_watchable
@@ -89,7 +89,6 @@ class Issue < ActiveRecord::Base
before_create :default_assign
before_save :close_duplicates, :update_done_ratio_from_issue_status
after_save :reschedule_following_issues, :update_nested_set_attributes, :update_parent_attributes, :create_journal
after_destroy :destroy_children
after_destroy :update_parent_attributes
# Returns true if usr or current user is allowed to view the issue
@@ -755,14 +754,6 @@ class Issue < ActiveRecord::Base
end
end
def destroy_children
unless leaf?
children.each do |child|
child.destroy
end
end
end
# Update issues so their versions are not pointing to a
# fixed_version that is not shared with the issue's project
def self.update_versions(conditions=nil)

View File

@@ -155,9 +155,10 @@ class MailHandler < ActionMailer::Base
# ignore CLI-supplied defaults for new issues
@@handler_options[:issue].clear
journal = issue.init_journal(user, cleaned_up_text_body)
journal = issue.init_journal(user)
issue.safe_attributes = issue_attributes_from_keywords(issue)
issue.safe_attributes = {'custom_field_values' => custom_field_values_from_keywords(issue)}
journal.notes = cleaned_up_text_body
add_attachments(issue)
issue.save!
logger.info "MailHandler: issue ##{issue.id} updated by #{user}" if logger && logger.info

View File

@@ -85,7 +85,7 @@ class Mailer < ActionMailer::Base
subject l(:mail_subject_reminder, :count => issues.size, :days => days)
body :issues => issues,
:days => days,
:issues_url => url_for(:controller => 'issues', :action => 'index', :set_filter => 1, :assigned_to_id => user.id, :sort_key => 'due_date', :sort_order => 'asc')
:issues_url => url_for(:controller => 'issues', :action => 'index', :set_filter => 1, :assigned_to_id => user.id, :sort => 'due_date:asc')
render_multipart('reminder', body)
end
@@ -114,11 +114,11 @@ class Mailer < ActionMailer::Base
added_to_url = ''
case container.class.name
when 'Project'
added_to_url = url_for(:controller => 'projects', :action => 'list_files', :id => container)
added_to_url = url_for(:controller => 'files', :action => 'index', :project_id => container)
added_to = "#{l(:label_project)}: #{container}"
recipients container.project.notified_users.select {|user| user.allowed_to?(:view_files, container.project)}.collect {|u| u.mail}
when 'Version'
added_to_url = url_for(:controller => 'projects', :action => 'list_files', :id => container.project_id)
added_to_url = url_for(:controller => 'files', :action => 'index', :project_id => container.project)
added_to = "#{l(:label_version)}: #{container.name}"
recipients container.project.notified_users.select {|user| user.allowed_to?(:view_files, container.project)}.collect {|u| u.mail}
when 'Document'
@@ -326,7 +326,7 @@ class Mailer < ActionMailer::Base
:conditions => s.conditions
).group_by(&:assigned_to)
issues_by_assignee.each do |assignee, issues|
deliver_reminder(assignee, issues, days) unless assignee.nil?
deliver_reminder(assignee, issues, days) if assignee && assignee.active?
end
end

View File

@@ -43,7 +43,7 @@ class Project < ActiveRecord::Base
has_many :time_entries, :dependent => :delete_all
has_many :queries, :dependent => :delete_all
has_many :documents, :dependent => :destroy
has_many :news, :dependent => :delete_all, :include => :author
has_many :news, :dependent => :destroy, :include => :author
has_many :issue_categories, :dependent => :delete_all, :order => "#{IssueCategory.table_name}.name"
has_many :boards, :dependent => :destroy, :order => "position ASC"
has_one :repository, :dependent => :destroy
@@ -56,7 +56,7 @@ class Project < ActiveRecord::Base
:join_table => "#{table_name_prefix}custom_fields_projects#{table_name_suffix}",
:association_foreign_key => 'custom_field_id'
acts_as_nested_set :order => 'name'
acts_as_nested_set :order => 'name', :dependent => :destroy
acts_as_attachable :view_permission => :view_files,
:delete_permission => :manage_files
@@ -79,7 +79,7 @@ class Project < ActiveRecord::Base
# reserved words
validates_exclusion_of :identifier, :in => %w( new )
before_destroy :delete_all_members, :destroy_children
before_destroy :delete_all_members
named_scope :has_module, lambda { |mod| { :conditions => ["#{Project.table_name}.id IN (SELECT em.project_id FROM #{EnabledModule.table_name} em WHERE em.name=?)", mod.to_s] } }
named_scope :active, { :conditions => "#{Project.table_name}.status = #{STATUS_ACTIVE}"}
@@ -509,10 +509,7 @@ class Project < ActiveRecord::Base
def enabled_module_names=(module_names)
if module_names && module_names.is_a?(Array)
module_names = module_names.collect(&:to_s).reject(&:blank?)
# remove disabled modules
enabled_modules.each {|mod| mod.destroy unless module_names.include?(mod.name)}
# add new modules
module_names.reject {|name| module_enabled?(name)}.each {|name| enabled_modules << EnabledModule.new(:name => name)}
self.enabled_modules = module_names.collect {|name| enabled_modules.detect {|mod| mod.name == name} || EnabledModule.new(:name => name)}
else
enabled_modules.clear
end
@@ -621,13 +618,6 @@ class Project < ActiveRecord::Base
private
# Destroys children before destroying self
def destroy_children
children.each do |child|
child.destroy
end
end
# Copies wiki from +project+
def copy_wiki(project)
# Check that the source project has a wiki first

View File

@@ -58,7 +58,7 @@ class Repository::Mercurial < Repository
# Returns the latest changesets for +path+; sorted by revision number
def latest_changesets(path, rev, limit=10)
if path.blank?
changesets.find(:all, :include => :user, :limit => limit)
changesets.find(:all, :include => :user, :limit => limit, :order => "id DESC")
else
changes.find(:all, :include => {:changeset => :user},
:conditions => ["path = ?", path.with_leading_slash],

View File

@@ -46,10 +46,10 @@ class Wiki < ActiveRecord::Base
def find_page(title, options = {})
title = start_page if title.blank?
title = Wiki.titleize(title)
page = pages.first(:conditions => ["LOWER(title) LIKE LOWER(?)", title])
page = pages.first(:conditions => ["LOWER(title) = LOWER(?)", title])
if !page && !(options[:with_redirect] == false)
# search for a redirect
redirect = redirects.first(:conditions => ["LOWER(title) LIKE LOWER(?)", title])
redirect = redirects.first(:conditions => ["LOWER(title) = LOWER(?)", title])
page = find_page(redirect.redirects_to, :with_redirect => false) if redirect
end
page

View File

@@ -3,7 +3,7 @@
<p><%= link_to_revision(changeset, changeset.project,
:text => "#{l(:label_revision)} #{changeset.format_identifier}") %><br />
<span class="author"><%= authoring(changeset.committed_on, changeset.author) %></span></p>
<div class="changeset-changes">
<div class="wiki">
<%= textilizable(changeset, :comments) %>
</div>
</div>

View File

@@ -3,15 +3,6 @@
<% labelled_tabular_form_for :project, @project, :url => { :action => "copy" } do |f| %>
<%= render :partial => 'form', :locals => { :f => f } %>
<fieldset class="box"><legend><%= l(:label_module_plural) %></legend>
<% Redmine::AccessControl.available_project_modules.each do |m| %>
<label class="floating">
<%= check_box_tag 'enabled_modules[]', m, @project.module_enabled?(m) %>
<%= l_or_humanize(m, :prefix => "project_module_") %>
</label>
<% end %>
</fieldset>
<fieldset class="box"><legend><%= l(:button_copy) %></legend>
<label class="block"><%= check_box_tag 'only[]', 'members', true %> <%= l(:label_member_plural) %> (<%= @source_project.members.count %>)</label>
<label class="block"><%= check_box_tag 'only[]', 'versions', true %> <%= l(:label_version_plural) %> (<%= @source_project.versions.count %>)</label>

View File

@@ -23,11 +23,11 @@
<% unless @pages.empty? %>
<% other_formats_links do |f| %>
<%= f.link_to 'Atom', :url => {:controller => 'activities', :action => 'show', :id => @project, :show_wiki_edits => 1, :key => User.current.rss_key} %>
<%= f.link_to 'Atom', :url => {:controller => 'activities', :action => 'index', :id => @project, :show_wiki_edits => 1, :key => User.current.rss_key} %>
<%= f.link_to('HTML', :url => {:action => 'export'}) if User.current.allowed_to?(:export_wiki_pages, @project) %>
<% end %>
<% end %>
<% content_for :header_tags do %>
<%= auto_discovery_link_tag(:atom, :controller => 'activities', :action => 'show', :id => @project, :show_wiki_edits => 1, :format => 'atom', :key => User.current.rss_key) %>
<%= auto_discovery_link_tag(:atom, :controller => 'activities', :action => 'index', :id => @project, :show_wiki_edits => 1, :format => 'atom', :key => User.current.rss_key) %>
<% end %>

View File

@@ -16,11 +16,11 @@
<% unless @pages.empty? %>
<% other_formats_links do |f| %>
<%= f.link_to 'Atom', :url => {:controller => 'activities', :action => 'show', :id => @project, :show_wiki_edits => 1, :key => User.current.rss_key} %>
<%= f.link_to 'Atom', :url => {:controller => 'activities', :action => 'index', :id => @project, :show_wiki_edits => 1, :key => User.current.rss_key} %>
<%= f.link_to('HTML', :url => {:action => 'export'}) if User.current.allowed_to?(:export_wiki_pages, @project) %>
<% end %>
<% end %>
<% content_for :header_tags do %>
<%= auto_discovery_link_tag(:atom, :controller => 'activities', :action => 'show', :id => @project, :show_wiki_edits => 1, :format => 'atom', :key => User.current.rss_key) %>
<%= auto_discovery_link_tag(:atom, :controller => 'activities', :action => 'index', :id => @project, :show_wiki_edits => 1, :format => 'atom', :key => User.current.rss_key) %>
<% end %>

View File

@@ -161,7 +161,7 @@ ca:
notice_email_error: "S'ha produït un error en enviar el correu (%{value})"
notice_feeds_access_key_reseted: "S'ha reiniciat la clau d'accés del RSS."
notice_api_access_key_reseted: "S'ha reiniciat la clau d'accés a l'API."
notice_failed_to_save_issues: "No s'han pogut desar %s assumptes de %{count} seleccionats: %{ids}."
notice_failed_to_save_issues: "No s'han pogut desar %{count} assumptes de %{total} seleccionats: %{ids}."
notice_failed_to_save_members: "No s'han pogut desar els membres: %{errors}."
notice_no_issue_selected: "No s'ha seleccionat cap assumpte. Activeu els assumptes que voleu editar."
notice_account_pending: "S'ha creat el compte i ara està pendent de l'aprovació de l'administrador."

View File

@@ -1,4 +1,9 @@
# Update to 1.1 by Michal Gebauer <mishak@mishak.net>
# Updated by Josef Liška <jl@chl.cz>
# CZ translation by Maxim Krušina | Massimo Filippi, s.r.o. | maxim@mxm.cz
# Based on original CZ translation by Jan Kadleček
cs:
# Text direction: Left-to-Right (ltr) or Right-to-Left (rtl)
direction: ltr
date:
formats:
@@ -26,7 +31,7 @@ cs:
long: "%B %d, %Y %H:%M"
am: "dop."
pm: "odp."
datetime:
distance_in_words:
half_a_minute: "půl minuty"
@@ -65,24 +70,26 @@ cs:
other: "téměř %{count} roky"
number:
# Výchozí formát pro čísla
format:
separator: "."
separator: "."
delimiter: ""
precision: 3
human:
format:
precision: 1
human:
format:
delimiter: ""
storage_units:
precision: 1
storage_units:
format: "%n %u"
units:
kb: KB
tb: TB
gb: GB
byte:
one: Byte
other: Bytes
mb: MB
units:
byte:
one: "Bajt"
other: "Bajtů"
kb: "kB"
mb: "MB"
gb: "GB"
tb: "TB"
# Used in array.to_sentence.
support:
@@ -94,8 +101,8 @@ cs:
errors:
template:
header:
one: "1 error prohibited this %{model} from being saved"
other: "%{count} errors prohibited this %{model} from being saved"
one: "1 chyba zabránila uložení %{model}"
other: "%{count} chyb zabránilo uložení %{model}"
messages:
inclusion: "není zahrnuto v seznamu"
exclusion: "je rezervováno"
@@ -122,10 +129,6 @@ cs:
circular_dependency: "Tento vztah by vytvořil cyklickou závislost"
cant_link_an_issue_with_a_descendant: "Úkol nemůže být spojen s jedním z jeho dílčích úkolů"
# Updated by Josef Liška <jl@chl.cz>
# CZ translation by Maxim Krušina | Massimo Filippi, s.r.o. | maxim@mxm.cz
# Based on original CZ translation by Jan Kadleček
actionview_instancetag_blank_option: Prosím vyberte
general_text_No: 'Ne'
@@ -154,20 +157,40 @@ cs:
notice_successful_connection: Úspěšné připojení.
notice_file_not_found: Stránka na kterou se snažíte zobrazit neexistuje nebo byla smazána.
notice_locking_conflict: Údaje byly změněny jiným uživatelem.
notice_scm_error: Záznam a/nebo revize neexistuje v repozitáři.
notice_not_authorized: Nemáte dostatečná práva pro zobrazení této stránky.
notice_not_authorized_archived_project: Projekt ke kterému se snažíte přistupovat byl archivován.
notice_email_sent: "Na adresu %{value} byl odeslán email"
notice_email_error: "Při odesílání emailu nastala chyba (%{value})"
notice_feeds_access_key_reseted: Váš klíč pro přístup k RSS byl resetován.
notice_api_access_key_reseted: Váš API přístupový klíč byl resetován.
notice_failed_to_save_issues: "Chyba při uložení %{count} úkolu(ů) z %{total} vybraných: %{ids}."
notice_failed_to_save_members: "Nepodařilo se uložit člena(y): %{errors}."
notice_no_issue_selected: "Nebyl zvolen žádný úkol. Prosím, zvolte úkoly, které chcete editovat"
notice_account_pending: "Váš účet byl vytvořen, nyní čeká na schválení administrátorem."
notice_default_data_loaded: Výchozí konfigurace úspěšně nahrána.
notice_unable_delete_version: Nemohu odstanit verzi
notice_unable_delete_time_entry: Nelze smazat čas ze záznamu.
notice_issue_done_ratios_updated: Koeficienty dokončení úkolu byly aktualizovány.
notice_gantt_chart_truncated: Graf byl oříznut, počet položek přesáhl limit pro zobrazení (%{max})
error_can_t_load_default_data: "Výchozí konfigurace nebyla nahrána: %{value}"
error_scm_not_found: "Položka a/nebo revize neexistují v repozitáři."
error_scm_command_failed: "Při pokusu o přístup k repozitáři došlo k chybě: %{value}"
error_scm_annotate: "Položka neexistuje nebo nemůže být komentována."
error_issue_not_found_in_project: 'Úkol nebyl nalezen nebo nepatří k tomuto projektu'
error_no_tracker_in_project: Žádná fronta nebyla přiřazena tomuto projektu. Prosím zkontroluje nastavení projektu.
error_no_default_issue_status: Není nastaven výchozí stav úkolu. Prosím zkontrolujte nastavení ("Administrace -> Stavy úkolů").
error_can_not_delete_custom_field: Nelze smazat volitelné pole
error_can_not_delete_tracker: Tato fronta obsahuje úkoly a nemůže být smazán.
error_can_not_remove_role: Tato role je právě používaná a nelze ji smazat.
error_can_not_reopen_issue_on_closed_version: Úkol přiřazený k uzavřené verzi nemůže být znovu otevřen
error_can_not_archive_project: Tento projekt nemůže být archivován
error_issue_done_ratios_not_updated: Koeficient dokončení úkolu nebyl aktualizován.
error_workflow_copy_source: Prosím vyberte zdrojovou frontu nebo roly
error_workflow_copy_target: Prosím vyberte cílovou frontu(y) a roly(e)
error_unable_delete_issue_status: Nelze smazat stavy úkolů
error_unable_to_connect: Nelze se připojit (%{value})
warning_attachments_not_saved: "%{count} soubor(ů) nebylo možné uložit."
mail_subject_lost_password: "Vaše heslo (%{value})"
mail_body_lost_password: 'Pro změnu vašeho hesla klikněte na následující odkaz:'
@@ -177,6 +200,12 @@ cs:
mail_body_account_information: Informace o vašem účtu
mail_subject_account_activation_request: "Aktivace %{value} účtu"
mail_body_account_activation_request: "Byl zaregistrován nový uživatel %{value}. Aktivace jeho účtu závisí na vašem potvrzení."
mail_subject_reminder: "%{count} úkol(ů) má termín během několik dní (%{days})"
mail_body_reminder: "%{count} úkol(ů), které máte přiřazeny má termín během několik dní (%{days}):"
mail_subject_wiki_content_added: "'%{id}' Wiki stránka byla přidána"
mail_body_wiki_content_added: "'%{id}' Wiki stránka byla přidána od %{author}."
mail_subject_wiki_content_updated: "'%{id}' Wiki stránka byla aktualizována"
mail_body_wiki_content_updated: "'%{id}' Wiki stránka byla aktualizována od %{author}."
gui_validation_error: 1 chyba
gui_validation_error_plural: "%{count} chyb(y)"
@@ -216,6 +245,7 @@ cs:
field_priority: Priorita
field_fixed_version: Cílová verze
field_user: Uživatel
field_principal: Hlavní
field_role: Role
field_homepage: Domovská stránka
field_is_public: Veřejný
@@ -260,10 +290,23 @@ cs:
field_redirect_existing_links: Přesměrovat stvávající odkazy
field_estimated_hours: Odhadovaná doba
field_column_names: Sloupce
field_time_entries: Zaznamenaný čas
field_time_zone: Časové pásmo
field_searchable: Umožnit vyhledávání
field_default_value: Výchozí hodnota
field_comments_sorting: Zobrazit komentáře
field_parent_title: Rodičovská stránka
field_editable: Editovatelný
field_watcher: Sleduje
field_identity_url: OpenID URL
field_content: Obsah
field_group_by: Seskupovat výsledky podle
field_sharing: Sdílení
field_parent_issue: Rodičovský úkol
field_member_of_group: Skupina přiřaditele
field_assigned_to_role: Role přiřaditele
field_text: Textové pole
field_visible: Viditelný
setting_app_title: Název aplikace
setting_app_subtitle: Podtitulek aplikace
@@ -275,6 +318,7 @@ cs:
setting_issues_export_limit: Limit pro export úkolů
setting_mail_from: Odesílat emaily z adresy
setting_bcc_recipients: Příjemci skryté kopie (bcc)
setting_plain_text_mail: pouze prostý text (ne HTML)
setting_host_name: Jméno serveru
setting_text_formatting: Formátování textu
setting_wiki_compression: Komprese historie Wiki
@@ -290,12 +334,94 @@ cs:
setting_cross_project_issue_relations: Povolit vazby úkolů napříč projekty
setting_issue_list_default_columns: Výchozí sloupce zobrazené v seznamu úkolů
setting_repositories_encodings: Kódování
setting_commit_logs_encoding: Kódování zpráv při commitu
setting_emails_header: Hlavička emailů
setting_emails_footer: Patička emailů
setting_protocol: Protokol
setting_per_page_options: Povolené počty řádků na stránce
setting_user_format: Formát zobrazení uživatele
setting_activity_days_default: Dny zobrazené v činnosti projektu
setting_display_subprojects_issues: Automaticky zobrazit úkoly podprojektu v hlavním projektu
setting_enabled_scm: Povolené SCM
setting_mail_handler_body_delimiters: Zkrátit e-maily po jednom z těchto řádků
setting_mail_handler_api_enabled: Povolit WS pro příchozí e-maily
setting_mail_handler_api_key: API klíč
setting_sequential_project_identifiers: Generovat sekvenční identifikátory projektů
setting_gravatar_enabled: Použít uživatelské ikony Gravatar
setting_gravatar_default: Výchozí Gravatar
setting_diff_max_lines_displayed: Maximální počet zobrazenách řádků rozdílů
setting_file_max_size_displayed: Maximální velikost textových souborů zobrazených přímo na stránce
setting_repository_log_display_limit: Maximální počet revizí zobrazených v logu souboru
setting_openid: Umožnit přihlašování a registrace s OpenID
setting_password_min_length: Minimální délka hesla
setting_new_project_user_role_id: Role přiřazená uživateli bez práv administrátora, který projekt vytvořil
setting_default_projects_modules: Výchozí zapnutné moduly pro nový projekt
setting_issue_done_ratio: Spočítat koeficient dokončení úkolu s
setting_issue_done_ratio_issue_field: Použít pole úkolu
setting_issue_done_ratio_issue_status: Použít stav úkolu
setting_start_of_week: Začínat kalendáře
setting_rest_api_enabled: Zapnout službu REST
setting_cache_formatted_text: Ukládat formátovaný text do vyrovnávací paměti
setting_default_notification_option: Výchozí nastavení oznámení
setting_commit_logtime_enabled: Povolit zapisování času
setting_commit_logtime_activity_id: Aktivita pro zapsaný čas
setting_gantt_items_limit: Maximální počet položek zobrazený na ganttově grafu
permission_add_project: Vytvořit projekt
permission_add_subprojects: Vytvořit podprojekty
permission_edit_project: Úprava projektů
permission_select_project_modules: Výběr modulů projektu
permission_manage_members: Spravování členství
permission_manage_project_activities: Spravovat aktivity projektu
permission_manage_versions: Spravování verzí
permission_manage_categories: Spravování kategorií úkolů
permission_view_issues: Zobrazit úkoly
permission_add_issues: Přidávání úkolů
permission_edit_issues: Upravování úkolů
permission_manage_issue_relations: Spravování vztahů mezi úkoly
permission_add_issue_notes: Přidávání poznámek
permission_edit_issue_notes: Upravování poznámek
permission_edit_own_issue_notes: Upravování vlastních poznámek
permission_move_issues: Přesouvání úkolů
permission_delete_issues: Mazání úkolů
permission_manage_public_queries: Správa veřejných dotazů
permission_save_queries: Ukládání dotazů
permission_view_gantt: Zobrazené Ganttova diagramu
permission_view_calendar: Prohlížení kalendáře
permission_view_issue_watchers: Zobrazení seznamu sledujícíh uživatelů
permission_add_issue_watchers: Přidání sledujících uživatelů
permission_delete_issue_watchers: Smazat přihlížející
permission_log_time: Zaznamenávání stráveného času
permission_view_time_entries: Zobrazení stráveného času
permission_edit_time_entries: Upravování záznamů o stráveném času
permission_edit_own_time_entries: Upravování vlastních zázamů o stráveném čase
permission_manage_news: Spravování novinek
permission_comment_news: Komentování novinek
permission_manage_documents: Správa dokumentů
permission_view_documents: Prohlížení dokumentů
permission_manage_files: Spravování souborů
permission_view_files: Prohlížení souborů
permission_manage_wiki: Spravování Wiki
permission_rename_wiki_pages: Přejmenovávání Wiki stránek
permission_delete_wiki_pages: Mazání stránek na Wiki
permission_view_wiki_pages: Prohlížení Wiki
permission_view_wiki_edits: Prohlížení historie Wiki
permission_edit_wiki_pages: Upravování stránek Wiki
permission_delete_wiki_pages_attachments: Mazání příloh
permission_protect_wiki_pages: Zabezpečení Wiki stránek
permission_manage_repository: Spravování repozitáře
permission_browse_repository: Procházení repozitáře
permission_view_changesets: Zobrazování sady změn
permission_commit_access: Commit přístup
permission_manage_boards: Správa diskusních fór
permission_view_messages: Prohlížení zpráv
permission_add_messages: Posílání zpráv
permission_edit_messages: Upravování zpráv
permission_edit_own_messages: Upravit vlastní zprávy
permission_delete_messages: Mazání zpráv
permission_delete_own_messages: Smazat vlastní zprávy
permission_export_wiki_pages: Exportovat Wiki stránky
permission_manage_subtasks: Spravovat podúkoly
project_module_issue_tracking: Sledování úkolů
project_module_time_tracking: Sledování času
@@ -305,10 +431,13 @@ cs:
project_module_wiki: Wiki
project_module_repository: Repozitář
project_module_boards: Diskuse
project_module_calendar: Kalendář
project_module_gantt: Gantt
label_user: Uživatel
label_user_plural: Uživatelé
label_user_new: Nový uživatel
label_user_anonymous: Anonymní
label_project: Projekt
label_project_new: Nový projekt
label_project_plural: Projekty
@@ -355,11 +484,13 @@ cs:
label_information_plural: Informace
label_please_login: Prosím přihlašte se
label_register: Registrovat
label_login_with_open_id_option: nebo se přihlašte s OpenID
label_password_lost: Zapomenuté heslo
label_home: Úvodní
label_my_page: Moje stránka
label_my_account: Můj účet
label_my_projects: Moje projekty
label_my_page_block: Bloky na mé stránce
label_administration: Administrace
label_login: Přihlášení
label_logout: Odhlášení
@@ -370,6 +501,7 @@ cs:
label_registered_on: Registrován
label_activity: Aktivita
label_overall_activity: Celková aktivita
label_user_activity: "Aktivita uživatele: %{value}"
label_new: Nový
label_logged_as: Přihlášen jako
label_environment: Prostředí
@@ -378,6 +510,8 @@ cs:
label_auth_source_new: Nový mód autentifikace
label_auth_source_plural: Módy autentifikace
label_subproject_plural: Podprojekty
label_subproject_new: Nový podprojekt
label_and_its_subprojects: "%{value} a jeho podprojekty"
label_min_max_length: Min - Max délka
label_list: Seznam
label_date: Datum
@@ -411,6 +545,7 @@ cs:
label_version: Verze
label_version_new: Nová verze
label_version_plural: Verze
label_close_versions: Zavřít dokončené verze
label_confirmation: Potvrzení
label_export_to: 'Také k dispozici:'
label_read: Načítá se...
@@ -469,6 +604,8 @@ cs:
label_not_equals: není
label_in_less_than: je měší než
label_in_more_than: je větší než
label_greater_or_equal: '>='
label_less_or_equal: '<='
label_in: v
label_today: dnes
label_all_time: vše
@@ -491,15 +628,21 @@ cs:
label_browse: Procházet
label_modification: "%{count} změna"
label_modification_plural: "%{count} změn"
label_branch: Větev
label_tag: Tag
label_revision: Revize
label_revision_plural: Revizí
label_revision_id: "Revize %{value}"
label_associated_revisions: Související verze
label_added: přidáno
label_modified: změněno
label_copied: zkopírováno
label_renamed: přejmenováno
label_deleted: odstraněno
label_latest_revision: Poslední revize
label_latest_revision_plural: Poslední revize
label_view_revisions: Zobrazit revize
label_view_all_revisions: Zobrazit všechny revize
label_max_size: Maximální velikost
label_sort_highest: Přesunout na začátek
label_sort_higher: Přesunout nahoru
@@ -525,6 +668,7 @@ cs:
label_changes_details: Detail všech změn
label_issue_tracking: Sledování úkolů
label_spent_time: Strávený čas
label_overall_spent_time: Celkem strávený čas
label_f_hour: "%{value} hodina"
label_f_hour_plural: "%{value} hodin"
label_time_tracking: Sledování času
@@ -545,7 +689,8 @@ cs:
label_relation_new: Nová souvislost
label_relation_delete: Odstranit souvislost
label_relates_to: související s
label_duplicates: duplicity
label_duplicates: duplikuje
label_duplicated_by: zduplikován
label_blocks: blokuje
label_blocked_by: zablokován
label_precedes: předchází
@@ -561,6 +706,8 @@ cs:
label_board: Fórum
label_board_new: Nové fórum
label_board_plural: Fóra
label_board_locked: Uzamčeno
label_board_sticky: Nálepka
label_topic_plural: Témata
label_message_plural: Zprávy
label_message_last: Poslední zpráva
@@ -576,9 +723,12 @@ cs:
label_language_based: Podle výchozího jazyku
label_sort_by: "Seřadit podle %{value}"
label_send_test_email: Poslat testovací email
label_feeds_access_key: Přístupový klíč pro RSS
label_missing_feeds_access_key: Postrádá přístupový klíč pro RSS
label_feeds_access_key_created_on: "Přístupový klíč pro RSS byl vytvořen před %{value}"
label_module_plural: Moduly
label_added_time_by: "Přidáno uživatelem %{author} před %{age}"
label_updated_time_by: "Aktualizováno uživatelem %{author} před %{age}"
label_updated_time: "Aktualizováno před %{value}"
label_jump_to_a_project: Vyberte projekt...
label_file_plural: Soubory
@@ -591,6 +741,10 @@ cs:
label_search_titles_only: Vyhledávat pouze v názvech
label_user_mail_option_all: "Pro všechny události všech mých projektů"
label_user_mail_option_selected: "Pro všechny události vybraných projektů..."
label_user_mail_option_none: "Žádné události"
label_user_mail_option_only_my_events: "Jen pro věci co sleduji nebo jsem v nich zapojen"
label_user_mail_option_only_assigned: "Jen pro všeci kterým sem přiřazen"
label_user_mail_option_only_owner: "Jen pro věci které vlastním"
label_user_mail_no_self_notified: "Nezasílat informace o mnou vytvořených změnách"
label_registration_activation_by_email: aktivace účtu emailem
label_registration_manual_activation: manuální aktivace účtu
@@ -609,6 +763,40 @@ cs:
label_preferences: Nastavení
label_chronological_order: V chronologickém pořadí
label_reverse_chronological_order: V obrácaném chronologickém pořadí
label_planning: Plánování
label_incoming_emails: Příchozí e-maily
label_generate_key: Generovat klíč
label_issue_watchers: Sledování
label_example: Příklad
label_display: Zobrazit
label_sort: Řazení
label_ascending: Vzestupně
label_descending: Sestupně
label_date_from_to: Od %{start} do %{end}
label_wiki_content_added: Wiki stránka přidána
label_wiki_content_updated: Wiki stránka aktualizována
label_group: Skupina
label_group_plural: Skupiny
label_group_new: Nová skupina
label_time_entry_plural: Strávený čas
label_version_sharing_none: Nesdíleno
label_version_sharing_descendants: S podprojekty
label_version_sharing_hierarchy: S hierarchií projektu
label_version_sharing_tree: Se stromem projektu
label_version_sharing_system: Se všemi projekty
label_update_issue_done_ratios: Aktualizovat koeficienty dokončení úkolů
label_copy_source: Zdroj
label_copy_target: Cíl
label_copy_same_as_target: Stejný jako cíl
label_display_used_statuses_only: Zobrazit pouze stavy které jsou použité touto frontou
label_api_access_key: API přístupový klíč
label_missing_api_access_key: Chybějící přístupový klíč API
label_api_access_key_created_on: API přístupový klíč vytvořen %{value}
label_profile: Profil
label_subtask_plural: Podúkol
label_project_copy_notifications: Odeslat email oznámení v průběhu kopie projektu
label_principal_search: "Hledat uživatele nebo skupinu:"
label_user_search: "Hledat uživatele:"
button_login: Přihlásit
button_submit: Potvrdit
@@ -617,8 +805,10 @@ cs:
button_uncheck_all: Odšrtnout vše
button_delete: Odstranit
button_create: Vytvořit
button_test: Test
button_create_and_continue: Vytvořit a pokračovat
button_test: Testovat
button_edit: Upravit
button_edit_associated_wikipage: "Upravit přiřazenou Wiki stránku: %{page_title}"
button_add: Přidat
button_change: Změnit
button_apply: Použít
@@ -629,6 +819,7 @@ cs:
button_list: Vypsat
button_view: Zobrazit
button_move: Přesunout
button_move_and_follow: Přesunout a následovat
button_back: Zpět
button_cancel: Storno
button_activate: Aktivovat
@@ -640,24 +831,40 @@ cs:
button_reply: Odpovědět
button_archive: Archivovat
button_unarchive: Odarchivovat
button_reset: Reset
button_reset: Resetovat
button_rename: Přejmenovat
button_change_password: Změnit heslo
button_copy: Kopírovat
button_copy_and_follow: Kopírovat a následovat
button_annotate: Komentovat
button_update: Aktualizovat
button_configure: Konfigurovat
button_quote: Citovat
button_duplicate: Duplikovat
button_show: Zobrazit
status_active: aktivní
status_registered: registrovaný
status_locked: uzamčený
version_status_open: otevřený
version_status_locked: uzamčený
version_status_closed: zavřený
field_active: Aktivní
text_select_mail_notifications: Vyberte akci při které bude zasláno upozornění emailem.
text_regexp_info: např. ^[A-Z0-9]+$
text_min_max_length_info: 0 znamená bez limitu
text_project_destroy_confirmation: Jste si jisti, že chcete odstranit tento projekt a všechna související data ?
text_subprojects_destroy_warning: "Jeho podprojek(y): %{value} budou také smazány."
text_workflow_edit: Vyberte roli a frontu k editaci průběhu práce
text_are_you_sure: Jste si jisti?
text_are_you_sure_with_children: Smazat úkol včetně všech podúkolů?
text_journal_changed: "%{label} změněn z %{old} na %{new}"
text_journal_set_to: "%{label} nastaven na %{value}"
text_journal_deleted: "%{label} smazán (%{old})"
text_journal_added: "%{label} %{value} přidán"
text_tip_issue_begin_day: úkol začíná v tento den
text_tip_issue_end_day: úkol končí v tento den
text_tip_issue_begin_end_day: úkol začíná a končí v tento den
@@ -668,6 +875,7 @@ cs:
text_tracker_no_workflow: Pro tuto frontu není definován žádný průběh práce
text_unallowed_characters: Nepovolené znaky
text_comma_separated: Povoleno více hodnot (oddělěné čárkou).
text_line_separated: Více hodnot povoleno (jeden řádek pro každou hodnotu).
text_issues_ref_in_commit_messages: Odkazování a opravování úkolů ve zprávách commitů
text_issue_added: "Úkol %{id} byl vytvořen uživatelem %{author}."
text_issue_updated: "Úkol %{id} byl aktualizován uživatelem %{author}."
@@ -679,15 +887,31 @@ cs:
text_no_configuration_data: "Role, fronty, stavy úkolů ani průběh práce nebyly zatím nakonfigurovány.\nVelice doporučujeme nahrát výchozí konfiguraci. Po té si můžete vše upravit"
text_load_default_configuration: Nahrát výchozí konfiguraci
text_status_changed_by_changeset: "Použito v changesetu %{value}."
text_time_logged_by_changeset: Aplikováno v changesetu %{value}.
text_issues_destroy_confirmation: 'Opravdu si přejete odstranit všechny zvolené úkoly?'
text_select_project_modules: 'Aktivní moduly v tomto projektu:'
text_default_administrator_account_changed: Výchozí nastavení administrátorského účtu změněno
text_file_repository_writable: Povolen zápis do adresáře ukládání souborů
text_plugin_assets_writable: Možnost zápisu do adresáře plugin assets
text_rmagick_available: RMagick k dispozici (volitelné)
text_destroy_time_entries_question: "U úkolů, které chcete odstranit je evidováno %{hours} práce. Co chete udělat?"
text_destroy_time_entries: Odstranit evidované hodiny.
text_assign_time_entries_to_project: Přiřadit evidované hodiny projektu
text_reassign_time_entries: 'Přeřadit evidované hodiny k tomuto úkolu:'
text_user_wrote: "%{value} napsal:"
text_enumeration_destroy_question: "Několik (%{count}) objektů je přiřazeno k této hodnotě."
text_enumeration_category_reassign_to: 'Přeřadit je do této:'
text_email_delivery_not_configured: "Doručování e-mailů není nastaveno a odesílání notifikací je zakázáno.\nNastavte Váš SMTP server v souboru config/email.yml a restartujte aplikaci."
text_repository_usernames_mapping: "Vybrat nebo upravit mapování mezi Redmine uživateli a uživatelskými jmény nalezenými v logu repozitáře.\nUživatelé se shodným Redmine uživatelským jménem a uživatelským jménem v repozitáři jsou mapovaní automaticky."
text_diff_truncated: '... Rozdílový soubor je zkrácen, protože jeho délka přesahuje max. limit.'
text_custom_field_possible_values_info: 'Každá hodnota na novém řádku'
text_wiki_page_destroy_question: Tato stránka má %{descendants} podstránek a potomků. Co chcete udělat?
text_wiki_page_nullify_children: Ponechat podstránky jako kořenové stránky
text_wiki_page_destroy_children: Smazat podstránky a všechny jejich potomky
text_wiki_page_reassign_children: Přiřadit podstránky k tomuto rodiči
text_own_membership_delete_confirmation: "Chystáte se odebrat si některá nebo všechny svá oprávnění a potom již nemusíte být schopni upravit tento projekt.\nOpravdu chcete pokračovat?"
text_zoom_in: Přiblížit
text_zoom_out: Oddálit
default_role_manager: Manažer
default_role_developer: Vývojář
@@ -714,225 +938,4 @@ cs:
enumeration_issue_priorities: Priority úkolů
enumeration_doc_categories: Kategorie dokumentů
enumeration_activities: Aktivity (sledování času)
error_scm_annotate: "Položka neexistuje nebo nemůže být komentována."
label_planning: Plánování
text_subprojects_destroy_warning: "Jeho podprojek(y): %{value} budou také smazány."
label_and_its_subprojects: "%{value} a jeho podprojekty"
mail_body_reminder: "%{count} úkol(ů), které máte přiřazeny má termín během několik dní (%{days}):"
mail_subject_reminder: "%{count} úkol(ů) má termín během několik dní (%{days})"
text_user_wrote: "%{value} napsal:"
label_duplicated_by: duplikováno od
setting_enabled_scm: Povolené SCM
text_enumeration_category_reassign_to: 'Přeřadit je do této:'
text_enumeration_destroy_question: "Několik (%{count}) objektů je přiřazeno k této hodnotě."
label_incoming_emails: Příchozí e-maily
label_generate_key: Generovat klíč
setting_mail_handler_api_enabled: Povolit WS pro příchozí e-maily
setting_mail_handler_api_key: API klíč
text_email_delivery_not_configured: "Doručování e-mailů není nastaveno a odesílání notifikací je zakázáno.\nNastavte Váš SMTP server v souboru config/email.yml a restartujte aplikaci."
field_parent_title: Rodičovská stránka
label_issue_watchers: Sledování
setting_commit_logs_encoding: Kódování zpráv při commitu
button_quote: Citovat
setting_sequential_project_identifiers: Generovat sekvenční identifikátory projektů
notice_unable_delete_version: Nemohu odstanit verzi
label_renamed: přejmenováno
label_copied: zkopírováno
setting_plain_text_mail: pouze prostý text (ne HTML)
permission_view_files: Prohlížení souborů
permission_edit_issues: Upravování úkolů
permission_edit_own_time_entries: Upravování vlastních zázamů o stráveném čase
permission_manage_public_queries: Správa veřejných dotazů
permission_add_issues: Přidávání úkolů
permission_log_time: Zaznamenávání stráveného času
permission_view_changesets: Zobrazování sady změn
permission_view_time_entries: Zobrazení stráveného času
permission_manage_versions: Spravování verzí
permission_manage_wiki: Spravování Wiki
permission_manage_categories: Spravování kategorií úkolů
permission_protect_wiki_pages: Zabezpečení Wiki stránek
permission_comment_news: Komentování novinek
permission_delete_messages: Mazání zpráv
permission_select_project_modules: Výběr modulů projektu
permission_manage_documents: Správa dokumentů
permission_edit_wiki_pages: Upravování stránek Wiki
permission_add_issue_watchers: Přidání sledujících uživatelů
permission_view_gantt: Zobrazené Ganttova diagramu
permission_move_issues: Přesouvání úkolů
permission_manage_issue_relations: Spravování vztahů mezi úkoly
permission_delete_wiki_pages: Mazání stránek na Wiki
permission_manage_boards: Správa diskusních fór
permission_delete_wiki_pages_attachments: Mazání příloh
permission_view_wiki_edits: Prohlížení historie Wiki
permission_add_messages: Posílání zpráv
permission_view_messages: Prohlížení zpráv
permission_manage_files: Spravování souborů
permission_edit_issue_notes: Upravování poznámek
permission_manage_news: Spravování novinek
permission_view_calendar: Prohlížení kalendáře
permission_manage_members: Spravování členství
permission_edit_messages: Upravování zpráv
permission_delete_issues: Mazání úkolů
permission_view_issue_watchers: Zobrazení seznamu sledujícíh uživatelů
permission_manage_repository: Spravování repozitáře
permission_commit_access: Commit přístup
permission_browse_repository: Procházení repozitáře
permission_view_documents: Prohlížení dokumentů
permission_edit_project: Úprava projektů
permission_add_issue_notes: Přidávání poznámek
permission_save_queries: Ukládání dotazů
permission_view_wiki_pages: Prohlížení Wiki
permission_rename_wiki_pages: Přejmenovávání Wiki stránek
permission_edit_time_entries: Upravování záznamů o stráveném času
permission_edit_own_issue_notes: Upravování vlastních poznámek
setting_gravatar_enabled: Použít uživatelské ikony Gravatar
label_example: Příklad
text_repository_usernames_mapping: "Vybrat nebo upravit mapování mezi Redmine uživateli a uživatelskými jmény nalezenými v logu repozitáře.\nUživatelé se shodným Redmine uživatelským jménem a uživatelským jménem v repozitáři jsou mapovaní automaticky."
permission_edit_own_messages: Upravit vlastní zprávy
permission_delete_own_messages: Smazat vlastní zprávy
label_user_activity: "Aktivita uživatele: %{value}"
label_updated_time_by: "Akutualizováno: %{author} před: %{age}"
text_diff_truncated: '... Rozdílový soubor je zkrácen, protože jeho délka přesahuje max. limit.'
setting_diff_max_lines_displayed: Maximální počet zobrazenách řádků rozdílů
text_plugin_assets_writable: Možnost zápisu do adresáře plugin assets
warning_attachments_not_saved: "%{count} soubor(ů) nebylo možné uložit."
button_create_and_continue: Vytvořit a pokračovat
text_custom_field_possible_values_info: 'Každá hodnota na novém řádku'
label_display: Zobrazit
field_editable: Editovatelný
setting_repository_log_display_limit: Maximální počet revizí zobrazených v logu souboru
setting_file_max_size_displayed: Maximální velikost textových souborů zobrazených přímo na stránce
field_watcher: Sleduje
setting_openid: Umožnit přihlašování a registrace s OpenID
field_identity_url: OpenID URL
label_login_with_open_id_option: nebo se přihlašte s OpenID
field_content: Obsah
label_descending: Sestupně
label_sort: Řazení
label_ascending: Vzestupně
label_date_from_to: Od %{start} do %{end}
label_greater_or_equal: ">="
label_less_or_equal: <=
text_wiki_page_destroy_question: Tato stránka má %{descendants} podstránek a potomků. Co chcete udělat?
text_wiki_page_reassign_children: Přiřadit podstránky k tomuto rodiči
text_wiki_page_nullify_children: Ponechat podstránky jako kořenové stránky
text_wiki_page_destroy_children: Smazat podstránky a všechny jejich potomky
setting_password_min_length: Minimální délka hesla
field_group_by: Seskupovat výsledky podle
mail_subject_wiki_content_updated: "'%{id}' Wiki stránka byla aktualizována"
label_wiki_content_added: Wiki stránka přidána
mail_subject_wiki_content_added: "'%{id}' Wiki stránka byla přidána"
mail_body_wiki_content_added: "'%{id}' Wiki stránka byla přidána od %{author}."
label_wiki_content_updated: Wiki stránka aktualizována
mail_body_wiki_content_updated: "'%{id}' Wiki stránka byla aktualizována od %{author}."
permission_add_project: Vytvořit projekt
setting_new_project_user_role_id: Role přiřazená uživateli bez práv administrátora, který projekt vytvořil
label_view_all_revisions: Zobrazit všechny revize
label_tag: Tag
label_branch: Branch
error_no_tracker_in_project: Žádná fronta nebyla přiřazena tomuto projektu. Prosím zkontroluje nastavení projektu.
error_no_default_issue_status: Není nastaven výchozí stav úkolu. Prosím zkontrolujte nastavení ("Administrace -> Stavy úkolů").
text_journal_changed: "%{label} změněn z %{old} na %{new}"
text_journal_set_to: "%{label} nastaven na %{value}"
text_journal_deleted: "%{label} smazán (%{old})"
label_group_plural: Skupiny
label_group: Skupina
label_group_new: Nová skupina
label_time_entry_plural: Strávený čas
text_journal_added: "%{label} %{value} přidán"
field_active: Aktivní
enumeration_system_activity: Systémová aktivita
permission_delete_issue_watchers: Smazat přihlížející
version_status_closed: zavřený
version_status_locked: uzamčený
version_status_open: otevřený
error_can_not_reopen_issue_on_closed_version: Úkol přiřazený k uzavřené verzi nemůže být znovu otevřen
label_user_anonymous: Anonymní
button_move_and_follow: Přesunout a následovat
setting_default_projects_modules: Výchozí zapnutné moduly pro nový projekt
setting_gravatar_default: Výchozí Gravatar
field_sharing: Sdílení
label_version_sharing_hierarchy: S hierarchií projektu
label_version_sharing_system: Se všemi projekty
label_version_sharing_descendants: S podprojekty
label_version_sharing_tree: Se stromem projektu
label_version_sharing_none: Nesdíleno
error_can_not_archive_project: Tento projekt nemůže být archivován
button_duplicate: Duplikát
button_copy_and_follow: Kopírovat a následovat
label_copy_source: Zdroj
setting_issue_done_ratio: Spočítat koeficient dokončení úkolu s
setting_issue_done_ratio_issue_status: Použít stav úkolu
error_issue_done_ratios_not_updated: Koeficient dokončení úkolu nebyl aktualizován.
error_workflow_copy_target: Prosím vyberte cílovou frontu(y) a roly(e)
setting_issue_done_ratio_issue_field: Použít pole úkolu
label_copy_same_as_target: Stejný jako cíl
label_copy_target: Cíl
notice_issue_done_ratios_updated: Koeficienty dokončení úkolu byly aktualizovány.
error_workflow_copy_source: Prosím vyberte zdrojovou frontu nebo roly
label_update_issue_done_ratios: Aktualizovat koeficienty dokončení úkolů
setting_start_of_week: Začínat kalendáře
permission_view_issues: Zobrazit úkoly
label_display_used_statuses_only: Zobrazit pouze stavy které jsou použité touto frontou
label_revision_id: Revize %{value}
label_api_access_key: API přístupový klíč
label_api_access_key_created_on: API přístupový klíč vytvořen %{value}
label_feeds_access_key: RSS přístupový klíč
notice_api_access_key_reseted: Váš API přístupový klíč byl resetován.
setting_rest_api_enabled: Zapnout službu REST
label_missing_api_access_key: Chybějící přístupový klíč API
label_missing_feeds_access_key: Chybějící přístupový klíč RSS
button_show: Zobrazit
text_line_separated: Více hodnot povoleno (jeden řádek pro každou hodnotu).
setting_mail_handler_body_delimiters: Zkrátit e-maily po jednom z těchto řádků
permission_add_subprojects: Vytvořit podprojekty
label_subproject_new: Nový podprojekt
text_own_membership_delete_confirmation: |-
Chystáte se odebrat si některá nebo všechny svá oprávnění a potom již nemusíte být schopni upravit tento projekt.
Opravdu chcete pokračovat?
label_close_versions: Zavřít dokončené verze
label_board_sticky: Nálepka
label_board_locked: Uzamčeno
permission_export_wiki_pages: Exportovat Wiki stránky
setting_cache_formatted_text: Ukládat formátovaný text do vyrovnávací paměti
permission_manage_project_activities: Spravovat aktivity projektu
error_unable_delete_issue_status: Nelze smazat stavy úkolů
label_profile: Profil
permission_manage_subtasks: Spravovat podúkoly
field_parent_issue: Rodičovský úkol
label_subtask_plural: Podúkol
label_project_copy_notifications: Odeslat email oznámení v průběhu kopie projektu
error_can_not_delete_custom_field: Nelze smazat volitelné pole
error_unable_to_connect: Nelze se připojit (%{value})
error_can_not_remove_role: Tato role je právě používaná a nelze ji smazat.
error_can_not_delete_tracker: Tato fronta obsahuje úkoly a nemůže být smazán.
field_principal: Hlavní
label_my_page_block: Bloky na mé stránce
notice_failed_to_save_members: "Nepodařilo se uložit člena(y): %{errors}."
text_zoom_out: Oddálit
text_zoom_in: Přiblížit
notice_unable_delete_time_entry: Nelze smazat čas ze záznamu.
label_overall_spent_time: Celkově strávený čas
field_time_entries: Zaznamenaný čas
project_module_gantt: Gantt
project_module_calendar: Kalendář
button_edit_associated_wikipage: "Upravit přiřazenou Wiki stránku: %{page_title}"
text_are_you_sure_with_children: Smazat úkol včetně všech podúkolů?
field_text: Textové pole
label_user_mail_option_only_owner: Only for things I am the owner of
setting_default_notification_option: Default notification option
label_user_mail_option_only_my_events: Only for things I watch or I'm involved in
label_user_mail_option_only_assigned: Only for things I am assigned to
label_user_mail_option_none: No events
field_member_of_group: Assignee's group
field_assigned_to_role: Assignee's role
notice_not_authorized_archived_project: The project you're trying to access has been archived.
label_principal_search: "Search for user or group:"
label_user_search: "Search for user:"
field_visible: Visible
setting_emails_header: Emails header
setting_commit_logtime_activity_id: Activity for logged time
text_time_logged_by_changeset: Applied in changeset %{value}.
setting_commit_logtime_enabled: Enable time logging
notice_gantt_chart_truncated: The chart was truncated because it exceeds the maximum number of items that can be displayed (%{max})
setting_gantt_items_limit: Maximum number of items displayed on the gantt chart

View File

@@ -677,7 +677,7 @@ es:
notice_default_data_loaded: Configuración por defecto cargada correctamente.
notice_email_error: "Ha ocurrido un error mientras enviando el correo (%{value})"
notice_email_sent: "Se ha enviado un correo a %{value}"
notice_failed_to_save_issues: "Imposible grabar %s peticion(es) en %{count} seleccionado: %{ids}."
notice_failed_to_save_issues: "Imposible grabar %{count} peticion(es) de %{total} seleccionada(s): %{ids}."
notice_feeds_access_key_reseted: Su clave de acceso para RSS ha sido reiniciada.
notice_file_not_found: La página a la que intenta acceder no existe.
notice_locking_conflict: Los datos han sido modificados por otro usuario.

View File

@@ -99,8 +99,8 @@ eu:
errors:
template:
header:
one: "1 error prohibited this %{model} from being saved"
other: "%{count} errors prohibited this %{model} from being saved"
one: "Errore batek %{model} hau godetzea galarazi du."
other: "%{count} errorek %{model} hau gordetzea galarazi dute."
messages:
inclusion: "ez dago zerrendan"
exclusion: "erreserbatuta dago"
@@ -125,7 +125,7 @@ eu:
greater_than_start_date: "hasiera data baino handiagoa izan behar du"
not_same_project: "ez dago proiektu berdinean"
circular_dependency: "Erlazio honek mendekotasun zirkular bat sortuko luke"
cant_link_an_issue_with_a_descendant: "An issue can not be linked to one of its subtasks"
cant_link_an_issue_with_a_descendant: "Zeregin bat ezin da bere azpiataza batekin estekatu."
actionview_instancetag_blank_option: Hautatu mesedez
@@ -277,7 +277,7 @@ eu:
field_issue_to: Erlazionatutako zereginak
field_delay: Atzerapena
field_assignable: Arazoak rol honetara esleitu daitezke
field_redirect_existing_links: Existitzen diren estelak berbideratu
field_redirect_existing_links: Existitzen diren estekak berbideratu
field_estimated_hours: Estimatutako denbora
field_column_names: Zutabeak
field_time_zone: Ordu zonaldea
@@ -318,7 +318,7 @@ eu:
setting_cross_project_issue_relations: Zereginak proiektuen artean erlazionatzea baimendu
setting_issue_list_default_columns: Zereginen zerrendan defektuz ikusten diren zutabeak
setting_repositories_encodings: Biltegien kodeketak
setting_commit_logs_encoding: Commit-en mezuen kodetzea
setting_commit_logs_encoding: Commit-en egunkarien kodetzea
setting_emails_footer: Eposten oina
setting_protocol: Protokoloa
setting_per_page_options: Orriko objektuen aukerak
@@ -363,7 +363,7 @@ eu:
permission_delete_issues: Zereginak ezabatu
permission_manage_public_queries: Galdera publikoak kudeatu
permission_save_queries: Galderak gorde
permission_view_gantt: Gantt diagrama ikusi
permission_view_gantt: Gantt grafikoa ikusi
permission_view_calendar: Egutegia ikusi
permission_view_issue_watchers: Behatzaileen zerrenda ikusi
permission_add_issue_watchers: Behatzaileak gehitu
@@ -441,7 +441,7 @@ eu:
label_tracker: Aztarnaria
label_tracker_plural: Aztarnariak
label_tracker_new: Aztarnari berria
label_workflow: Workflow
label_workflow: Lan-fluxua
label_issue_status: Zeregin egoera
label_issue_status_plural: Zeregin egoerak
label_issue_status_new: Egoera berria
@@ -506,7 +506,7 @@ eu:
label_file_added: Fitxategia gehituta
label_report: Berri ematea
label_report_plural: Berri emateak
label_news: Beria
label_news: Berria
label_news_new: Berria gehitu
label_news_plural: Berriak
label_news_latest: Azken berriak
@@ -553,7 +553,7 @@ eu:
label_add_note: Oharra gehitu
label_per_page: Orriko
label_calendar: Egutegia
label_months_from: months from
label_months_from: hilabete noiztik
label_gantt: Gantt
label_internal: Barnekoa
label_last_changes: "azken %{count} aldaketak"
@@ -784,7 +784,7 @@ eu:
button_cancel: Ezeztatu
button_activate: Gahitu
button_sort: Ordenatu
button_log_time: Denbora apuntatu
button_log_time: Denbora erregistratu
button_rollback: Itzuli bertsio honetara
button_watch: Behatu
button_unwatch: Behatzen utzi
@@ -824,9 +824,9 @@ eu:
text_journal_set_to: "%{label}-k %{value} balioa hartu du"
text_journal_deleted: "%{label} ezabatuta (%{old})"
text_journal_added: "%{label} %{value} gehituta"
text_tip_issue_begin_day: gaur hasten diren atazak
text_tip_issue_end_day: gaur bukatzen diren atazak
text_tip_issue_begin_end_day: gaur hasi eta bukatzen diren atazak
text_tip_issue_begin_day: gaur hasten diren zereginak
text_tip_issue_end_day: gaur bukatzen diren zereginak
text_tip_issue_begin_end_day: gaur hasi eta bukatzen diren zereginak
text_project_identifier_info: 'Letra xeheak (a-z), zenbakiak eta marrak erabil daitezke bakarrik.<br />Gorde eta gero identifikadorea ezin da aldatu.'
text_caracters_maximum: "%{count} karaktere gehienez."
text_caracters_minimum: "Gutxienez %{count} karaktereetako luzerakoa izan behar du."
@@ -895,7 +895,7 @@ eu:
enumeration_doc_categories: Dokumentu kategoriak
enumeration_activities: Jarduerak (denbora kontrola))
enumeration_system_activity: Sistemako Jarduera
label_board_sticky: Itxaskorra
label_board_sticky: Itsaskorra
label_board_locked: Blokeatuta
permission_export_wiki_pages: Wiki orriak esportatu
setting_cache_formatted_text: Formatudun testua katxeatu
@@ -903,40 +903,40 @@ eu:
error_unable_delete_issue_status: Ezine da zereginaren egoera ezabatu
label_profile: Profila
permission_manage_subtasks: Azpiatazak kudeatu
field_parent_issue: Guraso ataza
field_parent_issue: Zeregin gurasoa
label_subtask_plural: Azpiatazak
label_project_copy_notifications: Proiektua kopiatzen den bitartean eposta jakinarazpenak bidali
error_can_not_delete_custom_field: Ezin da eremu pertsonallizatua ezabatu
error_can_not_delete_custom_field: Ezin da eremu pertsonalizatua ezabatu
error_unable_to_connect: Ezin da konektatu (%{value})
error_can_not_remove_role: Rol hau erabiltzen hari da eta ezin da ezabatu.
error_can_not_delete_tracker: Aztarnari honek zereginak ditu eta ezin da ezabatu.
field_principal: Principal
label_my_page_block: My page block
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
field_time_entries: Log time
field_principal: Ekintzaile
label_my_page_block: "Nire orriko blokea"
notice_failed_to_save_members: "Kidea(k) gordetzean errorea: %{errors}."
text_zoom_out: Zooma txikiagotu
text_zoom_in: Zooma handiagotu
notice_unable_delete_time_entry: "Ezin da hautatutako denbora erregistroa ezabatu."
label_overall_spent_time: Igarotako denbora guztira
field_time_entries: "Denbora erregistratu"
project_module_gantt: Gantt
project_module_calendar: Calendar
button_edit_associated_wikipage: "Edit associated Wiki page: %{page_title}"
text_are_you_sure_with_children: Delete issue and all child issues?
field_text: Text field
label_user_mail_option_only_owner: Only for things I am the owner of
setting_default_notification_option: Default notification option
label_user_mail_option_only_my_events: Only for things I watch or I'm involved in
label_user_mail_option_only_assigned: Only for things I am assigned to
label_user_mail_option_none: No events
field_member_of_group: Assignee's group
field_assigned_to_role: Assignee's role
notice_not_authorized_archived_project: The project you're trying to access has been archived.
label_principal_search: "Search for user or group:"
label_user_search: "Search for user:"
field_visible: Visible
setting_emails_header: Emails header
setting_commit_logtime_activity_id: Activity for logged time
text_time_logged_by_changeset: Applied in changeset %{value}.
setting_commit_logtime_enabled: Enable time logging
notice_gantt_chart_truncated: The chart was truncated because it exceeds the maximum number of items that can be displayed (%{max})
setting_gantt_items_limit: Maximum number of items displayed on the gantt chart
project_module_calendar: Egutegia
button_edit_associated_wikipage: "Esleitutako wiki orria editatu: %{page_title}"
text_are_you_sure_with_children: "Zeregina eta azpi zeregin guztiak ezabatu?"
field_text: Testu eremua
label_user_mail_option_only_owner: "Jabea naizen gauzetarako barrarik"
setting_default_notification_option: "Lehenetsitako ohartarazpen aukera"
label_user_mail_option_only_my_events: "Behatzen ditudan edo partaide naizen gauzetarako bakarrik"
label_user_mail_option_only_assigned: "Niri esleitutako gauzentzat bakarrik"
label_user_mail_option_none: "Gertakaririk ez"
field_member_of_group: "Esleituta duenaren taldea"
field_assigned_to_role: "Esleituta duenaren rola"
notice_not_authorized_archived_project: "Atzitu nahi duzun proiektua artxibatua izan da."
label_principal_search: "Bilatu erabiltzaile edo taldea:"
label_user_search: "Erabiltzailea bilatu:"
field_visible: Ikusgai
setting_emails_header: "Eposten goiburua"
setting_commit_logtime_activity_id: "Erregistratutako denboraren jarduera"
text_time_logged_by_changeset: "%{value} aldaketan egindakoa."
setting_commit_logtime_enabled: "Erregistrutako denbora gaitu"
notice_gantt_chart_truncated: Grafikoa moztu da bistara daitekeen elementuen kopuru maximoa gainditu delako (%{max})
setting_gantt_items_limit: "Gantt grafikoan bistara daitekeen elementu kopuru maximoa"

View File

@@ -654,7 +654,7 @@ gl:
notice_default_data_loaded: Configuración por defecto cargada correctamente.
notice_email_error: "Ocorreu un error enviando o correo (%{value})"
notice_email_sent: "Enviouse un correo a %{value}"
notice_failed_to_save_issues: "Imposible gravar %s petición(s) en %{count} seleccionado: %{ids}."
notice_failed_to_save_issues: "Imposible gravar %{count} petición(s) de %{total} seleccionada(s): %{ids}."
notice_feeds_access_key_reseted: A súa clave de acceso para RSS reiniciouse.
notice_file_not_found: A páxina á que tenta acceder non existe.
notice_locking_conflict: Os datos modificáronse por outro usuario.

View File

@@ -136,8 +136,8 @@ it:
general_text_no: 'no'
general_text_yes: 'sì'
general_lang_name: 'Italiano'
general_csv_separator: ','
general_csv_decimal_separator: '.'
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'

View File

@@ -294,9 +294,9 @@ pl:
field_version: Wersja
field_vf_personnel: Personel
field_vf_watcher: Obserwator
general_csv_decimal_separator: '.'
general_csv_decimal_separator: ','
general_csv_encoding: UTF-8
general_csv_separator: ','
general_csv_separator: ';'
general_first_day_of_week: '1'
general_lang_name: 'Polski'
general_pdf_encoding: UTF-8

View File

@@ -132,7 +132,7 @@ sl:
general_csv_separator: ','
general_csv_decimal_separator: '.'
general_csv_encoding: UTF-8
general_pdf_encoding: UFT-8
general_pdf_encoding: UTF-8
general_first_day_of_week: '1'
notice_account_updated: Račun je bil uspešno posodobljen.

View File

@@ -1,29 +1,35 @@
# Chinese (China) translations for Ruby on Rails
# by tsechingho (http://github.com/tsechingho)
zh:
# Text direction: Left-to-Right (ltr) or Right-to-Left (rtl)
direction: ltr
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: "%Y-%m-%d"
short: "%b%d日"
long: "%Y年%b%d日"
day_names: [星期天, 星期一, 星期二, 星期三, 星期四, 星期五, 星期六]
abbr_day_names: [日, 一, 二, 三, 四, 五, 六]
# Don't forget the nil at the beginning; there's no such thing as a 0th month
month_names: [~, 一月, 二月, 三月, 四月, 五月, 六月, 七月, 八月, 九月, 十月, 十一月, 十二月]
abbr_month_names: [~, 1月, 2月, 3月, 4月, 5月, 6月, 7月, 8月, 9月, 10月, 11月, 12月]
# Used in date_select and datime_select.
order: [ :year, :month, :day ]
time:
formats:
default: "%Y年%b%d日 %A %H:%M:%S"
time: "%H:%M"
time: "%H:%M"
short: "%b%d日 %H:%M"
long: "%Y年%b%d日 %H:%M"
am: "上午"
pm: "下午"
datetime:
distance_in_words:
half_a_minute: "半分钟"
@@ -60,32 +66,13 @@ zh:
almost_x_years:
one: "将近 1 年"
other: "将近 %{count} 年"
prompts:
year: "年"
month: "月"
day: "日"
hour: "时"
minute: "分"
second: "秒"
number:
# Default format for numbers
format:
separator: "."
delimiter: ","
separator: "."
delimiter: ""
precision: 3
currency:
format:
format: "%n %u"
unit: "元"
separator: "."
delimiter: ","
precision: 2
percentage:
format:
delimiter: ""
precision:
format:
delimiter: ""
human:
format:
delimiter: ""
@@ -96,24 +83,24 @@ zh:
byte:
one: "Byte"
other: "Bytes"
kb: "KB"
kb: "kB"
mb: "MB"
gb: "GB"
tb: "TB"
# Used in array.to_sentence.
support:
array:
words_connector: ", "
two_words_connector: " 和 "
last_word_connector: ", 和 "
sentence_connector: ""
skip_last_comma: false
activerecord:
errors:
template:
header:
one: "有 1 个错误发生导致「%{model}无法保存"
other: "%{count} 个错误发生导致「%{model}无法保存"
body: "如下字段出现错误:"
header:
one: "由于发生了一个错误 %{model} 无法保存"
other: "%{count} 个错误使得 %{model} 无法保存"
messages:
inclusion: "不包含于列表中"
exclusion: "是保留关键字"
@@ -127,6 +114,7 @@ zh:
wrong_length: "长度非法(必须为 %{count} 个字符)"
taken: "已经被使用"
not_a_number: "不是数字"
not_a_date: "不是合法日期"
greater_than: "必须大于 %{count}"
greater_than_or_equal_to: "必须大于或等于 %{count}"
equal_to: "必须等于 %{count}"
@@ -137,7 +125,7 @@ zh:
greater_than_start_date: "必须在起始日期之后"
not_same_project: "不属于同一个项目"
circular_dependency: "此关联将导致循环依赖"
cant_link_an_issue_with_a_descendant: "An issue can not be linked to one of its subtasks"
cant_link_an_issue_with_a_descendant: "问题不能关联到它的子任务"
actionview_instancetag_blank_option: 请选择
@@ -168,17 +156,21 @@ zh:
notice_file_not_found: 您访问的页面不存在或已被删除。
notice_locking_conflict: 数据已被另一位用户更新
notice_not_authorized: 对不起,您无权访问此页面。
notice_email_sent: "邮件已成功发送到 %{value}"
notice_not_authorized_archived_project: 要访问的项目已经归档。
notice_email_sent: "邮件已发送至 %{value}"
notice_email_error: "发送邮件时发生错误 (%{value})"
notice_feeds_access_key_reseted: 您的RSS存取键已被重置。
notice_api_access_key_reseted: 您的API访问键已被重置。
notice_failed_to_save_issues: "%{count} 个问题保存失败(共选择 %{total} 个问题):%{ids}."
notice_failed_to_save_members: "成员保存失败: %{errors}."
notice_no_issue_selected: "未选择任何问题!请选择您要编辑的问题。"
notice_account_pending: "您的帐号已被成功创建,正在等待管理员的审核。"
notice_default_data_loaded: 成功载入默认设置。
notice_unable_delete_version: 无法删除版本
notice_unable_delete_time_entry: 无法删除工时
notice_issue_done_ratios_updated: 问题完成度已更新。
notice_gantt_chart_truncated: "The chart was truncated because it exceeds the maximum number of items that can be displayed (%{max})"
error_can_t_load_default_data: "无法载入默认设置:%{value}"
error_scm_not_found: "版本库中不存在该条目和(或)其修订版本。"
error_scm_command_failed: "访问版本库时发生错误:%{value}"
@@ -186,13 +178,17 @@ zh:
error_issue_not_found_in_project: '问题不存在或不属于此项目'
error_no_tracker_in_project: 该项目未设定跟踪标签,请检查项目配置。
error_no_default_issue_status: 未设置默认的问题状态。请检查系统设置("管理" -> "问题状态")。
error_can_not_delete_custom_field: 无法删除自定义属性
error_can_not_delete_tracker: "该跟踪标签已包含问题,无法删除"
error_can_not_remove_role: "该角色正在使用中,无法删除"
error_can_not_reopen_issue_on_closed_version: 该问题被关联到一个已经关闭的版本,因此无法重新打开。
error_can_not_archive_project: 该项目无法被存档
error_issue_done_ratios_not_updated: 问题完成度未能被更新。
error_workflow_copy_source: 请选择一个源跟踪标签或者角色
error_workflow_copy_target: 请选择目标跟踪标签和角色
warning_attachments_not_saved: "%{count} 个文件保存失败。"
error_unable_delete_issue_status: '无法删除问题状态'
error_unable_to_connect: "无法连接 (%{value})"
warning_attachments_not_saved: "%{count} 个文件保存失败"
mail_subject_lost_password: "您的 %{value} 密码"
mail_body_lost_password: '请点击以下链接来修改您的密码:'
@@ -206,9 +202,9 @@ zh:
mail_body_reminder: "指派给您的 %{count} 个问题需要在 %{days} 天内完成:"
mail_subject_wiki_content_added: "'%{id}' wiki页面已添加"
mail_body_wiki_content_added: "'%{id}' wiki页面已由 %{author} 添加。"
mail_subject_wiki_content_updated: "'%{id}' wiki页面已更新"
mail_subject_wiki_content_updated: "'%{id}' wiki页面已更新"
mail_body_wiki_content_updated: "'%{id}' wiki页面已由 %{author} 更新。"
gui_validation_error: 1 个错误
gui_validation_error_plural: "%{count} 个错误"
@@ -247,11 +243,12 @@ zh:
field_priority: 优先级
field_fixed_version: 目标版本
field_user: 用户
field_principal: 用户/用户组
field_role: 角色
field_homepage: 主页
field_is_public: 公开
field_parent: 上级项目
field_is_in_roadmap: 在路线图中显示问题
field_is_in_roadmap: 在路线图中显示
field_login: 登录名
field_mail_notification: 邮件通知
field_admin: 管理员
@@ -272,8 +269,8 @@ zh:
field_attr_lastname: 姓氏属性
field_attr_mail: 邮件属性
field_onthefly: 即时用户生成
field_start_date: 开始
field_done_ratio: 完成
field_start_date: 开始日期
field_done_ratio: % 完成
field_auth_source: 认证模式
field_hide_mail: 隐藏我的邮件地址
field_comments: 注释
@@ -291,6 +288,7 @@ zh:
field_redirect_existing_links: 重定向到现有链接
field_estimated_hours: 预期时间
field_column_names:
field_time_entries: 工时
field_time_zone: 时区
field_searchable: 可用作搜索条件
field_default_value: 默认值
@@ -302,7 +300,12 @@ zh:
field_content: 内容
field_group_by: 根据此条件分组
field_sharing: 共享
field_parent_issue: 父任务
field_member_of_group: 用户组的成员
field_assigned_to_role: 角色的成员
field_text: 文本字段
field_visible: 可见的
setting_app_title: 应用程序标题
setting_app_subtitle: 应用程序子标题
setting_welcome_text: 欢迎文字
@@ -310,7 +313,7 @@ zh:
setting_login_required: 要求认证
setting_self_registration: 允许自注册
setting_attachment_max_size: 附件大小限制
setting_issues_export_limit: 问题出条目的限制
setting_issues_export_limit: 问题出条目的限制
setting_mail_from: 邮件发件人地址
setting_bcc_recipients: 使用密件抄送 (bcc)
setting_plain_text_mail: 纯文本无HTML
@@ -330,6 +333,7 @@ zh:
setting_issue_list_default_columns: 问题列表中显示的默认列
setting_repositories_encodings: 版本库编码
setting_commit_logs_encoding: 提交注释的编码
setting_emails_header: 邮件头
setting_emails_footer: 邮件签名
setting_protocol: 协议
setting_per_page_options: 每页显示条目个数的设置
@@ -355,12 +359,18 @@ zh:
setting_issue_done_ratio_issue_status: 使用问题状态
setting_start_of_week: 日历开始于
setting_rest_api_enabled: 启用REST web service
setting_cache_formatted_text: 缓存格式化文字
setting_default_notification_option: 默认提醒选项
setting_commit_logtime_enabled: 激活时间日志
setting_commit_logtime_activity_id: 记录的活动
setting_gantt_items_limit: 在甘特图上显示的最大记录数
permission_add_project: 新建项目
permission_add_subprojects: 新建子项目
permission_edit_project: 编辑项目
permission_select_project_modules: 选择项目模块
permission_manage_members: 管理成员
permission_manage_project_activities: 管理项目活动
permission_manage_versions: 管理版本
permission_manage_categories: 管理问题类别
permission_view_issues: 查看问题
@@ -408,7 +418,9 @@ zh:
permission_edit_own_messages: 编辑自己的帖子
permission_delete_messages: 删除帖子
permission_delete_own_messages: 删除自己的帖子
permission_export_wiki_pages: 导出 wiki 页面
permission_manage_subtasks: 管理子任务
project_module_issue_tracking: 问题跟踪
project_module_time_tracking: 时间跟踪
project_module_news: 新闻
@@ -417,6 +429,8 @@ zh:
project_module_wiki: Wiki
project_module_repository: 版本库
project_module_boards: 讨论区
project_module_calendar: 日历
project_module_gantt: 甘特图
label_user: 用户
label_user_plural: 用户
@@ -474,6 +488,7 @@ zh:
label_my_page: 我的工作台
label_my_account: 我的帐号
label_my_projects: 我的项目
label_my_page_block: 我的工作台模块
label_administration: 管理
label_login: 登录
label_logout: 退出
@@ -483,7 +498,7 @@ zh:
label_last_login: 最后登录
label_registered_on: 注册于
label_activity: 活动
label_overall_activity: 全部活动
label_overall_activity: 活动概览
label_user_activity: "%{value} 的活动"
label_new: 新建
label_logged_as: 登录为
@@ -546,18 +561,18 @@ zh:
one: 1 打开
other: "%{count} 打开"
label_x_closed_issues_abbr:
zero: 0 关闭
one: 1 关闭
other: "%{count} 关闭"
zero: 0 关闭
one: 1 关闭
other: "%{count} 关闭"
label_total: 合计
label_permissions: 权限
label_current_status: 当前状态
label_new_statuses_allowed: 可变更的新状态
label_new_statuses_allowed: 允许的新状态
label_all: 全部
label_none:
label_nobody: 无人
label_next: 下一
label_previous: 上一
label_next: 下一
label_previous: 上一
label_used_by: 使用中
label_details: 详情
label_add_note: 添加说明
@@ -651,6 +666,7 @@ zh:
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: 时间跟踪
@@ -688,6 +704,8 @@ zh:
label_board: 讨论区
label_board_new: 新建讨论区
label_board_plural: 讨论区
label_board_locked: 锁定
label_board_sticky: 置顶
label_topic_plural: 主题
label_message_plural: 帖子
label_message_last: 最新的帖子
@@ -721,12 +739,16 @@ zh:
label_search_titles_only: 仅在标题中搜索
label_user_mail_option_all: "收取我的项目的所有通知"
label_user_mail_option_selected: "收取选中项目的所有通知..."
label_user_mail_option_none: "不收取任何通知"
label_user_mail_option_only_my_events: "只收取我跟踪或参与的项目的通知"
label_user_mail_option_only_assigned: "只收取分配给我的"
label_user_mail_option_only_owner: "只收取我是创建者的"
label_user_mail_no_self_notified: "不要发送对我自己提交的修改的通知"
label_registration_activation_by_email: 通过邮件认证激活帐号
label_registration_manual_activation: 手动激活帐号
label_registration_automatic_activation: 自动激活帐号
label_display_per_page: "每页显示:%{value}"
label_age: 年龄
label_age: 提交时间
label_change_properties: 修改属性
label_general: 一般
label_more: 更多
@@ -768,6 +790,11 @@ zh:
label_api_access_key: API访问键
label_missing_api_access_key: 缺少API访问键
label_api_access_key_created_on: API访问键是在 %{value} 之前建立的
label_profile: 简介
label_subtask_plural: 子任务
label_project_copy_notifications: 复制项目时发送邮件通知
label_principal_search: "搜索用户或组:"
label_user_search: "搜索用户:"
button_login: 登录
button_submit: 提交
@@ -779,6 +806,7 @@ zh:
button_create_and_continue: 创建并继续
button_test: 测试
button_edit: 编辑
button_edit_associated_wikipage: "编辑相关wiki页面: %{page_title}"
button_add: 新增
button_change: 修改
button_apply: 应用
@@ -816,13 +844,13 @@ zh:
status_active: 活动的
status_registered: 已注册
status_locked: 已锁定
version_status_open: 打开
version_status_locked: 锁定
version_status_closed: 关闭
field_active: 活动
text_select_mail_notifications: 选择需要发送邮件通知的动作
text_regexp_info: 例如:^[A-Z0-9]+$
text_min_max_length_info: 0 表示没有限制
@@ -830,6 +858,7 @@ zh:
text_subprojects_destroy_warning: "以下子项目也将被同时删除:%{value}"
text_workflow_edit: 选择角色和跟踪标签来编辑工作流程
text_are_you_sure: 您确定?
text_are_you_sure_with_children: "删除问题及子任务?"
text_journal_changed: "%{label} 从 %{old} 变更为 %{new}"
text_journal_set_to: "%{label} 被设置为 %{value}"
text_journal_deleted: "%{label} 已删除 (%{old})"
@@ -856,6 +885,7 @@ zh:
text_no_configuration_data: "角色、跟踪标签、问题状态和工作流程还没有设置。\n强烈建议您先载入默认设置然后在此基础上进行修改。"
text_load_default_configuration: 载入默认设置
text_status_changed_by_changeset: "已应用到变更列表 %{value}."
text_time_logged_by_changeset: "已应用到修订版本 %{value}."
text_issues_destroy_confirmation: '您确定要删除选中的问题吗?'
text_select_project_modules: '请选择此项目可以使用的模块:'
text_default_administrator_account_changed: 默认的管理员帐号已改变
@@ -905,48 +935,7 @@ zh:
enumeration_doc_categories: 文档类别
enumeration_activities: 活动(时间跟踪)
enumeration_system_activity: 系统活动
label_board_sticky: 置顶
label_board_locked: 锁定
permission_export_wiki_pages: 导出 wiki 页面
setting_cache_formatted_text: 缓存格式化文本
permission_manage_project_activities: 管理项目活动
error_unable_delete_issue_status: 无法删除问题状态
label_profile: 简介
permission_manage_subtasks: 管理子任务
field_parent_issue: 父任务
label_subtask_plural: 子任务
label_project_copy_notifications: 复制项目时发送邮件通知
error_can_not_delete_custom_field: 不能删除自定义属性
error_unable_to_connect: 不能连接到 (%{value})
error_can_not_remove_role: 该角色正在使用中, 不能删除.
error_can_not_delete_tracker: 该跟踪标签包含问题, 不能删除.
field_principal: 用户/用户组
label_my_page_block: 我的工作台模块
notice_failed_to_save_members: "成员保存失败:%{errors}。"
text_zoom_out: 缩小
text_zoom_in: 放大
notice_unable_delete_time_entry: 无法删除工时记录。
label_overall_spent_time: 所有项目耗用工时
field_time_entries: Log time
project_module_gantt: Gantt
project_module_calendar: Calendar
button_edit_associated_wikipage: "Edit associated Wiki page: %{page_title}"
text_are_you_sure_with_children: Delete issue and all child issues?
field_text: Text field
label_user_mail_option_only_owner: Only for things I am the owner of
setting_default_notification_option: Default notification option
label_user_mail_option_only_my_events: Only for things I watch or I'm involved in
label_user_mail_option_only_assigned: Only for things I am assigned to
label_user_mail_option_none: No events
field_member_of_group: Assignee's group
field_assigned_to_role: Assignee's role
notice_not_authorized_archived_project: The project you're trying to access has been archived.
label_principal_search: "Search for user or group:"
label_user_search: "Search for user:"
field_visible: Visible
setting_emails_header: Emails header
setting_commit_logtime_activity_id: Activity for logged time
text_time_logged_by_changeset: Applied in changeset %{value}.
setting_commit_logtime_enabled: Enable time logging
notice_gantt_chart_truncated: The chart was truncated because it exceeds the maximum number of items that can be displayed (%{max})
setting_gantt_items_limit: Maximum number of items displayed on the gantt chart
text_zoom_in: Zoom in
text_zoom_out: Zoom out

View File

@@ -4,6 +4,32 @@ Redmine - project management software
Copyright (C) 2006-2011 Jean-Philippe Lang
http://www.redmine.org/
== 2011-04-29 v1.1.3
* Defect #5773: Email reminders are sent to locked users
* Defect #6590: Wrong file list link in email notification on new file upload
* Defect #7589: Wiki page with backslash in title can not be found
* Defect #7785: Mailhandler keywords are not removed when updating issues
* Defect #7794: Internal server error on formatting an issue as a PDF in Japanese
* Defect #7838: Gantt- Issues does not show up in green when start and end date are the same
* Defect #7846: Headers (h1, etc.) containing backslash followed by a digit are not displayed correctly
* Defect #7875: CSV export separators in polish locale (pl.yml)
* Defect #7890: Internal server error when referencing an issue without project in commit message
* Defect #7904: Subprojects not properly deleted when deleting a parent project
* Defect #7939: Simultaneous Wiki Updates Cause Internal Error
* Defect #7951: Atom links broken on wiki index
* Defect #7954: IE 9 can not select issues, does not display context menu
* Defect #7985: Trying to do a bulk edit results in "Internal Error"
* Defect #8003: Error raised by reposman.rb under Windows server 2003
* Defect #8012: Wrong selection of modules when adding new project after validation error
* Defect #8038: Associated Revisions OL/LI items are not styled properly in issue view
* Defect #8067: CSV exporting in Italian locale
* Defect #8235: bulk edit issues and copy issues error in es, gl and ca locales
* Defect #8244: selected modules are not activated when copying a project
* Patch #7278: Update Simplified Chinese translation to 1.1
* Patch #7390: Fixes in Czech localization
* Patch #7963: Reminder email: Link for show all issues does not sort
== 2011-03-07 v1.1.2
* Defect #3132: Bulk editing menu non-functional in Opera browser

View File

@@ -1,40 +0,0 @@
= Contributing to Redmine with git and github
(This is a beta document. If you can improve it, fork it and send a patch/pull request.)
The official repository is at http://github.com/edavis10/redmine
Official branches:
* master - is automatically mirrored to svn trunk. DO NOT COMMIT OR MERGE INTO THIS BRANCH
* [0.6, 0.7, 0.8, 0.9, 1.0,...]-stable - is automatically mirrored to svn release branches. DO NOT COMMIT OR MERGE INTO THIS BRANCH
* integration-to-svn-trunk - this branch is a git-only branch that will track master (trunk). Any code in here will be eventually merged into master but it may be rebased as any time (git-svn needs to rebase to commit to svn)
* integration-to-svn-stable-1.0 - this branch is a git-only branch that will track the 1.0-stable branch in svn. Any code in here will be eventually merged into master and 1.0-stable but it may be rebased as any time (git-svn needs to rebase to commit to svn)
I (edavis10) might have some other branches on the repository for work in progress.
== Branch naming standards
Redmine has two kinds of development:
* bug fixes
* new feature development
Both bug fixes and new feature development should be done in a branch named after the issue number on Redmine.org. So if you are fixing Issue #6244 your branch should be named:
* 6244
* 6244-sort-people-by-display-name (optional description)
* issue/6244 (optional "issue" prefix)
* issue/6244-sort-people-by-display-name (optional prefix and description)
That way when the branch is merged into the Redmine core, the correct issue can be updated.
Longer term feature development might require multiple branches. Just your best judgment and try to keep the issue id in the name.
If you don't have an issue for your patch, create an issue on redmine.org and say it's a placeholder issue for your work. Better yet, add a brief overview of what you are working on to the issue and you might get some help with it.
== Coding Standards
Follow the coding standards on the Redmine wiki: http://www.redmine.org/wiki/redmine/Coding_Standards#Commits. Make sure you commit logs conform to the standards, otherwise someone else will have to rewrite them for you and you might lose attribution during the conversion to svn.

View File

@@ -205,7 +205,7 @@ end
log("retrieved #{projects.size} projects", :level => 1)
def set_owner_and_rights(project, repos_path, &block)
if RUBY_PLATFORM =~ /mswin/
if mswin?
yield if block_given?
else
uid, gid = Etc.getpwnam($svn_owner).uid, ($use_groupid ? Etc.getgrnam(project.identifier).gid : Etc.getgrnam($svn_group).gid)

View File

@@ -707,11 +707,13 @@ class RedCloth3 < String
atts = pba( atts )
# pass to prefix handler
replacement = nil
if respond_to? "textile_#{ tag }", true
text.gsub!( $&, method( "textile_#{ tag }" ).call( tag, atts, cite, content ) )
replacement = method( "textile_#{ tag }" ).call( tag, atts, cite, content )
elsif respond_to? "textile_#{ tagpre }_", true
text.gsub!( $&, method( "textile_#{ tagpre }_" ).call( tagpre, num, atts, cite, content ) )
replacement = method( "textile_#{ tagpre }_" ).call( tagpre, num, atts, cite, content )
end
text.gsub!( $& ) { replacement } if replacement
end
end

View File

@@ -642,10 +642,10 @@ module Redmine
end
if progress
progress_date = start_date + (end_date - start_date) * (progress / 100.0)
progress_date = start_date + (end_date - start_date + 1) * (progress / 100.0)
if progress_date > self.date_from && progress_date > start_date
if progress_date < self.date_to
coords[:bar_progress_end] = progress_date - self.date_from + 1
coords[:bar_progress_end] = progress_date - self.date_from
else
coords[:bar_progress_end] = self.date_to - self.date_from + 1
end

View File

@@ -4,7 +4,7 @@ module Redmine
module VERSION #:nodoc:
MAJOR = 1
MINOR = 1
TINY = 2
TINY = 3
# Branch values:
# * official release: nil

File diff suppressed because it is too large Load Diff

View File

@@ -56,6 +56,7 @@ table.list td.buttons a { padding-right: 20px; }
.changeset-changes { direction: ltr; padding-left: 2em }
.changesets { direction: ltr; }
div#issue-changesets { float: left; margin-right: 1em; margin-left: 0 }
div#issue-changesets div.wiki { direction: ltr; padding-left: 2em }
#activity dt, .journal { clear: right; }
.journal-link { float: left; }
div.wiki pre { direction: ltr; }

View File

@@ -1286,6 +1286,18 @@ class IssuesControllerTest < ActionController::TestCase
assert !(Issue.find_by_id(1) || Issue.find_by_id(2) || Issue.find_by_id(6))
end
def test_destroy_parent_and_child_issues
parent = Issue.generate!(:project_id => 1, :tracker_id => 1)
child = Issue.generate!(:project_id => 1, :tracker_id => 1, :parent_issue_id => parent.id)
assert child.is_descendant_of?(parent.reload)
@request.session[:user_id] = 2
assert_difference 'Issue.count', -2 do
post :destroy, :ids => [parent.id, child.id], :todo => 'destroy'
end
assert_response 302
end
def test_default_search_scope
get :index
assert_tag :div, :attributes => {:id => 'quick-search'},

View File

@@ -288,6 +288,22 @@ class ProjectsControllerTest < ActionController::TestCase
end
end
def test_create_should_preserve_modules_on_validation_failure
with_settings :default_projects_modules => ['issue_tracking', 'repository'] do
@request.session[:user_id] = 1
assert_no_difference 'Project.count' do
post :create, :project => {
:name => "blog",
:identifier => "",
:enabled_module_names => %w(issue_tracking news)
}
end
assert_response :success
project = assigns(:project)
assert_equal %w(issue_tracking news), project.enabled_module_names.sort
end
end
def test_create_should_not_accept_get
@request.session[:user_id] = 1
get :create
@@ -432,7 +448,7 @@ class ProjectsControllerTest < ActionController::TestCase
end
end
def test_copy_with_project
def test_get_copy
@request.session[:user_id] = 1 # admin
get :copy, :id => 1
assert_response :success
@@ -440,14 +456,42 @@ class ProjectsControllerTest < ActionController::TestCase
assert assigns(:project)
assert_equal Project.find(1).description, assigns(:project).description
assert_nil assigns(:project).id
assert_tag :tag => 'input',
:attributes => {:name => 'project[enabled_module_names][]', :value => 'issue_tracking'}
end
def test_copy_without_project
def test_get_copy_without_project
@request.session[:user_id] = 1 # admin
get :copy
assert_response :redirect
assert_redirected_to :controller => 'admin', :action => 'projects'
end
def test_post_copy_should_copy_requested_items
@request.session[:user_id] = 1 # admin
CustomField.delete_all
assert_difference 'Project.count' do
post :copy, :id => 1,
:project => {
:name => 'Copy',
:identifier => 'unique-copy',
:tracker_ids => ['1', '2', '3', ''],
:enabled_module_names => %w(issue_tracking time_tracking)
},
:only => %w(issues versions)
end
project = Project.find('unique-copy')
source = Project.find(1)
assert_equal %w(issue_tracking time_tracking), project.enabled_module_names.sort
assert_equal source.versions.count, project.versions.count, "All versions were not copied"
# issues assigned to a closed version won't be copied
assert_equal source.issues.select {|i| i.fixed_version.nil? || i.fixed_version.open?}.size,
project.issues.count, "All issues were not copied"
assert_equal 0, project.members.count
end
context "POST :copy" do
should "TODO: test the rest of the method"

View File

@@ -155,6 +155,42 @@ class WikiControllerTest < ActionController::TestCase
assert_tag :tag => 'input', :attributes => {:id => 'content_version', :value => '1'}
end
def test_update_stale_page_should_not_raise_an_error
@request.session[:user_id] = 2
c = Wiki.find(1).find_page('Another_page').content
c.text = 'Previous text'
c.save!
assert_equal 2, c.version
assert_no_difference 'WikiPage.count' do
assert_no_difference 'WikiContent.count' do
assert_no_difference 'WikiContent::Version.count' do
put :update, :project_id => 1,
:id => 'Another_page',
:content => {
:comments => 'My comments',
:text => 'Text should not be lost',
:version => 1
}
end
end
end
assert_response :success
assert_template 'edit'
assert_tag :div,
:attributes => { :class => /error/ },
:content => /Data has been updated by another user/
assert_tag 'textarea',
:attributes => { :name => 'content[text]' },
:content => /Text should not be lost/
assert_tag 'input',
:attributes => { :name => 'content[comments]', :value => 'My comments' }
c.reload
assert_equal 'Previous text', c.text
assert_equal 2, c.version
end
def test_preview
@request.session[:user_id] = 2
xhr :post, :preview, :project_id => 1, :id => 'CookBook_documentation',
@@ -350,6 +386,11 @@ class WikiControllerTest < ActionController::TestCase
:child => { :tag => 'li', :child => { :tag => 'a', :attributes => { :href => '/projects/ecookbook/wiki/Another_page' },
:content => 'Another page' } }
end
def test_index_should_include_atom_link
get :index, :project_id => 'ecookbook'
assert_tag 'a', :attributes => { :href => '/projects/ecookbook/activity.atom?show_wiki_edits=1'}
end
context "GET :export" do
context "with an authorized user to export the wiki" do
@@ -389,6 +430,9 @@ class WikiControllerTest < ActionController::TestCase
should_assign_to :pages_by_date
should_render_template 'wiki/date_index'
should "include atom link" do
assert_tag 'a', :attributes => { :href => '/projects/ecookbook/activity.atom?show_wiki_edits=1'}
end
end
def test_not_found

View File

@@ -1,5 +1,5 @@
# Redmine - project management software
# Copyright (C) 2006-2009 Jean-Philippe Lang
# Copyright (C) 2006-2011 Jean-Philippe Lang
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
@@ -26,4 +26,21 @@ class CustomFieldsHelperTest < HelperTestCase
assert_equal 'Yes', format_value('1', 'bool')
assert_equal 'No', format_value('0', 'bool')
end
def test_unknow_field_format_should_be_edited_as_string
field = CustomField.new(:field_format => 'foo')
value = CustomValue.new(:value => 'bar', :custom_field => field)
field.id = 52
assert_equal '<input id="object_custom_field_values_52" name="object[custom_field_values][52]" type="text" value="bar" />',
custom_field_tag('object', value)
end
def test_unknow_field_format_should_be_bulk_edited_as_string
field = CustomField.new(:field_format => 'foo')
field.id = 52
assert_equal '<input id="object_custom_field_values_52" name="object[custom_field_values][52]" type="text" value="" />',
custom_field_tag_for_bulk_edit('object', field)
end
end

View File

@@ -202,7 +202,19 @@ class IssueNestedSetTest < ActiveSupport::TestCase
issue2 = create_issue!
issue3 = create_issue!(:parent_issue_id => issue2.id)
issue4 = create_issue!(:parent_issue_id => issue1.id)
issue2.reload.destroy
issue3.init_journal(User.find(2))
issue3.subject = 'child with journal'
issue3.save!
assert_difference 'Issue.count', -2 do
assert_difference 'Journal.count', -1 do
assert_difference 'JournalDetail.count', -1 do
Issue.find(issue2.id).destroy
end
end
end
issue1.reload
issue4.reload
assert !Issue.exists?(issue2.id)
@@ -211,6 +223,36 @@ class IssueNestedSetTest < ActiveSupport::TestCase
assert_equal [issue1.id, 2, 3], [issue4.root_id, issue4.lft, issue4.rgt]
end
def test_destroy_parent_issue_updated_during_children_destroy
parent = create_issue!
create_issue!(:start_date => Date.today, :parent_issue_id => parent.id)
create_issue!(:start_date => 2.days.from_now, :parent_issue_id => parent.id)
assert_difference 'Issue.count', -3 do
Issue.find(parent.id).destroy
end
end
def test_destroy_child_issue_with_children
root = Issue.create!(:project_id => 1, :author_id => 2, :tracker_id => 1, :subject => 'root')
child = Issue.create!(:project_id => 1, :author_id => 2, :tracker_id => 1, :subject => 'child', :parent_issue_id => root.id)
leaf = Issue.create!(:project_id => 1, :author_id => 2, :tracker_id => 1, :subject => 'leaf', :parent_issue_id => child.id)
leaf.init_journal(User.find(2))
leaf.subject = 'leaf with journal'
leaf.save!
assert_difference 'Issue.count', -2 do
assert_difference 'Journal.count', -1 do
assert_difference 'JournalDetail.count', -1 do
Issue.find(child.id).destroy
end
end
end
root = Issue.find(root.id)
assert root.leaf?, "Root issue is not a leaf (lft: #{root.lft}, rgt: #{root.rgt})"
end
def test_parent_priority_should_be_the_highest_child_priority
parent = create_issue!(:priority => IssuePriority.find_by_name('Normal'))
# Create children

View File

@@ -537,9 +537,9 @@ class Redmine::Helpers::GanttTest < ActiveSupport::TestCase
assert_select "div.version.task_done[style*=left:28px]", true, @response.body
end
should "Be the total done width of the version" do
should "be the total done width of the version" do
@response.body = @gantt.line_for_version(@version, {:format => :html, :zoom => 4})
assert_select "div.version.task_done[style*=width:18px]", true, @response.body
assert_select "div.version.task_done[style*=width:16px]", true, @response.body
end
end
@@ -697,9 +697,10 @@ class Redmine::Helpers::GanttTest < ActiveSupport::TestCase
assert_select "div.task_done[style*=left:28px]", true, @response.body
end
should "Be the total done width of the issue" do
should "be the total done width of the issue" do
@response.body = @gantt.line_for_issue(@issue, {:format => :html, :zoom => 4})
assert_select "div.task_done[style*=width:18px]", true, @response.body
# 15 days * 4 px * 30% - 2 px for borders = 16 px
assert_select "div.task_done[style*=width:16px]", true, @response.body
end
should "not be the total done width if the chart starts after issue start date" do
@@ -707,7 +708,24 @@ class Redmine::Helpers::GanttTest < ActiveSupport::TestCase
@response.body = @gantt.line_for_issue(@issue, {:format => :html, :zoom => 4})
assert_select "div.task_done[style*=left:0px]", true, @response.body
assert_select "div.task_done[style*=width:10px]", true, @response.body
assert_select "div.task_done[style*=width:8px]", true, @response.body
end
context "for completed issue" do
setup do
@issue.done_ratio = 100
end
should "be the total width of the issue" do
@response.body = @gantt.line_for_issue(@issue, {:format => :html, :zoom => 4})
assert_select "div.task_done[style*=width:58px]", true, @response.body
end
should "be the total width of the issue with due_date=start_date" do
@issue.due_date = @issue.start_date
@response.body = @gantt.line_for_issue(@issue, {:format => :html, :zoom => 4})
assert_select "div.task_done[style*=width:2px]", true, @response.body
end
end
end

View File

@@ -64,12 +64,18 @@ class Redmine::WikiFormatting::TextileFormatterTest < HelperTestCase
'@<Location /redmine>@' => '<code>&lt;Location /redmine&gt;</code>'
)
end
def test_escaping
assert_html_output(
'this is a <script>' => 'this is a &lt;script&gt;'
)
end
def test_use_of_backslashes_followed_by_numbers_in_headers
assert_html_output({
'h1. 2009\02\09' => '<h1>2009\02\09</h1>'
}, false)
end
def test_double_dashes_should_not_strikethrough
assert_html_output(
@@ -88,9 +94,9 @@ class Redmine::WikiFormatting::TextileFormatterTest < HelperTestCase
private
def assert_html_output(to_test)
def assert_html_output(to_test, expect_paragraph = true)
to_test.each do |text, expected|
assert_equal "<p>#{expected}</p>", @formatter.new(text).to_html, "Formatting the following text failed:\n===\n#{text}\n===\n"
assert_equal(( expect_paragraph ? "<p>#{expected}</p>" : expected ), @formatter.new(text).to_html, "Formatting the following text failed:\n===\n#{text}\n===\n")
end
end
end

View File

@@ -70,6 +70,7 @@ class MailHandlerTest < ActiveSupport::TestCase
# keywords should be removed from the email body
assert !issue.description.match(/^Project:/i)
assert !issue.description.match(/^Status:/i)
assert !issue.description.match(/^Start Date:/i)
# Email notification should be sent
mail = ActionMailer::Base.deliveries.last
assert_not_nil mail
@@ -318,6 +319,9 @@ class MailHandlerTest < ActiveSupport::TestCase
assert_equal '2010-12-31', issue.due_date.to_s
assert_equal User.find_by_login('jsmith'), issue.assigned_to
assert_equal "52.6", issue.custom_value_for(CustomField.find_by_name('Float field')).value
# keywords should be removed from the email body
assert !journal.notes.match(/^Status:/i)
assert !journal.notes.match(/^Start Date:/i)
end
def test_add_issue_note_should_send_email_notification

View File

@@ -26,6 +26,7 @@ class MailerTest < ActiveSupport::TestCase
ActionMailer::Base.deliveries.clear
Setting.host_name = 'mydomain.foo'
Setting.protocol = 'http'
Setting.plain_text_mail = '0'
end
def test_generated_links_in_emails
@@ -278,6 +279,9 @@ class MailerTest < ActiveSupport::TestCase
assert Mailer.deliver_attachments_added(attachements)
assert_not_nil last_email.bcc
assert last_email.bcc.any?
assert_select_email do
assert_select "a[href=?]", "http://mydomain.foo/projects/ecookbook/files"
end
end
def test_project_file_added
@@ -285,6 +289,9 @@ class MailerTest < ActiveSupport::TestCase
assert Mailer.deliver_attachments_added(attachements)
assert_not_nil last_email.bcc
assert last_email.bcc.any?
assert_select_email do
assert_select "a[href=?]", "http://mydomain.foo/projects/ecookbook/files"
end
end
def test_news_added

View File

@@ -1,5 +1,5 @@
# redMine - project management software
# Copyright (C) 2006-2007 Jean-Philippe Lang
# Redmine - project management software
# Copyright (C) 2006-2011 Jean-Philippe Lang
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
@@ -182,6 +182,41 @@ class ProjectTest < ActiveSupport::TestCase
assert_nil Issue.first(:conditions => {:project_id => @ecookbook.id})
end
def test_destroying_root_projects_should_clear_data
Project.roots.each do |root|
root.destroy
end
assert_equal 0, Project.count, "Projects were not deleted: #{Project.all.inspect}"
assert_equal 0, Member.count, "Members were not deleted: #{Member.all.inspect}"
assert_equal 0, MemberRole.count
assert_equal 0, Issue.count
assert_equal 0, Journal.count
assert_equal 0, JournalDetail.count
assert_equal 0, Attachment.count
assert_equal 0, EnabledModule.count
assert_equal 0, IssueCategory.count
assert_equal 0, IssueRelation.count
assert_equal 0, Board.count
assert_equal 0, Message.count
assert_equal 0, News.count
assert_equal 0, Query.count(:conditions => "project_id IS NOT NULL")
assert_equal 0, Repository.count
assert_equal 0, Changeset.count
assert_equal 0, Change.count
assert_equal 0, Comment.count
assert_equal 0, TimeEntry.count
assert_equal 0, Version.count
assert_equal 0, Watcher.count
assert_equal 0, Wiki.count
assert_equal 0, WikiPage.count
assert_equal 0, WikiContent.count
assert_equal 0, WikiContent::Version.count
assert_equal 0, Project.connection.select_all("SELECT * FROM projects_trackers").size
assert_equal 0, Project.connection.select_all("SELECT * FROM custom_fields_projects").size
assert_equal 0, CustomValue.count(:conditions => {:customized_type => ['Project', 'Issue', 'TimeEntry', 'Version']})
end
def test_move_an_orphan_project_to_a_root_project
sub = Project.find(2)
sub.set_parent! @ecookbook
@@ -553,6 +588,14 @@ class ProjectTest < ActiveSupport::TestCase
assert_nil Project.next_identifier
end
def test_enabled_module_names
with_settings :default_projects_modules => ['issue_tracking', 'repository'] do
project = Project.new
project.enabled_module_names = %w(issue_tracking news)
assert_equal %w(issue_tracking news), project.enabled_module_names.sort
end
end
def test_enabled_module_names_should_not_recreate_enabled_modules
project = Project.find(1)

View File

@@ -87,7 +87,8 @@ class RepositoryMercurialTest < ActiveSupport::TestCase
# with_limit
changesets = @repository.latest_changesets('', nil, 2)
assert_equal @repository.latest_changesets('', nil)[0, 2], changesets
# assert_equal @repository.latest_changesets('', nil)[0, 2], changesets
assert_equal %w|16 15|, changesets.collect(&:revision)
# with_filepath
changesets = @repository.latest_changesets('/sql_escape/percent%dir/percent%file1.txt', nil)

View File

@@ -20,7 +20,7 @@
require File.expand_path('../../test_helper', __FILE__)
class WikiTest < ActiveSupport::TestCase
fixtures :wikis, :wiki_pages, :wiki_contents, :wiki_content_versions
fixtures :projects, :wikis, :wiki_pages, :wiki_contents, :wiki_content_versions
def test_create
wiki = Wiki.new(:project => Project.find(2))
@@ -49,6 +49,9 @@ class WikiTest < ActiveSupport::TestCase
page = WikiPage.find(10)
assert_equal page, wiki.find_page('Этикаенеджмента')
page = WikiPage.generate!(:wiki => wiki, :title => '2009\\02\\09')
assert_equal page, wiki.find_page('2009\\02\\09')
end
def test_titleize

View File

@@ -444,17 +444,19 @@ module CollectiveIdea #:nodoc:
# Prunes a branch off of the tree, shifting all of the elements on the right
# back to the left so the counts still work.
def prune_from_tree
return if right.nil? || left.nil?
diff = right - left + 1
return if right.nil? || left.nil? || !self.class.exists?(id)
delete_method = acts_as_nested_set_options[:dependent] == :destroy ?
:destroy_all : :delete_all
self.class.base_class.transaction do
reload_nested_set
nested_set_scope.send(delete_method,
["#{quoted_left_column_name} > ? AND #{quoted_right_column_name} < ?",
left, right]
)
reload_nested_set
diff = right - left + 1
nested_set_scope.update_all(
["#{quoted_left_column_name} = (#{quoted_left_column_name} - ?)", diff],
["#{quoted_left_column_name} >= ?", right]
@@ -464,6 +466,9 @@ module CollectiveIdea #:nodoc:
["#{quoted_right_column_name} >= ?", right]
)
end
# Reload is needed because children may have updated their parent (self) during deletion.
reload
end
# reload left, right, and parent

View File

@@ -103,7 +103,7 @@ module PDF_Japanese
o=s[i]
if(o<128)
#ASCII
l+=cw[o.chr]
l+=cw[o.chr] if cw[o.chr]
i+=1
elsif(o>=161 and o<=223)
#Half-width katakana
@@ -179,7 +179,7 @@ module PDF_Japanese
end
if(o<128)
#ASCII
l+=cw[c.chr]
l+=cw[c.chr] || 0
n=1
if(o==32)
sep=i
@@ -270,7 +270,7 @@ module PDF_Japanese
end
if(o<128)
#ASCII
l+=cw[c.chr]
l+=cw[c.chr] || 0
n=1
if(o==32)
sep=i