Compare commits

...

19 Commits
2.1.6 ... 0.9.0

Author SHA1 Message Date
Jean-Philippe Lang
c549c8b721 tagged version 0.9.0 (release candidate)
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/tags/0.9.0@3297 e93f8b46-1217-0410-a6f0-8f06a7374b81
2010-01-09 12:03:20 +00:00
Jean-Philippe Lang
eaaa471d6a Merged r3295 from trunk.
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/branches/0.9-stable@3296 e93f8b46-1217-0410-a6f0-8f06a7374b81
2010-01-09 11:50:31 +00:00
Jean-Philippe Lang
2b6d8125d1 Merged r3293 from trunk.
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/branches/0.9-stable@3294 e93f8b46-1217-0410-a6f0-8f06a7374b81
2010-01-09 11:47:38 +00:00
Jean-Philippe Lang
12b75ded08 Locales updated to trunk @ r3291.
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/branches/0.9-stable@3292 e93f8b46-1217-0410-a6f0-8f06a7374b81
2010-01-09 10:41:27 +00:00
Jean-Philippe Lang
46bf2b9276 Merged r3289 from trunk.
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/branches/0.9-stable@3290 e93f8b46-1217-0410-a6f0-8f06a7374b81
2010-01-09 10:27:50 +00:00
Jean-Philippe Lang
9d82bff1a8 Merged r3282 to r3284 from trunk.
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/branches/0.9-stable@3287 e93f8b46-1217-0410-a6f0-8f06a7374b81
2010-01-09 10:04:21 +00:00
Jean-Philippe Lang
4c75864948 Merged r3258 and r3281 from trunk.
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/branches/0.9-stable@3286 e93f8b46-1217-0410-a6f0-8f06a7374b81
2010-01-09 10:02:16 +00:00
Jean-Philippe Lang
9d2474c234 Merged r3277 to r3279 from trunk.
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/branches/0.9-stable@3280 e93f8b46-1217-0410-a6f0-8f06a7374b81
2010-01-03 11:47:25 +00:00
Jean-Philippe Lang
7193817dea Translation updates.
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/branches/0.9-stable@3276 e93f8b46-1217-0410-a6f0-8f06a7374b81
2010-01-03 10:32:37 +00:00
Eric Davis
610d7d4ba4 Merged r3267 from trunk
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/branches/0.9-stable@3268 e93f8b46-1217-0410-a6f0-8f06a7374b81
2009-12-30 00:51:08 +00:00
Eric Davis
4b41788848 Merged r3265 from trunk
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/branches/0.9-stable@3266 e93f8b46-1217-0410-a6f0-8f06a7374b81
2009-12-30 00:26:48 +00:00
Eric Davis
e1423c7c23 Merged r3263 from trunk
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/branches/0.9-stable@3264 e93f8b46-1217-0410-a6f0-8f06a7374b81
2009-12-29 23:33:46 +00:00
Eric Davis
9c9f6722f6 Merged r3261 from trunk.
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/branches/0.9-stable@3262 e93f8b46-1217-0410-a6f0-8f06a7374b81
2009-12-29 17:58:21 +00:00
Jean-Philippe Lang
a8be47295a Merged r3259 from trunk.
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/branches/0.9-stable@3260 e93f8b46-1217-0410-a6f0-8f06a7374b81
2009-12-29 14:56:17 +00:00
Eric Davis
ba98197637 Merged r3256 from trunk
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/branches/0.9-stable@3257 e93f8b46-1217-0410-a6f0-8f06a7374b81
2009-12-29 00:44:28 +00:00
Jean-Philippe Lang
a23399f220 Merged r3249 to r3252 and r3254 from trunk.
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/branches/0.9-stable@3255 e93f8b46-1217-0410-a6f0-8f06a7374b81
2009-12-27 12:41:27 +00:00
Jean-Philippe Lang
718cd596e0 Merged r3246 and r3247 from trunk.
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/branches/0.9-stable@3248 e93f8b46-1217-0410-a6f0-8f06a7374b81
2009-12-26 13:54:57 +00:00
Jean-Philippe Lang
c5ccfede6d Set VERSION::BRANCH to stable.
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/branches/0.9-stable@3245 e93f8b46-1217-0410-a6f0-8f06a7374b81
2009-12-26 10:27:46 +00:00
Jean-Philippe Lang
7702bdcdab 0.9-stable branch created
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/branches/0.9-stable@3244 e93f8b46-1217-0410-a6f0-8f06a7374b81
2009-12-26 10:22:16 +00:00
83 changed files with 853 additions and 406 deletions

View File

@@ -41,7 +41,7 @@ class AttachmentsController < ApplicationController
# images are sent inline
send_file @attachment.diskfile, :filename => filename_for_content_disposition(@attachment.filename),
:type => @attachment.content_type,
:type => detect_content_type(@attachment),
:disposition => (@attachment.image? ? 'inline' : 'attachment')
end
@@ -76,4 +76,12 @@ private
def delete_authorize
@attachment.deletable? ? true : deny_access
end
def detect_content_type(attachment)
content_type = attachment.content_type
if content_type.blank?
content_type = Redmine::MimeType.of(attachment.filename)
end
content_type.to_s
end
end

View File

@@ -150,6 +150,7 @@ class IssuesController < ApplicationController
requested_status = IssueStatus.find_by_id(params[:issue][:status_id])
# Check that the user is allowed to apply the requested status
@issue.status = (@allowed_statuses.include? requested_status) ? requested_status : default_status
call_hook(:controller_issues_new_before_save, { :params => params, :issue => @issue })
if @issue.save
attach_files(@issue, params[:attachments])
flash[:notice] = l(:notice_successful_create)
@@ -272,7 +273,7 @@ class IssuesController < ApplicationController
return
end
@available_statuses = Workflow.available_statuses(@project)
@custom_fields = @project.issue_custom_fields.select {|f| f.field_format == 'list'}
@custom_fields = @project.all_issue_custom_fields
end
def move

View File

@@ -66,6 +66,26 @@ module CustomFieldsHelper
def custom_field_tag_with_label(name, custom_value)
custom_field_label_tag(name, custom_value) + custom_field_tag(name, custom_value)
end
def custom_field_tag_for_bulk_edit(custom_field)
field_name = "custom_field_values[#{custom_field.id}]"
field_id = "custom_field_values_#{custom_field.id}"
case custom_field.field_format
when "date"
text_field_tag(field_name, '', :id => field_id, :size => 10) +
calendar_for(field_id)
when "text"
text_area_tag(field_name, '', :id => field_id, :rows => 3, :style => 'width:90%')
when "bool"
select_tag(field_name, options_for_select([[l(:label_no_change_option), ''],
[l(:general_text_yes), '1'],
[l(:general_text_no), '0']]), :id => field_id)
when "list"
select_tag(field_name, options_for_select([[l(:label_no_change_option), '']] + custom_field.possible_values), :id => field_id)
else
text_field_tag(field_name, '', :id => field_id)
end
end
# Return a string used to display a custom value
def show_value(custom_value)

View File

@@ -32,7 +32,6 @@ module JournalsHelper
content << textilizable(journal, :notes)
css_classes = "wiki"
css_classes << " editable" if editable
css_classes << " gravatar-margin" if Setting.gravatar_enabled?
content_tag('div', content, :id => "journal-#{journal.id}-notes", :class => css_classes)
end

View File

@@ -58,6 +58,9 @@ class Attachment < ActiveRecord::Base
self.filename = sanitize_filename(@temp_file.original_filename)
self.disk_filename = Attachment.disk_filename(filename)
self.content_type = @temp_file.content_type.to_s.chomp
if content_type.blank?
self.content_type = Redmine::MimeType.of(filename)
end
self.filesize = @temp_file.size
end
end

View File

@@ -157,7 +157,7 @@ class Issue < ActiveRecord::Base
if new_tracker_id
self.tracker_id = new_tracker_id
end
self.attributes_without_tracker_first = new_attributes, *args
send :attributes_without_tracker_first=, new_attributes, *args
end
alias_method_chain :attributes=, :tracker_first

View File

@@ -132,7 +132,6 @@ class MailHandler < ActionMailer::Base
issue.status = status
end
issue.subject = email.subject.chomp
issue.subject = issue.subject.toutf8 if issue.subject.respond_to?(:toutf8)
if issue.subject.blank?
issue.subject = '(no subject)'
end

View File

@@ -57,6 +57,14 @@ class Member < ActiveRecord::Base
member_roles.detect {|mr| mr.inherited_from}.nil?
end
def include?(user)
if principal.is_a?(Group)
!user.nil? && user.groups.include?(principal)
else
self.user == user
end
end
def before_destroy
if user
# remove category based auto assignments for this member

View File

@@ -30,6 +30,10 @@ class MemberRole < ActiveRecord::Base
errors.add :role_id, :invalid if role && !role.member?
end
def inherited?
!inherited_from.nil?
end
private
def remove_member_if_empty

View File

@@ -23,6 +23,7 @@ class Project < ActiveRecord::Base
# Specific overidden Activities
has_many :time_entry_activities
has_many :members, :include => [:user, :roles], :conditions => "#{User.table_name}.type='User' AND #{User.table_name}.status=#{User::STATUS_ACTIVE}"
has_many :memberships, :class_name => 'Member'
has_many :member_principals, :class_name => 'Member',
:include => :principal,
:conditions => "#{Principal.table_name}.type='Group' OR (#{Principal.table_name}.type='User' AND #{Principal.table_name}.status=#{User::STATUS_ACTIVE})"
@@ -583,10 +584,14 @@ class Project < ActiveRecord::Base
# Copies members from +project+
def copy_members(project)
project.members.each do |member|
project.memberships.each do |member|
new_member = Member.new
new_member.attributes = member.attributes.dup.except("id", "project_id", "created_on")
new_member.role_ids = member.role_ids.dup
# only copy non inherited roles
# inherited roles will be added when copying the group membership
role_ids = member.member_roles.reject(&:inherited?).collect(&:role_id)
next if role_ids.empty?
new_member.role_ids = role_ids
new_member.project = self
self.members << new_member
end

View File

@@ -232,7 +232,7 @@ class Query < ActiveRecord::Base
def add_short_filter(field, expression)
return unless expression
parms = expression.scan(/^(o|c|\!|\*)?(.*)$/).first
parms = expression.scan(/^(o|c|!\*|!|\*)?(.*)$/).first
add_filter field, (parms[0] || "="), [parms[1] || ""]
end

View File

@@ -196,7 +196,7 @@ class User < Principal
# Return user's API key (a 40 chars long string), used to access the API
def api_key
token = self.api_token || Token.create(:user => self, :action => 'api')
token = self.api_token || self.create_api_token(:action => 'api')
token.value
end

View File

@@ -22,6 +22,7 @@
<td class="buttons">
<%= link_to l(:button_test), :action => 'test_connection', :id => source %>
<%= link_to l(:button_delete), { :action => 'destroy', :id => source },
:method => :post,
:confirm => l(:text_are_you_sure),
:class => 'icon icon-del',
:disabled => source.users.any? %>

View File

@@ -2,9 +2,10 @@
<% for journal in journals %>
<div id="change-<%= journal.id %>" class="journal">
<h4><div style="float:right;"><%= link_to "##{journal.indice}", :anchor => "note-#{journal.indice}" %></div>
<%= avatar(journal.user, :size => "24") %>
<%= content_tag('a', '', :name => "note-#{journal.indice}")%>
<%= authoring journal.created_on, journal.user, :label => :label_updated_time_by %></h4>
<%= avatar(journal.user, :size => "32") %>
<ul>
<% for detail in journal.details %>
<li><%= show_detail(detail) %></li>

View File

@@ -4,54 +4,68 @@
<% form_tag() do %>
<%= @issues.collect {|i| hidden_field_tag('ids[]', i.id)}.join %>
<div class="box">
<div class="box tabular">
<fieldset>
<legend><%= l(:label_change_properties) %></legend>
<p>
<label><%= l(:field_tracker) %>:
<%= select_tag('tracker_id', "<option value=\"\">#{l(:label_no_change_option)}</option>" + options_from_collection_for_select(@project.trackers, :id, :name)) %></label>
<% if @available_statuses.any? %>
<label><%= l(:field_status) %>:
<%= select_tag('status_id', "<option value=\"\">#{l(:label_no_change_option)}</option>" + options_from_collection_for_select(@available_statuses, :id, :name)) %></label>
<% end %>
</p>
<p>
<label><%= l(:field_priority) %>:
<%= select_tag('priority_id', "<option value=\"\">#{l(:label_no_change_option)}</option>" + options_from_collection_for_select(IssuePriority.all, :id, :name)) %></label>
<label><%= l(:field_category) %>:
<%= select_tag('category_id', content_tag('option', l(:label_no_change_option), :value => '') +
content_tag('option', l(:label_none), :value => 'none') +
options_from_collection_for_select(@project.issue_categories, :id, :name)) %></label>
</p>
<p>
<label><%= l(:field_assigned_to) %>:
<%= select_tag('assigned_to_id', content_tag('option', l(:label_no_change_option), :value => '') +
content_tag('option', l(:label_nobody), :value => 'none') +
options_from_collection_for_select(@project.assignable_users, :id, :name)) %></label>
<label><%= l(:field_fixed_version) %>:
<%= select_tag('fixed_version_id', content_tag('option', l(:label_no_change_option), :value => '') +
content_tag('option', l(:label_none), :value => 'none') +
version_options_for_select(@project.shared_versions.open)) %></label>
</p>
<div class="splitcontentleft">
<p>
<label><%= l(:field_start_date) %>:
<%= text_field_tag 'start_date', '', :size => 10 %><%= calendar_for('start_date') %></label>
<label><%= l(:field_due_date) %>:
<%= text_field_tag 'due_date', '', :size => 10 %><%= calendar_for('due_date') %></label>
<% if Issue.use_field_for_done_ratio? %>
<label><%= l(:field_done_ratio) %>:
<%= select_tag 'done_ratio', options_for_select([[l(:label_no_change_option), '']] + (0..10).to_a.collect {|r| ["#{r*10} %", r*10] }) %></label>
<label><%= l(:field_tracker) %></label>
<%= select_tag('tracker_id', "<option value=\"\">#{l(:label_no_change_option)}</option>" + options_from_collection_for_select(@project.trackers, :id, :name)) %>
</p>
<% if @available_statuses.any? %>
<p>
<label><%= l(:field_status) %></label>
<%= select_tag('status_id', "<option value=\"\">#{l(:label_no_change_option)}</option>" + options_from_collection_for_select(@available_statuses, :id, :name)) %>
</p>
<% end %>
<p>
<label><%= l(:field_priority) %></label>
<%= select_tag('priority_id', "<option value=\"\">#{l(:label_no_change_option)}</option>" + options_from_collection_for_select(IssuePriority.all, :id, :name)) %>
</p>
<p>
<label><%= l(:field_assigned_to) %></label>
<%= select_tag('assigned_to_id', content_tag('option', l(:label_no_change_option), :value => '') +
content_tag('option', l(:label_nobody), :value => 'none') +
options_from_collection_for_select(@project.assignable_users, :id, :name)) %>
</p>
<p>
<label><%= l(:field_category) %></label>
<%= select_tag('category_id', content_tag('option', l(:label_no_change_option), :value => '') +
content_tag('option', l(:label_none), :value => 'none') +
options_from_collection_for_select(@project.issue_categories, :id, :name)) %>
</p>
<p>
<label><%= l(:field_fixed_version) %></label>
<%= select_tag('fixed_version_id', content_tag('option', l(:label_no_change_option), :value => '') +
content_tag('option', l(:label_none), :value => 'none') +
version_options_for_select(@project.shared_versions.open)) %>
</p>
<% @custom_fields.each do |custom_field| %>
<p><label><%= h(custom_field.name) %></label>
<%= select_tag "custom_field_values[#{custom_field.id}]", options_for_select([[l(:label_no_change_option), '']] + custom_field.possible_values) %></label>
</p>
<p><label><%= h(custom_field.name) %></label> <%= custom_field_tag_for_bulk_edit(custom_field) %></p>
<% end %>
<%= call_hook(:view_issues_bulk_edit_details_bottom, { :issues => @issues }) %>
</div>
<div class="splitcontentright">
<p>
<label><%= l(:field_start_date) %></label>
<%= text_field_tag 'start_date', '', :size => 10 %><%= calendar_for('start_date') %>
</p>
<p>
<label><%= l(:field_due_date) %></label>
<%= text_field_tag 'due_date', '', :size => 10 %><%= calendar_for('due_date') %>
</p>
<% if Issue.use_field_for_done_ratio? %>
<p>
<label><%= l(:field_done_ratio) %></label>
<%= select_tag 'done_ratio', options_for_select([[l(:label_no_change_option), '']] + (0..10).to_a.collect {|r| ["#{r*10} %", r*10] }) %>
</p>
<% end %>
</div>
</fieldset>
<fieldset><legend><%= l(:field_notes) %></legend>
@@ -60,5 +74,5 @@
</fieldset>
</div>
<p><%= submit_tag l(:button_submit) %>
<p><%= submit_tag l(:button_submit) %></p>
<% end %>

