Revision 1297:0a574315af3e .svn/pristine/c8

View differences:

.svn/pristine/c8/c857707aa9105686c2d1d14cc35b377b81d5443d.svn-base
1
if Rails.version < '3'
2
  config.gem 'rack-openid', :lib => 'rack/openid', :version => '>=0.2.1'
3
end
4

  
5
require 'open_id_authentication'
6

  
7
config.middleware.use OpenIdAuthentication
8

  
9
config.after_initialize do
10
  OpenID::Util.logger = Rails.logger
11
  ActionController::Base.send :include, OpenIdAuthentication
12
end
.svn/pristine/c8/c85d4812fb3cf039aab988b037732f423e054ebb.svn-base
1
class AddTrackersFieldsBits < ActiveRecord::Migration
2
  def self.up
3
    add_column :trackers, :fields_bits, :integer, :default => 0
4
  end
5

  
6
  def self.down
7
    remove_column :trackers, :fields_bits
8
  end
9
end
.svn/pristine/c8/c8a667f7907fb16b1a356bf51929831a2d1fff95.svn-base
1
# Spanish translations for Rails
2
# by Francisco Fernando García Nieto (ffgarcianieto@gmail.com)
3
# Redmine spanish translation:
4
# by J. Cayetano Delgado (Cayetano _dot_ Delgado _at_ ioko _dot_ com)
5

  
6
es:
7
  number:
8
    # Used in number_with_delimiter()
9
    # These are also the defaults for 'currency', 'percentage', 'precision', and 'human'
10
    format:
11
      # Sets the separator between the units, for more precision (e.g. 1.0 / 2.0 == 0.5)
12
      separator: ","
13
      # Delimets thousands (e.g. 1,000,000 is a million) (always in groups of three)
14
      delimiter: "."
15
      # Number of decimals, behind the separator (1 with a precision of 2 gives: 1.00)
16
      precision: 3
17

  
18
    # Used in number_to_currency()
19
    currency:
20
      format:
21
        # Where is the currency sign? %u is the currency unit, %n the number (default: $5.00)
22
        format: "%n %u"
23
        unit: "€"
24
        # These three are to override number.format and are optional
25
        separator: ","
26
        delimiter: "."
27
        precision: 2
28

  
29
    # Used in number_to_percentage()
30
    percentage:
31
      format:
32
        # These three are to override number.format and are optional
33
        # separator:
34
        delimiter: ""
35
        # precision:
36

  
37
    # Used in number_to_precision()
38
    precision:
39
      format:
40
        # These three are to override number.format and are optional
41
        # separator:
42
        delimiter: ""
43
        # precision:
44

  
45
    # Used in number_to_human_size()
46
    human:
47
      format:
48
        # These three are to override number.format and are optional
49
        # separator:
50
        delimiter: ""
51
        precision: 3
52
      storage_units:
53
        format: "%n %u"
54
        units:
55
          byte:
56
            one: "Byte"
57
            other: "Bytes"
58
          kb: "KB"
59
          mb: "MB"
60
          gb: "GB"
61
          tb: "TB"
62

  
63
  # Used in distance_of_time_in_words(), distance_of_time_in_words_to_now(), time_ago_in_words()
64
  datetime:
65
    distance_in_words:
66
      half_a_minute: "medio minuto"
67
      less_than_x_seconds:
68
        one:  "menos de 1 segundo"
69
        other: "menos de %{count} segundos"
70
      x_seconds:
71
        one:  "1 segundo"
72
        other: "%{count} segundos"
73
      less_than_x_minutes:
74
        one:  "menos de 1 minuto"
75
        other: "menos de %{count} minutos"
76
      x_minutes:
77
        one:  "1 minuto"
78
        other: "%{count} minutos"
79
      about_x_hours:
80
        one:  "alrededor de 1 hora"
81
        other: "alrededor de %{count} horas"
82
      x_hours:
83
        one:   "1 hour"
84
        other: "%{count} hours"
85
      x_days:
86
        one:  "1 día"
87
        other: "%{count} días"
88
      about_x_months:
89
        one:  "alrededor de 1 mes"
90
        other: "alrededor de %{count} meses"
91
      x_months:
92
        one:  "1 mes"
93
        other: "%{count} meses"
94
      about_x_years:
95
        one:  "alrededor de 1 año"
96
        other: "alrededor de %{count} años"
97
      over_x_years:
98
        one:  "más de 1 año"
99
        other: "más de %{count} años"
100
      almost_x_years:
101
        one:   "casi 1 año"
102
        other: "casi %{count} años"
103

  
104
  activerecord:
105
    errors:
106
      template:
107
        header:
108
          one:   "no se pudo guardar este %{model} porque se encontró 1 error"
109
          other:  "no se pudo guardar este %{model} porque se encontraron %{count} errores"
110
        # The variable :count is also available
111
        body: "Se encontraron problemas con los siguientes campos:"
112

  
113
      # The values :model, :attribute and :value are always available for interpolation
114
      # The value :count is available when applicable. Can be used for pluralization.
115
      messages:
116
        inclusion: "no está incluido en la lista"
117
        exclusion: "está reservado"
118
        invalid: "no es válido"
119
        confirmation: "no coincide con la confirmación"
120
        accepted: "debe ser aceptado"
121
        empty: "no puede estar vacío"
122
        blank: "no puede estar en blanco"
123
        too_long: "es demasiado largo (%{count} caracteres máximo)"
124
        too_short: "es demasiado corto (%{count} caracteres mínimo)"
125
        wrong_length: "no tiene la longitud correcta (%{count} caracteres exactos)"
126
        taken: "ya está en uso"
127
        not_a_number: "no es un número"
128
        greater_than: "debe ser mayor que %{count}"
129
        greater_than_or_equal_to: "debe ser mayor que o igual a %{count}"
130
        equal_to: "debe ser igual a %{count}"
131
        less_than: "debe ser menor que %{count}"
132
        less_than_or_equal_to: "debe ser menor que o igual a %{count}"
133
        odd: "debe ser impar"
134
        even: "debe ser par"
135
        greater_than_start_date: "debe ser posterior a la fecha de comienzo"
136
        not_same_project: "no pertenece al mismo proyecto"
137
        circular_dependency: "Esta relación podría crear una dependencia circular"
138
        cant_link_an_issue_with_a_descendant: "Esta petición no puede ser ligada a una de estas tareas"
139

  
140
        # Append your own errors here or at the model/attributes scope.
141

  
142
      models:
143
        # Overrides default messages
144

  
145
      attributes:
146
        # Overrides model and default messages.
147

  
148
  direction: ltr
149
  date:
150
    formats:
151
      # Use the strftime parameters for formats.
152
      # When no format has been given, it uses default.
153
      # You can provide other formats here if you like!
154
      default: "%Y-%m-%d"
155
      short: "%d de %b"
156
      long: "%d de %B de %Y"
157

  
158
    day_names: [Domingo, Lunes, Martes, Miércoles, Jueves, Viernes, Sábado]
159
    abbr_day_names: [Dom, Lun, Mar, Mie, Jue, Vie, Sab]
160

  
161
    # Don't forget the nil at the beginning; there's no such thing as a 0th month
162
    month_names: [~, Enero, Febrero, Marzo, Abril, Mayo, Junio, Julio, Agosto, Septiembre, Octubre, Noviembre, Diciembre]
163
    abbr_month_names: [~, Ene, Feb, Mar, Abr, May, Jun, Jul, Ago, Sep, Oct, Nov, Dic]
164
    # Used in date_select and datime_select.
165
    order:
166
      - :year
167
      - :month
168
      - :day
169

  
170
  time:
171
    formats:
172
      default: "%A, %d de %B de %Y %H:%M:%S %z"
173
      time: "%H:%M"
174
      short: "%d de %b %H:%M"
175
      long: "%d de %B de %Y %H:%M"
176
    am: "am"
177
    pm: "pm"
178

  
179
# Used in array.to_sentence.
180
  support:
181
    array:
182
      sentence_connector: "y"
183

  
184
  actionview_instancetag_blank_option: Por favor seleccione
185

  
186
  button_activate: Activar
187
  button_add: Añadir
188
  button_annotate: Anotar
189
  button_apply: Aceptar
190
  button_archive: Archivar
191
  button_back: Atrás
192
  button_cancel: Cancelar
193
  button_change: Cambiar
194
  button_change_password: Cambiar contraseña
195
  button_check_all: Seleccionar todo
196
  button_clear: Anular
197
  button_configure: Configurar
198
  button_copy: Copiar
199
  button_create: Crear
200
  button_delete: Borrar
201
  button_download: Descargar
202
  button_edit: Modificar
203
  button_list: Listar
204
  button_lock: Bloquear
205
  button_log_time: Tiempo dedicado
206
  button_login: Conexión
207
  button_move: Mover
208
  button_quote: Citar
209
  button_rename: Renombrar
