Project

General

Profile

« Previous | Next » 

Revision 2133

Merged r2119 to r2127 from trunk.

View differences:

branches/0.8-stable/app/controllers/application.rb
126 126
  def redirect_back_or_default(default)
127 127
    back_url = CGI.unescape(params[:back_url].to_s)
128 128
    if !back_url.blank?
129
      uri = URI.parse(back_url)
130
      # do not redirect user to another host or to the login or register page
131
      if (uri.relative? || (uri.host == request.host)) && !uri.path.match(%r{/(login|account/register)})
132
        redirect_to(back_url) and return
129
      begin
130
        uri = URI.parse(back_url)
131
        # do not redirect user to another host or to the login or register page
132
        if (uri.relative? || (uri.host == request.host)) && !uri.path.match(%r{/(login|account/register)})
133
          redirect_to(back_url) and return
134
        end
135
      rescue URI::InvalidURIError
136
        # redirect to default
133 137
      end
134 138
    end
135 139
    redirect_to default
branches/0.8-stable/app/controllers/documents_controller.rb
35 35
    else
36 36
      @grouped = documents.group_by(&:category)
37 37
    end
38
    @document = @project.documents.build
38 39
    render :layout => false if request.xhr?
39 40
  end
40 41
  
branches/0.8-stable/app/controllers/journals_controller.rb
22 22
    if request.post?
23 23
      @journal.update_attributes(:notes => params[:notes]) if params[:notes]
24 24
      @journal.destroy if @journal.details.empty? && @journal.notes.blank?
25
      call_hook(:controller_journals_edit_post, { :journal => @journal, :params => params})
25 26
      respond_to do |format|
26 27
        format.html { redirect_to :controller => 'issues', :action => 'show', :id => @journal.journalized_id }
27 28
        format.js { render :action => 'update' }
branches/0.8-stable/app/helpers/application_helper.rb
18 18
require 'coderay'
19 19
require 'coderay/helpers/file_type'
20 20
require 'forwardable'
21
require 'cgi'
21 22

  
22 23
module ApplicationHelper
23 24
  include Redmine::WikiFormatting::Macros::Definitions
......
525 526

  
526 527
  def back_url_hidden_field_tag
527 528
    back_url = params[:back_url] || request.env['HTTP_REFERER']
528
    hidden_field_tag('back_url', back_url) unless back_url.blank?
529
    hidden_field_tag('back_url', CGI.escape(back_url)) unless back_url.blank?
529 530
  end
530 531

  
531 532
  def check_all_links(form_name)
branches/0.8-stable/app/models/document.rb
28 28
  
29 29
  validates_presence_of :project, :title, :category
30 30
  validates_length_of :title, :maximum => 60
31
  
32
  def after_initialize
33
    if new_record?
34
      self.category ||= Enumeration.default('DCAT')
35
    end
36
  end
31 37
end
branches/0.8-stable/app/models/enumeration.rb
44 44
  end
45 45

  
46 46
  def before_save
47
    Enumeration.update_all("is_default = #{connection.quoted_false}", {:opt => opt}) if is_default?
47
    if is_default? && is_default_changed?
48
      Enumeration.update_all("is_default = #{connection.quoted_false}", {:opt => opt})
49
    end
48 50
  end
49 51
  
50 52
  def objects_count
branches/0.8-stable/app/models/user.rb
178 178
    token = Token.find_by_action_and_value('autologin', key)
179 179
    token && (token.created_on > Setting.autologin.to_i.day.ago) && token.user.active? ? token.user : nil
180 180
  end
181
  
182
  # Makes find_by_mail case-insensitive
183
  def self.find_by_mail(mail)
184
    find(:first, :conditions => ["LOWER(mail) = ?", mail.to_s.downcase])
185
  end
181 186

  
182 187
  # Sort users by their display names
183 188
  def <=>(user)
branches/0.8-stable/app/views/journals/_notes_form.rhtml
1 1
<% form_remote_tag(:url => {}, :html => { :id => "journal-#{@journal.id}-form" }) do %>
2 2
    <%= text_area_tag :notes, @journal.notes, :class => 'wiki-edit', 
3 3
                                              :rows => (@journal.notes.blank? ? 10 : [[10, @journal.notes.length / 50].max, 100].min) %>
4
    <%= call_hook(:view_journals_notes_form_after_notes, { :journal => @journal}) %>
4 5
    <p><%= submit_tag l(:button_save) %>
5 6
    <%= link_to l(:button_cancel), '#', :onclick => "Element.remove('journal-#{@journal.id}-form'); " +
6 7
                                                    "Element.show('journal-#{@journal.id}-notes'); return false;" %></p>
branches/0.8-stable/app/views/journals/update.rjs
6 6
  page.show "journal-#{@journal.id}-notes"
7 7
  page.remove "journal-#{@journal.id}-form"