View File

@@ -3,7 +3,7 @@
<h2><%= @issue.tracker.name %> #<%= @issue.id %></h2>
<div class="<%= @issue.css_classes %> details">
<%= avatar(@issue.author, :size => "64") %>
<%= avatar(@issue.author, :size => "50") %>
<h3><%=h @issue.subject %></h3>
<p class="author">
<%= authoring @issue.created_on, @issue.author %>.

View File

@@ -8,7 +8,7 @@
<%= link_to(l(:button_delete), {:action => 'destroy', :id => @topic}, :method => :post, :confirm => l(:text_are_you_sure), :class => 'icon icon-del') if @message.destroyable_by?(User.current) %>
</div>
<h2><%=h @topic.subject %></h2>
<h2><%= avatar(@topic.author, :size => "24") %><%=h @topic.subject %></h2>
<div class="message">
<p><span class="author"><%= authoring @topic.created_on, @topic.author %></span></p>
@@ -29,6 +29,7 @@
<%= link_to(image_tag('delete.png'), {:action => 'destroy', :id => message}, :method => :post, :confirm => l(:text_are_you_sure), :title => l(:button_delete)) if message.destroyable_by?(User.current) %>
</div>
<h4>
<%= avatar(message.author, :size => "24") %>
<%= link_to h(message.subject), { :controller => 'messages', :action => 'show', :board_id => @board, :id => @topic, :anchor => "message-#{message.id}" } %>
-
<%= authoring message.created_on, message.author %>

View File

@@ -7,7 +7,7 @@
<%= link_to_if_authorized l(:button_delete), {:controller => 'news', :action => 'destroy', :id => @news}, :confirm => l(:text_are_you_sure), :method => :post, :class => 'icon icon-del' %>
</div>
<h2><%=h @news.title %></h2>
<h2><%= avatar(@news.author, :size => "24") %><%=h @news.title %></h2>
<% if authorize_for('news', 'edit') %>
<div id="edit-news" style="display:none;">
@@ -42,7 +42,7 @@
<%= link_to_if_authorized image_tag('delete.png'), {:controller => 'news', :action => 'destroy_comment', :id => @news, :comment_id => comment},
:confirm => l(:text_are_you_sure), :method => :post, :title => l(:button_delete) %>
</div>
<h4><%= authoring comment.created_on, comment.author %></h4>
<h4><%= avatar(comment.author, :size => "24") %><%= authoring comment.created_on, comment.author %></h4>
<%= textilizable(comment.comments) %>
<% end if @comments.any? %>
</div>

View File

@@ -35,7 +35,8 @@
<td class="buttons">
<%= link_to_function l(:button_edit), "$('member-#{member.id}-roles').hide(); $('member-#{member.id}-roles-form').show(); return false;", :class => 'icon icon-edit' %>
<%= link_to_remote(l(:button_delete), { :url => {:controller => 'members', :action => 'destroy', :id => member},
:method => :post
:method => :post,
:confirm => (!User.current.admin? && member.include?(User.current) ? l(:text_own_membership_delete_confirmation) : nil)
}, :title => l(:button_delete),
:class => 'icon icon-del') if member.deletable? %>
</td>

View File

@@ -17,27 +17,32 @@
<tr class="<%= cycle("odd", "even") %>">
<td><%= link_to row.name, :controller => 'issues', :action => 'index', :project_id => ((row.is_a?(Project) ? row : @project)),
:set_filter => 1,
:subproject_id => '!*',
"#{field_name}" => row.id %></td>
<% for status in @statuses %>
<td align="center"><%= aggregate_link data, { field_name => row.id, "status_id" => status.id },
:controller => 'issues', :action => 'index', :project_id => ((row.is_a?(Project) ? row : @project)),
:set_filter => 1,
:subproject_id => '!*',
"status_id" => status.id,
"#{field_name}" => row.id %></td>
<% end %>
<td align="center"><%= aggregate_link data, { field_name => row.id, "closed" => 0 },
:controller => 'issues', :action => 'index', :project_id => ((row.is_a?(Project) ? row : @project)),
:set_filter => 1,
:subproject_id => '!*',
"#{field_name}" => row.id,
"status_id" => "o" %></td>
<td align="center"><%= aggregate_link data, { field_name => row.id, "closed" => 1 },
:controller => 'issues', :action => 'index', :project_id => ((row.is_a?(Project) ? row : @project)),
:set_filter => 1,
:subproject_id => '!*',
"#{field_name}" => row.id,
"status_id" => "c" %></td>
<td align="center"><%= aggregate_link data, { field_name => row.id },
:controller => 'issues', :action => 'index', :project_id => ((row.is_a?(Project) ? row : @project)),
:set_filter => 1,
:subproject_id => '!*',
"#{field_name}" => row.id,
"status_id" => "*" %></td>
</tr>

View File

@@ -13,20 +13,24 @@
<tr class="<%= cycle("odd", "even") %>">
<td><%= link_to row.name, :controller => 'issues', :action => 'index', :project_id => ((row.is_a?(Project) ? row : @project)),
:set_filter => 1,
:subproject_id => '!*',
"#{field_name}" => row.id %></td>
<td align="center"><%= aggregate_link data, { field_name => row.id, "closed" => 0 },
:controller => 'issues', :action => 'index', :project_id => ((row.is_a?(Project) ? row : @project)),
:set_filter => 1,
:subproject_id => '!*',
"#{field_name}" => row.id,
"status_id" => "o" %></td>
<td align="center"><%= aggregate_link data, { field_name => row.id, "closed" => 1 },
:controller => 'issues', :action => 'index', :project_id => ((row.is_a?(Project) ? row : @project)),
:set_filter => 1,
:subproject_id => '!*',
"#{field_name}" => row.id,
"status_id" => "c" %></td>
<td align="center"><%= aggregate_link data, { field_name => row.id },
:controller => 'issues', :action => 'index', :project_id => ((row.is_a?(Project) ? row : @project)),
:set_filter => 1,
:subproject_id => '!*',
"#{field_name}" => row.id,
"status_id" => "*" %></td>
</tr>

View File

@@ -27,6 +27,8 @@
<p><%= setting_text_field :file_max_size_displayed, :size => 6 %> KB</p>
<p><%= setting_text_field :diff_max_lines_displayed, :size => 6 %></p>
<%= call_hook(:view_settings_general_form) %>
</div>
<%= submit_tag l(:button_save) %>

View File

@@ -2,7 +2,7 @@
<%= link_to(l(:button_edit), {:controller => 'users', :action => 'edit', :id => @user}, :class => 'icon icon-edit') if User.current.admin? %>
</div>
<h2><%= avatar @user %> <%=h @user.name %></h2>
<h2><%= avatar @user, :size => "50" %> <%=h @user.name %></h2>
<div class="splitcontentleft">
<ul>

View File

@@ -59,6 +59,9 @@ bg:
over_x_years:
one: "over 1 year"
other: "over {{count}} years"
almost_x_years:
one: "almost 1 year"
other: "almost {{count}} years"
number:
human:
@@ -869,3 +872,7 @@ bg:
setting_mail_handler_body_delimiters: Truncate emails after one of these lines
permission_add_subprojects: Create subprojects
label_subproject_new: New subproject
text_own_membership_delete_confirmation: |-
You are about to remove some or all of your permissions and may no longer be able to edit this project after that.
Are you sure you want to continue?
label_close_versions: Close completed versions

View File

@@ -59,6 +59,9 @@ bs:
over_x_years:
one: "preko 1 godine"
other: "preko {{count}} godina"
almost_x_years:
one: "almost 1 year"
other: "almost {{count}} years"
number:
@@ -893,3 +896,7 @@ bs:
setting_mail_handler_body_delimiters: Truncate emails after one of these lines
permission_add_subprojects: Create subprojects
label_subproject_new: New subproject
text_own_membership_delete_confirmation: |-
You are about to remove some or all of your permissions and may no longer be able to edit this project after that.
Are you sure you want to continue?
label_close_versions: Close completed versions

View File

@@ -59,6 +59,9 @@ ca:
over_x_years:
one: "més d'un any"
other: "més de {{count}} anys"
almost_x_years:
one: "almost 1 year"
other: "almost {{count}} years"
number:
human:
@@ -872,3 +875,7 @@ ca:
setting_mail_handler_body_delimiters: Truncate emails after one of these lines
permission_add_subprojects: Create subprojects
label_subproject_new: New subproject
text_own_membership_delete_confirmation: |-
You are about to remove some or all of your permissions and may no longer be able to edit this project after that.
Are you sure you want to continue?
label_close_versions: Close completed versions

View File

@@ -59,6 +59,9 @@ cs:
over_x_years:
one: "více než 1 rok"
other: "více než {{count}} roky"
almost_x_years:
one: "almost 1 year"
other: "almost {{count}} years"
number:
human:
@@ -875,3 +878,7 @@ cs:
setting_mail_handler_body_delimiters: Truncate emails after one of these lines
permission_add_subprojects: Create subprojects
label_subproject_new: New subproject
text_own_membership_delete_confirmation: |-
You are about to remove some or all of your permissions and may no longer be able to edit this project after that.
Are you sure you want to continue?
label_close_versions: Close completed versions

View File

@@ -62,6 +62,9 @@ da:
over_x_years:
one: "mere end et år"
other: "mere end {{count}} år"
almost_x_years:
one: "almost 1 year"
other: "almost {{count}} years"
number:
format:
@@ -895,3 +898,7 @@ da:
setting_mail_handler_body_delimiters: Truncate emails after one of these lines
permission_add_subprojects: Create subprojects
label_subproject_new: New subproject
text_own_membership_delete_confirmation: |-
You are about to remove some or all of your permissions and may no longer be able to edit this project after that.
Are you sure you want to continue?
label_close_versions: Close completed versions

View File