210
  button_reply: Responder
211
  button_reset: Reestablecer
212
  button_rollback: Volver a esta versión
213
  button_save: Guardar
214
  button_sort: Ordenar
215
  button_submit: Aceptar
216
  button_test: Probar
217
  button_unarchive: Desarchivar
218
  button_uncheck_all: No seleccionar nada
219
  button_unlock: Desbloquear
220
  button_unwatch: No monitorizar
221
  button_update: Actualizar
222
  button_view: Ver
223
  button_watch: Monitorizar
224
  default_activity_design: Diseño
225
  default_activity_development: Desarrollo
226
  default_doc_category_tech: Documentación técnica
227
  default_doc_category_user: Documentación de usuario
228
  default_issue_status_in_progress: En curso
229
  default_issue_status_closed: Cerrada
230
  default_issue_status_feedback: Comentarios
231
  default_issue_status_new: Nueva
232
  default_issue_status_rejected: Rechazada
233
  default_issue_status_resolved: Resuelta
234
  default_priority_high: Alta
235
  default_priority_immediate: Inmediata
236
  default_priority_low: Baja
237
  default_priority_normal: Normal
238
  default_priority_urgent: Urgente
239
  default_role_developer: Desarrollador
240
  default_role_manager: Jefe de proyecto
241
  default_role_reporter: Informador
242
  default_tracker_bug: Errores
243
  default_tracker_feature: Tareas
244
  default_tracker_support: Soporte
245
  enumeration_activities: Actividades (tiempo dedicado)
246
  enumeration_doc_categories: Categorías del documento
247
  enumeration_issue_priorities: Prioridad de las peticiones
248
  error_can_t_load_default_data: "No se ha podido cargar la configuración por defecto: %{value}"
249
  error_issue_not_found_in_project: 'La petición no se encuentra o no está asociada a este proyecto'
250
  error_scm_annotate: "No existe la entrada o no ha podido ser anotada"
251
  error_scm_annotate_big_text_file: "La entrada no puede anotarse, al superar el tamaño máximo para ficheros de texto."
252
  error_scm_command_failed: "Se produjo un error al acceder al repositorio: %{value}"
253
  error_scm_not_found: "La entrada y/o la revisión no existe en el repositorio."
254
  field_account: Cuenta
255
  field_activity: Actividad
256
  field_admin: Administrador
257
  field_assignable: Se pueden asignar peticiones a este perfil
258
  field_assigned_to: Asignado a
259
  field_attr_firstname: Cualidad del nombre
260
  field_attr_lastname: Cualidad del apellido
261
  field_attr_login: Cualidad del identificador
262
  field_attr_mail: Cualidad del Email
263
  field_auth_source: Modo de identificación
264
  field_author: Autor
265
  field_base_dn: DN base
266
  field_category: Categoría
267
  field_column_names: Columnas
268
  field_comments: Comentario
269
  field_comments_sorting: Mostrar comentarios
270
  field_created_on: Creado
271
  field_default_value: Estado por defecto
272
  field_delay: Retraso
273
  field_description: Descripción
274
  field_done_ratio: "% Realizado"
275
  field_downloads: Descargas
276
  field_due_date: Fecha fin
277
  field_effective_date: Fecha
278
  field_estimated_hours: Tiempo estimado
279
  field_field_format: Formato
280
  field_filename: Fichero
281
  field_filesize: Tamaño
282
  field_firstname: Nombre
283
  field_fixed_version: Versión prevista
284
  field_hide_mail: Ocultar mi dirección de correo
285
  field_homepage: Sitio web
286
  field_host: Anfitrión
287
  field_hours: Horas
288
  field_identifier: Identificador
289
  field_is_closed: Petición resuelta
290
  field_is_default: Estado por defecto
291
  field_is_filter: Usado como filtro
292
  field_is_for_all: Para todos los proyectos
293
  field_is_in_roadmap: Consultar las peticiones en la planificación
294
  field_is_public: Público
295
  field_is_required: Obligatorio
296
  field_issue: Petición
297
  field_issue_to: Petición relacionada
298
  field_language: Idioma
299
  field_last_login_on: Última conexión
300
  field_lastname: Apellido
301
  field_login: Identificador
302
  field_mail: Correo electrónico
303
  field_mail_notification: Notificaciones por correo
304
  field_max_length: Longitud máxima
305
  field_min_length: Longitud mínima
306
  field_name: Nombre
307
  field_new_password: Nueva contraseña
308
  field_notes: Notas
309
  field_onthefly: Creación del usuario "al vuelo"
310
  field_parent: Proyecto padre
311
  field_parent_title: Página padre
312
  field_password: Contraseña
313
  field_password_confirmation: Confirmación
314
  field_port: Puerto
315
  field_possible_values: Valores posibles
316
  field_priority: Prioridad
317
  field_project: Proyecto
318
  field_redirect_existing_links: Redireccionar enlaces existentes
319
  field_regexp: Expresión regular
320
  field_role: Perfil
321
  field_searchable: Incluir en las búsquedas
322
  field_spent_on: Fecha
323
  field_start_date: Fecha de inicio
324
  field_start_page: Página principal
325
  field_status: Estado
326
  field_subject: Asunto
327
  field_subproject: Proyecto secundario
328
  field_summary: Resumen
329
  field_time_zone: Zona horaria
330
  field_title: Título
331
  field_tracker: Tipo
332
  field_type: Tipo
333
  field_updated_on: Actualizado
334
  field_url: URL
335
  field_user: Usuario
336
  field_value: Valor
337
  field_version: Versión
338
  general_csv_decimal_separator: ','
339
  general_csv_encoding: ISO-8859-15
340
  general_csv_separator: ';'
341
  general_first_day_of_week: '1'
342
  general_lang_name: 'Español'
343
  general_pdf_encoding: UTF-8
344
  general_text_No: 'No'
345
  general_text_Yes: 'Sí'
346
  general_text_no: 'no'
347
  general_text_yes: 'sí'
348
  gui_validation_error: 1 error
349
  gui_validation_error_plural: "%{count} errores"
350
  label_activity: Actividad
351
  label_add_another_file: Añadir otro fichero
352
  label_add_note: Añadir una nota
353
  label_added: añadido
354
  label_added_time_by: "Añadido por %{author} hace %{age}"
355
  label_administration: Administración
356
  label_age: Edad
357
  label_ago: hace
358
  label_all: todos
359
  label_all_time: todo el tiempo
360
  label_all_words: Todas las palabras
361
  label_and_its_subprojects: "%{value} y proyectos secundarios"
362
  label_applied_status: Aplicar estado
363
  label_assigned_to_me_issues: Peticiones que me están asignadas
364
  label_associated_revisions: Revisiones asociadas
365
  label_attachment: Fichero
366
  label_attachment_delete: Borrar el fichero
367
  label_attachment_new: Nuevo fichero
368
  label_attachment_plural: Ficheros
369
  label_attribute: Cualidad
370
  label_attribute_plural: Cualidades
371
  label_auth_source: Modo de autenticación
372
  label_auth_source_new: Nuevo modo de autenticación
373
  label_auth_source_plural: Modos de autenticación
374
  label_authentication: Autenticación
375
  label_blocked_by: bloqueado por
376
  label_blocks: bloquea a
377
  label_board: Foro
378
  label_board_new: Nuevo foro
379
  label_board_plural: Foros
380
  label_boolean: Booleano
381
  label_browse: Hojear
382
  label_bulk_edit_selected_issues: Editar las peticiones seleccionadas
383
  label_calendar: Calendario
384
  label_change_plural: Cambios
385
  label_change_properties: Cambiar propiedades
386
  label_change_status: Cambiar el estado
387
  label_change_view_all: Ver todos los cambios
388
  label_changes_details: Detalles de todos los cambios
389
  label_changeset_plural: Cambios
390
  label_chronological_order: En orden cronológico
391
  label_closed_issues: cerrada
392
  label_closed_issues_plural: cerradas
393
  label_x_open_issues_abbr_on_total:
394
    zero:  0 abiertas / %{total}
395
    one:   1 abierta / %{total}
396
    other: "%{count} abiertas / %{total}"
397
  label_x_open_issues_abbr:
398
    zero:  0 abiertas
399
    one:   1 abierta
400
    other: "%{count} abiertas"
401
  label_x_closed_issues_abbr:
402
    zero:  0 cerradas
403
    one:   1 cerrada
404
    other: "%{count} cerradas"
405
  label_comment: Comentario
406
  label_comment_add: Añadir un comentario
407
  label_comment_added: Comentario añadido
408
  label_comment_delete: Borrar comentarios
409
  label_comment_plural: Comentarios
410
  label_x_comments:
411
    zero: sin comentarios
412
    one: 1 comentario
413
    other: "%{count} comentarios"
414
  label_commits_per_author: Commits por autor
415
  label_commits_per_month: Commits por mes
