##// END OF EJS Templates
Merged r2119 to r2127 from trunk....
Jean-Philippe Lang -
r2131:0a709660d28c
parent child
Show More
@@ -0,0 +1,37
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
@@ -126,11 +126,15 class ApplicationController < ActionController::Base
126 def redirect_back_or_default(default)
126 def redirect_back_or_default(default)
127 back_url = CGI.unescape(params[:back_url].to_s)
127 back_url = CGI.unescape(params[:back_url].to_s)
128 if !back_url.blank?
128 if !back_url.blank?
129 begin
129 uri = URI.parse(back_url)
130 uri = URI.parse(back_url)
130 # do not redirect user to another host or to the login or register page
131 # 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 if (uri.relative? || (uri.host == request.host)) && !uri.path.match(%r{/(login|account/register)})
132 redirect_to(back_url) and return
133 redirect_to(back_url) and return
133 end
134 end
135 rescue URI::InvalidURIError
136 # redirect to default
137 end
134 end
138 end
135 redirect_to default
139 redirect_to default
136 end
140 end
@@ -35,6 +35,7 class DocumentsController < ApplicationController
35 else
35 else
36 @grouped = documents.group_by(&:category)
36 @grouped = documents.group_by(&:category)
37 end
37 end
38 @document = @project.documents.build
38 render :layout => false if request.xhr?
39 render :layout => false if request.xhr?
39 end
40 end
40
41
@@ -22,6 +22,7 class JournalsController < ApplicationController
22 if request.post?
22 if request.post?
23 @journal.update_attributes(:notes => params[:notes]) if params[:notes]
23 @journal.update_attributes(:notes => params[:notes]) if params[:notes]
24 @journal.destroy if @journal.details.empty? && @journal.notes.blank?
24 @journal.destroy if @journal.details.empty? && @journal.notes.blank?
25 call_hook(:controller_journals_edit_post, { :journal => @journal, :params => params})
25 respond_to do |format|
26 respond_to do |format|
26 format.html { redirect_to :controller => 'issues', :action => 'show', :id => @journal.journalized_id }
27 format.html { redirect_to :controller => 'issues', :action => 'show', :id => @journal.journalized_id }
27 format.js { render :action => 'update' }
28 format.js { render :action => 'update' }
@@ -18,6 +18,7
18 require 'coderay'
18 require 'coderay'
19 require 'coderay/helpers/file_type'
19 require 'coderay/helpers/file_type'
20 require 'forwardable'
20 require 'forwardable'
21 require 'cgi'
21
22
22 module ApplicationHelper
23 module ApplicationHelper
23 include Redmine::WikiFormatting::Macros::Definitions
24 include Redmine::WikiFormatting::Macros::Definitions
@@ -525,7 +526,7 module ApplicationHelper
525
526
526 def back_url_hidden_field_tag
527 def back_url_hidden_field_tag
527 back_url = params[:back_url] || request.env['HTTP_REFERER']
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 end
530 end
530
531
531 def check_all_links(form_name)
532 def check_all_links(form_name)
@@ -28,4 +28,10 class Document < ActiveRecord::Base
28
28
29 validates_presence_of :project, :title, :category
29 validates_presence_of :project, :title, :category
30 validates_length_of :title, :maximum => 60
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 end
37 end
@@ -44,7 +44,9 class Enumeration < ActiveRecord::Base
44 end
44 end
45
45
46 def before_save
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 end
50 end
49
51
50 def objects_count
52 def objects_count
@@ -179,6 +179,11 class User < ActiveRecord::Base
179 token && (token.created_on > Setting.autologin.to_i.day.ago) && token.user.active? ? token.user : nil
179 token && (token.created_on > Setting.autologin.to_i.day.ago) && token.user.active? ? token.user : nil
180 end
180 end
181
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
186
182 # Sort users by their display names
187 # Sort users by their display names
183 def <=>(user)
188 def <=>(user)
184 self.to_s.downcase <=> user.to_s.downcase
189 self.to_s.downcase <=> user.to_s.downcase
@@ -1,6 +1,7
1 <% form_remote_tag(:url => {}, :html => { :id => "journal-#{@journal.id}-form" }) do %>
1 <% form_remote_tag(:url => {}, :html => { :id => "journal-#{@journal.id}-form" }) do %>
2 <%= text_area_tag :notes, @journal.notes, :class => 'wiki-edit',
2 <%= text_area_tag :notes, @journal.notes, :class => 'wiki-edit',
3 :rows => (@journal.notes.blank? ? 10 : [[10, @journal.notes.length / 50].max, 100].min) %>
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 <p><%= submit_tag l(:button_save) %>
5 <p><%= submit_tag l(:button_save) %>
5 <%= link_to l(:button_cancel), '#', :onclick => "Element.remove('journal-#{@journal.id}-form'); " +
6 <%= link_to l(:button_cancel), '#', :onclick => "Element.remove('journal-#{@journal.id}-form'); " +
6 "Element.show('journal-#{@journal.id}-notes'); return false;" %></p>
7 "Element.show('journal-#{@journal.id}-notes'); return false;" %></p>
@@ -6,3 +6,5 else
6 page.show "journal-#{@journal.id}-notes"
6 page.show "journal-#{@journal.id}-notes"
7 page.remove "journal-#{@journal.id}-form"
7 page.remove "journal-#{@journal.id}-form"
8 end
8 end
9
10 call_hook(:view_journals_update_rjs_bottom, { :page => page, :journal => @journal })
@@ -344,6 +344,7 label_last_updates_plural: %d zuletzt aktualisierten
344 label_registered_on: Angemeldet am
344 label_registered_on: Angemeldet am
345 label_activity: Aktivität
345 label_activity: Aktivität
346 label_overall_activity: Aktivität aller Projekte anzeigen
346 label_overall_activity: Aktivität aller Projekte anzeigen
347 label_user_activity: "Aktivität von %s"
347 label_new: Neu
348 label_new: Neu
348 label_logged_as: Angemeldet als
349 label_logged_as: Angemeldet als
349 label_environment: Environment
350 label_environment: Environment
@@ -543,6 +544,7 label_send_test_email: Test-E-Mail senden
543 label_feeds_access_key_created_on: Atom-Zugriffsschlüssel vor %s erstellt
544 label_feeds_access_key_created_on: Atom-Zugriffsschlüssel vor %s erstellt
544 label_module_plural: Module
545 label_module_plural: Module
545 label_added_time_by: Von %s vor %s hinzugefügt
546 label_added_time_by: Von %s vor %s hinzugefügt
547 label_updated_time_by: Von %s vor %s aktualisiert
546 label_updated_time: Vor %s aktualisiert
548 label_updated_time: Vor %s aktualisiert
547 label_jump_to_a_project: Zu einem Projekt springen...
549 label_jump_to_a_project: Zu einem Projekt springen...
548 label_file_plural: Dateien
550 label_file_plural: Dateien
@@ -694,7 +696,5 default_activity_development: Entwicklung
694 enumeration_issue_priorities: Ticket-Prioritäten
696 enumeration_issue_priorities: Ticket-Prioritäten
695 enumeration_doc_categories: Dokumentenkategorien
697 enumeration_doc_categories: Dokumentenkategorien
696 enumeration_activities: Aktivitäten (Zeiterfassung)
698 enumeration_activities: Aktivitäten (Zeiterfassung)
697 label_user_activity: "%s's activity"
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.'
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
700 setting_diff_max_lines_displayed: Max number of diff lines displayed
@@ -19,11 +19,11 actionview_datehelper_time_in_words_second_less_than_plural: menos de %d segundo
19 actionview_instancetag_blank_option: Por favor seleccione
19 actionview_instancetag_blank_option: Por favor seleccione
20 activerecord_error_accepted: debe ser aceptado
20 activerecord_error_accepted: debe ser aceptado
21 activerecord_error_blank: no puede estar en blanco
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 activerecord_error_confirmation: la confirmación no coincide
23 activerecord_error_confirmation: la confirmación no coincide
24 activerecord_error_empty: no puede estar vacío
24 activerecord_error_empty: no puede estar vacío
25 activerecord_error_exclusion: está reservado
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 activerecord_error_inclusion: no está incluído en la lista
27 activerecord_error_inclusion: no está incluído en la lista
28 activerecord_error_invalid: no es válido
28 activerecord_error_invalid: no es válido
29 activerecord_error_not_a_date: no es una fecha válida
29 activerecord_error_not_a_date: no es una fecha válida
@@ -140,11 +140,11 field_is_default: Estado por defecto
140 field_is_filter: Usado como filtro
140 field_is_filter: Usado como filtro
141 field_is_for_all: Para todos los proyectos
141 field_is_for_all: Para todos los proyectos
142 field_is_in_chlog: Consultar las peticiones en el histórico
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 field_is_public: Público
144 field_is_public: Público
145 field_is_required: Obligatorio
145 field_is_required: Obligatorio
146 field_issue: Petición
146 field_issue: Petición
147 field_issue_to_id: Petición Relacionada
147 field_issue_to_id: Petición relacionada
148 field_language: Idioma
148 field_language: Idioma
149 field_last_login_on: Última conexión
149 field_last_login_on: Última conexión
150 field_lastname: Apellido
150 field_lastname: Apellido
@@ -178,7 +178,7 field_subproject: Proyecto secundario
178 field_summary: Resumen
178 field_summary: Resumen
179 field_time_zone: Zona horaria
179 field_time_zone: Zona horaria
180 field_title: Título
180 field_title: Título
181 field_tracker: Tracker
181 field_tracker: Tipo
182 field_type: Tipo
182 field_type: Tipo
183 field_updated_on: Actualizado
183 field_updated_on: Actualizado
184 field_url: URL
184 field_url: URL
@@ -215,7 +215,7 label_ago: hace
215 label_all: todos
215 label_all: todos
216 label_all_time: todo el tiempo
216 label_all_time: todo el tiempo
217 label_all_words: Todas las palabras
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 label_applied_status: Aplicar estado
219 label_applied_status: Aplicar estado
220 label_assigned_to_me_issues: Peticiones que me están asignadas
220 label_assigned_to_me_issues: Peticiones que me están asignadas
221 label_associated_revisions: Revisiones asociadas
221 label_associated_revisions: Revisiones asociadas
@@ -234,7 +234,7 label_blocks: bloquea a
234 label_board: Foro
234 label_board: Foro
235 label_board_new: Nuevo foro
235 label_board_new: Nuevo foro
236 label_board_plural: Foros
236 label_board_plural: Foros
237 label_boolean: Boleano
237 label_boolean: Booleano
238 label_browse: Hojear
238 label_browse: Hojear
239 label_bulk_edit_selected_issues: Editar las peticiones seleccionadas
239 label_bulk_edit_selected_issues: Editar las peticiones seleccionadas
240 label_calendar: Calendario
240 label_calendar: Calendario
@@ -293,7 +293,7 label_enumerations: Listas de valores
293 label_environment: Entorno
293 label_environment: Entorno
294 label_equals: igual
294 label_equals: igual
295 label_example: Ejemplo
295 label_example: Ejemplo
296 label_export_to: Exportar a
296 label_export_to: 'Exportar a:'
297 label_f_hour: %.2f hora
297 label_f_hour: %.2f hora
298 label_f_hour_plural: %.2f horas
298 label_f_hour_plural: %.2f horas
299 label_feed_plural: Feeds
299 label_feed_plural: Feeds
@@ -327,7 +327,7 label_issue_category_new: Nueva categoría
327 label_issue_category_plural: Categorías de las peticiones
327 label_issue_category_plural: Categorías de las peticiones
328 label_issue_new: Nueva petición
328 label_issue_new: Nueva petición
329 label_issue_plural: Peticiones
329 label_issue_plural: Peticiones
330 label_issue_status: Estado de petición
330 label_issue_status: Estado de la petición
331 label_issue_status_new: Nuevo estado
331 label_issue_status_new: Nuevo estado
332 label_issue_status_plural: Estados de las peticiones
332 label_issue_status_plural: Estados de las peticiones
333 label_issue_tracking: Peticiones
333 label_issue_tracking: Peticiones
@@ -337,7 +337,7 label_issue_watchers: Seguidores
337 label_issues_by: Peticiones por %s
337 label_issues_by: Peticiones por %s
338 label_jump_to_a_project: Ir al proyecto...
338 label_jump_to_a_project: Ir al proyecto...
339 label_language_based: Basado en el idioma
339 label_language_based: Basado en el idioma
340 label_last_changes: %d cambios del último
340 label_last_changes: últimos %d cambios
341 label_last_login: Última conexión
341 label_last_login: Última conexión
342 label_last_month: último mes
342 label_last_month: último mes
343 label_last_n_days: últimos %d días
343 label_last_n_days: últimos %d días
@@ -384,7 +384,7 label_news_plural: Noticias
384 label_news_view_all: Ver todas las noticias
384 label_news_view_all: Ver todas las noticias
385 label_next: Siguiente
385 label_next: Siguiente
386 label_no_change_option: (Sin cambios)
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 label_nobody: nadie
388 label_nobody: nadie
389 label_none: ninguno
389 label_none: ninguno
390 label_not_contains: no contiene
390 label_not_contains: no contiene
@@ -397,7 +397,7 label_options: Opciones
397 label_overall_activity: Actividad global
397 label_overall_activity: Actividad global
398 label_overview: Vistazo
398 label_overview: Vistazo
399 label_password_lost: ¿Olvidaste la contraseña?
399 label_password_lost: ¿Olvidaste la contraseña?
400 label_per_page: Por la página
400 label_per_page: Por página
401 label_permissions: Permisos
401 label_permissions: Permisos
402 label_permissions_report: Informe de permisos
402 label_permissions_report: Informe de permisos
403 label_personalize_page: Personalizar esta página
403 label_personalize_page: Personalizar esta página
@@ -438,7 +438,7 label_result_plural: Resultados
438 label_reverse_chronological_order: En orden cronológico inverso
438 label_reverse_chronological_order: En orden cronológico inverso
439 label_revision: Revisión
439 label_revision: Revisión
440 label_revision_plural: Revisiones
440 label_revision_plural: Revisiones
441 label_roadmap: Roadmap
441 label_roadmap: Planificación
442 label_roadmap_due_in: Finaliza en %s
442 label_roadmap_due_in: Finaliza en %s
443 label_roadmap_no_issues: No hay peticiones para esta versión
443 label_roadmap_no_issues: No hay peticiones para esta versión
444 label_roadmap_overdue: %s tarde
444 label_roadmap_overdue: %s tarde
@@ -452,7 +452,7 label_search_titles_only: Buscar sólo en títulos
452 label_send_information: Enviar información de la cuenta al usuario
452 label_send_information: Enviar información de la cuenta al usuario
453 label_send_test_email: Enviar un correo de prueba
453 label_send_test_email: Enviar un correo de prueba
454 label_settings: Configuración
454 label_settings: Configuración
455 label_show_completed_versions: Muestra las versiones completas
455 label_show_completed_versions: Muestra las versiones terminadas
456 label_sort_by: Ordenar por %s
456 label_sort_by: Ordenar por %s
457 label_sort_higher: Subir
457 label_sort_higher: Subir
458 label_sort_highest: Primero
458 label_sort_highest: Primero
@@ -474,16 +474,18 label_time_tracking: Control de tiempo
474 label_today: hoy
474 label_today: hoy
475 label_topic_plural: Temas
475 label_topic_plural: Temas
476 label_total: Total
476 label_total: Total
477 label_tracker: Tracker
477 label_tracker: Tipo
478 label_tracker_new: Nuevo tracker
478 label_tracker_new: Nuevo tipo
479 label_tracker_plural: Trackers
479 label_tracker_plural: Tipos de peticiones
480 label_updated_time: Actualizado hace %s
480 label_updated_time: Actualizado hace %s
481 label_updated_time_by: Actualizado por %s hace %s
481 label_used_by: Utilizado por
482 label_used_by: Utilizado por
482 label_user: Usuario
483 label_user: Usuario
484 label_user_activity: "Actividad de %s"
483 label_user_mail_no_self_notified: "No quiero ser avisado de cambios hechos por mí"
485 label_user_mail_no_self_notified: "No quiero ser avisado de cambios hechos por mí"
484 label_user_mail_option_all: "Para cualquier evento en todos mis proyectos"
486 label_user_mail_option_all: "Para cualquier evento en todos mis proyectos"
485 label_user_mail_option_none: "Sólo para elementos monitorizados o relacionados conmigo"
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 label_user_new: Nuevo usuario
489 label_user_new: Nuevo usuario
488 label_user_plural: Usuarios
490 label_user_plural: Usuarios
489 label_version: Versión
491 label_version: Versión
@@ -501,22 +503,22 label_wiki_page_plural: Wiki páginas
501 label_workflow: Flujo de trabajo
503 label_workflow: Flujo de trabajo
502 label_year: Año
504 label_year: Año
503 label_yesterday: ayer
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 mail_body_account_information: Información sobre su cuenta
507 mail_body_account_information: Información sobre su cuenta
506 mail_body_account_information_external: Puede usar su cuenta "%s" para conectarse.
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:'
509 mail_body_lost_password: 'Para cambiar su contraseña, haga clic en el siguiente enlace:'
508 mail_body_register: 'Para activar su cuenta, haga click en el siguiente enlace:'
510 mail_body_register: 'Para activar su cuenta, haga clic en el siguiente enlace:'
509 mail_body_reminder: "%d peticion(es) asignadas a finalizan en los próximos %d días:"
511 mail_body_reminder: "%d peticion(es) asignadas a finalizan en los próximos %d días:"
510 mail_subject_account_activation_request: Petición de activación de cuenta %s
512 mail_subject_account_activation_request: Petición de activación de cuenta %s
511 mail_subject_lost_password: Tu contraseña del %s
513 mail_subject_lost_password: Tu contraseña del %s
512 mail_subject_register: Activación de la cuenta del %s
514 mail_subject_register: Activación de la cuenta del %s
513 mail_subject_reminder: "%d peticion(es) finalizan en los próximos días"
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 notice_account_invalid_creditentials: Usuario o contraseña inválido.
517 notice_account_invalid_creditentials: Usuario o contraseña inválido.
516 notice_account_lost_email_sent: Se le ha enviado un correo con instrucciones para elegir una nueva contraseña.
518 notice_account_lost_email_sent: Se le ha enviado un correo con instrucciones para elegir una nueva contraseña.
517 notice_account_password_updated: Contraseña modificada correctamente.
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"
520 notice_account_pending: "Su cuenta ha sido creada y está pendiende de la aprobación por parte del administrador."
519 notice_account_register_done: Cuenta creada correctamente.
521 notice_account_register_done: Cuenta creada correctamente. Para activarla, haga clic sobre el enlace que le ha sido enviado por correo.
520 notice_account_unknown_email: Usuario desconocido.
522 notice_account_unknown_email: Usuario desconocido.
521 notice_account_updated: Cuenta actualizada correctamente.
523 notice_account_updated: Cuenta actualizada correctamente.
522 notice_account_wrong_password: Contraseña incorrecta.
524 notice_account_wrong_password: Contraseña incorrecta.
@@ -524,9 +526,9 notice_can_t_change_password: Esta cuenta utiliza una fuente de autenticación e
524 notice_default_data_loaded: Configuración por defecto cargada correctamente.
526 notice_default_data_loaded: Configuración por defecto cargada correctamente.
525 notice_email_error: Ha ocurrido un error mientras enviando el correo (%s)
527 notice_email_error: Ha ocurrido un error mientras enviando el correo (%s)
526 notice_email_sent: Se ha enviado un correo a %s
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."
529 notice_failed_to_save_issues: "Imposible grabar %s peticion(es) en %d seleccionado: %s."
528 notice_feeds_access_key_reseted: Su clave de acceso para RSS ha sido reiniciada
530 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.
531 notice_file_not_found: La página a la que intenta acceder no existe.
530 notice_locking_conflict: Los datos han sido modificados por otro usuario.
532 notice_locking_conflict: Los datos han sido modificados por otro usuario.
531 notice_no_issue_selected: "Ninguna petición seleccionada. Por favor, compruebe la petición que quiere modificar"
533 notice_no_issue_selected: "Ninguna petición seleccionada. Por favor, compruebe la petición que quiere modificar"
532 notice_not_authorized: No tiene autorización para acceder a esta página.
534 notice_not_authorized: No tiene autorización para acceder a esta página.
@@ -544,9 +546,9 permission_comment_news: Comentar noticias
544 permission_commit_access: Acceso de escritura
546 permission_commit_access: Acceso de escritura
545 permission_delete_issues: Borrar peticiones
547 permission_delete_issues: Borrar peticiones
546 permission_delete_messages: Borrar mensajes
548 permission_delete_messages: Borrar mensajes
549 permission_delete_own_messages: Borrar mensajes propios
547 permission_delete_wiki_pages: Borrar páginas wiki
550 permission_delete_wiki_pages: Borrar páginas wiki
548 permission_delete_wiki_pages_attachments: Borrar ficheros
551 permission_delete_wiki_pages_attachments: Borrar ficheros
549 permission_delete_own_messages: Borrar mensajes propios
550 permission_edit_issue_notes: Modificar notas
552 permission_edit_issue_notes: Modificar notas
551 permission_edit_issues: Modificar peticiones
553 permission_edit_issues: Modificar peticiones
552 permission_edit_messages: Modificar mensajes
554 permission_edit_messages: Modificar mensajes
@@ -602,15 +604,16 setting_commit_fix_keywords: Palabras clave para la corrección
602 setting_commit_logs_encoding: Codificación de los mensajes de commit
604 setting_commit_logs_encoding: Codificación de los mensajes de commit
603 setting_commit_ref_keywords: Palabras clave para la referencia
605 setting_commit_ref_keywords: Palabras clave para la referencia
604 setting_cross_project_issue_relations: Permitir relacionar peticiones de distintos proyectos
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 setting_default_language: Idioma por defecto
608 setting_default_language: Idioma por defecto
607 setting_default_projects_public: Los proyectos nuevos son públicos por defecto
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 setting_emails_footer: Pie de mensajes
612 setting_emails_footer: Pie de mensajes
610 setting_enabled_scm: Activar SCM
613 setting_enabled_scm: Activar SCM
611 setting_feeds_limit: Límite de contenido para sindicación
614 setting_feeds_limit: Límite de contenido para sindicación
612 setting_gravatar_enabled: Usar iconos de usuario (Gravatar)
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 setting_issue_list_default_columns: Columnas por defecto para la lista de peticiones
617 setting_issue_list_default_columns: Columnas por defecto para la lista de peticiones
615 setting_issues_export_limit: Límite de exportación de peticiones
618 setting_issues_export_limit: Límite de exportación de peticiones
616 setting_login_required: Se requiere identificación
619 setting_login_required: Se requiere identificación
@@ -632,7 +635,7 setting_wiki_compression: Compresión del historial del Wiki
632 status_active: activo
635 status_active: activo
633 status_locked: bloqueado
636 status_locked: bloqueado
634 status_registered: registrado
637 status_registered: registrado
635 text_are_you_sure: ¿ Estás seguro ?
638 text_are_you_sure: ¿Está seguro?
636 text_assign_time_entries_to_project: Asignar las horas al proyecto
639 text_assign_time_entries_to_project: Asignar las horas al proyecto
637 text_caracters_maximum: %d caracteres como máximo.
640 text_caracters_maximum: %d caracteres como máximo.
638 text_caracters_minimum: %d caracteres como mínimo
641 text_caracters_minimum: %d caracteres como mínimo
@@ -640,11 +643,12 text_comma_separated: Múltiples valores permitidos (separados por coma).
640 text_default_administrator_account_changed: Cuenta de administrador por defecto modificada
643 text_default_administrator_account_changed: Cuenta de administrador por defecto modificada
641 text_destroy_time_entries: Borrar las horas
644 text_destroy_time_entries: Borrar las horas
642 text_destroy_time_entries_question: Existen %.02f horas asignadas a la petición que quiere borrar. ¿Qué quiere hacer ?
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 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."
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 text_enumeration_category_reassign_to: 'Reasignar al siguiente valor:'
648 text_enumeration_category_reassign_to: 'Reasignar al siguiente valor:'
645 text_enumeration_destroy_question: '%d objetos con este valor asignado.'
649 text_enumeration_destroy_question: '%d objetos con este valor asignado.'
646 text_file_repository_writable: Se puede escribir en el repositorio
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 text_issue_category_destroy_assignments: Dejar las peticiones sin categoría
652 text_issue_category_destroy_assignments: Dejar las peticiones sin categoría
649 text_issue_category_destroy_question: Algunas peticiones (%d) están asignadas a esta categoría. ¿Qué desea hacer?
653 text_issue_category_destroy_question: Algunas peticiones (%d) están asignadas a esta categoría. ¿Qué desea hacer?
650 text_issue_category_reassign_to: Reasignar las peticiones a la categoría
654 text_issue_category_reassign_to: Reasignar las peticiones a la categoría
@@ -657,27 +661,23 text_journal_set_to: fijado a %s
657 text_length_between: Longitud entre %d y %d caracteres.
661 text_length_between: Longitud entre %d y %d caracteres.
658 text_load_default_configuration: Cargar la configuración por defecto
662 text_load_default_configuration: Cargar la configuración por defecto
659 text_min_max_length_info: 0 para ninguna restricción
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 text_project_destroy_confirmation: ¿Estás seguro de querer eliminar el proyecto?
665 text_project_destroy_confirmation: ¿Estás seguro de querer eliminar el proyecto?
662 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.'
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 text_reassign_time_entries: 'Reasignar las horas a esta petición:'
667 text_reassign_time_entries: 'Reasignar las horas a esta petición:'
664 text_regexp_info: ej. ^[A-Z0-9]+$
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 text_rmagick_available: RMagick disponible (opcional)
670 text_rmagick_available: RMagick disponible (opcional)
667 text_select_mail_notifications: Seleccionar los eventos a notificar
671 text_select_mail_notifications: Seleccionar los eventos a notificar
668 text_select_project_modules: 'Seleccione los módulos a activar para este proyecto:'
672 text_select_project_modules: 'Seleccione los módulos a activar para este proyecto:'
669 text_status_changed_by_changeset: Aplicado en los cambios %s
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 text_tip_task_begin_day: tarea que comienza este día
675 text_tip_task_begin_day: tarea que comienza este día
672 text_tip_task_begin_end_day: tarea que comienza y termina este día
676 text_tip_task_begin_end_day: tarea que comienza y termina este día
673 text_tip_task_end_day: tarea que termina este día
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 text_unallowed_characters: Caracteres no permitidos
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 text_user_wrote: '%s escribió:'
681 text_user_wrote: '%s escribió:'
678 text_wiki_destroy_confirmation: ¿Seguro que quiere borrar el wiki y todo su contenido?
682 text_wiki_destroy_confirmation: ¿Seguro que quiere borrar el wiki y todo su contenido?
679 text_workflow_edit: Seleccionar un flujo de trabajo para actualizar
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
@@ -694,6 +694,6 text_repository_usernames_mapping: "Állítsd be a felhasználó összerendelés
694 permission_edit_own_messages: Saját üzenetek szerkesztése
694 permission_edit_own_messages: Saját üzenetek szerkesztése
695 permission_delete_own_messages: Saját üzenetek törlése
695 permission_delete_own_messages: Saját üzenetek törlése
696 label_user_activity: "%s tevékenységei"
696 label_user_activity: "%s tevékenységei"
697 label_updated_time_by: Updated by %s %s ago
697 label_updated_time_by: "Módosította %s ennyivel ezelőtt: %s"
698 text_diff_truncated: '... This diff was truncated because it exceeds the maximum size that can be displayed.'
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: Max number of diff lines displayed
699 setting_diff_max_lines_displayed: A megjelenítendő sorok száma (maximum) a diff fájloknál
@@ -126,12 +126,12 field_role: 역할
126 field_homepage: 홈페이지
126 field_homepage: 홈페이지
127 field_is_public: 공개
127 field_is_public: 공개
128 field_parent: 상위 프로젝트
128 field_parent: 상위 프로젝트
129 field_is_in_chlog: 변경이력(changelog)에서 보여지는 일감들
129 field_is_in_chlog: 변경이력(changelog)에서 표시할 일감들
130 field_is_in_roadmap: 로드맵에서 보여지는 일감들
130 field_is_in_roadmap: 로드맵에서표시할 일감들
131 field_login: 로그인
131 field_login: 로그인
132 field_mail_notification: 메일 알림
132 field_mail_notification: 메일 알림
133 field_admin: 관리자
133 field_admin: 관리자
134 field_last_login_on: 최종 접속
134 field_last_login_on: 마지막 로그인
135 field_language: 언어
135 field_language: 언어
136 field_effective_date: 일자
136 field_effective_date: 일자
137 field_password: 비밀번호
137 field_password: 비밀번호
@@ -188,7 +188,7 setting_commit_ref_keywords: 일감 참조에 사용할 키워드들
188 setting_commit_fix_keywords: 일감 해결에 사용할 키워드들
188 setting_commit_fix_keywords: 일감 해결에 사용할 키워드들
189 setting_autologin: 자동 로그인
189 setting_autologin: 자동 로그인
190 setting_date_format: 날짜 형식
190 setting_date_format: 날짜 형식
191 setting_cross_project_issue_relations: 프로젝트간 일감에 관을 맺는 것을 허용
191 setting_cross_project_issue_relations: 프로젝트간 일감에 관을 맺는 것을 허용
192 setting_issue_list_default_columns: 일감 목록에 보여줄 기본 컬럼들
192 setting_issue_list_default_columns: 일감 목록에 보여줄 기본 컬럼들
193 setting_repositories_encodings: 저장소 인코딩
193 setting_repositories_encodings: 저장소 인코딩
194 setting_emails_footer: 메일 꼬리
194 setting_emails_footer: 메일 꼬리
@@ -201,7 +201,7 label_project_new: 새 프로젝트
201 label_project_plural: 프로젝트
201 label_project_plural: 프로젝트
202 label_project_all: 모든 프로젝트
202 label_project_all: 모든 프로젝트
203 label_project_latest: 최근 프로젝트
203 label_project_latest: 최근 프로젝트
204 label_issue: 일감 보기
204 label_issue: 일감
205 label_issue_new: 새 일감만들기
205 label_issue_new: 새 일감만들기
206 label_issue_plural: 일감 보기
206 label_issue_plural: 일감 보기
207 label_issue_view_all: 모든 일감 보기
207 label_issue_view_all: 모든 일감 보기
@@ -249,9 +249,9 label_last_login: 최종 접속
249 label_last_updates: 최종 변경 내역
249 label_last_updates: 최종 변경 내역
250 label_last_updates_plural: 최종변경 %d
250 label_last_updates_plural: 최종변경 %d
251 label_registered_on: 등록시각
251 label_registered_on: 등록시각
252 label_activity: 진행중인 작업
252 label_activity: 작업내역
253 label_new: 신규
253 label_new: 새로 만들기
254 label_logged_as:
254 label_logged_as: '로그인계정:'
255 label_environment: 환경
255 label_environment: 환경
256 label_authentication: 인증설정
256 label_authentication: 인증설정
257 label_auth_source: 인증 모드
257 label_auth_source: 인증 모드
@@ -280,7 +280,7 label_attachment_plural: 관련파일
280 label_report: 보고서
280 label_report: 보고서
281 label_report_plural: 보고서
281 label_report_plural: 보고서
282 label_news: 뉴스
282 label_news: 뉴스
283 label_news_new: 뉴스추가
283 label_news_new: 뉴스
284 label_news_plural: 뉴스
284 label_news_plural: 뉴스
285 label_news_latest: 최근 뉴스
285 label_news_latest: 최근 뉴스
286 label_news_view_all: 모든 뉴스
286 label_news_view_all: 모든 뉴스
@@ -298,7 +298,7 label_open_issues: 진행중
298 label_open_issues_plural: 진행중
298 label_open_issues_plural: 진행중
299 label_closed_issues: 완료됨
299 label_closed_issues: 완료됨
300 label_closed_issues_plural: 완료됨
300 label_closed_issues_plural: 완료됨
301 label_total: Total
301 label_total: 합계
302 label_permissions: 허가권한
302 label_permissions: 허가권한
303 label_current_status: 일감 상태
303 label_current_status: 일감 상태
304 label_new_statuses_allowed: 허용되는 일감 상태
304 label_new_statuses_allowed: 허용되는 일감 상태
@@ -316,7 +316,7 label_gantt: Gantt 챠트
316 label_internal: 내부
316 label_internal: 내부
317 label_last_changes: 지난 변경사항 %d 건
317 label_last_changes: 지난 변경사항 %d 건
318 label_change_view_all: 모든 변경 내역 보기
318 label_change_view_all: 모든 변경 내역 보기
319 label_personalize_page: 입맛대로 구성하기(Drag & Drop)
319 label_personalize_page: 입맛대로 구성하기
320 label_comment: 댓글
320 label_comment: 댓글
321 label_comment_plural: 댓글
321 label_comment_plural: 댓글
322 label_comment_add: 댓글 추가
322 label_comment_add: 댓글 추가
@@ -353,7 +353,7 label_latest_revision: 최근 개정판
353 label_latest_revision_plural: 최근 개정판
353 label_latest_revision_plural: 최근 개정판
354 label_view_revisions: 개정판 보기
354 label_view_revisions: 개정판 보기
355 label_max_size: 최대 크기
355 label_max_size: 최대 크기
356 label_on: 'on'
356 label_on: '전체: '
357 label_sort_highest: 최상단으로
357 label_sort_highest: 최상단으로
358 label_sort_higher: 위로
358 label_sort_higher: 위로
359 label_sort_lower: 아래로
359 label_sort_lower: 아래로
@@ -412,19 +412,19 label_disabled: 비활성화
412 label_show_completed_versions: 완료된 버전 보기
412 label_show_completed_versions: 완료된 버전 보기
413 label_me:
413 label_me:
414 label_board: 게시판
414 label_board: 게시판
415 label_board_new: 신규 게시판
415 label_board_new: 게시판
416 label_board_plural: 게시판
416 label_board_plural: 게시판
417 label_topic_plural: 주제
417 label_topic_plural: 주제
418 label_message_plural: 관련글
418 label_message_plural: 관련글
419 label_message_last: 최종
419 label_message_last: 마지막
420 label_message_new: 새글쓰기
420 label_message_new: 새글쓰기
421 label_reply_plural: 답글
421 label_reply_plural: 답글
422 label_send_information: 사용자에게 계정정보를 보냄
422 label_send_information: 사용자에게 계정정보를 보냄
423 label_year:
423 label_year:
424 label_month:
424 label_month:
425 label_week:
425 label_week:
426 label_date_from: 에서
426 label_date_from: '기간:'
427 label_date_to: (으)로
427 label_date_to: ' ~ '
428 label_language_based: 언어설정에 따름
428 label_language_based: 언어설정에 따름
429 label_sort_by: 정렬방법(%s)
429 label_sort_by: 정렬방법(%s)
430 label_send_test_email: 테스트 메일 보내기
430 label_send_test_email: 테스트 메일 보내기
@@ -533,7 +533,7 default_activity_development: 개발
533
533
534 enumeration_issue_priorities: 일감 우선순위
534 enumeration_issue_priorities: 일감 우선순위
535 enumeration_doc_categories: 문서 카테고리
535 enumeration_doc_categories: 문서 카테고리
536 enumeration_activities: 진행활동(시간 추적)
536 enumeration_activities: 작업분류(시간추적)
537 button_copy: 복사
537 button_copy: 복사
538 mail_body_account_information_external: 레드마인에 로그인할 때 "%s" 계정을 사용하실 수 있습니다.
538 mail_body_account_information_external: 레드마인에 로그인할 때 "%s" 계정을 사용하실 수 있습니다.
539 button_change_password: 비밀번호 변경
539 button_change_password: 비밀번호 변경
@@ -555,7 +555,7 button_annotate: 주석달기(annotate)
555 label_issues_by: 일감분류 방식 %s
555 label_issues_by: 일감분류 방식 %s
556 field_searchable: 검색가능
556 field_searchable: 검색가능
557 label_display_per_page: '페이지당: %s'
557 label_display_per_page: '페이지당: %s'
558 setting_per_page_options: 페이지당 표시할 객
558 setting_per_page_options: 페이지당 표시할 객
559 label_age: 마지막 수정일
559 label_age: 마지막 수정일
560 notice_default_data_loaded: 기본 설정을 성공적으로 로드하였습니다.
560 notice_default_data_loaded: 기본 설정을 성공적으로 로드하였습니다.
561 text_load_default_configuration: 기본 설정을 로딩하기
561 text_load_default_configuration: 기본 설정을 로딩하기
@@ -585,20 +585,20 project_module_files: 관련파일
585 project_module_documents: 문서
585 project_module_documents: 문서
586 project_module_repository: 저장소
586 project_module_repository: 저장소
587 project_module_news: 뉴스
587 project_module_news: 뉴스
588 project_module_time_tracking: 진행중인 작업
588 project_module_time_tracking: 시간추적
589 text_file_repository_writable: 파일 저장소 쓰기 가능
589 text_file_repository_writable: 파일 저장소 쓰기 가능
590 text_default_administrator_account_changed: 기본 관리자 계정이 변경되었습니다.
590 text_default_administrator_account_changed: 기본 관리자 계정이 변경되었습니다.
591 text_rmagick_available: RMagick available (optional)
591 text_rmagick_available: RMagick 사용가능(옵션)
592 button_configure: 설정
592 button_configure: 설정
593 label_plugins: 플러그인
593 label_plugins: 플러그인
594 label_ldap_authentication: LDAP 인증
594 label_ldap_authentication: LDAP 인증
595 label_downloads_abbr: D/L
595 label_downloads_abbr: D/L
596 label_add_another_file: 다른 파일 추가
596 label_add_another_file: 다른 파일 추가
597 label_this_month: 이번 달
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 label_last_n_days: 지난 %d 일
599 label_last_n_days: 지난 %d 일
600 label_all_time: 모든 시간
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 label_this_year: 올해
602 label_this_year: 올해
603 text_assign_time_entries_to_project: 보고된 시간을 프로젝트에 할당하기
603 text_assign_time_entries_to_project: 보고된 시간을 프로젝트에 할당하기
604 label_date_range: 날짜 범위
604 label_date_range: 날짜 범위
@@ -608,15 +608,15 label_optional_description: 부가적인 설명
608 label_last_month: 지난 달
608 label_last_month: 지난 달
609 text_destroy_time_entries: 보고된 시간을 삭제하기
609 text_destroy_time_entries: 보고된 시간을 삭제하기
610 text_reassign_time_entries: '이 알림에 보고된 시간을 재할당하기:'
610 text_reassign_time_entries: '이 알림에 보고된 시간을 재할당하기:'
611 setting_activity_days_default: 프로젝트 활동에 보여 날수
611 setting_activity_days_default: 프로젝트 작업내역에 보여 날수
612 label_chronological_order: 시간 순으로 정렬
612 label_chronological_order: 시간 순으로 정렬
613 field_comments_sorting: 히스토리 정렬 설정
613 field_comments_sorting: 히스토리 정렬 설정
614 label_reverse_chronological_order: 시간 역순으로 정렬
614 label_reverse_chronological_order: 시간 역순으로 정렬
615 label_preferences: Preferences
615 label_preferences: 설정
616 setting_display_subprojects_issues: 하위 프로젝트의 일감을 최상위 프로젝트에서 표시
616 setting_display_subprojects_issues: 하위 프로젝트의 일감을 최상위 프로젝트에서 표시
617 label_overall_activity: 전체 진행 상황
617 label_overall_activity: 전체 작업내역
618 setting_default_projects_public: 새 프로젝트를 공개로 설정
618 setting_default_projects_public: 새 프로젝트를 공개로 설정
619 error_scm_annotate: "The entry does not exist or can not be annotated."
619 error_scm_annotate: "항목이 없거나 주석을 없습니다."
620 label_planning: 프로젝트계획(Planning)
620 label_planning: 프로젝트계획(Planning)
621 text_subprojects_destroy_warning: '서브프로젝트(%s)가 자동으로 지워질 것입니다.'
621 text_subprojects_destroy_warning: '서브프로젝트(%s)가 자동으로 지워질 것입니다.'
622 label_and_its_subprojects: %s와 서브프로젝트들
622 label_and_its_subprojects: %s와 서브프로젝트들
@@ -692,7 +692,7 label_example: 예
692 text_repository_usernames_mapping: "저장소 로그에서 발견된 사용자에 레드마인 사용자를 업데이트할때 선택합니다.\n레드마인과 저장소의 이름이나 이메일이 같은 사용자가 자동으로 연결됩니다."
692 text_repository_usernames_mapping: "저장소 로그에서 발견된 사용자에 레드마인 사용자를 업데이트할때 선택합니다.\n레드마인과 저장소의 이름이나 이메일이 같은 사용자가 자동으로 연결됩니다."
693 permission_edit_own_messages: 자기 메시지 편집
693 permission_edit_own_messages: 자기 메시지 편집
694 permission_delete_own_messages: 자기 메시지 삭제
694 permission_delete_own_messages: 자기 메시지 삭제
695 label_user_activity: "%s의 활동"
695 label_user_activity: "%s의 작업내역"
696 label_updated_time_by: Updated by %s %s ago
696 label_updated_time_by: %s가 %s 전에 변경
697 text_diff_truncated: '... This diff was truncated because it exceeds the maximum size that can be displayed.'
697 text_diff_truncated: '... 차이점은 표시할 있는 최대 줄수를 초과해서 차이점은 잘렸습니다.'
698 setting_diff_max_lines_displayed: Max number of diff lines displayed
698 setting_diff_max_lines_displayed: 차이점보기에 표시할 최대 줄수
@@ -518,7 +518,8 label_total: Всего
518 label_tracker_new: Новый трекер
518 label_tracker_new: Новый трекер
519 label_tracker_plural: Трекеры
519 label_tracker_plural: Трекеры
520 label_tracker: Трекер
520 label_tracker: Трекер
521 label_updated_time: Обновлен %s назад
521 label_updated_time: Обновлено %s назад
522 label_updated_time_by: Обновлено %s %s назад
522 label_used_by: Используется
523 label_used_by: Используется
523 label_user_activity: "Активность пользователя %s"
524 label_user_activity: "Активность пользователя %s"
524 label_user_mail_no_self_notified: "Не извещать об изменениях, которые я сделал сам"
525 label_user_mail_no_self_notified: "Не извещать об изменениях, которые я сделал сам"
@@ -652,6 +653,7 setting_cross_project_issue_relations: Разрешить пересечение
652 setting_date_format: Формат даты
653 setting_date_format: Формат даты
653 setting_default_language: Язык по умолчанию
654 setting_default_language: Язык по умолчанию
654 setting_default_projects_public: Новые проекты являются общедоступными
655 setting_default_projects_public: Новые проекты являются общедоступными
656 setting_diff_max_lines_displayed: Максимальное число строк для diff
655 setting_display_subprojects_issues: Отображение подпроектов по умолчанию
657 setting_display_subprojects_issues: Отображение подпроектов по умолчанию
656 setting_emails_footer: Подстрочные примечания Email
658 setting_emails_footer: Подстрочные примечания Email
657 setting_enabled_scm: Разрешенные SCM
659 setting_enabled_scm: Разрешенные SCM
@@ -689,6 +691,7 text_comma_separated: Допустимы несколько значений (ч
689 text_default_administrator_account_changed: Учетная запись администратора по умолчанию изменена
691 text_default_administrator_account_changed: Учетная запись администратора по умолчанию изменена
690 text_destroy_time_entries_question: Вы собираетесь удалить %.02f часа(ов) прикрепленных за этой задачей.
692 text_destroy_time_entries_question: Вы собираетесь удалить %.02f часа(ов) прикрепленных за этой задачей.
691 text_destroy_time_entries: Удалить зарегистрированное время
693 text_destroy_time_entries: Удалить зарегистрированное время
694 text_diff_truncated: '... Этот diff ограничен, так как превышает максимальный отображаемый размер.'
692 text_email_delivery_not_configured: "Параметры работы с почтовым сервером не настроены и функция уведомления по email не активна.\nНастроить параметры для Вашего SMTP-сервера Вы можете в файле config/email.yml. Для применения изменений перезапустите приложение."
695 text_email_delivery_not_configured: "Параметры работы с почтовым сервером не настроены и функция уведомления по email не активна.\nНастроить параметры для Вашего SMTP-сервера Вы можете в файле config/email.yml. Для применения изменений перезапустите приложение."
693 text_enumeration_category_reassign_to: 'Назначить им следующее значение:'
696 text_enumeration_category_reassign_to: 'Назначить им следующее значение:'
694 text_enumeration_destroy_question: '%d объект(а,ов) связаны с этим значением.'
697 text_enumeration_destroy_question: '%d объект(а,ов) связаны с этим значением.'
@@ -727,6 +730,3 text_user_wrote: '%s написал(а):'
727 text_wiki_destroy_confirmation: Вы уверены, что хотите удалить данную Wiki и все ее содержимое?
730 text_wiki_destroy_confirmation: Вы уверены, что хотите удалить данную Wiki и все ее содержимое?
728 text_workflow_edit: Выберите роль и трекер для редактирования последовательности состояний
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
@@ -223,6 +223,7 setting_mail_handler_api_enabled: 啟用處理傳入電子郵件的服務
223 setting_mail_handler_api_key: API 金鑰
223 setting_mail_handler_api_key: API 金鑰
224 setting_sequential_project_identifiers: 循序產生專案識別碼
224 setting_sequential_project_identifiers: 循序產生專案識別碼
225 setting_gravatar_enabled: 啟用 Gravatar 全球認證大頭像
225 setting_gravatar_enabled: 啟用 Gravatar 全球認證大頭像
226 setting_diff_max_lines_displayed: 差異顯示行數之最大值
226
227
227 permission_edit_project: 編輯專案
228 permission_edit_project: 編輯專案
228 permission_select_project_modules: 選擇專案模組
229 permission_select_project_modules: 選擇專案模組
@@ -670,6 +671,7 text_enumeration_destroy_question: '目前有 %d 個物件使用此列舉值。'
670 text_enumeration_category_reassign_to: '重新設定其列舉值為:'
671 text_enumeration_category_reassign_to: '重新設定其列舉值為:'
671 text_email_delivery_not_configured: "您尚未設定電子郵件傳送方式,因此提醒選項已被停用。\n請在 config/email.yml 中設定 SMTP 之後,重新啟動 Redmine,以啟用電子郵件提醒選項。"
672 text_email_delivery_not_configured: "您尚未設定電子郵件傳送方式,因此提醒選項已被停用。\n請在 config/email.yml 中設定 SMTP 之後,重新啟動 Redmine,以啟用電子郵件提醒選項。"
672 text_repository_usernames_mapping: "選擇或更新 Redmine 使用者與版本庫使用者之對應關係。\n版本庫中之使用者帳號或電子郵件信箱,與 Redmine 設定相同者,將自動產生對應關係。"
673 text_repository_usernames_mapping: "選擇或更新 Redmine 使用者與版本庫使用者之對應關係。\n版本庫中之使用者帳號或電子郵件信箱,與 Redmine 設定相同者,將自動產生對應關係。"
674 text_diff_truncated: '... 這份差異已被截短以符合顯示行數之最大值'
673
675
674 default_role_manager: 管理人員
676 default_role_manager: 管理人員
675 default_role_developper: 開發人員
677 default_role_developper: 開發人員
@@ -696,5 +698,3 default_activity_development: 開發
696 enumeration_issue_priorities: 項目優先權
698 enumeration_issue_priorities: 項目優先權
697 enumeration_doc_categories: 文件分類
699 enumeration_doc_categories: 文件分類
698 enumeration_activities: 活動 (時間追蹤)
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
@@ -223,6 +223,7 setting_mail_handler_api_enabled: 启用用于接收邮件的服务
223 setting_mail_handler_api_key: API key
223 setting_mail_handler_api_key: API key
224 setting_sequential_project_identifiers: 顺序产生项目标识
224 setting_sequential_project_identifiers: 顺序产生项目标识
225 setting_gravatar_enabled: 使用Gravatar用户头像
225 setting_gravatar_enabled: 使用Gravatar用户头像
226 setting_diff_max_lines_displayed: 查看差别页面上显示的最大行数
226
227
227 permission_edit_project: 编辑项目
228 permission_edit_project: 编辑项目
228 permission_select_project_modules: 选择项目模块
229 permission_select_project_modules: 选择项目模块
@@ -544,7 +545,8 label_send_test_email: 发送测试邮件
544 label_feeds_access_key_created_on: RSS 存取键是在 %s 之前建立的
545 label_feeds_access_key_created_on: RSS 存取键是在 %s 之前建立的
545 label_module_plural: 模块
546 label_module_plural: 模块
546 label_added_time_by: 由 %s 在 %s 之前添加
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 label_jump_to_a_project: 选择一个项目...
550 label_jump_to_a_project: 选择一个项目...
549 label_file_plural: 文件
551 label_file_plural: 文件
550 label_changeset_plural: 变更
552 label_changeset_plural: 变更
@@ -669,6 +671,7 text_enumeration_category_reassign_to: '将它们关联到新的枚举值:'
669 text_enumeration_destroy_question: '%d 个对象被关联到了这个枚举值。'
671 text_enumeration_destroy_question: '%d 个对象被关联到了这个枚举值。'
670 text_email_delivery_not_configured: "邮件参数尚未配置,因此邮件通知功能已被禁用。\n请在config/email.yml中配置您的SMTP服务器信息并重新启动以使其生效。"
672 text_email_delivery_not_configured: "邮件参数尚未配置,因此邮件通知功能已被禁用。\n请在config/email.yml中配置您的SMTP服务器信息并重新启动以使其生效。"
671 text_repository_usernames_mapping: "选择或更新与版本库中的用户名对应的Redmine用户。\n版本库中与Redmine中的同名用户将被自动对应。"
673 text_repository_usernames_mapping: "选择或更新与版本库中的用户名对应的Redmine用户。\n版本库中与Redmine中的同名用户将被自动对应。"
674 text_diff_truncated: '... 差别内容超过了可显示的最大行数并已被截断'
672
675
673 default_role_manager: 管理人员
676 default_role_manager: 管理人员
674 default_role_developper: 开发人员
677 default_role_developper: 开发人员
@@ -695,6 +698,3 default_activity_development: 开发
695 enumeration_issue_priorities: 问题优先级
698 enumeration_issue_priorities: 问题优先级
696 enumeration_doc_categories: 文档类别
699 enumeration_doc_categories: 文档类别
697 enumeration_activities: 活动(时间跟踪)
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
@@ -32,10 +32,19 class DocumentsControllerTest < Test::Unit::TestCase
32 end
32 end
33
33
34 def test_index
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 get :index, :project_id => 'ecookbook'
39 get :index, :project_id => 'ecookbook'
36 assert_response :success
40 assert_response :success
37 assert_template 'index'
41 assert_template 'index'
38 assert_not_nil assigns(:grouped)
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 end
48 end
40
49
41 def test_new_with_one_attachment
50 def test_new_with_one_attachment
@@ -44,7 +44,7 class AccountTest < ActionController::IntegrationTest
44 assert_response :success
44 assert_response :success
45 assert_template "account/lost_password"
45 assert_template "account/lost_password"
46
46
47 post "account/lost_password", :mail => 'jsmith@somenet.foo'
47 post "account/lost_password", :mail => 'jSmith@somenet.foo'
48 assert_redirected_to "account/login"
48 assert_redirected_to "account/login"
49
49
50 token = Token.find(:first)
50 token = Token.find(:first)
@@ -37,6 +37,43 class EnumerationTest < Test::Unit::TestCase
37 assert !Enumeration.find(7).in_use?
37 assert !Enumeration.find(7).in_use?
38 end
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 def test_destroy_with_reassign
77 def test_destroy_with_reassign
41 Enumeration.find(4).destroy(Enumeration.find(6))
78 Enumeration.find(4).destroy(Enumeration.find(6))
42 assert_nil Issue.find(:first, :conditions => {:priority_id => 4})
79 assert_nil Issue.find(:first, :conditions => {:priority_id => 4})
@@ -158,4 +158,10 class UserTest < Test::Unit::TestCase
158 @jsmith.pref.comments_sorting = 'desc'
158 @jsmith.pref.comments_sorting = 'desc'
159 assert @jsmith.wants_comments_in_reverse_order?
159 assert @jsmith.wants_comments_in_reverse_order?
160 end
160 end
161
162 def test_find_by_mail_should_be_case_insensitive
163 u = User.find_by_mail('JSmith@somenet.foo')
164 assert_not_nil u
165 assert_equal 'jsmith@somenet.foo', u.mail
166 end
161 end
167 end
General Comments 0
You need to be logged in to leave comments. Login now