Compare commits
67
Commits
master
...
2.2-stable
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
c4164a0a7f | ||
|
|
504a767028 | ||
|
|
0eaba11e20 | ||
|
|
c2eb28b901 | ||
|
|
f09ea7b65a | ||
|
|
878e85848f | ||
|
|
4b010fb653 | ||
|
|
5f96e64cd7 | ||
|
|
ec1cb4632c | ||
|
|
e4a1b1324a | ||
|
|
6991874911 | ||
|
|
17bd53ae43 | ||
|
|
559dc4f523 | ||
|
|
6dcd50047d | ||
|
|
252df8dfc0 | ||
|
|
cbd3b057e0 | ||
|
|
d094dea0ec | ||
|
|
3a98a14250 | ||
|
|
ecef96a6b9 | ||
|
|
0951522247 | ||
|
|
42cc2d322a | ||
|
|
0367c323de | ||
|
|
80be82ae50 | ||
|
|
ebed927de5 | ||
|
|
cbd069118a | ||
|
|
a211d1be7d | ||
|
|
0a8e0a3bed | ||
|
|
58cf34dea5 | ||
|
|
594a7bde95 | ||
|
|
c5e257d82b | ||
|
|
56b12b289f | ||
|
|
c99eef1aff | ||
|
|
ed891e2733 | ||
|
|
4620b8b8db | ||
|
|
98eb2edd25 | ||
|
|
ed7318fb8d | ||
|
|
5a1a2f5855 | ||
|
|
f1314278d5 | ||
|
|
3a8b872a09 | ||
|
|
56290979fc | ||
|
|
6e0fb415a7 | ||
|
|
f26654b29f | ||
|
|
5c62c1cf95 | ||
|
|
2d6adbd7ff | ||
|
|
b0ccaffe1b | ||
|
|
2c37617973 | ||
|
|
567eb70fdb | ||
|
|
de63102925 | ||
|
|
a8fcf9389e | ||
|
|
3e4b36de83 | ||
|
|
edd584d59e | ||
|
|
e2b27ab696 | ||
|
|
1968d039ee | ||
|
|
fddc33cd45 | ||
|
|
29518ba0cf | ||
|
|
acd27b9eb1 | ||
|
|
6445b5997c | ||
|
|
416d33973f | ||
|
|
82c7dc11d2 | ||
|
|
d22f782d3f | ||
|
|
3717fdfa79 | ||
|
|
9d3d932703 | ||
|
|
3a379ce4b9 | ||
|
|
daa77f0109 | ||
|
|
c0d66d626b | ||
|
|
bf02b76ca3 | ||
|
|
75e02ca486 |
@@ -1,6 +1,6 @@
|
|||||||
source 'http://rubygems.org'
|
source 'http://rubygems.org'
|
||||||
|
|
||||||
gem 'rails', '3.2.9'
|
gem "rails", "3.2.13"
|
||||||
gem "jquery-rails", "~> 2.0.2"
|
gem "jquery-rails", "~> 2.0.2"
|
||||||
gem "i18n", "~> 0.6.0"
|
gem "i18n", "~> 0.6.0"
|
||||||
gem "coderay", "~> 1.0.6"
|
gem "coderay", "~> 1.0.6"
|
||||||
@@ -79,7 +79,7 @@ group :test do
|
|||||||
platforms = [:mri_19]
|
platforms = [:mri_19]
|
||||||
platforms << :jruby if defined?(JRUBY_VERSION) && JRUBY_VERSION >= "1.7"
|
platforms << :jruby if defined?(JRUBY_VERSION) && JRUBY_VERSION >= "1.7"
|
||||||
gem "test-unit", :platforms => platforms
|
gem "test-unit", :platforms => platforms
|
||||||
gem "mocha", "0.12.3"
|
gem "mocha", "~> 0.13.3"
|
||||||
end
|
end
|
||||||
|
|
||||||
local_gemfile = File.join(File.dirname(__FILE__), "Gemfile.local")
|
local_gemfile = File.join(File.dirname(__FILE__), "Gemfile.local")
|
||||||
|
|||||||
@@ -39,14 +39,18 @@ class BoardsController < ApplicationController
|
|||||||
sort_init 'updated_on', 'desc'
|
sort_init 'updated_on', 'desc'
|
||||||
sort_update 'created_on' => "#{Message.table_name}.created_on",
|
sort_update 'created_on' => "#{Message.table_name}.created_on",
|
||||||
'replies' => "#{Message.table_name}.replies_count",
|
'replies' => "#{Message.table_name}.replies_count",
|
||||||
'updated_on' => "#{Message.table_name}.updated_on"
|
'updated_on' => "COALESCE(last_replies_messages.created_on, #{Message.table_name}.created_on)"
|
||||||
|
|
||||||
@topic_count = @board.topics.count
|
@topic_count = @board.topics.count
|
||||||
@topic_pages = Paginator.new self, @topic_count, per_page_option, params['page']
|
@topic_pages = Paginator.new self, @topic_count, per_page_option, params['page']
|
||||||
@topics = @board.topics.reorder("#{Message.table_name}.sticky DESC").order(sort_clause).all(
|
@topics = @board.topics.
|
||||||
:include => [:author, {:last_reply => :author}],
|
reorder("#{Message.table_name}.sticky DESC").
|
||||||
:limit => @topic_pages.items_per_page,
|
includes(:last_reply).
|
||||||
:offset => @topic_pages.current.offset)
|
limit(@topic_pages.items_per_page).
|
||||||
|
offset(@topic_pages.current.offset).
|
||||||
|
order(sort_clause).
|
||||||
|
preload(:author, {:last_reply => :author}).
|
||||||
|
all
|
||||||
@message = Message.new(:board => @board)
|
@message = Message.new(:board => @board)
|
||||||
render :action => 'show', :layout => !request.xhr?
|
render :action => 'show', :layout => !request.xhr?
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -123,7 +123,7 @@ class MessagesController < ApplicationController
|
|||||||
|
|
||||||
private
|
private
|
||||||
def find_message
|
def find_message
|
||||||
find_board
|
return unless find_board
|
||||||
@message = @board.messages.find(params[:id], :include => :parent)
|
@message = @board.messages.find(params[:id], :include => :parent)
|
||||||
@topic = @message.root
|
@topic = @message.root
|
||||||
rescue ActiveRecord::RecordNotFound
|
rescue ActiveRecord::RecordNotFound
|
||||||
@@ -135,5 +135,6 @@ private
|
|||||||
@project = @board.project
|
@project = @board.project
|
||||||
rescue ActiveRecord::RecordNotFound
|
rescue ActiveRecord::RecordNotFound
|
||||||
render_404
|
render_404
|
||||||
|
nil
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -147,15 +147,16 @@ class MyController < ApplicationController
|
|||||||
# params[:block] : id of the block to add
|
# params[:block] : id of the block to add
|
||||||
def add_block
|
def add_block
|
||||||
block = params[:block].to_s.underscore
|
block = params[:block].to_s.underscore
|
||||||
(render :nothing => true; return) unless block && (BLOCKS.keys.include? block)
|
if block.present? && BLOCKS.key?(block)
|
||||||
@user = User.current
|
@user = User.current
|
||||||
layout = @user.pref[:my_page_layout] || {}
|
layout = @user.pref[:my_page_layout] || {}
|
||||||
# remove if already present in a group
|
# remove if already present in a group
|
||||||
%w(top left right).each {|f| (layout[f] ||= []).delete block }
|
%w(top left right).each {|f| (layout[f] ||= []).delete block }
|
||||||
# add it on top
|
# add it on top
|
||||||
layout['top'].unshift block
|
layout['top'].unshift block
|
||||||
@user.pref[:my_page_layout] = layout
|
@user.pref[:my_page_layout] = layout
|
||||||
@user.pref.save
|
@user.pref.save
|
||||||
|
end
|
||||||
redirect_to :action => 'page_layout'
|
redirect_to :action => 'page_layout'
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|||||||
@@ -26,7 +26,8 @@ class PreviewsController < ApplicationController
|
|||||||
if @description && @description.gsub(/(\r?\n|\n\r?)/, "\n") == @issue.description.to_s.gsub(/(\r?\n|\n\r?)/, "\n")
|
if @description && @description.gsub(/(\r?\n|\n\r?)/, "\n") == @issue.description.to_s.gsub(/(\r?\n|\n\r?)/, "\n")
|
||||||
@description = nil
|
@description = nil
|
||||||
end
|
end
|
||||||
@notes = (params[:issue] ? params[:issue][:notes] : nil)
|
# params[:notes] is useful for preview of notes in issue history
|
||||||
|
@notes = params[:notes] || (params[:issue] ? params[:issue][:notes] : nil)
|
||||||
else
|
else
|
||||||
@description = (params[:issue] ? params[:issue][:description] : nil)
|
@description = (params[:issue] ? params[:issue][:description] : nil)
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -597,8 +597,9 @@ module ApplicationHelper
|
|||||||
|
|
||||||
def parse_inline_attachments(text, project, obj, attr, only_path, options)
|
def parse_inline_attachments(text, project, obj, attr, only_path, options)
|
||||||
# when using an image link, try to use an attachment, if possible
|
# when using an image link, try to use an attachment, if possible
|
||||||
if options[:attachments] || (obj && obj.respond_to?(:attachments))
|
attachments = options[:attachments] || []
|
||||||
attachments = options[:attachments] || obj.attachments
|
attachments += obj.attachments if obj.respond_to?(:attachments)
|
||||||
|
if attachments.present?
|
||||||
text.gsub!(/src="([^\/"]+\.(bmp|gif|jpg|jpe|jpeg|png))"(\s+alt="([^"]*)")?/i) do |m|
|
text.gsub!(/src="([^\/"]+\.(bmp|gif|jpg|jpe|jpeg|png))"(\s+alt="([^"]*)")?/i) do |m|
|
||||||
filename, ext, alt, alttext = $1.downcase, $2, $3, $4
|
filename, ext, alt, alttext = $1.downcase, $2, $3, $4
|
||||||
# search for the picture in attachments
|
# search for the picture in attachments
|
||||||
@@ -703,10 +704,11 @@ module ApplicationHelper
|
|||||||
# identifier:document:"Some document"
|
# identifier:document:"Some document"
|
||||||
# identifier:version:1.0.0
|
# identifier:version:1.0.0
|
||||||
# identifier:source:some/file
|
# identifier:source:some/file
|
||||||
def parse_redmine_links(text, project, obj, attr, only_path, options)
|
def parse_redmine_links(text, default_project, obj, attr, only_path, options)
|
||||||
text.gsub!(%r{([\s\(,\-\[\>]|^)(!)?(([a-z0-9\-_]+):)?(attachment|document|version|forum|news|message|project|commit|source|export)?(((#)|((([a-z0-9\-]+)\|)?(r)))((\d+)((#note)?-(\d+))?)|(:)([^"\s<>][^\s<>]*?|"[^"]+?"))(?=(?=[[:punct:]][^A-Za-z0-9_/])|,|\s|\]|<|$)}) do |m|
|
text.gsub!(%r{([\s\(,\-\[\>]|^)(!)?(([a-z0-9\-_]+):)?(attachment|document|version|forum|news|message|project|commit|source|export)?(((#)|((([a-z0-9\-_]+)\|)?(r)))((\d+)((#note)?-(\d+))?)|(:)([^"\s<>][^\s<>]*?|"[^"]+?"))(?=(?=[[:punct:]][^A-Za-z0-9_/])|,|\s|\]|<|$)}) do |m|
|
||||||
leading, esc, project_prefix, project_identifier, prefix, repo_prefix, repo_identifier, sep, identifier, comment_suffix, comment_id = $1, $2, $3, $4, $5, $10, $11, $8 || $12 || $18, $14 || $19, $15, $17
|
leading, esc, project_prefix, project_identifier, prefix, repo_prefix, repo_identifier, sep, identifier, comment_suffix, comment_id = $1, $2, $3, $4, $5, $10, $11, $8 || $12 || $18, $14 || $19, $15, $17
|
||||||
link = nil
|
link = nil
|
||||||
|
project = default_project
|
||||||
if project_identifier
|
if project_identifier
|
||||||
project = Project.visible.find_by_identifier(project_identifier)
|
project = Project.visible.find_by_identifier(project_identifier)
|
||||||
end
|
end
|
||||||
@@ -792,7 +794,7 @@ module ApplicationHelper
|
|||||||
when 'commit', 'source', 'export'
|
when 'commit', 'source', 'export'
|
||||||
if project
|
if project
|
||||||
repository = nil
|
repository = nil
|
||||||
if name =~ %r{^(([a-z0-9\-]+)\|)(.+)$}
|
if name =~ %r{^(([a-z0-9\-_]+)\|)(.+)$}
|
||||||
repo_prefix, repo_identifier, name = $1, $2, $3
|
repo_prefix, repo_identifier, name = $1, $2, $3
|
||||||
repository = project.repositories.detect {|repo| repo.identifier == repo_identifier}
|
repository = project.repositories.detect {|repo| repo.identifier == repo_identifier}
|
||||||
else
|
else
|
||||||
@@ -819,7 +821,7 @@ module ApplicationHelper
|
|||||||
end
|
end
|
||||||
when 'attachment'
|
when 'attachment'
|
||||||
attachments = options[:attachments] || (obj && obj.respond_to?(:attachments) ? obj.attachments : nil)
|
attachments = options[:attachments] || (obj && obj.respond_to?(:attachments) ? obj.attachments : nil)
|
||||||
if attachments && attachment = attachments.detect {|a| a.filename == name }
|
if attachments && attachment = Attachment.latest_attach(attachments, name)
|
||||||
link = link_to h(attachment.filename), {:only_path => only_path, :controller => 'attachments', :action => 'download', :id => attachment},
|
link = link_to h(attachment.filename), {:only_path => only_path, :controller => 'attachments', :action => 'download', :id => attachment},
|
||||||
:class => 'attachment'
|
:class => 'attachment'
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -350,7 +350,10 @@ module IssuesHelper
|
|||||||
association = Issue.reflect_on_association(field.to_sym)
|
association = Issue.reflect_on_association(field.to_sym)
|
||||||
if association
|
if association
|
||||||
record = association.class_name.constantize.find_by_id(id)
|
record = association.class_name.constantize.find_by_id(id)
|
||||||
return record.name if record
|
if record
|
||||||
|
record.name.force_encoding('UTF-8') if record.name.respond_to?(:force_encoding)
|
||||||
|
return record.name
|
||||||
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
@@ -371,12 +374,16 @@ module IssuesHelper
|
|||||||
def issues_to_csv(issues, project, query, options={})
|
def issues_to_csv(issues, project, query, options={})
|
||||||
decimal_separator = l(:general_csv_decimal_separator)
|
decimal_separator = l(:general_csv_decimal_separator)
|
||||||
encoding = l(:general_csv_encoding)
|
encoding = l(:general_csv_encoding)
|
||||||
columns = (options[:columns] == 'all' ? query.available_columns : query.columns)
|
columns = (options[:columns] == 'all' ? query.available_inline_columns : query.inline_columns)
|
||||||
|
if options[:description]
|
||||||
|
if description = query.available_columns.detect {|q| q.name == :description}
|
||||||
|
columns << description
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
export = FCSV.generate(:col_sep => l(:general_csv_separator)) do |csv|
|
export = FCSV.generate(:col_sep => l(:general_csv_separator)) do |csv|
|
||||||
# csv header fields
|
# csv header fields
|
||||||
csv << [ "#" ] + columns.collect {|c| Redmine::CodesetUtil.from_utf8(c.caption.to_s, encoding) } +
|
csv << [ "#" ] + columns.collect {|c| Redmine::CodesetUtil.from_utf8(c.caption.to_s, encoding) }
|
||||||
(options[:description] ? [Redmine::CodesetUtil.from_utf8(l(:field_description), encoding)] : [])
|
|
||||||
|
|
||||||
# csv lines
|
# csv lines
|
||||||
issues.each do |issue|
|
issues.each do |issue|
|
||||||
@@ -398,8 +405,7 @@ module IssuesHelper
|
|||||||
end
|
end
|
||||||
s.to_s
|
s.to_s
|
||||||
end
|
end
|
||||||
csv << [ issue.id.to_s ] + col_values.collect {|c| Redmine::CodesetUtil.from_utf8(c.to_s, encoding) } +
|
csv << [ issue.id.to_s ] + col_values.collect {|c| Redmine::CodesetUtil.from_utf8(c.to_s, encoding) }
|
||||||
(options[:description] ? [Redmine::CodesetUtil.from_utf8(issue.description, encoding)] : [])
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
export
|
export
|
||||||
|
|||||||
@@ -50,6 +50,14 @@ module QueriesHelper
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def available_block_columns_tags(query)
|
||||||
|
tags = ''.html_safe
|
||||||
|
query.available_block_columns.each do |column|
|
||||||
|
tags << content_tag('label', check_box_tag('c[]', column.name.to_s, query.has_column?(column)) + " #{column.caption}", :class => 'inline')
|
||||||
|
end
|
||||||
|
tags
|
||||||
|
end
|
||||||
|
|
||||||
def column_header(column)
|
def column_header(column)
|
||||||
column.sortable ? sort_header_tag(column.name.to_s, :caption => column.caption,
|
column.sortable ? sort_header_tag(column.name.to_s, :caption => column.caption,
|
||||||
:default_order => column.default_order) :
|
:default_order => column.default_order) :
|
||||||
@@ -70,6 +78,8 @@ module QueriesHelper
|
|||||||
when 'String'
|
when 'String'
|
||||||
if column.name == :subject
|
if column.name == :subject
|
||||||
link_to(h(value), :controller => 'issues', :action => 'show', :id => issue)
|
link_to(h(value), :controller => 'issues', :action => 'show', :id => issue)
|
||||||
|
elsif column.name == :description
|
||||||
|
issue.description? ? content_tag('div', textilizable(issue, :description), :class => "wiki") : ''
|
||||||
else
|
else
|
||||||
h(value)
|
h(value)
|
||||||
end
|
end
|
||||||
@@ -77,14 +87,14 @@ module QueriesHelper
|
|||||||
format_time(value)
|
format_time(value)
|
||||||
when 'Date'
|
when 'Date'
|
||||||
format_date(value)
|
format_date(value)
|
||||||
when 'Fixnum', 'Float'
|
when 'Fixnum'
|
||||||
if column.name == :done_ratio
|
if column.name == :done_ratio
|
||||||
progress_bar(value, :width => '80px')
|
progress_bar(value, :width => '80px')
|
||||||
elsif column.name == :spent_hours
|
|
||||||
sprintf "%.2f", value
|
|
||||||
else
|
else
|
||||||
h(value.to_s)
|
value.to_s
|
||||||
end
|
end
|
||||||
|
when 'Float'
|
||||||
|
sprintf "%.2f", value
|
||||||
when 'User'
|
when 'User'
|
||||||
link_to_user value
|
link_to_user value
|
||||||
when 'Project'
|
when 'Project'
|
||||||
|
|||||||
@@ -158,7 +158,13 @@ class CustomField < ActiveRecord::Base
|
|||||||
possible_values_options = possible_values_options(customized)
|
possible_values_options = possible_values_options(customized)
|
||||||
if possible_values_options.present?
|
if possible_values_options.present?
|
||||||
keyword = keyword.to_s.downcase
|
keyword = keyword.to_s.downcase
|
||||||
possible_values_options.detect {|text, id| text.downcase == keyword}.try(:last)
|
if v = possible_values_options.detect {|text, id| text.downcase == keyword}
|
||||||
|
if v.is_a?(Array)
|
||||||
|
v.last
|
||||||
|
else
|
||||||
|
v
|
||||||
|
end
|
||||||
|
end
|
||||||
else
|
else
|
||||||
keyword
|
keyword
|
||||||
end
|
end
|
||||||
|
|||||||
+1
-1
@@ -418,7 +418,7 @@ class Issue < ActiveRecord::Base
|
|||||||
|
|
||||||
if attrs['parent_issue_id'].present?
|
if attrs['parent_issue_id'].present?
|
||||||
s = attrs['parent_issue_id'].to_s
|
s = attrs['parent_issue_id'].to_s
|
||||||
unless (m = s.match(%r{\A#?(\d+)\z})) && Issue.visible(user).exists?(m[1])
|
unless (m = s.match(%r{\A#?(\d+)\z})) && (m[1] == parent_id.to_s || Issue.visible(user).exists?(m[1]))
|
||||||
@invalid_parent_issue_id = attrs.delete('parent_issue_id')
|
@invalid_parent_issue_id = attrs.delete('parent_issue_id')
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -249,26 +249,9 @@ class MailHandler < ActionMailer::Base
|
|||||||
def add_attachments(obj)
|
def add_attachments(obj)
|
||||||
if email.attachments && email.attachments.any?
|
if email.attachments && email.attachments.any?
|
||||||
email.attachments.each do |attachment|
|
email.attachments.each do |attachment|
|
||||||
filename = attachment.filename
|
|
||||||
unless filename.respond_to?(:encoding)
|
|
||||||
# try to reencode to utf8 manually with ruby1.8
|
|
||||||
h = attachment.header['Content-Disposition']
|
|
||||||
unless h.nil?
|
|
||||||
begin
|
|
||||||
if m = h.value.match(/filename\*[0-9\*]*=([^=']+)'/)
|
|
||||||
filename = Redmine::CodesetUtil.to_utf8(filename, m[1])
|
|
||||||
elsif m = h.value.match(/filename=.*=\?([^\?]+)\?[BbQq]\?/)
|
|
||||||
# http://tools.ietf.org/html/rfc2047#section-4
|
|
||||||
filename = Redmine::CodesetUtil.to_utf8(filename, m[1])
|
|
||||||
end
|
|
||||||
rescue
|
|
||||||
# nop
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
obj.attachments << Attachment.create(:container => obj,
|
obj.attachments << Attachment.create(:container => obj,
|
||||||
:file => attachment.decoded,
|
:file => attachment.decoded,
|
||||||
:filename => filename,
|
:filename => attachment.filename,
|
||||||
:author => user,
|
:author => user,
|
||||||
:content_type => attachment.mime_type)
|
:content_type => attachment.mime_type)
|
||||||
end
|
end
|
||||||
@@ -391,19 +374,6 @@ class MailHandler < ActionMailer::Base
|
|||||||
|
|
||||||
def cleaned_up_subject
|
def cleaned_up_subject
|
||||||
subject = email.subject.to_s
|
subject = email.subject.to_s
|
||||||
unless subject.respond_to?(:encoding)
|
|
||||||
# try to reencode to utf8 manually with ruby1.8
|
|
||||||
begin
|
|
||||||
if h = email.header[:subject]
|
|
||||||
# http://tools.ietf.org/html/rfc2047#section-4
|
|
||||||
if m = h.value.match(/=\?([^\?]+)\?[BbQq]\?/)
|
|
||||||
subject = Redmine::CodesetUtil.to_utf8(subject, m[1])
|
|
||||||
end
|
|
||||||
end
|
|
||||||
rescue
|
|
||||||
# nop
|
|
||||||
end
|
|
||||||
end
|
|
||||||
subject.strip[0,255]
|
subject.strip[0,255]
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|||||||
@@ -731,7 +731,7 @@ class Project < ActiveRecord::Base
|
|||||||
def copy_wiki(project)
|
def copy_wiki(project)
|
||||||
# Check that the source project has a wiki first
|
# Check that the source project has a wiki first
|
||||||
unless project.wiki.nil?
|
unless project.wiki.nil?
|
||||||
self.wiki ||= Wiki.new
|
wiki = self.wiki || Wiki.new
|
||||||
wiki.attributes = project.wiki.attributes.dup.except("id", "project_id")
|
wiki.attributes = project.wiki.attributes.dup.except("id", "project_id")
|
||||||
wiki_pages_map = {}
|
wiki_pages_map = {}
|
||||||
project.wiki.pages.each do |page|
|
project.wiki.pages.each do |page|
|
||||||
@@ -743,6 +743,8 @@ class Project < ActiveRecord::Base
|
|||||||
wiki.pages << new_wiki_page
|
wiki.pages << new_wiki_page
|
||||||
wiki_pages_map[page.id] = new_wiki_page
|
wiki_pages_map[page.id] = new_wiki_page
|
||||||
end
|
end
|
||||||
|
|
||||||
|
self.wiki = wiki
|
||||||
wiki.save
|
wiki.save
|
||||||
# Reproduce page hierarchy
|
# Reproduce page hierarchy
|
||||||
project.wiki.pages.each do |page|
|
project.wiki.pages.each do |page|
|
||||||
|
|||||||
+24
-1
@@ -27,6 +27,7 @@ class QueryColumn
|
|||||||
self.groupable = name.to_s
|
self.groupable = name.to_s
|
||||||
end
|
end
|
||||||
self.default_order = options[:default_order]
|
self.default_order = options[:default_order]
|
||||||
|
@inline = options.key?(:inline) ? options[:inline] : true
|
||||||
@caption_key = options[:caption] || "field_#{name}"
|
@caption_key = options[:caption] || "field_#{name}"
|
||||||
end
|
end
|
||||||
|
|
||||||
@@ -43,6 +44,10 @@ class QueryColumn
|
|||||||
@sortable.is_a?(Proc) ? @sortable.call : @sortable
|
@sortable.is_a?(Proc) ? @sortable.call : @sortable
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def inline?
|
||||||
|
@inline
|
||||||
|
end
|
||||||
|
|
||||||
def value(issue)
|
def value(issue)
|
||||||
issue.send name
|
issue.send name
|
||||||
end
|
end
|
||||||
@@ -58,6 +63,7 @@ class QueryCustomFieldColumn < QueryColumn
|
|||||||
self.name = "cf_#{custom_field.id}".to_sym
|
self.name = "cf_#{custom_field.id}".to_sym
|
||||||
self.sortable = custom_field.order_statement || false
|
self.sortable = custom_field.order_statement || false
|
||||||
self.groupable = custom_field.group_statement || false
|
self.groupable = custom_field.group_statement || false
|
||||||
|
@inline = true
|
||||||
@cf = custom_field
|
@cf = custom_field
|
||||||
end
|
end
|
||||||
|
|
||||||
@@ -153,7 +159,8 @@ class Query < ActiveRecord::Base
|
|||||||
QueryColumn.new(:estimated_hours, :sortable => "#{Issue.table_name}.estimated_hours"),
|
QueryColumn.new(:estimated_hours, :sortable => "#{Issue.table_name}.estimated_hours"),
|
||||||
QueryColumn.new(:done_ratio, :sortable => "#{Issue.table_name}.done_ratio", :groupable => true),
|
QueryColumn.new(:done_ratio, :sortable => "#{Issue.table_name}.done_ratio", :groupable => true),
|
||||||
QueryColumn.new(:created_on, :sortable => "#{Issue.table_name}.created_on", :default_order => 'desc'),
|
QueryColumn.new(:created_on, :sortable => "#{Issue.table_name}.created_on", :default_order => 'desc'),
|
||||||
QueryColumn.new(:relations, :caption => :label_related_issues)
|
QueryColumn.new(:relations, :caption => :label_related_issues),
|
||||||
|
QueryColumn.new(:description, :inline => false)
|
||||||
]
|
]
|
||||||
cattr_reader :available_columns
|
cattr_reader :available_columns
|
||||||
|
|
||||||
@@ -511,6 +518,22 @@ class Query < ActiveRecord::Base
|
|||||||
end.compact
|
end.compact
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def inline_columns
|
||||||
|
columns.select(&:inline?)
|
||||||
|
end
|
||||||
|
|
||||||
|
def block_columns
|
||||||
|
columns.reject(&:inline?)
|
||||||
|
end
|
||||||
|
|
||||||
|
def available_inline_columns
|
||||||
|
available_columns.select(&:inline?)
|
||||||
|
end
|
||||||
|
|
||||||
|
def available_block_columns
|
||||||
|
available_columns.reject(&:inline?)
|
||||||
|
end
|
||||||
|
|
||||||
def default_columns_names
|
def default_columns_names
|
||||||
@default_columns_names ||= begin
|
@default_columns_names ||= begin
|
||||||
default_columns = Setting.issue_list_default_columns.map(&:to_sym)
|
default_columns = Setting.issue_list_default_columns.map(&:to_sym)
|
||||||
|
|||||||
@@ -111,7 +111,7 @@
|
|||||||
<li><%= bulk_update_custom_field_context_menu_link(field, text, value || text) %></li>
|
<li><%= bulk_update_custom_field_context_menu_link(field, text, value || text) %></li>
|
||||||
<% end %>
|
<% end %>
|
||||||
<% unless field.is_required? %>
|
<% unless field.is_required? %>
|
||||||
<li><%= bulk_update_custom_field_context_menu_link(field, l(:label_none), '') %></li>
|
<li><%= bulk_update_custom_field_context_menu_link(field, l(:label_none), '__none__') %></li>
|
||||||
<% end %>
|
<% end %>
|
||||||
</ul>
|
</ul>
|
||||||
</li>
|
</li>
|
||||||
|
|||||||
@@ -18,7 +18,7 @@
|
|||||||
<% end %>
|
<% end %>
|
||||||
|
|
||||||
<% if @issue.safe_attribute? 'subject' %>
|
<% if @issue.safe_attribute? 'subject' %>
|
||||||
<p><%= f.text_field :subject, :size => 80, :required => true %></p>
|
<p><%= f.text_field :subject, :size => 80, :maxlength => 255, :required => true %></p>
|
||||||
<% end %>
|
<% end %>
|
||||||
|
|
||||||
<% if @issue.safe_attribute? 'description' %>
|
<% if @issue.safe_attribute? 'description' %>
|
||||||
|
|||||||
@@ -10,7 +10,7 @@
|
|||||||
:title => "#{l(:button_check_all)}/#{l(:button_uncheck_all)}" %>
|
:title => "#{l(:button_check_all)}/#{l(:button_uncheck_all)}" %>
|
||||||
</th>
|
</th>
|
||||||
<%= sort_header_tag('id', :caption => '#', :default_order => 'desc') %>
|
<%= sort_header_tag('id', :caption => '#', :default_order => 'desc') %>
|
||||||
<% query.columns.each do |column| %>
|
<% query.inline_columns.each do |column| %>
|
||||||
<%= column_header(column) %>
|
<%= column_header(column) %>
|
||||||
<% end %>
|
<% end %>
|
||||||
</tr>
|
</tr>
|
||||||
@@ -21,7 +21,7 @@
|
|||||||
<% if @query.grouped? && (group = @query.group_by_column.value(issue)) != previous_group %>
|
<% if @query.grouped? && (group = @query.group_by_column.value(issue)) != previous_group %>
|
||||||
<% reset_cycle %>
|
<% reset_cycle %>
|
||||||
<tr class="group open">
|
<tr class="group open">
|
||||||
<td colspan="<%= query.columns.size + 2 %>">
|
<td colspan="<%= query.inline_columns.size + 2 %>">
|
||||||
<span class="expander" onclick="toggleRowGroup(this);"> </span>
|
<span class="expander" onclick="toggleRowGroup(this);"> </span>
|
||||||
<%= group.blank? ? l(:label_none) : column_content(@query.group_by_column, issue) %> <span class="count"><%= @issue_count_by_group[group] %></span>
|
<%= group.blank? ? l(:label_none) : column_content(@query.group_by_column, issue) %> <span class="count"><%= @issue_count_by_group[group] %></span>
|
||||||
<%= link_to_function("#{l(:button_collapse_all)}/#{l(:button_expand_all)}",
|
<%= link_to_function("#{l(:button_collapse_all)}/#{l(:button_expand_all)}",
|
||||||
@@ -33,8 +33,15 @@
|
|||||||
<tr id="issue-<%= issue.id %>" class="hascontextmenu <%= cycle('odd', 'even') %> <%= issue.css_classes %> <%= level > 0 ? "idnt idnt-#{level}" : nil %>">
|
<tr id="issue-<%= issue.id %>" class="hascontextmenu <%= cycle('odd', 'even') %> <%= issue.css_classes %> <%= level > 0 ? "idnt idnt-#{level}" : nil %>">
|
||||||
<td class="checkbox hide-when-print"><%= check_box_tag("ids[]", issue.id, false, :id => nil) %></td>
|
<td class="checkbox hide-when-print"><%= check_box_tag("ids[]", issue.id, false, :id => nil) %></td>
|
||||||
<td class="id"><%= link_to issue.id, issue_path(issue) %></td>
|
<td class="id"><%= link_to issue.id, issue_path(issue) %></td>
|
||||||
<%= raw query.columns.map {|column| "<td class=\"#{column.css_classes}\">#{column_content(column, issue)}</td>"}.join %>
|
<%= raw query.inline_columns.map {|column| "<td class=\"#{column.css_classes}\">#{column_content(column, issue)}</td>"}.join %>
|
||||||
</tr>
|
</tr>
|
||||||
|
<% @query.block_columns.each do |column|
|
||||||
|
if (text = column_content(column, issue)) && text.present? -%>
|
||||||
|
<tr class="<%= current_cycle %>">
|
||||||
|
<td colspan="<%= @query.inline_columns.size + 2 %>" class="<%= column.css_classes %>"><%= text %></td>
|
||||||
|
</tr>
|
||||||
|
<% end -%>
|
||||||
|
<% end -%>
|
||||||
<% end -%>
|
<% end -%>
|
||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
|
|||||||
@@ -34,6 +34,10 @@
|
|||||||
@query.group_by)
|
@query.group_by)
|
||||||
) %></td>
|
) %></td>
|
||||||
</tr>
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td><%= l(:button_show) %></td>
|
||||||
|
<td><%= available_block_columns_tags(@query) %></td>
|
||||||
|
</tr>
|
||||||
</table>
|
</table>
|
||||||
</div>
|
</div>
|
||||||
</fieldset>
|
</fieldset>
|
||||||
@@ -73,7 +77,7 @@
|
|||||||
<label><%= radio_button_tag 'columns', 'all' %> <%= l(:description_all_columns) %></label>
|
<label><%= radio_button_tag 'columns', 'all' %> <%= l(:description_all_columns) %></label>
|
||||||
</p>
|
</p>
|
||||||
<p>
|
<p>
|
||||||
<label><%= check_box_tag 'description', '1' %> <%= l(:field_description) %></label>
|
<label><%= check_box_tag 'description', '1', @query.has_column?(:description) %> <%= l(:field_description) %></label>
|
||||||
</p>
|
</p>
|
||||||
<p class="buttons">
|
<p class="buttons">
|
||||||
<%= submit_tag l(:button_export), :name => nil, :onclick => "hideModal(this);" %>
|
<%= submit_tag l(:button_export), :name => nil, :onclick => "hideModal(this);" %>
|
||||||
|
|||||||
@@ -1,2 +1,8 @@
|
|||||||
$("#journal-<%= @journal.id %>-notes").hide();
|
$("#journal-<%= @journal.id %>-notes").hide();
|
||||||
$("#journal-<%= @journal.id %>-notes").after('<%= escape_javascript(render :partial => 'notes_form') %>');
|
|
||||||
|
if ($("form#journal-<%= @journal.id %>-form").length > 0) {
|
||||||
|
// journal edit form already loaded
|
||||||
|
$("#journal-<%= @journal.id %>-form").show();
|
||||||
|
} else {
|
||||||
|
$("#journal-<%= @journal.id %>-notes").after('<%= escape_javascript(render :partial => 'notes_form') %>');
|
||||||
|
}
|
||||||
|
|||||||
@@ -4,7 +4,7 @@
|
|||||||
<%= label_tag "available_columns", l(:description_available_columns) %>
|
<%= label_tag "available_columns", l(:description_available_columns) %>
|
||||||
<br />
|
<br />
|
||||||
<%= select_tag 'available_columns',
|
<%= select_tag 'available_columns',
|
||||||
options_for_select((query.available_columns - query.columns).collect {|column| [column.caption, column.name]}),
|
options_for_select((query.available_inline_columns - query.columns).collect {|column| [column.caption, column.name]}),
|
||||||
:multiple => true, :size => 10, :style => "width:150px",
|
:multiple => true, :size => 10, :style => "width:150px",
|
||||||
:ondblclick => "moveOptions(this.form.available_columns, this.form.selected_columns);" %>
|
:ondblclick => "moveOptions(this.form.available_columns, this.form.selected_columns);" %>
|
||||||
</td>
|
</td>
|
||||||
@@ -18,7 +18,7 @@
|
|||||||
<%= label_tag "selected_columns", l(:description_selected_columns) %>
|
<%= label_tag "selected_columns", l(:description_selected_columns) %>
|
||||||
<br />
|
<br />
|
||||||
<%= select_tag((defined?(tag_name) ? tag_name : 'c[]'),
|
<%= select_tag((defined?(tag_name) ? tag_name : 'c[]'),
|
||||||
options_for_select(query.columns.collect {|column| [column.caption, column.name]}),
|
options_for_select(query.inline_columns.collect {|column| [column.caption, column.name]}),
|
||||||
:id => 'selected_columns', :multiple => true, :size => 10, :style => "width:150px",
|
:id => 'selected_columns', :multiple => true, :size => 10, :style => "width:150px",
|
||||||
:ondblclick => "moveOptions(this.form.selected_columns, this.form.available_columns);") %>
|
:ondblclick => "moveOptions(this.form.selected_columns, this.form.available_columns);") %>
|
||||||
</td>
|
</td>
|
||||||
|
|||||||
@@ -21,6 +21,9 @@
|
|||||||
|
|
||||||
<p><label for="query_group_by"><%= l(:field_group_by) %></label>
|
<p><label for="query_group_by"><%= l(:field_group_by) %></label>
|
||||||
<%= select 'query', 'group_by', @query.groupable_columns.collect {|c| [c.caption, c.name.to_s]}, :include_blank => true %></p>
|
<%= select 'query', 'group_by', @query.groupable_columns.collect {|c| [c.caption, c.name.to_s]}, :include_blank => true %></p>
|
||||||
|
|
||||||
|
<p><label><%= l(:button_show) %></label>
|
||||||
|
<%= available_block_columns_tags(@query) %></p>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<fieldset id="filters"><legend><%= l(:label_filter_plural) %></legend>
|
<fieldset id="filters"><legend><%= l(:label_filter_plural) %></legend>
|
||||||
|
|||||||
@@ -12,7 +12,7 @@
|
|||||||
<p><%= f.text_field :issue_id, :size => 6 %> <em><%= h("#{@time_entry.issue.tracker.name} ##{@time_entry.issue.id}: #{@time_entry.issue.subject}") if @time_entry.issue %></em></p>
|
<p><%= f.text_field :issue_id, :size => 6 %> <em><%= h("#{@time_entry.issue.tracker.name} ##{@time_entry.issue.id}: #{@time_entry.issue.subject}") if @time_entry.issue %></em></p>
|
||||||
<p><%= f.text_field :spent_on, :size => 10, :required => true %><%= calendar_for('time_entry_spent_on') %></p>
|
<p><%= f.text_field :spent_on, :size => 10, :required => true %><%= calendar_for('time_entry_spent_on') %></p>
|
||||||
<p><%= f.text_field :hours, :size => 6, :required => true %></p>
|
<p><%= f.text_field :hours, :size => 6, :required => true %></p>
|
||||||
<p><%= f.text_field :comments, :size => 100 %></p>
|
<p><%= f.text_field :comments, :size => 100, :maxlength => 255 %></p>
|
||||||
<p><%= f.select :activity_id, activity_collection_for_select_options(@time_entry), :required => true %></p>
|
<p><%= f.select :activity_id, activity_collection_for_select_options(@time_entry), :required => true %></p>
|
||||||
<% @time_entry.custom_field_values.each do |value| %>
|
<% @time_entry.custom_field_values.each do |value| %>
|
||||||
<p><%= custom_field_tag_with_label :time_entry, value %></p>
|
<p><%= custom_field_tag_with_label :time_entry, value %></p>
|
||||||
|
|||||||
@@ -833,7 +833,7 @@ bg:
|
|||||||
label_generate_key: Генериране на ключ
|
label_generate_key: Генериране на ключ
|
||||||
label_issue_watchers: Наблюдатели
|
label_issue_watchers: Наблюдатели
|
||||||
label_example: Пример
|
label_example: Пример
|
||||||
label_display: Display
|
label_display: Показване
|
||||||
label_sort: Сортиране
|
label_sort: Сортиране
|
||||||
label_ascending: Нарастващ
|
label_ascending: Нарастващ
|
||||||
label_descending: Намаляващ
|
label_descending: Намаляващ
|
||||||
@@ -892,7 +892,7 @@ bg:
|
|||||||
label_cross_project_system: С всички проекти
|
label_cross_project_system: С всички проекти
|
||||||
|
|
||||||
button_login: Вход
|
button_login: Вход
|
||||||
button_submit: Прикачване
|
button_submit: Изпращане
|
||||||
button_save: Запис
|
button_save: Запис
|
||||||
button_check_all: Избор на всички
|
button_check_all: Избор на всички
|
||||||
button_uncheck_all: Изчистване на всички
|
button_uncheck_all: Изчистване на всички
|
||||||
|
|||||||
+130
-129
@@ -1,3 +1,4 @@
|
|||||||
|
# Update to 2.2 by Karel Picman <karel.picman@kontron.com>
|
||||||
# Update to 1.1 by Michal Gebauer <mishak@mishak.net>
|
# Update to 1.1 by Michal Gebauer <mishak@mishak.net>
|
||||||
# Updated by Josef Liška <jl@chl.cz>
|
# Updated by Josef Liška <jl@chl.cz>
|
||||||
# CZ translation by Maxim Krušina | Massimo Filippi, s.r.o. | maxim@mxm.cz
|
# CZ translation by Maxim Krušina | Massimo Filippi, s.r.o. | maxim@mxm.cz
|
||||||
@@ -941,146 +942,146 @@ cs:
|
|||||||
enumeration_activities: Aktivity (sledování času)
|
enumeration_activities: Aktivity (sledování času)
|
||||||
enumeration_system_activity: Systémová aktivita
|
enumeration_system_activity: Systémová aktivita
|
||||||
|
|
||||||
field_warn_on_leaving_unsaved: Warn me when leaving a page with unsaved text
|
field_warn_on_leaving_unsaved: Varuj mě před opuštěním stránky s neuloženým textem
|
||||||
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: Aktuální stránka obsahuje neuložený text, který bude ztracen, když opustíte stránku.
|
||||||
label_my_queries: My custom queries
|
label_my_queries: Moje vlastní dotazy
|
||||||
text_journal_changed_no_detail: "%{label} updated"
|
text_journal_changed_no_detail: "%{label} aktualizován"
|
||||||
label_news_comment_added: Comment added to a news
|
label_news_comment_added: K novince byl přidán komentář
|
||||||
button_expand_all: Expand all
|
button_expand_all: Rozbal vše
|
||||||
button_collapse_all: Collapse all
|
button_collapse_all: Sbal vše
|
||||||
label_additional_workflow_transitions_for_assignee: Additional transitions allowed when the user is the assignee
|
label_additional_workflow_transitions_for_assignee: Další změna stavu povolena, jestliže je uživatel přiřazen
|
||||||
label_additional_workflow_transitions_for_author: Additional transitions allowed when the user is the author
|
label_additional_workflow_transitions_for_author: Další změna stavu povolena, jestliže je uživatel autorem
|
||||||
label_bulk_edit_selected_time_entries: Bulk edit selected time entries
|
label_bulk_edit_selected_time_entries: Hromadná změna záznamů času
|
||||||
text_time_entries_destroy_confirmation: Are you sure you want to delete the selected time entr(y/ies)?
|
text_time_entries_destroy_confirmation: Jste si jistí, že chcete smazat vybraný záznam(y) času?
|
||||||
label_role_anonymous: Anonymous
|
label_role_anonymous: Anonymní
|
||||||
label_role_non_member: Non member
|
label_role_non_member: Není členem
|
||||||
label_issue_note_added: Note added
|
label_issue_note_added: Přidána poznámka
|
||||||
label_issue_status_updated: Status updated
|
label_issue_status_updated: Aktualizován stav
|
||||||
label_issue_priority_updated: Priority updated
|
label_issue_priority_updated: Aktualizována priorita
|
||||||
label_issues_visibility_own: Issues created by or assigned to the user
|
label_issues_visibility_own: Úkol vytvořen nebo přiřazen uživatel(i/em)
|
||||||
field_issues_visibility: Issues visibility
|
field_issues_visibility: Viditelnost úkolů
|
||||||
label_issues_visibility_all: All issues
|
label_issues_visibility_all: Všechny úkoly
|
||||||
permission_set_own_issues_private: Set own issues public or private
|
permission_set_own_issues_private: Nastavit vlastní úkoly jako veřejné nebo soukromé
|
||||||
field_is_private: Private
|
field_is_private: Soukromý
|
||||||
permission_set_issues_private: Set issues public or private
|
permission_set_issues_private: Nastavit úkoly jako veřejné nebo soukromé
|
||||||
label_issues_visibility_public: All non private issues
|
label_issues_visibility_public: Všechny úkoly, které nejsou soukromé
|
||||||
text_issues_destroy_descendants_confirmation: This will also delete %{count} subtask(s).
|
text_issues_destroy_descendants_confirmation: "%{count} podúkol(ů) bude rovněž smazán(o)."
|
||||||
field_commit_logs_encoding: Kódování zpráv při commitu
|
field_commit_logs_encoding: Kódování zpráv při commitu
|
||||||
field_scm_path_encoding: Path encoding
|
field_scm_path_encoding: Kódování cesty SCM
|
||||||
text_scm_path_encoding_note: "Default: UTF-8"
|
text_scm_path_encoding_note: "Výchozí: UTF-8"
|
||||||
field_path_to_repository: Path to repository
|
field_path_to_repository: Cesta k repositáři
|
||||||
field_root_directory: Root directory
|
field_root_directory: Kořenový adresář
|
||||||
field_cvs_module: Module
|
field_cvs_module: Modul
|
||||||
field_cvsroot: CVSROOT
|
field_cvsroot: CVSROOT
|
||||||
text_mercurial_repository_note: Local repository (e.g. /hgrepo, c:\hgrepo)
|
text_mercurial_repository_note: Lokální repositář (např. /hgrepo, c:\hgrepo)
|
||||||
text_scm_command: Command
|
text_scm_command: Příkaz
|
||||||
text_scm_command_version: Version
|
text_scm_command_version: Verze
|
||||||
label_git_report_last_commit: Report last commit for files and directories
|
label_git_report_last_commit: Reportovat poslední commit pro soubory a adresáře
|
||||||
text_scm_config: You can configure your scm commands in config/configuration.yml. Please restart the application after editing it.
|
text_scm_config: Můžete si nastavit vaše SCM příkazy v config/configuration.yml. Restartujte, prosím, aplikaci po jejich úpravě.
|
||||||
text_scm_command_not_available: Scm command is not available. Please check settings on the administration panel.
|
text_scm_command_not_available: SCM příkaz není k dispozici. Zkontrolujte, prosím, nastavení v panelu Administrace.
|
||||||
notice_issue_successful_create: Issue %{id} created.
|
notice_issue_successful_create: Úkol %{id} vytvořen.
|
||||||
label_between: between
|
label_between: mezi
|
||||||
setting_issue_group_assignment: Allow issue assignment to groups
|
setting_issue_group_assignment: Povolit přiřazení úkolu skupině
|
||||||
label_diff: diff
|
label_diff: rozdíl
|
||||||
text_git_repository_note: Repository is bare and local (e.g. /gitrepo, c:\gitrepo)
|
text_git_repository_note: Repositář je "bare and local" (např. /gitrepo, c:\gitrepo)
|
||||||
description_query_sort_criteria_direction: Sort direction
|
description_query_sort_criteria_direction: Směr třídění
|
||||||
description_project_scope: Search scope
|
description_project_scope: Rozsah vyhledávání
|
||||||
description_filter: Filter
|
description_filter: Filtr
|
||||||
description_user_mail_notification: Mail notification settings
|
description_user_mail_notification: Nastavení emailových notifikací
|
||||||
description_date_from: Enter start date
|
description_date_from: Zadejte počáteční datum
|
||||||
description_message_content: Message content
|
description_message_content: Obsah zprávy
|
||||||
description_available_columns: Available Columns
|
description_available_columns: Dostupné sloupce
|
||||||
description_date_range_interval: Choose range by selecting start and end date
|
description_date_range_interval: Zvolte rozsah výběrem počátečního a koncového data
|
||||||
description_issue_category_reassign: Choose issue category
|
description_issue_category_reassign: Zvolte kategorii úkolu
|
||||||
description_search: Searchfield
|
description_search: Vyhledávací pole
|
||||||
description_notes: Notes
|
description_notes: Poznámky
|
||||||
description_date_range_list: Choose range from list
|
description_date_range_list: Zvolte rozsah ze seznamu
|
||||||
description_choose_project: Projects
|
description_choose_project: Projekty
|
||||||
description_date_to: Enter end date
|
description_date_to: Zadejte datum
|
||||||
description_query_sort_criteria_attribute: Sort attribute
|
description_query_sort_criteria_attribute: Třídící atribut
|
||||||
description_wiki_subpages_reassign: Choose new parent page
|
description_wiki_subpages_reassign: Zvolte novou rodičovskou stránku
|
||||||
description_selected_columns: Selected Columns
|
description_selected_columns: Vybraný sloupec
|
||||||
label_parent_revision: Parent
|
label_parent_revision: Rodič
|
||||||
label_child_revision: Child
|
label_child_revision: Potomek
|
||||||
error_scm_annotate_big_text_file: The entry cannot be annotated, as it exceeds the maximum text file size.
|
error_scm_annotate_big_text_file: Vstup nemůže být anotován, protože překračuje povolenou velikost textového souboru
|
||||||
setting_default_issue_start_date_to_creation_date: Use current date as start date for new issues
|
setting_default_issue_start_date_to_creation_date: Použij aktuální datum jako počáteční datum pro nové úkoly
|
||||||
button_edit_section: Edit this section
|
button_edit_section: Uprav tuto sekci
|
||||||
setting_repositories_encodings: Attachments and repositories encodings
|
setting_repositories_encodings: Kódování příloh a repositářů
|
||||||
description_all_columns: All Columns
|
description_all_columns: Všechny sloupce
|
||||||
button_export: Export
|
button_export: Export
|
||||||
label_export_options: "%{export_format} export options"
|
label_export_options: "nastavení exportu %{export_format}"
|
||||||
error_attachment_too_big: This file cannot be uploaded because it exceeds the maximum allowed file size (%{max_size})
|
error_attachment_too_big: Soubor nemůže být nahrán, protože jeho velikost je větší než maximum (%{max_size})
|
||||||
notice_failed_to_save_time_entries: "Failed to save %{count} time entrie(s) on %{total} selected: %{ids}."
|
notice_failed_to_save_time_entries: "Chyba při ukládání %{count} časov(ých/ého) záznam(ů) z %{total} vybraného: %{ids}."
|
||||||
label_x_issues:
|
label_x_issues:
|
||||||
zero: 0 Úkol
|
zero: 0 Úkol
|
||||||
one: 1 Úkol
|
one: 1 Úkol
|
||||||
other: "%{count} Úkoly"
|
other: "%{count} Úkoly"
|
||||||
label_repository_new: New repository
|
label_repository_new: Nový repositář
|
||||||
field_repository_is_default: Main repository
|
field_repository_is_default: Hlavní repositář
|
||||||
label_copy_attachments: Copy attachments
|
label_copy_attachments: Kopírovat přílohy
|
||||||
label_item_position: "%{position}/%{count}"
|
label_item_position: "%{position}/%{count}"
|
||||||
label_completed_versions: Completed versions
|
label_completed_versions: Dokončené verze
|
||||||
text_project_identifier_info: Only lower case letters (a-z), numbers, dashes and underscores are allowed.<br />Once saved, the identifier cannot be changed.
|
text_project_identifier_info: Jsou povolena pouze malá písmena (a-z), číslice, pomlčky a podtržítka.<br />Po uložení již nelze identifikátor měnit.
|
||||||
field_multiple: Multiple values
|
field_multiple: Více hodnot
|
||||||
setting_commit_cross_project_ref: Allow issues of all the other projects to be referenced and fixed
|
setting_commit_cross_project_ref: Povolit reference a opravy úklů ze všech ostatních projektů
|
||||||
text_issue_conflict_resolution_add_notes: Add my notes and discard my other changes
|
text_issue_conflict_resolution_add_notes: Přidat moje poznámky a zahodit ostatní změny
|
||||||
text_issue_conflict_resolution_overwrite: Apply my changes anyway (previous notes will be kept but some changes may be overwritten)
|
text_issue_conflict_resolution_overwrite: Přesto přijmout moje úpravy (předchozí poznámky budou zachovány, ale některé změny mohou být přepsány)
|
||||||
notice_issue_update_conflict: The issue has been updated by an other user while you were editing it.
|
notice_issue_update_conflict: Během vašich úprav byl úkol aktualizován jiným uživatelem.
|
||||||
text_issue_conflict_resolution_cancel: Discard all my changes and redisplay %{link}
|
text_issue_conflict_resolution_cancel: Zahoď všechny moje změny a znovu zobraz %{link}
|
||||||
permission_manage_related_issues: Manage related issues
|
permission_manage_related_issues: Spravuj související úkoly
|
||||||
field_auth_source_ldap_filter: LDAP filter
|
field_auth_source_ldap_filter: LDAP filtr
|
||||||
label_search_for_watchers: Search for watchers to add
|
label_search_for_watchers: Hledej sledující pro přidání
|
||||||
notice_account_deleted: Your account has been permanently deleted.
|
notice_account_deleted: Váš účet byl trvale smazán.
|
||||||
setting_unsubscribe: Allow users to delete their own account
|
setting_unsubscribe: Povolit uživatelům smazání jejich vlastního účtu
|
||||||
button_delete_my_account: Delete my account
|
button_delete_my_account: Smazat můj účet
|
||||||
text_account_destroy_confirmation: |-
|
text_account_destroy_confirmation: |-
|
||||||
Are you sure you want to proceed?
|
Skutečně chcete pokračovat?
|
||||||
Your account will be permanently deleted, with no way to reactivate it.
|
Váš účet bude nenávratně smazán.
|
||||||
error_session_expired: Your session has expired. Please login again.
|
error_session_expired: Vaše sezení vypršelo. Znovu se přihlaste, prosím.
|
||||||
text_session_expiration_settings: "Warning: changing these settings may expire the current sessions including yours."
|
text_session_expiration_settings: "Varování: změnou tohoto nastavení mohou vypršet aktuální sezení včetně toho vašeho."
|
||||||
setting_session_lifetime: Session maximum lifetime
|
setting_session_lifetime: Maximální čas sezení
|
||||||
setting_session_timeout: Session inactivity timeout
|
setting_session_timeout: Vypršení sezení bez aktivity
|
||||||
label_session_expiration: Session expiration
|
label_session_expiration: Vypršení sezení
|
||||||
permission_close_project: Close / reopen the project
|
permission_close_project: Zavřít / Otevřít projekt
|
||||||
label_show_closed_projects: View closed projects
|
label_show_closed_projects: Zobrazit zavřené projekty
|
||||||
button_close: Close
|
button_close: Zavřít
|
||||||
button_reopen: Reopen
|
button_reopen: Znovu otevřít
|
||||||
project_status_active: active
|
project_status_active: aktivní
|
||||||
project_status_closed: closed
|
project_status_closed: zavřený
|
||||||
project_status_archived: archived
|
project_status_archived: archivovaný
|
||||||
text_project_closed: This project is closed and read-only.
|
text_project_closed: Tento projekt je uzevřený a je pouze pro čtení.
|
||||||
notice_user_successful_create: User %{id} created.
|
notice_user_successful_create: Uživatel %{id} vytvořen.
|
||||||
field_core_fields: Standard fields
|
field_core_fields: Standardní pole
|
||||||
field_timeout: Timeout (in seconds)
|
field_timeout: Vypršení (v sekundách)
|
||||||
setting_thumbnails_enabled: Display attachment thumbnails
|
setting_thumbnails_enabled: Zobrazit náhled přílohy
|
||||||
setting_thumbnails_size: Thumbnails size (in pixels)
|
setting_thumbnails_size: Velikost náhledu (v pixelech)
|
||||||
label_status_transitions: Status transitions
|
label_status_transitions: Změna stavu
|
||||||
label_fields_permissions: Fields permissions
|
label_fields_permissions: Práva k polím
|
||||||
label_readonly: Read-only
|
label_readonly: Pouze pro čtení
|
||||||
label_required: Required
|
label_required: Vyžadováno
|
||||||
text_repository_identifier_info: Only lower case letters (a-z), numbers, dashes and underscores are allowed.<br />Once saved, the identifier cannot be changed.
|
text_repository_identifier_info: Jou povoleny pouze malá písmena (a-z), číslice, pomlčky a podtržítka.<br />Po uložení již nelze identifikátor změnit.
|
||||||
field_board_parent: Parent forum
|
field_board_parent: Rodičovské fórum
|
||||||
label_attribute_of_project: Project's %{name}
|
label_attribute_of_project: Projektové %{name}
|
||||||
label_attribute_of_author: Author's %{name}
|
label_attribute_of_author: Autorovo %{name}
|
||||||
label_attribute_of_assigned_to: Assignee's %{name}
|
label_attribute_of_assigned_to: "%{name} přiřazené(ho)"
|
||||||
label_attribute_of_fixed_version: Target version's %{name}
|
label_attribute_of_fixed_version: Cílová verze %{name}
|
||||||
label_copy_subtasks: Copy subtasks
|
label_copy_subtasks: Kopírovat podúkoly
|
||||||
label_copied_to: copied to
|
label_copied_to: zkopírováno do
|
||||||
label_copied_from: copied from
|
label_copied_from: zkopírováno z
|
||||||
label_any_issues_in_project: any issues in project
|
label_any_issues_in_project: jakékoli úkoly v projektu
|
||||||
label_any_issues_not_in_project: any issues not in project
|
label_any_issues_not_in_project: jakékoli úkoly mimo projektu
|
||||||
field_private_notes: Private notes
|
field_private_notes: Soukromé poznámky
|
||||||
permission_view_private_notes: View private notes
|
permission_view_private_notes: Zobrazit soukromé poznámky
|
||||||
permission_set_notes_private: Set notes as private
|
permission_set_notes_private: Nastavit poznámky jako soukromé
|
||||||
label_no_issues_in_project: no issues in project
|
label_no_issues_in_project: žádné úkoly v projektu
|
||||||
label_any: vše
|
label_any: vše
|
||||||
label_last_n_weeks: last %{count} weeks
|
label_last_n_weeks: poslední %{count} týdny
|
||||||
setting_cross_project_subtasks: Allow cross-project subtasks
|
setting_cross_project_subtasks: Povolit podúkoly napříč projekty
|
||||||
label_cross_project_descendants: S podprojekty
|
label_cross_project_descendants: S podprojekty
|
||||||
label_cross_project_tree: Se stromem projektu
|
label_cross_project_tree: Se stromem projektu
|
||||||
label_cross_project_hierarchy: S hierarchií projektu
|
label_cross_project_hierarchy: S hierarchií projektu
|
||||||
label_cross_project_system: Se všemi projekty
|
label_cross_project_system: Se všemi projekty
|
||||||
button_hide: Hide
|
button_hide: Skrýt
|
||||||
setting_non_working_week_days: Non-working days
|
setting_non_working_week_days: Dny pracovního volna/klidu
|
||||||
label_in_the_next_days: in the next
|
label_in_the_next_days: v přístích
|
||||||
label_in_the_past_days: in the past
|
label_in_the_past_days: v minulých
|
||||||
|
|||||||
+66
-66
@@ -1037,84 +1037,84 @@ es:
|
|||||||
description_selected_columns: Columnas seleccionadas
|
description_selected_columns: Columnas seleccionadas
|
||||||
label_parent_revision: Padre
|
label_parent_revision: Padre
|
||||||
label_child_revision: Hijo
|
label_child_revision: Hijo
|
||||||
setting_default_issue_start_date_to_creation_date: Use current date as start date for new issues
|
setting_default_issue_start_date_to_creation_date: Utilizar la fecha actual como fecha de inicio para nuevas peticiones
|
||||||
button_edit_section: Edit this section
|
button_edit_section: Editar esta sección
|
||||||
setting_repositories_encodings: Attachments and repositories encodings
|
setting_repositories_encodings: Codificación de adjuntos y repositorios
|
||||||
description_all_columns: Todas las columnas
|
description_all_columns: Todas las columnas
|
||||||
button_export: Exportar
|
button_export: Exportar
|
||||||
label_export_options: "%{export_format} opciones de exportación"
|
label_export_options: "%{export_format} opciones de exportación"
|
||||||
error_attachment_too_big: Este fichero no se puede adjuntar porque excede el tamaño máximo de fichero (%{max_size})
|
error_attachment_too_big: Este fichero no se puede adjuntar porque excede el tamaño máximo de fichero (%{max_size})
|
||||||
notice_failed_to_save_time_entries: "Error al guarda %{count} entradas de tiempo de las %{total} seleccionadas: %{ids}."
|
notice_failed_to_save_time_entries: "Error al guardar %{count} entradas de tiempo de las %{total} seleccionadas: %{ids}."
|
||||||
label_x_issues:
|
label_x_issues:
|
||||||
zero: 0 petición
|
zero: 0 petición
|
||||||
one: 1 petición
|
one: 1 petición
|
||||||
other: "%{count} peticiones"
|
other: "%{count} peticiones"
|
||||||
label_repository_new: New repository
|
label_repository_new: Nuevo repositorio
|
||||||
field_repository_is_default: Main repository
|
field_repository_is_default: Repositorio principal
|
||||||
label_copy_attachments: Copy attachments
|
label_copy_attachments: Copiar adjuntos
|
||||||
label_item_position: "%{position}/%{count}"
|
label_item_position: "%{position}/%{count}"
|
||||||
label_completed_versions: Completed versions
|
label_completed_versions: Versiones completadas
|
||||||
text_project_identifier_info: Only lower case letters (a-z), numbers, dashes and underscores are allowed.<br />Once saved, the identifier cannot be changed.
|
text_project_identifier_info: Solo se permiten letras en minúscula (a-z), números, guiones y barras bajas.<br />Una vez guardado, el identificador no se puede cambiar.
|
||||||
field_multiple: Multiple values
|
field_multiple: Valores múltiples
|
||||||
setting_commit_cross_project_ref: Allow issues of all the other projects to be referenced and fixed
|
setting_commit_cross_project_ref: Permitir referenciar y resolver peticiones de todos los demás proyectos
|
||||||
text_issue_conflict_resolution_add_notes: Add my notes and discard my other changes
|
text_issue_conflict_resolution_add_notes: Añadir mis notas y descartar mis otros cambios
|
||||||
text_issue_conflict_resolution_overwrite: Apply my changes anyway (previous notes will be kept but some changes may be overwritten)
|
text_issue_conflict_resolution_overwrite: Aplicar mis campos de todas formas (las notas anteriores se mantendrán pero algunos cambios podrían ser sobreescritos)
|
||||||
notice_issue_update_conflict: The issue has been updated by an other user while you were editing it.
|
notice_issue_update_conflict: La petición ha sido actualizada por otro usuario mientras la editaba.
|
||||||
text_issue_conflict_resolution_cancel: Discard all my changes and redisplay %{link}
|
text_issue_conflict_resolution_cancel: Descartar todos mis cambios y mostrar de nuevo %{link}
|
||||||
permission_manage_related_issues: Manage related issues
|
permission_manage_related_issues: Gestionar peticiones relacionadas
|
||||||
field_auth_source_ldap_filter: LDAP filter
|
field_auth_source_ldap_filter: Filtro LDAP
|
||||||
label_search_for_watchers: Search for watchers to add
|
label_search_for_watchers: Buscar seguidores para añadirlos
|
||||||
notice_account_deleted: Your account has been permanently deleted.
|
notice_account_deleted: Su cuenta ha sido eliminada
|
||||||
setting_unsubscribe: Allow users to delete their own account
|
setting_unsubscribe: Permitir a los usuarios borrar sus propias cuentas
|
||||||
button_delete_my_account: Delete my account
|
button_delete_my_account: Borrar mi cuenta
|
||||||
text_account_destroy_confirmation: |-
|
text_account_destroy_confirmation: |-
|
||||||
Are you sure you want to proceed?
|
¿Está seguro de querer proceder?
|
||||||
Your account will be permanently deleted, with no way to reactivate it.
|
Su cuenta quedará borrada permanentemente, sin la posibilidad de reactivarla.
|
||||||
error_session_expired: Your session has expired. Please login again.
|
error_session_expired: Su sesión ha expirado. Por favor, vuelva a identificarse.
|
||||||
text_session_expiration_settings: "Warning: changing these settings may expire the current sessions including yours."
|
text_session_expiration_settings: "Advertencia: el cambio de estas opciones podría hacer expirar las sesiones activas, incluyendo la suya."
|
||||||
setting_session_lifetime: Session maximum lifetime
|
setting_session_lifetime: Tiempo de vida máximo de las sesiones
|
||||||
setting_session_timeout: Session inactivity timeout
|
setting_session_timeout: Tiempo máximo de inactividad de las sesiones
|
||||||
label_session_expiration: Session expiration
|
label_session_expiration: Expiración de sesiones
|
||||||
permission_close_project: Close / reopen the project
|
permission_close_project: Cerrar / reabrir el proyecto
|
||||||
label_show_closed_projects: View closed projects
|
label_show_closed_projects: Ver proyectos cerrados
|
||||||
button_close: Close
|
button_close: Cerrar
|
||||||
button_reopen: Reopen
|
button_reopen: Reabrir
|
||||||
project_status_active: active
|
project_status_active: activo
|
||||||
project_status_closed: closed
|
project_status_closed: cerrado
|
||||||
project_status_archived: archived
|
project_status_archived: archivado
|
||||||
text_project_closed: This project is closed and read-only.
|
text_project_closed: Este proyecto está cerrado y es de sólo lectura
|
||||||
notice_user_successful_create: User %{id} created.
|
notice_user_successful_create: Usuario %{id} creado.
|
||||||
field_core_fields: Standard fields
|
field_core_fields: Campos básicos
|
||||||
field_timeout: Timeout (in seconds)
|
field_timeout: Tiempo de inactividad (en segundos)
|
||||||
setting_thumbnails_enabled: Display attachment thumbnails
|
setting_thumbnails_enabled: Mostrar miniaturas de los adjuntos
|
||||||
setting_thumbnails_size: Thumbnails size (in pixels)
|
setting_thumbnails_size: Tamaño de las miniaturas (en píxeles)
|
||||||
label_status_transitions: Status transitions
|
label_status_transitions: Transiciones de estado
|
||||||
label_fields_permissions: Fields permissions
|
label_fields_permissions: Permisos sobre los campos
|
||||||
label_readonly: Read-only
|
label_readonly: Sólo lectura
|
||||||
label_required: Required
|
label_required: Requerido
|
||||||
text_repository_identifier_info: Only lower case letters (a-z), numbers, dashes and underscores are allowed.<br />Once saved, the identifier cannot be changed.
|
text_repository_identifier_info: Solo se permiten letras en minúscula (a-z), números, guiones y barras bajas.<br />Una vez guardado, el identificador no se puede cambiar.
|
||||||
field_board_parent: Parent forum
|
field_board_parent: Foro padre
|
||||||
label_attribute_of_project: Project's %{name}
|
label_attribute_of_project: "%{name} del proyecto"
|
||||||
label_attribute_of_author: Author's %{name}
|
label_attribute_of_author: "%{name} del autor"
|
||||||
label_attribute_of_assigned_to: Assignee's %{name}
|
label_attribute_of_assigned_to: "%{name} de la persona asignada"
|
||||||
label_attribute_of_fixed_version: Target version's %{name}
|
label_attribute_of_fixed_version: "%{name} de la versión indicada"
|
||||||
label_copy_subtasks: Copy subtasks
|
label_copy_subtasks: Copiar subtareas
|
||||||
label_copied_to: copied to
|
label_copied_to: copiada a
|
||||||
label_copied_from: copied from
|
label_copied_from: copiada desde
|
||||||
label_any_issues_in_project: any issues in project
|
label_any_issues_in_project: cualquier petición del proyecto
|
||||||
label_any_issues_not_in_project: any issues not in project
|
label_any_issues_not_in_project: cualquier petición que no sea del proyecto
|
||||||
field_private_notes: Private notes
|
field_private_notes: Notas privadas
|
||||||
permission_view_private_notes: View private notes
|
permission_view_private_notes: Ver notas privadas
|
||||||
permission_set_notes_private: Set notes as private
|
permission_set_notes_private: Poner notas como privadas
|
||||||
label_no_issues_in_project: no issues in project
|
label_no_issues_in_project: no hay peticiones en el proyecto
|
||||||
label_any: todos
|
label_any: todos
|
||||||
label_last_n_weeks: last %{count} weeks
|
label_last_n_weeks: en las últimas %{count} semanas
|
||||||
setting_cross_project_subtasks: Allow cross-project subtasks
|
setting_cross_project_subtasks: Permitir subtareas cruzadas entre proyectos
|
||||||
label_cross_project_descendants: Con proyectos hijo
|
label_cross_project_descendants: Con proyectos hijo
|
||||||
label_cross_project_tree: Con el árbol del proyecto
|
label_cross_project_tree: Con el árbol del proyecto
|
||||||
label_cross_project_hierarchy: Con la jerarquía del proyecto
|
label_cross_project_hierarchy: Con la jerarquía del proyecto
|
||||||
label_cross_project_system: Con todos los proyectos
|
label_cross_project_system: Con todos los proyectos
|
||||||
button_hide: Hide
|
button_hide: Ocultar
|
||||||
setting_non_working_week_days: Non-working days
|
setting_non_working_week_days: Días no laborables
|
||||||
label_in_the_next_days: in the next
|
label_in_the_next_days: en los próximos
|
||||||
label_in_the_past_days: in the past
|
label_in_the_past_days: en los anteriores
|
||||||
|
|||||||
@@ -1099,7 +1099,7 @@ ja:
|
|||||||
field_private_notes: プライベート注記
|
field_private_notes: プライベート注記
|
||||||
permission_view_private_notes: プライベート注記の閲覧
|
permission_view_private_notes: プライベート注記の閲覧
|
||||||
permission_set_notes_private: 注記をプライベートに設定
|
permission_set_notes_private: 注記をプライベートに設定
|
||||||
label_no_issues_in_project: no issues in project
|
label_no_issues_in_project: 次のプロジェクト内のチケットを除く
|
||||||
label_any: すべて
|
label_any: すべて
|
||||||
label_last_n_weeks: 直近%{count}週間
|
label_last_n_weeks: 直近%{count}週間
|
||||||
setting_cross_project_subtasks: 異なるプロジェクトのチケット間の親子関係を許可
|
setting_cross_project_subtasks: 異なるプロジェクトのチケット間の親子関係を許可
|
||||||
|
|||||||
+58
-58
@@ -326,7 +326,7 @@ ko:
|
|||||||
field_comments_sorting: 댓글 정렬
|
field_comments_sorting: 댓글 정렬
|
||||||
field_parent_title: 상위 제목
|
field_parent_title: 상위 제목
|
||||||
field_editable: 편집가능
|
field_editable: 편집가능
|
||||||
field_watcher: 일감관계자
|
field_watcher: 일감지킴이
|
||||||
field_identity_url: OpenID URL
|
field_identity_url: OpenID URL
|
||||||
field_content: 내용
|
field_content: 내용
|
||||||
field_group_by: 결과를 묶어 보여줄 기준
|
field_group_by: 결과를 묶어 보여줄 기준
|
||||||
@@ -347,7 +347,7 @@ ko:
|
|||||||
setting_wiki_compression: 위키 이력 압축
|
setting_wiki_compression: 위키 이력 압축
|
||||||
setting_feeds_limit: 피드에 포함할 항목의 수
|
setting_feeds_limit: 피드에 포함할 항목의 수
|
||||||
setting_default_projects_public: 새 프로젝트를 공개로 설정
|
setting_default_projects_public: 새 프로젝트를 공개로 설정
|
||||||
setting_autofetch_changesets: 제출(commit)된 변경묶음을 자동으로 가져오기
|
setting_autofetch_changesets: 커밋(commit)된 변경묶음을 자동으로 가져오기
|
||||||
setting_sys_api_enabled: 저장소 관리에 WS를 사용
|
setting_sys_api_enabled: 저장소 관리에 WS를 사용
|
||||||
setting_commit_ref_keywords: 일감 참조에 사용할 키워드들
|
setting_commit_ref_keywords: 일감 참조에 사용할 키워드들
|
||||||
setting_commit_fix_keywords: 일감 해결에 사용할 키워드들
|
setting_commit_fix_keywords: 일감 해결에 사용할 키워드들
|
||||||
@@ -392,8 +392,8 @@ ko:
|
|||||||
permission_save_queries: 검색양식 저장
|
permission_save_queries: 검색양식 저장
|
||||||
permission_view_gantt: Gantt차트 보기
|
permission_view_gantt: Gantt차트 보기
|
||||||
permission_view_calendar: 달력 보기
|
permission_view_calendar: 달력 보기
|
||||||
permission_view_issue_watchers: 일감관계자 보기
|
permission_view_issue_watchers: 일감지킴이 보기
|
||||||
permission_add_issue_watchers: 일감관계자 추가
|
permission_add_issue_watchers: 일감지킴이 추가
|
||||||
permission_log_time: 작업시간 기록
|
permission_log_time: 작업시간 기록
|
||||||
permission_view_time_entries: 시간입력 보기
|
permission_view_time_entries: 시간입력 보기
|
||||||
permission_edit_time_entries: 시간입력 편집
|
permission_edit_time_entries: 시간입력 편집
|
||||||
@@ -664,8 +664,8 @@ ko:
|
|||||||
label_time_tracking: 시간추적
|
label_time_tracking: 시간추적
|
||||||
label_change_plural: 변경사항들
|
label_change_plural: 변경사항들
|
||||||
label_statistics: 통계
|
label_statistics: 통계
|
||||||
label_commits_per_month: 월별 제출 내역
|
label_commits_per_month: 월별 커밋 내역
|
||||||
label_commits_per_author: 저자별 제출 내역
|
label_commits_per_author: 저자별 커밋 내역
|
||||||
label_view_diff: 차이점 보기
|
label_view_diff: 차이점 보기
|
||||||
label_diff_inline: 한줄로
|
label_diff_inline: 한줄로
|
||||||
label_diff_side_by_side: 두줄로
|
label_diff_side_by_side: 두줄로
|
||||||
@@ -679,8 +679,8 @@ ko:
|
|||||||
label_relation_new: 새 관계
|
label_relation_new: 새 관계
|
||||||
label_relation_delete: 관계 지우기
|
label_relation_delete: 관계 지우기
|
||||||
label_relates_to: "다음 일감과 관련됨:"
|
label_relates_to: "다음 일감과 관련됨:"
|
||||||
label_duplicates: "다음 일감과 겹침:"
|
label_duplicates: "다음 일감에 중복됨:"
|
||||||
label_duplicated_by: "다음 일감과 겹침:"
|
label_duplicated_by: "중복된 일감:"
|
||||||
label_blocks: "다음 일감의 해결을 막고 있음:"
|
label_blocks: "다음 일감의 해결을 막고 있음:"
|
||||||
label_blocked_by: "다음 일감에게 막혀 있음:"
|
label_blocked_by: "다음 일감에게 막혀 있음:"
|
||||||
label_precedes: "다음에 진행할 일감:"
|
label_precedes: "다음에 진행할 일감:"
|
||||||
@@ -748,7 +748,7 @@ ko:
|
|||||||
label_planning: 프로젝트계획
|
label_planning: 프로젝트계획
|
||||||
label_incoming_emails: 수신 메일
|
label_incoming_emails: 수신 메일
|
||||||
label_generate_key: 키 생성
|
label_generate_key: 키 생성
|
||||||
label_issue_watchers: 일감관계자
|
label_issue_watchers: 일감지킴이
|
||||||
label_example: 예
|
label_example: 예
|
||||||
label_display: 표시방식
|
label_display: 표시방식
|
||||||
label_sort: 정렬
|
label_sort: 정렬
|
||||||
@@ -807,7 +807,7 @@ ko:
|
|||||||
text_min_max_length_info: 0 는 제한이 없음을 의미함
|
text_min_max_length_info: 0 는 제한이 없음을 의미함
|
||||||
text_project_destroy_confirmation: 이 프로젝트를 삭제하고 모든 데이터를 지우시겠습니까?
|
text_project_destroy_confirmation: 이 프로젝트를 삭제하고 모든 데이터를 지우시겠습니까?
|
||||||
text_subprojects_destroy_warning: "하위 프로젝트(%{value})이(가) 자동으로 지워질 것입니다."
|
text_subprojects_destroy_warning: "하위 프로젝트(%{value})이(가) 자동으로 지워질 것입니다."
|
||||||
text_workflow_edit: 업무흐름 수정하려면 역할과 일감 유형을 선택하세요.
|
text_workflow_edit: 업무흐름을 수정하려면 역할과 일감 유형을 선택하세요.
|
||||||
text_are_you_sure: 계속 진행 하시겠습니까?
|
text_are_you_sure: 계속 진행 하시겠습니까?
|
||||||
text_tip_issue_begin_day: 오늘 시작하는 업무(task)
|
text_tip_issue_begin_day: 오늘 시작하는 업무(task)
|
||||||
text_tip_issue_end_day: 오늘 종료하는 업무(task)
|
text_tip_issue_end_day: 오늘 종료하는 업무(task)
|
||||||
@@ -818,7 +818,7 @@ ko:
|
|||||||
text_tracker_no_workflow: 이 일감 유형에는 업무흐름이 정의되지 않았습니다.
|
text_tracker_no_workflow: 이 일감 유형에는 업무흐름이 정의되지 않았습니다.
|
||||||
text_unallowed_characters: 허용되지 않는 문자열
|
text_unallowed_characters: 허용되지 않는 문자열
|
||||||
text_comma_separated: "구분자','를 이용해서 여러 개의 값을 입력할 수 있습니다."
|
text_comma_separated: "구분자','를 이용해서 여러 개의 값을 입력할 수 있습니다."
|
||||||
text_issues_ref_in_commit_messages: 제출 메시지에서 일감을 참조하거나 해결하기
|
text_issues_ref_in_commit_messages: 커밋 메시지에서 일감을 참조하거나 해결하기
|
||||||
text_issue_added: "%{author}이(가) 일감 %{id}을(를) 보고하였습니다."
|
text_issue_added: "%{author}이(가) 일감 %{id}을(를) 보고하였습니다."
|
||||||
text_issue_updated: "%{author}이(가) 일감 %{id}을(를) 수정하였습니다."
|
text_issue_updated: "%{author}이(가) 일감 %{id}을(를) 수정하였습니다."
|
||||||
text_wiki_destroy_confirmation: 이 위키와 모든 내용을 지우시겠습니까?
|
text_wiki_destroy_confirmation: 이 위키와 모든 내용을 지우시겠습니까?
|
||||||
@@ -879,8 +879,8 @@ ko:
|
|||||||
|
|
||||||
field_issue_to: 관련 일감
|
field_issue_to: 관련 일감
|
||||||
label_view_all_revisions: 모든 개정판 표시
|
label_view_all_revisions: 모든 개정판 표시
|
||||||
label_tag: 표지(票識)저장소
|
label_tag: 태그(Tag)
|
||||||
label_branch: 분기(分岐)저장소
|
label_branch: 브랜치(Branch)
|
||||||
error_no_tracker_in_project: 사용할 수 있도록 설정된 일감 유형이 없습니다. 프로젝트 설정을 확인하십시오.
|
error_no_tracker_in_project: 사용할 수 있도록 설정된 일감 유형이 없습니다. 프로젝트 설정을 확인하십시오.
|
||||||
error_no_default_issue_status: '기본 상태가 정해져 있지 않습니다. 설정을 확인하십시오. (주 메뉴의 "관리" -> "일감 상태")'
|
error_no_default_issue_status: '기본 상태가 정해져 있지 않습니다. 설정을 확인하십시오. (주 메뉴의 "관리" -> "일감 상태")'
|
||||||
text_journal_changed: "%{label}을(를) %{old}에서 %{new}(으)로 변경되었습니다."
|
text_journal_changed: "%{label}을(를) %{old}에서 %{new}(으)로 변경되었습니다."
|
||||||
@@ -893,7 +893,7 @@ ko:
|
|||||||
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: 잠김
|
||||||
version_status_open: 진행
|
version_status_open: 진행
|
||||||
@@ -1011,7 +1011,7 @@ ko:
|
|||||||
permission_set_issues_private: "일감을 공개나 비공개로 설정"
|
permission_set_issues_private: "일감을 공개나 비공개로 설정"
|
||||||
label_issues_visibility_public: "모든 비공개 일감"
|
label_issues_visibility_public: "모든 비공개 일감"
|
||||||
text_issues_destroy_descendants_confirmation: "%{count} 개의 하위 일감을 삭제할 것입니다."
|
text_issues_destroy_descendants_confirmation: "%{count} 개의 하위 일감을 삭제할 것입니다."
|
||||||
field_commit_logs_encoding: "제출(commit) 기록 인코딩"
|
field_commit_logs_encoding: "커밋(commit) 기록 인코딩"
|
||||||
field_scm_path_encoding: "경로 인코딩"
|
field_scm_path_encoding: "경로 인코딩"
|
||||||
text_scm_path_encoding_note: "기본: UTF-8"
|
text_scm_path_encoding_note: "기본: UTF-8"
|
||||||
field_path_to_repository: "저장소 경로"
|
field_path_to_repository: "저장소 경로"
|
||||||
@@ -1021,14 +1021,14 @@ ko:
|
|||||||
text_mercurial_repository_note: "로컬 저장소 (예: /hgrepo, c:\\hgrepo)"
|
text_mercurial_repository_note: "로컬 저장소 (예: /hgrepo, c:\\hgrepo)"
|
||||||
text_scm_command: "명령"
|
text_scm_command: "명령"
|
||||||
text_scm_command_version: "버전"
|
text_scm_command_version: "버전"
|
||||||
label_git_report_last_commit: "파일이나 폴더의 마지막 제출(commit)을 보고"
|
label_git_report_last_commit: "파일이나 폴더의 마지막 커밋(commit)을 보고"
|
||||||
text_scm_config: "SCM 명령을 config/configuration.yml에서 수정할 수 있습니다. 수정후에는 재시작하십시오."
|
text_scm_config: "SCM 명령을 config/configuration.yml에서 수정할 수 있습니다. 수정후에는 재시작하십시오."
|
||||||
text_scm_command_not_available: "SCM 명령을 사용할 수 없습니다. 관리 페이지의 설정을 검사하십시오."
|
text_scm_command_not_available: "SCM 명령을 사용할 수 없습니다. 관리 페이지의 설정을 검사하십시오."
|
||||||
notice_issue_successful_create: "%{id} 일감이 생성되었습니다."
|
notice_issue_successful_create: "%{id} 일감이 생성되었습니다."
|
||||||
label_between: "사이"
|
label_between: "사이"
|
||||||
setting_issue_group_assignment: "그룹에 일감 할당 허용"
|
setting_issue_group_assignment: "그룹에 일감 할당 허용"
|
||||||
label_diff: "비교(diff)"
|
label_diff: "비교(diff)"
|
||||||
text_git_repository_note: "저장소는 노출된 로컬입니다. (예: /gitrepo, c:\\gitrepo)"
|
text_git_repository_note: "로컬의 bare 저장소 (예: /gitrepo, c:\\gitrepo)"
|
||||||
description_query_sort_criteria_direction: "정렬 방향"
|
description_query_sort_criteria_direction: "정렬 방향"
|
||||||
description_project_scope: "검색 범위"
|
description_project_scope: "검색 범위"
|
||||||
description_filter: "검색 조건"
|
description_filter: "검색 조건"
|
||||||
@@ -1057,7 +1057,7 @@ ko:
|
|||||||
label_export_options: "내보내기 옵션: %{export_format}"
|
label_export_options: "내보내기 옵션: %{export_format}"
|
||||||
error_attachment_too_big: "이 파일은 제한된 크기(%{max_size})를 초과하였기 때문에 업로드 할 수 없습니다."
|
error_attachment_too_big: "이 파일은 제한된 크기(%{max_size})를 초과하였기 때문에 업로드 할 수 없습니다."
|
||||||
|
|
||||||
notice_failed_to_save_time_entries: "Failed to save %{count} time entrie(s) on %{total} selected: %{ids}."
|
notice_failed_to_save_time_entries: "%{total} 개의 시간입력중 다음 %{count} 개의 저장에 실패했습니다:: %{ids}."
|
||||||
label_x_issues:
|
label_x_issues:
|
||||||
zero: 0 일감
|
zero: 0 일감
|
||||||
one: 1 일감
|
one: 1 일감
|
||||||
@@ -1074,12 +1074,12 @@ ko:
|
|||||||
text_issue_conflict_resolution_overwrite: 변경내용 강제적용 (이전 덧글을 제외하고 덮어 씁니다)
|
text_issue_conflict_resolution_overwrite: 변경내용 강제적용 (이전 덧글을 제외하고 덮어 씁니다)
|
||||||
notice_issue_update_conflict: 일감이 수정되는 동안 다른 사용자에 의해서 변경되었습니다.
|
notice_issue_update_conflict: 일감이 수정되는 동안 다른 사용자에 의해서 변경되었습니다.
|
||||||
text_issue_conflict_resolution_cancel: "변경내용을 되돌리고 다시 표시 %{link}"
|
text_issue_conflict_resolution_cancel: "변경내용을 되돌리고 다시 표시 %{link}"
|
||||||
permission_manage_related_issues: 연계된 일감 관리
|
permission_manage_related_issues: 연결된 일감 관리
|
||||||
field_auth_source_ldap_filter: LDAP filter
|
field_auth_source_ldap_filter: LDAP 필터
|
||||||
label_search_for_watchers: 추가할 일감관계자 검색
|
label_search_for_watchers: 추가할 일감지킴이 검색
|
||||||
notice_account_deleted: 당신의 계정이 완전히 삭제되었습니다.
|
notice_account_deleted: 당신의 계정이 완전히 삭제되었습니다.
|
||||||
setting_unsubscribe: 사용자들이 자신의 계정을 삭제토록 허용
|
setting_unsubscribe: 사용자들이 자신의 계정을 삭제토록 허용
|
||||||
button_delete_my_account: 나의계정삭제
|
button_delete_my_account: 나의 계정 삭제
|
||||||
text_account_destroy_confirmation: |-
|
text_account_destroy_confirmation: |-
|
||||||
계속하시겠습니까?
|
계속하시겠습니까?
|
||||||
계정이 삭제되면 복구할 수 없습니다.
|
계정이 삭제되면 복구할 수 없습니다.
|
||||||
@@ -1088,46 +1088,46 @@ ko:
|
|||||||
setting_session_lifetime: 세션 최대 시간
|
setting_session_lifetime: 세션 최대 시간
|
||||||
setting_session_timeout: 세션 비활성화 타임아웃
|
setting_session_timeout: 세션 비활성화 타임아웃
|
||||||
label_session_expiration: 세션 만료
|
label_session_expiration: 세션 만료
|
||||||
permission_close_project: Close / reopen the project
|
permission_close_project: 프로젝트를 닫거나 다시 열기
|
||||||
label_show_closed_projects: View closed projects
|
label_show_closed_projects: 닫힌 프로젝트 보기
|
||||||
button_close: Close
|
button_close: 닫기
|
||||||
button_reopen: Reopen
|
button_reopen: 다시 열기
|
||||||
project_status_active: active
|
project_status_active: 사용중
|
||||||
project_status_closed: closed
|
project_status_closed: 닫힘
|
||||||
project_status_archived: archived
|
project_status_archived: 잠금보관
|
||||||
text_project_closed: This project is closed and read-only.
|
text_project_closed: 이 프로젝트는 닫혀 있으며 읽기 전용입니다.
|
||||||
notice_user_successful_create: User %{id} created.
|
notice_user_successful_create: 사용자 %{id} 이(가) 생성되었습니다.
|
||||||
field_core_fields: Standard fields
|
field_core_fields: 표준 항목들
|
||||||
field_timeout: Timeout (in seconds)
|
field_timeout: 타임아웃 (초)
|
||||||
setting_thumbnails_enabled: Display attachment thumbnails
|
setting_thumbnails_enabled: 첨부파일의 썸네일을 보여줌
|
||||||
setting_thumbnails_size: Thumbnails size (in pixels)
|
setting_thumbnails_size: 썸네일 크기 (픽셀)
|
||||||
label_status_transitions: Status transitions
|
label_status_transitions: 일감 상태 변경
|
||||||
label_fields_permissions: Fields permissions
|
label_fields_permissions: 항목 편집 권한
|
||||||
label_readonly: Read-only
|
label_readonly: 읽기 전용
|
||||||
label_required: Required
|
label_required: 필수
|
||||||
text_repository_identifier_info: "소문자(a-z),숫자,대쉬(-)와 밑줄(_)만 가능합니다.<br />식별자는 저장후에는 수정할 수 없습니다."
|
text_repository_identifier_info: "소문자(a-z),숫자,대쉬(-)와 밑줄(_)만 가능합니다.<br />식별자는 저장후에는 수정할 수 없습니다."
|
||||||
field_board_parent: Parent forum
|
field_board_parent: Parent forum
|
||||||
label_attribute_of_project: Project's %{name}
|
label_attribute_of_project: "프로젝트의 %{name}"
|
||||||
label_attribute_of_author: Author's %{name}
|
label_attribute_of_author: "저자의 %{name}"
|
||||||
label_attribute_of_assigned_to: Assignee's %{name}
|
label_attribute_of_assigned_to: "담당자의 %{name}"
|
||||||
label_attribute_of_fixed_version: Target version's %{name}
|
label_attribute_of_fixed_version: "목표버전의 %{name}"
|
||||||
label_copy_subtasks: Copy subtasks
|
label_copy_subtasks: 하위 일감들을 복사
|
||||||
label_copied_to: copied to
|
label_copied_to: "다음 일감으로 복사됨:"
|
||||||
label_copied_from: copied from
|
label_copied_from: "다음 일감으로부터 복사됨:"
|
||||||
label_any_issues_in_project: any issues in project
|
label_any_issues_in_project: 다음 프로젝트에 속한 아무 일감
|
||||||
label_any_issues_not_in_project: any issues not in project
|
label_any_issues_not_in_project: 다음 프로젝트에 속하지 않은 아무 일감
|
||||||
field_private_notes: Private notes
|
field_private_notes: 비공개 덧글
|
||||||
permission_view_private_notes: View private notes
|
permission_view_private_notes: 비공개 덧글 보기
|
||||||
permission_set_notes_private: Set notes as private
|
permission_set_notes_private: 덧글을 비공개로 설정
|
||||||
label_no_issues_in_project: no issues in project
|
label_no_issues_in_project: 다음 프로젝트 내에서 해당 일감 없음
|
||||||
label_any: 모두
|
label_any: 모두
|
||||||
label_last_n_weeks: last %{count} weeks
|
label_last_n_weeks: 최근 %{count} 주
|
||||||
setting_cross_project_subtasks: Allow cross-project subtasks
|
setting_cross_project_subtasks: 다른 프로젝트의 일감을 상위 일감으로 지정하는 것을 허용
|
||||||
label_cross_project_descendants: 하위 프로젝트
|
label_cross_project_descendants: 하위 프로젝트
|
||||||
label_cross_project_tree: 최상위 및 모든 하위 프로젝트
|
label_cross_project_tree: 최상위 및 모든 하위 프로젝트
|
||||||
label_cross_project_hierarchy: 상위 및 하위 프로젝트
|
label_cross_project_hierarchy: 상위 및 하위 프로젝트
|
||||||
label_cross_project_system: 모든 프로젝트
|
label_cross_project_system: 모든 프로젝트
|
||||||
button_hide: Hide
|
button_hide: 숨기기
|
||||||
setting_non_working_week_days: Non-working days
|
setting_non_working_week_days: 비근무일 (non-working days)
|
||||||
label_in_the_next_days: in the next
|
label_in_the_next_days: 다음
|
||||||
label_in_the_past_days: in the past
|
label_in_the_past_days: 지난
|
||||||
|
|||||||
+73
-73
@@ -682,12 +682,12 @@ lt:
|
|||||||
label_filter_plural: Filtrai
|
label_filter_plural: Filtrai
|
||||||
label_equals: yra
|
label_equals: yra
|
||||||
label_not_equals: nėra
|
label_not_equals: nėra
|
||||||
label_in_less_than: mažiau negu
|
label_in_less_than: anksčiau nei po
|
||||||
label_in_more_than: daugiau negu
|
label_in_more_than: vėliau nei po
|
||||||
label_greater_or_equal: '>='
|
label_greater_or_equal: '>='
|
||||||
label_less_or_equal: '<='
|
label_less_or_equal: '<='
|
||||||
label_between: tarp
|
label_between: tarp
|
||||||
label_in: po
|
label_in: per
|
||||||
label_today: šiandien
|
label_today: šiandien
|
||||||
label_all_time: visas laikas
|
label_all_time: visas laikas
|
||||||
label_yesterday: vakar
|
label_yesterday: vakar
|
||||||
@@ -698,11 +698,11 @@ lt:
|
|||||||
label_last_month: praeitas mėnuo
|
label_last_month: praeitas mėnuo
|
||||||
label_this_year: šiemet
|
label_this_year: šiemet
|
||||||
label_date_range: Dienų diapazonas
|
label_date_range: Dienų diapazonas
|
||||||
label_less_than_ago: prieš mažiau negu dienas
|
label_less_than_ago: vėliau nei prieš
|
||||||
label_more_than_ago: prieš daugiau negu dienas
|
label_more_than_ago: anksčiau nei prieš
|
||||||
label_ago: dienomis prieš
|
label_ago: prieš
|
||||||
label_contains: turi savyje
|
label_contains: turi
|
||||||
label_not_contains: neturi savyje
|
label_not_contains: neturi
|
||||||
label_day_plural: dienų(os)
|
label_day_plural: dienų(os)
|
||||||
label_repository: Saugykla
|
label_repository: Saugykla
|
||||||
label_repository_plural: Saugyklos
|
label_repository_plural: Saugyklos
|
||||||
@@ -1064,79 +1064,79 @@ lt:
|
|||||||
description_date_from: Įvesti pradžios datą
|
description_date_from: Įvesti pradžios datą
|
||||||
description_date_to: Įvesti pabaigos datą
|
description_date_to: Įvesti pabaigos datą
|
||||||
|
|
||||||
label_additional_workflow_transitions_for_assignee: Additional transitions allowed when the user is the assignee
|
label_additional_workflow_transitions_for_assignee: Papildomi darbų eigos variantai kai darbas paskirtas vartotojui
|
||||||
label_additional_workflow_transitions_for_author: Additional transitions allowed when the user is the author
|
label_additional_workflow_transitions_for_author: Papildomi darbų eigos variantai kai vartotojas yra darbo autorius
|
||||||
notice_failed_to_save_time_entries: "Failed to save %{count} time entrie(s) on %{total} selected: %{ids}."
|
notice_failed_to_save_time_entries: "Nepavyko išsaugoti %{count} laiko žurnalo įrašų iš %{total} parinktų: %{ids}."
|
||||||
label_x_issues:
|
label_x_issues:
|
||||||
zero: 0 darbas
|
zero: 0 darbas
|
||||||
one: 1 darbas
|
one: 1 darbas
|
||||||
other: "%{count} darbai"
|
other: "%{count} darbai(ų)"
|
||||||
label_repository_new: New repository
|
label_repository_new: Nauja saugykla
|
||||||
field_repository_is_default: Main repository
|
field_repository_is_default: Pagrindinė saugykla
|
||||||
label_copy_attachments: Copy attachments
|
label_copy_attachments: Kopijuoti priedus
|
||||||
label_item_position: "%{position}/%{count}"
|
label_item_position: "%{position}/%{count}"
|
||||||
label_completed_versions: Completed versions
|
label_completed_versions: Užbaigtos versijos
|
||||||
text_project_identifier_info: Only lower case letters (a-z), numbers, dashes and underscores are allowed.<br />Once saved, the identifier cannot be changed.
|
text_project_identifier_info: Leidžiamos tik mažosios raidės (a-z), skaitmenys, brūkšneliai ir pabraukimo simboliai.<br />Kartą išsaugojus pakeitimai negalimi
|
||||||
field_multiple: Multiple values
|
field_multiple: Keletas reikšmių
|
||||||
setting_commit_cross_project_ref: Allow issues of all the other projects to be referenced and fixed
|
setting_commit_cross_project_ref: Allow issues of all the other projects to be referenced and fixed
|
||||||
text_issue_conflict_resolution_add_notes: Add my notes and discard my other changes
|
text_issue_conflict_resolution_add_notes: Išsaugoti mano žinutę ir atmesti likusius mano pataisymus
|
||||||
text_issue_conflict_resolution_overwrite: Apply my changes anyway (previous notes will be kept but some changes may be overwritten)
|
text_issue_conflict_resolution_overwrite: Išsaugoti mano pakeitimus (ankstesnių pakeitimų žinutės bus išsaugotos, tačiau kai kurie pakeitimai bus perrašyti)
|
||||||
notice_issue_update_conflict: The issue has been updated by an other user while you were editing it.
|
notice_issue_update_conflict: Darbas buvo pakoreguotas kito vartotojo kol jūs atlikote pakeitimus.
|
||||||
text_issue_conflict_resolution_cancel: Discard all my changes and redisplay %{link}
|
text_issue_conflict_resolution_cancel: Atmesti visus mano pakeitimus ir iš naujo rodyti %{link}
|
||||||
permission_manage_related_issues: Manage related issues
|
permission_manage_related_issues: Tvarkyti susietus darbus
|
||||||
field_auth_source_ldap_filter: LDAP filter
|
field_auth_source_ldap_filter: LDAP filtras
|
||||||
label_search_for_watchers: Search for watchers to add
|
label_search_for_watchers: Ieškoti vartotojų kuriuos įtraukti kaip stebėtojus
|
||||||
notice_account_deleted: Your account has been permanently deleted.
|
notice_account_deleted: Jūsų paskyra panaikinta.
|
||||||
setting_unsubscribe: Allow users to delete their own account
|
setting_unsubscribe: Leisti vartotojams panaikinti savo paskyrą
|
||||||
button_delete_my_account: Delete my account
|
button_delete_my_account: Panaikinti savo paskyrą
|
||||||
text_account_destroy_confirmation: |-
|
text_account_destroy_confirmation: |-
|
||||||
Are you sure you want to proceed?
|
Ar tikrai norite tęsti?
|
||||||
Your account will be permanently deleted, with no way to reactivate it.
|
Jūsų paskyra bus panaikinta ir nebus galimybės jos atkurti.
|
||||||
error_session_expired: Your session has expired. Please login again.
|
error_session_expired: Jūsų sesija pasibaigė. Prašome prisijunti iš naujo.
|
||||||
text_session_expiration_settings: "Warning: changing these settings may expire the current sessions including yours."
|
text_session_expiration_settings: "Įspėjimas: atlikus šiuos pakeitimus visos aktyvios sesijos gali nustoti galiojusios (įskaitant jūsų sesiją)."
|
||||||
setting_session_lifetime: Session maximum lifetime
|
setting_session_lifetime: Sesijos maksimalus galiojimas
|
||||||
setting_session_timeout: Session inactivity timeout
|
setting_session_timeout: Sesijos neveiklumo laiko tarpas
|
||||||
label_session_expiration: Session expiration
|
label_session_expiration: Baigėsi sujungimo sesija
|
||||||
permission_close_project: Close / reopen the project
|
permission_close_project: Uždaryti / atnaujinti projektą
|
||||||
label_show_closed_projects: View closed projects
|
label_show_closed_projects: Matyti uždarytus projektus
|
||||||
button_close: Close
|
button_close: Uždaryti
|
||||||
button_reopen: Reopen
|
button_reopen: Atnaujinti
|
||||||
project_status_active: active
|
project_status_active: aktyvus
|
||||||
project_status_closed: closed
|
project_status_closed: uždarytas
|
||||||
project_status_archived: archived
|
project_status_archived: archyvuotas
|
||||||
text_project_closed: This project is closed and read-only.
|
text_project_closed: Šis projektas yra uždarytas, prieinamas tik peržiūrai.
|
||||||
notice_user_successful_create: User %{id} created.
|
notice_user_successful_create: Vartotojas %{id} sukurtas.
|
||||||
field_core_fields: Standard fields
|
field_core_fields: Standartiniai laukai
|
||||||
field_timeout: Timeout (in seconds)
|
field_timeout: Timeout (po sek.)
|
||||||
setting_thumbnails_enabled: Display attachment thumbnails
|
setting_thumbnails_enabled: Rodyti sumažintus priedų atvaizdus
|
||||||
setting_thumbnails_size: Thumbnails size (in pixels)
|
setting_thumbnails_size: Sumažinto atvaizdo dydis (taškeliais)
|
||||||
label_status_transitions: Status transitions
|
label_status_transitions: Darbų eiga
|
||||||
label_fields_permissions: Fields permissions
|
label_fields_permissions: Leidimai
|
||||||
label_readonly: Read-only
|
label_readonly: Tik peržiūra
|
||||||
label_required: Required
|
label_required: Privaloma(s)
|
||||||
text_repository_identifier_info: Only lower case letters (a-z), numbers, dashes and underscores are allowed.<br />Once saved, the identifier cannot be changed.
|
text_repository_identifier_info: Leidžiamos tik mažosios raidės (a-z), skaitmenys, brūkšneliai ir pabraukimo simboliai.<br />Kartą išsaugojus pakeitimai negalimi
|
||||||
field_board_parent: Parent forum
|
field_board_parent: Pagrindinis forumas
|
||||||
label_attribute_of_project: Project's %{name}
|
label_attribute_of_project: Projekto pavadinimas %{name}
|
||||||
label_attribute_of_author: Author's %{name}
|
label_attribute_of_author: Autorius %{name}
|
||||||
label_attribute_of_assigned_to: Assignee's %{name}
|
label_attribute_of_assigned_to: Paskirtas %{name}
|
||||||
label_attribute_of_fixed_version: Target version's %{name}
|
label_attribute_of_fixed_version: Versijos %{name}
|
||||||
label_copy_subtasks: Copy subtasks
|
label_copy_subtasks: Kopijuoti darbo dalis
|
||||||
label_copied_to: copied to
|
label_copied_to: kopijuota į
|
||||||
label_copied_from: copied from
|
label_copied_from: kopijuota iš
|
||||||
label_any_issues_in_project: any issues in project
|
label_any_issues_in_project: bet kurie projekto darbai
|
||||||
label_any_issues_not_in_project: any issues not in project
|
label_any_issues_not_in_project: bet kurie ne šio projekto darbai
|
||||||
field_private_notes: Private notes
|
field_private_notes: Privačios žinutės
|
||||||
permission_view_private_notes: View private notes
|
permission_view_private_notes: Matyti privačias žinutes
|
||||||
permission_set_notes_private: Set notes as private
|
permission_set_notes_private: Pakeisti žinutę privačia
|
||||||
label_no_issues_in_project: no issues in project
|
label_no_issues_in_project: projekte nėra darbų
|
||||||
label_any: visi
|
label_any: visi
|
||||||
label_last_n_weeks: last %{count} weeks
|
label_last_n_weeks: prieš %{count} sav.
|
||||||
setting_cross_project_subtasks: Allow cross-project subtasks
|
setting_cross_project_subtasks: Leisti susieti skirtingų projektų užduočių dalis
|
||||||
label_cross_project_descendants: Su subprojektais
|
label_cross_project_descendants: Su subprojektais
|
||||||
label_cross_project_tree: Su projekto medžiu
|
label_cross_project_tree: Su projekto medžiu
|
||||||
label_cross_project_hierarchy: Su projekto hierarchija
|
label_cross_project_hierarchy: Su projekto hierarchija
|
||||||
label_cross_project_system: Su visais projektais
|
label_cross_project_system: Su visais projektais
|
||||||
button_hide: Hide
|
button_hide: Slėpti
|
||||||
setting_non_working_week_days: Non-working days
|
setting_non_working_week_days: Nedarbo dienos
|
||||||
label_in_the_next_days: in the next
|
label_in_the_next_days: per ateinančias
|
||||||
label_in_the_past_days: in the past
|
label_in_the_past_days: per paskutines
|
||||||
|
|||||||
+50
-50
@@ -49,7 +49,7 @@ nl:
|
|||||||
one: "ongeveer 1 uur"
|
one: "ongeveer 1 uur"
|
||||||
other: "ongeveer %{count} uren"
|
other: "ongeveer %{count} uren"
|
||||||
x_hours:
|
x_hours:
|
||||||
one: "1 hour"
|
one: "1 uur"
|
||||||
other: "%{count} hours"
|
other: "%{count} hours"
|
||||||
x_days:
|
x_days:
|
||||||
one: "1 dag"
|
one: "1 dag"
|
||||||
@@ -989,61 +989,61 @@ nl:
|
|||||||
description_all_columns: Alle kolommen
|
description_all_columns: Alle kolommen
|
||||||
button_export: Exporteren
|
button_export: Exporteren
|
||||||
label_export_options: "%{export_format} export opties"
|
label_export_options: "%{export_format} export opties"
|
||||||
error_attachment_too_big: This file cannot be uploaded because it exceeds the maximum allowed file size (%{max_size})
|
error_attachment_too_big: Dit bestand kan niet worden geupload omdat het de maximaal toegestane grootte overschrijd (%{max_size})
|
||||||
notice_failed_to_save_time_entries: "Failed to save %{count} time entrie(s) on %{total} selected: %{ids}."
|
notice_failed_to_save_time_entries: "Opslaan gefaald voor %{count} tijdsnotatie(s) van %{total} geselecteerde: %{ids}."
|
||||||
label_x_issues:
|
label_x_issues:
|
||||||
zero: 0 issue
|
zero: 0 incidenten
|
||||||
one: 1 issue
|
one: 1 incidenten
|
||||||
other: "%{count} issues"
|
other: "%{count} incidenten"
|
||||||
label_repository_new: New repository
|
label_repository_new: Nieuw repository
|
||||||
field_repository_is_default: Main repository
|
field_repository_is_default: Hoofd repository
|
||||||
label_copy_attachments: Copy attachments
|
label_copy_attachments: Copieer bijlage(n)
|
||||||
label_item_position: "%{position}/%{count}"
|
label_item_position: "%{position}/%{count}"
|
||||||
label_completed_versions: Completed versions
|
label_completed_versions: Versies compleet
|
||||||
field_multiple: Multiple values
|
field_multiple: Meerdere waardes
|
||||||
setting_commit_cross_project_ref: Allow issues of all the other projects to be referenced and fixed
|
setting_commit_cross_project_ref: Sta toe om incidenten van alle projecten te refereren en oplossen
|
||||||
text_issue_conflict_resolution_add_notes: Add my notes and discard my other changes
|
text_issue_conflict_resolution_add_notes: Voeg mijn notities toe en annuleer andere wijzigingen
|
||||||
text_issue_conflict_resolution_overwrite: Apply my changes anyway (previous notes will be kept but some changes may be overwritten)
|
text_issue_conflict_resolution_overwrite: Voeg mijn wijzigingen alsnog toe (voorgaande notities worden bewaard, maar sommige kunnen overschreden worden)
|
||||||
notice_issue_update_conflict: The issue has been updated by an other user while you were editing it.
|
notice_issue_update_conflict: Dit incident is reeds geupdate door een andere gebruiker terwijl jij bezig was
|
||||||
text_issue_conflict_resolution_cancel: Discard all my changes and redisplay %{link}
|
text_issue_conflict_resolution_cancel: Annuleer mijn wijzigingen en geef pagina opnieuw weer %{link}
|
||||||
permission_manage_related_issues: Manage related issues
|
permission_manage_related_issues: Beheer gerelateerde incidenten
|
||||||
field_auth_source_ldap_filter: LDAP filter
|
field_auth_source_ldap_filter: LDAP filter
|
||||||
label_search_for_watchers: Search for watchers to add
|
label_search_for_watchers: Zoek om monitoorders toe te voegen
|
||||||
notice_account_deleted: Your account has been permanently deleted.
|
notice_account_deleted: Uw account is permanent verwijderd
|
||||||
setting_unsubscribe: Allow users to delete their own account
|
setting_unsubscribe: Sta gebruikers toe hun eigen account te verwijderen
|
||||||
button_delete_my_account: Delete my account
|
button_delete_my_account: Verwijder mijn account
|
||||||
text_account_destroy_confirmation: |-
|
text_account_destroy_confirmation: |-
|
||||||
Are you sure you want to proceed?
|
Weet u zeker dat u door wilt gaan?
|
||||||
Your account will be permanently deleted, with no way to reactivate it.
|
Uw account wordt permanent verwijderd zonder mogelijkheid deze te heractiveren.
|
||||||
error_session_expired: Your session has expired. Please login again.
|
error_session_expired: Uw sessie is verlopen. U dient opnieuw in te loggen.
|
||||||
text_session_expiration_settings: "Warning: changing these settings may expire the current sessions including yours."
|
text_session_expiration_settings: "Waarschuwing: door deze instelling te wijzigen kan sessies laten verlopen inclusief de uwe"
|
||||||
setting_session_lifetime: Session maximum lifetime
|
setting_session_lifetime: Maximale sessieduur
|
||||||
setting_session_timeout: Session inactivity timeout
|
setting_session_timeout: Sessie inactiviteit timeout
|
||||||
label_session_expiration: Session expiration
|
label_session_expiration: Sessie verlopen
|
||||||
permission_close_project: Close / reopen the project
|
permission_close_project: Sluit / heropen project
|
||||||
label_show_closed_projects: View closed projects
|
label_show_closed_projects: Gesloten projecten weergeven
|
||||||
button_close: Close
|
button_close: Sluiten
|
||||||
button_reopen: Reopen
|
button_reopen: Heropen
|
||||||
project_status_active: active
|
project_status_active: actief
|
||||||
project_status_closed: closed
|
project_status_closed: gesloten
|
||||||
project_status_archived: archived
|
project_status_archived: gearchiveerd
|
||||||
text_project_closed: This project is closed and read-only.
|
text_project_closed: Dit project is gesloten en op alleen-lezen
|
||||||
notice_user_successful_create: User %{id} created.
|
notice_user_successful_create: Gebruiker %{id} aangemaakt.
|
||||||
field_core_fields: Standard fields
|
field_core_fields: Standaard verleden
|
||||||
field_timeout: Timeout (in seconds)
|
field_timeout: Timeout (in seconds)
|
||||||
setting_thumbnails_enabled: Display attachment thumbnails
|
setting_thumbnails_enabled: Geef bijlage miniaturen weer
|
||||||
setting_thumbnails_size: Thumbnails size (in pixels)
|
setting_thumbnails_size: Grootte miniaturen (in pixels)
|
||||||
label_status_transitions: Status transitions
|
label_status_transitions: Status transitie
|
||||||
label_fields_permissions: Fields permissions
|
label_fields_permissions: Permissie velden
|
||||||
label_readonly: Read-only
|
label_readonly: Alleen-lezen
|
||||||
label_required: Required
|
label_required: Verplicht
|
||||||
text_repository_identifier_info: 'Alleen kleine letter (a-z), cijfers, streepjes en liggende streepjes zijn toegestaan.<br />Eenmaal opgeslagen kan de identifier niet worden gewijzigd.'
|
text_repository_identifier_info: 'Alleen kleine letter (a-z), cijfers, streepjes en liggende streepjes zijn toegestaan.<br />Eenmaal opgeslagen kan de identifier niet worden gewijzigd.'
|
||||||
field_board_parent: Parent forum
|
field_board_parent: Hoofd forum
|
||||||
label_attribute_of_project: Project's %{name}
|
label_attribute_of_project: Project %{name}
|
||||||
label_attribute_of_author: Author's %{name}
|
label_attribute_of_author: Auteur(s) %{name}
|
||||||
label_attribute_of_assigned_to: Assignee's %{name}
|
label_attribute_of_assigned_to: Toegewezen %{name}
|
||||||
label_attribute_of_fixed_version: Target version's %{name}
|
label_attribute_of_fixed_version: Target versions %{name}
|
||||||
label_copy_subtasks: Copy subtasks
|
label_copy_subtasks: Kopieer subtaken
|
||||||
label_copied_to: copied to
|
label_copied_to: copied to
|
||||||
label_copied_from: copied from
|
label_copied_from: copied from
|
||||||
label_any_issues_in_project: any issues in project
|
label_any_issues_in_project: any issues in project
|
||||||
|
|||||||
+38
-38
@@ -926,13 +926,13 @@
|
|||||||
notice_gantt_chart_truncated: Diagrammet ble avkortet fordi det overstiger det maksimale antall elementer som kan vises (%{max})
|
notice_gantt_chart_truncated: Diagrammet ble avkortet fordi det overstiger det maksimale antall elementer som kan vises (%{max})
|
||||||
setting_gantt_items_limit: Maksimalt antall elementer vist på gantt-diagrammet
|
setting_gantt_items_limit: Maksimalt antall elementer vist på gantt-diagrammet
|
||||||
field_warn_on_leaving_unsaved: Vis meg en advarsel når jeg forlater en side med ikke lagret tekst
|
field_warn_on_leaving_unsaved: Vis meg en advarsel når jeg forlater en side med ikke lagret tekst
|
||||||
text_warn_on_leaving_unsaved: Den gjeldende siden inneholder tekst som ikke er lagret, som vil bli tapt hvis du forlater denne siden.
|
text_warn_on_leaving_unsaved: Siden inneholder tekst som ikke er lagret og som vil bli tapt om du forlater denne siden.
|
||||||
label_my_queries: Mine egne spørringer
|
label_my_queries: Mine egne spørringer
|
||||||
text_journal_changed_no_detail: "%{label} oppdatert"
|
text_journal_changed_no_detail: "%{label} oppdatert"
|
||||||
label_news_comment_added: Kommentar lagt til en nyhet
|
label_news_comment_added: Kommentar lagt til en nyhet
|
||||||
button_expand_all: Utvid alle
|
button_expand_all: Utvid alle
|
||||||
button_collapse_all: Kollaps alle
|
button_collapse_all: Kollaps alle
|
||||||
label_additional_workflow_transitions_for_assignee: Ytterligere overganger tillatt når brukeren er sakens tildelte
|
label_additional_workflow_transitions_for_assignee: Ytterligere overganger tillatt når brukeren er den som er tildelt saken
|
||||||
label_additional_workflow_transitions_for_author: Ytterligere overganger tillatt når brukeren er den som har opprettet saken
|
label_additional_workflow_transitions_for_author: Ytterligere overganger tillatt når brukeren er den som har opprettet saken
|
||||||
label_bulk_edit_selected_time_entries: Masserediger valgte timeliste-oppføringer
|
label_bulk_edit_selected_time_entries: Masserediger valgte timeliste-oppføringer
|
||||||
text_time_entries_destroy_confirmation: Er du sikker på du vil slette de(n) valgte timeliste-oppføringen(e)?
|
text_time_entries_destroy_confirmation: Er du sikker på du vil slette de(n) valgte timeliste-oppføringen(e)?
|
||||||
@@ -970,64 +970,64 @@
|
|||||||
setting_issue_group_assignment: Tillat tildeling av saker til grupper
|
setting_issue_group_assignment: Tillat tildeling av saker til grupper
|
||||||
label_diff: diff
|
label_diff: diff
|
||||||
|
|
||||||
description_query_sort_criteria_direction: Sort direction
|
description_query_sort_criteria_direction: Sorteringsretning
|
||||||
description_project_scope: Search scope
|
description_project_scope: Search scope
|
||||||
description_filter: Filter
|
description_filter: Filter
|
||||||
description_user_mail_notification: Mail notification settings
|
description_user_mail_notification: Mail notification settings
|
||||||
description_date_from: Enter start date
|
description_date_from: Oppgi startdato
|
||||||
description_message_content: Message content
|
description_message_content: Meldingsinnhold
|
||||||
description_available_columns: Available Columns
|
description_available_columns: Tilgjengelige kolonner
|
||||||
description_date_range_interval: Choose range by selecting start and end date
|
description_date_range_interval: Velg datointervall ved å spesifisere start- og sluttdato
|
||||||
description_issue_category_reassign: Choose issue category
|
description_issue_category_reassign: Choose issue category
|
||||||
description_search: Searchfield
|
description_search: Søkefelt
|
||||||
description_notes: Notes
|
description_notes: Notes
|
||||||
description_date_range_list: Choose range from list
|
description_date_range_list: Choose range from list
|
||||||
description_choose_project: Projects
|
description_choose_project: Prosjekter
|
||||||
description_date_to: Enter end date
|
description_date_to: Oppgi sluttdato
|
||||||
description_query_sort_criteria_attribute: Sort attribute
|
description_query_sort_criteria_attribute: Sort attribute
|
||||||
description_wiki_subpages_reassign: Choose new parent page
|
description_wiki_subpages_reassign: Velg ny overordnet side
|
||||||
description_selected_columns: Selected Columns
|
description_selected_columns: Valgte kolonner
|
||||||
label_parent_revision: Parent
|
label_parent_revision: Overordnet
|
||||||
label_child_revision: Child
|
label_child_revision: Underordnet
|
||||||
error_scm_annotate_big_text_file: The entry cannot be annotated, as it exceeds the maximum text file size.
|
error_scm_annotate_big_text_file: The entry cannot be annotated, as it exceeds the maximum text file size.
|
||||||
setting_default_issue_start_date_to_creation_date: Use current date as start date for new issues
|
setting_default_issue_start_date_to_creation_date: Bruk dagens dato som startdato for nye saker
|
||||||
button_edit_section: Edit this section
|
button_edit_section: Rediger denne seksjonen
|
||||||
setting_repositories_encodings: Attachments and repositories encodings
|
setting_repositories_encodings: Attachments and repositories encodings
|
||||||
description_all_columns: All Columns
|
description_all_columns: Alle kolonnene
|
||||||
button_export: Export
|
button_export: Eksporter
|
||||||
label_export_options: "%{export_format} export options"
|
label_export_options: "%{export_format} eksportvalg"
|
||||||
error_attachment_too_big: This file cannot be uploaded because it exceeds the maximum allowed file size (%{max_size})
|
error_attachment_too_big: Filen overstiger maksimum filstørrelse (%{max_size}) og kan derfor ikke lastes opp
|
||||||
notice_failed_to_save_time_entries: "Failed to save %{count} time entrie(s) on %{total} selected: %{ids}."
|
notice_failed_to_save_time_entries: "Failed to save %{count} time entrie(s) on %{total} selected: %{ids}."
|
||||||
label_x_issues:
|
label_x_issues:
|
||||||
zero: 0 sak
|
zero: 0 saker
|
||||||
one: 1 sak
|
one: 1 sak
|
||||||
other: "%{count} saker"
|
other: "%{count} saker"
|
||||||
label_repository_new: New repository
|
label_repository_new: Nytt depot
|
||||||
field_repository_is_default: Main repository
|
field_repository_is_default: Hoveddepot
|
||||||
label_copy_attachments: Copy attachments
|
label_copy_attachments: Kopier vedlegg
|
||||||
label_item_position: "%{position}/%{count}"
|
label_item_position: "%{position}/%{count}"
|
||||||
label_completed_versions: Completed versions
|
label_completed_versions: Completed versions
|
||||||
text_project_identifier_info: Only lower case letters (a-z), numbers, dashes and underscores are allowed.<br />Once saved, the identifier cannot be changed.
|
text_project_identifier_info: Kun små bokstaver (a-z), tall, bindestrek (-) og "underscore" (_) er tillatt.<br />Etter lagring er det ikke mulig å gjøre endringer.
|
||||||
field_multiple: Multiple values
|
field_multiple: Flere verdier
|
||||||
setting_commit_cross_project_ref: Allow issues of all the other projects to be referenced and fixed
|
setting_commit_cross_project_ref: Allow issues of all the other projects to be referenced and fixed
|
||||||
text_issue_conflict_resolution_add_notes: Add my notes and discard my other changes
|
text_issue_conflict_resolution_add_notes: Add my notes and discard my other changes
|
||||||
text_issue_conflict_resolution_overwrite: Apply my changes anyway (previous notes will be kept but some changes may be overwritten)
|
text_issue_conflict_resolution_overwrite: Apply my changes anyway (previous notes will be kept but some changes may be overwritten)
|
||||||
notice_issue_update_conflict: The issue has been updated by an other user while you were editing it.
|
notice_issue_update_conflict: Saken ble oppdatert av en annen bruker mens du redigerte den.
|
||||||
text_issue_conflict_resolution_cancel: Discard all my changes and redisplay %{link}
|
text_issue_conflict_resolution_cancel: Forkast alle endringen mine og vis %{link} på nytt
|
||||||
permission_manage_related_issues: Manage related issues
|
permission_manage_related_issues: Manage related issues
|
||||||
field_auth_source_ldap_filter: LDAP filter
|
field_auth_source_ldap_filter: LDAP filter
|
||||||
label_search_for_watchers: Search for watchers to add
|
label_search_for_watchers: Search for watchers to add
|
||||||
notice_account_deleted: Your account has been permanently deleted.
|
notice_account_deleted: Din konto er ugjenkallelig slettet.
|
||||||
setting_unsubscribe: Allow users to delete their own account
|
setting_unsubscribe: Tillat brukere å slette sin egen konto
|
||||||
button_delete_my_account: Delete my account
|
button_delete_my_account: Slett kontoen min
|
||||||
text_account_destroy_confirmation: |-
|
text_account_destroy_confirmation: |-
|
||||||
Are you sure you want to proceed?
|
Er du sikker på at du ønsker å fortsette?
|
||||||
Your account will be permanently deleted, with no way to reactivate it.
|
Kontoen din vil bli ugjenkallelig slettet uten mulighet for å reaktiveres igjen.
|
||||||
error_session_expired: Your session has expired. Please login again.
|
error_session_expired: Økten har gått ut på tid. Vennligst logg på igjen.
|
||||||
text_session_expiration_settings: "Warning: changing these settings may expire the current sessions including yours."
|
text_session_expiration_settings: "Advarsel: ved å endre disse innstillingene kan aktive økter gå ut på tid, inkludert din egen."
|
||||||
setting_session_lifetime: Session maximum lifetime
|
setting_session_lifetime: Øktenes makslengde
|
||||||
setting_session_timeout: Session inactivity timeout
|
setting_session_timeout: Økten er avsluttet på grunn av inaktivitet
|
||||||
label_session_expiration: Session expiration
|
label_session_expiration: Økten er avsluttet
|
||||||
permission_close_project: Close / reopen the project
|
permission_close_project: Close / reopen the project
|
||||||
label_show_closed_projects: View closed projects
|
label_show_closed_projects: View closed projects
|
||||||
button_close: Close
|
button_close: Close
|
||||||
|
|||||||
+83
-83
@@ -53,8 +53,8 @@ pt-BR:
|
|||||||
one: 'aproximadamente 1 hora'
|
one: 'aproximadamente 1 hora'
|
||||||
other: 'aproximadamente %{count} horas'
|
other: 'aproximadamente %{count} horas'
|
||||||
x_hours:
|
x_hours:
|
||||||
one: "1 hour"
|
one: "1 hora"
|
||||||
other: "%{count} hours"
|
other: "%{count} horas"
|
||||||
|
|
||||||
x_days:
|
x_days:
|
||||||
one: '1 dia'
|
one: '1 dia'
|
||||||
@@ -76,8 +76,8 @@ pt-BR:
|
|||||||
one: 'mais de 1 ano'
|
one: 'mais de 1 ano'
|
||||||
other: 'mais de %{count} anos'
|
other: 'mais de %{count} anos'
|
||||||
almost_x_years:
|
almost_x_years:
|
||||||
one: "almost 1 year"
|
one: "quase 1 ano"
|
||||||
other: "almost %{count} years"
|
other: "quase %{count} anos"
|
||||||
|
|
||||||
# numeros
|
# numeros
|
||||||
number:
|
number:
|
||||||
@@ -888,7 +888,7 @@ pt-BR:
|
|||||||
setting_issue_done_ratio_issue_status: Usar a situação da tarefa
|
setting_issue_done_ratio_issue_status: Usar a situação da tarefa
|
||||||
error_issue_done_ratios_not_updated: O pecentual de conclusão das tarefas não foi atualizado.
|
error_issue_done_ratios_not_updated: O pecentual de conclusão das tarefas não foi atualizado.
|
||||||
error_workflow_copy_target: Por favor, selecione os tipos de tarefa e os papéis alvo
|
error_workflow_copy_target: Por favor, selecione os tipos de tarefa e os papéis alvo
|
||||||
setting_issue_done_ratio_issue_field: Use the issue field
|
setting_issue_done_ratio_issue_field: Use o campo da tarefa
|
||||||
label_copy_same_as_target: Mesmo alvo
|
label_copy_same_as_target: Mesmo alvo
|
||||||
label_copy_target: Alvo
|
label_copy_target: Alvo
|
||||||
notice_issue_done_ratios_updated: Percentual de conslusão atualizados.
|
notice_issue_done_ratios_updated: Percentual de conslusão atualizados.
|
||||||
@@ -994,13 +994,13 @@ pt-BR:
|
|||||||
label_git_report_last_commit: Relatar última alteração para arquivos e diretórios
|
label_git_report_last_commit: Relatar última alteração para arquivos e diretórios
|
||||||
text_scm_config: Você pode configurar seus comandos de versionamento em config/configurations.yml. Por favor reinicie a aplicação após alterá-lo.
|
text_scm_config: Você pode configurar seus comandos de versionamento em config/configurations.yml. Por favor reinicie a aplicação após alterá-lo.
|
||||||
text_scm_command_not_available: Comando de versionamento não disponível. Por favor verifique as configurações no painel de administração.
|
text_scm_command_not_available: Comando de versionamento não disponível. Por favor verifique as configurações no painel de administração.
|
||||||
notice_issue_successful_create: Issue %{id} created.
|
notice_issue_successful_create: Tarefa %{id} criada.
|
||||||
label_between: between
|
label_between: entre
|
||||||
setting_issue_group_assignment: Allow issue assignment to groups
|
setting_issue_group_assignment: Permitir atribuições de tarefas a grupos
|
||||||
label_diff: diff
|
label_diff: diff
|
||||||
text_git_repository_note: Repository is bare and local (e.g. /gitrepo, c:\gitrepo)
|
text_git_repository_note: "Repositório esta vazio e é local (ex: /gitrepo, c:\\gitrepo)"
|
||||||
|
|
||||||
description_query_sort_criteria_direction: Sort direction
|
description_query_sort_criteria_direction: Direção da ordenação
|
||||||
description_project_scope: Escopo da pesquisa
|
description_project_scope: Escopo da pesquisa
|
||||||
description_filter: Filtro
|
description_filter: Filtro
|
||||||
description_user_mail_notification: Configuração de notificações por e-mail
|
description_user_mail_notification: Configuração de notificações por e-mail
|
||||||
@@ -1014,91 +1014,91 @@ pt-BR:
|
|||||||
description_date_range_list: Escolha um período a partira da lista
|
description_date_range_list: Escolha um período a partira da lista
|
||||||
description_choose_project: Projetos
|
description_choose_project: Projetos
|
||||||
description_date_to: Digite a data final
|
description_date_to: Digite a data final
|
||||||
description_query_sort_criteria_attribute: Sort attribute
|
description_query_sort_criteria_attribute: Atributo de ordenação
|
||||||
description_wiki_subpages_reassign: Escolha uma nova página pai
|
description_wiki_subpages_reassign: Escolha uma nova página pai
|
||||||
description_selected_columns: Colunas selecionadas
|
description_selected_columns: Colunas selecionadas
|
||||||
|
|
||||||
label_parent_revision: Parent
|
label_parent_revision: Pais
|
||||||
label_child_revision: Child
|
label_child_revision: Filhos
|
||||||
error_scm_annotate_big_text_file: The entry cannot be annotated, as it exceeds the maximum text file size.
|
error_scm_annotate_big_text_file: A entrada não pode ser anotada, pois excede o tamanho máximo do arquivo de texto.
|
||||||
setting_default_issue_start_date_to_creation_date: Usar data corrente como data inicial para novas tarefas
|
setting_default_issue_start_date_to_creation_date: Usar data corrente como data inicial para novas tarefas
|
||||||
button_edit_section: Edit this section
|
button_edit_section: Editar esta seção
|
||||||
setting_repositories_encodings: Attachments and repositories encodings
|
setting_repositories_encodings: Encoding dos repositórios e anexos
|
||||||
description_all_columns: All Columns
|
description_all_columns: Todas as colunas
|
||||||
button_export: Export
|
button_export: Exportar
|
||||||
label_export_options: "%{export_format} export options"
|
label_export_options: "Opções de exportação %{export_format}"
|
||||||
error_attachment_too_big: This file cannot be uploaded because it exceeds the maximum allowed file size (%{max_size})
|
error_attachment_too_big: Este arquivo não pode ser enviado porque excede o tamanho máximo permitido (%{max_size})
|
||||||
notice_failed_to_save_time_entries: "Failed to save %{count} time entrie(s) on %{total} selected: %{ids}."
|
notice_failed_to_save_time_entries: "Falha ao salvar %{count} de %{total} horas trabalhadas: %{ids}."
|
||||||
label_x_issues:
|
label_x_issues:
|
||||||
zero: 0 tarefa
|
zero: 0 tarefa
|
||||||
one: 1 tarefa
|
one: 1 tarefa
|
||||||
other: "%{count} tarefas"
|
other: "%{count} tarefas"
|
||||||
label_repository_new: New repository
|
label_repository_new: Novo repositório
|
||||||
field_repository_is_default: Main repository
|
field_repository_is_default: Repositório principal
|
||||||
label_copy_attachments: Copy attachments
|
label_copy_attachments: Copiar anexos
|
||||||
label_item_position: "%{position}/%{count}"
|
label_item_position: "%{position}/%{count}"
|
||||||
label_completed_versions: Completed versions
|
label_completed_versions: Versões completadas
|
||||||
text_project_identifier_info: Only lower case letters (a-z), numbers, dashes and underscores are allowed.<br />Once saved, the identifier cannot be changed.
|
text_project_identifier_info: Somente letras minúsculas (az), números, traços e sublinhados são permitidos. <br /> Uma vez salvo, o identificador não pode ser alterado.
|
||||||
field_multiple: Multiple values
|
field_multiple: Multiplos valores
|
||||||
setting_commit_cross_project_ref: Allow issues of all the other projects to be referenced and fixed
|
setting_commit_cross_project_ref: Permitir que tarefas de todos os outros projetos sejam refenciadas e resolvidas
|
||||||
text_issue_conflict_resolution_add_notes: Add my notes and discard my other changes
|
text_issue_conflict_resolution_add_notes: Adicione minhas anotações e descartar minhas outras mudanças
|
||||||
text_issue_conflict_resolution_overwrite: Apply my changes anyway (previous notes will be kept but some changes may be overwritten)
|
text_issue_conflict_resolution_overwrite: Aplicar as minhas alterações de qualquer maneira (notas anteriores serão mantidos, mas algumas mudanças podem ser substituídos)
|
||||||
notice_issue_update_conflict: The issue has been updated by an other user while you were editing it.
|
notice_issue_update_conflict: A tarefa foi atualizada por um outro usuário, enquanto você estava editando.
|
||||||
text_issue_conflict_resolution_cancel: Discard all my changes and redisplay %{link}
|
text_issue_conflict_resolution_cancel: Descartar todas as minhas mudanças e re-exibir %{link}
|
||||||
permission_manage_related_issues: Manage related issues
|
permission_manage_related_issues: Gerenciar tarefas relacionadas
|
||||||
field_auth_source_ldap_filter: LDAP filter
|
field_auth_source_ldap_filter: Filtro LDAP
|
||||||
label_search_for_watchers: Search for watchers to add
|
label_search_for_watchers: Procurar por outros observadores para adiconar
|
||||||
notice_account_deleted: Your account has been permanently deleted.
|
notice_account_deleted: Sua conta foi excluída permanentemente.
|
||||||
setting_unsubscribe: Allow users to delete their own account
|
setting_unsubscribe: Permitir aos usuários excluir sua conta própria
|
||||||
button_delete_my_account: Delete my account
|
button_delete_my_account: Excluir minha conta
|
||||||
text_account_destroy_confirmation: |-
|
text_account_destroy_confirmation: |-
|
||||||
Are you sure you want to proceed?
|
Tem certeza de que quer continuar?
|
||||||
Your account will be permanently deleted, with no way to reactivate it.
|
Sua conta será excluída permanentemente, sem qualquer forma de reativá-lo.
|
||||||
error_session_expired: Your session has expired. Please login again.
|
error_session_expired: A sua sessão expirou. Por favor, faça login novamente.
|
||||||
text_session_expiration_settings: "Warning: changing these settings may expire the current sessions including yours."
|
text_session_expiration_settings: "Aviso: a alteração dessas configurações pode expirar as sessões atuais, incluindo a sua."
|
||||||
setting_session_lifetime: Session maximum lifetime
|
setting_session_lifetime: duração máxima da sessão
|
||||||
setting_session_timeout: Session inactivity timeout
|
setting_session_timeout: tempo limite de inatividade da sessão
|
||||||
label_session_expiration: Session expiration
|
label_session_expiration: "Expiração da sessão"
|
||||||
permission_close_project: Close / reopen the project
|
permission_close_project: Fechar / reabrir o projeto
|
||||||
label_show_closed_projects: View closed projects
|
label_show_closed_projects: Visualização de projetos fechados
|
||||||
button_close: Close
|
button_close: Fechar
|
||||||
button_reopen: Reopen
|
button_reopen: Reabrir
|
||||||
project_status_active: active
|
project_status_active: ativo
|
||||||
project_status_closed: closed
|
project_status_closed: fechado
|
||||||
project_status_archived: archived
|
project_status_archived: arquivado
|
||||||
text_project_closed: This project is closed and read-only.
|
text_project_closed: Este projeto é fechado e somente leitura.
|
||||||
notice_user_successful_create: User %{id} created.
|
notice_user_successful_create: Usuário %{id} criado.
|
||||||
field_core_fields: Standard fields
|
field_core_fields: campos padrão
|
||||||
field_timeout: Timeout (in seconds)
|
field_timeout: Tempo de espera (em segundos)
|
||||||
setting_thumbnails_enabled: Display attachment thumbnails
|
setting_thumbnails_enabled: exibir miniaturas de anexos
|
||||||
setting_thumbnails_size: Thumbnails size (in pixels)
|
setting_thumbnails_size: Tamanho das miniaturas (em pixels)
|
||||||
label_status_transitions: Status transitions
|
label_status_transitions: Estados das transições
|
||||||
label_fields_permissions: Fields permissions
|
label_fields_permissions: Permissões de campos
|
||||||
label_readonly: Read-only
|
label_readonly: somente leitura
|
||||||
label_required: Required
|
label_required: Obrigatório
|
||||||
text_repository_identifier_info: Only lower case letters (a-z), numbers, dashes and underscores are allowed.<br />Once saved, the identifier cannot be changed.
|
text_repository_identifier_info: Somente letras minúsculas (az), números, traços e sublinhados são permitidos <br/> Uma vez salvo, o identificador não pode ser alterado.
|
||||||
field_board_parent: Parent forum
|
field_board_parent: Fórum Pai
|
||||||
label_attribute_of_project: Project's %{name}
|
label_attribute_of_project: "Projeto %{name}"
|
||||||
label_attribute_of_author: Author's %{name}
|
label_attribute_of_author: "autor %{name}"
|
||||||
label_attribute_of_assigned_to: Assignee's %{name}
|
label_attribute_of_assigned_to: "atribuído %{name}"
|
||||||
label_attribute_of_fixed_version: Target version's %{name}
|
label_attribute_of_fixed_version: "versão alvo %{name}"
|
||||||
label_copy_subtasks: Copy subtasks
|
label_copy_subtasks: Copiar sub-tarefas
|
||||||
label_copied_to: copied to
|
label_copied_to: copiada
|
||||||
label_copied_from: copied from
|
label_copied_from: copiado
|
||||||
label_any_issues_in_project: any issues in project
|
label_any_issues_in_project: quaisquer problemas em projeto
|
||||||
label_any_issues_not_in_project: any issues not in project
|
label_any_issues_not_in_project: todas as questões que não estão em projeto
|
||||||
field_private_notes: Private notes
|
field_private_notes: notas privadas
|
||||||
permission_view_private_notes: View private notes
|
permission_view_private_notes: Ver notas privadas
|
||||||
permission_set_notes_private: Set notes as private
|
permission_set_notes_private: Defina notas como privada
|
||||||
label_no_issues_in_project: no issues in project
|
label_no_issues_in_project: sem problemas em projeto
|
||||||
label_any: todos
|
label_any: todos
|
||||||
label_last_n_weeks: last %{count} weeks
|
label_last_n_weeks: "últimas %{count} semanas"
|
||||||
setting_cross_project_subtasks: Allow cross-project subtasks
|
setting_cross_project_subtasks: Permitir cruzamento de sub-tarefas entre projetos
|
||||||
label_cross_project_descendants: Com sub-projetos
|
label_cross_project_descendants: Com sub-projetos
|
||||||
label_cross_project_tree: Com a árvore do projeto
|
label_cross_project_tree: Com a árvore do projeto
|
||||||
label_cross_project_hierarchy: Com a hierarquia do projeto
|
label_cross_project_hierarchy: Com a hierarquia do projeto
|
||||||
label_cross_project_system: Com todos os projetos
|
label_cross_project_system: Com todos os projetos
|
||||||
button_hide: Hide
|
button_hide: Esconder
|
||||||
setting_non_working_week_days: Non-working days
|
setting_non_working_week_days: dias não úteis
|
||||||
label_in_the_next_days: in the next
|
label_in_the_next_days: na próxima
|
||||||
label_in_the_past_days: in the past
|
label_in_the_past_days: no passado
|
||||||
|
|||||||
+148
-147
@@ -1,6 +1,7 @@
|
|||||||
# Portuguese localization for Ruby on Rails
|
# Portuguese localization for Ruby on Rails
|
||||||
# by Ricardo Otero <oterosantos@gmail.com>
|
# by Ricardo Otero <oterosantos@gmail.com>
|
||||||
# by Alberto Ferreira <toraxic@gmail.com>
|
# by Alberto Ferreira <toraxic@gmail.com>
|
||||||
|
# by Rui Rebelo <rmrebelo@ua.pt>
|
||||||
pt:
|
pt:
|
||||||
support:
|
support:
|
||||||
array:
|
array:
|
||||||
@@ -51,8 +52,8 @@ pt:
|
|||||||
one: "aproximadamente 1 hora"
|
one: "aproximadamente 1 hora"
|
||||||
other: "aproximadamente %{count} horas"
|
other: "aproximadamente %{count} horas"
|
||||||
x_hours:
|
x_hours:
|
||||||
one: "1 hour"
|
one: "1 hora"
|
||||||
other: "%{count} hours"
|
other: "%{count} horas"
|
||||||
x_days:
|
x_days:
|
||||||
one: "1 dia"
|
one: "1 dia"
|
||||||
other: "%{count} dias"
|
other: "%{count} dias"
|
||||||
@@ -69,8 +70,8 @@ pt:
|
|||||||
one: "mais de 1 ano"
|
one: "mais de 1 ano"
|
||||||
other: "mais de %{count} anos"
|
other: "mais de %{count} anos"
|
||||||
almost_x_years:
|
almost_x_years:
|
||||||
one: "almost 1 year"
|
one: "quase 1 ano"
|
||||||
other: "almost %{count} years"
|
other: "quase %{count} anos"
|
||||||
|
|
||||||
number:
|
number:
|
||||||
format:
|
format:
|
||||||
@@ -440,17 +441,17 @@ pt:
|
|||||||
label_closed_issues: fechado
|
label_closed_issues: fechado
|
||||||
label_closed_issues_plural: fechados
|
label_closed_issues_plural: fechados
|
||||||
label_x_open_issues_abbr_on_total:
|
label_x_open_issues_abbr_on_total:
|
||||||
zero: 0 open / %{total}
|
zero: 0 abertas / %{total}
|
||||||
one: 1 open / %{total}
|
one: 1 aberta / %{total}
|
||||||
other: "%{count} open / %{total}"
|
other: "%{count} abertas / %{total}"
|
||||||
label_x_open_issues_abbr:
|
label_x_open_issues_abbr:
|
||||||
zero: 0 open
|
zero: 0 abertas
|
||||||
one: 1 open
|
one: 1 aberta
|
||||||
other: "%{count} open"
|
other: "%{count} abertas"
|
||||||
label_x_closed_issues_abbr:
|
label_x_closed_issues_abbr:
|
||||||
zero: 0 closed
|
zero: 0 fechadas
|
||||||
one: 1 closed
|
one: 1 fechada
|
||||||
other: "%{count} closed"
|
other: "%{count} fechadas"
|
||||||
label_total: Total
|
label_total: Total
|
||||||
label_permissions: Permissões
|
label_permissions: Permissões
|
||||||
label_current_status: Estado actual
|
label_current_status: Estado actual
|
||||||
@@ -474,9 +475,9 @@ pt:
|
|||||||
label_comment: Comentário
|
label_comment: Comentário
|
||||||
label_comment_plural: Comentários
|
label_comment_plural: Comentários
|
||||||
label_x_comments:
|
label_x_comments:
|
||||||
zero: no comments
|
zero: sem comentários
|
||||||
one: 1 comment
|
one: 1 comentário
|
||||||
other: "%{count} comments"
|
other: "%{count} comentários"
|
||||||
label_comment_add: Adicionar comentário
|
label_comment_add: Adicionar comentário
|
||||||
label_comment_added: Comentário adicionado
|
label_comment_added: Comentário adicionado
|
||||||
label_comment_delete: Apagar comentários
|
label_comment_delete: Apagar comentários
|
||||||
@@ -943,146 +944,146 @@ pt:
|
|||||||
setting_commit_logtime_enabled: Activar registo de tempo
|
setting_commit_logtime_enabled: Activar registo de tempo
|
||||||
notice_gantt_chart_truncated: O gráfico foi truncado porque excede o número máximo de itens visível (%{máx.})
|
notice_gantt_chart_truncated: O gráfico foi truncado porque excede o número máximo de itens visível (%{máx.})
|
||||||
setting_gantt_items_limit: Número máximo de itens exibidos no gráfico Gantt
|
setting_gantt_items_limit: Número máximo de itens exibidos no gráfico Gantt
|
||||||
field_warn_on_leaving_unsaved: Warn me when leaving a page with unsaved text
|
field_warn_on_leaving_unsaved: Avisar-me quando deixar uma página com texto por salvar
|
||||||
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: A página actual contém texto por salvar que será perdido caso saia desta página.
|
||||||
label_my_queries: My custom queries
|
label_my_queries: As minhas consultas
|
||||||
text_journal_changed_no_detail: "%{label} updated"
|
text_journal_changed_no_detail: "%{label} actualizada"
|
||||||
label_news_comment_added: Comment added to a news
|
label_news_comment_added: Comentário adicionado a uma notícia
|
||||||
button_expand_all: Expand all
|
button_expand_all: Expandir todos
|
||||||
button_collapse_all: Collapse all
|
button_collapse_all: Minimizar todos
|
||||||
label_additional_workflow_transitions_for_assignee: Additional transitions allowed when the user is the assignee
|
label_additional_workflow_transitions_for_assignee: Transições adicionais permitidas quando a tarefa está atribuida ao utilizador
|
||||||
label_additional_workflow_transitions_for_author: Additional transitions allowed when the user is the author
|
label_additional_workflow_transitions_for_author: Transições adicionais permitidas quando o utilizador é o autor da tarefa
|
||||||
label_bulk_edit_selected_time_entries: Bulk edit selected time entries
|
label_bulk_edit_selected_time_entries: Edição em massa de registos de tempo
|
||||||
text_time_entries_destroy_confirmation: Are you sure you want to delete the selected time entr(y/ies)?
|
text_time_entries_destroy_confirmation: Têm a certeza que pretende apagar o(s) registo(s) de tempo selecionado(s)?
|
||||||
label_role_anonymous: Anonymous
|
label_role_anonymous: Anónimo
|
||||||
label_role_non_member: Non member
|
label_role_non_member: Não membro
|
||||||
label_issue_note_added: Note added
|
label_issue_note_added: Nota adicionada
|
||||||
label_issue_status_updated: Status updated
|
label_issue_status_updated: Estado actualizado
|
||||||
label_issue_priority_updated: Priority updated
|
label_issue_priority_updated: Prioridade adicionada
|
||||||
label_issues_visibility_own: Issues created by or assigned to the user
|
label_issues_visibility_own: Tarefas criadas ou atribuídas ao utilizador
|
||||||
field_issues_visibility: Issues visibility
|
field_issues_visibility: Visibilidade das tarefas
|
||||||
label_issues_visibility_all: All issues
|
label_issues_visibility_all: Todas as tarefas
|
||||||
permission_set_own_issues_private: Set own issues public or private
|
permission_set_own_issues_private: Configurar as suas tarefas como públicas ou privadas
|
||||||
field_is_private: Private
|
field_is_private: Privado
|
||||||
permission_set_issues_private: Set issues public or private
|
permission_set_issues_private: Configurar tarefas como públicas ou privadas
|
||||||
label_issues_visibility_public: All non private issues
|
label_issues_visibility_public: Todas as tarefas públicas
|
||||||
text_issues_destroy_descendants_confirmation: This will also delete %{count} subtask(s).
|
text_issues_destroy_descendants_confirmation: Irá apagar também %{count} subtarefa(s).
|
||||||
field_commit_logs_encoding: Encoding das mensagens de commit
|
field_commit_logs_encoding: Codificação das mensagens de commit
|
||||||
field_scm_path_encoding: Path encoding
|
field_scm_path_encoding: Codificação do caminho
|
||||||
text_scm_path_encoding_note: "Default: UTF-8"
|
text_scm_path_encoding_note: "Por omissão: UTF-8"
|
||||||
field_path_to_repository: Path to repository
|
field_path_to_repository: Caminho para o repositório
|
||||||
field_root_directory: Root directory
|
field_root_directory: Raíz do directório
|
||||||
field_cvs_module: Module
|
field_cvs_module: Módulo
|
||||||
field_cvsroot: CVSROOT
|
field_cvsroot: CVSROOT
|
||||||
text_mercurial_repository_note: Local repository (e.g. /hgrepo, c:\hgrepo)
|
text_mercurial_repository_note: "Repositório local (ex: /hgrepo, c:\\hgrepo)"
|
||||||
text_scm_command: Command
|
text_scm_command: Comando
|
||||||
text_scm_command_version: Version
|
text_scm_command_version: Versão
|
||||||
label_git_report_last_commit: Report last commit for files and directories
|
label_git_report_last_commit: Analisar último commit por ficheiros e pastas
|
||||||
text_scm_config: You can configure your scm commands in config/configuration.yml. Please restart the application after editing it.
|
text_scm_config: Pode configurar os comando SCM em config/configuration.yml. Por favor reinicie a aplicação depois de alterar o ficheiro.
|
||||||
text_scm_command_not_available: Scm command is not available. Please check settings on the administration panel.
|
text_scm_command_not_available: O comando SCM não está disponível. Por favor verifique as configurações no painel de administração.
|
||||||
notice_issue_successful_create: Issue %{id} created.
|
notice_issue_successful_create: Tarefa %{id} criada.
|
||||||
label_between: between
|
label_between: entre
|
||||||
setting_issue_group_assignment: Allow issue assignment to groups
|
setting_issue_group_assignment: Permitir atribuir tarefas a grupos
|
||||||
label_diff: diff
|
label_diff: diferença
|
||||||
text_git_repository_note: Repository is bare and local (e.g. /gitrepo, c:\gitrepo)
|
text_git_repository_note: O repositório é local (e.g. /gitrepo, c:\gitrepo)
|
||||||
description_query_sort_criteria_direction: Sort direction
|
description_query_sort_criteria_direction: Direcção da ordenação
|
||||||
description_project_scope: Search scope
|
description_project_scope: Âmbito da pesquisa
|
||||||
description_filter: Filter
|
description_filter: Filtro
|
||||||
description_user_mail_notification: Mail notification settings
|
description_user_mail_notification: Configurações das notificações por email
|
||||||
description_date_from: Enter start date
|
description_date_from: Introduza data de início
|
||||||
description_message_content: Message content
|
description_message_content: Conteúdo da mensagem
|
||||||
description_available_columns: Available Columns
|
description_available_columns: Colunas disponíveis
|
||||||
description_date_range_interval: Choose range by selecting start and end date
|
description_date_range_interval: Escolha o intervalo seleccionando a data de início e de fim
|
||||||
description_issue_category_reassign: Choose issue category
|
description_issue_category_reassign: Escolha a categoria da tarefa
|
||||||
description_search: Searchfield
|
description_search: Campo de pesquisa
|
||||||
description_notes: Notes
|
description_notes: Notas
|
||||||
description_date_range_list: Choose range from list
|
description_date_range_list: Escolha o intervalo da lista
|
||||||
description_choose_project: Projects
|
description_choose_project: Projecto
|
||||||
description_date_to: Enter end date
|
description_date_to: Introduza data de fim
|
||||||
description_query_sort_criteria_attribute: Sort attribute
|
description_query_sort_criteria_attribute: Ordenar atributos
|
||||||
description_wiki_subpages_reassign: Choose new parent page
|
description_wiki_subpages_reassign: Escolha nova página pai
|
||||||
description_selected_columns: Selected Columns
|
description_selected_columns: Colunas seleccionadas
|
||||||
label_parent_revision: Parent
|
label_parent_revision: Pai
|
||||||
label_child_revision: Child
|
label_child_revision: Filha
|
||||||
error_scm_annotate_big_text_file: The entry cannot be annotated, as it exceeds the maximum text file size.
|
error_scm_annotate_big_text_file: Esta entrada não pode ser anotada, excede o tamanha máximo.
|
||||||
setting_default_issue_start_date_to_creation_date: Use current date as start date for new issues
|
setting_default_issue_start_date_to_creation_date: Utilizar a data actual como data de início para novas tarefas
|
||||||
button_edit_section: Edit this section
|
button_edit_section: Editar esta secção
|
||||||
setting_repositories_encodings: Attachments and repositories encodings
|
setting_repositories_encodings: Codificação dos anexos e repositórios
|
||||||
description_all_columns: All Columns
|
description_all_columns: Todas as colunas
|
||||||
button_export: Export
|
button_export: Exportar
|
||||||
label_export_options: "%{export_format} export options"
|
label_export_options: "%{export_format} opções de exportação"
|
||||||
error_attachment_too_big: This file cannot be uploaded because it exceeds the maximum allowed file size (%{max_size})
|
error_attachment_too_big: Este ficheiro não pode ser carregado pois excede o tamanho máximo permitido por ficheiro (%{max_size})
|
||||||
notice_failed_to_save_time_entries: "Failed to save %{count} time entrie(s) on %{total} selected: %{ids}."
|
notice_failed_to_save_time_entries: "Falha ao guardar %{count} registo(s) de tempo dos %{total} seleccionados: %{ids}."
|
||||||
label_x_issues:
|
label_x_issues:
|
||||||
zero: 0 tarefa
|
zero: 0 tarefa
|
||||||
one: 1 tarefa
|
one: 1 tarefa
|
||||||
other: "%{count} tarefas"
|
other: "%{count} tarefas"
|
||||||
label_repository_new: New repository
|
label_repository_new: Novo repositório
|
||||||
field_repository_is_default: Main repository
|
field_repository_is_default: Repositório principal
|
||||||
label_copy_attachments: Copy attachments
|
label_copy_attachments: Copiar anexos
|
||||||
label_item_position: "%{position}/%{count}"
|
label_item_position: "%{position}/%{count}"
|
||||||
label_completed_versions: Completed versions
|
label_completed_versions: Versões completas
|
||||||
text_project_identifier_info: Only lower case letters (a-z), numbers, dashes and underscores are allowed.<br />Once saved, the identifier cannot be changed.
|
text_project_identifier_info: Apenas letras minúsculas (a-z), números, traços e sublinhados são permitidos.<br />Depois de guardar não é possível alterar.
|
||||||
field_multiple: Multiple values
|
field_multiple: Múltiplos valores
|
||||||
setting_commit_cross_project_ref: Allow issues of all the other projects to be referenced and fixed
|
setting_commit_cross_project_ref: Permitir que tarefas dos restantes projectos sejam referenciadas e resolvidas
|
||||||
text_issue_conflict_resolution_add_notes: Add my notes and discard my other changes
|
text_issue_conflict_resolution_add_notes: Adicionar as minhas notas e descartar as minhas restantes alterações
|
||||||
text_issue_conflict_resolution_overwrite: Apply my changes anyway (previous notes will be kept but some changes may be overwritten)
|
text_issue_conflict_resolution_overwrite: Aplicar as minhas alterações (notas antigas serão mantidas mas algumas alterações podem se perder)
|
||||||
notice_issue_update_conflict: The issue has been updated by an other user while you were editing it.
|
notice_issue_update_conflict: Esta tarefa foi actualizada por outro utilizador enquanto estava a edita-la.
|
||||||
text_issue_conflict_resolution_cancel: Discard all my changes and redisplay %{link}
|
text_issue_conflict_resolution_cancel: Descartar todas as minhas alterações e actualizar %{link}
|
||||||
permission_manage_related_issues: Manage related issues
|
permission_manage_related_issues: Gerir tarefas relacionadas
|
||||||
field_auth_source_ldap_filter: LDAP filter
|
field_auth_source_ldap_filter: Filtro LDAP
|
||||||
label_search_for_watchers: Search for watchers to add
|
label_search_for_watchers: Pesquisar por observadores para adicionar
|
||||||
notice_account_deleted: Your account has been permanently deleted.
|
notice_account_deleted: A sua conta foi apagada permanentemente.
|
||||||
setting_unsubscribe: Allow users to delete their own account
|
setting_unsubscribe: Permitir aos utilizadores apagarem a sua própria conta
|
||||||
button_delete_my_account: Delete my account
|
button_delete_my_account: Apagar a minha conta
|
||||||
text_account_destroy_confirmation: |-
|
text_account_destroy_confirmation: |-
|
||||||
Are you sure you want to proceed?
|
Têm a certeza que pretende avançar?
|
||||||
Your account will be permanently deleted, with no way to reactivate it.
|
A sua conta vai ser permanentemente apagada, não será possível recupera-la.
|
||||||
error_session_expired: Your session has expired. Please login again.
|
error_session_expired: A sua sessão expirou. Por-favor autentique-se novamente.
|
||||||
text_session_expiration_settings: "Warning: changing these settings may expire the current sessions including yours."
|
text_session_expiration_settings: "Atenção: alterar estas configurações pode fazer expirar as sessões em curso, incluíndo a sua."
|
||||||
setting_session_lifetime: Session maximum lifetime
|
setting_session_lifetime: Duração máxima da sessão
|
||||||
setting_session_timeout: Session inactivity timeout
|
setting_session_timeout: Tempo limite de inactividade da sessão
|
||||||
label_session_expiration: Session expiration
|
label_session_expiration: Expiração da sessão
|
||||||
permission_close_project: Close / reopen the project
|
permission_close_project: Fechar / re-abrir o projecto
|
||||||
label_show_closed_projects: View closed projects
|
label_show_closed_projects: Ver os projectos fechados
|
||||||
button_close: Close
|
button_close: Fechar
|
||||||
button_reopen: Reopen
|
button_reopen: Re-abrir
|
||||||
project_status_active: active
|
project_status_active: activo
|
||||||
project_status_closed: closed
|
project_status_closed: fechado
|
||||||
project_status_archived: archived
|
project_status_archived: arquivado
|
||||||
text_project_closed: This project is closed and read-only.
|
text_project_closed: Este projecto está fechado e é apenas de leitura.
|
||||||
notice_user_successful_create: User %{id} created.
|
notice_user_successful_create: Utilizador %{id} criado.
|
||||||
field_core_fields: Standard fields
|
field_core_fields: Campos padrão
|
||||||
field_timeout: Timeout (in seconds)
|
field_timeout: Tempo limite (em segundos)
|
||||||
setting_thumbnails_enabled: Display attachment thumbnails
|
setting_thumbnails_enabled: Apresentar miniaturas dos anexos
|
||||||
setting_thumbnails_size: Thumbnails size (in pixels)
|
setting_thumbnails_size: Tamanho das miniaturas (em pixeis)
|
||||||
label_status_transitions: Status transitions
|
label_status_transitions: Estado das transições
|
||||||
label_fields_permissions: Fields permissions
|
label_fields_permissions: Permissões do campo
|
||||||
label_readonly: Read-only
|
label_readonly: Apenas de leitura
|
||||||
label_required: Required
|
label_required: Obrigatório
|
||||||
text_repository_identifier_info: Only lower case letters (a-z), numbers, dashes and underscores are allowed.<br />Once saved, the identifier cannot be changed.
|
text_repository_identifier_info: Apenas letras minúsculas (a-z), números, traços e sublinhados são permitidos.<br />Depois de guardar não é possível alterar.
|
||||||
field_board_parent: Parent forum
|
field_board_parent: Fórum pai
|
||||||
label_attribute_of_project: Project's %{name}
|
label_attribute_of_project: "%{name} do Projecto"
|
||||||
label_attribute_of_author: Author's %{name}
|
label_attribute_of_author: "%{name} do Autor"
|
||||||
label_attribute_of_assigned_to: Assignee's %{name}
|
label_attribute_of_assigned_to: "%{name} do atribuído"
|
||||||
label_attribute_of_fixed_version: Target version's %{name}
|
label_attribute_of_fixed_version: "%{name} da Versão"
|
||||||
label_copy_subtasks: Copy subtasks
|
label_copy_subtasks: Copiar sub-tarefas
|
||||||
label_copied_to: copied to
|
label_copied_to: copiado para
|
||||||
label_copied_from: copied from
|
label_copied_from: copiado de
|
||||||
label_any_issues_in_project: any issues in project
|
label_any_issues_in_project: tarefas do projecto
|
||||||
label_any_issues_not_in_project: any issues not in project
|
label_any_issues_not_in_project: tarefas sem projecto
|
||||||
field_private_notes: Private notes
|
field_private_notes: Notas privadas
|
||||||
permission_view_private_notes: View private notes
|
permission_view_private_notes: Ver notas privadas
|
||||||
permission_set_notes_private: Set notes as private
|
permission_set_notes_private: Configurar notas como privadas
|
||||||
label_no_issues_in_project: no issues in project
|
label_no_issues_in_project: sem tarefas no projecto
|
||||||
label_any: todos
|
label_any: todos
|
||||||
label_last_n_weeks: last %{count} weeks
|
label_last_n_weeks: últimas %{count} semanas
|
||||||
setting_cross_project_subtasks: Allow cross-project subtasks
|
setting_cross_project_subtasks: Permitir sub-tarefas entre projectos
|
||||||
label_cross_project_descendants: Com os sub-projectos
|
label_cross_project_descendants: Com os sub-projectos
|
||||||
label_cross_project_tree: Com árvore do projecto
|
label_cross_project_tree: Com árvore do projecto
|
||||||
label_cross_project_hierarchy: Com hierarquia do projecto
|
label_cross_project_hierarchy: Com hierarquia do projecto
|
||||||
label_cross_project_system: Com todos os projectos
|
label_cross_project_system: Com todos os projectos
|
||||||
button_hide: Hide
|
button_hide: Esconder
|
||||||
setting_non_working_week_days: Non-working days
|
setting_non_working_week_days: Dias não úteis
|
||||||
label_in_the_next_days: in the next
|
label_in_the_next_days: no futuro
|
||||||
label_in_the_past_days: in the past
|
label_in_the_past_days: no passado
|
||||||
|
|||||||
+23
-23
@@ -117,8 +117,8 @@ ru:
|
|||||||
many: "около %{count} часов"
|
many: "около %{count} часов"
|
||||||
other: "около %{count} часа"
|
other: "около %{count} часа"
|
||||||
x_hours:
|
x_hours:
|
||||||
one: "1 hour"
|
one: "1 час"
|
||||||
other: "%{count} hours"
|
other: "%{count} часов"
|
||||||
x_days:
|
x_days:
|
||||||
one: "%{count} день"
|
one: "%{count} день"
|
||||||
few: "%{count} дня"
|
few: "%{count} дня"
|
||||||
@@ -502,7 +502,7 @@ ru:
|
|||||||
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
|
||||||
@@ -603,7 +603,7 @@ ru:
|
|||||||
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: открыто
|
||||||
@@ -1120,7 +1120,7 @@ ru:
|
|||||||
button_export: Экспорт
|
button_export: Экспорт
|
||||||
label_export_options: "%{export_format} параметры экспорта"
|
label_export_options: "%{export_format} параметры экспорта"
|
||||||
error_attachment_too_big: Этот файл нельзя загрузить из-за превышения максимального размера файла (%{max_size})
|
error_attachment_too_big: Этот файл нельзя загрузить из-за превышения максимального размера файла (%{max_size})
|
||||||
notice_failed_to_save_time_entries: "Failed to save %{count} time entrie(s) on %{total} selected: %{ids}."
|
notice_failed_to_save_time_entries: "Невозможно сохранить %{count} затраченное время для %{total} выбранных: %{ids}."
|
||||||
label_x_issues:
|
label_x_issues:
|
||||||
zero: 0 Задач
|
zero: 0 Задач
|
||||||
one: 1 Задача
|
one: 1 Задача
|
||||||
@@ -1146,11 +1146,11 @@ ru:
|
|||||||
setting_unsubscribe: "Разрешить пользователям удалять свои учетные записи"
|
setting_unsubscribe: "Разрешить пользователям удалять свои учетные записи"
|
||||||
button_delete_my_account: "Удалить мою учетную запись"
|
button_delete_my_account: "Удалить мою учетную запись"
|
||||||
text_account_destroy_confirmation: "Ваша учетная запись будет полностью удалена без возможности восстановления.\nВы уверены, что хотите продолжить?"
|
text_account_destroy_confirmation: "Ваша учетная запись будет полностью удалена без возможности восстановления.\nВы уверены, что хотите продолжить?"
|
||||||
error_session_expired: Your session has expired. Please login again.
|
error_session_expired: Срок вашей сессии истек. Пожалуйста войдите еще раз
|
||||||
text_session_expiration_settings: "Warning: changing these settings may expire the current sessions including yours."
|
text_session_expiration_settings: "Внимание! Изменение этих настроек может привести к завершению текущих сессий, включая вашу."
|
||||||
setting_session_lifetime: Session maximum lifetime
|
setting_session_lifetime: Максимальная продолжительность сессии
|
||||||
setting_session_timeout: Session inactivity timeout
|
setting_session_timeout: Таймут сессии
|
||||||
label_session_expiration: Session expiration
|
label_session_expiration: Срок истечения сессии
|
||||||
permission_close_project: Закрывать / открывать проекты
|
permission_close_project: Закрывать / открывать проекты
|
||||||
label_show_closed_projects: Просматривать закрытые проекты
|
label_show_closed_projects: Просматривать закрытые проекты
|
||||||
button_close: Сделать закрытым
|
button_close: Сделать закрытым
|
||||||
@@ -1161,19 +1161,19 @@ ru:
|
|||||||
text_project_closed: Проект закрыт и находиться в режиме только для чтения.
|
text_project_closed: Проект закрыт и находиться в режиме только для чтения.
|
||||||
notice_user_successful_create: Пользователь %{id} создан.
|
notice_user_successful_create: Пользователь %{id} создан.
|
||||||
field_core_fields: Стандартные поля
|
field_core_fields: Стандартные поля
|
||||||
field_timeout: Timeout (in seconds)
|
field_timeout: Таймаут (в секундах)
|
||||||
setting_thumbnails_enabled: Display attachment thumbnails
|
setting_thumbnails_enabled: Отображать превью для приложений
|
||||||
setting_thumbnails_size: Thumbnails size (in pixels)
|
setting_thumbnails_size: Размер первью (в пикселях)
|
||||||
label_status_transitions: Статус-переходы
|
label_status_transitions: Статус-переходы
|
||||||
label_fields_permissions: Права на изменения полей
|
label_fields_permissions: Права на изменения полей
|
||||||
label_readonly: Не изменяется
|
label_readonly: Не изменяется
|
||||||
label_required: Обязательное
|
label_required: Обязательное
|
||||||
text_repository_identifier_info: Допускаются только строчные латинские буквы (a-z), цифры, тире и подчеркивания.<br />После сохранения идентификатор изменить нельзя.
|
text_repository_identifier_info: Допускаются только строчные латинские буквы (a-z), цифры, тире и подчеркивания.<br />После сохранения идентификатор изменить нельзя.
|
||||||
field_board_parent: Родительский форум
|
field_board_parent: Родительский форум
|
||||||
label_attribute_of_project: Project's %{name}
|
label_attribute_of_project: Проект %{name}
|
||||||
label_attribute_of_author: Имя автора %{name}
|
label_attribute_of_author: Имя автора %{name}
|
||||||
label_attribute_of_assigned_to: Assignee's %{name}
|
label_attribute_of_assigned_to: Назначена %{name}
|
||||||
label_attribute_of_fixed_version: Target version's %{name}
|
label_attribute_of_fixed_version: Версия %{name}
|
||||||
label_copy_subtasks: Копировать подзадачи
|
label_copy_subtasks: Копировать подзадачи
|
||||||
label_copied_to: скопирована в
|
label_copied_to: скопирована в
|
||||||
label_copied_from: скопирована с
|
label_copied_from: скопирована с
|
||||||
@@ -1182,15 +1182,15 @@ ru:
|
|||||||
field_private_notes: Приватный комментарий
|
field_private_notes: Приватный комментарий
|
||||||
permission_view_private_notes: Просмотр приватных комментариев
|
permission_view_private_notes: Просмотр приватных комментариев
|
||||||
permission_set_notes_private: Размещение приватных комментариев
|
permission_set_notes_private: Размещение приватных комментариев
|
||||||
label_no_issues_in_project: no issues in project
|
label_no_issues_in_project: нет задач в проекте
|
||||||
label_any: все
|
label_any: все
|
||||||
label_last_n_weeks: last %{count} weeks
|
label_last_n_weeks: последние %{count} недель
|
||||||
setting_cross_project_subtasks: Allow cross-project subtasks
|
setting_cross_project_subtasks: Разрешить подзадачи в между проектами
|
||||||
label_cross_project_descendants: С подпроектами
|
label_cross_project_descendants: С подпроектами
|
||||||
label_cross_project_tree: С деревом проектов
|
label_cross_project_tree: С деревом проектов
|
||||||
label_cross_project_hierarchy: С иерархией проектов
|
label_cross_project_hierarchy: С иерархией проектов
|
||||||
label_cross_project_system: Со всеми проектами
|
label_cross_project_system: Со всеми проектами
|
||||||
button_hide: Hide
|
button_hide: Скрыть
|
||||||
setting_non_working_week_days: Non-working days
|
setting_non_working_week_days: Не рабочие дни
|
||||||
label_in_the_next_days: in the next
|
label_in_the_next_days: в средующие дни
|
||||||
label_in_the_past_days: in the past
|
label_in_the_past_days: в прошлые дни
|
||||||
|
|||||||
+32
-32
@@ -923,47 +923,47 @@ sr-YU:
|
|||||||
project_module_calendar: Kalendar
|
project_module_calendar: Kalendar
|
||||||
button_edit_associated_wikipage: "Edit associated Wiki page: %{page_title}"
|
button_edit_associated_wikipage: "Edit associated Wiki page: %{page_title}"
|
||||||
field_text: Text field
|
field_text: Text field
|
||||||
label_user_mail_option_only_owner: Only for things I am the owner of
|
label_user_mail_option_only_owner: Samo za stvari koje posedujem
|
||||||
setting_default_notification_option: Default notification option
|
setting_default_notification_option: Podrazumevana opcija za notifikaciju
|
||||||
label_user_mail_option_only_my_events: Only for things I watch or I'm involved in
|
label_user_mail_option_only_my_events: Za dogadjaje koje pratim ili sam u njih uključen
|
||||||
label_user_mail_option_only_assigned: Only for things I am assigned to
|
label_user_mail_option_only_assigned: Za dogadjaje koji su mi dodeljeni lično
|
||||||
label_user_mail_option_none: No events
|
label_user_mail_option_none: Bez obaveštenja
|
||||||
field_member_of_group: Assignee's group
|
field_member_of_group: Assignee's group
|
||||||
field_assigned_to_role: Assignee's role
|
field_assigned_to_role: Assignee's role
|
||||||
notice_not_authorized_archived_project: The project you're trying to access has been archived.
|
notice_not_authorized_archived_project: Projekat kome pokušavate da pristupite je arhiviran
|
||||||
label_principal_search: "Search for user or group:"
|
label_principal_search: "Traži korisnike ili grupe:"
|
||||||
label_user_search: "Search for user:"
|
label_user_search: "Traži korisnike:"
|
||||||
field_visible: Visible
|
field_visible: Vidljivo
|
||||||
setting_emails_header: Emails header
|
setting_emails_header: Email zaglavlje
|
||||||
setting_commit_logtime_activity_id: Activity for logged time
|
setting_commit_logtime_activity_id: Activity for logged time
|
||||||
text_time_logged_by_changeset: Applied in changeset %{value}.
|
text_time_logged_by_changeset: Applied in changeset %{value}.
|
||||||
setting_commit_logtime_enabled: Enable time logging
|
setting_commit_logtime_enabled: Omogući praćenje vremena
|
||||||
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: The chart was truncated because it exceeds the maximum number of items that can be displayed (%{max})
|
||||||
setting_gantt_items_limit: Maximum number of items displayed on the gantt chart
|
setting_gantt_items_limit: Maksimalan broj stavki na gant grafiku
|
||||||
field_warn_on_leaving_unsaved: Warn me when leaving a page with unsaved text
|
field_warn_on_leaving_unsaved: Upozori me ako napuštam stranu sa tekstom koji nije snimljen
|
||||||
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: Strana sadrži tekst koji nije snimljen i biće izgubljen ako je napustite.
|
||||||
label_my_queries: My custom queries
|
label_my_queries: My custom queries
|
||||||
text_journal_changed_no_detail: "%{label} updated"
|
text_journal_changed_no_detail: "%{label} ažuriran"
|
||||||
label_news_comment_added: Comment added to a news
|
label_news_comment_added: Komentar dodat u novosti
|
||||||
button_expand_all: Expand all
|
button_expand_all: Proširi sve
|
||||||
button_collapse_all: Collapse all
|
button_collapse_all: Zatvori sve
|
||||||
label_additional_workflow_transitions_for_assignee: Additional transitions allowed when the user is the assignee
|
label_additional_workflow_transitions_for_assignee: Additional transitions allowed when the user is the assignee
|
||||||
label_additional_workflow_transitions_for_author: Additional transitions allowed when the user is the author
|
label_additional_workflow_transitions_for_author: Additional transitions allowed when the user is the author
|
||||||
label_bulk_edit_selected_time_entries: Bulk edit selected time entries
|
label_bulk_edit_selected_time_entries: Bulk edit selected time entries
|
||||||
text_time_entries_destroy_confirmation: Are you sure you want to delete the selected time entr(y/ies)?
|
text_time_entries_destroy_confirmation: Da li ste sigurni da želite da obrišete selektovane stavke ?
|
||||||
label_role_anonymous: Anonymous
|
label_role_anonymous: Anonimus
|
||||||
label_role_non_member: Non member
|
label_role_non_member: Nije član
|
||||||
label_issue_note_added: Note added
|
label_issue_note_added: Nota dodana
|
||||||
label_issue_status_updated: Status updated
|
label_issue_status_updated: Status ažuriran
|
||||||
label_issue_priority_updated: Priority updated
|
label_issue_priority_updated: Prioritet ažuriran
|
||||||
label_issues_visibility_own: Issues created by or assigned to the user
|
label_issues_visibility_own: Problem kreiran od strane ili je dodeljen korisniku
|
||||||
field_issues_visibility: Issues visibility
|
field_issues_visibility: Vidljivost problema
|
||||||
label_issues_visibility_all: All issues
|
label_issues_visibility_all: Svi problemi
|
||||||
permission_set_own_issues_private: Set own issues public or private
|
permission_set_own_issues_private: Podesi sopstveni problem kao privatan ili javan
|
||||||
field_is_private: Private
|
field_is_private: Privatno
|
||||||
permission_set_issues_private: Set issues public or private
|
permission_set_issues_private: Podesi problem kao privatan ili javan
|
||||||
label_issues_visibility_public: All non private issues
|
label_issues_visibility_public: Svi javni problemi
|
||||||
text_issues_destroy_descendants_confirmation: This will also delete %{count} subtask(s).
|
text_issues_destroy_descendants_confirmation: Ova operacija će takođe obrisati %{count} podzadataka.
|
||||||
field_commit_logs_encoding: Kodiranje izvršnih poruka
|
field_commit_logs_encoding: Kodiranje izvršnih poruka
|
||||||
field_scm_path_encoding: Path encoding
|
field_scm_path_encoding: Path encoding
|
||||||
text_scm_path_encoding_note: "Default: UTF-8"
|
text_scm_path_encoding_note: "Default: UTF-8"
|
||||||
|
|||||||
+45
-44
@@ -79,8 +79,8 @@ sv:
|
|||||||
one: "ungefär en timme"
|
one: "ungefär en timme"
|
||||||
other: "ungefär %{count} timmar"
|
other: "ungefär %{count} timmar"
|
||||||
x_hours:
|
x_hours:
|
||||||
one: "1 hour"
|
one: "1 timme"
|
||||||
other: "%{count} hours"
|
other: "%{count} timmar"
|
||||||
x_days:
|
x_days:
|
||||||
one: "en dag"
|
one: "en dag"
|
||||||
other: "%{count} dagar"
|
other: "%{count} dagar"
|
||||||
@@ -219,6 +219,7 @@ sv:
|
|||||||
notice_issue_successful_create: Ärende %{id} skapades.
|
notice_issue_successful_create: Ärende %{id} skapades.
|
||||||
notice_issue_update_conflict: Detta ärende har uppdaterats av en annan användare samtidigt som du redigerade det.
|
notice_issue_update_conflict: Detta ärende har uppdaterats av en annan användare samtidigt som du redigerade det.
|
||||||
notice_account_deleted: Ditt konto har avslutats permanent.
|
notice_account_deleted: Ditt konto har avslutats permanent.
|
||||||
|
notice_user_successful_create: "Användare %{id} skapad."
|
||||||
|
|
||||||
error_can_t_load_default_data: "Standardkonfiguration gick inte att läsa in: %{value}"
|
error_can_t_load_default_data: "Standardkonfiguration gick inte att läsa in: %{value}"
|
||||||
error_scm_not_found: "Inlägg och/eller revision finns inte i detta versionsarkiv."
|
error_scm_not_found: "Inlägg och/eller revision finns inte i detta versionsarkiv."
|
||||||
@@ -239,6 +240,7 @@ sv:
|
|||||||
error_unable_delete_issue_status: 'Ärendestatus kunde inte tas bort'
|
error_unable_delete_issue_status: 'Ärendestatus kunde inte tas bort'
|
||||||
error_unable_to_connect: "Kan inte ansluta (%{value})"
|
error_unable_to_connect: "Kan inte ansluta (%{value})"
|
||||||
error_attachment_too_big: Denna fil kan inte laddas upp eftersom den överstiger maximalt tillåten filstorlek (%{max_size})
|
error_attachment_too_big: Denna fil kan inte laddas upp eftersom den överstiger maximalt tillåten filstorlek (%{max_size})
|
||||||
|
error_session_expired: "Din session har gått ut. Vänligen logga in på nytt."
|
||||||
warning_attachments_not_saved: "%{count} fil(er) kunde inte sparas."
|
warning_attachments_not_saved: "%{count} fil(er) kunde inte sparas."
|
||||||
|
|
||||||
mail_subject_lost_password: "Ditt %{value} lösenord"
|
mail_subject_lost_password: "Ditt %{value} lösenord"
|
||||||
@@ -368,6 +370,10 @@ sv:
|
|||||||
field_repository_is_default: Huvudarkiv
|
field_repository_is_default: Huvudarkiv
|
||||||
field_multiple: Flera värden
|
field_multiple: Flera värden
|
||||||
field_auth_source_ldap_filter: LDAP-filter
|
field_auth_source_ldap_filter: LDAP-filter
|
||||||
|
field_core_fields: Standardfält
|
||||||
|
field_timeout: "Timeout (i sekunder)"
|
||||||
|
field_board_parent: Förälderforum
|
||||||
|
field_private_notes: Privata anteckningar
|
||||||
|
|
||||||
setting_app_title: Applikationsrubrik
|
setting_app_title: Applikationsrubrik
|
||||||
setting_app_subtitle: Applikationsunderrubrik
|
setting_app_subtitle: Applikationsunderrubrik
|
||||||
@@ -392,6 +398,7 @@ sv:
|
|||||||
setting_autologin: Automatisk inloggning
|
setting_autologin: Automatisk inloggning
|
||||||
setting_date_format: Datumformat
|
setting_date_format: Datumformat
|
||||||
setting_time_format: Tidsformat
|
setting_time_format: Tidsformat
|
||||||
|
setting_cross_project_subtasks: Tillåt underaktiviteter mellan projekt
|
||||||
setting_cross_project_issue_relations: Tillåt ärenderelationer mellan projekt
|
setting_cross_project_issue_relations: Tillåt ärenderelationer mellan projekt
|
||||||
setting_issue_list_default_columns: Standardkolumner i ärendelistan
|
setting_issue_list_default_columns: Standardkolumner i ärendelistan
|
||||||
setting_repositories_encodings: Encoding för bilagor och versionsarkiv
|
setting_repositories_encodings: Encoding för bilagor och versionsarkiv
|
||||||
@@ -430,10 +437,16 @@ sv:
|
|||||||
setting_default_issue_start_date_to_creation_date: Använd dagens datum som startdatum för nya ärenden
|
setting_default_issue_start_date_to_creation_date: Använd dagens datum som startdatum för nya ärenden
|
||||||
setting_commit_cross_project_ref: Tillåt ärende i alla de andra projekten att bli refererade och fixade
|
setting_commit_cross_project_ref: Tillåt ärende i alla de andra projekten att bli refererade och fixade
|
||||||
setting_unsubscribe: Tillåt användare att avsluta prenumereration
|
setting_unsubscribe: Tillåt användare att avsluta prenumereration
|
||||||
|
setting_session_lifetime: Maximal sessionslivslängd
|
||||||
|
setting_session_timeout: Tidsgräns för sessionsinaktivitet
|
||||||
|
setting_thumbnails_enabled: Visa miniatyrbilder av bilagor
|
||||||
|
setting_thumbnails_size: Storlek på miniatyrbilder (i pixlar)
|
||||||
|
setting_non_working_week_days: Lediga dagar
|
||||||
|
|
||||||
permission_add_project: Skapa projekt
|
permission_add_project: Skapa projekt
|
||||||
permission_add_subprojects: Skapa underprojekt
|
permission_add_subprojects: Skapa underprojekt
|
||||||
permission_edit_project: Ändra projekt
|
permission_edit_project: Ändra projekt
|
||||||
|
permission_close_project: Stänga / återöppna projektet
|
||||||
permission_select_project_modules: Välja projektmoduler
|
permission_select_project_modules: Välja projektmoduler
|
||||||
permission_manage_members: Hantera medlemmar
|
permission_manage_members: Hantera medlemmar
|
||||||
permission_manage_project_activities: Hantera projektaktiviteter
|
permission_manage_project_activities: Hantera projektaktiviteter
|
||||||
@@ -448,6 +461,8 @@ sv:
|
|||||||
permission_add_issue_notes: Lägga till ärendenotering
|
permission_add_issue_notes: Lägga till ärendenotering
|
||||||
permission_edit_issue_notes: Ändra ärendenoteringar
|
permission_edit_issue_notes: Ändra ärendenoteringar
|
||||||
permission_edit_own_issue_notes: Ändra egna ärendenoteringar
|
permission_edit_own_issue_notes: Ändra egna ärendenoteringar
|
||||||
|
permission_view_private_notes: Visa privata anteckningar
|
||||||
|
permission_set_notes_private: Ställa in anteckningar som privata
|
||||||
permission_move_issues: Flytta ärenden
|
permission_move_issues: Flytta ärenden
|
||||||
permission_delete_issues: Ta bort ärenden
|
permission_delete_issues: Ta bort ärenden
|
||||||
permission_manage_public_queries: Hantera publika frågor
|
permission_manage_public_queries: Hantera publika frågor
|
||||||
@@ -682,6 +697,8 @@ sv:
|
|||||||
label_not_equals: är inte
|
label_not_equals: är inte
|
||||||
label_in_less_than: om mindre än
|
label_in_less_than: om mindre än
|
||||||
label_in_more_than: om mer än
|
label_in_more_than: om mer än
|
||||||
|
label_in_the_next_days: under kommande
|
||||||
|
label_in_the_past_days: under föregående
|
||||||
label_greater_or_equal: '>='
|
label_greater_or_equal: '>='
|
||||||
label_less_or_equal: '<='
|
label_less_or_equal: '<='
|
||||||
label_between: mellan
|
label_between: mellan
|
||||||
@@ -691,6 +708,7 @@ sv:
|
|||||||
label_yesterday: igår
|
label_yesterday: igår
|
||||||
label_this_week: denna vecka
|
label_this_week: denna vecka
|
||||||
label_last_week: senaste veckan
|
label_last_week: senaste veckan
|
||||||
|
label_last_n_weeks: "senaste %{count} veckorna"
|
||||||
label_last_n_days: "senaste %{count} dagarna"
|
label_last_n_days: "senaste %{count} dagarna"
|
||||||
label_this_month: denna månad
|
label_this_month: denna månad
|
||||||
label_last_month: senaste månaden
|
label_last_month: senaste månaden
|
||||||
@@ -701,6 +719,9 @@ sv:
|
|||||||
label_ago: dagar sedan
|
label_ago: dagar sedan
|
||||||
label_contains: innehåller
|
label_contains: innehåller
|
||||||
label_not_contains: innehåller inte
|
label_not_contains: innehåller inte
|
||||||
|
label_any_issues_in_project: några ärenden i projektet
|
||||||
|
label_any_issues_not_in_project: några ärenden utanför projektet
|
||||||
|
label_no_issues_in_project: inga ärenden i projektet
|
||||||
label_day_plural: dagar
|
label_day_plural: dagar
|
||||||
label_repository: Versionsarkiv
|
label_repository: Versionsarkiv
|
||||||
label_repository_new: Nytt versionsarkiv
|
label_repository_new: Nytt versionsarkiv
|
||||||
@@ -776,6 +797,8 @@ sv:
|
|||||||
label_blocked_by: blockerad av
|
label_blocked_by: blockerad av
|
||||||
label_precedes: kommer före
|
label_precedes: kommer före
|
||||||
label_follows: följer
|
label_follows: följer
|
||||||
|
label_copied_to: Kopierad till
|
||||||
|
label_copied_from: Kopierad från
|
||||||
label_end_to_start: slut till start
|
label_end_to_start: slut till start
|
||||||
label_end_to_end: slut till slut
|
label_end_to_end: slut till slut
|
||||||
label_start_to_start: start till start
|
label_start_to_start: start till start
|
||||||
@@ -889,9 +912,20 @@ sv:
|
|||||||
label_child_revision: Barn
|
label_child_revision: Barn
|
||||||
label_export_options: "%{export_format} exportalternativ"
|
label_export_options: "%{export_format} exportalternativ"
|
||||||
label_copy_attachments: Kopiera bilagor
|
label_copy_attachments: Kopiera bilagor
|
||||||
|
label_copy_subtasks: Kopiera underaktiviteter
|
||||||
label_item_position: "%{position}/%{count}"
|
label_item_position: "%{position}/%{count}"
|
||||||
label_completed_versions: Klara versioner
|
label_completed_versions: Klara versioner
|
||||||
label_search_for_watchers: Sök efter bevakare att lägga till
|
label_search_for_watchers: Sök efter bevakare att lägga till
|
||||||
|
label_session_expiration: Sessionsutgång
|
||||||
|
label_show_closed_projects: Visa stängda projekt
|
||||||
|
label_status_transitions: Statusövergångar
|
||||||
|
label_fields_permissions: Fältbehörigheter
|
||||||
|
label_readonly: Skrivskyddad
|
||||||
|
label_required: Nödvändig
|
||||||
|
label_attribute_of_project: Projektets %{name}
|
||||||
|
label_attribute_of_author: Författarens %{name}
|
||||||
|
label_attribute_of_assigned_to: Tilldelads %{name}
|
||||||
|
label_attribute_of_fixed_version: Målversionens %{name}
|
||||||
|
|
||||||
button_login: Logga in
|
button_login: Logga in
|
||||||
button_submit: Skicka
|
button_submit: Skicka
|
||||||
@@ -939,14 +973,21 @@ sv:
|
|||||||
button_quote: Citera
|
button_quote: Citera
|
||||||
button_duplicate: Duplicera
|
button_duplicate: Duplicera
|
||||||
button_show: Visa
|
button_show: Visa
|
||||||
|
button_hide: Göm
|
||||||
button_edit_section: Redigera denna sektion
|
button_edit_section: Redigera denna sektion
|
||||||
button_export: Exportera
|
button_export: Exportera
|
||||||
button_delete_my_account: Ta bort mitt konto
|
button_delete_my_account: Ta bort mitt konto
|
||||||
|
button_close: Stäng
|
||||||
|
button_reopen: Återöppna
|
||||||
|
|
||||||
status_active: aktiv
|
status_active: aktiv
|
||||||
status_registered: registrerad
|
status_registered: registrerad
|
||||||
status_locked: låst
|
status_locked: låst
|
||||||
|
|
||||||
|
project_status_active: aktiv
|
||||||
|
project_status_closed: stängd
|
||||||
|
project_status_archived: arkiverad
|
||||||
|
|
||||||
version_status_open: öppen
|
version_status_open: öppen
|
||||||
version_status_locked: låst
|
version_status_locked: låst
|
||||||
version_status_closed: stängd
|
version_status_closed: stängd
|
||||||
@@ -1026,6 +1067,8 @@ sv:
|
|||||||
text_issue_conflict_resolution_add_notes: Lägg till mina anteckningar och kasta mina andra ändringar
|
text_issue_conflict_resolution_add_notes: Lägg till mina anteckningar och kasta mina andra ändringar
|
||||||
text_issue_conflict_resolution_cancel: Kasta alla mina ändringar och visa igen %{link}
|
text_issue_conflict_resolution_cancel: Kasta alla mina ändringar och visa igen %{link}
|
||||||
text_account_destroy_confirmation: "Är du säker på att du vill fortsätta?\nDitt konto kommer tas bort permanent, utan möjlighet att återaktivera det."
|
text_account_destroy_confirmation: "Är du säker på att du vill fortsätta?\nDitt konto kommer tas bort permanent, utan möjlighet att återaktivera det."
|
||||||
|
text_session_expiration_settings: "Varning: ändring av dessa inställningar kan få alla nuvarande sessioner, inklusive din egen, att gå ut."
|
||||||
|
text_project_closed: Detta projekt är stängt och skrivskyddat.
|
||||||
|
|
||||||
default_role_manager: Projektledare
|
default_role_manager: Projektledare
|
||||||
default_role_developer: Utvecklare
|
default_role_developer: Utvecklare
|
||||||
@@ -1071,51 +1114,9 @@ sv:
|
|||||||
description_date_range_interval: Ange intervall genom att välja start- och slutdatum
|
description_date_range_interval: Ange intervall genom att välja start- och slutdatum
|
||||||
description_date_from: Ange startdatum
|
description_date_from: Ange startdatum
|
||||||
description_date_to: Ange slutdatum
|
description_date_to: Ange slutdatum
|
||||||
error_session_expired: Your session has expired. Please login again.
|
|
||||||
text_session_expiration_settings: "Warning: changing these settings may expire the current sessions including yours."
|
|
||||||
setting_session_lifetime: Session maximum lifetime
|
|
||||||
setting_session_timeout: Session inactivity timeout
|
|
||||||
label_session_expiration: Session expiration
|
|
||||||
permission_close_project: Close / reopen the project
|
|
||||||
label_show_closed_projects: View closed projects
|
|
||||||
button_close: Close
|
|
||||||
button_reopen: Reopen
|
|
||||||
project_status_active: active
|
|
||||||
project_status_closed: closed
|
|
||||||
project_status_archived: archived
|
|
||||||
text_project_closed: This project is closed and read-only.
|
|
||||||
notice_user_successful_create: User %{id} created.
|
|
||||||
field_core_fields: Standard fields
|
|
||||||
field_timeout: Timeout (in seconds)
|
|
||||||
setting_thumbnails_enabled: Display attachment thumbnails
|
|
||||||
setting_thumbnails_size: Thumbnails size (in pixels)
|
|
||||||
label_status_transitions: Status transitions
|
|
||||||
label_fields_permissions: Fields permissions
|
|
||||||
label_readonly: Read-only
|
|
||||||
label_required: Required
|
|
||||||
text_repository_identifier_info: Ändast gemener (a-z), siffror, streck och understreck är tillåtna.<br />När identifieraren sparats kan den inte ändras.
|
text_repository_identifier_info: Ändast gemener (a-z), siffror, streck och understreck är tillåtna.<br />När identifieraren sparats kan den inte ändras.
|
||||||
field_board_parent: Parent forum
|
|
||||||
label_attribute_of_project: Project's %{name}
|
|
||||||
label_attribute_of_author: Author's %{name}
|
|
||||||
label_attribute_of_assigned_to: Assignee's %{name}
|
|
||||||
label_attribute_of_fixed_version: Target version's %{name}
|
|
||||||
label_copy_subtasks: Copy subtasks
|
|
||||||
label_copied_to: copied to
|
|
||||||
label_copied_from: copied from
|
|
||||||
label_any_issues_in_project: any issues in project
|
|
||||||
label_any_issues_not_in_project: any issues not in project
|
|
||||||
field_private_notes: Private notes
|
|
||||||
permission_view_private_notes: View private notes
|
|
||||||
permission_set_notes_private: Set notes as private
|
|
||||||
label_no_issues_in_project: no issues in project
|
|
||||||
label_any: alla
|
label_any: alla
|
||||||
label_last_n_weeks: last %{count} weeks
|
|
||||||
setting_cross_project_subtasks: Allow cross-project subtasks
|
|
||||||
label_cross_project_descendants: Med underprojekt
|
label_cross_project_descendants: Med underprojekt
|
||||||
label_cross_project_tree: Med projektträd
|
label_cross_project_tree: Med projektträd
|
||||||
label_cross_project_hierarchy: Med projekthierarki
|
label_cross_project_hierarchy: Med projekthierarki
|
||||||
label_cross_project_system: Med alla projekt
|
label_cross_project_system: Med alla projekt
|
||||||
button_hide: Hide
|
|
||||||
setting_non_working_week_days: Non-working days
|
|
||||||
label_in_the_next_days: in the next
|
|
||||||
label_in_the_past_days: in the past
|
|
||||||
|
|||||||
+386
-382
@@ -2,6 +2,7 @@
|
|||||||
# by
|
# by
|
||||||
# Do Hai Bac (dohaibac@gmail.com)
|
# Do Hai Bac (dohaibac@gmail.com)
|
||||||
# Dao Thanh Ngoc (ngocdaothanh@gmail.com, http://github.com/ngocdaothanh/rails-i18n/tree/master)
|
# Dao Thanh Ngoc (ngocdaothanh@gmail.com, http://github.com/ngocdaothanh/rails-i18n/tree/master)
|
||||||
|
# Nguyen Minh Thien (thiencdcn@gmail.com, http://www.eDesignLab.org)
|
||||||
|
|
||||||
vi:
|
vi:
|
||||||
number:
|
number:
|
||||||
@@ -80,8 +81,8 @@ vi:
|
|||||||
one: "khoảng 1 giờ"
|
one: "khoảng 1 giờ"
|
||||||
other: "khoảng %{count} giờ"
|
other: "khoảng %{count} giờ"
|
||||||
x_hours:
|
x_hours:
|
||||||
one: "1 hour"
|
one: "1 giờ"
|
||||||
other: "%{count} hours"
|
other: "%{count} giờ"
|
||||||
x_days:
|
x_days:
|
||||||
one: "1 ngày"
|
one: "1 ngày"
|
||||||
other: "%{count} ngày"
|
other: "%{count} ngày"
|
||||||
@@ -98,8 +99,8 @@ vi:
|
|||||||
one: "hơn 1 năm"
|
one: "hơn 1 năm"
|
||||||
other: "hơn %{count} năm"
|
other: "hơn %{count} năm"
|
||||||
almost_x_years:
|
almost_x_years:
|
||||||
one: "almost 1 year"
|
one: "gần 1 năm"
|
||||||
other: "almost %{count} years"
|
other: "gần %{count} năm"
|
||||||
prompts:
|
prompts:
|
||||||
year: "Năm"
|
year: "Năm"
|
||||||
month: "Tháng"
|
month: "Tháng"
|
||||||
@@ -142,7 +143,7 @@ vi:
|
|||||||
greater_than_start_date: "phải đi sau ngày bắt đầu"
|
greater_than_start_date: "phải đi sau ngày bắt đầu"
|
||||||
not_same_project: "không thuộc cùng dự án"
|
not_same_project: "không thuộc cùng dự án"
|
||||||
circular_dependency: "quan hệ có thể gây ra lặp vô tận"
|
circular_dependency: "quan hệ có thể gây ra lặp vô tận"
|
||||||
cant_link_an_issue_with_a_descendant: "An issue can not be linked to one of its subtasks"
|
cant_link_an_issue_with_a_descendant: "Một vấn đề không thể liên kết tới một trong số những tác vụ con của nó"
|
||||||
|
|
||||||
direction: ltr
|
direction: ltr
|
||||||
date:
|
date:
|
||||||
@@ -214,16 +215,16 @@ vi:
|
|||||||
notice_email_sent: "Email đã được gửi tới %{value}"
|
notice_email_sent: "Email đã được gửi tới %{value}"
|
||||||
notice_email_error: "Lỗi xảy ra khi gửi email (%{value})"
|
notice_email_error: "Lỗi xảy ra khi gửi email (%{value})"
|
||||||
notice_feeds_access_key_reseted: Mã số chứng thực RSS đã được tạo lại.
|
notice_feeds_access_key_reseted: Mã số chứng thực RSS đã được tạo lại.
|
||||||
notice_failed_to_save_issues: "Failed to save %{count} issue(s) on %{total} selected: %{ids}."
|
notice_failed_to_save_issues: "Thất bại khi lưu %{count} vấn đề trong %{total} lựa chọn: %{ids}."
|
||||||
notice_no_issue_selected: "No issue is selected! Please, check the issues you want to edit."
|
notice_no_issue_selected: "Không có vấn đề được chọn! Vui lòng kiểm tra các vấn đề bạn cần chỉnh sửa."
|
||||||
notice_account_pending: "Thông tin tài khoản đã được tạo ra và đang chờ chứng thực từ ban quản trị."
|
notice_account_pending: "Thông tin tài khoản đã được tạo ra và đang chờ chứng thực từ ban quản trị."
|
||||||
notice_default_data_loaded: Đã nạp cấu hình mặc định.
|
notice_default_data_loaded: Đã nạp cấu hình mặc định.
|
||||||
notice_unable_delete_version: Không thể xóa phiên bản.
|
notice_unable_delete_version: Không thể xóa phiên bản.
|
||||||
|
|
||||||
error_can_t_load_default_data: "Không thể nạp cấu hình mặc định: %{value}"
|
error_can_t_load_default_data: "Không thể nạp cấu hình mặc định: %{value}"
|
||||||
error_scm_not_found: "The entry or revision was not found in the repository."
|
error_scm_not_found: "Không tìm thấy dữ liệu trong kho chứa."
|
||||||
error_scm_command_failed: "Lỗi xảy ra khi truy cập vào kho lưu trữ: %{value}"
|
error_scm_command_failed: "Lỗi xảy ra khi truy cập vào kho lưu trữ: %{value}"
|
||||||
error_scm_annotate: "The entry does not exist or can not be annotated."
|
error_scm_annotate: "Đầu vào không tồn tại hoặc không thể chú thích."
|
||||||
error_issue_not_found_in_project: 'Vấn đề không tồn tại hoặc không thuộc dự án'
|
error_issue_not_found_in_project: 'Vấn đề không tồn tại hoặc không thuộc dự án'
|
||||||
|
|
||||||
mail_subject_lost_password: "%{value}: mật mã của bạn"
|
mail_subject_lost_password: "%{value}: mật mã của bạn"
|
||||||
@@ -292,17 +293,17 @@ vi:
|
|||||||
field_version: Phiên bản
|
field_version: Phiên bản
|
||||||
field_type: Kiểu
|
field_type: Kiểu
|
||||||
field_host: Host
|
field_host: Host
|
||||||
field_port: Port
|
field_port: Cổng
|
||||||
field_account: Tài khoản
|
field_account: Tài khoản
|
||||||
field_base_dn: Base DN
|
field_base_dn: Base DN
|
||||||
field_attr_login: Login attribute
|
field_attr_login: Thuộc tính đăng nhập
|
||||||
field_attr_firstname: Firstname attribute
|
field_attr_firstname: Thuộc tính tên đệm và Tên
|
||||||
field_attr_lastname: Lastname attribute
|
field_attr_lastname: Thuộc tính Họ
|
||||||
field_attr_mail: Email attribute
|
field_attr_mail: Thuộc tính Email
|
||||||
field_onthefly: On-the-fly user creation
|
field_onthefly: Tạo người dùng tức thì
|
||||||
field_start_date: Bắt đầu
|
field_start_date: Bắt đầu
|
||||||
field_done_ratio: Tiến độ
|
field_done_ratio: Tiến độ
|
||||||
field_auth_source: Authentication mode
|
field_auth_source: Chế độ xác thực
|
||||||
field_hide_mail: Không làm lộ email của bạn
|
field_hide_mail: Không làm lộ email của bạn
|
||||||
field_comments: Bình luận
|
field_comments: Bình luận
|
||||||
field_url: URL
|
field_url: URL
|
||||||
@@ -332,31 +333,31 @@ vi:
|
|||||||
setting_login_required: Cần đăng nhập
|
setting_login_required: Cần đăng nhập
|
||||||
setting_self_registration: Tự chứng thực
|
setting_self_registration: Tự chứng thực
|
||||||
setting_attachment_max_size: Cỡ tối đa của tập tin đính kèm
|
setting_attachment_max_size: Cỡ tối đa của tập tin đính kèm
|
||||||
setting_issues_export_limit: Issues export limit
|
setting_issues_export_limit: Giới hạn Export vấn đề
|
||||||
setting_mail_from: Emission email address
|
setting_mail_from: Địa chỉ email gửi thông báo
|
||||||
setting_bcc_recipients: Tạo bản CC bí mật (bcc)
|
setting_bcc_recipients: Tạo bản CC bí mật (bcc)
|
||||||
setting_host_name: Tên miền và đường dẫn
|
setting_host_name: Tên miền và đường dẫn
|
||||||
setting_text_formatting: Định dạng bài viết
|
setting_text_formatting: Định dạng bài viết
|
||||||
setting_wiki_compression: Wiki history compression
|
setting_wiki_compression: Nén lịch sử Wiki
|
||||||
setting_feeds_limit: Giới hạn nội dung của feed
|
setting_feeds_limit: Giới hạn nội dung của feed
|
||||||
setting_default_projects_public: Dự án mặc định là công cộng
|
setting_default_projects_public: Dự án mặc định là công cộng
|
||||||
setting_autofetch_changesets: Autofetch commits
|
setting_autofetch_changesets: Tự động tìm nạp commits
|
||||||
setting_sys_api_enabled: Enable WS for repository management
|
setting_sys_api_enabled: Cho phép WS quản lý kho chứa
|
||||||
setting_commit_ref_keywords: Từ khóa tham khảo
|
setting_commit_ref_keywords: Từ khóa tham khảo
|
||||||
setting_commit_fix_keywords: Từ khóa chỉ vấn đề đã giải quyết
|
setting_commit_fix_keywords: Từ khóa chỉ vấn đề đã giải quyết
|
||||||
setting_autologin: Tự động đăng nhập
|
setting_autologin: Tự động đăng nhập
|
||||||
setting_date_format: Định dạng ngày
|
setting_date_format: Định dạng ngày
|
||||||
setting_time_format: Định dạng giờ
|
setting_time_format: Định dạng giờ
|
||||||
setting_cross_project_issue_relations: Cho phép quan hệ chéo giữa các dự án
|
setting_cross_project_issue_relations: Cho phép quan hệ chéo giữa các dự án
|
||||||
setting_issue_list_default_columns: Default columns displayed on the issue list
|
setting_issue_list_default_columns: Các cột mặc định hiển thị trong danh sách vấn đề
|
||||||
setting_emails_footer: Chữ ký cuối thư
|
setting_emails_footer: Chữ ký cuối thư
|
||||||
setting_protocol: Giao thức
|
setting_protocol: Giao thức
|
||||||
setting_per_page_options: Objects per page options
|
setting_per_page_options: Tùy chọn đối tượng mỗi trang
|
||||||
setting_user_format: Định dạng hiển thị người dùng
|
setting_user_format: Định dạng hiển thị người dùng
|
||||||
setting_activity_days_default: Days displayed on project activity
|
setting_activity_days_default: Ngày hiển thị hoạt động của dự án
|
||||||
setting_display_subprojects_issues: Display subprojects issues on main projects by default
|
setting_display_subprojects_issues: Hiển thị mặc định vấn đề của dự án con ở dự án chính
|
||||||
setting_enabled_scm: Enabled SCM
|
setting_enabled_scm: Cho phép SCM
|
||||||
setting_mail_handler_api_enabled: Enable WS for incoming emails
|
setting_mail_handler_api_enabled: Cho phép WS cho các email tới
|
||||||
setting_mail_handler_api_key: Mã số API
|
setting_mail_handler_api_key: Mã số API
|
||||||
setting_sequential_project_identifiers: Tự sinh chuỗi ID dự án
|
setting_sequential_project_identifiers: Tự sinh chuỗi ID dự án
|
||||||
|
|
||||||
@@ -376,9 +377,9 @@ vi:
|
|||||||
label_project_new: Dự án mới
|
label_project_new: Dự án mới
|
||||||
label_project_plural: Dự án
|
label_project_plural: Dự án
|
||||||
label_x_projects:
|
label_x_projects:
|
||||||
zero: no projects
|
zero: không có dự án
|
||||||
one: 1 project
|
one: một dự án
|
||||||
other: "%{count} projects"
|
other: "%{count} dự án"
|
||||||
label_project_all: Mọi dự án
|
label_project_all: Mọi dự án
|
||||||
label_project_latest: Dự án mới nhất
|
label_project_latest: Dự án mới nhất
|
||||||
label_issue: Vấn đề
|
label_issue: Vấn đề
|
||||||
@@ -402,18 +403,18 @@ vi:
|
|||||||
label_tracker: Dòng vấn đề
|
label_tracker: Dòng vấn đề
|
||||||
label_tracker_plural: Dòng vấn đề
|
label_tracker_plural: Dòng vấn đề
|
||||||
label_tracker_new: Tạo dòng vấn đề mới
|
label_tracker_new: Tạo dòng vấn đề mới
|
||||||
label_workflow: Workflow
|
label_workflow: Quy trình làm việc
|
||||||
label_issue_status: Issue status
|
label_issue_status: Trạng thái vấn đề
|
||||||
label_issue_status_plural: Issue statuses
|
label_issue_status_plural: Trạng thái vấn đề
|
||||||
label_issue_status_new: New status
|
label_issue_status_new: Thêm trạng thái
|
||||||
label_issue_category: Chủ đề
|
label_issue_category: Chủ đề
|
||||||
label_issue_category_plural: Chủ đề
|
label_issue_category_plural: Chủ đề
|
||||||
label_issue_category_new: Chủ đề mới
|
label_issue_category_new: Chủ đề mới
|
||||||
label_custom_field: Custom field
|
label_custom_field: Trường tùy biến
|
||||||
label_custom_field_plural: Custom fields
|
label_custom_field_plural: Trường tùy biến
|
||||||
label_custom_field_new: New custom field
|
label_custom_field_new: Thêm Trường tùy biến
|
||||||
label_enumerations: Enumerations
|
label_enumerations: Liệt kê
|
||||||
label_enumeration_new: New value
|
label_enumeration_new: Thêm giá trị
|
||||||
label_information: Thông tin
|
label_information: Thông tin
|
||||||
label_information_plural: Thông tin
|
label_information_plural: Thông tin
|
||||||
label_please_login: Vui lòng đăng nhập
|
label_please_login: Vui lòng đăng nhập
|
||||||
@@ -435,23 +436,23 @@ vi:
|
|||||||
label_overall_activity: Tất cả hoạt động
|
label_overall_activity: Tất cả hoạt động
|
||||||
label_new: Mới
|
label_new: Mới
|
||||||
label_logged_as: Tài khoản »
|
label_logged_as: Tài khoản »
|
||||||
label_environment: Environment
|
label_environment: Môi trường
|
||||||
label_authentication: Authentication
|
label_authentication: Xác thực
|
||||||
label_auth_source: Authentication mode
|
label_auth_source: Chế độ xác thực
|
||||||
label_auth_source_new: New authentication mode
|
label_auth_source_new: Chế độ xác thực mới
|
||||||
label_auth_source_plural: Authentication modes
|
label_auth_source_plural: Chế độ xác thực
|
||||||
label_subproject_plural: Dự án con
|
label_subproject_plural: Dự án con
|
||||||
label_and_its_subprojects: "%{value} và dự án con"
|
label_and_its_subprojects: "%{value} và dự án con"
|
||||||
label_min_max_length: Min - Max length
|
label_min_max_length: Độ dài nhỏ nhất - lớn nhất
|
||||||
label_list: List
|
label_list: Danh sách
|
||||||
label_date: Ngày
|
label_date: Ngày
|
||||||
label_integer: Integer
|
label_integer: Số nguyên
|
||||||
label_float: Float
|
label_float: Số thực
|
||||||
label_boolean: Boolean
|
label_boolean: Boolean
|
||||||
label_string: Text
|
label_string: Văn bản
|
||||||
label_text: Long text
|
label_text: Văn bản dài
|
||||||
label_attribute: Attribute
|
label_attribute: Thuộc tính
|
||||||
label_attribute_plural: Attributes
|
label_attribute_plural: Các thuộc tính
|
||||||
label_download: "%{count} lần tải"
|
label_download: "%{count} lần tải"
|
||||||
label_download_plural: "%{count} lần tải"
|
label_download_plural: "%{count} lần tải"
|
||||||
label_no_data: Chưa có thông tin gì
|
label_no_data: Chưa có thông tin gì
|
||||||
@@ -477,24 +478,24 @@ vi:
|
|||||||
label_version_plural: Phiên bản
|
label_version_plural: Phiên bản
|
||||||
label_confirmation: Khẳng định
|
label_confirmation: Khẳng định
|
||||||
label_export_to: 'Định dạng khác của trang này:'
|
label_export_to: 'Định dạng khác của trang này:'
|
||||||
label_read: Read...
|
label_read: Đọc...
|
||||||
label_public_projects: Các dự án công cộng
|
label_public_projects: Các dự án công cộng
|
||||||
label_open_issues: mở
|
label_open_issues: mở
|
||||||
label_open_issues_plural: mở
|
label_open_issues_plural: mở
|
||||||
label_closed_issues: đóng
|
label_closed_issues: đóng
|
||||||
label_closed_issues_plural: đóng
|
label_closed_issues_plural: đóng
|
||||||
label_x_open_issues_abbr_on_total:
|
label_x_open_issues_abbr_on_total:
|
||||||
zero: 0 open / %{total}
|
zero: "0 mở / %{total}"
|
||||||
one: 1 open / %{total}
|
one: "1 mở / %{total}"
|
||||||
other: "%{count} open / %{total}"
|
other: "%{count} mở / %{total}"
|
||||||
label_x_open_issues_abbr:
|
label_x_open_issues_abbr:
|
||||||
zero: 0 open
|
zero: 0 mở
|
||||||
one: 1 open
|
one: 1 mở
|
||||||
other: "%{count} open"
|
other: "%{count} mở"
|
||||||
label_x_closed_issues_abbr:
|
label_x_closed_issues_abbr:
|
||||||
zero: 0 closed
|
zero: 0 đóng
|
||||||
one: 1 closed
|
one: 1 đóng
|
||||||
other: "%{count} closed"
|
other: "%{count} đóng"
|
||||||
label_total: Tổng cộng
|
label_total: Tổng cộng
|
||||||
label_permissions: Quyền
|
label_permissions: Quyền
|
||||||
label_current_status: Trạng thái hiện tại
|
label_current_status: Trạng thái hiện tại
|
||||||
@@ -504,7 +505,7 @@ vi:
|
|||||||
label_nobody: Chẳng ai
|
label_nobody: Chẳng ai
|
||||||
label_next: Sau
|
label_next: Sau
|
||||||
label_previous: Trước
|
label_previous: Trước
|
||||||
label_used_by: Used by
|
label_used_by: Được dùng bởi
|
||||||
label_details: Chi tiết
|
label_details: Chi tiết
|
||||||
label_add_note: Thêm ghi chú
|
label_add_note: Thêm ghi chú
|
||||||
label_per_page: Mỗi trang
|
label_per_page: Mỗi trang
|
||||||
@@ -518,9 +519,9 @@ vi:
|
|||||||
label_comment: Bình luận
|
label_comment: Bình luận
|
||||||
label_comment_plural: Bình luận
|
label_comment_plural: Bình luận
|
||||||
label_x_comments:
|
label_x_comments:
|
||||||
zero: no comments
|
zero: không có bình luận
|
||||||
one: 1 comment
|
one: 1 bình luận
|
||||||
other: "%{count} comments"
|
other: "%{count} bình luận"
|
||||||
label_comment_add: Thêm bình luận
|
label_comment_add: Thêm bình luận
|
||||||
label_comment_added: Đã thêm bình luận
|
label_comment_added: Đã thêm bình luận
|
||||||
label_comment_delete: Xóa bình luận
|
label_comment_delete: Xóa bình luận
|
||||||
@@ -557,7 +558,7 @@ vi:
|
|||||||
label_modification_plural: "%{count} thay đổi"
|
label_modification_plural: "%{count} thay đổi"
|
||||||
label_revision: Bản điều chỉnh
|
label_revision: Bản điều chỉnh
|
||||||
label_revision_plural: Bản điều chỉnh
|
label_revision_plural: Bản điều chỉnh
|
||||||
label_associated_revisions: Associated revisions
|
label_associated_revisions: Các bản điều chỉnh được ghép
|
||||||
label_added: thêm
|
label_added: thêm
|
||||||
label_modified: đổi
|
label_modified: đổi
|
||||||
label_copied: chép
|
label_copied: chép
|
||||||
@@ -579,7 +580,7 @@ vi:
|
|||||||
label_result_plural: Kết quả
|
label_result_plural: Kết quả
|
||||||
label_all_words: Mọi từ
|
label_all_words: Mọi từ
|
||||||
label_wiki: Wiki
|
label_wiki: Wiki
|
||||||
label_wiki_edit: Wiki edit
|
label_wiki_edit: Sửa Wiki
|
||||||
label_wiki_edit_plural: Thay đổi wiki
|
label_wiki_edit_plural: Thay đổi wiki
|
||||||
label_wiki_page: Trang wiki
|
label_wiki_page: Trang wiki
|
||||||
label_wiki_page_plural: Trang wiki
|
label_wiki_page_plural: Trang wiki
|
||||||
@@ -587,7 +588,7 @@ vi:
|
|||||||
label_index_by_date: Danh sách theo ngày
|
label_index_by_date: Danh sách theo ngày
|
||||||
label_current_version: Bản hiện tại
|
label_current_version: Bản hiện tại
|
||||||
label_preview: Xem trước
|
label_preview: Xem trước
|
||||||
label_feed_plural: Feeds
|
label_feed_plural: Nguồn cấp tin
|
||||||
label_changes_details: Chi tiết của mọi thay đổi
|
label_changes_details: Chi tiết của mọi thay đổi
|
||||||
label_issue_tracking: Vấn đề
|
label_issue_tracking: Vấn đề
|
||||||
label_spent_time: Thời gian
|
label_spent_time: Thời gian
|
||||||
@@ -596,13 +597,13 @@ vi:
|
|||||||
label_time_tracking: Theo dõi thời gian
|
label_time_tracking: Theo dõi thời gian
|
||||||
label_change_plural: Thay đổi
|
label_change_plural: Thay đổi
|
||||||
label_statistics: Thống kê
|
label_statistics: Thống kê
|
||||||
label_commits_per_month: Commits per month
|
label_commits_per_month: Commits mỗi tháng
|
||||||
label_commits_per_author: Commits per author
|
label_commits_per_author: Commits mỗi tác giả
|
||||||
label_view_diff: So sánh
|
label_view_diff: So sánh
|
||||||
label_diff_inline: inline
|
label_diff_inline: inline
|
||||||
label_diff_side_by_side: side by side
|
label_diff_side_by_side: bên cạnh nhau
|
||||||
label_options: Tùy chọn
|
label_options: Tùy chọn
|
||||||
label_copy_workflow_from: Copy workflow from
|
label_copy_workflow_from: Sao chép quy trình từ
|
||||||
label_permissions_report: Thống kê các quyền
|
label_permissions_report: Thống kê các quyền
|
||||||
label_watched_issues: Chủ đề đang theo dõi
|
label_watched_issues: Chủ đề đang theo dõi
|
||||||
label_related_issues: Liên quan
|
label_related_issues: Liên quan
|
||||||
@@ -642,7 +643,7 @@ vi:
|
|||||||
label_date_to: Đến
|
label_date_to: Đến
|
||||||
label_language_based: Theo ngôn ngữ người dùng
|
label_language_based: Theo ngôn ngữ người dùng
|
||||||
label_sort_by: "Sắp xếp theo %{value}"
|
label_sort_by: "Sắp xếp theo %{value}"
|
||||||
label_send_test_email: Send a test email
|
label_send_test_email: Gửi một email kiểm tra
|
||||||
label_feeds_access_key_created_on: "Mã chứng thực RSS được tạo ra cách đây %{value}"
|
label_feeds_access_key_created_on: "Mã chứng thực RSS được tạo ra cách đây %{value}"
|
||||||
label_module_plural: Mô-đun
|
label_module_plural: Mô-đun
|
||||||
label_added_time_by: "thêm bởi %{author} cách đây %{age}"
|
label_added_time_by: "thêm bởi %{author} cách đây %{age}"
|
||||||
@@ -659,11 +660,11 @@ vi:
|
|||||||
label_user_mail_option_all: "Mọi sự kiện trên mọi dự án của bạn"
|
label_user_mail_option_all: "Mọi sự kiện trên mọi dự án của bạn"
|
||||||
label_user_mail_option_selected: "Mọi sự kiện trên các dự án được chọn..."
|
label_user_mail_option_selected: "Mọi sự kiện trên các dự án được chọn..."
|
||||||
label_user_mail_no_self_notified: "Đừng gửi email về các thay đổi do chính bạn thực hiện"
|
label_user_mail_no_self_notified: "Đừng gửi email về các thay đổi do chính bạn thực hiện"
|
||||||
label_registration_activation_by_email: account activation by email
|
label_registration_activation_by_email: kích hoạt tài khoản qua email
|
||||||
label_registration_manual_activation: manual account activation
|
label_registration_manual_activation: kích hoạt tài khoản thủ công
|
||||||
label_registration_automatic_activation: automatic account activation
|
label_registration_automatic_activation: kích hoạt tài khoản tự động
|
||||||
label_display_per_page: "mỗi trang: %{value}"
|
label_display_per_page: "mỗi trang: %{value}"
|
||||||
label_age: Age
|
label_age: Thời gian
|
||||||
label_change_properties: Thay đổi thuộc tính
|
label_change_properties: Thay đổi thuộc tính
|
||||||
label_general: Tổng quan
|
label_general: Tổng quan
|
||||||
label_more: Chi tiết
|
label_more: Chi tiết
|
||||||
@@ -727,43 +728,43 @@ vi:
|
|||||||
text_select_mail_notifications: Chọn hành động đối với mỗi email thông báo sẽ gửi.
|
text_select_mail_notifications: Chọn hành động đối với mỗi email thông báo sẽ gửi.
|
||||||
text_regexp_info: eg. ^[A-Z0-9]+$
|
text_regexp_info: eg. ^[A-Z0-9]+$
|
||||||
text_min_max_length_info: 0 để chỉ không hạn chế
|
text_min_max_length_info: 0 để chỉ không hạn chế
|
||||||
text_project_destroy_confirmation: Are you sure you want to delete this project and related data ?
|
text_project_destroy_confirmation: Bạn có chắc chắn muốn xóa dự án này và các dữ liệu liên quan ?
|
||||||
text_subprojects_destroy_warning: "Its subproject(s): %{value} will be also deleted."
|
text_subprojects_destroy_warning: "Dự án con của : %{value} cũng sẽ bị xóa."
|
||||||
text_workflow_edit: Select a role and a tracker to edit the workflow
|
text_workflow_edit: Chọn một vai trò và một vấn đề để sửa quy trình
|
||||||
text_are_you_sure: Bạn chắc chứ?
|
text_are_you_sure: Bạn chắc chứ?
|
||||||
text_tip_issue_begin_day: ngày bắt đầu
|
text_tip_issue_begin_day: ngày bắt đầu
|
||||||
text_tip_issue_end_day: ngày kết thúc
|
text_tip_issue_end_day: ngày kết thúc
|
||||||
text_tip_issue_begin_end_day: bắt đầu và kết thúc cùng ngày
|
text_tip_issue_begin_end_day: bắt đầu và kết thúc cùng ngày
|
||||||
text_caracters_maximum: "Tối đa %{count} ký tự."
|
text_caracters_maximum: "Tối đa %{count} ký tự."
|
||||||
text_caracters_minimum: "Phải gồm ít nhất %{count} ký tự."
|
text_caracters_minimum: "Phải gồm ít nhất %{count} ký tự."
|
||||||
text_length_between: "Length between %{min} and %{max} characters."
|
text_length_between: "Chiều dài giữa %{min} và %{max} ký tự."
|
||||||
text_tracker_no_workflow: No workflow defined for this tracker
|
text_tracker_no_workflow: Không có quy trình được định nghĩa cho theo dõi này
|
||||||
text_unallowed_characters: Ký tự không hợp lệ
|
text_unallowed_characters: Ký tự không hợp lệ
|
||||||
text_comma_separated: Multiple values allowed (comma separated).
|
text_comma_separated: Nhiều giá trị được phép (cách nhau bởi dấu phẩy).
|
||||||
text_issues_ref_in_commit_messages: Referencing and fixing issues in commit messages
|
text_issues_ref_in_commit_messages: Vấn đề tham khảo và cố định trong ghi chú commit
|
||||||
text_issue_added: "Issue %{id} has been reported by %{author}."
|
text_issue_added: "Vấn đề %{id} đã được báo cáo bởi %{author}."
|
||||||
text_issue_updated: "Issue %{id} has been updated by %{author}."
|
text_issue_updated: "Vấn đề %{id} đã được cập nhật bởi %{author}."
|
||||||
text_wiki_destroy_confirmation: Are you sure you want to delete this wiki and all its content ?
|
text_wiki_destroy_confirmation: Bạn có chắc chắn muốn xóa trang wiki này và tất cả nội dung của nó ?
|
||||||
text_issue_category_destroy_question: "Some issues (%{count}) are assigned to this category. What do you want to do ?"
|
text_issue_category_destroy_question: "Một số vấn đề (%{count}) được gán cho danh mục này. Bạn muốn làm gì ?"
|
||||||
text_issue_category_destroy_assignments: Remove category assignments
|
text_issue_category_destroy_assignments: Gỡ bỏ danh mục được phân công
|
||||||
text_issue_category_reassign_to: Reassign issues to this category
|
text_issue_category_reassign_to: Gán lại vấn đề cho danh mục này
|
||||||
text_user_mail_option: "Với các dự án không được chọn, bạn chỉ có thể nhận được thông báo về các vấn đề bạn đăng ký theo dõi hoặc có liên quan đến bạn (chẳng hạn, vấn đề được gán cho bạn)."
|
text_user_mail_option: "Với các dự án không được chọn, bạn chỉ có thể nhận được thông báo về các vấn đề bạn đăng ký theo dõi hoặc có liên quan đến bạn (chẳng hạn, vấn đề được gán cho bạn)."
|
||||||
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_no_configuration_data: "Quyền, theo dõi, tình trạng vấn đề và quy trình chưa được cấu hình.\nBắt buộc phải nạp cấu hình mặc định. Bạn sẽ thay đổi nó được sau khi đã nạp."
|
||||||
text_load_default_configuration: Load the default configuration
|
text_load_default_configuration: Nạp lại cấu hình mặc định
|
||||||
text_status_changed_by_changeset: "Applied in changeset %{value}."
|
text_status_changed_by_changeset: "Áp dụng trong changeset : %{value}."
|
||||||
text_issues_destroy_confirmation: 'Are you sure you want to delete the selected issue(s) ?'
|
text_issues_destroy_confirmation: 'Bạn có chắc chắn muốn xóa các vấn đề đã chọn ?'
|
||||||
text_select_project_modules: 'Chọn các mô-đun cho dự án:'
|
text_select_project_modules: 'Chọn các mô-đun cho dự án:'
|
||||||
text_default_administrator_account_changed: Default administrator account changed
|
text_default_administrator_account_changed: Thay đổi tài khoản quản trị mặc định
|
||||||
text_file_repository_writable: File repository writable
|
text_file_repository_writable: Cho phép ghi thư mục đính kèm
|
||||||
text_rmagick_available: RMagick available (optional)
|
text_rmagick_available: Trạng thái RMagick
|
||||||
text_destroy_time_entries_question: "%{hours} hours were reported on the issues you are about to delete. What do you want to do ?"
|
text_destroy_time_entries_question: "Thời gian %{hours} giờ đã báo cáo trong vấn đề bạn định xóa. Bạn muốn làm gì tiếp ?"
|
||||||
text_destroy_time_entries: Delete reported hours
|
text_destroy_time_entries: Xóa thời gian báo cáo
|
||||||
text_assign_time_entries_to_project: Assign reported hours to the project
|
text_assign_time_entries_to_project: Gán thời gian báo cáo cho dự án
|
||||||
text_reassign_time_entries: 'Reassign reported hours to this issue:'
|
text_reassign_time_entries: 'Gán lại thời gian báo cáo cho Vấn đề này:'
|
||||||
text_user_wrote: "%{value} wrote:"
|
text_user_wrote: "%{value} đã viết:"
|
||||||
text_enumeration_destroy_question: "%{count} objects are assigned to this value."
|
text_enumeration_destroy_question: "%{count} đối tượng được gán giá trị này."
|
||||||
text_enumeration_category_reassign_to: 'Reassign them to this value:'
|
text_enumeration_category_reassign_to: 'Gán lại giá trị này:'
|
||||||
text_email_delivery_not_configured: "Email delivery is not configured, and notifications are disabled.\nConfigure your SMTP server in config/configuration.yml and restart the application to enable them."
|
text_email_delivery_not_configured: "Cấu hình gửi Email chưa được đặt, và chức năng thông báo bị loại bỏ.\nCấu hình máy chủ SMTP của bạn ở file config/configuration.yml và khởi động lại để kích hoạt chúng."
|
||||||
|
|
||||||
default_role_manager: Điều hành
|
default_role_manager: Điều hành
|
||||||
default_role_developer: Phát triển
|
default_role_developer: Phát triển
|
||||||
@@ -772,7 +773,7 @@ vi:
|
|||||||
default_tracker_feature: Tính năng
|
default_tracker_feature: Tính năng
|
||||||
default_tracker_support: Hỗ trợ
|
default_tracker_support: Hỗ trợ
|
||||||
default_issue_status_new: Mới
|
default_issue_status_new: Mới
|
||||||
default_issue_status_in_progress: In Progress
|
default_issue_status_in_progress: Đang tiến hành
|
||||||
default_issue_status_resolved: Quyết tâm
|
default_issue_status_resolved: Quyết tâm
|
||||||
default_issue_status_feedback: Phản hồi
|
default_issue_status_feedback: Phản hồi
|
||||||
default_issue_status_closed: Đóng
|
default_issue_status_closed: Đóng
|
||||||
@@ -843,292 +844,295 @@ vi:
|
|||||||
permission_delete_own_messages: Xóa bài viết cá nhân
|
permission_delete_own_messages: Xóa bài viết cá nhân
|
||||||
label_example: Ví dụ
|
label_example: Ví dụ
|
||||||
text_repository_usernames_mapping: "Chọn hoặc cập nhật ánh xạ người dùng hệ thống với người dùng trong kho lưu trữ.\nNhững trường hợp trùng hợp về tên và email sẽ được tự động ánh xạ."
|
text_repository_usernames_mapping: "Chọn hoặc cập nhật ánh xạ người dùng hệ thống với người dùng trong kho lưu trữ.\nNhững trường hợp trùng hợp về tên và email sẽ được tự động ánh xạ."
|
||||||
permission_delete_own_messages: Delete own messages
|
permission_delete_own_messages: Xóa thông điệp
|
||||||
label_user_activity: "%{value}'s activity"
|
label_user_activity: "%{value} hoạt động"
|
||||||
label_updated_time_by: "Updated by %{author} %{age} ago"
|
label_updated_time_by: "Cập nhật bởi %{author} cách đây %{age}"
|
||||||
text_diff_truncated: '... This diff was truncated because it exceeds the maximum size that can be displayed.'
|
text_diff_truncated: '... Thay đổi này đã được cắt bớt do nó vượt qua giới hạn kích thước có thể hiển thị.'
|
||||||
setting_diff_max_lines_displayed: Max number of diff lines displayed
|
setting_diff_max_lines_displayed: Số dòng thay đổi tối đa được hiển thị
|
||||||
text_plugin_assets_writable: Plugin assets directory writable
|
text_plugin_assets_writable: Cho phép ghi thư mục Plugin
|
||||||
warning_attachments_not_saved: "%{count} file(s) could not be saved."
|
warning_attachments_not_saved: "%{count} file không được lưu."
|
||||||
button_create_and_continue: Create and continue
|
button_create_and_continue: Tạo và tiếp tục
|
||||||
text_custom_field_possible_values_info: 'One line for each value'
|
text_custom_field_possible_values_info: 'Một dòng cho mỗi giá trị'
|
||||||
label_display: Display
|
label_display: Hiển thị
|
||||||
field_editable: Editable
|
field_editable: Có thể sửa được
|
||||||
setting_repository_log_display_limit: Maximum number of revisions displayed on file log
|
setting_repository_log_display_limit: Số lượng tối đa các bản điều chỉnh hiển thị trong file log
|
||||||
setting_file_max_size_displayed: Max size of text files displayed inline
|
setting_file_max_size_displayed: Kích thước tối đa của tệp tin văn bản
|
||||||
field_watcher: Watcher
|
field_watcher: Người quan sát
|
||||||
setting_openid: Allow OpenID login and registration
|
setting_openid: Cho phép đăng nhập và đăng ký dùng OpenID
|
||||||
field_identity_url: OpenID URL
|
field_identity_url: OpenID URL
|
||||||
label_login_with_open_id_option: or login with OpenID
|
label_login_with_open_id_option: hoặc đăng nhập với OpenID
|
||||||
field_content: Content
|
field_content: Nội dung
|
||||||
label_descending: Descending
|
label_descending: Giảm dần
|
||||||
label_sort: Sort
|
label_sort: Sắp xếp
|
||||||
label_ascending: Ascending
|
label_ascending: Tăng dần
|
||||||
label_date_from_to: From %{start} to %{end}
|
label_date_from_to: "Từ %{start} tới %{end}"
|
||||||
label_greater_or_equal: ">="
|
label_greater_or_equal: ">="
|
||||||
label_less_or_equal: <=
|
label_less_or_equal: "<="
|
||||||
text_wiki_page_destroy_question: This page has %{descendants} child page(s) and descendant(s). What do you want to do?
|
text_wiki_page_destroy_question: "Trang này có %{descendants} trang con và trang cháu. Bạn muốn làm gì tiếp?"
|
||||||
text_wiki_page_reassign_children: Reassign child pages to this parent page
|
text_wiki_page_reassign_children: Gán lại trang con vào trang mẹ này
|
||||||
text_wiki_page_nullify_children: Keep child pages as root pages
|
text_wiki_page_nullify_children: Giữ trang con như trang gốc
|
||||||
text_wiki_page_destroy_children: Delete child pages and all their descendants
|
text_wiki_page_destroy_children: Xóa trang con và tất cả trang con cháu của nó
|
||||||
setting_password_min_length: Minimum password length
|
setting_password_min_length: Chiều dài tối thiểu của mật khẩu
|
||||||
field_group_by: Group results by
|
field_group_by: Nhóm kết quả bởi
|
||||||
mail_subject_wiki_content_updated: "'%{id}' wiki page has been updated"
|
mail_subject_wiki_content_updated: "%{id} trang wiki đã được cập nhật"
|
||||||
label_wiki_content_added: Wiki page added
|
label_wiki_content_added: Đã thêm trang Wiki
|
||||||
mail_subject_wiki_content_added: "'%{id}' wiki page has been added"
|
mail_subject_wiki_content_added: "%{id} trang wiki đã được thêm vào"
|
||||||
mail_body_wiki_content_added: The '%{id}' wiki page has been added by %{author}.
|
mail_body_wiki_content_added: "Có %{id} trang wiki đã được thêm vào bởi %{author}."
|
||||||
label_wiki_content_updated: Wiki page updated
|
label_wiki_content_updated: Trang Wiki đã được cập nhật
|
||||||
mail_body_wiki_content_updated: The '%{id}' wiki page has been updated by %{author}.
|
mail_body_wiki_content_updated: "Có %{id} trang wiki đã được cập nhật bởi %{author}."
|
||||||
permission_add_project: Create project
|
permission_add_project: Tạo dự án
|
||||||
setting_new_project_user_role_id: Role given to a non-admin user who creates a project
|
setting_new_project_user_role_id: Quyền được gán cho người dùng không phải quản trị viên khi tạo dự án mới
|
||||||
label_view_all_revisions: View all revisions
|
label_view_all_revisions: Xem tất cả bản điều chỉnh
|
||||||
label_tag: Tag
|
label_tag: Thẻ
|
||||||
label_branch: Branch
|
label_branch: Nhánh
|
||||||
error_no_tracker_in_project: No tracker is associated to this project. Please check the Project settings.
|
error_no_tracker_in_project: Không có ai theo dõi dự án này. Hãy kiểm tra lại phần thiết lập cho dự án.
|
||||||
error_no_default_issue_status: No default issue status is defined. Please check your configuration (Go to "Administration -> Issue statuses").
|
error_no_default_issue_status: Không có vấn đề mặc định được định nghĩa. Vui lòng kiểm tra cấu hình của bạn (Vào "Quản trị -> Trạng thái vấn đề").
|
||||||
text_journal_changed: "%{label} changed from %{old} to %{new}"
|
text_journal_changed: "%{label} thay đổi từ %{old} tới %{new}"
|
||||||
text_journal_set_to: "%{label} set to %{value}"
|
text_journal_set_to: "%{label} gán cho %{value}"
|
||||||
text_journal_deleted: "%{label} deleted (%{old})"
|
text_journal_deleted: "%{label} xóa (%{old})"
|
||||||
label_group_plural: Groups
|
label_group_plural: Các nhóm
|
||||||
label_group: Group
|
label_group: Nhóm
|
||||||
label_group_new: New group
|
label_group_new: Thêm nhóm
|
||||||
label_time_entry_plural: Spent time
|
label_time_entry_plural: Thời gian đã sử dụng
|
||||||
text_journal_added: "%{label} %{value} added"
|
text_journal_added: "%{label} %{value} được thêm"
|
||||||
field_active: Active
|
field_active: Tích cực
|
||||||
enumeration_system_activity: System Activity
|
enumeration_system_activity: Hoạt động hệ thống
|
||||||
permission_delete_issue_watchers: Delete watchers
|
permission_delete_issue_watchers: Xóa người quan sát
|
||||||
version_status_closed: closed
|
version_status_closed: đóng
|
||||||
version_status_locked: locked
|
version_status_locked: khóa
|
||||||
version_status_open: open
|
version_status_open: mở
|
||||||
error_can_not_reopen_issue_on_closed_version: An issue assigned to a closed version can not be reopened
|
error_can_not_reopen_issue_on_closed_version: Một vấn đề được gán cho phiên bản đã đóng không thể mở lại được
|
||||||
label_user_anonymous: Anonymous
|
label_user_anonymous: Ẩn danh
|
||||||
button_move_and_follow: Move and follow
|
button_move_and_follow: Di chuyển và theo
|
||||||
setting_default_projects_modules: Default enabled modules for new projects
|
setting_default_projects_modules: Các Module được kích hoạt mặc định cho dự án mới
|
||||||
setting_gravatar_default: Default Gravatar image
|
setting_gravatar_default: Ảnh Gravatar mặc định
|
||||||
field_sharing: Sharing
|
field_sharing: Chia sẻ
|
||||||
label_version_sharing_hierarchy: With project hierarchy
|
label_version_sharing_hierarchy: Với thứ bậc dự án
|
||||||
label_version_sharing_system: With all projects
|
label_version_sharing_system: Với tất cả dự án
|
||||||
label_version_sharing_descendants: With subprojects
|
label_version_sharing_descendants: Với dự án con
|
||||||
label_version_sharing_tree: With project tree
|
label_version_sharing_tree: Với cây dự án
|
||||||
label_version_sharing_none: Not shared
|
label_version_sharing_none: Không chia sẻ
|
||||||
error_can_not_archive_project: This project can not be archived
|
error_can_not_archive_project: Dựa án này không thể lưu trữ được
|
||||||
button_duplicate: Duplicate
|
button_duplicate: Nhân đôi
|
||||||
button_copy_and_follow: Copy and follow
|
button_copy_and_follow: Sao chép và theo
|
||||||
label_copy_source: Source
|
label_copy_source: Nguồn
|
||||||
setting_issue_done_ratio: Calculate the issue done ratio with
|
setting_issue_done_ratio: Tính toán tỷ lệ hoàn thành vấn đề với
|
||||||
setting_issue_done_ratio_issue_status: Use the issue status
|
setting_issue_done_ratio_issue_status: Sử dụng trạng thái của vấn đề
|
||||||
error_issue_done_ratios_not_updated: Issue done ratios not updated.
|
error_issue_done_ratios_not_updated: Tỷ lệ hoàn thành vấn đề không được cập nhật.
|
||||||
error_workflow_copy_target: Please select target tracker(s) and role(s)
|
error_workflow_copy_target: Vui lòng lựa chọn đích của theo dấu và quyền
|
||||||
setting_issue_done_ratio_issue_field: Use the issue field
|
setting_issue_done_ratio_issue_field: Dùng trường vấn đề
|
||||||
label_copy_same_as_target: Same as target
|
label_copy_same_as_target: Tương tự như đích
|
||||||
label_copy_target: Target
|
label_copy_target: Đích
|
||||||
notice_issue_done_ratios_updated: Issue done ratios updated.
|
notice_issue_done_ratios_updated: Tỷ lệ hoàn thành vấn đề được cập nhật.
|
||||||
error_workflow_copy_source: Please select a source tracker or role
|
error_workflow_copy_source: Vui lòng lựa chọn nguồn của theo dấu hoặc quyền
|
||||||
label_update_issue_done_ratios: Update issue done ratios
|
label_update_issue_done_ratios: Cập nhật tỷ lệ hoàn thành vấn đề
|
||||||
setting_start_of_week: Start calendars on
|
setting_start_of_week: Định dạng lịch
|
||||||
permission_view_issues: View Issues
|
permission_view_issues: Xem Vấn đề
|
||||||
label_display_used_statuses_only: Only display statuses that are used by this tracker
|
label_display_used_statuses_only: Chỉ hiển thị trạng thái đã được dùng bởi theo dõi này
|
||||||
label_revision_id: Revision %{value}
|
label_revision_id: "Bản điều chỉnh %{value}"
|
||||||
label_api_access_key: API access key
|
label_api_access_key: Khoá truy cập API
|
||||||
label_api_access_key_created_on: API access key created %{value} ago
|
label_api_access_key_created_on: "Khoá truy cập API đựơc tạo cách đây %{value}. Khóa này được dùng cho eDesignLab Client."
|
||||||
label_feeds_access_key: RSS access key
|
label_feeds_access_key: Khoá truy cập RSS
|
||||||
notice_api_access_key_reseted: Your API access key was reset.
|
notice_api_access_key_reseted: Khoá truy cập API của bạn đã được đặt lại.
|
||||||
setting_rest_api_enabled: Enable REST web service
|
setting_rest_api_enabled: Cho phép dịch vụ web REST
|
||||||
label_missing_api_access_key: Missing an API access key
|
label_missing_api_access_key: Mất Khoá truy cập API
|
||||||
label_missing_feeds_access_key: Missing a RSS access key
|
label_missing_feeds_access_key: Mất Khoá truy cập RSS
|
||||||
button_show: Show
|
button_show: Hiện
|
||||||
text_line_separated: Multiple values allowed (one line for each value).
|
text_line_separated: Nhiều giá trị được phép(mỗi dòng một giá trị).
|
||||||
setting_mail_handler_body_delimiters: Truncate emails after one of these lines
|
setting_mail_handler_body_delimiters: "Cắt bớt email sau những dòng :"
|
||||||
permission_add_subprojects: Create subprojects
|
permission_add_subprojects: Tạo Dự án con
|
||||||
label_subproject_new: New subproject
|
label_subproject_new: Thêm dự án con
|
||||||
text_own_membership_delete_confirmation: |-
|
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.
|
Bạn đang cố gỡ bỏ một số hoặc tất cả quyền của bạn với dự án này và có thể sẽ mất quyền thay đổi nó sau đó.
|
||||||
Are you sure you want to continue?
|
Bạn có muốn tiếp tục?
|
||||||
label_close_versions: Close completed versions
|
label_close_versions: Đóng phiên bản đã hoàn thành
|
||||||
label_board_sticky: Sticky
|
label_board_sticky: Chú ý
|
||||||
label_board_locked: Locked
|
label_board_locked: Đã khóa
|
||||||
permission_export_wiki_pages: Export wiki pages
|
permission_export_wiki_pages: Xuất trang wiki
|
||||||
setting_cache_formatted_text: Cache formatted text
|
setting_cache_formatted_text: Cache định dạng các ký tự
|
||||||
permission_manage_project_activities: Manage project activities
|
permission_manage_project_activities: Quản lý hoạt động của dự án
|
||||||
error_unable_delete_issue_status: Unable to delete issue status
|
error_unable_delete_issue_status: Không thể xóa trạng thái vấn đề
|
||||||
label_profile: Profile
|
label_profile: Hồ sơ
|
||||||
permission_manage_subtasks: Manage subtasks
|
permission_manage_subtasks: Quản lý tác vụ con
|
||||||
field_parent_issue: Parent task
|
field_parent_issue: Tác vụ cha
|
||||||
label_subtask_plural: Subtasks
|
label_subtask_plural: Tác vụ con
|
||||||
label_project_copy_notifications: Send email notifications during the project copy
|
label_project_copy_notifications: Gửi email thông báo trong khi dự án được sao chép
|
||||||
error_can_not_delete_custom_field: Unable to delete custom field
|
error_can_not_delete_custom_field: Không thể xóa trường tùy biến
|
||||||
error_unable_to_connect: Unable to connect (%{value})
|
error_unable_to_connect: "Không thể kết nối (%{value})"
|
||||||
error_can_not_remove_role: This role is in use and can not be deleted.
|
error_can_not_remove_role: Quyền này đang được dùng và không thể xóa được.
|
||||||
error_can_not_delete_tracker: This tracker contains issues and can't be deleted.
|
error_can_not_delete_tracker: Theo dõi này chứa vấn đề và không thể xóa được.
|
||||||
field_principal: Principal
|
field_principal: Chủ yếu
|
||||||
label_my_page_block: My page block
|
label_my_page_block: Block trang của tôi
|
||||||
notice_failed_to_save_members: "Failed to save member(s): %{errors}."
|
notice_failed_to_save_members: "Thất bại khi lưu thành viên : %{errors}."
|
||||||
text_zoom_out: Zoom out
|
text_zoom_out: Thu nhỏ
|
||||||
text_zoom_in: Zoom in
|
text_zoom_in: Phóng to
|
||||||
notice_unable_delete_time_entry: Unable to delete time log entry.
|
notice_unable_delete_time_entry: Không thể xóa mục time log.
|
||||||
label_overall_spent_time: Overall spent time
|
label_overall_spent_time: Tổng thời gian sử dụng
|
||||||
field_time_entries: Log time
|
field_time_entries: Log time
|
||||||
project_module_gantt: Gantt
|
project_module_gantt: Biểu đồ Gantt
|
||||||
project_module_calendar: Calendar
|
project_module_calendar: Lịch
|
||||||
button_edit_associated_wikipage: "Edit associated Wiki page: %{page_title}"
|
button_edit_associated_wikipage: "Chỉnh sửa trang Wiki liên quan: %{page_title}"
|
||||||
field_text: Text field
|
text_are_you_sure_with_children: Xóa vấn đề và tất cả vấn đề con?
|
||||||
label_user_mail_option_only_owner: Only for things I am the owner of
|
field_text: Trường văn bản
|
||||||
setting_default_notification_option: Default notification option
|
label_user_mail_option_only_owner: Chỉ những thứ tôi sở hữu
|
||||||
label_user_mail_option_only_my_events: Only for things I watch or I'm involved in
|
setting_default_notification_option: Tuỳ chọn thông báo mặc định
|
||||||
label_user_mail_option_only_assigned: Only for things I am assigned to
|
label_user_mail_option_only_my_events: Chỉ những thứ tôi theo dõi hoặc liên quan
|
||||||
label_user_mail_option_none: No events
|
label_user_mail_option_only_assigned: Chỉ những thứ tôi được phân công
|
||||||
field_member_of_group: Assignee's group
|
label_user_mail_option_none: Không có sự kiện
|
||||||
field_assigned_to_role: Assignee's role
|
field_member_of_group: Nhóm thụ hưởng
|
||||||
notice_not_authorized_archived_project: The project you're trying to access has been archived.
|
field_assigned_to_role: Quyền thụ hưởng
|
||||||
label_principal_search: "Search for user or group:"
|
notice_not_authorized_archived_project: Dự án bạn đang có truy cập đã được lưu trữ.
|
||||||
label_user_search: "Search for user:"
|
label_principal_search: "Tìm kiếm người dùng hoặc nhóm:"
|
||||||
field_visible: Visible
|
label_user_search: "Tìm kiếm người dùng:"
|
||||||
setting_emails_header: Emails header
|
field_visible: Nhìn thấy
|
||||||
setting_commit_logtime_activity_id: Activity for logged time
|
setting_emails_header: Tiêu đề Email
|
||||||
text_time_logged_by_changeset: Applied in changeset %{value}.
|
setting_commit_logtime_activity_id: Cho phép ghi lại thời gian
|
||||||
setting_commit_logtime_enabled: Enable time logging
|
text_time_logged_by_changeset: "Áp dụng trong changeset : %{value}."
|
||||||
notice_gantt_chart_truncated: The chart was truncated because it exceeds the maximum number of items that can be displayed (%{max})
|
setting_commit_logtime_enabled: Cho phép time logging
|
||||||
setting_gantt_items_limit: Maximum number of items displayed on the gantt chart
|
notice_gantt_chart_truncated: "Đồ thị đã được cắt bớt bởi vì nó đã vượt qua lượng thông tin tối đa có thể hiển thị :(%{max})"
|
||||||
field_warn_on_leaving_unsaved: Warn me when leaving a page with unsaved text
|
setting_gantt_items_limit: Lượng thông tin tối đa trên đồ thị gantt
|
||||||
text_warn_on_leaving_unsaved: The current page contains unsaved text that will be lost if you leave this page.
|
description_selected_columns: Các cột được lựa chọn
|
||||||
label_my_queries: My custom queries
|
field_warn_on_leaving_unsaved: Cảnh báo tôi khi rời một trang có các nội dung chưa lưu
|
||||||
text_journal_changed_no_detail: "%{label} updated"
|
text_warn_on_leaving_unsaved: Trang hiện tại chứa nội dung chưa lưu và sẽ bị mất nếu bạn rời trang này.
|
||||||
label_news_comment_added: Comment added to a news
|
label_my_queries: Các truy vấn tùy biến
|
||||||
button_expand_all: Expand all
|
text_journal_changed_no_detail: "%{label} cập nhật"
|
||||||
button_collapse_all: Collapse all
|
label_news_comment_added: Bình luận đã được thêm cho một tin tức
|
||||||
label_additional_workflow_transitions_for_assignee: Additional transitions allowed when the user is the assignee
|
button_expand_all: Mở rộng tất cả
|
||||||
label_additional_workflow_transitions_for_author: Additional transitions allowed when the user is the author
|
button_collapse_all: Thu gọn tất cả
|
||||||
label_bulk_edit_selected_time_entries: Bulk edit selected time entries
|
label_additional_workflow_transitions_for_assignee: Chuyển đổi bổ sung cho phép khi người sử dụng là người nhận chuyển nhượng
|
||||||
text_time_entries_destroy_confirmation: Are you sure you want to delete the selected time entr(y/ies)?
|
label_additional_workflow_transitions_for_author: Các chuyển đổi bổ xung được phép khi người dùng là tác giả
|
||||||
label_role_anonymous: Anonymous
|
label_bulk_edit_selected_time_entries: Sửa nhiều mục đã chọn
|
||||||
label_role_non_member: Non member
|
text_time_entries_destroy_confirmation: Bạn có chắc chắn muốn xóa bỏ các mục đã chọn?
|
||||||
label_issue_note_added: Note added
|
label_role_anonymous: Ẩn danh
|
||||||
label_issue_status_updated: Status updated
|
label_role_non_member: Không là thành viên
|
||||||
label_issue_priority_updated: Priority updated
|
label_issue_note_added: Ghi chú được thêm
|
||||||
label_issues_visibility_own: Issues created by or assigned to the user
|
label_issue_status_updated: Trạng thái cập nhật
|
||||||
field_issues_visibility: Issues visibility
|
label_issue_priority_updated: Cập nhật ưu tiên
|
||||||
label_issues_visibility_all: All issues
|
label_issues_visibility_own: Vấn đề tạo bởi hoặc gán cho người dùng
|
||||||
permission_set_own_issues_private: Set own issues public or private
|
field_issues_visibility: Vấn đề được nhìn thấy
|
||||||
field_is_private: Private
|
label_issues_visibility_all: Tất cả vấn đề
|
||||||
permission_set_issues_private: Set issues public or private
|
permission_set_own_issues_private: Đặt vấn đề sở hữu là riêng tư hoặc công cộng
|
||||||
label_issues_visibility_public: All non private issues
|
field_is_private: Riêng tư
|
||||||
text_issues_destroy_descendants_confirmation: This will also delete %{count} subtask(s).
|
permission_set_issues_private: Gán vấn đề là riêng tư hoặc công cộng
|
||||||
field_commit_logs_encoding: Commit messages encoding
|
label_issues_visibility_public: Tất cả vấn đề không riêng tư
|
||||||
field_scm_path_encoding: Path encoding
|
text_issues_destroy_descendants_confirmation: "Hành động này sẽ xóa %{count} tác vụ con."
|
||||||
text_scm_path_encoding_note: "Default: UTF-8"
|
field_commit_logs_encoding: Mã hóa ghi chú Commit
|
||||||
field_path_to_repository: Path to repository
|
field_scm_path_encoding: Mã hóa đường dẫn
|
||||||
field_root_directory: Root directory
|
text_scm_path_encoding_note: "Mặc định: UTF-8"
|
||||||
|
field_path_to_repository: Đường dẫn tới kho chứa
|
||||||
|
field_root_directory: Thư mục gốc
|
||||||
field_cvs_module: Module
|
field_cvs_module: Module
|
||||||
field_cvsroot: CVSROOT
|
field_cvsroot: CVSROOT
|
||||||
text_mercurial_repository_note: Local repository (e.g. /hgrepo, c:\hgrepo)
|
text_mercurial_repository_note: Kho chứa cục bộ (vd. /hgrepo, c:\hgrepo)
|
||||||
text_scm_command: Command
|
text_scm_command: Lệnh
|
||||||
text_scm_command_version: Version
|
text_scm_command_version: Phiên bản
|
||||||
label_git_report_last_commit: Report last commit for files and directories
|
label_git_report_last_commit: Báo cáo lần Commit cuối cùng cho file và thư mục
|
||||||
text_scm_config: You can configure your scm commands in config/configuration.yml. Please restart the application after editing it.
|
text_scm_config: Bạn có thể cấu hình lệnh Scm trong file config/configuration.yml. Vui lòng khởi động lại ứng dụng sau khi chỉnh sửa nó.
|
||||||
text_scm_command_not_available: Scm command is not available. Please check settings on the administration panel.
|
text_scm_command_not_available: Lệnh Scm không có sẵn. Vui lòng kiểm tra lại thiết đặt trong phần Quản trị.
|
||||||
notice_issue_successful_create: Issue %{id} created.
|
notice_issue_successful_create: "Vấn đề %{id} đã được tạo."
|
||||||
label_between: between
|
label_between: Ở giữa
|
||||||
setting_issue_group_assignment: Allow issue assignment to groups
|
setting_issue_group_assignment: Cho phép gán vấn đề đến các nhóm
|
||||||
label_diff: diff
|
label_diff: Sự khác nhau
|
||||||
text_git_repository_note: Repository is bare and local (e.g. /gitrepo, c:\gitrepo)
|
text_git_repository_note: Kho chứa cục bộ và công cộng (vd. /gitrepo, c:\gitrepo)
|
||||||
description_query_sort_criteria_direction: Sort direction
|
description_query_sort_criteria_direction: Chiều sắp xếp
|
||||||
description_project_scope: Search scope
|
description_project_scope: Phạm vi tìm kiếm
|
||||||
description_filter: Filter
|
description_filter: Lọc
|
||||||
description_user_mail_notification: Mail notification settings
|
description_user_mail_notification: Thiết lập email thông báo
|
||||||
description_date_from: Enter start date
|
description_date_from: Nhập ngày bắt đầu
|
||||||
description_message_content: Message content
|
description_message_content: Nội dung thông điệp
|
||||||
description_available_columns: Available Columns
|
description_available_columns: Các cột có sẵn
|
||||||
description_date_range_interval: Choose range by selecting start and end date
|
description_date_range_interval: Chọn khoảng thời gian giữa ngày bắt đầu và kết thúc
|
||||||
description_issue_category_reassign: Choose issue category
|
description_issue_category_reassign: Chọn danh mục vấn đề
|
||||||
description_search: Searchfield
|
description_search: Trường tìm kiếm
|
||||||
description_notes: Notes
|
description_notes: Các chú ý
|
||||||
description_date_range_list: Choose range from list
|
description_date_range_list: Chọn khoảng từ danh sách
|
||||||
description_choose_project: Projects
|
description_choose_project: Các dự án
|
||||||
description_date_to: Enter end date
|
description_date_to: Nhập ngày kết thúc
|
||||||
description_query_sort_criteria_attribute: Sort attribute
|
description_query_sort_criteria_attribute: Sắp xếp thuộc tính
|
||||||
description_wiki_subpages_reassign: Choose new parent page
|
description_wiki_subpages_reassign: Chọn một trang cấp trên
|
||||||
description_selected_columns: Selected Columns
|
label_parent_revision: Cha
|
||||||
label_parent_revision: Parent
|
label_child_revision: Con
|
||||||
label_child_revision: Child
|
error_scm_annotate_big_text_file: Các mục không được chú thích, vì nó vượt quá kích thước tập tin văn bản tối đa.
|
||||||
error_scm_annotate_big_text_file: The entry cannot be annotated, as it exceeds the maximum text file size.
|
setting_default_issue_start_date_to_creation_date: Sử dụng thời gian hiện tại khi tạo vấn đề mới
|
||||||
setting_default_issue_start_date_to_creation_date: Use current date as start date for new issues
|
button_edit_section: Soạn thảo sự lựa chọn này
|
||||||
button_edit_section: Edit this section
|
setting_repositories_encodings: Mã hóa kho chứa
|
||||||
setting_repositories_encodings: Attachments and repositories encodings
|
description_all_columns: Các cột
|
||||||
description_all_columns: All Columns
|
|
||||||
button_export: Export
|
button_export: Export
|
||||||
label_export_options: "%{export_format} export options"
|
label_export_options: "%{export_format} tùy chọn Export"
|
||||||
error_attachment_too_big: This file cannot be uploaded because it exceeds the maximum allowed file size (%{max_size})
|
error_attachment_too_big: "File này không thể tải lên vì nó vượt quá kích thước cho phép : (%{max_size})"
|
||||||
notice_failed_to_save_time_entries: "Failed to save %{count} time entrie(s) on %{total} selected: %{ids}."
|
notice_failed_to_save_time_entries: "Lỗi khi lưu %{count} lần trên %{total} sự lựa chọn : %{ids}."
|
||||||
label_x_issues:
|
label_x_issues:
|
||||||
zero: 0 vấn đề
|
zero: 0 vấn đề
|
||||||
one: 1 vấn đề
|
one: 1 vấn đề
|
||||||
other: "%{count} vấn đề"
|
other: "%{count} vấn đề"
|
||||||
label_repository_new: New repository
|
label_repository_new: Kho lưu trữ mới
|
||||||
field_repository_is_default: Main repository
|
field_repository_is_default: Kho lưu trữ chính
|
||||||
label_copy_attachments: Copy attachments
|
label_copy_attachments: Copy các file đính kèm
|
||||||
label_item_position: "%{position}/%{count}"
|
label_item_position: "%{position}/%{count}"
|
||||||
label_completed_versions: Completed versions
|
label_completed_versions: Các phiên bản hoàn thành
|
||||||
text_project_identifier_info: Only lower case letters (a-z), numbers, dashes and underscores are allowed.<br />Once saved, the identifier cannot be changed.
|
text_project_identifier_info: Chỉ cho phép chữ cái thường (a-z), con số và dấu gạch ngang.<br />Sau khi lưu, chỉ số ID không thể thay đổi.
|
||||||
field_multiple: Multiple values
|
field_multiple: Nhiều giá trị
|
||||||
setting_commit_cross_project_ref: Allow issues of all the other projects to be referenced and fixed
|
setting_commit_cross_project_ref: Sử dụng thời gian hiện tại khi tạo vấn đề mới
|
||||||
text_issue_conflict_resolution_add_notes: Add my notes and discard my other changes
|
text_issue_conflict_resolution_add_notes: Thêm ghi chú của tôi và loại bỏ các thay đổi khác
|
||||||
text_issue_conflict_resolution_overwrite: Apply my changes anyway (previous notes will be kept but some changes may be overwritten)
|
text_issue_conflict_resolution_overwrite: Áp dụng thay đổi bằng bất cứ giá nào, ghi chú trước đó có thể bị ghi đè
|
||||||
notice_issue_update_conflict: The issue has been updated by an other user while you were editing it.
|
notice_issue_update_conflict: Vấn đề này đã được cập nhật bởi một người dùng khác trong khi bạn đang chỉnh sửa nó.
|
||||||
text_issue_conflict_resolution_cancel: Discard all my changes and redisplay %{link}
|
text_issue_conflict_resolution_cancel: "Loại bỏ tất cả các thay đổi và hiển thị lại %{link}"
|
||||||
permission_manage_related_issues: Manage related issues
|
permission_manage_related_issues: Quản lý các vấn đề liên quan
|
||||||
field_auth_source_ldap_filter: LDAP filter
|
field_auth_source_ldap_filter: Bộ lọc LDAP
|
||||||
label_search_for_watchers: Search for watchers to add
|
label_search_for_watchers: Tìm kiếm người theo dõi để thêm
|
||||||
notice_account_deleted: Your account has been permanently deleted.
|
notice_account_deleted: Tài khoản của bạn đã được xóa vĩnh viễn.
|
||||||
setting_unsubscribe: Allow users to delete their own account
|
button_delete_my_account: Xóa tài khoản của tôi
|
||||||
button_delete_my_account: Delete my account
|
setting_unsubscribe: Cho phép người dùng xóa Account
|
||||||
text_account_destroy_confirmation: |-
|
text_account_destroy_confirmation: |-
|
||||||
Are you sure you want to proceed?
|
Bạn đồng ý không ?
|
||||||
Your account will be permanently deleted, with no way to reactivate it.
|
Tài khoản của bạn sẽ bị xóa vĩnh viễn, không thể khôi phục lại!
|
||||||
error_session_expired: Your session has expired. Please login again.
|
error_session_expired: Phiên làm việc của bạn bị quá hạn, hãy đăng nhập lại
|
||||||
text_session_expiration_settings: "Warning: changing these settings may expire the current sessions including yours."
|
text_session_expiration_settings: "Chú ý : Thay đổi các thiết lập này có thể gây vô hiệu hóa Session hiện tại"
|
||||||
setting_session_lifetime: Session maximum lifetime
|
setting_session_lifetime: Thời gian tồn tại lớn nhất của Session
|
||||||
setting_session_timeout: Session inactivity timeout
|
setting_session_timeout: Thời gian vô hiệu hóa Session
|
||||||
label_session_expiration: Session expiration
|
label_session_expiration: Phiên làm việc bị quá hạn
|
||||||
permission_close_project: Close / reopen the project
|
permission_close_project: Đóng / Mở lại dự án
|
||||||
label_show_closed_projects: View closed projects
|
label_show_closed_projects: Xem các dự án đã đóng
|
||||||
button_close: Close
|
button_close: Đóng
|
||||||
button_reopen: Reopen
|
button_reopen: Mở lại
|
||||||
project_status_active: active
|
project_status_active: Kích hoạt
|
||||||
project_status_closed: closed
|
project_status_closed: Đã đóng
|
||||||
project_status_archived: archived
|
project_status_archived: Lưu trữ
|
||||||
text_project_closed: This project is closed and read-only.
|
text_project_closed: Dự án này đã đóng và chỉ đọc
|
||||||
notice_user_successful_create: User %{id} created.
|
notice_user_successful_create: "Người dùng %{id} đã được tạo."
|
||||||
field_core_fields: Standard fields
|
field_core_fields: Các trường tiêu chuẩn
|
||||||
field_timeout: Timeout (in seconds)
|
field_timeout: Quá hạn
|
||||||
setting_thumbnails_enabled: Display attachment thumbnails
|
setting_thumbnails_enabled: Hiển thị các thumbnail đính kèm
|
||||||
setting_thumbnails_size: Thumbnails size (in pixels)
|
setting_thumbnails_size: Kích thước Thumbnails(pixel)
|
||||||
label_status_transitions: Status transitions
|
setting_session_lifetime: Thời gian tồn tại lớn nhất của Session
|
||||||
label_fields_permissions: Fields permissions
|
setting_session_timeout: Thời gian vô hiệu hóa Session
|
||||||
label_readonly: Read-only
|
label_status_transitions: Trạng thái chuyển tiếp
|
||||||
label_required: Required
|
label_fields_permissions: Cho phép các trường
|
||||||
text_repository_identifier_info: Only lower case letters (a-z), numbers, dashes and underscores are allowed.<br />Once saved, the identifier cannot be changed.
|
label_readonly: Chỉ đọc
|
||||||
field_board_parent: Parent forum
|
label_required: Yêu cầu
|
||||||
label_attribute_of_project: Project's %{name}
|
text_repository_identifier_info: Chỉ có các chữ thường (a-z), các số (0-9), dấu gạch ngang và gạch dưới là hợp lệ.<br />Khi đã lưu, tên định danh sẽ không thể thay đổi.
|
||||||
label_attribute_of_author: Author's %{name}
|
field_board_parent: Diễn đàn cha
|
||||||
label_attribute_of_assigned_to: Assignee's %{name}
|
label_attribute_of_project: "Của dự án : %{name}"
|
||||||
label_attribute_of_fixed_version: Target version's %{name}
|
label_attribute_of_author: "Của tác giả : %{name}"
|
||||||
label_copy_subtasks: Copy subtasks
|
label_attribute_of_assigned_to: "Được phân công bởi %{name}"
|
||||||
label_copied_to: copied to
|
label_attribute_of_fixed_version: "Phiên bản mục tiêu của %{name}"
|
||||||
label_copied_from: copied from
|
label_copy_subtasks: Sao chép các nhiệm vụ con
|
||||||
label_any_issues_in_project: any issues in project
|
label_copied_to: Sao chép đến
|
||||||
label_any_issues_not_in_project: any issues not in project
|
label_copied_from: Sao chép từ
|
||||||
field_private_notes: Private notes
|
label_any_issues_in_project: Bất kỳ vấn đề nào trong dự án
|
||||||
permission_view_private_notes: View private notes
|
label_any_issues_not_in_project: Bất kỳ vấn đề nào không thuộc dự án
|
||||||
permission_set_notes_private: Set notes as private
|
field_private_notes: Ghi chú riêng tư
|
||||||
label_no_issues_in_project: no issues in project
|
permission_view_private_notes: Xem ghi chú riêng tư
|
||||||
|
permission_set_notes_private: Đặt ghi chú thành riêng tư
|
||||||
|
label_no_issues_in_project: Không có vấn đề nào trong dự án
|
||||||
label_any: tất cả
|
label_any: tất cả
|
||||||
label_last_n_weeks: last %{count} weeks
|
label_last_n_weeks: "%{count} tuần qua"
|
||||||
setting_cross_project_subtasks: Allow cross-project subtasks
|
setting_cross_project_subtasks: Cho phép các nhiệm vụ con liên dự án
|
||||||
label_cross_project_descendants: With subprojects
|
label_cross_project_descendants: Trong các dự án con
|
||||||
label_cross_project_tree: With project tree
|
label_cross_project_tree: Trong cùng cây dự án
|
||||||
label_cross_project_hierarchy: With project hierarchy
|
label_cross_project_hierarchy: Trong dự án cùng cấp bậc
|
||||||
label_cross_project_system: With all projects
|
label_cross_project_system: Trong tất cả các dự án
|
||||||
button_hide: Hide
|
button_hide: Ẩn
|
||||||
setting_non_working_week_days: Non-working days
|
setting_non_working_week_days: Các ngày không làm việc
|
||||||
label_in_the_next_days: in the next
|
label_in_the_next_days: Trong tương lai
|
||||||
label_in_the_past_days: in the past
|
label_in_the_past_days: Trong quá khứ
|
||||||
|
|||||||
+122
@@ -4,6 +4,128 @@ Redmine - project management software
|
|||||||
Copyright (C) 2006-2012 Jean-Philippe Lang
|
Copyright (C) 2006-2012 Jean-Philippe Lang
|
||||||
http://www.redmine.org/
|
http://www.redmine.org/
|
||||||
|
|
||||||
|
== 2013-03-19 v2.2.4
|
||||||
|
|
||||||
|
* Upgrade to Rails 3.2.13
|
||||||
|
* Defect #12243: Ordering forum replies by last reply date is broken
|
||||||
|
* Defect #13127: h1 multiple lined titles breaks into main menu
|
||||||
|
* Defect #13138: Generating PDF of issue causes UndefinedConversionError with htmlentities gem
|
||||||
|
* Defect #13165: rdm-mailhandler.rb: initialize_http_header override basic auth
|
||||||
|
* Defect #13232: Link to topic in nonexistent forum causes error 500
|
||||||
|
* Patch #13181: Bulgarian translation of jstoolbar-bg.js
|
||||||
|
* Patch #13207: Portuguese translation for 2.2-stable
|
||||||
|
* Patch #13310: pt-BR label_last_n_weeks translation
|
||||||
|
* Patch #13325: pt-BR translation for 2.2-stable
|
||||||
|
* Patch #13343: Vietnamese translation for 2.2-stable
|
||||||
|
* Patch #13398: Czech translation for 2.2-stable
|
||||||
|
|
||||||
|
== 2013-02-12 v2.2.3
|
||||||
|
|
||||||
|
* Upgrade to Rails 3.2.12
|
||||||
|
* Defect #11987: pdf: Broken new line in table
|
||||||
|
* Defect #12930: 404 Error when referencing different project source files in the wiki syntax
|
||||||
|
* Defect #12979: Wiki link syntax commit:repo_a:abcd doesn't work
|
||||||
|
* Defect #13075: Can't clear custom field value through context menu in the issue list
|
||||||
|
* Defect #13097: Project copy fails when wiki module is disabled
|
||||||
|
* Defect #13126: Issue view: estimated time vs. spent time
|
||||||
|
* Patch #12922: Update Spanish translation
|
||||||
|
* Patch #12928: Bulgarian translation for 2.2-stable
|
||||||
|
* Patch #12987: Russian translation for 2.2-stable
|
||||||
|
|
||||||
|
== 2013-01-20 v2.2.2
|
||||||
|
|
||||||
|
* Defect #7510: Link to attachment should return latest attachment
|
||||||
|
* Defect #9842: {{toc}} is not replaced by table of content when exporting wiki page to pdf
|
||||||
|
* Defect #12749: Plugins cannot route wiki page sub-path
|
||||||
|
* Defect #12799: Cannot edit a wiki section which title starts with a tab
|
||||||
|
* Defect #12801: Viewing the history of a wiki page with attachments raises an error
|
||||||
|
* Defect #12833: Input fields restricted on length should have maxlength parameter set
|
||||||
|
* Defect #12838: Blank page when clicking Add with no block selected on my page layout
|
||||||
|
* Defect #12851: "Parent task is invalid" while editing child issues by Role with restricted Issues Visibility
|
||||||
|
* Patch #12800: Serbian Latin translation patch (sr-YU.yml)
|
||||||
|
* Patch #12809: Swedish Translation for r11162
|
||||||
|
* Patch #12818: Minor swedish translation fix
|
||||||
|
|
||||||
|
== 2013-01-09 v2.2.1
|
||||||
|
|
||||||
|
* Upgrade to Rails 3.2.11
|
||||||
|
* Defect #12652: "Copy ticket" selects "new ticket"
|
||||||
|
* Defect #12691: Textile Homepage Dead?
|
||||||
|
* Defect #12711: incorrect fix of lib/SVG/Graph/TimeSeries.rb
|
||||||
|
* Defect #12744: Unable to call a macro with a name that contains uppercase letters
|
||||||
|
* Defect #12776: Security vulnerability in Rails 3.2.10 (CVE-2013-0156)
|
||||||
|
* Patch #12630: Russian "x_hours" translation
|
||||||
|
|
||||||
|
== 2012-12-18 v2.2.0
|
||||||
|
|
||||||
|
* Defect #4787: Gannt to PNG - CJK (Chinese, Japanese and Korean) characters appear as ?
|
||||||
|
* Defect #8106: Issues by Category should show tasks without category
|
||||||
|
* Defect #8373: i18n string text_are_you_sure_with_children no longer used
|
||||||
|
* Defect #11426: Filtering with Due Date in less than N days should show overdue issues
|
||||||
|
* Defect #11834: Bazaar: "???" instead of non ASCII character in paths on non UTF-8 locale
|
||||||
|
* Defect #11868: Git and Mercurial diff displays deleted files as /dev/null
|
||||||
|
* Defect #11979: No validation errors when entering an invalid "Parent task"
|
||||||
|
* Defect #12012: Redmine::VERSION.revision method does not work on Subversion 1.7 working copy
|
||||||
|
* Defect #12018: Issue filter select box order changes randomly
|
||||||
|
* Defect #12090: email recipients not written to action_mailer log if BCC recipients setting is checked
|
||||||
|
* Defect #12092: Issue "start date" validation does not work correctly
|
||||||
|
* Defect #12285: Some unit and functional tests miss fixtures and break when run alone
|
||||||
|
* Defect #12286: Emails of private notes are sent to watcher users regardless of viewing permissions
|
||||||
|
* Defect #12310: Attachments may not be displayed in the order they were selected
|
||||||
|
* Defect #12356: Issue "Update" link broken focus
|
||||||
|
* Defect #12397: Error in Textile conversion of HTTP links, containing russian letters
|
||||||
|
* Defect #12434: Respond with 404 instead of 500 when requesting a wiki diff with invalid versions
|
||||||
|
* Feature #1554: Private comments in tickets
|
||||||
|
* Feature #2161: Time tracking code should respect weekends as "no work" days
|
||||||
|
* Feature #3239: Show related issues on the Issues Listing
|
||||||
|
* Feature #3265: Filter on issue relations
|
||||||
|
* Feature #3447: Option to display the issue descriptions on the issues list
|
||||||
|
* Feature #3511: Ability to sort issues by grouped column
|
||||||
|
* Feature #4590: Precede-Follow relation should move following issues when rescheduling issue earlier
|
||||||
|
* Feature #5487: Allow subtasks to cross projects
|
||||||
|
* Feature #6899: Add a relation between the original and copied issue
|
||||||
|
* Feature #7082: Rest API for wiki
|
||||||
|
* Feature #9835: REST API - List priorities
|
||||||
|
* Feature #10789: Macros {{child_pages}} with depth parameter
|
||||||
|
* Feature #10852: Ability to delete a version from a wiki page history
|
||||||
|
* Feature #10937: new user format #{lastname}
|
||||||
|
* Feature #11502: Expose roles details via REST API
|
||||||
|
* Feature #11755: Impersonate user through REST API auth
|
||||||
|
* Feature #12085: New user name format: firstname + first letter of lastname
|
||||||
|
* Feature #12125: Set filename used to store attachment updloaded via the REST API
|
||||||
|
* Feature #12167: Macro for inserting collapsible block of text
|
||||||
|
* Feature #12211: Wrap issue description and its contextual menu in a div
|
||||||
|
* Feature #12216: Textual CSS class for priorities
|
||||||
|
* Feature #12299: Redmine version requirement improvements (in plugins)
|
||||||
|
* Feature #12393: Upgrade to Rails 3.2.9
|
||||||
|
* Feature #12475: Lazy loading of translation files for faster startup
|
||||||
|
* Patch #11846: Fill username when authentification failed
|
||||||
|
* Patch #11862: Add "last 2 weeks" preset to time entries reporting
|
||||||
|
* Patch #11992: Japanese translation about issue relations improved
|
||||||
|
* Patch #12027: Incorrect Spanish "September" month name
|
||||||
|
* Patch #12061: Japanese translation improvement (permission names)
|
||||||
|
* Patch #12078: User#allowed_to? should return true or false
|
||||||
|
* Patch #12117: Change Japanese translation of "admin"
|
||||||
|
* Patch #12142: Updated translation in Lithuanian
|
||||||
|
* Patch #12232: German translation enhancements
|
||||||
|
* Patch #12316: Fix Lithuanian numeral translation
|
||||||
|
* Patch #12494: Bulgarian "button_submit" translation change
|
||||||
|
* Patch #12514: Updated translation in Lithuanian
|
||||||
|
* Patch #12602: Korean translation update for 2.2-stable
|
||||||
|
* Patch #12608: Norwegian translation changed
|
||||||
|
* Patch #12619: Russian translation change
|
||||||
|
|
||||||
|
== 2012-12-18 v2.1.5
|
||||||
|
|
||||||
|
* Defect #12400: Validation fails when receiving an email with list custom fields
|
||||||
|
* Defect #12451: Macros.rb extract_macro_options should use lazy search
|
||||||
|
* Defect #12513: Grouping of issues by custom fields not correct in PDF export
|
||||||
|
* Defect #12566: Issue history notes previews are broken
|
||||||
|
* Defect #12568: Clicking "edit" on a journal multiple times shows multiple forms
|
||||||
|
* Patch #12605: Norwegian translation for 1.4-stable update
|
||||||
|
* Patch #12614: Dutch translation
|
||||||
|
* Patch #12615: Russian translation
|
||||||
|
|
||||||
== 2012-11-24 v2.1.4
|
== 2012-11-24 v2.1.4
|
||||||
|
|
||||||
* Defect #12274: Wiki export from Index by title is truncated
|
* Defect #12274: Wiki export from Index by title is truncated
|
||||||
|
|||||||
@@ -10,8 +10,8 @@ module Net
|
|||||||
def self.post_form(url, params, headers, options={})
|
def self.post_form(url, params, headers, options={})
|
||||||
request = Post.new(url.path)
|
request = Post.new(url.path)
|
||||||
request.form_data = params
|
request.form_data = params
|
||||||
request.basic_auth url.user, url.password if url.user
|
|
||||||
request.initialize_http_header(headers)
|
request.initialize_http_header(headers)
|
||||||
|
request.basic_auth url.user, url.password if url.user
|
||||||
http = new(url.host, url.port)
|
http = new(url.host, url.port)
|
||||||
http.use_ssl = (url.scheme == 'https')
|
http.use_ssl = (url.scheme == 'https')
|
||||||
if options[:no_check_certificate]
|
if options[:no_check_certificate]
|
||||||
@@ -23,7 +23,7 @@ module Net
|
|||||||
end
|
end
|
||||||
|
|
||||||
class RedmineMailHandler
|
class RedmineMailHandler
|
||||||
VERSION = '0.2'
|
VERSION = '0.2.1'
|
||||||
|
|
||||||
attr_accessor :verbose, :issue_attributes, :allow_override, :unknown_user, :no_permission_check, :url, :key, :no_check_certificate
|
attr_accessor :verbose, :issue_attributes, :allow_override, :unknown_user, :no_permission_check, :url, :key, :no_check_certificate
|
||||||
|
|
||||||
|
|||||||
@@ -171,7 +171,7 @@ module SVG
|
|||||||
protected
|
protected
|
||||||
|
|
||||||
def min_x_value=(value)
|
def min_x_value=(value)
|
||||||
@min_x_value = DateTime.parse( data[:data][i] ).to_time
|
@min_x_value = DateTime.parse( value ).to_time
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -10,10 +10,6 @@ A template plugin allowing the inclusion of ERB-enabled RFPDF template files.
|
|||||||
==
|
==
|
||||||
==
|
==
|
||||||
|
|
||||||
If you are using HTML, it is recommended you install:
|
|
||||||
|
|
||||||
gem install -r htmlentities
|
|
||||||
|
|
||||||
TCPDF Documentation located at:
|
TCPDF Documentation located at:
|
||||||
|
|
||||||
http://phpdocs.moodle.org/com-tecnick-tcpdf/TCPDF.html
|
http://phpdocs.moodle.org/com-tecnick-tcpdf/TCPDF.html
|
||||||
|
|||||||
@@ -1,8 +1,3 @@
|
|||||||
begin
|
|
||||||
require('htmlentities')
|
|
||||||
rescue LoadError
|
|
||||||
# This gem is not required - just nice to have.
|
|
||||||
end
|
|
||||||
require('cgi')
|
require('cgi')
|
||||||
require 'rfpdf'
|
require 'rfpdf'
|
||||||
|
|
||||||
|
|||||||
@@ -94,8 +94,6 @@ class TCPDF
|
|||||||
cattr_accessor :k_path_url_cache
|
cattr_accessor :k_path_url_cache
|
||||||
@@k_path_url_cache = Rails.root.join('tmp')
|
@@k_path_url_cache = Rails.root.join('tmp')
|
||||||
|
|
||||||
cattr_accessor :decoder
|
|
||||||
|
|
||||||
attr_accessor :barcode
|
attr_accessor :barcode
|
||||||
|
|
||||||
attr_accessor :buffer
|
attr_accessor :buffer
|
||||||
@@ -223,12 +221,6 @@ class TCPDF
|
|||||||
#Some checks
|
#Some checks
|
||||||
dochecks();
|
dochecks();
|
||||||
|
|
||||||
begin
|
|
||||||
@@decoder = HTMLEntities.new
|
|
||||||
rescue
|
|
||||||
@@decoder = nil
|
|
||||||
end
|
|
||||||
|
|
||||||
#Initialization of properties
|
#Initialization of properties
|
||||||
@barcode ||= false
|
@barcode ||= false
|
||||||
@buffer ||= ''
|
@buffer ||= ''
|
||||||
@@ -403,6 +395,9 @@ class TCPDF
|
|||||||
Error("Incorrect orientation: #{orientation}")
|
Error("Incorrect orientation: #{orientation}")
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@fw = @w_pt/@k
|
||||||
|
@fh = @h_pt/@k
|
||||||
|
|
||||||
@cur_orientation = @def_orientation
|
@cur_orientation = @def_orientation
|
||||||
@w = @w_pt/@k
|
@w = @w_pt/@k
|
||||||
@h = @h_pt/@k
|
@h = @h_pt/@k
|
||||||
@@ -3615,9 +3610,9 @@ class TCPDF
|
|||||||
restspace = GetPageHeight() - GetY() - GetBreakMargin();
|
restspace = GetPageHeight() - GetY() - GetBreakMargin();
|
||||||
|
|
||||||
writeHTML(html, true, fill); # write html text
|
writeHTML(html, true, fill); # write html text
|
||||||
|
SetX(x)
|
||||||
|
|
||||||
currentY = GetY();
|
currentY = GetY();
|
||||||
|
|
||||||
@auto_page_break = false;
|
@auto_page_break = false;
|
||||||
# check if a new page has been created
|
# check if a new page has been created
|
||||||
if (@page > pagenum)
|
if (@page > pagenum)
|
||||||
@@ -3625,11 +3620,13 @@ class TCPDF
|
|||||||
currentpage = @page;
|
currentpage = @page;
|
||||||
@page = pagenum;
|
@page = pagenum;
|
||||||
SetY(GetPageHeight() - restspace - GetBreakMargin());
|
SetY(GetPageHeight() - restspace - GetBreakMargin());
|
||||||
|
SetX(x)
|
||||||
Cell(w, restspace - 1, "", b, 0, 'L', 0);
|
Cell(w, restspace - 1, "", b, 0, 'L', 0);
|
||||||
b = b2;
|
b = b2;
|
||||||
@page += 1;
|
@page += 1;
|
||||||
while @page < currentpage
|
while @page < currentpage
|
||||||
SetY(@t_margin); # put cursor at the beginning of text
|
SetY(@t_margin); # put cursor at the beginning of text
|
||||||
|
SetX(x)
|
||||||
Cell(w, @page_break_trigger - @t_margin, "", b, 0, 'L', 0);
|
Cell(w, @page_break_trigger - @t_margin, "", b, 0, 'L', 0);
|
||||||
@page += 1;
|
@page += 1;
|
||||||
end
|
end
|
||||||
@@ -3638,10 +3635,12 @@ class TCPDF
|
|||||||
end
|
end
|
||||||
# design a cell around the text on last page
|
# design a cell around the text on last page
|
||||||
SetY(@t_margin); # put cursor at the beginning of text
|
SetY(@t_margin); # put cursor at the beginning of text
|
||||||
|
SetX(x)
|
||||||
Cell(w, currentY - @t_margin, "", b, 0, 'L', 0);
|
Cell(w, currentY - @t_margin, "", b, 0, 'L', 0);
|
||||||
else
|
else
|
||||||
SetY(y); # put cursor at the beginning of text
|
SetY(y); # put cursor at the beginning of text
|
||||||
# design a cell around the text
|
# design a cell around the text
|
||||||
|
SetX(x)
|
||||||
Cell(w, [h, (currentY - y)].max, "", border, 0, 'L', 0);
|
Cell(w, [h, (currentY - y)].max, "", border, 0, 'L', 0);
|
||||||
end
|
end
|
||||||
@auto_page_break = true;
|
@auto_page_break = true;
|
||||||
@@ -3995,6 +3994,10 @@ class TCPDF
|
|||||||
@quote_page[@quote_count] = @page;
|
@quote_page[@quote_count] = @page;
|
||||||
@quote_count += 1
|
@quote_count += 1
|
||||||
when 'br'
|
when 'br'
|
||||||
|
if @tdbegin
|
||||||
|
@tdtext << "\n"
|
||||||
|
return
|
||||||
|
end
|
||||||
Ln();
|
Ln();
|
||||||
|
|
||||||
if (@li_spacer.length > 0)
|
if (@li_spacer.length > 0)
|
||||||
@@ -4333,11 +4336,7 @@ class TCPDF
|
|||||||
# @return string converted
|
# @return string converted
|
||||||
#
|
#
|
||||||
def unhtmlentities(string)
|
def unhtmlentities(string)
|
||||||
if @@decoder.nil?
|
|
||||||
CGI.unescapeHTML(string)
|
CGI.unescapeHTML(string)
|
||||||
else
|
|
||||||
@@decoder.decode(string)
|
|
||||||
end
|
|
||||||
end
|
end
|
||||||
|
|
||||||
end # END OF CLASS
|
end # END OF CLASS
|
||||||
|
|||||||
+1
-1
@@ -198,7 +198,7 @@ Redmine::MenuManager.map :project_menu do |menu|
|
|||||||
menu.push :roadmap, { :controller => 'versions', :action => 'index' }, :param => :project_id,
|
menu.push :roadmap, { :controller => 'versions', :action => 'index' }, :param => :project_id,
|
||||||
:if => Proc.new { |p| p.shared_versions.any? }
|
:if => Proc.new { |p| p.shared_versions.any? }
|
||||||
menu.push :issues, { :controller => 'issues', :action => 'index' }, :param => :project_id, :caption => :label_issue_plural
|
menu.push :issues, { :controller => 'issues', :action => 'index' }, :param => :project_id, :caption => :label_issue_plural
|
||||||
menu.push :new_issue, { :controller => 'issues', :action => 'new' }, :param => :project_id, :caption => :label_issue_new,
|
menu.push :new_issue, { :controller => 'issues', :action => 'new', :copy_from => nil }, :param => :project_id, :caption => :label_issue_new,
|
||||||
:html => { :accesskey => Redmine::AccessKeys.key_for(:new_issue) }
|
:html => { :accesskey => Redmine::AccessKeys.key_for(:new_issue) }
|
||||||
menu.push :gantt, { :controller => 'gantts', :action => 'show' }, :param => :project_id, :caption => :label_gantt
|
menu.push :gantt, { :controller => 'gantts', :action => 'show' }, :param => :project_id, :caption => :label_gantt
|
||||||
menu.push :calendar, { :controller => 'calendars', :action => 'show' }, :param => :project_id, :caption => :label_calendar
|
menu.push :calendar, { :controller => 'calendars', :action => 'show' }, :param => :project_id, :caption => :label_calendar
|
||||||
|
|||||||
+31
-12
@@ -34,12 +34,12 @@ module Redmine
|
|||||||
include Redmine::I18n
|
include Redmine::I18n
|
||||||
attr_accessor :footer_date
|
attr_accessor :footer_date
|
||||||
|
|
||||||
def initialize(lang)
|
def initialize(lang, orientation='P')
|
||||||
@@k_path_cache = Rails.root.join('tmp', 'pdf')
|
@@k_path_cache = Rails.root.join('tmp', 'pdf')
|
||||||
FileUtils.mkdir_p @@k_path_cache unless File::exist?(@@k_path_cache)
|
FileUtils.mkdir_p @@k_path_cache unless File::exist?(@@k_path_cache)
|
||||||
set_language_if_valid lang
|
set_language_if_valid lang
|
||||||
pdf_encoding = l(:general_pdf_encoding).upcase
|
pdf_encoding = l(:general_pdf_encoding).upcase
|
||||||
super('P', 'mm', 'A4', (pdf_encoding == 'UTF-8'), pdf_encoding)
|
super(orientation, 'mm', 'A4', (pdf_encoding == 'UTF-8'), pdf_encoding)
|
||||||
case current_language.to_s.downcase
|
case current_language.to_s.downcase
|
||||||
when 'vi'
|
when 'vi'
|
||||||
@font_for_content = 'DejaVuSans'
|
@font_for_content = 'DejaVuSans'
|
||||||
@@ -109,6 +109,13 @@ module Redmine
|
|||||||
RDMPdfEncoding::rdm_from_utf8(txt, l(:general_pdf_encoding))
|
RDMPdfEncoding::rdm_from_utf8(txt, l(:general_pdf_encoding))
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def formatted_text(text)
|
||||||
|
html = Redmine::WikiFormatting.to_html(Setting.text_formatting, text)
|
||||||
|
# Strip {{toc}} tags
|
||||||
|
html.gsub!(/<p>\{\{([<>]?)toc\}\}<\/p>/i, '')
|
||||||
|
html
|
||||||
|
end
|
||||||
|
|
||||||
def RDMCell(w ,h=0, txt='', border=0, ln=0, align='', fill=0, link='')
|
def RDMCell(w ,h=0, txt='', border=0, ln=0, align='', fill=0, link='')
|
||||||
Cell(w, h, fix_text_encoding(txt), border, ln, align, fill, link)
|
Cell(w, h, fix_text_encoding(txt), border, ln, align, fill, link)
|
||||||
end
|
end
|
||||||
@@ -120,8 +127,7 @@ module Redmine
|
|||||||
def RDMwriteHTMLCell(w, h, x, y, txt='', attachments=[], border=0, ln=1, fill=0)
|
def RDMwriteHTMLCell(w, h, x, y, txt='', attachments=[], border=0, ln=1, fill=0)
|
||||||
@attachments = attachments
|
@attachments = attachments
|
||||||
writeHTMLCell(w, h, x, y,
|
writeHTMLCell(w, h, x, y,
|
||||||
fix_text_encoding(
|
fix_text_encoding(formatted_text(txt)),
|
||||||
Redmine::WikiFormatting.to_html(Setting.text_formatting, txt)),
|
|
||||||
border, ln, fill)
|
border, ln, fill)
|
||||||
end
|
end
|
||||||
|
|
||||||
@@ -236,7 +242,7 @@ module Redmine
|
|||||||
|
|
||||||
# fetch row values
|
# fetch row values
|
||||||
def fetch_row_values(issue, query, level)
|
def fetch_row_values(issue, query, level)
|
||||||
query.columns.collect do |column|
|
query.inline_columns.collect do |column|
|
||||||
s = if column.is_a?(QueryCustomFieldColumn)
|
s = if column.is_a?(QueryCustomFieldColumn)
|
||||||
cv = issue.custom_field_values.detect {|v| v.custom_field_id == column.custom_field.id}
|
cv = issue.custom_field_values.detect {|v| v.custom_field_id == column.custom_field.id}
|
||||||
show_value(cv)
|
show_value(cv)
|
||||||
@@ -263,10 +269,10 @@ module Redmine
|
|||||||
# by captions
|
# by captions
|
||||||
pdf.SetFontStyle('B',8)
|
pdf.SetFontStyle('B',8)
|
||||||
col_padding = pdf.GetStringWidth('OO')
|
col_padding = pdf.GetStringWidth('OO')
|
||||||
col_width_min = query.columns.map {|v| pdf.GetStringWidth(v.caption) + col_padding}
|
col_width_min = query.inline_columns.map {|v| pdf.GetStringWidth(v.caption) + col_padding}
|
||||||
col_width_max = Array.new(col_width_min)
|
col_width_max = Array.new(col_width_min)
|
||||||
col_width_avg = Array.new(col_width_min)
|
col_width_avg = Array.new(col_width_min)
|
||||||
word_width_max = query.columns.map {|c|
|
word_width_max = query.inline_columns.map {|c|
|
||||||
n = 10
|
n = 10
|
||||||
c.caption.split.each {|w|
|
c.caption.split.each {|w|
|
||||||
x = pdf.GetStringWidth(w) + col_padding
|
x = pdf.GetStringWidth(w) + col_padding
|
||||||
@@ -370,13 +376,13 @@ module Redmine
|
|||||||
# render it background to find the max height used
|
# render it background to find the max height used
|
||||||
base_x = pdf.GetX
|
base_x = pdf.GetX
|
||||||
base_y = pdf.GetY
|
base_y = pdf.GetY
|
||||||
max_height = issues_to_pdf_write_cells(pdf, query.columns, col_width, row_height, true)
|
max_height = issues_to_pdf_write_cells(pdf, query.inline_columns, col_width, row_height, true)
|
||||||
pdf.Rect(base_x, base_y, table_width + col_id_width, max_height, 'FD');
|
pdf.Rect(base_x, base_y, table_width + col_id_width, max_height, 'FD');
|
||||||
pdf.SetXY(base_x, base_y);
|
pdf.SetXY(base_x, base_y);
|
||||||
|
|
||||||
# write the cells on page
|
# write the cells on page
|
||||||
pdf.RDMCell(col_id_width, row_height, "#", "T", 0, 'C', 1)
|
pdf.RDMCell(col_id_width, row_height, "#", "T", 0, 'C', 1)
|
||||||
issues_to_pdf_write_cells(pdf, query.columns, col_width, row_height, true)
|
issues_to_pdf_write_cells(pdf, query.inline_columns, col_width, row_height, true)
|
||||||
issues_to_pdf_draw_borders(pdf, base_x, base_y, base_y + max_height, col_id_width, col_width)
|
issues_to_pdf_draw_borders(pdf, base_x, base_y, base_y + max_height, col_id_width, col_width)
|
||||||
pdf.SetY(base_y + max_height);
|
pdf.SetY(base_y + max_height);
|
||||||
|
|
||||||
@@ -387,7 +393,7 @@ module Redmine
|
|||||||
|
|
||||||
# Returns a PDF string of a list of issues
|
# Returns a PDF string of a list of issues
|
||||||
def issues_to_pdf(issues, project, query)
|
def issues_to_pdf(issues, project, query)
|
||||||
pdf = ITCPDF.new(current_language)
|
pdf = ITCPDF.new(current_language, "L")
|
||||||
title = query.new_record? ? l(:label_issue_plural) : query.name
|
title = query.new_record? ? l(:label_issue_plural) : query.name
|
||||||
title = "#{project} - #{title}" if project
|
title = "#{project} - #{title}" if project
|
||||||
pdf.SetTitle(title)
|
pdf.SetTitle(title)
|
||||||
@@ -407,11 +413,17 @@ module Redmine
|
|||||||
# column widths
|
# column widths
|
||||||
table_width = page_width - right_margin - 10 # fixed left margin
|
table_width = page_width - right_margin - 10 # fixed left margin
|
||||||
col_width = []
|
col_width = []
|
||||||
unless query.columns.empty?
|
unless query.inline_columns.empty?
|
||||||
col_width = calc_col_width(issues, query, table_width - col_id_width, pdf)
|
col_width = calc_col_width(issues, query, table_width - col_id_width, pdf)
|
||||||
table_width = col_width.inject(0) {|s,v| s += v}
|
table_width = col_width.inject(0) {|s,v| s += v}
|
||||||
end
|
end
|
||||||
|
|
||||||
|
# use full width if the description is displayed
|
||||||
|
if table_width > 0 && query.has_column?(:description)
|
||||||
|
col_width = col_width.map {|w| w = w * (page_width - right_margin - 10 - col_id_width) / table_width}
|
||||||
|
table_width = col_width.inject(0) {|s,v| s += v}
|
||||||
|
end
|
||||||
|
|
||||||
# title
|
# title
|
||||||
pdf.SetFontStyle('B',11)
|
pdf.SetFontStyle('B',11)
|
||||||
pdf.RDMCell(190,10, title)
|
pdf.RDMCell(190,10, title)
|
||||||
@@ -422,7 +434,7 @@ module Redmine
|
|||||||
if query.grouped? &&
|
if query.grouped? &&
|
||||||
(group = query.group_by_column.value(issue)) != previous_group
|
(group = query.group_by_column.value(issue)) != previous_group
|
||||||
pdf.SetFontStyle('B',10)
|
pdf.SetFontStyle('B',10)
|
||||||
group_label = group.blank? ? 'None' : group.to_s
|
group_label = group.blank? ? 'None' : group.to_s.dup
|
||||||
group_label << " (#{query.issue_count_by_group[group]})"
|
group_label << " (#{query.issue_count_by_group[group]})"
|
||||||
pdf.Bookmark group_label, 0, -1
|
pdf.Bookmark group_label, 0, -1
|
||||||
pdf.RDMCell(table_width + col_id_width, row_height * 2, group_label, 1, 1, 'L')
|
pdf.RDMCell(table_width + col_id_width, row_height * 2, group_label, 1, 1, 'L')
|
||||||
@@ -454,6 +466,13 @@ module Redmine
|
|||||||
issues_to_pdf_write_cells(pdf, col_values, col_width, row_height)
|
issues_to_pdf_write_cells(pdf, col_values, col_width, row_height)
|
||||||
issues_to_pdf_draw_borders(pdf, base_x, base_y, base_y + max_height, col_id_width, col_width)
|
issues_to_pdf_draw_borders(pdf, base_x, base_y, base_y + max_height, col_id_width, col_width)
|
||||||
pdf.SetY(base_y + max_height);
|
pdf.SetY(base_y + max_height);
|
||||||
|
|
||||||
|
if query.has_column?(:description) && issue.description?
|
||||||
|
pdf.SetX(10)
|
||||||
|
pdf.SetAutoPageBreak(true, 20)
|
||||||
|
pdf.RDMwriteHTMLCell(0, 5, 10, 0, issue.description.to_s, issue.attachments, "LRBT")
|
||||||
|
pdf.SetAutoPageBreak(false)
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
if issues.size == Setting.issues_export_limit.to_i
|
if issues.size == Setting.issues_export_limit.to_i
|
||||||
|
|||||||
@@ -4,13 +4,13 @@ module Redmine
|
|||||||
module VERSION #:nodoc:
|
module VERSION #:nodoc:
|
||||||
MAJOR = 2
|
MAJOR = 2
|
||||||
MINOR = 2
|
MINOR = 2
|
||||||
TINY = 0
|
TINY = 4
|
||||||
|
|
||||||
# Branch values:
|
# Branch values:
|
||||||
# * official release: nil
|
# * official release: nil
|
||||||
# * stable branch: stable
|
# * stable branch: stable
|
||||||
# * trunk: devel
|
# * trunk: devel
|
||||||
BRANCH = 'devel'
|
BRANCH = 'stable'
|
||||||
|
|
||||||
# Retrieves the revision from the working copy
|
# Retrieves the revision from the working copy
|
||||||
def self.revision
|
def self.revision
|
||||||
|
|||||||
@@ -147,10 +147,10 @@ module Redmine
|
|||||||
unless block_given?
|
unless block_given?
|
||||||
raise "Can not create a macro without a block!"
|
raise "Can not create a macro without a block!"
|
||||||
end
|
end
|
||||||
name = name.to_sym if name.is_a?(String)
|
name = name.to_s.downcase.to_sym
|
||||||
available_macros[name] = {:desc => @@desc || ''}.merge(options)
|
available_macros[name] = {:desc => @@desc || ''}.merge(options)
|
||||||
@@desc = nil
|
@@desc = nil
|
||||||
Definitions.send :define_method, "macro_#{name}".downcase, &block
|
Definitions.send :define_method, "macro_#{name}", &block
|
||||||
end
|
end
|
||||||
|
|
||||||
# Sets description for the next macro to be defined
|
# Sets description for the next macro to be defined
|
||||||
|
|||||||
@@ -69,7 +69,7 @@ module Redmine
|
|||||||
l = 1
|
l = 1
|
||||||
started = false
|
started = false
|
||||||
ended = false
|
ended = false
|
||||||
text.scan(/(((?:.*?)(\A|\r?\n\s*\r?\n))(h(\d+)(#{A}#{C})\.(?::(\S+))? (.*?)$)|.*)/m).each do |all, content, lf, heading, level|
|
text.scan(/(((?:.*?)(\A|\r?\n\s*\r?\n))(h(\d+)(#{A}#{C})\.(?::(\S+))?[ \t](.*?)$)|.*)/m).each do |all, content, lf, heading, level|
|
||||||
if heading.nil?
|
if heading.nil?
|
||||||
if ended
|
if ended
|
||||||
after << all
|
after << all
|
||||||
|
|||||||
@@ -13,6 +13,7 @@ namespace :ci do
|
|||||||
desc "Setup Redmine for a new build."
|
desc "Setup Redmine for a new build."
|
||||||
task :setup do
|
task :setup do
|
||||||
Rake::Task["ci:dump_environment"].invoke
|
Rake::Task["ci:dump_environment"].invoke
|
||||||
|
Rake::Task["tmp:clear"].invoke
|
||||||
Rake::Task["db:create"].invoke
|
Rake::Task["db:create"].invoke
|
||||||
Rake::Task["db:migrate"].invoke
|
Rake::Task["db:migrate"].invoke
|
||||||
Rake::Task["db:schema:dump"].invoke
|
Rake::Task["db:schema:dump"].invoke
|
||||||
|
|||||||
@@ -169,7 +169,7 @@ http://www.redmine.org, someone@foo.bar
|
|||||||
<h2><a name="5" class="wiki-page"></a>Text formatting</h2>
|
<h2><a name="5" class="wiki-page"></a>Text formatting</h2>
|
||||||
|
|
||||||
|
|
||||||
<p>For things such as headlines, bold, tables, lists, Redmine supports Textile syntax. See <a class="external" href="http://www.textism.com/tools/textile/">http://www.textism.com/tools/textile/</a> for information on using any of these features. A few samples are included below, but the engine is capable of much more of that.</p>
|
<p>For things such as headlines, bold, tables, lists, Redmine supports Textile syntax. See <a class="external" href="http://en.wikipedia.org/wiki/Textile_%28markup_language%29">http://en.wikipedia.org/wiki/Textile_(markup_language)</a> for information on using any of these features. A few samples are included below, but the engine is capable of much more of that.</p>
|
||||||
|
|
||||||
<h3><a name="6" class="wiki-page"></a>Font style</h3>
|
<h3><a name="6" class="wiki-page"></a>Font style</h3>
|
||||||
|
|
||||||
|
|||||||
@@ -11,6 +11,6 @@ jsToolBar.strings['Unordered list'] = 'Неподреден списък';
|
|||||||
jsToolBar.strings['Ordered list'] = 'Подреден списък';
|
jsToolBar.strings['Ordered list'] = 'Подреден списък';
|
||||||
jsToolBar.strings['Quote'] = 'Цитат';
|
jsToolBar.strings['Quote'] = 'Цитат';
|
||||||
jsToolBar.strings['Unquote'] = 'Премахване на цитат';
|
jsToolBar.strings['Unquote'] = 'Премахване на цитат';
|
||||||
jsToolBar.strings['Preformatted text'] = 'Preformatted text';
|
jsToolBar.strings['Preformatted text'] = 'Форматиран текст';
|
||||||
jsToolBar.strings['Wiki link'] = 'Връзка до Wiki страница';
|
jsToolBar.strings['Wiki link'] = 'Връзка до Wiki страница';
|
||||||
jsToolBar.strings['Image'] = 'Изображение';
|
jsToolBar.strings['Image'] = 'Изображение';
|
||||||
|
|||||||
@@ -25,7 +25,7 @@ h4 {border-bottom: 1px dotted #bbb;}
|
|||||||
|
|
||||||
#account {float:right;}
|
#account {float:right;}
|
||||||
|
|
||||||
#header {height:5.3em;margin:0;background-color:#628DB6;color:#f8f8f8; padding: 4px 8px 0px 6px; position:relative;}
|
#header {min-height:5.3em;margin:0;background-color:#628DB6;color:#f8f8f8; padding: 4px 8px 20px 6px; position:relative;}
|
||||||
#header a {color:#f8f8f8;}
|
#header a {color:#f8f8f8;}
|
||||||
#header h1 a.ancestor { font-size: 80%; }
|
#header h1 a.ancestor { font-size: 80%; }
|
||||||
#quick-search {float:right;}
|
#quick-search {float:right;}
|
||||||
@@ -149,6 +149,8 @@ tr.issue td.subject, tr.issue td.category, td.assigned_to, tr.issue td.string, t
|
|||||||
tr.issue td.subject, tr.issue td.relations { text-align: left; }
|
tr.issue td.subject, tr.issue td.relations { text-align: left; }
|
||||||
tr.issue td.done_ratio table.progress { margin-left:auto; margin-right: auto;}
|
tr.issue td.done_ratio table.progress { margin-left:auto; margin-right: auto;}
|
||||||
tr.issue td.relations span {white-space: nowrap;}
|
tr.issue td.relations span {white-space: nowrap;}
|
||||||
|
table.issues td.description {color:#777; font-size:90%; padding:4px 4px 4px 24px; text-align:left; white-space:normal;}
|
||||||
|
table.issues td.description pre {white-space:normal;}
|
||||||
|
|
||||||
tr.issue.idnt td.subject a {background: url(../images/bullet_arrow_right.png) no-repeat 0 50%; padding-left: 16px;}
|
tr.issue.idnt td.subject a {background: url(../images/bullet_arrow_right.png) no-repeat 0 50%; padding-left: 16px;}
|
||||||
tr.issue.idnt-1 td.subject {padding-left: 0.5em;}
|
tr.issue.idnt-1 td.subject {padding-left: 0.5em;}
|
||||||
|
|||||||
@@ -39,3 +39,4 @@ pulvinar dui, a gravida orci mi eget odio. Nunc a lacus.
|
|||||||
|
|
||||||
category: Stock management
|
category: Stock management
|
||||||
searchable field: Value for a custom field
|
searchable field: Value for a custom field
|
||||||
|
Database: postgresql
|
||||||
|
|||||||
+14
@@ -99,4 +99,18 @@ wiki_content_versions_006:
|
|||||||
version: 3
|
version: 3
|
||||||
author_id: 1
|
author_id: 1
|
||||||
comments:
|
comments:
|
||||||
|
wiki_content_versions_007:
|
||||||
|
data: |-
|
||||||
|
h1. Page with an inline image
|
||||||
|
|
||||||
|
This is an inline image:
|
||||||
|
|
||||||
|
!logo.gif!
|
||||||
|
updated_on: 2007-03-08 00:18:07 +01:00
|
||||||
|
page_id: 4
|
||||||
|
wiki_content_id: 4
|
||||||
|
id: 7
|
||||||
|
version: 1
|
||||||
|
author_id: 1
|
||||||
|
comments:
|
||||||
|
|
||||||
|
|||||||
@@ -37,7 +37,7 @@ class ActivitiesControllerTest < ActionController::TestCase
|
|||||||
end
|
end
|
||||||
|
|
||||||
def test_previous_project_index
|
def test_previous_project_index
|
||||||
get :index, :id => 1, :from => 3.days.ago.to_date
|
get :index, :id => 1, :from => 2.days.ago.to_date
|
||||||
assert_response :success
|
assert_response :success
|
||||||
assert_template 'index'
|
assert_template 'index'
|
||||||
assert_not_nil assigns(:events_by_day)
|
assert_not_nil assigns(:events_by_day)
|
||||||
|
|||||||
@@ -69,6 +69,21 @@ class BoardsControllerTest < ActionController::TestCase
|
|||||||
assert topics.first.updated_on < topics.second.updated_on
|
assert topics.first.updated_on < topics.second.updated_on
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def test_show_should_display_message_with_last_reply_first
|
||||||
|
Message.update_all(:sticky => 0)
|
||||||
|
|
||||||
|
# Reply to an old topic
|
||||||
|
old_topic = Message.where(:board_id => 1, :parent_id => nil).order('created_on ASC').first
|
||||||
|
reply = Message.new(:board_id => 1, :subject => 'New reply', :content => 'New reply', :author_id => 2)
|
||||||
|
old_topic.children << reply
|
||||||
|
|
||||||
|
get :show, :project_id => 1, :id => 1
|
||||||
|
assert_response :success
|
||||||
|
topics = assigns(:topics)
|
||||||
|
assert_not_nil topics
|
||||||
|
assert_equal old_topic, topics.first
|
||||||
|
end
|
||||||
|
|
||||||
def test_show_with_permission_should_display_the_new_message_form
|
def test_show_with_permission_should_display_the_new_message_form
|
||||||
@request.session[:user_id] = 2
|
@request.session[:user_id] = 2
|
||||||
get :show, :project_id => 1, :id => 1
|
get :show, :project_id => 1, :id => 1
|
||||||
|
|||||||
@@ -132,7 +132,7 @@ class ContextMenusControllerTest < ActionController::TestCase
|
|||||||
:attributes => {:href => "/issues/bulk_update?ids%5B%5D=1&issue%5Bcustom_field_values%5D%5B#{field.id}%5D=Foo"}
|
:attributes => {:href => "/issues/bulk_update?ids%5B%5D=1&issue%5Bcustom_field_values%5D%5B#{field.id}%5D=Foo"}
|
||||||
assert_tag 'a',
|
assert_tag 'a',
|
||||||
:content => 'none',
|
:content => 'none',
|
||||||
:attributes => {:href => "/issues/bulk_update?ids%5B%5D=1&issue%5Bcustom_field_values%5D%5B#{field.id}%5D="}
|
:attributes => {:href => "/issues/bulk_update?ids%5B%5D=1&issue%5Bcustom_field_values%5D%5B#{field.id}%5D=__none__"}
|
||||||
end
|
end
|
||||||
|
|
||||||
def test_context_menu_should_not_include_null_value_for_required_custom_fields
|
def test_context_menu_should_not_include_null_value_for_required_custom_fields
|
||||||
|
|||||||
@@ -422,7 +422,7 @@ class IssuesControllerTest < ActionController::TestCase
|
|||||||
assert_equal 'text/csv; header=present', @response.content_type
|
assert_equal 'text/csv; header=present', @response.content_type
|
||||||
assert @response.body.starts_with?("#,")
|
assert @response.body.starts_with?("#,")
|
||||||
lines = @response.body.chomp.split("\n")
|
lines = @response.body.chomp.split("\n")
|
||||||
assert_equal assigns(:query).available_columns.size + 1, lines[0].split(',').size
|
assert_equal assigns(:query).available_inline_columns.size + 1, lines[0].split(',').size
|
||||||
end
|
end
|
||||||
|
|
||||||
def test_index_csv_with_multi_column_field
|
def test_index_csv_with_multi_column_field
|
||||||
@@ -829,6 +829,17 @@ class IssuesControllerTest < ActionController::TestCase
|
|||||||
assert_equal 'application/pdf', response.content_type
|
assert_equal 'application/pdf', response.content_type
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def test_index_with_description_column
|
||||||
|
get :index, :set_filter => 1, :c => %w(subject description)
|
||||||
|
|
||||||
|
assert_select 'table.issues thead th', 3 # columns: chekbox + id + subject
|
||||||
|
assert_select 'td.description[colspan=3]', :text => 'Unable to print recipes'
|
||||||
|
|
||||||
|
get :index, :set_filter => 1, :c => %w(subject description), :format => 'pdf'
|
||||||
|
assert_response :success
|
||||||
|
assert_equal 'application/pdf', response.content_type
|
||||||
|
end
|
||||||
|
|
||||||
def test_index_send_html_if_query_is_invalid
|
def test_index_send_html_if_query_is_invalid
|
||||||
get :index, :f => ['start_date'], :op => {:start_date => '='}
|
get :index, :f => ['start_date'], :op => {:start_date => '='}
|
||||||
assert_equal 'text/html', @response.content_type
|
assert_equal 'text/html', @response.content_type
|
||||||
@@ -2345,6 +2356,9 @@ class IssuesControllerTest < ActionController::TestCase
|
|||||||
assert_tag 'select', :attributes => {:name => 'issue[project_id]'},
|
assert_tag 'select', :attributes => {:name => 'issue[project_id]'},
|
||||||
:child => {:tag => 'option', :attributes => {:value => '2', :selected => nil}, :content => 'OnlineStore'}
|
:child => {:tag => 'option', :attributes => {:value => '2', :selected => nil}, :content => 'OnlineStore'}
|
||||||
assert_tag 'input', :attributes => {:name => 'copy_from', :value => '1'}
|
assert_tag 'input', :attributes => {:name => 'copy_from', :value => '1'}
|
||||||
|
|
||||||
|
# "New issue" menu item should not link to copy
|
||||||
|
assert_select '#main-menu a.new-issue[href=/projects/ecookbook/issues/new]'
|
||||||
end
|
end
|
||||||
|
|
||||||
def test_new_as_copy_with_attachments_should_show_copy_attachments_checkbox
|
def test_new_as_copy_with_attachments_should_show_copy_attachments_checkbox
|
||||||
@@ -2900,6 +2914,20 @@ class IssuesControllerTest < ActionController::TestCase
|
|||||||
assert_equal spent_hours_before + 2.5, issue.spent_hours
|
assert_equal spent_hours_before + 2.5, issue.spent_hours
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def test_put_update_should_preserve_parent_issue_even_if_not_visible
|
||||||
|
parent = Issue.generate!(:project_id => 1, :is_private => true)
|
||||||
|
issue = Issue.generate!(:parent_issue_id => parent.id)
|
||||||
|
assert !parent.visible?(User.find(3))
|
||||||
|
@request.session[:user_id] = 3
|
||||||
|
|
||||||
|
get :edit, :id => issue.id
|
||||||
|
assert_select 'input[name=?][value=?]', 'issue[parent_issue_id]', parent.id.to_s
|
||||||
|
|
||||||
|
put :update, :id => issue.id, :issue => {:subject => 'New subject', :parent_issue_id => parent.id.to_s}
|
||||||
|
assert_response 302
|
||||||
|
assert_equal parent, issue.parent
|
||||||
|
end
|
||||||
|
|
||||||
def test_put_update_with_attachment_only
|
def test_put_update_with_attachment_only
|
||||||
set_tmp_attachments_directory
|
set_tmp_attachments_directory
|
||||||
|
|
||||||
|
|||||||
@@ -81,6 +81,11 @@ class MessagesControllerTest < ActionController::TestCase
|
|||||||
assert_response 404
|
assert_response 404
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def test_show_message_from_invalid_board_should_respond_with_404
|
||||||
|
get :show, :board_id => 999, :id => 1
|
||||||
|
assert_response 404
|
||||||
|
end
|
||||||
|
|
||||||
def test_get_new
|
def test_get_new
|
||||||
@request.session[:user_id] = 2
|
@request.session[:user_id] = 2
|
||||||
get :new, :board_id => 1
|
get :new, :board_id => 1
|
||||||
|
|||||||
@@ -187,6 +187,11 @@ class MyControllerTest < ActionController::TestCase
|
|||||||
assert User.find(2).pref[:my_page_layout]['top'].include?('issuesreportedbyme')
|
assert User.find(2).pref[:my_page_layout]['top'].include?('issuesreportedbyme')
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def test_add_invalid_block_should_redirect
|
||||||
|
post :add_block, :block => 'invalid'
|
||||||
|
assert_redirected_to '/my/page_layout'
|
||||||
|
end
|
||||||
|
|
||||||
def test_remove_block
|
def test_remove_block
|
||||||
post :remove_block, :block => 'issuesassignedtome'
|
post :remove_block, :block => 'issuesassignedtome'
|
||||||
assert_redirected_to '/my/page_layout'
|
assert_redirected_to '/my/page_layout'
|
||||||
|
|||||||
@@ -48,7 +48,7 @@ class PreviewsControllerTest < ActionController::TestCase
|
|||||||
|
|
||||||
def test_preview_journal_notes_for_update
|
def test_preview_journal_notes_for_update
|
||||||
@request.session[:user_id] = 2
|
@request.session[:user_id] = 2
|
||||||
post :issue, :project_id => '1', :id => 1, :issue => {:notes => 'Foo'}
|
post :issue, :project_id => '1', :id => 1, :notes => 'Foo'
|
||||||
assert_response :success
|
assert_response :success
|
||||||
assert_template 'preview'
|
assert_template 'preview'
|
||||||
assert_not_nil assigns(:notes)
|
assert_not_nil assigns(:notes)
|
||||||
|
|||||||
@@ -75,6 +75,19 @@ class WikiControllerTest < ActionController::TestCase
|
|||||||
assert_select 'a[href=?]', '/projects/ecookbook/wiki/CookBook_documentation', :text => /Current version/
|
assert_select 'a[href=?]', '/projects/ecookbook/wiki/CookBook_documentation', :text => /Current version/
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def test_show_old_version_with_attachments
|
||||||
|
page = WikiPage.find(4)
|
||||||
|
assert page.attachments.any?
|
||||||
|
content = page.content
|
||||||
|
content.text = "update"
|
||||||
|
content.save!
|
||||||
|
|
||||||
|
get :show, :project_id => 'ecookbook', :id => page.title, :version => '1'
|
||||||
|
assert_kind_of WikiContent::Version, assigns(:content)
|
||||||
|
assert_response :success
|
||||||
|
assert_template 'show'
|
||||||
|
end
|
||||||
|
|
||||||
def test_show_old_version_without_permission_should_be_denied
|
def test_show_old_version_without_permission_should_be_denied
|
||||||
Role.anonymous.remove_permission! :view_wiki_edits
|
Role.anonymous.remove_permission! :view_wiki_edits
|
||||||
|
|
||||||
|
|||||||
@@ -118,4 +118,16 @@ module ObjectHelpers
|
|||||||
board.save!
|
board.save!
|
||||||
board
|
board
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def Attachment.generate!(attributes={})
|
||||||
|
@generated_filename ||= 'testfile0'
|
||||||
|
@generated_filename.succ!
|
||||||
|
attributes = attributes.dup
|
||||||
|
attachment = Attachment.new(attributes)
|
||||||
|
attachment.container ||= Issue.find(1)
|
||||||
|
attachment.author ||= User.find(2)
|
||||||
|
attachment.filename = @generated_filename if attachment.filename.blank?
|
||||||
|
attachment.save!
|
||||||
|
attachment
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -218,4 +218,9 @@ class CustomFieldTest < ActiveSupport::TestCase
|
|||||||
assert_nil CustomField.new(:field_format => 'text').value_class
|
assert_nil CustomField.new(:field_format => 'text').value_class
|
||||||
assert_nil CustomField.new.value_class
|
assert_nil CustomField.new.value_class
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def test_value_from_keyword_for_list_custom_field
|
||||||
|
field = CustomField.find(1)
|
||||||
|
assert_equal 'PostgreSQL', field.value_from_keyword('postgresql', Issue.find(1))
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -347,6 +347,15 @@ RAW
|
|||||||
to_test.each { |text, result| assert_equal "<p>#{result}</p>", textilizable(text), "#{text} failed" }
|
to_test.each { |text, result| assert_equal "<p>#{result}</p>", textilizable(text), "#{text} failed" }
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def test_redmine_links_with_a_different_project_before_current_project
|
||||||
|
vp1 = Version.generate!(:project_id => 1, :name => '1.4.4')
|
||||||
|
vp3 = Version.generate!(:project_id => 3, :name => '1.4.4')
|
||||||
|
|
||||||
|
@project = Project.find(3)
|
||||||
|
assert_equal %(<p><a href="/versions/#{vp1.id}" class="version">1.4.4</a> <a href="/versions/#{vp3.id}" class="version">1.4.4</a></p>),
|
||||||
|
textilizable("ecookbook:version:1.4.4 version:1.4.4")
|
||||||
|
end
|
||||||
|
|
||||||
def test_escaped_redmine_links_should_not_be_parsed
|
def test_escaped_redmine_links_should_not_be_parsed
|
||||||
to_test = [
|
to_test = [
|
||||||
'#3.',
|
'#3.',
|
||||||
@@ -394,14 +403,14 @@ RAW
|
|||||||
end
|
end
|
||||||
|
|
||||||
def test_multiple_repositories_redmine_links
|
def test_multiple_repositories_redmine_links
|
||||||
svn = Repository::Subversion.create!(:project_id => 1, :identifier => 'svn1', :url => 'file:///foo/hg')
|
svn = Repository::Subversion.create!(:project_id => 1, :identifier => 'svn_repo-1', :url => 'file:///foo/hg')
|
||||||
Changeset.create!(:repository => svn, :committed_on => Time.now, :revision => '123')
|
Changeset.create!(:repository => svn, :committed_on => Time.now, :revision => '123')
|
||||||
hg = Repository::Mercurial.create!(:project_id => 1, :identifier => 'hg1', :url => '/foo/hg')
|
hg = Repository::Mercurial.create!(:project_id => 1, :identifier => 'hg1', :url => '/foo/hg')
|
||||||
Changeset.create!(:repository => hg, :committed_on => Time.now, :revision => '123', :scmid => 'abcd')
|
Changeset.create!(:repository => hg, :committed_on => Time.now, :revision => '123', :scmid => 'abcd')
|
||||||
|
|
||||||
changeset_link = link_to('r2', {:controller => 'repositories', :action => 'revision', :id => 'ecookbook', :rev => 2},
|
changeset_link = link_to('r2', {:controller => 'repositories', :action => 'revision', :id => 'ecookbook', :rev => 2},
|
||||||
:class => 'changeset', :title => 'This commit fixes #1, #2 and references #1 & #3')
|
:class => 'changeset', :title => 'This commit fixes #1, #2 and references #1 & #3')
|
||||||
svn_changeset_link = link_to('svn1|r123', {:controller => 'repositories', :action => 'revision', :id => 'ecookbook', :repository_id => 'svn1', :rev => 123},
|
svn_changeset_link = link_to('svn_repo-1|r123', {:controller => 'repositories', :action => 'revision', :id => 'ecookbook', :repository_id => 'svn_repo-1', :rev => 123},
|
||||||
:class => 'changeset', :title => '')
|
:class => 'changeset', :title => '')
|
||||||
hg_changeset_link = link_to('hg1|abcd', {:controller => 'repositories', :action => 'revision', :id => 'ecookbook', :repository_id => 'hg1', :rev => 'abcd'},
|
hg_changeset_link = link_to('hg1|abcd', {:controller => 'repositories', :action => 'revision', :id => 'ecookbook', :repository_id => 'hg1', :rev => 'abcd'},
|
||||||
:class => 'changeset', :title => '')
|
:class => 'changeset', :title => '')
|
||||||
@@ -411,7 +420,7 @@ RAW
|
|||||||
|
|
||||||
to_test = {
|
to_test = {
|
||||||
'r2' => changeset_link,
|
'r2' => changeset_link,
|
||||||
'svn1|r123' => svn_changeset_link,
|
'svn_repo-1|r123' => svn_changeset_link,
|
||||||
'invalid|r123' => 'invalid|r123',
|
'invalid|r123' => 'invalid|r123',
|
||||||
'commit:hg1|abcd' => hg_changeset_link,
|
'commit:hg1|abcd' => hg_changeset_link,
|
||||||
'commit:invalid|abcd' => 'commit:invalid|abcd',
|
'commit:invalid|abcd' => 'commit:invalid|abcd',
|
||||||
@@ -551,6 +560,15 @@ RAW
|
|||||||
to_test.each { |text, result| assert_equal "<p>#{result}</p>", textilizable(text, :attachments => Issue.find(3).attachments), "#{text} failed" }
|
to_test.each { |text, result| assert_equal "<p>#{result}</p>", textilizable(text, :attachments => Issue.find(3).attachments), "#{text} failed" }
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def test_attachment_link_should_link_to_latest_attachment
|
||||||
|
set_tmp_attachments_directory
|
||||||
|
a1 = Attachment.generate!(:filename => "test.txt", :created_on => 1.hour.ago)
|
||||||
|
a2 = Attachment.generate!(:filename => "test.txt")
|
||||||
|
|
||||||
|
assert_equal %(<p><a href="/attachments/download/#{a2.id}" class="attachment">test.txt</a></p>),
|
||||||
|
textilizable('attachment:test.txt', :attachments => [a1, a2])
|
||||||
|
end
|
||||||
|
|
||||||
def test_wiki_links
|
def test_wiki_links
|
||||||
to_test = {
|
to_test = {
|
||||||
'[[CookBook documentation]]' => '<a href="/projects/ecookbook/wiki/CookBook_documentation" class="wiki-page">CookBook documentation</a>',
|
'[[CookBook documentation]]' => '<a href="/projects/ecookbook/wiki/CookBook_documentation" class="wiki-page">CookBook documentation</a>',
|
||||||
|
|||||||
@@ -78,6 +78,12 @@ class Redmine::WikiFormatting::MacrosTest < ActionView::TestCase
|
|||||||
assert_equal "<p>Baz: (arg1,arg2) (String) (line1\nline2)</p>", textilizable("{{baz(arg1, arg2)\nline1\nline2\n}}")
|
assert_equal "<p>Baz: (arg1,arg2) (String) (line1\nline2)</p>", textilizable("{{baz(arg1, arg2)\nline1\nline2\n}}")
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def test_macro_name_with_upper_case
|
||||||
|
Redmine::WikiFormatting::Macros.macro(:UpperCase) {|obj, args| "Upper"}
|
||||||
|
|
||||||
|
assert_equal "<p>Upper</p>", textilizable("{{UpperCase}}")
|
||||||
|
end
|
||||||
|
|
||||||
def test_multiple_macros_on_the_same_line
|
def test_multiple_macros_on_the_same_line
|
||||||
Redmine::WikiFormatting::Macros.macro :foo do |obj, args|
|
Redmine::WikiFormatting::Macros.macro :foo do |obj, args|
|
||||||
args.any? ? "args: #{args.join(',')}" : "no args"
|
args.any? ? "args: #{args.join(',')}" : "no args"
|
||||||
|
|||||||
@@ -419,6 +419,20 @@ STR
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def test_get_section_should_support_headings_starting_with_a_tab
|
||||||
|
text = <<-STR
|
||||||
|
h1.\tHeading 1
|
||||||
|
|
||||||
|
Content 1
|
||||||
|
|
||||||
|
h1. Heading 2
|
||||||
|
|
||||||
|
Content 2
|
||||||
|
STR
|
||||||
|
|
||||||
|
assert_match /\Ah1.\tHeading 1\s+Content 1\z/, @formatter.new(text).get_section(1).first
|
||||||
|
end
|
||||||
|
|
||||||
private
|
private
|
||||||
|
|
||||||
def assert_html_output(to_test, expect_paragraph = true)
|
def assert_html_output(to_test, expect_paragraph = true)
|
||||||
|
|||||||
@@ -177,8 +177,8 @@ class MailHandlerTest < ActiveSupport::TestCase
|
|||||||
assert !issue.new_record?
|
assert !issue.new_record?
|
||||||
issue.reload
|
issue.reload
|
||||||
assert_equal 'New ticket with custom field values', issue.subject
|
assert_equal 'New ticket with custom field values', issue.subject
|
||||||
assert_equal 'Value for a custom field',
|
assert_equal 'PostgreSQL', issue.custom_field_value(1)
|
||||||
issue.custom_value_for(CustomField.find_by_name('Searchable field')).value
|
assert_equal 'Value for a custom field', issue.custom_field_value(2)
|
||||||
assert !issue.description.match(/^searchable field:/i)
|
assert !issue.description.match(/^searchable field:/i)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|||||||
+18
-1
@@ -737,7 +737,9 @@ class QueryTest < ActiveSupport::TestCase
|
|||||||
|
|
||||||
def test_default_columns
|
def test_default_columns
|
||||||
q = Query.new
|
q = Query.new
|
||||||
assert !q.columns.empty?
|
assert q.columns.any?
|
||||||
|
assert q.inline_columns.any?
|
||||||
|
assert q.block_columns.empty?
|
||||||
end
|
end
|
||||||
|
|
||||||
def test_set_column_names
|
def test_set_column_names
|
||||||
@@ -748,6 +750,21 @@ class QueryTest < ActiveSupport::TestCase
|
|||||||
assert q.has_column?(c)
|
assert q.has_column?(c)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def test_inline_and_block_columns
|
||||||
|
q = Query.new
|
||||||
|
q.column_names = ['subject', 'description', 'tracker']
|
||||||
|
|
||||||
|
assert_equal [:subject, :tracker], q.inline_columns.map(&:name)
|
||||||
|
assert_equal [:description], q.block_columns.map(&:name)
|
||||||
|
end
|
||||||
|
|
||||||
|
def test_custom_field_columns_should_be_inline
|
||||||
|
q = Query.new
|
||||||
|
columns = q.available_columns.select {|column| column.is_a? QueryCustomFieldColumn}
|
||||||
|
assert columns.any?
|
||||||
|
assert_nil columns.detect {|column| !column.inline?}
|
||||||
|
end
|
||||||
|
|
||||||
def test_query_should_preload_spent_hours
|
def test_query_should_preload_spent_hours
|
||||||
q = Query.new(:name => '_', :column_names => [:subject, :spent_hours])
|
q = Query.new(:name => '_', :column_names => [:subject, :spent_hours])
|
||||||
assert q.has_column?(:spent_hours)
|
assert q.has_column?(:spent_hours)
|
||||||
|
|||||||
Reference in New Issue
Block a user