416
  label_confirmation: Confirmación
417
  label_contains: contiene
418
  label_copied: copiado
419
  label_copy_workflow_from: Copiar flujo de trabajo desde
420
  label_current_status: Estado actual
421
  label_current_version: Versión actual
422
  label_custom_field: Campo personalizado
423
  label_custom_field_new: Nuevo campo personalizado
424
  label_custom_field_plural: Campos personalizados
425
  label_date: Fecha
426
  label_date_from: Desde
427
  label_date_range: Rango de fechas
428
  label_date_to: Hasta
429
  label_day_plural: días
430
  label_default: Por defecto
431
  label_default_columns: Columnas por defecto
432
  label_deleted: suprimido
433
  label_details: Detalles
434
  label_diff_inline: en línea
435
  label_diff_side_by_side: cara a cara
436
  label_disabled: deshabilitado
437
  label_display_per_page: "Por página: %{value}"
438
  label_document: Documento
439
  label_document_added: Documento añadido
440
  label_document_new: Nuevo documento
441
  label_document_plural: Documentos
442
  label_download: "%{count} Descarga"
443
  label_download_plural: "%{count} Descargas"
444
  label_downloads_abbr: D/L
445
  label_duplicated_by: duplicada por
446
  label_duplicates: duplicada de
447
  label_end_to_end: fin a fin
448
  label_end_to_start: fin a principio
449
  label_enumeration_new: Nuevo valor
450
  label_enumerations: Listas de valores
451
  label_environment: Entorno
452
  label_equals: igual
453
  label_example: Ejemplo
454
  label_export_to: 'Exportar a:'
455
  label_f_hour: "%{value} hora"
456
  label_f_hour_plural: "%{value} horas"
457
  label_feed_plural: Feeds
458
  label_feeds_access_key_created_on: "Clave de acceso por RSS creada hace %{value}"
459
  label_file_added: Fichero añadido
460
  label_file_plural: Archivos
461
  label_filter_add: Añadir el filtro
462
  label_filter_plural: Filtros
463
  label_float: Flotante
464
  label_follows: posterior a
465
  label_gantt: Gantt
466
  label_general: General
467
  label_generate_key: Generar clave
468
  label_help: Ayuda
469
  label_history: Histórico
470
  label_home: Inicio
471
  label_in: en
472
  label_in_less_than: en menos que
473
  label_in_more_than: en más que
474
  label_incoming_emails: Correos entrantes
475
  label_index_by_date: Índice por fecha
476
  label_index_by_title: Índice por título
477
  label_information: Información
478
  label_information_plural: Información
479
  label_integer: Número
480
  label_internal: Interno
481
  label_issue: Petición
482
  label_issue_added: Petición añadida
483
  label_issue_category: Categoría de las peticiones
484
  label_issue_category_new: Nueva categoría
485
  label_issue_category_plural: Categorías de las peticiones
486
  label_issue_new: Nueva petición
487
  label_issue_plural: Peticiones
488
  label_issue_status: Estado de la petición
489
  label_issue_status_new: Nuevo estado
490
  label_issue_status_plural: Estados de las peticiones
491
  label_issue_tracking: Peticiones
492
  label_issue_updated: Petición actualizada
493
  label_issue_view_all: Ver todas las peticiones
494
  label_issue_watchers: Seguidores
495
  label_issues_by: "Peticiones por %{value}"
496
  label_jump_to_a_project: Ir al proyecto...
497
  label_language_based: Basado en el idioma
498
  label_last_changes: "últimos %{count} cambios"
499
  label_last_login: Última conexión
500
  label_last_month: último mes
501
  label_last_n_days: "últimos %{count} días"
502
  label_last_week: última semana
503
  label_latest_revision: Última revisión
504
  label_latest_revision_plural: Últimas revisiones
505
  label_ldap_authentication: Autenticación LDAP
506
  label_less_than_ago: hace menos de
507
  label_list: Lista
508
  label_loading: Cargando...
509
  label_logged_as: Conectado como
510
  label_login: Conexión
511
  label_logout: Desconexión
512
  label_max_size: Tamaño máximo
513
  label_me: yo mismo
514
  label_member: Miembro
515
  label_member_new: Nuevo miembro
516
  label_member_plural: Miembros
517
  label_message_last: Último mensaje
518
  label_message_new: Nuevo mensaje
519
  label_message_plural: Mensajes
520
  label_message_posted: Mensaje añadido
521
  label_min_max_length: Longitud mín - máx
522
  label_modification: "%{count} modificación"
523
  label_modification_plural: "%{count} modificaciones"
524
  label_modified: modificado
525
  label_module_plural: Módulos
526
  label_month: Mes
527
  label_months_from: meses de
528
  label_more: Más
529
  label_more_than_ago: hace más de
530
  label_my_account: Mi cuenta
531
  label_my_page: Mi página
532
  label_my_projects: Mis proyectos
533
  label_new: Nuevo
534
  label_new_statuses_allowed: Nuevos estados autorizados
535
  label_news: Noticia
536
  label_news_added: Noticia añadida
537
  label_news_latest: Últimas noticias
538
  label_news_new: Nueva noticia
539
  label_news_plural: Noticias
540
  label_news_view_all: Ver todas las noticias
541
  label_next: Siguiente
542
  label_no_change_option: (Sin cambios)
543
  label_no_data: Ningún dato disponible
544
  label_nobody: nadie
545
  label_none: ninguno
546
  label_not_contains: no contiene
547
  label_not_equals: no igual
548
  label_open_issues: abierta
549
  label_open_issues_plural: abiertas
550
  label_optional_description: Descripción opcional
551
  label_options: Opciones
552
  label_overall_activity: Actividad global
553
  label_overview: Vistazo
554
  label_password_lost: ¿Olvidaste la contraseña?
555
  label_per_page: Por página
556
  label_permissions: Permisos
557
  label_permissions_report: Informe de permisos
558
  label_personalize_page: Personalizar esta página
559
  label_planning: Planificación
560
  label_please_login: Conexión
561
  label_plugins: Extensiones
562
  label_precedes: anterior a
563
  label_preferences: Preferencias
564
  label_preview: Previsualizar
565
  label_previous: Anterior
566
  label_project: Proyecto
567
  label_project_all: Todos los proyectos
568
  label_project_latest: Últimos proyectos
569
  label_project_new: Nuevo proyecto
570
  label_project_plural: Proyectos
571
  label_x_projects:
572
    zero:  sin proyectos
573
    one:   1 proyecto
574
    other: "%{count} proyectos"
575
  label_public_projects: Proyectos públicos
576
  label_query: Consulta personalizada
577
  label_query_new: Nueva consulta
578
  label_query_plural: Consultas personalizadas
579
  label_read: Leer...
580
  label_register: Registrar
581
  label_registered_on: Inscrito el
582
  label_registration_activation_by_email: activación de cuenta por correo
583
  label_registration_automatic_activation: activación automática de cuenta
584
  label_registration_manual_activation: activación manual de cuenta
585
  label_related_issues: Peticiones relacionadas
586
  label_relates_to: relacionada con
587
  label_relation_delete: Eliminar relación
588
  label_relation_new: Nueva relación
589
  label_renamed: renombrado
590
  label_reply_plural: Respuestas
591
  label_report: Informe
592
  label_report_plural: Informes
593
  label_reported_issues: Peticiones registradas por mí
594
  label_repository: Repositorio
595
  label_repository_plural: Repositorios
596
  label_result_plural: Resultados
597
  label_reverse_chronological_order: En orden cronológico inverso
598
  label_revision: Revisión
599
  label_revision_plural: Revisiones
600
  label_roadmap: Planificación
601
  label_roadmap_due_in: "Finaliza en %{value}"
602
  label_roadmap_no_issues: No hay peticiones para esta versión
603
  label_roadmap_overdue: "%{value} tarde"
604
  label_role: Perfil
605
  label_role_and_permissions: Perfiles y permisos
606
  label_role_new: Nuevo perfil
607
  label_role_plural: Perfiles
608
  label_scm: SCM
609
  label_search: Búsqueda
610
  label_search_titles_only: Buscar sólo en títulos
611
  label_send_information: Enviar información de la cuenta al usuario
612
  label_send_test_email: Enviar un correo de prueba
613
  label_settings: Configuración
614
  label_show_completed_versions: Muestra las versiones terminadas
615
  label_sort_by: "Ordenar por %{value}"
616
  label_sort_higher: Subir
617
  label_sort_highest: Primero
618
  label_sort_lower: Bajar
619
  label_sort_lowest: Último
620
  label_spent_time: Tiempo dedicado
621
  label_start_to_end: principio a fin
622
  label_start_to_start: principio a principio
623
  label_statistics: Estadísticas
624
  label_stay_logged_in: Recordar conexión
625
  label_string: Texto
626
  label_subproject_plural: Proyectos secundarios
627
  label_text: Texto largo
