@evotecit/canopyx 0.1.3 → 0.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (85) hide show
  1. package/CanopyX.Html/Assets/canopyx-calendar-edit.js +114 -0
  2. package/CanopyX.Html/Assets/canopyx-calendar-ics.js +87 -0
  3. package/CanopyX.Html/Assets/canopyx-calendar-recurrence.js +36 -0
  4. package/CanopyX.Html/Assets/canopyx-calendar.css +279 -0
  5. package/CanopyX.Html/Assets/canopyx-calendar.js +307 -0
  6. package/CanopyX.Html/Assets/canopyx-cell-range.css +38 -0
  7. package/CanopyX.Html/Assets/canopyx-cell-range.js +141 -0
  8. package/CanopyX.Html/Assets/canopyx-column-groups.css +18 -0
  9. package/CanopyX.Html/Assets/canopyx-column-groups.js +51 -0
  10. package/CanopyX.Html/Assets/canopyx-data.js +14 -0
  11. package/CanopyX.Html/Assets/canopyx-detail-rows.css +18 -0
  12. package/CanopyX.Html/Assets/canopyx-detail-rows.js +51 -0
  13. package/CanopyX.Html/Assets/canopyx-editing.css +44 -0
  14. package/CanopyX.Html/Assets/canopyx-editing.js +134 -0
  15. package/CanopyX.Html/Assets/canopyx-enhance.js +126 -0
  16. package/CanopyX.Html/Assets/canopyx-export.js +18 -0
  17. package/CanopyX.Html/Assets/canopyx-facets.css +86 -0
  18. package/CanopyX.Html/Assets/canopyx-facets.js +65 -0
  19. package/CanopyX.Html/Assets/canopyx-filter-editor.css +15 -18
  20. package/CanopyX.Html/Assets/canopyx-filter-editor.js +23 -17
  21. package/CanopyX.Html/Assets/canopyx-format-editor.css +77 -0
  22. package/CanopyX.Html/Assets/canopyx-format-editor.js +30 -0
  23. package/CanopyX.Html/Assets/canopyx-formatting.css +40 -0
  24. package/CanopyX.Html/Assets/canopyx-formatting.js +101 -0
  25. package/CanopyX.Html/Assets/canopyx-grid-module.mjs +352 -246
  26. package/CanopyX.Html/Assets/canopyx-grid.css +139 -117
  27. package/CanopyX.Html/Assets/canopyx-grid.js +352 -246
  28. package/CanopyX.Html/Assets/canopyx-grouping.css +39 -0
  29. package/CanopyX.Html/Assets/canopyx-grouping.js +85 -0
  30. package/CanopyX.Html/Assets/canopyx-highlight.css +34 -0
  31. package/CanopyX.Html/Assets/canopyx-highlight.js +80 -0
  32. package/CanopyX.Html/Assets/canopyx-history.js +13 -0
  33. package/CanopyX.Html/Assets/canopyx-interactive.css +18 -6
  34. package/CanopyX.Html/Assets/canopyx-interactive.js +179 -100
  35. package/CanopyX.Html/Assets/canopyx-labels-de.js +304 -0
  36. package/CanopyX.Html/Assets/canopyx-labels-es.js +304 -0
  37. package/CanopyX.Html/Assets/canopyx-labels-fr.js +529 -0
  38. package/CanopyX.Html/Assets/canopyx-labels-it.js +529 -0
  39. package/CanopyX.Html/Assets/canopyx-labels-pl.js +304 -0
  40. package/CanopyX.Html/Assets/canopyx-layouts.css +48 -0
  41. package/CanopyX.Html/Assets/canopyx-layouts.js +39 -0
  42. package/CanopyX.Html/Assets/canopyx-link.css +19 -0
  43. package/CanopyX.Html/Assets/canopyx-link.js +38 -0
  44. package/CanopyX.Html/Assets/canopyx-links.js +14 -0
  45. package/CanopyX.Html/Assets/canopyx-live.css +24 -0
  46. package/CanopyX.Html/Assets/canopyx-live.js +88 -0
  47. package/CanopyX.Html/Assets/canopyx-module.mjs +180 -100
  48. package/CanopyX.Html/Assets/canopyx-pager.css +10 -0
  49. package/CanopyX.Html/Assets/canopyx-pager.js +14 -0
  50. package/CanopyX.Html/Assets/canopyx-record-panel.css +111 -0
  51. package/CanopyX.Html/Assets/canopyx-record-panel.js +178 -0
  52. package/CanopyX.Html/Assets/canopyx-reporting-module.mjs +406 -342
  53. package/CanopyX.Html/Assets/canopyx-reporting.css +140 -135
  54. package/CanopyX.Html/Assets/canopyx-reporting.js +406 -342
  55. package/CanopyX.Html/Assets/canopyx-search.js +32 -0
  56. package/CanopyX.Html/Assets/canopyx-timeline.css +80 -0
  57. package/CanopyX.Html/Assets/canopyx-timeline.js +88 -0
  58. package/CanopyX.Html/Assets/canopyx-tree-tools.css +103 -0
  59. package/CanopyX.Html/Assets/canopyx-tree-tools.js +92 -0
  60. package/CanopyX.Html/Assets/canopyx.css +17 -5
  61. package/CanopyX.Html/Assets/canopyx.js +175 -96
  62. package/JavaScript/calendar.d.ts +362 -0
  63. package/JavaScript/cell-ranges.d.ts +76 -0
  64. package/JavaScript/column-groups.d.ts +32 -0
  65. package/JavaScript/editing.d.ts +257 -0
  66. package/JavaScript/enhance.d.ts +202 -0
  67. package/JavaScript/facets.d.ts +58 -0
  68. package/JavaScript/formatting.d.ts +88 -0
  69. package/JavaScript/grid.d.ts +409 -56
  70. package/JavaScript/hosts.d.ts +177 -2
  71. package/JavaScript/index.d.ts +53 -4
  72. package/JavaScript/live.d.ts +115 -0
  73. package/JavaScript/locales/de.mjs +304 -0
  74. package/JavaScript/locales/es.mjs +304 -0
  75. package/JavaScript/locales/fr.d.ts +6 -0
  76. package/JavaScript/locales/fr.mjs +527 -0
  77. package/JavaScript/locales/it.d.ts +6 -0
  78. package/JavaScript/locales/it.mjs +527 -0
  79. package/JavaScript/locales/pl.mjs +304 -0
  80. package/JavaScript/plugins.d.ts +113 -0
  81. package/JavaScript/protocol.d.ts +139 -6
  82. package/JavaScript/records.d.ts +136 -0
  83. package/README.md +61 -9
  84. package/README.nuget.md +1 -1
  85. package/package.json +99 -3
