##// END OF EJS Templates
fix for #8973: Export feature(to csv/pdf) doesn't work in Japanese...
Jean-Philippe Lang -
r284:6a875eb69184
parent child
Show More
@@ -1,592 +1,592
1 1 # redMine - project management software
2 2 # Copyright (C) 2006-2007 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 'csv'
19 19
20 20 class ProjectsController < ApplicationController
21 21 layout 'base'
22 22 before_filter :find_project, :authorize, :except => [ :index, :list, :add ]
23 23 before_filter :require_admin, :only => [ :add, :destroy ]
24 24
25 25 helper :sort
26 26 include SortHelper
27 27 helper :custom_fields
28 28 include CustomFieldsHelper
29 29 helper :ifpdf
30 30 include IfpdfHelper
31 31 helper IssuesHelper
32 32 helper :queries
33 33 include QueriesHelper
34 34
35 35 def index
36 36 list
37 37 render :action => 'list' unless request.xhr?
38 38 end
39 39
40 40 # Lists public projects
41 41 def list
42 42 sort_init 'name', 'asc'
43 43 sort_update
44 44 @project_count = Project.count(:all, :conditions => ["is_public=?", true])
45 45 @project_pages = Paginator.new self, @project_count,
46 46 15,
47 47 params['page']
48 48 @projects = Project.find :all, :order => sort_clause,
49 49 :conditions => ["is_public=?", true],
50 50 :limit => @project_pages.items_per_page,
51 51 :offset => @project_pages.current.offset
52 52
53 53 render :action => "list", :layout => false if request.xhr?
54 54 end
55 55
56 56 # Add a new project
57 57 def add
58 58 @custom_fields = IssueCustomField.find(:all)
59 59 @root_projects = Project.find(:all, :conditions => "parent_id is null")
60 60 @project = Project.new(params[:project])
61 61 if request.get?
62 62 @custom_values = ProjectCustomField.find(:all).collect { |x| CustomValue.new(:custom_field => x, :customized => @project) }
63 63 else
64 64 @project.custom_fields = CustomField.find(params[:custom_field_ids]) if params[:custom_field_ids]
65 65 @custom_values = ProjectCustomField.find(:all).collect { |x| CustomValue.new(:custom_field => x, :customized => @project, :value => params["custom_fields"][x.id.to_s]) }
66 66 @project.custom_values = @custom_values
67 67 if params[:repository_enabled] && params[:repository_enabled] == "1"
68 68 @project.repository = Repository.new
69 69 @project.repository.attributes = params[:repository]
70 70 end
71 71 if @project.save
72 72 flash[:notice] = l(:notice_successful_create)
73 73 redirect_to :controller => 'admin', :action => 'projects'
74 74 end
75 75 end
76 76 end
77 77
78 78 # Show @project
79 79 def show
80 80 @custom_values = @project.custom_values.find(:all, :include => :custom_field)
81 81 @members = @project.members.find(:all, :include => [:user, :role])
82 82 @subprojects = @project.children if @project.children.size > 0
83 83 @news = @project.news.find(:all, :limit => 5, :include => [ :author, :project ], :order => "news.created_on DESC")
84 84 @trackers = Tracker.find(:all, :order => 'position')
85 85 @open_issues_by_tracker = Issue.count(:group => :tracker, :joins => "INNER JOIN issue_statuses ON issue_statuses.id = issues.status_id", :conditions => ["project_id=? and issue_statuses.is_closed=?", @project.id, false])
86 86 @total_issues_by_tracker = Issue.count(:group => :tracker, :conditions => ["project_id=?", @project.id])
87 87 end
88 88
89 89 def settings
90 90 @root_projects = Project::find(:all, :conditions => ["parent_id is null and id <> ?", @project.id])
91 91 @custom_fields = IssueCustomField.find(:all)
92 92 @issue_category ||= IssueCategory.new
93 93 @member ||= @project.members.new
94 94 @roles = Role.find(:all, :order => 'position')
95 95 @users = User.find_active(:all) - @project.users
96 96 @custom_values ||= ProjectCustomField.find(:all).collect { |x| @project.custom_values.find_by_custom_field_id(x.id) || CustomValue.new(:custom_field => x) }
97 97 end
98 98
99 99 # Edit @project
100 100 def edit
101 101 if request.post?
102 102 @project.custom_fields = IssueCustomField.find(params[:custom_field_ids]) if params[:custom_field_ids]
103 103 if params[:custom_fields]
104 104 @custom_values = ProjectCustomField.find(:all).collect { |x| CustomValue.new(:custom_field => x, :customized => @project, :value => params["custom_fields"][x.id.to_s]) }
105 105 @project.custom_values = @custom_values
106 106 end
107 107 if params[:repository_enabled]
108 108 case params[:repository_enabled]
109 109 when "0"
110 110 @project.repository = nil
111 111 when "1"
112 112 @project.repository ||= Repository.new
113 113 @project.repository.update_attributes params[:repository]
114 114 end
115 115 end
116 116 @project.attributes = params[:project]
117 117 if @project.save
118 118 flash[:notice] = l(:notice_successful_update)
119 119 redirect_to :action => 'settings', :id => @project
120 120 else
121 121 settings
122 122 render :action => 'settings'
123 123 end
124 124 end
125 125 end
126 126
127 127 # Delete @project
128 128 def destroy
129 129 if request.post? and params[:confirm]
130 130 @project.destroy
131 131 redirect_to :controller => 'admin', :action => 'projects'
132 132 end
133 133 end
134 134
135 135 # Add a new issue category to @project
136 136 def add_issue_category
137 137 if request.post?
138 138 @issue_category = @project.issue_categories.build(params[:issue_category])
139 139 if @issue_category.save
140 140 flash[:notice] = l(:notice_successful_create)
141 141 redirect_to :action => 'settings', :tab => 'categories', :id => @project
142 142 else
143 143 settings
144 144 render :action => 'settings'
145 145 end
146 146 end
147 147 end
148 148
149 149 # Add a new version to @project
150 150 def add_version
151 151 @version = @project.versions.build(params[:version])
152 152 if request.post? and @version.save
153 153 flash[:notice] = l(:notice_successful_create)
154 154 redirect_to :action => 'settings', :tab => 'versions', :id => @project
155 155 end
156 156 end
157 157
158 158 # Add a new member to @project
159 159 def add_member
160 160 @member = @project.members.build(params[:member])
161 161 if request.post?
162 162 if @member.save
163 163 flash[:notice] = l(:notice_successful_create)
164 164 redirect_to :action => 'settings', :tab => 'members', :id => @project
165 165 else
166 166 settings
167 167 render :action => 'settings'
168 168 end
169 169 end
170 170 end
171 171
172 172 # Show members list of @project
173 173 def list_members
174 174 @members = @project.members.find(:all)
175 175 end
176 176
177 177 # Add a new document to @project
178 178 def add_document
179 179 @categories = Enumeration::get_values('DCAT')
180 180 @document = @project.documents.build(params[:document])
181 181 if request.post? and @document.save
182 182 # Save the attachments
183 183 params[:attachments].each { |a|
184 184 Attachment.create(:container => @document, :file => a, :author => logged_in_user) unless a.size == 0
185 185 } if params[:attachments] and params[:attachments].is_a? Array
186 186 flash[:notice] = l(:notice_successful_create)
187 187 Mailer.deliver_document_add(@document) if Permission.find_by_controller_and_action(params[:controller], params[:action]).mail_enabled?
188 188 redirect_to :action => 'list_documents', :id => @project
189 189 end
190 190 end
191 191
192 192 # Show documents list of @project
193 193 def list_documents
194 194 @documents = @project.documents.find :all, :include => :category
195 195 end
196 196
197 197 # Add a new issue to @project
198 198 def add_issue
199 199 @tracker = Tracker.find(params[:tracker_id])
200 200 @priorities = Enumeration::get_values('IPRI')
201 201 @issue = Issue.new(:project => @project, :tracker => @tracker)
202 202 if request.get?
203 203 @issue.start_date = Date.today
204 204 @custom_values = @project.custom_fields_for_issues(@tracker).collect { |x| CustomValue.new(:custom_field => x, :customized => @issue) }
205 205 else
206 206 @issue.attributes = params[:issue]
207 207 @issue.author_id = self.logged_in_user.id if self.logged_in_user
208 208 # Multiple file upload
209 209 @attachments = []
210 210 params[:attachments].each { |a|
211 211 @attachments << Attachment.new(:container => @issue, :file => a, :author => logged_in_user) unless a.size == 0
212 212 } if params[:attachments] and params[:attachments].is_a? Array
213 213 @custom_values = @project.custom_fields_for_issues(@tracker).collect { |x| CustomValue.new(:custom_field => x, :customized => @issue, :value => params["custom_fields"][x.id.to_s]) }
214 214 @issue.custom_values = @custom_values
215 215 if @issue.save
216 216 @attachments.each(&:save)
217 217 flash[:notice] = l(:notice_successful_create)
218 218 Mailer.deliver_issue_add(@issue) if Permission.find_by_controller_and_action(params[:controller], params[:action]).mail_enabled?
219 219 redirect_to :action => 'list_issues', :id => @project
220 220 end
221 221 end
222 222 end
223 223
224 224 # Show filtered/sorted issues list of @project
225 225 def list_issues
226 226 sort_init 'issues.id', 'desc'
227 227 sort_update
228 228
229 229 retrieve_query
230 230
231 231 @results_per_page_options = [ 15, 25, 50, 100 ]
232 232 if params[:per_page] and @results_per_page_options.include? params[:per_page].to_i
233 233 @results_per_page = params[:per_page].to_i
234 234 session[:results_per_page] = @results_per_page
235 235 else
236 236 @results_per_page = session[:results_per_page] || 25
237 237 end
238 238
239 239 if @query.valid?
240 240 @issue_count = Issue.count(:include => [:status, :project], :conditions => @query.statement)
241 241 @issue_pages = Paginator.new self, @issue_count, @results_per_page, params['page']
242 242 @issues = Issue.find :all, :order => sort_clause,
243 243 :include => [ :author, :status, :tracker, :project, :priority ],
244 244 :conditions => @query.statement,
245 245 :limit => @issue_pages.items_per_page,
246 246 :offset => @issue_pages.current.offset
247 247 end
248 248 @trackers = Tracker.find :all, :order => 'position'
249 249 render :layout => false if request.xhr?
250 250 end
251 251
252 252 # Export filtered/sorted issues list to CSV
253 253 def export_issues_csv
254 254 sort_init 'issues.id', 'desc'
255 255 sort_update
256 256
257 257 retrieve_query
258 258 render :action => 'list_issues' and return unless @query.valid?
259 259
260 260 @issues = Issue.find :all, :order => sort_clause,
261 261 :include => [ :author, :status, :tracker, :priority, {:custom_values => :custom_field} ],
262 262 :conditions => @query.statement,
263 263 :limit => Setting.issues_export_limit
264 264
265 ic = Iconv.new('ISO-8859-1', 'UTF-8')
265 ic = Iconv.new(l(:general_csv_encoding), 'UTF-8')
266 266 export = StringIO.new
267 267 CSV::Writer.generate(export, l(:general_csv_separator)) do |csv|
268 268 # csv header fields
269 269 headers = [ "#", l(:field_status),
270 270 l(:field_tracker),
271 271 l(:field_priority),
272 272 l(:field_subject),
273 273 l(:field_author),
274 274 l(:field_start_date),
275 275 l(:field_due_date),
276 276 l(:field_done_ratio),
277 277 l(:field_created_on),
278 278 l(:field_updated_on)
279 279 ]
280 280 for custom_field in @project.all_custom_fields
281 281 headers << custom_field.name
282 282 end
283 283 csv << headers.collect {|c| ic.iconv(c) }
284 284 # csv lines
285 285 @issues.each do |issue|
286 286 fields = [issue.id, issue.status.name,
287 287 issue.tracker.name,
288 288 issue.priority.name,
289 289 issue.subject,
290 290 issue.author.display_name,
291 291 issue.start_date ? l_date(issue.start_date) : nil,
292 292 issue.due_date ? l_date(issue.due_date) : nil,
293 293 issue.done_ratio,
294 294 l_datetime(issue.created_on),
295 295 l_datetime(issue.updated_on)
296 296 ]
297 297 for custom_field in @project.all_custom_fields
298 298 fields << (show_value issue.custom_value_for(custom_field))
299 299 end
300 300 csv << fields.collect {|c| ic.iconv(c.to_s) }
301 301 end
302 302 end
303 303 export.rewind
304 304 send_data(export.read, :type => 'text/csv; header=present', :filename => 'export.csv')
305 305 end
306 306
307 307 # Export filtered/sorted issues to PDF
308 308 def export_issues_pdf
309 309 sort_init 'issues.id', 'desc'
310 310 sort_update
311 311
312 312 retrieve_query
313 313 render :action => 'list_issues' and return unless @query.valid?
314 314
315 315 @issues = Issue.find :all, :order => sort_clause,
316 316 :include => [ :author, :status, :tracker, :priority ],
317 317 :conditions => @query.statement,
318 318 :limit => Setting.issues_export_limit
319 319
320 320 @options_for_rfpdf ||= {}
321 321 @options_for_rfpdf[:file_name] = "export.pdf"
322 322 render :layout => false
323 323 end
324 324
325 325 def move_issues
326 326 @issues = @project.issues.find(params[:issue_ids]) if params[:issue_ids]
327 327 redirect_to :action => 'list_issues', :id => @project and return unless @issues
328 328 @projects = []
329 329 # find projects to which the user is allowed to move the issue
330 330 @logged_in_user.memberships.each {|m| @projects << m.project if Permission.allowed_to_role("projects/move_issues", m.role_id)}
331 331 # issue can be moved to any tracker
332 332 @trackers = Tracker.find(:all)
333 333 if request.post? and params[:new_project_id] and params[:new_tracker_id]
334 334 new_project = Project.find(params[:new_project_id])
335 335 new_tracker = Tracker.find(params[:new_tracker_id])
336 336 @issues.each { |i|
337 337 # project dependent properties
338 338 unless i.project_id == new_project.id
339 339 i.category = nil
340 340 i.fixed_version = nil
341 341 end
342 342 # move the issue
343 343 i.project = new_project
344 344 i.tracker = new_tracker
345 345 i.save
346 346 }
347 347 flash[:notice] = l(:notice_successful_update)
348 348 redirect_to :action => 'list_issues', :id => @project
349 349 end
350 350 end
351 351
352 352 def add_query
353 353 @query = Query.new(params[:query])
354 354 @query.project = @project
355 355 @query.user = logged_in_user
356 356
357 357 params[:fields].each do |field|
358 358 @query.add_filter(field, params[:operators][field], params[:values][field])
359 359 end if params[:fields]
360 360
361 361 if request.post? and @query.save
362 362 flash[:notice] = l(:notice_successful_create)
363 363 redirect_to :controller => 'reports', :action => 'issue_report', :id => @project
364 364 end
365 365 render :layout => false if request.xhr?
366 366 end
367 367
368 368 # Add a news to @project
369 369 def add_news
370 370 @news = News.new(:project => @project)
371 371 if request.post?
372 372 @news.attributes = params[:news]
373 373 @news.author_id = self.logged_in_user.id if self.logged_in_user
374 374 if @news.save
375 375 flash[:notice] = l(:notice_successful_create)
376 376 redirect_to :action => 'list_news', :id => @project
377 377 end
378 378 end
379 379 end
380 380
381 381 # Show news list of @project
382 382 def list_news
383 383 @news_pages, @news = paginate :news, :per_page => 10, :conditions => ["project_id=?", @project.id], :include => :author, :order => "news.created_on DESC"
384 384 render :action => "list_news", :layout => false if request.xhr?
385 385 end
386 386
387 387 def add_file
388 388 if request.post?
389 389 @version = @project.versions.find_by_id(params[:version_id])
390 390 # Save the attachments
391 391 @attachments = []
392 392 params[:attachments].each { |file|
393 393 next unless file.size > 0
394 394 a = Attachment.create(:container => @version, :file => file, :author => logged_in_user)
395 395 @attachments << a unless a.new_record?
396 396 } if params[:attachments] and params[:attachments].is_a? Array
397 397 Mailer.deliver_attachments_add(@attachments) if !@attachments.empty? and Permission.find_by_controller_and_action(params[:controller], params[:action]).mail_enabled?
398 398 redirect_to :controller => 'projects', :action => 'list_files', :id => @project
399 399 end
400 400 @versions = @project.versions
401 401 end
402 402
403 403 def list_files
404 404 @versions = @project.versions
405 405 end
406 406
407 407 # Show changelog for @project
408 408 def changelog
409 409 @trackers = Tracker.find(:all, :conditions => ["is_in_chlog=?", true], :order => 'position')
410 410 if request.get?
411 411 @selected_tracker_ids = @trackers.collect {|t| t.id.to_s }
412 412 else
413 413 @selected_tracker_ids = params[:tracker_ids].collect { |id| id.to_i.to_s } if params[:tracker_ids] and params[:tracker_ids].is_a? Array
414 414 end
415 415 @selected_tracker_ids ||= []
416 416 @fixed_issues = @project.issues.find(:all,
417 417 :include => [ :fixed_version, :status, :tracker ],
418 418 :conditions => [ "issue_statuses.is_closed=? and issues.tracker_id in (#{@selected_tracker_ids.join(',')}) and issues.fixed_version_id is not null", true],
419 419 :order => "versions.effective_date DESC, issues.id DESC"
420 420 ) unless @selected_tracker_ids.empty?
421 421 @fixed_issues ||= []
422 422 end
423 423
424 424 def roadmap
425 425 @trackers = Tracker.find(:all, :conditions => ["is_in_roadmap=?", true], :order => 'position')
426 426 if request.get?
427 427 @selected_tracker_ids = @trackers.collect {|t| t.id.to_s }
428 428 else
429 429 @selected_tracker_ids = params[:tracker_ids].collect { |id| id.to_i.to_s } if params[:tracker_ids] and params[:tracker_ids].is_a? Array
430 430 end
431 431 @selected_tracker_ids ||= []
432 432 @versions = @project.versions.find(:all,
433 433 :conditions => [ "versions.effective_date>?", Date.today],
434 434 :order => "versions.effective_date ASC"
435 435 )
436 436 end
437 437
438 438 def activity
439 439 if params[:year] and params[:year].to_i > 1900
440 440 @year = params[:year].to_i
441 441 if params[:month] and params[:month].to_i > 0 and params[:month].to_i < 13
442 442 @month = params[:month].to_i
443 443 end
444 444 end
445 445 @year ||= Date.today.year
446 446 @month ||= Date.today.month
447 447
448 448 @date_from = Date.civil(@year, @month, 1)
449 449 @date_to = (@date_from >> 1)-1
450 450
451 451 @events_by_day = {}
452 452
453 453 unless params[:show_issues] == "0"
454 454 @project.issues.find(:all, :include => [:author, :status], :conditions => ["issues.created_on>=? and issues.created_on<=?", @date_from, @date_to] ).each { |i|
455 455 @events_by_day[i.created_on.to_date] ||= []
456 456 @events_by_day[i.created_on.to_date] << i
457 457 }
458 458 @show_issues = 1
459 459 end
460 460
461 461 unless params[:show_news] == "0"
462 462 @project.news.find(:all, :conditions => ["news.created_on>=? and news.created_on<=?", @date_from, @date_to], :include => :author ).each { |i|
463 463 @events_by_day[i.created_on.to_date] ||= []
464 464 @events_by_day[i.created_on.to_date] << i
465 465 }
466 466 @show_news = 1
467 467 end
468 468
469 469 unless params[:show_files] == "0"
470 470 Attachment.find(:all, :select => "attachments.*", :joins => "LEFT JOIN versions ON versions.id = attachments.container_id", :conditions => ["attachments.container_type='Version' and versions.project_id=? and attachments.created_on>=? and attachments.created_on<=?", @project.id, @date_from, @date_to], :include => :author ).each { |i|
471 471 @events_by_day[i.created_on.to_date] ||= []
472 472 @events_by_day[i.created_on.to_date] << i
473 473 }
474 474 @show_files = 1
475 475 end
476 476
477 477 unless params[:show_documents] == "0"
478 478 @project.documents.find(:all, :conditions => ["documents.created_on>=? and documents.created_on<=?", @date_from, @date_to] ).each { |i|
479 479 @events_by_day[i.created_on.to_date] ||= []
480 480 @events_by_day[i.created_on.to_date] << i
481 481 }
482 482 Attachment.find(:all, :select => "attachments.*", :joins => "LEFT JOIN documents ON documents.id = attachments.container_id", :conditions => ["attachments.container_type='Document' and documents.project_id=? and attachments.created_on>=? and attachments.created_on<=?", @project.id, @date_from, @date_to], :include => :author ).each { |i|
483 483 @events_by_day[i.created_on.to_date] ||= []
484 484 @events_by_day[i.created_on.to_date] << i
485 485 }
486 486 @show_documents = 1
487 487 end
488 488
489 489 render :layout => false if request.xhr?
490 490 end
491 491
492 492 def calendar
493 493 if params[:year] and params[:year].to_i > 1900
494 494 @year = params[:year].to_i
495 495 if params[:month] and params[:month].to_i > 0 and params[:month].to_i < 13
496 496 @month = params[:month].to_i
497 497 end
498 498 end
499 499 @year ||= Date.today.year
500 500 @month ||= Date.today.month
501 501
502 502 @date_from = Date.civil(@year, @month, 1)
503 503 @date_to = (@date_from >> 1)-1
504 504 # start on monday
505 505 @date_from = @date_from - (@date_from.cwday-1)
506 506 # finish on sunday
507 507 @date_to = @date_to + (7-@date_to.cwday)
508 508
509 509 @issues = @project.issues.find(:all, :include => [:tracker, :status, :assigned_to, :priority], :conditions => ["((start_date>=? and start_date<=?) or (due_date>=? and due_date<=?))", @date_from, @date_to, @date_from, @date_to])
510 510 render :layout => false if request.xhr?
511 511 end
512 512
513 513 def gantt
514 514 if params[:year] and params[:year].to_i >0
515 515 @year_from = params[:year].to_i
516 516 if params[:month] and params[:month].to_i >=1 and params[:month].to_i <= 12
517 517 @month_from = params[:month].to_i
518 518 else
519 519 @month_from = 1
520 520 end
521 521 else
522 522 @month_from ||= (Date.today << 1).month
523 523 @year_from ||= (Date.today << 1).year
524 524 end
525 525
526 526 @zoom = (params[:zoom].to_i > 0 and params[:zoom].to_i < 5) ? params[:zoom].to_i : 2
527 527 @months = (params[:months].to_i > 0 and params[:months].to_i < 25) ? params[:months].to_i : 6
528 528
529 529 @date_from = Date.civil(@year_from, @month_from, 1)
530 530 @date_to = (@date_from >> @months) - 1
531 531 @issues = @project.issues.find(:all, :order => "start_date, due_date", :include => [:tracker, :status, :assigned_to, :priority], :conditions => ["(((start_date>=? and start_date<=?) or (due_date>=? and due_date<=?) or (start_date<? and due_date>?)) and start_date is not null and due_date is not null)", @date_from, @date_to, @date_from, @date_to, @date_from, @date_to])
532 532
533 533 if params[:output]=='pdf'
534 534 @options_for_rfpdf ||= {}
535 535 @options_for_rfpdf[:file_name] = "gantt.pdf"
536 536 render :template => "projects/gantt.rfpdf", :layout => false
537 537 else
538 538 render :template => "projects/gantt.rhtml"
539 539 end
540 540 end
541 541
542 542 def search
543 543 @token = params[:token]
544 544 @scope = params[:scope] || (params[:submit] ? [] : %w(issues news documents) )
545 545
546 546 if @token and @token.length > 2
547 547 @token.strip!
548 548 like_token = "%#{@token}%"
549 549 @results = []
550 550 @results += @project.issues.find(:all, :include => :author, :conditions => ["issues.subject like ? or issues.description like ?", like_token, like_token] ) if @scope.include? 'issues'
551 551 @results += @project.news.find(:all, :conditions => ["news.title like ? or news.description like ?", like_token, like_token], :include => :author ) if @scope.include? 'news'
552 552 @results += @project.documents.find(:all, :conditions => ["title like ? or description like ?", like_token, like_token] ) if @scope.include? 'documents'
553 553 end
554 554 end
555 555
556 556 private
557 557 # Find project of id params[:id]
558 558 # if not found, redirect to project list
559 559 # Used as a before_filter
560 560 def find_project
561 561 @project = Project.find(params[:id])
562 562 @html_title = @project.name
563 563 rescue ActiveRecord::RecordNotFound
564 564 render_404
565 565 end
566 566
567 567 # Retrieve query from session or build a new query
568 568 def retrieve_query
569 569 if params[:query_id]
570 570 @query = @project.queries.find(params[:query_id])
571 571 session[:query] = @query
572 572 else
573 573 if params[:set_filter] or !session[:query] or session[:query].project_id != @project.id
574 574 # Give it a name, required to be valid
575 575 @query = Query.new(:name => "_")
576 576 @query.project = @project
577 577 if params[:fields] and params[:fields].is_a? Array
578 578 params[:fields].each do |field|
579 579 @query.add_filter(field, params[:operators][field], params[:values][field])
580 580 end
581 581 else
582 582 @query.available_filters.keys.each do |field|
583 583 @query.add_short_filter(field, params[field]) if params[field]
584 584 end
585 585 end
586 586 session[:query] = @query
587 587 else
588 588 @query = session[:query]
589 589 end
590 590 end
591 591 end
592 592 end
@@ -1,53 +1,70
1 1 # redMine - project management software
2 2 # Copyright (C) 2006 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 'iconv'
19 require 'rfpdf/chinese'
19 20
20 module IfpdfHelper
21
21 module IfpdfHelper
22
22 23 class IFPDF < FPDF
23
24 include GLoc
24 25 attr_accessor :footer_date
25 26
26 def initialize
27 super
27 def initialize(lang)
28 super()
29 set_language_if_valid lang
30 case current_language
31 when :ja
32 extend(PDF_Japanese)
33 AddSJISFont()
34 @font_for_content = 'SJIS'
35 @font_for_footer = 'SJIS'
36 else
37 @font_for_content = 'Arial'
38 @font_for_footer = 'Helvetica'
39 end
28 40 SetCreator("redMine #{Redmine::VERSION}")
41 SetFont(@font_for_content)
42 end
43
44 def SetFontStyle(style, size)
45 SetFont(@font_for_content, style, size)
29 46 end
30 47
31 48 def Cell(w,h=0,txt='',border=0,ln=0,align='',fill=0,link='')
32 @ic ||= Iconv.new('ISO-8859-1', 'UTF-8')
49 @ic ||= Iconv.new(l(:general_pdf_encoding), 'UTF-8')
33 50 txt = begin
34 51 @ic.iconv(txt)
35 52 rescue
36 53 txt
37 54 end
38 55 super w,h,txt,border,ln,align,fill,link
39 56 end
40 57
41 58 def Footer
42 SetFont('Helvetica', 'I', 8)
59 SetFont(@font_for_footer, 'I', 8)
43 60 SetY(-15)
44 61 SetX(15)
45 62 Cell(0, 5, @footer_date, 0, 0, 'L')
46 63 SetY(-15)
47 64 SetX(-30)
48 65 Cell(0, 5, PageNo().to_s + '/{nb}', 0, 0, 'C')
49 66 end
50 67
51 68 end
52 69
53 70 end
@@ -1,100 +1,100
1 <% pdf.SetFont('Arial','B',11)
1 <% pdf.SetFontStyle('B',11)
2 2 pdf.Cell(190,10, "#{issue.project.name} - #{issue.tracker.name} # #{issue.long_id} - #{issue.subject}")
3 3 pdf.Ln
4 4
5 5 y0 = pdf.GetY
6 6
7 pdf.SetFont('Arial','B',9)
7 pdf.SetFontStyle('B',9)
8 8 pdf.Cell(35,5, l(:field_status) + ":","LT")
9 pdf.SetFont('Arial','',9)
9 pdf.SetFontStyle('',9)
10 10 pdf.Cell(60,5, issue.status.name,"RT")
11 pdf.SetFont('Arial','B',9)
11 pdf.SetFontStyle('B',9)
12 12 pdf.Cell(35,5, l(:field_priority) + ":","LT")
13 pdf.SetFont('Arial','',9)
13 pdf.SetFontStyle('',9)
14 14 pdf.Cell(60,5, issue.priority.name,"RT")
15 15 pdf.Ln
16 16
17 pdf.SetFont('Arial','B',9)
17 pdf.SetFontStyle('B',9)
18 18 pdf.Cell(35,5, l(:field_author) + ":","L")
19 pdf.SetFont('Arial','',9)
19 pdf.SetFontStyle('',9)
20 20 pdf.Cell(60,5, issue.author.name,"R")
21 pdf.SetFont('Arial','B',9)
21 pdf.SetFontStyle('B',9)
22 22 pdf.Cell(35,5, l(:field_category) + ":","L")
23 pdf.SetFont('Arial','',9)
23 pdf.SetFontStyle('',9)
24 24 pdf.Cell(60,5, (issue.category ? issue.category.name : "-"),"R")
25 25 pdf.Ln
26 26
27 pdf.SetFont('Arial','B',9)
27 pdf.SetFontStyle('B',9)
28 28 pdf.Cell(35,5, l(:field_created_on) + ":","L")
29 pdf.SetFont('Arial','',9)
29 pdf.SetFontStyle('',9)
30 30 pdf.Cell(60,5, format_date(issue.created_on),"R")
31 pdf.SetFont('Arial','B',9)
31 pdf.SetFontStyle('B',9)
32 32 pdf.Cell(35,5, l(:field_assigned_to) + ":","L")
33 pdf.SetFont('Arial','',9)
33 pdf.SetFontStyle('',9)
34 34 pdf.Cell(60,5, (issue.assigned_to ? issue.assigned_to.name : "-"),"R")
35 35 pdf.Ln
36 36
37 pdf.SetFont('Arial','B',9)
37 pdf.SetFontStyle('B',9)
38 38 pdf.Cell(35,5, l(:field_updated_on) + ":","LB")
39 pdf.SetFont('Arial','',9)
39 pdf.SetFontStyle('',9)
40 40 pdf.Cell(60,5, format_date(issue.updated_on),"RB")
41 pdf.SetFont('Arial','B',9)
41 pdf.SetFontStyle('B',9)
42 42 pdf.Cell(35,5, l(:field_due_date) + ":","LB")
43 pdf.SetFont('Arial','',9)
43 pdf.SetFontStyle('',9)
44 44 pdf.Cell(60,5, format_date(issue.due_date),"RB")
45 45 pdf.Ln
46 46
47 47 for custom_value in issue.custom_values
48 pdf.SetFont('Arial','B',9)
48 pdf.SetFontStyle('B',9)
49 49 pdf.Cell(35,5, custom_value.custom_field.name + ":","L")
50 pdf.SetFont('Arial','',9)
50 pdf.SetFontStyle('',9)
51 51 pdf.MultiCell(155,5, (show_value custom_value),"R")
52 52 end
53 53
54 pdf.SetFont('Arial','B',9)
54 pdf.SetFontStyle('B',9)
55 55 pdf.Cell(35,5, l(:field_subject) + ":","LTB")
56 pdf.SetFont('Arial','',9)
56 pdf.SetFontStyle('',9)
57 57 pdf.Cell(155,5, issue.subject,"RTB")
58 58 pdf.Ln
59 59
60 pdf.SetFont('Arial','B',9)
60 pdf.SetFontStyle('B',9)
61 61 pdf.Cell(35,5, l(:field_description) + ":")
62 pdf.SetFont('Arial','',9)
62 pdf.SetFontStyle('',9)
63 63 pdf.MultiCell(155,5, issue.description,"BR")
64 64
65 65 pdf.Line(pdf.GetX, y0, pdf.GetX, pdf.GetY)
66 66 pdf.Line(pdf.GetX, pdf.GetY, 170, pdf.GetY)
67 67
68 68 pdf.Ln
69 69
70 pdf.SetFont('Arial','B',9)
70 pdf.SetFontStyle('B',9)
71 71 pdf.Cell(190,5, l(:label_history), "B")
72 72 pdf.Ln
73 73 for journal in issue.journals.find(:all, :include => :user, :order => "journals.created_on desc")
74 pdf.SetFont('Arial','B',8)
74 pdf.SetFontStyle('B',8)
75 75 pdf.Cell(190,5, format_time(journal.created_on) + " - " + journal.user.name)
76 76 pdf.Ln
77 pdf.SetFont('Arial','I',8)
77 pdf.SetFontStyle('I',8)
78 78 for detail in journal.details
79 79 pdf.Cell(190,5, "- " + show_detail(detail, true))
80 80 pdf.Ln
81 81 end
82 82 if journal.notes?
83 pdf.SetFont('Arial','',8)
83 pdf.SetFontStyle('',8)
84 84 pdf.MultiCell(190,5, journal.notes)
85 85 end
86 86 pdf.Ln
87 87 end
88 88
89 pdf.SetFont('Arial','B',9)
89 pdf.SetFontStyle('B',9)
90 90 pdf.Cell(190,5, l(:label_attachment_plural), "B")
91 91 pdf.Ln
92 92 for attachment in issue.attachments
93 pdf.SetFont('Arial','',8)
93 pdf.SetFontStyle('',8)
94 94 pdf.Cell(80,5, attachment.filename)
95 95 pdf.Cell(20,5, number_to_human_size(attachment.filesize),0,0,"R")
96 96 pdf.Cell(20,5, format_date(attachment.created_on),0,0,"R")
97 97 pdf.Cell(70,5, attachment.author.name,0,0,"R")
98 98 pdf.Ln
99 99 end
100 100 %> No newline at end of file
@@ -1,10 +1,10
1 <% pdf=IfpdfHelper::IFPDF.new
1 <% pdf=IfpdfHelper::IFPDF.new(current_language)
2 2 pdf.SetTitle("#{@project.name} - ##{@issue.tracker.name} #{@issue.id}")
3 3 pdf.AliasNbPages
4 4 pdf.footer_date = format_date(Date.today)
5 5 pdf.AddPage
6 6
7 7 render :partial => 'issues/pdf', :locals => { :pdf => pdf, :issue => @issue }
8 8 %>
9 9
10 10 <%= pdf.Output %> No newline at end of file
@@ -1,49 +1,49
1 <% pdf=IfpdfHelper::IFPDF.new
1 <% pdf=IfpdfHelper::IFPDF.new(current_language)
2 2 pdf.SetTitle("#{@project.name} - #{l(:label_issue_plural)}")
3 3 pdf.AliasNbPages
4 4 pdf.footer_date = format_date(Date.today)
5 5 pdf.AddPage("L")
6 6 row_height = 7
7 7
8 8 #
9 9 # title
10 10 #
11 pdf.SetFont('Arial','B',11)
11 pdf.SetFontStyle('B',11)
12 12 pdf.Cell(190,10, "#{@project.name} - #{l(:label_issue_plural)}")
13 13 pdf.Ln
14 14
15 15 #
16 16 # headers
17 17 #
18 pdf.SetFont('Arial','B',10)
18 pdf.SetFontStyle('B',10)
19 19 pdf.SetFillColor(230, 230, 230)
20 20 pdf.Cell(15, row_height, "#", 0, 0, 'L', 1)
21 21 pdf.Cell(30, row_height, l(:field_tracker), 0, 0, 'L', 1)
22 22 pdf.Cell(30, row_height, l(:field_status), 0, 0, 'L', 1)
23 23 pdf.Cell(30, row_height, l(:field_priority), 0, 0, 'L', 1)
24 24 pdf.Cell(40, row_height, l(:field_author), 0, 0, 'L', 1)
25 25 pdf.Cell(25, row_height, l(:field_updated_on), 0, 0, 'L', 1)
26 26 pdf.Cell(0, row_height, l(:field_subject), 0, 0, 'L', 1)
27 27 pdf.Line(10, pdf.GetY, 287, pdf.GetY)
28 28 pdf.Ln
29 29 pdf.Line(10, pdf.GetY, 287, pdf.GetY)
30 30 pdf.SetY(pdf.GetY() + 1)
31 31
32 32 #
33 33 # rows
34 34 #
35 pdf.SetFont('Arial','',9)
35 pdf.SetFontStyle('',9)
36 36 pdf.SetFillColor(255, 255, 255)
37 37 @issues.each do |issue|
38 38 pdf.Cell(15, row_height, issue.id.to_s, 0, 0, 'L', 1)
39 39 pdf.Cell(30, row_height, issue.tracker.name, 0, 0, 'L', 1)
40 40 pdf.Cell(30, row_height, issue.status.name, 0, 0, 'L', 1)
41 41 pdf.Cell(30, row_height, issue.priority.name, 0, 0, 'L', 1)
42 42 pdf.Cell(40, row_height, issue.author.name, 0, 0, 'L', 1)
43 43 pdf.Cell(25, row_height, format_date(issue.updated_on), 0, 0, 'L', 1)
44 44 pdf.MultiCell(0, row_height, issue.subject)
45 45 pdf.Line(10, pdf.GetY, 287, pdf.GetY)
46 46 pdf.SetY(pdf.GetY() + 1)
47 47 end
48 48 %>
49 49 <%= pdf.Output %> No newline at end of file
@@ -1,169 +1,169
1 1 <%
2 pdf=IfpdfHelper::IFPDF.new
2 pdf=IfpdfHelper::IFPDF.new(current_language)
3 3 pdf.SetTitle("#{@project.name} - #{l(:label_gantt)}")
4 4 pdf.AliasNbPages
5 5 pdf.footer_date = format_date(Date.today)
6 6 pdf.AddPage("L")
7 pdf.SetFont('Arial','B',12)
7 pdf.SetFontStyle('B',12)
8 8 pdf.SetX(15)
9 9 pdf.Cell(70, 20, @project.name)
10 10 pdf.Ln
11 pdf.SetFont('Arial','B',9)
11 pdf.SetFontStyle('B',9)
12 12
13 13 subject_width = 70
14 14 header_heigth = 5
15 15
16 16 headers_heigth = header_heigth
17 17 show_weeks = false
18 18 show_days = false
19 19
20 20 if @months < 7
21 21 show_weeks = true
22 22 headers_heigth = 2*header_heigth
23 23 if @months < 3
24 24 show_days = true
25 25 headers_heigth = 3*header_heigth
26 26 end
27 27 end
28 28
29 29 g_width = 210
30 30 zoom = (g_width) / (@date_to - @date_from + 1)
31 31 g_height = 120
32 32 t_height = g_height + headers_heigth
33 33
34 34 y_start = pdf.GetY
35 35
36 36
37 37 #
38 38 # Months headers
39 39 #
40 40 month_f = @date_from
41 41 left = subject_width
42 42 height = header_heigth
43 43 @months.times do
44 44 width = ((month_f >> 1) - month_f) * zoom
45 45 pdf.SetY(y_start)
46 46 pdf.SetX(left)
47 47 pdf.Cell(width, height, "#{month_f.year}-#{month_f.month}", "LTR", 0, "C")
48 48 left = left + width
49 49 month_f = month_f >> 1
50 50 end
51 51
52 52 #
53 53 # Weeks headers
54 54 #
55 55 if show_weeks
56 56 left = subject_width
57 57 height = header_heigth
58 58 if @date_from.cwday == 1
59 59 # @date_from is monday
60 60 week_f = @date_from
61 61 else
62 62 # find next monday after @date_from
63 63 week_f = @date_from + (7 - @date_from.cwday + 1)
64 64 width = (7 - @date_from.cwday + 1) * zoom-1
65 65 pdf.SetY(y_start + header_heigth)
66 66 pdf.SetX(left)
67 67 pdf.Cell(width + 1, height, "", "LTR")
68 68 left = left + width+1
69 69 end
70 70 while week_f <= @date_to
71 71 width = (week_f + 6 <= @date_to) ? 7 * zoom : (@date_to - week_f + 1) * zoom
72 72 pdf.SetY(y_start + header_heigth)
73 73 pdf.SetX(left)
74 74 pdf.Cell(width, height, (width >= 5 ? week_f.cweek.to_s : ""), "LTR", 0, "C")
75 75 left = left + width
76 76 week_f = week_f+7
77 77 end
78 78 end
79 79
80 80 #
81 81 # Days headers
82 82 #
83 83 if show_days
84 84 left = subject_width
85 85 height = header_heigth
86 86 wday = @date_from.cwday
87 pdf.SetFont('Arial','B',7)
87 pdf.SetFontStyle('B',7)
88 88 (@date_to - @date_from + 1).to_i.times do
89 89 width = zoom
90 90 pdf.SetY(y_start + 2 * header_heigth)
91 91 pdf.SetX(left)
92 92 pdf.Cell(width, height, day_name(wday)[0,1], "LTR", 0, "C")
93 93 left = left + width
94 94 wday = wday + 1
95 95 wday = 1 if wday > 7
96 96 end
97 97 end
98 98
99 99 pdf.SetY(y_start)
100 100 pdf.SetX(15)
101 101 pdf.Cell(subject_width+g_width-15, headers_heigth, "", 1)
102 102
103 103
104 104 #
105 105 # Tasks
106 106 #
107 107 top = headers_heigth + y_start
108 pdf.SetFont('Arial','B',7)
108 pdf.SetFontStyle('B',7)
109 109 @issues.each do |i|
110 110 pdf.SetY(top)
111 111 pdf.SetX(15)
112 112 pdf.Cell(subject_width-15, 5, "#{i.tracker.name} #{i.id}: #{i.subject}".sub(/^(.{30}[^\s]*\s).*$/, '\1 (...)'), "LR")
113 113
114 114 pdf.SetY(top)
115 115 pdf.SetX(subject_width)
116 116 pdf.Cell(g_width, 5, "", "LR")
117 117
118 118 i_start_date = (i.start_date >= @date_from ? i.start_date : @date_from )
119 119 i_end_date = (i.due_date <= @date_to ? i.due_date : @date_to )
120 120
121 121 i_done_date = i.start_date + ((i.due_date - i.start_date+1)*i.done_ratio/100).floor
122 122 i_done_date = (i_done_date <= @date_from ? @date_from : i_done_date )
123 123 i_done_date = (i_done_date >= @date_to ? @date_to : i_done_date )
124 124
125 125 i_late_date = [i_end_date, Date.today].min if i_start_date < Date.today
126 126
127 127 i_left = ((i_start_date - @date_from)*zoom)
128 128 i_width = ((i_end_date - i_start_date + 1)*zoom)
129 129 d_width = ((i_done_date - i_start_date)*zoom)
130 130 l_width = ((i_late_date - i_start_date+1)*zoom) if i_late_date
131 131 l_width ||= 0
132 132
133 133 pdf.SetY(top+1.5)
134 134 pdf.SetX(subject_width + i_left)
135 135 pdf.SetFillColor(200,200,200)
136 136 pdf.Cell(i_width, 2, "", 0, 0, "", 1)
137 137
138 138 if l_width > 0
139 139 pdf.SetY(top+1.5)
140 140 pdf.SetX(subject_width + i_left)
141 141 pdf.SetFillColor(255,100,100)
142 142 pdf.Cell(l_width, 2, "", 0, 0, "", 1)
143 143 end
144 144 if d_width > 0
145 145 pdf.SetY(top+1.5)
146 146 pdf.SetX(subject_width + i_left)
147 147 pdf.SetFillColor(100,100,255)
148 148 pdf.Cell(d_width, 2, "", 0, 0, "", 1)
149 149 end
150 150
151 151 pdf.SetY(top+1.5)
152 152 pdf.SetX(subject_width + i_left + i_width)
153 153 pdf.Cell(30, 2, "#{i.status.name} #{i.done_ratio}%")
154 154
155 155 top = top + 5
156 156 pdf.SetDrawColor(200, 200, 200)
157 157 pdf.Line(15, top, subject_width+g_width, top)
158 158 if pdf.GetY() > 180
159 159 pdf.AddPage("L")
160 160 top = 20
161 161 pdf.Line(15, top, subject_width+g_width, top)
162 162 end
163 163 pdf.SetDrawColor(0, 0, 0)
164 164 end
165 165
166 166 pdf.Line(15, top, subject_width+g_width, top)
167 167
168 168 %>
169 169 <%= pdf.Output %> No newline at end of file
@@ -1,380 +1,382
1 1 _gloc_rule_default: '|n| n==1 ? "" : "_plural" '
2 2
3 3 actionview_datehelper_select_day_prefix:
4 4 actionview_datehelper_select_month_names: January,February,March,April,May,June,July,August,September,October,November,December
5 5 actionview_datehelper_select_month_names_abbr: Jan,Feb,Mar,Apr,May,Jun,Jul,Aug,Sep,Oct,Nov,Dec
6 6 actionview_datehelper_select_month_prefix:
7 7 actionview_datehelper_select_year_prefix:
8 8 actionview_datehelper_time_in_words_day: 1 day
9 9 actionview_datehelper_time_in_words_day_plural: %d days
10 10 actionview_datehelper_time_in_words_hour_about: about an hour
11 11 actionview_datehelper_time_in_words_hour_about_plural: about %d hours
12 12 actionview_datehelper_time_in_words_hour_about_single: about an hour
13 13 actionview_datehelper_time_in_words_minute: 1 minute
14 14 actionview_datehelper_time_in_words_minute_half: half a minute
15 15 actionview_datehelper_time_in_words_minute_less_than: less than a minute
16 16 actionview_datehelper_time_in_words_minute_plural: %d minutes
17 17 actionview_datehelper_time_in_words_minute_single: 1 minute
18 18 actionview_datehelper_time_in_words_second_less_than: less than a second
19 19 actionview_datehelper_time_in_words_second_less_than_plural: less than %d seconds
20 20 actionview_instancetag_blank_option: Bitte auserwählt
21 21
22 22 activerecord_error_inclusion: ist nicht in der Liste eingeschlossen
23 23 activerecord_error_exclusion: ist reserviert
24 24 activerecord_error_invalid: ist unzulässig
25 25 activerecord_error_confirmation: bringt nicht Bestätigung zusammen
26 26 activerecord_error_accepted: muß angenommen werden
27 27 activerecord_error_empty: kann nicht leer sein
28 28 activerecord_error_blank: kann nicht leer sein
29 29 activerecord_error_too_long: ist zu lang
30 30 activerecord_error_too_short: ist zu kurz
31 31 activerecord_error_wrong_length: ist die falsche Länge
32 32 activerecord_error_taken: ist bereits genommen worden
33 33 activerecord_error_not_a_number: ist nicht eine Zahl
34 34 activerecord_error_not_a_date: ist nicht ein gültiges Datum
35 35 activerecord_error_greater_than_start_date: muß als grösser sein beginnen Datum
36 36
37 37 general_fmt_age: %d yr
38 38 general_fmt_age_plural: %d yrs
39 39 general_fmt_date: %%b %%d, %%Y (%%a)
40 40 general_fmt_datetime: %%b %%d, %%Y (%%a), %%I:%%M %%p
41 41 general_fmt_datetime_short: %%b %%d, %%I:%%M %%p
42 42 general_fmt_time: %%I:%%M %%p
43 43 general_text_No: 'Nein'
44 44 general_text_Yes: 'Ja'
45 45 general_text_no: 'nein'
46 46 general_text_yes: 'ja'
47 47 general_lang_de: 'Deutsch'
48 48 general_csv_separator: ';'
49 general_csv_encoding: ISO-8859-1
50 general_pdf_encoding: ISO-8859-1
49 51 general_day_names: Montag,Dienstag,Mittwoch,Donnerstag,Freitag,Samstag,Sonntag
50 52
51 53 notice_account_updated: Konto wurde erfolgreich aktualisiert.
52 54 notice_account_invalid_creditentials: Unzulässiger Benutzer oder Passwort
53 55 notice_account_password_updated: Passwort wurde erfolgreich aktualisiert.
54 56 notice_account_wrong_password: Falsches Passwort
55 57 notice_account_register_done: Konto wurde erfolgreich verursacht.
56 58 notice_account_unknown_email: Unbekannter Benutzer.
57 59 notice_can_t_change_password: Dieses Konto verwendet eine externe Authentisierung Quelle. Unmöglich, das Kennwort zu ändern.
58 60 notice_account_lost_email_sent: Ein email mit Anweisungen, ein neues Kennwort zu wählen ist dir geschickt worden.
59 61 notice_account_activated: Dein Konto ist aktiviert worden. Du kannst jetzt einloggen.
60 62 notice_successful_create: Erfolgreiche Kreation.
61 63 notice_successful_update: Erfolgreiches Update.
62 64 notice_successful_delete: Erfolgreiche Auslassung.
63 65 notice_successful_connection: Erfolgreicher Anschluß.
64 66 notice_file_not_found: Erbetene Akte besteht nicht oder ist gelöscht worden.
65 67 notice_locking_conflict: Data have been updated by another user.
66 68 notice_scm_error: Eintragung und/oder Neuausgabe besteht nicht im Behälter.
67 69
68 70 mail_subject_lost_password: Dein redMine Kennwort
69 71 mail_subject_register: redMine Kontoaktivierung
70 72
71 73 gui_validation_error: 1 Störung
72 74 gui_validation_error_plural: %d Störungen
73 75
74 76 field_name: Name
75 77 field_description: Beschreibung
76 78 field_summary: Zusammenfassung
77 79 field_is_required: Erforderlich
78 80 field_firstname: Vorname
79 81 field_lastname: Nachname
80 82 field_mail: Email
81 83 field_filename: Datei
82 84 field_filesize: Grootte
83 85 field_downloads: Downloads
84 86 field_author: Autor
85 87 field_created_on: Angelegt
86 88 field_updated_on: aktualisiert
87 89 field_field_format: Format
88 90 field_is_for_all: Für alle Projekte
89 91 field_possible_values: Mögliche Werte
90 92 field_regexp: Regulärer Ausdruck
91 93 field_min_length: Minimale Länge
92 94 field_max_length: Maximale Länge
93 95 field_value: Wert
94 96 field_category: Kategorie
95 97 field_title: Títel
96 98 field_project: Projekt
97 99 field_issue: Antrag
98 100 field_status: Status
99 101 field_notes: Anmerkungen
100 102 field_is_closed: Problem erledigt
101 103 field_is_default: Rückstellung status
102 104 field_html_color: Farbe
103 105 field_tracker: Tracker
104 106 field_subject: Thema
105 107 field_due_date: Abgabedatum
106 108 field_assigned_to: Zugewiesen an
107 109 field_priority: Priorität
108 110 field_fixed_version: Erledigt in Version
109 111 field_user: Benutzer
110 112 field_role: Rolle
111 113 field_homepage: Startseite
112 114 field_is_public: Öffentlich
113 115 field_parent: Subprojekt von
114 116 field_is_in_chlog: Ansicht der Issues in der Historie
115 117 field_login: Mitgliedsname
116 118 field_mail_notification: Mailbenachrichtigung
117 119 field_admin: Administrator
118 120 field_locked: Gesperrt
119 121 field_last_login_on: Letzte Anmeldung
120 122 field_language: Sprache
121 123 field_effective_date: Datum
122 124 field_password: Passwort
123 125 field_new_password: Neues Passwort
124 126 field_password_confirmation: Bestätigung
125 127 field_version: Version
126 128 field_type: Typ
127 129 field_host: Host
128 130 field_port: Port
129 131 field_account: Konto
130 132 field_base_dn: Base DN
131 133 field_attr_login: Mitgliedsnameattribut
132 134 field_attr_firstname: Vornamensattribut
133 135 field_attr_lastname: Namenattribut
134 136 field_attr_mail: Emailattribut
135 137 field_onthefly: On-the-fly Benutzerkreation
136 138 field_start_date: Beginn
137 139 field_done_ratio: %% Getan
138 140 field_auth_source: Authentisierung Modus
139 141 field_hide_mail: Mein email address verstecken
140 142 field_comment: Anmerkung
141 143 field_url: URL
142 144
143 145 setting_app_title: Applikation Titel
144 146 setting_app_subtitle: Applikation Untertitel
145 147 setting_welcome_text: Willkommener Text
146 148 setting_default_language: Rückstellung Sprache
147 149 setting_login_required: Authent. erfordert
148 150 setting_self_registration: Selbstausrichtung ermöglicht
149 151 setting_attachment_max_size: Dateimaximumgröße
150 152 setting_issues_export_limit: Issues export limit
151 153 setting_mail_from: Emission address
152 154 setting_host_name: Host Name
153 155 setting_text_formatting: Textformatierung
154 156
155 157 label_user: Benutzer
156 158 label_user_plural: Benutzer
157 159 label_user_new: Neuer Benutzer
158 160 label_project: Projekt
159 161 label_project_new: Neues Projekt
160 162 label_project_plural: Projekte
161 163 label_project_latest: Neueste Projekte
162 164 label_issue: Antrag
163 165 label_issue_new: Neue Antrag
164 166 label_issue_plural: Anträge
165 167 label_issue_view_all: Alle Anträge ansehen
166 168 label_document: Dokument
167 169 label_document_new: Neues Dokument
168 170 label_document_plural: Dokumente
169 171 label_role: Rolle
170 172 label_role_plural: Rollen
171 173 label_role_new: Neue Rolle
172 174 label_role_and_permissions: Rollen und Rechte
173 175 label_member: Mitglied
174 176 label_member_new: Neues Mitglied
175 177 label_member_plural: Mitglieder
176 178 label_tracker: Tracker
177 179 label_tracker_plural: Tracker
178 180 label_tracker_new: Neuer Tracker
179 181 label_workflow: Workflow
180 182 label_issue_status: Antrag Status
181 183 label_issue_status_plural: Antrag Stati
182 184 label_issue_status_new: Neuer Status
183 185 label_issue_category: Antrag Kategorie
184 186 label_issue_category_plural: Antrag Kategorien
185 187 label_issue_category_new: Neue Kategorie
186 188 label_custom_field: Benutzerdefiniertes Feld
187 189 label_custom_field_plural: Benutzerdefinierte Felder
188 190 label_custom_field_new: Neues Feld
189 191 label_enumerations: Enumerationen
190 192 label_enumeration_new: Neuer Wert
191 193 label_information: Information
192 194 label_information_plural: Informationen
193 195 label_please_login: Anmelden
194 196 label_register: Anmelden
195 197 label_password_lost: Passwort vergessen
196 198 label_home: Hauptseite
197 199 label_my_page: Meine Seite
198 200 label_my_account: Mein Konto
199 201 label_my_projects: Meine Projekte
200 202 label_administration: Administration
201 203 label_login: Einloggen
202 204 label_logout: Abmelden
203 205 label_help: Hilfe
204 206 label_reported_issues: Gemeldete Issues
205 207 label_assigned_to_me_issues: Mir zugewiesen
206 208 label_last_login: Letzte Anmeldung
207 209 label_last_updates: Letztes aktualisiertes
208 210 label_last_updates_plural: %d Letztes aktualisiertes
209 211 label_registered_on: Angemeldet am
210 212 label_activity: Aktivität
211 213 label_new: Neue
212 214 label_logged_as: Angemeldet als
213 215 label_environment: Environment
214 216 label_authentication: Authentisierung
215 217 label_auth_source: Authentisierung Modus
216 218 label_auth_source_new: Neuer Authentisierung Modus
217 219 label_auth_source_plural: Authentisierung Modi
218 220 label_subproject: Vorprojekt von
219 221 label_subproject_plural: Vorprojekte
220 222 label_min_max_length: Min - Max Länge
221 223 label_list: Liste
222 224 label_date: Date
223 225 label_integer: Zahl
224 226 label_boolean: Boolesch
225 227 label_string: Text
226 228 label_text: Langer Text
227 229 label_attribute: Attribut
228 230 label_attribute_plural: Attribute
229 231 label_download: %d Herunterlade
230 232 label_download_plural: %d Herunterlade
231 233 label_no_data: Nichts anzuzeigen
232 234 label_change_status: Statuswechsel
233 235 label_history: Historie
234 236 label_attachment: Datei
235 237 label_attachment_new: Neue Datei
236 238 label_attachment_delete: Löschungakten
237 239 label_attachment_plural: Dateien
238 240 label_report: Bericht
239 241 label_report_plural: Berichte
240 242 label_news: Neuigkeit
241 243 label_news_new: Neuigkeite addieren
242 244 label_news_plural: Neuigkeiten
243 245 label_news_latest: Letzte Neuigkeiten
244 246 label_news_view_all: Alle Neuigkeiten anzeigen
245 247 label_change_log: Change log
246 248 label_settings: Konfiguration
247 249 label_overview: Übersicht
248 250 label_version: Version
249 251 label_version_new: Neue Version
250 252 label_version_plural: Versionen
251 253 label_confirmation: Bestätigung
252 254 label_export_to: Export zu
253 255 label_read: Lesen...
254 256 label_public_projects: Öffentliche Projekte
255 257 label_open_issues: geöffnet
256 258 label_open_issues_plural: geöffnet
257 259 label_closed_issues: geschlossen
258 260 label_closed_issues_plural: geschlossen
259 261 label_total: Gesamtzahl
260 262 label_permissions: Berechtigungen
261 263 label_current_status: Gegenwärtiger Status
262 264 label_new_statuses_allowed: Neue Status gewährten
263 265 label_all: alle
264 266 label_none: kein
265 267 label_next: Weiter
266 268 label_previous: Zurück
267 269 label_used_by: Benutzt von
268 270 label_details: Details...
269 271 label_add_note: Eine Anmerkung addieren
270 272 label_per_page: Pro Seite
271 273 label_calendar: Kalender
272 274 label_months_from: Monate von
273 275 label_gantt: Gantt
274 276 label_internal: Intern
275 277 label_last_changes: %d änderungen des Letzten
276 278 label_change_view_all: Alle änderungen ansehen
277 279 label_personalize_page: Diese Seite personifizieren
278 280 label_comment: Anmerkung
279 281 label_comment_plural: Anmerkungen
280 282 label_comment_add: Anmerkung addieren
281 283 label_comment_added: Anmerkung fügte hinzu
282 284 label_comment_delete: Anmerkungen löschen
283 285 label_query: Benutzerdefiniertes Frage
284 286 label_query_plural: Benutzerdefinierte Fragen
285 287 label_query_new: Neue Frage
286 288 label_filter_add: Filter addieren
287 289 label_filter_plural: Filter
288 290 label_equals: ist
289 291 label_not_equals: ist nicht
290 292 label_in_less_than: an weniger als
291 293 label_in_more_than: an mehr als
292 294 label_in: an
293 295 label_today: heute
294 296 label_less_than_ago: vor weniger als
295 297 label_more_than_ago: vor mehr als
296 298 label_ago: vor
297 299 label_contains: enthält
298 300 label_not_contains: enthält nicht
299 301 label_day_plural: Tage
300 302 label_repository: SVN Behälter
301 303 label_browse: Grasen
302 304 label_modification: %d änderung
303 305 label_modification_plural: %d änderungen
304 306 label_revision: Neuausgabe
305 307 label_revision_plural: Neuausgaben
306 308 label_added: hinzugefügt
307 309 label_modified: geändert
308 310 label_deleted: gelöscht
309 311 label_latest_revision: Neueste Neuausgabe
310 312 label_view_revisions: Die Neuausgaben ansehen
311 313 label_max_size: Maximale Größe
312 314 label_on: auf
313 315 label_sort_highest: Erste
314 316 label_sort_higher: Aufzurichten
315 317 label_sort_lower: Herabzusteigen
316 318 label_sort_lowest: Letzter
317 319 label_roadmap: Roadmap
318 320 label_search: Suche
319 321 label_result: %d Resultat
320 322 label_result_plural: %d Resultate
321 323
322 324 button_login: Einloggen
323 325 button_submit: Einreichen
324 326 button_save: Speichern
325 327 button_check_all: Alles auswählen
326 328 button_uncheck_all: Alles abwählen
327 329 button_delete: Löschen
328 330 button_create: Anlegen
329 331 button_test: Testen
330 332 button_edit: Bearbeiten
331 333 button_add: Hinzufügen
332 334 button_change: Wechseln
333 335 button_apply: Anwenden
334 336 button_clear: Zurücksetzen
335 337 button_lock: Verriegeln
336 338 button_unlock: Entriegeln
337 339 button_download: Fernzuladen
338 340 button_list: Aufzulisten
339 341 button_view: Siehe
340 342 button_move: Bewegen
341 343 button_back: Rückkehr
342 344 button_cancel: Annullieren
343 345 button_activate: Aktivieren
344 346 button_sort: Sortieren
345 347
346 348 text_select_mail_notifications: Aktionen für die Mailbenachrichtigung aktiviert werden soll.
347 349 text_regexp_info: eg. ^[A-Z0-9]+$
348 350 text_min_max_length_info: 0 heisst keine Beschränkung
349 351 text_project_destroy_confirmation: Sind sie sicher, daß sie das Projekt löschen wollen ?
350 352 text_workflow_edit: Auswahl Workflow zum Bearbeiten
351 353 text_are_you_sure: Sind sie sicher ?
352 354 text_journal_changed: geändert von %s zu %s
353 355 text_journal_set_to: gestellt zu %s
354 356 text_journal_deleted: gelöscht
355 357 text_tip_task_begin_day: Aufgabe, die an diesem Tag beginnt
356 358 text_tip_task_end_day: Aufgabe, die an diesem Tag beendet
357 359 text_tip_task_begin_end_day: Aufgabe, die an diesem Tag beginnt und beendet
358 360
359 361 default_role_manager: Manager
360 362 default_role_developper: Developer
361 363 default_role_reporter: Reporter
362 364 default_tracker_bug: Fehler
363 365 default_tracker_feature: Feature
364 366 default_tracker_support: Support
365 367 default_issue_status_new: Neu
366 368 default_issue_status_assigned: Zugewiesen
367 369 default_issue_status_resolved: Gelöst
368 370 default_issue_status_feedback: Feedback
369 371 default_issue_status_closed: Erledigt
370 372 default_issue_status_rejected: Abgewiesen
371 373 default_doc_category_user: Benutzerdokumentation
372 374 default_doc_category_tech: Technische Dokumentation
373 375 default_priority_low: Niedrig
374 376 default_priority_normal: Normal
375 377 default_priority_high: Hoch
376 378 default_priority_urgent: Dringend
377 379 default_priority_immediate: Sofort
378 380
379 381 enumeration_issue_priorities: Issue-Prioritäten
380 382 enumeration_doc_categories: Dokumentenkategorien
@@ -1,380 +1,382
1 1 _gloc_rule_default: '|n| n==1 ? "" : "_plural" '
2 2
3 3 actionview_datehelper_select_day_prefix:
4 4 actionview_datehelper_select_month_names: January,February,March,April,May,June,July,August,September,October,November,December
5 5 actionview_datehelper_select_month_names_abbr: Jan,Feb,Mar,Apr,May,Jun,Jul,Aug,Sep,Oct,Nov,Dec
6 6 actionview_datehelper_select_month_prefix:
7 7 actionview_datehelper_select_year_prefix:
8 8 actionview_datehelper_time_in_words_day: 1 day
9 9 actionview_datehelper_time_in_words_day_plural: %d days
10 10 actionview_datehelper_time_in_words_hour_about: about an hour
11 11 actionview_datehelper_time_in_words_hour_about_plural: about %d hours
12 12 actionview_datehelper_time_in_words_hour_about_single: about an hour
13 13 actionview_datehelper_time_in_words_minute: 1 minute
14 14 actionview_datehelper_time_in_words_minute_half: half a minute
15 15 actionview_datehelper_time_in_words_minute_less_than: less than a minute
16 16 actionview_datehelper_time_in_words_minute_plural: %d minutes
17 17 actionview_datehelper_time_in_words_minute_single: 1 minute
18 18 actionview_datehelper_time_in_words_second_less_than: less than a second
19 19 actionview_datehelper_time_in_words_second_less_than_plural: less than %d seconds
20 20 actionview_instancetag_blank_option: Please select
21 21
22 22 activerecord_error_inclusion: is not included in the list
23 23 activerecord_error_exclusion: is reserved
24 24 activerecord_error_invalid: is invalid
25 25 activerecord_error_confirmation: doesn't match confirmation
26 26 activerecord_error_accepted: must be accepted
27 27 activerecord_error_empty: can't be empty
28 28 activerecord_error_blank: can't be blank
29 29 activerecord_error_too_long: is too long
30 30 activerecord_error_too_short: is too short
31 31 activerecord_error_wrong_length: is the wrong length
32 32 activerecord_error_taken: has already been taken
33 33 activerecord_error_not_a_number: is not a number
34 34 activerecord_error_not_a_date: is not a valid date
35 35 activerecord_error_greater_than_start_date: must be greater than start date
36 36
37 37 general_fmt_age: %d yr
38 38 general_fmt_age_plural: %d yrs
39 39 general_fmt_date: %%m/%%d/%%Y
40 40 general_fmt_datetime: %%m/%%d/%%Y %%I:%%M %%p
41 41 general_fmt_datetime_short: %%b %%d, %%I:%%M %%p
42 42 general_fmt_time: %%I:%%M %%p
43 43 general_text_No: 'No'
44 44 general_text_Yes: 'Yes'
45 45 general_text_no: 'no'
46 46 general_text_yes: 'yes'
47 47 general_lang_en: 'English'
48 48 general_csv_separator: ','
49 general_csv_encoding: ISO-8859-1
50 general_pdf_encoding: ISO-8859-1
49 51 general_day_names: Monday,Tuesday,Wednesday,Thursday,Friday,Saturday,Sunday
50 52
51 53 notice_account_updated: Account was successfully updated.
52 54 notice_account_invalid_creditentials: Invalid user or password
53 55 notice_account_password_updated: Password was successfully updated.
54 56 notice_account_wrong_password: Wrong password
55 57 notice_account_register_done: Account was successfully created.
56 58 notice_account_unknown_email: Unknown user.
57 59 notice_can_t_change_password: This account uses an external authentication source. Impossible to change the password.
58 60 notice_account_lost_email_sent: An email with instructions to choose a new password has been sent to you.
59 61 notice_account_activated: Your account has been activated. You can now log in.
60 62 notice_successful_create: Successful creation.
61 63 notice_successful_update: Successful update.
62 64 notice_successful_delete: Successful deletion.
63 65 notice_successful_connection: Successful connection.
64 66 notice_file_not_found: The page you were trying to access doesn't exist or has been removed.
65 67 notice_locking_conflict: Data have been updated by another user.
66 68 notice_scm_error: Entry and/or revision doesn't exist in the repository.
67 69
68 70 mail_subject_lost_password: Your redMine password
69 71 mail_subject_register: redMine account activation
70 72
71 73 gui_validation_error: 1 error
72 74 gui_validation_error_plural: %d errors
73 75
74 76 field_name: Name
75 77 field_description: Description
76 78 field_summary: Summary
77 79 field_is_required: Required
78 80 field_firstname: Firstname
79 81 field_lastname: Lastname
80 82 field_mail: Email
81 83 field_filename: File
82 84 field_filesize: Size
83 85 field_downloads: Downloads
84 86 field_author: Author
85 87 field_created_on: Created
86 88 field_updated_on: Updated
87 89 field_field_format: Format
88 90 field_is_for_all: For all projects
89 91 field_possible_values: Possible values
90 92 field_regexp: Regular expression
91 93 field_min_length: Minimum length
92 94 field_max_length: Maximum length
93 95 field_value: Value
94 96 field_category: Category
95 97 field_title: Title
96 98 field_project: Project
97 99 field_issue: Issue
98 100 field_status: Status
99 101 field_notes: Notes
100 102 field_is_closed: Issue closed
101 103 field_is_default: Default status
102 104 field_html_color: Color
103 105 field_tracker: Tracker
104 106 field_subject: Subject
105 107 field_due_date: Due date
106 108 field_assigned_to: Assigned to
107 109 field_priority: Priority
108 110 field_fixed_version: Fixed version
109 111 field_user: User
110 112 field_role: Role
111 113 field_homepage: Homepage
112 114 field_is_public: Public
113 115 field_parent: Subproject of
114 116 field_is_in_chlog: Issues displayed in changelog
115 117 field_login: Login
116 118 field_mail_notification: Mail notifications
117 119 field_admin: Administrator
118 120 field_locked: Locked
119 121 field_last_login_on: Last connection
120 122 field_language: Language
121 123 field_effective_date: Date
122 124 field_password: Password
123 125 field_new_password: New password
124 126 field_password_confirmation: Confirmation
125 127 field_version: Version
126 128 field_type: Type
127 129 field_host: Host
128 130 field_port: Port
129 131 field_account: Account
130 132 field_base_dn: Base DN
131 133 field_attr_login: Login attribute
132 134 field_attr_firstname: Firstname attribute
133 135 field_attr_lastname: Lastname attribute
134 136 field_attr_mail: Email attribute
135 137 field_onthefly: On-the-fly user creation
136 138 field_start_date: Start
137 139 field_done_ratio: %% Done
138 140 field_auth_source: Authentication mode
139 141 field_hide_mail: Hide my email address
140 142 field_comment: Comment
141 143 field_url: URL
142 144
143 145 setting_app_title: Application title
144 146 setting_app_subtitle: Application subtitle
145 147 setting_welcome_text: Welcome text
146 148 setting_default_language: Default language
147 149 setting_login_required: Authent. required
148 150 setting_self_registration: Self-registration enabled
149 151 setting_attachment_max_size: Attachment max. size
150 152 setting_issues_export_limit: Issues export limit
151 153 setting_mail_from: Emission mail address
152 154 setting_host_name: Host name
153 155 setting_text_formatting: Text formatting
154 156
155 157 label_user: User
156 158 label_user_plural: Users
157 159 label_user_new: New user
158 160 label_project: Project
159 161 label_project_new: New project
160 162 label_project_plural: Projects
161 163 label_project_latest: Latest projects
162 164 label_issue: Issue
163 165 label_issue_new: New issue
164 166 label_issue_plural: Issues
165 167 label_issue_view_all: View all issues
166 168 label_document: Document
167 169 label_document_new: New document
168 170 label_document_plural: Documents
169 171 label_role: Role
170 172 label_role_plural: Roles
171 173 label_role_new: New role
172 174 label_role_and_permissions: Roles and permissions
173 175 label_member: Member
174 176 label_member_new: New member
175 177 label_member_plural: Members
176 178 label_tracker: Tracker
177 179 label_tracker_plural: Trackers
178 180 label_tracker_new: New tracker
179 181 label_workflow: Workflow
180 182 label_issue_status: Issue status
181 183 label_issue_status_plural: Issue statuses
182 184 label_issue_status_new: New status
183 185 label_issue_category: Issue category
184 186 label_issue_category_plural: Issue categories
185 187 label_issue_category_new: New category
186 188 label_custom_field: Custom field
187 189 label_custom_field_plural: Custom fields
188 190 label_custom_field_new: New custom field
189 191 label_enumerations: Enumerations
190 192 label_enumeration_new: New value
191 193 label_information: Information
192 194 label_information_plural: Information
193 195 label_please_login: Please login
194 196 label_register: Register
195 197 label_password_lost: Lost password
196 198 label_home: Home
197 199 label_my_page: My page
198 200 label_my_account: My account
199 201 label_my_projects: My projects
200 202 label_administration: Administration
201 203 label_login: Login
202 204 label_logout: Logout
203 205 label_help: Help
204 206 label_reported_issues: Reported issues
205 207 label_assigned_to_me_issues: Issues assigned to me
206 208 label_last_login: Last connection
207 209 label_last_updates: Last updated
208 210 label_last_updates_plural: %d last updated
209 211 label_registered_on: Registered on
210 212 label_activity: Activity
211 213 label_new: New
212 214 label_logged_as: Logged as
213 215 label_environment: Environment
214 216 label_authentication: Authentication
215 217 label_auth_source: Authentication mode
216 218 label_auth_source_new: New authentication mode
217 219 label_auth_source_plural: Authentication modes
218 220 label_subproject: Subproject
219 221 label_subproject_plural: Subprojects
220 222 label_min_max_length: Min - Max length
221 223 label_list: List
222 224 label_date: Date
223 225 label_integer: Integer
224 226 label_boolean: Boolean
225 227 label_string: Text
226 228 label_text: Long text
227 229 label_attribute: Attribute
228 230 label_attribute_plural: Attributes
229 231 label_download: %d Download
230 232 label_download_plural: %d Downloads
231 233 label_no_data: No data to display
232 234 label_change_status: Change status
233 235 label_history: History
234 236 label_attachment: File
235 237 label_attachment_new: New file
236 238 label_attachment_delete: Delete file
237 239 label_attachment_plural: Files
238 240 label_report: Report
239 241 label_report_plural: Reports
240 242 label_news: News
241 243 label_news_new: Add news
242 244 label_news_plural: News
243 245 label_news_latest: Latest news
244 246 label_news_view_all: View all news
245 247 label_change_log: Change log
246 248 label_settings: Settings
247 249 label_overview: Overview
248 250 label_version: Version
249 251 label_version_new: New version
250 252 label_version_plural: Versions
251 253 label_confirmation: Confirmation
252 254 label_export_to: Export to
253 255 label_read: Read...
254 256 label_public_projects: Public projects
255 257 label_open_issues: open
256 258 label_open_issues_plural: open
257 259 label_closed_issues: closed
258 260 label_closed_issues_plural: closed
259 261 label_total: Total
260 262 label_permissions: Permissions
261 263 label_current_status: Current status
262 264 label_new_statuses_allowed: New statuses allowed
263 265 label_all: all
264 266 label_none: none
265 267 label_next: Next
266 268 label_previous: Previous
267 269 label_used_by: Used by
268 270 label_details: Details...
269 271 label_add_note: Add a note
270 272 label_per_page: Per page
271 273 label_calendar: Calendar
272 274 label_months_from: months from
273 275 label_gantt: Gantt
274 276 label_internal: Internal
275 277 label_last_changes: last %d changes
276 278 label_change_view_all: View all changes
277 279 label_personalize_page: Personalize this page
278 280 label_comment: Comment
279 281 label_comment_plural: Comments
280 282 label_comment_add: Add a comment
281 283 label_comment_added: Comment added
282 284 label_comment_delete: Delete comments
283 285 label_query: Custom query
284 286 label_query_plural: Custom queries
285 287 label_query_new: New query
286 288 label_filter_add: Add filter
287 289 label_filter_plural: Filters
288 290 label_equals: is
289 291 label_not_equals: is not
290 292 label_in_less_than: in less than
291 293 label_in_more_than: in more than
292 294 label_in: in
293 295 label_today: today
294 296 label_less_than_ago: less than days ago
295 297 label_more_than_ago: more than days ago
296 298 label_ago: days ago
297 299 label_contains: contains
298 300 label_not_contains: doesn't contain
299 301 label_day_plural: days
300 302 label_repository: SVN Repository
301 303 label_browse: Browse
302 304 label_modification: %d change
303 305 label_modification_plural: %d changes
304 306 label_revision: Revision
305 307 label_revision_plural: Revisions
306 308 label_added: added
307 309 label_modified: modified
308 310 label_deleted: deleted
309 311 label_latest_revision: Latest revision
310 312 label_view_revisions: View revisions
311 313 label_max_size: Maximum size
312 314 label_on: 'on'
313 315 label_sort_highest: Move to top
314 316 label_sort_higher: Move up
315 317 label_sort_lower: Move down
316 318 label_sort_lowest: Move to bottom
317 319 label_roadmap: Roadmap
318 320 label_search: Search
319 321 label_result: %d result
320 322 label_result_plural: %d results
321 323
322 324 button_login: Login
323 325 button_submit: Submit
324 326 button_save: Save
325 327 button_check_all: Check all
326 328 button_uncheck_all: Uncheck all
327 329 button_delete: Delete
328 330 button_create: Create
329 331 button_test: Test
330 332 button_edit: Edit
331 333 button_add: Add
332 334 button_change: Change
333 335 button_apply: Apply
334 336 button_clear: Clear
335 337 button_lock: Lock
336 338 button_unlock: Unlock
337 339 button_download: Download
338 340 button_list: List
339 341 button_view: View
340 342 button_move: Move
341 343 button_back: Back
342 344 button_cancel: Cancel
343 345 button_activate: Activate
344 346 button_sort: Sort
345 347
346 348 text_select_mail_notifications: Select actions for which mail notifications should be sent.
347 349 text_regexp_info: eg. ^[A-Z0-9]+$
348 350 text_min_max_length_info: 0 means no restriction
349 351 text_project_destroy_confirmation: Are you sure you want to delete this project and all related data ?
350 352 text_workflow_edit: Select a role and a tracker to edit the workflow
351 353 text_are_you_sure: Are you sure ?
352 354 text_journal_changed: changed from %s to %s
353 355 text_journal_set_to: set to %s
354 356 text_journal_deleted: deleted
355 357 text_tip_task_begin_day: task beginning this day
356 358 text_tip_task_end_day: task ending this day
357 359 text_tip_task_begin_end_day: task beginning and ending this day
358 360
359 361 default_role_manager: Manager
360 362 default_role_developper: Developer
361 363 default_role_reporter: Reporter
362 364 default_tracker_bug: Bug
363 365 default_tracker_feature: Feature
364 366 default_tracker_support: Support
365 367 default_issue_status_new: New
366 368 default_issue_status_assigned: Assigned
367 369 default_issue_status_resolved: Resolved
368 370 default_issue_status_feedback: Feedback
369 371 default_issue_status_closed: Closed
370 372 default_issue_status_rejected: Rejected
371 373 default_doc_category_user: User documentation
372 374 default_doc_category_tech: Technical documentation
373 375 default_priority_low: Low
374 376 default_priority_normal: Normal
375 377 default_priority_high: High
376 378 default_priority_urgent: Urgent
377 379 default_priority_immediate: Immediate
378 380
379 381 enumeration_issue_priorities: Issue priorities
380 382 enumeration_doc_categories: Document categories
@@ -1,380 +1,382
1 1 _gloc_rule_default: '|n| n==1 ? "" : "_plural" '
2 2
3 3 actionview_datehelper_select_day_prefix:
4 4 actionview_datehelper_select_month_names: Enero,Febrero,Marzo,Abril,Mayo,Junio,Julio,Agosto,Septiembre,Octubre,Noviembre,Diciembre
5 5 actionview_datehelper_select_month_names_abbr: Ene,Feb,Mar,Abr,Mayo,Jun,Jul,Ago,Sep,Oct,Nov,Dic
6 6 actionview_datehelper_select_month_prefix:
7 7 actionview_datehelper_select_year_prefix:
8 8 actionview_datehelper_time_in_words_day: 1 day
9 9 actionview_datehelper_time_in_words_day_plural: %d days
10 10 actionview_datehelper_time_in_words_hour_about: about an hour
11 11 actionview_datehelper_time_in_words_hour_about_plural: about %d hours
12 12 actionview_datehelper_time_in_words_hour_about_single: about an hour
13 13 actionview_datehelper_time_in_words_minute: 1 minute
14 14 actionview_datehelper_time_in_words_minute_half: half a minute
15 15 actionview_datehelper_time_in_words_minute_less_than: less than a minute
16 16 actionview_datehelper_time_in_words_minute_plural: %d minutes
17 17 actionview_datehelper_time_in_words_minute_single: 1 minute
18 18 actionview_datehelper_time_in_words_second_less_than: less than a second
19 19 actionview_datehelper_time_in_words_second_less_than_plural: less than %d seconds
20 20 actionview_instancetag_blank_option: Please select
21 21
22 22 activerecord_error_inclusion: is not included in the list
23 23 activerecord_error_exclusion: is reserved
24 24 activerecord_error_invalid: is invalid
25 25 activerecord_error_confirmation: doesn't match confirmation
26 26 activerecord_error_accepted: must be accepted
27 27 activerecord_error_empty: can't be empty
28 28 activerecord_error_blank: can't be blank
29 29 activerecord_error_too_long: is too long
30 30 activerecord_error_too_short: is too short
31 31 activerecord_error_wrong_length: is the wrong length
32 32 activerecord_error_taken: has already been taken
33 33 activerecord_error_not_a_number: is not a number
34 34 activerecord_error_not_a_date: no es una fecha válida
35 35 activerecord_error_greater_than_start_date: debe ser la fecha mayor que del comienzo
36 36
37 37 general_fmt_age: %d año
38 38 general_fmt_age_plural: %d años
39 39 general_fmt_date: %%d/%%m/%%Y
40 40 general_fmt_datetime: %%d/%%m/%%Y %%H:%%M
41 41 general_fmt_datetime_short: %%d/%%m %%H:%%M
42 42 general_fmt_time: %%H:%%M
43 43 general_text_No: 'No'
44 44 general_text_Yes: 'Sí'
45 45 general_text_no: 'no'
46 46 general_text_yes: 'sí'
47 47 general_lang_es: 'Español'
48 48 general_csv_separator: ';'
49 general_csv_encoding: ISO-8859-1
50 general_pdf_encoding: ISO-8859-1
49 51 general_day_names: Lunes,Martes,Miércoles,Jueves,Viernes,Sábado,Domingo
50 52
51 53 notice_account_updated: Account was successfully updated.
52 54 notice_account_invalid_creditentials: Invalid user or password
53 55 notice_account_password_updated: Password was successfully updated.
54 56 notice_account_wrong_password: Wrong password
55 57 notice_account_register_done: Account was successfully created.
56 58 notice_account_unknown_email: Unknown user.
57 59 notice_can_t_change_password: This account uses an external authentication source. Impossible to change the password.
58 60 notice_account_lost_email_sent: An email with instructions to choose a new password has been sent to you.
59 61 notice_account_activated: Your account has been activated. You can now log in.
60 62 notice_successful_create: Successful creation.
61 63 notice_successful_update: Successful update.
62 64 notice_successful_delete: Successful deletion.
63 65 notice_successful_connection: Successful connection.
64 66 notice_file_not_found: La página que intentabas tener acceso no existe ni se ha quitado.
65 67 notice_locking_conflict: Data have been updated by another user.
66 68 notice_scm_error: La entrada y/o la revisión no existe en el depósito.
67 69
68 70 mail_subject_lost_password: Tu contraseña del redMine
69 71 mail_subject_register: Activación de la cuenta del redMine
70 72
71 73 gui_validation_error: 1 error
72 74 gui_validation_error_plural: %d errores
73 75
74 76 field_name: Nombre
75 77 field_description: Descripción
76 78 field_summary: Resumen
77 79 field_is_required: Obligatorio
78 80 field_firstname: Nombre
79 81 field_lastname: Apellido
80 82 field_mail: Email
81 83 field_filename: Fichero
82 84 field_filesize: Tamaño
83 85 field_downloads: Telecargas
84 86 field_author: Autor
85 87 field_created_on: Creado
86 88 field_updated_on: Actualizado
87 89 field_field_format: Formato
88 90 field_is_for_all: Para todos los proyectos
89 91 field_possible_values: Valores posibles
90 92 field_regexp: Expresión regular
91 93 field_min_length: Longitud mínima
92 94 field_max_length: Longitud máxima
93 95 field_value: Valor
94 96 field_category: Categoría
95 97 field_title: Título
96 98 field_project: Proyecto
97 99 field_issue: Petición
98 100 field_status: Estatuto
99 101 field_notes: Notas
100 102 field_is_closed: Petición resuelta
101 103 field_is_default: Estatuto por defecto
102 104 field_html_color: Color
103 105 field_tracker: Tracker
104 106 field_subject: Tema
105 107 field_due_date: Fecha debida
106 108 field_assigned_to: Asignado a
107 109 field_priority: Prioridad
108 110 field_fixed_version: Versión corregida
109 111 field_user: Usuario
110 112 field_role: Papel
111 113 field_homepage: Sitio web
112 114 field_is_public: Público
113 115 field_parent: Proyecto secundario de
114 116 field_is_in_chlog: Consultar las peticiones en el histórico
115 117 field_login: Identificador
116 118 field_mail_notification: Notificación por mail
117 119 field_admin: Administrador
118 120 field_locked: Cerrado
119 121 field_last_login_on: Última conexión
120 122 field_language: Lengua
121 123 field_effective_date: Fecha
122 124 field_password: Contraseña
123 125 field_new_password: Nueva contraseña
124 126 field_password_confirmation: Confirmación
125 127 field_version: Versión
126 128 field_type: Tipo
127 129 field_host: Anfitrión
128 130 field_port: Puerto
129 131 field_account: Cuenta
130 132 field_base_dn: Base DN
131 133 field_attr_login: Cualidad del identificador
132 134 field_attr_firstname: Cualidad del nombre
133 135 field_attr_lastname: Cualidad del apellido
134 136 field_attr_mail: Cualidad del Email
135 137 field_onthefly: Creación del usuario On-the-fly
136 138 field_start_date: Comienzo
137 139 field_done_ratio: %% Realizado
138 140 field_auth_source: Modo de la autentificación
139 141 field_hide_mail: Ocultar mi email address
140 142 field_comment: Comentario
141 143 field_url: URL
142 144
143 145 setting_app_title: Título del aplicación
144 146 setting_app_subtitle: Subtítulo del aplicación
145 147 setting_welcome_text: Texto acogida
146 148 setting_default_language: Lengua del defecto
147 149 setting_login_required: Autentif. requerida
148 150 setting_self_registration: Registro permitido
149 151 setting_attachment_max_size: Tamaño máximo del fichero
150 152 setting_issues_export_limit: Issues export limit
151 153 setting_mail_from: Email de la emisión
152 154 setting_host_name: Nombre de anfitrión
153 155 setting_text_formatting: Formato de texto
154 156
155 157 label_user: Usuario
156 158 label_user_plural: Usuarios
157 159 label_user_new: Nuevo usuario
158 160 label_project: Proyecto
159 161 label_project_new: Nuevo proyecto
160 162 label_project_plural: Proyectos
161 163 label_project_latest: Los proyectos más últimos
162 164 label_issue: Petición
163 165 label_issue_new: Nueva petición
164 166 label_issue_plural: Peticiones
165 167 label_issue_view_all: Ver todas las peticiones
166 168 label_document: Documento
167 169 label_document_new: Nuevo documento
168 170 label_document_plural: Documentos
169 171 label_role: Papel
170 172 label_role_plural: Papeles
171 173 label_role_new: Nuevo papel
172 174 label_role_and_permissions: Papeles y permisos
173 175 label_member: Miembro
174 176 label_member_new: Nuevo miembro
175 177 label_member_plural: Miembros
176 178 label_tracker: Tracker
177 179 label_tracker_plural: Trackers
178 180 label_tracker_new: Nuevo tracker
179 181 label_workflow: Workflow
180 182 label_issue_status: Estatuto de petición
181 183 label_issue_status_plural: Estatutos de las peticiones
182 184 label_issue_status_new: Nuevo estatuto
183 185 label_issue_category: Categoría de las peticiones
184 186 label_issue_category_plural: Categorías de las peticiones
185 187 label_issue_category_new: Nueva categoría
186 188 label_custom_field: Campo personalizado
187 189 label_custom_field_plural: Campos personalizados
188 190 label_custom_field_new: Nuevo campo personalizado
189 191 label_enumerations: Listas de valores
190 192 label_enumeration_new: Nuevo valor
191 193 label_information: Informacion
192 194 label_information_plural: Informaciones
193 195 label_please_login: Conexión
194 196 label_register: Registrar
195 197 label_password_lost: ¿Olvidaste la contraseña?
196 198 label_home: Acogida
197 199 label_my_page: Mi página
198 200 label_my_account: Mi cuenta
199 201 label_my_projects: Mis proyectos
200 202 label_administration: Administración
201 203 label_login: Conexión
202 204 label_logout: Desconexión
203 205 label_help: Ayuda
204 206 label_reported_issues: Peticiones registradas
205 207 label_assigned_to_me_issues: Peticiones que me están asignadas
206 208 label_last_login: Última conexión
207 209 label_last_updates: Actualizado
208 210 label_last_updates_plural: %d Actualizados
209 211 label_registered_on: Inscrito el
210 212 label_activity: Actividad
211 213 label_new: Nuevo
212 214 label_logged_as: Conectado como
213 215 label_environment: Environment
214 216 label_authentication: Autentificación
215 217 label_auth_source: Modo de la autentificación
216 218 label_auth_source_new: Nuevo modo de la autentificación
217 219 label_auth_source_plural: Modos de la autentificación
218 220 label_subproject: Proyecto secundario
219 221 label_subproject_plural: Proyectos secundarios
220 222 label_min_max_length: Longitud mín - máx
221 223 label_list: Lista
222 224 label_date: Fecha
223 225 label_integer: Número
224 226 label_boolean: Boleano
225 227 label_string: Texto
226 228 label_text: Texto largo
227 229 label_attribute: Cualidad
228 230 label_attribute_plural: Cualidades
229 231 label_download: %d Telecarga
230 232 label_download_plural: %d Telecargas
231 233 label_no_data: Ningunos datos a exhibir
232 234 label_change_status: Cambiar el estatuto
233 235 label_history: Histórico
234 236 label_attachment: Fichero
235 237 label_attachment_new: Nuevo fichero
236 238 label_attachment_delete: Suprimir el fichero
237 239 label_attachment_plural: Ficheros
238 240 label_report: Informe
239 241 label_report_plural: Informes
240 242 label_news: Noticia
241 243 label_news_new: Nueva noticia
242 244 label_news_plural: Noticias
243 245 label_news_latest: Últimas noticias
244 246 label_news_view_all: Ver todas las noticias
245 247 label_change_log: Cambios
246 248 label_settings: Configuración
247 249 label_overview: Vistazo
248 250 label_version: Versión
249 251 label_version_new: Nueva versión
250 252 label_version_plural: Versiónes
251 253 label_confirmation: Confirmación
252 254 label_export_to: Exportar a
253 255 label_read: Leer...
254 256 label_public_projects: Proyectos publicos
255 257 label_open_issues: abierta
256 258 label_open_issues_plural: abiertas
257 259 label_closed_issues: cerrada
258 260 label_closed_issues_plural: cerradas
259 261 label_total: Total
260 262 label_permissions: Permisos
261 263 label_current_status: Estado actual
262 264 label_new_statuses_allowed: Nuevos estatutos autorizados
263 265 label_all: todos
264 266 label_none: ninguno
265 267 label_next: Próximo
266 268 label_previous: Precedente
267 269 label_used_by: Utilizado por
268 270 label_details: Detalles...
269 271 label_add_note: Agregar una nota
270 272 label_per_page: Por la página
271 273 label_calendar: Calendario
272 274 label_months_from: meses de
273 275 label_gantt: Gantt
274 276 label_internal: Interno
275 277 label_last_changes: %d cambios del último
276 278 label_change_view_all: Ver todos los cambios
277 279 label_personalize_page: Personalizar esta página
278 280 label_comment: Comentario
279 281 label_comment_plural: Comentarios
280 282 label_comment_add: Agregar un comentario
281 283 label_comment_added: Comentario agregó
282 284 label_comment_delete: Suprimir comentarios
283 285 label_query: Pregunta personalizada
284 286 label_query_plural: Preguntas personalizadas
285 287 label_query_new: Nueva preguntas
286 288 label_filter_add: Agregar el filtro
287 289 label_filter_plural: Filtros
288 290 label_equals: igual
289 291 label_not_equals: no igual
290 292 label_in_less_than: en menos que
291 293 label_in_more_than: en más que
292 294 label_in: en
293 295 label_today: hoy
294 296 label_less_than_ago: hace menos de
295 297 label_more_than_ago: hace más de
296 298 label_ago: hace
297 299 label_contains: contiene
298 300 label_not_contains: no contiene
299 301 label_day_plural: días
300 302 label_repository: Depósito SVN
301 303 label_browse: Hojear
302 304 label_modification: %d modificación
303 305 label_modification_plural: %d modificaciones
304 306 label_revision: Revisión
305 307 label_revision_plural: Revisiones
306 308 label_added: agregado
307 309 label_modified: modificado
308 310 label_deleted: suprimido
309 311 label_latest_revision: La revisión más última
310 312 label_view_revisions: Ver las revisiones
311 313 label_max_size: Tamaño máximo
312 314 label_on: en
313 315 label_sort_highest: Primero
314 316 label_sort_higher: Subir
315 317 label_sort_lower: Bajar
316 318 label_sort_lowest: Último
317 319 label_roadmap: Roadmap
318 320 label_search: Búsqueda
319 321 label_result: %d resultado
320 322 label_result_plural: %d resultados
321 323
322 324 button_login: Conexión
323 325 button_submit: Someter
324 326 button_save: Validar
325 327 button_check_all: Seleccionar todo
326 328 button_uncheck_all: No seleccionar nada
327 329 button_delete: Suprimir
328 330 button_create: Crear
329 331 button_test: Testar
330 332 button_edit: Modificar
331 333 button_add: Añadir
332 334 button_change: Cambiar
333 335 button_apply: Aplicar
334 336 button_clear: Anular
335 337 button_lock: Bloquear
336 338 button_unlock: Desbloquear
337 339 button_download: Telecargar
338 340 button_list: Listar
339 341 button_view: Ver
340 342 button_move: Mover
341 343 button_back: Atrás
342 344 button_cancel: Cancelar
343 345 button_activate: Activar
344 346 button_sort: Clasificar
345 347
346 348 text_select_mail_notifications: Seleccionar las actividades que necesitan la activación de la notificación por mail.
347 349 text_regexp_info: eg. ^[A-Z0-9]+$
348 350 text_min_max_length_info: 0 para ninguna restricción
349 351 text_project_destroy_confirmation: ¿ Estás seguro de querer eliminar el proyecto ?
350 352 text_workflow_edit: Seleccionar un workflow para actualizar
351 353 text_are_you_sure: ¿ Estás seguro ?
352 354 text_journal_changed: cambiado de %s a %s
353 355 text_journal_set_to: fijado a %s
354 356 text_journal_deleted: suprimido
355 357 text_tip_task_begin_day: tarea que comienza este día
356 358 text_tip_task_end_day: tarea que termina este día
357 359 text_tip_task_begin_end_day: tarea que comienza y termina este día
358 360
359 361 default_role_manager: Manager
360 362 default_role_developper: Desarrollador
361 363 default_role_reporter: Informador
362 364 default_tracker_bug: Anomalía
363 365 default_tracker_feature: Evolución
364 366 default_tracker_support: Asistencia
365 367 default_issue_status_new: Nuevo
366 368 default_issue_status_assigned: Asignada
367 369 default_issue_status_resolved: Resuelta
368 370 default_issue_status_feedback: Comentario
369 371 default_issue_status_closed: Cerrada
370 372 default_issue_status_rejected: Rechazada
371 373 default_doc_category_user: Documentación del usuario
372 374 default_doc_category_tech: Documentación tecnica
373 375 default_priority_low: Bajo
374 376 default_priority_normal: Normal
375 377 default_priority_high: Alto
376 378 default_priority_urgent: Urgente
377 379 default_priority_immediate: Ahora
378 380
379 381 enumeration_issue_priorities: Prioridad de las peticiones
380 382 enumeration_doc_categories: Categorías del documento
@@ -1,380 +1,382
1 1 _gloc_rule_default: '|n| n<=1 ? "" : "_plural" '
2 2
3 3 actionview_datehelper_select_day_prefix:
4 4 actionview_datehelper_select_month_names: Janvier,Février,Mars,Avril,Mai,Juin,Juillet,Août,Septembre,Octobre,Novembre,Décembre
5 5 actionview_datehelper_select_month_names_abbr: Jan,Fév,Mars,Avril,Mai,Juin,Juil,Août,Sept,Oct,Nov,Déc
6 6 actionview_datehelper_select_month_prefix:
7 7 actionview_datehelper_select_year_prefix:
8 8 actionview_datehelper_time_in_words_day: 1 jour
9 9 actionview_datehelper_time_in_words_day_plural: %d jours
10 10 actionview_datehelper_time_in_words_hour_about: about an hour
11 11 actionview_datehelper_time_in_words_hour_about_plural: about %d hours
12 12 actionview_datehelper_time_in_words_hour_about_single: about an hour
13 13 actionview_datehelper_time_in_words_minute: 1 minute
14 14 actionview_datehelper_time_in_words_minute_half: 30 secondes
15 15 actionview_datehelper_time_in_words_minute_less_than: moins d'une minute
16 16 actionview_datehelper_time_in_words_minute_plural: %d minutes
17 17 actionview_datehelper_time_in_words_minute_single: 1 minute
18 18 actionview_datehelper_time_in_words_second_less_than: moins d'une seconde
19 19 actionview_datehelper_time_in_words_second_less_than_plural: moins de %d secondes
20 20 actionview_instancetag_blank_option: Choisir
21 21
22 22 activerecord_error_inclusion: n'est pas inclus dans la liste
23 23 activerecord_error_exclusion: est reservé
24 24 activerecord_error_invalid: est invalide
25 25 activerecord_error_confirmation: ne correspond pas à la confirmation
26 26 activerecord_error_accepted: doit être accepté
27 27 activerecord_error_empty: doit être renseigné
28 28 activerecord_error_blank: doit être renseigné
29 29 activerecord_error_too_long: est trop long
30 30 activerecord_error_too_short: est trop court
31 31 activerecord_error_wrong_length: n'est pas de la bonne longueur
32 32 activerecord_error_taken: est déjà utilisé
33 33 activerecord_error_not_a_number: n'est pas un nombre
34 34 activerecord_error_not_a_date: n'est pas une date valide
35 35 activerecord_error_greater_than_start_date: doit être postérieur à la date de début
36 36
37 37 general_fmt_age: %d an
38 38 general_fmt_age_plural: %d ans
39 39 general_fmt_date: %%d/%%m/%%Y
40 40 general_fmt_datetime: %%d/%%m/%%Y %%H:%%M
41 41 general_fmt_datetime_short: %%d/%%m %%H:%%M
42 42 general_fmt_time: %%H:%%M
43 43 general_text_No: 'Non'
44 44 general_text_Yes: 'Oui'
45 45 general_text_no: 'non'
46 46 general_text_yes: 'oui'
47 47 general_lang_fr: 'Français'
48 48 general_csv_separator: ';'
49 general_csv_encoding: ISO-8859-1
50 general_pdf_encoding: ISO-8859-1
49 51 general_day_names: Lundi,Mardi,Mercredi,Jeudi,Vendredi,Samedi,Dimanche
50 52
51 53 notice_account_updated: Le compte a été mis à jour avec succès.
52 54 notice_account_invalid_creditentials: Identifiant ou mot de passe invalide.
53 55 notice_account_password_updated: Mot de passe mis à jour avec succès.
54 56 notice_account_wrong_password: Mot de passe incorrect
55 57 notice_account_register_done: Un message contenant les instructions pour activer votre compte vous a été envoyé.
56 58 notice_account_unknown_email: Aucun compte ne correspond à cette adresse.
57 59 notice_can_t_change_password: Ce compte utilise une authentification externe. Impossible de changer le mot de passe.
58 60 notice_account_lost_email_sent: Un message contenant les instructions pour choisir un nouveau mot de passe vous a été envoyé.
59 61 notice_account_activated: Votre compte a été activé. Vous pouvez à présent vous connecter.
60 62 notice_successful_create: Création effectuée avec succès.
61 63 notice_successful_update: Mise à jour effectuée avec succès.
62 64 notice_successful_delete: Suppression effectuée avec succès.
63 65 notice_successful_connection: Connection réussie.
64 66 notice_file_not_found: La page à laquelle vous souhaitez accéder n'existe pas ou a été supprimée.
65 67 notice_locking_conflict: Les données ont été mises à jour par un autre utilisateur. Mise à jour impossible.
66 68 notice_scm_error: L'entrée et/ou la révision demandée n'existe pas dans le dépôt.
67 69
68 70 mail_subject_lost_password: Votre mot de passe redMine
69 71 mail_subject_register: Activation de votre compte redMine
70 72
71 73 gui_validation_error: 1 erreur
72 74 gui_validation_error_plural: %d erreurs
73 75
74 76 field_name: Nom
75 77 field_description: Description
76 78 field_summary: Résumé
77 79 field_is_required: Obligatoire
78 80 field_firstname: Prénom
79 81 field_lastname: Nom
80 82 field_mail: Email
81 83 field_filename: Fichier
82 84 field_filesize: Taille
83 85 field_downloads: Téléchargements
84 86 field_author: Auteur
85 87 field_created_on: Créé
86 88 field_updated_on: Mis à jour
87 89 field_field_format: Format
88 90 field_is_for_all: Pour tous les projets
89 91 field_possible_values: Valeurs possibles
90 92 field_regexp: Expression régulière
91 93 field_min_length: Longueur minimum
92 94 field_max_length: Longueur maximum
93 95 field_value: Valeur
94 96 field_category: Catégorie
95 97 field_title: Titre
96 98 field_project: Projet
97 99 field_issue: Demande
98 100 field_status: Statut
99 101 field_notes: Notes
100 102 field_is_closed: Demande fermée
101 103 field_is_default: Statut par défaut
102 104 field_html_color: Couleur
103 105 field_tracker: Tracker
104 106 field_subject: Sujet
105 107 field_due_date: Date d'échéance
106 108 field_assigned_to: Assigné à
107 109 field_priority: Priorité
108 110 field_fixed_version: Version corrigée
109 111 field_user: Utilisateur
110 112 field_role: Rôle
111 113 field_homepage: Site web
112 114 field_is_public: Public
113 115 field_parent: Sous-projet de
114 116 field_is_in_chlog: Demandes affichées dans l'historique
115 117 field_login: Identifiant
116 118 field_mail_notification: Notifications par mail
117 119 field_admin: Administrateur
118 120 field_locked: Verrouillé
119 121 field_last_login_on: Dernière connexion
120 122 field_language: Langue
121 123 field_effective_date: Date
122 124 field_password: Mot de passe
123 125 field_new_password: Nouveau mot de passe
124 126 field_password_confirmation: Confirmation
125 127 field_version: Version
126 128 field_type: Type
127 129 field_host: Hôte
128 130 field_port: Port
129 131 field_account: Compte
130 132 field_base_dn: Base DN
131 133 field_attr_login: Attribut Identifiant
132 134 field_attr_firstname: Attribut Prénom
133 135 field_attr_lastname: Attribut Nom
134 136 field_attr_mail: Attribut Email
135 137 field_onthefly: Création des utilisateurs à la volée
136 138 field_start_date: Début
137 139 field_done_ratio: %% Réalisé
138 140 field_auth_source: Mode d'authentification
139 141 field_hide_mail: Cacher mon adresse mail
140 142 field_comment: Commentaire
141 143 field_url: URL
142 144
143 145 setting_app_title: Titre de l'application
144 146 setting_app_subtitle: Sous-titre de l'application
145 147 setting_welcome_text: Texte d'accueil
146 148 setting_default_language: Langue par défaut
147 149 setting_login_required: Authentif. obligatoire
148 150 setting_self_registration: Enregistrement autorisé
149 151 setting_attachment_max_size: Taille max des fichiers
150 152 setting_issues_export_limit: Limite export demandes
151 153 setting_mail_from: Adresse d'émission
152 154 setting_host_name: Nom d'hôte
153 155 setting_text_formatting: Formatage du texte
154 156
155 157 label_user: Utilisateur
156 158 label_user_plural: Utilisateurs
157 159 label_user_new: Nouvel utilisateur
158 160 label_project: Projet
159 161 label_project_new: Nouveau projet
160 162 label_project_plural: Projets
161 163 label_project_latest: Derniers projets
162 164 label_issue: Demande
163 165 label_issue_new: Nouvelle demande
164 166 label_issue_plural: Demandes
165 167 label_issue_view_all: Voir toutes les demandes
166 168 label_document: Document
167 169 label_document_new: Nouveau document
168 170 label_document_plural: Documents
169 171 label_role: Rôle
170 172 label_role_plural: Rôles
171 173 label_role_new: Nouveau rôle
172 174 label_role_and_permissions: Rôles et permissions
173 175 label_member: Membre
174 176 label_member_new: Nouveau membre
175 177 label_member_plural: Membres
176 178 label_tracker: Tracker
177 179 label_tracker_plural: Trackers
178 180 label_tracker_new: Nouveau tracker
179 181 label_workflow: Workflow
180 182 label_issue_status: Statut de demandes
181 183 label_issue_status_plural: Statuts de demandes
182 184 label_issue_status_new: Nouveau statut
183 185 label_issue_category: Catégorie de demandes
184 186 label_issue_category_plural: Catégories de demandes
185 187 label_issue_category_new: Nouvelle catégorie
186 188 label_custom_field: Champ personnalisé
187 189 label_custom_field_plural: Champs personnalisés
188 190 label_custom_field_new: Nouveau champ personnalisé
189 191 label_enumerations: Listes de valeurs
190 192 label_enumeration_new: Nouvelle valeur
191 193 label_information: Information
192 194 label_information_plural: Informations
193 195 label_please_login: Identification
194 196 label_register: S'enregistrer
195 197 label_password_lost: Mot de passe perdu
196 198 label_home: Accueil
197 199 label_my_page: Ma page
198 200 label_my_account: Mon compte
199 201 label_my_projects: Mes projets
200 202 label_administration: Administration
201 203 label_login: Connexion
202 204 label_logout: Déconnexion
203 205 label_help: Aide
204 206 label_reported_issues: Demandes soumises
205 207 label_assigned_to_me_issues: Demandes qui me sont assignées
206 208 label_last_login: Dernière connexion
207 209 label_last_updates: Dernière mise à jour
208 210 label_last_updates_plural: %d dernières mises à jour
209 211 label_registered_on: Inscrit le
210 212 label_activity: Activité
211 213 label_new: Nouveau
212 214 label_logged_as: Connecté en tant que
213 215 label_environment: Environnement
214 216 label_authentication: Authentification
215 217 label_auth_source: Mode d'authentification
216 218 label_auth_source_new: Nouveau mode d'authentification
217 219 label_auth_source_plural: Modes d'authentification
218 220 label_subproject: Sous-projet
219 221 label_subproject_plural: Sous-projets
220 222 label_min_max_length: Longueurs mini - maxi
221 223 label_list: Liste
222 224 label_date: Date
223 225 label_integer: Entier
224 226 label_boolean: Booléen
225 227 label_string: Texte
226 228 label_text: Texte long
227 229 label_attribute: Attribut
228 230 label_attribute_plural: Attributs
229 231 label_download: %d Téléchargement
230 232 label_download_plural: %d Téléchargements
231 233 label_no_data: Aucune donnée à afficher
232 234 label_change_status: Changer le statut
233 235 label_history: Historique
234 236 label_attachment: Fichier
235 237 label_attachment_new: Nouveau fichier
236 238 label_attachment_delete: Supprimer le fichier
237 239 label_attachment_plural: Fichiers
238 240 label_report: Rapport
239 241 label_report_plural: Rapports
240 242 label_news: Annonce
241 243 label_news_new: Nouvelle annonce
242 244 label_news_plural: Annonces
243 245 label_news_latest: Dernières annonces
244 246 label_news_view_all: Voir toutes les annonces
245 247 label_change_log: Historique
246 248 label_settings: Configuration
247 249 label_overview: Aperçu
248 250 label_version: Version
249 251 label_version_new: Nouvelle version
250 252 label_version_plural: Versions
251 253 label_confirmation: Confirmation
252 254 label_export_to: Exporter en
253 255 label_read: Lire...
254 256 label_public_projects: Projets publics
255 257 label_open_issues: ouvert
256 258 label_open_issues_plural: ouverts
257 259 label_closed_issues: fermé
258 260 label_closed_issues_plural: fermés
259 261 label_total: Total
260 262 label_permissions: Permissions
261 263 label_current_status: Statut actuel
262 264 label_new_statuses_allowed: Nouveaux statuts autorisés
263 265 label_all: tous
264 266 label_none: aucun
265 267 label_next: Suivant
266 268 label_previous: Précédent
267 269 label_used_by: Utilisé par
268 270 label_details: Détails...
269 271 label_add_note: Ajouter une note
270 272 label_per_page: Par page
271 273 label_calendar: Calendrier
272 274 label_months_from: mois depuis
273 275 label_gantt: Gantt
274 276 label_internal: Interne
275 277 label_last_changes: %d derniers changements
276 278 label_change_view_all: Voir tous les changements
277 279 label_personalize_page: Personnaliser cette page
278 280 label_comment: Commentaire
279 281 label_comment_plural: Commentaires
280 282 label_comment_add: Ajouter un commentaire
281 283 label_comment_added: Commentaire ajouté
282 284 label_comment_delete: Supprimer les commentaires
283 285 label_query: Rapport personnalisé
284 286 label_query_plural: Rapports personnalisés
285 287 label_query_new: Nouveau rapport
286 288 label_filter_add: Ajouter le filtre
287 289 label_filter_plural: Filtres
288 290 label_equals: égal
289 291 label_not_equals: différent
290 292 label_in_less_than: dans moins de
291 293 label_in_more_than: dans plus de
292 294 label_in: dans
293 295 label_today: aujourd'hui
294 296 label_less_than_ago: il y a moins de
295 297 label_more_than_ago: il y a plus de
296 298 label_ago: il y a
297 299 label_contains: contient
298 300 label_not_contains: ne contient pas
299 301 label_day_plural: jours
300 302 label_repository: Dépôt SVN
301 303 label_browse: Parcourir
302 304 label_modification: %d modification
303 305 label_modification_plural: %d modifications
304 306 label_revision: Révision
305 307 label_revision_plural: Révisions
306 308 label_added: ajouté
307 309 label_modified: modifié
308 310 label_deleted: supprimé
309 311 label_latest_revision: Dernière révision
310 312 label_view_revisions: Voir les révisions
311 313 label_max_size: Taille maximale
312 314 label_on: sur
313 315 label_sort_highest: Remonter en premier
314 316 label_sort_higher: Remonter
315 317 label_sort_lower: Descendre
316 318 label_sort_lowest: Descendre en dernier
317 319 label_roadmap: Roadmap
318 320 label_search: Recherche
319 321 label_result: %d résultat
320 322 label_result_plural: %d résultats
321 323
322 324 button_login: Connexion
323 325 button_submit: Soumettre
324 326 button_save: Sauvegarder
325 327 button_check_all: Tout cocher
326 328 button_uncheck_all: Tout décocher
327 329 button_delete: Supprimer
328 330 button_create: Créer
329 331 button_test: Tester
330 332 button_edit: Modifier
331 333 button_add: Ajouter
332 334 button_change: Changer
333 335 button_apply: Appliquer
334 336 button_clear: Effacer
335 337 button_lock: Verrouiller
336 338 button_unlock: Déverrouiller
337 339 button_download: Télécharger
338 340 button_list: Lister
339 341 button_view: Voir
340 342 button_move: Déplacer
341 343 button_back: Retour
342 344 button_cancel: Annuler
343 345 button_activate: Activer
344 346 button_sort: Trier
345 347
346 348 text_select_mail_notifications: Sélectionner les actions pour lesquelles la notification par mail doit être activée.
347 349 text_regexp_info: ex. ^[A-Z0-9]+$
348 350 text_min_max_length_info: 0 pour aucune restriction
349 351 text_project_destroy_confirmation: Etes-vous sûr de vouloir supprimer ce projet et tout ce qui lui est rattaché ?
350 352 text_workflow_edit: Sélectionner un tracker et un rôle pour éditer le workflow
351 353 text_are_you_sure: Etes-vous sûr ?
352 354 text_journal_changed: changé de %s à %s
353 355 text_journal_set_to: mis à %s
354 356 text_journal_deleted: supprimé
355 357 text_tip_task_begin_day: tâche commençant ce jour
356 358 text_tip_task_end_day: tâche finissant ce jour
357 359 text_tip_task_begin_end_day: tâche commençant et finissant ce jour
358 360
359 361 default_role_manager: Manager
360 362 default_role_developper: Développeur
361 363 default_role_reporter: Rapporteur
362 364 default_tracker_bug: Anomalie
363 365 default_tracker_feature: Evolution
364 366 default_tracker_support: Assistance
365 367 default_issue_status_new: Nouveau
366 368 default_issue_status_assigned: Assigné
367 369 default_issue_status_resolved: Résolu
368 370 default_issue_status_feedback: Commentaire
369 371 default_issue_status_closed: Fermé
370 372 default_issue_status_rejected: Rejeté
371 373 default_doc_category_user: Documentation utilisateur
372 374 default_doc_category_tech: Documentation technique
373 375 default_priority_low: Bas
374 376 default_priority_normal: Normal
375 377 default_priority_high: Haut
376 378 default_priority_urgent: Urgent
377 379 default_priority_immediate: Immédiat
378 380
379 381 enumeration_issue_priorities: Priorités des demandes
380 382 enumeration_doc_categories: Catégories des documents
@@ -1,381 +1,383
1 1 _gloc_rule_default: '|n| n==1 ? "" : "_plural" '
2 2
3 3 actionview_datehelper_select_day_prefix:
4 4 actionview_datehelper_select_month_names: 1月, 2月, 3月, 4月, 5月, 6月, 7月, 8月, 9月, 10月, 11月, 12月
5 5 actionview_datehelper_select_month_names_abbr: 1月, 2月, 3月, 4月, 5月, 6月, 7月, 8月, 9月, 10月, 11月, 12月
6 6 actionview_datehelper_select_month_prefix:
7 7 actionview_datehelper_select_year_prefix:
8 8 actionview_datehelper_select_year_suffix:
9 9 actionview_datehelper_time_in_words_day: 1日
10 10 actionview_datehelper_time_in_words_day_plural: %d日間
11 11 actionview_datehelper_time_in_words_hour_about: 約1時間
12 12 actionview_datehelper_time_in_words_hour_about_plural: 約%d時間
13 13 actionview_datehelper_time_in_words_hour_about_single: 約1時間
14 14 actionview_datehelper_time_in_words_minute: 1分
15 15 actionview_datehelper_time_in_words_minute_half: 約30秒
16 16 actionview_datehelper_time_in_words_minute_less_than: 1分以内
17 17 actionview_datehelper_time_in_words_minute_plural: %d分
18 18 actionview_datehelper_time_in_words_minute_single: 1分
19 19 actionview_datehelper_time_in_words_second_less_than: 1秒以内
20 20 actionview_datehelper_time_in_words_second_less_than_plural: %d秒以内
21 21 actionview_instancetag_blank_option: 選んでください
22 22
23 23 activerecord_error_inclusion: がリストに含まれていません
24 24 activerecord_error_exclusion: が予約されています
25 25 activerecord_error_invalid: が無効です
26 26 activerecord_error_confirmation: 確認のパスワードと合っていません
27 27 activerecord_error_accepted: must be accepted
28 28 activerecord_error_empty: が空です
29 29 activerecord_error_blank: が空白です
30 30 activerecord_error_too_long: が長すぎます
31 31 activerecord_error_too_short: が短かすぎます
32 32 activerecord_error_wrong_length: の長さが間違っています
33 33 activerecord_error_taken: has already been taken
34 34 activerecord_error_not_a_number: が数字ではありません
35 35 activerecord_error_not_a_date: の日付が間違っています
36 36 activerecord_error_greater_than_start_date: を開始日より後にしてください
37 37
38 38 general_fmt_age: %d歳
39 39 general_fmt_age_plural: %d歳
40 40 general_fmt_date: %%Y年%%m月%%d日
41 general_fmt_datetime: %%Y年%%月%%d日 %%H:%%M %%p
41 general_fmt_datetime: %%Y年%%m月%%d日 %%H:%%M %%p
42 42 general_fmt_datetime_short: %%b %%d, %%H:%%M %%p
43 43 general_fmt_time: %%H:%%M %%p
44 44 general_text_No: 'いいえ'
45 45 general_text_Yes: 'はい'
46 46 general_text_no: 'いいえ'
47 47 general_text_yes: 'はい'
48 48 general_lang_ja: 'Japanese (日本語)'
49 49 general_csv_separator: ','
50 general_csv_encoding: SJIS
51 general_pdf_encoding: SJIS
50 52 general_day_names: 日曜日, 月曜日, 火曜日, 水曜日, 木曜日, 金曜日, 土曜日
51 53
52 54 notice_account_updated: アカウントが更新されました。
53 55 notice_account_invalid_creditentials: ユーザ名もしくはパスワードが無効
54 56 notice_account_password_updated: パスワードが更新されました。
55 57 notice_account_wrong_password: パスワードが違います
56 58 notice_account_register_done: アカウントが作成されました。
57 59 notice_account_unknown_email: ユーザが存在しません。
58 60 notice_can_t_change_password: このアカウントでは外部認証を使っています。パスワードは変更できません。
59 61 notice_account_lost_email_sent: 新しいパスワードのメールを送信しました。
60 62 notice_account_activated: アカウントが有効になりました。ログインできます。
61 63 notice_successful_create: 作成しました。
62 64 notice_successful_update: 更新しました。
63 65 notice_successful_delete: 削除しました。
64 66 notice_successful_connection: 接続しました。
65 67 notice_file_not_found: アクセスしようとしたページは存在しないか削除されています。
66 68 notice_locking_conflict: 別のユーザがデータを更新しています。
67 69 notice_scm_error: リポジトリに、エントリ/リビジョンが存在しません。
68 70
69 71 mail_subject_lost_password: redMine パスワード
70 72 mail_subject_register: redMine アカウントが有効になりました
71 73
72 74 gui_validation_error: 1 件のエラー
73 75 gui_validation_error_plural: %d 件のエラー
74 76
75 77 field_name: 名前
76 78 field_description: 説明
77 79 field_summary: サマリ
78 80 field_is_required: 必須
79 81 field_firstname: 名前
80 82 field_lastname: 苗字
81 field_mail: Email
83 field_mail: メールアドレス
82 84 field_filename: ファイル
83 85 field_filesize: サイズ
84 86 field_downloads: ダウンロード
85 87 field_author: 起票者
86 88 field_created_on: 作成日
87 89 field_updated_on: 更新日
88 90 field_field_format: 書式
89 91 field_is_for_all: 全プロジェクト向け
90 92 field_possible_values: 選択肢
91 93 field_regexp: 正規表現
92 94 field_min_length: 最小値
93 95 field_max_length: 最大値
94 96 field_value:
95 97 field_category: カテゴリ
96 98 field_title: タイトル
97 99 field_project: プロジェクト
98 100 field_issue: 問題
99 101 field_status: ステータス
100 102 field_notes: 注記
101 103 field_is_closed: 終了した問題
102 104 field_is_default: デフォルトのステータス
103 105 field_html_color:
104 106 field_tracker: トラッカー
105 107 field_subject: 題名
106 108 field_due_date: 期限日
107 109 field_assigned_to: 担当者
108 110 field_priority: 優先度
109 111 field_fixed_version: 修正されたバージョン
110 112 field_user: ユーザ
111 113 field_role: 役割
112 114 field_homepage: ホームページ
113 115 field_is_public: 公開
114 116 field_parent: 親プロジェクト名
115 117 field_is_in_chlog: 変更記録に表示されている問題
116 118 field_login: ログイン
117 119 field_mail_notification: メール通知
118 120 field_admin: 管理者
119 field_locked: Locked
121 field_locked: ロック済
120 122 field_last_login_on: 最終接続日
121 123 field_language: 言語
122 field_effective_date: Date
124 field_effective_date: 日付
123 125 field_password: パスワード
124 126 field_new_password: 新しいパスワード
125 127 field_password_confirmation: パスワードの確認
126 128 field_version: バージョン
127 field_type: Type
129 field_type: タイプ
128 130 field_host: ホスト
129 131 field_port: ポート
130 132 field_account: アカウント
131 133 field_base_dn: Base DN
132 134 field_attr_login: ログイン名属性
133 135 field_attr_firstname: 名前属性
134 136 field_attr_lastname: 苗字属性
135 137 field_attr_mail: メール属性
136 field_onthefly: On-the-fly user creation
138 field_onthefly: あわせてユーザを作成
137 139 field_start_date: 開始日
138 140 field_done_ratio: 進捗 %%
139 141 field_auth_source: 認証モード
140 142 field_hide_mail: Emailアドレスを隠す
141 143 field_comment: コメント
142 144 field_url: URL
143 145
144 146 setting_app_title: アプリケーションのタイトル
145 147 setting_app_subtitle: アプリケーションのサブタイトル
146 148 setting_welcome_text: ウェルカムメッセージ
147 149 setting_default_language: 既定の言語
148 150 setting_login_required: 認証が必要
149 151 setting_self_registration: ユーザは自分で登録できる
150 152 setting_attachment_max_size: 添付の最大サイズ
151 153 setting_issues_export_limit: 出力する問題数の上限
152 154 setting_mail_from: Emission メールアドレス
153 155 setting_host_name: ホスト名
154 156 setting_text_formatting: テキストの書式
155 157
156 158 label_user: ユーザ
157 159 label_user_plural: ユーザ
158 160 label_user_new: 新しいユーザ
159 161 label_project: プロジェクト
160 162 label_project_new: 新しいプロジェクト
161 163 label_project_plural: プロジェクト
162 164 label_project_latest: 最近のプロジェクト
163 165 label_issue: 問題
164 166 label_issue_new: 新しい問題
165 167 label_issue_plural: 問題
166 168 label_issue_view_all: 問題を全て見る
167 169 label_document: 文書
168 170 label_document_new: 新しい文書
169 171 label_document_plural: 文書
170 172 label_role: ロール
171 173 label_role_plural: ロール
172 174 label_role_new: 新しいロール
173 175 label_role_and_permissions: ロールと権限
174 176 label_member: メンバー
175 177 label_member_new: 新しいメンバー
176 178 label_member_plural: メンバー
177 179 label_tracker: トラッカー
178 180 label_tracker_plural: トラッカー
179 181 label_tracker_new: 新しいトラッカーを作成
180 182 label_workflow: ワークフロー
181 183 label_issue_status: 問題の状態
182 184 label_issue_status_plural: 問題の状態
183 185 label_issue_status_new: 新しい状態
184 186 label_issue_category: 問題のカテゴリ
185 187 label_issue_category_plural: 問題のカテゴリ
186 188 label_issue_category_new: 新しいカテゴリ
187 189 label_custom_field: カスタムフィールド
188 190 label_custom_field_plural: カスタムフィールド
189 191 label_custom_field_new: 新しいカスタムフィールドを作成
190 192 label_enumerations: 列挙項目
191 193 label_enumeration_new: 新しい値
192 194 label_information: 情報
193 195 label_information_plural: 情報
194 196 label_please_login: ログインしてください
195 197 label_register: 登録する
196 198 label_password_lost: パスワードの再発行
197 199 label_home: ホーム
198 200 label_my_page: マイページ
199 201 label_my_account: マイアカウント
200 202 label_my_projects: マイプロジェクト
201 203 label_administration: 管理
202 204 label_login: ログイン
203 205 label_logout: ログアウト
204 206 label_help: ヘルプ
205 207 label_reported_issues: 報告されている問題
206 208 label_assigned_to_me_issues: 担当している問題
207 209 label_last_login: 最近の接続
208 210 label_last_updates: 最近の更新 1 件
209 211 label_last_updates_plural: 最近の更新 %d 件
210 212 label_registered_on: 登録日
211 213 label_activity: 活動
212 214 label_new: 新しく作成
213 215 label_logged_as: ログイン中:
214 216 label_environment: 環境
215 217 label_authentication: 認証
216 218 label_auth_source: 認証モード
217 219 label_auth_source_new: 新しい認証モード
218 220 label_auth_source_plural: 認証モード
219 221 label_subproject: サブプロジェクト
220 222 label_subproject_plural: サブプロジェクト
221 223 label_min_max_length: 最小値 - 最大値の長さ
222 224 label_list: リストから選択
223 225 label_date: 日付
224 226 label_integer: 整数
225 227 label_boolean: 真偽値
226 228 label_string: テキスト
227 229 label_text: 長いテキスト
228 230 label_attribute: 属性
229 231 label_attribute_plural: 属性
230 232 label_download: %d ダウンロード
231 233 label_download_plural: %d ダウンロード
232 234 label_no_data: 表示するデータがありません
233 235 label_change_status: 変更の状況
234 236 label_history: 履歴
235 237 label_attachment: ファイル
236 238 label_attachment_new: 新しいファイル
237 239 label_attachment_delete: ファイルを削除
238 240 label_attachment_plural: ファイル
239 241 label_report: レポート
240 242 label_report_plural: レポート
241 243 label_news: ニュース
242 244 label_news_new: ニュースを追加
243 245 label_news_plural: ニュース
244 246 label_news_latest: 最新ニュース
245 247 label_news_view_all: 全てのニュースを見る
246 248 label_change_log: 変更記録
247 249 label_settings: 設定
248 250 label_overview: 概要
249 251 label_version: バージョン
250 252 label_version_new: 新しいバージョン
251 253 label_version_plural: バージョン
252 254 label_confirmation: 確認
253 255 label_export_to: 他の形式に出力
254 256 label_read: 読む...
255 257 label_public_projects: 公開プロジェクト
256 258 label_open_issues: 未着手
257 259 label_open_issues_plural: 未着手
258 260 label_closed_issues: 終了
259 261 label_closed_issues_plural: 終了
260 262 label_total: 合計
261 263 label_permissions: 権限
262 264 label_current_status: 現在の状態
263 265 label_new_statuses_allowed: 状態の移行先
264 266 label_all: 全て
265 267 label_none: なし
266 268 label_next:
267 269 label_previous:
268 270 label_used_by: 使用中
269 271 label_details: 詳細...
270 272 label_add_note: 注記を追加
271 273 label_per_page: ページ毎
272 274 label_calendar: カレンダー
273 275 label_months_from: ヶ月 from
274 276 label_gantt: ガントチャート
275 277 label_internal: Internal
276 278 label_last_changes: 最新の変更 %d 件
277 279 label_change_view_all: 全ての変更を見る
278 280 label_personalize_page: このページをパーソナライズする
279 281 label_comment: コメント
280 282 label_comment_plural: コメント
281 283 label_comment_add: コメント追加
282 284 label_comment_added: 追加されたコメント
283 285 label_comment_delete: コメント削除
284 286 label_query: カスタムクエリ
285 287 label_query_plural: カスタムクエリ
286 288 label_query_new: 新しいクエリ
287 289 label_filter_add: フィルタ追加
288 290 label_filter_plural: フィルタ
289 291 label_equals: 等しい
290 292 label_not_equals: 等しくない
291 293 label_in_less_than: 残日数がこれより多い
292 294 label_in_more_than: 残日数がこれより少ない
293 295 label_in: 残日数
294 296 label_today: 今日
295 297 label_less_than_ago: 経過日数がこれより少ない
296 298 label_more_than_ago: 経過日数がこれより多い
297 299 label_ago: 日前
298 300 label_contains: 含む
299 301 label_not_contains: 含まない
300 302 label_day_plural:
301 303 label_repository: SVNリポジトリ
302 304 label_browse: ブラウズ
303 label_modification: %d点の変更
304 label_modification_plural: %d点の変更
305 label_modification: %d 点の変更
306 label_modification_plural: %d 点の変更
305 307 label_revision: リビジョン
306 308 label_revision_plural: リビジョン
307 309 label_added: 追加された
308 310 label_modified: 変更された
309 311 label_deleted: 削除された
310 312 label_latest_revision: 最新リビジョン
311 313 label_view_revisions: リビジョンを見る
312 314 label_max_size: 最大サイズ
313 315 label_on:
314 316 label_sort_highest: 一番上へ
315 317 label_sort_higher: 上へ
316 318 label_sort_lower: 下へ
317 319 label_sort_lowest: 一番下へ
318 320 label_roadmap: ロードマップ
319 label_search: Search
320 label_result: %d result
321 label_result_plural: %d results
321 label_search: 検索
322 label_result: %d 件の結果
323 label_result_plural: %d 件の結果
322 324
323 325 button_login: ログイン
324 326 button_submit: 変更
325 327 button_save: 保存
326 328 button_check_all: チェックを全部つける
327 329 button_uncheck_all: チェックを全部外す
328 330 button_delete: 削除
329 331 button_create: 作成
330 332 button_test: テスト
331 333 button_edit: 編集
332 334 button_add: 追加
333 335 button_change: 変更
334 336 button_apply: 適用
335 337 button_clear: クリア
336 338 button_lock: ロック
337 339 button_unlock: アンロック
338 340 button_download: ダウンロード
339 341 button_list: 一覧
340 342 button_view: 見る
341 343 button_move: 移動
342 344 button_back: 戻る
343 345 button_cancel: キャンセル
344 346 button_activate: 有効にする
345 347 button_sort: ソート
346 348
347 text_select_mail_notifications: どのメール通知を送信するかアクションを選択してください。
349 text_select_mail_notifications: どのメール通知を送信するかアクションを選択してください。
348 350 text_regexp_info: 例) ^[A-Z0-9]+$
349 351 text_min_max_length_info: 0だと無制限になります
350 352 text_project_destroy_confirmation: 本当にこのプロジェクトと関連データを削除したいのですか?
351 text_workflow_edit: ワークフローを編集するロールとtrackerを選んでください
353 text_workflow_edit: ワークフローを編集するロールとトラッカーを選んでください
352 354 text_are_you_sure: 本当に?
353 355 text_journal_changed: %s から %s への変更
354 356 text_journal_set_to: %s にセット
355 357 text_journal_deleted: 削除
356 358 text_tip_task_begin_day: この日に開始するタスク
357 359 text_tip_task_end_day: この日に終了するタスク
358 360 text_tip_task_begin_end_day: この日のうちに開始して終了するタスク
359 361
360 362 default_role_manager: 管理者
361 363 default_role_developper: 開発者
362 364 default_role_reporter: 報告者
363 365 default_tracker_bug: バグ
364 366 default_tracker_feature: 機能
365 367 default_tracker_support: サポート
366 368 default_issue_status_new: 新規
367 369 default_issue_status_assigned: 分担
368 370 default_issue_status_resolved: 解決
369 371 default_issue_status_feedback: フィードバック
370 372 default_issue_status_closed: 終了
371 373 default_issue_status_rejected: 却下
372 374 default_doc_category_user: ユーザ文書
373 375 default_doc_category_tech: 技術文書
374 376 default_priority_low: 低め
375 377 default_priority_normal: 通常
376 378 default_priority_high: 高め
377 379 default_priority_urgent: 急いで
378 380 default_priority_immediate: 今すぐ
379 381
380 382 enumeration_issue_priorities: 問題の優先度
381 383 enumeration_doc_categories: 文書カテゴリ
@@ -1,468 +1,468
1 1 # Copyright (c) 2006 4ssoM LLC <www.4ssoM.com>
2 2 # 1.12 contributed by Ed Moss.
3 3 #
4 4 # The MIT License
5 5 #
6 6 # Permission is hereby granted, free of charge, to any person obtaining a copy
7 7 # of this software and associated documentation files (the "Software"), to deal
8 8 # in the Software without restriction, including without limitation the rights
9 9 # to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10 10 # copies of the Software, and to permit persons to whom the Software is
11 11 # furnished to do so, subject to the following conditions:
12 12 #
13 13 # The above copyright notice and this permission notice shall be included in
14 14 # all copies or substantial portions of the Software.
15 15 #
16 16 # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17 17 # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18 18 # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19 19 # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20 20 # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21 21 # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
22 22 # THE SOFTWARE.
23 23 #
24 24 # This is direct port of japanese.php
25 25 #
26 26 # Japanese PDF support.
27 27 #
28 28 # Usage is as follows:
29 29 #
30 30 # require 'fpdf'
31 31 # require 'chinese'
32 32 # pdf = FPDF.new
33 33 # pdf.extend(PDF_Japanese)
34 34 #
35 35 # This allows it to be combined with other extensions, such as the bookmark
36 36 # module.
37 37
38 38 module PDF_Japanese
39 39
40 40 SJIS_widths={' ' => 278, '!' => 299, '"' => 353, '#' => 614, '$' => 614, '%' => 721, '&' => 735, '\'' => 216,
41 41 '(' => 323, ')' => 323, '*' => 449, '+' => 529, ',' => 219, '-' => 306, '.' => 219, '/' => 453, '0' => 614, '1' => 614,
42 42 '2' => 614, '3' => 614, '4' => 614, '5' => 614, '6' => 614, '7' => 614, '8' => 614, '9' => 614, ':' => 219, ';' => 219,
43 43 '<' => 529, '=' => 529, '>' => 529, '?' => 486, '@' => 744, 'A' => 646, 'B' => 604, 'C' => 617, 'D' => 681, 'E' => 567,
44 44 'F' => 537, 'G' => 647, 'H' => 738, 'I' => 320, 'J' => 433, 'K' => 637, 'L' => 566, 'M' => 904, 'N' => 710, 'O' => 716,
45 45 'P' => 605, 'Q' => 716, 'R' => 623, 'S' => 517, 'T' => 601, 'U' => 690, 'V' => 668, 'W' => 990, 'X' => 681, 'Y' => 634,
46 46 'Z' => 578, '[' => 316, '\\' => 614, ']' => 316, '^' => 529, '_' => 500, '`' => 387, 'a' => 509, 'b' => 566, 'c' => 478,
47 47 'd' => 565, 'e' => 503, 'f' => 337, 'g' => 549, 'h' => 580, 'i' => 275, 'j' => 266, 'k' => 544, 'l' => 276, 'm' => 854,
48 48 'n' => 579, 'o' => 550, 'p' => 578, 'q' => 566, 'r' => 410, 's' => 444, 't' => 340, 'u' => 575, 'v' => 512, 'w' => 760,
49 49 'x' => 503, 'y' => 529, 'z' => 453, '{' => 326, '|' => 380, '}' => 326, '~' => 387}
50 50
51 51 def AddCIDFont(family,style,name,cw,cMap,registry)
52 52 fontkey=family.downcase+style.upcase
53 53 unless @fonts[fontkey].nil?
54 54 Error("CID font already added: family style")
55 55 end
56 56 i=@fonts.length+1
57 57 @fonts[fontkey]={'i'=>i,'type'=>'Type0','name'=>name,'up'=>-120,'ut'=>40,'cw'=>cw,
58 58 'CMap'=>cMap,'registry'=>registry}
59 59 end
60 60
61 61 def AddCIDFonts(family,name,cw,cMap,registry)
62 62 AddCIDFont(family,'',name,cw,cMap,registry)
63 63 AddCIDFont(family,'B',name+',Bold',cw,cMap,registry)
64 64 AddCIDFont(family,'I',name+',Italic',cw,cMap,registry)
65 65 AddCIDFont(family,'BI',name+',BoldItalic',cw,cMap,registry)
66 66 end
67 67
68 68 def AddSJISFont(family='SJIS')
69 69 #Add SJIS font with proportional Latin
70 70 name='KozMinPro-Regular-Acro'
71 71 cw=SJIS_widths
72 72 cMap='90msp-RKSJ-H'
73 73 registry={'ordering'=>'Japan1','supplement'=>2}
74 74 AddCIDFonts(family,name,cw,cMap,registry)
75 75 end
76 76
77 77 def AddSJIShwFont(family='SJIS-hw')
78 78 #Add SJIS font with half-width Latin
79 79 name='KozMinPro-Regular-Acro'
80 80 32.upto(126) do |i|
81 81 cw[i.chr]=500
82 82 end
83 83 cMap='90ms-RKSJ-H'
84 84 registry={'ordering'=>'Japan1','supplement'=>2}
85 85 AddCIDFonts(family,name,cw,cMap,registry)
86 86 end
87 87
88 88 def GetStringWidth(s)
89 89 if(@CurrentFont['type']=='Type0')
90 90 return GetSJISStringWidth(s)
91 91 else
92 92 return super(s)
93 93 end
94 94 end
95 95
96 96 def GetSJISStringWidth(s)
97 97 #SJIS version of GetStringWidth()
98 98 l=0
99 99 cw=@CurrentFont['cw']
100 100 nb=s.length
101 101 i=0
102 102 while(i<nb)
103 103 o=s[i]
104 104 if(o<128)
105 105 #ASCII
106 106 l+=cw[o.chr]
107 107 i+=1
108 108 elsif(o>=161 and o<=223)
109 109 #Half-width katakana
110 110 l+=500
111 111 i+=1
112 112 else
113 113 #Full-width character
114 114 l+=1000
115 115 i+=2
116 116 end
117 117 end
118 118 return l*@FontSize/1000
119 119 end
120 120
121 121 def MultiCell(w,h,txt,border=0,align='L',fill=0)
122 122 if(@CurrentFont['type']=='Type0')
123 123 SJISMultiCell(w,h,txt,border,align,fill)
124 124 else
125 125 super(w,h,txt,border,align,fill)
126 126 end
127 127 end
128 128
129 129 def SJISMultiCell(w,h,txt,border=0,align='L',fill=0)
130 130 #Output text with automatic or explicit line breaks
131 131 cw=@CurrentFont['cw']
132 132 if(w==0)
133 133 w=@w-@rMargin-@x
134 134 end
135 135 wmax=(w-2*@cMargin)*1000/@FontSize
136 136 s=txt.gsub("\r",'')
137 137 nb=s.length
138 138 if(nb>0 and s[nb-1]=="\n")
139 139 nb-=1
140 140 end
141 141 b=0
142 142 if(border)
143 143 if(border==1)
144 144 border='LTRB'
145 145 b='LRT'
146 146 b2='LR'
147 147 else
148 148 b2=''
149 if(border.index('L').nil?)
149 if(border.to_s.index('L'))
150 150 b2+='L'
151 151 end
152 if(border.index('R').nil?)
152 if(border.to_s.index('R'))
153 153 b2+='R'
154 154 end
155 b=border.index('T').nil? ? b2+'T' : b2
155 b=border.to_s.index('T') ? b2+'T' : b2
156 156 end
157 157 end
158 158 sep=-1
159 159 i=0
160 160 j=0
161 161 l=0
162 162 nl=1
163 163 while(i<nb)
164 164 #Get next character
165 165 c=s[i]
166 o=ord(c)
166 o=c #o=ord(c)
167 167 if(o==10)
168 168 #Explicit line break
169 169 Cell(w,h,s[j,i-j],b,2,align,fill)
170 170 i+=1
171 171 sep=-1
172 172 j=i
173 173 l=0
174 174 nl+=1
175 175 if(border and nl==2)
176 176 b=b2
177 177 end
178 178 next
179 179 end
180 180 if(o<128)
181 181 #ASCII
182 182 l+=cw[c.chr]
183 183 n=1
184 184 if(o==32)
185 185 sep=i
186 186 end
187 187 elsif(o>=161 and o<=223)
188 188 #Half-width katakana
189 189 l+=500
190 190 n=1
191 191 sep=i
192 192 else
193 193 #Full-width character
194 194 l+=1000
195 195 n=2
196 196 sep=i
197 197 end
198 198 if(l>wmax)
199 199 #Automatic line break
200 200 if(sep==-1 or i==j)
201 201 if(i==j)
202 202 i+=n
203 203 end
204 204 Cell(w,h,s[j,i-j],b,2,align,fill)
205 205 else
206 206 Cell(w,h,s[j,sep-j],b,2,align,fill)
207 207 i=(s[sep]==' ') ? sep+1 : sep
208 208 end
209 209 sep=-1
210 210 j=i
211 211 l=0
212 212 nl+=1
213 213 if(border and nl==2)
214 214 b=b2
215 215 end
216 216 else
217 217 i+=n
218 218 if(o>=128)
219 219 sep=i
220 220 end
221 221 end
222 222 end
223 223 #Last chunk
224 if(border and not border.index('B').nil?)
224 if(border and not border.to_s.index('B').nil?)
225 225 b+='B'
226 226 end
227 227 Cell(w,h,s[j,i-j],b,2,align,fill)
228 228 @x=@lMargin
229 229 end
230 230
231 231 def Write(h,txt,link='')
232 232 if(@CurrentFont['type']=='Type0')
233 233 SJISWrite(h,txt,link)
234 234 else
235 235 super(h,txt,link)
236 236 end
237 237 end
238 238
239 239 def SJISWrite(h,txt,link)
240 240 #SJIS version of Write()
241 241 cw=@CurrentFont['cw']
242 242 w=@w-@rMargin-@x
243 243 wmax=(w-2*@cMargin)*1000/@FontSize
244 244 s=txt.gsub("\r",'')
245 245 nb=s.length
246 246 sep=-1
247 247 i=0
248 248 j=0
249 249 l=0
250 250 nl=1
251 251 while(i<nb)
252 252 #Get next character
253 253 c=s[i]
254 254 o=c
255 255 if(o==10)
256 256 #Explicit line break
257 257 Cell(w,h,s[j,i-j],0,2,'',0,link)
258 258 i+=1
259 259 sep=-1
260 260 j=i
261 261 l=0
262 262 if(nl==1)
263 263 #Go to left margin
264 264 @x=@lMargin
265 265 w=@w-@rMargin-@x
266 266 wmax=(w-2*@cMargin)*1000/@FontSize
267 267 end
268 268 nl+=1
269 269 next
270 270 end
271 271 if(o<128)
272 272 #ASCII
273 273 l+=cw[c.chr]
274 274 n=1
275 275 if(o==32)
276 276 sep=i
277 277 end
278 278 elsif(o>=161 and o<=223)
279 279 #Half-width katakana
280 280 l+=500
281 281 n=1
282 282 sep=i
283 283 else
284 284 #Full-width character
285 285 l+=1000
286 286 n=2
287 287 sep=i
288 288 end
289 289 if(l>wmax)
290 290 #Automatic line break
291 291 if(sep==-1 or i==j)
292 292 if(@x>@lMargin)
293 293 #Move to next line
294 294 @x=@lMargin
295 295 @y+=h
296 296 w=@w-@rMargin-@x
297 297 wmax=(w-2*@cMargin)*1000/@FontSize
298 298 i+=n
299 299 nl+=1
300 300 next
301 301 end
302 302 if(i==j)
303 303 i+=n
304 304 end
305 305 Cell(w,h,s[j,i-j],0,2,'',0,link)
306 306 else
307 307 Cell(w,h,s[j,sep-j],0,2,'',0,link)
308 308 i=(s[sep]==' ') ? sep+1 : sep
309 309 end
310 310 sep=-1
311 311 j=i
312 312 l=0
313 313 if(nl==1)
314 314 @x=@lMargin
315 315 w=@w-@rMargin-@x
316 316 wmax=(w-2*@cMargin)*1000/@FontSize
317 317 end
318 318 nl+=1
319 319 else
320 320 i+=n
321 321 if(o>=128)
322 322 sep=i
323 323 end
324 324 end
325 325 end
326 326 #Last chunk
327 327 if(i!=j)
328 328 Cell(l/1000*@FontSize,h,s[j,i-j],0,0,'',0,link)
329 329 end
330 330 end
331 331
332 332 private
333 333
334 334 def putfonts()
335 335 nf=@n
336 336 @diffs.each do |diff|
337 337 #Encodings
338 338 newobj()
339 339 out('<</Type /Encoding /BaseEncoding /WinAnsiEncoding /Differences ['+diff+']>>')
340 340 out('endobj')
341 341 end
342 342 # mqr=get_magic_quotes_runtime()
343 343 # set_magic_quotes_runtime(0)
344 344 @FontFiles.each_pair do |file, info|
345 345 #Font file embedding
346 346 newobj()
347 347 @FontFiles[file]['n']=@n
348 348 if(defined('FPDF_FONTPATH'))
349 349 file=FPDF_FONTPATH+file
350 350 end
351 351 size=filesize(file)
352 352 if(!size)
353 353 Error('Font file not found')
354 354 end
355 355 out('<</Length '+size)
356 356 if(file[-2]=='.z')
357 357 out('/Filter /FlateDecode')
358 358 end
359 359 out('/Length1 '+info['length1'])
360 360 unless info['length2'].nil?
361 361 out('/Length2 '+info['length2']+' /Length3 0')
362 362 end
363 363 out('>>')
364 364 f=fopen(file,'rb')
365 365 putstream(fread(f,size))
366 366 fclose(f)
367 367 out('endobj')
368 368 end
369 369 # set_magic_quotes_runtime(mqr)
370 370 @fonts.each_pair do |k, font|
371 371 #Font objects
372 372 newobj()
373 373 @fonts[k]['n']=@n
374 374 out('<</Type /Font')
375 375 if(font['type']=='Type0')
376 376 putType0(font)
377 377 else
378 378 name=font['name']
379 379 out('/BaseFont /'+name)
380 380 if(font['type']=='core')
381 381 #Standard font
382 382 out('/Subtype /Type1')
383 383 if(name!='Symbol' and name!='ZapfDingbats')
384 384 out('/Encoding /WinAnsiEncoding')
385 385 end
386 386 else
387 387 #Additional font
388 388 out('/Subtype /'+font['type'])
389 389 out('/FirstChar 32')
390 390 out('/LastChar 255')
391 391 out('/Widths '+(@n+1)+' 0 R')
392 392 out('/FontDescriptor '+(@n+2)+' 0 R')
393 393 if(font['enc'])
394 394 if !font['diff'].nil?
395 395 out('/Encoding '+(nf+font['diff'])+' 0 R')
396 396 else
397 397 out('/Encoding /WinAnsiEncoding')
398 398 end
399 399 end
400 400 end
401 401 out('>>')
402 402 out('endobj')
403 403 if(font['type']!='core')
404 404 #Widths
405 405 newobj()
406 406 cw=font['cw']
407 407 s='['
408 408 32.upto(255) do |i|
409 409 s+=cw[i.chr]+' '
410 410 end
411 411 out(s+']')
412 412 out('endobj')
413 413 #Descriptor
414 414 newobj()
415 415 s='<</Type /FontDescriptor /FontName /'+name
416 416 font['desc'].each_pair do |k, v|
417 417 s+=' /'+k+' '+v
418 418 end
419 419 file=font['file']
420 420 if(file)
421 421 s+=' /FontFile'+(font['type']=='Type1' ? '' : '2')+' '+@FontFiles[file]['n']+' 0 R'
422 422 end
423 423 out(s+'>>')
424 424 out('endobj')
425 425 end
426 426 end
427 427 end
428 428 end
429 429
430 430 def putType0(font)
431 431 #Type0
432 432 out('/Subtype /Type0')
433 433 out('/BaseFont /'+font['name']+'-'+font['CMap'])
434 434 out('/Encoding /'+font['CMap'])
435 435 out('/DescendantFonts ['+(@n+1).to_s+' 0 R]')
436 436 out('>>')
437 437 out('endobj')
438 438 #CIDFont
439 439 newobj()
440 440 out('<</Type /Font')
441 441 out('/Subtype /CIDFontType0')
442 442 out('/BaseFont /'+font['name'])
443 443 out('/CIDSystemInfo <</Registry (Adobe) /Ordering ('+font['registry']['ordering']+') /Supplement '+font['registry']['supplement'].to_s+'>>')
444 444 out('/FontDescriptor '+(@n+1).to_s+' 0 R')
445 445 w='/W [1 ['
446 446 font['cw'].keys.sort.each {|key|
447 447 w+=font['cw'][key].to_s + " "
448 448 # ActionController::Base::logger.debug key.to_s
449 449 # ActionController::Base::logger.debug font['cw'][key].to_s
450 450 }
451 451 out(w+'] 231 325 500 631 [500] 326 389 500]')
452 452 out('>>')
453 453 out('endobj')
454 454 #Font descriptor
455 455 newobj()
456 456 out('<</Type /FontDescriptor')
457 457 out('/FontName /'+font['name'])
458 458 out('/Flags 6')
459 459 out('/FontBBox [0 -200 1000 900]')
460 460 out('/ItalicAngle 0')
461 461 out('/Ascent 800')
462 462 out('/Descent -200')
463 463 out('/CapHeight 800')
464 464 out('/StemV 60')
465 465 out('>>')
466 466 out('endobj')
467 467 end
468 468 end
General Comments 0
You need to be logged in to leave comments. Login now