@@ -0,0 +1,1 | |||
|
1 | <p class="nodata"><%= l(:label_no_preview) %></p> |
@@ -1,442 +1,444 | |||
|
1 | 1 | # Redmine - project management software |
|
2 | 2 | # Copyright (C) 2006-2016 Jean-Philippe Lang |
|
3 | 3 | # |
|
4 | 4 | # This program is free software; you can redistribute it and/or |
|
5 | 5 | # modify it under the terms of the GNU General Public License |
|
6 | 6 | # as published by the Free Software Foundation; either version 2 |
|
7 | 7 | # of the License, or (at your option) any later version. |
|
8 | 8 | # |
|
9 | 9 | # This program is distributed in the hope that it will be useful, |
|
10 | 10 | # but WITHOUT ANY WARRANTY; without even the implied warranty of |
|
11 | 11 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
|
12 | 12 | # GNU General Public License for more details. |
|
13 | 13 | # |
|
14 | 14 | # You should have received a copy of the GNU General Public License |
|
15 | 15 | # along with this program; if not, write to the Free Software |
|
16 | 16 | # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. |
|
17 | 17 | |
|
18 | 18 | require 'SVG/Graph/Bar' |
|
19 | 19 | require 'SVG/Graph/BarHorizontal' |
|
20 | 20 | require 'digest/sha1' |
|
21 | 21 | require 'redmine/scm/adapters' |
|
22 | 22 | |
|
23 | 23 | class ChangesetNotFound < Exception; end |
|
24 | 24 | class InvalidRevisionParam < Exception; end |
|
25 | 25 | |
|
26 | 26 | class RepositoriesController < ApplicationController |
|
27 | 27 | menu_item :repository |
|
28 | 28 | menu_item :settings, :only => [:new, :create, :edit, :update, :destroy, :committers] |
|
29 | 29 | default_search_scope :changesets |
|
30 | 30 | |
|
31 | 31 | before_filter :find_project_by_project_id, :only => [:new, :create] |
|
32 | 32 | before_filter :find_repository, :only => [:edit, :update, :destroy, :committers] |
|
33 | 33 | before_filter :find_project_repository, :except => [:new, :create, :edit, :update, :destroy, :committers] |
|
34 | 34 | before_filter :find_changeset, :only => [:revision, :add_related_issue, :remove_related_issue] |
|
35 | 35 | before_filter :authorize |
|
36 | 36 | accept_rss_auth :revisions |
|
37 | 37 | |
|
38 | 38 | rescue_from Redmine::Scm::Adapters::CommandFailed, :with => :show_error_command_failed |
|
39 | 39 | |
|
40 | 40 | def new |
|
41 | 41 | scm = params[:repository_scm] || (Redmine::Scm::Base.all & Setting.enabled_scm).first |
|
42 | 42 | @repository = Repository.factory(scm) |
|
43 | 43 | @repository.is_default = @project.repository.nil? |
|
44 | 44 | @repository.project = @project |
|
45 | 45 | end |
|
46 | 46 | |
|
47 | 47 | def create |
|
48 | 48 | attrs = pickup_extra_info |
|
49 | 49 | @repository = Repository.factory(params[:repository_scm]) |
|
50 | 50 | @repository.safe_attributes = params[:repository] |
|
51 | 51 | if attrs[:attrs_extra].keys.any? |
|
52 | 52 | @repository.merge_extra_info(attrs[:attrs_extra]) |
|
53 | 53 | end |
|
54 | 54 | @repository.project = @project |
|
55 | 55 | if request.post? && @repository.save |
|
56 | 56 | redirect_to settings_project_path(@project, :tab => 'repositories') |
|
57 | 57 | else |
|
58 | 58 | render :action => 'new' |
|
59 | 59 | end |
|
60 | 60 | end |
|
61 | 61 | |
|
62 | 62 | def edit |
|
63 | 63 | end |
|
64 | 64 | |
|
65 | 65 | def update |
|
66 | 66 | attrs = pickup_extra_info |
|
67 | 67 | @repository.safe_attributes = attrs[:attrs] |
|
68 | 68 | if attrs[:attrs_extra].keys.any? |
|
69 | 69 | @repository.merge_extra_info(attrs[:attrs_extra]) |
|
70 | 70 | end |
|
71 | 71 | @repository.project = @project |
|
72 | 72 | if @repository.save |
|
73 | 73 | redirect_to settings_project_path(@project, :tab => 'repositories') |
|
74 | 74 | else |
|
75 | 75 | render :action => 'edit' |
|
76 | 76 | end |
|
77 | 77 | end |
|
78 | 78 | |
|
79 | 79 | def pickup_extra_info |
|
80 | 80 | p = {} |
|
81 | 81 | p_extra = {} |
|
82 | 82 | params[:repository].each do |k, v| |
|
83 | 83 | if k =~ /^extra_/ |
|
84 | 84 | p_extra[k] = v |
|
85 | 85 | else |
|
86 | 86 | p[k] = v |
|
87 | 87 | end |
|
88 | 88 | end |
|
89 | 89 | {:attrs => p, :attrs_extra => p_extra} |
|
90 | 90 | end |
|
91 | 91 | private :pickup_extra_info |
|
92 | 92 | |
|
93 | 93 | def committers |
|
94 | 94 | @committers = @repository.committers |
|
95 | 95 | @users = @project.users.to_a |
|
96 | 96 | additional_user_ids = @committers.collect(&:last).collect(&:to_i) - @users.collect(&:id) |
|
97 | 97 | @users += User.where(:id => additional_user_ids).to_a unless additional_user_ids.empty? |
|
98 | 98 | @users.compact! |
|
99 | 99 | @users.sort! |
|
100 | 100 | if request.post? && params[:committers].is_a?(Hash) |
|
101 | 101 | # Build a hash with repository usernames as keys and corresponding user ids as values |
|
102 | 102 | @repository.committer_ids = params[:committers].values.inject({}) {|h, c| h[c.first] = c.last; h} |
|
103 | 103 | flash[:notice] = l(:notice_successful_update) |
|
104 | 104 | redirect_to settings_project_path(@project, :tab => 'repositories') |
|
105 | 105 | end |
|
106 | 106 | end |
|
107 | 107 | |
|
108 | 108 | def destroy |
|
109 | 109 | @repository.destroy if request.delete? |
|
110 | 110 | redirect_to settings_project_path(@project, :tab => 'repositories') |
|
111 | 111 | end |
|
112 | 112 | |
|
113 | 113 | def show |
|
114 | 114 | @repository.fetch_changesets if @project.active? && Setting.autofetch_changesets? && @path.empty? |
|
115 | 115 | |
|
116 | 116 | @entries = @repository.entries(@path, @rev) |
|
117 | 117 | @changeset = @repository.find_changeset_by_name(@rev) |
|
118 | 118 | if request.xhr? |
|
119 | 119 | @entries ? render(:partial => 'dir_list_content') : render(:nothing => true) |
|
120 | 120 | else |
|
121 | 121 | (show_error_not_found; return) unless @entries |
|
122 | 122 | @changesets = @repository.latest_changesets(@path, @rev) |
|
123 | 123 | @properties = @repository.properties(@path, @rev) |
|
124 | 124 | @repositories = @project.repositories |
|
125 | 125 | render :action => 'show' |
|
126 | 126 | end |
|
127 | 127 | end |
|
128 | 128 | |
|
129 | 129 | alias_method :browse, :show |
|
130 | 130 | |
|
131 | 131 | def changes |
|
132 | 132 | @entry = @repository.entry(@path, @rev) |
|
133 | 133 | (show_error_not_found; return) unless @entry |
|
134 | 134 | @changesets = @repository.latest_changesets(@path, @rev, Setting.repository_log_display_limit.to_i) |
|
135 | 135 | @properties = @repository.properties(@path, @rev) |
|
136 | 136 | @changeset = @repository.find_changeset_by_name(@rev) |
|
137 | 137 | end |
|
138 | 138 | |
|
139 | 139 | def revisions |
|
140 | 140 | @changeset_count = @repository.changesets.count |
|
141 | 141 | @changeset_pages = Paginator.new @changeset_count, |
|
142 | 142 | per_page_option, |
|
143 | 143 | params['page'] |
|
144 | 144 | @changesets = @repository.changesets. |
|
145 | 145 | limit(@changeset_pages.per_page). |
|
146 | 146 | offset(@changeset_pages.offset). |
|
147 | 147 | includes(:user, :repository, :parents). |
|
148 | 148 | to_a |
|
149 | 149 | |
|
150 | 150 | respond_to do |format| |
|
151 | 151 | format.html { render :layout => false if request.xhr? } |
|
152 | 152 | format.atom { render_feed(@changesets, :title => "#{@project.name}: #{l(:label_revision_plural)}") } |
|
153 | 153 | end |
|
154 | 154 | end |
|
155 | 155 | |
|
156 | 156 | def raw |
|
157 | 157 | entry_and_raw(true) |
|
158 | 158 | end |
|
159 | 159 | |
|
160 | 160 | def entry |
|
161 | 161 | entry_and_raw(false) |
|
162 | 162 | end |
|
163 | 163 | |
|
164 | 164 | def entry_and_raw(is_raw) |
|
165 | 165 | @entry = @repository.entry(@path, @rev) |
|
166 | 166 | (show_error_not_found; return) unless @entry |
|
167 | 167 | |
|
168 | 168 | # If the entry is a dir, show the browser |
|
169 | 169 | (show; return) if @entry.is_dir? |
|
170 | 170 | |
|
171 | @content = @repository.cat(@path, @rev) | |
|
172 | (show_error_not_found; return) unless @content | |
|
173 | if !is_raw && Redmine::MimeType.is_type?('image', @path) | |
|
174 | # simply render | |
|
175 | elsif is_raw || | |
|
176 | (@content.size && @content.size > Setting.file_max_size_displayed.to_i.kilobyte) || | |
|
177 | ! is_entry_text_data?(@content, @path) | |
|
171 | if is_raw | |
|
178 | 172 | # Force the download |
|
179 | 173 | send_opt = { :filename => filename_for_content_disposition(@path.split('/').last) } |
|
180 | 174 | send_type = Redmine::MimeType.of(@path) |
|
181 | 175 | send_opt[:type] = send_type.to_s if send_type |
|
182 |
send_opt[:disposition] = (Redmine::MimeType.is_type?('image', @path) |
|
|
183 |
send_data @ |
|
|
176 | send_opt[:disposition] = (Redmine::MimeType.is_type?('image', @path) ? 'inline' : 'attachment') | |
|
177 | send_data @repository.cat(@path, @rev), send_opt | |
|
184 | 178 | else |
|
185 | # Prevent empty lines when displaying a file with Windows style eol | |
|
186 | # TODO: UTF-16 | |
|
187 | # Is this needs? AttachmentsController reads file simply. | |
|
188 | @content.gsub!("\r\n", "\n") | |
|
179 | if !@entry.size || @entry.size <= Setting.file_max_size_displayed.to_i.kilobyte | |
|
180 | content = @repository.cat(@path, @rev) | |
|
181 | (show_error_not_found; return) unless content | |
|
182 | ||
|
183 | if content.size <= Setting.file_max_size_displayed.to_i.kilobyte && | |
|
184 | is_entry_text_data?(content, @path) | |
|
185 | # TODO: UTF-16 | |
|
186 | # Prevent empty lines when displaying a file with Windows style eol | |
|
187 | # Is this needed? AttachmentsController simply reads file. | |
|
188 | @content = content.gsub("\r\n", "\n") | |
|
189 | end | |
|
190 | end | |
|
189 | 191 | @changeset = @repository.find_changeset_by_name(@rev) |
|
190 | 192 | end |
|
191 | 193 | end |
|
192 | 194 | private :entry_and_raw |
|
193 | 195 | |
|
194 | 196 | def is_entry_text_data?(ent, path) |
|
195 | 197 | # UTF-16 contains "\x00". |
|
196 | 198 | # It is very strict that file contains less than 30% of ascii symbols |
|
197 | 199 | # in non Western Europe. |
|
198 | 200 | return true if Redmine::MimeType.is_type?('text', path) |
|
199 | 201 | # Ruby 1.8.6 has a bug of integer divisions. |
|
200 | 202 | # http://apidock.com/ruby/v1_8_6_287/String/is_binary_data%3F |
|
201 | 203 | return false if ent.is_binary_data? |
|
202 | 204 | true |
|
203 | 205 | end |
|
204 | 206 | private :is_entry_text_data? |
|
205 | 207 | |
|
206 | 208 | def annotate |
|
207 | 209 | @entry = @repository.entry(@path, @rev) |
|
208 | 210 | (show_error_not_found; return) unless @entry |
|
209 | 211 | |
|
210 | 212 | @annotate = @repository.scm.annotate(@path, @rev) |
|
211 | 213 | if @annotate.nil? || @annotate.empty? |
|
212 | 214 | (render_error l(:error_scm_annotate); return) |
|
213 | 215 | end |
|
214 | 216 | ann_buf_size = 0 |
|
215 | 217 | @annotate.lines.each do |buf| |
|
216 | 218 | ann_buf_size += buf.size |
|
217 | 219 | end |
|
218 | 220 | if ann_buf_size > Setting.file_max_size_displayed.to_i.kilobyte |
|
219 | 221 | (render_error l(:error_scm_annotate_big_text_file); return) |
|
220 | 222 | end |
|
221 | 223 | @changeset = @repository.find_changeset_by_name(@rev) |
|
222 | 224 | end |
|
223 | 225 | |
|
224 | 226 | def revision |
|
225 | 227 | respond_to do |format| |
|
226 | 228 | format.html |
|
227 | 229 | format.js {render :layout => false} |
|
228 | 230 | end |
|
229 | 231 | end |
|
230 | 232 | |
|
231 | 233 | # Adds a related issue to a changeset |
|
232 | 234 | # POST /projects/:project_id/repository/(:repository_id/)revisions/:rev/issues |
|
233 | 235 | def add_related_issue |
|
234 | 236 | issue_id = params[:issue_id].to_s.sub(/^#/,'') |
|
235 | 237 | @issue = @changeset.find_referenced_issue_by_id(issue_id) |
|
236 | 238 | if @issue && (!@issue.visible? || @changeset.issues.include?(@issue)) |
|
237 | 239 | @issue = nil |
|
238 | 240 | end |
|
239 | 241 | |
|
240 | 242 | if @issue |
|
241 | 243 | @changeset.issues << @issue |
|
242 | 244 | end |
|
243 | 245 | end |
|
244 | 246 | |
|
245 | 247 | # Removes a related issue from a changeset |
|
246 | 248 | # DELETE /projects/:project_id/repository/(:repository_id/)revisions/:rev/issues/:issue_id |
|
247 | 249 | def remove_related_issue |
|
248 | 250 | @issue = Issue.visible.find_by_id(params[:issue_id]) |
|
249 | 251 | if @issue |
|
250 | 252 | @changeset.issues.delete(@issue) |
|
251 | 253 | end |
|
252 | 254 | end |
|
253 | 255 | |
|
254 | 256 | def diff |
|
255 | 257 | if params[:format] == 'diff' |
|
256 | 258 | @diff = @repository.diff(@path, @rev, @rev_to) |
|
257 | 259 | (show_error_not_found; return) unless @diff |
|
258 | 260 | filename = "changeset_r#{@rev}" |
|
259 | 261 | filename << "_r#{@rev_to}" if @rev_to |
|
260 | 262 | send_data @diff.join, :filename => "#{filename}.diff", |
|
261 | 263 | :type => 'text/x-patch', |
|
262 | 264 | :disposition => 'attachment' |
|
263 | 265 | else |
|
264 | 266 | @diff_type = params[:type] || User.current.pref[:diff_type] || 'inline' |
|
265 | 267 | @diff_type = 'inline' unless %w(inline sbs).include?(@diff_type) |
|
266 | 268 | |
|
267 | 269 | # Save diff type as user preference |
|
268 | 270 | if User.current.logged? && @diff_type != User.current.pref[:diff_type] |
|
269 | 271 | User.current.pref[:diff_type] = @diff_type |
|
270 | 272 | User.current.preference.save |
|
271 | 273 | end |
|
272 | 274 | @cache_key = "repositories/diff/#{@repository.id}/" + |
|
273 | 275 | Digest::MD5.hexdigest("#{@path}-#{@rev}-#{@rev_to}-#{@diff_type}-#{current_language}") |
|
274 | 276 | unless read_fragment(@cache_key) |
|
275 | 277 | @diff = @repository.diff(@path, @rev, @rev_to) |
|
276 | 278 | show_error_not_found unless @diff |
|
277 | 279 | end |
|
278 | 280 | |
|
279 | 281 | @changeset = @repository.find_changeset_by_name(@rev) |
|
280 | 282 | @changeset_to = @rev_to ? @repository.find_changeset_by_name(@rev_to) : nil |
|
281 | 283 | @diff_format_revisions = @repository.diff_format_revisions(@changeset, @changeset_to) |
|
282 | 284 | end |
|
283 | 285 | end |
|
284 | 286 | |
|
285 | 287 | def stats |
|
286 | 288 | end |
|
287 | 289 | |
|
288 | 290 | def graph |
|
289 | 291 | data = nil |
|
290 | 292 | case params[:graph] |
|
291 | 293 | when "commits_per_month" |
|
292 | 294 | data = graph_commits_per_month(@repository) |
|
293 | 295 | when "commits_per_author" |
|
294 | 296 | data = graph_commits_per_author(@repository) |
|
295 | 297 | end |
|
296 | 298 | if data |
|
297 | 299 | headers["Content-Type"] = "image/svg+xml" |
|
298 | 300 | send_data(data, :type => "image/svg+xml", :disposition => "inline") |
|
299 | 301 | else |
|
300 | 302 | render_404 |
|
301 | 303 | end |
|
302 | 304 | end |
|
303 | 305 | |
|
304 | 306 | private |
|
305 | 307 | |
|
306 | 308 | def find_repository |
|
307 | 309 | @repository = Repository.find(params[:id]) |
|
308 | 310 | @project = @repository.project |
|
309 | 311 | rescue ActiveRecord::RecordNotFound |
|
310 | 312 | render_404 |
|
311 | 313 | end |
|
312 | 314 | |
|
313 | 315 | REV_PARAM_RE = %r{\A[a-f0-9]*\Z}i |
|
314 | 316 | |
|
315 | 317 | def find_project_repository |
|
316 | 318 | @project = Project.find(params[:id]) |
|
317 | 319 | if params[:repository_id].present? |
|
318 | 320 | @repository = @project.repositories.find_by_identifier_param(params[:repository_id]) |
|
319 | 321 | else |
|
320 | 322 | @repository = @project.repository |
|
321 | 323 | end |
|
322 | 324 | (render_404; return false) unless @repository |
|
323 | 325 | @path = params[:path].is_a?(Array) ? params[:path].join('/') : params[:path].to_s |
|
324 | 326 | @rev = params[:rev].blank? ? @repository.default_branch : params[:rev].to_s.strip |
|
325 | 327 | @rev_to = params[:rev_to] |
|
326 | 328 | |
|
327 | 329 | unless @rev.to_s.match(REV_PARAM_RE) && @rev_to.to_s.match(REV_PARAM_RE) |
|
328 | 330 | if @repository.branches.blank? |
|
329 | 331 | raise InvalidRevisionParam |
|
330 | 332 | end |
|
331 | 333 | end |
|
332 | 334 | rescue ActiveRecord::RecordNotFound |
|
333 | 335 | render_404 |
|
334 | 336 | rescue InvalidRevisionParam |
|
335 | 337 | show_error_not_found |
|
336 | 338 | end |
|
337 | 339 | |
|
338 | 340 | def find_changeset |
|
339 | 341 | if @rev.present? |
|
340 | 342 | @changeset = @repository.find_changeset_by_name(@rev) |
|
341 | 343 | end |
|
342 | 344 | show_error_not_found unless @changeset |
|
343 | 345 | end |
|
344 | 346 | |
|
345 | 347 | def show_error_not_found |
|
346 | 348 | render_error :message => l(:error_scm_not_found), :status => 404 |
|
347 | 349 | end |
|
348 | 350 | |
|
349 | 351 | # Handler for Redmine::Scm::Adapters::CommandFailed exception |
|
350 | 352 | def show_error_command_failed(exception) |
|
351 | 353 | render_error l(:error_scm_command_failed, exception.message) |
|
352 | 354 | end |
|
353 | 355 | |
|
354 | 356 | def graph_commits_per_month(repository) |
|
355 | 357 | @date_to = User.current.today |
|
356 | 358 | @date_from = @date_to << 11 |
|
357 | 359 | @date_from = Date.civil(@date_from.year, @date_from.month, 1) |
|
358 | 360 | commits_by_day = Changeset. |
|
359 | 361 | where("repository_id = ? AND commit_date BETWEEN ? AND ?", repository.id, @date_from, @date_to). |
|
360 | 362 | group(:commit_date). |
|
361 | 363 | count |
|
362 | 364 | commits_by_month = [0] * 12 |
|
363 | 365 | commits_by_day.each {|c| commits_by_month[(@date_to.month - c.first.to_date.month) % 12] += c.last } |
|
364 | 366 | |
|
365 | 367 | changes_by_day = Change. |
|
366 | 368 | joins(:changeset). |
|
367 | 369 | where("#{Changeset.table_name}.repository_id = ? AND #{Changeset.table_name}.commit_date BETWEEN ? AND ?", repository.id, @date_from, @date_to). |
|
368 | 370 | group(:commit_date). |
|
369 | 371 | count |
|
370 | 372 | changes_by_month = [0] * 12 |
|
371 | 373 | changes_by_day.each {|c| changes_by_month[(@date_to.month - c.first.to_date.month) % 12] += c.last } |
|
372 | 374 | |
|
373 | 375 | fields = [] |
|
374 | 376 | today = User.current.today |
|
375 | 377 | 12.times {|m| fields << month_name(((today.month - 1 - m) % 12) + 1)} |
|
376 | 378 | |
|
377 | 379 | graph = SVG::Graph::Bar.new( |
|
378 | 380 | :height => 300, |
|
379 | 381 | :width => 800, |
|
380 | 382 | :fields => fields.reverse, |
|
381 | 383 | :stack => :side, |
|
382 | 384 | :scale_integers => true, |
|
383 | 385 | :step_x_labels => 2, |
|
384 | 386 | :show_data_values => false, |
|
385 | 387 | :graph_title => l(:label_commits_per_month), |
|
386 | 388 | :show_graph_title => true |
|
387 | 389 | ) |
|
388 | 390 | |
|
389 | 391 | graph.add_data( |
|
390 | 392 | :data => commits_by_month[0..11].reverse, |
|
391 | 393 | :title => l(:label_revision_plural) |
|
392 | 394 | ) |
|
393 | 395 | |
|
394 | 396 | graph.add_data( |
|
395 | 397 | :data => changes_by_month[0..11].reverse, |
|
396 | 398 | :title => l(:label_change_plural) |
|
397 | 399 | ) |
|
398 | 400 | |
|
399 | 401 | graph.burn |
|
400 | 402 | end |
|
401 | 403 | |
|
402 | 404 | def graph_commits_per_author(repository) |
|
403 | 405 | #data |
|
404 | 406 | stats = repository.stats_by_author |
|
405 | 407 | fields, commits_data, changes_data = [], [], [] |
|
406 | 408 | stats.each do |name, hsh| |
|
407 | 409 | fields << name |
|
408 | 410 | commits_data << hsh[:commits_count] |
|
409 | 411 | changes_data << hsh[:changes_count] |
|
410 | 412 | end |
|
411 | 413 | |
|
412 | 414 | #expand to 10 values if needed |
|
413 | 415 | fields = fields + [""]*(10 - fields.length) if fields.length<10 |
|
414 | 416 | commits_data = commits_data + [0]*(10 - commits_data.length) if commits_data.length<10 |
|
415 | 417 | changes_data = changes_data + [0]*(10 - changes_data.length) if changes_data.length<10 |
|
416 | 418 | |
|
417 | 419 | # Remove email address in usernames |
|
418 | 420 | fields = fields.collect {|c| c.gsub(%r{<.+@.+>}, '') } |
|
419 | 421 | |
|
420 | 422 | #prepare graph |
|
421 | 423 | graph = SVG::Graph::BarHorizontal.new( |
|
422 | 424 | :height => 30 * commits_data.length, |
|
423 | 425 | :width => 800, |
|
424 | 426 | :fields => fields, |
|
425 | 427 | :stack => :side, |
|
426 | 428 | :scale_integers => true, |
|
427 | 429 | :show_data_values => false, |
|
428 | 430 | :rotate_y_labels => false, |
|
429 | 431 | :graph_title => l(:label_commits_per_author), |
|
430 | 432 | :show_graph_title => true |
|
431 | 433 | ) |
|
432 | 434 | graph.add_data( |
|
433 | 435 | :data => commits_data, |
|
434 | 436 | :title => l(:label_revision_plural) |
|
435 | 437 | ) |
|
436 | 438 | graph.add_data( |
|
437 | 439 | :data => changes_data, |
|
438 | 440 | :title => l(:label_change_plural) |
|
439 | 441 | ) |
|
440 | 442 | graph.burn |
|
441 | 443 | end |
|
442 | 444 | end |
@@ -1,19 +1,21 | |||
|
1 | 1 | <%= call_hook(:view_repositories_show_contextual, { :repository => @repository, :project => @project }) %> |
|
2 | 2 | |
|
3 | 3 | <div class="contextual"> |
|
4 | 4 | <%= render :partial => 'navigation' %> |
|
5 | 5 | </div> |
|
6 | 6 | |
|
7 | 7 | <h2><%= render :partial => 'breadcrumbs', :locals => { :path => @path, :kind => 'file', :revision => @rev } %></h2> |
|
8 | 8 | |
|
9 | 9 | <%= render :partial => 'link_to_functions' %> |
|
10 | 10 | |
|
11 | 11 | <% if Redmine::MimeType.is_type?('image', @path) %> |
|
12 | 12 | <%= render :partial => 'common/image', :locals => {:path => url_for(params.merge(:action => 'raw')), :alt => @path} %> |
|
13 | <% else %> | |
|
13 | <% elsif @content %> | |
|
14 | 14 | <%= render :partial => 'common/file', :locals => {:filename => @path, :content => @content} %> |
|
15 | <% else %> | |
|
16 | <%= render :partial => 'common/other' %> | |
|
15 | 17 | <% end %> |
|
16 | 18 | |
|
17 | 19 | <% content_for :header_tags do %> |
|
18 | 20 | <%= stylesheet_link_tag "scm" %> |
|
19 | 21 | <% end %> |
@@ -1,1204 +1,1205 | |||
|
1 | 1 | # German translations for Ruby on Rails |
|
2 | 2 | # by Clemens Kofler (clemens@railway.at) |
|
3 | 3 | # additions for Redmine 1.2 by Jens Martsch (jmartsch@gmail.com) |
|
4 | 4 | |
|
5 | 5 | de: |
|
6 | 6 | direction: ltr |
|
7 | 7 | date: |
|
8 | 8 | formats: |
|
9 | 9 | # Use the strftime parameters for formats. |
|
10 | 10 | # When no format has been given, it uses default. |
|
11 | 11 | # You can provide other formats here if you like! |
|
12 | 12 | default: "%d.%m.%Y" |
|
13 | 13 | short: "%e. %b" |
|
14 | 14 | long: "%e. %B %Y" |
|
15 | 15 | |
|
16 | 16 | day_names: [Sonntag, Montag, Dienstag, Mittwoch, Donnerstag, Freitag, Samstag] |
|
17 | 17 | abbr_day_names: [So, Mo, Di, Mi, Do, Fr, Sa] |
|
18 | 18 | |
|
19 | 19 | # Don't forget the nil at the beginning; there's no such thing as a 0th month |
|
20 | 20 | month_names: [~, Januar, Februar, März, April, Mai, Juni, Juli, August, September, Oktober, November, Dezember] |
|
21 | 21 | abbr_month_names: [~, Jan, Feb, Mär, Apr, Mai, Jun, Jul, Aug, Sep, Okt, Nov, Dez] |
|
22 | 22 | # Used in date_select and datime_select. |
|
23 | 23 | order: |
|
24 | 24 | - :day |
|
25 | 25 | - :month |
|
26 | 26 | - :year |
|
27 | 27 | |
|
28 | 28 | time: |
|
29 | 29 | formats: |
|
30 | 30 | default: "%d.%m.%Y %H:%M" |
|
31 | 31 | time: "%H:%M" |
|
32 | 32 | short: "%e. %b %H:%M" |
|
33 | 33 | long: "%A, %e. %B %Y, %H:%M Uhr" |
|
34 | 34 | am: "vormittags" |
|
35 | 35 | pm: "nachmittags" |
|
36 | 36 | |
|
37 | 37 | datetime: |
|
38 | 38 | distance_in_words: |
|
39 | 39 | half_a_minute: 'eine halbe Minute' |
|
40 | 40 | less_than_x_seconds: |
|
41 | 41 | one: 'weniger als 1 Sekunde' |
|
42 | 42 | other: 'weniger als %{count} Sekunden' |
|
43 | 43 | x_seconds: |
|
44 | 44 | one: '1 Sekunde' |
|
45 | 45 | other: '%{count} Sekunden' |
|
46 | 46 | less_than_x_minutes: |
|
47 | 47 | one: 'weniger als 1 Minute' |
|
48 | 48 | other: 'weniger als %{count} Minuten' |
|
49 | 49 | x_minutes: |
|
50 | 50 | one: '1 Minute' |
|
51 | 51 | other: '%{count} Minuten' |
|
52 | 52 | about_x_hours: |
|
53 | 53 | one: 'etwa 1 Stunde' |
|
54 | 54 | other: 'etwa %{count} Stunden' |
|
55 | 55 | x_hours: |
|
56 | 56 | one: "1 Stunde" |
|
57 | 57 | other: "%{count} Stunden" |
|
58 | 58 | x_days: |
|
59 | 59 | one: '1 Tag' |
|
60 | 60 | other: '%{count} Tagen' |
|
61 | 61 | about_x_months: |
|
62 | 62 | one: 'etwa 1 Monat' |
|
63 | 63 | other: 'etwa %{count} Monaten' |
|
64 | 64 | x_months: |
|
65 | 65 | one: '1 Monat' |
|
66 | 66 | other: '%{count} Monaten' |
|
67 | 67 | about_x_years: |
|
68 | 68 | one: 'etwa 1 Jahr' |
|
69 | 69 | other: 'etwa %{count} Jahren' |
|
70 | 70 | over_x_years: |
|
71 | 71 | one: 'mehr als 1 Jahr' |
|
72 | 72 | other: 'mehr als %{count} Jahren' |
|
73 | 73 | almost_x_years: |
|
74 | 74 | one: "fast 1 Jahr" |
|
75 | 75 | other: "fast %{count} Jahren" |
|
76 | 76 | |
|
77 | 77 | number: |
|
78 | 78 | # Default format for numbers |
|
79 | 79 | format: |
|
80 | 80 | separator: ',' |
|
81 | 81 | delimiter: '.' |
|
82 | 82 | precision: 2 |
|
83 | 83 | currency: |
|
84 | 84 | format: |
|
85 | 85 | unit: '€' |
|
86 | 86 | format: '%n %u' |
|
87 | 87 | delimiter: '' |
|
88 | 88 | percentage: |
|
89 | 89 | format: |
|
90 | 90 | delimiter: "" |
|
91 | 91 | precision: |
|
92 | 92 | format: |
|
93 | 93 | delimiter: "" |
|
94 | 94 | human: |
|
95 | 95 | format: |
|
96 | 96 | delimiter: "" |
|
97 | 97 | precision: 3 |
|
98 | 98 | storage_units: |
|
99 | 99 | format: "%n %u" |
|
100 | 100 | units: |
|
101 | 101 | byte: |
|
102 | 102 | one: "Byte" |
|
103 | 103 | other: "Bytes" |
|
104 | 104 | kb: "KB" |
|
105 | 105 | mb: "MB" |
|
106 | 106 | gb: "GB" |
|
107 | 107 | tb: "TB" |
|
108 | 108 | |
|
109 | 109 | # Used in array.to_sentence. |
|
110 | 110 | support: |
|
111 | 111 | array: |
|
112 | 112 | sentence_connector: "und" |
|
113 | 113 | skip_last_comma: true |
|
114 | 114 | |
|
115 | 115 | activerecord: |
|
116 | 116 | errors: |
|
117 | 117 | template: |
|
118 | 118 | header: |
|
119 | 119 | one: "Dieses %{model}-Objekt konnte nicht gespeichert werden: %{count} Fehler." |
|
120 | 120 | other: "Dieses %{model}-Objekt konnte nicht gespeichert werden: %{count} Fehler." |
|
121 | 121 | body: "Bitte überprüfen Sie die folgenden Felder:" |
|
122 | 122 | |
|
123 | 123 | messages: |
|
124 | 124 | inclusion: "ist kein gültiger Wert" |
|
125 | 125 | exclusion: "ist nicht verfügbar" |
|
126 | 126 | invalid: "ist nicht gültig" |
|
127 | 127 | confirmation: "stimmt nicht mit der Bestätigung überein" |
|
128 | 128 | accepted: "muss akzeptiert werden" |
|
129 | 129 | empty: "muss ausgefüllt werden" |
|
130 | 130 | blank: "muss ausgefüllt werden" |
|
131 | 131 | too_long: "ist zu lang (nicht mehr als %{count} Zeichen)" |
|
132 | 132 | too_short: "ist zu kurz (nicht weniger als %{count} Zeichen)" |
|
133 | 133 | wrong_length: "hat die falsche Länge (muss genau %{count} Zeichen haben)" |
|
134 | 134 | taken: "ist bereits vergeben" |
|
135 | 135 | not_a_number: "ist keine Zahl" |
|
136 | 136 | not_a_date: "ist kein gültiges Datum" |
|
137 | 137 | greater_than: "muss größer als %{count} sein" |
|
138 | 138 | greater_than_or_equal_to: "muss größer oder gleich %{count} sein" |
|
139 | 139 | equal_to: "muss genau %{count} sein" |
|
140 | 140 | less_than: "muss kleiner als %{count} sein" |
|
141 | 141 | less_than_or_equal_to: "muss kleiner oder gleich %{count} sein" |
|
142 | 142 | odd: "muss ungerade sein" |
|
143 | 143 | even: "muss gerade sein" |
|
144 | 144 | greater_than_start_date: "muss größer als Anfangsdatum sein" |
|
145 | 145 | not_same_project: "gehört nicht zum selben Projekt" |
|
146 | 146 | circular_dependency: "Diese Beziehung würde eine zyklische Abhängigkeit erzeugen" |
|
147 | 147 | cant_link_an_issue_with_a_descendant: "Ein Ticket kann nicht mit einer Ihrer Unteraufgaben verlinkt werden" |
|
148 | 148 | earlier_than_minimum_start_date: "cannot be earlier than %{date} because of preceding issues" |
|
149 | 149 | |
|
150 | 150 | actionview_instancetag_blank_option: Bitte auswählen |
|
151 | 151 | |
|
152 | 152 | button_activate: Aktivieren |
|
153 | 153 | button_add: Hinzufügen |
|
154 | 154 | button_annotate: Annotieren |
|
155 | 155 | button_apply: Anwenden |
|
156 | 156 | button_archive: Archivieren |
|
157 | 157 | button_back: Zurück |
|
158 | 158 | button_cancel: Abbrechen |
|
159 | 159 | button_change: Wechseln |
|
160 | 160 | button_change_password: Passwort ändern |
|
161 | 161 | button_check_all: Alles auswählen |
|
162 | 162 | button_clear: Zurücksetzen |
|
163 | 163 | button_close: Schließen |
|
164 | 164 | button_collapse_all: Alle einklappen |
|
165 | 165 | button_configure: Konfigurieren |
|
166 | 166 | button_copy: Kopieren |
|
167 | 167 | button_copy_and_follow: Kopieren und Ticket anzeigen |
|
168 | 168 | button_create: Anlegen |
|
169 | 169 | button_create_and_continue: Anlegen und weiter |
|
170 | 170 | button_delete: Löschen |
|
171 | 171 | button_delete_my_account: Mein Benutzerkonto löschen |
|
172 | 172 | button_download: Download |
|
173 | 173 | button_duplicate: Duplizieren |
|
174 | 174 | button_edit: Bearbeiten |
|
175 | 175 | button_edit_associated_wikipage: "Zugehörige Wikiseite bearbeiten: %{page_title}" |
|
176 | 176 | button_edit_section: Diesen Bereich bearbeiten |
|
177 | 177 | button_expand_all: Alle ausklappen |
|
178 | 178 | button_export: Exportieren |
|
179 | 179 | button_hide: Verstecken |
|
180 | 180 | button_list: Liste |
|
181 | 181 | button_lock: Sperren |
|
182 | 182 | button_log_time: Aufwand buchen |
|
183 | 183 | button_login: Anmelden |
|
184 | 184 | button_move: Verschieben |
|
185 | 185 | button_move_and_follow: Verschieben und Ticket anzeigen |
|
186 | 186 | button_quote: Zitieren |
|
187 | 187 | button_rename: Umbenennen |
|
188 | 188 | button_reopen: Öffnen |
|
189 | 189 | button_reply: Antworten |
|
190 | 190 | button_reset: Zurücksetzen |
|
191 | 191 | button_rollback: Auf diese Version zurücksetzen |
|
192 | 192 | button_save: Speichern |
|
193 | 193 | button_show: Anzeigen |
|
194 | 194 | button_sort: Sortieren |
|
195 | 195 | button_submit: OK |
|
196 | 196 | button_test: Testen |
|
197 | 197 | button_unarchive: Entarchivieren |
|
198 | 198 | button_uncheck_all: Alles abwählen |
|
199 | 199 | button_unlock: Entsperren |
|
200 | 200 | button_unwatch: Nicht beobachten |
|
201 | 201 | button_update: Aktualisieren |
|
202 | 202 | button_view: Anzeigen |
|
203 | 203 | button_watch: Beobachten |
|
204 | 204 | |
|
205 | 205 | default_activity_design: Design |
|
206 | 206 | default_activity_development: Entwicklung |
|
207 | 207 | default_doc_category_tech: Technische Dokumentation |
|
208 | 208 | default_doc_category_user: Benutzerdokumentation |
|
209 | 209 | default_issue_status_closed: Erledigt |
|
210 | 210 | default_issue_status_feedback: Feedback |
|
211 | 211 | default_issue_status_in_progress: In Bearbeitung |
|
212 | 212 | default_issue_status_new: Neu |
|
213 | 213 | default_issue_status_rejected: Abgewiesen |
|
214 | 214 | default_issue_status_resolved: Gelöst |
|
215 | 215 | default_priority_high: Hoch |
|
216 | 216 | default_priority_immediate: Sofort |
|
217 | 217 | default_priority_low: Niedrig |
|
218 | 218 | default_priority_normal: Normal |
|
219 | 219 | default_priority_urgent: Dringend |
|
220 | 220 | default_role_developer: Entwickler |
|
221 | 221 | default_role_manager: Manager |
|
222 | 222 | default_role_reporter: Reporter |
|
223 | 223 | default_tracker_bug: Fehler |
|
224 | 224 | default_tracker_feature: Feature |
|
225 | 225 | default_tracker_support: Unterstützung |
|
226 | 226 | |
|
227 | 227 | description_all_columns: Alle Spalten |
|
228 | 228 | description_available_columns: Verfügbare Spalten |
|
229 | 229 | description_choose_project: Projekte |
|
230 | 230 | description_date_from: Startdatum eintragen |
|
231 | 231 | description_date_range_interval: Zeitraum durch Start- und Enddatum festlegen |
|
232 | 232 | description_date_range_list: Zeitraum aus einer Liste wählen |
|
233 | 233 | description_date_to: Enddatum eintragen |
|
234 | 234 | description_filter: Filter |
|
235 | 235 | description_issue_category_reassign: Neue Kategorie wählen |
|
236 | 236 | description_message_content: Nachrichteninhalt |
|
237 | 237 | description_notes: Kommentare |
|
238 | 238 | description_project_scope: Suchbereich |
|
239 | 239 | description_query_sort_criteria_attribute: Sortierattribut |
|
240 | 240 | description_query_sort_criteria_direction: Sortierrichtung |
|
241 | 241 | description_search: Suchfeld |
|
242 | 242 | description_selected_columns: Ausgewählte Spalten |
|
243 | 243 | |
|
244 | 244 | description_user_mail_notification: Mailbenachrichtigungseinstellung |
|
245 | 245 | description_wiki_subpages_reassign: Neue Elternseite wählen |
|
246 | 246 | |
|
247 | 247 | enumeration_activities: Aktivitäten (Zeiterfassung) |
|
248 | 248 | enumeration_doc_categories: Dokumentenkategorien |
|
249 | 249 | enumeration_issue_priorities: Ticket-Prioritäten |
|
250 | 250 | enumeration_system_activity: System-Aktivität |
|
251 | 251 | |
|
252 | 252 | error_attachment_too_big: Diese Datei kann nicht hochgeladen werden, da sie die maximale Dateigröße von (%{max_size}) überschreitet. |
|
253 | 253 | error_can_not_archive_project: Dieses Projekt kann nicht archiviert werden. |
|
254 | 254 | error_can_not_delete_custom_field: Kann das benutzerdefinierte Feld nicht löschen. |
|
255 | 255 | error_can_not_delete_tracker: Dieser Tracker enthält Tickets und kann nicht gelöscht werden. |
|
256 | 256 | error_can_not_remove_role: Diese Rolle wird verwendet und kann nicht gelöscht werden. |
|
257 | 257 | error_can_not_reopen_issue_on_closed_version: Das Ticket ist einer abgeschlossenen Version zugeordnet und kann daher nicht wieder geöffnet werden. |
|
258 | 258 | error_can_t_load_default_data: "Die Standard-Konfiguration konnte nicht geladen werden: %{value}" |
|
259 | 259 | error_issue_done_ratios_not_updated: Der Ticket-Fortschritt wurde nicht aktualisiert. |
|
260 | 260 | error_issue_not_found_in_project: 'Das Ticket wurde nicht gefunden oder gehört nicht zu diesem Projekt.' |
|
261 | 261 | error_no_default_issue_status: Es ist kein Status als Standard definiert. Bitte überprüfen Sie Ihre Konfiguration (unter "Administration -> Ticket-Status"). |
|
262 | 262 | error_no_tracker_in_project: Diesem Projekt ist kein Tracker zugeordnet. Bitte überprüfen Sie die Projekteinstellungen. |
|
263 | 263 | error_scm_annotate: "Der Eintrag existiert nicht oder kann nicht annotiert werden." |
|
264 | 264 | error_scm_annotate_big_text_file: Der Eintrag kann nicht umgesetzt werden, da er die maximale Textlänge überschreitet. |
|
265 | 265 | error_scm_command_failed: "Beim Zugriff auf das Projektarchiv ist ein Fehler aufgetreten: %{value}" |
|
266 | 266 | error_scm_not_found: Eintrag und/oder Revision existiert nicht im Projektarchiv. |
|
267 | 267 | error_session_expired: Ihre Sitzung ist abgelaufen. Bitte melden Sie sich erneut an. |
|
268 | 268 | error_unable_delete_issue_status: "Der Ticket-Status konnte nicht gelöscht werden." |
|
269 | 269 | error_unable_to_connect: Fehler beim Verbinden (%{value}) |
|
270 | 270 | error_workflow_copy_source: Bitte wählen Sie einen Quell-Tracker und eine Quell-Rolle. |
|
271 | 271 | error_workflow_copy_target: Bitte wählen Sie die Ziel-Tracker und -Rollen. |
|
272 | 272 | |
|
273 | 273 | field_account: Konto |
|
274 | 274 | field_active: Aktiv |
|
275 | 275 | field_activity: Aktivität |
|
276 | 276 | field_admin: Administrator |
|
277 | 277 | field_assignable: Tickets können dieser Rolle zugewiesen werden |
|
278 | 278 | field_assigned_to: Zugewiesen an |
|
279 | 279 | field_assigned_to_role: Zuständigkeitsrolle |
|
280 | 280 | field_attr_firstname: Vorname-Attribut |
|
281 | 281 | field_attr_lastname: Name-Attribut |
|
282 | 282 | field_attr_login: Mitgliedsname-Attribut |
|
283 | 283 | field_attr_mail: E-Mail-Attribut |
|
284 | 284 | field_auth_source: Authentifizierungs-Modus |
|
285 | 285 | field_auth_source_ldap_filter: LDAP-Filter |
|
286 | 286 | field_author: Autor |
|
287 | 287 | field_base_dn: Base DN |
|
288 | 288 | field_board_parent: Übergeordnetes Forum |
|
289 | 289 | field_category: Kategorie |
|
290 | 290 | field_column_names: Spalten |
|
291 | 291 | field_closed_on: Geschlossen am |
|
292 | 292 | field_comments: Kommentar |
|
293 | 293 | field_comments_sorting: Kommentare anzeigen |
|
294 | 294 | field_commit_logs_encoding: Kodierung der Commit-Nachrichten |
|
295 | 295 | field_content: Inhalt |
|
296 | 296 | field_core_fields: Standardwerte |
|
297 | 297 | field_created_on: Angelegt |
|
298 | 298 | field_cvs_module: Modul |
|
299 | 299 | field_cvsroot: CVSROOT |
|
300 | 300 | field_default_value: Standardwert |
|
301 | 301 | field_default_status: Standardstatus |
|
302 | 302 | field_delay: Pufferzeit |
|
303 | 303 | field_description: Beschreibung |
|
304 | 304 | field_done_ratio: "% erledigt" |
|
305 | 305 | field_downloads: Downloads |
|
306 | 306 | field_due_date: Abgabedatum |
|
307 | 307 | field_editable: Bearbeitbar |
|
308 | 308 | field_effective_date: Datum |
|
309 | 309 | field_estimated_hours: Geschätzter Aufwand |
|
310 | 310 | field_field_format: Format |
|
311 | 311 | field_filename: Datei |
|
312 | 312 | field_filesize: Größe |
|
313 | 313 | field_firstname: Vorname |
|
314 | 314 | field_fixed_version: Zielversion |
|
315 | 315 | field_generate_password: Passwort generieren |
|
316 | 316 | field_group_by: Gruppiere Ergebnisse nach |
|
317 | 317 | field_hide_mail: E-Mail-Adresse nicht anzeigen |
|
318 | 318 | field_homepage: Projekt-Homepage |
|
319 | 319 | field_host: Host |
|
320 | 320 | field_hours: Stunden |
|
321 | 321 | field_identifier: Kennung |
|
322 | 322 | field_identity_url: OpenID-URL |
|
323 | 323 | field_inherit_members: Benutzer erben |
|
324 | 324 | field_is_closed: Ticket geschlossen |
|
325 | 325 | field_is_default: Standardeinstellung |
|
326 | 326 | field_is_filter: Als Filter benutzen |
|
327 | 327 | field_is_for_all: Für alle Projekte |
|
328 | 328 | field_is_in_roadmap: In der Roadmap anzeigen |
|
329 | 329 | field_is_private: Privat |
|
330 | 330 | field_is_public: Öffentlich |
|
331 | 331 | field_is_required: Erforderlich |
|
332 | 332 | field_issue: Ticket |
|
333 | 333 | field_issue_to: Zugehöriges Ticket |
|
334 | 334 | field_issues_visibility: Ticket-Sichtbarkeit |
|
335 | 335 | field_language: Sprache |
|
336 | 336 | field_last_login_on: Letzte Anmeldung |
|
337 | 337 | field_lastname: Nachname |
|
338 | 338 | field_login: Mitgliedsname |
|
339 | 339 | field_mail: E-Mail |
|
340 | 340 | field_mail_notification: Mailbenachrichtigung |
|
341 | 341 | field_max_length: Maximale Länge |
|
342 | 342 | field_member_of_group: Zuständigkeitsgruppe |
|
343 | 343 | field_min_length: Minimale Länge |
|
344 | 344 | field_multiple: Mehrere Werte |
|
345 | 345 | field_must_change_passwd: Passwort beim nächsten Login ändern |
|
346 | 346 | field_name: Name |
|
347 | 347 | field_new_password: Neues Passwort |
|
348 | 348 | field_notes: Kommentare |
|
349 | 349 | field_onthefly: On-the-fly-Benutzererstellung |
|
350 | 350 | field_parent: Unterprojekt von |
|
351 | 351 | field_parent_issue: Übergeordnete Aufgabe |
|
352 | 352 | field_parent_title: Übergeordnete Seite |
|
353 | 353 | field_password: Passwort |
|
354 | 354 | field_password_confirmation: Bestätigung |
|
355 | 355 | field_path_to_repository: Pfad zum Repository |
|
356 | 356 | field_port: Port |
|
357 | 357 | field_possible_values: Mögliche Werte |
|
358 | 358 | field_principal: Auftraggeber |
|
359 | 359 | field_priority: Priorität |
|
360 | 360 | field_private_notes: Privater Kommentar |
|
361 | 361 | field_project: Projekt |
|
362 | 362 | field_redirect_existing_links: Existierende Links umleiten |
|
363 | 363 | field_regexp: Regulärer Ausdruck |
|
364 | 364 | field_repository_is_default: Haupt-Repository |
|
365 | 365 | field_role: Rolle |
|
366 | 366 | field_root_directory: Wurzelverzeichnis |
|
367 | 367 | field_scm_path_encoding: Pfad-Kodierung |
|
368 | 368 | field_searchable: Durchsuchbar |
|
369 | 369 | field_sharing: Gemeinsame Verwendung |
|
370 | 370 | field_spent_on: Datum |
|
371 | 371 | field_start_date: Beginn |
|
372 | 372 | field_start_page: Hauptseite |
|
373 | 373 | field_status: Status |
|
374 | 374 | field_subject: Thema |
|
375 | 375 | field_subproject: Unterprojekt von |
|
376 | 376 | field_summary: Zusammenfassung |
|
377 | 377 | field_text: Textfeld |
|
378 | 378 | field_time_entries: Logzeit |
|
379 | 379 | field_time_zone: Zeitzone |
|
380 | 380 | field_timeout: Auszeit (in Sekunden) |
|
381 | 381 | field_title: Titel |
|
382 | 382 | field_tracker: Tracker |
|
383 | 383 | field_type: Typ |
|
384 | 384 | field_updated_on: Aktualisiert |
|
385 | 385 | field_url: URL |
|
386 | 386 | field_user: Benutzer |
|
387 | 387 | field_users_visibility: Benutzer-Sichtbarkeit |
|
388 | 388 | field_value: Wert |
|
389 | 389 | field_version: Version |
|
390 | 390 | field_visible: Sichtbar |
|
391 | 391 | field_warn_on_leaving_unsaved: Vor dem Verlassen einer Seite mit ungesichertem Text im Editor warnen |
|
392 | 392 | field_watcher: Beobachter |
|
393 | 393 | |
|
394 | 394 | general_csv_decimal_separator: ',' |
|
395 | 395 | general_csv_encoding: ISO-8859-1 |
|
396 | 396 | general_csv_separator: ';' |
|
397 | 397 | general_pdf_fontname: freesans |
|
398 | 398 | general_pdf_monospaced_fontname: freemono |
|
399 | 399 | general_first_day_of_week: '1' |
|
400 | 400 | general_lang_name: 'German (Deutsch)' |
|
401 | 401 | general_text_No: 'Nein' |
|
402 | 402 | general_text_Yes: 'Ja' |
|
403 | 403 | general_text_no: 'nein' |
|
404 | 404 | general_text_yes: 'ja' |
|
405 | 405 | |
|
406 | 406 | label_activity: Aktivität |
|
407 | 407 | label_add_another_file: Eine weitere Datei hinzufügen |
|
408 | 408 | label_add_note: Kommentar hinzufügen |
|
409 | 409 | label_add_projects: Projekt hinzufügen |
|
410 | 410 | label_added: hinzugefügt |
|
411 | 411 | label_added_time_by: "Von %{author} vor %{age} hinzugefügt" |
|
412 | 412 | label_additional_workflow_transitions_for_assignee: Zusätzliche Berechtigungen wenn der Benutzer der Zugewiesene ist |
|
413 | 413 | label_additional_workflow_transitions_for_author: Zusätzliche Berechtigungen wenn der Benutzer der Autor ist |
|
414 | 414 | label_administration: Administration |
|
415 | 415 | label_age: Geändert vor |
|
416 | 416 | label_ago: vor |
|
417 | 417 | label_all: alle |
|
418 | 418 | label_all_time: gesamter Zeitraum |
|
419 | 419 | label_all_words: Alle Wörter |
|
420 | 420 | label_and_its_subprojects: "%{value} und dessen Unterprojekte" |
|
421 | 421 | label_any: alle |
|
422 | 422 | label_any_issues_in_project: irgendein Ticket im Projekt |
|
423 | 423 | label_any_issues_not_in_project: irgendein Ticket nicht im Projekt |
|
424 | 424 | label_api_access_key: API-Zugriffsschlüssel |
|
425 | 425 | label_api_access_key_created_on: Der API-Zugriffsschlüssel wurde vor %{value} erstellt |
|
426 | 426 | label_applied_status: Zugewiesener Status |
|
427 | 427 | label_ascending: Aufsteigend |
|
428 | 428 | label_ask: Nachfragen |
|
429 | 429 | label_assigned_to_me_issues: Mir zugewiesene Tickets |
|
430 | 430 | label_associated_revisions: Zugehörige Revisionen |
|
431 | 431 | label_attachment: Datei |
|
432 | 432 | label_attachment_delete: Anhang löschen |
|
433 | 433 | label_attachment_new: Neue Datei |
|
434 | 434 | label_attachment_plural: Dateien |
|
435 | 435 | label_attribute: Attribut |
|
436 | 436 | label_attribute_of_assigned_to: "%{name} des Bearbeiters" |
|
437 | 437 | label_attribute_of_author: "%{name} des Autors" |
|
438 | 438 | label_attribute_of_fixed_version: "%{name} der Zielversion" |
|
439 | 439 | label_attribute_of_issue: "%{name} des Tickets" |
|
440 | 440 | label_attribute_of_project: "%{name} des Projekts" |
|
441 | 441 | label_attribute_of_user: "%{name} des Benutzers" |
|
442 | 442 | label_attribute_plural: Attribute |
|
443 | 443 | label_auth_source: Authentifizierungs-Modus |
|
444 | 444 | label_auth_source_new: Neuer Authentifizierungs-Modus |
|
445 | 445 | label_auth_source_plural: Authentifizierungs-Arten |
|
446 | 446 | label_authentication: Authentifizierung |
|
447 | 447 | label_between: zwischen |
|
448 | 448 | label_blocked_by: Blockiert durch |
|
449 | 449 | label_blocks: Blockiert |
|
450 | 450 | label_board: Forum |
|
451 | 451 | label_board_locked: Gesperrt |
|
452 | 452 | label_board_new: Neues Forum |
|
453 | 453 | label_board_plural: Foren |
|
454 | 454 | label_board_sticky: Wichtig (immer oben) |
|
455 | 455 | label_boolean: Boolean |
|
456 | 456 | label_branch: Zweig |
|
457 | 457 | label_browse: Codebrowser |
|
458 | 458 | label_bulk_edit_selected_issues: Alle ausgewählten Tickets bearbeiten |
|
459 | 459 | label_bulk_edit_selected_time_entries: Ausgewählte Zeitaufwände bearbeiten |
|
460 | 460 | label_calendar: Kalender |
|
461 | 461 | label_change_plural: Änderungen |
|
462 | 462 | label_change_properties: Eigenschaften ändern |
|
463 | 463 | label_change_status: Statuswechsel |
|
464 | 464 | label_change_view_all: Alle Änderungen anzeigen |
|
465 | 465 | label_changes_details: Details aller Änderungen |
|
466 | 466 | label_changeset_plural: Changesets |
|
467 | 467 | label_checkboxes: Checkboxen |
|
468 | 468 | label_check_for_updates: Auf Updates prüfen |
|
469 | 469 | label_child_revision: Nachfolger |
|
470 | 470 | label_chronological_order: in zeitlicher Reihenfolge |
|
471 | 471 | label_close_versions: Vollständige Versionen schließen |
|
472 | 472 | label_closed_issues: geschlossen |
|
473 | 473 | label_closed_issues_plural: geschlossen |
|
474 | 474 | label_comment: Kommentar |
|
475 | 475 | label_comment_add: Kommentar hinzufügen |
|
476 | 476 | label_comment_added: Kommentar hinzugefügt |
|
477 | 477 | label_comment_delete: Kommentar löschen |
|
478 | 478 | label_comment_plural: Kommentare |
|
479 | 479 | label_commits_per_author: Übertragungen pro Autor |
|
480 | 480 | label_commits_per_month: Übertragungen pro Monat |
|
481 | 481 | label_completed_versions: Abgeschlossene Versionen |
|
482 | 482 | label_confirmation: Bestätigung |
|
483 | 483 | label_contains: enthält |
|
484 | 484 | label_copied: kopiert |
|
485 | 485 | label_copied_from: Kopiert von |
|
486 | 486 | label_copied_to: Kopiert nach |
|
487 | 487 | label_copy_attachments: Anhänge kopieren |
|
488 | 488 | label_copy_same_as_target: So wie das Ziel |
|
489 | 489 | label_copy_source: Quelle |
|
490 | 490 | label_copy_subtasks: Unteraufgaben kopieren |
|
491 | 491 | label_copy_target: Ziel |
|
492 | 492 | label_copy_workflow_from: Workflow kopieren von |
|
493 | 493 | label_cross_project_descendants: Mit Unterprojekten |
|
494 | 494 | label_cross_project_hierarchy: Mit Projekthierarchie |
|
495 | 495 | label_cross_project_system: Mit allen Projekten |
|
496 | 496 | label_cross_project_tree: Mit Projektbaum |
|
497 | 497 | label_current_status: Gegenwärtiger Status |
|
498 | 498 | label_current_version: Gegenwärtige Version |
|
499 | 499 | label_custom_field: Benutzerdefiniertes Feld |
|
500 | 500 | label_custom_field_new: Neues Feld |
|
501 | 501 | label_custom_field_plural: Benutzerdefinierte Felder |
|
502 | 502 | label_custom_field_select_type: Bitte wählen Sie den Objekttyp, zu dem das benutzerdefinierte Feld hinzugefügt werden soll |
|
503 | 503 | label_date: Datum |
|
504 | 504 | label_date_from: Von |
|
505 | 505 | label_date_from_to: von %{start} bis %{end} |
|
506 | 506 | label_date_range: Zeitraum |
|
507 | 507 | label_date_to: Bis |
|
508 | 508 | label_day_plural: Tage |
|
509 | 509 | label_default: Standard |
|
510 | 510 | label_default_columns: Standard-Spalten |
|
511 | 511 | label_deleted: gelöscht |
|
512 | 512 | label_descending: Absteigend |
|
513 | 513 | label_details: Details |
|
514 | 514 | label_diff: diff |
|
515 | 515 | label_diff_inline: einspaltig |
|
516 | 516 | label_diff_side_by_side: nebeneinander |
|
517 | 517 | label_disabled: gesperrt |
|
518 | 518 | label_display: Anzeige |
|
519 | 519 | label_display_per_page: "Pro Seite: %{value}" |
|
520 | 520 | label_display_used_statuses_only: Zeige nur Status an, die von diesem Tracker verwendet werden |
|
521 | 521 | label_document: Dokument |
|
522 | 522 | label_document_added: Dokument hinzugefügt |
|
523 | 523 | label_document_new: Neues Dokument |
|
524 | 524 | label_document_plural: Dokumente |
|
525 | 525 | label_downloads_abbr: D/L |
|
526 | 526 | label_drop_down_list: Dropdown-Liste |
|
527 | 527 | label_duplicated_by: Dupliziert durch |
|
528 | 528 | label_duplicates: Duplikat von |
|
529 | 529 | label_edit_attachments: Angehängte Dateien bearbeiten |
|
530 | 530 | label_enumeration_new: Neuer Wert |
|
531 | 531 | label_enumerations: Aufzählungen |
|
532 | 532 | label_environment: Umgebung |
|
533 | 533 | label_equals: ist |
|
534 | 534 | label_example: Beispiel |
|
535 | 535 | label_export_options: "%{export_format} Export-Eigenschaften" |
|
536 | 536 | label_export_to: "Auch abrufbar als:" |
|
537 | 537 | label_f_hour: "%{value} Stunde" |
|
538 | 538 | label_f_hour_plural: "%{value} Stunden" |
|
539 | 539 | label_feed_plural: Feeds |
|
540 | 540 | label_feeds_access_key: Atom-Zugriffsschlüssel |
|
541 | 541 | label_feeds_access_key_created_on: "Atom-Zugriffsschlüssel vor %{value} erstellt" |
|
542 | 542 | label_fields_permissions: Feldberechtigungen |
|
543 | 543 | label_file_added: Datei hinzugefügt |
|
544 | 544 | label_file_plural: Dateien |
|
545 | 545 | label_filter_add: Filter hinzufügen |
|
546 | 546 | label_filter_plural: Filter |
|
547 | 547 | label_float: Fließkommazahl |
|
548 | 548 | label_follows: Nachfolger von |
|
549 | 549 | label_gantt: Gantt-Diagramm |
|
550 | 550 | label_gantt_progress_line: Fortschrittslinie |
|
551 | 551 | label_general: Allgemein |
|
552 | 552 | label_generate_key: Generieren |
|
553 | 553 | label_git_report_last_commit: Bericht des letzten Commits für Dateien und Verzeichnisse |
|
554 | 554 | label_greater_or_equal: ">=" |
|
555 | 555 | label_group: Gruppe |
|
556 | 556 | label_group_anonymous: Anonyme Benutzer |
|
557 | 557 | label_group_new: Neue Gruppe |
|
558 | 558 | label_group_non_member: Nichtmitglieder |
|
559 | 559 | label_group_plural: Gruppen |
|
560 | 560 | label_help: Hilfe |
|
561 | 561 | label_hidden: Versteckt |
|
562 | 562 | label_history: Historie |
|
563 | 563 | label_home: Hauptseite |
|
564 | 564 | label_in: in |
|
565 | 565 | label_in_less_than: in weniger als |
|
566 | 566 | label_in_more_than: in mehr als |
|
567 | 567 | label_in_the_next_days: in den nächsten |
|
568 | 568 | label_in_the_past_days: in den letzten |
|
569 | 569 | label_incoming_emails: Eingehende E-Mails |
|
570 | 570 | label_index_by_date: Seiten nach Datum sortiert |
|
571 | 571 | label_index_by_title: Seiten nach Titel sortiert |
|
572 | 572 | label_information: Information |
|
573 | 573 | label_information_plural: Informationen |
|
574 | 574 | label_integer: Zahl |
|
575 | 575 | label_internal: Intern |
|
576 | 576 | label_issue: Ticket |
|
577 | 577 | label_issue_added: Ticket hinzugefügt |
|
578 | 578 | label_issue_assigned_to_updated: Bearbeiter aktualisiert |
|
579 | 579 | label_issue_category: Ticket-Kategorie |
|
580 | 580 | label_issue_category_new: Neue Kategorie |
|
581 | 581 | label_issue_category_plural: Ticket-Kategorien |
|
582 | 582 | label_issue_new: Neues Ticket |
|
583 | 583 | label_issue_note_added: Notiz hinzugefügt |
|
584 | 584 | label_issue_plural: Tickets |
|
585 | 585 | label_issue_priority_updated: Priorität aktualisiert |
|
586 | 586 | label_issue_status: Ticket-Status |
|
587 | 587 | label_issue_status_new: Neuer Status |
|
588 | 588 | label_issue_status_plural: Ticket-Status |
|
589 | 589 | label_issue_status_updated: Status aktualisiert |
|
590 | 590 | label_issue_tracking: Tickets |
|
591 | 591 | label_issue_updated: Ticket aktualisiert |
|
592 | 592 | label_issue_view_all: Alle Tickets anzeigen |
|
593 | 593 | label_issue_watchers: Beobachter |
|
594 | 594 | label_issues_by: "Tickets pro %{value}" |
|
595 | 595 | label_issues_visibility_all: Alle Tickets |
|
596 | 596 | label_issues_visibility_own: Tickets die folgender Benutzer erstellt hat oder die ihm zugewiesen sind |
|
597 | 597 | label_issues_visibility_public: Alle öffentlichen Tickets |
|
598 | 598 | label_item_position: "%{position}/%{count}" |
|
599 | 599 | label_jump_to_a_project: Zu einem Projekt springen... |
|
600 | 600 | label_language_based: Sprachabhängig |
|
601 | 601 | label_last_changes: "%{count} letzte Änderungen" |
|
602 | 602 | label_last_login: Letzte Anmeldung |
|
603 | 603 | label_last_month: voriger Monat |
|
604 | 604 | label_last_n_days: "die letzten %{count} Tage" |
|
605 | 605 | label_last_n_weeks: letzte %{count} Wochen |
|
606 | 606 | label_last_week: vorige Woche |
|
607 | 607 | label_latest_compatible_version: Letzte kompatible Version |
|
608 | 608 | label_latest_revision: Aktuellste Revision |
|
609 | 609 | label_latest_revision_plural: Aktuellste Revisionen |
|
610 | 610 | label_ldap_authentication: LDAP-Authentifizierung |
|
611 | 611 | label_less_or_equal: "<=" |
|
612 | 612 | label_less_than_ago: vor weniger als |
|
613 | 613 | label_link: Link |
|
614 | 614 | label_link_copied_issue: Kopierte Tickets verlinken |
|
615 | 615 | label_link_values_to: Werte mit URL verknüpfen |
|
616 | 616 | label_list: Liste |
|
617 | 617 | label_loading: Lade... |
|
618 | 618 | label_logged_as: Angemeldet als |
|
619 | 619 | label_login: Anmelden |
|
620 | 620 | label_login_with_open_id_option: oder mit OpenID anmelden |
|
621 | 621 | label_logout: Abmelden |
|
622 | 622 | label_only: nur |
|
623 | 623 | label_max_size: Maximale Größe |
|
624 | 624 | label_me: ich |
|
625 | 625 | label_member: Mitglied |
|
626 | 626 | label_member_new: Neues Mitglied |
|
627 | 627 | label_member_plural: Mitglieder |
|
628 | 628 | label_message_last: Letzter Forenbeitrag |
|
629 | 629 | label_message_new: Neues Thema |
|
630 | 630 | label_message_plural: Forenbeiträge |
|
631 | 631 | label_message_posted: Forenbeitrag hinzugefügt |
|
632 | 632 | label_min_max_length: Länge (Min. - Max.) |
|
633 | 633 | label_missing_api_access_key: Der API-Zugriffsschlüssel fehlt. |
|
634 | 634 | label_missing_feeds_access_key: Der Atom-Zugriffsschlüssel fehlt. |
|
635 | 635 | label_modified: geändert |
|
636 | 636 | label_module_plural: Module |
|
637 | 637 | label_month: Monat |
|
638 | 638 | label_months_from: Monate ab |
|
639 | 639 | label_more: Mehr |
|
640 | 640 | label_more_than_ago: vor mehr als |
|
641 | 641 | label_my_account: Mein Konto |
|
642 | 642 | label_my_page: Meine Seite |
|
643 | 643 | label_my_page_block: Verfügbare Widgets |
|
644 | 644 | label_my_projects: Meine Projekte |
|
645 | 645 | label_my_queries: Meine eigenen Abfragen |
|
646 | 646 | label_new: Neu |
|
647 | 647 | label_new_statuses_allowed: Neue Berechtigungen |
|
648 | 648 | label_news: News |
|
649 | 649 | label_news_added: News hinzugefügt |
|
650 | 650 | label_news_comment_added: Kommentar zu einer News hinzugefügt |
|
651 | 651 | label_news_latest: Letzte News |
|
652 | 652 | label_news_new: News hinzufügen |
|
653 | 653 | label_news_plural: News |
|
654 | 654 | label_news_view_all: Alle News anzeigen |
|
655 | 655 | label_next: Weiter |
|
656 | 656 | label_no_change_option: (Keine Änderung) |
|
657 | 657 | label_no_data: Nichts anzuzeigen |
|
658 | label_no_preview: Keine Vorschau verfügbar | |
|
658 | 659 | label_no_issues_in_project: keine Tickets im Projekt |
|
659 | 660 | label_nobody: Niemand |
|
660 | 661 | label_none: kein |
|
661 | 662 | label_not_contains: enthält nicht |
|
662 | 663 | label_not_equals: ist nicht |
|
663 | 664 | label_open_issues: offen |
|
664 | 665 | label_open_issues_plural: offen |
|
665 | 666 | label_optional_description: Beschreibung (optional) |
|
666 | 667 | label_options: Optionen |
|
667 | 668 | label_overall_activity: Aktivitäten aller Projekte anzeigen |
|
668 | 669 | label_overall_spent_time: Aufgewendete Zeit aller Projekte anzeigen |
|
669 | 670 | label_overview: Übersicht |
|
670 | 671 | label_parent_revision: Vorgänger |
|
671 | 672 | label_password_lost: Passwort vergessen |
|
672 | 673 | label_password_required: Bitte geben Sie Ihr Passwort ein |
|
673 | 674 | label_permissions: Berechtigungen |
|
674 | 675 | label_permissions_report: Berechtigungsübersicht |
|
675 | 676 | label_personalize_page: Diese Seite anpassen |
|
676 | 677 | label_planning: Terminplanung |
|
677 | 678 | label_please_login: Anmelden |
|
678 | 679 | label_plugins: Plugins |
|
679 | 680 | label_precedes: Vorgänger von |
|
680 | 681 | label_preferences: Präferenzen |
|
681 | 682 | label_preview: Vorschau |
|
682 | 683 | label_previous: Zurück |
|
683 | 684 | label_principal_search: "Nach Benutzer oder Gruppe suchen:" |
|
684 | 685 | label_profile: Profil |
|
685 | 686 | label_project: Projekt |
|
686 | 687 | label_project_all: Alle Projekte |
|
687 | 688 | label_project_copy_notifications: Sende Mailbenachrichtigungen beim Kopieren des Projekts. |
|
688 | 689 | label_project_latest: Neueste Projekte |
|
689 | 690 | label_project_new: Neues Projekt |
|
690 | 691 | label_project_plural: Projekte |
|
691 | 692 | label_public_projects: Öffentliche Projekte |
|
692 | 693 | label_query: Benutzerdefinierte Abfrage |
|
693 | 694 | label_query_new: Neue Abfrage |
|
694 | 695 | label_query_plural: Benutzerdefinierte Abfragen |
|
695 | 696 | label_radio_buttons: Radio-Buttons |
|
696 | 697 | label_read: Lesen... |
|
697 | 698 | label_readonly: Nur-Lese-Zugriff |
|
698 | 699 | label_register: Registrieren |
|
699 | 700 | label_registered_on: Angemeldet am |
|
700 | 701 | label_registration_activation_by_email: Kontoaktivierung durch E-Mail |
|
701 | 702 | label_registration_automatic_activation: Automatische Kontoaktivierung |
|
702 | 703 | label_registration_manual_activation: Manuelle Kontoaktivierung |
|
703 | 704 | label_related_issues: Zugehörige Tickets |
|
704 | 705 | label_relates_to: Beziehung mit |
|
705 | 706 | label_relation_delete: Beziehung löschen |
|
706 | 707 | label_relation_new: Neue Beziehung |
|
707 | 708 | label_renamed: umbenannt |
|
708 | 709 | label_reply_plural: Antworten |
|
709 | 710 | label_report: Bericht |
|
710 | 711 | label_report_plural: Berichte |
|
711 | 712 | label_reported_issues: Erstellte Tickets |
|
712 | 713 | label_repository: Projektarchiv |
|
713 | 714 | label_repository_new: Neues Repository |
|
714 | 715 | label_repository_plural: Projektarchive |
|
715 | 716 | label_required: Erforderlich |
|
716 | 717 | label_result_plural: Resultate |
|
717 | 718 | label_reverse_chronological_order: in umgekehrter zeitlicher Reihenfolge |
|
718 | 719 | label_revision: Revision |
|
719 | 720 | label_revision_id: Revision %{value} |
|
720 | 721 | label_revision_plural: Revisionen |
|
721 | 722 | label_roadmap: Roadmap |
|
722 | 723 | label_roadmap_due_in: "Fällig in %{value}" |
|
723 | 724 | label_roadmap_no_issues: Keine Tickets für diese Version |
|
724 | 725 | label_roadmap_overdue: "seit %{value} verspätet" |
|
725 | 726 | label_role: Rolle |
|
726 | 727 | label_role_and_permissions: Rollen und Rechte |
|
727 | 728 | label_role_anonymous: Anonymous |
|
728 | 729 | label_role_new: Neue Rolle |
|
729 | 730 | label_role_non_member: Nichtmitglied |
|
730 | 731 | label_role_plural: Rollen |
|
731 | 732 | label_scm: Versionskontrollsystem |
|
732 | 733 | label_search: Suche |
|
733 | 734 | label_search_for_watchers: Nach hinzufügbaren Beobachtern suchen |
|
734 | 735 | label_search_titles_only: Nur Titel durchsuchen |
|
735 | 736 | label_send_information: Sende Kontoinformationen an Benutzer |
|
736 | 737 | label_send_test_email: Test-E-Mail senden |
|
737 | 738 | label_session_expiration: Ende einer Sitzung |
|
738 | 739 | label_settings: Konfiguration |
|
739 | 740 | label_show_closed_projects: Geschlossene Projekte anzeigen |
|
740 | 741 | label_show_completed_versions: Abgeschlossene Versionen anzeigen |
|
741 | 742 | label_sort: Sortierung |
|
742 | 743 | label_sort_by: "Sortiert nach %{value}" |
|
743 | 744 | label_sort_higher: Eins höher |
|
744 | 745 | label_sort_highest: An den Anfang |
|
745 | 746 | label_sort_lower: Eins tiefer |
|
746 | 747 | label_sort_lowest: Ans Ende |
|
747 | 748 | label_spent_time: Aufgewendete Zeit |
|
748 | 749 | label_statistics: Statistiken |
|
749 | 750 | label_status_transitions: Statusänderungen |
|
750 | 751 | label_stay_logged_in: Angemeldet bleiben |
|
751 | 752 | label_string: Text |
|
752 | 753 | label_subproject_new: Neues Unterprojekt |
|
753 | 754 | label_subproject_plural: Unterprojekte |
|
754 | 755 | label_subtask_plural: Unteraufgaben |
|
755 | 756 | label_tag: Markierung |
|
756 | 757 | label_text: Langer Text |
|
757 | 758 | label_theme: Design-Stil |
|
758 | 759 | label_this_month: aktueller Monat |
|
759 | 760 | label_this_week: aktuelle Woche |
|
760 | 761 | label_this_year: aktuelles Jahr |
|
761 | 762 | label_time_entry_plural: Benötigte Zeit |
|
762 | 763 | label_time_tracking: Zeiterfassung |
|
763 | 764 | label_today: heute |
|
764 | 765 | label_topic_plural: Themen |
|
765 | 766 | label_total: Gesamtzahl |
|
766 | 767 | label_total_time: Gesamtzeit |
|
767 | 768 | label_tracker: Tracker |
|
768 | 769 | label_tracker_new: Neuer Tracker |
|
769 | 770 | label_tracker_plural: Tracker |
|
770 | 771 | label_unknown_plugin: Unbekanntes Plugin |
|
771 | 772 | label_update_issue_done_ratios: Ticket-Fortschritt aktualisieren |
|
772 | 773 | label_updated_time: "Vor %{value} aktualisiert" |
|
773 | 774 | label_updated_time_by: "Von %{author} vor %{age} aktualisiert" |
|
774 | 775 | label_used_by: Benutzt von |
|
775 | 776 | label_user: Benutzer |
|
776 | 777 | label_user_activity: "Aktivität von %{value}" |
|
777 | 778 | label_user_anonymous: Anonym |
|
778 | 779 | label_user_mail_no_self_notified: "Ich möchte nicht über Änderungen benachrichtigt werden, die ich selbst durchführe." |
|
779 | 780 | label_user_mail_option_all: "Für alle Ereignisse in all meinen Projekten" |
|
780 | 781 | label_user_mail_option_none: Keine Ereignisse |
|
781 | 782 | label_user_mail_option_only_assigned: Nur für Aufgaben für die ich zuständig bin |
|
782 | 783 | label_user_mail_option_only_my_events: Nur für Aufgaben die ich beobachte oder an welchen ich mitarbeite |
|
783 | 784 | label_user_mail_option_only_owner: Nur für Aufgaben die ich angelegt habe |
|
784 | 785 | label_user_mail_option_selected: "Für alle Ereignisse in den ausgewählten Projekten" |
|
785 | 786 | label_user_new: Neuer Benutzer |
|
786 | 787 | label_user_plural: Benutzer |
|
787 | 788 | label_user_search: "Nach Benutzer suchen:" |
|
788 | 789 | label_users_visibility_all: Alle aktiven Benutzer |
|
789 | 790 | label_users_visibility_members_of_visible_projects: Mitglieder von sichtbaren Projekten |
|
790 | 791 | label_version: Version |
|
791 | 792 | label_version_new: Neue Version |
|
792 | 793 | label_version_plural: Versionen |
|
793 | 794 | label_version_sharing_descendants: Mit Unterprojekten |
|
794 | 795 | label_version_sharing_hierarchy: Mit Projekthierarchie |
|
795 | 796 | label_version_sharing_none: Nicht gemeinsam verwenden |
|
796 | 797 | label_version_sharing_system: Mit allen Projekten |
|
797 | 798 | label_version_sharing_tree: Mit Projektbaum |
|
798 | 799 | label_view_all_revisions: Alle Revisionen anzeigen |
|
799 | 800 | label_view_diff: Unterschiede anzeigen |
|
800 | 801 | label_view_revisions: Revisionen anzeigen |
|
801 | 802 | label_visibility_private: nur für mich |
|
802 | 803 | label_visibility_public: für jeden Benutzer |
|
803 | 804 | label_visibility_roles: nur für diese Rollen |
|
804 | 805 | label_watched_issues: Beobachtete Tickets |
|
805 | 806 | label_week: Woche |
|
806 | 807 | label_wiki: Wiki |
|
807 | 808 | label_wiki_content_added: Wiki-Seite hinzugefügt |
|
808 | 809 | label_wiki_content_updated: Wiki-Seite aktualisiert |
|
809 | 810 | label_wiki_edit: Wiki-Bearbeitung |
|
810 | 811 | label_wiki_edit_plural: Wiki-Bearbeitungen |
|
811 | 812 | label_wiki_page: Wiki-Seite |
|
812 | 813 | label_wiki_page_plural: Wiki-Seiten |
|
813 | 814 | label_wiki_page_new: Neue Wiki-Seite |
|
814 | 815 | label_workflow: Workflow |
|
815 | 816 | label_x_closed_issues_abbr: |
|
816 | 817 | zero: 0 geschlossen |
|
817 | 818 | one: 1 geschlossen |
|
818 | 819 | other: "%{count} geschlossen" |
|
819 | 820 | label_x_comments: |
|
820 | 821 | zero: keine Kommentare |
|
821 | 822 | one: 1 Kommentar |
|
822 | 823 | other: "%{count} Kommentare" |
|
823 | 824 | label_x_issues: |
|
824 | 825 | zero: 0 Tickets |
|
825 | 826 | one: 1 Ticket |
|
826 | 827 | other: "%{count} Tickets" |
|
827 | 828 | label_x_open_issues_abbr: |
|
828 | 829 | zero: 0 offen |
|
829 | 830 | one: 1 offen |
|
830 | 831 | other: "%{count} offen" |
|
831 | 832 | label_x_projects: |
|
832 | 833 | zero: keine Projekte |
|
833 | 834 | one: 1 Projekt |
|
834 | 835 | other: "%{count} Projekte" |
|
835 | 836 | label_year: Jahr |
|
836 | 837 | label_yesterday: gestern |
|
837 | 838 | |
|
838 | 839 | mail_body_account_activation_request: "Ein neuer Benutzer (%{value}) hat sich registriert. Sein Konto wartet auf Ihre Genehmigung:" |
|
839 | 840 | mail_body_account_information: Ihre Konto-Informationen |
|
840 | 841 | mail_body_account_information_external: "Sie können sich mit Ihrem Konto %{value} anmelden." |
|
841 | 842 | mail_body_lost_password: 'Benutzen Sie den folgenden Link, um Ihr Passwort zu ändern:' |
|
842 | 843 | mail_body_register: 'Um Ihr Konto zu aktivieren, benutzen Sie folgenden Link:' |
|
843 | 844 | mail_body_reminder: "%{count} Tickets, die Ihnen zugewiesen sind, müssen in den nächsten %{days} Tagen abgegeben werden:" |
|
844 | 845 | mail_body_wiki_content_added: "Die Wiki-Seite '%{id}' wurde von %{author} hinzugefügt." |
|
845 | 846 | mail_body_wiki_content_updated: "Die Wiki-Seite '%{id}' wurde von %{author} aktualisiert." |
|
846 | 847 | mail_subject_account_activation_request: "Antrag auf %{value} Kontoaktivierung" |
|
847 | 848 | mail_subject_lost_password: "Ihr %{value} Passwort" |
|
848 | 849 | mail_subject_register: "%{value} Kontoaktivierung" |
|
849 | 850 | mail_subject_reminder: "%{count} Tickets müssen in den nächsten %{days} Tagen abgegeben werden" |
|
850 | 851 | mail_subject_wiki_content_added: "Wiki-Seite '%{id}' hinzugefügt" |
|
851 | 852 | mail_subject_wiki_content_updated: "Wiki-Seite '%{id}' erfolgreich aktualisiert" |
|
852 | 853 | mail_subject_security_notification: "Sicherheitshinweis" |
|
853 | 854 | mail_body_security_notification_change: "%{field} wurde geändert." |
|
854 | 855 | mail_body_security_notification_change_to: "%{field} wurde geändert zu %{value}." |
|
855 | 856 | mail_body_security_notification_add: "%{field} %{value} wurde hinzugefügt." |
|
856 | 857 | mail_body_security_notification_remove: "%{field} %{value} wurde entfernt." |
|
857 | 858 | mail_body_security_notification_notify_enabled: "E-Mail-Adresse %{value} erhält nun Benachrichtigungen." |
|
858 | 859 | mail_body_security_notification_notify_disabled: "E-Mail-Adresse %{value} erhält keine Benachrichtigungen mehr." |
|
859 | 860 | |
|
860 | 861 | notice_account_activated: Ihr Konto ist aktiviert. Sie können sich jetzt anmelden. |
|
861 | 862 | notice_account_deleted: Ihr Benutzerkonto wurde unwiderruflich gelöscht. |
|
862 | 863 | notice_account_invalid_credentials: Benutzer oder Passwort ist ungültig. |
|
863 | 864 | notice_account_lost_email_sent: Eine E-Mail mit Anweisungen, ein neues Passwort zu wählen, wurde Ihnen geschickt. |
|
864 | 865 | notice_account_locked: Ihr Konto ist gesperrt. |
|
865 | 866 | notice_account_not_activated_yet: Sie haben Ihr Konto noch nicht aktiviert. Wenn Sie die Aktivierungsmail erneut erhalten wollen, <a href="%{url}">klicken Sie bitte hier</a>. |
|
866 | 867 | notice_account_password_updated: Passwort wurde erfolgreich aktualisiert. |
|
867 | 868 | notice_account_pending: "Ihr Konto wurde erstellt und wartet jetzt auf die Genehmigung des Administrators." |
|
868 | 869 | notice_account_register_done: Konto wurde erfolgreich angelegt. Eine E-Mail mit weiteren Instruktionen zur Kontoaktivierung wurde an %{email} gesendet. |
|
869 | 870 | notice_account_unknown_email: Unbekannter Benutzer. |
|
870 | 871 | notice_account_updated: Konto wurde erfolgreich aktualisiert. |
|
871 | 872 | notice_account_wrong_password: Falsches Passwort. |
|
872 | 873 | notice_api_access_key_reseted: Ihr API-Zugriffsschlüssel wurde zurückgesetzt. |
|
873 | 874 | notice_can_t_change_password: Dieses Konto verwendet eine externe Authentifizierungs-Quelle. Unmöglich, das Passwort zu ändern. |
|
874 | 875 | notice_default_data_loaded: Die Standard-Konfiguration wurde erfolgreich geladen. |
|
875 | 876 | notice_email_error: "Beim Senden einer E-Mail ist ein Fehler aufgetreten (%{value})." |
|
876 | 877 | notice_email_sent: "Eine E-Mail wurde an %{value} gesendet." |
|
877 | 878 | notice_failed_to_save_issues: "%{count} von %{total} ausgewählten Tickets konnte(n) nicht gespeichert werden: %{ids}." |
|
878 | 879 | notice_failed_to_save_members: "Benutzer konnte nicht gespeichert werden: %{errors}." |
|
879 | 880 | notice_failed_to_save_time_entries: "Gescheitert %{count} Zeiteinträge für %{total} von ausgewählten: %{ids} zu speichern." |
|
880 | 881 | notice_feeds_access_key_reseted: Ihr Atom-Zugriffsschlüssel wurde zurückgesetzt. |
|
881 | 882 | notice_file_not_found: Anhang existiert nicht oder ist gelöscht worden. |
|
882 | 883 | notice_gantt_chart_truncated: Die Grafik ist unvollständig, da das Maximum der anzeigbaren Aufgaben überschritten wurde (%{max}) |
|
883 | 884 | notice_issue_done_ratios_updated: Der Ticket-Fortschritt wurde aktualisiert. |
|
884 | 885 | notice_issue_successful_create: Ticket %{id} erstellt. |
|
885 | 886 | notice_issue_update_conflict: Das Ticket wurde während Ihrer Bearbeitung von einem anderen Nutzer überarbeitet. |
|
886 | 887 | notice_locking_conflict: Datum wurde von einem anderen Benutzer geändert. |
|
887 | 888 | notice_new_password_must_be_different: Das neue Passwort muss sich vom dem Aktuellen unterscheiden |
|
888 | 889 | notice_no_issue_selected: "Kein Ticket ausgewählt! Bitte wählen Sie die Tickets, die Sie bearbeiten möchten." |
|
889 | 890 | notice_not_authorized: Sie sind nicht berechtigt, auf diese Seite zuzugreifen. |
|
890 | 891 | notice_not_authorized_archived_project: Das Projekt wurde archiviert und ist daher nicht nicht verfügbar. |
|
891 | 892 | notice_successful_connection: Verbindung erfolgreich. |
|
892 | 893 | notice_successful_create: Erfolgreich angelegt |
|
893 | 894 | notice_successful_delete: Erfolgreich gelöscht. |
|
894 | 895 | notice_successful_update: Erfolgreich aktualisiert. |
|
895 | 896 | notice_unable_delete_time_entry: Der Zeiterfassungseintrag konnte nicht gelöscht werden. |
|
896 | 897 | notice_unable_delete_version: Die Version konnte nicht gelöscht werden. |
|
897 | 898 | notice_user_successful_create: Benutzer %{id} angelegt. |
|
898 | 899 | |
|
899 | 900 | permission_add_issue_notes: Kommentare hinzufügen |
|
900 | 901 | permission_add_issue_watchers: Beobachter hinzufügen |
|
901 | 902 | permission_add_issues: Tickets hinzufügen |
|
902 | 903 | permission_add_messages: Forenbeiträge hinzufügen |
|
903 | 904 | permission_add_project: Projekt erstellen |
|
904 | 905 | permission_add_subprojects: Unterprojekte erstellen |
|
905 | 906 | permission_add_documents: Dokumente hinzufügen |
|
906 | 907 | permission_browse_repository: Projektarchiv ansehen |
|
907 | 908 | permission_close_project: Schließen / erneutes Öffnen eines Projekts |
|
908 | 909 | permission_comment_news: News kommentieren |
|
909 | 910 | permission_commit_access: Commit-Zugriff |
|
910 | 911 | permission_delete_issue_watchers: Beobachter löschen |
|
911 | 912 | permission_delete_issues: Tickets löschen |
|
912 | 913 | permission_delete_messages: Forenbeiträge löschen |
|
913 | 914 | permission_delete_own_messages: Eigene Forenbeiträge löschen |
|
914 | 915 | permission_delete_wiki_pages: Wiki-Seiten löschen |
|
915 | 916 | permission_delete_wiki_pages_attachments: Anhänge löschen |
|
916 | 917 | permission_delete_documents: Dokumente löschen |
|
917 | 918 | permission_edit_issue_notes: Kommentare bearbeiten |
|
918 | 919 | permission_edit_issues: Tickets bearbeiten |
|
919 | 920 | permission_edit_messages: Forenbeiträge bearbeiten |
|
920 | 921 | permission_edit_own_issue_notes: Eigene Kommentare bearbeiten |
|
921 | 922 | permission_edit_own_messages: Eigene Forenbeiträge bearbeiten |
|
922 | 923 | permission_edit_own_time_entries: Selbst gebuchte Aufwände bearbeiten |
|
923 | 924 | permission_edit_project: Projekt bearbeiten |
|
924 | 925 | permission_edit_time_entries: Gebuchte Aufwände bearbeiten |
|
925 | 926 | permission_edit_wiki_pages: Wiki-Seiten bearbeiten |
|
926 | 927 | permission_edit_documents: Dokumente bearbeiten |
|
927 | 928 | permission_export_wiki_pages: Wiki-Seiten exportieren |
|
928 | 929 | permission_log_time: Aufwände buchen |
|
929 | 930 | permission_manage_boards: Foren verwalten |
|
930 | 931 | permission_manage_categories: Ticket-Kategorien verwalten |
|
931 | 932 | permission_manage_files: Dateien verwalten |
|
932 | 933 | permission_manage_issue_relations: Ticket-Beziehungen verwalten |
|
933 | 934 | permission_manage_members: Mitglieder verwalten |
|
934 | 935 | permission_manage_news: News verwalten |
|
935 | 936 | permission_manage_project_activities: Aktivitäten (Zeiterfassung) verwalten |
|
936 | 937 | permission_manage_public_queries: Öffentliche Filter verwalten |
|
937 | 938 | permission_manage_related_issues: Zugehörige Tickets verwalten |
|
938 | 939 | permission_manage_repository: Projektarchiv verwalten |
|
939 | 940 | permission_manage_subtasks: Unteraufgaben verwalten |
|
940 | 941 | permission_manage_versions: Versionen verwalten |
|
941 | 942 | permission_manage_wiki: Wiki verwalten |
|
942 | 943 | permission_move_issues: Tickets verschieben |
|
943 | 944 | permission_protect_wiki_pages: Wiki-Seiten schützen |
|
944 | 945 | permission_rename_wiki_pages: Wiki-Seiten umbenennen |
|
945 | 946 | permission_save_queries: Filter speichern |
|
946 | 947 | permission_select_project_modules: Projektmodule auswählen |
|
947 | 948 | permission_set_issues_private: Tickets privat oder öffentlich markieren |
|
948 | 949 | permission_set_notes_private: Kommentar als privat markieren |
|
949 | 950 | permission_set_own_issues_private: Eigene Tickets privat oder öffentlich markieren |
|
950 | 951 | permission_view_calendar: Kalender ansehen |
|
951 | 952 | permission_view_changesets: Changesets ansehen |
|
952 | 953 | permission_view_documents: Dokumente ansehen |
|
953 | 954 | permission_view_files: Dateien ansehen |
|
954 | 955 | permission_view_gantt: Gantt-Diagramm ansehen |
|
955 | 956 | permission_view_issue_watchers: Liste der Beobachter ansehen |
|
956 | 957 | permission_view_issues: Tickets anzeigen |
|
957 | 958 | permission_view_messages: Forenbeiträge ansehen |
|
958 | 959 | permission_view_private_notes: Private Kommentare sehen |
|
959 | 960 | permission_view_time_entries: Gebuchte Aufwände ansehen |
|
960 | 961 | permission_view_wiki_edits: Wiki-Versionsgeschichte ansehen |
|
961 | 962 | permission_view_wiki_pages: Wiki ansehen |
|
962 | 963 | |
|
963 | 964 | project_module_boards: Foren |
|
964 | 965 | project_module_calendar: Kalender |
|
965 | 966 | project_module_documents: Dokumente |
|
966 | 967 | project_module_files: Dateien |
|
967 | 968 | project_module_gantt: Gantt |
|
968 | 969 | project_module_issue_tracking: Ticket-Verfolgung |
|
969 | 970 | project_module_news: News |
|
970 | 971 | project_module_repository: Projektarchiv |
|
971 | 972 | project_module_time_tracking: Zeiterfassung |
|
972 | 973 | project_module_wiki: Wiki |
|
973 | 974 | project_status_active: aktiv |
|
974 | 975 | project_status_archived: archiviert |
|
975 | 976 | project_status_closed: geschlossen |
|
976 | 977 | |
|
977 | 978 | setting_activity_days_default: Anzahl Tage pro Seite der Projekt-Aktivität |
|
978 | 979 | setting_app_subtitle: Applikations-Untertitel |
|
979 | 980 | setting_app_title: Applikations-Titel |
|
980 | 981 | setting_attachment_max_size: Max. Dateigröße |
|
981 | 982 | setting_autofetch_changesets: Changesets automatisch abrufen |
|
982 | 983 | setting_autologin: Automatische Anmeldung läuft ab nach |
|
983 | 984 | setting_bcc_recipients: E-Mails als Blindkopie (BCC) senden |
|
984 | 985 | setting_cache_formatted_text: Formatierten Text im Cache speichern |
|
985 | 986 | setting_commit_cross_project_ref: Erlauben auf Tickets aller anderen Projekte zu referenzieren |
|
986 | 987 | setting_commit_fix_keywords: Schlüsselwörter (Status) |
|
987 | 988 | setting_commit_logtime_activity_id: Aktivität für die Zeiterfassung |
|
988 | 989 | setting_commit_logtime_enabled: Aktiviere Zeiterfassung via Commit-Nachricht |
|
989 | 990 | setting_commit_ref_keywords: Schlüsselwörter (Beziehungen) |
|
990 | 991 | setting_cross_project_issue_relations: Ticket-Beziehungen zwischen Projekten erlauben |
|
991 | 992 | setting_cross_project_subtasks: Projektübergreifende Unteraufgaben erlauben |
|
992 | 993 | setting_date_format: Datumsformat |
|
993 | 994 | setting_default_issue_start_date_to_creation_date: Aktuelles Datum als Beginn für neue Tickets verwenden |
|
994 | 995 | setting_default_language: Standardsprache |
|
995 | 996 | setting_default_notification_option: Standard Benachrichtigungsoptionen |
|
996 | 997 | setting_default_projects_modules: Standardmäßig aktivierte Module für neue Projekte |
|
997 | 998 | setting_default_projects_public: Neue Projekte sind standardmäßig öffentlich |
|
998 | 999 | setting_default_projects_tracker_ids: Standardmäßig aktivierte Tracker für neue Projekte |
|
999 | 1000 | setting_diff_max_lines_displayed: Maximale Anzahl anzuzeigender Diff-Zeilen |
|
1000 | 1001 | setting_display_subprojects_issues: Tickets von Unterprojekten im Hauptprojekt anzeigen |
|
1001 | 1002 | setting_emails_footer: E-Mail-Fußzeile |
|
1002 | 1003 | setting_emails_header: E-Mail-Kopfzeile |
|
1003 | 1004 | setting_enabled_scm: Aktivierte Versionskontrollsysteme |
|
1004 | 1005 | setting_feeds_limit: Max. Anzahl Einträge pro Atom-Feed |
|
1005 | 1006 | setting_file_max_size_displayed: Maximale Größe inline angezeigter Textdateien |
|
1006 | 1007 | setting_force_default_language_for_anonymous: Standardsprache für anonyme Benutzer erzwingen |
|
1007 | 1008 | setting_force_default_language_for_loggedin: Standardsprache für angemeldete Benutzer erzwingen |
|
1008 | 1009 | setting_gantt_items_limit: Maximale Anzahl von Aufgaben die im Gantt-Chart angezeigt werden |
|
1009 | 1010 | setting_gravatar_default: Standard-Gravatar-Bild |
|
1010 | 1011 | setting_gravatar_enabled: Gravatar-Benutzerbilder benutzen |
|
1011 | 1012 | setting_host_name: Hostname |
|
1012 | 1013 | setting_issue_done_ratio: Berechne den Ticket-Fortschritt mittels |
|
1013 | 1014 | setting_issue_done_ratio_issue_field: Ticket-Feld %-erledigt |
|
1014 | 1015 | setting_issue_done_ratio_issue_status: Ticket-Status |
|
1015 | 1016 | setting_issue_group_assignment: Ticketzuweisung an Gruppen erlauben |
|
1016 | 1017 | setting_issue_list_default_columns: Standard-Spalten in der Ticket-Auflistung |
|
1017 | 1018 | setting_issues_export_limit: Max. Anzahl Tickets bei CSV/PDF-Export |
|
1018 | 1019 | setting_jsonp_enabled: JSONP Unterstützung aktivieren |
|
1019 | 1020 | setting_link_copied_issue: Tickets beim kopieren verlinken |
|
1020 | 1021 | setting_login_required: Authentifizierung erforderlich |
|
1021 | 1022 | setting_mail_from: E-Mail-Absender |
|
1022 | 1023 | setting_mail_handler_api_enabled: Abruf eingehender E-Mails aktivieren |
|
1023 | 1024 | setting_mail_handler_api_key: API-Schlüssel für eingehende E-Mails |
|
1024 | 1025 | setting_sys_api_key: API-Schlüssel für Webservice zur Projektarchiv-Verwaltung |
|
1025 | 1026 | setting_mail_handler_body_delimiters: "Schneide E-Mails nach einer dieser Zeilen ab" |
|
1026 | 1027 | setting_mail_handler_excluded_filenames: Anhänge nach Namen ausschließen |
|
1027 | 1028 | setting_new_project_user_role_id: Rolle, die einem Nicht-Administrator zugeordnet wird, der ein Projekt erstellt |
|
1028 | 1029 | setting_non_working_week_days: Arbeitsfreie Tage |
|
1029 | 1030 | setting_openid: Erlaube OpenID-Anmeldung und -Registrierung |
|
1030 | 1031 | setting_password_min_length: Mindestlänge des Passworts |
|
1031 | 1032 | setting_password_max_age: Erzwinge Passwortwechsel nach |
|
1032 | 1033 | setting_lost_password: Erlaube Passwort-Zurücksetzen per E-Mail |
|
1033 | 1034 | setting_per_page_options: Objekte pro Seite |
|
1034 | 1035 | setting_plain_text_mail: Nur reinen Text (kein HTML) senden |
|
1035 | 1036 | setting_protocol: Protokoll |
|
1036 | 1037 | setting_repositories_encodings: Kodierung von Anhängen und Repositories |
|
1037 | 1038 | setting_repository_log_display_limit: Maximale Anzahl anzuzeigender Revisionen in der Historie einer Datei |
|
1038 | 1039 | setting_rest_api_enabled: REST-Schnittstelle aktivieren |
|
1039 | 1040 | setting_self_registration: Registrierung ermöglichen |
|
1040 | 1041 | setting_sequential_project_identifiers: Fortlaufende Projektkennungen generieren |
|
1041 | 1042 | setting_session_lifetime: Längste Dauer einer Sitzung |
|
1042 | 1043 | setting_session_timeout: Zeitüberschreitung bei Inaktivität |
|
1043 | 1044 | setting_start_of_week: Wochenanfang |
|
1044 | 1045 | setting_sys_api_enabled: Webservice zur Verwaltung der Projektarchive benutzen |
|
1045 | 1046 | setting_text_formatting: Textformatierung |
|
1046 | 1047 | setting_thumbnails_enabled: Vorschaubilder von Dateianhängen anzeigen |
|
1047 | 1048 | setting_thumbnails_size: Größe der Vorschaubilder (in Pixel) |
|
1048 | 1049 | setting_time_format: Zeitformat |
|
1049 | 1050 | setting_unsubscribe: Erlaubt Benutzern das eigene Benutzerkonto zu löschen |
|
1050 | 1051 | setting_user_format: Benutzer-Anzeigeformat |
|
1051 | 1052 | setting_welcome_text: Willkommenstext |
|
1052 | 1053 | setting_wiki_compression: Wiki-Historie komprimieren |
|
1053 | 1054 | |
|
1054 | 1055 | status_active: aktiv |
|
1055 | 1056 | status_locked: gesperrt |
|
1056 | 1057 | status_registered: nicht aktivierte |
|
1057 | 1058 | |
|
1058 | 1059 | text_account_destroy_confirmation: "Möchten Sie wirklich fortfahren?\nIhr Benutzerkonto wird für immer gelöscht und kann nicht wiederhergestellt werden." |
|
1059 | 1060 | text_are_you_sure: Sind Sie sicher? |
|
1060 | 1061 | text_assign_time_entries_to_project: Gebuchte Aufwände dem Projekt zuweisen |
|
1061 | 1062 | text_caracters_maximum: "Max. %{count} Zeichen." |
|
1062 | 1063 | text_caracters_minimum: "Muss mindestens %{count} Zeichen lang sein." |
|
1063 | 1064 | text_comma_separated: Mehrere Werte erlaubt (durch Komma getrennt). |
|
1064 | 1065 | text_convert_available: ImageMagick-Konvertierung verfügbar (optional) |
|
1065 | 1066 | text_custom_field_possible_values_info: 'Eine Zeile pro Wert' |
|
1066 | 1067 | text_default_administrator_account_changed: Administrator-Passwort geändert |
|
1067 | 1068 | text_destroy_time_entries: Gebuchte Aufwände löschen |
|
1068 | 1069 | text_destroy_time_entries_question: Es wurden bereits %{hours} Stunden auf dieses Ticket gebucht. Was soll mit den Aufwänden geschehen? |
|
1069 | 1070 | text_diff_truncated: '... Dieser Diff wurde abgeschnitten, weil er die maximale Anzahl anzuzeigender Zeilen überschreitet.' |
|
1070 | 1071 | text_email_delivery_not_configured: "Der SMTP-Server ist nicht konfiguriert und Mailbenachrichtigungen sind ausgeschaltet.\nNehmen Sie die Einstellungen für Ihren SMTP-Server in config/configuration.yml vor und starten Sie die Applikation neu." |
|
1071 | 1072 | text_enumeration_category_reassign_to: 'Die Objekte stattdessen diesem Wert zuordnen:' |
|
1072 | 1073 | text_enumeration_destroy_question: "%{count} Objekt(e) sind diesem Wert zugeordnet." |
|
1073 | 1074 | text_file_repository_writable: Verzeichnis für Dateien beschreibbar |
|
1074 | 1075 | text_git_repository_note: Repository steht für sich alleine (bare) und liegt lokal (z.B. /gitrepo, c:\gitrepo) |
|
1075 | 1076 | text_issue_added: "Ticket %{id} wurde erstellt von %{author}." |
|
1076 | 1077 | text_issue_category_destroy_assignments: Kategorie-Zuordnung entfernen |
|
1077 | 1078 | text_issue_category_destroy_question: "Einige Tickets (%{count}) sind dieser Kategorie zugeodnet. Was möchten Sie tun?" |
|
1078 | 1079 | text_issue_category_reassign_to: Tickets dieser Kategorie zuordnen |
|
1079 | 1080 | text_issue_conflict_resolution_add_notes: Meine Änderungen übernehmen und alle anderen Änderungen verwerfen |
|
1080 | 1081 | text_issue_conflict_resolution_cancel: Meine Änderungen verwerfen und %{link} neu anzeigen |
|
1081 | 1082 | text_issue_conflict_resolution_overwrite: Meine Änderungen trotzdem übernehmen (vorherige Notizen bleiben erhalten aber manche können überschrieben werden) |
|
1082 | 1083 | text_issue_updated: "Ticket %{id} wurde aktualisiert von %{author}." |
|
1083 | 1084 | text_issues_destroy_confirmation: 'Sind Sie sicher, dass Sie die ausgewählten Tickets löschen möchten?' |
|
1084 | 1085 | text_issues_destroy_descendants_confirmation: Dies wird auch %{count} Unteraufgabe/n löschen. |
|
1085 | 1086 | text_issues_ref_in_commit_messages: Ticket-Beziehungen und -Status in Commit-Nachrichten |
|
1086 | 1087 | text_journal_added: "%{label} %{value} wurde hinzugefügt" |
|
1087 | 1088 | text_journal_changed: "%{label} wurde von %{old} zu %{new} geändert" |
|
1088 | 1089 | text_journal_changed_no_detail: "%{label} aktualisiert" |
|
1089 | 1090 | text_journal_deleted: "%{label} %{old} wurde gelöscht" |
|
1090 | 1091 | text_journal_set_to: "%{label} wurde auf %{value} gesetzt" |
|
1091 | 1092 | text_length_between: "Länge zwischen %{min} und %{max} Zeichen." |
|
1092 | 1093 | text_line_separated: Mehrere Werte sind erlaubt (eine Zeile pro Wert). |
|
1093 | 1094 | text_load_default_configuration: Standard-Konfiguration laden |
|
1094 | 1095 | text_mercurial_repository_note: Lokales repository (e.g. /hgrepo, c:\hgrepo) |
|
1095 | 1096 | text_min_max_length_info: 0 heißt keine Beschränkung |
|
1096 | 1097 | text_no_configuration_data: "Rollen, Tracker, Ticket-Status und Workflows wurden noch nicht konfiguriert.\nEs ist sehr zu empfehlen, die Standard-Konfiguration zu laden. Sobald sie geladen ist, können Sie diese abändern." |
|
1097 | 1098 | text_own_membership_delete_confirmation: "Sie sind dabei, einige oder alle Ihre Berechtigungen zu entfernen. Es ist möglich, dass Sie danach das Projekt nicht mehr ansehen oder bearbeiten dürfen.\nSind Sie sicher, dass Sie dies tun möchten?" |
|
1098 | 1099 | text_plugin_assets_writable: Verzeichnis für Plugin-Assets beschreibbar |
|
1099 | 1100 | text_project_closed: Dieses Projekt ist geschlossen und kann nicht bearbeitet werden. |
|
1100 | 1101 | text_project_destroy_confirmation: Sind Sie sicher, dass Sie das Projekt löschen wollen? |
|
1101 | 1102 | text_project_identifier_info: 'Kleinbuchstaben (a-z), Ziffern, Binde- und Unterstriche erlaubt, muss mit einem Kleinbuchstaben beginnen.<br />Einmal gespeichert, kann die Kennung nicht mehr geändert werden.' |
|
1102 | 1103 | text_reassign_time_entries: 'Gebuchte Aufwände diesem Ticket zuweisen:' |
|
1103 | 1104 | text_regexp_info: z. B. ^[A-Z0-9]+$ |
|
1104 | 1105 | text_repository_identifier_info: 'Kleinbuchstaben (a-z), Ziffern, Binde- und Unterstriche erlaubt.<br />Einmal gespeichert, kann die Kennung nicht mehr geändert werden.' |
|
1105 | 1106 | text_repository_usernames_mapping: "Bitte legen Sie die Zuordnung der Redmine-Benutzer zu den Benutzernamen der Commit-Nachrichten des Projektarchivs fest.\nBenutzer mit identischen Redmine- und Projektarchiv-Benutzernamen oder -E-Mail-Adressen werden automatisch zugeordnet." |
|
1106 | 1107 | text_rmagick_available: RMagick verfügbar (optional) |
|
1107 | 1108 | text_scm_command: Kommando |
|
1108 | 1109 | text_scm_command_not_available: SCM-Kommando ist nicht verfügbar. Bitte prüfen Sie die Einstellungen im Administrationspanel. |
|
1109 | 1110 | text_scm_command_version: Version |
|
1110 | 1111 | text_scm_config: Die SCM-Kommandos können in der in config/configuration.yml konfiguriert werden. Redmine muss anschließend neu gestartet werden. |
|
1111 | 1112 | text_scm_path_encoding_note: "Standard: UTF-8" |
|
1112 | 1113 | text_select_mail_notifications: Bitte wählen Sie die Aktionen aus, für die eine Mailbenachrichtigung gesendet werden soll. |
|
1113 | 1114 | text_select_project_modules: 'Bitte wählen Sie die Module aus, die in diesem Projekt aktiviert sein sollen:' |
|
1114 | 1115 | text_session_expiration_settings: "Achtung: Änderungen können aktuelle Sitzungen beenden, Ihre eingeschlossen!" |
|
1115 | 1116 | text_status_changed_by_changeset: "Status geändert durch Changeset %{value}." |
|
1116 | 1117 | text_subprojects_destroy_warning: "Dessen Unterprojekte (%{value}) werden ebenfalls gelöscht." |
|
1117 | 1118 | text_subversion_repository_note: 'Beispiele: file:///, http://, https://, svn://, svn+[tunnelscheme]://' |
|
1118 | 1119 | text_time_entries_destroy_confirmation: Sind Sie sicher, dass Sie die ausgewählten Zeitaufwände löschen möchten? |
|
1119 | 1120 | text_time_logged_by_changeset: Angewendet in Changeset %{value}. |
|
1120 | 1121 | text_tip_issue_begin_day: Aufgabe, die an diesem Tag beginnt |
|
1121 | 1122 | text_tip_issue_begin_end_day: Aufgabe, die an diesem Tag beginnt und endet |
|
1122 | 1123 | text_tip_issue_end_day: Aufgabe, die an diesem Tag endet |
|
1123 | 1124 | text_tracker_no_workflow: Kein Workflow für diesen Tracker definiert. |
|
1124 | 1125 | text_turning_multiple_off: Wenn Sie die Mehrfachauswahl deaktivieren, werden Felder mit Mehrfachauswahl bereinigt. |
|
1125 | 1126 | Dadurch wird sichergestellt, dass lediglich ein Wert pro Feld ausgewählt ist. |
|
1126 | 1127 | text_unallowed_characters: Nicht erlaubte Zeichen |
|
1127 | 1128 | text_user_mail_option: "Für nicht ausgewählte Projekte werden Sie nur Benachrichtigungen für Dinge erhalten, die Sie beobachten oder an denen Sie beteiligt sind (z. B. Tickets, deren Autor Sie sind oder die Ihnen zugewiesen sind)." |
|
1128 | 1129 | text_user_wrote: "%{value} schrieb:" |
|
1129 | 1130 | text_warn_on_leaving_unsaved: Die aktuellen Änderungen gehen verloren, wenn Sie diese Seite verlassen. |
|
1130 | 1131 | text_wiki_destroy_confirmation: Sind Sie sicher, dass Sie dieses Wiki mit sämtlichem Inhalt löschen möchten? |
|
1131 | 1132 | text_wiki_page_destroy_children: Lösche alle Unterseiten |
|
1132 | 1133 | text_wiki_page_destroy_question: "Diese Seite hat %{descendants} Unterseite(n). Was möchten Sie tun?" |
|
1133 | 1134 | text_wiki_page_nullify_children: Verschiebe die Unterseiten auf die oberste Ebene |
|
1134 | 1135 | text_wiki_page_reassign_children: Ordne die Unterseiten dieser Seite zu |
|
1135 | 1136 | text_workflow_edit: Workflow zum Bearbeiten auswählen |
|
1136 | 1137 | text_zoom_in: Ansicht vergrößern |
|
1137 | 1138 | text_zoom_out: Ansicht verkleinern |
|
1138 | 1139 | |
|
1139 | 1140 | version_status_closed: abgeschlossen |
|
1140 | 1141 | version_status_locked: gesperrt |
|
1141 | 1142 | version_status_open: offen |
|
1142 | 1143 | |
|
1143 | 1144 | warning_attachments_not_saved: "%{count} Datei(en) konnten nicht gespeichert werden." |
|
1144 | 1145 | label_search_attachments_yes: Namen und Beschreibungen von Anhängen durchsuchen |
|
1145 | 1146 | label_search_attachments_no: Keine Anhänge suchen |
|
1146 | 1147 | label_search_attachments_only: Nur Anhänge suchen |
|
1147 | 1148 | label_search_open_issues_only: Nur offene Tickets |
|
1148 | 1149 | field_address: E-Mail |
|
1149 | 1150 | setting_max_additional_emails: Maximale Anzahl zusätzlicher E-Mailadressen |
|
1150 | 1151 | label_email_address_plural: E-Mails |
|
1151 | 1152 | label_email_address_add: E-Mailadresse hinzufügen |
|
1152 | 1153 | label_enable_notifications: Benachrichtigungen aktivieren |
|
1153 | 1154 | label_disable_notifications: Benachrichtigungen deaktivieren |
|
1154 | 1155 | setting_search_results_per_page: Suchergebnisse pro Seite |
|
1155 | 1156 | label_blank_value: leer |
|
1156 | 1157 | permission_copy_issues: Tickets kopieren |
|
1157 | 1158 | error_password_expired: Ihr Passwort ist abgelaufen oder der Administrator verlangt eine Passwortänderung. |
|
1158 | 1159 | field_time_entries_visibility: Zeiten-Sichtbarkeit |
|
1159 | 1160 | field_remote_ip: IP-Adresse |
|
1160 | 1161 | label_parent_task_attributes: Eigenschaften übergeordneter Aufgaben |
|
1161 | 1162 | label_parent_task_attributes_derived: Abgeleitet von Unteraufgaben |
|
1162 | 1163 | label_parent_task_attributes_independent: Unabhängig von Unteraufgaben |
|
1163 | 1164 | label_time_entries_visibility_all: Alle Zeitaufwände |
|
1164 | 1165 | label_time_entries_visibility_own: Nur eigene Aufwände |
|
1165 | 1166 | label_member_management: Mitglieder verwalten |
|
1166 | 1167 | label_member_management_all_roles: Alle Rollen |
|
1167 | 1168 | label_member_management_selected_roles_only: Nur diese Rollen |
|
1168 | 1169 | label_total_spent_time: Aufgewendete Zeit aller Projekte anzeigen |
|
1169 | 1170 | notice_import_finished: Alle %{count} Einträge wurden importiert. |
|
1170 | 1171 | notice_import_finished_with_errors: ! '%{count} von %{total} Einträgen konnten nicht importiert werden.' |
|
1171 | 1172 | error_invalid_file_encoding: Die Datei ist keine gültige %{encoding} kodierte Datei |
|
1172 | 1173 | error_invalid_csv_file_or_settings: Die Datei ist keine CSV-Datei oder entspricht nicht den Einstellungen unten |
|
1173 | 1174 | error_can_not_read_import_file: Beim Einlesen der Datei ist ein Fehler aufgetreten |
|
1174 | 1175 | permission_import_issues: Tickets importieren |
|
1175 | 1176 | label_import_issues: Tickets importieren |
|
1176 | 1177 | label_select_file_to_import: Bitte wählen Sie eine Datei für den Import aus |
|
1177 | 1178 | label_fields_separator: Trennzeichen |
|
1178 | 1179 | label_fields_wrapper: Textqualifizierer |
|
1179 | 1180 | label_encoding: Kodierung |
|
1180 | 1181 | label_comma_char: Komma |
|
1181 | 1182 | label_semi_colon_char: Semikolon |
|
1182 | 1183 | label_quote_char: Anführungszeichen |
|
1183 | 1184 | label_double_quote_char: Doppelte Anführungszeichen |
|
1184 | 1185 | label_fields_mapping: Zuordnung der Felder |
|
1185 | 1186 | label_file_content_preview: Inhaltsvorschau |
|
1186 | 1187 | label_create_missing_values: Ergänze fehlende Werte |
|
1187 | 1188 | button_import: Importieren |
|
1188 | 1189 | field_total_estimated_hours: Summe des geschätzten Aufwands |
|
1189 | 1190 | label_api: API |
|
1190 | 1191 | label_total_plural: Summe |
|
1191 | 1192 | label_assigned_issues: Zugewiesene Tickets |
|
1192 | 1193 | label_field_format_enumeration: Eigenschaft/Wert-Paare |
|
1193 | 1194 | label_f_hour_short: '%{value} h' |
|
1194 | 1195 | field_default_version: Standard-Version |
|
1195 | 1196 | error_attachment_extension_not_allowed: Der Dateityp %{extension} des Anhangs ist nicht zugelassen |
|
1196 | 1197 | setting_attachment_extensions_allowed: Zugelassene Dateitypen |
|
1197 | 1198 | setting_attachment_extensions_denied: Nicht zugelassene Dateitypen |
|
1198 | 1199 | label_any_open_issues: irgendein offenes Ticket |
|
1199 | 1200 | label_no_open_issues: kein offenes Ticket |
|
1200 | 1201 | label_default_values_for_new_users: Standardwerte für neue Benutzer |
|
1201 | 1202 | error_ldap_bind_credentials: Invalid LDAP Account/Password |
|
1202 | 1203 | mail_body_settings_updated: ! 'The following settings were changed:' |
|
1203 | 1204 | label_relations: Relations |
|
1204 | 1205 | button_filter: Filter |
@@ -1,1203 +1,1204 | |||
|
1 | 1 | en-GB: |
|
2 | 2 | direction: ltr |
|
3 | 3 | date: |
|
4 | 4 | formats: |
|
5 | 5 | # Use the strftime parameters for formats. |
|
6 | 6 | # When no format has been given, it uses default. |
|
7 | 7 | # You can provide other formats here if you like! |
|
8 | 8 | default: "%d/%m/%Y" |
|
9 | 9 | short: "%d %b" |
|
10 | 10 | long: "%d %B, %Y" |
|
11 | 11 | |
|
12 | 12 | day_names: [Sunday, Monday, Tuesday, Wednesday, Thursday, Friday, Saturday] |
|
13 | 13 | abbr_day_names: [Sun, Mon, Tue, Wed, Thu, Fri, Sat] |
|
14 | 14 | |
|
15 | 15 | # Don't forget the nil at the beginning; there's no such thing as a 0th month |
|
16 | 16 | month_names: [~, January, February, March, April, May, June, July, August, September, October, November, December] |
|
17 | 17 | abbr_month_names: [~, Jan, Feb, Mar, Apr, May, Jun, Jul, Aug, Sep, Oct, Nov, Dec] |
|
18 | 18 | # Used in date_select and datime_select. |
|
19 | 19 | order: |
|
20 | 20 | - :year |
|
21 | 21 | - :month |
|
22 | 22 | - :day |
|
23 | 23 | |
|
24 | 24 | time: |
|
25 | 25 | formats: |
|
26 | 26 | default: "%d/%m/%Y %I:%M %p" |
|
27 | 27 | time: "%I:%M %p" |
|
28 | 28 | short: "%d %b %H:%M" |
|
29 | 29 | long: "%d %B, %Y %H:%M" |
|
30 | 30 | am: "am" |
|
31 | 31 | pm: "pm" |
|
32 | 32 | |
|
33 | 33 | datetime: |
|
34 | 34 | distance_in_words: |
|
35 | 35 | half_a_minute: "half a minute" |
|
36 | 36 | less_than_x_seconds: |
|
37 | 37 | one: "less than 1 second" |
|
38 | 38 | other: "less than %{count} seconds" |
|
39 | 39 | x_seconds: |
|
40 | 40 | one: "1 second" |
|
41 | 41 | other: "%{count} seconds" |
|
42 | 42 | less_than_x_minutes: |
|
43 | 43 | one: "less than a minute" |
|
44 | 44 | other: "less than %{count} minutes" |
|
45 | 45 | x_minutes: |
|
46 | 46 | one: "1 minute" |
|
47 | 47 | other: "%{count} minutes" |
|
48 | 48 | about_x_hours: |
|
49 | 49 | one: "about 1 hour" |
|
50 | 50 | other: "about %{count} hours" |
|
51 | 51 | x_hours: |
|
52 | 52 | one: "1 hour" |
|
53 | 53 | other: "%{count} hours" |
|
54 | 54 | x_days: |
|
55 | 55 | one: "1 day" |
|
56 | 56 | other: "%{count} days" |
|
57 | 57 | about_x_months: |
|
58 | 58 | one: "about 1 month" |
|
59 | 59 | other: "about %{count} months" |
|
60 | 60 | x_months: |
|
61 | 61 | one: "1 month" |
|
62 | 62 | other: "%{count} months" |
|
63 | 63 | about_x_years: |
|
64 | 64 | one: "about 1 year" |
|
65 | 65 | other: "about %{count} years" |
|
66 | 66 | over_x_years: |
|
67 | 67 | one: "over 1 year" |
|
68 | 68 | other: "over %{count} years" |
|
69 | 69 | almost_x_years: |
|
70 | 70 | one: "almost 1 year" |
|
71 | 71 | other: "almost %{count} years" |
|
72 | 72 | |
|
73 | 73 | number: |
|
74 | 74 | format: |
|
75 | 75 | separator: "." |
|
76 | 76 | delimiter: " " |
|
77 | 77 | precision: 3 |
|
78 | 78 | |
|
79 | 79 | currency: |
|
80 | 80 | format: |
|
81 | 81 | format: "%u%n" |
|
82 | 82 | unit: "£" |
|
83 | 83 | |
|
84 | 84 | human: |
|
85 | 85 | format: |
|
86 | 86 | delimiter: "" |
|
87 | 87 | precision: 3 |
|
88 | 88 | storage_units: |
|
89 | 89 | format: "%n %u" |
|
90 | 90 | units: |
|
91 | 91 | byte: |
|
92 | 92 | one: "Byte" |
|
93 | 93 | other: "Bytes" |
|
94 | 94 | kb: "KB" |
|
95 | 95 | mb: "MB" |
|
96 | 96 | gb: "GB" |
|
97 | 97 | tb: "TB" |
|
98 | 98 | |
|
99 | 99 | # Used in array.to_sentence. |
|
100 | 100 | support: |
|
101 | 101 | array: |
|
102 | 102 | sentence_connector: "and" |
|
103 | 103 | skip_last_comma: false |
|
104 | 104 | |
|
105 | 105 | activerecord: |
|
106 | 106 | errors: |
|
107 | 107 | template: |
|
108 | 108 | header: |
|
109 | 109 | one: "1 error prohibited this %{model} from being saved" |
|
110 | 110 | other: "%{count} errors prohibited this %{model} from being saved" |
|
111 | 111 | messages: |
|
112 | 112 | inclusion: "is not included in the list" |
|
113 | 113 | exclusion: "is reserved" |
|
114 | 114 | invalid: "is invalid" |
|
115 | 115 | confirmation: "doesn't match confirmation" |
|
116 | 116 | accepted: "must be accepted" |
|
117 | 117 | empty: "cannot be empty" |
|
118 | 118 | blank: "cannot be blank" |
|
119 | 119 | too_long: "is too long (maximum is %{count} characters)" |
|
120 | 120 | too_short: "is too short (minimum is %{count} characters)" |
|
121 | 121 | wrong_length: "is the wrong length (should be %{count} characters)" |
|
122 | 122 | taken: "has already been taken" |
|
123 | 123 | not_a_number: "is not a number" |
|
124 | 124 | not_a_date: "is not a valid date" |
|
125 | 125 | greater_than: "must be greater than %{count}" |
|
126 | 126 | greater_than_or_equal_to: "must be greater than or equal to %{count}" |
|
127 | 127 | equal_to: "must be equal to %{count}" |
|
128 | 128 | less_than: "must be less than %{count}" |
|
129 | 129 | less_than_or_equal_to: "must be less than or equal to %{count}" |
|
130 | 130 | odd: "must be odd" |
|
131 | 131 | even: "must be even" |
|
132 | 132 | greater_than_start_date: "must be greater than start date" |
|
133 | 133 | not_same_project: "doesn't belong to the same project" |
|
134 | 134 | circular_dependency: "This relation would create a circular dependency" |
|
135 | 135 | cant_link_an_issue_with_a_descendant: "An issue cannot be linked to one of its subtasks" |
|
136 | 136 | earlier_than_minimum_start_date: "cannot be earlier than %{date} because of preceding issues" |
|
137 | 137 | |
|
138 | 138 | actionview_instancetag_blank_option: Please select |
|
139 | 139 | |
|
140 | 140 | general_text_No: 'No' |
|
141 | 141 | general_text_Yes: 'Yes' |
|
142 | 142 | general_text_no: 'no' |
|
143 | 143 | general_text_yes: 'yes' |
|
144 | 144 | general_lang_name: 'English (British)' |
|
145 | 145 | general_csv_separator: ',' |
|
146 | 146 | general_csv_decimal_separator: '.' |
|
147 | 147 | general_csv_encoding: ISO-8859-1 |
|
148 | 148 | general_pdf_fontname: freesans |
|
149 | 149 | general_pdf_monospaced_fontname: freemono |
|
150 | 150 | general_first_day_of_week: '1' |
|
151 | 151 | |
|
152 | 152 | notice_account_updated: Account was successfully updated. |
|
153 | 153 | notice_account_invalid_credentials: Invalid user or password |
|
154 | 154 | notice_account_password_updated: Password was successfully updated. |
|
155 | 155 | notice_account_wrong_password: Wrong password |
|
156 | 156 | notice_account_register_done: Account was successfully created. An email containing the instructions to activate your account was sent to %{email}. |
|
157 | 157 | notice_account_unknown_email: Unknown user. |
|
158 | 158 | notice_can_t_change_password: This account uses an external authentication source. Impossible to change the password. |
|
159 | 159 | notice_account_lost_email_sent: An email with instructions to choose a new password has been sent to you. |
|
160 | 160 | notice_account_activated: Your account has been activated. You can now log in. |
|
161 | 161 | notice_successful_create: Successful creation. |
|
162 | 162 | notice_successful_update: Successful update. |
|
163 | 163 | notice_successful_delete: Successful deletion. |
|
164 | 164 | notice_successful_connection: Successful connection. |
|
165 | 165 | notice_file_not_found: The page you were trying to access doesn't exist or has been removed. |
|
166 | 166 | notice_locking_conflict: Data has been updated by another user. |
|
167 | 167 | notice_not_authorized: You are not authorised to access this page. |
|
168 | 168 | notice_not_authorized_archived_project: The project you're trying to access has been archived. |
|
169 | 169 | notice_email_sent: "An email was sent to %{value}" |
|
170 | 170 | notice_email_error: "An error occurred while sending mail (%{value})" |
|
171 | 171 | notice_feeds_access_key_reseted: Your Atom access key was reset. |
|
172 | 172 | notice_api_access_key_reseted: Your API access key was reset. |
|
173 | 173 | notice_failed_to_save_issues: "Failed to save %{count} issue(s) on %{total} selected: %{ids}." |
|
174 | 174 | notice_failed_to_save_members: "Failed to save member(s): %{errors}." |
|
175 | 175 | notice_no_issue_selected: "No issue is selected! Please, check the issues you want to edit." |
|
176 | 176 | notice_account_pending: "Your account was created and is now pending administrator approval." |
|
177 | 177 | notice_default_data_loaded: Default configuration successfully loaded. |
|
178 | 178 | notice_unable_delete_version: Unable to delete version. |
|
179 | 179 | notice_unable_delete_time_entry: Unable to delete time log entry. |
|
180 | 180 | notice_issue_done_ratios_updated: Issue done ratios updated. |
|
181 | 181 | notice_gantt_chart_truncated: "The chart was truncated because it exceeds the maximum number of items that can be displayed (%{max})" |
|
182 | 182 | |
|
183 | 183 | error_can_t_load_default_data: "Default configuration could not be loaded: %{value}" |
|
184 | 184 | error_scm_not_found: "The entry or revision was not found in the repository." |
|
185 | 185 | error_scm_command_failed: "An error occurred when trying to access the repository: %{value}" |
|
186 | 186 | error_scm_annotate: "The entry does not exist or cannot be annotated." |
|
187 | 187 | error_scm_annotate_big_text_file: "The entry cannot be annotated, as it exceeds the maximum text file size." |
|
188 | 188 | error_issue_not_found_in_project: 'The issue was not found or does not belong to this project' |
|
189 | 189 | error_no_tracker_in_project: 'No tracker is associated to this project. Please check the Project settings.' |
|
190 | 190 | error_no_default_issue_status: 'No default issue status is defined. Please check your configuration (Go to "Administration -> Issue statuses").' |
|
191 | 191 | error_can_not_delete_custom_field: Unable to delete custom field |
|
192 | 192 | error_can_not_delete_tracker: "This tracker contains issues and cannot be deleted." |
|
193 | 193 | error_can_not_remove_role: "This role is in use and cannot be deleted." |
|
194 | 194 | error_can_not_reopen_issue_on_closed_version: 'An issue assigned to a closed version cannot be reopened' |
|
195 | 195 | error_can_not_archive_project: This project cannot be archived |
|
196 | 196 | error_issue_done_ratios_not_updated: "Issue done ratios not updated." |
|
197 | 197 | error_workflow_copy_source: 'Please select a source tracker or role' |
|
198 | 198 | error_workflow_copy_target: 'Please select target tracker(s) and role(s)' |
|
199 | 199 | error_unable_delete_issue_status: 'Unable to delete issue status' |
|
200 | 200 | error_unable_to_connect: "Unable to connect (%{value})" |
|
201 | 201 | warning_attachments_not_saved: "%{count} file(s) could not be saved." |
|
202 | 202 | |
|
203 | 203 | mail_subject_lost_password: "Your %{value} password" |
|
204 | 204 | mail_body_lost_password: 'To change your password, click on the following link:' |
|
205 | 205 | mail_subject_register: "Your %{value} account activation" |
|
206 | 206 | mail_body_register: 'To activate your account, click on the following link:' |
|
207 | 207 | mail_body_account_information_external: "You can use your %{value} account to log in." |
|
208 | 208 | mail_body_account_information: Your account information |
|
209 | 209 | mail_subject_account_activation_request: "%{value} account activation request" |
|
210 | 210 | mail_body_account_activation_request: "A new user (%{value}) has registered. The account is pending your approval:" |
|
211 | 211 | mail_subject_reminder: "%{count} issue(s) due in the next %{days} days" |
|
212 | 212 | mail_body_reminder: "%{count} issue(s) that are assigned to you are due in the next %{days} days:" |
|
213 | 213 | mail_subject_wiki_content_added: "'%{id}' wiki page has been added" |
|
214 | 214 | mail_body_wiki_content_added: "The '%{id}' wiki page has been added by %{author}." |
|
215 | 215 | mail_subject_wiki_content_updated: "'%{id}' wiki page has been updated" |
|
216 | 216 | mail_body_wiki_content_updated: "The '%{id}' wiki page has been updated by %{author}." |
|
217 | 217 | |
|
218 | 218 | |
|
219 | 219 | field_name: Name |
|
220 | 220 | field_description: Description |
|
221 | 221 | field_summary: Summary |
|
222 | 222 | field_is_required: Required |
|
223 | 223 | field_firstname: First name |
|
224 | 224 | field_lastname: Last name |
|
225 | 225 | field_mail: Email |
|
226 | 226 | field_filename: File |
|
227 | 227 | field_filesize: Size |
|
228 | 228 | field_downloads: Downloads |
|
229 | 229 | field_author: Author |
|
230 | 230 | field_created_on: Created |
|
231 | 231 | field_updated_on: Updated |
|
232 | 232 | field_field_format: Format |
|
233 | 233 | field_is_for_all: For all projects |
|
234 | 234 | field_possible_values: Possible values |
|
235 | 235 | field_regexp: Regular expression |
|
236 | 236 | field_min_length: Minimum length |
|
237 | 237 | field_max_length: Maximum length |
|
238 | 238 | field_value: Value |
|
239 | 239 | field_category: Category |
|
240 | 240 | field_title: Title |
|
241 | 241 | field_project: Project |
|
242 | 242 | field_issue: Issue |
|
243 | 243 | field_status: Status |
|
244 | 244 | field_notes: Notes |
|
245 | 245 | field_is_closed: Issue closed |
|
246 | 246 | field_is_default: Default value |
|
247 | 247 | field_tracker: Tracker |
|
248 | 248 | field_subject: Subject |
|
249 | 249 | field_due_date: Due date |
|
250 | 250 | field_assigned_to: Assignee |
|
251 | 251 | field_priority: Priority |
|
252 | 252 | field_fixed_version: Target version |
|
253 | 253 | field_user: User |
|
254 | 254 | field_principal: Principal |
|
255 | 255 | field_role: Role |
|
256 | 256 | field_homepage: Homepage |
|
257 | 257 | field_is_public: Public |
|
258 | 258 | field_parent: Subproject of |
|
259 | 259 | field_is_in_roadmap: Issues displayed in roadmap |
|
260 | 260 | field_login: Login |
|
261 | 261 | field_mail_notification: Email notifications |
|
262 | 262 | field_admin: Administrator |
|
263 | 263 | field_last_login_on: Last connection |
|
264 | 264 | field_language: Language |
|
265 | 265 | field_effective_date: Date |
|
266 | 266 | field_password: Password |
|
267 | 267 | field_new_password: New password |
|
268 | 268 | field_password_confirmation: Confirmation |
|
269 | 269 | field_version: Version |
|
270 | 270 | field_type: Type |
|
271 | 271 | field_host: Host |
|
272 | 272 | field_port: Port |
|
273 | 273 | field_account: Account |
|
274 | 274 | field_base_dn: Base DN |
|
275 | 275 | field_attr_login: Login attribute |
|
276 | 276 | field_attr_firstname: Firstname attribute |
|
277 | 277 | field_attr_lastname: Lastname attribute |
|
278 | 278 | field_attr_mail: Email attribute |
|
279 | 279 | field_onthefly: On-the-fly user creation |
|
280 | 280 | field_start_date: Start date |
|
281 | 281 | field_done_ratio: "% Done" |
|
282 | 282 | field_auth_source: Authentication mode |
|
283 | 283 | field_hide_mail: Hide my email address |
|
284 | 284 | field_comments: Comment |
|
285 | 285 | field_url: URL |
|
286 | 286 | field_start_page: Start page |
|
287 | 287 | field_subproject: Subproject |
|
288 | 288 | field_hours: Hours |
|
289 | 289 | field_activity: Activity |
|
290 | 290 | field_spent_on: Date |
|
291 | 291 | field_identifier: Identifier |
|
292 | 292 | field_is_filter: Used as a filter |
|
293 | 293 | field_issue_to: Related issue |
|
294 | 294 | field_delay: Delay |
|
295 | 295 | field_assignable: Issues can be assigned to this role |
|
296 | 296 | field_redirect_existing_links: Redirect existing links |
|
297 | 297 | field_estimated_hours: Estimated time |
|
298 | 298 | field_column_names: Columns |
|
299 | 299 | field_time_entries: Log time |
|
300 | 300 | field_time_zone: Time zone |
|
301 | 301 | field_searchable: Searchable |
|
302 | 302 | field_default_value: Default value |
|
303 | 303 | field_comments_sorting: Display comments |
|
304 | 304 | field_parent_title: Parent page |
|
305 | 305 | field_editable: Editable |
|
306 | 306 | field_watcher: Watcher |
|
307 | 307 | field_identity_url: OpenID URL |
|
308 | 308 | field_content: Content |
|
309 | 309 | field_group_by: Group results by |
|
310 | 310 | field_sharing: Sharing |
|
311 | 311 | field_parent_issue: Parent task |
|
312 | 312 | field_member_of_group: "Assignee's group" |
|
313 | 313 | field_assigned_to_role: "Assignee's role" |
|
314 | 314 | field_text: Text field |
|
315 | 315 | field_visible: Visible |
|
316 | 316 | field_warn_on_leaving_unsaved: "Warn me when leaving a page with unsaved text" |
|
317 | 317 | |
|
318 | 318 | setting_app_title: Application title |
|
319 | 319 | setting_app_subtitle: Application subtitle |
|
320 | 320 | setting_welcome_text: Welcome text |
|
321 | 321 | setting_default_language: Default language |
|
322 | 322 | setting_login_required: Authentication required |
|
323 | 323 | setting_self_registration: Self-registration |
|
324 | 324 | setting_attachment_max_size: Attachment max. size |
|
325 | 325 | setting_issues_export_limit: Issues export limit |
|
326 | 326 | setting_mail_from: Emission email address |
|
327 | 327 | setting_bcc_recipients: Blind carbon copy recipients (bcc) |
|
328 | 328 | setting_plain_text_mail: Plain text mail (no HTML) |
|
329 | 329 | setting_host_name: Host name and path |
|
330 | 330 | setting_text_formatting: Text formatting |
|
331 | 331 | setting_wiki_compression: Wiki history compression |
|
332 | 332 | setting_feeds_limit: Feed content limit |
|
333 | 333 | setting_default_projects_public: New projects are public by default |
|
334 | 334 | setting_autofetch_changesets: Autofetch commits |
|
335 | 335 | setting_sys_api_enabled: Enable WS for repository management |
|
336 | 336 | setting_commit_ref_keywords: Referencing keywords |
|
337 | 337 | setting_commit_fix_keywords: Fixing keywords |
|
338 | 338 | setting_autologin: Autologin |
|
339 | 339 | setting_date_format: Date format |
|
340 | 340 | setting_time_format: Time format |
|
341 | 341 | setting_cross_project_issue_relations: Allow cross-project issue relations |
|
342 | 342 | setting_issue_list_default_columns: Default columns displayed on the issue list |
|
343 | 343 | setting_emails_header: Email header |
|
344 | 344 | setting_emails_footer: Email footer |
|
345 | 345 | setting_protocol: Protocol |
|
346 | 346 | setting_per_page_options: Objects per page options |
|
347 | 347 | setting_user_format: Users display format |
|
348 | 348 | setting_activity_days_default: Days displayed on project activity |
|
349 | 349 | setting_display_subprojects_issues: Display subprojects issues on main projects by default |
|
350 | 350 | setting_enabled_scm: Enabled SCM |
|
351 | 351 | setting_mail_handler_body_delimiters: "Truncate emails after one of these lines" |
|
352 | 352 | setting_mail_handler_api_enabled: Enable WS for incoming emails |
|
353 | 353 | setting_mail_handler_api_key: API key |
|
354 | 354 | setting_sequential_project_identifiers: Generate sequential project identifiers |
|
355 | 355 | setting_gravatar_enabled: Use Gravatar user icons |
|
356 | 356 | setting_gravatar_default: Default Gravatar image |
|
357 | 357 | setting_diff_max_lines_displayed: Max number of diff lines displayed |
|
358 | 358 | setting_file_max_size_displayed: Max size of text files displayed inline |
|
359 | 359 | setting_repository_log_display_limit: Maximum number of revisions displayed on file log |
|
360 | 360 | setting_openid: Allow OpenID login and registration |
|
361 | 361 | setting_password_min_length: Minimum password length |
|
362 | 362 | setting_new_project_user_role_id: Role given to a non-admin user who creates a project |
|
363 | 363 | setting_default_projects_modules: Default enabled modules for new projects |
|
364 | 364 | setting_issue_done_ratio: Calculate the issue done ratio with |
|
365 | 365 | setting_issue_done_ratio_issue_field: Use the issue field |
|
366 | 366 | setting_issue_done_ratio_issue_status: Use the issue status |
|
367 | 367 | setting_start_of_week: Start calendars on |
|
368 | 368 | setting_rest_api_enabled: Enable REST web service |
|
369 | 369 | setting_cache_formatted_text: Cache formatted text |
|
370 | 370 | setting_default_notification_option: Default notification option |
|
371 | 371 | setting_commit_logtime_enabled: Enable time logging |
|
372 | 372 | setting_commit_logtime_activity_id: Activity for logged time |
|
373 | 373 | setting_gantt_items_limit: Maximum number of items displayed on the gantt chart |
|
374 | 374 | setting_issue_group_assignment: Allow issue assignment to groups |
|
375 | 375 | setting_default_issue_start_date_to_creation_date: Use current date as start date for new issues |
|
376 | 376 | |
|
377 | 377 | permission_add_project: Create project |
|
378 | 378 | permission_add_subprojects: Create subprojects |
|
379 | 379 | permission_edit_project: Edit project |
|
380 | 380 | permission_select_project_modules: Select project modules |
|
381 | 381 | permission_manage_members: Manage members |
|
382 | 382 | permission_manage_project_activities: Manage project activities |
|
383 | 383 | permission_manage_versions: Manage versions |
|
384 | 384 | permission_manage_categories: Manage issue categories |
|
385 | 385 | permission_view_issues: View Issues |
|
386 | 386 | permission_add_issues: Add issues |
|
387 | 387 | permission_edit_issues: Edit issues |
|
388 | 388 | permission_manage_issue_relations: Manage issue relations |
|
389 | 389 | permission_add_issue_notes: Add notes |
|
390 | 390 | permission_edit_issue_notes: Edit notes |
|
391 | 391 | permission_edit_own_issue_notes: Edit own notes |
|
392 | 392 | permission_move_issues: Move issues |
|
393 | 393 | permission_delete_issues: Delete issues |
|
394 | 394 | permission_manage_public_queries: Manage public queries |
|
395 | 395 | permission_save_queries: Save queries |
|
396 | 396 | permission_view_gantt: View gantt chart |
|
397 | 397 | permission_view_calendar: View calendar |
|
398 | 398 | permission_view_issue_watchers: View watchers list |
|
399 | 399 | permission_add_issue_watchers: Add watchers |
|
400 | 400 | permission_delete_issue_watchers: Delete watchers |
|
401 | 401 | permission_log_time: Log spent time |
|
402 | 402 | permission_view_time_entries: View spent time |
|
403 | 403 | permission_edit_time_entries: Edit time logs |
|
404 | 404 | permission_edit_own_time_entries: Edit own time logs |
|
405 | 405 | permission_manage_news: Manage news |
|
406 | 406 | permission_comment_news: Comment news |
|
407 | 407 | permission_view_documents: View documents |
|
408 | 408 | permission_manage_files: Manage files |
|
409 | 409 | permission_view_files: View files |
|
410 | 410 | permission_manage_wiki: Manage wiki |
|
411 | 411 | permission_rename_wiki_pages: Rename wiki pages |
|
412 | 412 | permission_delete_wiki_pages: Delete wiki pages |
|
413 | 413 | permission_view_wiki_pages: View wiki |
|
414 | 414 | permission_view_wiki_edits: View wiki history |
|
415 | 415 | permission_edit_wiki_pages: Edit wiki pages |
|
416 | 416 | permission_delete_wiki_pages_attachments: Delete attachments |
|
417 | 417 | permission_protect_wiki_pages: Protect wiki pages |
|
418 | 418 | permission_manage_repository: Manage repository |
|
419 | 419 | permission_browse_repository: Browse repository |
|
420 | 420 | permission_view_changesets: View changesets |
|
421 | 421 | permission_commit_access: Commit access |
|
422 | 422 | permission_manage_boards: Manage forums |
|
423 | 423 | permission_view_messages: View messages |
|
424 | 424 | permission_add_messages: Post messages |
|
425 | 425 | permission_edit_messages: Edit messages |
|
426 | 426 | permission_edit_own_messages: Edit own messages |
|
427 | 427 | permission_delete_messages: Delete messages |
|
428 | 428 | permission_delete_own_messages: Delete own messages |
|
429 | 429 | permission_export_wiki_pages: Export wiki pages |
|
430 | 430 | permission_manage_subtasks: Manage subtasks |
|
431 | 431 | |
|
432 | 432 | project_module_issue_tracking: Issue tracking |
|
433 | 433 | project_module_time_tracking: Time tracking |
|
434 | 434 | project_module_news: News |
|
435 | 435 | project_module_documents: Documents |
|
436 | 436 | project_module_files: Files |
|
437 | 437 | project_module_wiki: Wiki |
|
438 | 438 | project_module_repository: Repository |
|
439 | 439 | project_module_boards: Forums |
|
440 | 440 | project_module_calendar: Calendar |
|
441 | 441 | project_module_gantt: Gantt |
|
442 | 442 | |
|
443 | 443 | label_user: User |
|
444 | 444 | label_user_plural: Users |
|
445 | 445 | label_user_new: New user |
|
446 | 446 | label_user_anonymous: Anonymous |
|
447 | 447 | label_project: Project |
|
448 | 448 | label_project_new: New project |
|
449 | 449 | label_project_plural: Projects |
|
450 | 450 | label_x_projects: |
|
451 | 451 | zero: no projects |
|
452 | 452 | one: 1 project |
|
453 | 453 | other: "%{count} projects" |
|
454 | 454 | label_project_all: All Projects |
|
455 | 455 | label_project_latest: Latest projects |
|
456 | 456 | label_issue: Issue |
|
457 | 457 | label_issue_new: New issue |
|
458 | 458 | label_issue_plural: Issues |
|
459 | 459 | label_issue_view_all: View all issues |
|
460 | 460 | label_issues_by: "Issues by %{value}" |
|
461 | 461 | label_issue_added: Issue added |
|
462 | 462 | label_issue_updated: Issue updated |
|
463 | 463 | label_document: Document |
|
464 | 464 | label_document_new: New document |
|
465 | 465 | label_document_plural: Documents |
|
466 | 466 | label_document_added: Document added |
|
467 | 467 | label_role: Role |
|
468 | 468 | label_role_plural: Roles |
|
469 | 469 | label_role_new: New role |
|
470 | 470 | label_role_and_permissions: Roles and permissions |
|
471 | 471 | label_role_anonymous: Anonymous |
|
472 | 472 | label_role_non_member: Non member |
|
473 | 473 | label_member: Member |
|
474 | 474 | label_member_new: New member |
|
475 | 475 | label_member_plural: Members |
|
476 | 476 | label_tracker: Tracker |
|
477 | 477 | label_tracker_plural: Trackers |
|
478 | 478 | label_tracker_new: New tracker |
|
479 | 479 | label_workflow: Workflow |
|
480 | 480 | label_issue_status: Issue status |
|
481 | 481 | label_issue_status_plural: Issue statuses |
|
482 | 482 | label_issue_status_new: New status |
|
483 | 483 | label_issue_category: Issue category |
|
484 | 484 | label_issue_category_plural: Issue categories |
|
485 | 485 | label_issue_category_new: New category |
|
486 | 486 | label_custom_field: Custom field |
|
487 | 487 | label_custom_field_plural: Custom fields |
|
488 | 488 | label_custom_field_new: New custom field |
|
489 | 489 | label_enumerations: Enumerations |
|
490 | 490 | label_enumeration_new: New value |
|
491 | 491 | label_information: Information |
|
492 | 492 | label_information_plural: Information |
|
493 | 493 | label_please_login: Please log in |
|
494 | 494 | label_register: Register |
|
495 | 495 | label_login_with_open_id_option: or login with OpenID |
|
496 | 496 | label_password_lost: Lost password |
|
497 | 497 | label_home: Home |
|
498 | 498 | label_my_page: My page |
|
499 | 499 | label_my_account: My account |
|
500 | 500 | label_my_projects: My projects |
|
501 | 501 | label_my_page_block: My page block |
|
502 | 502 | label_administration: Administration |
|
503 | 503 | label_login: Sign in |
|
504 | 504 | label_logout: Sign out |
|
505 | 505 | label_help: Help |
|
506 | 506 | label_reported_issues: Reported issues |
|
507 | 507 | label_assigned_to_me_issues: Issues assigned to me |
|
508 | 508 | label_last_login: Last connection |
|
509 | 509 | label_registered_on: Registered on |
|
510 | 510 | label_activity: Activity |
|
511 | 511 | label_overall_activity: Overall activity |
|
512 | 512 | label_user_activity: "%{value}'s activity" |
|
513 | 513 | label_new: New |
|
514 | 514 | label_logged_as: Logged in as |
|
515 | 515 | label_environment: Environment |
|
516 | 516 | label_authentication: Authentication |
|
517 | 517 | label_auth_source: Authentication mode |
|
518 | 518 | label_auth_source_new: New authentication mode |
|
519 | 519 | label_auth_source_plural: Authentication modes |
|
520 | 520 | label_subproject_plural: Subprojects |
|
521 | 521 | label_subproject_new: New subproject |
|
522 | 522 | label_and_its_subprojects: "%{value} and its subprojects" |
|
523 | 523 | label_min_max_length: Min - Max length |
|
524 | 524 | label_list: List |
|
525 | 525 | label_date: Date |
|
526 | 526 | label_integer: Integer |
|
527 | 527 | label_float: Float |
|
528 | 528 | label_boolean: Boolean |
|
529 | 529 | label_string: Text |
|
530 | 530 | label_text: Long text |
|
531 | 531 | label_attribute: Attribute |
|
532 | 532 | label_attribute_plural: Attributes |
|
533 | 533 | label_no_data: No data to display |
|
534 | label_no_preview: No preview available | |
|
534 | 535 | label_change_status: Change status |
|
535 | 536 | label_history: History |
|
536 | 537 | label_attachment: File |
|
537 | 538 | label_attachment_new: New file |
|
538 | 539 | label_attachment_delete: Delete file |
|
539 | 540 | label_attachment_plural: Files |
|
540 | 541 | label_file_added: File added |
|
541 | 542 | label_report: Report |
|
542 | 543 | label_report_plural: Reports |
|
543 | 544 | label_news: News |
|
544 | 545 | label_news_new: Add news |
|
545 | 546 | label_news_plural: News |
|
546 | 547 | label_news_latest: Latest news |
|
547 | 548 | label_news_view_all: View all news |
|
548 | 549 | label_news_added: News added |
|
549 | 550 | label_news_comment_added: Comment added to a news |
|
550 | 551 | label_settings: Settings |
|
551 | 552 | label_overview: Overview |
|
552 | 553 | label_version: Version |
|
553 | 554 | label_version_new: New version |
|
554 | 555 | label_version_plural: Versions |
|
555 | 556 | label_close_versions: Close completed versions |
|
556 | 557 | label_confirmation: Confirmation |
|
557 | 558 | label_export_to: 'Also available in:' |
|
558 | 559 | label_read: Read... |
|
559 | 560 | label_public_projects: Public projects |
|
560 | 561 | label_open_issues: open |
|
561 | 562 | label_open_issues_plural: open |
|
562 | 563 | label_closed_issues: closed |
|
563 | 564 | label_closed_issues_plural: closed |
|
564 | 565 | label_x_open_issues_abbr: |
|
565 | 566 | zero: 0 open |
|
566 | 567 | one: 1 open |
|
567 | 568 | other: "%{count} open" |
|
568 | 569 | label_x_closed_issues_abbr: |
|
569 | 570 | zero: 0 closed |
|
570 | 571 | one: 1 closed |
|
571 | 572 | other: "%{count} closed" |
|
572 | 573 | label_total: Total |
|
573 | 574 | label_permissions: Permissions |
|
574 | 575 | label_current_status: Current status |
|
575 | 576 | label_new_statuses_allowed: New statuses allowed |
|
576 | 577 | label_all: all |
|
577 | 578 | label_none: none |
|
578 | 579 | label_nobody: nobody |
|
579 | 580 | label_next: Next |
|
580 | 581 | label_previous: Previous |
|
581 | 582 | label_used_by: Used by |
|
582 | 583 | label_details: Details |
|
583 | 584 | label_add_note: Add a note |
|
584 | 585 | label_calendar: Calendar |
|
585 | 586 | label_months_from: months from |
|
586 | 587 | label_gantt: Gantt |
|
587 | 588 | label_internal: Internal |
|
588 | 589 | label_last_changes: "last %{count} changes" |
|
589 | 590 | label_change_view_all: View all changes |
|
590 | 591 | label_personalize_page: Personalise this page |
|
591 | 592 | label_comment: Comment |
|
592 | 593 | label_comment_plural: Comments |
|
593 | 594 | label_x_comments: |
|
594 | 595 | zero: no comments |
|
595 | 596 | one: 1 comment |
|
596 | 597 | other: "%{count} comments" |
|
597 | 598 | label_comment_add: Add a comment |
|
598 | 599 | label_comment_added: Comment added |
|
599 | 600 | label_comment_delete: Delete comments |
|
600 | 601 | label_query: Custom query |
|
601 | 602 | label_query_plural: Custom queries |
|
602 | 603 | label_query_new: New query |
|
603 | 604 | label_my_queries: My custom queries |
|
604 | 605 | label_filter_add: Add filter |
|
605 | 606 | label_filter_plural: Filters |
|
606 | 607 | label_equals: is |
|
607 | 608 | label_not_equals: is not |
|
608 | 609 | label_in_less_than: in less than |
|
609 | 610 | label_in_more_than: in more than |
|
610 | 611 | label_greater_or_equal: '>=' |
|
611 | 612 | label_less_or_equal: '<=' |
|
612 | 613 | label_in: in |
|
613 | 614 | label_today: today |
|
614 | 615 | label_all_time: all time |
|
615 | 616 | label_yesterday: yesterday |
|
616 | 617 | label_this_week: this week |
|
617 | 618 | label_last_week: last week |
|
618 | 619 | label_last_n_days: "last %{count} days" |
|
619 | 620 | label_this_month: this month |
|
620 | 621 | label_last_month: last month |
|
621 | 622 | label_this_year: this year |
|
622 | 623 | label_date_range: Date range |
|
623 | 624 | label_less_than_ago: less than days ago |
|
624 | 625 | label_more_than_ago: more than days ago |
|
625 | 626 | label_ago: days ago |
|
626 | 627 | label_contains: contains |
|
627 | 628 | label_not_contains: doesn't contain |
|
628 | 629 | label_day_plural: days |
|
629 | 630 | label_repository: Repository |
|
630 | 631 | label_repository_plural: Repositories |
|
631 | 632 | label_browse: Browse |
|
632 | 633 | label_branch: Branch |
|
633 | 634 | label_tag: Tag |
|
634 | 635 | label_revision: Revision |
|
635 | 636 | label_revision_plural: Revisions |
|
636 | 637 | label_revision_id: "Revision %{value}" |
|
637 | 638 | label_associated_revisions: Associated revisions |
|
638 | 639 | label_added: added |
|
639 | 640 | label_modified: modified |
|
640 | 641 | label_copied: copied |
|
641 | 642 | label_renamed: renamed |
|
642 | 643 | label_deleted: deleted |
|
643 | 644 | label_latest_revision: Latest revision |
|
644 | 645 | label_latest_revision_plural: Latest revisions |
|
645 | 646 | label_view_revisions: View revisions |
|
646 | 647 | label_view_all_revisions: View all revisions |
|
647 | 648 | label_max_size: Maximum size |
|
648 | 649 | label_sort_highest: Move to top |
|
649 | 650 | label_sort_higher: Move up |
|
650 | 651 | label_sort_lower: Move down |
|
651 | 652 | label_sort_lowest: Move to bottom |
|
652 | 653 | label_roadmap: Roadmap |
|
653 | 654 | label_roadmap_due_in: "Due in %{value}" |
|
654 | 655 | label_roadmap_overdue: "%{value} late" |
|
655 | 656 | label_roadmap_no_issues: No issues for this version |
|
656 | 657 | label_search: Search |
|
657 | 658 | label_result_plural: Results |
|
658 | 659 | label_all_words: All words |
|
659 | 660 | label_wiki: Wiki |
|
660 | 661 | label_wiki_edit: Wiki edit |
|
661 | 662 | label_wiki_edit_plural: Wiki edits |
|
662 | 663 | label_wiki_page: Wiki page |
|
663 | 664 | label_wiki_page_plural: Wiki pages |
|
664 | 665 | label_index_by_title: Index by title |
|
665 | 666 | label_index_by_date: Index by date |
|
666 | 667 | label_current_version: Current version |
|
667 | 668 | label_preview: Preview |
|
668 | 669 | label_feed_plural: Feeds |
|
669 | 670 | label_changes_details: Details of all changes |
|
670 | 671 | label_issue_tracking: Issue tracking |
|
671 | 672 | label_spent_time: Spent time |
|
672 | 673 | label_overall_spent_time: Overall spent time |
|
673 | 674 | label_f_hour: "%{value} hour" |
|
674 | 675 | label_f_hour_plural: "%{value} hours" |
|
675 | 676 | label_time_tracking: Time tracking |
|
676 | 677 | label_change_plural: Changes |
|
677 | 678 | label_statistics: Statistics |
|
678 | 679 | label_commits_per_month: Commits per month |
|
679 | 680 | label_commits_per_author: Commits per author |
|
680 | 681 | label_view_diff: View differences |
|
681 | 682 | label_diff_inline: inline |
|
682 | 683 | label_diff_side_by_side: side by side |
|
683 | 684 | label_options: Options |
|
684 | 685 | label_copy_workflow_from: Copy workflow from |
|
685 | 686 | label_permissions_report: Permissions report |
|
686 | 687 | label_watched_issues: Watched issues |
|
687 | 688 | label_related_issues: Related issues |
|
688 | 689 | label_applied_status: Applied status |
|
689 | 690 | label_loading: Loading... |
|
690 | 691 | label_relation_new: New relation |
|
691 | 692 | label_relation_delete: Delete relation |
|
692 | 693 | label_relates_to: related to |
|
693 | 694 | label_duplicates: duplicates |
|
694 | 695 | label_duplicated_by: duplicated by |
|
695 | 696 | label_blocks: blocks |
|
696 | 697 | label_blocked_by: blocked by |
|
697 | 698 | label_precedes: precedes |
|
698 | 699 | label_follows: follows |
|
699 | 700 | label_stay_logged_in: Stay logged in |
|
700 | 701 | label_disabled: disabled |
|
701 | 702 | label_show_completed_versions: Show completed versions |
|
702 | 703 | label_me: me |
|
703 | 704 | label_board: Forum |
|
704 | 705 | label_board_new: New forum |
|
705 | 706 | label_board_plural: Forums |
|
706 | 707 | label_board_locked: Locked |
|
707 | 708 | label_board_sticky: Sticky |
|
708 | 709 | label_topic_plural: Topics |
|
709 | 710 | label_message_plural: Messages |
|
710 | 711 | label_message_last: Last message |
|
711 | 712 | label_message_new: New message |
|
712 | 713 | label_message_posted: Message added |
|
713 | 714 | label_reply_plural: Replies |
|
714 | 715 | label_send_information: Send account information to the user |
|
715 | 716 | label_year: Year |
|
716 | 717 | label_month: Month |
|
717 | 718 | label_week: Week |
|
718 | 719 | label_date_from: From |
|
719 | 720 | label_date_to: To |
|
720 | 721 | label_language_based: Based on user's language |
|
721 | 722 | label_sort_by: "Sort by %{value}" |
|
722 | 723 | label_send_test_email: Send a test email |
|
723 | 724 | label_feeds_access_key: Atom access key |
|
724 | 725 | label_missing_feeds_access_key: Missing a Atom access key |
|
725 | 726 | label_feeds_access_key_created_on: "Atom access key created %{value} ago" |
|
726 | 727 | label_module_plural: Modules |
|
727 | 728 | label_added_time_by: "Added by %{author} %{age} ago" |
|
728 | 729 | label_updated_time_by: "Updated by %{author} %{age} ago" |
|
729 | 730 | label_updated_time: "Updated %{value} ago" |
|
730 | 731 | label_jump_to_a_project: Jump to a project... |
|
731 | 732 | label_file_plural: Files |
|
732 | 733 | label_changeset_plural: Changesets |
|
733 | 734 | label_default_columns: Default columns |
|
734 | 735 | label_no_change_option: (No change) |
|
735 | 736 | label_bulk_edit_selected_issues: Bulk edit selected issues |
|
736 | 737 | label_theme: Theme |
|
737 | 738 | label_default: Default |
|
738 | 739 | label_search_titles_only: Search titles only |
|
739 | 740 | label_user_mail_option_all: "For any event on all my projects" |
|
740 | 741 | label_user_mail_option_selected: "For any event on the selected projects only..." |
|
741 | 742 | label_user_mail_option_none: "No events" |
|
742 | 743 | label_user_mail_option_only_my_events: "Only for things I watch or I'm involved in" |
|
743 | 744 | label_user_mail_option_only_assigned: "Only for things I am assigned to" |
|
744 | 745 | label_user_mail_option_only_owner: "Only for things I am the owner of" |
|
745 | 746 | label_user_mail_no_self_notified: "I don't want to be notified of changes that I make myself" |
|
746 | 747 | label_registration_activation_by_email: account activation by email |
|
747 | 748 | label_registration_manual_activation: manual account activation |
|
748 | 749 | label_registration_automatic_activation: automatic account activation |
|
749 | 750 | label_display_per_page: "Per page: %{value}" |
|
750 | 751 | label_age: Age |
|
751 | 752 | label_change_properties: Change properties |
|
752 | 753 | label_general: General |
|
753 | 754 | label_more: More |
|
754 | 755 | label_scm: SCM |
|
755 | 756 | label_plugins: Plugins |
|
756 | 757 | label_ldap_authentication: LDAP authentication |
|
757 | 758 | label_downloads_abbr: D/L |
|
758 | 759 | label_optional_description: Optional description |
|
759 | 760 | label_add_another_file: Add another file |
|
760 | 761 | label_preferences: Preferences |
|
761 | 762 | label_chronological_order: In chronological order |
|
762 | 763 | label_reverse_chronological_order: In reverse chronological order |
|
763 | 764 | label_planning: Planning |
|
764 | 765 | label_incoming_emails: Incoming emails |
|
765 | 766 | label_generate_key: Generate a key |
|
766 | 767 | label_issue_watchers: Watchers |
|
767 | 768 | label_example: Example |
|
768 | 769 | label_display: Display |
|
769 | 770 | label_sort: Sort |
|
770 | 771 | label_ascending: Ascending |
|
771 | 772 | label_descending: Descending |
|
772 | 773 | label_date_from_to: From %{start} to %{end} |
|
773 | 774 | label_wiki_content_added: Wiki page added |
|
774 | 775 | label_wiki_content_updated: Wiki page updated |
|
775 | 776 | label_group: Group |
|
776 | 777 | label_group_plural: Groups |
|
777 | 778 | label_group_new: New group |
|
778 | 779 | label_time_entry_plural: Spent time |
|
779 | 780 | label_version_sharing_none: Not shared |
|
780 | 781 | label_version_sharing_descendants: With subprojects |
|
781 | 782 | label_version_sharing_hierarchy: With project hierarchy |
|
782 | 783 | label_version_sharing_tree: With project tree |
|
783 | 784 | label_version_sharing_system: With all projects |
|
784 | 785 | label_update_issue_done_ratios: Update issue done ratios |
|
785 | 786 | label_copy_source: Source |
|
786 | 787 | label_copy_target: Target |
|
787 | 788 | label_copy_same_as_target: Same as target |
|
788 | 789 | label_display_used_statuses_only: Only display statuses that are used by this tracker |
|
789 | 790 | label_api_access_key: API access key |
|
790 | 791 | label_missing_api_access_key: Missing an API access key |
|
791 | 792 | label_api_access_key_created_on: "API access key created %{value} ago" |
|
792 | 793 | label_profile: Profile |
|
793 | 794 | label_subtask_plural: Subtasks |
|
794 | 795 | label_project_copy_notifications: Send email notifications during the project copy |
|
795 | 796 | label_principal_search: "Search for user or group:" |
|
796 | 797 | label_user_search: "Search for user:" |
|
797 | 798 | |
|
798 | 799 | button_login: Login |
|
799 | 800 | button_submit: Submit |
|
800 | 801 | button_save: Save |
|
801 | 802 | button_check_all: Check all |
|
802 | 803 | button_uncheck_all: Uncheck all |
|
803 | 804 | button_collapse_all: Collapse all |
|
804 | 805 | button_expand_all: Expand all |
|
805 | 806 | button_delete: Delete |
|
806 | 807 | button_create: Create |
|
807 | 808 | button_create_and_continue: Create and continue |
|
808 | 809 | button_test: Test |
|
809 | 810 | button_edit: Edit |
|
810 | 811 | button_edit_associated_wikipage: "Edit associated Wiki page: %{page_title}" |
|
811 | 812 | button_add: Add |
|
812 | 813 | button_change: Change |
|
813 | 814 | button_apply: Apply |
|
814 | 815 | button_clear: Clear |
|
815 | 816 | button_lock: Lock |
|
816 | 817 | button_unlock: Unlock |
|
817 | 818 | button_download: Download |
|
818 | 819 | button_list: List |
|
819 | 820 | button_view: View |
|
820 | 821 | button_move: Move |
|
821 | 822 | button_move_and_follow: Move and follow |
|
822 | 823 | button_back: Back |
|
823 | 824 | button_cancel: Cancel |
|
824 | 825 | button_activate: Activate |
|
825 | 826 | button_sort: Sort |
|
826 | 827 | button_log_time: Log time |
|
827 | 828 | button_rollback: Rollback to this version |
|
828 | 829 | button_watch: Watch |
|
829 | 830 | button_unwatch: Unwatch |
|
830 | 831 | button_reply: Reply |
|
831 | 832 | button_archive: Archive |
|
832 | 833 | button_unarchive: Unarchive |
|
833 | 834 | button_reset: Reset |
|
834 | 835 | button_rename: Rename |
|
835 | 836 | button_change_password: Change password |
|
836 | 837 | button_copy: Copy |
|
837 | 838 | button_copy_and_follow: Copy and follow |
|
838 | 839 | button_annotate: Annotate |
|
839 | 840 | button_update: Update |
|
840 | 841 | button_configure: Configure |
|
841 | 842 | button_quote: Quote |
|
842 | 843 | button_duplicate: Duplicate |
|
843 | 844 | button_show: Show |
|
844 | 845 | |
|
845 | 846 | status_active: active |
|
846 | 847 | status_registered: registered |
|
847 | 848 | status_locked: locked |
|
848 | 849 | |
|
849 | 850 | version_status_open: open |
|
850 | 851 | version_status_locked: locked |
|
851 | 852 | version_status_closed: closed |
|
852 | 853 | |
|
853 | 854 | field_active: Active |
|
854 | 855 | |
|
855 | 856 | text_select_mail_notifications: Select actions for which email notifications should be sent. |
|
856 | 857 | text_regexp_info: eg. ^[A-Z0-9]+$ |
|
857 | 858 | text_min_max_length_info: 0 means no restriction |
|
858 | 859 | text_project_destroy_confirmation: Are you sure you want to delete this project and related data? |
|
859 | 860 | text_subprojects_destroy_warning: "Its subproject(s): %{value} will be also deleted." |
|
860 | 861 | text_workflow_edit: Select a role and a tracker to edit the workflow |
|
861 | 862 | text_are_you_sure: Are you sure? |
|
862 | 863 | text_journal_changed: "%{label} changed from %{old} to %{new}" |
|
863 | 864 | text_journal_changed_no_detail: "%{label} updated" |
|
864 | 865 | text_journal_set_to: "%{label} set to %{value}" |
|
865 | 866 | text_journal_deleted: "%{label} deleted (%{old})" |
|
866 | 867 | text_journal_added: "%{label} %{value} added" |
|
867 | 868 | text_tip_issue_begin_day: task beginning this day |
|
868 | 869 | text_tip_issue_end_day: task ending this day |
|
869 | 870 | text_tip_issue_begin_end_day: task beginning and ending this day |
|
870 | 871 | text_project_identifier_info: 'Only lower case letters (a-z), numbers, dashes and underscores are allowed, must start with a lower case letter.<br />Once saved, the identifier cannot be changed.' |
|
871 | 872 | text_caracters_maximum: "%{count} characters maximum." |
|
872 | 873 | text_caracters_minimum: "Must be at least %{count} characters long." |
|
873 | 874 | text_length_between: "Length between %{min} and %{max} characters." |
|
874 | 875 | text_tracker_no_workflow: No workflow defined for this tracker |
|
875 | 876 | text_unallowed_characters: Unallowed characters |
|
876 | 877 | text_comma_separated: Multiple values allowed (comma separated). |
|
877 | 878 | text_line_separated: Multiple values allowed (one line for each value). |
|
878 | 879 | text_issues_ref_in_commit_messages: Referencing and fixing issues in commit messages |
|
879 | 880 | text_issue_added: "Issue %{id} has been reported by %{author}." |
|
880 | 881 | text_issue_updated: "Issue %{id} has been updated by %{author}." |
|
881 | 882 | text_wiki_destroy_confirmation: Are you sure you want to delete this wiki and all its content? |
|
882 | 883 | text_issue_category_destroy_question: "Some issues (%{count}) are assigned to this category. What do you want to do?" |
|
883 | 884 | text_issue_category_destroy_assignments: Remove category assignments |
|
884 | 885 | text_issue_category_reassign_to: Reassign issues to this category |
|
885 | 886 | text_user_mail_option: "For unselected projects, you will only receive notifications about things you watch or you're involved in (eg. issues you're the author or assignee)." |
|
886 | 887 | 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." |
|
887 | 888 | text_load_default_configuration: Load the default configuration |
|
888 | 889 | text_status_changed_by_changeset: "Applied in changeset %{value}." |
|
889 | 890 | text_time_logged_by_changeset: "Applied in changeset %{value}." |
|
890 | 891 | text_issues_destroy_confirmation: 'Are you sure you want to delete the selected issue(s)?' |
|
891 | 892 | text_select_project_modules: 'Select modules to enable for this project:' |
|
892 | 893 | text_default_administrator_account_changed: Default administrator account changed |
|
893 | 894 | text_file_repository_writable: Attachments directory writable |
|
894 | 895 | text_plugin_assets_writable: Plugin assets directory writable |
|
895 | 896 | text_rmagick_available: RMagick available (optional) |
|
896 | 897 | text_destroy_time_entries_question: "%{hours} hours were reported on the issues you are about to delete. What do you want to do?" |
|
897 | 898 | text_destroy_time_entries: Delete reported hours |
|
898 | 899 | text_assign_time_entries_to_project: Assign reported hours to the project |
|
899 | 900 | text_reassign_time_entries: 'Reassign reported hours to this issue:' |
|
900 | 901 | text_user_wrote: "%{value} wrote:" |
|
901 | 902 | text_enumeration_destroy_question: "%{count} objects are assigned to this value." |
|
902 | 903 | text_enumeration_category_reassign_to: 'Reassign them to this value:' |
|
903 | 904 | 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." |
|
904 | 905 | text_repository_usernames_mapping: "Select or update the Redmine user mapped to each username found in the repository log.\nUsers with the same Redmine and repository username or email are automatically mapped." |
|
905 | 906 | text_diff_truncated: '... This diff was truncated because it exceeds the maximum size that can be displayed.' |
|
906 | 907 | text_custom_field_possible_values_info: 'One line for each value' |
|
907 | 908 | text_wiki_page_destroy_question: "This page has %{descendants} child page(s) and descendant(s). What do you want to do?" |
|
908 | 909 | text_wiki_page_nullify_children: "Keep child pages as root pages" |
|
909 | 910 | text_wiki_page_destroy_children: "Delete child pages and all their descendants" |
|
910 | 911 | text_wiki_page_reassign_children: "Reassign child pages to this parent page" |
|
911 | 912 | text_own_membership_delete_confirmation: "You are about to remove some or all of your permissions and may no longer be able to edit this project after that.\nAre you sure you want to continue?" |
|
912 | 913 | text_zoom_in: Zoom in |
|
913 | 914 | text_zoom_out: Zoom out |
|
914 | 915 | text_warn_on_leaving_unsaved: "The current page contains unsaved text that will be lost if you leave this page." |
|
915 | 916 | |
|
916 | 917 | default_role_manager: Manager |
|
917 | 918 | default_role_developer: Developer |
|
918 | 919 | default_role_reporter: Reporter |
|
919 | 920 | default_tracker_bug: Bug |
|
920 | 921 | default_tracker_feature: Feature |
|
921 | 922 | default_tracker_support: Support |
|
922 | 923 | default_issue_status_new: New |
|
923 | 924 | default_issue_status_in_progress: In Progress |
|
924 | 925 | default_issue_status_resolved: Resolved |
|
925 | 926 | default_issue_status_feedback: Feedback |
|
926 | 927 | default_issue_status_closed: Closed |
|
927 | 928 | default_issue_status_rejected: Rejected |
|
928 | 929 | default_doc_category_user: User documentation |
|
929 | 930 | default_doc_category_tech: Technical documentation |
|
930 | 931 | default_priority_low: Low |
|
931 | 932 | default_priority_normal: Normal |
|
932 | 933 | default_priority_high: High |
|
933 | 934 | default_priority_urgent: Urgent |
|
934 | 935 | default_priority_immediate: Immediate |
|
935 | 936 | default_activity_design: Design |
|
936 | 937 | default_activity_development: Development |
|
937 | 938 | |
|
938 | 939 | enumeration_issue_priorities: Issue priorities |
|
939 | 940 | enumeration_doc_categories: Document categories |
|
940 | 941 | enumeration_activities: Activities (time tracking) |
|
941 | 942 | enumeration_system_activity: System Activity |
|
942 | 943 | label_additional_workflow_transitions_for_assignee: Additional transitions allowed when the user is the assignee |
|
943 | 944 | label_additional_workflow_transitions_for_author: Additional transitions allowed when the user is the author |
|
944 | 945 | label_bulk_edit_selected_time_entries: Bulk edit selected time entries |
|
945 | 946 | text_time_entries_destroy_confirmation: Are you sure you want to delete the selected time entr(y/ies)? |
|
946 | 947 | label_issue_note_added: Note added |
|
947 | 948 | label_issue_status_updated: Status updated |
|
948 | 949 | label_issue_priority_updated: Priority updated |
|
949 | 950 | label_issues_visibility_own: Issues created by or assigned to the user |
|
950 | 951 | field_issues_visibility: Issues visibility |
|
951 | 952 | label_issues_visibility_all: All issues |
|
952 | 953 | permission_set_own_issues_private: Set own issues public or private |
|
953 | 954 | field_is_private: Private |
|
954 | 955 | permission_set_issues_private: Set issues public or private |
|
955 | 956 | label_issues_visibility_public: All non private issues |
|
956 | 957 | text_issues_destroy_descendants_confirmation: This will also delete %{count} subtask(s). |
|
957 | 958 | field_commit_logs_encoding: Commit messages encoding |
|
958 | 959 | field_scm_path_encoding: Path encoding |
|
959 | 960 | text_scm_path_encoding_note: "Default: UTF-8" |
|
960 | 961 | field_path_to_repository: Path to repository |
|
961 | 962 | field_root_directory: Root directory |
|
962 | 963 | field_cvs_module: Module |
|
963 | 964 | field_cvsroot: CVSROOT |
|
964 | 965 | text_mercurial_repository_note: Local repository (e.g. /hgrepo, c:\hgrepo) |
|
965 | 966 | text_scm_command: Command |
|
966 | 967 | text_scm_command_version: Version |
|
967 | 968 | label_git_report_last_commit: Report last commit for files and directories |
|
968 | 969 | text_scm_config: You can configure your SCM commands in config/configuration.yml. Please restart the application after editing it. |
|
969 | 970 | text_scm_command_not_available: SCM command is not available. Please check settings on the administration panel. |
|
970 | 971 | notice_issue_successful_create: Issue %{id} created. |
|
971 | 972 | label_between: between |
|
972 | 973 | label_diff: diff |
|
973 | 974 | text_git_repository_note: Repository is bare and local (e.g. /gitrepo, c:\gitrepo) |
|
974 | 975 | description_query_sort_criteria_direction: Sort direction |
|
975 | 976 | description_project_scope: Search scope |
|
976 | 977 | description_filter: Filter |
|
977 | 978 | description_user_mail_notification: Mail notification settings |
|
978 | 979 | description_date_from: Enter start date |
|
979 | 980 | description_message_content: Message content |
|
980 | 981 | description_available_columns: Available Columns |
|
981 | 982 | description_date_range_interval: Choose range by selecting start and end date |
|
982 | 983 | description_issue_category_reassign: Choose issue category |
|
983 | 984 | description_search: Searchfield |
|
984 | 985 | description_notes: Notes |
|
985 | 986 | description_date_range_list: Choose range from list |
|
986 | 987 | description_choose_project: Projects |
|
987 | 988 | description_date_to: Enter end date |
|
988 | 989 | description_query_sort_criteria_attribute: Sort attribute |
|
989 | 990 | description_wiki_subpages_reassign: Choose new parent page |
|
990 | 991 | description_selected_columns: Selected Columns |
|
991 | 992 | label_parent_revision: Parent |
|
992 | 993 | label_child_revision: Child |
|
993 | 994 | button_edit_section: Edit this section |
|
994 | 995 | setting_repositories_encodings: Attachments and repositories encodings |
|
995 | 996 | description_all_columns: All Columns |
|
996 | 997 | button_export: Export |
|
997 | 998 | label_export_options: "%{export_format} export options" |
|
998 | 999 | error_attachment_too_big: This file cannot be uploaded because it exceeds the maximum allowed file size (%{max_size}) |
|
999 | 1000 | notice_failed_to_save_time_entries: "Failed to save %{count} time entrie(s) on %{total} selected: %{ids}." |
|
1000 | 1001 | label_x_issues: |
|
1001 | 1002 | zero: 0 issue |
|
1002 | 1003 | one: 1 issue |
|
1003 | 1004 | other: "%{count} issues" |
|
1004 | 1005 | label_repository_new: New repository |
|
1005 | 1006 | field_repository_is_default: Main repository |
|
1006 | 1007 | label_copy_attachments: Copy attachments |
|
1007 | 1008 | label_item_position: "%{position} of %{count}" |
|
1008 | 1009 | label_completed_versions: Completed versions |
|
1009 | 1010 | field_multiple: Multiple values |
|
1010 | 1011 | setting_commit_cross_project_ref: Allow issues of all the other projects to be referenced and fixed |
|
1011 | 1012 | text_issue_conflict_resolution_add_notes: Add my notes and discard my other changes |
|
1012 | 1013 | text_issue_conflict_resolution_overwrite: Apply my changes anyway (previous notes will be kept but some changes may be overwritten) |
|
1013 | 1014 | notice_issue_update_conflict: The issue has been updated by an other user while you were editing it. |
|
1014 | 1015 | text_issue_conflict_resolution_cancel: Discard all my changes and redisplay %{link} |
|
1015 | 1016 | permission_manage_related_issues: Manage related issues |
|
1016 | 1017 | field_auth_source_ldap_filter: LDAP filter |
|
1017 | 1018 | label_search_for_watchers: Search for watchers to add |
|
1018 | 1019 | notice_account_deleted: Your account has been permanently deleted. |
|
1019 | 1020 | setting_unsubscribe: Allow users to delete their own account |
|
1020 | 1021 | button_delete_my_account: Delete my account |
|
1021 | 1022 | text_account_destroy_confirmation: |- |
|
1022 | 1023 | Are you sure you want to proceed? |
|
1023 | 1024 | Your account will be permanently deleted, with no way to reactivate it. |
|
1024 | 1025 | error_session_expired: Your session has expired. Please login again. |
|
1025 | 1026 | text_session_expiration_settings: "Warning: changing these settings may expire the current sessions including yours." |
|
1026 | 1027 | setting_session_lifetime: Session maximum lifetime |
|
1027 | 1028 | setting_session_timeout: Session inactivity timeout |
|
1028 | 1029 | label_session_expiration: Session expiration |
|
1029 | 1030 | permission_close_project: Close / reopen the project |
|
1030 | 1031 | label_show_closed_projects: View closed projects |
|
1031 | 1032 | button_close: Close |
|
1032 | 1033 | button_reopen: Reopen |
|
1033 | 1034 | project_status_active: active |
|
1034 | 1035 | project_status_closed: closed |
|
1035 | 1036 | project_status_archived: archived |
|
1036 | 1037 | text_project_closed: This project is closed and read-only. |
|
1037 | 1038 | notice_user_successful_create: User %{id} created. |
|
1038 | 1039 | field_core_fields: Standard fields |
|
1039 | 1040 | field_timeout: Timeout (in seconds) |
|
1040 | 1041 | setting_thumbnails_enabled: Display attachment thumbnails |
|
1041 | 1042 | setting_thumbnails_size: Thumbnails size (in pixels) |
|
1042 | 1043 | label_status_transitions: Status transitions |
|
1043 | 1044 | label_fields_permissions: Fields permissions |
|
1044 | 1045 | label_readonly: Read-only |
|
1045 | 1046 | label_required: Required |
|
1046 | 1047 | text_repository_identifier_info: 'Only lower case letters (a-z), numbers, dashes and underscores are allowed.<br />Once saved, the identifier cannot be changed.' |
|
1047 | 1048 | field_board_parent: Parent forum |
|
1048 | 1049 | label_attribute_of_project: Project's %{name} |
|
1049 | 1050 | label_attribute_of_author: Author's %{name} |
|
1050 | 1051 | label_attribute_of_assigned_to: Assignee's %{name} |
|
1051 | 1052 | label_attribute_of_fixed_version: Target version's %{name} |
|
1052 | 1053 | label_copy_subtasks: Copy subtasks |
|
1053 | 1054 | label_copied_to: copied to |
|
1054 | 1055 | label_copied_from: copied from |
|
1055 | 1056 | label_any_issues_in_project: any issues in project |
|
1056 | 1057 | label_any_issues_not_in_project: any issues not in project |
|
1057 | 1058 | field_private_notes: Private notes |
|
1058 | 1059 | permission_view_private_notes: View private notes |
|
1059 | 1060 | permission_set_notes_private: Set notes as private |
|
1060 | 1061 | label_no_issues_in_project: no issues in project |
|
1061 | 1062 | label_any_open_issues: any open issues |
|
1062 | 1063 | label_no_open_issues: no open issues |
|
1063 | 1064 | label_any: all |
|
1064 | 1065 | label_last_n_weeks: last %{count} weeks |
|
1065 | 1066 | setting_cross_project_subtasks: Allow cross-project subtasks |
|
1066 | 1067 | label_cross_project_descendants: With subprojects |
|
1067 | 1068 | label_cross_project_tree: With project tree |
|
1068 | 1069 | label_cross_project_hierarchy: With project hierarchy |
|
1069 | 1070 | label_cross_project_system: With all projects |
|
1070 | 1071 | button_hide: Hide |
|
1071 | 1072 | setting_non_working_week_days: Non-working days |
|
1072 | 1073 | label_in_the_next_days: in the next |
|
1073 | 1074 | label_in_the_past_days: in the past |
|
1074 | 1075 | label_attribute_of_user: User's %{name} |
|
1075 | 1076 | text_turning_multiple_off: If you disable multiple values, multiple values will be |
|
1076 | 1077 | removed in order to preserve only one value per item. |
|
1077 | 1078 | label_attribute_of_issue: Issue's %{name} |
|
1078 | 1079 | permission_add_documents: Add documents |
|
1079 | 1080 | permission_edit_documents: Edit documents |
|
1080 | 1081 | permission_delete_documents: Delete documents |
|
1081 | 1082 | label_gantt_progress_line: Progress line |
|
1082 | 1083 | setting_jsonp_enabled: Enable JSONP support |
|
1083 | 1084 | field_inherit_members: Inherit members |
|
1084 | 1085 | field_closed_on: Closed |
|
1085 | 1086 | field_generate_password: Generate password |
|
1086 | 1087 | setting_default_projects_tracker_ids: Default trackers for new projects |
|
1087 | 1088 | label_total_time: Total |
|
1088 | 1089 | notice_account_not_activated_yet: You haven't activated your account yet. If you want |
|
1089 | 1090 | to receive a new activation email, please <a href="%{url}">click this link</a>. |
|
1090 | 1091 | notice_account_locked: Your account is locked. |
|
1091 | 1092 | label_hidden: Hidden |
|
1092 | 1093 | label_visibility_private: to me only |
|
1093 | 1094 | label_visibility_roles: to these roles only |
|
1094 | 1095 | label_visibility_public: to any users |
|
1095 | 1096 | field_must_change_passwd: Must change password at next logon |
|
1096 | 1097 | notice_new_password_must_be_different: The new password must be different from the |
|
1097 | 1098 | current password |
|
1098 | 1099 | setting_mail_handler_excluded_filenames: Exclude attachments by name |
|
1099 | 1100 | text_convert_available: ImageMagick convert available (optional) |
|
1100 | 1101 | label_link: Link |
|
1101 | 1102 | label_only: only |
|
1102 | 1103 | label_drop_down_list: drop-down list |
|
1103 | 1104 | label_checkboxes: checkboxes |
|
1104 | 1105 | label_link_values_to: Link values to URL |
|
1105 | 1106 | setting_force_default_language_for_anonymous: Force default language for anonymous |
|
1106 | 1107 | users |
|
1107 | 1108 | setting_force_default_language_for_loggedin: Force default language for logged-in |
|
1108 | 1109 | users |
|
1109 | 1110 | label_custom_field_select_type: Select the type of object to which the custom field |
|
1110 | 1111 | is to be attached |
|
1111 | 1112 | label_issue_assigned_to_updated: Assignee updated |
|
1112 | 1113 | label_check_for_updates: Check for updates |
|
1113 | 1114 | label_latest_compatible_version: Latest compatible version |
|
1114 | 1115 | label_unknown_plugin: Unknown plugin |
|
1115 | 1116 | label_radio_buttons: radio buttons |
|
1116 | 1117 | label_group_anonymous: Anonymous users |
|
1117 | 1118 | label_group_non_member: Non member users |
|
1118 | 1119 | label_add_projects: Add projects |
|
1119 | 1120 | field_default_status: Default status |
|
1120 | 1121 | text_subversion_repository_note: 'Examples: file:///, http://, https://, svn://, svn+[tunnelscheme]://' |
|
1121 | 1122 | field_users_visibility: Users visibility |
|
1122 | 1123 | label_users_visibility_all: All active users |
|
1123 | 1124 | label_users_visibility_members_of_visible_projects: Members of visible projects |
|
1124 | 1125 | label_edit_attachments: Edit attached files |
|
1125 | 1126 | setting_link_copied_issue: Link issues on copy |
|
1126 | 1127 | label_link_copied_issue: Link copied issue |
|
1127 | 1128 | label_ask: Ask |
|
1128 | 1129 | label_search_attachments_yes: Search attachment filenames and descriptions |
|
1129 | 1130 | label_search_attachments_no: Do not search attachments |
|
1130 | 1131 | label_search_attachments_only: Search attachments only |
|
1131 | 1132 | label_search_open_issues_only: Open issues only |
|
1132 | 1133 | field_address: Email |
|
1133 | 1134 | setting_max_additional_emails: Maximum number of additional email addresses |
|
1134 | 1135 | label_email_address_plural: Emails |
|
1135 | 1136 | label_email_address_add: Add email address |
|
1136 | 1137 | label_enable_notifications: Enable notifications |
|
1137 | 1138 | label_disable_notifications: Disable notifications |
|
1138 | 1139 | setting_search_results_per_page: Search results per page |
|
1139 | 1140 | label_blank_value: blank |
|
1140 | 1141 | permission_copy_issues: Copy issues |
|
1141 | 1142 | error_password_expired: Your password has expired or the administrator requires you |
|
1142 | 1143 | to change it. |
|
1143 | 1144 | field_time_entries_visibility: Time logs visibility |
|
1144 | 1145 | setting_password_max_age: Require password change after |
|
1145 | 1146 | label_parent_task_attributes: Parent tasks attributes |
|
1146 | 1147 | label_parent_task_attributes_derived: Calculated from subtasks |
|
1147 | 1148 | label_parent_task_attributes_independent: Independent of subtasks |
|
1148 | 1149 | label_time_entries_visibility_all: All time entries |
|
1149 | 1150 | label_time_entries_visibility_own: Time entries created by the user |
|
1150 | 1151 | label_member_management: Member management |
|
1151 | 1152 | label_member_management_all_roles: All roles |
|
1152 | 1153 | label_member_management_selected_roles_only: Only these roles |
|
1153 | 1154 | label_password_required: Confirm your password to continue |
|
1154 | 1155 | label_total_spent_time: Overall spent time |
|
1155 | 1156 | notice_import_finished: All %{count} items have been imported. |
|
1156 | 1157 | notice_import_finished_with_errors: ! '%{count} out of %{total} items could not be |
|
1157 | 1158 | imported.' |
|
1158 | 1159 | error_invalid_file_encoding: The file is not a valid %{encoding} encoded file |
|
1159 | 1160 | error_invalid_csv_file_or_settings: The file is not a CSV file or does not match the |
|
1160 | 1161 | settings below |
|
1161 | 1162 | error_can_not_read_import_file: An error occurred while reading the file to import |
|
1162 | 1163 | permission_import_issues: Import issues |
|
1163 | 1164 | label_import_issues: Import issues |
|
1164 | 1165 | label_select_file_to_import: Select the file to import |
|
1165 | 1166 | label_fields_separator: Field separator |
|
1166 | 1167 | label_fields_wrapper: Field wrapper |
|
1167 | 1168 | label_encoding: Encoding |
|
1168 | 1169 | label_comma_char: Comma |
|
1169 | 1170 | label_semi_colon_char: Semicolon |
|
1170 | 1171 | label_quote_char: Quote |
|
1171 | 1172 | label_double_quote_char: Double quote |
|
1172 | 1173 | label_fields_mapping: Fields mapping |
|
1173 | 1174 | label_file_content_preview: File content preview |
|
1174 | 1175 | label_create_missing_values: Create missing values |
|
1175 | 1176 | button_import: Import |
|
1176 | 1177 | field_total_estimated_hours: Total estimated time |
|
1177 | 1178 | label_api: API |
|
1178 | 1179 | label_total_plural: Totals |
|
1179 | 1180 | label_assigned_issues: Assigned issues |
|
1180 | 1181 | label_field_format_enumeration: Key/value list |
|
1181 | 1182 | label_f_hour_short: '%{value} h' |
|
1182 | 1183 | field_default_version: Default version |
|
1183 | 1184 | error_attachment_extension_not_allowed: Attachment extension %{extension} is not allowed |
|
1184 | 1185 | setting_attachment_extensions_allowed: Allowed extensions |
|
1185 | 1186 | setting_attachment_extensions_denied: Disallowed extensions |
|
1186 | 1187 | label_default_values_for_new_users: Default values for new users |
|
1187 | 1188 | error_ldap_bind_credentials: Invalid LDAP Account/Password |
|
1188 | 1189 | setting_sys_api_key: API key |
|
1189 | 1190 | setting_lost_password: Lost password |
|
1190 | 1191 | mail_subject_security_notification: Security notification |
|
1191 | 1192 | mail_body_security_notification_change: ! '%{field} was changed.' |
|
1192 | 1193 | mail_body_security_notification_change_to: ! '%{field} was changed to %{value}.' |
|
1193 | 1194 | mail_body_security_notification_add: ! '%{field} %{value} was added.' |
|
1194 | 1195 | mail_body_security_notification_remove: ! '%{field} %{value} was removed.' |
|
1195 | 1196 | mail_body_security_notification_notify_enabled: Email address %{value} now receives |
|
1196 | 1197 | notifications. |
|
1197 | 1198 | mail_body_security_notification_notify_disabled: Email address %{value} no longer |
|
1198 | 1199 | receives notifications. |
|
1199 | 1200 | mail_body_settings_updated: ! 'The following settings were changed:' |
|
1200 | 1201 | field_remote_ip: IP address |
|
1201 | 1202 | label_wiki_page_new: New wiki page |
|
1202 | 1203 | label_relations: Relations |
|
1203 | 1204 | button_filter: Filter |
@@ -1,1186 +1,1187 | |||
|
1 | 1 | en: |
|
2 | 2 | # Text direction: Left-to-Right (ltr) or Right-to-Left (rtl) |
|
3 | 3 | direction: ltr |
|
4 | 4 | date: |
|
5 | 5 | formats: |
|
6 | 6 | # Use the strftime parameters for formats. |
|
7 | 7 | # When no format has been given, it uses default. |
|
8 | 8 | # You can provide other formats here if you like! |
|
9 | 9 | default: "%m/%d/%Y" |
|
10 | 10 | short: "%b %d" |
|
11 | 11 | long: "%B %d, %Y" |
|
12 | 12 | |
|
13 | 13 | day_names: [Sunday, Monday, Tuesday, Wednesday, Thursday, Friday, Saturday] |
|
14 | 14 | abbr_day_names: [Sun, Mon, Tue, Wed, Thu, Fri, Sat] |
|
15 | 15 | |
|
16 | 16 | # Don't forget the nil at the beginning; there's no such thing as a 0th month |
|
17 | 17 | month_names: [~, January, February, March, April, May, June, July, August, September, October, November, December] |
|
18 | 18 | abbr_month_names: [~, Jan, Feb, Mar, Apr, May, Jun, Jul, Aug, Sep, Oct, Nov, Dec] |
|
19 | 19 | # Used in date_select and datime_select. |
|
20 | 20 | order: |
|
21 | 21 | - :year |
|
22 | 22 | - :month |
|
23 | 23 | - :day |
|
24 | 24 | |
|
25 | 25 | time: |
|
26 | 26 | formats: |
|
27 | 27 | default: "%m/%d/%Y %I:%M %p" |
|
28 | 28 | time: "%I:%M %p" |
|
29 | 29 | short: "%d %b %H:%M" |
|
30 | 30 | long: "%B %d, %Y %H:%M" |
|
31 | 31 | am: "am" |
|
32 | 32 | pm: "pm" |
|
33 | 33 | |
|
34 | 34 | datetime: |
|
35 | 35 | distance_in_words: |
|
36 | 36 | half_a_minute: "half a minute" |
|
37 | 37 | less_than_x_seconds: |
|
38 | 38 | one: "less than 1 second" |
|
39 | 39 | other: "less than %{count} seconds" |
|
40 | 40 | x_seconds: |
|
41 | 41 | one: "1 second" |
|
42 | 42 | other: "%{count} seconds" |
|
43 | 43 | less_than_x_minutes: |
|
44 | 44 | one: "less than a minute" |
|
45 | 45 | other: "less than %{count} minutes" |
|
46 | 46 | x_minutes: |
|
47 | 47 | one: "1 minute" |
|
48 | 48 | other: "%{count} minutes" |
|
49 | 49 | about_x_hours: |
|
50 | 50 | one: "about 1 hour" |
|
51 | 51 | other: "about %{count} hours" |
|
52 | 52 | x_hours: |
|
53 | 53 | one: "1 hour" |
|
54 | 54 | other: "%{count} hours" |
|
55 | 55 | x_days: |
|
56 | 56 | one: "1 day" |
|
57 | 57 | other: "%{count} days" |
|
58 | 58 | about_x_months: |
|
59 | 59 | one: "about 1 month" |
|
60 | 60 | other: "about %{count} months" |
|
61 | 61 | x_months: |
|
62 | 62 | one: "1 month" |
|
63 | 63 | other: "%{count} months" |
|
64 | 64 | about_x_years: |
|
65 | 65 | one: "about 1 year" |
|
66 | 66 | other: "about %{count} years" |
|
67 | 67 | over_x_years: |
|
68 | 68 | one: "over 1 year" |
|
69 | 69 | other: "over %{count} years" |
|
70 | 70 | almost_x_years: |
|
71 | 71 | one: "almost 1 year" |
|
72 | 72 | other: "almost %{count} years" |
|
73 | 73 | |
|
74 | 74 | number: |
|
75 | 75 | format: |
|
76 | 76 | separator: "." |
|
77 | 77 | delimiter: "" |
|
78 | 78 | precision: 3 |
|
79 | 79 | |
|
80 | 80 | human: |
|
81 | 81 | format: |
|
82 | 82 | delimiter: "" |
|
83 | 83 | precision: 3 |
|
84 | 84 | storage_units: |
|
85 | 85 | format: "%n %u" |
|
86 | 86 | units: |
|
87 | 87 | byte: |
|
88 | 88 | one: "Byte" |
|
89 | 89 | other: "Bytes" |
|
90 | 90 | kb: "KB" |
|
91 | 91 | mb: "MB" |
|
92 | 92 | gb: "GB" |
|
93 | 93 | tb: "TB" |
|
94 | 94 | |
|
95 | 95 | # Used in array.to_sentence. |
|
96 | 96 | support: |
|
97 | 97 | array: |
|
98 | 98 | sentence_connector: "and" |
|
99 | 99 | skip_last_comma: false |
|
100 | 100 | |
|
101 | 101 | activerecord: |
|
102 | 102 | errors: |
|
103 | 103 | template: |
|
104 | 104 | header: |
|
105 | 105 | one: "1 error prohibited this %{model} from being saved" |
|
106 | 106 | other: "%{count} errors prohibited this %{model} from being saved" |
|
107 | 107 | messages: |
|
108 | 108 | inclusion: "is not included in the list" |
|
109 | 109 | exclusion: "is reserved" |
|
110 | 110 | invalid: "is invalid" |
|
111 | 111 | confirmation: "doesn't match confirmation" |
|
112 | 112 | accepted: "must be accepted" |
|
113 | 113 | empty: "cannot be empty" |
|
114 | 114 | blank: "cannot be blank" |
|
115 | 115 | too_long: "is too long (maximum is %{count} characters)" |
|
116 | 116 | too_short: "is too short (minimum is %{count} characters)" |
|
117 | 117 | wrong_length: "is the wrong length (should be %{count} characters)" |
|
118 | 118 | taken: "has already been taken" |
|
119 | 119 | not_a_number: "is not a number" |
|
120 | 120 | not_a_date: "is not a valid date" |
|
121 | 121 | greater_than: "must be greater than %{count}" |
|
122 | 122 | greater_than_or_equal_to: "must be greater than or equal to %{count}" |
|
123 | 123 | equal_to: "must be equal to %{count}" |
|
124 | 124 | less_than: "must be less than %{count}" |
|
125 | 125 | less_than_or_equal_to: "must be less than or equal to %{count}" |
|
126 | 126 | odd: "must be odd" |
|
127 | 127 | even: "must be even" |
|
128 | 128 | greater_than_start_date: "must be greater than start date" |
|
129 | 129 | not_same_project: "doesn't belong to the same project" |
|
130 | 130 | circular_dependency: "This relation would create a circular dependency" |
|
131 | 131 | cant_link_an_issue_with_a_descendant: "An issue cannot be linked to one of its subtasks" |
|
132 | 132 | earlier_than_minimum_start_date: "cannot be earlier than %{date} because of preceding issues" |
|
133 | 133 | |
|
134 | 134 | actionview_instancetag_blank_option: Please select |
|
135 | 135 | |
|
136 | 136 | general_text_No: 'No' |
|
137 | 137 | general_text_Yes: 'Yes' |
|
138 | 138 | general_text_no: 'no' |
|
139 | 139 | general_text_yes: 'yes' |
|
140 | 140 | general_lang_name: 'English' |
|
141 | 141 | general_csv_separator: ',' |
|
142 | 142 | general_csv_decimal_separator: '.' |
|
143 | 143 | general_csv_encoding: ISO-8859-1 |
|
144 | 144 | general_pdf_fontname: freesans |
|
145 | 145 | general_pdf_monospaced_fontname: freemono |
|
146 | 146 | general_first_day_of_week: '7' |
|
147 | 147 | |
|
148 | 148 | notice_account_updated: Account was successfully updated. |
|
149 | 149 | notice_account_invalid_credentials: Invalid user or password |
|
150 | 150 | notice_account_password_updated: Password was successfully updated. |
|
151 | 151 | notice_account_wrong_password: Wrong password |
|
152 | 152 | notice_account_register_done: Account was successfully created. An email containing the instructions to activate your account was sent to %{email}. |
|
153 | 153 | notice_account_unknown_email: Unknown user. |
|
154 | 154 | notice_account_not_activated_yet: You haven't activated your account yet. If you want to receive a new activation email, please <a href="%{url}">click this link</a>. |
|
155 | 155 | notice_account_locked: Your account is locked. |
|
156 | 156 | notice_can_t_change_password: This account uses an external authentication source. Impossible to change the password. |
|
157 | 157 | notice_account_lost_email_sent: An email with instructions to choose a new password has been sent to you. |
|
158 | 158 | notice_account_activated: Your account has been activated. You can now log in. |
|
159 | 159 | notice_successful_create: Successful creation. |
|
160 | 160 | notice_successful_update: Successful update. |
|
161 | 161 | notice_successful_delete: Successful deletion. |
|
162 | 162 | notice_successful_connection: Successful connection. |
|
163 | 163 | notice_file_not_found: The page you were trying to access doesn't exist or has been removed. |
|
164 | 164 | notice_locking_conflict: Data has been updated by another user. |
|
165 | 165 | notice_not_authorized: You are not authorized to access this page. |
|
166 | 166 | notice_not_authorized_archived_project: The project you're trying to access has been archived. |
|
167 | 167 | notice_email_sent: "An email was sent to %{value}" |
|
168 | 168 | notice_email_error: "An error occurred while sending mail (%{value})" |
|
169 | 169 | notice_feeds_access_key_reseted: Your Atom access key was reset. |
|
170 | 170 | notice_api_access_key_reseted: Your API access key was reset. |
|
171 | 171 | notice_failed_to_save_issues: "Failed to save %{count} issue(s) on %{total} selected: %{ids}." |
|
172 | 172 | notice_failed_to_save_time_entries: "Failed to save %{count} time entrie(s) on %{total} selected: %{ids}." |
|
173 | 173 | notice_failed_to_save_members: "Failed to save member(s): %{errors}." |
|
174 | 174 | notice_no_issue_selected: "No issue is selected! Please, check the issues you want to edit." |
|
175 | 175 | notice_account_pending: "Your account was created and is now pending administrator approval." |
|
176 | 176 | notice_default_data_loaded: Default configuration successfully loaded. |
|
177 | 177 | notice_unable_delete_version: Unable to delete version. |
|
178 | 178 | notice_unable_delete_time_entry: Unable to delete time log entry. |
|
179 | 179 | notice_issue_done_ratios_updated: Issue done ratios updated. |
|
180 | 180 | notice_gantt_chart_truncated: "The chart was truncated because it exceeds the maximum number of items that can be displayed (%{max})" |
|
181 | 181 | notice_issue_successful_create: "Issue %{id} created." |
|
182 | 182 | notice_issue_update_conflict: "The issue has been updated by an other user while you were editing it." |
|
183 | 183 | notice_account_deleted: "Your account has been permanently deleted." |
|
184 | 184 | notice_user_successful_create: "User %{id} created." |
|
185 | 185 | notice_new_password_must_be_different: The new password must be different from the current password |
|
186 | 186 | notice_import_finished: "All %{count} items have been imported." |
|
187 | 187 | notice_import_finished_with_errors: "%{count} out of %{total} items could not be imported." |
|
188 | 188 | |
|
189 | 189 | error_can_t_load_default_data: "Default configuration could not be loaded: %{value}" |
|
190 | 190 | error_scm_not_found: "The entry or revision was not found in the repository." |
|
191 | 191 | error_scm_command_failed: "An error occurred when trying to access the repository: %{value}" |
|
192 | 192 | error_scm_annotate: "The entry does not exist or cannot be annotated." |
|
193 | 193 | error_scm_annotate_big_text_file: "The entry cannot be annotated, as it exceeds the maximum text file size." |
|
194 | 194 | error_issue_not_found_in_project: 'The issue was not found or does not belong to this project' |
|
195 | 195 | error_no_tracker_in_project: 'No tracker is associated to this project. Please check the Project settings.' |
|
196 | 196 | error_no_default_issue_status: 'No default issue status is defined. Please check your configuration (Go to "Administration -> Issue statuses").' |
|
197 | 197 | error_can_not_delete_custom_field: Unable to delete custom field |
|
198 | 198 | error_can_not_delete_tracker: "This tracker contains issues and cannot be deleted." |
|
199 | 199 | error_can_not_remove_role: "This role is in use and cannot be deleted." |
|
200 | 200 | error_can_not_reopen_issue_on_closed_version: 'An issue assigned to a closed version cannot be reopened' |
|
201 | 201 | error_can_not_archive_project: This project cannot be archived |
|
202 | 202 | error_issue_done_ratios_not_updated: "Issue done ratios not updated." |
|
203 | 203 | error_workflow_copy_source: 'Please select a source tracker or role' |
|
204 | 204 | error_workflow_copy_target: 'Please select target tracker(s) and role(s)' |
|
205 | 205 | error_unable_delete_issue_status: 'Unable to delete issue status' |
|
206 | 206 | error_unable_to_connect: "Unable to connect (%{value})" |
|
207 | 207 | error_attachment_too_big: "This file cannot be uploaded because it exceeds the maximum allowed file size (%{max_size})" |
|
208 | 208 | error_session_expired: "Your session has expired. Please login again." |
|
209 | 209 | warning_attachments_not_saved: "%{count} file(s) could not be saved." |
|
210 | 210 | error_password_expired: "Your password has expired or the administrator requires you to change it." |
|
211 | 211 | error_invalid_file_encoding: "The file is not a valid %{encoding} encoded file" |
|
212 | 212 | error_invalid_csv_file_or_settings: "The file is not a CSV file or does not match the settings below" |
|
213 | 213 | error_can_not_read_import_file: "An error occurred while reading the file to import" |
|
214 | 214 | error_attachment_extension_not_allowed: "Attachment extension %{extension} is not allowed" |
|
215 | 215 | error_ldap_bind_credentials: "Invalid LDAP Account/Password" |
|
216 | 216 | |
|
217 | 217 | mail_subject_lost_password: "Your %{value} password" |
|
218 | 218 | mail_body_lost_password: 'To change your password, click on the following link:' |
|
219 | 219 | mail_subject_register: "Your %{value} account activation" |
|
220 | 220 | mail_body_register: 'To activate your account, click on the following link:' |
|
221 | 221 | mail_body_account_information_external: "You can use your %{value} account to log in." |
|
222 | 222 | mail_body_account_information: Your account information |
|
223 | 223 | mail_subject_account_activation_request: "%{value} account activation request" |
|
224 | 224 | mail_body_account_activation_request: "A new user (%{value}) has registered. The account is pending your approval:" |
|
225 | 225 | mail_subject_reminder: "%{count} issue(s) due in the next %{days} days" |
|
226 | 226 | mail_body_reminder: "%{count} issue(s) that are assigned to you are due in the next %{days} days:" |
|
227 | 227 | mail_subject_wiki_content_added: "'%{id}' wiki page has been added" |
|
228 | 228 | mail_body_wiki_content_added: "The '%{id}' wiki page has been added by %{author}." |
|
229 | 229 | mail_subject_wiki_content_updated: "'%{id}' wiki page has been updated" |
|
230 | 230 | mail_body_wiki_content_updated: "The '%{id}' wiki page has been updated by %{author}." |
|
231 | 231 | mail_subject_security_notification: "Security notification" |
|
232 | 232 | mail_body_security_notification_change: "%{field} was changed." |
|
233 | 233 | mail_body_security_notification_change_to: "%{field} was changed to %{value}." |
|
234 | 234 | mail_body_security_notification_add: "%{field} %{value} was added." |
|
235 | 235 | mail_body_security_notification_remove: "%{field} %{value} was removed." |
|
236 | 236 | mail_body_security_notification_notify_enabled: "Email address %{value} now receives notifications." |
|
237 | 237 | mail_body_security_notification_notify_disabled: "Email address %{value} no longer receives notifications." |
|
238 | 238 | mail_body_settings_updated: "The following settings were changed:" |
|
239 | 239 | |
|
240 | 240 | field_name: Name |
|
241 | 241 | field_description: Description |
|
242 | 242 | field_summary: Summary |
|
243 | 243 | field_is_required: Required |
|
244 | 244 | field_firstname: First name |
|
245 | 245 | field_lastname: Last name |
|
246 | 246 | field_mail: Email |
|
247 | 247 | field_address: Email |
|
248 | 248 | field_filename: File |
|
249 | 249 | field_filesize: Size |
|
250 | 250 | field_downloads: Downloads |
|
251 | 251 | field_author: Author |
|
252 | 252 | field_created_on: Created |
|
253 | 253 | field_updated_on: Updated |
|
254 | 254 | field_closed_on: Closed |
|
255 | 255 | field_field_format: Format |
|
256 | 256 | field_is_for_all: For all projects |
|
257 | 257 | field_possible_values: Possible values |
|
258 | 258 | field_regexp: Regular expression |
|
259 | 259 | field_min_length: Minimum length |
|
260 | 260 | field_max_length: Maximum length |
|
261 | 261 | field_value: Value |
|
262 | 262 | field_category: Category |
|
263 | 263 | field_title: Title |
|
264 | 264 | field_project: Project |
|
265 | 265 | field_issue: Issue |
|
266 | 266 | field_status: Status |
|
267 | 267 | field_notes: Notes |
|
268 | 268 | field_is_closed: Issue closed |
|
269 | 269 | field_is_default: Default value |
|
270 | 270 | field_tracker: Tracker |
|
271 | 271 | field_subject: Subject |
|
272 | 272 | field_due_date: Due date |
|
273 | 273 | field_assigned_to: Assignee |
|
274 | 274 | field_priority: Priority |
|
275 | 275 | field_fixed_version: Target version |
|
276 | 276 | field_user: User |
|
277 | 277 | field_principal: Principal |
|
278 | 278 | field_role: Role |
|
279 | 279 | field_homepage: Homepage |
|
280 | 280 | field_is_public: Public |
|
281 | 281 | field_parent: Subproject of |
|
282 | 282 | field_is_in_roadmap: Issues displayed in roadmap |
|
283 | 283 | field_login: Login |
|
284 | 284 | field_mail_notification: Email notifications |
|
285 | 285 | field_admin: Administrator |
|
286 | 286 | field_last_login_on: Last connection |
|
287 | 287 | field_language: Language |
|
288 | 288 | field_effective_date: Due to |
|
289 | 289 | field_password: Password |
|
290 | 290 | field_new_password: New password |
|
291 | 291 | field_password_confirmation: Confirmation |
|
292 | 292 | field_version: Version |
|
293 | 293 | field_type: Type |
|
294 | 294 | field_host: Host |
|
295 | 295 | field_port: Port |
|
296 | 296 | field_account: Account |
|
297 | 297 | field_base_dn: Base DN |
|
298 | 298 | field_attr_login: Login attribute |
|
299 | 299 | field_attr_firstname: Firstname attribute |
|
300 | 300 | field_attr_lastname: Lastname attribute |
|
301 | 301 | field_attr_mail: Email attribute |
|
302 | 302 | field_onthefly: On-the-fly user creation |
|
303 | 303 | field_start_date: Start date |
|
304 | 304 | field_done_ratio: "% Done" |
|
305 | 305 | field_auth_source: Authentication mode |
|
306 | 306 | field_hide_mail: Hide my email address |
|
307 | 307 | field_comments: Comment |
|
308 | 308 | field_url: URL |
|
309 | 309 | field_start_page: Start page |
|
310 | 310 | field_subproject: Subproject |
|
311 | 311 | field_hours: Hours |
|
312 | 312 | field_activity: Activity |
|
313 | 313 | field_spent_on: Date |
|
314 | 314 | field_identifier: Identifier |
|
315 | 315 | field_is_filter: Used as a filter |
|
316 | 316 | field_issue_to: Related issue |
|
317 | 317 | field_delay: Delay |
|
318 | 318 | field_assignable: Issues can be assigned to this role |
|
319 | 319 | field_redirect_existing_links: Redirect existing links |
|
320 | 320 | field_estimated_hours: Estimated time |
|
321 | 321 | field_column_names: Columns |
|
322 | 322 | field_time_entries: Log time |
|
323 | 323 | field_time_zone: Time zone |
|
324 | 324 | field_searchable: Searchable |
|
325 | 325 | field_default_value: Default value |
|
326 | 326 | field_comments_sorting: Display comments |
|
327 | 327 | field_parent_title: Parent page |
|
328 | 328 | field_editable: Editable |
|
329 | 329 | field_watcher: Watcher |
|
330 | 330 | field_identity_url: OpenID URL |
|
331 | 331 | field_content: Content |
|
332 | 332 | field_group_by: Group results by |
|
333 | 333 | field_sharing: Sharing |
|
334 | 334 | field_parent_issue: Parent task |
|
335 | 335 | field_member_of_group: "Assignee's group" |
|
336 | 336 | field_assigned_to_role: "Assignee's role" |
|
337 | 337 | field_text: Text field |
|
338 | 338 | field_visible: Visible |
|
339 | 339 | field_warn_on_leaving_unsaved: "Warn me when leaving a page with unsaved text" |
|
340 | 340 | field_issues_visibility: Issues visibility |
|
341 | 341 | field_is_private: Private |
|
342 | 342 | field_commit_logs_encoding: Commit messages encoding |
|
343 | 343 | field_scm_path_encoding: Path encoding |
|
344 | 344 | field_path_to_repository: Path to repository |
|
345 | 345 | field_root_directory: Root directory |
|
346 | 346 | field_cvsroot: CVSROOT |
|
347 | 347 | field_cvs_module: Module |
|
348 | 348 | field_repository_is_default: Main repository |
|
349 | 349 | field_multiple: Multiple values |
|
350 | 350 | field_auth_source_ldap_filter: LDAP filter |
|
351 | 351 | field_core_fields: Standard fields |
|
352 | 352 | field_timeout: "Timeout (in seconds)" |
|
353 | 353 | field_board_parent: Parent forum |
|
354 | 354 | field_private_notes: Private notes |
|
355 | 355 | field_inherit_members: Inherit members |
|
356 | 356 | field_generate_password: Generate password |
|
357 | 357 | field_must_change_passwd: Must change password at next logon |
|
358 | 358 | field_default_status: Default status |
|
359 | 359 | field_users_visibility: Users visibility |
|
360 | 360 | field_time_entries_visibility: Time logs visibility |
|
361 | 361 | field_total_estimated_hours: Total estimated time |
|
362 | 362 | field_default_version: Default version |
|
363 | 363 | field_remote_ip: IP address |
|
364 | 364 | |
|
365 | 365 | setting_app_title: Application title |
|
366 | 366 | setting_app_subtitle: Application subtitle |
|
367 | 367 | setting_welcome_text: Welcome text |
|
368 | 368 | setting_default_language: Default language |
|
369 | 369 | setting_login_required: Authentication required |
|
370 | 370 | setting_self_registration: Self-registration |
|
371 | 371 | setting_attachment_max_size: Maximum attachment size |
|
372 | 372 | setting_issues_export_limit: Issues export limit |
|
373 | 373 | setting_mail_from: Emission email address |
|
374 | 374 | setting_bcc_recipients: Blind carbon copy recipients (bcc) |
|
375 | 375 | setting_plain_text_mail: Plain text mail (no HTML) |
|
376 | 376 | setting_host_name: Host name and path |
|
377 | 377 | setting_text_formatting: Text formatting |
|
378 | 378 | setting_wiki_compression: Wiki history compression |
|
379 | 379 | setting_feeds_limit: Maximum number of items in Atom feeds |
|
380 | 380 | setting_default_projects_public: New projects are public by default |
|
381 | 381 | setting_autofetch_changesets: Fetch commits automatically |
|
382 | 382 | setting_sys_api_enabled: Enable WS for repository management |
|
383 | 383 | setting_commit_ref_keywords: Referencing keywords |
|
384 | 384 | setting_commit_fix_keywords: Fixing keywords |
|
385 | 385 | setting_autologin: Autologin |
|
386 | 386 | setting_date_format: Date format |
|
387 | 387 | setting_time_format: Time format |
|
388 | 388 | setting_cross_project_issue_relations: Allow cross-project issue relations |
|
389 | 389 | setting_cross_project_subtasks: Allow cross-project subtasks |
|
390 | 390 | setting_issue_list_default_columns: Default columns displayed on the issue list |
|
391 | 391 | setting_repositories_encodings: Attachments and repositories encodings |
|
392 | 392 | setting_emails_header: Email header |
|
393 | 393 | setting_emails_footer: Email footer |
|
394 | 394 | setting_protocol: Protocol |
|
395 | 395 | setting_per_page_options: Objects per page options |
|
396 | 396 | setting_user_format: Users display format |
|
397 | 397 | setting_activity_days_default: Days displayed on project activity |
|
398 | 398 | setting_display_subprojects_issues: Display subprojects issues on main projects by default |
|
399 | 399 | setting_enabled_scm: Enabled SCM |
|
400 | 400 | setting_mail_handler_body_delimiters: "Truncate emails after one of these lines" |
|
401 | 401 | setting_mail_handler_api_enabled: Enable WS for incoming emails |
|
402 | 402 | setting_mail_handler_api_key: Incoming email WS API key |
|
403 | 403 | setting_sys_api_key: Repository management WS API key |
|
404 | 404 | setting_sequential_project_identifiers: Generate sequential project identifiers |
|
405 | 405 | setting_gravatar_enabled: Use Gravatar user icons |
|
406 | 406 | setting_gravatar_default: Default Gravatar image |
|
407 | 407 | setting_diff_max_lines_displayed: Maximum number of diff lines displayed |
|
408 | 408 | setting_file_max_size_displayed: Maximum size of text files displayed inline |
|
409 | 409 | setting_repository_log_display_limit: Maximum number of revisions displayed on file log |
|
410 | 410 | setting_openid: Allow OpenID login and registration |
|
411 | 411 | setting_password_max_age: Require password change after |
|
412 | 412 | setting_password_min_length: Minimum password length |
|
413 | 413 | setting_lost_password: Allow password reset via email |
|
414 | 414 | setting_new_project_user_role_id: Role given to a non-admin user who creates a project |
|
415 | 415 | setting_default_projects_modules: Default enabled modules for new projects |
|
416 | 416 | setting_issue_done_ratio: Calculate the issue done ratio with |
|
417 | 417 | setting_issue_done_ratio_issue_field: Use the issue field |
|
418 | 418 | setting_issue_done_ratio_issue_status: Use the issue status |
|
419 | 419 | setting_start_of_week: Start calendars on |
|
420 | 420 | setting_rest_api_enabled: Enable REST web service |
|
421 | 421 | setting_cache_formatted_text: Cache formatted text |
|
422 | 422 | setting_default_notification_option: Default notification option |
|
423 | 423 | setting_commit_logtime_enabled: Enable time logging |
|
424 | 424 | setting_commit_logtime_activity_id: Activity for logged time |
|
425 | 425 | setting_gantt_items_limit: Maximum number of items displayed on the gantt chart |
|
426 | 426 | setting_issue_group_assignment: Allow issue assignment to groups |
|
427 | 427 | setting_default_issue_start_date_to_creation_date: Use current date as start date for new issues |
|
428 | 428 | setting_commit_cross_project_ref: Allow issues of all the other projects to be referenced and fixed |
|
429 | 429 | setting_unsubscribe: Allow users to delete their own account |
|
430 | 430 | setting_session_lifetime: Session maximum lifetime |
|
431 | 431 | setting_session_timeout: Session inactivity timeout |
|
432 | 432 | setting_thumbnails_enabled: Display attachment thumbnails |
|
433 | 433 | setting_thumbnails_size: Thumbnails size (in pixels) |
|
434 | 434 | setting_non_working_week_days: Non-working days |
|
435 | 435 | setting_jsonp_enabled: Enable JSONP support |
|
436 | 436 | setting_default_projects_tracker_ids: Default trackers for new projects |
|
437 | 437 | setting_mail_handler_excluded_filenames: Exclude attachments by name |
|
438 | 438 | setting_force_default_language_for_anonymous: Force default language for anonymous users |
|
439 | 439 | setting_force_default_language_for_loggedin: Force default language for logged-in users |
|
440 | 440 | setting_link_copied_issue: Link issues on copy |
|
441 | 441 | setting_max_additional_emails: Maximum number of additional email addresses |
|
442 | 442 | setting_search_results_per_page: Search results per page |
|
443 | 443 | setting_attachment_extensions_allowed: Allowed extensions |
|
444 | 444 | setting_attachment_extensions_denied: Disallowed extensions |
|
445 | 445 | |
|
446 | 446 | permission_add_project: Create project |
|
447 | 447 | permission_add_subprojects: Create subprojects |
|
448 | 448 | permission_edit_project: Edit project |
|
449 | 449 | permission_close_project: Close / reopen the project |
|
450 | 450 | permission_select_project_modules: Select project modules |
|
451 | 451 | permission_manage_members: Manage members |
|
452 | 452 | permission_manage_project_activities: Manage project activities |
|
453 | 453 | permission_manage_versions: Manage versions |
|
454 | 454 | permission_manage_categories: Manage issue categories |
|
455 | 455 | permission_view_issues: View Issues |
|
456 | 456 | permission_add_issues: Add issues |
|
457 | 457 | permission_edit_issues: Edit issues |
|
458 | 458 | permission_copy_issues: Copy issues |
|
459 | 459 | permission_manage_issue_relations: Manage issue relations |
|
460 | 460 | permission_set_issues_private: Set issues public or private |
|
461 | 461 | permission_set_own_issues_private: Set own issues public or private |
|
462 | 462 | permission_add_issue_notes: Add notes |
|
463 | 463 | permission_edit_issue_notes: Edit notes |
|
464 | 464 | permission_edit_own_issue_notes: Edit own notes |
|
465 | 465 | permission_view_private_notes: View private notes |
|
466 | 466 | permission_set_notes_private: Set notes as private |
|
467 | 467 | permission_move_issues: Move issues |
|
468 | 468 | permission_delete_issues: Delete issues |
|
469 | 469 | permission_manage_public_queries: Manage public queries |
|
470 | 470 | permission_save_queries: Save queries |
|
471 | 471 | permission_view_gantt: View gantt chart |
|
472 | 472 | permission_view_calendar: View calendar |
|
473 | 473 | permission_view_issue_watchers: View watchers list |
|
474 | 474 | permission_add_issue_watchers: Add watchers |
|
475 | 475 | permission_delete_issue_watchers: Delete watchers |
|
476 | 476 | permission_log_time: Log spent time |
|
477 | 477 | permission_view_time_entries: View spent time |
|
478 | 478 | permission_edit_time_entries: Edit time logs |
|
479 | 479 | permission_edit_own_time_entries: Edit own time logs |
|
480 | 480 | permission_manage_news: Manage news |
|
481 | 481 | permission_comment_news: Comment news |
|
482 | 482 | permission_view_documents: View documents |
|
483 | 483 | permission_add_documents: Add documents |
|
484 | 484 | permission_edit_documents: Edit documents |
|
485 | 485 | permission_delete_documents: Delete documents |
|
486 | 486 | permission_manage_files: Manage files |
|
487 | 487 | permission_view_files: View files |
|
488 | 488 | permission_manage_wiki: Manage wiki |
|
489 | 489 | permission_rename_wiki_pages: Rename wiki pages |
|
490 | 490 | permission_delete_wiki_pages: Delete wiki pages |
|
491 | 491 | permission_view_wiki_pages: View wiki |
|
492 | 492 | permission_view_wiki_edits: View wiki history |
|
493 | 493 | permission_edit_wiki_pages: Edit wiki pages |
|
494 | 494 | permission_delete_wiki_pages_attachments: Delete attachments |
|
495 | 495 | permission_protect_wiki_pages: Protect wiki pages |
|
496 | 496 | permission_manage_repository: Manage repository |
|
497 | 497 | permission_browse_repository: Browse repository |
|
498 | 498 | permission_view_changesets: View changesets |
|
499 | 499 | permission_commit_access: Commit access |
|
500 | 500 | permission_manage_boards: Manage forums |
|
501 | 501 | permission_view_messages: View messages |
|
502 | 502 | permission_add_messages: Post messages |
|
503 | 503 | permission_edit_messages: Edit messages |
|
504 | 504 | permission_edit_own_messages: Edit own messages |
|
505 | 505 | permission_delete_messages: Delete messages |
|
506 | 506 | permission_delete_own_messages: Delete own messages |
|
507 | 507 | permission_export_wiki_pages: Export wiki pages |
|
508 | 508 | permission_manage_subtasks: Manage subtasks |
|
509 | 509 | permission_manage_related_issues: Manage related issues |
|
510 | 510 | permission_import_issues: Import issues |
|
511 | 511 | |
|
512 | 512 | project_module_issue_tracking: Issue tracking |
|
513 | 513 | project_module_time_tracking: Time tracking |
|
514 | 514 | project_module_news: News |
|
515 | 515 | project_module_documents: Documents |
|
516 | 516 | project_module_files: Files |
|
517 | 517 | project_module_wiki: Wiki |
|
518 | 518 | project_module_repository: Repository |
|
519 | 519 | project_module_boards: Forums |
|
520 | 520 | project_module_calendar: Calendar |
|
521 | 521 | project_module_gantt: Gantt |
|
522 | 522 | |
|
523 | 523 | label_user: User |
|
524 | 524 | label_user_plural: Users |
|
525 | 525 | label_user_new: New user |
|
526 | 526 | label_user_anonymous: Anonymous |
|
527 | 527 | label_project: Project |
|
528 | 528 | label_project_new: New project |
|
529 | 529 | label_project_plural: Projects |
|
530 | 530 | label_x_projects: |
|
531 | 531 | zero: no projects |
|
532 | 532 | one: 1 project |
|
533 | 533 | other: "%{count} projects" |
|
534 | 534 | label_project_all: All Projects |
|
535 | 535 | label_project_latest: Latest projects |
|
536 | 536 | label_issue: Issue |
|
537 | 537 | label_issue_new: New issue |
|
538 | 538 | label_issue_plural: Issues |
|
539 | 539 | label_issue_view_all: View all issues |
|
540 | 540 | label_issues_by: "Issues by %{value}" |
|
541 | 541 | label_issue_added: Issue added |
|
542 | 542 | label_issue_updated: Issue updated |
|
543 | 543 | label_issue_note_added: Note added |
|
544 | 544 | label_issue_status_updated: Status updated |
|
545 | 545 | label_issue_assigned_to_updated: Assignee updated |
|
546 | 546 | label_issue_priority_updated: Priority updated |
|
547 | 547 | label_document: Document |
|
548 | 548 | label_document_new: New document |
|
549 | 549 | label_document_plural: Documents |
|
550 | 550 | label_document_added: Document added |
|
551 | 551 | label_role: Role |
|
552 | 552 | label_role_plural: Roles |
|
553 | 553 | label_role_new: New role |
|
554 | 554 | label_role_and_permissions: Roles and permissions |
|
555 | 555 | label_role_anonymous: Anonymous |
|
556 | 556 | label_role_non_member: Non member |
|
557 | 557 | label_member: Member |
|
558 | 558 | label_member_new: New member |
|
559 | 559 | label_member_plural: Members |
|
560 | 560 | label_tracker: Tracker |
|
561 | 561 | label_tracker_plural: Trackers |
|
562 | 562 | label_tracker_new: New tracker |
|
563 | 563 | label_workflow: Workflow |
|
564 | 564 | label_issue_status: Issue status |
|
565 | 565 | label_issue_status_plural: Issue statuses |
|
566 | 566 | label_issue_status_new: New status |
|
567 | 567 | label_issue_category: Issue category |
|
568 | 568 | label_issue_category_plural: Issue categories |
|
569 | 569 | label_issue_category_new: New category |
|
570 | 570 | label_custom_field: Custom field |
|
571 | 571 | label_custom_field_plural: Custom fields |
|
572 | 572 | label_custom_field_new: New custom field |
|
573 | 573 | label_enumerations: Enumerations |
|
574 | 574 | label_enumeration_new: New value |
|
575 | 575 | label_information: Information |
|
576 | 576 | label_information_plural: Information |
|
577 | 577 | label_please_login: Please log in |
|
578 | 578 | label_register: Register |
|
579 | 579 | label_login_with_open_id_option: or login with OpenID |
|
580 | 580 | label_password_lost: Lost password |
|
581 | 581 | label_password_required: Confirm your password to continue |
|
582 | 582 | label_home: Home |
|
583 | 583 | label_my_page: My page |
|
584 | 584 | label_my_account: My account |
|
585 | 585 | label_my_projects: My projects |
|
586 | 586 | label_my_page_block: My page block |
|
587 | 587 | label_administration: Administration |
|
588 | 588 | label_login: Sign in |
|
589 | 589 | label_logout: Sign out |
|
590 | 590 | label_help: Help |
|
591 | 591 | label_reported_issues: Reported issues |
|
592 | 592 | label_assigned_issues: Assigned issues |
|
593 | 593 | label_assigned_to_me_issues: Issues assigned to me |
|
594 | 594 | label_last_login: Last connection |
|
595 | 595 | label_registered_on: Registered on |
|
596 | 596 | label_activity: Activity |
|
597 | 597 | label_overall_activity: Overall activity |
|
598 | 598 | label_user_activity: "%{value}'s activity" |
|
599 | 599 | label_new: New |
|
600 | 600 | label_logged_as: Logged in as |
|
601 | 601 | label_environment: Environment |
|
602 | 602 | label_authentication: Authentication |
|
603 | 603 | label_auth_source: Authentication mode |
|
604 | 604 | label_auth_source_new: New authentication mode |
|
605 | 605 | label_auth_source_plural: Authentication modes |
|
606 | 606 | label_subproject_plural: Subprojects |
|
607 | 607 | label_subproject_new: New subproject |
|
608 | 608 | label_and_its_subprojects: "%{value} and its subprojects" |
|
609 | 609 | label_min_max_length: Min - Max length |
|
610 | 610 | label_list: List |
|
611 | 611 | label_date: Date |
|
612 | 612 | label_integer: Integer |
|
613 | 613 | label_float: Float |
|
614 | 614 | label_boolean: Boolean |
|
615 | 615 | label_string: Text |
|
616 | 616 | label_text: Long text |
|
617 | 617 | label_attribute: Attribute |
|
618 | 618 | label_attribute_plural: Attributes |
|
619 | 619 | label_no_data: No data to display |
|
620 | label_no_preview: No preview available | |
|
620 | 621 | label_change_status: Change status |
|
621 | 622 | label_history: History |
|
622 | 623 | label_attachment: File |
|
623 | 624 | label_attachment_new: New file |
|
624 | 625 | label_attachment_delete: Delete file |
|
625 | 626 | label_attachment_plural: Files |
|
626 | 627 | label_file_added: File added |
|
627 | 628 | label_report: Report |
|
628 | 629 | label_report_plural: Reports |
|
629 | 630 | label_news: News |
|
630 | 631 | label_news_new: Add news |
|
631 | 632 | label_news_plural: News |
|
632 | 633 | label_news_latest: Latest news |
|
633 | 634 | label_news_view_all: View all news |
|
634 | 635 | label_news_added: News added |
|
635 | 636 | label_news_comment_added: Comment added to a news |
|
636 | 637 | label_settings: Settings |
|
637 | 638 | label_overview: Overview |
|
638 | 639 | label_version: Version |
|
639 | 640 | label_version_new: New version |
|
640 | 641 | label_version_plural: Versions |
|
641 | 642 | label_close_versions: Close completed versions |
|
642 | 643 | label_confirmation: Confirmation |
|
643 | 644 | label_export_to: 'Also available in:' |
|
644 | 645 | label_read: Read... |
|
645 | 646 | label_public_projects: Public projects |
|
646 | 647 | label_open_issues: open |
|
647 | 648 | label_open_issues_plural: open |
|
648 | 649 | label_closed_issues: closed |
|
649 | 650 | label_closed_issues_plural: closed |
|
650 | 651 | label_x_open_issues_abbr: |
|
651 | 652 | zero: 0 open |
|
652 | 653 | one: 1 open |
|
653 | 654 | other: "%{count} open" |
|
654 | 655 | label_x_closed_issues_abbr: |
|
655 | 656 | zero: 0 closed |
|
656 | 657 | one: 1 closed |
|
657 | 658 | other: "%{count} closed" |
|
658 | 659 | label_x_issues: |
|
659 | 660 | zero: 0 issues |
|
660 | 661 | one: 1 issue |
|
661 | 662 | other: "%{count} issues" |
|
662 | 663 | label_total: Total |
|
663 | 664 | label_total_plural: Totals |
|
664 | 665 | label_total_time: Total time |
|
665 | 666 | label_permissions: Permissions |
|
666 | 667 | label_current_status: Current status |
|
667 | 668 | label_new_statuses_allowed: New statuses allowed |
|
668 | 669 | label_all: all |
|
669 | 670 | label_any: any |
|
670 | 671 | label_none: none |
|
671 | 672 | label_nobody: nobody |
|
672 | 673 | label_next: Next |
|
673 | 674 | label_previous: Previous |
|
674 | 675 | label_used_by: Used by |
|
675 | 676 | label_details: Details |
|
676 | 677 | label_add_note: Add a note |
|
677 | 678 | label_calendar: Calendar |
|
678 | 679 | label_months_from: months from |
|
679 | 680 | label_gantt: Gantt |
|
680 | 681 | label_internal: Internal |
|
681 | 682 | label_last_changes: "last %{count} changes" |
|
682 | 683 | label_change_view_all: View all changes |
|
683 | 684 | label_personalize_page: Personalize this page |
|
684 | 685 | label_comment: Comment |
|
685 | 686 | label_comment_plural: Comments |
|
686 | 687 | label_x_comments: |
|
687 | 688 | zero: no comments |
|
688 | 689 | one: 1 comment |
|
689 | 690 | other: "%{count} comments" |
|
690 | 691 | label_comment_add: Add a comment |
|
691 | 692 | label_comment_added: Comment added |
|
692 | 693 | label_comment_delete: Delete comments |
|
693 | 694 | label_query: Custom query |
|
694 | 695 | label_query_plural: Custom queries |
|
695 | 696 | label_query_new: New query |
|
696 | 697 | label_my_queries: My custom queries |
|
697 | 698 | label_filter_add: Add filter |
|
698 | 699 | label_filter_plural: Filters |
|
699 | 700 | label_equals: is |
|
700 | 701 | label_not_equals: is not |
|
701 | 702 | label_in_less_than: in less than |
|
702 | 703 | label_in_more_than: in more than |
|
703 | 704 | label_in_the_next_days: in the next |
|
704 | 705 | label_in_the_past_days: in the past |
|
705 | 706 | label_greater_or_equal: '>=' |
|
706 | 707 | label_less_or_equal: '<=' |
|
707 | 708 | label_between: between |
|
708 | 709 | label_in: in |
|
709 | 710 | label_today: today |
|
710 | 711 | label_all_time: all time |
|
711 | 712 | label_yesterday: yesterday |
|
712 | 713 | label_this_week: this week |
|
713 | 714 | label_last_week: last week |
|
714 | 715 | label_last_n_weeks: "last %{count} weeks" |
|
715 | 716 | label_last_n_days: "last %{count} days" |
|
716 | 717 | label_this_month: this month |
|
717 | 718 | label_last_month: last month |
|
718 | 719 | label_this_year: this year |
|
719 | 720 | label_date_range: Date range |
|
720 | 721 | label_less_than_ago: less than days ago |
|
721 | 722 | label_more_than_ago: more than days ago |
|
722 | 723 | label_ago: days ago |
|
723 | 724 | label_contains: contains |
|
724 | 725 | label_not_contains: doesn't contain |
|
725 | 726 | label_any_issues_in_project: any issues in project |
|
726 | 727 | label_any_issues_not_in_project: any issues not in project |
|
727 | 728 | label_no_issues_in_project: no issues in project |
|
728 | 729 | label_any_open_issues: any open issues |
|
729 | 730 | label_no_open_issues: no open issues |
|
730 | 731 | label_day_plural: days |
|
731 | 732 | label_repository: Repository |
|
732 | 733 | label_repository_new: New repository |
|
733 | 734 | label_repository_plural: Repositories |
|
734 | 735 | label_browse: Browse |
|
735 | 736 | label_branch: Branch |
|
736 | 737 | label_tag: Tag |
|
737 | 738 | label_revision: Revision |
|
738 | 739 | label_revision_plural: Revisions |
|
739 | 740 | label_revision_id: "Revision %{value}" |
|
740 | 741 | label_associated_revisions: Associated revisions |
|
741 | 742 | label_added: added |
|
742 | 743 | label_modified: modified |
|
743 | 744 | label_copied: copied |
|
744 | 745 | label_renamed: renamed |
|
745 | 746 | label_deleted: deleted |
|
746 | 747 | label_latest_revision: Latest revision |
|
747 | 748 | label_latest_revision_plural: Latest revisions |
|
748 | 749 | label_view_revisions: View revisions |
|
749 | 750 | label_view_all_revisions: View all revisions |
|
750 | 751 | label_max_size: Maximum size |
|
751 | 752 | label_sort_highest: Move to top |
|
752 | 753 | label_sort_higher: Move up |
|
753 | 754 | label_sort_lower: Move down |
|
754 | 755 | label_sort_lowest: Move to bottom |
|
755 | 756 | label_roadmap: Roadmap |
|
756 | 757 | label_roadmap_due_in: "Due in %{value}" |
|
757 | 758 | label_roadmap_overdue: "%{value} late" |
|
758 | 759 | label_roadmap_no_issues: No issues for this version |
|
759 | 760 | label_search: Search |
|
760 | 761 | label_result_plural: Results |
|
761 | 762 | label_all_words: All words |
|
762 | 763 | label_wiki: Wiki |
|
763 | 764 | label_wiki_edit: Wiki edit |
|
764 | 765 | label_wiki_edit_plural: Wiki edits |
|
765 | 766 | label_wiki_page: Wiki page |
|
766 | 767 | label_wiki_page_plural: Wiki pages |
|
767 | 768 | label_wiki_page_new: New wiki page |
|
768 | 769 | label_index_by_title: Index by title |
|
769 | 770 | label_index_by_date: Index by date |
|
770 | 771 | label_current_version: Current version |
|
771 | 772 | label_preview: Preview |
|
772 | 773 | label_feed_plural: Feeds |
|
773 | 774 | label_changes_details: Details of all changes |
|
774 | 775 | label_issue_tracking: Issue tracking |
|
775 | 776 | label_spent_time: Spent time |
|
776 | 777 | label_total_spent_time: Total spent time |
|
777 | 778 | label_overall_spent_time: Overall spent time |
|
778 | 779 | label_f_hour: "%{value} hour" |
|
779 | 780 | label_f_hour_plural: "%{value} hours" |
|
780 | 781 | label_f_hour_short: "%{value} h" |
|
781 | 782 | label_time_tracking: Time tracking |
|
782 | 783 | label_change_plural: Changes |
|
783 | 784 | label_statistics: Statistics |
|
784 | 785 | label_commits_per_month: Commits per month |
|
785 | 786 | label_commits_per_author: Commits per author |
|
786 | 787 | label_diff: diff |
|
787 | 788 | label_view_diff: View differences |
|
788 | 789 | label_diff_inline: inline |
|
789 | 790 | label_diff_side_by_side: side by side |
|
790 | 791 | label_options: Options |
|
791 | 792 | label_copy_workflow_from: Copy workflow from |
|
792 | 793 | label_permissions_report: Permissions report |
|
793 | 794 | label_watched_issues: Watched issues |
|
794 | 795 | label_related_issues: Related issues |
|
795 | 796 | label_applied_status: Applied status |
|
796 | 797 | label_loading: Loading... |
|
797 | 798 | label_relation_new: New relation |
|
798 | 799 | label_relation_delete: Delete relation |
|
799 | 800 | label_relates_to: Related to |
|
800 | 801 | label_duplicates: Duplicates |
|
801 | 802 | label_duplicated_by: Duplicated by |
|
802 | 803 | label_blocks: Blocks |
|
803 | 804 | label_blocked_by: Blocked by |
|
804 | 805 | label_precedes: Precedes |
|
805 | 806 | label_follows: Follows |
|
806 | 807 | label_copied_to: Copied to |
|
807 | 808 | label_copied_from: Copied from |
|
808 | 809 | label_stay_logged_in: Stay logged in |
|
809 | 810 | label_disabled: disabled |
|
810 | 811 | label_show_completed_versions: Show completed versions |
|
811 | 812 | label_me: me |
|
812 | 813 | label_board: Forum |
|
813 | 814 | label_board_new: New forum |
|
814 | 815 | label_board_plural: Forums |
|
815 | 816 | label_board_locked: Locked |
|
816 | 817 | label_board_sticky: Sticky |
|
817 | 818 | label_topic_plural: Topics |
|
818 | 819 | label_message_plural: Messages |
|
819 | 820 | label_message_last: Last message |
|
820 | 821 | label_message_new: New message |
|
821 | 822 | label_message_posted: Message added |
|
822 | 823 | label_reply_plural: Replies |
|
823 | 824 | label_send_information: Send account information to the user |
|
824 | 825 | label_year: Year |
|
825 | 826 | label_month: Month |
|
826 | 827 | label_week: Week |
|
827 | 828 | label_date_from: From |
|
828 | 829 | label_date_to: To |
|
829 | 830 | label_language_based: Based on user's language |
|
830 | 831 | label_sort_by: "Sort by %{value}" |
|
831 | 832 | label_send_test_email: Send a test email |
|
832 | 833 | label_feeds_access_key: Atom access key |
|
833 | 834 | label_missing_feeds_access_key: Missing a Atom access key |
|
834 | 835 | label_feeds_access_key_created_on: "Atom access key created %{value} ago" |
|
835 | 836 | label_module_plural: Modules |
|
836 | 837 | label_added_time_by: "Added by %{author} %{age} ago" |
|
837 | 838 | label_updated_time_by: "Updated by %{author} %{age} ago" |
|
838 | 839 | label_updated_time: "Updated %{value} ago" |
|
839 | 840 | label_jump_to_a_project: Jump to a project... |
|
840 | 841 | label_file_plural: Files |
|
841 | 842 | label_changeset_plural: Changesets |
|
842 | 843 | label_default_columns: Default columns |
|
843 | 844 | label_no_change_option: (No change) |
|
844 | 845 | label_bulk_edit_selected_issues: Bulk edit selected issues |
|
845 | 846 | label_bulk_edit_selected_time_entries: Bulk edit selected time entries |
|
846 | 847 | label_theme: Theme |
|
847 | 848 | label_default: Default |
|
848 | 849 | label_search_titles_only: Search titles only |
|
849 | 850 | label_user_mail_option_all: "For any event on all my projects" |
|
850 | 851 | label_user_mail_option_selected: "For any event on the selected projects only..." |
|
851 | 852 | label_user_mail_option_none: "No events" |
|
852 | 853 | label_user_mail_option_only_my_events: "Only for things I watch or I'm involved in" |
|
853 | 854 | label_user_mail_option_only_assigned: "Only for things I am assigned to" |
|
854 | 855 | label_user_mail_option_only_owner: "Only for things I am the owner of" |
|
855 | 856 | label_user_mail_no_self_notified: "I don't want to be notified of changes that I make myself" |
|
856 | 857 | label_registration_activation_by_email: account activation by email |
|
857 | 858 | label_registration_manual_activation: manual account activation |
|
858 | 859 | label_registration_automatic_activation: automatic account activation |
|
859 | 860 | label_display_per_page: "Per page: %{value}" |
|
860 | 861 | label_age: Age |
|
861 | 862 | label_change_properties: Change properties |
|
862 | 863 | label_general: General |
|
863 | 864 | label_more: More |
|
864 | 865 | label_scm: SCM |
|
865 | 866 | label_plugins: Plugins |
|
866 | 867 | label_ldap_authentication: LDAP authentication |
|
867 | 868 | label_downloads_abbr: D/L |
|
868 | 869 | label_optional_description: Optional description |
|
869 | 870 | label_add_another_file: Add another file |
|
870 | 871 | label_preferences: Preferences |
|
871 | 872 | label_chronological_order: In chronological order |
|
872 | 873 | label_reverse_chronological_order: In reverse chronological order |
|
873 | 874 | label_planning: Planning |
|
874 | 875 | label_incoming_emails: Incoming emails |
|
875 | 876 | label_generate_key: Generate a key |
|
876 | 877 | label_issue_watchers: Watchers |
|
877 | 878 | label_example: Example |
|
878 | 879 | label_display: Display |
|
879 | 880 | label_sort: Sort |
|
880 | 881 | label_ascending: Ascending |
|
881 | 882 | label_descending: Descending |
|
882 | 883 | label_date_from_to: From %{start} to %{end} |
|
883 | 884 | label_wiki_content_added: Wiki page added |
|
884 | 885 | label_wiki_content_updated: Wiki page updated |
|
885 | 886 | label_group: Group |
|
886 | 887 | label_group_plural: Groups |
|
887 | 888 | label_group_new: New group |
|
888 | 889 | label_group_anonymous: Anonymous users |
|
889 | 890 | label_group_non_member: Non member users |
|
890 | 891 | label_time_entry_plural: Spent time |
|
891 | 892 | label_version_sharing_none: Not shared |
|
892 | 893 | label_version_sharing_descendants: With subprojects |
|
893 | 894 | label_version_sharing_hierarchy: With project hierarchy |
|
894 | 895 | label_version_sharing_tree: With project tree |
|
895 | 896 | label_version_sharing_system: With all projects |
|
896 | 897 | label_update_issue_done_ratios: Update issue done ratios |
|
897 | 898 | label_copy_source: Source |
|
898 | 899 | label_copy_target: Target |
|
899 | 900 | label_copy_same_as_target: Same as target |
|
900 | 901 | label_display_used_statuses_only: Only display statuses that are used by this tracker |
|
901 | 902 | label_api_access_key: API access key |
|
902 | 903 | label_missing_api_access_key: Missing an API access key |
|
903 | 904 | label_api_access_key_created_on: "API access key created %{value} ago" |
|
904 | 905 | label_profile: Profile |
|
905 | 906 | label_subtask_plural: Subtasks |
|
906 | 907 | label_project_copy_notifications: Send email notifications during the project copy |
|
907 | 908 | label_principal_search: "Search for user or group:" |
|
908 | 909 | label_user_search: "Search for user:" |
|
909 | 910 | label_additional_workflow_transitions_for_author: Additional transitions allowed when the user is the author |
|
910 | 911 | label_additional_workflow_transitions_for_assignee: Additional transitions allowed when the user is the assignee |
|
911 | 912 | label_issues_visibility_all: All issues |
|
912 | 913 | label_issues_visibility_public: All non private issues |
|
913 | 914 | label_issues_visibility_own: Issues created by or assigned to the user |
|
914 | 915 | label_git_report_last_commit: Report last commit for files and directories |
|
915 | 916 | label_parent_revision: Parent |
|
916 | 917 | label_child_revision: Child |
|
917 | 918 | label_export_options: "%{export_format} export options" |
|
918 | 919 | label_copy_attachments: Copy attachments |
|
919 | 920 | label_copy_subtasks: Copy subtasks |
|
920 | 921 | label_item_position: "%{position} of %{count}" |
|
921 | 922 | label_completed_versions: Completed versions |
|
922 | 923 | label_search_for_watchers: Search for watchers to add |
|
923 | 924 | label_session_expiration: Session expiration |
|
924 | 925 | label_show_closed_projects: View closed projects |
|
925 | 926 | label_status_transitions: Status transitions |
|
926 | 927 | label_fields_permissions: Fields permissions |
|
927 | 928 | label_readonly: Read-only |
|
928 | 929 | label_required: Required |
|
929 | 930 | label_hidden: Hidden |
|
930 | 931 | label_attribute_of_project: "Project's %{name}" |
|
931 | 932 | label_attribute_of_issue: "Issue's %{name}" |
|
932 | 933 | label_attribute_of_author: "Author's %{name}" |
|
933 | 934 | label_attribute_of_assigned_to: "Assignee's %{name}" |
|
934 | 935 | label_attribute_of_user: "User's %{name}" |
|
935 | 936 | label_attribute_of_fixed_version: "Target version's %{name}" |
|
936 | 937 | label_cross_project_descendants: With subprojects |
|
937 | 938 | label_cross_project_tree: With project tree |
|
938 | 939 | label_cross_project_hierarchy: With project hierarchy |
|
939 | 940 | label_cross_project_system: With all projects |
|
940 | 941 | label_gantt_progress_line: Progress line |
|
941 | 942 | label_visibility_private: to me only |
|
942 | 943 | label_visibility_roles: to these roles only |
|
943 | 944 | label_visibility_public: to any users |
|
944 | 945 | label_link: Link |
|
945 | 946 | label_only: only |
|
946 | 947 | label_drop_down_list: drop-down list |
|
947 | 948 | label_checkboxes: checkboxes |
|
948 | 949 | label_radio_buttons: radio buttons |
|
949 | 950 | label_link_values_to: Link values to URL |
|
950 | 951 | label_custom_field_select_type: Select the type of object to which the custom field is to be attached |
|
951 | 952 | label_check_for_updates: Check for updates |
|
952 | 953 | label_latest_compatible_version: Latest compatible version |
|
953 | 954 | label_unknown_plugin: Unknown plugin |
|
954 | 955 | label_add_projects: Add projects |
|
955 | 956 | label_users_visibility_all: All active users |
|
956 | 957 | label_users_visibility_members_of_visible_projects: Members of visible projects |
|
957 | 958 | label_edit_attachments: Edit attached files |
|
958 | 959 | label_link_copied_issue: Link copied issue |
|
959 | 960 | label_ask: Ask |
|
960 | 961 | label_search_attachments_yes: Search attachment filenames and descriptions |
|
961 | 962 | label_search_attachments_no: Do not search attachments |
|
962 | 963 | label_search_attachments_only: Search attachments only |
|
963 | 964 | label_search_open_issues_only: Open issues only |
|
964 | 965 | label_email_address_plural: Emails |
|
965 | 966 | label_email_address_add: Add email address |
|
966 | 967 | label_enable_notifications: Enable notifications |
|
967 | 968 | label_disable_notifications: Disable notifications |
|
968 | 969 | label_blank_value: blank |
|
969 | 970 | label_parent_task_attributes: Parent tasks attributes |
|
970 | 971 | label_parent_task_attributes_derived: Calculated from subtasks |
|
971 | 972 | label_parent_task_attributes_independent: Independent of subtasks |
|
972 | 973 | label_time_entries_visibility_all: All time entries |
|
973 | 974 | label_time_entries_visibility_own: Time entries created by the user |
|
974 | 975 | label_member_management: Member management |
|
975 | 976 | label_member_management_all_roles: All roles |
|
976 | 977 | label_member_management_selected_roles_only: Only these roles |
|
977 | 978 | label_import_issues: Import issues |
|
978 | 979 | label_select_file_to_import: Select the file to import |
|
979 | 980 | label_fields_separator: Field separator |
|
980 | 981 | label_fields_wrapper: Field wrapper |
|
981 | 982 | label_encoding: Encoding |
|
982 | 983 | label_comma_char: Comma |
|
983 | 984 | label_semi_colon_char: Semicolon |
|
984 | 985 | label_quote_char: Quote |
|
985 | 986 | label_double_quote_char: Double quote |
|
986 | 987 | label_fields_mapping: Fields mapping |
|
987 | 988 | label_file_content_preview: File content preview |
|
988 | 989 | label_create_missing_values: Create missing values |
|
989 | 990 | label_api: API |
|
990 | 991 | label_field_format_enumeration: Key/value list |
|
991 | 992 | label_default_values_for_new_users: Default values for new users |
|
992 | 993 | label_relations: Relations |
|
993 | 994 | |
|
994 | 995 | button_login: Login |
|
995 | 996 | button_submit: Submit |
|
996 | 997 | button_save: Save |
|
997 | 998 | button_check_all: Check all |
|
998 | 999 | button_uncheck_all: Uncheck all |
|
999 | 1000 | button_collapse_all: Collapse all |
|
1000 | 1001 | button_expand_all: Expand all |
|
1001 | 1002 | button_delete: Delete |
|
1002 | 1003 | button_create: Create |
|
1003 | 1004 | button_create_and_continue: Create and continue |
|
1004 | 1005 | button_test: Test |
|
1005 | 1006 | button_edit: Edit |
|
1006 | 1007 | button_edit_associated_wikipage: "Edit associated Wiki page: %{page_title}" |
|
1007 | 1008 | button_add: Add |
|
1008 | 1009 | button_change: Change |
|
1009 | 1010 | button_apply: Apply |
|
1010 | 1011 | button_clear: Clear |
|
1011 | 1012 | button_lock: Lock |
|
1012 | 1013 | button_unlock: Unlock |
|
1013 | 1014 | button_download: Download |
|
1014 | 1015 | button_list: List |
|
1015 | 1016 | button_view: View |
|
1016 | 1017 | button_move: Move |
|
1017 | 1018 | button_move_and_follow: Move and follow |
|
1018 | 1019 | button_back: Back |
|
1019 | 1020 | button_cancel: Cancel |
|
1020 | 1021 | button_activate: Activate |
|
1021 | 1022 | button_sort: Sort |
|
1022 | 1023 | button_log_time: Log time |
|
1023 | 1024 | button_rollback: Rollback to this version |
|
1024 | 1025 | button_watch: Watch |
|
1025 | 1026 | button_unwatch: Unwatch |
|
1026 | 1027 | button_reply: Reply |
|
1027 | 1028 | button_archive: Archive |
|
1028 | 1029 | button_unarchive: Unarchive |
|
1029 | 1030 | button_reset: Reset |
|
1030 | 1031 | button_rename: Rename |
|
1031 | 1032 | button_change_password: Change password |
|
1032 | 1033 | button_copy: Copy |
|
1033 | 1034 | button_copy_and_follow: Copy and follow |
|
1034 | 1035 | button_annotate: Annotate |
|
1035 | 1036 | button_update: Update |
|
1036 | 1037 | button_configure: Configure |
|
1037 | 1038 | button_quote: Quote |
|
1038 | 1039 | button_duplicate: Duplicate |
|
1039 | 1040 | button_show: Show |
|
1040 | 1041 | button_hide: Hide |
|
1041 | 1042 | button_edit_section: Edit this section |
|
1042 | 1043 | button_export: Export |
|
1043 | 1044 | button_delete_my_account: Delete my account |
|
1044 | 1045 | button_close: Close |
|
1045 | 1046 | button_reopen: Reopen |
|
1046 | 1047 | button_import: Import |
|
1047 | 1048 | button_filter: Filter |
|
1048 | 1049 | |
|
1049 | 1050 | status_active: active |
|
1050 | 1051 | status_registered: registered |
|
1051 | 1052 | status_locked: locked |
|
1052 | 1053 | |
|
1053 | 1054 | project_status_active: active |
|
1054 | 1055 | project_status_closed: closed |
|
1055 | 1056 | project_status_archived: archived |
|
1056 | 1057 | |
|
1057 | 1058 | version_status_open: open |
|
1058 | 1059 | version_status_locked: locked |
|
1059 | 1060 | version_status_closed: closed |
|
1060 | 1061 | |
|
1061 | 1062 | field_active: Active |
|
1062 | 1063 | |
|
1063 | 1064 | text_select_mail_notifications: Select actions for which email notifications should be sent. |
|
1064 | 1065 | text_regexp_info: eg. ^[A-Z0-9]+$ |
|
1065 | 1066 | text_min_max_length_info: 0 means no restriction |
|
1066 | 1067 | text_project_destroy_confirmation: Are you sure you want to delete this project and related data? |
|
1067 | 1068 | text_subprojects_destroy_warning: "Its subproject(s): %{value} will be also deleted." |
|
1068 | 1069 | text_workflow_edit: Select a role and a tracker to edit the workflow |
|
1069 | 1070 | text_are_you_sure: Are you sure? |
|
1070 | 1071 | text_journal_changed: "%{label} changed from %{old} to %{new}" |
|
1071 | 1072 | text_journal_changed_no_detail: "%{label} updated" |
|
1072 | 1073 | text_journal_set_to: "%{label} set to %{value}" |
|
1073 | 1074 | text_journal_deleted: "%{label} deleted (%{old})" |
|
1074 | 1075 | text_journal_added: "%{label} %{value} added" |
|
1075 | 1076 | text_tip_issue_begin_day: issue beginning this day |
|
1076 | 1077 | text_tip_issue_end_day: issue ending this day |
|
1077 | 1078 | text_tip_issue_begin_end_day: issue beginning and ending this day |
|
1078 | 1079 | text_project_identifier_info: 'Only lower case letters (a-z), numbers, dashes and underscores are allowed, must start with a lower case letter.<br />Once saved, the identifier cannot be changed.' |
|
1079 | 1080 | text_caracters_maximum: "%{count} characters maximum." |
|
1080 | 1081 | text_caracters_minimum: "Must be at least %{count} characters long." |
|
1081 | 1082 | text_length_between: "Length between %{min} and %{max} characters." |
|
1082 | 1083 | text_tracker_no_workflow: No workflow defined for this tracker |
|
1083 | 1084 | text_unallowed_characters: Unallowed characters |
|
1084 | 1085 | text_comma_separated: Multiple values allowed (comma separated). |
|
1085 | 1086 | text_line_separated: Multiple values allowed (one line for each value). |
|
1086 | 1087 | text_issues_ref_in_commit_messages: Referencing and fixing issues in commit messages |
|
1087 | 1088 | text_issue_added: "Issue %{id} has been reported by %{author}." |
|
1088 | 1089 | text_issue_updated: "Issue %{id} has been updated by %{author}." |
|
1089 | 1090 | text_wiki_destroy_confirmation: Are you sure you want to delete this wiki and all its content? |
|
1090 | 1091 | text_issue_category_destroy_question: "Some issues (%{count}) are assigned to this category. What do you want to do?" |
|
1091 | 1092 | text_issue_category_destroy_assignments: Remove category assignments |
|
1092 | 1093 | text_issue_category_reassign_to: Reassign issues to this category |
|
1093 | 1094 | text_user_mail_option: "For unselected projects, you will only receive notifications about things you watch or you're involved in (eg. issues you're the author or assignee)." |
|
1094 | 1095 | 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." |
|
1095 | 1096 | text_load_default_configuration: Load the default configuration |
|
1096 | 1097 | text_status_changed_by_changeset: "Applied in changeset %{value}." |
|
1097 | 1098 | text_time_logged_by_changeset: "Applied in changeset %{value}." |
|
1098 | 1099 | text_issues_destroy_confirmation: 'Are you sure you want to delete the selected issue(s)?' |
|
1099 | 1100 | text_issues_destroy_descendants_confirmation: "This will also delete %{count} subtask(s)." |
|
1100 | 1101 | text_time_entries_destroy_confirmation: 'Are you sure you want to delete the selected time entr(y/ies)?' |
|
1101 | 1102 | text_select_project_modules: 'Select modules to enable for this project:' |
|
1102 | 1103 | text_default_administrator_account_changed: Default administrator account changed |
|
1103 | 1104 | text_file_repository_writable: Attachments directory writable |
|
1104 | 1105 | text_plugin_assets_writable: Plugin assets directory writable |
|
1105 | 1106 | text_rmagick_available: RMagick available (optional) |
|
1106 | 1107 | text_convert_available: ImageMagick convert available (optional) |
|
1107 | 1108 | text_destroy_time_entries_question: "%{hours} hours were reported on the issues you are about to delete. What do you want to do?" |
|
1108 | 1109 | text_destroy_time_entries: Delete reported hours |
|
1109 | 1110 | text_assign_time_entries_to_project: Assign reported hours to the project |
|
1110 | 1111 | text_reassign_time_entries: 'Reassign reported hours to this issue:' |
|
1111 | 1112 | text_user_wrote: "%{value} wrote:" |
|
1112 | 1113 | text_enumeration_destroy_question: "%{count} objects are assigned to the value “%{name}”." |
|
1113 | 1114 | text_enumeration_category_reassign_to: 'Reassign them to this value:' |
|
1114 | 1115 | 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." |
|
1115 | 1116 | text_repository_usernames_mapping: "Select or update the Redmine user mapped to each username found in the repository log.\nUsers with the same Redmine and repository username or email are automatically mapped." |
|
1116 | 1117 | text_diff_truncated: '... This diff was truncated because it exceeds the maximum size that can be displayed.' |
|
1117 | 1118 | text_custom_field_possible_values_info: 'One line for each value' |
|
1118 | 1119 | text_wiki_page_destroy_question: "This page has %{descendants} child page(s) and descendant(s). What do you want to do?" |
|
1119 | 1120 | text_wiki_page_nullify_children: "Keep child pages as root pages" |
|
1120 | 1121 | text_wiki_page_destroy_children: "Delete child pages and all their descendants" |
|
1121 | 1122 | text_wiki_page_reassign_children: "Reassign child pages to this parent page" |
|
1122 | 1123 | text_own_membership_delete_confirmation: "You are about to remove some or all of your permissions and may no longer be able to edit this project after that.\nAre you sure you want to continue?" |
|
1123 | 1124 | text_zoom_in: Zoom in |
|
1124 | 1125 | text_zoom_out: Zoom out |
|
1125 | 1126 | text_warn_on_leaving_unsaved: "The current page contains unsaved text that will be lost if you leave this page." |
|
1126 | 1127 | text_scm_path_encoding_note: "Default: UTF-8" |
|
1127 | 1128 | text_subversion_repository_note: "Examples: file:///, http://, https://, svn://, svn+[tunnelscheme]://" |
|
1128 | 1129 | text_git_repository_note: Repository is bare and local (e.g. /gitrepo, c:\gitrepo) |
|
1129 | 1130 | text_mercurial_repository_note: Local repository (e.g. /hgrepo, c:\hgrepo) |
|
1130 | 1131 | text_scm_command: Command |
|
1131 | 1132 | text_scm_command_version: Version |
|
1132 | 1133 | text_scm_config: You can configure your SCM commands in config/configuration.yml. Please restart the application after editing it. |
|
1133 | 1134 | text_scm_command_not_available: SCM command is not available. Please check settings on the administration panel. |
|
1134 | 1135 | text_issue_conflict_resolution_overwrite: "Apply my changes anyway (previous notes will be kept but some changes may be overwritten)" |
|
1135 | 1136 | text_issue_conflict_resolution_add_notes: "Add my notes and discard my other changes" |
|
1136 | 1137 | text_issue_conflict_resolution_cancel: "Discard all my changes and redisplay %{link}" |
|
1137 | 1138 | text_account_destroy_confirmation: "Are you sure you want to proceed?\nYour account will be permanently deleted, with no way to reactivate it." |
|
1138 | 1139 | text_session_expiration_settings: "Warning: changing these settings may expire the current sessions including yours." |
|
1139 | 1140 | text_project_closed: This project is closed and read-only. |
|
1140 | 1141 | text_turning_multiple_off: "If you disable multiple values, multiple values will be removed in order to preserve only one value per item." |
|
1141 | 1142 | |
|
1142 | 1143 | default_role_manager: Manager |
|
1143 | 1144 | default_role_developer: Developer |
|
1144 | 1145 | default_role_reporter: Reporter |
|
1145 | 1146 | default_tracker_bug: Bug |
|
1146 | 1147 | default_tracker_feature: Feature |
|
1147 | 1148 | default_tracker_support: Support |
|
1148 | 1149 | default_issue_status_new: New |
|
1149 | 1150 | default_issue_status_in_progress: In Progress |
|
1150 | 1151 | default_issue_status_resolved: Resolved |
|
1151 | 1152 | default_issue_status_feedback: Feedback |
|
1152 | 1153 | default_issue_status_closed: Closed |
|
1153 | 1154 | default_issue_status_rejected: Rejected |
|
1154 | 1155 | default_doc_category_user: User documentation |
|
1155 | 1156 | default_doc_category_tech: Technical documentation |
|
1156 | 1157 | default_priority_low: Low |
|
1157 | 1158 | default_priority_normal: Normal |
|
1158 | 1159 | default_priority_high: High |
|
1159 | 1160 | default_priority_urgent: Urgent |
|
1160 | 1161 | default_priority_immediate: Immediate |
|
1161 | 1162 | default_activity_design: Design |
|
1162 | 1163 | default_activity_development: Development |
|
1163 | 1164 | |
|
1164 | 1165 | enumeration_issue_priorities: Issue priorities |
|
1165 | 1166 | enumeration_doc_categories: Document categories |
|
1166 | 1167 | enumeration_activities: Activities (time tracking) |
|
1167 | 1168 | enumeration_system_activity: System Activity |
|
1168 | 1169 | description_filter: Filter |
|
1169 | 1170 | description_search: Searchfield |
|
1170 | 1171 | description_choose_project: Projects |
|
1171 | 1172 | description_project_scope: Search scope |
|
1172 | 1173 | description_notes: Notes |
|
1173 | 1174 | description_message_content: Message content |
|
1174 | 1175 | description_query_sort_criteria_attribute: Sort attribute |
|
1175 | 1176 | description_query_sort_criteria_direction: Sort direction |
|
1176 | 1177 | description_user_mail_notification: Mail notification settings |
|
1177 | 1178 | description_available_columns: Available Columns |
|
1178 | 1179 | description_selected_columns: Selected Columns |
|
1179 | 1180 | description_all_columns: All Columns |
|
1180 | 1181 | description_issue_category_reassign: Choose issue category |
|
1181 | 1182 | description_wiki_subpages_reassign: Choose new parent page |
|
1182 | 1183 | description_date_range_list: Choose range from list |
|
1183 | 1184 | description_date_range_interval: Choose range by selecting start and end date |
|
1184 | 1185 | description_date_from: Enter start date |
|
1185 | 1186 | description_date_to: Enter end date |
|
1186 | 1187 | text_repository_identifier_info: 'Only lower case letters (a-z), numbers, dashes and underscores are allowed.<br />Once saved, the identifier cannot be changed.' |
@@ -1,150 +1,151 | |||
|
1 | 1 | # Redmine - project management software |
|
2 | 2 | # Copyright (C) 2006-2016 Jean-Philippe Lang |
|
3 | 3 | # |
|
4 | 4 | # This program is free software; you can redistribute it and/or |
|
5 | 5 | # modify it under the terms of the GNU General Public License |
|
6 | 6 | # as published by the Free Software Foundation; either version 2 |
|
7 | 7 | # of the License, or (at your option) any later version. |
|
8 | 8 | # |
|
9 | 9 | # This program is distributed in the hope that it will be useful, |
|
10 | 10 | # but WITHOUT ANY WARRANTY; without even the implied warranty of |
|
11 | 11 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
|
12 | 12 | # GNU General Public License for more details. |
|
13 | 13 | # |
|
14 | 14 | # You should have received a copy of the GNU General Public License |
|
15 | 15 | # along with this program; if not, write to the Free Software |
|
16 | 16 | # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. |
|
17 | 17 | |
|
18 | 18 | require File.expand_path('../../test_helper', __FILE__) |
|
19 | 19 | |
|
20 | 20 | class RepositoriesFilesystemControllerTest < ActionController::TestCase |
|
21 | 21 | tests RepositoriesController |
|
22 | 22 | |
|
23 | 23 | fixtures :projects, :users, :email_addresses, :roles, :members, :member_roles, |
|
24 | 24 | :repositories, :enabled_modules |
|
25 | 25 | |
|
26 | 26 | REPOSITORY_PATH = Rails.root.join('tmp/test/filesystem_repository').to_s |
|
27 | 27 | PRJ_ID = 3 |
|
28 | 28 | |
|
29 | 29 | def setup |
|
30 | 30 | @ruby19_non_utf8_pass = Encoding.default_external.to_s != 'UTF-8' |
|
31 | 31 | User.current = nil |
|
32 | 32 | Setting.enabled_scm << 'Filesystem' unless Setting.enabled_scm.include?('Filesystem') |
|
33 | 33 | @project = Project.find(PRJ_ID) |
|
34 | 34 | @repository = Repository::Filesystem.create( |
|
35 | 35 | :project => @project, |
|
36 | 36 | :url => REPOSITORY_PATH, |
|
37 | 37 | :path_encoding => '' |
|
38 | 38 | ) |
|
39 | 39 | assert @repository |
|
40 | 40 | end |
|
41 | 41 | |
|
42 | 42 | if File.directory?(REPOSITORY_PATH) |
|
43 | 43 | def test_get_new |
|
44 | 44 | @request.session[:user_id] = 1 |
|
45 | 45 | @project.repository.destroy |
|
46 | 46 | get :new, :project_id => 'subproject1', :repository_scm => 'Filesystem' |
|
47 | 47 | assert_response :success |
|
48 | 48 | assert_template 'new' |
|
49 | 49 | assert_kind_of Repository::Filesystem, assigns(:repository) |
|
50 | 50 | assert assigns(:repository).new_record? |
|
51 | 51 | end |
|
52 | 52 | |
|
53 | 53 | def test_browse_root |
|
54 | 54 | @repository.fetch_changesets |
|
55 | 55 | @repository.reload |
|
56 | 56 | get :show, :id => PRJ_ID |
|
57 | 57 | assert_response :success |
|
58 | 58 | assert_template 'show' |
|
59 | 59 | assert_not_nil assigns(:entries) |
|
60 | 60 | assert assigns(:entries).size > 0 |
|
61 | 61 | assert_not_nil assigns(:changesets) |
|
62 | 62 | assert assigns(:changesets).size == 0 |
|
63 | 63 | |
|
64 | 64 | assert_select 'input[name=rev]', 0 |
|
65 | 65 | assert_select 'a', :text => 'Statistics', :count => 0 |
|
66 | 66 | assert_select 'a', :text => 'Atom', :count => 0 |
|
67 | 67 | end |
|
68 | 68 | |
|
69 | 69 | def test_show_no_extension |
|
70 | 70 | get :entry, :id => PRJ_ID, :path => repository_path_hash(['test'])[:param] |
|
71 | 71 | assert_response :success |
|
72 | 72 | assert_template 'entry' |
|
73 | 73 | assert_select 'tr#L1 td.line-code', :text => /TEST CAT/ |
|
74 | 74 | end |
|
75 | 75 | |
|
76 | 76 | def test_entry_download_no_extension |
|
77 | 77 | get :raw, :id => PRJ_ID, :path => repository_path_hash(['test'])[:param] |
|
78 | 78 | assert_response :success |
|
79 | 79 | assert_equal 'application/octet-stream', @response.content_type |
|
80 | 80 | end |
|
81 | 81 | |
|
82 | 82 | def test_show_non_ascii_contents |
|
83 | 83 | with_settings :repositories_encodings => 'UTF-8,EUC-JP' do |
|
84 | 84 | get :entry, :id => PRJ_ID, |
|
85 | 85 | :path => repository_path_hash(['japanese', 'euc-jp.txt'])[:param] |
|
86 | 86 | assert_response :success |
|
87 | 87 | assert_template 'entry' |
|
88 | 88 | assert_select 'tr#L2 td.line-code', :text => /japanese/ |
|
89 | 89 | if @ruby19_non_utf8_pass |
|
90 | 90 | puts "TODO: show repository file contents test fails " + |
|
91 | 91 | "when Encoding.default_external is not UTF-8. " + |
|
92 | 92 | "Current value is '#{Encoding.default_external.to_s}'" |
|
93 | 93 | else |
|
94 | 94 | str_japanese = "\xe6\x97\xa5\xe6\x9c\xac\xe8\xaa\x9e".force_encoding('UTF-8') |
|
95 | 95 | assert_select 'tr#L3 td.line-code', :text => /#{str_japanese}/ |
|
96 | 96 | end |
|
97 | 97 | end |
|
98 | 98 | end |
|
99 | 99 | |
|
100 | 100 | def test_show_utf16 |
|
101 | 101 | enc = 'UTF-16' |
|
102 | 102 | with_settings :repositories_encodings => enc do |
|
103 | 103 | get :entry, :id => PRJ_ID, |
|
104 | 104 | :path => repository_path_hash(['japanese', 'utf-16.txt'])[:param] |
|
105 | 105 | assert_response :success |
|
106 | 106 | assert_select 'tr#L2 td.line-code', :text => /japanese/ |
|
107 | 107 | end |
|
108 | 108 | end |
|
109 | 109 | |
|
110 |
def test_show_text_file_should_s |
|
|
110 | def test_show_text_file_should_show_other_if_too_big | |
|
111 | 111 | with_settings :file_max_size_displayed => 1 do |
|
112 | 112 | get :entry, :id => PRJ_ID, |
|
113 | 113 | :path => repository_path_hash(['japanese', 'big-file.txt'])[:param] |
|
114 | 114 | assert_response :success |
|
115 |
assert_equal 'text/ |
|
|
115 | assert_equal 'text/html', @response.content_type | |
|
116 | assert_select 'p.nodata' | |
|
116 | 117 | end |
|
117 | 118 | end |
|
118 | 119 | |
|
119 | 120 | def test_destroy_valid_repository |
|
120 | 121 | @request.session[:user_id] = 1 # admin |
|
121 | 122 | |
|
122 | 123 | assert_difference 'Repository.count', -1 do |
|
123 | 124 | delete :destroy, :id => @repository.id |
|
124 | 125 | end |
|
125 | 126 | assert_response 302 |
|
126 | 127 | @project.reload |
|
127 | 128 | assert_nil @project.repository |
|
128 | 129 | end |
|
129 | 130 | |
|
130 | 131 | def test_destroy_invalid_repository |
|
131 | 132 | @request.session[:user_id] = 1 # admin |
|
132 | 133 | @project.repository.destroy |
|
133 | 134 | @repository = Repository::Filesystem.create!( |
|
134 | 135 | :project => @project, |
|
135 | 136 | :url => "/invalid", |
|
136 | 137 | :path_encoding => '' |
|
137 | 138 | ) |
|
138 | 139 | |
|
139 | 140 | assert_difference 'Repository.count', -1 do |
|
140 | 141 | delete :destroy, :id => @repository.id |
|
141 | 142 | end |
|
142 | 143 | assert_response 302 |
|
143 | 144 | @project.reload |
|
144 | 145 | assert_nil @project.repository |
|
145 | 146 | end |
|
146 | 147 | else |
|
147 | 148 | puts "Filesystem test repository NOT FOUND. Skipping functional tests !!!" |
|
148 | 149 | def test_fake; assert true end |
|
149 | 150 | end |
|
150 | 151 | end |
@@ -1,421 +1,421 | |||
|
1 | 1 | # Redmine - project management software |
|
2 | 2 | # Copyright (C) 2006-2016 Jean-Philippe Lang |
|
3 | 3 | # |
|
4 | 4 | # This program is free software; you can redistribute it and/or |
|
5 | 5 | # modify it under the terms of the GNU General Public License |
|
6 | 6 | # as published by the Free Software Foundation; either version 2 |
|
7 | 7 | # of the License, or (at your option) any later version. |
|
8 | 8 | # |
|
9 | 9 | # This program is distributed in the hope that it will be useful, |
|
10 | 10 | # but WITHOUT ANY WARRANTY; without even the implied warranty of |
|
11 | 11 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
|
12 | 12 | # GNU General Public License for more details. |
|
13 | 13 | # |
|
14 | 14 | # You should have received a copy of the GNU General Public License |
|
15 | 15 | # along with this program; if not, write to the Free Software |
|
16 | 16 | # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. |
|
17 | 17 | |
|
18 | 18 | require File.expand_path('../../test_helper', __FILE__) |
|
19 | 19 | |
|
20 | 20 | class RepositoriesSubversionControllerTest < ActionController::TestCase |
|
21 | 21 | tests RepositoriesController |
|
22 | 22 | |
|
23 | 23 | fixtures :projects, :users, :email_addresses, :roles, :members, :member_roles, :enabled_modules, |
|
24 | 24 | :repositories, :issues, :issue_statuses, :changesets, :changes, |
|
25 | 25 | :issue_categories, :enumerations, :custom_fields, :custom_values, :trackers |
|
26 | 26 | |
|
27 | 27 | PRJ_ID = 3 |
|
28 | 28 | NUM_REV = 11 |
|
29 | 29 | |
|
30 | 30 | def setup |
|
31 | 31 | Setting.default_language = 'en' |
|
32 | 32 | User.current = nil |
|
33 | 33 | |
|
34 | 34 | @project = Project.find(PRJ_ID) |
|
35 | 35 | @repository = Repository::Subversion.create(:project => @project, |
|
36 | 36 | :url => self.class.subversion_repository_url) |
|
37 | 37 | assert @repository |
|
38 | 38 | end |
|
39 | 39 | |
|
40 | 40 | if repository_configured?('subversion') |
|
41 | 41 | def test_new |
|
42 | 42 | @request.session[:user_id] = 1 |
|
43 | 43 | @project.repository.destroy |
|
44 | 44 | get :new, :project_id => 'subproject1', :repository_scm => 'Subversion' |
|
45 | 45 | assert_response :success |
|
46 | 46 | assert_template 'new' |
|
47 | 47 | assert_kind_of Repository::Subversion, assigns(:repository) |
|
48 | 48 | assert assigns(:repository).new_record? |
|
49 | 49 | end |
|
50 | 50 | |
|
51 | 51 | def test_show |
|
52 | 52 | assert_equal 0, @repository.changesets.count |
|
53 | 53 | @repository.fetch_changesets |
|
54 | 54 | @project.reload |
|
55 | 55 | assert_equal NUM_REV, @repository.changesets.count |
|
56 | 56 | get :show, :id => PRJ_ID |
|
57 | 57 | assert_response :success |
|
58 | 58 | assert_template 'show' |
|
59 | 59 | assert_not_nil assigns(:entries) |
|
60 | 60 | assert_not_nil assigns(:changesets) |
|
61 | 61 | |
|
62 | 62 | entry = assigns(:entries).detect {|e| e.name == 'subversion_test'} |
|
63 | 63 | assert_not_nil entry |
|
64 | 64 | assert_equal 'dir', entry.kind |
|
65 | 65 | assert_select 'tr.dir a[href="/projects/subproject1/repository/show/subversion_test"]' |
|
66 | 66 | |
|
67 | 67 | assert_select 'input[name=rev]' |
|
68 | 68 | assert_select 'a', :text => 'Statistics' |
|
69 | 69 | assert_select 'a', :text => 'Atom' |
|
70 | 70 | assert_select 'a[href=?]', '/projects/subproject1/repository', :text => 'root' |
|
71 | 71 | end |
|
72 | 72 | |
|
73 | 73 | def test_show_non_default |
|
74 | 74 | Repository::Subversion.create(:project => @project, |
|
75 | 75 | :url => self.class.subversion_repository_url, |
|
76 | 76 | :is_default => false, :identifier => 'svn') |
|
77 | 77 | |
|
78 | 78 | get :show, :id => PRJ_ID, :repository_id => 'svn' |
|
79 | 79 | assert_response :success |
|
80 | 80 | assert_template 'show' |
|
81 | 81 | assert_select 'tr.dir a[href="/projects/subproject1/repository/svn/show/subversion_test"]' |
|
82 | 82 | # Repository menu should link to the main repo |
|
83 | 83 | assert_select '#main-menu a[href="/projects/subproject1/repository"]' |
|
84 | 84 | end |
|
85 | 85 | |
|
86 | 86 | def test_browse_directory |
|
87 | 87 | assert_equal 0, @repository.changesets.count |
|
88 | 88 | @repository.fetch_changesets |
|
89 | 89 | @project.reload |
|
90 | 90 | assert_equal NUM_REV, @repository.changesets.count |
|
91 | 91 | get :show, :id => PRJ_ID, :path => repository_path_hash(['subversion_test'])[:param] |
|
92 | 92 | assert_response :success |
|
93 | 93 | assert_template 'show' |
|
94 | 94 | assert_not_nil assigns(:entries) |
|
95 | 95 | assert_equal [ |
|
96 | 96 | '[folder_with_brackets]', 'folder', '.project', |
|
97 | 97 | 'helloworld.c', 'textfile.txt' |
|
98 | 98 | ], |
|
99 | 99 | assigns(:entries).collect(&:name) |
|
100 | 100 | entry = assigns(:entries).detect {|e| e.name == 'helloworld.c'} |
|
101 | 101 | assert_equal 'file', entry.kind |
|
102 | 102 | assert_equal 'subversion_test/helloworld.c', entry.path |
|
103 | 103 | assert_select 'a.text-x-c', :text => 'helloworld.c' |
|
104 | 104 | end |
|
105 | 105 | |
|
106 | 106 | def test_browse_at_given_revision |
|
107 | 107 | assert_equal 0, @repository.changesets.count |
|
108 | 108 | @repository.fetch_changesets |
|
109 | 109 | @project.reload |
|
110 | 110 | assert_equal NUM_REV, @repository.changesets.count |
|
111 | 111 | get :show, :id => PRJ_ID, :path => repository_path_hash(['subversion_test'])[:param], |
|
112 | 112 | :rev => 4 |
|
113 | 113 | assert_response :success |
|
114 | 114 | assert_template 'show' |
|
115 | 115 | assert_not_nil assigns(:entries) |
|
116 | 116 | assert_equal ['folder', '.project', 'helloworld.c', 'helloworld.rb', 'textfile.txt'], |
|
117 | 117 | assigns(:entries).collect(&:name) |
|
118 | 118 | end |
|
119 | 119 | |
|
120 | 120 | def test_file_changes |
|
121 | 121 | assert_equal 0, @repository.changesets.count |
|
122 | 122 | @repository.fetch_changesets |
|
123 | 123 | @project.reload |
|
124 | 124 | assert_equal NUM_REV, @repository.changesets.count |
|
125 | 125 | get :changes, :id => PRJ_ID, |
|
126 | 126 | :path => repository_path_hash(['subversion_test', 'folder', 'helloworld.rb'])[:param] |
|
127 | 127 | assert_response :success |
|
128 | 128 | assert_template 'changes' |
|
129 | 129 | |
|
130 | 130 | changesets = assigns(:changesets) |
|
131 | 131 | assert_not_nil changesets |
|
132 | 132 | assert_equal %w(6 3 2), changesets.collect(&:revision) |
|
133 | 133 | |
|
134 | 134 | # svn properties displayed with svn >= 1.5 only |
|
135 | 135 | if Redmine::Scm::Adapters::SubversionAdapter.client_version_above?([1, 5, 0]) |
|
136 | 136 | assert_not_nil assigns(:properties) |
|
137 | 137 | assert_equal 'native', assigns(:properties)['svn:eol-style'] |
|
138 | 138 | assert_select 'ul li' do |
|
139 | 139 | assert_select 'b', :text => 'svn:eol-style' |
|
140 | 140 | assert_select 'span', :text => 'native' |
|
141 | 141 | end |
|
142 | 142 | end |
|
143 | 143 | end |
|
144 | 144 | |
|
145 | 145 | def test_directory_changes |
|
146 | 146 | assert_equal 0, @repository.changesets.count |
|
147 | 147 | @repository.fetch_changesets |
|
148 | 148 | @project.reload |
|
149 | 149 | assert_equal NUM_REV, @repository.changesets.count |
|
150 | 150 | get :changes, :id => PRJ_ID, |
|
151 | 151 | :path => repository_path_hash(['subversion_test', 'folder'])[:param] |
|
152 | 152 | assert_response :success |
|
153 | 153 | assert_template 'changes' |
|
154 | 154 | |
|
155 | 155 | changesets = assigns(:changesets) |
|
156 | 156 | assert_not_nil changesets |
|
157 | 157 | assert_equal %w(10 9 7 6 5 2), changesets.collect(&:revision) |
|
158 | 158 | end |
|
159 | 159 | |
|
160 | 160 | def test_entry |
|
161 | 161 | assert_equal 0, @repository.changesets.count |
|
162 | 162 | @repository.fetch_changesets |
|
163 | 163 | @project.reload |
|
164 | 164 | assert_equal NUM_REV, @repository.changesets.count |
|
165 | 165 | get :entry, :id => PRJ_ID, |
|
166 | 166 | :path => repository_path_hash(['subversion_test', 'helloworld.c'])[:param] |
|
167 | 167 | assert_response :success |
|
168 | 168 | assert_template 'entry' |
|
169 | 169 | end |
|
170 | 170 | |
|
171 |
def test_entry_should_s |
|
|
171 | def test_entry_should_show_other_if_too_big | |
|
172 | 172 | assert_equal 0, @repository.changesets.count |
|
173 | 173 | @repository.fetch_changesets |
|
174 | 174 | @project.reload |
|
175 | 175 | assert_equal NUM_REV, @repository.changesets.count |
|
176 | 176 | # no files in the test repo is larger than 1KB... |
|
177 | 177 | with_settings :file_max_size_displayed => 0 do |
|
178 | 178 | get :entry, :id => PRJ_ID, |
|
179 | 179 | :path => repository_path_hash(['subversion_test', 'helloworld.c'])[:param] |
|
180 | 180 | assert_response :success |
|
181 | assert_equal 'attachment; filename="helloworld.c"', | |
|
182 | @response.headers['Content-Disposition'] | |
|
181 | assert_equal 'text/html', @response.content_type | |
|
182 | assert_select 'p.nodata' | |
|
183 | 183 | end |
|
184 | 184 | end |
|
185 | 185 | |
|
186 | 186 | def test_entry_should_display_images |
|
187 | 187 | get :entry, :id => PRJ_ID, |
|
188 | 188 | :path => repository_path_hash(['subversion_test', 'folder', 'subfolder', 'rubylogo.gif'])[:param] |
|
189 | 189 | assert_response :success |
|
190 | 190 | assert_template 'entry' |
|
191 | 191 | end |
|
192 | 192 | |
|
193 | 193 | def test_entry_at_given_revision |
|
194 | 194 | assert_equal 0, @repository.changesets.count |
|
195 | 195 | @repository.fetch_changesets |
|
196 | 196 | @project.reload |
|
197 | 197 | assert_equal NUM_REV, @repository.changesets.count |
|
198 | 198 | get :entry, :id => PRJ_ID, |
|
199 | 199 | :path => repository_path_hash(['subversion_test', 'helloworld.rb'])[:param], |
|
200 | 200 | :rev => 2 |
|
201 | 201 | assert_response :success |
|
202 | 202 | assert_template 'entry' |
|
203 | 203 | # this line was removed in r3 and file was moved in r6 |
|
204 | 204 | assert_select 'td.line-code', :text => /Here's the code/ |
|
205 | 205 | end |
|
206 | 206 | |
|
207 | 207 | def test_entry_not_found |
|
208 | 208 | assert_equal 0, @repository.changesets.count |
|
209 | 209 | @repository.fetch_changesets |
|
210 | 210 | @project.reload |
|
211 | 211 | assert_equal NUM_REV, @repository.changesets.count |
|
212 | 212 | get :entry, :id => PRJ_ID, |
|
213 | 213 | :path => repository_path_hash(['subversion_test', 'zzz.c'])[:param] |
|
214 | 214 | assert_select 'p#errorExplanation', :text => /The entry or revision was not found in the repository/ |
|
215 | 215 | end |
|
216 | 216 | |
|
217 | 217 | def test_entry_download |
|
218 | 218 | assert_equal 0, @repository.changesets.count |
|
219 | 219 | @repository.fetch_changesets |
|
220 | 220 | @project.reload |
|
221 | 221 | assert_equal NUM_REV, @repository.changesets.count |
|
222 | 222 | get :raw, :id => PRJ_ID, |
|
223 | 223 | :path => repository_path_hash(['subversion_test', 'helloworld.c'])[:param] |
|
224 | 224 | assert_response :success |
|
225 | 225 | assert_equal 'attachment; filename="helloworld.c"', @response.headers['Content-Disposition'] |
|
226 | 226 | end |
|
227 | 227 | |
|
228 | 228 | def test_directory_entry |
|
229 | 229 | assert_equal 0, @repository.changesets.count |
|
230 | 230 | @repository.fetch_changesets |
|
231 | 231 | @project.reload |
|
232 | 232 | assert_equal NUM_REV, @repository.changesets.count |
|
233 | 233 | get :entry, :id => PRJ_ID, |
|
234 | 234 | :path => repository_path_hash(['subversion_test', 'folder'])[:param] |
|
235 | 235 | assert_response :success |
|
236 | 236 | assert_template 'show' |
|
237 | 237 | assert_not_nil assigns(:entry) |
|
238 | 238 | assert_equal 'folder', assigns(:entry).name |
|
239 | 239 | end |
|
240 | 240 | |
|
241 | 241 | # TODO: this test needs fixtures. |
|
242 | 242 | def test_revision |
|
243 | 243 | get :revision, :id => 1, :rev => 2 |
|
244 | 244 | assert_response :success |
|
245 | 245 | assert_template 'revision' |
|
246 | 246 | |
|
247 | 247 | assert_select 'ul' do |
|
248 | 248 | assert_select 'li' do |
|
249 | 249 | # link to the entry at rev 2 |
|
250 | 250 | assert_select 'a[href=?]', '/projects/ecookbook/repository/revisions/2/entry/test/some/path/in/the/repo', :text => 'repo' |
|
251 | 251 | # link to partial diff |
|
252 | 252 | assert_select 'a[href=?]', '/projects/ecookbook/repository/revisions/2/diff/test/some/path/in/the/repo' |
|
253 | 253 | end |
|
254 | 254 | end |
|
255 | 255 | end |
|
256 | 256 | |
|
257 | 257 | def test_invalid_revision |
|
258 | 258 | assert_equal 0, @repository.changesets.count |
|
259 | 259 | @repository.fetch_changesets |
|
260 | 260 | @project.reload |
|
261 | 261 | assert_equal NUM_REV, @repository.changesets.count |
|
262 | 262 | get :revision, :id => PRJ_ID, :rev => 'something_weird' |
|
263 | 263 | assert_response 404 |
|
264 | 264 | assert_select_error /was not found/ |
|
265 | 265 | end |
|
266 | 266 | |
|
267 | 267 | def test_invalid_revision_diff |
|
268 | 268 | get :diff, :id => PRJ_ID, :rev => '1', :rev_to => 'something_weird' |
|
269 | 269 | assert_response 404 |
|
270 | 270 | assert_select_error /was not found/ |
|
271 | 271 | end |
|
272 | 272 | |
|
273 | 273 | def test_empty_revision |
|
274 | 274 | assert_equal 0, @repository.changesets.count |
|
275 | 275 | @repository.fetch_changesets |
|
276 | 276 | @project.reload |
|
277 | 277 | assert_equal NUM_REV, @repository.changesets.count |
|
278 | 278 | ['', ' ', nil].each do |r| |
|
279 | 279 | get :revision, :id => PRJ_ID, :rev => r |
|
280 | 280 | assert_response 404 |
|
281 | 281 | assert_select_error /was not found/ |
|
282 | 282 | end |
|
283 | 283 | end |
|
284 | 284 | |
|
285 | 285 | # TODO: this test needs fixtures. |
|
286 | 286 | def test_revision_with_repository_pointing_to_a_subdirectory |
|
287 | 287 | r = Project.find(1).repository |
|
288 | 288 | # Changes repository url to a subdirectory |
|
289 | 289 | r.update_attribute :url, (r.url + '/test/some') |
|
290 | 290 | |
|
291 | 291 | get :revision, :id => 1, :rev => 2 |
|
292 | 292 | assert_response :success |
|
293 | 293 | assert_template 'revision' |
|
294 | 294 | |
|
295 | 295 | assert_select 'ul' do |
|
296 | 296 | assert_select 'li' do |
|
297 | 297 | # link to the entry at rev 2 |
|
298 | 298 | assert_select 'a[href=?]', '/projects/ecookbook/repository/revisions/2/entry/path/in/the/repo', :text => 'repo' |
|
299 | 299 | # link to partial diff |
|
300 | 300 | assert_select 'a[href=?]', '/projects/ecookbook/repository/revisions/2/diff/path/in/the/repo' |
|
301 | 301 | end |
|
302 | 302 | end |
|
303 | 303 | end |
|
304 | 304 | |
|
305 | 305 | def test_revision_diff |
|
306 | 306 | assert_equal 0, @repository.changesets.count |
|
307 | 307 | @repository.fetch_changesets |
|
308 | 308 | @project.reload |
|
309 | 309 | assert_equal NUM_REV, @repository.changesets.count |
|
310 | 310 | ['inline', 'sbs'].each do |dt| |
|
311 | 311 | get :diff, :id => PRJ_ID, :rev => 3, :type => dt |
|
312 | 312 | assert_response :success |
|
313 | 313 | assert_template 'diff' |
|
314 | 314 | assert_select 'h2', :text => /Revision 3/ |
|
315 | 315 | assert_select 'th.filename', :text => 'subversion_test/textfile.txt' |
|
316 | 316 | end |
|
317 | 317 | end |
|
318 | 318 | |
|
319 | 319 | def test_revision_diff_raw_format |
|
320 | 320 | assert_equal 0, @repository.changesets.count |
|
321 | 321 | @repository.fetch_changesets |
|
322 | 322 | @project.reload |
|
323 | 323 | assert_equal NUM_REV, @repository.changesets.count |
|
324 | 324 | |
|
325 | 325 | get :diff, :id => PRJ_ID, :rev => 5, :format => 'diff' |
|
326 | 326 | assert_response :success |
|
327 | 327 | assert_equal 'text/x-patch', @response.content_type |
|
328 | 328 | assert_equal 'Index: subversion_test/folder/greeter.rb', @response.body.split(/\r?\n/).first |
|
329 | 329 | end |
|
330 | 330 | |
|
331 | 331 | def test_directory_diff |
|
332 | 332 | assert_equal 0, @repository.changesets.count |
|
333 | 333 | @repository.fetch_changesets |
|
334 | 334 | @project.reload |
|
335 | 335 | assert_equal NUM_REV, @repository.changesets.count |
|
336 | 336 | ['inline', 'sbs'].each do |dt| |
|
337 | 337 | get :diff, :id => PRJ_ID, :rev => 6, :rev_to => 2, |
|
338 | 338 | :path => repository_path_hash(['subversion_test', 'folder'])[:param], |
|
339 | 339 | :type => dt |
|
340 | 340 | assert_response :success |
|
341 | 341 | assert_template 'diff' |
|
342 | 342 | |
|
343 | 343 | diff = assigns(:diff) |
|
344 | 344 | assert_not_nil diff |
|
345 | 345 | # 2 files modified |
|
346 | 346 | assert_equal 2, Redmine::UnifiedDiff.new(diff).size |
|
347 | 347 | assert_select 'h2', :text => /2:6/ |
|
348 | 348 | end |
|
349 | 349 | end |
|
350 | 350 | |
|
351 | 351 | def test_annotate |
|
352 | 352 | assert_equal 0, @repository.changesets.count |
|
353 | 353 | @repository.fetch_changesets |
|
354 | 354 | @project.reload |
|
355 | 355 | assert_equal NUM_REV, @repository.changesets.count |
|
356 | 356 | get :annotate, :id => PRJ_ID, |
|
357 | 357 | :path => repository_path_hash(['subversion_test', 'helloworld.c'])[:param] |
|
358 | 358 | assert_response :success |
|
359 | 359 | assert_template 'annotate' |
|
360 | 360 | |
|
361 | 361 | assert_select 'tr' do |
|
362 | 362 | assert_select 'th.line-num', :text => '1' |
|
363 | 363 | assert_select 'td.revision', :text => '4' |
|
364 | 364 | assert_select 'td.author', :text => 'jp' |
|
365 | 365 | assert_select 'td', :text => /stdio.h/ |
|
366 | 366 | end |
|
367 | 367 | # Same revision |
|
368 | 368 | assert_select 'tr' do |
|
369 | 369 | assert_select 'th.line-num', :text => '2' |
|
370 | 370 | assert_select 'td.revision', :text => '' |
|
371 | 371 | assert_select 'td.author', :text => '' |
|
372 | 372 | end |
|
373 | 373 | end |
|
374 | 374 | |
|
375 | 375 | def test_annotate_at_given_revision |
|
376 | 376 | assert_equal 0, @repository.changesets.count |
|
377 | 377 | @repository.fetch_changesets |
|
378 | 378 | @project.reload |
|
379 | 379 | assert_equal NUM_REV, @repository.changesets.count |
|
380 | 380 | get :annotate, :id => PRJ_ID, :rev => 8, |
|
381 | 381 | :path => repository_path_hash(['subversion_test', 'helloworld.c'])[:param] |
|
382 | 382 | assert_response :success |
|
383 | 383 | assert_template 'annotate' |
|
384 | 384 | assert_select 'h2', :text => /@ 8/ |
|
385 | 385 | end |
|
386 | 386 | |
|
387 | 387 | def test_destroy_valid_repository |
|
388 | 388 | @request.session[:user_id] = 1 # admin |
|
389 | 389 | assert_equal 0, @repository.changesets.count |
|
390 | 390 | @repository.fetch_changesets |
|
391 | 391 | assert_equal NUM_REV, @repository.changesets.count |
|
392 | 392 | |
|
393 | 393 | assert_difference 'Repository.count', -1 do |
|
394 | 394 | delete :destroy, :id => @repository.id |
|
395 | 395 | end |
|
396 | 396 | assert_response 302 |
|
397 | 397 | @project.reload |
|
398 | 398 | assert_nil @project.repository |
|
399 | 399 | end |
|
400 | 400 | |
|
401 | 401 | def test_destroy_invalid_repository |
|
402 | 402 | @request.session[:user_id] = 1 # admin |
|
403 | 403 | @project.repository.destroy |
|
404 | 404 | @repository = Repository::Subversion.create!( |
|
405 | 405 | :project => @project, |
|
406 | 406 | :url => "file:///invalid") |
|
407 | 407 | @repository.fetch_changesets |
|
408 | 408 | assert_equal 0, @repository.changesets.count |
|
409 | 409 | |
|
410 | 410 | assert_difference 'Repository.count', -1 do |
|
411 | 411 | delete :destroy, :id => @repository.id |
|
412 | 412 | end |
|
413 | 413 | assert_response 302 |
|
414 | 414 | @project.reload |
|
415 | 415 | assert_nil @project.repository |
|
416 | 416 | end |
|
417 | 417 | else |
|
418 | 418 | puts "Subversion test repository NOT FOUND. Skipping functional tests !!!" |
|
419 | 419 | def test_fake; assert true end |
|
420 | 420 | end |
|
421 | 421 | end |
General Comments 0
You need to be logged in to leave comments.
Login now