628
  label_theme: Tema
629
  label_this_month: este mes
630
  label_this_week: esta semana
631
  label_this_year: este año
632
  label_time_tracking: Control de tiempo
633
  label_today: hoy
634
  label_topic_plural: Temas
635
  label_total: Total
636
  label_tracker: Tipo
637
  label_tracker_new: Nuevo tipo
638
  label_tracker_plural: Tipos de peticiones
639
  label_updated_time: "Actualizado hace %{value}"
640
  label_updated_time_by: "Actualizado por %{author} hace %{age}"
641
  label_used_by: Utilizado por
642
  label_user: Usuario
643
  label_user_activity: "Actividad de %{value}"
644
  label_user_mail_no_self_notified: "No quiero ser avisado de cambios hechos por mí"
645
  label_user_mail_option_all: "Para cualquier evento en todos mis proyectos"
646
  label_user_mail_option_selected: "Para cualquier evento de los proyectos seleccionados..."
647
  label_user_new: Nuevo usuario
648
  label_user_plural: Usuarios
649
  label_version: Versión
650
  label_version_new: Nueva versión
651
  label_version_plural: Versiones
652
  label_view_diff: Ver diferencias
653
  label_view_revisions: Ver las revisiones
654
  label_watched_issues: Peticiones monitorizadas
655
  label_week: Semana
656
  label_wiki: Wiki
657
  label_wiki_edit: Modificación Wiki
658
  label_wiki_edit_plural: Modificaciones Wiki
659
  label_wiki_page: Página Wiki
660
  label_wiki_page_plural: Páginas Wiki
661
  label_workflow: Flujo de trabajo
662
  label_year: Año
663
  label_yesterday: ayer
664
  mail_body_account_activation_request: "Se ha inscrito un nuevo usuario (%{value}). La cuenta está pendiende de aprobación:"
665
  mail_body_account_information: Información sobre su cuenta
666
  mail_body_account_information_external: "Puede usar su cuenta %{value} para conectarse."
667
  mail_body_lost_password: 'Para cambiar su contraseña, haga clic en el siguiente enlace:'
668
  mail_body_register: 'Para activar su cuenta, haga clic en el siguiente enlace:'
669
  mail_body_reminder: "%{count} peticion(es) asignadas a tí finalizan en los próximos %{days} días:"
670
  mail_subject_account_activation_request: "Petición de activación de cuenta %{value}"
671
  mail_subject_lost_password: "Tu contraseña del %{value}"
672
  mail_subject_register: "Activación de la cuenta del %{value}"
673
  mail_subject_reminder: "%{count} peticion(es) finalizan en los próximos %{days} días"
674
  notice_account_activated: Su cuenta ha sido activada. Ya puede conectarse.
675
  notice_account_invalid_creditentials: Usuario o contraseña inválido.
676
  notice_account_lost_email_sent: Se le ha enviado un correo con instrucciones para elegir una nueva contraseña.
677
  notice_account_password_updated: Contraseña modificada correctamente.
678
  notice_account_pending: "Su cuenta ha sido creada y está pendiende de la aprobación por parte del administrador."
679
  notice_account_register_done: Cuenta creada correctamente. Para activarla, haga clic sobre el enlace que le ha sido enviado por correo.
680
  notice_account_unknown_email: Usuario desconocido.
681
  notice_account_updated: Cuenta actualizada correctamente.
682
  notice_account_wrong_password: Contraseña incorrecta.
683
  notice_can_t_change_password: Esta cuenta utiliza una fuente de autenticación externa. No es posible cambiar la contraseña.
684
  notice_default_data_loaded: Configuración por defecto cargada correctamente.
685
  notice_email_error: "Ha ocurrido un error mientras enviando el correo (%{value})"
686
  notice_email_sent: "Se ha enviado un correo a %{value}"
687
  notice_failed_to_save_issues: "Imposible grabar %{count} peticion(es) de %{total} seleccionada(s): %{ids}."
688
  notice_feeds_access_key_reseted: Su clave de acceso para RSS ha sido reiniciada.
689
  notice_file_not_found: La página a la que intenta acceder no existe.
690
  notice_locking_conflict: Los datos han sido modificados por otro usuario.
691
  notice_no_issue_selected: "Ninguna petición seleccionada. Por favor, compruebe la petición que quiere modificar"
692
  notice_not_authorized: No tiene autorización para acceder a esta página.
693
  notice_successful_connection: Conexión correcta.
694
  notice_successful_create: Creación correcta.
695
  notice_successful_delete: Borrado correcto.
696
  notice_successful_update: Modificación correcta.
697
  notice_unable_delete_version: No se puede borrar la versión
698
  permission_add_issue_notes: Añadir notas
699
  permission_add_issue_watchers: Añadir seguidores
700
  permission_add_issues: Añadir peticiones
701
  permission_add_messages: Enviar mensajes
702
  permission_browse_repository: Hojear repositiorio
703
  permission_comment_news: Comentar noticias
704
  permission_commit_access: Acceso de escritura
705
  permission_delete_issues: Borrar peticiones
706
  permission_delete_messages: Borrar mensajes
707
  permission_delete_own_messages: Borrar mensajes propios
708
  permission_delete_wiki_pages: Borrar páginas wiki
709
  permission_delete_wiki_pages_attachments: Borrar ficheros
710
  permission_edit_issue_notes: Modificar notas
711
  permission_edit_issues: Modificar peticiones
712
  permission_edit_messages: Modificar mensajes
713
  permission_edit_own_issue_notes: Modificar notas propias
714
  permission_edit_own_messages: Editar mensajes propios
715
  permission_edit_own_time_entries: Modificar tiempos dedicados propios
716
  permission_edit_project: Modificar proyecto
717
  permission_edit_time_entries: Modificar tiempos dedicados
718
  permission_edit_wiki_pages: Modificar páginas wiki
719
  permission_log_time: Anotar tiempo dedicado
720
  permission_manage_boards: Administrar foros
721
  permission_manage_categories: Administrar categorías de peticiones
722
  permission_manage_documents: Administrar documentos
723
  permission_manage_files: Administrar ficheros
724
  permission_manage_issue_relations: Administrar relación con otras peticiones
725
  permission_manage_members: Administrar miembros
726
  permission_manage_news: Administrar noticias
727
  permission_manage_public_queries: Administrar consultas públicas
728
  permission_manage_repository: Administrar repositorio
729
  permission_manage_versions: Administrar versiones
730
  permission_manage_wiki: Administrar wiki
731
  permission_move_issues: Mover peticiones
732
  permission_protect_wiki_pages: Proteger páginas wiki
733
  permission_rename_wiki_pages: Renombrar páginas wiki
734
  permission_save_queries: Grabar consultas
735
  permission_select_project_modules: Seleccionar módulos del proyecto
736
  permission_view_calendar: Ver calendario
737
  permission_view_changesets: Ver cambios
738
  permission_view_documents: Ver documentos
739
  permission_view_files: Ver ficheros
740
  permission_view_gantt: Ver diagrama de Gantt
741
  permission_view_issue_watchers: Ver lista de seguidores
742
  permission_view_messages: Ver mensajes
743
  permission_view_time_entries: Ver tiempo dedicado
744
  permission_view_wiki_edits: Ver histórico del wiki
745
  permission_view_wiki_pages: Ver wiki
746
  project_module_boards: Foros
747
  project_module_documents: Documentos
748
  project_module_files: Ficheros
749
  project_module_issue_tracking: Peticiones
750
  project_module_news: Noticias
751
  project_module_repository: Repositorio
752
  project_module_time_tracking: Control de tiempo
753
  project_module_wiki: Wiki
754
  setting_activity_days_default: Días a mostrar en la actividad de proyecto
755
  setting_app_subtitle: Subtítulo de la aplicación
756
  setting_app_title: Título de la aplicación
757
  setting_attachment_max_size: Tamaño máximo del fichero
758
  setting_autofetch_changesets: Autorellenar los commits del repositorio
759
  setting_autologin: Conexión automática
760
  setting_bcc_recipients: Ocultar las copias de carbón (bcc)
761
  setting_commit_fix_keywords: Palabras clave para la corrección
762
  setting_commit_ref_keywords: Palabras clave para la referencia
763
  setting_cross_project_issue_relations: Permitir relacionar peticiones de distintos proyectos
764
  setting_date_format: Formato de fecha
765
  setting_default_language: Idioma por defecto
766
  setting_default_projects_public: Los proyectos nuevos son públicos por defecto
767
  setting_diff_max_lines_displayed: Número máximo de diferencias mostradas
768
  setting_display_subprojects_issues: Mostrar por defecto peticiones de proy. secundarios en el principal
769
  setting_emails_footer: Pie de mensajes
770
  setting_enabled_scm: Activar SCM
771
  setting_feeds_limit: Límite de contenido para sindicación
772
  setting_gravatar_enabled: Usar iconos de usuario (Gravatar)