@@ -13,11 +13,11 @@ de:
abbr_day_names: [So, Mo, Di, Mi, Do, Fr, Sa]
month_names: [~, Januar, Februar, März, April, Mai, Juni, Juli, August, September, Oktober, November, Dezember]
abbr_month_names: [~, Jan, Feb, Mär, Apr, Mai, Jun, Jul, Aug, Sep, Okt, Nov, Dez]
order: [ :day, :month, :year ]
order: [ :Tag, :Monat, :Jahr]
time:
formats:
default: "%A, %e. %B %Y, %H:%M Uhr"
default: "%a, %d.%m.%Y, %H:%M Uhr"
short: "%e. %B, %H:%M Uhr"
long: "%A, %e. %B %Y, %H:%M Uhr"
time: "%H:%M"
@@ -60,6 +60,9 @@ de:
over_x_years:
one: 'mehr als 1 Jahr'
other: 'mehr als {{count}} Jahre'
almost_x_years:
one: "almost 1 year"
other: "almost {{count}} years"
number:
format:
@@ -259,7 +262,7 @@ de:
field_comments: Kommentar
field_url: URL
field_start_page: Hauptseite
field_subproject: Subprojekt von
field_subproject: Unterprojekt von
field_hours: Stunden
field_activity: Aktivität
field_spent_on: Datum
@@ -281,7 +284,7 @@ de:
setting_app_subtitle: Applikations-Untertitel
setting_welcome_text: Willkommenstext
setting_default_language: Default-Sprache
setting_login_required: Authentisierung erforderlich
setting_login_required: Authentifizierung erforderlich
setting_self_registration: Anmeldung ermöglicht
setting_attachment_max_size: Max. Dateigröße
setting_issues_export_limit: Max. Anzahl Tickets bei CSV/PDF-Export
@@ -382,9 +385,9 @@ de:
label_project_new: Neues Projekt
label_project_plural: Projekte
label_x_projects:
zero: no projects
one: 1 project
other: "{{count}} projects"
zero: keine Projekte
one: 1 Projekt
other: "{{count}} Projekte"
label_project_all: Alle Projekte
label_project_latest: Neueste Projekte
label_issue: Ticket
@@ -491,17 +494,17 @@ de:
label_closed_issues: geschlossen
label_closed_issues_plural: geschlossen
label_x_open_issues_abbr_on_total:
zero: 0 open / {{total}}
one: 1 open / {{total}}
other: "{{count}} open / {{total}}"
zero: 0 offen / {{total}}
one: 1 offen / {{total}}
other: "{{count}} offen / {{total}}"
label_x_open_issues_abbr:
zero: 0 open
one: 1 open
other: "{{count}} open"
zero: 0 offen
one: 1 offen
other: "{{count}} offen"
label_x_closed_issues_abbr:
zero: 0 closed
one: 1 closed
other: "{{count}} closed"
zero: 0 geschlossen
one: 1 geschlossen
other: "{{count}} geschlossen"
label_total: Gesamtzahl
label_permissions: Berechtigungen
label_current_status: Gegenwärtiger Status
@@ -525,9 +528,9 @@ de:
label_comment: Kommentar
label_comment_plural: Kommentare
label_x_comments:
zero: no comments
one: 1 comment
other: "{{count}} comments"
zero: kein Kommentar
one: ein Kommentar
other: "{{count}} Kommentare"
label_comment_add: Kommentar hinzufügen
label_comment_added: Kommentar hinzugefügt
label_comment_delete: Kommentar löschen
@@ -606,7 +609,7 @@ de:
label_commits_per_month: Übertragungen pro Monat
label_commits_per_author: Übertragungen pro Autor
label_view_diff: Unterschiede anzeigen
label_diff_inline: inline
label_diff_inline: kombiniert
label_diff_side_by_side: nebeneinander
label_options: Optionen
label_copy_workflow_from: Workflow kopieren von
@@ -658,11 +661,11 @@ de:
label_jump_to_a_project: Zu einem Projekt springen...
label_file_plural: Dateien
label_changeset_plural: Changesets
label_default_columns: Default-Spalten
label_default_columns: Standard-Spalten
label_no_change_option: (Keine Änderung)
label_bulk_edit_selected_issues: Alle ausgewählten Tickets bearbeiten
label_theme: Stil
label_default: Default
label_default: Standard
label_search_titles_only: Nur Titel durchsuchen
label_user_mail_option_all: "Für alle Ereignisse in all meinen Projekten"
label_user_mail_option_selected: "Für alle Ereignisse in den ausgewählten Projekten..."
@@ -734,7 +737,7 @@ de:
status_registered: angemeldet
status_locked: gesperrt
text_select_mail_notifications: Bitte wählen Sie die Aktionen aus, für die eine Mailbenachrichtigung gesendet werden soll
text_select_mail_notifications: Bitte wählen Sie die Aktionen aus, für die eine Mailbenachrichtigung gesendet werden soll.
text_regexp_info: z. B. ^[A-Z0-9]+$
text_min_max_length_info: 0 heißt keine Beschränkung
text_project_destroy_confirmation: Sind Sie sicher, dass sie das Projekt löschen wollen?
@@ -786,7 +789,7 @@ de:
default_tracker_feature: Feature
default_tracker_support: Unterstützung
default_issue_status_new: Neu
default_issue_status_in_progress: In Progress
default_issue_status_in_progress: In Bearbeitung
default_issue_status_resolved: Gelöst
default_issue_status_feedback: Feedback
default_issue_status_closed: Erledigt
@@ -804,8 +807,8 @@ de:
enumeration_issue_priorities: Ticket-Prioritäten
enumeration_doc_categories: Dokumentenkategorien
enumeration_activities: Aktivitäten (Zeiterfassung)
field_editable: Änderbar
label_display: Anzeigen
field_editable: Bearbeitbar
label_display: Anzeige
button_create_and_continue: Anlegen und weiter
text_custom_field_possible_values_info: 'Eine Zeile pro Wert'
setting_repository_log_display_limit: Maximale Anzahl angezeigter Revisionen des Datei Logs
@@ -813,12 +816,12 @@ de:
field_watcher: Beobachter
setting_openid: Erlaube OpenID Anmeldung und Registrierung
field_identity_url: OpenID URL
label_login_with_open_id_option: oder anmeldung mit OpenID
label_login_with_open_id_option: oder Anmeldung mit OpenID
field_content: Inhalt
label_descending: Absteigend
label_sort: Sortierung
label_ascending: Aufsteigend
label_date_from_to: Von {{start}} bis {{end}}
label_date_from_to: von {{start}} bis {{end}}
label_greater_or_equal: ">="
label_less_or_equal: "<="
text_wiki_page_destroy_question: Diese Seite hat {{descendants}} Unterseite(n). Sind Sie sicher?
@@ -827,22 +830,22 @@ de:
text_wiki_page_destroy_children: Lösche alle Unterseiten
setting_password_min_length: Mindestlänge des Passworts
field_group_by: Gruppiere Ergebnisse nach
mail_subject_wiki_content_updated: "Wiki-Seite '{{page}}' aktualisiert"
label_wiki_content_added: Wiki-Seite hinzugefügt
mail_subject_wiki_content_updated: "Die Wiki-Seite '{{page}}' wurde erfolgreich aktualisiert."
label_wiki_content_added: Die Wiki-Seite wurde erfolgreich hinzugefügt.
mail_subject_wiki_content_added: "Wiki-Seite '{{page}}' hinzugefügt"
mail_body_wiki_content_added: "Die Wiki-Seite '{{page}}' wurde von {{author}} hinzugefügt."
label_wiki_content_updated: Wiki-Seite aktualisiert.
label_wiki_content_updated: Die Wiki-Seite wurde erfolgreich aktualisiert.
mail_body_wiki_content_updated: "Die Wiki-Seite '{{page}}' wurde von {{author}} aktualisiert."
permission_add_project: Erstelle Projekt
setting_new_project_user_role_id: Rolle einem Nicht-Administrator zugeordnet, welcher ein Projekt erstellt
label_view_all_revisions: Alle Revisionen anschauen
permission_add_project: Projekt erstellen.
setting_new_project_user_role_id: Die Rolle ist einem Nicht-Administrator zugeordnet, der ein Projekt erstellt.
label_view_all_revisions: Alle Revisionen anschauen.
label_tag: Tag
label_branch: Branch
error_no_tracker_in_project: Diesem Projekt ist kein Tracker zugeordnet. Bitte überprüfen Sie die Projekteinstellungen.
error_no_default_issue_status: Es wurde kein Status als Standard definiert. Bitte überprüfen Sie Ihre Konfiguration (unter "Administration -> Ticket-Status").
text_journal_changed: "{{label}} geändert von {{old}} zu {{new}}"
text_journal_set_to: "{{label}} gesetzt zu {{value}}"
text_journal_deleted: "{{label}} gelöscht ({{old}})"
error_no_default_issue_status: Es ist kein Status als Standard definiert. Bitte überprüfen Sie Ihre Konfiguration (unter "Administration -> Ticket-Status").
text_journal_changed: "{{label}} wurde geändert von {{old}} zu {{new}}."
text_journal_set_to: "{{label}} wurde gesetzt auf {{value}}."
text_journal_deleted: "{{label}} wurde gelöscht (Wert: {{old}})."
label_group_plural: Gruppen
label_group: Gruppe
label_group_new: Neue Gruppe
@@ -854,7 +857,7 @@ de:
version_status_closed: geschlossen
version_status_locked: gesperrt
version_status_open: offen
error_can_not_reopen_issue_on_closed_version: Ein Ticket, welches einer abgeschlossenen Version zugeordnet ist, kann nicht wieder geöffnet werden
error_can_not_reopen_issue_on_closed_version: Das Ticket ist einer abgeschlossenen Version zugeordnet und kann daher nicht wieder geöffnet werden.
label_user_anonymous: Anonym
button_move_and_follow: Verschieben und beobachten
setting_default_projects_modules: Standardmäßig aktivierte Module für neue Projekte
@@ -865,33 +868,37 @@ de:
label_version_sharing_descendants: Mit Unterprojekten
label_version_sharing_tree: Mit Projektbaum
label_version_sharing_none: Nicht geteilt
error_can_not_archive_project: Dieses Projekt kann nicht archiviert werden
error_can_not_archive_project: Dieses Projekt kann nicht archiviert werden.
button_duplicate: Duplikat
button_copy_and_follow: Kopieren und beobachten
label_copy_source: Quelle
setting_issue_done_ratio: Berechne den Ticket-Fortschritt durch
setting_issue_done_ratio_issue_status: Verwende den Ticketstatus
setting_issue_done_ratio_issue_status: Verwende den Ticketstatus.
error_issue_done_ratios_not_updated: Ticket-Fortschritt wurde nicht geändert.
error_workflow_copy_target: Bitte wählen Sie Ziel-Tracker und Rolle(n)
setting_issue_done_ratio_issue_field: Benutze das Ticket-Feld
error_workflow_copy_target: Bitte wählen Sie Ziel-Tracker und Rolle(n).
setting_issue_done_ratio_issue_field: Benutze das Ticket-Feld.
label_copy_same_as_target: So wie Ziel
label_copy_target: Ziel
notice_issue_done_ratios_updated: Ticketfortschritt aktualisiert.
error_workflow_copy_source: Bitte wählen Sie einen Quell-Tracker oder eine Quell-Rolle
error_workflow_copy_source: Bitte wählen Sie einen Quell-Tracker oder eine Quell-Rolle.
label_update_issue_done_ratios: Aktualisiere Ticketfortschritt
setting_start_of_week: Wochenanfang
permission_view_issues: Tickets anzeigen
label_display_used_statuses_only: Zeige nur Status an, die von diesem Tracker verwendet werden
label_api_access_key: API access key
text_line_separated: Multiple values allowed (one line for each value).
label_display_used_statuses_only: Zeige nur Status an, die von diesem Tracker verwendet werden.
label_api_access_key: API-Zugriffsschlüssel
text_line_separated: Mehrere Werte sind erlaubt (eine Zeile pro Wert).
label_revision_id: Revision {{value}}
label_api_access_key_created_on: API access key created {{value}} ago
label_feeds_access_key: RSS access key
notice_api_access_key_reseted: Your API access key was reset.
setting_rest_api_enabled: Enable REST web service
button_show: Show
label_missing_api_access_key: Missing an API access key
label_missing_feeds_access_key: Missing a RSS access key
setting_mail_handler_body_delimiters: Truncate emails after one of these lines
permission_add_subprojects: Create subprojects
label_subproject_new: New subproject
label_api_access_key_created_on: Der API-Zugriffsschlüssel wurde vor {{value}} erstellt.
label_feeds_access_key: RSS-Zugriffsschlüssel
notice_api_access_key_reseted: Ihr API-Zugriffsschlüssel wurde zurückgesetzt.
setting_rest_api_enabled: REST Schnittstelle aktivieren.
button_show: Anzeigen
label_missing_api_access_key: Der API-Zugriffsschlüssel fehlt.
label_missing_feeds_access_key: Der RSS-Zugriffsschlüssel fehlt.
setting_mail_handler_body_delimiters: Schneide E-Mails nach einer der folgenden Zeile ab.
permission_add_subprojects: Unterprojekte erstellen.
label_subproject_new: Neues Unterprojekt
text_own_membership_delete_confirmation: |-
Sie sind dabei, einige oder alle ihre Berechtigungen zu entfernen. Es ist möglich, dass Sie danach das Projekt nicht mehr sehen oder editieren dürfen.
Sind Sie wirklich sicher, dass Sie dies tun möchten?
label_close_versions: Vollständige Versionen schließen

View File

@@ -62,6 +62,9 @@ el:
over_x_years:
one: "πάνω από 1 χρόνο"
other: "πάνω από {{count}} χρόνια"
almost_x_years:
one: "almost 1 year"
other: "almost {{count}} years"
number:
human:
@@ -875,3 +878,7 @@ el:
setting_mail_handler_body_delimiters: Truncate emails after one of these lines
permission_add_subprojects: Create subprojects
label_subproject_new: New subproject
text_own_membership_delete_confirmation: |-
You are about to remove some or all of your permissions and may no longer be able to edit this project after that.
Are you sure you want to continue?
label_close_versions: Close completed versions

View File

@@ -59,6 +59,9 @@ en:
over_x_years:
one: "over 1 year"
other: "over {{count}} years"
almost_x_years:
one: "almost 1 year"
other: "almost {{count}} years"
number:
human:
@@ -499,6 +502,7 @@ en:
label_version: Version
label_version_new: New version
label_version_plural: Versions
label_close_versions: Close completed versions
label_confirmation: Confirmation
label_export_to: 'Also available in:'
label_read: Read...
@@ -848,6 +852,7 @@ en:
text_wiki_page_nullify_children: "Keep child pages as root pages"
text_wiki_page_destroy_children: "Delete child pages and all their descendants"
text_wiki_page_reassign_children: "Reassign child pages to this parent page"
text_own_membership_delete_confirmation: "You are about to remove some or all of your permissions and may no longer be able to edit this project after that.\nAre you sure you want to continue?"
default_role_manager: Manager
default_role_developper: Developer

View File

@@ -94,6 +94,9 @@ es:
over_x_years:
one: "más de 1 año"
other: "más de {{count}} años"
almost_x_years:
one: "almost 1 year"
other: "almost {{count}} years"
activerecord:
errors:
@@ -919,3 +922,7 @@ es:
setting_mail_handler_body_delimiters: Truncar correos tras una de estas líneas
permission_add_subprojects: Create subprojects
label_subproject_new: New subproject
text_own_membership_delete_confirmation: |-
You are about to remove some or all of your permissions and may no longer be able to edit this project after that.
Are you sure you want to continue?
label_close_versions: Close completed versions

View File

@@ -105,6 +105,9 @@ fi:
over_x_years:
one: "yli vuosi"
other: "yli {{count}} vuotta"
almost_x_years:
one: "almost 1 year"
other: "almost {{count}} years"
prompts:
year: "Vuosi"
month: "Kuukausi"
@@ -905,3 +908,7 @@ fi:
setting_mail_handler_body_delimiters: Truncate emails after one of these lines
permission_add_subprojects: Create subprojects
label_subproject_new: New subproject
text_own_membership_delete_confirmation: |-
You are about to remove some or all of your permissions and may no longer be able to edit this project after that.
Are you sure you want to continue?
label_close_versions: Close completed versions

View File

@@ -63,6 +63,9 @@ fr:
over_x_years:
one: "plus d'un an"
other: "plus de {{count}} ans"
almost_x_years:
one: "presqu'un an"
other: "presque {{count}} ans"
prompts:
year: "Année"
month: "Mois"
@@ -295,6 +298,7 @@ fr:
field_content: Contenu
field_group_by: Grouper par
field_sharing: Partage
field_active: Actif
setting_app_title: Titre de l'application
setting_app_subtitle: Sous-titre de l'application
@@ -346,6 +350,8 @@ fr:
setting_issue_done_ratio_issue_status: Utiliser le statut
setting_issue_done_ratio_issue_field: 'Utiliser le champ % effectué'
setting_rest_api_enabled: Activer l'API REST
setting_gravatar_default: Image Gravatar par défaut
setting_start_of_week: Jour de début des calendriers
permission_add_project: Créer un projet
permission_add_subprojects: Créer des sous-projets
@@ -753,6 +759,8 @@ fr:
label_feeds_access_key: Clé d'accès RSS
label_missing_api_access_key: Clé d'accès API manquante
label_missing_feeds_access_key: Clé d'accès RSS manquante
label_close_versions: Fermer les versions terminées
label_revision_id: Revision {{value}}
button_login: Connexion
button_submit: Soumettre
@@ -856,6 +864,7 @@ fr:
text_wiki_page_nullify_children: "Conserver les sous-pages en tant que pages racines"
text_wiki_page_destroy_children: "Supprimer les sous-pages et toutes leurs descedantes"
text_wiki_page_reassign_children: "Réaffecter les sous-pages à cette page"
text_own_membership_delete_confirmation: "Vous allez supprimer tout ou partie de vos permissions sur ce projet et ne serez peut-être plus autorisé à modifier ce projet.\nEtes-vous sûr de vouloir continuer ?"
default_role_manager: Manager
default_role_developper: Développeur
@@ -893,8 +902,4 @@ fr:
text_journal_set_to: "{{label}} mis à {{value}}"
text_journal_deleted: "{{label}} {{old}} supprimé"
text_journal_added: "{{label}} {{value}} ajouté"
field_active: Actif
enumeration_system_activity: Activité système
setting_gravatar_default: Default Gravatar image
setting_start_of_week: Start calendars on
label_revision_id: Revision {{value}}

View File

@@ -105,6 +105,9 @@ gl:
over_x_years:
one: 'máis dun ano'
other: '{{count}} anos'
almost_x_years:
one: "almost 1 year"
other: "almost {{count}} years"
now: 'agora'
today: 'hoxe'
tomorrow: 'mañá'
@@ -895,3 +898,7 @@ gl:
setting_mail_handler_body_delimiters: Truncate emails after one of these lines
permission_add_subprojects: Create subprojects
label_subproject_new: New subproject
text_own_membership_delete_confirmation: |-
You are about to remove some or all of your permissions and may no longer be able to edit this project after that.
Are you sure you want to continue?
label_close_versions: Close completed versions