8 8
end
9

  
10
call_hook(:view_journals_update_rjs_bottom, { :page => page, :journal => @journal })
branches/0.8-stable/lang/de.yml
344 344
label_registered_on: Angemeldet am
345 345
label_activity: Aktivität
346 346
label_overall_activity: Aktivität aller Projekte anzeigen
347
label_user_activity: "Aktivität von %s"
347 348
label_new: Neu
348 349
label_logged_as: Angemeldet als
349 350
label_environment: Environment
......
543 544
label_feeds_access_key_created_on: Atom-Zugriffsschlüssel vor %s erstellt
544 545
label_module_plural: Module
545 546
label_added_time_by: Von %s vor %s hinzugefügt
547
label_updated_time_by: Von %s vor %s aktualisiert
546 548
label_updated_time: Vor %s aktualisiert
547 549
label_jump_to_a_project: Zu einem Projekt springen...
548 550
label_file_plural: Dateien
......
694 696
enumeration_issue_priorities: Ticket-Prioritäten
695 697
enumeration_doc_categories: Dokumentenkategorien
696 698
enumeration_activities: Aktivitäten (Zeiterfassung)
697
label_user_activity: "%s's activity"
698
label_updated_time_by: Updated by %s %s ago
699 699
text_diff_truncated: '... This diff was truncated because it exceeds the maximum size that can be displayed.'
700 700
setting_diff_max_lines_displayed: Max number of diff lines displayed
branches/0.8-stable/lang/es.yml
19 19
actionview_instancetag_blank_option: Por favor seleccione
20 20
activerecord_error_accepted: debe ser aceptado
21 21
activerecord_error_blank: no puede estar en blanco
22
activerecord_error_circular_dependency: Esta relación podría crear una dependencia anidada
22
activerecord_error_circular_dependency: Esta relación podría crear una dependencia circular
23 23
activerecord_error_confirmation: la confirmación no coincide
24 24
activerecord_error_empty: no puede estar vacío
25 25
activerecord_error_exclusion: está reservado
26
activerecord_error_greater_than_start_date: debe ser la fecha mayor que del comienzo
26
activerecord_error_greater_than_start_date: debe ser posterior a la fecha de comienzo
27 27
activerecord_error_inclusion: no está incluído en la lista
28 28
activerecord_error_invalid: no es válido
29 29
activerecord_error_not_a_date: no es una fecha válida
......
140 140
field_is_filter: Usado como filtro
141 141
field_is_for_all: Para todos los proyectos
142 142
field_is_in_chlog: Consultar las peticiones en el histórico
143
field_is_in_roadmap: Consultar las peticiones en el roadmap
143
field_is_in_roadmap: Consultar las peticiones en la planificación
144 144
field_is_public: Público
145 145
field_is_required: Obligatorio
146 146
field_issue: Petición
147
field_issue_to_id: Petición Relacionada
147
field_issue_to_id: Petición relacionada
148 148
field_language: Idioma
149 149
field_last_login_on: Última conexión
150 150
field_lastname: Apellido
......
178 178
field_summary: Resumen
179 179
field_time_zone: Zona horaria
180 180
field_title: Título
181
field_tracker: Tracker
181
field_tracker: Tipo
182 182
field_type: Tipo
183 183
field_updated_on: Actualizado
184 184
field_url: URL
......
215 215
label_all: todos
216 216
label_all_time: todo el tiempo
217 217
label_all_words: Todas las palabras
218
label_and_its_subprojects: %s y sus subproyectos
218
label_and_its_subprojects: %s y proyectos secundarios
219 219
label_applied_status: Aplicar estado
220 220
label_assigned_to_me_issues: Peticiones que me están asignadas
221 221
label_associated_revisions: Revisiones asociadas
......
234 234
label_board: Foro
235 235
label_board_new: Nuevo foro
236 236
label_board_plural: Foros
237
label_boolean: Boleano
237
label_boolean: Booleano
238 238
label_browse: Hojear
239 239
label_bulk_edit_selected_issues: Editar las peticiones seleccionadas
240 240
label_calendar: Calendario
......
293 293
label_environment: Entorno
294 294
label_equals: igual
295 295
label_example: Ejemplo
296
label_export_to: Exportar a
296
label_export_to: 'Exportar a:'
297 297
label_f_hour: %.2f hora
298 298
label_f_hour_plural: %.2f horas
299 299
label_feed_plural: Feeds
......
327 327
label_issue_category_plural: Categorías de las peticiones
328 328
label_issue_new: Nueva petición
329 329
label_issue_plural: Peticiones
330
label_issue_status: Estado de petición
330
label_issue_status: Estado de la petición
331 331
label_issue_status_new: Nuevo estado
332 332
label_issue_status_plural: Estados de las peticiones
333 333
label_issue_tracking: Peticiones
......
337 337
label_issues_by: Peticiones por %s
338 338
label_jump_to_a_project: Ir al proyecto...
339 339
label_language_based: Basado en el idioma
340
label_last_changes: %d cambios del último
340
label_last_changes: últimos %d cambios
341 341
label_last_login: Última conexión
342 342
label_last_month: último mes
343 343
label_last_n_days: últimos %d días
......
384 384
label_news_view_all: Ver todas las noticias
385 385
label_next: Siguiente
386 386
label_no_change_option: (Sin cambios)
387
label_no_data: Ningun dato a mostrar
387
label_no_data: Ningún dato a mostrar
388 388
label_nobody: nadie
389 389
label_none: ninguno
390 390
label_not_contains: no contiene
......
397 397
label_overall_activity: Actividad global
398 398
label_overview: Vistazo
399 399
label_password_lost: ¿Olvidaste la contraseña?
400
label_per_page: Por la página
400
label_per_page: Por página
401 401
label_permissions: Permisos
402 402
label_permissions_report: Informe de permisos
403 403
label_personalize_page: Personalizar esta página
......
438 438
label_reverse_chronological_order: En orden cronológico inverso
439 439
label_revision: Revisión
440 440
label_revision_plural: Revisiones
441
label_roadmap: Roadmap
441
label_roadmap: Planificación
442 442
label_roadmap_due_in: Finaliza en %s
443 443
label_roadmap_no_issues: No hay peticiones para esta versión
444 444
label_roadmap_overdue: %s tarde
......
452 452
label_send_information: Enviar información de la cuenta al usuario
453 453
label_send_test_email: Enviar un correo de prueba
454 454
label_settings: Configuración
455
label_show_completed_versions: Muestra las versiones completas
455
label_show_completed_versions: Muestra las versiones terminadas
456 456
label_sort_by: Ordenar por %s
457 457
label_sort_higher: Subir
458 458
label_sort_highest: Primero
......
474 474
label_today: hoy
475 475
label_topic_plural: Temas
476 476
label_total: Total
477
label_tracker: Tracker
478
label_tracker_new: Nuevo tracker
479
label_tracker_plural: Trackers
477
label_tracker: Tipo
478
label_tracker_new: Nuevo tipo
479
label_tracker_plural: Tipos de peticiones
480 480
label_updated_time: Actualizado hace %s
481
label_updated_time_by: Actualizado por %s hace %s
481 482
label_used_by: Utilizado por
482 483
label_user: Usuario
484
label_user_activity: "Actividad de %s"
483 485
label_user_mail_no_self_notified: "No quiero ser avisado de cambios hechos por mí"
484 486
label_user_mail_option_all: "Para cualquier evento en todos mis proyectos"
485 487
label_user_mail_option_none: "Sólo para elementos monitorizados o relacionados conmigo"
486
label_user_mail_option_selected: "Para cualquier evento del proyecto seleccionado..."
488
label_user_mail_option_selected: "Para cualquier evento de los proyectos seleccionados..."
487 489
label_user_new: Nuevo usuario
488 490
label_user_plural: Usuarios
489 491
label_version: Versión
......
501 503
label_workflow: Flujo de trabajo
502 504
label_year: Año
503 505
label_yesterday: ayer
504
mail_body_account_activation_request: "Un nuevo usuario (%s) ha sido registrado. Esta cuenta está pendiende de aprobación"
506
mail_body_account_activation_request: 'Se ha inscrito un nuevo usuario (%s). La cuenta está pendiende de aprobación:'
505 507
mail_body_account_information: Información sobre su cuenta
506 508
mail_body_account_information_external: Puede usar su cuenta "%s" para conectarse.
507
mail_body_lost_password: 'Para cambiar su contraseña, haga click en el siguiente enlace:'
508
mail_body_register: 'Para activar su cuenta, haga click en el siguiente enlace:'
509
mail_body_lost_password: 'Para cambiar su contraseña, haga clic en el siguiente enlace:'
510
mail_body_register: 'Para activar su cuenta, haga clic en el siguiente enlace:'
509 511
mail_body_reminder: "%d peticion(es) asignadas a tí finalizan en los próximos %d días:"
510 512
mail_subject_account_activation_request: Petición de activación de cuenta %s
511 513
mail_subject_lost_password: Tu contraseña del %s
512 514
mail_subject_register: Activación de la cuenta del %s
513 515
mail_subject_reminder: "%d peticion(es) finalizan en los próximos días"
514
notice_account_activated: Su cuenta ha sido activada. Ahora se encuentra conectado.
516
notice_account_activated: Su cuenta ha sido activada. Ya puede conectarse.
515 517
notice_account_invalid_creditentials: Usuario o contraseña inválido.
516 518
notice_account_lost_email_sent: Se le ha enviado un correo con instrucciones para elegir una nueva contraseña.
517 519
notice_account_password_updated: Contraseña modificada correctamente.
518
notice_account_pending: "Su cuenta ha sido creada y está pendiende de la aprobación por parte de administrador"
519
notice_account_register_done: Cuenta creada correctamente.
520
notice_account_pending: "Su cuenta ha sido creada y está pendiende de la aprobación por parte del administrador."
521
notice_account_register_done: Cuenta creada correctamente. Para activarla, haga clic sobre el enlace que le ha sido enviado por correo.
520 522
notice_account_unknown_email: Usuario desconocido.
521 523
notice_account_updated: Cuenta actualizada correctamente.
522 524
notice_account_wrong_password: Contraseña incorrecta.
......
524 526
notice_default_data_loaded: Configuración por defecto cargada correctamente.
525 527
notice_email_error: Ha ocurrido un error mientras enviando el correo (%s)
526 528
notice_email_sent: Se ha enviado un correo a %s
527
notice_failed_to_save_issues: "Imposible salvar %s peticion(es) en %d seleccionado: %s."
528
notice_feeds_access_key_reseted: Su clave de acceso para RSS ha sido reiniciada
529
notice_file_not_found: La página a la que intentas acceder no existe.
529
notice_failed_to_save_issues: "Imposible grabar %s peticion(es) en %d seleccionado: %s."
530
notice_feeds_access_key_reseted: Su clave de acceso para RSS ha sido reiniciada.
531
notice_file_not_found: La página a la que intenta acceder no existe.
530 532
notice_locking_conflict: Los datos han sido modificados por otro usuario.
531 533
notice_no_issue_selected: "Ninguna petición seleccionada. Por favor, compruebe la petición que quiere modificar"
532 534
notice_not_authorized: No tiene autorización para acceder a esta página.
......
544 546
permission_commit_access: Acceso de escritura
545 547
permission_delete_issues: Borrar peticiones
546 548
permission_delete_messages: Borrar mensajes
549
permission_delete_own_messages: Borrar mensajes propios
547 550
permission_delete_wiki_pages: Borrar páginas wiki
548 551
permission_delete_wiki_pages_attachments: Borrar ficheros
549
permission_delete_own_messages: Borrar mensajes propios
550 552
permission_edit_issue_notes: Modificar notas
551 553
permission_edit_issues: Modificar peticiones
552 554
permission_edit_messages: Modificar mensajes
......
602 604
setting_commit_logs_encoding: Codificación de los mensajes de commit
603 605
setting_commit_ref_keywords: Palabras clave para la referencia
604 606
setting_cross_project_issue_relations: Permitir relacionar peticiones de distintos proyectos
605
setting_date_format: Formato de la fecha
607
setting_date_format: Formato de fecha
606 608
setting_default_language: Idioma por defecto
607 609
setting_default_projects_public: Los proyectos nuevos son públicos por defecto
608
setting_display_subprojects_issues: Mostrar peticiones de un subproyecto en el proyecto padre por defecto
610
setting_diff_max_lines_displayed: Número máximo de diferencias mostradas
611
setting_display_subprojects_issues: Mostrar por defecto peticiones de proy. secundarios en el principal
609 612
setting_emails_footer: Pie de mensajes
610 613
setting_enabled_scm: Activar SCM
611 614
setting_feeds_limit: Límite de contenido para sindicación
612 615
setting_gravatar_enabled: Usar iconos de usuario (Gravatar)
613
setting_host_name: Nombre de host
616
setting_host_name: Nombre y ruta del servidor
614 617
setting_issue_list_default_columns: Columnas por defecto para la lista de peticiones
615 618
setting_issues_export_limit: Límite de exportación de peticiones
616 619
setting_login_required: Se requiere identificación
......
632 635
status_active: activo
633 636
status_locked: bloqueado
634 637
status_registered: registrado
635
text_are_you_sure: ¿ Estás seguro ?
638
text_are_you_sure: ¿Está seguro?
636 639
text_assign_time_entries_to_project: Asignar las horas al proyecto
637 640
text_caracters_maximum: %d caracteres como máximo.
638 641
text_caracters_minimum: %d caracteres como mínimo
......
640 643
text_default_administrator_account_changed: Cuenta de administrador por defecto modificada
641 644
text_destroy_time_entries: Borrar las horas
642 645
text_destroy_time_entries_question: Existen %.02f horas asignadas a la petición que quiere borrar. ¿Qué quiere hacer ?
646
text_diff_truncated: '... Diferencia truncada por exceder el máximo tamaño visualizable.'
643 647
text_email_delivery_not_configured: "El envío de correos no está configurado, y las notificaciones se han desactivado. \n Configure el servidor de SMTP en config/email.yml y reinicie la aplicación para activar los cambios."
644 648
text_enumeration_category_reassign_to: 'Reasignar al siguiente valor:'
645 649
text_enumeration_destroy_question: '%d objetos con este valor asignado.'
646 650
text_file_repository_writable: Se puede escribir en el repositorio
647
text_issue_added: Petición añadida por %s.
651
text_issue_added: Petición %s añadida por %s.
648 652
text_issue_category_destroy_assignments: Dejar las peticiones sin categoría
649 653
text_issue_category_destroy_question: Algunas peticiones (%d) están asignadas a esta categoría. ¿Qué desea hacer?
650 654
text_issue_category_reassign_to: Reasignar las peticiones a la categoría
......
657 661
text_length_between: Longitud entre %d y %d caracteres.
658 662
text_load_default_configuration: Cargar la configuración por defecto
659 663
text_min_max_length_info: 0 para ninguna restricción
660
text_no_configuration_data: "Todavía no se han configurado roles, ni trackers, ni estados y flujo de trabajo asociado a peticiones. Se recomiendo encarecidamente cargar la configuración por defecto. Una vez cargada, podrá modificarla."
664
text_no_configuration_data: "Todavía no se han configurado perfiles, ni tipos, estados y flujo de trabajo asociado a peticiones. Se recomiendo encarecidamente cargar la configuración por defecto. Una vez cargada, podrá modificarla."
661 665
text_project_destroy_confirmation: ¿Estás seguro de querer eliminar el proyecto?
662 666
text_project_identifier_info: 'Letras minúsculas (a-z), números y signos de puntuación permitidos.<br />Una vez guardado, el identificador no puede modificarse.'
663 667
text_reassign_time_entries: 'Reasignar las horas a esta petición:'
664 668
text_regexp_info: ej. ^[A-Z0-9]+$
665
text_repository_usernames_mapping: "Select or update the Redmine user mapped to each username found in the repository log.\nUsers with the same Redmine and repository username or email are automatically mapped."
669
text_repository_usernames_mapping: "Establezca la correspondencia entre los usuarios de Redmine y los presentes en el log del repositorio.\nLos usuarios con el mismo nombre o correo en Redmine y en el repositorio serán asociados automáticamente."
666 670
text_rmagick_available: RMagick disponible (opcional)
667 671
text_select_mail_notifications: Seleccionar los eventos a notificar
668 672
text_select_project_modules: 'Seleccione los módulos a activar para este proyecto:'
669 673
text_status_changed_by_changeset: Aplicado en los cambios %s
670
text_subprojects_destroy_warning: 'Los subproyectos: %s también se eliminarán'
674
text_subprojects_destroy_warning: 'Los proyectos secundarios: %s también se eliminarán'
671 675
text_tip_task_begin_day: tarea que comienza este día
672 676
text_tip_task_begin_end_day: tarea que comienza y termina este día
673 677
text_tip_task_end_day: tarea que termina este día
674
text_tracker_no_workflow: No hay ningún flujo de trabajo definido para este tracker
678
text_tracker_no_workflow: No hay ningún flujo de trabajo definido para este tipo de petición
675 679
text_unallowed_characters: Caracteres no permitidos
676
text_user_mail_option: "En los proyectos no seleccionados, sólo recibirá notificaciones sobre elementos monitorizados o elementos en los que esté involucrado (por ejemplo, peticiones de las que usted sea autor o asignadas a usted)."
680
text_user_mail_option: "De los proyectos no seleccionados, sólo recibirá notificaciones sobre elementos monitorizados o elementos en los que esté involucrado (por ejemplo, peticiones de las que usted sea autor o asignadas a usted)."
677 681
text_user_wrote: '%s escribió:'
678 682
text_wiki_destroy_confirmation: ¿Seguro que quiere borrar el wiki y todo su contenido?
679 683
text_workflow_edit: Seleccionar un flujo de trabajo para actualizar
680
label_user_activity: "%s's activity"
681
label_updated_time_by: Updated by %s %s ago
682
text_diff_truncated: '... This diff was truncated because it exceeds the maximum size that can be displayed.'
683
setting_diff_max_lines_displayed: Max number of diff lines displayed
branches/0.8-stable/lang/hu.yml
694 694
permission_edit_own_messages: Saját üzenetek szerkesztése
695 695
permission_delete_own_messages: Saját üzenetek törlése
696 696
label_user_activity: "%s tevékenységei"
697
label_updated_time_by: Updated by %s %s ago
698
text_diff_truncated: '... This diff was truncated because it exceeds the maximum size that can be displayed.'
699
setting_diff_max_lines_displayed: Max number of diff lines displayed
697
label_updated_time_by: "Módosította %s ennyivel ezelőtt: %s"
698
text_diff_truncated: '... A diff fájl vége nem jelenik meg, mert hosszab, mint a megjeleníthető sorok száma.'
699
setting_diff_max_lines_displayed: A megjelenítendő sorok száma (maximum) a diff fájloknál
branches/0.8-stable/lang/ko.yml
120 120
field_due_date: 완료 기한
121 121
field_assigned_to: 담당자
122 122
field_priority: 우선순위
123
field_fixed_version: 목표 버전
123
field_fixed_version: 목표버전
124 124
field_user: 사용자
125 125
field_role: 역할
126 126
field_homepage: 홈페이지
127 127
field_is_public: 공개
128 128
field_parent: 상위 프로젝트
129
field_is_in_chlog: 변경이력(changelog)에서 보여지는 일감들
130
field_is_in_roadmap: 로드맵에서 보여지는 일감들
129
field_is_in_chlog: 변경이력(changelog)에서 표시할 일감들
130
field_is_in_roadmap: 로드맵에서표시할 일감들
131 131
field_login: 로그인
132 132
field_mail_notification: 메일 알림
133 133
field_admin: 관리자
134
field_last_login_on: 최종 접속
134
field_last_login_on: 마지막 로그인
135 135
field_language: 언어
136 136
field_effective_date: 일자
137 137
field_password: 비밀번호
......
188 188
setting_commit_fix_keywords: 일감 해결에 사용할 키워드들 
189 189
setting_autologin: 자동 로그인
190 190
setting_date_format: 날짜 형식
191
setting_cross_project_issue_relations: 프로젝트간 일감에 관을 맺는 것을 허용
191
setting_cross_project_issue_relations: 프로젝트간 일감에 관을 맺는 것을 허용
192 192
setting_issue_list_default_columns: 일감 목록에 보여줄 기본 컬럼들 
193 193
setting_repositories_encodings:  저장소 인코딩
194 194
setting_emails_footer: 메일 꼬리
......
201 201
label_project_plural: 프로젝트
202 202
label_project_all: 모든 프로젝트
203 203
label_project_latest: 최근 프로젝트
204
label_issue: 일감 보기
204
label_issue: 일감
205 205
label_issue_new: 새 일감만들기
206 206
label_issue_plural: 일감 보기
207 207
label_issue_view_all: 모든 일감 보기
......
249 249
label_last_updates: 최종 변경 내역
250 250
label_last_updates_plural: 최종변경 %d 
251 251
label_registered_on: 등록시각
252
label_activity: 진행중인 작업
253
label_new: 신규
254
label_logged_as: 
252
label_activity: 작업내역
253
label_new: 새로 만들기
254
label_logged_as: '로그인계정:'
255 255
label_environment: 환경
256 256
label_authentication: 인증설정
257 257
label_auth_source: 인증 모드
......
280 280
label_report: 보고서
281 281
label_report_plural: 보고서
282 282
label_news: 뉴스
283
label_news_new: 뉴스추가
283
label_news_new: 새 뉴스
284 284
label_news_plural: 뉴스
285 285
label_news_latest: 최근 뉴스
286 286
label_news_view_all: 모든 뉴스
......
298 298
label_open_issues_plural: 진행중
299 299
label_closed_issues: 완료됨
300 300
label_closed_issues_plural: 완료됨
301
label_total: Total
301
label_total: 합계
302 302
label_permissions: 허가권한
303 303
label_current_status: 일감 상태
304 304
label_new_statuses_allowed: 허용되는 일감 상태
......
316 316
label_internal: 내부
317 317
label_last_changes: 지난 변경사항 %d 건
318 318
label_change_view_all: 모든 변경 내역 보기
319
label_personalize_page: 입맛대로 구성하기(Drag & Drop)
319
label_personalize_page: 입맛대로 구성하기
320 320
label_comment: 댓글
321 321
label_comment_plural: 댓글
322 322
label_comment_add: 댓글 추가
......
353 353
label_latest_revision_plural: 최근 개정판
354 354
label_view_revisions: 개정판 보기
355 355
label_max_size: 최대 크기
356
label_on: 'on'
356
label_on: '전체: '
357 357
label_sort_highest: 최상단으로
358 358
label_sort_higher: 위로
359 359
label_sort_lower: 아래로
......
361 361
label_roadmap: 로드맵
362 362
label_roadmap_due_in: 기한  %s
363 363
label_roadmap_overdue: %s 지연
364
label_roadmap_no_issues: 이버전에 해당하는 일감 없음
364
label_roadmap_no_issues: 이 버전에 해당하는 일감 없음
365 365
label_search: 검색
366 366
label_result_plural: 결과
367 367
label_all_words: 모든 단어
......
412 412
label_show_completed_versions: 완료된 버전 보기
413 413
label_me: 나
414 414
label_board: 게시판
415
label_board_new: 신규 게시판
415
label_board_new:  게시판
416 416
label_board_plural: 게시판
417 417
label_topic_plural: 주제
418 418
label_message_plural: 관련글
419
label_message_last: 최종
419
label_message_last: 마지막
420 420
label_message_new: 새글쓰기
421 421
label_reply_plural: 답글
422 422
label_send_information: 사용자에게 계정정보를 보냄
423 423
label_year: 년
424 424
label_month: 월
425 425
label_week: 주
426
label_date_from: 에서
427
label_date_to: (으)로
426
label_date_from: '기간:'
427
label_date_to: ' ~ '
428 428
label_language_based: 언어설정에 따름
429 429
label_sort_by: 정렬방법(%s)
430 430
label_send_test_email: 테스트 메일 보내기
......
533 533

  
534 534
enumeration_issue_priorities: 일감 우선순위
535 535
enumeration_doc_categories: 문서 카테고리
536
enumeration_activities: 진행활동(시간 추적)
536
enumeration_activities: 작업분류(시간추적)
537 537
button_copy: 복사
538 538
mail_body_account_information_external: 레드마인에 로그인할 때 "%s" 계정을 사용하실 수 있습니다.
539 539
button_change_password: 비밀번호 변경
......
555 555
label_issues_by: 일감분류 방식 %s
556 556
field_searchable: 검색가능
557 557
label_display_per_page: '페이지당: %s'
558
setting_per_page_options: 페이지당 표시할 객
558
setting_per_page_options: 페이지당 표시할 객
559 559
label_age: 마지막 수정일
560 560
notice_default_data_loaded: 기본 설정을 성공적으로 로드하였습니다.
561 561
text_load_default_configuration: 기본 설정을 로딩하기
......
585 585
project_module_documents: 문서
586 586
project_module_repository: 저장소
587 587
project_module_news: 뉴스
588
project_module_time_tracking: 진행중인 작업
588
project_module_time_tracking: 시간추적
589 589
text_file_repository_writable: 파일 저장소 쓰기 가능
590 590
text_default_administrator_account_changed: 기본 관리자 계정이 변경되었습니다.
591
text_rmagick_available: RMagick available (optional)
591
text_rmagick_available: RMagick 사용가능(옵션)
592 592
button_configure: 설정
593 593
label_plugins: 플러그인
594 594
label_ldap_authentication: LDAP 인증
595 595
label_downloads_abbr: D/L
596 596
label_add_another_file: 다른 파일 추가 
597 597
label_this_month: 이번 달
598
text_destroy_time_entries_question: %.02f hours were reported on the issues you are about to delete. What do you want to do ?
598
text_destroy_time_entries_question: 삭제하려는 일감에 %.02f 시간이 보고되어 있습니다. 어떻게 하시겠습니까?
599 599
label_last_n_days: 지난 %d 일
600 600
label_all_time: 모든 시간
601
error_issue_not_found_in_project: 'The issue was not found or does not belong to this project'
601
error_issue_not_found_in_project: '일감이 없거나 이 프로젝트의 것이 아닙니다.'
602 602
label_this_year: 올해
603 603
text_assign_time_entries_to_project: 보고된 시간을 프로젝트에 할당하기
604 604
label_date_range: 날짜 범위
......
608 608
label_last_month: 지난 달
609 609
text_destroy_time_entries: 보고된 시간을 삭제하기
610 610
text_reassign_time_entries: '이 알림에 보고된 시간을 재할당하기:'
611
setting_activity_days_default: 프로젝트 활동에 보여질 날수
611
setting_activity_days_default: 프로젝트 작업내역에 보여줄 날수
612 612
label_chronological_order: 시간 순으로 정렬
613 613
field_comments_sorting: 히스토리 정렬 설정
614 614
label_reverse_chronological_order: 시간 역순으로 정렬 
615
label_preferences: Preferences
615
label_preferences: 설정
616 616
setting_display_subprojects_issues: 하위 프로젝트의 일감을 최상위 프로젝트에서 표시
617
label_overall_activity: 전체 진행 상황
617
label_overall_activity: 전체 작업내역
618 618
setting_default_projects_public: 새 프로젝트를 공개로 설정
619
error_scm_annotate: "The entry does not exist or can not be annotated."
619
error_scm_annotate: "항목이 없거나 주석을 달 수 없습니다."
620 620
label_planning: 프로젝트계획(Planning)
621 621
text_subprojects_destroy_warning: '서브프로젝트(%s)가 자동으로 지워질 것입니다.'
622 622
label_and_its_subprojects: %s와 서브프로젝트들
......
692 692
text_repository_usernames_mapping: "저장소 로그에서 발견된 각 사용자에 레드마인 사용자를 업데이트할때 선택합니다.\n레드마인과 저장소의 이름이나 이메일이 같은 사용자가 자동으로 연결됩니다."
693 693
permission_edit_own_messages: 자기 메시지 편집
694 694
permission_delete_own_messages: 자기 메시지 삭제
695
label_user_activity: "%s의 활동"
696
label_updated_time_by: Updated by %s %s ago
697
text_diff_truncated: '... This diff was truncated because it exceeds the maximum size that can be displayed.'
698
setting_diff_max_lines_displayed: Max number of diff lines displayed
695
label_user_activity: "%s의 작업내역"
696
label_updated_time_by: %s가 %s 전에 변경
697
text_diff_truncated: '... 이 차이점은 표시할 수 있는 최대 줄수를 초과해서 이 차이점은 잘렸습니다.'
698
setting_diff_max_lines_displayed: 차이점보기에 표시할 최대 줄수
branches/0.8-stable/lang/ru.yml
518 518
label_tracker_new: Новый трекер
519 519
label_tracker_plural: Трекеры
520 520
label_tracker: Трекер
521
label_updated_time: Обновлен %s назад
521
label_updated_time: Обновлено %s назад
522
label_updated_time_by: Обновлено %s %s назад
522 523
label_used_by: Используется
523 524
label_user_activity: "Активность пользователя %s"
524 525
label_user_mail_no_self_notified: "Не извещать об изменениях, которые я сделал сам"
......
652 653
setting_date_format: Формат даты
653 654
setting_default_language: Язык по умолчанию
654 655
setting_default_projects_public: Новые проекты являются общедоступными
656
setting_diff_max_lines_displayed: Максимальное число строк для diff
655 657
setting_display_subprojects_issues: Отображение подпроектов по умолчанию
656 658
setting_emails_footer: Подстрочные примечания Email
657 659
setting_enabled_scm: Разрешенные SCM
......
689 691
text_default_administrator_account_changed: Учетная запись администратора по умолчанию изменена
690 692
text_destroy_time_entries_question: Вы собираетесь удалить %.02f часа(ов) прикрепленных за этой задачей.
691 693
text_destroy_time_entries: Удалить зарегистрированное время
694
text_diff_truncated: '... Этот diff ограничен, так как превышает максимальный отображаемый размер.'
692 695
text_email_delivery_not_configured: "Параметры работы с почтовым сервером не настроены и функция уведомления по email не активна.\nНастроить параметры для Вашего SMTP-сервера Вы можете в файле config/email.yml. Для применения изменений перезапустите приложение."
693 696
text_enumeration_category_reassign_to: 'Назначить им следующее значение:'
694 697
text_enumeration_destroy_question: '%d объект(а,ов) связаны с этим значением.'
......
727 730
text_wiki_destroy_confirmation: Вы уверены, что хотите удалить данную Wiki и все ее содержимое?
728 731
text_workflow_edit: Выберите роль и трекер для редактирования последовательности состояний
729 732

  
730
label_updated_time_by: Updated by %s %s ago
731
text_diff_truncated: '... This diff was truncated because it exceeds the maximum size that can be displayed.'
732
setting_diff_max_lines_displayed: Max number of diff lines displayed
branches/0.8-stable/lang/zh-tw.yml
223 223
setting_mail_handler_api_key: API 金鑰
224 224
setting_sequential_project_identifiers: 循序產生專案識別碼
225 225
setting_gravatar_enabled: 啟用 Gravatar 全球認證大頭像
226
setting_diff_max_lines_displayed: 差異顯示行數之最大值
226 227

  
227 228
permission_edit_project: 編輯專案
228 229
permission_select_project_modules: 選擇專案模組
......
670 671
text_enumeration_category_reassign_to: '重新設定其列舉值為:'
671 672
text_email_delivery_not_configured: "您尚未設定電子郵件傳送方式,因此提醒選項已被停用。\n請在 config/email.yml 中設定 SMTP 之後,重新啟動 Redmine,以啟用電子郵件提醒選項。"
672 673
text_repository_usernames_mapping: "選擇或更新 Redmine 使用者與版本庫使用者之對應關係。\n版本庫中之使用者帳號或電子郵件信箱,與 Redmine 設定相同者,將自動產生對應關係。"
674
text_diff_truncated: '... 這份差異已被截短以符合顯示行數之最大值'
673 675

  
674 676
default_role_manager: 管理人員
675 677
default_role_developper: 開發人員
......
696 698
enumeration_issue_priorities: 項目優先權
697 699
enumeration_doc_categories: 文件分類
698 700
enumeration_activities: 活動 (時間追蹤)
699
text_diff_truncated: '... This diff was truncated because it exceeds the maximum size that can be displayed.'
700
setting_diff_max_lines_displayed: Max number of diff lines displayed
branches/0.8-stable/lang/zh.yml
223 223
setting_mail_handler_api_key: API key
224 224
setting_sequential_project_identifiers: 顺序产生项目标识
225 225
setting_gravatar_enabled: 使用Gravatar用户头像
226
setting_diff_max_lines_displayed: 查看差别页面上显示的最大行数
226 227

  
227 228
permission_edit_project: 编辑项目
228 229
permission_select_project_modules: 选择项目模块
......
544 545
label_feeds_access_key_created_on: RSS 存取键是在 %s 之前建立的
545 546
label_module_plural: 模块
546 547
label_added_time_by: 由 %s 在 %s 之前添加
547
label_updated_time:  更新于 %s 前
548
label_updated_time:  更新于 %s 之前
549
label_updated_time_by: 由 %s 更新于 %s 之前
548 550
label_jump_to_a_project: 选择一个项目...
549 551
label_file_plural: 文件
550 552
label_changeset_plural: 变更
......
669 671
text_enumeration_destroy_question: '%d 个对象被关联到了这个枚举值。'
670 672
text_email_delivery_not_configured: "邮件参数尚未配置,因此邮件通知功能已被禁用。\n请在config/email.yml中配置您的SMTP服务器信息并重新启动以使其生效。"
671 673
text_repository_usernames_mapping: "选择或更新与版本库中的用户名对应的Redmine用户。\n版本库中与Redmine中的同名用户将被自动对应。"
674
text_diff_truncated: '... 差别内容超过了可显示的最大行数并已被截断'
672 675

  
673 676
default_role_manager: 管理人员
674 677
default_role_developper: 开发人员
......
695 698
enumeration_issue_priorities: 问题优先级
696 699
enumeration_doc_categories: 文档类别
697 700
enumeration_activities: 活动(时间跟踪)
698
label_updated_time_by: Updated by %s %s ago
699
text_diff_truncated: '... This diff was truncated because it exceeds the maximum size that can be displayed.'
700
setting_diff_max_lines_displayed: Max number of diff lines displayed
branches/0.8-stable/test/functional/documents_controller_test.rb
32 32
  end
