Merge branch 'stable' into unstable
This commit is contained in:
commit
c87738daf2
10
Gemfile
10
Gemfile
|
@ -14,8 +14,8 @@ group :test do
|
||||||
gem 'edavis10-object_daddy', :require => 'object_daddy'
|
gem 'edavis10-object_daddy', :require => 'object_daddy'
|
||||||
gem 'mocha'
|
gem 'mocha'
|
||||||
|
|
||||||
platforms :mri_18 do gem 'ruby-debug' end
|
platforms :mri_18, :mingw_18 do gem 'ruby-debug' end
|
||||||
platforms :mri_19 do gem 'ruby-debug19', :require => 'ruby-debug' end
|
platforms :mri_19, :mingw_19 do gem 'ruby-debug19', :require => 'ruby-debug' end
|
||||||
end
|
end
|
||||||
|
|
||||||
group :openid do
|
group :openid do
|
||||||
|
@ -32,7 +32,7 @@ end
|
||||||
# orders of magnitude compared to their native counterparts. You have been
|
# orders of magnitude compared to their native counterparts. You have been
|
||||||
# warned.
|
# warned.
|
||||||
|
|
||||||
platforms :mri do
|
platforms :mri, :mingw do
|
||||||
group :mysql do
|
group :mysql do
|
||||||
gem "mysql"
|
gem "mysql"
|
||||||
# gem "ruby-mysql"
|
# gem "ruby-mysql"
|
||||||
|
@ -48,13 +48,13 @@ platforms :mri do
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
platforms :mri_18 do
|
platforms :mri_18, :mingw_18 do
|
||||||
group :sqlite do
|
group :sqlite do
|
||||||
gem "sqlite3-ruby", "< 1.3", :require => "sqlite3"
|
gem "sqlite3-ruby", "< 1.3", :require => "sqlite3"
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
platforms :mri_19 do
|
platforms :mri_19, :mingw_19 do
|
||||||
group :sqlite do
|
group :sqlite do
|
||||||
gem "sqlite3"
|
gem "sqlite3"
|
||||||
end
|
end
|
||||||
|
|
|
@ -286,7 +286,7 @@ private
|
||||||
render_error l(:error_no_tracker_in_project)
|
render_error l(:error_no_tracker_in_project)
|
||||||
return false
|
return false
|
||||||
end
|
end
|
||||||
@issue.start_date ||= User.current.today
|
@issue.start_date ||= User.current.today if Setting.issue_startdate_is_adddate?
|
||||||
if params[:issue].is_a?(Hash)
|
if params[:issue].is_a?(Hash)
|
||||||
@issue.safe_attributes = params[:issue]
|
@issue.safe_attributes = params[:issue]
|
||||||
if User.current.allowed_to?(:add_issue_watchers, @project) && @issue.new_record?
|
if User.current.allowed_to?(:add_issue_watchers, @project) && @issue.new_record?
|
||||||
|
|
|
@ -208,7 +208,10 @@ class Query < ActiveRecord::Base
|
||||||
@available_filters["assigned_to_role"] = { :type => :list_optional, :order => 7, :values => role_values } unless role_values.empty?
|
@available_filters["assigned_to_role"] = { :type => :list_optional, :order => 7, :values => role_values } unless role_values.empty?
|
||||||
|
|
||||||
if User.current.logged?
|
if User.current.logged?
|
||||||
@available_filters["watcher_id"] = { :type => :list, :order => 15, :values => [["<< #{l(:label_me)} >>", "me"]] }
|
# populate the watcher list with the same user list as other user filters if the user has the :view_issue_watchers permission in at least one project
|
||||||
|
# TODO: this could be differentiated more, e.g. all users could watch issues in public projects, but won't necessarily be shown here
|
||||||
|
watcher_values = User.current.allowed_to_globally?(:view_issue_watchers, {}) ? user_values : [["<< #{l(:label_me)} >>", "me"]]
|
||||||
|
@available_filters["watcher_id"] = { :type => :list, :order => 15, :values => watcher_values }
|
||||||
end
|
end
|
||||||
|
|
||||||
if project
|
if project
|
||||||
|
@ -442,8 +445,21 @@ class Query < ActiveRecord::Base
|
||||||
elsif field == 'watcher_id'
|
elsif field == 'watcher_id'
|
||||||
db_table = Watcher.table_name
|
db_table = Watcher.table_name
|
||||||
db_field = 'user_id'
|
db_field = 'user_id'
|
||||||
sql << "#{Issue.table_name}.id #{ operator == '=' ? 'IN' : 'NOT IN' } (SELECT #{db_table}.watchable_id FROM #{db_table} WHERE #{db_table}.watchable_type='Issue' AND "
|
if User.current.admin?
|
||||||
sql << sql_for_field(field, '=', v, db_table, db_field) + ')'
|
# Admins can always see all watchers
|
||||||
|
sql << "#{Issue.table_name}.id #{operator == '=' ? 'IN' : 'NOT IN'} (SELECT #{db_table}.watchable_id FROM #{db_table} WHERE #{db_table}.watchable_type='Issue' AND #{sql_for_field field, '=', v, db_table, db_field})"
|
||||||
|
else
|
||||||
|
sql_parts = []
|
||||||
|
if User.current.logged? && user_id = v.delete(User.current.id.to_s)
|
||||||
|
# a user can always see his own watched issues
|
||||||
|
sql_parts << "#{Issue.table_name}.id #{operator == '=' ? 'IN' : 'NOT IN'} (SELECT #{db_table}.watchable_id FROM #{db_table} WHERE #{db_table}.watchable_type='Issue' AND #{sql_for_field field, '=', [user_id], db_table, db_field})"
|
||||||
|
end
|
||||||
|
# filter watchers only in projects the user has the permission to view watchers in
|
||||||
|
project_ids = User.current.projects_by_role.collect {|r,p| p if r.permissions.include? :view_issue_watchers}.flatten.compact.collect(&:id).uniq
|
||||||
|
sql_parts << "#{Issue.table_name}.id #{operator == '=' ? 'IN' : 'NOT IN'} (SELECT #{db_table}.watchable_id FROM #{db_table} WHERE #{db_table}.watchable_type='Issue' AND #{sql_for_field field, '=', v, db_table, db_field})"\
|
||||||
|
" AND #{Project.table_name}.id IN (#{project_ids.join(',')})" unless project_ids.empty?
|
||||||
|
sql << "(#{sql_parts.join(' OR ')})"
|
||||||
|
end
|
||||||
elsif field == "member_of_group" # named field
|
elsif field == "member_of_group" # named field
|
||||||
if operator == '*' # Any group
|
if operator == '*' # Any group
|
||||||
groups = Group.all
|
groups = Group.all
|
||||||
|
|
|
@ -24,7 +24,7 @@
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<% if @project.new_record? %>
|
<% if @project.new_record? %>
|
||||||
<fieldset class="box"><legend><%= l(:label_module_plural) %></legend>
|
<fieldset class="box" id="project_modules"><legend><%= l(:label_module_plural) %> <span style="font-size:0.9em">(<%= check_all_links 'project_modules' %>)</span></legend>
|
||||||
<% Redmine::AccessControl.available_project_modules.each do |m| %>
|
<% Redmine::AccessControl.available_project_modules.each do |m| %>
|
||||||
<label class="floating">
|
<label class="floating">
|
||||||
<%= check_box_tag 'project[enabled_module_names][]', m, @project.module_enabled?(m), :id => "project_enabled_module_names_#{m}" %>
|
<%= check_box_tag 'project[enabled_module_names][]', m, @project.module_enabled?(m), :id => "project_enabled_module_names_#{m}" %>
|
||||||
|
@ -38,7 +38,7 @@
|
||||||
|
|
||||||
<% if @project.new_record? || @project.module_enabled?('issue_tracking') %>
|
<% if @project.new_record? || @project.module_enabled?('issue_tracking') %>
|
||||||
<% unless @trackers.empty? %>
|
<% unless @trackers.empty? %>
|
||||||
<fieldset class="box" id="project_trackers"><legend><%=l(:label_tracker_plural)%></legend>
|
<fieldset class="box" id="project_trackers"><legend><%=l(:label_tracker_plural)%> <span style="font-size:0.9em">(<%= check_all_links 'project_trackers' %>)</span></legend>
|
||||||
<% @trackers.each do |tracker| %>
|
<% @trackers.each do |tracker| %>
|
||||||
<label class="floating">
|
<label class="floating">
|
||||||
<%= check_box_tag 'project[tracker_ids][]', tracker.id, @project.trackers.include?(tracker) %>
|
<%= check_box_tag 'project[tracker_ids][]', tracker.id, @project.trackers.include?(tracker) %>
|
||||||
|
@ -50,7 +50,7 @@
|
||||||
<% end %>
|
<% end %>
|
||||||
|
|
||||||
<% unless @issue_custom_fields.empty? %>
|
<% unless @issue_custom_fields.empty? %>
|
||||||
<fieldset class="box" id="project_issue_custom_fields"><legend><%=l(:label_custom_field_plural)%></legend>
|
<fieldset class="box" id="project_issue_custom_fields"><legend><%=l(:label_custom_field_plural)%> <span style="font-size:0.9em">(<%= check_all_links 'project_issue_custom_fields' %>)</span></legend>
|
||||||
<% @issue_custom_fields.each do |custom_field| %>
|
<% @issue_custom_fields.each do |custom_field| %>
|
||||||
<label class="floating">
|
<label class="floating">
|
||||||
<%= check_box_tag 'project[issue_custom_field_ids][]', custom_field.id, (@project.all_issue_custom_fields.include? custom_field), (custom_field.is_for_all? ? {:disabled => "disabled"} : {}) %>
|
<%= check_box_tag 'project[issue_custom_field_ids][]', custom_field.id, (@project.all_issue_custom_fields.include? custom_field), (custom_field.is_for_all? ? {:disabled => "disabled"} : {}) %>
|
||||||
|
|
|
@ -5,6 +5,8 @@
|
||||||
|
|
||||||
<p><%= setting_check_box :display_subprojects_issues %></p>
|
<p><%= setting_check_box :display_subprojects_issues %></p>
|
||||||
|
|
||||||
|
<p><%= setting_check_box :issue_startdate_is_adddate %></p>
|
||||||
|
|
||||||
<p><%= setting_select :issue_done_ratio, Issue::DONE_RATIO_OPTIONS.collect {|i| [l("setting_issue_done_ratio_#{i}"), i]} %></p>
|
<p><%= setting_select :issue_done_ratio, Issue::DONE_RATIO_OPTIONS.collect {|i| [l("setting_issue_done_ratio_#{i}"), i]} %></p>
|
||||||
|
|
||||||
<p><%= setting_text_field :issues_export_limit, :size => 6 %></p>
|
<p><%= setting_text_field :issues_export_limit, :size => 6 %></p>
|
||||||
|
|
|
@ -6,10 +6,10 @@
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
<%= l(:label_version) %> <%= link_to @diff.content_from.version, :action => 'show', :id => @page.title, :project_id => @page.project, :version => @diff.content_from.version %>
|
<%= l(:label_version) %> <%= link_to @diff.content_from.version, :action => 'show', :id => @page.title, :project_id => @page.project, :version => @diff.content_from.version %>
|
||||||
<em>(<%= @diff.content_from.author ? link_to_user(@diff.content_from.author) : l(:label_user_anonymous) %>, <%= format_time(@diff.content_from.updated_on) %>)</em>
|
<em>(<%= @diff.content_from.user ? link_to_user(@diff.content_from.user) : l(:label_user_anonymous) %>, <%= format_time(@diff.content_from.updated_on) %>)</em>
|
||||||
→
|
→
|
||||||
<%= l(:label_version) %> <%= link_to @diff.content_to.version, :action => 'show', :id => @page.title, :project_id => @page.project, :version => @diff.content_to.version %>/<%= @page.content.version %>
|
<%= l(:label_version) %> <%= link_to @diff.content_to.version, :action => 'show', :id => @page.title, :project_id => @page.project, :version => @diff.content_to.version %>/<%= @page.content.version %>
|
||||||
<em>(<%= @diff.content_to.author ? link_to_user(@diff.content_to.author) : l(:label_user_anonymous) %>, <%= format_time(@diff.content_to.updated_on) %>)</em>
|
<em>(<%= @diff.content_to.user ? link_to_user(@diff.content_to.user) : l(:label_user_anonymous) %>, <%= format_time(@diff.content_to.updated_on) %>)</em>
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<div class="text-diff">
|
<div class="text-diff">
|
||||||
|
|
|
@ -964,3 +964,4 @@ bg:
|
||||||
label_path_encoding: Кодиране на пътищата
|
label_path_encoding: Кодиране на пътищата
|
||||||
text_mercurial_repo_example: локално хранилище (например /hgrepo, c:\hgrepo)
|
text_mercurial_repo_example: локално хранилище (например /hgrepo, c:\hgrepo)
|
||||||
label_diff: diff
|
label_diff: diff
|
||||||
|
setting_issue_startdate_is_adddate: Use current date as start date for new issues
|
||||||
|
|
|
@ -978,3 +978,4 @@ bs:
|
||||||
label_path_encoding: Path encoding
|
label_path_encoding: Path encoding
|
||||||
text_mercurial_repo_example: local repository (e.g. /hgrepo, c:\hgrepo)
|
text_mercurial_repo_example: local repository (e.g. /hgrepo, c:\hgrepo)
|
||||||
label_diff: diff
|
label_diff: diff
|
||||||
|
setting_issue_startdate_is_adddate: Use current date as start date for new issues
|
||||||
|
|
|
@ -967,3 +967,4 @@ ca:
|
||||||
label_path_encoding: Path encoding
|
label_path_encoding: Path encoding
|
||||||
text_mercurial_repo_example: local repository (e.g. /hgrepo, c:\hgrepo)
|
text_mercurial_repo_example: local repository (e.g. /hgrepo, c:\hgrepo)
|
||||||
label_diff: diff
|
label_diff: diff
|
||||||
|
setting_issue_startdate_is_adddate: Use current date as start date for new issues
|
||||||
|
|
|
@ -1188,3 +1188,4 @@ cs:
|
||||||
label_path_encoding: Path encoding
|
label_path_encoding: Path encoding
|
||||||
text_mercurial_repo_example: local repository (e.g. /hgrepo, c:\hgrepo)
|
text_mercurial_repo_example: local repository (e.g. /hgrepo, c:\hgrepo)
|
||||||
label_diff: diff
|
label_diff: diff
|
||||||
|
setting_issue_startdate_is_adddate: Use current date as start date for new issues
|
||||||
|
|
|
@ -980,3 +980,4 @@ da:
|
||||||
label_path_encoding: Path encoding
|
label_path_encoding: Path encoding
|
||||||
text_mercurial_repo_example: local repository (e.g. /hgrepo, c:\hgrepo)
|
text_mercurial_repo_example: local repository (e.g. /hgrepo, c:\hgrepo)
|
||||||
label_diff: diff
|
label_diff: diff
|
||||||
|
setting_issue_startdate_is_adddate: Use current date as start date for new issues
|
||||||
|
|
|
@ -370,6 +370,7 @@ de:
|
||||||
setting_start_of_week: Wochenanfang
|
setting_start_of_week: Wochenanfang
|
||||||
setting_rest_api_enabled: REST-Schnittstelle aktivieren
|
setting_rest_api_enabled: REST-Schnittstelle aktivieren
|
||||||
setting_cache_formatted_text: Formatierten Text im Cache speichern
|
setting_cache_formatted_text: Formatierten Text im Cache speichern
|
||||||
|
setting_issue_startdate_is_adddate: Neue Tickets haben "Heute" als Anfangsdatum
|
||||||
|
|
||||||
permission_add_project: Projekt erstellen
|
permission_add_project: Projekt erstellen
|
||||||
permission_add_subprojects: Unterprojekte erstellen
|
permission_add_subprojects: Unterprojekte erstellen
|
||||||
|
|
|
@ -964,3 +964,4 @@ el:
|
||||||
label_path_encoding: Path encoding
|
label_path_encoding: Path encoding
|
||||||
text_mercurial_repo_example: local repository (e.g. /hgrepo, c:\hgrepo)
|
text_mercurial_repo_example: local repository (e.g. /hgrepo, c:\hgrepo)
|
||||||
label_diff: diff
|
label_diff: diff
|
||||||
|
setting_issue_startdate_is_adddate: Use current date as start date for new issues
|
||||||
|
|
|
@ -370,6 +370,7 @@ en-GB:
|
||||||
setting_commit_logtime_enabled: Enable time logging
|
setting_commit_logtime_enabled: Enable time logging
|
||||||
setting_commit_logtime_activity_id: Activity for logged time
|
setting_commit_logtime_activity_id: Activity for logged time
|
||||||
setting_gantt_items_limit: Maximum number of items displayed on the gantt chart
|
setting_gantt_items_limit: Maximum number of items displayed on the gantt chart
|
||||||
|
setting_issue_startdate_is_adddate: Use current date as start date for new issues
|
||||||
|
|
||||||
permission_add_project: Create project
|
permission_add_project: Create project
|
||||||
permission_add_subprojects: Create subprojects
|
permission_add_subprojects: Create subprojects
|
||||||
|
|
|
@ -366,6 +366,7 @@ en:
|
||||||
setting_commit_logtime_enabled: Enable time logging
|
setting_commit_logtime_enabled: Enable time logging
|
||||||
setting_commit_logtime_activity_id: Activity for logged time
|
setting_commit_logtime_activity_id: Activity for logged time
|
||||||
setting_gantt_items_limit: Maximum number of items displayed on the gantt chart
|
setting_gantt_items_limit: Maximum number of items displayed on the gantt chart
|
||||||
|
setting_issue_startdate_is_adddate: Use current date as start date for new issues
|
||||||
|
|
||||||
permission_add_project: Create project
|
permission_add_project: Create project
|
||||||
permission_add_subprojects: Create subprojects
|
permission_add_subprojects: Create subprojects
|
||||||
|
|
|
@ -1001,3 +1001,4 @@ es:
|
||||||
label_path_encoding: Path encoding
|
label_path_encoding: Path encoding
|
||||||
text_mercurial_repo_example: local repository (e.g. /hgrepo, c:\hgrepo)
|
text_mercurial_repo_example: local repository (e.g. /hgrepo, c:\hgrepo)
|
||||||
label_diff: diff
|
label_diff: diff
|
||||||
|
setting_issue_startdate_is_adddate: Use current date as start date for new issues
|
||||||
|
|
|
@ -968,3 +968,4 @@ eu:
|
||||||
label_path_encoding: Path encoding
|
label_path_encoding: Path encoding
|
||||||
text_mercurial_repo_example: local repository (e.g. /hgrepo, c:\hgrepo)
|
text_mercurial_repo_example: local repository (e.g. /hgrepo, c:\hgrepo)
|
||||||
label_diff: diff
|
label_diff: diff
|
||||||
|
setting_issue_startdate_is_adddate: Use current date as start date for new issues
|
||||||
|
|
|
@ -967,3 +967,4 @@ fa:
|
||||||
label_path_encoding: Path encoding
|
label_path_encoding: Path encoding
|
||||||
text_mercurial_repo_example: local repository (e.g. /hgrepo, c:\hgrepo)
|
text_mercurial_repo_example: local repository (e.g. /hgrepo, c:\hgrepo)
|
||||||
label_diff: diff
|
label_diff: diff
|
||||||
|
setting_issue_startdate_is_adddate: Use current date as start date for new issues
|
||||||
|
|
|
@ -985,3 +985,4 @@ fi:
|
||||||
label_path_encoding: Path encoding
|
label_path_encoding: Path encoding
|
||||||
text_mercurial_repo_example: local repository (e.g. /hgrepo, c:\hgrepo)
|
text_mercurial_repo_example: local repository (e.g. /hgrepo, c:\hgrepo)
|
||||||
label_diff: diff
|
label_diff: diff
|
||||||
|
setting_issue_startdate_is_adddate: Use current date as start date for new issues
|
||||||
|
|
|
@ -367,6 +367,7 @@ fr:
|
||||||
setting_commit_logtime_enabled: Permettre la saisie de temps
|
setting_commit_logtime_enabled: Permettre la saisie de temps
|
||||||
setting_commit_logtime_activity_id: Activité pour le temps saisi
|
setting_commit_logtime_activity_id: Activité pour le temps saisi
|
||||||
setting_gantt_items_limit: Nombre maximum d'éléments affichés sur le gantt
|
setting_gantt_items_limit: Nombre maximum d'éléments affichés sur le gantt
|
||||||
|
setting_issue_startdate_is_adddate: Utiliser "aujourd'hui" comme début pour les nouvelles demandes
|
||||||
|
|
||||||
permission_add_project: Créer un projet
|
permission_add_project: Créer un projet
|
||||||
permission_add_subprojects: Créer des sous-projets
|
permission_add_subprojects: Créer des sous-projets
|
||||||
|
|
|
@ -976,3 +976,4 @@ gl:
|
||||||
label_path_encoding: Path encoding
|
label_path_encoding: Path encoding
|
||||||
text_mercurial_repo_example: local repository (e.g. /hgrepo, c:\hgrepo)
|
text_mercurial_repo_example: local repository (e.g. /hgrepo, c:\hgrepo)
|
||||||
label_diff: diff
|
label_diff: diff
|
||||||
|
setting_issue_startdate_is_adddate: Use current date as start date for new issues
|
||||||
|
|
|
@ -969,3 +969,4 @@ he:
|
||||||
label_path_encoding: Path encoding
|
label_path_encoding: Path encoding
|
||||||
text_mercurial_repo_example: local repository (e.g. /hgrepo, c:\hgrepo)
|
text_mercurial_repo_example: local repository (e.g. /hgrepo, c:\hgrepo)
|
||||||
label_diff: diff
|
label_diff: diff
|
||||||
|
setting_issue_startdate_is_adddate: Use current date as start date for new issues
|
||||||
|
|
|
@ -971,3 +971,4 @@ hr:
|
||||||
label_path_encoding: Path encoding
|
label_path_encoding: Path encoding
|
||||||
text_mercurial_repo_example: local repository (e.g. /hgrepo, c:\hgrepo)
|
text_mercurial_repo_example: local repository (e.g. /hgrepo, c:\hgrepo)
|
||||||
label_diff: diff
|
label_diff: diff
|
||||||
|
setting_issue_startdate_is_adddate: Use current date as start date for new issues
|
||||||
|
|
|
@ -983,3 +983,4 @@
|
||||||
label_path_encoding: Path encoding
|
label_path_encoding: Path encoding
|
||||||
text_mercurial_repo_example: local repository (e.g. /hgrepo, c:\hgrepo)
|
text_mercurial_repo_example: local repository (e.g. /hgrepo, c:\hgrepo)
|
||||||
label_diff: diff
|
label_diff: diff
|
||||||
|
setting_issue_startdate_is_adddate: Use current date as start date for new issues
|
||||||
|
|
|
@ -972,3 +972,4 @@ id:
|
||||||
label_path_encoding: Path encoding
|
label_path_encoding: Path encoding
|
||||||
text_mercurial_repo_example: local repository (e.g. /hgrepo, c:\hgrepo)
|
text_mercurial_repo_example: local repository (e.g. /hgrepo, c:\hgrepo)
|
||||||
label_diff: diff
|
label_diff: diff
|
||||||
|
setting_issue_startdate_is_adddate: Use current date as start date for new issues
|
||||||
|
|
|
@ -965,3 +965,4 @@ it:
|
||||||
label_path_encoding: Path encoding
|
label_path_encoding: Path encoding
|
||||||
text_mercurial_repo_example: local repository (e.g. /hgrepo, c:\hgrepo)
|
text_mercurial_repo_example: local repository (e.g. /hgrepo, c:\hgrepo)
|
||||||
label_diff: diff
|
label_diff: diff
|
||||||
|
setting_issue_startdate_is_adddate: Use current date as start date for new issues
|
||||||
|
|
|
@ -986,3 +986,4 @@ ja:
|
||||||
label_path_encoding: Path encoding
|
label_path_encoding: Path encoding
|
||||||
text_mercurial_repo_example: local repository (e.g. /hgrepo, c:\hgrepo)
|
text_mercurial_repo_example: local repository (e.g. /hgrepo, c:\hgrepo)
|
||||||
label_diff: diff
|
label_diff: diff
|
||||||
|
setting_issue_startdate_is_adddate: Use current date as start date for new issues
|
||||||
|
|
|
@ -1016,3 +1016,4 @@ ko:
|
||||||
label_path_encoding: Path encoding
|
label_path_encoding: Path encoding
|
||||||
text_mercurial_repo_example: local repository (e.g. /hgrepo, c:\hgrepo)
|
text_mercurial_repo_example: local repository (e.g. /hgrepo, c:\hgrepo)
|
||||||
label_diff: diff
|
label_diff: diff
|
||||||
|
setting_issue_startdate_is_adddate: Use current date as start date for new issues
|
||||||
|
|
|
@ -1024,3 +1024,4 @@ lt:
|
||||||
label_path_encoding: Path encoding
|
label_path_encoding: Path encoding
|
||||||
text_mercurial_repo_example: local repository (e.g. /hgrepo, c:\hgrepo)
|
text_mercurial_repo_example: local repository (e.g. /hgrepo, c:\hgrepo)
|
||||||
label_diff: diff
|
label_diff: diff
|
||||||
|
setting_issue_startdate_is_adddate: Use current date as start date for new issues
|
||||||
|
|
|
@ -959,3 +959,4 @@ lv:
|
||||||
label_path_encoding: Path encoding
|
label_path_encoding: Path encoding
|
||||||
text_mercurial_repo_example: local repository (e.g. /hgrepo, c:\hgrepo)
|
text_mercurial_repo_example: local repository (e.g. /hgrepo, c:\hgrepo)
|
||||||
label_diff: diff
|
label_diff: diff
|
||||||
|
setting_issue_startdate_is_adddate: Use current date as start date for new issues
|
||||||
|
|
|
@ -964,3 +964,4 @@ mk:
|
||||||
label_path_encoding: Path encoding
|
label_path_encoding: Path encoding
|
||||||
text_mercurial_repo_example: local repository (e.g. /hgrepo, c:\hgrepo)
|
text_mercurial_repo_example: local repository (e.g. /hgrepo, c:\hgrepo)
|
||||||
label_diff: diff
|
label_diff: diff
|
||||||
|
setting_issue_startdate_is_adddate: Use current date as start date for new issues
|
||||||
|
|
|
@ -965,3 +965,4 @@ mn:
|
||||||
label_path_encoding: Path encoding
|
label_path_encoding: Path encoding
|
||||||
text_mercurial_repo_example: local repository (e.g. /hgrepo, c:\hgrepo)
|
text_mercurial_repo_example: local repository (e.g. /hgrepo, c:\hgrepo)
|
||||||
label_diff: diff
|
label_diff: diff
|
||||||
|
setting_issue_startdate_is_adddate: Use current date as start date for new issues
|
||||||
|
|
|
@ -946,3 +946,4 @@ nl:
|
||||||
label_path_encoding: Path encoding
|
label_path_encoding: Path encoding
|
||||||
text_mercurial_repo_example: local repository (e.g. /hgrepo, c:\hgrepo)
|
text_mercurial_repo_example: local repository (e.g. /hgrepo, c:\hgrepo)
|
||||||
label_diff: diff
|
label_diff: diff
|
||||||
|
setting_issue_startdate_is_adddate: Use current date as start date for new issues
|
||||||
|
|
|
@ -951,3 +951,4 @@
|
||||||
label_path_encoding: Path encoding
|
label_path_encoding: Path encoding
|
||||||
text_mercurial_repo_example: local repository (e.g. /hgrepo, c:\hgrepo)
|
text_mercurial_repo_example: local repository (e.g. /hgrepo, c:\hgrepo)
|
||||||
label_diff: diff
|
label_diff: diff
|
||||||
|
setting_issue_startdate_is_adddate: Use current date as start date for new issues
|
||||||
|
|
|
@ -981,3 +981,4 @@ pl:
|
||||||
label_path_encoding: Path encoding
|
label_path_encoding: Path encoding
|
||||||
text_mercurial_repo_example: local repository (e.g. /hgrepo, c:\hgrepo)
|
text_mercurial_repo_example: local repository (e.g. /hgrepo, c:\hgrepo)
|
||||||
label_diff: diff
|
label_diff: diff
|
||||||
|
setting_issue_startdate_is_adddate: Use current date as start date for new issues
|
||||||
|
|
|
@ -909,6 +909,7 @@ pt-BR:
|
||||||
setting_rest_api_enabled: Habilitar REST web service
|
setting_rest_api_enabled: Habilitar REST web service
|
||||||
label_missing_api_access_key: Chave de acesso a API faltando
|
label_missing_api_access_key: Chave de acesso a API faltando
|
||||||
label_missing_feeds_access_key: Chave de acesso ao RSS faltando
|
label_missing_feeds_access_key: Chave de acesso ao RSS faltando
|
||||||
|
setting_issue_startdate_is_adddate: Usar data corrente como data inicial para novas tarefas
|
||||||
text_line_separated: Múltiplos valores permitidos (uma linha para cada valor).
|
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
|
setting_mail_handler_body_delimiters: Truncar e-mails após uma destas linhas
|
||||||
permission_add_subprojects: Criar subprojetos
|
permission_add_subprojects: Criar subprojetos
|
||||||
|
|
|
@ -968,3 +968,4 @@ pt:
|
||||||
label_path_encoding: Path encoding
|
label_path_encoding: Path encoding
|
||||||
text_mercurial_repo_example: local repository (e.g. /hgrepo, c:\hgrepo)
|
text_mercurial_repo_example: local repository (e.g. /hgrepo, c:\hgrepo)
|
||||||
label_diff: diff
|
label_diff: diff
|
||||||
|
setting_issue_startdate_is_adddate: Use current date as start date for new issues
|
||||||
|
|
|
@ -957,3 +957,4 @@ ro:
|
||||||
label_path_encoding: Path encoding
|
label_path_encoding: Path encoding
|
||||||
text_mercurial_repo_example: local repository (e.g. /hgrepo, c:\hgrepo)
|
text_mercurial_repo_example: local repository (e.g. /hgrepo, c:\hgrepo)
|
||||||
label_diff: diff
|
label_diff: diff
|
||||||
|
setting_issue_startdate_is_adddate: Use current date as start date for new issues
|
||||||
|
|
|
@ -242,7 +242,7 @@ ru:
|
||||||
button_quote: Цитировать
|
button_quote: Цитировать
|
||||||
button_rename: Переименовать
|
button_rename: Переименовать
|
||||||
button_reply: Ответить
|
button_reply: Ответить
|
||||||
button_reset: Перезапустить
|
button_reset: Сбросить
|
||||||
button_rollback: Вернуться к данной версии
|
button_rollback: Вернуться к данной версии
|
||||||
button_save: Сохранить
|
button_save: Сохранить
|
||||||
button_sort: Сортировать
|
button_sort: Сортировать
|
||||||
|
@ -259,7 +259,7 @@ ru:
|
||||||
default_activity_design: Проектирование
|
default_activity_design: Проектирование
|
||||||
default_activity_development: Разработка
|
default_activity_development: Разработка
|
||||||
default_doc_category_tech: Техническая документация
|
default_doc_category_tech: Техническая документация
|
||||||
default_doc_category_user: Документация пользователя
|
default_doc_category_user: Пользовательская документация
|
||||||
default_issue_status_in_progress: В работе
|
default_issue_status_in_progress: В работе
|
||||||
default_issue_status_closed: Закрыта
|
default_issue_status_closed: Закрыта
|
||||||
default_issue_status_feedback: Обратная связь
|
default_issue_status_feedback: Обратная связь
|
||||||
|
@ -273,7 +273,7 @@ ru:
|
||||||
default_priority_urgent: Срочный
|
default_priority_urgent: Срочный
|
||||||
default_role_developer: Разработчик
|
default_role_developer: Разработчик
|
||||||
default_role_manager: Менеджер
|
default_role_manager: Менеджер
|
||||||
default_role_reporter: Генератор отчетов
|
default_role_reporter: Репортёр
|
||||||
default_role_non_member: Non member
|
default_role_non_member: Non member
|
||||||
default_role_anonymous: Anonymous
|
default_role_anonymous: Anonymous
|
||||||
default_tracker_bug: Ошибка
|
default_tracker_bug: Ошибка
|
||||||
|
@ -302,25 +302,25 @@ ru:
|
||||||
field_assigned_to: Назначена
|
field_assigned_to: Назначена
|
||||||
field_attr_firstname: Имя
|
field_attr_firstname: Имя
|
||||||
field_attr_lastname: Фамилия
|
field_attr_lastname: Фамилия
|
||||||
field_attr_login: Атрибут Регистрация
|
field_attr_login: Атрибут Login
|
||||||
field_attr_mail: email
|
field_attr_mail: email
|
||||||
field_author: Автор
|
field_author: Автор
|
||||||
field_auth_source: Режим аутентификации
|
field_auth_source: Режим аутентификации
|
||||||
field_base_dn: BaseDN
|
field_base_dn: BaseDN
|
||||||
field_category: Категория
|
field_category: Категория
|
||||||
field_column_names: Колонки
|
field_column_names: Столбцы
|
||||||
field_comments: Комментарий
|
field_comments: Комментарий
|
||||||
field_comments_sorting: Отображение комментариев
|
field_comments_sorting: Отображение комментариев
|
||||||
field_content: Content
|
field_content: Content
|
||||||
field_created_on: Создан
|
field_created_on: Создано
|
||||||
field_default_value: Значение по умолчанию
|
field_default_value: Значение по умолчанию
|
||||||
field_delay: Отложить
|
field_delay: Отложить
|
||||||
field_description: Описание
|
field_description: Описание
|
||||||
field_done_ratio: Готовность в %
|
field_done_ratio: Готовность
|
||||||
field_downloads: Загрузки
|
field_downloads: Загрузки
|
||||||
field_due_date: Дата выполнения
|
field_due_date: Дата выполнения
|
||||||
field_editable: Редактируемый
|
field_editable: Редактируемое
|
||||||
field_estimated_hours: Оцененное время
|
field_estimated_hours: Оценка времени
|
||||||
field_field_format: Формат
|
field_field_format: Формат
|
||||||
field_filename: Файл
|
field_filename: Файл
|
||||||
field_filesize: Размер
|
field_filesize: Размер
|
||||||
|
@ -372,11 +372,11 @@ ru:
|
||||||
field_status: Статус
|
field_status: Статус
|
||||||
field_subject: Тема
|
field_subject: Тема
|
||||||
field_subproject: Подпроект
|
field_subproject: Подпроект
|
||||||
field_summary: Сводка
|
field_summary: Краткое описание
|
||||||
field_text: Текстовое поле
|
field_text: Текстовое поле
|
||||||
field_time_entries: Затраченное время
|
field_time_entries: Затраченное время
|
||||||
field_time_zone: Часовой пояс
|
field_time_zone: Часовой пояс
|
||||||
field_title: Название
|
field_title: Заголовок
|
||||||
field_tracker: Трекер
|
field_tracker: Трекер
|
||||||
field_type: Тип
|
field_type: Тип
|
||||||
field_updated_on: Обновлено
|
field_updated_on: Обновлено
|
||||||
|
@ -392,9 +392,9 @@ ru:
|
||||||
general_first_day_of_week: '1'
|
general_first_day_of_week: '1'
|
||||||
general_lang_name: 'Russian (Русский)'
|
general_lang_name: 'Russian (Русский)'
|
||||||
general_pdf_encoding: UTF-8
|
general_pdf_encoding: UTF-8
|
||||||
general_text_no: 'Нет'
|
general_text_no: 'нет'
|
||||||
general_text_No: 'Нет'
|
general_text_No: 'Нет'
|
||||||
general_text_yes: 'Да'
|
general_text_yes: 'да'
|
||||||
general_text_Yes: 'Да'
|
general_text_Yes: 'Да'
|
||||||
|
|
||||||
gui_validation_error: 1 ошибка
|
gui_validation_error: 1 ошибка
|
||||||
|
@ -402,7 +402,7 @@ ru:
|
||||||
gui_validation_error_plural2: "%{count} ошибки"
|
gui_validation_error_plural2: "%{count} ошибки"
|
||||||
gui_validation_error_plural5: "%{count} ошибок"
|
gui_validation_error_plural5: "%{count} ошибок"
|
||||||
|
|
||||||
label_activity: Активность
|
label_activity: Действия
|
||||||
label_add_another_file: Добавить ещё один файл
|
label_add_another_file: Добавить ещё один файл
|
||||||
label_added_time_by: "Добавил(а) %{author} %{age} назад"
|
label_added_time_by: "Добавил(а) %{author} %{age} назад"
|
||||||
label_added: добавлено
|
label_added: добавлено
|
||||||
|
@ -435,7 +435,7 @@ ru:
|
||||||
label_board_plural: Форумы
|
label_board_plural: Форумы
|
||||||
label_boolean: Логический
|
label_boolean: Логический
|
||||||
label_browse: Обзор
|
label_browse: Обзор
|
||||||
label_bulk_edit_selected_issues: Редактировать все выбранные вопросы
|
label_bulk_edit_selected_issues: Редактировать все выбранные задачи
|
||||||
label_calendar: Календарь
|
label_calendar: Календарь
|
||||||
label_calendar_filter: Включая
|
label_calendar_filter: Включая
|
||||||
label_calendar_no_assigned: не мои
|
label_calendar_no_assigned: не мои
|
||||||
|
@ -444,9 +444,9 @@ ru:
|
||||||
label_change_status: Изменить статус
|
label_change_status: Изменить статус
|
||||||
label_change_view_all: Просмотреть все изменения
|
label_change_view_all: Просмотреть все изменения
|
||||||
label_changes_details: Подробности по всем изменениям
|
label_changes_details: Подробности по всем изменениям
|
||||||
label_changeset_plural: Хранилище
|
label_changeset_plural: Изменения
|
||||||
label_chronological_order: В хронологическом порядке
|
label_chronological_order: В хронологическом порядке
|
||||||
label_closed_issues: закрыт
|
label_closed_issues: закрыто
|
||||||
label_closed_issues_plural: закрыто
|
label_closed_issues_plural: закрыто
|
||||||
label_closed_issues_plural2: закрыто
|
label_closed_issues_plural2: закрыто
|
||||||
label_closed_issues_plural5: закрыто
|
label_closed_issues_plural5: закрыто
|
||||||
|
@ -475,11 +475,11 @@ ru:
|
||||||
label_date: Дата
|
label_date: Дата
|
||||||
label_day_plural: дней(я)
|
label_day_plural: дней(я)
|
||||||
label_default: По умолчанию
|
label_default: По умолчанию
|
||||||
label_default_columns: Колонки по умолчанию
|
label_default_columns: Столбцы по умолчанию
|
||||||
label_deleted: удалено
|
label_deleted: удалено
|
||||||
label_descending: По убыванию
|
label_descending: По убыванию
|
||||||
label_details: Подробности
|
label_details: Подробности
|
||||||
label_diff_inline: вставкой
|
label_diff_inline: в тексте
|
||||||
label_diff_side_by_side: рядом
|
label_diff_side_by_side: рядом
|
||||||
label_disabled: отключено
|
label_disabled: отключено
|
||||||
label_display: Отображение
|
label_display: Отображение
|
||||||
|
@ -498,9 +498,9 @@ ru:
|
||||||
label_end_to_end: с конца к концу
|
label_end_to_end: с конца к концу
|
||||||
label_end_to_start: с конца к началу
|
label_end_to_start: с конца к началу
|
||||||
label_enumeration_new: Новое значение
|
label_enumeration_new: Новое значение
|
||||||
label_enumerations: Справочники
|
label_enumerations: Списки значений
|
||||||
label_environment: Окружение
|
label_environment: Окружение
|
||||||
label_equals: соответствует
|
label_equals: является
|
||||||
label_example: Пример
|
label_example: Пример
|
||||||
label_export_to: Экспортировать в
|
label_export_to: Экспортировать в
|
||||||
label_feed_plural: RSS
|
label_feed_plural: RSS
|
||||||
|
@ -539,9 +539,9 @@ ru:
|
||||||
label_issue_plural: Задачи
|
label_issue_plural: Задачи
|
||||||
label_issues_by: "Сортировать по %{value}"
|
label_issues_by: "Сортировать по %{value}"
|
||||||
label_issue_status_new: Новый статус
|
label_issue_status_new: Новый статус
|
||||||
label_issue_status_plural: Статусы задачи
|
label_issue_status_plural: Статусы задач
|
||||||
label_issue_status: Статус задачи
|
label_issue_status: Статус задачи
|
||||||
label_issue_tracking: Ситуация по задачам
|
label_issue_tracking: Задачи
|
||||||
label_issue_updated: Обновлена задача
|
label_issue_updated: Обновлена задача
|
||||||
label_issue_view_all: Просмотреть все задачи
|
label_issue_view_all: Просмотреть все задачи
|
||||||
label_issue_watchers: Наблюдатели
|
label_issue_watchers: Наблюдатели
|
||||||
|
@ -551,7 +551,7 @@ ru:
|
||||||
label_last_login: Последнее подключение
|
label_last_login: Последнее подключение
|
||||||
label_last_month: последний месяц
|
label_last_month: последний месяц
|
||||||
label_last_n_days: "последние %{count} дней"
|
label_last_n_days: "последние %{count} дней"
|
||||||
label_last_week: последняя неделю
|
label_last_week: последняя неделя
|
||||||
label_latest_revision: Последняя редакция
|
label_latest_revision: Последняя редакция
|
||||||
label_latest_revision_plural: Последние редакции
|
label_latest_revision_plural: Последние редакции
|
||||||
label_ldap_authentication: Авторизация с помощью LDAP
|
label_ldap_authentication: Авторизация с помощью LDAP
|
||||||
|
@ -559,7 +559,7 @@ ru:
|
||||||
label_less_than_ago: менее, чем дней(я) назад
|
label_less_than_ago: менее, чем дней(я) назад
|
||||||
label_list: Список
|
label_list: Список
|
||||||
label_loading: Загрузка...
|
label_loading: Загрузка...
|
||||||
label_logged_as: Вошел как
|
label_logged_as: Вошли как
|
||||||
label_login: Войти
|
label_login: Войти
|
||||||
label_login_with_open_id_option: или войти с помощью OpenID
|
label_login_with_open_id_option: или войти с помощью OpenID
|
||||||
label_logout: Выйти
|
label_logout: Выйти
|
||||||
|
@ -588,30 +588,30 @@ ru:
|
||||||
label_my_page_block: Блок моей страницы
|
label_my_page_block: Блок моей страницы
|
||||||
label_my_projects: Мои проекты
|
label_my_projects: Мои проекты
|
||||||
label_new: Новый
|
label_new: Новый
|
||||||
label_new_statuses_allowed: Разрешены новые статусы
|
label_new_statuses_allowed: Разрешенные новые статусы
|
||||||
label_news_added: Новость добавлена
|
label_news_added: Добавлена новость
|
||||||
label_news_latest: Последние новости
|
label_news_latest: Последние новости
|
||||||
label_news_new: Добавить новость
|
label_news_new: Добавить новость
|
||||||
label_news_plural: Новости
|
label_news_plural: Новости
|
||||||
label_news_view_all: Посмотреть все новости
|
label_news_view_all: Посмотреть все новости
|
||||||
label_news: Новости
|
label_news: Новости
|
||||||
label_next: Следующий
|
label_next: Следующее
|
||||||
label_nobody: никто
|
label_nobody: никто
|
||||||
label_no_change_option: (Нет изменений)
|
label_no_change_option: (Нет изменений)
|
||||||
label_no_data: Нет данных для отображения
|
label_no_data: Нет данных для отображения
|
||||||
label_none: отсутствует
|
label_none: отсутствует
|
||||||
label_not_contains: не содержит
|
label_not_contains: не содержит
|
||||||
label_not_equals: не соответствует
|
label_not_equals: не является
|
||||||
label_open_issues: открыт
|
label_open_issues: открыто
|
||||||
label_open_issues_plural: открыто
|
label_open_issues_plural: открыто
|
||||||
label_open_issues_plural2: открыто
|
label_open_issues_plural2: открыто
|
||||||
label_open_issues_plural5: открыто
|
label_open_issues_plural5: открыто
|
||||||
label_optional_description: Описание (опционально)
|
label_optional_description: Описание (необязательно)
|
||||||
label_options: Опции
|
label_options: Опции
|
||||||
label_overall_activity: Сводная активность
|
label_overall_activity: Сводный отчет действий
|
||||||
label_overview: Просмотр
|
label_overview: Просмотр
|
||||||
label_password_lost: Восстановление пароля
|
label_password_lost: Восстановление пароля
|
||||||
label_permissions_report: Отчет о правах доступа
|
label_permissions_report: Отчет по правам доступа
|
||||||
label_permissions: Права доступа
|
label_permissions: Права доступа
|
||||||
label_per_page: На страницу
|
label_per_page: На страницу
|
||||||
label_personalize_page: Персонализировать данную страницу
|
label_personalize_page: Персонализировать данную страницу
|
||||||
|
@ -620,10 +620,10 @@ ru:
|
||||||
label_plugins: Модули
|
label_plugins: Модули
|
||||||
label_precedes: предыдущая
|
label_precedes: предыдущая
|
||||||
label_preferences: Предпочтения
|
label_preferences: Предпочтения
|
||||||
label_preview: Предварительный просмотр
|
label_preview: Предпросмотр
|
||||||
label_previous: Предыдущий
|
label_previous: Предыдущее
|
||||||
label_profile: Профиль
|
label_profile: Профиль
|
||||||
label_project: проект
|
label_project: Проект
|
||||||
label_project_all: Все проекты
|
label_project_all: Все проекты
|
||||||
label_project_copy_notifications: Отправлять уведомления по электронной почте при копировании проекта
|
label_project_copy_notifications: Отправлять уведомления по электронной почте при копировании проекта
|
||||||
label_project_latest: Последние проекты
|
label_project_latest: Последние проекты
|
||||||
|
@ -664,7 +664,7 @@ ru:
|
||||||
label_role_and_permissions: Роли и права доступа
|
label_role_and_permissions: Роли и права доступа
|
||||||
label_role_new: Новая роль
|
label_role_new: Новая роль
|
||||||
label_role_plural: Роли
|
label_role_plural: Роли
|
||||||
label_scm: 'Тип хранилища'
|
label_scm: Тип хранилища
|
||||||
label_search: Поиск
|
label_search: Поиск
|
||||||
label_search_titles_only: Искать только в названиях
|
label_search_titles_only: Искать только в названиях
|
||||||
label_send_information: Отправить пользователю информацию по учетной записи
|
label_send_information: Отправить пользователю информацию по учетной записи
|
||||||
|
@ -702,7 +702,7 @@ ru:
|
||||||
label_updated_time_by: "Обновлено %{author} %{age} назад"
|
label_updated_time_by: "Обновлено %{author} %{age} назад"
|
||||||
label_used_by: Используется
|
label_used_by: Используется
|
||||||
label_user: Пользователь
|
label_user: Пользователь
|
||||||
label_user_activity: "Активность пользователя %{value}"
|
label_user_activity: "Действия пользователя %{value}"
|
||||||
label_user_mail_no_self_notified: "Не извещать об изменениях, которые я сделал сам"
|
label_user_mail_no_self_notified: "Не извещать об изменениях, которые я сделал сам"
|
||||||
label_user_mail_option_all: "О всех событиях во всех моих проектах"
|
label_user_mail_option_all: "О всех событиях во всех моих проектах"
|
||||||
label_user_mail_option_selected: "О всех событиях только в выбранном проекте..."
|
label_user_mail_option_selected: "О всех событиях только в выбранном проекте..."
|
||||||
|
@ -760,8 +760,8 @@ ru:
|
||||||
mail_body_account_activation_request: "Зарегистрирован новый пользователь (%{value}). Учетная запись ожидает Вашего утверждения:"
|
mail_body_account_activation_request: "Зарегистрирован новый пользователь (%{value}). Учетная запись ожидает Вашего утверждения:"
|
||||||
mail_body_account_information: Информация о Вашей учетной записи
|
mail_body_account_information: Информация о Вашей учетной записи
|
||||||
mail_body_account_information_external: "Вы можете использовать Вашу %{value} учетную запись для входа."
|
mail_body_account_information_external: "Вы можете использовать Вашу %{value} учетную запись для входа."
|
||||||
mail_body_lost_password: 'Для изменения пароля зайдите по следующей ссылке:'
|
mail_body_lost_password: 'Для изменения пароля пройдите по следующей ссылке:'
|
||||||
mail_body_register: 'Для активации учетной записи зайдите по следующей ссылке:'
|
mail_body_register: 'Для активации учетной записи пройдите по следующей ссылке:'
|
||||||
mail_body_reminder: "%{count} назначенных на Вас задач на следующие %{days} дней:"
|
mail_body_reminder: "%{count} назначенных на Вас задач на следующие %{days} дней:"
|
||||||
mail_subject_account_activation_request: "Запрос на активацию пользователя в системе %{value}"
|
mail_subject_account_activation_request: "Запрос на активацию пользователя в системе %{value}"
|
||||||
mail_subject_lost_password: "Ваш %{value} пароль"
|
mail_subject_lost_password: "Ваш %{value} пароль"
|
||||||
|
@ -772,8 +772,8 @@ ru:
|
||||||
notice_account_invalid_creditentials: Неправильное имя пользователя или пароль
|
notice_account_invalid_creditentials: Неправильное имя пользователя или пароль
|
||||||
notice_account_lost_email_sent: Вам отправлено письмо с инструкциями по выбору нового пароля.
|
notice_account_lost_email_sent: Вам отправлено письмо с инструкциями по выбору нового пароля.
|
||||||
notice_account_password_updated: Пароль успешно обновлен.
|
notice_account_password_updated: Пароль успешно обновлен.
|
||||||
notice_account_pending: "Ваша учетная запись уже создана и ожидает подтверждения администратора."
|
notice_account_pending: "Ваша учетная запись создана и ожидает подтверждения администратора."
|
||||||
notice_account_register_done: Учетная запись успешно создана. Для активации Вашей учетной записи зайдите по ссылке, которая выслана Вам по электронной почте.
|
notice_account_register_done: Учетная запись успешно создана. Для активации Вашей учетной записи пройдите по ссылке, которая выслана Вам по электронной почте.
|
||||||
notice_account_unknown_email: Неизвестный пользователь.
|
notice_account_unknown_email: Неизвестный пользователь.
|
||||||
notice_account_updated: Учетная запись успешно обновлена.
|
notice_account_updated: Учетная запись успешно обновлена.
|
||||||
notice_account_wrong_password: Неверный пароль
|
notice_account_wrong_password: Неверный пароль
|
||||||
|
@ -783,15 +783,15 @@ ru:
|
||||||
notice_email_sent: "Отправлено письмо %{value}"
|
notice_email_sent: "Отправлено письмо %{value}"
|
||||||
notice_failed_to_save_issues: "Не удалось сохранить %{count} пункт(ов) из %{total} выбранных: %{ids}."
|
notice_failed_to_save_issues: "Не удалось сохранить %{count} пункт(ов) из %{total} выбранных: %{ids}."
|
||||||
notice_failed_to_save_members: "Не удалось сохранить участника(ов): %{errors}."
|
notice_failed_to_save_members: "Не удалось сохранить участника(ов): %{errors}."
|
||||||
notice_feeds_access_key_reseted: Ваш ключ доступа RSS был перезапущен.
|
notice_feeds_access_key_reseted: Ваш ключ доступа RSS был сброшен.
|
||||||
notice_file_not_found: Страница, на которую Вы пытаетесь зайти, не существует или удалена.
|
notice_file_not_found: Страница, на которую Вы пытаетесь зайти, не существует или удалена.
|
||||||
notice_locking_conflict: Информация обновлена другим пользователем.
|
notice_locking_conflict: Информация обновлена другим пользователем.
|
||||||
notice_no_issue_selected: "Не выбрано ни одной задачи! Пожалуйста, отметьте задачи, которые Вы хотите отредактировать."
|
notice_no_issue_selected: "Не выбрано ни одной задачи! Пожалуйста, отметьте задачи, которые Вы хотите отредактировать."
|
||||||
notice_not_authorized: У Вас нет прав для посещения данной страницы.
|
notice_not_authorized: У Вас нет прав для посещения данной страницы.
|
||||||
notice_successful_connection: Подключение успешно установлено.
|
notice_successful_connection: Подключение успешно установлено.
|
||||||
notice_successful_create: Создание успешно завершено.
|
notice_successful_create: Создание успешно.
|
||||||
notice_successful_delete: Удаление успешно завершено.
|
notice_successful_delete: Удаление успешно.
|
||||||
notice_successful_update: Обновление успешно завершено.
|
notice_successful_update: Обновление успешно.
|
||||||
notice_unable_delete_version: Невозможно удалить версию.
|
notice_unable_delete_version: Невозможно удалить версию.
|
||||||
|
|
||||||
permission_add_issues: Добавление задач
|
permission_add_issues: Добавление задач
|
||||||
|
@ -800,7 +800,7 @@ ru:
|
||||||
permission_add_messages: Отправка сообщений
|
permission_add_messages: Отправка сообщений
|
||||||
permission_browse_repository: Просмотр хранилища
|
permission_browse_repository: Просмотр хранилища
|
||||||
permission_comment_news: Комментирование новостей
|
permission_comment_news: Комментирование новостей
|
||||||
permission_commit_access: Разрешение фиксации
|
permission_commit_access: Изменение файлов в хранилище
|
||||||
permission_delete_issues: Удаление задач
|
permission_delete_issues: Удаление задач
|
||||||
permission_delete_messages: Удаление сообщений
|
permission_delete_messages: Удаление сообщений
|
||||||
permission_delete_own_messages: Удаление собственных сообщений
|
permission_delete_own_messages: Удаление собственных сообщений
|
||||||
|
@ -819,7 +819,7 @@ ru:
|
||||||
permission_log_time: Учет затраченного времени
|
permission_log_time: Учет затраченного времени
|
||||||
permission_view_changesets: Просмотр изменений хранилища
|
permission_view_changesets: Просмотр изменений хранилища
|
||||||
permission_view_time_entries: Просмотр затраченного времени
|
permission_view_time_entries: Просмотр затраченного времени
|
||||||
permission_manage_project_activities: Управление активностью проекта
|
permission_manage_project_activities: Управление типами действий для проекта
|
||||||
permission_manage_boards: Управление форумами
|
permission_manage_boards: Управление форумами
|
||||||
permission_manage_categories: Управление категориями задач
|
permission_manage_categories: Управление категориями задач
|
||||||
permission_manage_documents: Управление документами
|
permission_manage_documents: Управление документами
|
||||||
|
@ -857,13 +857,13 @@ ru:
|
||||||
project_module_gantt: Диаграмма Ганта
|
project_module_gantt: Диаграмма Ганта
|
||||||
project_module_calendar: Календарь
|
project_module_calendar: Календарь
|
||||||
|
|
||||||
setting_activity_days_default: Количество дней, отображаемых в Активности
|
setting_activity_days_default: Количество дней, отображаемых в Действиях
|
||||||
setting_app_subtitle: Подзаголовок приложения
|
setting_app_subtitle: Подзаголовок приложения
|
||||||
setting_app_title: Название приложения
|
setting_app_title: Название приложения
|
||||||
setting_attachment_max_size: Максимальный размер вложения
|
setting_attachment_max_size: Максимальный размер вложения
|
||||||
setting_autofetch_changesets: Автоматически следить за изменениями хранилища
|
setting_autofetch_changesets: Автоматически следить за изменениями хранилища
|
||||||
setting_autologin: Автоматический вход
|
setting_autologin: Автоматический вход
|
||||||
setting_bcc_recipients: Использовать скрытые списки (BCC)
|
setting_bcc_recipients: Использовать скрытые копии (BCC)
|
||||||
setting_cache_formatted_text: Кешировать форматированный текст
|
setting_cache_formatted_text: Кешировать форматированный текст
|
||||||
setting_commit_fix_keywords: Назначение ключевых слов
|
setting_commit_fix_keywords: Назначение ключевых слов
|
||||||
setting_commit_logs_encoding: Кодировка комментариев в хранилище
|
setting_commit_logs_encoding: Кодировка комментариев в хранилище
|
||||||
|
@ -881,19 +881,19 @@ ru:
|
||||||
setting_file_max_size_displayed: Максимальный размер текстового файла для отображения
|
setting_file_max_size_displayed: Максимальный размер текстового файла для отображения
|
||||||
setting_gravatar_enabled: Использовать аватар пользователя из Gravatar
|
setting_gravatar_enabled: Использовать аватар пользователя из Gravatar
|
||||||
setting_host_name: Имя компьютера
|
setting_host_name: Имя компьютера
|
||||||
setting_issue_list_default_columns: Колонки, отображаемые в списке задач по умолчанию
|
setting_issue_list_default_columns: Столбцы, отображаемые в списке задач по умолчанию
|
||||||
setting_issues_export_limit: Ограничение по экспортируемым задачам
|
setting_issues_export_limit: Ограничение по экспортируемым задачам
|
||||||
setting_login_required: Необходима аутентификация
|
setting_login_required: Необходима аутентификация
|
||||||
setting_mail_from: email адрес для передачи информации
|
setting_mail_from: Исходящий email адрес
|
||||||
setting_mail_handler_api_enabled: Включить веб-сервис для входящих сообщений
|
setting_mail_handler_api_enabled: Включить веб-сервис для входящих сообщений
|
||||||
setting_mail_handler_api_key: API ключ
|
setting_mail_handler_api_key: API ключ
|
||||||
setting_openid: Разрешить OpenID для входа и регистрации
|
setting_openid: Разрешить OpenID для входа и регистрации
|
||||||
setting_per_page_options: Количество строк на страницу
|
setting_per_page_options: Количество записей на страницу
|
||||||
setting_plain_text_mail: Только простой текст (без HTML)
|
setting_plain_text_mail: Только простой текст (без HTML)
|
||||||
setting_protocol: Протокол
|
setting_protocol: Протокол
|
||||||
setting_repositories_encodings: Кодировки хранилища
|
setting_repositories_encodings: Кодировки хранилища
|
||||||
setting_repository_log_display_limit: Максимальное количество редакций, отображаемых в журнале изменений
|
setting_repository_log_display_limit: Максимальное количество редакций, отображаемых в журнале изменений
|
||||||
setting_self_registration: Возможна саморегистрация
|
setting_self_registration: Саморегистрация
|
||||||
setting_sequential_project_identifiers: Генерировать последовательные идентификаторы проектов
|
setting_sequential_project_identifiers: Генерировать последовательные идентификаторы проектов
|
||||||
setting_sys_api_enabled: Включить веб-сервис для управления хранилищем
|
setting_sys_api_enabled: Включить веб-сервис для управления хранилищем
|
||||||
setting_text_formatting: Форматирование текста
|
setting_text_formatting: Форматирование текста
|
||||||
|
@ -907,14 +907,14 @@ ru:
|
||||||
status_registered: зарегистрирован
|
status_registered: зарегистрирован
|
||||||
|
|
||||||
text_are_you_sure_with_children: Удалить задачу и все ее подзадачи?
|
text_are_you_sure_with_children: Удалить задачу и все ее подзадачи?
|
||||||
text_are_you_sure: Подтвердите
|
text_are_you_sure: Вы уверены?
|
||||||
text_assign_time_entries_to_project: Прикрепить зарегистрированное время к проекту
|
text_assign_time_entries_to_project: Прикрепить зарегистрированное время к проекту
|
||||||
text_caracters_maximum: "Максимум %{count} символов(а)."
|
text_caracters_maximum: "Максимум %{count} символов(а)."
|
||||||
text_caracters_minimum: "Должно быть не менее %{count} символов."
|
text_caracters_minimum: "Должно быть не менее %{count} символов."
|
||||||
text_comma_separated: Допустимы несколько значений (через запятую).
|
text_comma_separated: Допустимы несколько значений (через запятую).
|
||||||
text_custom_field_possible_values_info: 'По одному значению в каждой строке'
|
text_custom_field_possible_values_info: 'По одному значению в каждой строке'
|
||||||
text_default_administrator_account_changed: Учетная запись администратора по умолчанию изменена
|
text_default_administrator_account_changed: Учетная запись администратора по умолчанию изменена
|
||||||
text_destroy_time_entries_question: Вы собираетесь удалить %{hours} часа(ов), прикрепленных за этой задачей.
|
text_destroy_time_entries_question: "На эту задачу зарегистрировано %{hours} часа(ов) затраченного времени. Что Вы хотите предпринять?"
|
||||||
text_destroy_time_entries: Удалить зарегистрированное время
|
text_destroy_time_entries: Удалить зарегистрированное время
|
||||||
text_diff_truncated: '... Этот diff ограничен, так как превышает максимальный отображаемый размер.'
|
text_diff_truncated: '... Этот diff ограничен, так как превышает максимальный отображаемый размер.'
|
||||||
text_email_delivery_not_configured: "Параметры работы с почтовым сервером не настроены и функция уведомления по email не активна.\nНастроить параметры для Вашего SMTP-сервера Вы можете в файле config/configuration.yml. Для применения изменений перезапустите приложение."
|
text_email_delivery_not_configured: "Параметры работы с почтовым сервером не настроены и функция уведомления по email не активна.\nНастроить параметры для Вашего SMTP-сервера Вы можете в файле config/configuration.yml. Для применения изменений перезапустите приложение."
|
||||||
|
@ -933,31 +933,31 @@ ru:
|
||||||
text_journal_set_to: "Параметр %{label} изменился на %{value}"
|
text_journal_set_to: "Параметр %{label} изменился на %{value}"
|
||||||
text_length_between: "Длина между %{min} и %{max} символов."
|
text_length_between: "Длина между %{min} и %{max} символов."
|
||||||
text_load_default_configuration: Загрузить конфигурацию по умолчанию
|
text_load_default_configuration: Загрузить конфигурацию по умолчанию
|
||||||
text_min_max_length_info: 0 означает отсутствие запретов
|
text_min_max_length_info: 0 означает отсутствие ограничений
|
||||||
text_no_configuration_data: "Роли, трекеры, статусы задач и оперативный план не были сконфигурированы.\nНастоятельно рекомендуется загрузить конфигурацию по-умолчанию. Вы сможете её изменить потом."
|
text_no_configuration_data: "Роли, трекеры, статусы задач и оперативный план не были сконфигурированы.\nНастоятельно рекомендуется загрузить конфигурацию по-умолчанию. Вы сможете её изменить потом."
|
||||||
text_plugin_assets_writable: Каталог для плагинов доступен по записи
|
text_plugin_assets_writable: Каталог модулей доступен для записи
|
||||||
text_project_destroy_confirmation: Вы настаиваете на удалении данного проекта и всей относящейся к нему информации?
|
text_project_destroy_confirmation: Вы настаиваете на удалении данного проекта и всей относящейся к нему информации?
|
||||||
text_project_identifier_info: 'Only lower case letters (a-z), numbers, dashes and underscores are allowed.<br />Once saved, the identifier can not be changed.'
|
text_project_identifier_info: 'Only lower case letters (a-z), numbers, dashes and underscores are allowed.<br />Once saved, the identifier can not be changed.'
|
||||||
text_reassign_time_entries: 'Перенести зарегистрированное время на следующую задачу:'
|
text_reassign_time_entries: 'Перенести зарегистрированное время на следующую задачу:'
|
||||||
text_regexp_info: напр. ^[A-Z0-9]+$
|
text_regexp_info: "например: ^[A-Z0-9]+$"
|
||||||
text_repository_usernames_mapping: "Выберите или обновите пользователя Redmine, связанного с найденными именами в журнале хранилища.\nПользователи с одинаковыми именами или email в Redmine и хранилище связываются автоматически."
|
text_repository_usernames_mapping: "Выберите или обновите пользователя Redmine, связанного с найденными именами в журнале хранилища.\nПользователи с одинаковыми именами или email в Redmine и хранилище связываются автоматически."
|
||||||
text_rmagick_available: Доступно использование RMagick (опционально)
|
text_rmagick_available: Доступно использование RMagick (опционально)
|
||||||
text_select_mail_notifications: Выберите действия, на которые будет отсылаться уведомление на электронную почту.
|
text_select_mail_notifications: Выберите действия, при которых будет отсылаться уведомление на электронную почту.
|
||||||
text_select_project_modules: 'Выберите модули, которые будут использованы в проекте:'
|
text_select_project_modules: 'Выберите модули, которые будут использованы в проекте:'
|
||||||
text_status_changed_by_changeset: "Реализовано в %{value} редакции."
|
text_status_changed_by_changeset: "Реализовано в %{value} редакции."
|
||||||
text_subprojects_destroy_warning: "Подпроекты: %{value} также будут удалены."
|
text_subprojects_destroy_warning: "Подпроекты: %{value} также будут удалены."
|
||||||
text_tip_issue_begin_day: дата начала задачи
|
text_tip_issue_begin_day: дата начала задачи
|
||||||
text_tip_issue_begin_end_day: начало задачи и окончание ее в этот день
|
text_tip_issue_begin_end_day: начало задачи и окончание ее в этот же день
|
||||||
text_tip_issue_end_day: дата завершения задачи
|
text_tip_issue_end_day: дата завершения задачи
|
||||||
text_tracker_no_workflow: Для этого трекера последовательность действий не определена
|
text_tracker_no_workflow: Для этого трекера последовательность действий не определена
|
||||||
text_unallowed_characters: Запрещенные символы
|
text_unallowed_characters: Запрещенные символы
|
||||||
text_user_mail_option: "Для невыбранных проектов, Вы будете получать уведомления только о том что просматриваете или в чем участвуете (например, вопросы, автором которых Вы являетесь или которые Вам назначены)."
|
text_user_mail_option: "Для невыбранных проектов, Вы будете получать уведомления только о том, что просматриваете или в чем участвуете (например, задачи, автором которых Вы являетесь, или которые Вам назначены)."
|
||||||
text_user_wrote: "%{value} писал(а):"
|
text_user_wrote: "%{value} писал(а):"
|
||||||
text_wiki_destroy_confirmation: Вы уверены, что хотите удалить данную Wiki и все ее содержимое?
|
text_wiki_destroy_confirmation: Вы уверены, что хотите удалить данную Wiki и все ее содержимое?
|
||||||
text_workflow_edit: Выберите роль и трекер для редактирования последовательности состояний
|
text_workflow_edit: Выберите роль и трекер для редактирования последовательности состояний
|
||||||
|
|
||||||
warning_attachments_not_saved: "%{count} файл(ов) невозможно сохранить."
|
warning_attachments_not_saved: "%{count} файл(ов) невозможно сохранить."
|
||||||
text_wiki_page_destroy_question: Эта страница имеет %{descendants} дочерних страниц и их потомков. Что вы хотите сделать?
|
text_wiki_page_destroy_question: Эта страница имеет %{descendants} дочерних страниц и их потомков. Что вы хотите предпринять?
|
||||||
text_wiki_page_reassign_children: Переопределить дочерние страницы на текущую страницу
|
text_wiki_page_reassign_children: Переопределить дочерние страницы на текущую страницу
|
||||||
text_wiki_page_nullify_children: Сделать дочерние страницы главными страницами
|
text_wiki_page_nullify_children: Сделать дочерние страницы главными страницами
|
||||||
text_wiki_page_destroy_children: Удалить дочерние страницы и всех их потомков
|
text_wiki_page_destroy_children: Удалить дочерние страницы и всех их потомков
|
||||||
|
@ -975,14 +975,14 @@ ru:
|
||||||
label_tag: Метка
|
label_tag: Метка
|
||||||
label_branch: Ветвь
|
label_branch: Ветвь
|
||||||
error_no_tracker_in_project: С этим проектом не ассоциирован ни один трекер. Проверьте настройки проекта.
|
error_no_tracker_in_project: С этим проектом не ассоциирован ни один трекер. Проверьте настройки проекта.
|
||||||
error_no_default_issue_status: Не определен статус задача по умолчанию. Проверьте настройки (см. "Администрирование -> Статусы задачи").
|
error_no_default_issue_status: Не определен статус задач по умолчанию. Проверьте настройки (см. "Администрирование -> Статусы задач").
|
||||||
label_group_plural: Группы
|
label_group_plural: Группы
|
||||||
label_group: Группа
|
label_group: Группа
|
||||||
label_group_new: Новая группа
|
label_group_new: Новая группа
|
||||||
label_time_entry_plural: Затраченное время
|
label_time_entry_plural: Затраченное время
|
||||||
text_journal_added: "%{label} %{value} добавлен"
|
text_journal_added: "%{label} %{value} добавлен"
|
||||||
field_active: Активно
|
field_active: Активно
|
||||||
enumeration_system_activity: Системная активность
|
enumeration_system_activity: Системное
|
||||||
permission_delete_issue_watchers: Удаление наблюдателей
|
permission_delete_issue_watchers: Удаление наблюдателей
|
||||||
version_status_closed: закрыт
|
version_status_closed: закрыт
|
||||||
version_status_locked: заблокирован
|
version_status_locked: заблокирован
|
||||||
|
@ -998,7 +998,7 @@ ru:
|
||||||
label_version_sharing_descendants: С подпроектами
|
label_version_sharing_descendants: С подпроектами
|
||||||
label_version_sharing_tree: С деревом проектов
|
label_version_sharing_tree: С деревом проектов
|
||||||
label_version_sharing_none: Без совместного использования
|
label_version_sharing_none: Без совместного использования
|
||||||
error_can_not_archive_project: Этот проект не может быть архивирован
|
error_can_not_archive_project: Этот проект не может быть заархивирован
|
||||||
button_duplicate: Дублировать
|
button_duplicate: Дублировать
|
||||||
button_copy_and_follow: Копировать и продолжить
|
button_copy_and_follow: Копировать и продолжить
|
||||||
label_copy_source: Источник
|
label_copy_source: Источник
|
||||||
|
@ -1009,7 +1009,7 @@ ru:
|
||||||
setting_issue_done_ratio_issue_field: Готовность задачи
|
setting_issue_done_ratio_issue_field: Готовность задачи
|
||||||
label_copy_same_as_target: То же, что и у цели
|
label_copy_same_as_target: То же, что и у цели
|
||||||
label_copy_target: Цель
|
label_copy_target: Цель
|
||||||
notice_issue_done_ratios_updated: Параметр готовность задач обновлен.
|
notice_issue_done_ratios_updated: Параметр «готовность» обновлен.
|
||||||
error_workflow_copy_source: Выберите исходный трекер или роль
|
error_workflow_copy_source: Выберите исходный трекер или роль
|
||||||
label_update_issue_done_ratios: Обновить готовность задач
|
label_update_issue_done_ratios: Обновить готовность задач
|
||||||
setting_start_of_week: День начала недели
|
setting_start_of_week: День начала недели
|
||||||
|
@ -1045,14 +1045,14 @@ ru:
|
||||||
notice_not_authorized_archived_project: Запрашиваемый проект был архивирован.
|
notice_not_authorized_archived_project: Запрашиваемый проект был архивирован.
|
||||||
label_principal_search: "Найти пользователя или группу:"
|
label_principal_search: "Найти пользователя или группу:"
|
||||||
label_user_search: "Найти пользователя:"
|
label_user_search: "Найти пользователя:"
|
||||||
field_visible: Видимый
|
field_visible: Видимое
|
||||||
setting_emails_header: Заголовок письма
|
setting_emails_header: Заголовок письма
|
||||||
|
|
||||||
setting_commit_logtime_activity_id: Activity for logged time
|
setting_commit_logtime_activity_id: Действие для учета времени
|
||||||
text_time_logged_by_changeset: Applied in changeset %{value}.
|
text_time_logged_by_changeset: Учтено в редакции %{value}.
|
||||||
setting_commit_logtime_enabled: Enable time logging
|
setting_commit_logtime_enabled: Включить учет времени
|
||||||
notice_gantt_chart_truncated: The chart was truncated because it exceeds the maximum number of items that can be displayed (%{max})
|
notice_gantt_chart_truncated: Диаграмма будет усечена, поскольку превышено максимальное кол-во элементов, которые могут отображаться (%{max})
|
||||||
setting_gantt_items_limit: Maximum number of items displayed on the gantt chart
|
setting_gantt_items_limit: Максимальное кол-во элементов отображаемых на диаграмме Ганта
|
||||||
text_powered_by: Powered by %{link}
|
text_powered_by: Powered by %{link}
|
||||||
label_cvs_module: Модуль
|
label_cvs_module: Модуль
|
||||||
label_filesystem_path: Каталог
|
label_filesystem_path: Каталог
|
||||||
|
@ -1061,19 +1061,20 @@ ru:
|
||||||
label_cvs_path: CVSROOT
|
label_cvs_path: CVSROOT
|
||||||
label_git_path: Путь к каталогу .git
|
label_git_path: Путь к каталогу .git
|
||||||
label_mercurial_path: Каталог
|
label_mercurial_path: Каталог
|
||||||
label_my_queries: My custom queries
|
label_my_queries: Мои сохраненные запросы
|
||||||
label_additional_workflow_transitions_for_assignee: Additional transitions allowed when the user is the assignee
|
label_additional_workflow_transitions_for_assignee: Дополнительные переходы, когда пользователь является исполнителем
|
||||||
text_journal_changed_no_detail: "%{label} updated"
|
text_journal_changed_no_detail: "%{label} updated"
|
||||||
button_expand_all: Expand all
|
button_expand_all: Развернуть все
|
||||||
button_collapse_all: Collapse all
|
button_collapse_all: Свернуть все
|
||||||
label_additional_workflow_transitions_for_author: Additional transitions allowed when the user is the author
|
label_additional_workflow_transitions_for_author: Дополнительные переходы, когда пользователь является автором
|
||||||
field_effective_date: Due date
|
field_effective_date: Due date
|
||||||
label_news_comment_added: Comment added to a news
|
label_news_comment_added: Comment added to a news
|
||||||
field_warn_on_leaving_unsaved: Warn me when leaving a page with unsaved text
|
field_warn_on_leaving_unsaved: Предупреждать при закрытии страницы с несохраненным текстом
|
||||||
text_warn_on_leaving_unsaved: The current page contains unsaved text that will be lost if you leave this page.
|
text_warn_on_leaving_unsaved: Текущая страница содержит несохраненный текст, который будет потерян, если вы покинете эту страницу.
|
||||||
text_default_encoding: "Default: UTF-8"
|
text_default_encoding: "Default: UTF-8"
|
||||||
text_git_repo_example: a bare and local repository (e.g. /gitrepo, c:\gitrepo)
|
text_git_repo_example: a bare and local repository (e.g. /gitrepo, c:\gitrepo)
|
||||||
label_notify_member_plural: Email issue updates
|
label_notify_member_plural: Email issue updates
|
||||||
label_path_encoding: Path encoding
|
label_path_encoding: Path encoding
|
||||||
text_mercurial_repo_example: local repository (e.g. /hgrepo, c:\hgrepo)
|
text_mercurial_repo_example: local repository (e.g. /hgrepo, c:\hgrepo)
|
||||||
label_diff: diff
|
label_diff: diff
|
||||||
|
setting_issue_startdate_is_adddate: Use current date as start date for new issues
|
||||||
|
|
|
@ -959,3 +959,4 @@ sk:
|
||||||
label_path_encoding: Path encoding
|
label_path_encoding: Path encoding
|
||||||
text_mercurial_repo_example: local repository (e.g. /hgrepo, c:\hgrepo)
|
text_mercurial_repo_example: local repository (e.g. /hgrepo, c:\hgrepo)
|
||||||
label_diff: diff
|
label_diff: diff
|
||||||
|
setting_issue_startdate_is_adddate: Use current date as start date for new issues
|
||||||
|
|
|
@ -960,3 +960,4 @@ sl:
|
||||||
label_path_encoding: Path encoding
|
label_path_encoding: Path encoding
|
||||||
text_mercurial_repo_example: local repository (e.g. /hgrepo, c:\hgrepo)
|
text_mercurial_repo_example: local repository (e.g. /hgrepo, c:\hgrepo)
|
||||||
label_diff: diff
|
label_diff: diff
|
||||||
|
setting_issue_startdate_is_adddate: Use current date as start date for new issues
|
||||||
|
|
|
@ -964,3 +964,4 @@ sr-YU:
|
||||||
label_path_encoding: Path encoding
|
label_path_encoding: Path encoding
|
||||||
text_mercurial_repo_example: local repository (e.g. /hgrepo, c:\hgrepo)
|
text_mercurial_repo_example: local repository (e.g. /hgrepo, c:\hgrepo)
|
||||||
label_diff: diff
|
label_diff: diff
|
||||||
|
setting_issue_startdate_is_adddate: Use current date as start date for new issues
|
||||||
|
|
|
@ -965,3 +965,4 @@ sr:
|
||||||
label_path_encoding: Path encoding
|
label_path_encoding: Path encoding
|
||||||
text_mercurial_repo_example: local repository (e.g. /hgrepo, c:\hgrepo)
|
text_mercurial_repo_example: local repository (e.g. /hgrepo, c:\hgrepo)
|
||||||
label_diff: diff
|
label_diff: diff
|
||||||
|
setting_issue_startdate_is_adddate: Use current date as start date for new issues
|
||||||
|
|
|
@ -1006,3 +1006,4 @@ sv:
|
||||||
label_path_encoding: Path encoding
|
label_path_encoding: Path encoding
|
||||||
text_mercurial_repo_example: local repository (e.g. /hgrepo, c:\hgrepo)
|
text_mercurial_repo_example: local repository (e.g. /hgrepo, c:\hgrepo)
|
||||||
label_diff: diff
|
label_diff: diff
|
||||||
|
setting_issue_startdate_is_adddate: Use current date as start date for new issues
|
||||||
|
|
|
@ -961,3 +961,4 @@ th:
|
||||||
label_path_encoding: Path encoding
|
label_path_encoding: Path encoding
|
||||||
text_mercurial_repo_example: local repository (e.g. /hgrepo, c:\hgrepo)
|
text_mercurial_repo_example: local repository (e.g. /hgrepo, c:\hgrepo)
|
||||||
label_diff: diff
|
label_diff: diff
|
||||||
|
setting_issue_startdate_is_adddate: Use current date as start date for new issues
|
||||||
|
|
|
@ -983,3 +983,4 @@ tr:
|
||||||
label_path_encoding: Path encoding
|
label_path_encoding: Path encoding
|
||||||
text_mercurial_repo_example: local repository (e.g. /hgrepo, c:\hgrepo)
|
text_mercurial_repo_example: local repository (e.g. /hgrepo, c:\hgrepo)
|
||||||
label_diff: diff
|
label_diff: diff
|
||||||
|
setting_issue_startdate_is_adddate: Use current date as start date for new issues
|
||||||
|
|
|
@ -960,3 +960,4 @@ uk:
|
||||||
label_path_encoding: Path encoding
|
label_path_encoding: Path encoding
|
||||||
text_mercurial_repo_example: local repository (e.g. /hgrepo, c:\hgrepo)
|
text_mercurial_repo_example: local repository (e.g. /hgrepo, c:\hgrepo)
|
||||||
label_diff: diff
|
label_diff: diff
|
||||||
|
setting_issue_startdate_is_adddate: Use current date as start date for new issues
|
||||||
|
|
|
@ -1015,3 +1015,4 @@ vi:
|
||||||
label_path_encoding: Path encoding
|
label_path_encoding: Path encoding
|
||||||
text_mercurial_repo_example: local repository (e.g. /hgrepo, c:\hgrepo)
|
text_mercurial_repo_example: local repository (e.g. /hgrepo, c:\hgrepo)
|
||||||
label_diff: diff
|
label_diff: diff
|
||||||
|
setting_issue_startdate_is_adddate: Use current date as start date for new issues
|
||||||
|
|
|
@ -1046,3 +1046,4 @@
|
||||||
label_path_encoding: Path encoding
|
label_path_encoding: Path encoding
|
||||||
text_mercurial_repo_example: local repository (e.g. /hgrepo, c:\hgrepo)
|
text_mercurial_repo_example: local repository (e.g. /hgrepo, c:\hgrepo)
|
||||||
label_diff: diff
|
label_diff: diff
|
||||||
|
setting_issue_startdate_is_adddate: Use current date as start date for new issues
|
||||||
|
|
|
@ -978,3 +978,4 @@ zh:
|
||||||
label_path_encoding: Path encoding
|
label_path_encoding: Path encoding
|
||||||
text_mercurial_repo_example: local repository (e.g. /hgrepo, c:\hgrepo)
|
text_mercurial_repo_example: local repository (e.g. /hgrepo, c:\hgrepo)
|
||||||
label_diff: diff
|
label_diff: diff
|
||||||
|
setting_issue_startdate_is_adddate: Use current date as start date for new issues
|
||||||
|
|
|
@ -178,3 +178,5 @@ default_notification_option:
|
||||||
default: 'only_my_events'
|
default: 'only_my_events'
|
||||||
emails_header:
|
emails_header:
|
||||||
default: ''
|
default: ''
|
||||||
|
issue_startdate_is_adddate:
|
||||||
|
default: 1
|
|
@ -12,18 +12,24 @@
|
||||||
#++
|
#++
|
||||||
|
|
||||||
class MergeWikiVersionsWithJournals < ActiveRecord::Migration
|
class MergeWikiVersionsWithJournals < ActiveRecord::Migration
|
||||||
def self.up
|
# This is provided here for migrating up after the WikiContent::Version class has been removed
|
||||||
# This is provided here for migrating up after the WikiContent::Version class has been removed
|
class WikiContent < ActiveRecord::Base
|
||||||
unless WikiContent.const_defined?("Version")
|
class Version < ActiveRecord::Base
|
||||||
WikiContent.const_set("Version", Class.new(ActiveRecord::Base))
|
|
||||||
end
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
def self.up
|
||||||
# avoid touching WikiContent on journal creation
|
# avoid touching WikiContent on journal creation
|
||||||
WikiContentJournal.class_exec {
|
WikiContentJournal.class_exec {
|
||||||
def touch_journaled_after_creation
|
def touch_journaled_after_creation
|
||||||
end
|
end
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# assign all wiki_contents w/o author to the anonymous user - they used to
|
||||||
|
# work w/o author but don't any more.
|
||||||
|
WikiContent.update_all({:author_id => User.anonymous.id}, :author_id => nil)
|
||||||
|
WikiContent::Version.update_all({:author_id => User.anonymous.id}, :author_id => nil)
|
||||||
|
|
||||||
WikiContent::Version.find_by_sql("SELECT * FROM wiki_content_versions").each do |wv|
|
WikiContent::Version.find_by_sql("SELECT * FROM wiki_content_versions").each do |wv|
|
||||||
journal = WikiContentJournal.create!(:journaled_id => wv.wiki_content_id, :user_id => wv.author_id,
|
journal = WikiContentJournal.create!(:journaled_id => wv.wiki_content_id, :user_id => wv.author_id,
|
||||||
:notes => wv.comments, :created_at => wv.updated_on, :activity_type => "wiki_edits")
|
:notes => wv.comments, :created_at => wv.updated_on, :activity_type => "wiki_edits")
|
||||||
|
|
|
@ -1,5 +1,15 @@
|
||||||
= ChiliProject changelog
|
= ChiliProject changelog
|
||||||
|
|
||||||
|
== 2011-10-04 v2.3.0
|
||||||
|
|
||||||
|
* Bug #594: Wiki Diff somehow off
|
||||||
|
* Bug #617: Gemfile: Missing database related platform block for Windows + RubyInstaller
|
||||||
|
* Bug #619: Redmine.pm allows anonymous read access to repositories even if Anonymous role prohibits it
|
||||||
|
* Bug #633: Update from 1.x to 2.x impossible under rare but valid circumstances
|
||||||
|
* Feature #355: Turn on/off the if the start date will autofill by default
|
||||||
|
* Feature #566: The "Watcher" filter should show all users.
|
||||||
|
* Feature #644: Add Check/Uncheck all links to project form
|
||||||
|
|
||||||
== 2011-08-27 v2.2.0
|
== 2011-08-27 v2.2.0
|
||||||
|
|
||||||
* Bug #256: requires_redmine_plugin should defer loading plugins if not all dependencies are met
|
* Bug #256: requires_redmine_plugin should defer loading plugins if not all dependencies are met
|
||||||
|
|
|
@ -318,7 +318,7 @@ sub access_handler {
|
||||||
my $project_id = get_project_identifier($r);
|
my $project_id = get_project_identifier($r);
|
||||||
|
|
||||||
$r->set_handlers(PerlAuthenHandler => [\&OK])
|
$r->set_handlers(PerlAuthenHandler => [\&OK])
|
||||||
if is_public_project($project_id, $r);
|
if is_public_project($project_id, $r) && anonymous_role_allows_browse_repository($r);
|
||||||
|
|
||||||
return OK
|
return OK
|
||||||
}
|
}
|
||||||
|
@ -390,6 +390,29 @@ sub is_public_project {
|
||||||
$ret;
|
$ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
sub anonymous_role_allows_browse_repository {
|
||||||
|
my $r = shift;
|
||||||
|
|
||||||
|
my $dbh = connect_database($r);
|
||||||
|
my $sth = $dbh->prepare(
|
||||||
|
"SELECT permissions FROM roles WHERE builtin = 2;"
|
||||||
|
);
|
||||||
|
|
||||||
|
$sth->execute();
|
||||||
|
my $ret = 0;
|
||||||
|
if (my @row = $sth->fetchrow_array) {
|
||||||
|
if ($row[0] =~ /:browse_repository/) {
|
||||||
|
$ret = 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
$sth->finish();
|
||||||
|
undef $sth;
|
||||||
|
$dbh->disconnect();
|
||||||
|
undef $dbh;
|
||||||
|
|
||||||
|
$ret;
|
||||||
|
}
|
||||||
|
|
||||||
# perhaps we should use repository right (other read right) to check public access.
|
# perhaps we should use repository right (other read right) to check public access.
|
||||||
# it could be faster BUT it doesn't work for the moment.
|
# it could be faster BUT it doesn't work for the moment.
|
||||||
# sub is_public_project_by_file {
|
# sub is_public_project_by_file {
|
||||||
|
|
|
@ -17,7 +17,7 @@ module ChiliProject
|
||||||
module VERSION #:nodoc:
|
module VERSION #:nodoc:
|
||||||
|
|
||||||
MAJOR = 2
|
MAJOR = 2
|
||||||
MINOR = 2
|
MINOR = 3
|
||||||
PATCH = 0
|
PATCH = 0
|
||||||
TINY = PATCH # Redmine compat
|
TINY = PATCH # Redmine compat
|
||||||
|
|
||||||
|
|
|
@ -444,6 +444,101 @@ class QueryTest < ActiveSupport::TestCase
|
||||||
|
|
||||||
end
|
end
|
||||||
|
|
||||||
|
context "'watcher_id' filter" do
|
||||||
|
context "globally" do
|
||||||
|
context "for an anonymous user" do
|
||||||
|
should "not be present" do
|
||||||
|
assert ! @query.available_filters.keys.include?("watcher_id")
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
context "for a logged in user" do
|
||||||
|
setup do
|
||||||
|
User.current = User.find 1
|
||||||
|
end
|
||||||
|
|
||||||
|
teardown do
|
||||||
|
User.current = nil
|
||||||
|
end
|
||||||
|
|
||||||
|
should "be present" do
|
||||||
|
assert @query.available_filters.keys.include?("watcher_id")
|
||||||
|
end
|
||||||
|
|
||||||
|
should "be a list" do
|
||||||
|
assert_equal :list, @query.available_filters["watcher_id"][:type]
|
||||||
|
end
|
||||||
|
|
||||||
|
should "have a list of active users as values" do
|
||||||
|
assert @query.available_filters["watcher_id"][:values].include?(["<< me >>", "me"])
|
||||||
|
assert @query.available_filters["watcher_id"][:values].include?(["John Smith", "2"])
|
||||||
|
assert @query.available_filters["watcher_id"][:values].include?(["Dave Lopper", "3"])
|
||||||
|
assert @query.available_filters["watcher_id"][:values].include?(["redMine Admin", "1"])
|
||||||
|
assert @query.available_filters["watcher_id"][:values].include?(["User Misc", "8"])
|
||||||
|
end
|
||||||
|
|
||||||
|
should "not include active users not member of any project" do
|
||||||
|
assert ! @query.available_filters["watcher_id"][:values].include?(['Robert Hill','4'])
|
||||||
|
end
|
||||||
|
|
||||||
|
should "not include locked users as values" do
|
||||||
|
assert ! @query.available_filters["watcher_id"][:values].include?(['Dave2 Lopper2','5'])
|
||||||
|
end
|
||||||
|
|
||||||
|
should "not include the anonymous user as values" do
|
||||||
|
assert ! @query.available_filters["watcher_id"][:values].include?(['Anonymous','6'])
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
context "in a project" do
|
||||||
|
setup do
|
||||||
|
@query.project = Project.find(1)
|
||||||
|
end
|
||||||
|
|
||||||
|
context "for an anonymous user" do
|
||||||
|
should "not be present" do
|
||||||
|
assert ! @query.available_filters.keys.include?("watcher_id")
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
context "for a logged in user" do
|
||||||
|
setup do
|
||||||
|
User.current = User.find 1
|
||||||
|
end
|
||||||
|
|
||||||
|
teardown do
|
||||||
|
User.current = nil
|
||||||
|
end
|
||||||
|
|
||||||
|
should "be present" do
|
||||||
|
assert @query.available_filters.keys.include?("watcher_id")
|
||||||
|
end
|
||||||
|
|
||||||
|
should "be a list" do
|
||||||
|
assert_equal :list, @query.available_filters["watcher_id"][:type]
|
||||||
|
end
|
||||||
|
|
||||||
|
should "have a list of the project members as values" do
|
||||||
|
assert @query.available_filters["watcher_id"][:values].include?(["<< me >>", "me"])
|
||||||
|
assert @query.available_filters["watcher_id"][:values].include?(["John Smith", "2"])
|
||||||
|
assert @query.available_filters["watcher_id"][:values].include?(["Dave Lopper", "3"])
|
||||||
|
end
|
||||||
|
|
||||||
|
should "not include non-project members as values" do
|
||||||
|
assert ! @query.available_filters["watcher_id"][:values].include?(["redMine Admin", "1"])
|
||||||
|
end
|
||||||
|
|
||||||
|
should "not include locked project members as values" do
|
||||||
|
assert ! @query.available_filters["watcher_id"][:values].include?(['Dave2 Lopper2','5'])
|
||||||
|
end
|
||||||
|
|
||||||
|
should "not include the anonymous user as values" do
|
||||||
|
assert ! @query.available_filters["watcher_id"][:values].include?(['Anonymous','6'])
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
context "#statement" do
|
context "#statement" do
|
||||||
|
|
Loading…
Reference in New Issue