View File

@@ -65,6 +65,9 @@ he:
over_x_years:
one: 'מעל שנה אחת'
other: 'מעל {{count}} שנים'
almost_x_years:
one: "almost 1 year"
other: "almost {{count}} years"
number:
format:
@@ -879,3 +882,7 @@ he:
setting_mail_handler_body_delimiters: Truncate emails after one of these lines
permission_add_subprojects: Create subprojects
label_subproject_new: New subproject
text_own_membership_delete_confirmation: |-
You are about to remove some or all of your permissions and may no longer be able to edit this project after that.
Are you sure you want to continue?
label_close_versions: Close completed versions

View File

@@ -60,6 +60,9 @@
over_x_years:
one: 'több, mint 1 év'
other: 'több, mint {{count}} év'
almost_x_years:
one: "almost 1 year"
other: "almost {{count}} years"
prompts:
year: "Év"
month: "Hónap"
@@ -900,3 +903,7 @@
setting_mail_handler_body_delimiters: Truncate emails after one of these lines
permission_add_subprojects: Create subprojects
label_subproject_new: New subproject
text_own_membership_delete_confirmation: |-
You are about to remove some or all of your permissions and may no longer be able to edit this project after that.
Are you sure you want to continue?
label_close_versions: Close completed versions

View File

@@ -57,6 +57,9 @@ id:
over_x_years:
one: "lebih dari setahun"
other: "lebih dari {{count}} tahun"
almost_x_years:
one: "almost 1 year"
other: "almost {{count}} years"
number:
format:
@@ -887,3 +890,7 @@ id:
setting_mail_handler_body_delimiters: Truncate emails after one of these lines
permission_add_subprojects: Create subprojects
label_subproject_new: New subproject
text_own_membership_delete_confirmation: |-
You are about to remove some or all of your permissions and may no longer be able to edit this project after that.
Are you sure you want to continue?
label_close_versions: Close completed versions

View File

@@ -63,6 +63,9 @@ it:
over_x_years:
one: "oltre un anno"
other: "oltre {{count}} anni"
almost_x_years:
one: "almost 1 year"
other: "almost {{count}} years"
number:
format:
@@ -882,3 +885,7 @@ it:
setting_mail_handler_body_delimiters: Truncate emails after one of these lines
permission_add_subprojects: Create subprojects
label_subproject_new: New subproject
text_own_membership_delete_confirmation: |-
You are about to remove some or all of your permissions and may no longer be able to edit this project after that.
Are you sure you want to continue?
label_close_versions: Close completed versions

View File