33 33

  
34 34
  def test_index
35
    # Sets a default category
36
    e = Enumeration.find_by_name('Technical documentation')
37
    e.update_attributes(:is_default => true)
38
    
35 39
    get :index, :project_id => 'ecookbook'
36 40
    assert_response :success
37 41
    assert_template 'index'
38 42
    assert_not_nil assigns(:grouped)
43
    
44
    # Default category selected in the new document form
45
    assert_tag :select, :attributes => {:name => 'document[category_id]'},
46
                        :child => {:tag => 'option', :attributes => {:selected => 'selected'},
47
                                                     :content => 'Technical documentation'}
39 48
  end
40 49
  
41 50
  def test_new_with_one_attachment
branches/0.8-stable/test/integration/account_test.rb
44 44
    assert_response :success
45 45
    assert_template "account/lost_password"
46 46
    
47
    post "account/lost_password", :mail => 'js[email protected]'
47
    post "account/lost_password", :mail => 'jS[email protected]'
48 48
    assert_redirected_to "account/login"
49 49
    
50 50
    token = Token.find(:first)
branches/0.8-stable/test/unit/document_test.rb
1
# Redmine - project management software
2
# Copyright (C) 2006-2008  Jean-Philippe Lang
3
#
4
# This program is free software; you can redistribute it and/or
5
# modify it under the terms of the GNU General Public License
6
# as published by the Free Software Foundation; either version 2
7
# of the License, or (at your option) any later version.
8
# 
9
# This program is distributed in the hope that it will be useful,
10
# but WITHOUT ANY WARRANTY; without even the implied warranty of
11
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
12
# GNU General Public License for more details.
13
# 
14
# You should have received a copy of the GNU General Public License
15
# along with this program; if not, write to the Free Software
16
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
17

  
18
require File.dirname(__FILE__) + '/../test_helper'
19

  
20
class DocumentTest < Test::Unit::TestCase
21
  fixtures :projects, :enumerations, :documents