773
  setting_host_name: Nombre y ruta del servidor
774
  setting_issue_list_default_columns: Columnas por defecto para la lista de peticiones
775
  setting_issues_export_limit: Límite de exportación de peticiones
776
  setting_login_required: Se requiere identificación
777
  setting_mail_from: Correo desde el que enviar mensajes
778
  setting_mail_handler_api_enabled: Activar SW para mensajes entrantes
779
  setting_mail_handler_api_key: Clave de la API
780
  setting_per_page_options: Objetos por página
781
  setting_plain_text_mail: sólo texto plano (no HTML)
782
  setting_protocol: Protocolo
783
  setting_self_registration: Registro permitido
784
  setting_sequential_project_identifiers: Generar identificadores de proyecto
785
  setting_sys_api_enabled: Habilitar SW para la gestión del repositorio
786
  setting_text_formatting: Formato de texto
787
  setting_time_format: Formato de hora
788
  setting_user_format: Formato de nombre de usuario
789
  setting_welcome_text: Texto de bienvenida
790
  setting_wiki_compression: Compresión del historial del Wiki
791
  status_active: activo
792
  status_locked: bloqueado
793
  status_registered: registrado
794
  text_are_you_sure: ¿Está seguro?
795
  text_assign_time_entries_to_project: Asignar las horas al proyecto
796
  text_caracters_maximum: "%{count} caracteres como máximo."
797
  text_caracters_minimum: "%{count} caracteres como mínimo."
798
  text_comma_separated: Múltiples valores permitidos (separados por coma).
799
  text_default_administrator_account_changed: Cuenta de administrador por defecto modificada
800
  text_destroy_time_entries: Borrar las horas
801
  text_destroy_time_entries_question: Existen %{hours} horas asignadas a la petición que quiere borrar. ¿Qué quiere hacer?
802
  text_diff_truncated: '... Diferencia truncada por exceder el máximo tamaño visualizable.'
803
  text_email_delivery_not_configured: "Las notificaciones están desactivadas porque el servidor de correo no está configurado.\nConfigure el servidor de SMTP en config/configuration.yml y reinicie la aplicación para activar los cambios."
804
  text_enumeration_category_reassign_to: 'Reasignar al siguiente valor:'
805
  text_enumeration_destroy_question: "%{count} objetos con este valor asignado."
806
  text_file_repository_writable: Se puede escribir en el repositorio
807
  text_issue_added: "Petición %{id} añadida por %{author}."
808
  text_issue_category_destroy_assignments: Dejar las peticiones sin categoría
809
  text_issue_category_destroy_question: "Algunas peticiones (%{count}) están asignadas a esta categoría. ¿Qué desea hacer?"
810
  text_issue_category_reassign_to: Reasignar las peticiones a la categoría
811
  text_issue_updated: "La petición %{id} ha sido actualizada por %{author}."
812
  text_issues_destroy_confirmation: '¿Seguro que quiere borrar las peticiones seleccionadas?'
813
  text_issues_ref_in_commit_messages: Referencia y petición de corrección en los mensajes
814
  text_length_between: "Longitud entre %{min} y %{max} caracteres."
815
  text_load_default_configuration: Cargar la configuración por defecto
816
  text_min_max_length_info: 0 para ninguna restricción
817
  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."
818
  text_project_destroy_confirmation: ¿Estás seguro de querer eliminar el proyecto?
819
  text_reassign_time_entries: 'Reasignar las horas a esta petición:'
820
  text_regexp_info: ej. ^[A-Z0-9]+$
821
  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."
822
  text_rmagick_available: RMagick disponible (opcional)
823
  text_select_mail_notifications: Seleccionar los eventos a notificar
824
  text_select_project_modules: 'Seleccione los módulos a activar para este proyecto:'
825
  text_status_changed_by_changeset: "Aplicado en los cambios %{value}"
826
  text_subprojects_destroy_warning: "Los proyectos secundarios: %{value} también se eliminarán"
827
  text_tip_issue_begin_day: tarea que comienza este día
828
  text_tip_issue_begin_end_day: tarea que comienza y termina este día
829
  text_tip_issue_end_day: tarea que termina este día
830
  text_tracker_no_workflow: No hay ningún flujo de trabajo definido para este tipo de petición
831
  text_unallowed_characters: Caracteres no permitidos
832
  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)."
833
  text_user_wrote: "%{value} escribió:"
834
  text_wiki_destroy_confirmation: ¿Seguro que quiere borrar el wiki y todo su contenido?
835
  text_workflow_edit: Seleccionar un flujo de trabajo para actualizar
836
  text_plugin_assets_writable: Se puede escribir en el directorio público de las extensiones
837
  warning_attachments_not_saved: "No se han podido grabar %{count} ficheros."
838
  button_create_and_continue: Crear y continuar
839
  text_custom_field_possible_values_info: 'Un valor en cada línea'
840
  label_display: Mostrar
841
  field_editable: Modificable
842
  setting_repository_log_display_limit: Número máximo de revisiones mostradas en el fichero de trazas
843
  setting_file_max_size_displayed: Tamaño máximo de los ficheros de texto mostrados
844
  field_watcher: Seguidor
845
  setting_openid: Permitir identificación y registro por OpenID
846
  field_identity_url: URL de OpenID
847
  label_login_with_open_id_option: o identifíquese con OpenID
848
  field_content: Contenido
849
  label_descending: Descendente
850
  label_sort: Ordenar
851
  label_ascending: Ascendente
852
  label_date_from_to: Desde %{start} hasta %{end}
853
  label_greater_or_equal: ">="
854
  label_less_or_equal: <=
855
  text_wiki_page_destroy_question: Esta página tiene %{descendants} página(s) hija(s) y descendiente(s). ¿Qué desea hacer?
856
  text_wiki_page_reassign_children: Reasignar páginas hijas a esta página
857
  text_wiki_page_nullify_children: Dejar páginas hijas como páginas raíz
858
  text_wiki_page_destroy_children: Eliminar páginas hijas y todos sus descendientes
859
  setting_password_min_length: Longitud mínima de la contraseña
860
  field_group_by: Agrupar resultados por
861
  mail_subject_wiki_content_updated: "La página wiki '%{id}' ha sido actualizada"
862
  label_wiki_content_added: Página wiki añadida
863
  mail_subject_wiki_content_added: "Se ha añadido la página wiki '%{id}'."
864
  mail_body_wiki_content_added: "%{author} ha añadido la página wiki '%{id}'."
865
  label_wiki_content_updated: Página wiki actualizada
866
  mail_body_wiki_content_updated: La página wiki '%{id}' ha sido actualizada por %{author}.
867
  permission_add_project: Crear proyecto
868
  setting_new_project_user_role_id: Permiso asignado a un usuario no-administrador para crear proyectos
869
  label_view_all_revisions: Ver todas las revisiones
870
  label_tag: Etiqueta
871
  label_branch: Rama
872
  error_no_tracker_in_project: Este proyecto no tiene asociados tipos de peticiones. Por favor, revise la configuración.
873
  error_no_default_issue_status: No se ha definido un estado de petición por defecto. Por favor, revise la configuración (en "Administración" -> "Estados de las peticiones").
874
  text_journal_changed: "%{label} cambiado %{old} por %{new}"
875
  text_journal_set_to: "%{label} establecido a %{value}"
876
  text_journal_deleted: "%{label} eliminado (%{old})"
877
  label_group_plural: Grupos
878
  label_group: Grupo
879
  label_group_new: Nuevo grupo
880
  label_time_entry_plural: Tiempo dedicado
881
  text_journal_added: "Añadido %{label} %{value}"
882
  field_active: Activo
883
  enumeration_system_activity: Actividad del sistema
884
  permission_delete_issue_watchers: Borrar seguidores
885
  version_status_closed: cerrado
886
  version_status_locked: bloqueado
887
  version_status_open: abierto
888
  error_can_not_reopen_issue_on_closed_version: No se puede reabrir una petición asignada a una versión cerrada
889

  
890
  label_user_anonymous: Anónimo
891
  button_move_and_follow: Mover y seguir
892
  setting_default_projects_modules: Módulos activados por defecto en proyectos nuevos
893
  setting_gravatar_default: Imagen Gravatar por defecto
894
  field_sharing: Compartir
895
  button_copy_and_follow: Copiar y seguir
896
  label_version_sharing_hierarchy: Con la jerarquía del proyecto
897
  label_version_sharing_tree: Con el árbol del proyecto
898
  label_version_sharing_descendants: Con proyectos hijo
899
  label_version_sharing_system: Con todos los proyectos
900
  label_version_sharing_none: No compartir
901
  button_duplicate: Duplicar
902
  error_can_not_archive_project: Este proyecto no puede ser archivado
903
  label_copy_source: Fuente
904
  setting_issue_done_ratio: Calcular el ratio de tareas realizadas con