@@ -19,7 +19,7 @@ ja:
month_names: [~, 1月, 2月, 3月, 4月, 5月, 6月, 7月, 8月, 9月, 10月, 11月, 12月]
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]
order: [ :year, :month, :day ]
time:
formats:
@@ -34,35 +34,38 @@ ja:
distance_in_words:
half_a_minute: "30秒前後"
less_than_x_seconds:
one: "1 秒以"
other: "{{count}} 秒以"
one: "1秒以"
other: "{{count}}秒以"
x_seconds:
one: "1 秒"
other: "{{count}} 秒"
one: "1秒"
other: "{{count}}秒"
less_than_x_minutes:
one: "1 分以"
other: "{{count}} 分以"
one: "1分以"
other: "{{count}}分以"
x_minutes:
one: "1 分"
other: "{{count}} 分"
one: "1分"
other: "{{count}}分"
about_x_hours:
one: "約 1 時間"
other: "約 {{count}} 時間"
one: "約1時間"
other: "約{{count}}時間"
x_days:
one: "1 日"
other: "{{count}} 日"
one: "1日"
other: "{{count}}日"
about_x_months:
one: "約 1 ヶ月"
other: "約 {{count}} ヶ月"
one: "約1ヶ月"
other: "約{{count}}ヶ月"
x_months:
one: "1 ヶ月"
other: "{{count}} ヶ月"
one: "1ヶ月"
other: "{{count}}ヶ月"
about_x_years:
one: "約 1 年"
other: "約 {{count}} 年"
one: "約1年"
other: "約{{count}}年"
over_x_years:
one: "1 年以上"
other: "{{count}} 年以上"
one: "1年以上"
other: "{{count}}年以上"
almost_x_years:
one: "almost 1 year"
other: "almost {{count}} years"
number:
format:
@@ -124,17 +127,17 @@ ja:
accepted: "を受諾してください。"
empty: "を入力してください。"
blank: "を入力してください。"
too_long: "は {{count}} 文字以内で入力してください。"
too_short: "は {{count}} 文字以上で入力してください。"
wrong_length: "は {{count}} 文字で入力してください。"
too_long: "は{{count}}文字以内で入力してください。"
too_short: "は{{count}}文字以上で入力してください。"
wrong_length: "は{{count}}文字で入力してください。"
taken: "はすでに存在します。"
not_a_number: "は数値で入力してください。"
not_a_date: "は日付を入力してください。"
greater_than: "は {{count}} より大きい値にしてください。"
greater_than_or_equal_to: "は {{count}} 以上の値にしてください。"
equal_to: "は {{count}} にしてください。"
less_than: "は {{count}} より小さい値にしてください。"
less_than_or_equal_to: "は {{count}} 以下の値にしてください。"
greater_than: "は{{count}}より大きい値にしてください。"
greater_than_or_equal_to: "は{{count}}以上の値にしてください。"
equal_to: "は{{count}}にしてください。"
less_than: "は{{count}}より小さい値にしてください。"
less_than_or_equal_to: "は{{count}}以下の値にしてください。"
odd: "は奇数にしてください。"
even: "は偶数にしてください。"
greater_than_start_date: "を開始日より後にしてください"
@@ -173,11 +176,13 @@ ja:
notice_email_sent: "{{value}} 宛にメールを送信しました。"
notice_email_error: "メール送信中にエラーが発生しました ({{value}})"
notice_feeds_access_key_reseted: RSSアクセスキーを初期化しました。
notice_failed_to_save_issues: "{{total}} 件のうち {{count}} 件のチケットが保存できませんでした: {{ids}}."
notice_api_access_key_reseted: APIアクセスキーを初期化しました。
notice_failed_to_save_issues: "{{total}}件のうち{{count}}件のチケットが保存できませんでした: {{ids}}."
notice_no_issue_selected: "チケットが選択されていません! 更新対象のチケットを選択してください。"
notice_account_pending: アカウントは作成済みで、管理者の承認待ちです。
notice_default_data_loaded: デフォルト設定をロードしました。
notice_unable_delete_version: バージョンを削除できません
notice_issue_done_ratios_updated: チケットの進捗が更新されました。
error_can_t_load_default_data: "デフォルト設定がロードできませんでした: {{value}}"
error_scm_not_found: リポジトリに、エントリ/リビジョンが存在しません。
@@ -186,8 +191,13 @@ ja:
error_issue_not_found_in_project: 'チケットが見つかりません、もしくはこのプロジェクトに属していません'
error_no_tracker_in_project: 'このプロジェクトにはトラッカーが登録されていません。プロジェクト設定を確認してください。'
error_no_default_issue_status: 'デフォルトのチケットステータスが定義されていません。設定を確認してください(管理→チケットのステータス)。'
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}} 個の添付ファイルが保存できませんでした。"
warning_attachments_not_saved: "{{count}}個の添付ファイルが保存できませんでした。"
mail_subject_lost_password: "{{value}} パスワード再発行"
mail_body_lost_password: 'パスワードを変更するには、以下のリンクをクリックしてください:'
@@ -196,20 +206,20 @@ ja:
mail_body_account_information_external: "{{value}} アカウントを使ってにログインできます。"
mail_body_account_information: アカウント情報
mail_subject_account_activation_request: "{{value}} アカウントの承認要求"
mail_body_account_activation_request: "新しいユーザ {{value}} が登録ました。このアカウントはあなたの承認待ちです:"
mail_subject_reminder: "{{count}} 件のチケットが期間近です"
mail_body_reminder: "{{count}} 件の担当チケットの期限が {{days}} 日以内に到来します:"
mail_body_account_activation_request: "新しいユーザ {{value}} が登録されました。このアカウントはあなたの承認待ちです:"
mail_subject_reminder: "{{count}}件のチケットが期間近です"
mail_body_reminder: "{{count}}件の担当チケットの期日が{{days}}日以内に到来します:"
mail_subject_wiki_content_added: "Wikiページ {{page}} が追加されました"
mail_body_wiki_content_added: "{{author}} によってWikiページ {{page}} が追加されました。"
mail_subject_wiki_content_updated: "Wikiページ {{page}} が更新されました"
mail_body_wiki_content_updated: "{{author}} によってWikiページ {{page}} が更新されました。"
gui_validation_error: 1 件のエラー
gui_validation_error_plural: "{{count}} 件のエラー"
gui_validation_error: 1件のエラー
gui_validation_error_plural: "{{count}}件のエラー"
field_name:
field_name:
field_description: 説明
field_summary: サマリ
field_summary: サマリ
field_is_required: 必須
field_firstname: 名前
field_lastname: 苗字
@@ -237,7 +247,7 @@ ja:
field_is_default: デフォルト値
field_tracker: トラッカー
field_subject: 題名
field_due_date:
field_due_date: 期日
field_assigned_to: 担当者
field_priority: 優先度
field_fixed_version: 対象バージョン
@@ -246,7 +256,7 @@ ja:
field_homepage: ホームページ
field_is_public: 公開
field_parent: 親プロジェクト名
field_is_in_roadmap: ロードマップに表示されているチケット
field_is_in_roadmap: チケットをロードマップに表示する
field_login: ログイン
field_mail_notification: メール通知
field_admin: 管理者
@@ -269,7 +279,7 @@ ja:
field_onthefly: あわせてユーザを作成
field_start_date: 開始日
field_done_ratio: 進捗 %
field_auth_source: 認証モード
field_auth_source: 認証方式
field_hide_mail: メールアドレスを隠す
field_comments: コメント
field_url: URL
@@ -282,7 +292,7 @@ ja:
field_is_filter: フィルタとして使う
field_issue_to: 関連するチケット
field_delay: 遅延
field_assignable: チケットはこのロールに割り当てることができます
field_assignable: このロールにチケットを割り当て可能
field_redirect_existing_links: 既存のリンクをリダイレクトする
field_estimated_hours: 予定工数
field_column_names: 項目
@@ -292,10 +302,11 @@ ja:
field_comments_sorting: コメントを表示
field_parent_title: 親ページ
field_editable: 編集可能
field_watcher: 監視者
field_watcher: ウォッチャー
field_identity_url: OpenID URL
field_content: 内容
field_group_by: グループ条件
field_sharing: 共有
setting_app_title: アプリケーションのタイトル
setting_app_subtitle: アプリケーションのサブタイトル
@@ -314,7 +325,7 @@ ja:
setting_feeds_limit: フィード内容の上限
setting_default_projects_public: デフォルトで新しいプロジェクトは公開にする
setting_autofetch_changesets: コミットを自動取得する
setting_sys_api_enabled: リポジトリ管理用のWeb Serviceを有効にする
setting_sys_api_enabled: リポジトリ管理用のWebサービスを有効にする
setting_commit_ref_keywords: 参照用キーワード
setting_commit_fix_keywords: 修正用キーワード
setting_autologin: 自動ログイン
@@ -331,23 +342,33 @@ ja:
setting_activity_days_default: プロジェクトの活動ページに表示される日数
setting_display_subprojects_issues: デフォルトでサブプロジェクトのチケットをメインプロジェクトに表示する
setting_enabled_scm: 使用するバージョン管理システム
setting_mail_handler_api_enabled: 受信メール用のWeb Serviceを有効にする
setting_mail_handler_body_delimiters: "メール本文から一致する行以降を切り取る"
setting_mail_handler_api_enabled: 受信メール用のWebサービスを有効にする
setting_mail_handler_api_key: APIキー
setting_sequential_project_identifiers: プロジェクト識別子を連番で生成する
setting_gravatar_enabled: Gravatarユーザーアイコンを使用する
setting_gravatar_enabled: Gravatarアイコンを使用する
setting_gravatar_default: デフォルトのGravatarアイコン
setting_diff_max_lines_displayed: 差分の表示行数の上限
setting_file_max_size_displayed: テキストファイルのインライン表示行数の上限
setting_repository_log_display_limit: ファイルのリビジョン表示数の上限
setting_openid: OpenIDによるログインと登録
setting_password_min_length: パスワードの最低必要文字数
setting_new_project_user_role_id: 管理者以外のユーザが作成したプロジェクトに設定するロール
setting_default_projects_modules: 新規プロジェクトにおいてデフォルトで有効になるモジュール
setting_issue_done_ratio: 進捗の算出方法
setting_issue_done_ratio_issue_field: 各チケットにフィールドを用意する
setting_issue_done_ratio_issue_status: チケットのステータスを使用する
setting_start_of_week: 週の開始曜日
setting_rest_api_enabled: RESTによるWebサービスを有効にする
permission_add_project: プロジェクトの追加
permission_add_subprojects: サブプロジェクトの追加
permission_edit_project: プロジェクトの編集
permission_select_project_modules: モジュールの選択
permission_manage_members: メンバーの管理
permission_manage_versions: バージョンの管理
permission_manage_categories: チケットのカテゴリの管理
permission_view_issues: チケットの閲覧
permission_add_issues: チケットの追加
permission_edit_issues: チケットの編集
permission_manage_issue_relations: チケットの管理
@@ -360,8 +381,9 @@ ja:
permission_save_queries: クエリの保存
permission_view_gantt: ガントチャートの閲覧
permission_view_calendar: カレンダーの閲覧
permission_view_issue_watchers: 監視者一覧の閲覧
permission_add_issue_watchers: 監視者の追加
permission_view_issue_watchers: ウォッチ一覧の閲覧
permission_add_issue_watchers: ウォッチの追加
permission_delete_issue_watchers: ウォッチの削除
permission_log_time: 変更履歴の記入
permission_view_time_entries: 変更履歴の閲覧
permission_edit_time_entries: 変更履歴の編集
@@ -404,19 +426,20 @@ ja:
label_user: ユーザ
label_user_plural: ユーザ
label_user_new: 新しいユーザ
label_user_anonymous: 匿名ユーザ
label_project: プロジェクト
label_project_new: 新しいプロジェクト
label_project_plural: プロジェクト
label_x_projects:
zero: プロジェクトはありません
one: 1 プロジェクト
other: "{{count}} プロジェクト"
one: 1プロジェクト
other: "{{count}}プロジェクト"
label_project_all: 全プロジェクト
label_project_latest: 最近のプロジェクト
label_issue: チケット
label_issue_new: 新しいチケット
label_issue_plural: チケット
label_issue_view_all: チケットを全て見る
label_issue_view_all: 全てのチケットを見る
label_issues_by: "{{value}} 別のチケット"
label_issue_added: チケットが追加されました
label_issue_updated: チケットが更新されました
@@ -454,7 +477,7 @@ ja:
label_password_lost: パスワードの再発行
label_home: ホーム
label_my_page: マイページ
label_my_account: マイアカウント
label_my_account: 個人設定
label_my_projects: マイプロジェクト
label_administration: 管理
label_login: ログイン
@@ -471,10 +494,11 @@ ja:
label_logged_as: ログイン中:
label_environment: 環境
label_authentication: 認証
label_auth_source: 認証モード
label_auth_source_new: 新しい認証モード
label_auth_source_plural: 認証モード
label_auth_source: 認証方式
label_auth_source_new: 新しい認証方式
label_auth_source_plural: 認証方式
label_subproject_plural: サブプロジェクト
label_subproject_new: 新しいサブプロジェクト
label_and_its_subprojects: "{{value}} とサブプロジェクト"
label_min_max_length: 最小値 - 最大値の長さ
label_list: リストから選択
@@ -486,8 +510,8 @@ ja:
label_text: 長いテキスト
label_attribute: 属性
label_attribute_plural: 属性
label_download: "{{count}} ダウンロード"
label_download_plural: "{{count}} ダウンロード"
label_download: "{{count}}ダウンロード"
label_download_plural: "{{count}}ダウンロード"
label_no_data: 表示するデータがありません
label_change_status: ステータスの変更
label_history: 履歴
@@ -510,25 +534,25 @@ ja:
label_version_new: 新しいバージョン
label_version_plural: バージョン
label_confirmation: 確認
label_export_to: 他の形式に出力
label_export_to: '他の形式に出力:'
label_read: 読む...
label_public_projects: 公開プロジェクト
label_open_issues: 進行中
label_open_issues_plural: 進行中
label_closed_issues:
label_closed_issues_plural:
label_open_issues: 未完了
label_open_issues_plural: 未完了
label_closed_issues:
label_closed_issues_plural:
label_x_open_issues_abbr_on_total:
zero: 0 件進行中 / 全 {{total}}
one: 1 件進行中 / 全 {{total}}
other: "{{count}} 件進行中 / 全 {{total}} 件"
zero: 0件未完了 / 全{{total}}件
one: 1件未完了 / 全{{total}}件
other: "{{count}}件未完了 / 全{{total}}件"
label_x_open_issues_abbr:
zero: 0 件進行中
one: 1 件進行中
other: "{{count}} 件進行中"
zero: 0件未完了
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: 現在のステータス
@@ -543,18 +567,18 @@ ja:
label_add_note: 注記を追加
label_per_page: ページ毎
label_calendar: カレンダー
label_months_from: ヶ月前以降
label_months_from: ヶ月
label_gantt: ガントチャート
label_internal: 内部
label_last_changes: "最新の変更 {{count}} 件"
label_last_changes: "最新の変更 {{count}}件"
label_change_view_all: 全ての変更を見る
label_personalize_page: このページをパーソナライズする
label_comment: コメント
label_comment_plural: コメント
label_x_comments:
zero: コメントがありません
one: 1 コメント
other: "{{count}} コメント"
one: 1コメント
other: "{{count}}コメント"
label_comment_add: コメント追加
label_comment_added: 追加されたコメント
label_comment_delete: コメント削除
@@ -563,25 +587,25 @@ ja:
label_query_new: 新しいクエリ
label_filter_add: フィルタ追加
label_filter_plural: フィルタ
label_equals: 等しい
label_not_equals: 等しくない
label_in_less_than: 残日数がこれより少ない
label_in_more_than: 残日数がこれより多い
label_equals: 含む
label_not_equals: 含まない
label_in_less_than: が今日から○日後以前
label_in_more_than: が今日から○日後以降
label_greater_or_equal: 以上
label_less_or_equal: 以下
label_in: 残日数
label_in: が今日から○日後
label_today: 今日
label_all_time: 全期間
label_yesterday: 昨日
label_this_week: この週
label_last_week: 先週
label_last_n_days: "最後の {{count}} 日間"
label_last_n_days: "最後の{{count}}日間"
label_this_month: 今月
label_last_month: 先月
label_this_year: 今年
label_date_range: 日付の範囲
label_less_than_ago: 経過日数がこれより少ない
label_more_than_ago: 経過日数がこれより多い
label_less_than_ago: が今日より○日前以降
label_more_than_ago: が今日より○日前以前
label_ago: 日前
label_contains: 含む
label_not_contains: 含まない
@@ -589,12 +613,13 @@ ja:
label_repository: リポジトリ
label_repository_plural: リポジトリ
label_browse: ブラウズ
label_modification: "{{count}} 点の変更"
label_modification_plural: "{{count}} 点の変更"
label_modification: "{{count}}点の変更"
label_modification_plural: "{{count}}点の変更"
label_branch: ブランチ
label_tag: タグ
label_revision: リビジョン
label_revision_plural: リビジョン
label_revision_id: リビジョン {{value}}
label_associated_revisions: 関係しているリビジョン
label_added: 追加
label_modified: 変更
@@ -613,7 +638,7 @@ ja:
label_roadmap: ロードマップ
label_roadmap_due_in: "期日まで {{value}}"
label_roadmap_overdue: "{{value}} 遅れ"
label_roadmap_no_issues: このバージョンに向けてのチケットはありません
label_roadmap_no_issues: このバージョンに関するチケットはありません
label_search: 検索
label_result_plural: 結果
label_all_words: すべての単語
@@ -629,9 +654,9 @@ ja:
label_feed_plural: フィード
label_changes_details: 全変更の詳細
label_issue_tracking: チケットトラッキング
label_spent_time: 活動時間の記録
label_f_hour: "{{value}} 時間"
label_f_hour_plural: "{{value}} 時間"
label_spent_time: 作業時間の記録
label_f_hour: "{{value}}時間"
label_f_hour_plural: "{{value}}時間"
label_time_tracking: 時間トラッキング
label_change_plural: 変更
label_statistics: 統計
@@ -643,9 +668,9 @@ ja:
label_options: オプション
label_copy_workflow_from: ワークフローをここからコピー
label_permissions_report: 権限レポート
label_watched_issues: 監視中のチケット
label_watched_issues: ウォッチしているチケット
label_related_issues: 関連するチケット
label_applied_status: 適用されステータス
label_applied_status: 適用されステータス
label_loading: ロード中...
label_relation_new: 新しい関連
label_relation_delete: 関連の削除
@@ -680,13 +705,15 @@ ja:
label_date_from: "日付指定: "
label_date_to: から
label_language_based: 既定の言語の設定に従う
label_sort_by: "{{value}} で並び替え"
label_sort_by: "並び替え {{value}}"
label_send_test_email: テストメールを送信
label_feeds_access_key_created_on: "RSSアクセスキーは {{value}} 前に作成されました"
label_feeds_access_key: RSSアクセスキー
label_missing_feeds_access_key: RSSアクセスキーが見つかりません
label_feeds_access_key_created_on: "RSSアクセスキーは{{value}}前に作成されました"
label_module_plural: モジュール
label_added_time_by: "{{author}} が {{age}} 前に追加しました"
label_updated_time_by: "{{author}} が {{age}} 前に更新"
label_updated_time: "{{value}} 前に更新されました"
label_added_time_by: "{{author}} が{{age}}前に追加"
label_updated_time_by: "{{author}} が{{age}}前に更新"
label_updated_time: "{{value}}前に更新"
label_jump_to_a_project: プロジェクトへ移動...
label_file_plural: ファイル
label_changeset_plural: 更新履歴
@@ -696,13 +723,13 @@ ja:
label_theme: テーマ
label_default: 既定
label_search_titles_only: タイトルのみ
label_user_mail_option_selected: "選択したプロジェクト..."
label_user_mail_option_all: "参加しているプロジェクトの全てのチケット"
label_user_mail_option_none: "監視または関係しているチケットのみ"
label_user_mail_no_self_notified: 自分自身による変更の通知は不要です
label_user_mail_option_selected: "選択したプロジェクト..."
label_user_mail_option_none: "ウォッチまたは関係しているチケットのみ"
label_user_mail_no_self_notified: 自分自身による変更の通知は不要
label_registration_activation_by_email: メールでアカウントを有効化
label_registration_automatic_activation: 自動でアカウントを有効化
label_registration_manual_activation: 手動でアカウントを有効化
label_registration_automatic_activation: 自動でアカウントを有効化
label_display_per_page: "1ページに: {{value}}"
label_age: 年齢
label_change_properties: プロパティの変更
@@ -720,25 +747,38 @@ ja:
label_planning: 計画
label_incoming_emails: 受信メール
label_generate_key: キーの生成
label_issue_watchers: チケット監視者
label_issue_watchers: チケットのウォッチャー
label_example:
label_display: 表示
label_sort: ソート条件
label_ascending: 昇順
label_descending: 降順
label_date_from_to: "{{start}} から {{end}} まで"
label_date_from_to: "{{start}}から{{end}}まで"
label_wiki_content_added: Wikiページが追加されました
label_wiki_content_updated: Wikiページが更新されました
label_group: グループ
label_group_plural: グループ
label_group_new: 新しいグループ
label_time_entry_plural: 活動時間の記録
label_time_entry_plural: 作業時間の記録
label_version_sharing_none: 共有しない
label_version_sharing_descendants: サブプロジェクト単位
label_version_sharing_hierarchy: プロジェクト階層単位
label_version_sharing_tree: プロジェクトツリー単位
label_version_sharing_system: すべてのプロジェクト
label_update_issue_done_ratios: 進捗の更新
label_copy_source: コピー元
label_copy_target: コピー先
label_copy_same_as_target: 同じコピー先
label_display_used_statuses_only: このトラッカーで使われているステータスのみ表示する
label_api_access_key: APIアクセスキー
label_missing_api_access_key: APIアクセスキーが見つかりません
label_api_access_key_created_on: "APIアクセスキーは{{value}}前に作成されました"
button_login: ログイン
button_submit: 変更
button_save: 保存
button_check_all: チェックを全部つける
button_uncheck_all: チェックを全部外す
button_check_all: 全てにチェックをつける
button_uncheck_all: 全てのチェックを外す
button_delete: 削除
button_create: 作成
button_create_and_continue: 連続作成
@@ -754,14 +794,15 @@ ja:
button_list: 一覧
button_view: 見る
button_move: 移動
button_move_and_follow: 移動後表示
button_back: 戻る
button_cancel: キャンセル
button_activate: 有効にする
button_sort: ソート
button_log_time: 時間を記録
button_rollback: このバージョンにロールバック
button_watch: 監視
button_unwatch: 監視をやめる
button_watch: ウォッチ
button_unwatch: ウォッチをやめる
button_reply: 返答
button_archive: 書庫に保存
button_unarchive: 書庫から戻す
@@ -769,15 +810,24 @@ ja:
button_rename: 名前変更
button_change_password: パスワード変更
button_copy: コピー
button_copy_and_follow: コピー後表示
button_annotate: 注釈
button_update: 更新
button_configure: 設定
button_quote: 引用
button_duplicate: 複製
button_show: 表示
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だと無制限になります
@@ -788,24 +838,26 @@ ja:
text_journal_changed: "{{label}} を {{old}} から {{new}} に変更"
text_journal_set_to: "{{label}} を {{value}} にセット"
text_journal_deleted: "{{label}} を削除 ({{old}})"
text_journal_added: "{{label}} {{value}} を追加"
text_tip_task_begin_day: この日に開始するタスク
text_tip_task_end_day: この日に終了するタスク
text_tip_task_begin_end_day: この日のうちに開始して終了するタスク
text_project_identifier_info: '英小文字(a-z)と数字とダッシュ(-)が使えます。<br />一度保存すると、識別子は変更できません。'
text_caracters_maximum: "最大 {{count}} 文字です。"
text_caracters_minimum: "最低 {{count}} 文字の長さが必要です"
text_length_between: "長さは {{min}} から {{max}} 文字までです。"
text_caracters_maximum: "最大{{count}}文字です。"
text_caracters_minimum: "最低{{count}}文字の長さが必要です"
text_length_between: "長さは{{min}}から{{max}}文字までです。"
text_tracker_no_workflow: このトラッカーにワークフローが定義されていません
text_unallowed_characters: 次の文字は使用できません
text_comma_separated: (カンマで区切った)複数の値が使えます
text_comma_separated: (カンマで区切ることで)複数の値を設定できます
text_line_separated: (1行ごとに書くことで)複数の値を設定できます。
text_issues_ref_in_commit_messages: コミットメッセージ内でチケットの参照/修正
text_issue_added: "チケット {{id}} が {{author}} によって報告されました。"
text_issue_updated: "チケット {{id}} が {{author}} によって更新されました。"
text_wiki_destroy_confirmation: 本当にこのwikiとその内容の全てを削除しますか
text_issue_category_destroy_question: "{{count}} 件のチケットがこのカテゴリに割り当てられています。"
text_issue_category_destroy_question: "{{count}}件のチケットがこのカテゴリに割り当てられています。"
text_issue_category_destroy_assignments: カテゴリの割り当てを削除する
text_issue_category_reassign_to: チケットをこのカテゴリに再割り当てする
text_user_mail_option: "未選択のプロジェクトでは、監視または関係しているチケット(例: 自分が報告者もしくは担当者であるチケット)のみメールが送信されます。"
text_user_mail_option: "未選択のプロジェクトでは、ウォッチまたは関係しているチケット(例: 自分が報告者もしくは担当者であるチケット)のみメールが送信されます。"
text_no_configuration_data: "ロール、トラッカー、チケットのステータス、ワークフローがまだ設定されていません。\nデフォルト設定のロードを強くお勧めします。ロードした後、それを修正することができます。"
text_load_default_configuration: デフォルト設定をロード
text_status_changed_by_changeset: "更新履歴 {{value}} で適用されました。"
@@ -815,21 +867,22 @@ ja:
text_file_repository_writable: ファイルリポジトリに書き込み可能
text_plugin_assets_writable: Plugin assetsディレクトリに書き込み可能
text_rmagick_available: RMagickが使用可能 (オプション)
text_destroy_time_entries_question: このチケットの {{hours}} 時間分の活動記録の扱いを選択してください。
text_destroy_time_entries: 記録された活動時間を含めて削除
text_assign_time_entries_to_project: 記録された活動時間をプロジェクト自体に割り当て
text_reassign_time_entries: '記録された活動時間をこのチケットに再割り当て:'
text_destroy_time_entries_question: このチケットの{{hours}}時間分の作業記録の扱いを選択してください。
text_destroy_time_entries: 記録された作業時間を含めて削除
text_assign_time_entries_to_project: 記録された作業時間をプロジェクト自体に割り当て
text_reassign_time_entries: '記録された作業時間をこのチケットに再割り当て:'
text_user_wrote: "{{value}} は書きました:"
text_enumeration_destroy_question: "{{count}} 個のオブジェクトがこの値に割り当てられています。"
text_enumeration_destroy_question: "{{count}}個のオブジェクトがこの値に割り当てられています。"
text_enumeration_category_reassign_to: '次の値に割り当て直す:'
text_email_delivery_not_configured: "メールを送信するために必要な設定が行われていないため、メール通知は利用できません。\nconfig/email.ymlでSMTPサーバの設定を行い、アプリケーションを再起動してください。"
text_repository_usernames_mapping: "リポジトリのログから検出されたユーザー名をどのRedmineユーザーに関連づけるのか選択してください。\nログ上のユーザー名またはメールアドレスがRedmineのユーザーと一致する場合は自動的に関連づけられます。"
text_diff_truncated: '... 差分の行数が表示可能な上限を超えました。超過分は表示しません。'
text_custom_field_possible_values_info: '選択肢の値は1行に1個ずつ記述してください。'
text_wiki_page_destroy_question: "この親ページの配下に {{descendants}}の子孫ページがあります。"
text_wiki_page_destroy_question: "この親ページの配下に{{descendants}}ページの子孫ページがあります。"
text_wiki_page_nullify_children: "子ページをメインページ配下に移動する"
text_wiki_page_destroy_children: "配下の子孫ページも削除する"
text_wiki_page_reassign_children: "子ページを次の親ページの配下に移動する"
text_own_membership_delete_confirmation: "いくつかまたはすべての権限をあなた自身から剥奪しようとしているため、このプロジェクトを編集できなくなるかもしれません。\n本当に続けてもよろしいですか"
default_role_manager: 管理者
default_role_developper: 開発者
@@ -838,7 +891,7 @@ ja:
default_tracker_feature: 機能
default_tracker_support: サポート
default_issue_status_new: 新規
default_issue_status_in_progress: In Progress
default_issue_status_in_progress: 進行中
default_issue_status_resolved: 解決
default_issue_status_feedback: フィードバック
default_issue_status_closed: 終了
@@ -856,51 +909,5 @@ ja:
enumeration_issue_priorities: チケットの優先度
enumeration_doc_categories: 文書カテゴリ
enumeration_activities: 作業分類 (時間トラッキング)
text_journal_added: "{{label}} {{value}} added"
field_active: Active
enumeration_system_activity: System Activity
permission_delete_issue_watchers: Delete watchers
version_status_closed: closed
version_status_locked: locked
version_status_open: open
error_can_not_reopen_issue_on_closed_version: An issue assigned to a closed version can not be reopened
label_user_anonymous: Anonymous
button_move_and_follow: Move and follow
setting_default_projects_modules: Default enabled modules for new projects
setting_gravatar_default: Default Gravatar image
field_sharing: Sharing
label_version_sharing_hierarchy: With project hierarchy
label_version_sharing_system: With all projects
label_version_sharing_descendants: With subprojects
label_version_sharing_tree: With project tree
label_version_sharing_none: Not shared
error_can_not_archive_project: This project can not be archived
button_duplicate: Duplicate
button_copy_and_follow: Copy and follow
label_copy_source: Source
setting_issue_done_ratio: Calculate the issue done ratio with
setting_issue_done_ratio_issue_status: Use the issue status
error_issue_done_ratios_not_updated: Issue done ratios not updated.
error_workflow_copy_target: Please select target tracker(s) and role(s)
setting_issue_done_ratio_issue_field: Use the issue field
label_copy_same_as_target: Same as target
label_copy_target: Target
notice_issue_done_ratios_updated: Issue done ratios updated.
error_workflow_copy_source: Please select a source tracker or role
label_update_issue_done_ratios: Update issue done ratios
setting_start_of_week: Start calendars on
permission_view_issues: View Issues
label_display_used_statuses_only: Only display statuses that are used by this tracker
label_revision_id: Revision {{value}}
label_api_access_key: API access key
label_api_access_key_created_on: API access key created {{value}} ago
label_feeds_access_key: RSS access key
notice_api_access_key_reseted: Your API access key was reset.
setting_rest_api_enabled: Enable REST web service
label_missing_api_access_key: Missing an API access key
label_missing_feeds_access_key: Missing a RSS access key
button_show: Show
text_line_separated: Multiple values allowed (one line for each value).
setting_mail_handler_body_delimiters: Truncate emails after one of these lines
permission_add_subprojects: Create subprojects
label_subproject_new: New subproject
enumeration_system_activity: システム作業分類
label_close_versions: Close completed versions