22

  
23
  def test_create
24
    doc = Document.new(:project => Project.find(1), :title => 'New document', :category => Enumeration.find_by_name('User documentation'))
25
    assert doc.save
26
  end
27
  
28
  def test_create_with_default_category
29
    # Sets a default category
30
    e = Enumeration.find_by_name('Technical documentation')
31
    e.update_attributes(:is_default => true)
32
    
33
    doc = Document.new(:project => Project.find(1), :title => 'New document')
34
    assert_equal e, doc.category
35
    assert doc.save
36
  end
37
end
0 38

  
branches/0.8-stable/test/unit/enumeration_test.rb
37 37
    assert !Enumeration.find(7).in_use?
38 38
  end
39 39
  
40
  def test_default
41
    e = Enumeration.default('IPRI')
42
    assert e.is_a?(Enumeration)
43
    assert e.is_default?
44
    assert_equal 'Normal', e.name
45
  end
46
  
47
  def test_create
48
    e = Enumeration.new(:opt => 'IPRI', :name => 'Very urgent', :is_default => false)
49
    assert e.save
50
    assert_equal 'Normal', Enumeration.default('IPRI').name
51
  end
52
  
53
  def test_create_as_default
54
    e = Enumeration.new(:opt => 'IPRI', :name => 'Very urgent', :is_default => true)