905
  setting_issue_done_ratio_issue_status: Usar el estado de tareas
906
  error_issue_done_ratios_not_updated: Ratios de tareas realizadas no actualizado.
907
  error_workflow_copy_target: Por favor, elija categoría(s) y perfil(es) destino
908
  setting_issue_done_ratio_issue_field: Utilizar el campo de petición
909
  label_copy_same_as_target: El mismo que el destino
910
  label_copy_target: Destino
911
  notice_issue_done_ratios_updated: Ratios de tareas realizadas actualizados.
912
  error_workflow_copy_source: Por favor, elija una categoría o rol de origen
913
  label_update_issue_done_ratios: Actualizar ratios de tareas realizadas
914
  setting_start_of_week: Comenzar las semanas en
915
  permission_view_issues: Ver peticiones
916
  label_display_used_statuses_only: Sólo mostrar los estados usados por este tipo de petición
917
  label_revision_id: Revisión %{value}
918
  label_api_access_key: Clave de acceso de la API
919
  label_api_access_key_created_on: Clave de acceso de la API creada hace %{value}
920
  label_feeds_access_key: Clave de acceso RSS
921
  notice_api_access_key_reseted: Clave de acceso a la API regenerada.
922
  setting_rest_api_enabled: Activar servicio web REST
923
  label_missing_api_access_key: Clave de acceso a la API ausente
924
  label_missing_feeds_access_key: Clave de accesso RSS ausente
925
  button_show: Mostrar
926
  text_line_separated: Múltiples valores permitidos (un valor en cada línea).
927
  setting_mail_handler_body_delimiters: Truncar correos tras una de estas líneas
928
  permission_add_subprojects: Crear subproyectos
929
  label_subproject_new: Nuevo subproyecto
930
  text_own_membership_delete_confirmation: |-
931
    Está a punto de eliminar algún o todos sus permisos y podría perder la posibilidad de modificar este proyecto tras hacerlo.
932
    ¿Está seguro de querer continuar?
933
  label_close_versions: Cerrar versiones completadas
934
  label_board_sticky: Pegajoso
935
  label_board_locked: Bloqueado
936
  permission_export_wiki_pages: Exportar páginas wiki
937
  setting_cache_formatted_text: Cachear texto formateado
938
  permission_manage_project_activities: Gestionar actividades del proyecto
939
  error_unable_delete_issue_status: Fue imposible eliminar el estado de la petición
940
  label_profile: Perfil
941
  permission_manage_subtasks: Gestionar subtareas
942
  field_parent_issue: Tarea padre
943
  label_subtask_plural: Subtareas
944
  label_project_copy_notifications: Enviar notificaciones por correo electrónico durante la copia del proyecto
945
  error_can_not_delete_custom_field: Fue imposible eliminar el campo personalizado
946
  error_unable_to_connect: Fue imposible conectar con (%{value})
947
  error_can_not_remove_role: Este rol está en uso y no puede ser eliminado.
948
  error_can_not_delete_tracker: Este tipo contiene peticiones y no puede ser eliminado.
949
  field_principal: Principal
950
  label_my_page_block: Bloque Mi página
951
  notice_failed_to_save_members: "Fallo al guardar miembro(s): %{errors}."
952
  text_zoom_out: Alejar
953
  text_zoom_in: Acercar
954
  notice_unable_delete_time_entry: Fue imposible eliminar la entrada de tiempo dedicado.
955
  label_overall_spent_time: Tiempo total dedicado
956
  field_time_entries: Log time
957
  project_module_gantt: Gantt
958
  project_module_calendar: Calendario
959
  button_edit_associated_wikipage: "Editar paginas Wiki asociadas: %{page_title}"
960
  field_text: Campo de texto
961
  label_user_mail_option_only_owner: Solo para objetos que soy propietario
962
  setting_default_notification_option: Opcion de notificacion por defecto
963
  label_user_mail_option_only_my_events: Solo para objetos que soy seguidor o estoy involucrado
964
  label_user_mail_option_only_assigned: Solo para objetos que estoy asignado
965
  label_user_mail_option_none: Sin eventos
966
  field_member_of_group: Asignado al grupo
967
  field_assigned_to_role: Asignado al perfil
968
  notice_not_authorized_archived_project: El proyecto al que intenta acceder ha sido archivado.
969
  label_principal_search: "Buscar por usuario o grupo:"
970
  label_user_search: "Buscar por usuario:"
971
  field_visible: Visible
972
  setting_emails_header: Encabezado de Correos
973

  
974
  setting_commit_logtime_activity_id: Actividad de los tiempos registrados
975
  text_time_logged_by_changeset: Aplicado en los cambios %{value}.
976
  setting_commit_logtime_enabled: Habilitar registro de horas
977
  notice_gantt_chart_truncated: Se recortó el diagrama porque excede el número máximo de elementos que pueden ser mostrados (%{max})
978
  setting_gantt_items_limit: Número máximo de elementos mostrados en el diagrama de Gantt
979
  field_warn_on_leaving_unsaved: Avisarme cuando vaya a abandonar una página con texto no guardado
980
  text_warn_on_leaving_unsaved: Esta página contiene texto no guardado y si la abandona sus cambios se perderán
981
  label_my_queries: Mis consultas personalizadas
982
  text_journal_changed_no_detail: "Se actualizó %{label}"
983
  label_news_comment_added: Comentario añadido a noticia
984
  button_expand_all: Expandir todo
985
  button_collapse_all: Contraer todo
986
  label_additional_workflow_transitions_for_assignee: Transiciones adicionales permitidas cuando la petición está asignada al usuario
987
  label_additional_workflow_transitions_for_author: Transiciones adicionales permitidas cuando el usuario es autor de la petición
988
  label_bulk_edit_selected_time_entries: Editar en bloque las horas seleccionadas
989
  text_time_entries_destroy_confirmation: ¿Está seguro de querer eliminar (la hora seleccionada/las horas seleccionadas)?
990
  label_role_anonymous: Anónimo
991
  label_role_non_member: No miembro
992
  label_issue_note_added: Nota añadida
993
  label_issue_status_updated: Estado actualizado
994
  label_issue_priority_updated: Prioridad actualizada
995
  label_issues_visibility_own: Peticiones creadas por el usuario o asignadas a él
996
  field_issues_visibility: Visibilidad de las peticiones
997
  label_issues_visibility_all: Todas las peticiones
998
  permission_set_own_issues_private: Poner las peticiones propias como públicas o privadas
999
  field_is_private: Privada
1000
  permission_set_issues_private: Poner peticiones como públicas o privadas
1001
  label_issues_visibility_public: Todas las peticiones no privadas
1002
  text_issues_destroy_descendants_confirmation: Se procederá a borrar también %{count} subtarea(s).
1003
  field_commit_logs_encoding: Codificación de los mensajes de commit
1004
  field_scm_path_encoding: Codificación de las rutas
1005
  text_scm_path_encoding_note: "Por defecto: UTF-8"
1006
  field_path_to_repository: Ruta al repositorio
1007
  field_root_directory: Directorio raíz
1008
  field_cvs_module: Módulo
1009
  field_cvsroot: CVSROOT
1010
  text_mercurial_repository_note: Repositorio local (e.g. /hgrepo, c:\hgrepo)
1011
  text_scm_command: Orden
1012
  text_scm_command_version: Versión
1013
  label_git_report_last_commit: Informar del último commit para ficheros y directorios
1014
  text_scm_config: Puede configurar las órdenes de cada scm en configuration/configuration.yml. Por favor, reinicie la aplicación después de editarlo
1015
  text_scm_command_not_available: La orden para el Scm no está disponible. Por favor, compruebe la configuración en el panel de administración.
1016
  notice_issue_successful_create: Petición %{id} creada.
1017
  label_between: entre
1018
  setting_issue_group_assignment: Permitir asignar peticiones a grupos
1019
  label_diff: diferencias
1020
  text_git_repository_note: El repositorio es básico y local (p.e. /gitrepo, c:\gitrepo)
1021
  description_query_sort_criteria_direction: Dirección de ordenación
1022
  description_project_scope: Ámbito de búsqueda
1023
  description_filter: Filtro
1024
  description_user_mail_notification: Configuración de notificaciones por correo
1025
  description_date_from: Introduzca la fecha de inicio
1026
  description_message_content: Contenido del mensaje
1027
  description_available_columns: Columnas disponibles
1028
  description_date_range_interval: Elija el rango seleccionando la fecha de inicio y fin
1029
  description_issue_category_reassign: Elija la categoría de la petición
1030
  description_search: Campo de búsqueda
1031
  description_notes: Notas
1032
  description_date_range_list: Elija el rango en la lista
1033
  description_choose_project: Proyectos
1034
  description_date_to: Introduzca la fecha fin
1035
  description_query_sort_criteria_attribute: Atributo de ordenación
1036
  description_wiki_subpages_reassign: Elija la nueva página padre