View File

@@ -64,6 +64,9 @@ ko:
over_x_years:
one: "일년 이상"
other: "{{count}}년 이상"
almost_x_years:
one: "almost 1 year"
other: "almost {{count}} years"
prompts:
year: "년"
month: "월"
@@ -935,3 +938,7 @@ ko:
setting_mail_handler_body_delimiters: Truncate emails after one of these lines
permission_add_subprojects: Create subprojects
label_subproject_new: New subproject
text_own_membership_delete_confirmation: |-
You are about to remove some or all of your permissions and may no longer be able to edit this project after that.
Are you sure you want to continue?
label_close_versions: Close completed versions

View File

@@ -69,6 +69,9 @@ lt:
over_x_years:
one: "virš 1 metų"
other: "virš {{count}} metų"
almost_x_years:
one: "almost 1 year"
other: "almost {{count}} years"
prompts:
year: "Metai"
month: "Mėnuo"
@@ -943,3 +946,7 @@ lt:
setting_mail_handler_body_delimiters: Truncate emails after one of these lines
permission_add_subprojects: Create subprojects
label_subproject_new: New subproject
text_own_membership_delete_confirmation: |-
You are about to remove some or all of your permissions and may no longer be able to edit this project after that.
Are you sure you want to continue?
label_close_versions: Close completed versions

View File

@@ -59,6 +59,9 @@ nl:
over_x_years:
one: "over 1 jaar"
other: "over {{count}} jaren"
almost_x_years:
one: "almost 1 year"
other: "almost {{count}} years"
number:
human:
@@ -857,3 +860,7 @@ nl:
setting_mail_handler_body_delimiters: Truncate emails after one of these lines
permission_add_subprojects: Create subprojects
label_subproject_new: New subproject
text_own_membership_delete_confirmation: |-
You are about to remove some or all of your permissions and may no longer be able to edit this project after that.
Are you sure you want to continue?
label_close_versions: Close completed versions

View File

@@ -54,6 +54,9 @@
over_x_years:
one: "over 1 år"
other: "over {{count}} år"
almost_x_years:
one: "almost 1 year"
other: "almost {{count}} years"
number:
format:
precision: 2
@@ -870,3 +873,7 @@
setting_mail_handler_body_delimiters: Truncate emails after one of these lines
permission_add_subprojects: Create subprojects
label_subproject_new: New subproject
text_own_membership_delete_confirmation: |-
You are about to remove some or all of your permissions and may no longer be able to edit this project after that.
Are you sure you want to continue?
label_close_versions: Close completed versions

View File

@@ -1,5 +1,6 @@
# Polish translations for Ruby on Rails
# by Jacek Becela (jacek.becela@gmail.com, http://github.com/ncr)
# by Krzysztof Podejma (kpodejma@customprojects.pl, http://www.customprojects.pl)
pl:
number:
@@ -93,6 +94,9 @@ pl:
one: "ponad rok"
few: "ponad {{count}} lata"
other: "ponad {{count}} lat"
almost_x_years:
one: "almost 1 year"
other: "almost {{count}} years"
activerecord:
errors:
@@ -837,7 +841,7 @@ pl:
label_wiki_content_updated: Uaktualniono stronę wiki
mail_body_wiki_content_updated: Strona wiki '{{page}}' została uaktualniona przez {{author}}.
permission_add_project: Tworzenie projektu
setting_new_project_user_role_id: Role given to a non-admin user who creates a project
setting_new_project_user_role_id: Rola nadawana twórcom projektów, którzy nie posiadają uprawnień administatora
label_view_all_revisions: Pokaż wszystkie rewizje
label_tag: Tag
label_branch: Gałąź
@@ -853,48 +857,53 @@ pl:
text_journal_added: "Dodano {{label}} {{value}}"
field_active: Aktywne
enumeration_system_activity: Aktywność Systemowa
permission_delete_issue_watchers: Delete watchers
version_status_closed: closed
version_status_locked: locked
version_status_open: open
error_can_not_reopen_issue_on_closed_version: An issue assigned to a closed version can not be reopened
label_user_anonymous: Anonymous
button_move_and_follow: Move and follow
setting_default_projects_modules: Default enabled modules for new projects
setting_gravatar_default: Default Gravatar image
field_sharing: Sharing
label_version_sharing_hierarchy: With project hierarchy
label_version_sharing_system: With all projects
label_version_sharing_descendants: With subprojects
label_version_sharing_tree: With project tree
label_version_sharing_none: Not shared
error_can_not_archive_project: This project can not be archived
button_duplicate: Duplicate
button_copy_and_follow: Copy and follow
label_copy_source: Source
setting_issue_done_ratio: Calculate the issue done ratio with
setting_issue_done_ratio_issue_status: Use the issue status
error_issue_done_ratios_not_updated: Issue done ratios not updated.
error_workflow_copy_target: Please select target tracker(s) and role(s)
setting_issue_done_ratio_issue_field: Use the issue field
label_copy_same_as_target: Same as target
label_copy_target: Target
notice_issue_done_ratios_updated: Issue done ratios updated.
error_workflow_copy_source: Please select a source tracker or role
label_update_issue_done_ratios: Update issue done ratios
setting_start_of_week: Start calendars on
permission_view_issues: View Issues
label_display_used_statuses_only: Only display statuses that are used by this tracker
label_revision_id: Revision {{value}}
label_api_access_key: API access key
label_api_access_key_created_on: API access key created {{value}} ago
label_feeds_access_key: RSS access key
notice_api_access_key_reseted: Your API access key was reset.
setting_rest_api_enabled: Enable REST web service
label_missing_api_access_key: Missing an API access key
label_missing_feeds_access_key: Missing a RSS access key
button_show: Show
text_line_separated: Multiple values allowed (one line for each value).
setting_mail_handler_body_delimiters: Truncate emails after one of these lines
permission_add_subprojects: Create subprojects
label_subproject_new: New subproject
button_copy_and_follow: Kopiuj i przejdź do kopii zagadnienia
button_duplicate: Duplikuj
button_move_and_follow: Przenieś i przejdź do zagadnienia
button_show: Pokaż
error_can_not_archive_project: Ten projekt nie może zostać zarchiwizowany
error_can_not_reopen_issue_on_closed_version: Zagadnienie przydzielone do zakończonej wersji nie może zostać ponownie otwarte
error_issue_done_ratios_not_updated: % wykonania zagadnienia nie został uaktualniony.
error_workflow_copy_source: Proszę wybrać źródłowy typ zagadnienia lub rolę
error_workflow_copy_target: Proszę wybrać docelowe typ(y) zagadnień i rolę(e)
field_sharing: Współdzielenie
label_api_access_key: Klucz dostępu do API
label_api_access_key_created_on: Klucz dostępu do API został utworzony {{value}} temu
label_close_versions: Zamknij ukończone wersje
label_copy_same_as_target: Jak cel
label_copy_source: Źródło
label_copy_target: Cel
label_display_used_statuses_only: Wyświetlaj tylko statusy używane przez ten typ zagadnienia
label_feeds_access_key: Klucz dostępu do RSS
label_missing_api_access_key: Brakuje klucza dostępu do API
label_missing_feeds_access_key: Brakuje klucza dostępu do RSS
label_revision_id: Rewizja {{value}}
label_subproject_new: Nowy podprojekt
label_update_issue_done_ratios: Uaktualnij % wykonania
label_user_anonymous: Anonimowy
label_version_sharing_descendants: Z podprojektami
label_version_sharing_hierarchy: Z hierarchią projektów
label_version_sharing_none: Brak współdzielenia
label_version_sharing_system: Ze wszystkimi projektami
label_version_sharing_tree: Z drzewem projektów
notice_api_access_key_reseted: Twój klucz dostępu do API został zresetowany.
notice_issue_done_ratios_updated: Uaktualnienie % wykonania zakończone sukcesem.
permission_add_subprojects: Tworzenie podprojektów
permission_delete_issue_watchers: Usuń obserwatorów
permission_view_issues: Przeglądanie zagadnień
setting_default_projects_modules: Domyślnie włączone moduły dla nowo tworzonych projektów
setting_gravatar_default: Domyślny obraz Gravatar
setting_issue_done_ratio: Obliczaj postęp realizacji zagadnień za pomocą
setting_issue_done_ratio_issue_field: % Wykonania zagadnienia
setting_issue_done_ratio_issue_status: Statusu zagadnienia
setting_mail_handler_body_delimiters: Przycinaj e-maile po jednej z tych linii
setting_rest_api_enabled: Uaktywnij usługę sieciową REST
setting_start_of_week: Pierwszy dzień tygodnia
text_line_separated: Dozwolone jest wiele wartości (każda wartość w osobnej linii).
text_own_membership_delete_confirmation: |-
Masz zamiar usunąć niektóre lub wszystkie swoje uprawnienia. Po wykonaniu tej czynności możesz utracić możliwości edycji tego projektu.
Czy na pewno chcesz kontynuować?
version_status_closed: zamknięta
version_status_locked: zablokowana
version_status_open: otwarta

View File

@@ -69,6 +69,9 @@ pt-BR:
over_x_years:
one: 'mais de 1 ano'
other: 'mais de {{count}} anos'
almost_x_years:
one: "almost 1 year"
other: "almost {{count}} years"
# numeros
number:
@@ -902,3 +905,7 @@ pt-BR:
setting_mail_handler_body_delimiters: Truncate emails after one of these lines
permission_add_subprojects: Create subprojects
label_subproject_new: New subproject
text_own_membership_delete_confirmation: |-
You are about to remove some or all of your permissions and may no longer be able to edit this project after that.
Are you sure you want to continue?
label_close_versions: Close completed versions

View File

@@ -60,6 +60,9 @@ pt:
over_x_years:
one: "mais de 1 ano"
other: "mais de {{count}} anos"
almost_x_years:
one: "almost 1 year"
other: "almost {{count}} years"
number:
format:
@@ -887,3 +890,7 @@ pt:
setting_mail_handler_body_delimiters: Truncate emails after one of these lines
permission_add_subprojects: Create subprojects
label_subproject_new: New subproject
text_own_membership_delete_confirmation: |-
You are about to remove some or all of your permissions and may no longer be able to edit this project after that.
Are you sure you want to continue?
label_close_versions: Close completed versions

View File

@@ -57,6 +57,9 @@ ro:
over_x_years:
one: "peste un an"
other: "peste {{count}} ani"
almost_x_years:
one: "almost 1 year"
other: "almost {{count}} years"
number:
human:
@@ -872,3 +875,7 @@ ro:
setting_mail_handler_body_delimiters: Truncate emails after one of these lines
permission_add_subprojects: Create subprojects
label_subproject_new: New subproject
text_own_membership_delete_confirmation: |-
You are about to remove some or all of your permissions and may no longer be able to edit this project after that.
Are you sure you want to continue?
label_close_versions: Close completed versions

View File

@@ -137,6 +137,9 @@ ru:
few: "больше {{count}} лет"
many: "больше {{count}} лет"
other: "больше {{count}} лет"
almost_x_years:
one: "almost 1 year"
other: "almost {{count}} years"
prompts:
year: "Год"
month: "Месяц"
@@ -968,18 +971,22 @@ ru:
error_workflow_copy_source: Выберите исходный трекер или роль
label_update_issue_done_ratios: Обновить готовность задач
setting_start_of_week: День начала недели
label_api_access_key: API access key
text_line_separated: Multiple values allowed (one line for each value).
label_revision_id: Revision {{value}}
permission_view_issues: View Issues
label_display_used_statuses_only: Only display statuses that are used by this tracker
label_api_access_key_created_on: API access key created {{value}} ago
label_feeds_access_key: RSS access key
notice_api_access_key_reseted: Your API access key was reset.
setting_rest_api_enabled: Enable REST web service
button_show: Show
label_missing_api_access_key: Missing an API access key
label_missing_feeds_access_key: Missing a RSS access key
setting_mail_handler_body_delimiters: Truncate emails after one of these lines
permission_add_subprojects: Create subprojects
label_subproject_new: New subproject
label_api_access_key: Ключ доступа к API
text_line_separated: Разрешено несколько значений (по одному значению в строку).
label_revision_id: Ревизия {{value}}
permission_view_issues: Показать проблемы
label_display_used_statuses_only: Отображать только те статусы, которые используются в этом трекере
label_api_access_key_created_on: Ключ доступ к API был создан {{value}} назад
label_feeds_access_key: Ключ доступа к RSS
notice_api_access_key_reseted: Ваш ключ доступа к API был сброшен.
setting_rest_api_enabled: Включить веб-сервис REST
button_show: Показать
label_missing_api_access_key: Отсутствует ключ доступа к API
label_missing_feeds_access_key: Отсутствует ключ доступа к RSS
setting_mail_handler_body_delimiters: Урезать письмо после одной из этих строк
permission_add_subprojects: Создать подпроекты
label_subproject_new: Новый подпроект
text_own_membership_delete_confirmation: |-
Вы собираетесь удалить некоторые или все права, из-за чего могут пропасть права на редактирование этого проекта.
Продолжить?
label_close_versions: Закрыть завершенные версии