55
    assert e.save
56
    assert_equal e, Enumeration.default('IPRI')
57
  end
58
  
59
  def test_update_default
60
    e = Enumeration.default('IPRI')
61
    e.update_attributes(:name => 'Changed', :is_default => true)
62
    assert_equal e, Enumeration.default('IPRI')
63
  end
64
  
65
  def test_update_default_to_non_default
66
    e = Enumeration.default('IPRI')
67
    e.update_attributes(:name => 'Changed', :is_default => false)
68
    assert_nil Enumeration.default('IPRI')
69
  end
70
  
71
  def test_change_default
72
    e = Enumeration.find_by_name('Urgent')
73
    e.update_attributes(:name => 'Urgent', :is_default => true)
74
    assert_equal e, Enumeration.default('IPRI')
75
  end
76
  
40 77
  def test_destroy_with_reassign
41 78
    Enumeration.find(4).destroy(Enumeration.find(6))
42 79
    assert_nil Issue.find(:first, :conditions => {:priority_id => 4})
branches/0.8-stable/test/unit/user_test.rb
158 158
    @jsmith.pref.comments_sorting = 'desc'
159 159
    assert @jsmith.wants_comments_in_reverse_order?
160 160
  end
161
  
162
  def test_find_by_mail_should_be_case_insensitive
163
    u = User.find_by_mail('[email protected]')
164
    assert_not_nil u
165
    assert_equal '[email protected]', u.mail
166
  end
161 167
end

Also available in: Unified diff