Compare commits
110 Commits
2.1-stable
...
0.9.5
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
43eb3ed51c | ||
|
|
a146c2d03f | ||
|
|
a62ff0841f | ||
|
|
d7ec02691f | ||
|
|
e7790bb6b5 | ||
|
|
34f73b005b | ||
|
|
ba42e1e2ff | ||
|
|
14074da8b1 | ||
|
|
44851d079f | ||
|
|
e6d053c3fd | ||
|
|
f17924c60d | ||
|
|
90e23e4d5d | ||
|
|
88a2792778 | ||
|
|
4c881d54a7 | ||
|
|
a6d45cc68f | ||
|
|
f58f7e0e41 | ||
|
|
473366f887 | ||
|
|
f6d2a4c29f | ||
|
|
b26d0fe041 | ||
|
|
98f3e98d82 | ||
|
|
7b27280c9b | ||
|
|
d287436627 | ||
|
|
666d3d6472 | ||
|
|
36063f16ee | ||
|
|
4a295e723e | ||
|
|
6e67d76194 | ||
|
|
eb55efd604 | ||
|
|
390eb7849c | ||
|
|
1588f3f6dc | ||
|
|
5ef8e8d45f | ||
|
|
cd15eb77d9 | ||
|
|
3b699806d9 | ||
|
|
d2367ccf53 | ||
|
|
9c00b8aa21 | ||
|
|
bbb00b0bc4 | ||
|
|
feac751318 | ||
|
|
eb4a7f9f2e | ||
|
|
7ce9ba9e28 | ||
|
|
53880a4e08 | ||
|
|
f92aa00705 | ||
|
|
b240da3833 | ||
|
|
da8624f7c7 | ||
|
|
46be83cd5e | ||
|
|
667f7927a7 | ||
|
|
3e6f42e46d | ||
|
|
30c45a6187 | ||
|
|
32288ed5d7 | ||
|
|
beb89eb8bb | ||
|
|
62d8016c4f | ||
|
|
5a7a3b2392 | ||
|
|
a2ad66a5c0 | ||
|
|
bfd9164c0a | ||
|
|
d80fb751fd | ||
|
|
aacabbe645 | ||
|
|
8eafcbede9 | ||
|
|
43c1481998 | ||
|
|
17f60af490 | ||
|
|
e5e5ad6b7a | ||
|
|
13fb739b56 | ||
|
|
73e849be58 | ||
|
|
0b7d4e818a | ||
|
|
40a4b111fa | ||
|
|
7d913f93c3 | ||
|
|
864fd9c6a1 | ||
|
|
57dcbd7376 | ||
|
|
0ef11ef4fe | ||
|
|
b5ee8c08ca | ||
|
|
9487d8dd80 | ||
|
|
f3bf588c82 | ||
|
|
bd38623cca | ||
|
|
bae86dc558 | ||
|
|
884c5be200 | ||
|
|
ad24563b1e | ||
|
|
cb8933ae55 | ||
|
|
5d75879046 | ||
|
|
69e5d91a2d | ||
|
|
7c1e877209 | ||
|
|
76d9d01db0 | ||
|
|
27fa40d283 | ||
|
|
20a6d7eb86 | ||
|
|
b87cf0c91c | ||
|
|
14ee72def2 | ||
|
|
a843cfff36 | ||
|
|
3d7cb0f40e | ||
|
|
92b267a608 | ||
|
|
c1be8bcf9f | ||
|
|
ff9aa9db59 | ||
|
|
65ee523852 | ||
|
|
1f5d95b027 | ||
|
|
c5a59aff5b | ||
|
|
f60881518a | ||
|
|
1efb25a433 | ||
|
|
eaaa471d6a | ||
|
|
2b6d8125d1 | ||
|
|
12b75ded08 | ||
|
|
46bf2b9276 | ||
|
|
9d82bff1a8 | ||
|
|
4c75864948 | ||
|
|
9d2474c234 | ||
|
|
7193817dea | ||
|
|
610d7d4ba4 | ||
|
|
4b41788848 | ||
|
|
e1423c7c23 | ||
|
|
9c9f6722f6 | ||
|
|
a8be47295a | ||
|
|
ba98197637 | ||
|
|
a23399f220 | ||
|
|
718cd596e0 | ||
|
|
c5ccfede6d | ||
|
|
7702bdcdab |
@@ -25,8 +25,7 @@ class AccountController < ApplicationController
|
||||
# Login request and validation
|
||||
def login
|
||||
if request.get?
|
||||
# Logout user
|
||||
self.logged_user = nil
|
||||
logout_user
|
||||
else
|
||||
# Authenticate user
|
||||
if Setting.openid? && using_open_id?
|
||||
@@ -39,9 +38,7 @@ class AccountController < ApplicationController
|
||||
|
||||
# Log out current user and redirect to welcome page
|
||||
def logout
|
||||
cookies.delete :autologin
|
||||
Token.delete_all(["user_id = ? AND action = ?", User.current.id, 'autologin']) if User.current.logged?
|
||||
self.logged_user = nil
|
||||
logout_user
|
||||
redirect_to home_url
|
||||
end
|
||||
|
||||
@@ -134,7 +131,15 @@ class AccountController < ApplicationController
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
|
||||
def logout_user
|
||||
if User.current.logged?
|
||||
cookies.delete :autologin
|
||||
Token.delete_all(["user_id = ? AND action = ?", User.current.id, 'autologin'])
|
||||
self.logged_user = nil
|
||||
end
|
||||
end
|
||||
|
||||
def password_authentication
|
||||
user = User.try_to_login(params[:username], params[:password])
|
||||
|
||||
|
||||
@@ -107,8 +107,9 @@ class ApplicationController < ActionController::Base
|
||||
lang = find_language(User.current.language)
|
||||
end
|
||||
if lang.nil? && request.env['HTTP_ACCEPT_LANGUAGE']
|
||||
accept_lang = parse_qvalues(request.env['HTTP_ACCEPT_LANGUAGE']).first.downcase
|
||||
accept_lang = parse_qvalues(request.env['HTTP_ACCEPT_LANGUAGE']).first
|
||||
if !accept_lang.blank?
|
||||
accept_lang = accept_lang.downcase
|
||||
lang = find_language(accept_lang) || find_language(accept_lang.split('-').first)
|
||||
end
|
||||
end
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -76,12 +76,12 @@ class EnumerationsController < ApplicationController
|
||||
@enumeration.destroy
|
||||
redirect_to :action => 'index'
|
||||
elsif params[:reassign_to_id]
|
||||
if reassign_to = Enumeration.find_by_type_and_id(@enumeration.type, params[:reassign_to_id])
|
||||
if reassign_to = @enumeration.class.find_by_id(params[:reassign_to_id])
|
||||
@enumeration.destroy(reassign_to)
|
||||
redirect_to :action => 'index'
|
||||
end
|
||||
end
|
||||
@enumerations = Enumeration.find(:all, :conditions => ['type = (?)', @enumeration.type]) - [@enumeration]
|
||||
@enumerations = @enumeration.class.find(:all) - [@enumeration]
|
||||
#rescue
|
||||
# flash[:error] = 'Unable to delete enumeration'
|
||||
# redirect_to :action => 'index'
|
||||
|
||||
@@ -21,8 +21,8 @@ class IssueRelationsController < ApplicationController
|
||||
def new
|
||||
@relation = IssueRelation.new(params[:relation])
|
||||
@relation.issue_from = @issue
|
||||
if params[:relation] && !params[:relation][:issue_to_id].blank?
|
||||
@relation.issue_to = Issue.visible.find_by_id(params[:relation][:issue_to_id])
|
||||
if params[:relation] && m = params[:relation][:issue_to_id].to_s.match(/^#?(\d+)$/)
|
||||
@relation.issue_to = Issue.visible.find_by_id(m[1].to_i)
|
||||
end
|
||||
@relation.save if request.post?
|
||||
respond_to do |format|
|
||||
|
||||
@@ -40,6 +40,7 @@ class IssuesController < ApplicationController
|
||||
helper :attachments
|
||||
include AttachmentsHelper
|
||||
helper :queries
|
||||
include QueriesHelper
|
||||
helper :sort
|
||||
include SortHelper
|
||||
include IssuesHelper
|
||||
@@ -56,12 +57,13 @@ class IssuesController < ApplicationController
|
||||
sort_update({'id' => "#{Issue.table_name}.id"}.merge(@query.available_columns.inject({}) {|h, c| h[c.name.to_s] = c.sortable; h}))
|
||||
|
||||
if @query.valid?
|
||||
limit = per_page_option
|
||||
respond_to do |format|
|
||||
format.html { }
|
||||
format.atom { limit = Setting.feeds_limit.to_i }
|
||||
format.csv { limit = Setting.issues_export_limit.to_i }
|
||||
format.pdf { limit = Setting.issues_export_limit.to_i }
|
||||
limit = case params[:format]
|
||||
when 'csv', 'pdf'
|
||||
Setting.issues_export_limit.to_i
|
||||
when 'atom'
|
||||
Setting.feeds_limit.to_i
|
||||
else
|
||||
per_page_option
|
||||
end
|
||||
|
||||
@issue_count = @query.issue_count
|
||||
@@ -105,7 +107,7 @@ class IssuesController < ApplicationController
|
||||
@journals = @issue.journals.find(:all, :include => [:user, :details], :order => "#{Journal.table_name}.created_on ASC")
|
||||
@journals.each_with_index {|j,i| j.indice = i+1}
|
||||
@journals.reverse! if User.current.wants_comments_in_reverse_order?
|
||||
@changesets = @issue.changesets
|
||||
@changesets = @issue.changesets.visible.all
|
||||
@changesets.reverse! if User.current.wants_comments_in_reverse_order?
|
||||
@allowed_statuses = @issue.new_statuses_allowed_to(User.current)
|
||||
@edit_allowed = User.current.allowed_to?(:edit_issues, @project)
|
||||
@@ -147,9 +149,10 @@ class IssuesController < ApplicationController
|
||||
if request.get? || request.xhr?
|
||||
@issue.start_date ||= Date.today
|
||||
else
|
||||
requested_status = IssueStatus.find_by_id(params[:issue][:status_id])
|
||||
requested_status = IssueStatus.find_by_id(params[:issue][:status_id]) if params[:issue]
|
||||
# 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)
|
||||
@@ -186,22 +189,22 @@ class IssuesController < ApplicationController
|
||||
if request.post?
|
||||
@time_entry = TimeEntry.new(:project => @project, :issue => @issue, :user => User.current, :spent_on => Date.today)
|
||||
@time_entry.attributes = params[:time_entry]
|
||||
attachments = attach_files(@issue, params[:attachments])
|
||||
attachments.each {|a| journal.details << JournalDetail.new(:property => 'attachment', :prop_key => a.id, :value => a.filename)}
|
||||
|
||||
call_hook(:controller_issues_edit_before_save, { :params => params, :issue => @issue, :time_entry => @time_entry, :journal => journal})
|
||||
|
||||
if (@time_entry.hours.nil? || @time_entry.valid?) && @issue.save
|
||||
# Log spend time
|
||||
if User.current.allowed_to?(:log_time, @project)
|
||||
@time_entry.save
|
||||
if (@time_entry.hours.nil? || @time_entry.valid?) && @issue.valid?
|
||||
attachments = attach_files(@issue, params[:attachments])
|
||||
attachments.each {|a| journal.details << JournalDetail.new(:property => 'attachment', :prop_key => a.id, :value => a.filename)}
|
||||
call_hook(:controller_issues_edit_before_save, { :params => params, :issue => @issue, :time_entry => @time_entry, :journal => journal})
|
||||
if @issue.save
|
||||
# Log spend time
|
||||
if User.current.allowed_to?(:log_time, @project)
|
||||
@time_entry.save
|
||||
end
|
||||
if !journal.new_record?
|
||||
# Only send notification if something was actually changed
|
||||
flash[:notice] = l(:notice_successful_update)
|
||||
end
|
||||
call_hook(:controller_issues_edit_after_save, { :params => params, :issue => @issue, :time_entry => @time_entry, :journal => journal})
|
||||
redirect_back_or_default({:action => 'show', :id => @issue})
|
||||
end
|
||||
if !journal.new_record?
|
||||
# Only send notification if something was actually changed
|
||||
flash[:notice] = l(:notice_successful_update)
|
||||
end
|
||||
call_hook(:controller_issues_edit_after_save, { :params => params, :issue => @issue, :time_entry => @time_entry, :journal => journal})
|
||||
redirect_to(params[:back_to] || {:action => 'show', :id => @issue})
|
||||
end
|
||||
end
|
||||
rescue ActiveRecord::StaleObjectError
|
||||
@@ -220,10 +223,13 @@ class IssuesController < ApplicationController
|
||||
user = @issue.author
|
||||
text = @issue.description
|
||||
end
|
||||
content = "#{ll(Setting.default_language, :text_user_wrote, user)}\\n> "
|
||||
content << text.to_s.strip.gsub(%r{<pre>((.|\s)*?)</pre>}m, '[...]').gsub('"', '\"').gsub(/(\r?\n|\r\n?)/, "\\n> ") + "\\n\\n"
|
||||
# Replaces pre blocks with [...]
|
||||
text = text.to_s.strip.gsub(%r{<pre>((.|\s)*?)</pre>}m, '[...]')
|
||||
content = "#{ll(Setting.default_language, :text_user_wrote, user)}\n> "
|
||||
content << text.gsub(/(\r?\n|\r\n?)/, "\n> ") + "\n\n"
|
||||
|
||||
render(:update) { |page|
|
||||
page.<< "$('notes').value = \"#{content}\";"
|
||||
page.<< "$('notes').value = \"#{escape_javascript content}\";"
|
||||
page.show 'update'
|
||||
page << "Form.Element.focus('notes');"
|
||||
page << "Element.scrollTo('update');"
|
||||
@@ -268,23 +274,16 @@ class IssuesController < ApplicationController
|
||||
:total => @issues.size,
|
||||
:ids => '#' + unsaved_issue_ids.join(', #'))
|
||||
end
|
||||
redirect_to(params[:back_to] || {:controller => 'issues', :action => 'index', :project_id => @project})
|
||||
redirect_back_or_default({:controller => 'issues', :action => 'index', :project_id => @project})
|
||||
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
|
||||
@copy = params[:copy_options] && params[:copy_options][:copy]
|
||||
@allowed_projects = []
|
||||
# find projects to which the user is allowed to move the issue
|
||||
if User.current.admin?
|
||||
# admin is allowed to move issues to any active (visible) project
|
||||
@allowed_projects = Project.find(:all, :conditions => Project.visible_by(User.current))
|
||||
else
|
||||
User.current.memberships.each {|m| @allowed_projects << m.project if m.roles.detect {|r| r.allowed_to?(:move_issues)}}
|
||||
end
|
||||
@allowed_projects = Issue.allowed_target_projects_on_move
|
||||
@target_project = @allowed_projects.detect {|p| p.id.to_s == params[:new_project_id]} if params[:new_project_id]
|
||||
@target_project ||= @project
|
||||
@trackers = @target_project.trackers
|
||||
@@ -356,6 +355,7 @@ class IssuesController < ApplicationController
|
||||
def gantt
|
||||
@gantt = Redmine::Helpers::Gantt.new(params)
|
||||
retrieve_query
|
||||
@query.group_by = nil
|
||||
if @query.valid?
|
||||
events = []
|
||||
# Issues that have start and due dates
|
||||
@@ -395,6 +395,7 @@ class IssuesController < ApplicationController
|
||||
|
||||
@calendar = Redmine::Helpers::Calendar.new(Date.civil(@year, @month, 1), current_language, :month)
|
||||
retrieve_query
|
||||
@query.group_by = nil
|
||||
if @query.valid?
|
||||
events = []
|
||||
events += @query.issues(:include => [:tracker, :assigned_to, :priority],
|
||||
|
||||
@@ -38,6 +38,7 @@ class MembersController < ApplicationController
|
||||
format.js {
|
||||
render(:update) {|page|
|
||||
page.replace_html "tab-content-members", :partial => 'projects/settings/members'
|
||||
page << 'hideOnLoad()'
|
||||
members.each {|member| page.visual_effect(:highlight, "member-#{member.id}") }
|
||||
}
|
||||
}
|
||||
@@ -51,6 +52,7 @@ class MembersController < ApplicationController
|
||||
format.js {
|
||||
render(:update) {|page|
|
||||
page.replace_html "tab-content-members", :partial => 'projects/settings/members'
|
||||
page << 'hideOnLoad()'
|
||||
page.visual_effect(:highlight, "member-#{@member.id}")
|
||||
}
|
||||
}
|
||||
@@ -64,7 +66,11 @@ class MembersController < ApplicationController
|
||||
end
|
||||
respond_to do |format|
|
||||
format.html { redirect_to :controller => 'projects', :action => 'settings', :tab => 'members', :id => @project }
|
||||
format.js { render(:update) {|page| page.replace_html "tab-content-members", :partial => 'projects/settings/members'} }
|
||||
format.js { render(:update) {|page|
|
||||
page.replace_html "tab-content-members", :partial => 'projects/settings/members'
|
||||
page << 'hideOnLoad()'
|
||||
}
|
||||
}
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
@@ -27,7 +27,7 @@ class ProjectsController < ApplicationController
|
||||
before_filter :authorize, :except => [ :index, :list, :add, :copy, :archive, :unarchive, :destroy, :activity ]
|
||||
before_filter :authorize_global, :only => :add
|
||||
before_filter :require_admin, :only => [ :copy, :archive, :unarchive, :destroy ]
|
||||
accept_key_auth :activity
|
||||
accept_key_auth :activity, :index
|
||||
|
||||
after_filter :only => [:add, :edit, :archive, :unarchive, :destroy] do |controller|
|
||||
if controller.request.post?
|
||||
@@ -102,18 +102,20 @@ class ProjectsController < ApplicationController
|
||||
redirect_to :controller => 'admin', :action => 'projects'
|
||||
end
|
||||
else
|
||||
@project = Project.new(params[:project])
|
||||
@project.enabled_module_names = params[:enabled_modules]
|
||||
if validate_parent_id && @project.copy(@source_project, :only => params[:only])
|
||||
@project.set_allowed_parent!(params[:project]['parent_id']) if params[:project].has_key?('parent_id')
|
||||
flash[:notice] = l(:notice_successful_create)
|
||||
redirect_to :controller => 'admin', :action => 'projects'
|
||||
elsif !@project.new_record?
|
||||
# Project was created
|
||||
# But some objects were not copied due to validation failures
|
||||
# (eg. issues from disabled trackers)
|
||||
# TODO: inform about that
|
||||
redirect_to :controller => 'admin', :action => 'projects'
|
||||
Mailer.with_deliveries(params[:notifications] == '1') do
|
||||
@project = Project.new(params[:project])
|
||||
@project.enabled_module_names = params[:enabled_modules]
|
||||
if validate_parent_id && @project.copy(@source_project, :only => params[:only])
|
||||
@project.set_allowed_parent!(params[:project]['parent_id']) if params[:project].has_key?('parent_id')
|
||||
flash[:notice] = l(:notice_successful_create)
|
||||
redirect_to :controller => 'admin', :action => 'projects'
|
||||
elsif !@project.new_record?
|
||||
# Project was created
|
||||
# But some objects were not copied due to validation failures
|
||||
# (eg. issues from disabled trackers)
|
||||
# TODO: inform about that
|
||||
redirect_to :controller => 'admin', :action => 'projects'
|
||||
end
|
||||
end
|
||||
end
|
||||
rescue ActiveRecord::RecordNotFound
|
||||
@@ -320,13 +322,9 @@ class ProjectsController < ApplicationController
|
||||
@issues_by_version = {}
|
||||
unless @selected_tracker_ids.empty?
|
||||
@versions.each do |version|
|
||||
conditions = {:tracker_id => @selected_tracker_ids}
|
||||
if !@project.versions.include?(version)
|
||||
conditions.merge!(:project_id => project_ids)
|
||||
end
|
||||
issues = version.fixed_issues.visible.find(:all,
|
||||
:include => [:project, :status, :tracker, :priority],
|
||||
:conditions => conditions,
|
||||
:conditions => {:tracker_id => @selected_tracker_ids, :project_id => project_ids},
|
||||
:order => "#{Project.table_name}.lft, #{Tracker.table_name}.position, #{Issue.table_name}.id")
|
||||
@issues_by_version[version] = issues
|
||||
end
|
||||
|
||||
@@ -74,7 +74,7 @@ private
|
||||
|
||||
def find_optional_project
|
||||
@project = Project.find(params[:project_id]) if params[:project_id]
|
||||
User.current.allowed_to?(:save_queries, @project, :global => true)
|
||||
render_403 unless User.current.allowed_to?(:save_queries, @project, :global => true)
|
||||
rescue ActiveRecord::RecordNotFound
|
||||
render_404
|
||||
end
|
||||
|
||||
@@ -49,19 +49,19 @@ class ReportsController < ApplicationController
|
||||
render :template => "reports/issue_report_details"
|
||||
when "assigned_to"
|
||||
@field = "assigned_to_id"
|
||||
@rows = @project.members.collect { |m| m.user }
|
||||
@rows = @project.members.collect { |m| m.user }.sort
|
||||
@data = issues_by_assigned_to
|
||||
@report_title = l(:field_assigned_to)
|
||||
render :template => "reports/issue_report_details"
|
||||
when "author"
|
||||
@field = "author_id"
|
||||
@rows = @project.members.collect { |m| m.user }
|
||||
@rows = @project.members.collect { |m| m.user }.sort
|
||||
@data = issues_by_author
|
||||
@report_title = l(:field_author)
|
||||
render :template => "reports/issue_report_details"
|
||||
when "subproject"
|
||||
@field = "project_id"
|
||||
@rows = @project.descendants.active
|
||||
@rows = @project.descendants.visible
|
||||
@data = issues_by_subproject
|
||||
@report_title = l(:field_subproject)
|
||||
render :template => "reports/issue_report_details"
|
||||
@@ -70,9 +70,9 @@ class ReportsController < ApplicationController
|
||||
@versions = @project.shared_versions.sort
|
||||
@priorities = IssuePriority.all
|
||||
@categories = @project.issue_categories
|
||||
@assignees = @project.members.collect { |m| m.user }
|
||||
@authors = @project.members.collect { |m| m.user }
|
||||
@subprojects = @project.descendants.active
|
||||
@assignees = @project.members.collect { |m| m.user }.sort
|
||||
@authors = @project.members.collect { |m| m.user }.sort
|
||||
@subprojects = @project.descendants.visible
|
||||
issues_by_tracker
|
||||
issues_by_version
|
||||
issues_by_priority
|
||||
|
||||
@@ -62,8 +62,8 @@ class SearchController < ApplicationController
|
||||
# extract tokens from the question
|
||||
# eg. hello "bye bye" => ["hello", "bye bye"]
|
||||
@tokens = @question.scan(%r{((\s|^)"[\s\w]+"(\s|$)|\S+)}).collect {|m| m.first.gsub(%r{(^\s*"\s*|\s*"\s*$)}, '')}
|
||||
# tokens must be at least 3 character long
|
||||
@tokens = @tokens.uniq.select {|w| w.length > 2 }
|
||||
# tokens must be at least 2 characters long
|
||||
@tokens = @tokens.uniq.select {|w| w.length > 1 }
|
||||
|
||||
if !@tokens.empty?
|
||||
# no more than 5 tokens to search for
|
||||
|
||||
@@ -46,11 +46,13 @@ class VersionsController < ApplicationController
|
||||
end
|
||||
|
||||
def destroy
|
||||
@version.destroy
|
||||
redirect_to :controller => 'projects', :action => 'settings', :tab => 'versions', :id => @project
|
||||
rescue
|
||||
flash[:error] = l(:notice_unable_delete_version)
|
||||
redirect_to :controller => 'projects', :action => 'settings', :tab => 'versions', :id => @project
|
||||
if @version.fixed_issues.empty?
|
||||
@version.destroy
|
||||
redirect_to :controller => 'projects', :action => 'settings', :tab => 'versions', :id => @project
|
||||
else
|
||||
flash[:error] = l(:notice_unable_delete_version)
|
||||
redirect_to :controller => 'projects', :action => 'settings', :tab => 'versions', :id => @project
|
||||
end
|
||||
end
|
||||
|
||||
def status_by
|
||||
|
||||
@@ -506,17 +506,17 @@ module ApplicationHelper
|
||||
# Forum messages:
|
||||
# message#1218 -> Link to message with id 1218
|
||||
text = text.gsub(%r{([\s\(,\-\>]|^)(!)?(attachment|document|version|commit|source|export|message)?((#|r)(\d+)|(:)([^"\s<>][^\s<>]*?|"[^"]+?"))(?=(?=[[:punct:]]\W)|,|\s|<|$)}) do |m|
|
||||
leading, esc, prefix, sep, oid = $1, $2, $3, $5 || $7, $6 || $8
|
||||
leading, esc, prefix, sep, identifier = $1, $2, $3, $5 || $7, $6 || $8
|
||||
link = nil
|
||||
if esc.nil?
|
||||
if prefix.nil? && sep == 'r'
|
||||
if project && (changeset = project.changesets.find_by_revision(oid))
|
||||
link = link_to("r#{oid}", {:only_path => only_path, :controller => 'repositories', :action => 'revision', :id => project, :rev => oid},
|
||||
if project && (changeset = project.changesets.find_by_revision(identifier))
|
||||
link = link_to("r#{identifier}", {:only_path => only_path, :controller => 'repositories', :action => 'revision', :id => project, :rev => changeset.revision},
|
||||
:class => 'changeset',
|
||||
:title => truncate_single_line(changeset.comments, :length => 100))
|
||||
end
|
||||
elsif sep == '#'
|
||||
oid = oid.to_i
|
||||
oid = identifier.to_i
|
||||
case prefix
|
||||
when nil
|
||||
if issue = Issue.visible.find_by_id(oid, :include => :status)
|
||||
@@ -547,7 +547,7 @@ module ApplicationHelper
|
||||
end
|
||||
elsif sep == ':'
|
||||
# removes the double quotes if any
|
||||
name = oid.gsub(%r{^"(.*)"$}, "\\1")
|
||||
name = identifier.gsub(%r{^"(.*)"$}, "\\1")
|
||||
case prefix
|
||||
when 'document'
|
||||
if project && document = project.documents.find_by_title(name)
|
||||
@@ -584,7 +584,7 @@ module ApplicationHelper
|
||||
end
|
||||
end
|
||||
end
|
||||
leading + (link || "#{prefix}#{sep}#{oid}")
|
||||
leading + (link || "#{prefix}#{sep}#{identifier}")
|
||||
end
|
||||
|
||||
text
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -91,8 +91,8 @@ module IssuesHelper
|
||||
c = IssueCategory.find_by_id(detail.value) and value = c.name if detail.value
|
||||
c = IssueCategory.find_by_id(detail.old_value) and old_value = c.name if detail.old_value
|
||||
when 'fixed_version_id'
|
||||
v = Version.find_by_id(detail.value) and value = format_version_name(v) if detail.value
|
||||
v = Version.find_by_id(detail.old_value) and old_value = format_version_name(v) if detail.old_value
|
||||
v = Version.find_by_id(detail.value) and value = v.name if detail.value
|
||||
v = Version.find_by_id(detail.old_value) and old_value = v.name if detail.old_value
|
||||
when 'estimated_hours'
|
||||
value = "%0.02f" % detail.value.to_f unless detail.value.blank?
|
||||
old_value = "%0.02f" % detail.old_value.to_f unless detail.old_value.blank?
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -52,17 +52,19 @@ module RepositoriesHelper
|
||||
else
|
||||
change
|
||||
end
|
||||
end.compact
|
||||
end.compact
|
||||
|
||||
tree = { }
|
||||
changes.each do |change|
|
||||
p = tree
|
||||
dirs = change.path.to_s.split('/').select {|d| !d.blank?}
|
||||
path = ''
|
||||
dirs.each do |dir|
|
||||
path += '/' + dir
|
||||
p[:s] ||= {}
|
||||
p = p[:s]
|
||||
p[dir] ||= {}
|
||||
p = p[dir]
|
||||
p[path] ||= {}
|
||||
p = p[path]
|
||||
end
|
||||
p[:c] = change
|
||||
end
|
||||
@@ -76,21 +78,26 @@ module RepositoriesHelper
|
||||
output = ''
|
||||
output << '<ul>'
|
||||
tree.keys.sort.each do |file|
|
||||
s = !tree[file][:s].nil?
|
||||
c = tree[file][:c]
|
||||
|
||||
style = 'change'
|
||||
style << ' folder' if s
|
||||
style << " change-#{c.action}" if c
|
||||
|
||||
text = h(file)
|
||||
unless c.nil?
|
||||
text = File.basename(h(file))
|
||||
if s = tree[file][:s]
|
||||
style << ' folder'
|
||||
path_param = to_path_param(@repository.relative_path(file))
|
||||
text = link_to(text, :controller => 'repositories',
|
||||
:action => 'show',
|
||||
:id => @project,
|
||||
:path => path_param,
|
||||
:rev => @changeset.revision)
|
||||
output << "<li class='#{style}'>#{text}</li>"
|
||||
output << render_changes_tree(s)
|
||||
elsif c = tree[file][:c]
|
||||
style << " change-#{c.action}"
|
||||
path_param = to_path_param(@repository.relative_path(c.path))
|
||||
text = link_to(text, :controller => 'repositories',
|
||||
:action => 'entry',
|
||||
:id => @project,
|
||||
:path => path_param,
|
||||
:rev => @changeset.revision) unless s || c.action == 'D'
|
||||
:rev => @changeset.revision) unless c.action == 'D'
|
||||
text << " - #{c.revision}" unless c.revision.blank?
|
||||
text << ' (' + link_to('diff', :controller => 'repositories',
|
||||
:action => 'diff',
|
||||
@@ -98,9 +105,8 @@ module RepositoriesHelper
|
||||
:path => path_param,
|
||||
:rev => @changeset.revision) + ') ' if c.action == 'M'
|
||||
text << ' ' + content_tag('span', c.from_path, :class => 'copied-from') unless c.from_path.blank?
|
||||
output << "<li class='#{style}'>#{text}</li>"
|
||||
end
|
||||
output << "<li class='#{style}'>#{text}</li>"
|
||||
output << render_changes_tree(tree[file][:s]) if s
|
||||
end
|
||||
output << '</ul>'
|
||||
output
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
# Redmine - project management software
|
||||
# Copyright (C) 2006-2008 Jean-Philippe Lang
|
||||
# Copyright (C) 2006-2010 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
|
||||
@@ -41,6 +41,9 @@ class Changeset < ActiveRecord::Base
|
||||
validates_uniqueness_of :revision, :scope => :repository_id
|
||||
validates_uniqueness_of :scmid, :scope => :repository_id, :allow_nil => true
|
||||
|
||||
named_scope :visible, lambda {|*args| { :include => {:repository => :project},
|
||||
:conditions => Project.allowed_to_condition(args.first || User.current, :view_changesets) } }
|
||||
|
||||
def revision=(r)
|
||||
write_attribute :revision, (r.nil? ? nil : r.to_s)
|
||||
end
|
||||
@@ -54,6 +57,10 @@ class Changeset < ActiveRecord::Base
|
||||
super
|
||||
end
|
||||
|
||||
def committer=(arg)
|
||||
write_attribute(:committer, self.class.to_utf8(arg.to_s))
|
||||
end
|
||||
|
||||
def project
|
||||
repository.project
|
||||
end
|
||||
@@ -77,9 +84,6 @@ class Changeset < ActiveRecord::Base
|
||||
ref_keywords = Setting.commit_ref_keywords.downcase.split(",").collect(&:strip)
|
||||
# keywords used to fix issues
|
||||
fix_keywords = Setting.commit_fix_keywords.downcase.split(",").collect(&:strip)
|
||||
# status and optional done ratio applied
|
||||
fix_status = IssueStatus.find_by_id(Setting.commit_fix_status_id)
|
||||
done_ratio = Setting.commit_fix_done_ratio.blank? ? nil : Setting.commit_fix_done_ratio.to_i
|
||||
|
||||
kw_regexp = (ref_keywords + fix_keywords).collect{|kw| Regexp.escape(kw)}.join("|")
|
||||
return if kw_regexp.blank?
|
||||
@@ -90,14 +94,14 @@ class Changeset < ActiveRecord::Base
|
||||
# find any issue ID in the comments
|
||||
target_issue_ids = []
|
||||
comments.scan(%r{([\s\(\[,-]|^)#(\d+)(?=[[:punct:]]|\s|<|$)}).each { |m| target_issue_ids << m[1] }
|
||||
referenced_issues += repository.project.issues.find_all_by_id(target_issue_ids)
|
||||
referenced_issues += find_referenced_issues_by_id(target_issue_ids)
|
||||
end
|
||||
|
||||
comments.scan(Regexp.new("(#{kw_regexp})[\s:]+(([\s,;&]*#?\\d+)+)", Regexp::IGNORECASE)).each do |match|
|
||||
action = match[0]
|
||||
target_issue_ids = match[1].scan(/\d+/)
|
||||
target_issues = repository.project.issues.find_all_by_id(target_issue_ids)
|
||||
if fix_status && fix_keywords.include?(action.downcase)
|
||||
target_issues = find_referenced_issues_by_id(target_issue_ids)
|
||||
if fix_keywords.include?(action.downcase) && fix_status = IssueStatus.find_by_id(Setting.commit_fix_status_id)
|
||||
# update status of issues
|
||||
logger.debug "Issues fixed by changeset #{self.revision}: #{issue_ids.join(', ')}." if logger && logger.debug?
|
||||
target_issues.each do |issue|
|
||||
@@ -111,7 +115,9 @@ class Changeset < ActiveRecord::Base
|
||||
end
|
||||
journal = issue.init_journal(user || User.anonymous, ll(Setting.default_language, :text_status_changed_by_changeset, csettext))
|
||||
issue.status = fix_status
|
||||
issue.done_ratio = done_ratio if done_ratio
|
||||
unless Setting.commit_fix_done_ratio.blank?
|
||||
issue.done_ratio = Setting.commit_fix_done_ratio.to_i
|
||||
end
|
||||
Redmine::Hook.call_hook(:model_changeset_scan_commit_for_issue_ids_pre_issue_update,
|
||||
{ :changeset => self, :issue => issue })
|
||||
issue.save
|
||||
@@ -120,7 +126,8 @@ class Changeset < ActiveRecord::Base
|
||||
referenced_issues += target_issues
|
||||
end
|
||||
|
||||
self.issues = referenced_issues.uniq
|
||||
referenced_issues.uniq!
|
||||
self.issues = referenced_issues unless referenced_issues.empty?
|
||||
end
|
||||
|
||||
def short_comments
|
||||
@@ -148,6 +155,15 @@ class Changeset < ActiveRecord::Base
|
||||
|
||||
private
|
||||
|
||||
# Finds issues that can be referenced by the commit message
|
||||
# i.e. issues that belong to the repository project, a subproject or a parent project
|
||||
def find_referenced_issues_by_id(ids)
|
||||
return [] if ids.compact.empty?
|
||||
Issue.find_all_by_id(ids, :include => :project).select {|issue|
|
||||
project == issue.project || project.is_ancestor_of?(issue.project) || project.is_descendant_of?(issue.project)
|
||||
}
|
||||
end
|
||||
|
||||
def split_comments
|
||||
comments =~ /\A(.+?)\r?\n(.*)$/m
|
||||
@short_comments = $1 || comments
|
||||
@@ -160,11 +176,17 @@ class Changeset < ActiveRecord::Base
|
||||
encoding = Setting.commit_logs_encoding.to_s.strip
|
||||
unless encoding.blank? || encoding == 'UTF-8'
|
||||
begin
|
||||
return Iconv.conv('UTF-8', encoding, str)
|
||||
str = Iconv.conv('UTF-8', encoding, str)
|
||||
rescue Iconv::Failure
|
||||
# do nothing here
|
||||
end
|
||||
end
|
||||
str
|
||||
# removes invalid UTF8 sequences
|
||||
begin
|
||||
Iconv.conv('UTF-8//IGNORE', 'UTF-8', str + ' ')[0..-3]
|
||||
rescue Iconv::InvalidEncoding
|
||||
# "UTF-8//IGNORE" is not supported on some OS
|
||||
str
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
@@ -80,7 +80,7 @@ class Issue < ActiveRecord::Base
|
||||
end
|
||||
|
||||
def copy_from(arg)
|
||||
issue = arg.is_a?(Issue) ? arg : Issue.find(arg)
|
||||
issue = arg.is_a?(Issue) ? arg : Issue.visible.find(arg)
|
||||
self.attributes = issue.attributes.dup.except("id", "created_on", "updated_on")
|
||||
self.custom_values = issue.custom_values.collect {|v| v.clone}
|
||||
self.status = issue.status
|
||||
@@ -92,7 +92,7 @@ class Issue < ActiveRecord::Base
|
||||
def move_to(new_project, new_tracker = nil, options = {})
|
||||
options ||= {}
|
||||
issue = options[:copy] ? self.clone : self
|
||||
transaction do
|
||||
ret = Issue.transaction do
|
||||
if new_project && issue.project_id != new_project.id
|
||||
# delete issue relations
|
||||
unless Setting.cross_project_issue_relations?
|
||||
@@ -129,12 +129,12 @@ class Issue < ActiveRecord::Base
|
||||
# Manually update project_id on related time entries
|
||||
TimeEntry.update_all("project_id = #{new_project.id}", {:issue_id => id})
|
||||
end
|
||||
true
|
||||
else
|
||||
Issue.connection.rollback_db_transaction
|
||||
return false
|
||||
raise ActiveRecord::Rollback
|
||||
end
|
||||
end
|
||||
return issue
|
||||
ret ? issue : false
|
||||
end
|
||||
|
||||
def priority_id=(pid)
|
||||
@@ -157,9 +157,10 @@ 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
|
||||
# Do not redefine alias chain on reload (see #4838)
|
||||
alias_method_chain(:attributes=, :tracker_first) unless method_defined?(:attributes_without_tracker_first=)
|
||||
|
||||
def estimated_hours=(h)
|
||||
write_attribute :estimated_hours, (h.is_a?(String) ? h.to_hours : h)
|
||||
@@ -388,6 +389,22 @@ class Issue < ActiveRecord::Base
|
||||
Issue.update_versions(["#{Version.table_name}.project_id IN (?) OR #{Issue.table_name}.project_id IN (?)", moved_project_ids, moved_project_ids])
|
||||
end
|
||||
|
||||
# Returns an array of projects that current user can move issues to
|
||||
def self.allowed_target_projects_on_move
|
||||
projects = []
|
||||
if User.current.admin?
|
||||
# admin is allowed to move issues to any active (visible) project
|
||||
projects = Project.visible.all
|
||||
elsif User.current.logged?
|
||||
if Role.non_member.allowed_to?(:move_issues)
|
||||
projects = Project.visible.all
|
||||
else
|
||||
User.current.memberships.each {|m| projects << m.project if m.roles.detect {|r| r.allowed_to?(:move_issues)}}
|
||||
end
|
||||
end
|
||||
projects
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
# Update issues so their versions are not pointing to a
|
||||
|
||||
@@ -49,7 +49,7 @@ class MailHandler < ActionMailer::Base
|
||||
logger.info "MailHandler: ignoring email from Redmine emission address [#{sender_email}]" if logger && logger.info
|
||||
return false
|
||||
end
|
||||
@user = User.find_by_mail(sender_email)
|
||||
@user = User.find_by_mail(sender_email) if sender_email.present?
|
||||
if @user && !@user.active?
|
||||
logger.info "MailHandler: ignoring email from non-active user [#{@user.login}]" if logger && logger.info
|
||||
return false
|
||||
@@ -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
|
||||
|
||||
@@ -114,11 +114,11 @@ class Mailer < ActionMailer::Base
|
||||
when 'Project'
|
||||
added_to_url = url_for(:controller => 'projects', :action => 'list_files', :id => container)
|
||||
added_to = "#{l(:label_project)}: #{container}"
|
||||
recipients container.project.notified_users.select {|user| user.allowed_to?(:view_files, container.project)}
|
||||
recipients container.project.notified_users.select {|user| user.allowed_to?(:view_files, container.project)}.collect {|u| u.mail}
|
||||
when 'Version'
|
||||
added_to_url = url_for(:controller => 'projects', :action => 'list_files', :id => container.project_id)
|
||||
added_to = "#{l(:label_version)}: #{container.name}"
|
||||
recipients container.project.notified_users.select {|user| user.allowed_to?(:view_files, container.project)}
|
||||
recipients container.project.notified_users.select {|user| user.allowed_to?(:view_files, container.project)}.collect {|u| u.mail}
|
||||
when 'Document'
|
||||
added_to_url = url_for(:controller => 'documents', :action => 'show', :id => container.id)
|
||||
added_to = "#{l(:label_document)}: #{container.title}"
|
||||
@@ -272,6 +272,7 @@ class Mailer < ActionMailer::Base
|
||||
# Overrides default deliver! method to prevent from sending an email
|
||||
# with no recipient, cc or bcc
|
||||
def deliver!(mail = @mail)
|
||||
set_language_if_valid @initial_language
|
||||
return false if (recipients.nil? || recipients.empty?) &&
|
||||
(cc.nil? || cc.empty?) &&
|
||||
(bcc.nil? || bcc.empty?)
|
||||
@@ -309,10 +310,20 @@ class Mailer < ActionMailer::Base
|
||||
deliver_reminder(assignee, issues, days) unless assignee.nil?
|
||||
end
|
||||
end
|
||||
|
||||
# Activates/desactivates email deliveries during +block+
|
||||
def self.with_deliveries(enabled = true, &block)
|
||||
was_enabled = ActionMailer::Base.perform_deliveries
|
||||
ActionMailer::Base.perform_deliveries = !!enabled
|
||||
yield
|
||||
ensure
|
||||
ActionMailer::Base.perform_deliveries = was_enabled
|
||||
end
|
||||
|
||||
private
|
||||
def initialize_defaults(method_name)
|
||||
super
|
||||
@initial_language = current_language
|
||||
set_language_if_valid Setting.default_language
|
||||
from Setting.mail_from
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -16,7 +16,7 @@
|
||||
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||
|
||||
class Principal < ActiveRecord::Base
|
||||
set_table_name 'users'
|
||||
set_table_name "#{table_name_prefix}users#{table_name_suffix}"
|
||||
|
||||
has_many :members, :foreign_key => 'user_id', :dependent => :destroy
|
||||
has_many :memberships, :class_name => 'Member', :foreign_key => 'user_id', :include => [ :project, :roles ], :conditions => "#{Project.table_name}.status=#{Project::STATUS_ACTIVE}", :order => "#{Project.table_name}.name"
|
||||
@@ -32,6 +32,8 @@ class Principal < ActiveRecord::Base
|
||||
}
|
||||
}
|
||||
|
||||
before_create :set_default_empty_values
|
||||
|
||||
def <=>(principal)
|
||||
if self.class.name == principal.class.name
|
||||
self.to_s.downcase <=> principal.to_s.downcase
|
||||
@@ -40,4 +42,16 @@ class Principal < ActiveRecord::Base
|
||||
principal.class.name <=> self.class.name
|
||||
end
|
||||
end
|
||||
|
||||
protected
|
||||
|
||||
# Make sure we don't try to insert NULL values (see #4632)
|
||||
def set_default_empty_values
|
||||
self.login ||= ''
|
||||
self.hashed_password ||= ''
|
||||
self.firstname ||= ''
|
||||
self.lastname ||= ''
|
||||
self.mail ||= ''
|
||||
true
|
||||
end
|
||||
end
|
||||
|
||||
@@ -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})"
|
||||
@@ -50,12 +51,12 @@ class Project < ActiveRecord::Base
|
||||
:join_table => "#{table_name_prefix}custom_fields_projects#{table_name_suffix}",
|
||||
:association_foreign_key => 'custom_field_id'
|
||||
|
||||
acts_as_nested_set :order => 'name', :dependent => :destroy
|
||||
acts_as_nested_set :order => 'name'
|
||||
acts_as_attachable :view_permission => :view_files,
|
||||
:delete_permission => :manage_files
|
||||
|
||||
acts_as_customizable
|
||||
acts_as_searchable :columns => ['name', 'description'], :project_key => 'id', :permission => nil
|
||||
acts_as_searchable :columns => ['name', 'identifier', 'description'], :project_key => 'id', :permission => nil
|
||||
acts_as_event :title => Proc.new {|o| "#{l(:label_project)}: #{o.name}"},
|
||||
:url => Proc.new {|o| {:controller => 'projects', :action => 'show', :id => o.id}},
|
||||
:author => nil
|
||||
@@ -73,7 +74,7 @@ class Project < ActiveRecord::Base
|
||||
# reserved words
|
||||
validates_exclusion_of :identifier, :in => %w( new )
|
||||
|
||||
before_destroy :delete_all_members
|
||||
before_destroy :delete_all_members, :destroy_children
|
||||
|
||||
named_scope :has_module, lambda { |mod| { :conditions => ["#{Project.table_name}.id IN (SELECT em.project_id FROM #{EnabledModule.table_name} em WHERE em.name=?)", mod.to_s] } }
|
||||
named_scope :active, { :conditions => "#{Project.table_name}.status = #{STATUS_ACTIVE}"}
|
||||
@@ -248,7 +249,7 @@ class Project < ActiveRecord::Base
|
||||
return @allowed_parents if @allowed_parents
|
||||
@allowed_parents = Project.find(:all, :conditions => Project.allowed_to_condition(User.current, :add_subprojects))
|
||||
@allowed_parents = @allowed_parents - self_and_descendants
|
||||
if User.current.allowed_to?(:add_project, nil, :global => true)
|
||||
if User.current.allowed_to?(:add_project, nil, :global => true) || (!new_record? && parent.nil?)
|
||||
@allowed_parents << nil
|
||||
end
|
||||
unless parent.nil? || @allowed_parents.empty? || @allowed_parents.include?(parent)
|
||||
@@ -498,17 +499,36 @@ class Project < ActiveRecord::Base
|
||||
|
||||
private
|
||||
|
||||
# Destroys children before destroying self
|
||||
def destroy_children
|
||||
children.each do |child|
|
||||
child.destroy
|
||||
end
|
||||
end
|
||||
|
||||
# Copies wiki from +project+
|
||||
def copy_wiki(project)
|
||||
# Check that the source project has a wiki first
|
||||
unless project.wiki.nil?
|
||||
self.wiki ||= Wiki.new
|
||||
wiki.attributes = project.wiki.attributes.dup.except("id", "project_id")
|
||||
wiki_pages_map = {}
|
||||
project.wiki.pages.each do |page|
|
||||
# Skip pages without content
|
||||
next if page.content.nil?
|
||||
new_wiki_content = WikiContent.new(page.content.attributes.dup.except("id", "page_id", "updated_on"))
|
||||
new_wiki_page = WikiPage.new(page.attributes.dup.except("id", "wiki_id", "created_on", "parent_id"))
|
||||
new_wiki_page.content = new_wiki_content
|
||||
wiki.pages << new_wiki_page
|
||||
wiki_pages_map[page.id] = new_wiki_page
|
||||
end
|
||||
wiki.save
|
||||
# Reproduce page hierarchy
|
||||
project.wiki.pages.each do |page|
|
||||
if page.parent_id && wiki_pages_map[page.id]
|
||||
wiki_pages_map[page.id].parent = wiki_pages_map[page.parent_id]
|
||||
wiki_pages_map[page.id].save
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
@@ -583,10 +603,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
|
||||
|
||||
@@ -210,6 +210,10 @@ class Query < ActiveRecord::Base
|
||||
add_custom_fields_filters(@project.all_issue_custom_fields)
|
||||
else
|
||||
# global filters for cross project issue list
|
||||
system_shared_versions = Version.visible.find_all_by_sharing('system')
|
||||
unless system_shared_versions.empty?
|
||||
@available_filters["fixed_version_id"] = { :type => :list_optional, :order => 7, :values => system_shared_versions.sort.collect{|s| ["#{s.project.name} - #{s.name}", s.id.to_s] } }
|
||||
end
|
||||
add_custom_fields_filters(IssueCustomField.find(:all, :conditions => {:is_filter => true, :is_for_all => true}))
|
||||
end
|
||||
@available_filters
|
||||
@@ -232,7 +236,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
|
||||
|
||||
|
||||
@@ -136,6 +136,7 @@ class Repository < ActiveRecord::Base
|
||||
end
|
||||
end
|
||||
@committers = nil
|
||||
@found_committer_users = nil
|
||||
true
|
||||
else
|
||||
false
|
||||
@@ -146,24 +147,34 @@ class Repository < ActiveRecord::Base
|
||||
# It will return nil if the committer is not yet mapped and if no User
|
||||
# with the same username or email was found
|
||||
def find_committer_user(committer)
|
||||
if committer
|
||||
unless committer.blank?
|
||||
@found_committer_users ||= {}
|
||||
return @found_committer_users[committer] if @found_committer_users.has_key?(committer)
|
||||
|
||||
user = nil
|
||||
c = changesets.find(:first, :conditions => {:committer => committer}, :include => :user)
|
||||
if c && c.user
|
||||
c.user
|
||||
user = c.user
|
||||
elsif committer.strip =~ /^([^<]+)(<(.*)>)?$/
|
||||
username, email = $1.strip, $3
|
||||
u = User.find_by_login(username)
|
||||
u ||= User.find_by_mail(email) unless email.blank?
|
||||
u
|
||||
user = u
|
||||
end
|
||||
@found_committer_users[committer] = user
|
||||
user
|
||||
end
|
||||
end
|
||||
|
||||
# fetch new changesets for all repositories
|
||||
# can be called periodically by an external script
|
||||
# Fetches new changesets for all repositories of active projects
|
||||
# Can be called periodically by an external script
|
||||
# eg. ruby script/runner "Repository.fetch_changesets"
|
||||
def self.fetch_changesets
|
||||
find(:all).each(&:fetch_changesets)
|
||||
Project.active.has_module(:repository).find(:all, :include => :repository).each do |project|
|
||||
if project.repository
|
||||
project.repository.fetch_changesets
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
# scan changeset comments to find related and fixed issues for all repositories
|
||||
|
||||
@@ -40,23 +40,26 @@ class Repository::Git < Repository
|
||||
# With SCM's that have a sequential commit numbering, redmine is able to be
|
||||
# clever and only fetch changesets going forward from the most recent one
|
||||
# it knows about. However, with git, you never know if people have merged
|
||||
# commits into the middle of the repository history, so we always have to
|
||||
# parse the entire log.
|
||||
# commits into the middle of the repository history, so we should parse
|
||||
# the entire log. Since it's way too slow for large repositories, we only
|
||||
# parse 1 week before the last known commit.
|
||||
# The repository can still be fully reloaded by calling #clear_changesets
|
||||
# before fetching changesets (eg. for offline resync)
|
||||
def fetch_changesets
|
||||
# Save ourselves an expensive operation if we're already up to date
|
||||
return if scm.num_revisions == changesets.count
|
||||
c = changesets.find(:first, :order => 'committed_on DESC')
|
||||
since = (c ? c.committed_on - 7.days : nil)
|
||||
|
||||
revisions = scm.revisions('', nil, nil, :all => true)
|
||||
revisions = scm.revisions('', nil, nil, :all => true, :since => since)
|
||||
return if revisions.nil? || revisions.empty?
|
||||
|
||||
# Find revisions that redmine knows about already
|
||||
existing_revisions = changesets.find(:all).map!{|c| c.scmid}
|
||||
recent_changesets = changesets.find(:all, :conditions => ['committed_on >= ?', since])
|
||||
|
||||
# Clean out revisions that are no longer in git
|
||||
Changeset.delete_all(["scmid NOT IN (?) AND repository_id = (?)", revisions.map{|r| r.scmid}, self.id])
|
||||
recent_changesets.each {|c| c.destroy unless revisions.detect {|r| r.scmid.to_s == c.scmid.to_s }}
|
||||
|
||||
# Subtract revisions that redmine already knows about
|
||||
revisions.reject!{|r| existing_revisions.include?(r.scmid)}
|
||||
recent_revisions = recent_changesets.map{|c| c.scmid}
|
||||
revisions.reject!{|r| recent_revisions.include?(r.scmid)}
|
||||
|
||||
# Save the remaining ones to the database
|
||||
revisions.each{|r| r.save(self)} unless revisions.nil?
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
# redMine - project management software
|
||||
# Copyright (C) 2006 Jean-Philippe Lang
|
||||
# Redmine - project management software
|
||||
# Copyright (C) 2006-2010 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
|
||||
@@ -16,10 +16,9 @@
|
||||
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||
|
||||
class Version < ActiveRecord::Base
|
||||
before_destroy :check_integrity
|
||||
after_update :update_issues_from_sharing_change
|
||||
belongs_to :project
|
||||
has_many :fixed_issues, :class_name => 'Issue', :foreign_key => 'fixed_version_id'
|
||||
has_many :fixed_issues, :class_name => 'Issue', :foreign_key => 'fixed_version_id', :dependent => :nullify
|
||||
acts_as_customizable
|
||||
acts_as_attachable :view_permission => :view_files,
|
||||
:delete_permission => :manage_files
|
||||
@@ -155,10 +154,7 @@ class Version < ActiveRecord::Base
|
||||
end
|
||||
end
|
||||
|
||||
private
|
||||
def check_integrity
|
||||
raise "Can't delete version" if self.fixed_issues.find(:first)
|
||||
end
|
||||
private
|
||||
|
||||
# Update the issue's fixed versions. Used if a version's sharing changes.
|
||||
def update_issues_from_sharing_change
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
<%= call_hook :view_account_login_top %>
|
||||
<div id="login-form">
|
||||
<% form_tag({:action=> "login"}) do %>
|
||||
<%= back_url_hidden_field_tag %>
|
||||
@@ -38,3 +39,4 @@
|
||||
<%= javascript_tag "Form.Element.focus('username');" %>
|
||||
<% end %>
|
||||
</div>
|
||||
<%= call_hook :view_account_login_bottom %>
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
<div class="box tabular">
|
||||
<p><label for="new_password"><%=l(:field_new_password)%> <span class="required">*</span></label>
|
||||
<%= password_field_tag 'new_password', nil, :size => 25 %><br />
|
||||
<em><%= l(:text_caracters_minimum, 4) %></em></p>
|
||||
<em><%= l(:text_caracters_minimum, :count => Setting.password_min_length) %></em></p>
|
||||
|
||||
<p><label for="new_password_confirmation"><%=l(:field_password_confirmation)%> <span class="required">*</span></label>
|
||||
<%= password_field_tag 'new_password_confirmation', nil, :size => 25 %></p>
|
||||
|
||||
@@ -15,6 +15,7 @@
|
||||
<% end %>
|
||||
|
||||
|
||||
<div class="autoscroll">
|
||||
<table class="list">
|
||||
<thead><tr>
|
||||
<th><%=l(:label_project)%></th>
|
||||
@@ -40,5 +41,6 @@
|
||||
<% end %>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
|
||||
<% html_title(l(:label_project_plural)) -%>
|
||||
|
||||
@@ -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? %>
|
||||
|
||||
@@ -26,3 +26,7 @@
|
||||
<% end %>
|
||||
|
||||
<% html_title @document.title -%>
|
||||
|
||||
<% content_for :header_tags do %>
|
||||
<%= stylesheet_link_tag 'scm' %>
|
||||
<% end %>
|
||||
|
||||
@@ -29,7 +29,7 @@
|
||||
<% remote_form_for(:group, @group, :url => {:controller => 'groups', :action => 'add_users', :id => @group}, :method => :post) do |f| %>
|
||||
<fieldset><legend><%=l(:label_user_new)%></legend>
|
||||
|
||||
<p><%= text_field_tag 'user_search', nil, :size => "40" %></p>
|
||||
<p><%= text_field_tag 'user_search', nil %></p>
|
||||
<%= observe_field(:user_search,
|
||||
:frequency => 0.5,
|
||||
:update => :users,
|
||||
|
||||
@@ -1,7 +1,5 @@
|
||||
<h2><%= link_to l(:label_group_plural), groups_path %> » <%= l(:label_group_new) %></h2>
|
||||
|
||||
<%= error_messages_for :group %>
|
||||
|
||||
<% form_for(@group, :builder => TabularFormBuilder, :lang => current_language) do |f| %>
|
||||
<%= render :partial => 'form', :locals => { :f => f } %>
|
||||
<p><%= f.submit l(:button_create) %></p>
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
<% form_tag({}) do -%>
|
||||
<%= hidden_field_tag 'back_url', url_for(params) %>
|
||||
<div class="autoscroll">
|
||||
<table class="list issues">
|
||||
<thead><tr>
|
||||
<th><%= link_to image_tag('toggle_check.png'), {}, :onclick => 'toggleIssuesSelection(Element.up(this, "form")); return false;',
|
||||
@@ -25,10 +26,11 @@
|
||||
<% end %>
|
||||
<tr id="issue-<%= issue.id %>" class="hascontextmenu <%= cycle('odd', 'even') %> <%= issue.css_classes %>">
|
||||
<td class="checkbox"><%= check_box_tag("ids[]", issue.id, false, :id => nil) %></td>
|
||||
<td><%= link_to issue.id, :controller => 'issues', :action => 'show', :id => issue %></td>
|
||||
<td class="id"><%= link_to issue.id, :controller => 'issues', :action => 'show', :id => issue %></td>
|
||||
<% query.columns.each do |column| %><%= content_tag 'td', column_content(column, issue), :class => column.name %><% end %>
|
||||
</tr>
|
||||
<% end -%>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<% end -%>
|
||||
|
||||
@@ -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 %>
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
<a href="#" class="submenu" onclick="return false;"><%= l(:field_status) %></a>
|
||||
<ul>
|
||||
<% @statuses.each do |s| -%>
|
||||
<li><%= context_menu_link s.name, {:controller => 'issues', :action => 'edit', :id => @issue, :issue => {:status_id => s}, :back_to => @back}, :method => :post,
|
||||
<li><%= context_menu_link s.name, {:controller => 'issues', :action => 'edit', :id => @issue, :issue => {:status_id => s}, :back_url => @back}, :method => :post,
|
||||
:selected => (s == @issue.status), :disabled => !(@can[:update] && @allowed_statuses.include?(s)) %></li>
|
||||
<% end -%>
|
||||
</ul>
|
||||
@@ -23,7 +23,7 @@
|
||||
<a href="#" class="submenu"><%= l(:field_tracker) %></a>
|
||||
<ul>
|
||||
<% @trackers.each do |t| -%>
|
||||
<li><%= context_menu_link t.name, {:controller => 'issues', :action => 'bulk_edit', :ids => @issues.collect(&:id), 'tracker_id' => t, :back_to => @back}, :method => :post,
|
||||
<li><%= context_menu_link t.name, {:controller => 'issues', :action => 'bulk_edit', :ids => @issues.collect(&:id), 'tracker_id' => t, :back_url => @back}, :method => :post,
|
||||
:selected => (@issue && t == @issue.tracker), :disabled => !@can[:edit] %></li>
|
||||
<% end -%>
|
||||
</ul>
|
||||
@@ -33,7 +33,7 @@
|
||||
<a href="#" class="submenu"><%= l(:field_priority) %></a>
|
||||
<ul>
|
||||
<% @priorities.each do |p| -%>
|
||||
<li><%= context_menu_link p.name, {:controller => 'issues', :action => 'bulk_edit', :ids => @issues.collect(&:id), 'priority_id' => p, :back_to => @back}, :method => :post,
|
||||
<li><%= context_menu_link p.name, {:controller => 'issues', :action => 'bulk_edit', :ids => @issues.collect(&:id), 'priority_id' => p, :back_url => @back}, :method => :post,
|
||||
:selected => (@issue && p == @issue.priority), :disabled => !@can[:edit] %></li>
|
||||
<% end -%>
|
||||
</ul>
|
||||
@@ -43,10 +43,10 @@
|
||||
<a href="#" class="submenu"><%= l(:field_fixed_version) %></a>
|
||||
<ul>
|
||||
<% @project.shared_versions.open.sort.each do |v| -%>
|
||||
<li><%= context_menu_link format_version_name(v), {:controller => 'issues', :action => 'bulk_edit', :ids => @issues.collect(&:id), 'fixed_version_id' => v, :back_to => @back}, :method => :post,
|
||||
<li><%= context_menu_link format_version_name(v), {:controller => 'issues', :action => 'bulk_edit', :ids => @issues.collect(&:id), 'fixed_version_id' => v, :back_url => @back}, :method => :post,
|
||||
:selected => (@issue && v == @issue.fixed_version), :disabled => !@can[:update] %></li>
|
||||
<% end -%>
|
||||
<li><%= context_menu_link l(:label_none), {:controller => 'issues', :action => 'bulk_edit', :ids => @issues.collect(&:id), 'fixed_version_id' => 'none', :back_to => @back}, :method => :post,
|
||||
<li><%= context_menu_link l(:label_none), {:controller => 'issues', :action => 'bulk_edit', :ids => @issues.collect(&:id), 'fixed_version_id' => 'none', :back_url => @back}, :method => :post,
|
||||
:selected => (@issue && @issue.fixed_version.nil?), :disabled => !@can[:update] %></li>
|
||||
</ul>
|
||||
</li>
|
||||
@@ -56,10 +56,10 @@
|
||||
<a href="#" class="submenu"><%= l(:field_assigned_to) %></a>
|
||||
<ul>
|
||||
<% @assignables.each do |u| -%>
|
||||
<li><%= context_menu_link u.name, {:controller => 'issues', :action => 'bulk_edit', :ids => @issues.collect(&:id), 'assigned_to_id' => u, :back_to => @back}, :method => :post,
|
||||
<li><%= context_menu_link u.name, {:controller => 'issues', :action => 'bulk_edit', :ids => @issues.collect(&:id), 'assigned_to_id' => u, :back_url => @back}, :method => :post,
|
||||
:selected => (@issue && u == @issue.assigned_to), :disabled => !@can[:update] %></li>
|
||||
<% end -%>
|
||||
<li><%= context_menu_link l(:label_nobody), {:controller => 'issues', :action => 'bulk_edit', :ids => @issues.collect(&:id), 'assigned_to_id' => 'none', :back_to => @back}, :method => :post,
|
||||
<li><%= context_menu_link l(:label_nobody), {:controller => 'issues', :action => 'bulk_edit', :ids => @issues.collect(&:id), 'assigned_to_id' => 'none', :back_url => @back}, :method => :post,
|
||||
:selected => (@issue && @issue.assigned_to.nil?), :disabled => !@can[:update] %></li>
|
||||
</ul>
|
||||
</li>
|
||||
@@ -69,10 +69,10 @@
|
||||
<a href="#" class="submenu"><%= l(:field_category) %></a>
|
||||
<ul>
|
||||
<% @project.issue_categories.each do |u| -%>
|
||||
<li><%= context_menu_link u.name, {:controller => 'issues', :action => 'bulk_edit', :ids => @issues.collect(&:id), 'category_id' => u, :back_to => @back}, :method => :post,
|
||||
<li><%= context_menu_link u.name, {:controller => 'issues', :action => 'bulk_edit', :ids => @issues.collect(&:id), 'category_id' => u, :back_url => @back}, :method => :post,
|
||||
:selected => (@issue && u == @issue.category), :disabled => !@can[:update] %></li>
|
||||
<% end -%>
|
||||
<li><%= context_menu_link l(:label_none), {:controller => 'issues', :action => 'bulk_edit', :ids => @issues.collect(&:id), 'category_id' => 'none', :back_to => @back}, :method => :post,
|
||||
<li><%= context_menu_link l(:label_none), {:controller => 'issues', :action => 'bulk_edit', :ids => @issues.collect(&:id), 'category_id' => 'none', :back_url => @back}, :method => :post,
|
||||
:selected => (@issue && @issue.category.nil?), :disabled => !@can[:update] %></li>
|
||||
</ul>
|
||||
</li>
|
||||
@@ -82,7 +82,7 @@
|
||||
<a href="#" class="submenu"><%= l(:field_done_ratio) %></a>
|
||||
<ul>
|
||||
<% (0..10).map{|x|x*10}.each do |p| -%>
|
||||
<li><%= context_menu_link "#{p}%", {:controller => 'issues', :action => 'bulk_edit', :ids => @issues.collect(&:id), 'done_ratio' => p, :back_to => @back}, :method => :post,
|
||||
<li><%= context_menu_link "#{p}%", {:controller => 'issues', :action => 'bulk_edit', :ids => @issues.collect(&:id), 'done_ratio' => p, :back_url => @back}, :method => :post,
|
||||
:selected => (@issue && p == @issue.done_ratio), :disabled => !@can[:edit] %></li>
|
||||
<% end -%>
|
||||
</ul>
|
||||
|
||||
@@ -86,7 +86,6 @@ top = headers_height + 8
|
||||
<%= link_to_issue i %>
|
||||
<% else %>
|
||||
<span class="icon icon-package">
|
||||
<%= h("#{i.project} -") unless @project && @project == i.project %>
|
||||
<%= link_to_version i %>
|
||||
</span>
|
||||
<% end %>
|
||||
@@ -211,8 +210,7 @@ top = headers_height + 10
|
||||
%>
|
||||
<div style="top:<%= top %>px;left:<%= i_left %>px;width:15px;" class="task milestone"> </div>
|
||||
<div style="top:<%= top %>px;left:<%= i_left + 12 %>px;background:#fff;" class="task">
|
||||
<%= h("#{i.project} -") unless @project && @project == i.project %>
|
||||
<strong><%=h i %></strong>
|
||||
<strong><%= format_version_name i %></strong>
|
||||
</div>
|
||||
<% end %>
|
||||
<% top = top + 20
|
||||
|
||||
@@ -10,10 +10,10 @@
|
||||
|
||||
<% form_tag({ :controller => 'queries', :action => 'new' }, :id => 'query_form') do %>
|
||||
<%= hidden_field_tag('project_id', @project.to_param) if @project %>
|
||||
<div id="query_form_content">
|
||||
<fieldset id="filters" class="collapsible">
|
||||
<div id="query_form_content" class="hide-when-print">
|
||||
<fieldset id="filters" class="collapsible <%= @query.new_record? ? "" : "collapsed" %>">
|
||||
<legend onclick="toggleFieldset(this);"><%= l(:label_filter_plural) %></legend>
|
||||
<div>
|
||||
<div style="<%= @query.new_record? ? "" : "display: none;" %>">
|
||||
<%= render :partial => 'queries/filters', :locals => {:query => @query} %>
|
||||
</div>
|
||||
</fieldset>
|
||||
@@ -33,7 +33,7 @@
|
||||
</div>
|
||||
</fieldset>
|
||||
</div>
|
||||
<p class="buttons">
|
||||
<p class="buttons hide-when-print">
|
||||
|
||||
<%= link_to_remote l(:button_apply),
|
||||
{ :url => { :set_filter => 1 },
|
||||
|
||||
@@ -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 %>.
|
||||
@@ -73,7 +73,7 @@
|
||||
|
||||
</div>
|
||||
|
||||
<% if @changesets.any? && User.current.allowed_to?(:view_changesets, @project) %>
|
||||
<% if @changesets.any? %>
|
||||
<div id="issue-changesets">
|
||||
<h3><%=l(:label_associated_revisions)%></h3>
|
||||
<%= render :partial => 'changesets', :locals => { :changesets => @changesets} %>
|
||||
|
||||
@@ -40,9 +40,11 @@
|
||||
|
||||
<h1><%= page_header_title %></h1>
|
||||
|
||||
<% if display_main_menu?(@project) %>
|
||||
<div id="main-menu">
|
||||
<%= render_main_menu(@project) %>
|
||||
</div>
|
||||
<% end %>
|
||||
</div>
|
||||
|
||||
<%= tag('div', {:id => 'main', :class => (has_content?(:sidebar) ? '' : 'nosidebar')}, true) %>
|
||||
@@ -62,7 +64,7 @@
|
||||
<div id="ajax-indicator" style="display:none;"><span><%= l(:label_loading) %></span></div>
|
||||
|
||||
<div id="footer">
|
||||
Powered by <%= link_to Redmine::Info.app_name, Redmine::Info.url %> © 2006-2009 Jean-Philippe Lang
|
||||
Powered by <%= link_to Redmine::Info.app_name, Redmine::Info.url %> © 2006-2010 Jean-Philippe Lang
|
||||
</div>
|
||||
</div>
|
||||
<%= call_hook :view_layouts_base_body_bottom %>
|
||||
|
||||
@@ -1,14 +1,14 @@
|
||||
<h1><%= link_to "#{issue.tracker.name} ##{issue.id}: #{issue.subject}", issue_url %></h1>
|
||||
<h1><%= link_to(h("#{issue.tracker.name} ##{issue.id}: #{issue.subject}"), issue_url) %></h1>
|
||||
|
||||
<ul>
|
||||
<li><%=l(:field_author)%>: <%= issue.author %></li>
|
||||
<li><%=l(:field_status)%>: <%= issue.status %></li>
|
||||
<li><%=l(:field_priority)%>: <%= issue.priority %></li>
|
||||
<li><%=l(:field_assigned_to)%>: <%= issue.assigned_to %></li>
|
||||
<li><%=l(:field_category)%>: <%= issue.category %></li>
|
||||
<li><%=l(:field_fixed_version)%>: <%= issue.fixed_version %></li>
|
||||
<li><%=l(:field_author)%>: <%=h issue.author %></li>
|
||||
<li><%=l(:field_status)%>: <%=h issue.status %></li>
|
||||
<li><%=l(:field_priority)%>: <%=h issue.priority %></li>
|
||||
<li><%=l(:field_assigned_to)%>: <%=h issue.assigned_to %></li>
|
||||
<li><%=l(:field_category)%>: <%=h issue.category %></li>
|
||||
<li><%=l(:field_fixed_version)%>: <%=h issue.fixed_version %></li>
|
||||
<% issue.custom_values.each do |c| %>
|
||||
<li><%= c.custom_field.name %>: <%= show_value(c) %></li>
|
||||
<li><%=h c.custom_field.name %>: <%=h show_value(c) %></li>
|
||||
<% end %>
|
||||
</ul>
|
||||
|
||||
|
||||
@@ -1,2 +1,2 @@
|
||||
<p><%= l(:mail_body_account_activation_request, @user.login) %></p>
|
||||
<p><%= l(:mail_body_account_activation_request, h(@user.login)) %></p>
|
||||
<p><%= link_to @url, @url %></p>
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
<% if @user.auth_source %>
|
||||
<p><%= l(:mail_body_account_information_external, @user.auth_source.name) %></p>
|
||||
<p><%= l(:mail_body_account_information_external, h(@user.auth_source.name)) %></p>
|
||||
<% else %>
|
||||
<p><%= l(:mail_body_account_information) %>:</p>
|
||||
<ul>
|
||||
<li><%= l(:field_login) %>: <%= @user.login %></li>
|
||||
<li><%= l(:field_password) %>: <%= @password %></li>
|
||||
<li><%= l(:field_login) %>: <%=h @user.login %></li>
|
||||
<li><%= l(:field_password) %>: <%=h @password %></li>
|
||||
</ul>
|
||||
<% end %>
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
<%= link_to @added_to, @added_to_url %><br />
|
||||
|
||||
<ul><% @attachments.each do |attachment | %>
|
||||
<li><%= attachment.filename %></li>
|
||||
<li><%=h attachment.filename %></li>
|
||||
<% end %></ul>
|
||||
|
||||
@@ -1,3 +1,3 @@
|
||||
<%= link_to @document.title, @document_url %> (<%= @document.category.name %>)<br />
|
||||
<%= link_to(h(@document.title), @document_url) %> (<%=h @document.category.name %>)<br />
|
||||
<br />
|
||||
<%= textilizable(@document, :description, :only_path => false) %>
|
||||
|
||||
@@ -1,3 +1,3 @@
|
||||
<%= l(:text_issue_added, :id => "##{@issue.id}", :author => @issue.author) %>
|
||||
<%= l(:text_issue_added, :id => "##{@issue.id}", :author => h(@issue.author)) %>
|
||||
<hr />
|
||||
<%= render :partial => "issue_text_html", :locals => { :issue => @issue, :issue_url => @issue_url } %>
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
<%= l(:text_issue_updated, :id => "##{@issue.id}", :author => @journal.user) %>
|
||||
<%= l(:text_issue_updated, :id => "##{@issue.id}", :author => h(@journal.user)) %>
|
||||
|
||||
<ul>
|
||||
<% for detail in @journal.details %>
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
<p><%= l(:mail_body_lost_password) %><br />
|
||||
<%= auto_link(@url) %></p>
|
||||
|
||||
<p><%= l(:field_login) %>: <b><%= @token.user.login %></b></p>
|
||||
<p><%= l(:field_login) %>: <b><%=h @token.user.login %></b></p>
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
<h1><%=h @message.board.project.name %> - <%=h @message.board.name %>: <%= link_to @message.subject, @message_url %></h1>
|
||||
<em><%= @message.author %></em>
|
||||
<h1><%=h @message.board.project.name %> - <%=h @message.board.name %>: <%= link_to(h(@message.subject), @message_url) %></h1>
|
||||
<em><%=h @message.author %></em>
|
||||
|
||||
<%= textilizable(@message, :content, :only_path => false) %>
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
<h1><%= link_to @news.title, @news_url %></h1>
|
||||
<em><%= @news.author.name %></em>
|
||||
<h1><%= link_to(h(@news.title), @news_url) %></h1>
|
||||
<em><%=h @news.author.name %></em>
|
||||
|
||||
<%= textilizable(@news, :description, :only_path => false) %>
|
||||
|
||||
@@ -3,12 +3,12 @@
|
||||
|
||||
<div class="contextual">
|
||||
<%= watcher_tag(@topic, User.current) %>
|
||||
<%= link_to_remote_if_authorized l(:button_quote), { :url => {:action => 'quote', :id => @topic} }, :class => 'icon icon-comment' %>
|
||||
<%= link_to_remote_if_authorized(l(:button_quote), { :url => {:action => 'quote', :id => @topic} }, :class => 'icon icon-comment') unless @topic.locked? %>
|
||||
<%= link_to(l(:button_edit), {:action => 'edit', :id => @topic}, :class => 'icon icon-edit') if @message.editable_by?(User.current) %>
|
||||
<%= 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>
|
||||
@@ -24,11 +24,12 @@
|
||||
<% @replies.each do |message| %>
|
||||
<div class="message reply" id="<%= "message-#{message.id}" %>">
|
||||
<div class="contextual">
|
||||
<%= link_to_remote_if_authorized image_tag('comment.png'), { :url => {:action => 'quote', :id => message} }, :title => l(:button_quote) %>
|
||||
<%= link_to_remote_if_authorized(image_tag('comment.png'), { :url => {:action => 'quote', :id => message} }, :title => l(:button_quote)) unless @topic.locked? %>
|
||||
<%= link_to(image_tag('edit.png'), {:action => 'edit', :id => message}, :title => l(:button_edit)) if message.editable_by?(User.current) %>
|
||||
<%= 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 %>
|
||||
|
||||
@@ -17,10 +17,10 @@
|
||||
|
||||
<% if Setting.rest_api_enabled? %>
|
||||
<h4><%= l(:label_api_access_key) %></h4>
|
||||
<p>
|
||||
<div>
|
||||
<%= link_to_function(l(:button_show), "$('api-access-key').toggle();")%>
|
||||
<pre id='api-access-key' class='autoscroll'><%= @user.api_key %></pre>
|
||||
</p>
|
||||
</div>
|
||||
<%= javascript_tag("$('api-access-key').hide();") %>
|
||||
<p>
|
||||
<% if @user.api_token %>
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
<h3><%= l(:label_calendar) %></h3>
|
||||
|
||||
<% calendar = Redmine::Helpers::Calendar.new(Date.today, current_language, :week)
|
||||
calendar.events = Issue.find :all,
|
||||
calendar.events = Issue.visible.find :all,
|
||||
:conditions => ["#{Issue.table_name}.project_id in (#{@user.projects.collect{|m| m.id}.join(',')}) AND ((start_date>=? and start_date<=?) or (due_date>=? and due_date<=?))", calendar.startdt, calendar.enddt, calendar.startdt, calendar.enddt],
|
||||
:include => [:project, :tracker, :priority, :assigned_to] unless @user.projects.empty? %>
|
||||
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -21,6 +21,8 @@
|
||||
<label class="block"><%= check_box_tag 'only[]', 'boards', true %> <%= l(:label_board_plural) %> (<%= @source_project.boards.count %>)</label>
|
||||
<label class="block"><%= check_box_tag 'only[]', 'wiki', true %> <%= l(:label_wiki_page_plural) %> (<%= @source_project.wiki.nil? ? 0 : @source_project.wiki.pages.count %>)</label>
|
||||
<%= hidden_field_tag 'only[]', '' %>
|
||||
<br />
|
||||
<label class="block"><%= check_box_tag 'notifications', 1, params[:notifications] %> <%= l(:label_project_copy_notifications) %></label>
|
||||
</fieldset>
|
||||
|
||||
<%= submit_tag l(:button_copy) %>
|
||||
|
||||
@@ -1,3 +1,7 @@
|
||||
<% content_for :header_tags do %>
|
||||
<%= auto_discovery_link_tag(:atom, {:action => 'index', :format => 'atom', :key => User.current.rss_key}) %>
|
||||
<% end %>
|
||||
|
||||
<div class="contextual">
|
||||
<%= link_to(l(:label_project_new), {:controller => 'projects', :action => 'add'}, :class => 'icon icon-add') + ' |' if User.current.allowed_to?(:add_project, nil, :global => true) %>
|
||||
<%= link_to(l(:label_issue_view_all), { :controller => 'issues' }) + ' |' if User.current.allowed_to?(:view_issues, nil, :global => true) %>
|
||||
|
||||
@@ -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>
|
||||
@@ -57,7 +58,7 @@
|
||||
<% remote_form_for(:member, @member, :url => {:controller => 'members', :action => 'new', :id => @project}, :method => :post) do |f| %>
|
||||
<fieldset><legend><%=l(:label_member_new)%></legend>
|
||||
|
||||
<p><%= text_field_tag 'principal_search', nil, :size => "40" %></p>
|
||||
<p><%= text_field_tag 'principal_search', nil %></p>
|
||||
<%= observe_field(:principal_search,
|
||||
:frequency => 0.5,
|
||||
:update => :principals,
|
||||
|
||||
@@ -7,9 +7,11 @@
|
||||
<h2><%=l(:label_overview)%></h2>
|
||||
|
||||
<div class="splitcontentleft">
|
||||
<%= textilizable @project.description %>
|
||||
<div class="wiki">
|
||||
<%= textilizable @project.description %>
|
||||
</div>
|
||||
<ul>
|
||||
<% unless @project.homepage.blank? %><li><%=l(:field_homepage)%>: <%= link_to(h(@project.homepage), @project.homepage) %></li><% end %>
|
||||
<% unless @project.homepage.blank? %><li><%=l(:field_homepage)%>: <%= auto_link(h(@project.homepage)) %></li><% end %>
|
||||
<% if @subprojects.any? %>
|
||||
<li><%=l(:label_subproject_plural)%>:
|
||||
<%= @subprojects.collect{|p| link_to(h(p), :action => 'show', :id => p)}.join(", ") %></li>
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -16,6 +16,6 @@ dirs.each do |dir|
|
||||
/ <%= link_to h(filename), :action => 'changes', :id => @project, :path => to_path_param("#{link_path}/#{filename}"), :rev => @rev %>
|
||||
<% end %>
|
||||
|
||||
<%= "@ #{revision}" if revision %>
|
||||
<%= "@ #{h revision}" if revision %>
|
||||
|
||||
<% html_title(with_leading_slash(path)) -%>
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
<% @entries.each do |entry| %>
|
||||
<% tr_id = Digest::MD5.hexdigest(entry.path)
|
||||
depth = params[:depth].to_i %>
|
||||
<tr id="<%= tr_id %>" class="<%= params[:parent_id] %> entry <%= entry.kind %>">
|
||||
<tr id="<%= tr_id %>" class="<%= h params[:parent_id] %> entry <%= entry.kind %>">
|
||||
<td style="padding-left: <%=18 * depth%>px;" class="filename">
|
||||
<% if entry.is_dir? %>
|
||||
<span class="expander" onclick="<%= remote_function :url => {:action => 'show', :id => @project, :path => to_path_param(entry.path), :rev => @rev, :depth => (depth + 1), :parent_id => tr_id},
|
||||
|
||||
@@ -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) %>
|
||||
|
||||
@@ -15,6 +15,7 @@
|
||||
<% end %>
|
||||
|
||||
|
||||
<div class="autoscroll">
|
||||
<table class="list">
|
||||
<thead><tr>
|
||||
<%= sort_header_tag('login', :caption => l(:field_login)) %>
|
||||
@@ -41,7 +42,7 @@
|
||||
<% end -%>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
</div>
|
||||
<p class="pagination"><%= pagination_links_full @user_pages, @user_count %></p>
|
||||
|
||||
<% html_title(l(:label_user_plural)) -%>
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -25,6 +25,7 @@
|
||||
<% form_tag({}, :id => 'workflow_form' ) do %>
|
||||
<%= hidden_field_tag 'tracker_id', @tracker.id %>
|
||||
<%= hidden_field_tag 'role_id', @role.id %>
|
||||
<div class="autoscroll">
|
||||
<table class="list">
|
||||
<thead>
|
||||
<tr>
|
||||
@@ -52,6 +53,7 @@
|
||||
<% end %>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<p><%= check_all_links 'workflow_form' %></p>
|
||||
|
||||
<%= submit_tag l(:button_save) %>
|
||||
|
||||
@@ -1,4 +1,70 @@
|
||||
# Outgoing email settings
|
||||
# = Outgoing email settings
|
||||
#
|
||||
# Each environment has it's own configuration options. If you are only
|
||||
# running in production, only the production block needs to be configured.
|
||||
#
|
||||
# == Common configurations
|
||||
#
|
||||
# === Sendmail command
|
||||
#
|
||||
# production:
|
||||
# delivery_method: :sendmail
|
||||
#
|
||||
# === Simple SMTP server at localhost
|
||||
#
|
||||
# production:
|
||||
# delivery_method: :smtp
|
||||
# smtp_settings:
|
||||
# address: "localhost"
|
||||
# port: 25
|
||||
#
|
||||
# === SMTP server at example.com using LOGIN authentication and checking HELO for foo.com
|
||||
#
|
||||
# production:
|
||||
# delivery_method: :smtp
|
||||
# smtp_settings:
|
||||
# address: "example.com"
|
||||
# port: 25
|
||||
# authentication: :login
|
||||
# domain: 'foo.com'
|
||||
# user_name: 'myaccount'
|
||||
# password: 'password'
|
||||
#
|
||||
# === SMTP server at example.com using PLAIN authentication
|
||||
#
|
||||
# production:
|
||||
# delivery_method: :smtp
|
||||
# smtp_settings:
|
||||
# address: "example.com"
|
||||
# port: 25
|
||||
# authentication: :plain
|
||||
# domain: 'example.com'
|
||||
# user_name: 'myaccount'
|
||||
# password: 'password'
|
||||
#
|
||||
# === SMTP server at using TLS (GMail)
|
||||
#
|
||||
# This requires some additional configuration. See the article at:
|
||||
# http://redmineblog.com/articles/setup-redmine-to-send-email-using-gmail/
|
||||
#
|
||||
# production:
|
||||
# delivery_method: :smtp
|
||||
# smtp_settings:
|
||||
# tls: true
|
||||
# address: "smtp.gmail.com"
|
||||
# port: 587
|
||||
# domain: "smtp.gmail.com" # 'your.domain.com' for GoogleApps
|
||||
# authentication: :plain
|
||||
# user_name: "your_email@gmail.com"
|
||||
# password: "your_password"
|
||||
#
|
||||
#
|
||||
# == More configuration options
|
||||
#
|
||||
# See the "Configuration options" at the following website for a list of the
|
||||
# full options allowed:
|
||||
#
|
||||
# http://wiki.rubyonrails.org/rails/pages/HowToSendEmailsWithActionMailer
|
||||
|
||||
production:
|
||||
delivery_method: :smtp
|
||||
|
||||
@@ -25,5 +25,5 @@ config.action_controller.session = {
|
||||
config.action_controller.allow_forgery_protection = false
|
||||
|
||||
config.gem "thoughtbot-shoulda", :lib => "shoulda", :source => "http://gems.github.com"
|
||||
config.gem "nofxx-object_daddy", :lib => "object_daddy", :source => "http://gems.github.com"
|
||||
config.gem "edavis10-object_daddy", :lib => "object_daddy"
|
||||
config.gem "mocha"
|
||||
|
||||
@@ -1,29 +1 @@
|
||||
# Settings specified here will take precedence over those in config/environment.rb
|
||||
|
||||
# The test environment is used exclusively to run your application's
|
||||
# test suite. You never need to work with it otherwise. Remember that
|
||||
# your test database is "scratch space" for the test suite and is wiped
|
||||
# and recreated between test runs. Don't rely on the data there!
|
||||
config.cache_classes = true
|
||||
|
||||
# Log error messages when you accidentally call methods on nil.
|
||||
config.whiny_nils = true
|
||||
|
||||
# Show full error reports and disable caching
|
||||
config.action_controller.consider_all_requests_local = true
|
||||
config.action_controller.perform_caching = false
|
||||
|
||||
config.action_mailer.perform_deliveries = true
|
||||
config.action_mailer.delivery_method = :test
|
||||
|
||||
config.action_controller.session = {
|
||||
:session_key => "_test_session",
|
||||
:secret => "some secret phrase for the tests."
|
||||
}
|
||||
|
||||
# Skip protect_from_forgery in requests http://m.onkey.org/2007/9/28/csrf-protection-for-your-existing-rails-application
|
||||
config.action_controller.allow_forgery_protection = false
|
||||
|
||||
config.gem "thoughtbot-shoulda", :lib => "shoulda", :source => "http://gems.github.com"
|
||||
config.gem "nofxx-object_daddy", :lib => "object_daddy", :source => "http://gems.github.com"
|
||||
config.gem "mocha"
|
||||
instance_eval File.read(File.join(File.dirname(__FILE__), 'test.rb'))
|
||||
|
||||
@@ -1,29 +1 @@
|
||||
# Settings specified here will take precedence over those in config/environment.rb
|
||||
|
||||
# The test environment is used exclusively to run your application's
|
||||
# test suite. You never need to work with it otherwise. Remember that
|
||||
# your test database is "scratch space" for the test suite and is wiped
|
||||
# and recreated between test runs. Don't rely on the data there!
|
||||
config.cache_classes = true
|
||||
|
||||
# Log error messages when you accidentally call methods on nil.
|
||||
config.whiny_nils = true
|
||||
|
||||
# Show full error reports and disable caching
|
||||
config.action_controller.consider_all_requests_local = true
|
||||
config.action_controller.perform_caching = false
|
||||
|
||||
config.action_mailer.perform_deliveries = true
|
||||
config.action_mailer.delivery_method = :test
|
||||
|
||||
config.action_controller.session = {
|
||||
:session_key => "_test_session",
|
||||
:secret => "some secret phrase for the tests."
|
||||
}
|
||||
|
||||
# Skip protect_from_forgery in requests http://m.onkey.org/2007/9/28/csrf-protection-for-your-existing-rails-application
|
||||
config.action_controller.allow_forgery_protection = false
|
||||
|
||||
config.gem "thoughtbot-shoulda", :lib => "shoulda", :source => "http://gems.github.com"
|
||||
config.gem "nofxx-object_daddy", :lib => "object_daddy", :source => "http://gems.github.com"
|
||||
config.gem "mocha"
|
||||
instance_eval File.read(File.join(File.dirname(__FILE__), 'test.rb'))
|
||||
|
||||
@@ -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,13 @@ 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
|
||||
label_board_sticky: Sticky
|
||||
label_board_locked: Locked
|
||||
permission_export_wiki_pages: Export wiki pages
|
||||
setting_cache_formatted_text: Cache formatted text
|
||||
permission_manage_project_activities: Manage project activities
|
||||
label_project_copy_notifications: Send email notifications during the project copy
|
||||
|
||||
@@ -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,13 @@ 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
|
||||
label_board_sticky: Sticky
|
||||
label_board_locked: Locked
|
||||
permission_export_wiki_pages: Export wiki pages
|
||||
setting_cache_formatted_text: Cache formatted text
|
||||
permission_manage_project_activities: Manage project activities
|
||||
label_project_copy_notifications: Send email notifications during the project copy
|
||||
|
||||
@@ -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,13 @@ 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
|
||||
label_board_sticky: Sticky
|
||||
label_board_locked: Locked
|
||||
permission_export_wiki_pages: Export wiki pages
|
||||
setting_cache_formatted_text: Cache formatted text
|
||||
permission_manage_project_activities: Manage project activities
|
||||
label_project_copy_notifications: Send email notifications during the project copy
|
||||
|
||||
@@ -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,13 @@ 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
|
||||
label_board_sticky: Sticky
|
||||
label_board_locked: Locked
|
||||
permission_export_wiki_pages: Export wiki pages
|
||||
setting_cache_formatted_text: Cache formatted text
|
||||
permission_manage_project_activities: Manage project activities
|
||||
label_project_copy_notifications: Send email notifications during the project copy
|
||||
|
||||
@@ -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,13 @@ 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
|
||||
label_board_sticky: Sticky
|
||||
label_board_locked: Locked
|
||||
permission_export_wiki_pages: Export wiki pages
|
||||
setting_cache_formatted_text: Cache formatted text
|
||||
permission_manage_project_activities: Manage project activities
|
||||
label_project_copy_notifications: Send email notifications during the project copy
|
||||
|
||||
@@ -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,43 @@ 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
|
||||
label_board_sticky: Sticky
|
||||
label_board_locked: Locked
|
||||
permission_export_wiki_pages: Export wiki pages
|
||||
setting_cache_formatted_text: Cache formatted text
|
||||
permission_manage_project_activities: Manage project activities
|
||||
label_project_copy_notifications: Send email notifications during the project copy
|
||||
|
||||
@@ -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,13 @@ 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
|
||||
label_board_sticky: Sticky
|
||||
label_board_locked: Locked
|
||||
permission_export_wiki_pages: Export wiki pages
|
||||
setting_cache_formatted_text: Cache formatted text
|
||||
permission_manage_project_activities: Manage project activities
|
||||
label_project_copy_notifications: Send email notifications during the project copy
|
||||
|
||||
@@ -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:
|
||||
@@ -326,12 +329,14 @@ en:
|
||||
setting_issue_done_ratio_issue_status: Use the issue status
|
||||
setting_start_of_week: Start calendars on
|
||||
setting_rest_api_enabled: Enable REST web service
|
||||
setting_cache_formatted_text: Cache formatted text
|
||||
|
||||
permission_add_project: Create project
|
||||
permission_add_subprojects: Create subprojects
|
||||
permission_edit_project: Edit project
|
||||
permission_select_project_modules: Select project modules
|
||||
permission_manage_members: Manage members
|
||||
permission_manage_project_activities: Manage project activities
|
||||
permission_manage_versions: Manage versions
|
||||
permission_manage_categories: Manage issue categories
|
||||
permission_view_issues: View Issues
|
||||
@@ -379,6 +384,7 @@ en:
|
||||
permission_edit_own_messages: Edit own messages
|
||||
permission_delete_messages: Delete messages
|
||||
permission_delete_own_messages: Delete own messages
|
||||
permission_export_wiki_pages: Export wiki pages
|
||||
|
||||
project_module_issue_tracking: Issue tracking
|
||||
project_module_time_tracking: Time tracking
|
||||
@@ -499,6 +505,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...
|
||||
@@ -658,6 +665,8 @@ en:
|
||||
label_board: Forum
|
||||
label_board_new: New forum
|
||||
label_board_plural: Forums
|
||||
label_board_locked: Locked
|
||||
label_board_sticky: Sticky
|
||||
label_topic_plural: Topics
|
||||
label_message_plural: Messages
|
||||
label_message_last: Last message
|
||||
@@ -739,6 +748,7 @@ en:
|
||||
label_api_access_key: API access key
|
||||
label_missing_api_access_key: Missing an API access key
|
||||
label_api_access_key_created_on: "API access key created {{value}} ago"
|
||||
label_project_copy_notifications: Send email notifications during the project copy
|
||||
|
||||
button_login: Login
|
||||
button_submit: Submit
|
||||
@@ -848,6 +858,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
|
||||
@@ -875,3 +886,4 @@ en:
|
||||
enumeration_doc_categories: Document categories
|
||||
enumeration_activities: Activities (time tracking)
|
||||
enumeration_system_activity: System Activity
|
||||
|
||||
|
||||
@@ -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: "casi 1 año"
|
||||
other: "casi {{count}} años"
|
||||
|
||||
activerecord:
|
||||
errors:
|
||||
@@ -917,5 +920,15 @@ es:
|
||||
button_show: Mostrar
|
||||
text_line_separated: Múltiples valores permitidos (un valor en cada línea).
|
||||
setting_mail_handler_body_delimiters: Truncar correos tras una de estas líneas
|
||||
permission_add_subprojects: Create subprojects
|
||||
label_subproject_new: New subproject
|
||||
permission_add_subprojects: Crear subproyectos
|
||||
label_subproject_new: Nuevo subproyecto
|
||||
text_own_membership_delete_confirmation: |-
|
||||
Está a punto de eliminar algún o todos sus permisos y podría perder la posibilidad de modificar este proyecto tras hacerlo.
|
||||
¿Está seguro de querer continuar?
|
||||
label_close_versions: Cerrar versiones completadas
|
||||
label_board_sticky: Sticky
|
||||
label_board_locked: Locked
|
||||
permission_export_wiki_pages: Export wiki pages
|
||||
setting_cache_formatted_text: Cache formatted text
|
||||
permission_manage_project_activities: Manage project activities
|
||||
label_project_copy_notifications: Send email notifications during the project copy
|
||||
|
||||
@@ -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,13 @@ 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
|
||||
label_board_sticky: Sticky
|
||||
label_board_locked: Locked
|
||||
permission_export_wiki_pages: Export wiki pages
|
||||
setting_cache_formatted_text: Cache formatted text
|
||||
permission_manage_project_activities: Manage project activities
|
||||
label_project_copy_notifications: Send email notifications during the project copy
|
||||
|
||||
@@ -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,9 @@ 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
|
||||
setting_cache_formatted_text: Mettre en cache le texte formaté
|
||||
|
||||
permission_add_project: Créer un projet
|
||||
permission_add_subprojects: Créer des sous-projets
|
||||
@@ -399,6 +406,8 @@ fr:
|
||||
permission_edit_own_messages: Modifier ses propres messages
|
||||
permission_delete_messages: Supprimer les messages
|
||||
permission_delete_own_messages: Supprimer ses propres messages
|
||||
permission_export_wiki_pages: Exporter les pages
|
||||
permission_manage_project_activities: Gérer les activités
|
||||
|
||||
project_module_issue_tracking: Suivi des demandes
|
||||
project_module_time_tracking: Suivi du temps passé
|
||||
@@ -753,6 +762,9 @@ 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}}
|
||||
label_project_copy_notifications: Envoyer les notifications durant la copie du projet
|
||||
|
||||
button_login: Connexion
|
||||
button_submit: Soumettre
|
||||
@@ -800,10 +812,10 @@ fr:
|
||||
|
||||
status_active: actif
|
||||
status_registered: enregistré
|
||||
status_locked: vérouillé
|
||||
status_locked: verrouillé
|
||||
|
||||
version_status_open: ouvert
|
||||
version_status_locked: vérouillé
|
||||
version_status_locked: verrouillé
|
||||
version_status_closed: fermé
|
||||
|
||||
text_select_mail_notifications: Actions pour lesquelles une notification par e-mail est envoyée
|
||||
@@ -856,6 +868,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 +906,6 @@ 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}}
|
||||
label_board_sticky: Sticky
|
||||
label_board_locked: Verrouillé
|
||||
|
||||
@@ -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,13 @@ 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
|
||||
label_board_sticky: Sticky
|
||||
label_board_locked: Locked
|
||||
permission_export_wiki_pages: Export wiki pages
|
||||
setting_cache_formatted_text: Cache formatted text
|
||||
permission_manage_project_activities: Manage project activities
|
||||
label_project_copy_notifications: Send email notifications during the project copy
|
||||
|
||||
@@ -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,13 @@ 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
|
||||
label_board_sticky: Sticky
|
||||
label_board_locked: Locked
|
||||
permission_export_wiki_pages: Export wiki pages
|
||||
setting_cache_formatted_text: Cache formatted text
|
||||
permission_manage_project_activities: Manage project activities
|
||||
label_project_copy_notifications: Send email notifications during the project copy
|
||||
|
||||
897
config/locales/hr.yml
Normal file
897
config/locales/hr.yml
Normal file
@@ -0,0 +1,897 @@
|
||||
# Croatian translations for Ruby on Rails
|
||||
# by Helix d.o.o. (info@helix.hr)
|
||||
|
||||
hr:
|
||||
date:
|
||||
formats:
|
||||
# Use the strftime parameters for formats.
|
||||
# When no format has been given, it uses default.
|
||||
# You can provide other formats here if you like!
|
||||
default: "%m/%d/%Y"
|
||||
short: "%b %d"
|
||||
long: "%B %d, %Y"
|
||||
|
||||
day_names: [Ponedjeljak, Utorak, Srijeda, Četvrtak, Petak, Subota, Nedjelja]
|
||||
abbr_day_names: [Ned, Pon, Uto, Sri, Čet, Pet, Sub]
|
||||
|
||||
# Don't forget the nil at the beginning; there's no such thing as a 0th month
|
||||
month_names: [~, Sijecanj, Veljaca, Ožujak, Travanj, Svibanj, Lipanj, Srpanj, Kolovoz, Rujan, Listopad, Studeni, Prosinac]
|
||||
abbr_month_names: [~, Sij, Velj, Ožu, Tra, Svi, Lip, Srp, Kol, Ruj, List, Stu, Pro]
|
||||
# Used in date_select and datime_select.
|
||||
order: [ :year, :month, :day ]
|
||||
|
||||
time:
|
||||
formats:
|
||||
default: "%m/%d/%Y %I:%M %p"
|
||||
time: "%I:%M %p"
|
||||
short: "%d %b %H:%M"
|
||||
long: "%B %d, %Y %H:%M"
|
||||
am: "am"
|
||||
pm: "pm"
|
||||
|
||||
datetime:
|
||||
distance_in_words:
|
||||
half_a_minute: "pola minute"
|
||||
less_than_x_seconds:
|
||||
one: "manje od sekunde"
|
||||
other: "manje od {{count}} sekundi"
|
||||
x_seconds:
|
||||
one: "1 sekunda"
|
||||
other: "{{count}} sekundi"
|
||||
less_than_x_minutes:
|
||||
one: "manje od minute"
|
||||
other: "manje od {{count}} minuta"
|
||||
x_minutes:
|
||||
one: "1 minuta"
|
||||
other: "{{count}} minuta"
|
||||
about_x_hours:
|
||||
one: "oko sat vremena"
|
||||
other: "oko {{count}} sati"
|
||||
x_days:
|
||||
one: "1 dan"
|
||||
other: "{{count}} dana"
|
||||
about_x_months:
|
||||
one: "oko 1 mjesec"
|
||||
other: "oko {{count}} mjeseci"
|
||||
x_months:
|
||||
one: "mjesec"
|
||||
other: "{{count}} mjeseci"
|
||||
about_x_years:
|
||||
one: "1 godina"
|
||||
other: "{{count}} godina"
|
||||
over_x_years:
|
||||
one: "preko 1 godine"
|
||||
other: "preko {{count}} godina"
|
||||
|
||||
number:
|
||||
human:
|
||||
format:
|
||||
delimiter: ""
|
||||
precision: 1
|
||||
storage_units:
|
||||
format: "%n %u"
|
||||
units:
|
||||
byte:
|
||||
one: "Byte"
|
||||
other: "Bytes"
|
||||
kb: "KB"
|
||||
mb: "MB"
|
||||
gb: "GB"
|
||||
tb: "TB"
|
||||
|
||||
|
||||
# Used in array.to_sentence.
|
||||
support:
|
||||
array:
|
||||
sentence_connector: "i"
|
||||
skip_last_comma: false
|
||||
|
||||
activerecord:
|
||||
errors:
|
||||
messages:
|
||||
inclusion: "nije ukljuceno u listu"
|
||||
exclusion: "je rezervirano"
|
||||
invalid: "nije ispravno"
|
||||
confirmation: "ne odgovara za potvrdu"
|
||||
accepted: "mora biti prihvaćen"
|
||||
empty: "ne može biti prazno"
|
||||
blank: "ne može biti razmaka"
|
||||
too_long: "je predug (maximum is {{count}} characters)"
|
||||
too_short: "je prekratak (minimum is {{count}} characters)"
|
||||
wrong_length: "je pogrešne dužine (should be {{count}} characters)"
|
||||
taken: "već je zauzeto"
|
||||
not_a_number: "nije broj"
|
||||
not_a_date: "nije ispravan datum"
|
||||
greater_than: "mora biti veći od {{count}}"
|
||||
greater_than_or_equal_to: "mora biti veći ili jednak {{count}}"
|
||||
equal_to: "mora biti jednak {{count}}"
|
||||
less_than: "mora biti manji od {{count}}"
|
||||
less_than_or_equal_to: "mora bit manji ili jednak{{count}}"
|
||||
odd: "mora biti neparan"
|
||||
even: "mora biti paran"
|
||||
greater_than_start_date: "mora biti veci nego pocetni datum"
|
||||
not_same_project: "ne pripada istom projektu"
|
||||
circular_dependency: "Ovaj relacija stvara kružnu ovisnost"
|
||||
|
||||
actionview_instancetag_blank_option: Molimo odaberite
|
||||
|
||||
general_text_No: 'Ne'
|
||||
general_text_Yes: 'Da'
|
||||
general_text_no: 'ne'
|
||||
general_text_yes: 'da'
|
||||
general_lang_name: 'Hrvatski'
|
||||
general_csv_separator: ','
|
||||
general_csv_decimal_separator: '.'
|
||||
general_csv_encoding: utf8
|
||||
general_pdf_encoding: utf8
|
||||
general_first_day_of_week: '7'
|
||||
|
||||
notice_account_updated: Vaš profil je uspješno promijenjen.
|
||||
notice_account_invalid_creditentials: Neispravno korisničko ime ili zaporka.
|
||||
notice_account_password_updated: Zaporka je uspješno promijenjena.
|
||||
notice_account_wrong_password: Pogrešna zaporka
|
||||
notice_account_register_done: Racun je uspješno napravljen. Da biste aktivirali svoj račun, kliknite na link koji vam je poslan na e-mail.
|
||||
notice_account_unknown_email: Nepoznati korisnik.
|
||||
notice_can_t_change_password: Ovaj račun koristi eksterni izvor prijavljivanja. Nemoguće je promijeniti zaporku.
|
||||
notice_account_lost_email_sent: E-mail s uputama kako bi odabrali novu zaporku je poslan na na vašu e-mail adresu.
|
||||
notice_account_activated: Vaš racun je aktiviran. Možete se prijaviti.
|
||||
notice_successful_create: Uspješno napravljeno.
|
||||
notice_successful_update: Uspješna promjena.
|
||||
notice_successful_delete: Uspješno brisanje.
|
||||
notice_successful_connection: Uspješna veza.
|
||||
notice_file_not_found: Stranica kojoj ste pokušali pristupiti ne postoji ili je uklonjena.
|
||||
notice_locking_conflict: Podataci su ažurirani od strane drugog korisnika.
|
||||
notice_not_authorized: Niste ovlašteni za pristup ovoj stranici.
|
||||
notice_email_sent: E-mail je poslan {{value}}"
|
||||
notice_email_error: Dogodila se pogreška tijekom slanja E-maila ({{value}})"
|
||||
notice_feeds_access_key_reseted: Vaš RSS pristup je resetovan.
|
||||
notice_api_access_key_reseted: Vaš API pristup je resetovan.
|
||||
notice_failed_to_save_issues: "Neuspjelo spremanje {{count}} predmeta na {{total}} odabrane: {{ids}}."
|
||||
notice_no_issue_selected: "Niti jedan predmet nije odabran! Molim, odaberite predmete koje želite urediti."
|
||||
notice_account_pending: "Vaš korisnicki račun je otvoren, čeka odobrenje administratora."
|
||||
notice_default_data_loaded: Konfiguracija je uspješno učitana.
|
||||
notice_unable_delete_version: Nije moguće izbrisati verziju.
|
||||
notice_issue_done_ratios_updated: Issue done ratios updated.
|
||||
|
||||
error_can_t_load_default_data: "Zadanu konfiguracija nije učitana: {{value}}"
|
||||
error_scm_not_found: "Unos i/ili revizija nije pronađen."
|
||||
error_scm_command_failed: "Dogodila se pogreška prilikom pokušaja pristupa: {{value}}"
|
||||
error_scm_annotate: "Ne postoji ili ne može biti obilježen."
|
||||
error_issue_not_found_in_project: 'Nije pronađen ili ne pripada u ovaj projekt'
|
||||
error_no_tracker_in_project: 'No tracker is associated to this project. Please check the Project settings.'
|
||||
error_no_default_issue_status: 'No default issue status is defined. Please check your configuration (Go to "Administration -> Issue statuses").'
|
||||
error_can_not_reopen_issue_on_closed_version: 'An issue assigned to a closed version can not be reopened'
|
||||
error_can_not_archive_project: This project can not be archived
|
||||
error_issue_done_ratios_not_updated: "Issue done ratios not updated."
|
||||
error_workflow_copy_source: 'Please select a source tracker or role'
|
||||
error_workflow_copy_target: 'Please select target tracker(s) and role(s)'
|
||||
|
||||
warning_attachments_not_saved: "{{count}} Datoteka/e nije mogla biti spremljena."
|
||||
|
||||
mail_subject_lost_password: "Vaša {{value}} zaporka"
|
||||
mail_body_lost_password: 'Kako biste promijenili Vašu zaporku slijedite poveznicu:'
|
||||
mail_subject_register: "Aktivacija korisničog računa {{value}}"
|
||||
mail_body_register: 'Da biste aktivirali svoj račun, kliknite na sljedeci link:'
|
||||
mail_body_account_information_external: "Možete koristiti vaš račun {{value}} za prijavu."
|
||||
mail_body_account_information: Vaši korisnički podaci
|
||||
mail_subject_account_activation_request: "{{value}} predmet za aktivaciju korisničkog računa"
|
||||
mail_body_account_activation_request: "Novi korisnik ({{value}}) je registriran. Njegov korisnički račun čeka vaše odobrenje:"
|
||||
mail_subject_reminder: "{{count}} predmet(a) dospijeva sljedećih dana"
|
||||
mail_body_reminder: "{{count}} vama dodijeljen(ih) predmet(a) dospijeva u sljedećih {{days}} dana:"
|
||||
mail_subject_wiki_content_added: "'{{page}}' wiki page has been added"
|
||||
mail_body_wiki_content_added: "The '{{page}}' wiki page has been added by {{author}}."
|
||||
mail_subject_wiki_content_updated: "'{{page}}' wiki page has been updated"
|
||||
mail_body_wiki_content_updated: "The '{{page}}' wiki page has been updated by {{author}}."
|
||||
|
||||
gui_validation_error: 1 pogreška
|
||||
gui_validation_error_plural: "{{count}} pogrešaka"
|
||||
|
||||
field_name: Ime
|
||||
field_description: Opis
|
||||
field_summary: Sažetak
|
||||
field_is_required: Obavezno
|
||||
field_firstname: Ime
|
||||
field_lastname: Prezime
|
||||
field_mail: E-pošta
|
||||
field_filename: Datoteka
|
||||
field_filesize: Veličina
|
||||
field_downloads: Preuzimanja
|
||||
field_author: Autor
|
||||
field_created_on: Napravljen
|
||||
field_updated_on: Promijenjen
|
||||
field_field_format: Format
|
||||
field_is_for_all: Za sve projekte
|
||||
field_possible_values: Moguće vrijednosti
|
||||
field_regexp: Regularni izraz
|
||||
field_min_length: Minimalna dužina
|
||||
field_max_length: Maksimalna dužina
|
||||
field_value: Vrijednost
|
||||
field_category: Kategorija
|
||||
field_title: Naslov
|
||||
field_project: Projekt
|
||||
field_issue: Predmet
|
||||
field_status: Status
|
||||
field_notes: Napomene
|
||||
field_is_closed: Predmet je zatvoren
|
||||
field_is_default: Zadana vrijednost
|
||||
field_tracker: Tracker
|
||||
field_subject: Predmet
|
||||
field_due_date: Do datuma
|
||||
field_assigned_to: Dodijeljeno
|
||||
field_priority: Prioritet
|
||||
field_fixed_version: Verzija
|
||||
field_user: Korisnik
|
||||
field_role: Uloga
|
||||
field_homepage: Naslovnica
|
||||
field_is_public: Javni projekt
|
||||
field_parent: Potprojekt od
|
||||
field_is_in_chlog: Predmeti se prikazuju u dnevniku promjena
|
||||
field_is_in_roadmap: Predmeti se prikazuju u Putokazu
|
||||
field_login: Korisničko ime
|
||||
field_mail_notification: Obavijest putem e-pošte
|
||||
field_admin: Administrator
|
||||
field_last_login_on: Zadnja prijava
|
||||
field_language: Primarni jezik
|
||||
field_effective_date: Datum
|
||||
field_password: Zaporka
|
||||
field_new_password: Nova zaporka
|
||||
field_password_confirmation: Potvrda zaporke
|
||||
field_version: Verzija
|
||||
field_type: Tip
|
||||
field_host: Host
|
||||
field_port: Port
|
||||
field_account: Racun
|
||||
field_base_dn: Osnovni DN
|
||||
field_attr_login: Login atribut
|
||||
field_attr_firstname: Atribut imena
|
||||
field_attr_lastname: Atribut prezimena
|
||||
field_attr_mail: Atribut e-pošte
|
||||
field_onthefly: "Izrada korisnika \"u hodu\""
|
||||
field_start_date: Pocetak
|
||||
field_done_ratio: % Učinjeno
|
||||
field_auth_source: Vrsta prijavljivanja
|
||||
field_hide_mail: Sakrij moju adresu e-pošte
|
||||
field_comments: Komentar
|
||||
field_url: URL
|
||||
field_start_page: Početna stranica
|
||||
field_subproject: Potprojekt
|
||||
field_hours: Sati
|
||||
field_activity: Aktivnost
|
||||
field_spent_on: Datum
|
||||
field_identifier: Identifikator
|
||||
field_is_filter: Korišteno kao filtar
|
||||
field_issue_to_id: Povezano s predmetom
|
||||
field_delay: Odgodeno
|
||||
field_assignable: Predmeti mogu biti dodijeljeni ovoj ulozi
|
||||
field_redirect_existing_links: Preusmjeravanje postojećih linkova
|
||||
field_estimated_hours: Procijenjeno vrijeme
|
||||
field_column_names: Stupci
|
||||
field_time_zone: Vremenska zona
|
||||
field_searchable: Pretraživo
|
||||
field_default_value: Zadana vrijednost
|
||||
field_comments_sorting: Prikaz komentara
|
||||
field_parent_title: Parent page
|
||||
field_editable: Editable
|
||||
field_watcher: Watcher
|
||||
field_identity_url: OpenID URL
|
||||
field_content: Content
|
||||
field_group_by: Group results by
|
||||
|
||||
setting_app_title: Naziv aplikacije
|
||||
setting_app_subtitle: Podnaslov aplikacije
|
||||
setting_welcome_text: Tekst dobrodošlice
|
||||
setting_default_language: Zadani jezik
|
||||
setting_login_required: Potrebna je prijava
|
||||
setting_self_registration: Samoregistracija je dozvoljena
|
||||
setting_attachment_max_size: Maksimalna veličina privitka
|
||||
setting_issues_export_limit: Ograničenje izvoza predmeta
|
||||
setting_mail_from: Izvorna adresa e-pošte
|
||||
setting_bcc_recipients: Blind carbon copy primatelja (bcc)
|
||||
setting_plain_text_mail: obični tekst pošte (bez HTML-a)
|
||||
setting_host_name: Naziv domaćina (host)
|
||||
setting_text_formatting: Oblikovanje teksta
|
||||
setting_wiki_compression: Sažimanje
|
||||
setting_feeds_limit: Ogranicenje unosa sadržaja
|
||||
setting_default_projects_public: Novi projekti su javni po defaultu
|
||||
setting_autofetch_changesets: Autofetch commits
|
||||
setting_sys_api_enabled: Omogući WS za upravljanje skladištem
|
||||
setting_commit_ref_keywords: Referentne ključne riječi
|
||||
setting_commit_fix_keywords: Fiksne ključne riječi
|
||||
setting_autologin: Automatska prijava
|
||||
setting_date_format: Format datuma
|
||||
setting_time_format: Format vremena
|
||||
setting_cross_project_issue_relations: Dozvoli povezivanje predmeta izmedu različitih projekata
|
||||
setting_issue_list_default_columns: Stupci prikazani na listi predmeta
|
||||
setting_repositories_encodings: Kodna stranica
|
||||
setting_commit_logs_encoding: Commit messages encoding
|
||||
setting_emails_footer: Zaglavlje e-pošte
|
||||
setting_protocol: Protokol
|
||||
setting_per_page_options: Objekata po stranici opcija
|
||||
setting_user_format: Oblik prikaza korisnika
|
||||
setting_activity_days_default: Dani prikazane aktivnosti na projektu
|
||||
setting_display_subprojects_issues: Prikaz predmeta potprojekta na glavnom projektu po defaultu
|
||||
setting_enabled_scm: Omogućen SCM
|
||||
setting_mail_handler_body_delimiters: "Truncate emails after one of these lines"
|
||||
setting_mail_handler_api_enabled: Omoguci WS za dolaznu e-poštu
|
||||
setting_mail_handler_api_key: API ključ
|
||||
setting_sequential_project_identifiers: Generiraj slijedne identifikatore projekta
|
||||
setting_gravatar_enabled: Koristi Gravatar korisničke ikone
|
||||
setting_gravatar_default: Default Gravatar image
|
||||
setting_diff_max_lines_displayed: Maksimalni broj diff linija za prikazati
|
||||
setting_file_max_size_displayed: Max size of text files displayed inline
|
||||
setting_repository_log_display_limit: Maximum number of revisions displayed on file log
|
||||
setting_openid: Allow OpenID login and registration
|
||||
setting_password_min_length: Minimum password length
|
||||
setting_new_project_user_role_id: Role given to a non-admin user who creates a project
|
||||
setting_default_projects_modules: Default enabled modules for new projects
|
||||
setting_issue_done_ratio: Calculate the issue done ratio with
|
||||
setting_issue_done_ratio_issue_field: Use the issue field
|
||||
setting_issue_done_ratio_issue_status: Use the issue status
|
||||
setting_start_of_week: Start calendars on
|
||||
setting_rest_api_enabled: Enable REST web service
|
||||
|
||||
permission_add_project: Dodaj projekt
|
||||
permission_add_subprojects: Dodaj potprojekt
|
||||
permission_edit_project: Uredi projekt
|
||||
permission_select_project_modules: Odaberi projektne module
|
||||
permission_manage_members: Upravljaj članovima
|
||||
permission_manage_versions: Upravljaj verzijama
|
||||
permission_manage_categories: Upravljaj kategorijama predmeta
|
||||
permission_view_issues: Pregledaj zahtjeve
|
||||
permission_add_issues: Dodaj predmete
|
||||
permission_edit_issues: Uredi predmete
|
||||
permission_manage_issue_relations: Upravljaj relacijama predmeta
|
||||
permission_add_issue_notes: Dodaj bilješke
|
||||
permission_edit_issue_notes: Uredi bilješke
|
||||
permission_edit_own_issue_notes: Uredi vlastite bilješke
|
||||
permission_move_issues: Premjesti predmete
|
||||
permission_delete_issues: Brisanje predmeta
|
||||
permission_manage_public_queries: Upravljaj javnim upitima
|
||||
permission_save_queries: Spremi upite
|
||||
permission_view_gantt: Pregledaj gantt grafikon
|
||||
permission_view_calendar: Pregledaj kalendar
|
||||
permission_view_issue_watchers: Pregledaj listu promatraca
|
||||
permission_add_issue_watchers: Dodaj promatrača
|
||||
permission_delete_issue_watchers: Delete watchers
|
||||
permission_log_time: Dnevnik utrošenog vremena
|
||||
permission_view_time_entries: Pregledaj utrošeno vrijeme
|
||||
permission_edit_time_entries: Uredi vremenske dnevnike
|
||||
permission_edit_own_time_entries: Edit own time logs
|
||||
permission_manage_news: Upravljaj novostima
|
||||
permission_comment_news: Komentiraj novosti
|
||||
permission_manage_documents: Upravljaj dokumentima
|
||||
permission_view_documents: Pregledaj dokumente
|
||||
permission_manage_files: Upravljaj datotekama
|
||||
permission_view_files: Pregledaj datoteke
|
||||
permission_manage_wiki: Upravljaj wikijem
|
||||
permission_rename_wiki_pages: Promijeni ime wiki stranicama
|
||||
permission_delete_wiki_pages: Obriši wiki stranice
|
||||
permission_view_wiki_pages: Pregledaj wiki
|
||||
permission_view_wiki_edits: Pregledaj povijest wikija
|
||||
permission_edit_wiki_pages: Uredi wiki stranice
|
||||
permission_delete_wiki_pages_attachments: Obriši privitke
|
||||
permission_protect_wiki_pages: Zaštiti wiki stranice
|
||||
permission_manage_repository: Upravljaj skladištem
|
||||
permission_browse_repository: Browse repository
|
||||
permission_view_changesets: View changesets
|
||||
permission_commit_access: Mogućnost pohranjivanja
|
||||
permission_manage_boards: Manage boards
|
||||
permission_view_messages: Pregledaj poruke
|
||||
permission_add_messages: Objavi poruke
|
||||
permission_edit_messages: Uredi poruke
|
||||
permission_edit_own_messages: Uredi vlastite poruke
|
||||
permission_delete_messages: Obriši poruke
|
||||
permission_delete_own_messages: Obriši vlastite poruke
|
||||
|
||||
project_module_issue_tracking: Praćenje predmeta
|
||||
project_module_time_tracking: Praćenje vremena
|
||||
project_module_news: Novosti
|
||||
project_module_documents: Dokumenti
|
||||
project_module_files: Datoteke
|
||||
project_module_wiki: Wiki
|
||||
project_module_repository: Skladište
|
||||
project_module_boards: Boards
|
||||
|
||||
label_user: Korisnik
|
||||
label_user_plural: Korisnici
|
||||
label_user_new: Novi korisnik
|
||||
label_user_anonymous: Anonymous
|
||||
label_project: Projekt
|
||||
label_project_new: Novi projekt
|
||||
label_project_plural: Projekti
|
||||
label_x_projects:
|
||||
zero: no projects
|
||||
one: 1 project
|
||||
other: "{{count}} projects"
|
||||
label_project_all: Svi Projekti
|
||||
label_project_latest: Najnoviji projekt
|
||||
label_issue: Predmet
|
||||
label_issue_new: Novi predmet
|
||||
label_issue_plural: Predmeti
|
||||
label_issue_view_all: Pregled svih predmeta
|
||||
label_issues_by: "Predmeti od {{value}}"
|
||||
label_issue_added: Predmet dodan
|
||||
label_issue_updated: Predmet promijenjen
|
||||
label_document: Dokument
|
||||
label_document_new: Novi dokument
|
||||
label_document_plural: Dokumenti
|
||||
label_document_added: Dokument dodan
|
||||
label_role: Uloga
|
||||
label_role_plural: Uloge
|
||||
label_role_new: Nova uloga
|
||||
label_role_and_permissions: Uloge i ovlasti
|
||||
label_member: Član
|
||||
label_member_new: Novi član
|
||||
label_member_plural: Članovi
|
||||
label_tracker: Vrsta
|
||||
label_tracker_plural: Vrste predmeta
|
||||
label_tracker_new: Nova vrsta
|
||||
label_workflow: Tijek rada
|
||||
label_issue_status: Status predmeta
|
||||
label_issue_status_plural: Status predmeta
|
||||
label_issue_status_new: Novi status
|
||||
label_issue_category: Kategorija predmeta
|
||||
label_issue_category_plural: Kategorije predmeta
|
||||
label_issue_category_new: Nova kategorija
|
||||
label_custom_field: Korisnički definirano polje
|
||||
label_custom_field_plural: Korisnički definirana polja
|
||||
label_custom_field_new: Novo korisnički definirano polje
|
||||
label_enumerations: Pobrojenice
|
||||
label_enumeration_new: Nova vrijednost
|
||||
label_information: Informacija
|
||||
label_information_plural: Informacije
|
||||
label_please_login: Molim prijavite se
|
||||
label_register: Registracija
|
||||
label_login_with_open_id_option: or login with OpenID
|
||||
label_password_lost: Izgubljena zaporka
|
||||
label_home: Početna stranica
|
||||
label_my_page: Moja stranica
|
||||
label_my_account: Moj profil
|
||||
label_my_projects: Moji projekti
|
||||
label_administration: Administracija
|
||||
label_login: Korisnik
|
||||
label_logout: Odjava
|
||||
label_help: Pomoć
|
||||
label_reported_issues: Prijavljeni predmeti
|
||||
label_assigned_to_me_issues: Moji predmeti
|
||||
label_last_login: Last connection
|
||||
label_registered_on: Registrirano
|
||||
label_activity: Aktivnosti
|
||||
label_overall_activity: Aktivnosti
|
||||
label_user_activity: "{{value}} ova/ina aktivnost"
|
||||
label_new: Novi
|
||||
label_logged_as: Prijavljeni ste kao
|
||||
label_environment: Okolina
|
||||
label_authentication: Autentikacija
|
||||
label_auth_source: Način prijavljivanja
|
||||
label_auth_source_new: Novi način prijavljivanja
|
||||
label_auth_source_plural: Načini prijavljivanja
|
||||
label_subproject_plural: Potprojekti
|
||||
label_subproject_new: Novi potprojekt
|
||||
label_and_its_subprojects: "{{value}} i njegovi potprojekti"
|
||||
label_min_max_length: Min - Maks veličina
|
||||
label_list: Liste
|
||||
label_date: Datum
|
||||
label_integer: Integer
|
||||
label_float: Float
|
||||
label_boolean: Boolean
|
||||
label_string: Text
|
||||
label_text: Long text
|
||||
label_attribute: Atribut
|
||||
label_attribute_plural: Atributi
|
||||
label_download: "{{count}} Download"
|
||||
label_download_plural: "{{count}} Downloads"
|
||||
label_no_data: Nema podataka za prikaz
|
||||
label_change_status: Promjena statusa
|
||||
label_history: Povijest
|
||||
label_attachment: Datoteka
|
||||
label_attachment_new: Nova datoteka
|
||||
label_attachment_delete: Brisanje datoteke
|
||||
label_attachment_plural: Datoteke
|
||||
label_file_added: Datoteka dodana
|
||||
label_report: Izvješće
|
||||
label_report_plural: Izvješća
|
||||
label_news: Novosti
|
||||
label_news_new: Dodaj novost
|
||||
label_news_plural: Novosti
|
||||
label_news_latest: Novosti
|
||||
label_news_view_all: Pregled svih novosti
|
||||
label_news_added: Novosti dodane
|
||||
label_change_log: Dnevnik promjena
|
||||
label_settings: Postavke
|
||||
label_overview: Pregled
|
||||
label_version: Verzija
|
||||
label_version_new: Nova verzija
|
||||
label_version_plural: Verzije
|
||||
label_confirmation: Potvrda
|
||||
label_export_to: 'Izvoz u:'
|
||||
label_read: Čitaj...
|
||||
label_public_projects: Javni projekti
|
||||
label_open_issues: Otvoren
|
||||
label_open_issues_plural: Otvoreno
|
||||
label_closed_issues: Zatvoren
|
||||
label_closed_issues_plural: Zatvoreno
|
||||
label_x_open_issues_abbr_on_total:
|
||||
zero: 0 open / {{total}}
|
||||
one: 1 open / {{total}}
|
||||
other: "{{count}} open / {{total}}"
|
||||
label_x_open_issues_abbr:
|
||||
zero: 0 open
|
||||
one: 1 open
|
||||
other: "{{count}} open"
|
||||
label_x_closed_issues_abbr:
|
||||
zero: 0 closed
|
||||
one: 1 closed
|
||||
other: "{{count}} closed"
|
||||
label_total: Ukupno
|
||||
label_permissions: Dozvole
|
||||
label_current_status: Trenutni status
|
||||
label_new_statuses_allowed: Novi status je dozvoljen
|
||||
label_all: Svi
|
||||
label_none: nema
|
||||
label_nobody: nitko
|
||||
label_next: Naredni
|
||||
label_previous: Prethodni
|
||||
label_used_by: Korišten od
|
||||
label_details: Detalji
|
||||
label_add_note: Dodaj napomenu
|
||||
label_per_page: Po stranici
|
||||
label_calendar: Kalendar
|
||||
label_months_from: Mjeseci od
|
||||
label_gantt: Gantt
|
||||
label_internal: Interno
|
||||
label_last_changes: "Posljednjih {{count}} promjena"
|
||||
label_change_view_all: Prikaz svih promjena
|
||||
label_personalize_page: Prilagodite ovu stranicu
|
||||
label_comment: Komentar
|
||||
label_comment_plural: Komentari
|
||||
label_x_comments:
|
||||
zero: no comments
|
||||
one: 1 comment
|
||||
other: "{{count}} comments"
|
||||
label_comment_add: Dodaj komentar
|
||||
label_comment_added: Komentar dodan
|
||||
label_comment_delete: Brisanje komentara
|
||||
label_query: Korisnički upit
|
||||
label_query_plural: Korisnički upiti
|
||||
label_query_new: Novi upit
|
||||
label_filter_add: Dodaj filtar
|
||||
label_filter_plural: Filtri
|
||||
label_equals: je
|
||||
label_not_equals: nije
|
||||
label_in_less_than: za manje od
|
||||
label_in_more_than: za više od
|
||||
label_greater_or_equal: '>='
|
||||
label_less_or_equal: '<='
|
||||
label_in: za točno
|
||||
label_today: danas
|
||||
label_all_time: sva vremena
|
||||
label_yesterday: jučer
|
||||
label_this_week: ovog tjedna
|
||||
label_last_week: prošlog tjedna
|
||||
label_last_n_days: "zadnjih {{count}} dana"
|
||||
label_this_month: ovog mjeseca
|
||||
label_last_month: prošlog mjeseca
|
||||
label_this_year: ove godine
|
||||
label_date_range: vremenski raspon
|
||||
label_less_than_ago: manje od
|
||||
label_more_than_ago: više od
|
||||
label_ago: prije
|
||||
label_contains: Sadrži
|
||||
label_not_contains: ne sadrži
|
||||
label_day_plural: dana
|
||||
label_repository: Skladište
|
||||
label_repository_plural: Skladišta
|
||||
label_browse: Pregled
|
||||
label_modification: "{{count}} promjena"
|
||||
label_modification_plural: "{{count}} promjena"
|
||||
label_branch: Branch
|
||||
label_tag: Tag
|
||||
label_revision: Revizija
|
||||
label_revision_plural: Revizije
|
||||
label_revision_id: "Revision {{value}}"
|
||||
label_associated_revisions: Dodijeljene revizije
|
||||
label_added: dodano
|
||||
label_modified: promijenjen
|
||||
label_copied: kopirano
|
||||
label_renamed: preimenovano
|
||||
label_deleted: obrisano
|
||||
label_latest_revision: Posljednja revizija
|
||||
label_latest_revision_plural: Posljednje revizije
|
||||
label_view_revisions: Pregled revizija
|
||||
label_view_all_revisions: View all revisions
|
||||
label_max_size: Maksimalna veličina
|
||||
label_sort_highest: Premjesti na vrh
|
||||
label_sort_higher: Premjesti prema gore
|
||||
label_sort_lower: Premjesti prema dolje
|
||||
label_sort_lowest: Premjesti na dno
|
||||
label_roadmap: Putokaz
|
||||
label_roadmap_due_in: "Završava se za {{value}}"
|
||||
label_roadmap_overdue: "{{value}} kasni"
|
||||
label_roadmap_no_issues: Nema predmeta za ovu verziju
|
||||
label_search: Traži
|
||||
label_result_plural: Rezultati
|
||||
label_all_words: Sve riječi
|
||||
label_wiki: Wiki
|
||||
label_wiki_edit: Wiki promjena
|
||||
label_wiki_edit_plural: Wiki promjene
|
||||
label_wiki_page: Wiki stranica
|
||||
label_wiki_page_plural: Wiki stranice
|
||||
label_index_by_title: Indeks po naslovima
|
||||
label_index_by_date: Indeks po datumu
|
||||
label_current_version: Trenutna verzija
|
||||
label_preview: Brzi pregled
|
||||
label_feed_plural: Feeds
|
||||
label_changes_details: Detalji svih promjena
|
||||
label_issue_tracking: Praćenje predmeta
|
||||
label_spent_time: Utrošeno vrijeme
|
||||
label_f_hour: "{{value}} sata"
|
||||
label_f_hour_plural: "{{value}} sati"
|
||||
label_time_tracking: Praćenje vremena
|
||||
label_change_plural: Promjene
|
||||
label_statistics: Statistika
|
||||
label_commits_per_month: Pohrana po mjesecu
|
||||
label_commits_per_author: Pohrana po autoru
|
||||
label_view_diff: Pregled razlika
|
||||
label_diff_inline: uvučeno
|
||||
label_diff_side_by_side: paralelno
|
||||
label_options: Opcije
|
||||
label_copy_workflow_from: Kopiraj tijek rada od
|
||||
label_permissions_report: Izvješće o dozvolama
|
||||
label_watched_issues: Praćeni predmeti
|
||||
label_related_issues: Povezani predmeti
|
||||
label_applied_status: Primijenjen status
|
||||
label_loading: Učitavam...
|
||||
label_relation_new: Nova relacija
|
||||
label_relation_delete: Brisanje relacije
|
||||
label_relates_to: u relaciji sa
|
||||
label_duplicates: Duplira
|
||||
label_duplicated_by: ponovljen kao
|
||||
label_blocks: blokira
|
||||
label_blocked_by: blokiran od strane
|
||||
label_precedes: prethodi
|
||||
label_follows: slijedi
|
||||
label_end_to_start: od kraja do početka
|
||||
label_end_to_end: od kraja do kraja
|
||||
label_end_to_start: od kraja do početka
|
||||
label_end_to_end: od kraja do kraja
|
||||
label_stay_logged_in: Ostanite prijavljeni
|
||||
label_disabled: Isključen
|
||||
label_show_completed_versions: Prikaži završene verzije
|
||||
label_me: ja
|
||||
label_board: Forum
|
||||
label_board_new: Novi forum
|
||||
label_board_plural: Forumi
|
||||
label_topic_plural: Teme
|
||||
label_message_plural: Poruke
|
||||
label_message_last: Posljednja poruka
|
||||
label_message_new: Nova poruka
|
||||
label_message_posted: Poruka dodana
|
||||
label_reply_plural: Odgovori
|
||||
label_send_information: Pošalji korisniku informaciju o profilu
|
||||
label_year: Godina
|
||||
label_month: Mjesec
|
||||
label_week: Tjedan
|
||||
label_date_from: Od
|
||||
label_date_to: Do
|
||||
label_language_based: Zasnovano na jeziku
|
||||
label_sort_by: "Uredi po {{value}}"
|
||||
label_send_test_email: Pošalji testno E-pismo
|
||||
label_feeds_access_key: RSS access key
|
||||
label_missing_feeds_access_key: Missing a RSS access key
|
||||
label_feeds_access_key_created_on: "RSS kljuc za pristup je napravljen prije {{value}}"
|
||||
label_module_plural: Moduli
|
||||
label_added_time_by: "Promijenio {{author}} prije {{age}}"
|
||||
label_updated_time_by: "Dodao/la {{author}} prije {{age}}"
|
||||
label_updated_time: "Promijenjeno prije {{value}}"
|
||||
label_jump_to_a_project: Prebaci se na projekt...
|
||||
label_file_plural: Datoteke
|
||||
label_changeset_plural: Promjene
|
||||
label_default_columns: Zadani stupci
|
||||
label_no_change_option: (Bez promjene)
|
||||
label_bulk_edit_selected_issues: Zajednička promjena izabranih predmeta
|
||||
label_theme: Tema
|
||||
label_default: Zadana
|
||||
label_search_titles_only: Pretraživanje samo naslova
|
||||
label_user_mail_option_all: "Za bilo koji događaj na svim mojim projektima"
|
||||
label_user_mail_option_selected: "Za bilo koji događaj samo za izabrane projekte..."
|
||||
label_user_mail_option_none: "Samo za stvari koje pratim ili u kojima sudjelujem"
|
||||
label_user_mail_no_self_notified: "Ne želim primati obavijesti o promjenama koje sam napravim"
|
||||
label_registration_activation_by_email: aktivacija putem e-pošte
|
||||
label_registration_manual_activation: ručna aktivacija
|
||||
label_registration_automatic_activation: automatska aktivacija
|
||||
label_display_per_page: "Po stranici: {{value}}"
|
||||
label_age: Starost
|
||||
label_change_properties: Promijeni svojstva
|
||||
label_general: Općenito
|
||||
label_more: Još
|
||||
label_scm: SCM
|
||||
label_plugins: Plugins
|
||||
label_ldap_authentication: LDAP autentikacija
|
||||
label_downloads_abbr: D/L
|
||||
label_optional_description: Opcije
|
||||
label_add_another_file: Dodaj još jednu datoteku
|
||||
label_preferences: Preferences
|
||||
label_chronological_order: U kronološkom redoslijedu
|
||||
label_reverse_chronological_order: U obrnutom kronološkom redoslijedu
|
||||
label_planning: Planiranje
|
||||
label_incoming_emails: Dolazne poruke e-pošte
|
||||
label_generate_key: Generiraj ključ
|
||||
label_issue_watchers: Promatrači
|
||||
label_example: Primjer
|
||||
label_display: Display
|
||||
label_sort: Sort
|
||||
label_ascending: Ascending
|
||||
label_descending: Descending
|
||||
label_date_from_to: From {{start}} to {{end}}
|
||||
label_wiki_content_added: Wiki page added
|
||||
label_wiki_content_updated: Wiki page updated
|
||||
label_group: Group
|
||||
label_group_plural: Grupe
|
||||
label_group_new: Nova grupa
|
||||
label_time_entry_plural: Spent time
|
||||
label_version_sharing_none: Not shared
|
||||
label_version_sharing_descendants: With subprojects
|
||||
label_version_sharing_hierarchy: With project hierarchy
|
||||
label_version_sharing_tree: With project tree
|
||||
label_version_sharing_system: With all projects
|
||||
label_update_issue_done_ratios: Update issue done ratios
|
||||
label_copy_source: Source
|
||||
label_copy_target: Target
|
||||
label_copy_same_as_target: Same as target
|
||||
label_display_used_statuses_only: Only display statuses that are used by this tracker
|
||||
label_api_access_key: API access key
|
||||
label_missing_api_access_key: Missing an API access key
|
||||
label_api_access_key_created_on: "API access key created {{value}} ago"
|
||||
|
||||
button_login: Prijavi
|
||||
button_submit: Pošalji
|
||||
button_save: Spremi
|
||||
button_check_all: Označi sve
|
||||
button_uncheck_all: Isključi sve
|
||||
button_delete: Obriši
|
||||
button_create: Napravi
|
||||
button_create_and_continue: Napravi i nastavi
|
||||
button_test: Test
|
||||
button_edit: Uredi
|
||||
button_add: Dodaj
|
||||
button_change: Promijeni
|
||||
button_apply: Primijeni
|
||||
button_clear: Ukloni
|
||||
button_lock: Zaključaj
|
||||
button_unlock: Otključaj
|
||||
button_download: Preuzmi
|
||||
button_list: Spisak
|
||||
button_view: Pregled
|
||||
button_move: Premjesti
|
||||
button_move_and_follow: Move and follow
|
||||
button_back: Nazad
|
||||
button_cancel: Odustani
|
||||
button_activate: Aktiviraj
|
||||
button_sort: Redoslijed
|
||||
button_log_time: Zapiši vrijeme
|
||||
button_rollback: Izvrši rollback na ovu verziju
|
||||
button_watch: Prati
|
||||
button_unwatch: Prekini pracenje
|
||||
button_reply: Odgovori
|
||||
button_archive: Arhiviraj
|
||||
button_rollback: Dearhiviraj
|
||||
button_reset: Poništi
|
||||
button_rename: Promijeni ime
|
||||
button_change_password: Promjena zaporke
|
||||
button_copy: Kopiraj
|
||||
button_copy_and_follow: Copy and follow
|
||||
button_annotate: Annotate
|
||||
button_update: Promijeni
|
||||
button_configure: Konfiguracija
|
||||
button_quote: Navod
|
||||
button_duplicate: Duplicate
|
||||
button_show: Show
|
||||
|
||||
status_active: aktivan
|
||||
status_registered: Registriran
|
||||
status_locked: zaključan
|
||||
|
||||
version_status_open: open
|
||||
version_status_locked: locked
|
||||
version_status_closed: closed
|
||||
|
||||
field_active: Active
|
||||
|
||||
text_select_mail_notifications: Izbor akcija za koje će biti poslana obavijest e-poštom.
|
||||
text_regexp_info: eg. ^[A-Z0-9]+$
|
||||
text_min_max_length_info: 0 znači bez ograničenja
|
||||
text_project_destroy_confirmation: Da li ste sigurni da želite izbrisati ovaj projekt i sve njegove podatke?
|
||||
text_subprojects_destroy_warning: "Njegov(i) potprojekt(i): {{value}} će također biti obrisan."
|
||||
text_workflow_edit: Select a role and a tracker to edit the workflow
|
||||
text_are_you_sure: Da li ste sigurni?
|
||||
text_journal_changed: "{{label}} promijenjen iz {{old}} u {{new}}"
|
||||
text_journal_set_to: "{{label}} postavi na {{value}}"
|
||||
text_journal_deleted: "{{label}} izbrisano ({{old}})"
|
||||
text_journal_added: "{{label}} {{value}} added"
|
||||
text_tip_task_begin_day: Zadaci koji počinju ovog dana
|
||||
text_tip_task_end_day: zadaci koji se završavaju ovog dana
|
||||
text_tip_task_begin_end_day: Zadaci koji počinju i završavaju se ovog dana
|
||||
text_project_identifier_info: 'mala slova (a-z), brojevi i crtice su dozvoljeni.<br />Jednom snimljen identifikator se ne može mijenjati!'
|
||||
text_caracters_maximum: "Najviše {{count}} znakova."
|
||||
text_caracters_minimum: "Mora biti dugačko najmanje {{count}} znakova."
|
||||
text_length_between: "Dužina izmedu {{min}} i {{max}} znakova."
|
||||
text_tracker_no_workflow: Tijek rada nije definiran za ovaj tracker
|
||||
text_unallowed_characters: Nedozvoljeni znakovi
|
||||
text_comma_separated: Višestruke vrijednosti su dozvoljene (razdvojene zarezom).
|
||||
text_issues_ref_in_commit_messages: Referencing and fixing issues in commit messages
|
||||
text_tracker_no_workflow: No workflow defined for this tracker
|
||||
text_issues_ref_in_commit_messages: Referencing and fixing issues in commit messages
|
||||
text_issue_added: "Predmet {{id}} je prijavljen (prijavio {{author}})."
|
||||
text_issue_updated: "Predmet {{id}} je promijenjen {{author}})."
|
||||
text_wiki_destroy_confirmation: Da li ste sigurni da želite izbrisati ovaj wiki i njegov sadržaj?
|
||||
text_issue_category_destroy_question: "Neke predmeti ({{count}}) su dodijeljeni ovoj kategoriji. Što želite uraditi?"
|
||||
text_issue_category_destroy_assignments: Ukloni dodjeljivanje kategorija
|
||||
text_issue_category_reassign_to: Ponovo dodijeli predmete ovoj kategoriji
|
||||
text_user_mail_option: "Za neizabrane projekte, primit ćete obavjesti samo o stvarima koje pratite ili u kojima sudjelujete (npr. predmete koje ste vi napravili ili koje su vama dodjeljeni)."
|
||||
text_no_configuration_data: "Roles, trackers, issue statuses and workflow have not been configured yet.\nIt is highly recommended to load the default configuration. You will be able to modify it once loaded."
|
||||
text_load_default_configuration: Učitaj početnu konfiguraciju
|
||||
text_status_changed_by_changeset: "Applied in changeset {{value}}."
|
||||
text_issues_destroy_confirmation: 'Jeste li sigurni da želite obrisati izabrani/e predmet(e)?'
|
||||
text_select_project_modules: 'Odaberite module koji će biti omogućeni za ovaj projekt:'
|
||||
text_default_administrator_account_changed: Default administrator account changed
|
||||
text_file_repository_writable: Dozvoljeno pisanje u direktorij za privitke
|
||||
text_plugin_assets_writable: Plugin assets directory writable
|
||||
text_rmagick_available: RMagick dostupan (nije obavezno)
|
||||
text_destroy_time_entries_question: "{{hours}} sati je prijavljeno za predmete koje želite obrisati. Što ćete učiniti?"
|
||||
text_destroy_time_entries: Obriši prijavljene sate
|
||||
text_assign_time_entries_to_project: Pridruži prijavljene sate projektu
|
||||
text_reassign_time_entries: 'Premjesti prijavljene sate ovom predmetu:'
|
||||
text_user_wrote: "{{value}} je napisao/la:"
|
||||
text_enumeration_destroy_question: "{{count}} objekata je pridruženo toj vrijednosti."
|
||||
text_enumeration_category_reassign_to: 'Premjesti ih ovoj vrijednosti:'
|
||||
text_email_delivery_not_configured: "Email delivery is not configured, and notifications are disabled.\nConfigure your SMTP server in config/email.yml and restart the application to enable them."
|
||||
text_repository_usernames_mapping: "Select or update the Redmine user mapped to each username found in the repository log.\nUsers with the same Redmine and repository username or email are automatically mapped."
|
||||
text_diff_truncated: '... Ovaj diff je odrezan zato što prelazi maksimalnu veličinu koja može biti prikazana.'
|
||||
text_custom_field_possible_values_info: 'One line for each value'
|
||||
text_wiki_page_destroy_question: "This page has {{descendants}} child page(s) and descendant(s). What do you want to do?"
|
||||
text_wiki_page_nullify_children: "Keep child pages as root pages"
|
||||
text_wiki_page_destroy_children: "Delete child pages and all their descendants"
|
||||
text_wiki_page_reassign_children: "Reassign child pages to this parent page"
|
||||
default_role_manager: Upravitelj
|
||||
default_role_developper: Razvojni inženjer
|
||||
default_role_reporter: Korisnik
|
||||
default_tracker_bug: Pogreška
|
||||
default_tracker_feature: Funkcionalnost
|
||||
default_tracker_support: Podrška
|
||||
default_issue_status_new: Novo
|
||||
default_issue_status_assigned: Dodijeljeno
|
||||
default_issue_status_resolved: Riješeno
|
||||
default_issue_status_feedback: Povratna informacija
|
||||
default_issue_status_closed: Zatvoreno
|
||||
default_issue_status_rejected: Odbaceno
|
||||
default_doc_category_user: Korisnička dokumentacija
|
||||
default_doc_category_tech: Tehnička dokumentacija
|
||||
default_priority_low: Nizak
|
||||
default_priority_normal: Redovan
|
||||
default_priority_high: Visok
|
||||
default_priority_urgent: Hitan
|
||||
default_priority_immediate: Odmah
|
||||
default_activity_design: Dizajn
|
||||
default_activity_development: Razvoj
|
||||
enumeration_issue_priorities: Prioriteti predmeta
|
||||
enumeration_doc_categories: Kategorija dokumenata
|
||||
enumeration_activities: Aktivnosti (po vremenu)
|
||||
enumeration_system_activity: System Activity
|
||||
field_sharing: Sharing
|
||||
text_line_separated: Multiple values allowed (one line for each value).
|
||||
label_close_versions: Close completed versions
|
||||
button_unarchive: Unarchive
|
||||
label_start_to_end: start to end
|
||||
label_start_to_start: start to start
|
||||
field_issue_to: Related issue
|
||||
default_issue_status_in_progress: In Progress
|
||||
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_board_sticky: Sticky
|
||||
label_board_locked: Locked
|
||||
permission_export_wiki_pages: Export wiki pages
|
||||
setting_cache_formatted_text: Cache formatted text
|
||||
permission_manage_project_activities: Manage project activities
|
||||
label_project_copy_notifications: Send email notifications during the project copy
|
||||
@@ -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,13 @@
|
||||
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
|
||||
label_board_sticky: Sticky
|
||||
label_board_locked: Locked
|
||||
permission_export_wiki_pages: Export wiki pages
|
||||
setting_cache_formatted_text: Cache formatted text
|
||||
permission_manage_project_activities: Manage project activities
|
||||
label_project_copy_notifications: Send email notifications during the project copy
|
||||
|
||||
@@ -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,13 @@ 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
|
||||
label_board_sticky: Sticky
|
||||
label_board_locked: Locked
|
||||
permission_export_wiki_pages: Export wiki pages
|
||||
setting_cache_formatted_text: Cache formatted text
|
||||
permission_manage_project_activities: Manage project activities
|
||||
label_project_copy_notifications: Send email notifications during the project copy
|
||||
|
||||
@@ -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,13 @@ 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
|
||||
label_board_sticky: Sticky
|
||||
label_board_locked: Locked
|
||||
permission_export_wiki_pages: Export wiki pages
|
||||
setting_cache_formatted_text: Cache formatted text
|
||||
permission_manage_project_activities: Manage project activities
|
||||
label_project_copy_notifications: Send email notifications during the project copy
|
||||
|
||||
@@ -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: "ほぼ1年"
|
||||
other: "ほぼ{{count}}年"
|
||||
|
||||
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: アプリケーションのサブタイトル
|
||||
@@ -310,11 +321,12 @@ ja:
|
||||
setting_plain_text_mail: プレインテキストのみ(HTMLなし)
|
||||
setting_host_name: ホスト名
|
||||
setting_text_formatting: テキストの書式
|
||||
setting_cache_formatted_text: 書式化されたテキストをキャッシュする
|
||||
setting_wiki_compression: Wiki履歴を圧縮する
|
||||
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 +343,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 +382,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: 変更履歴の編集
|
||||
@@ -376,6 +399,7 @@ ja:
|
||||
permission_rename_wiki_pages: Wikiページ名の変更
|
||||
permission_delete_wiki_pages: Wikiページの削除
|
||||
permission_view_wiki_pages: Wikiの閲覧
|
||||
permission_export_wiki_pages: Wikiページを他の形式に出力
|
||||
permission_view_wiki_edits: Wiki履歴の閲覧
|
||||
permission_edit_wiki_pages: Wikiページの編集
|
||||
permission_delete_wiki_pages_attachments: 添付ファイルの削除
|
||||
@@ -404,19 +428,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 +479,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 +496,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 +512,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 +536,26 @@ ja:
|
||||
label_version_new: 新しいバージョン
|
||||
label_version_plural: バージョン
|
||||
label_confirmation: 確認
|
||||
label_export_to: 他の形式に出力
|
||||
label_close_versions: 完了したバージョンを終了にする
|
||||
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 +570,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: コメント削除
|
||||
@@ -565,23 +592,23 @@ ja:
|
||||
label_filter_plural: フィルタ
|
||||
label_equals: 等しい
|
||||
label_not_equals: 等しくない
|
||||
label_in_less_than: 残日数がこれより少ない
|
||||
label_in_more_than: 残日数がこれより多い
|
||||
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 +616,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 +641,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 +657,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 +671,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: 関連の削除
|
||||
@@ -667,6 +695,8 @@ ja:
|
||||
label_board: フォーラム
|
||||
label_board_new: 新しいフォーラム
|
||||
label_board_plural: フォーラム
|
||||
label_board_sticky: スティッキー
|
||||
label_board_locked: ロック
|
||||
label_topic_plural: トピック
|
||||
label_message_plural: メッセージ
|
||||
label_message_last: 最新のメッセージ
|
||||
@@ -680,13 +710,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 +728,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 +752,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 +799,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 +815,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 +843,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 +872,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 +896,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 +914,6 @@ 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: システム作業分類
|
||||
permission_manage_project_activities: Manage project activities
|
||||
label_project_copy_notifications: Send email notifications during the project copy
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
# by Kihyun Yoon(ddumbugie@gmail.com),http://plenum.textcube.com/
|
||||
# by John Hwang (jhwang@tavon.org),http://github.com/tavon
|
||||
# by Yonghwan SO(please insert your email), last update at 2009-09-11
|
||||
# last update at 2009-09-11 by Kihyun Yoon
|
||||
# last update at 2010-01-23 by Kihyun Yoon
|
||||
ko:
|
||||
date:
|
||||
formats:
|
||||
@@ -64,6 +64,9 @@ ko:
|
||||
over_x_years:
|
||||
one: "일년 이상"
|
||||
other: "{{count}}년 이상"
|
||||
almost_x_years:
|
||||
one: "약 1년"
|
||||
other: "약 {{count}}년"
|
||||
prompts:
|
||||
year: "년"
|
||||
month: "월"
|
||||
@@ -179,8 +182,8 @@ ko:
|
||||
general_lang_name: '한국어(Korean)'
|
||||
general_csv_separator: ','
|
||||
general_csv_decimal_separator: '.'
|
||||
general_csv_encoding: UTF-8
|
||||
general_pdf_encoding: UTF-8
|
||||
general_csv_encoding: CP949
|
||||
general_pdf_encoding: CP949
|
||||
general_first_day_of_week: '7'
|
||||
|
||||
notice_account_updated: 계정이 성공적으로 변경되었습니다.
|
||||
@@ -706,7 +709,7 @@ ko:
|
||||
label_language_based: 언어설정에 따름
|
||||
label_sort_by: "{{value}}(으)로 정렬"
|
||||
label_send_test_email: 테스트 메일 보내기
|
||||
label_feeds_access_key_created_on: "피드 접근 키가 {{value}} 이전에 생성됨 "
|
||||
label_feeds_access_key_created_on: "피드 접근 키가 {{value}} 이전에 생성되었습니다."
|
||||
label_module_plural: 모듈
|
||||
label_added_time_by: "{{author}}이(가) {{age}} 전에 추가함"
|
||||
label_updated_time_by: "{{author}}이(가) {{age}} 전에 변경"
|
||||
@@ -922,16 +925,26 @@ ko:
|
||||
setting_start_of_week: 달력 시작 요일
|
||||
permission_view_issues: 일감 보기
|
||||
label_display_used_statuses_only: 이 일감유형에서 사용되는 상태만 보여주기
|
||||
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
|
||||
label_revision_id: 개정판 {{value}}
|
||||
label_api_access_key: API 접근키
|
||||
label_api_access_key_created_on: API 접근키가 {{value}} 전에 생성되었습니다.
|
||||
label_feeds_access_key: RSS 접근키
|
||||
notice_api_access_key_reseted: API 접근키가 초기화되었습니다.
|
||||
setting_rest_api_enabled: REST 웹서비스 활성화
|
||||
label_missing_api_access_key: API 접근키가 없습니다.
|
||||
label_missing_feeds_access_key: RSS 접근키가 없습니다.
|
||||
button_show: 보기
|
||||
text_line_separated: 여러 값이 허용됨(값 마다 한 줄씩)
|
||||
setting_mail_handler_body_delimiters: 메일 본문 구분자
|
||||
permission_add_subprojects: 하위 프로젝트 만들기
|
||||
label_subproject_new: 새 하위 프로젝트
|
||||
text_own_membership_delete_confirmation: |-
|
||||
권한들 일부 또는 전부를 막 삭제하려고 하고 있습니다. 그렇게 되면 이 프로젝트를 더이상 수정할 수 없게 됩니다.
|
||||
계속하시겠습니까?
|
||||
label_close_versions: 완료된 버전 닫기
|
||||
label_board_sticky: Sticky
|
||||
label_board_locked: Locked
|
||||
permission_export_wiki_pages: Export wiki pages
|
||||
setting_cache_formatted_text: Cache formatted text
|
||||
permission_manage_project_activities: Manage project activities
|
||||
label_project_copy_notifications: Send email notifications during the project copy
|
||||
|
||||
@@ -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,13 @@ 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
|
||||
label_board_sticky: Sticky
|
||||
label_board_locked: Locked
|
||||
permission_export_wiki_pages: Export wiki pages
|
||||
setting_cache_formatted_text: Cache formatted text
|
||||
permission_manage_project_activities: Manage project activities
|
||||
label_project_copy_notifications: Send email notifications during the project copy
|
||||
|
||||
@@ -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,13 @@ 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
|
||||
label_board_sticky: Sticky
|
||||
label_board_locked: Locked
|
||||
permission_export_wiki_pages: Export wiki pages
|
||||
setting_cache_formatted_text: Cache formatted text
|
||||
permission_manage_project_activities: Manage project activities
|
||||
label_project_copy_notifications: Send email notifications during the project copy
|
||||
|
||||
@@ -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,13 @@
|
||||
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
|
||||
label_board_sticky: Sticky
|
||||
label_board_locked: Locked
|
||||
permission_export_wiki_pages: Export wiki pages
|
||||
setting_cache_formatted_text: Cache formatted text
|
||||
permission_manage_project_activities: Manage project activities
|
||||
label_project_copy_notifications: Send email notifications during the project copy
|
||||
|
||||
@@ -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,59 @@ 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
|
||||
|
||||
label_board_sticky: Przyklejona
|
||||
label_board_locked: Zamknięta
|
||||
permission_export_wiki_pages: Eksport stron wiki
|
||||
permission_manage_project_activities: Zarządzanie aktywnościami projektu
|
||||
setting_cache_formatted_text: Cache formatted text
|
||||
label_project_copy_notifications: Send email notifications during the project copy
|
||||
|
||||
@@ -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:
|
||||
@@ -898,7 +901,18 @@ pt-BR:
|
||||
setting_rest_api_enabled: Habilitdar REST web service
|
||||
label_missing_api_access_key: Chave de acesso a API faltando
|
||||
label_missing_feeds_access_key: Chave de acesso ao RSS faltando
|
||||
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
|
||||
text_line_separated: Múltiplos valores permitidos (uma linha para cada valor).
|
||||
setting_mail_handler_body_delimiters: Truncar e-mails após uma destas linhas
|
||||
permission_add_subprojects: Criar subprojetos
|
||||
label_subproject_new: Novo subprojeto
|
||||
text_own_membership_delete_confirmation: |-
|
||||
Você está para remover algumas de suas próprias permissões e pode não mais estar apto a editar este projeto após esta operação.
|
||||
Você tem certeza que deseja continuar?
|
||||
label_close_versions: Fechar versões concluídas
|
||||
label_board_sticky: Marcado
|
||||
label_board_locked: Travado
|
||||
label_change_log: Registro de alterações
|
||||
permission_export_wiki_pages: Export wiki pages
|
||||
setting_cache_formatted_text: Cache formatted text
|
||||
permission_manage_project_activities: Manage project activities
|
||||
label_project_copy_notifications: Send email notifications during the project copy
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user