View File

@@ -59,6 +59,9 @@ sk:
over_x_years:
one: "cez 1 rok"
other: "cez {{count}} roky/ov"
almost_x_years:
one: "almost 1 year"
other: "almost {{count}} years"
number:
human:
@@ -874,3 +877,7 @@ sk:
setting_mail_handler_body_delimiters: Truncate emails after one of these lines
permission_add_subprojects: Create subprojects
label_subproject_new: New subproject
text_own_membership_delete_confirmation: |-
You are about to remove some or all of your permissions and may no longer be able to edit this project after that.
Are you sure you want to continue?
label_close_versions: Close completed versions

View File

@@ -59,6 +59,9 @@ sl:
over_x_years:
one: "over 1 year"
other: "over {{count}} years"
almost_x_years:
one: "almost 1 year"
other: "almost {{count}} years"
number:
human:
@@ -871,3 +874,7 @@ sl:
setting_mail_handler_body_delimiters: Truncate emails after one of these lines
permission_add_subprojects: Create subprojects
label_subproject_new: New subproject
text_own_membership_delete_confirmation: |-
You are about to remove some or all of your permissions and may no longer be able to edit this project after that.
Are you sure you want to continue?
label_close_versions: Close completed versions

View File

@@ -70,6 +70,9 @@
over_x_years:
one: 'преко 1 године'
other: 'преко {{count}} године'
almost_x_years:
one: "almost 1 year"
other: "almost {{count}} years"
number:
format:
@@ -890,3 +893,7 @@
setting_mail_handler_body_delimiters: Truncate emails after one of these lines
permission_add_subprojects: Create subprojects
label_subproject_new: New subproject
text_own_membership_delete_confirmation: |-
You are about to remove some or all of your permissions and may no longer be able to edit this project after that.
Are you sure you want to continue?
label_close_versions: Close completed versions

View File

@@ -93,6 +93,9 @@ sv:
over_x_years:
one: "mer än ett år"
other: "mer än {{count}} år"
almost_x_years:
one: "nästan 1 år"
other: "nästan {{count}} år"
activerecord:
errors:
@@ -193,6 +196,7 @@ sv:
notice_email_sent: "Ett mail skickades till {{value}}"
notice_email_error: "Ett fel inträffade när mail skickades ({{value}})"
notice_feeds_access_key_reseted: Din RSS-nyckel återställdes.
notice_api_access_key_reseted: Din API-nyckel återställdes.
notice_failed_to_save_issues: "Misslyckades att spara {{count}} ärende(n) på {{total}} valt: {{ids}}."
notice_no_issue_selected: "Inget ärende är markerat! Var vänlig, markera de ärenden du vill ändra."
notice_account_pending: "Ditt konto skapades och avvaktar nu administratörens godkännande."
@@ -358,6 +362,7 @@ sv:
setting_activity_days_default: Dagar som visas på projektaktivitet
setting_display_subprojects_issues: Visa ärenden från underprojekt i huvudprojekt som standard
setting_enabled_scm: Aktivera SCM
setting_mail_handler_body_delimiters: Trunkera mail efter en av följande rader
setting_mail_handler_api_enabled: Aktivera WS för inkommande mail
setting_mail_handler_api_key: API-nyckel
setting_sequential_project_identifiers: Generera projektidentifierare sekventiellt
@@ -374,8 +379,10 @@ sv:
setting_issue_done_ratio_issue_field: Använd ärendefältet
setting_issue_done_ratio_issue_status: Använd ärendestatus
setting_start_of_week: Första dagen i veckan
setting_rest_api_enabled: Aktivera REST webbtjänst
permission_add_project: Skapa projekt
permission_add_subprojects: Skapa underprojekt
permission_edit_project: Ändra projekt
permission_select_project_modules: Välja projektmoduler
permission_manage_members: Hantera medlemmar
@@ -426,6 +433,7 @@ sv:
permission_edit_own_messages: Ändra egna meddelanden
permission_delete_messages: Ta bort meddelanden
permission_delete_own_messages: Ta bort egna meddelanden
project_module_issue_tracking: Ärendeuppföljning
project_module_time_tracking: Tidsuppföljning
project_module_news: Nyheter
@@ -510,6 +518,7 @@ sv:
label_auth_source_new: Nytt autentiseringsläge
label_auth_source_plural: Autentiseringslägen
label_subproject_plural: Underprojekt
label_subproject_new: Nytt underprojekt
label_and_its_subprojects: "{{value}} och dess underprojekt"
label_min_max_length: Min./Max.-längd
label_list: Lista
@@ -544,6 +553,7 @@ sv:
label_version: Version
label_version_new: Ny version
label_version_plural: Versioner
label_close_versions: Stäng klara versioner
label_confirmation: Bekräftelse
label_export_to: Exportera till
label_read: Läs...
@@ -630,6 +640,7 @@ sv:
label_tag: Tag
label_revision: Revision
label_revision_plural: Revisioner
label_revision_id: Revision {{value}}
label_associated_revisions: Associerade revisioner
label_added: tillagd
label_modified: modifierad
@@ -717,6 +728,8 @@ sv:
label_language_based: Språkbaserad
label_sort_by: "Sortera på {{value}}"
label_send_test_email: Skicka testmail
label_feeds_access_key: RSS-nyckel
label_missing_feeds_access_key: Saknar en RSS-nyckel
label_feeds_access_key_created_on: "RSS-nyckel skapad för {{value}} sedan"
label_module_plural: Moduler
label_added_time_by: "Tillagd av {{author}} för {{age}} sedan"
@@ -778,6 +791,9 @@ sv:
label_copy_target: Mål
label_copy_same_as_target: Samma som mål
label_display_used_statuses_only: Visa endast status som används av denna ärendetyp
label_api_access_key: API-nyckel
label_missing_api_access_key: Saknar en API-nyckel
label_api_access_key_created_on: API-nyckel skapad för {{value}} sedan
button_login: Logga in
button_submit: Spara
@@ -821,6 +837,7 @@ sv:
button_configure: Konfigurera
button_quote: Citera
button_duplicate: Duplisera
button_show: Visa
status_active: aktiv
status_registered: registrerad
@@ -853,6 +870,7 @@ sv:
text_tracker_no_workflow: Inget arbetsflöde definerat för denna ärendetyp
text_unallowed_characters: Otillåtna tecken
text_comma_separated: Flera värden tillåtna (kommaseparerade).
text_line_separated: Flera värden tillåtna (ett värde per rad).
text_issues_ref_in_commit_messages: Referera och fixa ärenden i commit-meddelanden
text_issue_added: "Ärende {{id}} har rapporterats (av {{author}})."
text_issue_updated: "Ärende {{id}} har uppdaterats (av {{author}})."
@@ -885,6 +903,7 @@ sv:
text_wiki_page_nullify_children: Behåll undersidor som rotsidor
text_wiki_page_destroy_children: Ta bort alla underliggande sidor
text_wiki_page_reassign_children: Flytta undersidor till denna föräldersida
text_own_membership_delete_confirmation: "Några av, eller alla, dina behörigheter kommer att tas bort och du kanske inte längre kommer kunna göra ändringar i det här projektet.\nVill du verkligen fortsätta?"
default_role_manager: Projektledare
default_role_developper: Utvecklare
@@ -912,16 +931,3 @@ sv:
enumeration_doc_categories: Dokumentkategorier
enumeration_activities: Aktiviteter (tidsuppföljning)
enumeration_system_activity: Systemaktivitet
label_revision_id: Revision {{value}}
label_api_access_key: API access key
label_api_access_key_created_on: API access key created {{value}} ago
label_feeds_access_key: RSS access key
notice_api_access_key_reseted: Your API access key was reset.
setting_rest_api_enabled: Enable REST web service
label_missing_api_access_key: Missing an API access key
label_missing_feeds_access_key: Missing a RSS access key
button_show: Show
text_line_separated: Multiple values allowed (one line for each value).
setting_mail_handler_body_delimiters: Truncate emails after one of these lines
permission_add_subprojects: Create subprojects
label_subproject_new: New subproject

View File

@@ -59,6 +59,9 @@ th:
over_x_years:
one: "over 1 year"
other: "over {{count}} years"
almost_x_years:
one: "almost 1 year"
other: "almost {{count}} years"
number:
human:
@@ -872,3 +875,7 @@ th:
setting_mail_handler_body_delimiters: Truncate emails after one of these lines
permission_add_subprojects: Create subprojects
label_subproject_new: New subproject
text_own_membership_delete_confirmation: |-
You are about to remove some or all of your permissions and may no longer be able to edit this project after that.
Are you sure you want to continue?
label_close_versions: Close completed versions

View File

@@ -65,6 +65,9 @@ tr:
over_x_years:
one: '1 yıldan fazla'
other: '{{count}} yıldan fazla'
almost_x_years:
one: "almost 1 year"
other: "almost {{count}} years"
number:
format:
@@ -902,3 +905,7 @@ tr:
setting_mail_handler_body_delimiters: Truncate emails after one of these lines
permission_add_subprojects: Create subprojects
label_subproject_new: New subproject
text_own_membership_delete_confirmation: |-
You are about to remove some or all of your permissions and may no longer be able to edit this project after that.
Are you sure you want to continue?
label_close_versions: Close completed versions

View File

@@ -59,6 +59,9 @@ uk:
over_x_years:
one: "over 1 year"
other: "over {{count}} years"
almost_x_years:
one: "almost 1 year"
other: "almost {{count}} years"
number:
human:
@@ -871,3 +874,7 @@ uk:
setting_mail_handler_body_delimiters: Truncate emails after one of these lines
permission_add_subprojects: Create subprojects
label_subproject_new: New subproject
text_own_membership_delete_confirmation: |-
You are about to remove some or all of your permissions and may no longer be able to edit this project after that.
Are you sure you want to continue?
label_close_versions: Close completed versions

View File

@@ -94,6 +94,9 @@ vi:
over_x_years:
one: "hơn 1 năm"
other: "hơn {{count}} năm"
almost_x_years:
one: "almost 1 year"
other: "almost {{count}} years"
prompts:
year: "Năm"
month: "Tháng"
@@ -934,3 +937,7 @@ vi:
setting_mail_handler_body_delimiters: Truncate emails after one of these lines
permission_add_subprojects: Create subprojects
label_subproject_new: New subproject
text_own_membership_delete_confirmation: |-
You are about to remove some or all of your permissions and may no longer be able to edit this project after that.
Are you sure you want to continue?
label_close_versions: Close completed versions

View File

@@ -131,6 +131,9 @@
over_x_years:
one: "超過 1 年"
other: "超過 {{count}} 年"
almost_x_years:
one: "將近 1 年"
other: "將近 {{count}} 年"
prompts:
year: "年"
month: "月"
@@ -420,6 +423,7 @@
setting_rest_api_enabled: 啟用 REST 網路服務技術Web Service
permission_add_project: 建立專案
permission_add_subprojects: 建立子專案
permission_edit_project: 編輯專案
permission_select_project_modules: 選擇專案模組
permission_manage_members: 管理成員
@@ -555,6 +559,7 @@
label_auth_source_new: 建立新認證模式
label_auth_source_plural: 認證模式清單
label_subproject_plural: 子專案
label_subproject_new: 建立子專案
label_and_its_subprojects: "{{value}} 與其子專案"
label_min_max_length: 最小 - 最大 長度
label_list: 清單
@@ -590,6 +595,7 @@
label_version: 版本
label_version_new: 建立新版本
label_version_plural: 版本
label_close_versions: 結束已完成的版本
label_confirmation: 確認
label_export_to: 匯出至
label_read: 讀取...
@@ -939,7 +945,8 @@
text_wiki_page_nullify_children: "保留所有子頁面當作根頁面"
text_wiki_page_destroy_children: "刪除所有子頁面及其延伸頁面"
text_wiki_page_reassign_children: "重新指定所有的子頁面之父頁面至此頁面"
text_own_membership_delete_confirmation: "您在專案中,所擁有的部分或全部權限即將被移除,在這之後可能無法再次編輯此專案。\n您確定要繼續執行這個動作"
default_role_manager: 管理人員
default_role_developper: 開發人員
default_role_reporter: 報告人員
@@ -966,5 +973,3 @@
enumeration_doc_categories: 文件分類
enumeration_activities: 活動 (時間追蹤)
enumeration_system_activity: 系統活動
permission_add_subprojects: Create subprojects
label_subproject_new: New subproject

View File