@@ -1,5 +1,6 @@
1
1
  // Generated from CanopyX/Views/Locales/labels.json by Build/Sync-Assets.ps1.
2
2
  const labels = Object.freeze({
3
+ gridNoExportColumns: "Ninguna columna visible permite exportar.",
3
4
  searchPlaceholder: "Buscar",
4
5
  searchResults: "Resultados de búsqueda",
5
6
  searchResultCount: "{count} resultados",
@@ -13,6 +14,24 @@ const labels = Object.freeze({
13
14
  gridFilters: "Filtros",
14
15
  gridFitContent: "Ajustar al contenido",
15
16
  gridUnpin: "Desfijar",
17
+ matchesHighlight: "Resaltar coincidencias",
18
+ matchesCount: "[one]{count} coincidencia[other]{count} coincidencias",
19
+ matchesPosition: "{current} de {count}",
20
+ matchesNone: "Sin coincidencias",
21
+ matchesLoaded: "[one]{count} coincidencia en las filas cargadas[other]{count} coincidencias en las filas cargadas",
22
+ matchesPrevious: "Coincidencia anterior",
23
+ matchesNext: "Coincidencia siguiente",
24
+ matchesAnnounce: "Coincidencia {current} de {count}, {column}",
25
+ layoutMenu: "Diseño",
26
+ layoutFit: "Ajustar al ancho",
27
+ layoutScroll: "Todas las columnas, desplazamiento horizontal",
28
+ layoutCards: "Tarjetas",
29
+ layoutDensity: "Densidad",
30
+ layoutCompact: "Compacta",
31
+ layoutNormal: "Normal",
32
+ layoutComfortable: "Amplia",
33
+ layoutChanged: "Diseño: {mode}, {density}",
34
+ layoutSort: "Ordenar por",
16
35
  gridWhere: "Donde",
17
36
  gridComplexFilter: "Esta columna pertenece a un grupo mixto de condiciones. Edítelo en Filtros.",
18
37
  gridClearColumnFilter: "Borrar filtro",
@@ -82,6 +101,9 @@ const labels = Object.freeze({
82
101
  gridPreviousPage: "Página anterior",
83
102
  gridNextPage: "Página siguiente",
84
103
  gridLastPage: "Última página",
104
+ gridPageInfo: "Mostrando filas {first} a {last} de {count}",
105
+ gridPageInfoFiltered: "Mostrando filas {first} a {last} de {count} (filtradas de {total})",
106
+ gridPageButton: "Página {page}",
85
107
  gridClearQuery: "Borrar búsqueda y filtros",
86
108
  gridRemoveSearch: "Borrar búsqueda: {search}",
87
109
  gridGroupedFilters: "Filtros agrupados ({count} condiciones)",
@@ -91,9 +113,30 @@ const labels = Object.freeze({
91
113
  gridFilteredResults: "Resultados filtrados",
92
114
  gridSelectedRows: "Filas seleccionadas",
93
115
  gridAllResults: "Todos los resultados",
116
+ gridVisibleRows: "Filas visibles",
117
+ gridAllRows: "Todas las filas",
94
118
  gridDownloadCsv: "Descargar CSV",
95
119
  gridCopy: "Copiar",
96
120
  gridDetails: "Detalles del registro",
121
+ gridCellRangeSelected: "{rows} filas × {columns} columnas seleccionadas",
122
+ gridCellRangesSelected: "{ranges} rangos seleccionados, {cells} celdas",
123
+ gridCellRangeCleared: "Selección de celdas borrada",
124
+ gridCopyCells: "Copiar celdas",
125
+ gridCopyCellsWithHeaders: "Copiar celdas con encabezados",
126
+ gridPasteCells: "Pegar",
127
+ gridSelectAllCells: "Seleccionar todas las celdas",
128
+ gridCellsCopied: "Copiadas {rows} filas × {columns} columnas",
129
+ gridCellsPasted: "Celdas pegadas: {count}",
130
+ gridPasteRefused: "Celdas no pegadas: {count}",
131
+ gridPasteReadOnly: "Esta celda no se puede cambiar.",
132
+ gridPasteType: "«{value}» no es un valor válido para {column}.",
133
+ gridPasteReport: "Informe de pegado",
134
+ gridPasteCell: "Fila {row}, {column}: {reason}",
135
+ gridFillHandle: "Arrastre para rellenar las celdas inferiores",
136
+ gridCellsFilled: "Celdas rellenadas: {count}",
137
+ gridCellMenu: "Acciones de celdas",
138
+ gridClearCellRanges: "Borrar la selección de celdas",
139
+ gridRowPicked: "Se ha recogido {title}. Vaya a un calendario y pulse Intro para soltarlo.",
97
140
  gridColumn: "Columna",
98
141
  gridOperator: "Condición",
99
142
  gridValue: "Valor (fechas en UTC)",
@@ -173,6 +216,28 @@ const labels = Object.freeze({
173
216
  gridGroupCollapse: "Contraer grupo",
174
217
  gridSummary: "Totales de resultados",
175
218
  gridGroupOrder: "El orden de los grupos está fijado en este informe",
219
+ gridAggregateCount: "recuento {value}",
220
+ gridAggregateSum: "suma {value}",
221
+ gridAggregateAverage: "media {value}",
222
+ gridAggregateMinimum: "mín. {value}",
223
+ gridAggregateMaximum: "máx. {value}",
224
+ gridGroupBy: "Agrupar por esta columna",
225
+ gridUngroup: "Dejar de agrupar por esta columna",
226
+ gridGroupDrop: "Arrastre aquí un encabezado de columna para agrupar las filas",
227
+ gridExpandAll: "Expandir todo",
228
+ gridCollapseAll: "Contraer todo",
229
+ gridExpandLevel: "Expandir nivel {level}",
230
+ gridCollapseLevel: "Contraer nivel {level}",
231
+ gridGroupMove: "Alt+Izquierda y Alt+Derecha mueven este nivel",
232
+ gridGroupSortBy: "Ordenar grupos por",
233
+ gridGroupSortValue: "por valor",
234
+ gridGroupSortAggregate: "por {aggregate}",
235
+ gridSelectGroup: "Seleccionar los registros de {group}",
236
+ gridAggregateDistinct: "distintos {value}",
237
+ gridShowDetail: "Mostrar detalles",
238
+ gridHideDetail: "Ocultar detalles",
239
+ gridDetailOf: "Detalles de {record}",
240
+ gridDetailFailed: "No se pudieron cargar los detalles: {error}",
176
241
  gridExportProgress: "{completed} de {total} registros",
177
242
  gridExportReading: "{completed} registros",
178
243
  gridExportCancelled: "Exportación cancelada",
@@ -207,11 +272,250 @@ const labels = Object.freeze({
207
272
  showMoreUnknownTotal: "Mostrar más ({loaded} cargados)",
208
273
  pageLoaded: "{loaded} de {total} cargados",
209
274
  itemsLoaded: "{count} elementos",
275
+ recordBack: "Atrás",
276
+ recordBackTo: "Volver a {record}",
277
+ recordTrail: "Ruta de registros",
278
+ recordShowing: "Mostrando {record}",
279
+ recordTabs: "Vistas del registro",
280
+ recordSections: "Ir a una sección",
281
+ recordOtherFields: "Otros campos",
282
+ recordShowEmpty: "Mostrar campos vacíos ({count})",
283
+ recordHideEmpty: "Ocultar campos vacíos",
284
+ recordActions: "Acciones del registro",
285
+ recordCopyValues: "Copiar valores",
286
+ recordCopyJson: "Copiar como JSON",
287
+ recordCopyLink: "Copiar enlace",
288
+ recordCopied: "Copiado al portapapeles",
289
+ recordPrint: "Imprimir registro",
290
+ recordExportCsv: "Exportar CSV",
291
+ recordExportJson: "Exportar JSON",
292
+ recordOpenAll: "Abrir todos en la tabla",
293
+ recordLoadMore: "Cargar más",
294
+ recordCount: "{shown} de {total}",
295
+ recordItems: "{count} elementos",
296
+ recordMore: "+{count}",
297
+ recordShowAll: "Mostrar los {count}",
298
+ recordRetry: "Reintentar",
299
+ recordLoadFailed: "No se pudieron cargar los detalles del registro: {error}",
300
+ recordUnavailable: "El registro {id} no está disponible aquí.",
301
+ recordField: "Campo",
302
+ recordValue: "Valor",
303
+ recordSection: "Sección",
304
+ recordBefore: "Antes",
305
+ recordAfter: "Después",
306
+ recordAdded: "Añadido",
307
+ recordRemoved: "Eliminado",
308
+ recordChanged: "{count} campos modificados",
210
309
  yes: "Sí",
211
310
  no: "No",
212
311
  utcTime: "{time} UTC",
213
312
  localTime: "{time} hora local",
214
313
  mountError: "No se pudo mostrar esta vista: {error}",
314
+ gridEditCell: "Editar {column}",
315
+ gridEditSave: "Guardar",
316
+ gridEditCancel: "Cancelar",
317
+ gridEditDiscard: "Descartar",
318
+ gridEditUndo: "Deshacer",
319
+ gridEditRedo: "Rehacer",
320
+ gridEditEdited: "Modificado",
321
+ gridEditChanges: "Cambios sin guardar: {count}",
322
+ gridEditErrors: "Errores: {count}",
323
+ gridEditSaving: "Guardando…",
324
+ gridEditSaved: "Filas guardadas: {count}",
325
+ gridEditFailed: "Filas no guardadas: {count}",
326
+ gridEditRequired: "{column} es obligatorio.",
327
+ gridEditNumber: "{column} debe ser un número.",
328
+ gridEditDate: "{column} debe ser una fecha válida.",
329
+ gridEditMin: "{column} debe ser como mínimo {min}.",
330
+ gridEditMax: "{column} debe ser como máximo {max}.",
331
+ gridEditStep: "{column} debe ser múltiplo de {step}.",
332
+ gridEditMinLength: "{column} necesita al menos {min} caracteres.",
333
+ gridEditMaxLength: "{column} admite como máximo {max} caracteres.",
334
+ gridEditPattern: "{column} no tiene el formato esperado.",
335
+ gridEditChoice: "Elija {column} de la lista.",
336
+ gridEditConflict: "Otra persona cambió esta fila. Vuelva a cargarla e inténtelo de nuevo.",
337
+ gridEditRejected: "No guardado: {error}",
338
+ gridEditNotSaved: "No guardado.",
339
+ gridEditNoMatches: "Sin coincidencias",
340
+ gridEditSearching: "Buscando…",
341
+ gridEditUndone: "Deshecho: {column}",
342
+ gridEditRedone: "Rehecho: {column}",
343
+ gridEditNone: "(ninguno)",
344
+ gridLiveOrderChanged: "El orden ha cambiado",
345
+ gridLiveResort: "Reordenar",
346
+ gridLiveNewData: "Datos nuevos",
347
+ gridLiveRefresh: "Actualizar",
348
+ gridLiveOrderHint: "Las filas mantienen su lugar mientras cambian los datos. Reordene para moverlas a la posición que les da el orden.",
349
+ gridLiveChanged: "Filas cambiadas: {added} añadidas, {updated} actualizadas, {removed} eliminadas",
350
+ gridLiveSorted: "Filas movidas a la posición que les da el orden.",
351
+ gridLiveRecordRemoved: "Este registro se ha eliminado.",
352
+ gridFacetPanel: "Filtrar por",
353
+ gridFacetPanelHide: "Ocultar el panel de filtros",
354
+ gridFacetPanelShow: "Mostrar el panel de filtros",
355
+ gridFacetShowMore: "Mostrar {count} más",
356
+ gridFacetShowFewer: "Mostrar menos",
357
+ gridFacetEmptyValue: "(Vacío)",
358
+ gridFacetFrom: "Desde",
359
+ gridFacetTo: "Hasta",
360
+ gridFacetHistogram: "Distribución de {column}",
361
+ gridFacetBin: "De {from} a {to}: {count} filas",
362
+ gridFacetNoChart: "Demasiados valores para un gráfico",
363
+ gridFacetClear: "Borrar {column}",
364
+ gridFacetCustom: "Otra condición filtra esta columna.",
365
+ gridFacetResult: "{count} filas coincidentes",
366
+ gridFacetSelected: "{count} seleccionados",
367
+ gridFacetValueCount: "{value}, {count} filas",
368
+ gridFacetCollapse: "Contraer {column}",
369
+ gridFacetExpand: "Expandir {column}",
370
+ gridFacetInvalid: "Introduzca un valor válido.",
371
+ gridFacetReversed: "«Desde» no puede ser posterior a «Hasta».",
372
+ linkFilteredBy: "Filtrado por {source}: {values}",
373
+ linkRemoveFilter: "Quitar el filtro de {source}: {values}",
374
+ linkFiltered: "Filtrado por {source}: {count} filas",
375
+ linkHighlighted: "{count} filas resaltadas desde {source}",
376
+ linkHighlightedRows: "{count} filas resaltadas",
377
+ linkCleared: "Filtros vinculados eliminados",
378
+ formatRules: "Formato condicional",
379
+ formatLegend: "Leyenda de formato",
380
+ formatUpTo: "Hasta",
381
+ formatAbove: "Por encima de",
382
+ formatHiddenFlagged: "Campos ocultos con formato: {count} ({rules})",
383
+ formatRule: "Regla {number}",
384
+ formatAddRule: "Agregar regla",
385
+ formatEditRule: "Editar {rule}",
386
+ formatDeleteRule: "Eliminar {rule}",
387
+ formatMoveUp: "Subir {rule}",
388
+ formatMoveDown: "Bajar {rule}",
389
+ formatEnableRule: "Aplicar {rule}",
390
+ formatNoRules: "No hay reglas de formato.",
391
+ formatName: "Nombre",
392
+ formatDescription: "Descripción para lectores de pantalla",
393
+ formatOnlyRowsWhere: "Solo filas en las que",
394
+ formatEveryRow: "Todas las filas",
395
+ formatNone: "Ninguna",
396
+ formatApplyTo: "Aplicar a",
397
+ formatTargetCell: "Celda",
398
+ formatTargetRow: "Fila completa",
399
+ formatTargetColumns: "Columnas elegidas",
400
+ formatStyle: "Estilo",
401
+ formatHighlight: "Resaltado",
402
+ formatDataBar: "Barra de datos",
403
+ formatColorScale: "Escala de color",
404
+ formatBands: "Bandas de umbral",
405
+ formatTone: "Tono",
406
+ formatEmphasis: "Énfasis",
407
+ formatFill: "Relleno",
408
+ formatTextOnly: "Color del texto",
409
+ formatStrong: "Relleno en negrita",
410
+ formatIcon: "Icono",
411
+ formatNoIcon: "Sin icono",
412
+ formatAutomatic: "Automático",
413
+ formatBadge: "Insignia",
414
+ formatCue: "Indicación de texto",
415
+ formatLowest: "Mínimo",
416
+ formatMidpoint: "Punto medio",
417
+ formatHighest: "Máximo",
418
+ formatAddBand: "+ Banda",
419
+ formatRemoveBand: "Quitar banda",
420
+ formatSave: "Guardar regla",
421
+ formatCancel: "Cancelar",
422
+ formatShowLegend: "Mostrar leyenda",
423
+ formatInvalid: "Complete la regla antes de guardar.",
424
+ formatMatchCase: "Coincidir mayúsculas y minúsculas",
425
+ formatToneDanger: "Peligro",
426
+ formatToneWarning: "Advertencia",
427
+ formatToneSuccess: "Éxito",
428
+ formatToneInfo: "Información",
429
+ formatToneNeutral: "Neutro",
430
+ formatToneMuted: "Atenuado",
431
+ formatNotContains: "no contiene",
432
+ formatEndsWith: "termina con",
433
+ formatNotIn: "no es ninguno de",
434
+ formatBetween: "entre",
435
+ formatLike: "coincide con comodín",
436
+ formatMatches: "coincide con el patrón",
437
+ formatOlderThan: "anterior a (días)",
438
+ formatWithinLast: "en los últimos (días)",
439
+ formatNotLike: "no coincide con comodín",
440
+ formatNotMatches: "no coincide con el patrón",
441
+ formatBetweenExclusive: "entre (exclusivo)",
442
+ calendarToday: "Hoy",
443
+ calendarPrevious: "Período anterior",
444
+ calendarNext: "Período siguiente",
445
+ calendarViews: "Vista del calendario",
446
+ calendarMonth: "Mes",
447
+ calendarWeek: "Semana",
448
+ calendarDay: "Día",
449
+ calendarDays: "{count} días",
450
+ calendarAgenda: "Agenda",
451
+ calendarYear: "Año",
452
+ calendarTimeline: "Línea de tiempo",
453
+ calendarGoTo: "Ir a la fecha",
454
+ calendarAllDay: "Todo el día",
455
+ calendarMore: "+{count} más",
456
+ calendarMoreLabel: "Mostrar {count} eventos más el {date}",
457
+ calendarDayEvents: "Eventos del {date}",
458
+ calendarNoEvents: "No hay eventos en este período",
459
+ calendarEvents: "[one]{count} evento[other]{count} eventos",
460
+ calendarShowing: "{view}, {range}",
461
+ calendarRepeats: "Se repite",
462
+ calendarTruncated: "Se muestran los primeros {count} eventos. Acote el período o los filtros para ver el resto.",
463
+ calendarLoading: "Cargando eventos…",
464
+ calendarLoadError: "No se pudieron cargar los eventos: {error}",
465
+ calendarNow: "Ahora",
466
+ calendarZoom: "Escala",
467
+ calendarZoomHour: "Horas",
468
+ calendarZoomDay: "Días",
469
+ calendarZoomWeek: "Semanas",
470
+ calendarZoomMonth: "Meses",
471
+ calendarZoomQuarter: "Trimestres",
472
+ calendarResources: "Recursos",
473
+ calendarCapacity: "Eventos simultáneos",
474
+ calendarCapacityAt: "{count} a la vez",
475
+ calendarBusy: "{hours} h ocupadas",
476
+ calendarOverlaps: "[one]{count} solapamiento[other]{count} solapamientos",
477
+ calendarUnavailable: "No disponible",
478
+ calendarOutsideHours: "Fuera del horario laboral",
479
+ calendarConflict: "Se solapa con {title}",
480
+ calendarNotAllowed: "{resource} no puede aceptar este evento",
481
+ calendarMoved: "{title} se movió a {time}",
482
+ calendarResized: "Nuevo fin de {title}: {time}",
483
+ calendarSeriesMoved: "Se movieron todas las repeticiones de {title}",
484
+ calendarSeriesTime: "Aquí solo se puede mover la hora de toda la serie.",
485
+ calendarMoveHelp: "Las flechas mueven, Mayús con las flechas cambia el final, Alt con Arriba o Abajo cambia el recurso, Intro guarda, Escape cancela.",
486
+ calendarEdit: "Mover o cambiar el tamaño de {title}",
487
+ calendarSaveFailed: "No se guardó {title}: {error}",
488
+ calendarExport: "iCalendar (.ics)",
489
+ calendarTimeRange: "{start} – {end}",
490
+ calendarSelected: "Seleccionado: {range}",
491
+ calendarLane: "{resource}, {events}",
492
+ calendarHighlighted: "[one]{count} evento resaltado[other]{count} eventos resaltados",
493
+ calendarMini: "Mes en miniatura",
494
+ calendarWeekList: "Lista semanal",
495
+ calendarDayList: "Lista diaria",
496
+ calendarMonths: "Meses",
497
+ calendarWeekNumber: "Semana {number}",
498
+ calendarWeekShort: "S{number}",
499
+ calendarNewEvent: "Nuevo evento",
500
+ calendarEventTitle: "Título",
501
+ calendarCreate: "Añadir",
502
+ calendarCancel: "Cancelar",
503
+ calendarCreated: "{title} añadido el {time}",
504
+ calendarReceived: "{title} programado el {time}",
505
+ calendarOccurrenceTitle: "Cambiar un evento periódico",
506
+ calendarOccurrenceReadOnly: "No se puede guardar esta parte de la serie porque algunos valores son de solo lectura.",
507
+ calendarThisEvent: "Este evento",
508
+ calendarThisAndFollowing: "Este evento y los siguientes",
509
+ calendarAllEvents: "Todos los eventos",
510
+ calendarSources: "Calendarios",
511
+ calendarImportFailed: "No se pudo leer {source}: {error}",
512
+ calendarActions: "Acciones para {title}",
513
+ calendarOpen: "Abrir",
514
+ calendarMove: "Mover",
515
+ calendarNewHere: "Nuevo evento aquí",
516
+ calendarOutsideRange: "Fuera de las fechas que muestra este calendario",
517
+ calendarClose: "Cerrar",
518
+ calendarDetailsOf: "Detalles de {title}",
215
519
  });
216
520
  const staticLabels = Object.freeze({
217
521
  overflowNote: "Filas mostradas: {shown}. Total: {total}.",
@@ -0,0 +1,6 @@
1
+ import type { CanopyLabels } from "../protocol.js";
2
+ /** Complete French browser labels; individual properties can be overridden by the host. */
3
+ export const labels: Readonly<Required<CanopyLabels>>;
4
+ /** Labels used only by a script-free static fallback. */
5
+ export const staticLabels: Readonly<{ overflowNote: string; unknownTotal: string; hiddenRows: string; fullReport: string }>;
6
+ export default labels;