1037
  description_selected_columns: Columnas seleccionadas
1038
  label_parent_revision: Padre
1039
  label_child_revision: Hijo
1040
  setting_default_issue_start_date_to_creation_date: Use current date as start date for new issues
1041
  button_edit_section: Edit this section
1042
  setting_repositories_encodings: Attachments and repositories encodings
1043
  description_all_columns: Todas las columnas
1044
  button_export: Exportar
1045
  label_export_options: "%{export_format} opciones de exportación"
1046
  error_attachment_too_big: Este fichero no se puede adjuntar porque excede el tamaño máximo de fichero (%{max_size})
1047
  notice_failed_to_save_time_entries: "Error al guarda %{count} entradas de tiempo de las %{total} seleccionadas: %{ids}."
1048
  label_x_issues:
1049
    zero:  0 petición
1050
    one:   1 petición
1051
    other: "%{count} peticiones"
1052
  label_repository_new: New repository
1053
  field_repository_is_default: Main repository
1054
  label_copy_attachments: Copy attachments
1055
  label_item_position: "%{position}/%{count}"
1056
  label_completed_versions: Completed versions
1057
  text_project_identifier_info: Only lower case letters (a-z), numbers, dashes and underscores are allowed.<br />Once saved, the identifier cannot be changed.
1058
  field_multiple: Multiple values
1059
  setting_commit_cross_project_ref: Allow issues of all the other projects to be referenced and fixed
1060
  text_issue_conflict_resolution_add_notes: Add my notes and discard my other changes
1061
  text_issue_conflict_resolution_overwrite: Apply my changes anyway (previous notes will be kept but some changes may be overwritten)
1062
  notice_issue_update_conflict: The issue has been updated by an other user while you were editing it.
1063
  text_issue_conflict_resolution_cancel: Discard all my changes and redisplay %{link}
1064
  permission_manage_related_issues: Manage related issues
1065
  field_auth_source_ldap_filter: LDAP filter
1066
  label_search_for_watchers: Search for watchers to add
1067
  notice_account_deleted: Your account has been permanently deleted.
1068
  setting_unsubscribe: Allow users to delete their own account
1069
  button_delete_my_account: Delete my account
1070
  text_account_destroy_confirmation: |-
1071
    Are you sure you want to proceed?
1072
    Your account will be permanently deleted, with no way to reactivate it.
1073
  error_session_expired: Your session has expired. Please login again.
1074
  text_session_expiration_settings: "Warning: changing these settings may expire the current sessions including yours."
1075
  setting_session_lifetime: Session maximum lifetime
1076
  setting_session_timeout: Session inactivity timeout
1077
  label_session_expiration: Session expiration
1078
  permission_close_project: Close / reopen the project
1079
  label_show_closed_projects: View closed projects
1080
  button_close: Close
1081
  button_reopen: Reopen
1082
  project_status_active: active
1083
  project_status_closed: closed
1084
  project_status_archived: archived
1085
  text_project_closed: This project is closed and read-only.
1086
  notice_user_successful_create: User %{id} created.
1087
  field_core_fields: Standard fields
1088
  field_timeout: Timeout (in seconds)
1089
  setting_thumbnails_enabled: Display attachment thumbnails
1090
  setting_thumbnails_size: Thumbnails size (in pixels)
1091
  label_status_transitions: Status transitions
1092
  label_fields_permissions: Fields permissions
1093
  label_readonly: Read-only
1094
  label_required: Required
1095
  text_repository_identifier_info: Only lower case letters (a-z), numbers, dashes and underscores are allowed.<br />Once saved, the identifier cannot be changed.
1096
  field_board_parent: Parent forum
1097
  label_attribute_of_project: Project's %{name}
1098
  label_attribute_of_author: Author's %{name}
1099
  label_attribute_of_assigned_to: Assignee's %{name}
1100
  label_attribute_of_fixed_version: Target version's %{name}
1101
  label_copy_subtasks: Copy subtasks
1102
  label_copied_to: copied to
1103
  label_copied_from: copied from
1104
  label_any_issues_in_project: any issues in project
1105
  label_any_issues_not_in_project: any issues not in project
1106
  field_private_notes: Private notes
1107
  permission_view_private_notes: View private notes
1108
  permission_set_notes_private: Set notes as private
1109
  label_no_issues_in_project: no issues in project
1110
  label_any: todos
1111
  label_last_n_weeks: last %{count} weeks
1112
  setting_cross_project_subtasks: Allow cross-project subtasks
1113
  label_cross_project_descendants: Con proyectos hijo
1114
  label_cross_project_tree: Con el árbol del proyecto
1115
  label_cross_project_hierarchy: Con la jerarquía del proyecto
1116
  label_cross_project_system: Con todos los proyectos
1117
  button_hide: Hide
1118
  setting_non_working_week_days: Non-working days
1119
  label_in_the_next_days: in the next
1120
  label_in_the_past_days: in the past
.svn/pristine/c8/c8ead97161810444d935cbc0189f12e56246f822.svn-base
1
# Redmine - project management software
2
# Copyright (C) 2006-2012  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 'shoulda'
19
ENV["RAILS_ENV"] = "test"
20
require File.expand_path(File.dirname(__FILE__) + "/../config/environment")
21
require 'rails/test_help'
22
require Rails.root.join('test', 'mocks', 'open_id_authentication_mock.rb').to_s
23

  
24
require File.expand_path(File.dirname(__FILE__) + '/object_helpers')
25
include ObjectHelpers
26

  
27
class ActiveSupport::TestCase
28
  include ActionDispatch::TestProcess
29
  
30
  # Transactional fixtures accelerate your tests by wrapping each test method
31
  # in a transaction that's rolled back on completion.  This ensures that the
32
  # test database remains unchanged so your fixtures don't have to be reloaded
33
  # between every test method.  Fewer database queries means faster tests.
34
  #
35
  # Read Mike Clark's excellent walkthrough at
36
  #   http://clarkware.com/cgi/blosxom/2005/10/24#Rails10FastTesting
37
  #
38
  # Every Active Record database supports transactions except MyISAM tables
39
  # in MySQL.  Turn off transactional fixtures in this case; however, if you
40
  # don't care one way or the other, switching from MyISAM to InnoDB tables
41
  # is recommended.
42
  self.use_transactional_fixtures = true
43

  
44
  # Instantiated fixtures are slow, but give you @david where otherwise you
45
  # would need people(:david).  If you don't want to migrate your existing
46
  # test cases which use the @david style and don't mind the speed hit (each
47
  # instantiated fixtures translates to a database query per test method),
48
  # then set this back to true.
49
  self.use_instantiated_fixtures  = false
50

  
51
  # Add more helper methods to be used by all tests here...
52

  
53
  def log_user(login, password)
54
    User.anonymous
55
    get "/login"
56
    assert_equal nil, session[:user_id]
57
    assert_response :success
58
    assert_template "account/login"
59
    post "/login", :username => login, :password => password
60
    assert_equal login, User.find(session[:user_id]).login
61
  end
62

  
63
  def uploaded_test_file(name, mime)
64
    fixture_file_upload("files/#{name}", mime, true)
65
  end
66

  
67
  def credentials(user, password=nil)
68
    {'HTTP_AUTHORIZATION' => ActionController::HttpAuthentication::Basic.encode_credentials(user, password || user)}
69
  end
70

  
71
  # Mock out a file
72
  def self.mock_file
73
    file = 'a_file.png'
74
    file.stubs(:size).returns(32)
75
    file.stubs(:original_filename).returns('a_file.png')
76
    file.stubs(:content_type).returns('image/png')
77
    file.stubs(:read).returns(false)
78
    file
79
  end
80

  
81
  def mock_file
82
    self.class.mock_file
83
  end
84

  
85
  def mock_file_with_options(options={})
86
    file = ''
87
    file.stubs(:size).returns(32)
88
    original_filename = options[:original_filename] || nil
89
    file.stubs(:original_filename).returns(original_filename)
90
    content_type = options[:content_type] || nil
91
    file.stubs(:content_type).returns(content_type)
92
    file.stubs(:read).returns(false)
93
    file
94
  end
95

  
96
  # Use a temporary directory for attachment related tests
97
  def set_tmp_attachments_directory
98
    Dir.mkdir "#{Rails.root}/tmp/test" unless File.directory?("#{Rails.root}/tmp/test")
99
    unless File.directory?("#{Rails.root}/tmp/test/attachments")
100
      Dir.mkdir "#{Rails.root}/tmp/test/attachments"
101
    end
102
    Attachment.storage_path = "#{Rails.root}/tmp/test/attachments"
103
  end
104

  
105
  def set_fixtures_attachments_directory
106
    Attachment.storage_path = "#{Rails.root}/test/fixtures/files"
107
  end
108

  
109
  def with_settings(options, &block)