@@ -56,6 +56,9 @@ zh:
over_x_years:
one: "一年以上"
other: "{{count}} 年以上"
almost_x_years:
one: "almost 1 year"
other: "almost {{count}} years"
prompts:
year: "年"
month: "月"
@@ -166,6 +169,7 @@ zh:
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_no_issue_selected: "未选择任何问题!请选择您要编辑的问题。"
notice_account_pending: "您的帐号已被成功创建,正在等待管理员的审核。"
@@ -331,6 +335,7 @@ zh:
setting_activity_days_default: 在项目活动中显示的天数
setting_display_subprojects_issues: 在项目页面上默认显示子项目的问题
setting_enabled_scm: 启用 SCM
setting_mail_handler_body_delimiters: 在这些行之后截断邮件
setting_mail_handler_api_enabled: 启用用于接收邮件的服务
setting_mail_handler_api_key: API key
setting_sequential_project_identifiers: 顺序产生项目标识
@@ -347,6 +352,7 @@ zh:
setting_issue_done_ratio_issue_field: 使用问题(的完成度)属性
setting_issue_done_ratio_issue_status: 使用问题状态
setting_start_of_week: 日历开始于
setting_rest_api_enabled: 启用REST web service
permission_add_project: 新建项目
permission_edit_project: 编辑项目
@@ -604,6 +610,7 @@ zh:
label_tag: 标签
label_revision: 修订
label_revision_plural: 修订
label_revision_id: 修订 {{value}}
label_associated_revisions: 相关修订版本
label_added: 已添加
label_modified: 已修改
@@ -691,7 +698,9 @@ zh:
label_language_based: 根据用户的语言
label_sort_by: "根据 {{value}} 排序"
label_send_test_email: 发送测试邮件
label_feeds_access_key_created_on: "RSS 存取键是在 {{value}} 之前建立的"
label_feeds_access_key: RSS存取键
label_missing_feeds_access_key: 缺少RSS存取键
label_feeds_access_key_created_on: "RSS存取键是在 {{value}} 之前建立的"
label_module_plural: 模块
label_added_time_by: "由 {{author}} 在 {{age}} 之前添加"
label_updated_time: " 更新于 {{value}} 之前"
@@ -752,6 +761,9 @@ zh:
label_copy_target: 目标
label_copy_same_as_target: 与目标一致
label_display_used_statuses_only: 只显示被此跟踪标签使用的状态
label_api_access_key: API访问键
label_missing_api_access_key: 缺少API访问键
label_api_access_key_created_on: API访问键是在 {{value}} 之前建立的
button_login: 登录
button_submit: 提交
@@ -795,7 +807,8 @@ zh:
button_configure: 配置
button_quote: 引用
button_duplicate: 副本
button_show: 显示
status_active: 活动的
status_registered: 已注册
status_locked: 已锁定
@@ -827,6 +840,7 @@ zh:
text_tracker_no_workflow: 此跟踪标签未定义工作流程
text_unallowed_characters: 非法字符
text_comma_separated: 可以使用多个值(用逗号,分开)。
text_line_separated: 可以使用多个值(每行一个值)。
text_issues_ref_in_commit_messages: 在提交信息中引用和解决问题
text_issue_added: "问题 {{id}} 已由 {{author}} 提交。"
text_issue_updated: "问题 {{id}} 已由 {{author}} 更新。"
@@ -867,7 +881,7 @@ zh:
default_tracker_feature: 功能
default_tracker_support: 支持
default_issue_status_new: 新建
default_issue_status_in_progress: In Progress
default_issue_status_in_progress: 进行中
default_issue_status_resolved: 已解决
default_issue_status_feedback: 反馈
default_issue_status_closed: 已关闭
@@ -886,16 +900,9 @@ zh:
enumeration_doc_categories: 文档类别
enumeration_activities: 活动(时间跟踪)
enumeration_system_activity: 系统活动
label_api_access_key: API access key
text_line_separated: Multiple values allowed (one line for each value).
label_revision_id: Revision {{value}}
label_api_access_key_created_on: API access key created {{value}} ago
label_feeds_access_key: RSS access key
notice_api_access_key_reseted: Your API access key was reset.
setting_rest_api_enabled: Enable REST web service
button_show: Show
label_missing_api_access_key: Missing an API access key
label_missing_feeds_access_key: Missing a RSS access key
setting_mail_handler_body_delimiters: Truncate emails after one of these lines
permission_add_subprojects: Create subprojects
label_subproject_new: New subproject
text_own_membership_delete_confirmation: |-
You are about to remove some or all of your permissions and may no longer be able to edit this project after that.
Are you sure you want to continue?
label_close_versions: Close completed versions

View File

@@ -1,6 +1,7 @@
class AddVersionsStatus < ActiveRecord::Migration
def self.up
add_column :versions, :status, :string, :default => 'open'
Version.update_all("status = 'open'")
end
def self.down

View File

@@ -0,0 +1,16 @@
class ChangeWikiContentsTextLimit < ActiveRecord::Migration
def self.up
# Migrates MySQL databases only
# Postgres would raise an error (see http://dev.rubyonrails.org/ticket/3818)
# Not fixed in Rails 2.3.5
if ActiveRecord::Base.connection.adapter_name =~ /mysql/i
max_size = 16.megabytes
change_column :wiki_contents, :text, :text, :limit => max_size
change_column :wiki_content_versions, :data, :binary, :limit => max_size
end
end
def self.down
# no-op
end
end

View File

@@ -1,10 +1,10 @@
== Redmine changelog
Redmine - project management software
Copyright (C) 2006-2009 Jean-Philippe Lang
Copyright (C) 2006-2010 Jean-Philippe Lang
http://www.redmine.org/
== v0.9.0
== 2010-01-09 v0.9.0 (Release candidate)
* Unlimited subproject nesting
* Multiple roles per user per project
@@ -115,6 +115,8 @@ http://www.redmine.org/
* Fixed: 50k users cause problems in project->settings->members screen
* Fixed: Document timestamp needs to show updated timestamps
* Fixed: Users getting notifications for issues they are no longer allowed to view
* Fixed: issue summary counts should link to the issue list without subprojects
* Fixed: 'Delete' link on LDAP list has no effect
== 2009-11-15 v0.8.7

View File

@@ -1,13 +1,13 @@
== Redmine installation
Redmine - project management software
Copyright (C) 2006-2008 Jean-Philippe Lang
Copyright (C) 2006-2010 Jean-Philippe Lang
http://www.redmine.org/
== Requirements
* Ruby on Rails 2.2.2
* Ruby on Rails 2.3.5
* A database:
* MySQL (tested with MySQL 5)
* PostgreSQL (tested with PostgreSQL 8.1)

View File

@@ -1,7 +1,7 @@
== Redmine upgrade procedure
Redmine - project management software
Copyright (C) 2006-2008 Jean-Philippe Lang
Copyright (C) 2006-2010 Jean-Philippe Lang
http://www.redmine.org/
@@ -9,20 +9,25 @@ http://www.redmine.org/
1. Uncompress the program archive in a new directory
3. Copy your database settings (RAILS_ROOT/config/database.yml)
2. Copy your database settings (RAILS_ROOT/config/database.yml)
and SMTP settings (RAILS_ROOT/config/email.yml)
into the new config directory
DO NOT REPLACE ANY OTHERS FILES.
4. Migrate your database (please make a backup before doing this):
3. Migrate your database (please make a backup before doing this):
rake db:migrate RAILS_ENV="production"
5. Copy the RAILS_ROOT/files directory content into your new installation
4. Copy the RAILS_ROOT/files directory content into your new installation
This directory contains all the attached files
5. Generate a session store secret
Redmine stores session data in cookies by default, which requires
a secret to be generated. Run:
rake config/initializers/session_store.rb
== Notes
1. Rails 2.1.2 is required for version 0.8.
1. Rails 2.3.5 is required for version 0.9.
2. When upgrading your code with svn update, don't forget to clear
the application cache (RAILS_ROOT/tmp/cache) before restarting.

View File

@@ -233,11 +233,16 @@ sub is_public_project {
my $dbh = connect_database($r);
my $sth = $dbh->prepare(
"SELECT * FROM projects WHERE projects.identifier=? and projects.is_public=true;"
"SELECT is_public FROM projects WHERE projects.identifier = ?;"
);
$sth->execute($project_id);
my $ret = $sth->fetchrow_array ? 1 : 0;
my $ret = 0;
if (my @row = $sth->fetchrow_array) {
if ($row[0] eq "1" || $row[0] eq "t") {
$ret = 1;
}
}
$sth->finish();
$dbh->disconnect();
@@ -295,7 +300,7 @@ sub is_member {
$sthldap->execute($auth_source_id);
while (my @rowldap = $sthldap->fetchrow_array) {
my $ldap = Authen::Simple::LDAP->new(
host => ($rowldap[2] == 1 || $rowldap[2] eq "t") ? "ldaps://$rowldap[0]" : $rowldap[0],
host => ($rowldap[2] eq "1" || $rowldap[2] eq "t") ? "ldaps://$rowldap[0]" : $rowldap[0],
port => $rowldap[1],
basedn => $rowldap[5],
binddn => $rowldap[3] ? $rowldap[3] : "",

View File

@@ -153,7 +153,7 @@ Redmine::MenuManager.map :project_menu do |menu|
:if => Proc.new { |p| p.wiki && !p.wiki.new_record? }
menu.push :boards, { :controller => 'boards', :action => 'index', :id => nil }, :param => :project_id,
:if => Proc.new { |p| p.boards.any? }, :caption => :label_board_plural
menu.push :files, { :controller => 'projects', :action => 'list_files' }, :caption => :label_attachment_plural
menu.push :files, { :controller => 'projects', :action => 'list_files' }, :caption => :label_file_plural
menu.push :repository, { :controller => 'repositories', :action => 'show' },
:if => Proc.new { |p| p.repository && !p.repository.new_record? }
menu.push :settings, { :controller => 'projects', :action => 'settings' }, :last => true

View File

@@ -1,5 +1,5 @@
# redMine - project management software
# Copyright (C) 2006-2007 Jean-Philippe Lang
# Redmine - project management software
# Copyright (C) 2006-2009 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
@@ -36,6 +36,7 @@ module Redmine
'text/x-sh' => 'sh',
'text/xml' => 'xml,xsd,mxml',
'text/yaml' => 'yml,yaml',
'text/csv' => 'csv',
'image/gif' => 'gif',
'image/jpeg' => 'jpg,jpeg,jpe',
'image/png' => 'png',
@@ -43,6 +44,20 @@ module Redmine
'image/x-ms-bmp' => 'bmp',
'image/x-xpixmap' => 'xpm',
'application/pdf' => 'pdf',
'application/rtf' => 'rtf',
'application/msword' => 'doc',
'application/vnd.ms-excel' => 'xls',
'application/vnd.ms-powerpoint' => 'ppt,pps',
'application/vnd.openxmlformats-officedocument.wordprocessingml.document' => 'docx',
'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet' => 'xlsx',
'application/vnd.openxmlformats-officedocument.presentationml.presentation' => 'pptx',
'application/vnd.openxmlformats-officedocument.presentationml.slideshow' => 'ppsx',
'application/vnd.oasis.opendocument.spreadsheet' => 'ods',
'application/vnd.oasis.opendocument.text' => 'odt',
'application/vnd.oasis.opendocument.presentation' => 'odp',
'application/x-7z-compressed' => '7z',
'application/x-rar-compressed' => 'rar',
'application/x-tar' => 'tar',
'application/zip' => 'zip',
'application/x-gzip' => 'gz',
}.freeze

View File

@@ -182,7 +182,7 @@ module Redmine
end
def self.shellout(cmd, &block)
logger.debug "Shelling out: #{cmd}" if logger && logger.debug?
logger.debug "Shelling out: #{strip_credential(cmd)}" if logger && logger.debug?
if Rails.env == 'development'
# Capture stderr when running in dev environment
cmd = "#{cmd} 2>>#{RAILS_ROOT}/log/scm.stderr.log"

View File

@@ -10,7 +10,7 @@ module Redmine
# * official release: nil
# * stable branch: stable
# * trunk: devel
BRANCH = 'devel'
BRANCH = 'stable'
def self.revision
revision = nil

View File

@@ -22,3 +22,6 @@ ActionController::Base.session = {
EOF
end
end
desc 'Generates a configuration file for cookie store sessions.'
task :generate_session_store => ['config/initializers/session_store.rb']

View File

@@ -128,7 +128,7 @@ namespace :redmine do
end
def content_type
Redmine::MimeType.of(filename) || ''
''
end
def exist?

View File

@@ -190,7 +190,7 @@ Calendar.setup = function (params) {
cal.create();
cal.refresh();
if (!params.position)
cal.showAtElement(params.button || params.displayArea || params.inputField, params.align);
cal.showAtElement(params.button || params.displayArea || params.inputField);
else
cal.showAt(params.position[0], params.position[1]);
return false;

View File

@@ -810,9 +810,15 @@ div.issue table img.gravatar {
margin: 0 0.5em 0 0;
}
#history img.gravatar {
h2 img.gravatar {
padding: 3px;
margin: 0 1.5em 1em 0;
margin: -2px 4px 0 0;
float: left;
}
h4 img.gravatar {
padding: 3px;
margin: -6px 4px 0 0;
float: left;
}
@@ -831,10 +837,6 @@ td.username img.gravatar {
clear: left;
}
.gravatar-margin {
margin-left: 40px;
}
h2 img { vertical-align:middle; }
.hascontextmenu { cursor: context-menu; }

View File

@@ -115,3 +115,17 @@ custom_fields_008:
field_format: date
default_value: ""
editable: true
custom_fields_009:
name: Project 1 cf
min_length: 0
regexp: ""
is_for_all: false
is_filter: true
type: IssueCustomField
max_length: 0
possible_values: ""
id: 9
is_required: false
field_format: date
default_value: ""
editable: true

View File

@@ -1,2 +1,4 @@
--- {}
---
custom_fields_projects_001:
custom_field_id: 9
project_id: 1

View File

@@ -2,4 +2,7 @@
groups_users_001:
group_id: 10
user_id: 8
groups_users_002:
group_id: 11
user_id: 8

View File

@@ -37,3 +37,13 @@ member_roles_009:
role_id: 2
member_id: 7
inherited_from: 7
member_roles_010:
id: 10
role_id: 2
member_id: 9
inherited_from:
member_roles_011:
id: 11
role_id: 2
member_id: 10
inherited_from: 10

View File

@@ -48,3 +48,15 @@ members_008:
id: 8
user_id: 1
mail_notification: true
members_009:
id: 9
created_on: 2006-07-19 19:35:33 +02:00
project_id: 2
user_id: 11
mail_notification: false
members_010:
id: 10
created_on: 2006-07-19 19:35:33 +02:00
project_id: 2
user_id: 8
mail_notification: false

View File

@@ -84,6 +84,14 @@ class AttachmentsControllerTest < ActionController::TestCase
assert_equal 'application/x-ruby', @response.content_type
end
def test_download_should_assign_content_type_if_blank
Attachment.find(4).update_attribute(:content_type, '')
get :download, :id => 4
assert_response :success
assert_equal 'text/x-ruby', @response.content_type
end
def test_download_missing_file
get :download, :id => 2
assert_response 404

View File

@@ -946,6 +946,16 @@ class IssuesControllerTest < ActionController::TestCase
get :bulk_edit, :ids => [1, 2]
assert_response :success
assert_template 'bulk_edit'
# Project specific custom field, date type
field = CustomField.find(9)
assert !field.is_for_all?
assert_equal 'date', field.field_format
assert_tag :input, :attributes => {:name => 'custom_field_values[9]'}
# System wide custom field
assert CustomField.find(1).is_for_all?
assert_tag :select, :attributes => {:name => 'custom_field_values[1]'}
end
def test_bulk_edit

View File

@@ -38,6 +38,14 @@ class AttachmentTest < ActiveSupport::TestCase
assert File.exist?(a.diskfile)
end
def test_create_should_auto_assign_content_type
a = Attachment.new(:container => Issue.find(1),
:file => uploaded_test_file("testfile.txt", ""),
:author => User.find(1))
assert a.save
assert_equal 'text/plain', a.content_type
end
def test_diskfilename
assert Attachment.disk_filename("test_file.txt") =~ /^\d{12}_test_file.txt$/
assert_equal 'test_file.txt', Attachment.disk_filename("test_file.txt")[13..-1]

View File

@@ -633,15 +633,15 @@ class ProjectTest < ActiveSupport::TestCase
assert_not_equal source_relation_cross_project.id, copied_relation.id
end
should "copy members" do
should "copy memberships" do
assert @project.valid?
assert @project.members.empty?
assert @project.copy(@source_project)
assert_equal @source_project.members.size, @project.members.size
@project.members.each do |member|
assert member
assert_equal @project, member.project
assert_equal @source_project.memberships.size, @project.memberships.size
@project.memberships.each do |membership|
assert membership
assert_equal @project, membership.project
end
end

View File

@@ -77,4 +77,12 @@ class WikiContentTest < ActiveSupport::TestCase
assert_kind_of String, version.text
end
end
def test_large_text_should_not_be_truncated_to_64k
page = WikiPage.new(:wiki => @wiki, :title => "Big page")
page.content = WikiContent.new(:text => "a" * 500.kilobyte, :author => User.find(1))
assert page.save
page.reload
assert_equal 500.kilobyte, page.content.text.size
end
end