110
    saved_settings = options.keys.inject({}) {|h, k| h[k] = Setting[k].is_a?(Symbol) ? Setting[k] : Setting[k].dup; h}
111
    options.each {|k, v| Setting[k] = v}
112
    yield
113
  ensure
114
    saved_settings.each {|k, v| Setting[k] = v} if saved_settings
115
  end
116

  
117
  # Yields the block with user as the current user
118
  def with_current_user(user, &block)
119
    saved_user = User.current
120
    User.current = user
121
    yield
122
  ensure
123
    User.current = saved_user
124
  end
125

  
126
  def change_user_password(login, new_password)
127
    user = User.first(:conditions => {:login => login})
128
    user.password, user.password_confirmation = new_password, new_password
129
    user.save!
130
  end
131

  
132
  def self.ldap_configured?
133
    @test_ldap = Net::LDAP.new(:host => '127.0.0.1', :port => 389)
134
    return @test_ldap.bind
135
  rescue Exception => e
136
    # LDAP is not listening
137
    return nil
138
  end
139

  
140
  def self.convert_installed?
141
    Redmine::Thumbnail.convert_available?
142
  end
143

  
144
  # Returns the path to the test +vendor+ repository
145
  def self.repository_path(vendor)
146
    Rails.root.join("tmp/test/#{vendor.downcase}_repository").to_s
147
  end
148

  
149
  # Returns the url of the subversion test repository
150
  def self.subversion_repository_url
151
    path = repository_path('subversion')
152
    path = '/' + path unless path.starts_with?('/')
153
    "file://#{path}"
154
  end
155

  
156
  # Returns true if the +vendor+ test repository is configured
157
  def self.repository_configured?(vendor)
158
    File.directory?(repository_path(vendor))
159
  end
160

  
161
  def repository_path_hash(arr)
162
    hs = {}
163
    hs[:path]  = arr.join("/")
164
    hs[:param] = arr.join("/")
165
    hs
166
  end
167

  
168
  def assert_save(object)
169
    saved = object.save
170
    message = "#{object.class} could not be saved"
171
    errors = object.errors.full_messages.map {|m| "- #{m}"}
172
    message << ":\n#{errors.join("\n")}" if errors.any?
173
    assert_equal true, saved, message
174
  end
175

  
176
  def assert_error_tag(options={})
177
    assert_tag({:attributes => { :id => 'errorExplanation' }}.merge(options))
178
  end
179

  
180
  def assert_include(expected, s, message=nil)
181
    assert s.include?(expected), (message || "\"#{expected}\" not found in \"#{s}\"")
182
  end
183

  
184
  def assert_not_include(expected, s)
185
    assert !s.include?(expected), "\"#{expected}\" found in \"#{s}\""
186
  end
187

  
188
  def assert_select_in(text, *args, &block)
189
    d = HTML::Document.new(CGI::unescapeHTML(String.new(text))).root
190
    assert_select(d, *args, &block)
191
  end
192

  
193
  def assert_mail_body_match(expected, mail)
194
    if expected.is_a?(String)
195
      assert_include expected, mail_body(mail)
196
    else
197
      assert_match expected, mail_body(mail)
198
    end
199
  end
200

  
201
  def assert_mail_body_no_match(expected, mail)
202
    if expected.is_a?(String)
203
      assert_not_include expected, mail_body(mail)
204
    else
205
      assert_no_match expected, mail_body(mail)
206
    end
207
  end
208

  
209
  def mail_body(mail)
210
    mail.parts.first.body.encoded
211
  end
212

  
213
  # Shoulda macros
214
  def self.should_render_404
215
    should_respond_with :not_found
216
    should_render_template 'common/error'
217
  end
218

  
219
  def self.should_have_before_filter(expected_method, options = {})
220
    should_have_filter('before', expected_method, options)
221
  end
222

  
223
  def self.should_have_after_filter(expected_method, options = {})
224
    should_have_filter('after', expected_method, options)
225
  end
226

  
227
  def self.should_have_filter(filter_type, expected_method, options)
228
    description = "have #{filter_type}_filter :#{expected_method}"
229
    description << " with #{options.inspect}" unless options.empty?
230

  
231
    should description do
232
      klass = "action_controller/filters/#{filter_type}_filter".classify.constantize
233
      expected = klass.new(:filter, expected_method.to_sym, options)
234
      assert_equal 1, @controller.class.filter_chain.select { |filter|
235
        filter.method == expected.method && filter.kind == expected.kind &&
236
        filter.options == expected.options && filter.class == expected.class
237
      }.size
238
    end
239
  end
240

  
241
  # Test that a request allows the three types of API authentication
242
  #
243
  # * HTTP Basic with username and password
244
  # * HTTP Basic with an api key for the username
245
  # * Key based with the key=X parameter
246
  #
247
  # @param [Symbol] http_method the HTTP method for request (:get, :post, :put, :delete)
248
  # @param [String] url the request url
249
  # @param [optional, Hash] parameters additional request parameters
250
  # @param [optional, Hash] options additional options
251
  # @option options [Symbol] :success_code Successful response code (:success)
252
  # @option options [Symbol] :failure_code Failure response code (:unauthorized)
253
  def self.should_allow_api_authentication(http_method, url, parameters={}, options={})
254
    should_allow_http_basic_auth_with_username_and_password(http_method, url, parameters, options)
255
    should_allow_http_basic_auth_with_key(http_method, url, parameters, options)
256
    should_allow_key_based_auth(http_method, url, parameters, options)
257
  end
258

  
259
  # Test that a request allows the username and password for HTTP BASIC
260
  #
261
  # @param [Symbol] http_method the HTTP method for request (:get, :post, :put, :delete)
262
  # @param [String] url the request url
263
  # @param [optional, Hash] parameters additional request parameters
264
  # @param [optional, Hash] options additional options
265
  # @option options [Symbol] :success_code Successful response code (:success)
266
  # @option options [Symbol] :failure_code Failure response code (:unauthorized)
267
  def self.should_allow_http_basic_auth_with_username_and_password(http_method, url, parameters={}, options={})
268
    success_code = options[:success_code] || :success
269
    failure_code = options[:failure_code] || :unauthorized
270

  
271
    context "should allow http basic auth using a username and password for #{http_method} #{url}" do
272
      context "with a valid HTTP authentication" do
273
        setup do
274
          @user = User.generate! do |user|
275
            user.admin = true
276
            user.password = 'my_password'
277
          end
278
          send(http_method, url, parameters, credentials(@user.login, 'my_password'))
279
        end
280

  
281
        should_respond_with success_code
282
        should_respond_with_content_type_based_on_url(url)
283
        should "login as the user" do
284
          assert_equal @user, User.current
285
        end
286
      end
287

  
288
      context "with an invalid HTTP authentication" do
289
        setup do
290
          @user = User.generate!
291
          send(http_method, url, parameters, credentials(@user.login, 'wrong_password'))
292
        end
293

  
294
        should_respond_with failure_code
295
        should_respond_with_content_type_based_on_url(url)
296
        should "not login as the user" do
297
          assert_equal User.anonymous, User.current
298
        end
299
      end
300

  
301
      context "without credentials" do
302
        setup do
303
          send(http_method, url, parameters)
304
        end
305

  
306
        should_respond_with failure_code
307
        should_respond_with_content_type_based_on_url(url)
308
        should "include_www_authenticate_header" do
309
          assert @controller.response.headers.has_key?('WWW-Authenticate')
310
        end
311
      end
312
    end
313
  end
314

  
315
  # Test that a request allows the API key with HTTP BASIC
316
  #
317
  # @param [Symbol] http_method the HTTP method for request (:get, :post, :put, :delete)
318
  # @param [String] url the request url
319
  # @param [optional, Hash] parameters additional request parameters
320
  # @param [optional, Hash] options additional options
321
  # @option options [Symbol] :success_code Successful response code (:success)
322
  # @option options [Symbol] :failure_code Failure response code (:unauthorized)
323
  def self.should_allow_http_basic_auth_with_key(http_method, url, parameters={}, options={})
324
    success_code = options[:success_code] || :success
325
    failure_code = options[:failure_code] || :unauthorized
326

  
327
    context "should allow http basic auth with a key for #{http_method} #{url}" do
328
      context "with a valid HTTP authentication using the API token" do
329
        setup do
330
          @user = User.generate! do |user|
331
            user.admin = true
332
          end
333
          @token = Token.create!(:user => @user, :action => 'api')
334
          send(http_method, url, parameters, credentials(@token.value, 'X'))
335
        end
336
        should_respond_with success_code
337
        should_respond_with_content_type_based_on_url(url)
338
        should_be_a_valid_response_string_based_on_url(url)
339
        should "login as the user" do
340
          assert_equal @user, User.current
341
        end
342
      end
343

  
344
      context "with an invalid HTTP authentication" do
... This diff was truncated because it exceeds the maximum size that can be displayed.

Also available in: Unified diff