@fullstackhouse/open-mercato-data-sync-durable 0.1.0

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 (175) hide show
  1. package/README.md +86 -0
  2. package/dist/engine/durable-run.js +130 -0
  3. package/dist/engine/durable-run.js.map +7 -0
  4. package/dist/index.js +5 -0
  5. package/dist/index.js.map +7 -0
  6. package/dist/kinds/data-sync-run.js +57 -0
  7. package/dist/kinds/data-sync-run.js.map +7 -0
  8. package/dist/mirror-version.js +5 -0
  9. package/dist/mirror-version.js.map +7 -0
  10. package/dist/mirror.manifest.json +65 -0
  11. package/dist/modules/data_sync/acl.js +8 -0
  12. package/dist/modules/data_sync/acl.js.map +7 -0
  13. package/dist/modules/data_sync/api/mappings/[id]/route.js +17 -0
  14. package/dist/modules/data_sync/api/mappings/[id]/route.js.map +7 -0
  15. package/dist/modules/data_sync/api/mappings/route.js +15 -0
  16. package/dist/modules/data_sync/api/mappings/route.js.map +7 -0
  17. package/dist/modules/data_sync/api/options.js +13 -0
  18. package/dist/modules/data_sync/api/options.js.map +7 -0
  19. package/dist/modules/data_sync/api/run.js +59 -0
  20. package/dist/modules/data_sync/api/run.js.map +7 -0
  21. package/dist/modules/data_sync/api/runs/[id]/cancel.js +13 -0
  22. package/dist/modules/data_sync/api/runs/[id]/cancel.js.map +7 -0
  23. package/dist/modules/data_sync/api/runs/[id]/retry.js +13 -0
  24. package/dist/modules/data_sync/api/runs/[id]/retry.js.map +7 -0
  25. package/dist/modules/data_sync/api/runs/[id]/route.js +13 -0
  26. package/dist/modules/data_sync/api/runs/[id]/route.js.map +7 -0
  27. package/dist/modules/data_sync/api/runs.js +13 -0
  28. package/dist/modules/data_sync/api/runs.js.map +7 -0
  29. package/dist/modules/data_sync/api/schedules/[id]/route.js +17 -0
  30. package/dist/modules/data_sync/api/schedules/[id]/route.js.map +7 -0
  31. package/dist/modules/data_sync/api/schedules/route.js +15 -0
  32. package/dist/modules/data_sync/api/schedules/route.js.map +7 -0
  33. package/dist/modules/data_sync/api/schedules/serialize.js +6 -0
  34. package/dist/modules/data_sync/api/schedules/serialize.js.map +7 -0
  35. package/dist/modules/data_sync/api/validate.js +13 -0
  36. package/dist/modules/data_sync/api/validate.js.map +7 -0
  37. package/dist/modules/data_sync/backend/data-sync/page.js +7 -0
  38. package/dist/modules/data_sync/backend/data-sync/page.js.map +7 -0
  39. package/dist/modules/data_sync/backend/data-sync/page.meta.js +6 -0
  40. package/dist/modules/data_sync/backend/data-sync/page.meta.js.map +7 -0
  41. package/dist/modules/data_sync/backend/data-sync/runs/[id]/page.js +7 -0
  42. package/dist/modules/data_sync/backend/data-sync/runs/[id]/page.js.map +7 -0
  43. package/dist/modules/data_sync/backend/data-sync/runs/[id]/page.meta.js +6 -0
  44. package/dist/modules/data_sync/backend/data-sync/runs/[id]/page.meta.js.map +7 -0
  45. package/dist/modules/data_sync/components/IntegrationScheduleTab.js +9 -0
  46. package/dist/modules/data_sync/components/IntegrationScheduleTab.js.map +7 -0
  47. package/dist/modules/data_sync/components/RunParameterFields.js +13 -0
  48. package/dist/modules/data_sync/components/RunParameterFields.js.map +7 -0
  49. package/dist/modules/data_sync/data/entities.js +9 -0
  50. package/dist/modules/data_sync/data/entities.js.map +7 -0
  51. package/dist/modules/data_sync/data/validators.js +12 -0
  52. package/dist/modules/data_sync/data/validators.js.map +7 -0
  53. package/dist/modules/data_sync/di.js +33 -0
  54. package/dist/modules/data_sync/di.js.map +7 -0
  55. package/dist/modules/data_sync/events.js +9 -0
  56. package/dist/modules/data_sync/events.js.map +7 -0
  57. package/dist/modules/data_sync/extension-points.js +8 -0
  58. package/dist/modules/data_sync/extension-points.js.map +7 -0
  59. package/dist/modules/data_sync/i18n/de.json +135 -0
  60. package/dist/modules/data_sync/i18n/en.json +135 -0
  61. package/dist/modules/data_sync/i18n/es.json +135 -0
  62. package/dist/modules/data_sync/i18n/ko.json +135 -0
  63. package/dist/modules/data_sync/i18n/pl.json +135 -0
  64. package/dist/modules/data_sync/index.js +6 -0
  65. package/dist/modules/data_sync/index.js.map +7 -0
  66. package/dist/modules/data_sync/lib/abandoned-run.js +6 -0
  67. package/dist/modules/data_sync/lib/abandoned-run.js.map +7 -0
  68. package/dist/modules/data_sync/lib/adapter-registry.js +10 -0
  69. package/dist/modules/data_sync/lib/adapter-registry.js.map +7 -0
  70. package/dist/modules/data_sync/lib/adapter.js +2 -0
  71. package/dist/modules/data_sync/lib/adapter.js.map +7 -0
  72. package/dist/modules/data_sync/lib/adopt-on-delivery.js +35 -0
  73. package/dist/modules/data_sync/lib/adopt-on-delivery.js.map +7 -0
  74. package/dist/modules/data_sync/lib/batch-stream.js +6 -0
  75. package/dist/modules/data_sync/lib/batch-stream.js.map +7 -0
  76. package/dist/modules/data_sync/lib/id-mapping.js +6 -0
  77. package/dist/modules/data_sync/lib/id-mapping.js.map +7 -0
  78. package/dist/modules/data_sync/lib/queue-policy.js +11 -0
  79. package/dist/modules/data_sync/lib/queue-policy.js.map +7 -0
  80. package/dist/modules/data_sync/lib/queue.js +6 -0
  81. package/dist/modules/data_sync/lib/queue.js.map +7 -0
  82. package/dist/modules/data_sync/lib/run-parameters.js +8 -0
  83. package/dist/modules/data_sync/lib/run-parameters.js.map +7 -0
  84. package/dist/modules/data_sync/lib/start-cursor.js +8 -0
  85. package/dist/modules/data_sync/lib/start-cursor.js.map +7 -0
  86. package/dist/modules/data_sync/lib/start-run.js +51 -0
  87. package/dist/modules/data_sync/lib/start-run.js.map +7 -0
  88. package/dist/modules/data_sync/lib/sync-engine.js +6 -0
  89. package/dist/modules/data_sync/lib/sync-engine.js.map +7 -0
  90. package/dist/modules/data_sync/lib/sync-run-service.js +7 -0
  91. package/dist/modules/data_sync/lib/sync-run-service.js.map +7 -0
  92. package/dist/modules/data_sync/lib/sync-schedule-service.js +6 -0
  93. package/dist/modules/data_sync/lib/sync-schedule-service.js.map +7 -0
  94. package/dist/modules/data_sync/lib/syncRunStatus.js +9 -0
  95. package/dist/modules/data_sync/lib/syncRunStatus.js.map +7 -0
  96. package/dist/modules/data_sync/lib/version-guard.js +14 -0
  97. package/dist/modules/data_sync/lib/version-guard.js.map +7 -0
  98. package/dist/modules/data_sync/migrations/Migration20260304113737.js +6 -0
  99. package/dist/modules/data_sync/migrations/Migration20260304113737.js.map +7 -0
  100. package/dist/modules/data_sync/migrations/Migration20260810120000.js +6 -0
  101. package/dist/modules/data_sync/migrations/Migration20260810120000.js.map +7 -0
  102. package/dist/modules/data_sync/setup.js +8 -0
  103. package/dist/modules/data_sync/setup.js.map +7 -0
  104. package/dist/modules/data_sync/workers/sync-export.js +19 -0
  105. package/dist/modules/data_sync/workers/sync-export.js.map +7 -0
  106. package/dist/modules/data_sync/workers/sync-import.js +19 -0
  107. package/dist/modules/data_sync/workers/sync-import.js.map +7 -0
  108. package/dist/modules/data_sync/workers/sync-scheduled.js +8 -0
  109. package/dist/modules/data_sync/workers/sync-scheduled.js.map +7 -0
  110. package/generated/entities/sync_cursor/index.ts +8 -0
  111. package/generated/entities/sync_mapping/index.ts +8 -0
  112. package/generated/entities/sync_run/index.ts +22 -0
  113. package/generated/entities/sync_schedule/index.ts +16 -0
  114. package/generated/entities.ids.generated.ts +13 -0
  115. package/package.json +135 -0
  116. package/src/compat/mirror-shape.test.ts +106 -0
  117. package/src/compat/seams.test.ts +97 -0
  118. package/src/engine/durable-run.ts +231 -0
  119. package/src/index.ts +4 -0
  120. package/src/kinds/data-sync-run.ts +104 -0
  121. package/src/mirror-version.ts +3 -0
  122. package/src/mirror.manifest.json +65 -0
  123. package/src/modules/data_sync/__integration__/TC-DSD-001.spec.ts +80 -0
  124. package/src/modules/data_sync/acl.ts +5 -0
  125. package/src/modules/data_sync/api/mappings/[id]/route.ts +12 -0
  126. package/src/modules/data_sync/api/mappings/route.ts +11 -0
  127. package/src/modules/data_sync/api/options.ts +10 -0
  128. package/src/modules/data_sync/api/run.ts +103 -0
  129. package/src/modules/data_sync/api/runs/[id]/cancel.ts +10 -0
  130. package/src/modules/data_sync/api/runs/[id]/retry.ts +10 -0
  131. package/src/modules/data_sync/api/runs/[id]/route.ts +10 -0
  132. package/src/modules/data_sync/api/runs.ts +10 -0
  133. package/src/modules/data_sync/api/schedules/[id]/route.ts +12 -0
  134. package/src/modules/data_sync/api/schedules/route.ts +11 -0
  135. package/src/modules/data_sync/api/schedules/serialize.ts +4 -0
  136. package/src/modules/data_sync/api/validate.ts +10 -0
  137. package/src/modules/data_sync/backend/data-sync/page.meta.ts +4 -0
  138. package/src/modules/data_sync/backend/data-sync/page.tsx +5 -0
  139. package/src/modules/data_sync/backend/data-sync/runs/[id]/page.meta.ts +4 -0
  140. package/src/modules/data_sync/backend/data-sync/runs/[id]/page.tsx +5 -0
  141. package/src/modules/data_sync/components/IntegrationScheduleTab.tsx +6 -0
  142. package/src/modules/data_sync/components/RunParameterFields.tsx +5 -0
  143. package/src/modules/data_sync/data/entities.ts +4 -0
  144. package/src/modules/data_sync/data/validators.ts +4 -0
  145. package/src/modules/data_sync/di.ts +57 -0
  146. package/src/modules/data_sync/events.ts +5 -0
  147. package/src/modules/data_sync/extension-points.ts +5 -0
  148. package/src/modules/data_sync/i18n/de.json +135 -0
  149. package/src/modules/data_sync/i18n/en.json +135 -0
  150. package/src/modules/data_sync/i18n/es.json +135 -0
  151. package/src/modules/data_sync/i18n/ko.json +135 -0
  152. package/src/modules/data_sync/i18n/pl.json +135 -0
  153. package/src/modules/data_sync/index.ts +4 -0
  154. package/src/modules/data_sync/lib/adapter-registry.ts +4 -0
  155. package/src/modules/data_sync/lib/adapter.ts +3 -0
  156. package/src/modules/data_sync/lib/adopt-on-delivery.ts +69 -0
  157. package/src/modules/data_sync/lib/batch-stream.ts +4 -0
  158. package/src/modules/data_sync/lib/id-mapping.ts +4 -0
  159. package/src/modules/data_sync/lib/queue-policy.ts +4 -0
  160. package/src/modules/data_sync/lib/queue.ts +4 -0
  161. package/src/modules/data_sync/lib/run-parameters.ts +4 -0
  162. package/src/modules/data_sync/lib/start-cursor.ts +4 -0
  163. package/src/modules/data_sync/lib/start-run.ts +106 -0
  164. package/src/modules/data_sync/lib/sync-engine.ts +4 -0
  165. package/src/modules/data_sync/lib/sync-run-service.ts +4 -0
  166. package/src/modules/data_sync/lib/sync-schedule-service.ts +4 -0
  167. package/src/modules/data_sync/lib/syncRunStatus.ts +4 -0
  168. package/src/modules/data_sync/lib/version-guard.ts +27 -0
  169. package/src/modules/data_sync/migrations/.snapshot-open-mercato.json +1013 -0
  170. package/src/modules/data_sync/migrations/Migration20260304113737.ts +4 -0
  171. package/src/modules/data_sync/migrations/Migration20260810120000.ts +4 -0
  172. package/src/modules/data_sync/setup.ts +5 -0
  173. package/src/modules/data_sync/workers/sync-export.ts +20 -0
  174. package/src/modules/data_sync/workers/sync-import.ts +20 -0
  175. package/src/modules/data_sync/workers/sync-scheduled.ts +5 -0
@@ -0,0 +1,135 @@
1
+ {
2
+ "data_sync.dashboard.actions.view": "Anzeigen",
3
+ "data_sync.dashboard.columns.created": "Erstellt",
4
+ "data_sync.dashboard.columns.createdAt": "Gestartet",
5
+ "data_sync.dashboard.columns.direction": "Richtung",
6
+ "data_sync.dashboard.columns.entityType": "Entitätstyp",
7
+ "data_sync.dashboard.columns.failed": "Fehlgeschlagen",
8
+ "data_sync.dashboard.columns.integration": "Integration",
9
+ "data_sync.dashboard.columns.status": "Status",
10
+ "data_sync.dashboard.columns.updated": "Aktualisiert",
11
+ "data_sync.dashboard.direction.export": "Export",
12
+ "data_sync.dashboard.direction.import": "Import",
13
+ "data_sync.dashboard.filters.allDirections": "Alle Richtungen",
14
+ "data_sync.dashboard.filters.allStatuses": "Alle Status",
15
+ "data_sync.dashboard.filters.status": "Status",
16
+ "data_sync.dashboard.loadError": "Synchronisierungsläufe konnten nicht geladen werden",
17
+ "data_sync.dashboard.noRuns": "Noch keine Synchronisierungsläufe",
18
+ "data_sync.dashboard.schedule.cron": "Cron",
19
+ "data_sync.dashboard.schedule.cronHelp": "Example: `0 * * * *` runs at the start of every hour.",
20
+ "data_sync.dashboard.schedule.cronValue": "Cron expression",
21
+ "data_sync.dashboard.schedule.delete": "Remove schedule",
22
+ "data_sync.dashboard.schedule.deleteError": "Failed to remove recurring schedule",
23
+ "data_sync.dashboard.schedule.deleteSuccess": "Recurring schedule removed",
24
+ "data_sync.dashboard.schedule.deleting": "Removing...",
25
+ "data_sync.dashboard.schedule.description": "Save a repeating schedule for the selected integration, entity, and direction without leaving this dashboard.",
26
+ "data_sync.dashboard.schedule.enabled": "Schedule enabled",
27
+ "data_sync.dashboard.schedule.enabledHelp": "Pause the recurring job without deleting the schedule definition.",
28
+ "data_sync.dashboard.schedule.error": "Failed to save recurring schedule",
29
+ "data_sync.dashboard.schedule.fullSync": "Run scheduled jobs as full sync",
30
+ "data_sync.dashboard.schedule.fullSyncHelp": "When enabled, every recurring run starts from the beginning instead of the saved cursor.",
31
+ "data_sync.dashboard.schedule.interval": "Interval",
32
+ "data_sync.dashboard.schedule.intervalHelp": "Example: `1h`, `6h`, or `24h` for repeating intervals.",
33
+ "data_sync.dashboard.schedule.intervalValue": "Interval",
34
+ "data_sync.dashboard.schedule.invalidValue": "Provide a schedule value before saving.",
35
+ "data_sync.dashboard.schedule.lastRun": "Last scheduled run: {value}",
36
+ "data_sync.dashboard.schedule.neverRun": "Saved, but no scheduled execution has completed yet.",
37
+ "data_sync.dashboard.schedule.none": "No recurring schedule saved for this target yet.",
38
+ "data_sync.dashboard.schedule.save": "Save recurring schedule",
39
+ "data_sync.dashboard.schedule.saving": "Saving...",
40
+ "data_sync.dashboard.schedule.status.disabled": "Recurring schedule paused",
41
+ "data_sync.dashboard.schedule.status.enabled": "Recurring schedule active",
42
+ "data_sync.dashboard.schedule.status.none": "No recurring schedule",
43
+ "data_sync.dashboard.schedule.status.shortDisabled": "Paused",
44
+ "data_sync.dashboard.schedule.status.shortEnabled": "Scheduled",
45
+ "data_sync.dashboard.schedule.status.shortNone": "One-time only",
46
+ "data_sync.dashboard.schedule.success": "Recurring schedule saved",
47
+ "data_sync.dashboard.schedule.timezone": "Timezone",
48
+ "data_sync.dashboard.schedule.title": "Recurring schedule",
49
+ "data_sync.dashboard.schedule.type": "Schedule type",
50
+ "data_sync.dashboard.searchPlaceholder": "Nach Integration, Entitätstyp, Status oder Lauf-ID suchen",
51
+ "data_sync.dashboard.start.batchSize": "Batch Size",
52
+ "data_sync.dashboard.start.description": "Pick a sync target, launch an ad-hoc run, or save a recurring schedule for the same entity and direction from this page.",
53
+ "data_sync.dashboard.start.error": "Failed to start sync run",
54
+ "data_sync.dashboard.start.eyebrow": "Run once or keep it recurring",
55
+ "data_sync.dashboard.start.fullSync": "Run as full sync",
56
+ "data_sync.dashboard.start.fullSyncHelp": "Ignore the saved cursor and process the entire source again for this run.",
57
+ "data_sync.dashboard.start.invalidBatchSize": "Batch size must be between 1 and 1000.",
58
+ "data_sync.dashboard.start.parameters": "Lauf-Parameter",
59
+ "data_sync.dashboard.start.parametersHelp": "Optionale Werte, die diese Integration für den manuellen Lauf akzeptiert.",
60
+ "data_sync.dashboard.start.providerManaged": "Diese Integration startet Synchronisierungsläufe über ihren eigenen Einrichtungsablauf. Öffne die Integrationseinstellungen, um fortzufahren.",
61
+ "data_sync.dashboard.start.runNowDescription": "Use this for the next immediate sync. Batch size and full-sync mode apply only to this manual run.",
62
+ "data_sync.dashboard.start.runNowFootnote": "Manual runs show progress immediately and land on the run detail page after launch.",
63
+ "data_sync.dashboard.start.runNowTitle": "Run once now",
64
+ "data_sync.dashboard.start.status.credentialsMissing": "Credentials missing",
65
+ "data_sync.dashboard.start.status.credentialsReady": "Credentials ready",
66
+ "data_sync.dashboard.start.status.disabled": "Integration disabled",
67
+ "data_sync.dashboard.start.status.enabled": "Integration enabled",
68
+ "data_sync.dashboard.start.submit": "Start sync",
69
+ "data_sync.dashboard.start.success": "Sync run started",
70
+ "data_sync.dashboard.start.title": "Start or schedule a sync",
71
+ "data_sync.dashboard.status.cancelled": "Abgebrochen",
72
+ "data_sync.dashboard.status.completed": "Abgeschlossen",
73
+ "data_sync.dashboard.status.failed": "Fehlgeschlagen",
74
+ "data_sync.dashboard.status.paused": "Pausiert",
75
+ "data_sync.dashboard.status.pending": "Ausstehend",
76
+ "data_sync.dashboard.status.running": "Läuft",
77
+ "data_sync.dashboard.title": "Synchronisierungsläufe",
78
+ "data_sync.integrationTab.columns.actions": "Actions",
79
+ "data_sync.integrationTab.columns.lastRun": "Last run",
80
+ "data_sync.integrationTab.columns.value": "Value",
81
+ "data_sync.integrationTab.credentialsMissing": "Configure credentials before starting a sync.",
82
+ "data_sync.integrationTab.credentialsMissingNotice": "Credentials are still missing. Save schedules first if you want, but manual and scheduled runs will fail until credentials are configured.",
83
+ "data_sync.integrationTab.description": "Run one-off syncs or save recurring schedules for every supported entity directly from the integration detail page.",
84
+ "data_sync.integrationTab.empty": "This provider does not expose any schedulable sync entities yet.",
85
+ "data_sync.integrationTab.fullSyncShort": "Full",
86
+ "data_sync.integrationTab.integrationDisabled": "Enable the integration before starting a sync.",
87
+ "data_sync.integrationTab.integrationDisabledNotice": "The integration is disabled. You can save schedules now, but runs will stay blocked until the integration is enabled.",
88
+ "data_sync.integrationTab.loadError": "Failed to load sync schedules.",
89
+ "data_sync.integrationTab.notAvailable": "This integration is not registered as a data sync provider.",
90
+ "data_sync.integrationTab.parametersRequired": "Dieser Lauf benötigt Parameter. Starte ihn über das Data-Sync-Dashboard.",
91
+ "data_sync.integrationTab.providerManaged": "Starte diese Integration über ihren anbieterspezifischen Einrichtungsablauf.",
92
+ "data_sync.integrationTab.providerManagedNotice": "Dieser Anbieter benötigt einen eigenen Einrichtungsablauf, bevor ein Lauf gestartet werden kann. Verwende den Anbieter-Tab auf dieser Seite statt der generischen Zeitpläne.",
93
+ "data_sync.integrationTab.refresh": "Refresh",
94
+ "data_sync.integrationTab.runError": "Failed to start sync.",
95
+ "data_sync.integrationTab.runNowHelp": "Run now uses the full-sync checkbox from the same row and starts progress tracking immediately in Data Sync.",
96
+ "data_sync.integrationTab.runNowTitle": "Manual runs",
97
+ "data_sync.integrationTab.runStarted": "Sync run started.",
98
+ "data_sync.integrationTab.start": "Run now",
99
+ "data_sync.integrationTab.starting": "Starting...",
100
+ "data_sync.integrationTab.title": "Sync schedules",
101
+ "data_sync.nav.title": "Datensynchronisation",
102
+ "data_sync.runParameters.errors.max": "{label} darf höchstens {max} betragen.",
103
+ "data_sync.runParameters.errors.min": "{label} muss mindestens {min} betragen.",
104
+ "data_sync.runParameters.errors.required": "{label} ist erforderlich.",
105
+ "data_sync.runParameters.errors.select": "{label} muss einer dieser Werte sein: {options}.",
106
+ "data_sync.runParameters.errors.type": "{label} muss vom Typ {type} sein.",
107
+ "data_sync.runs.detail.back": "Zurück zu Läufen",
108
+ "data_sync.runs.detail.cancel": "Abbrechen",
109
+ "data_sync.runs.detail.cancelError": "Lauf konnte nicht abgebrochen werden",
110
+ "data_sync.runs.detail.cancelSuccess": "Lauf abgebrochen",
111
+ "data_sync.runs.detail.counters.created": "Erstellt",
112
+ "data_sync.runs.detail.counters.failed": "Fehlgeschlagen",
113
+ "data_sync.runs.detail.counters.skipped": "Übersprungen",
114
+ "data_sync.runs.detail.counters.updated": "Aktualisiert",
115
+ "data_sync.runs.detail.error": "Fehler",
116
+ "data_sync.runs.detail.loadError": "Lauf konnte nicht geladen werden",
117
+ "data_sync.runs.detail.logs": "Betriebsprotokolle",
118
+ "data_sync.runs.detail.logs.level": "Stufe",
119
+ "data_sync.runs.detail.logs.message": "Nachricht",
120
+ "data_sync.runs.detail.logs.time": "Zeit",
121
+ "data_sync.runs.detail.noLogs": "Keine Protokolleinträge",
122
+ "data_sync.runs.detail.notFound": "Synchronisierungslauf nicht gefunden.",
123
+ "data_sync.runs.detail.parameters": "Lauf-Parameter",
124
+ "data_sync.runs.detail.progress": "Fortschritt",
125
+ "data_sync.runs.detail.progress.batches": "{count} Stapel",
126
+ "data_sync.runs.detail.progress.eta": "{eta} verbleibend",
127
+ "data_sync.runs.detail.progress.itemsProcessed": "{count} Elemente verarbeitet",
128
+ "data_sync.runs.detail.progress.itemsProcessedTotal": "{processed} / {total} Elemente verarbeitet",
129
+ "data_sync.runs.detail.progress.percent": "{percent}% abgeschlossen",
130
+ "data_sync.runs.detail.retry": "Wiederholen",
131
+ "data_sync.runs.detail.retryError": "Lauf konnte nicht wiederholt werden",
132
+ "data_sync.runs.detail.retryParametersStale": "Die gespeicherten Laufparameter sind für diese Integration nicht mehr gültig. Starten Sie einen neuen Lauf über das Data-Sync-Dashboard.",
133
+ "data_sync.runs.detail.retrySuccess": "Lauf wiederholt",
134
+ "data_sync.runs.detail.title": "Synchronisierungslauf"
135
+ }
@@ -0,0 +1,135 @@
1
+ {
2
+ "data_sync.dashboard.actions.view": "View",
3
+ "data_sync.dashboard.columns.created": "Created",
4
+ "data_sync.dashboard.columns.createdAt": "Started",
5
+ "data_sync.dashboard.columns.direction": "Direction",
6
+ "data_sync.dashboard.columns.entityType": "Entity Type",
7
+ "data_sync.dashboard.columns.failed": "Failed",
8
+ "data_sync.dashboard.columns.integration": "Integration",
9
+ "data_sync.dashboard.columns.status": "Status",
10
+ "data_sync.dashboard.columns.updated": "Updated",
11
+ "data_sync.dashboard.direction.export": "Export",
12
+ "data_sync.dashboard.direction.import": "Import",
13
+ "data_sync.dashboard.filters.allDirections": "All Directions",
14
+ "data_sync.dashboard.filters.allStatuses": "All Statuses",
15
+ "data_sync.dashboard.filters.status": "Status",
16
+ "data_sync.dashboard.loadError": "Failed to load sync runs",
17
+ "data_sync.dashboard.noRuns": "No sync runs yet",
18
+ "data_sync.dashboard.schedule.cron": "Cron",
19
+ "data_sync.dashboard.schedule.cronHelp": "Example: `0 * * * *` runs at the start of every hour.",
20
+ "data_sync.dashboard.schedule.cronValue": "Cron expression",
21
+ "data_sync.dashboard.schedule.delete": "Remove schedule",
22
+ "data_sync.dashboard.schedule.deleteError": "Failed to remove recurring schedule",
23
+ "data_sync.dashboard.schedule.deleteSuccess": "Recurring schedule removed",
24
+ "data_sync.dashboard.schedule.deleting": "Removing...",
25
+ "data_sync.dashboard.schedule.description": "Save a repeating schedule for the selected integration, entity, and direction without leaving this dashboard.",
26
+ "data_sync.dashboard.schedule.enabled": "Schedule enabled",
27
+ "data_sync.dashboard.schedule.enabledHelp": "Pause the recurring job without deleting the schedule definition.",
28
+ "data_sync.dashboard.schedule.error": "Failed to save recurring schedule",
29
+ "data_sync.dashboard.schedule.fullSync": "Run scheduled jobs as full sync",
30
+ "data_sync.dashboard.schedule.fullSyncHelp": "When enabled, every recurring run starts from the beginning instead of the saved cursor.",
31
+ "data_sync.dashboard.schedule.interval": "Interval",
32
+ "data_sync.dashboard.schedule.intervalHelp": "Example: `1h`, `6h`, or `24h` for repeating intervals.",
33
+ "data_sync.dashboard.schedule.intervalValue": "Interval",
34
+ "data_sync.dashboard.schedule.invalidValue": "Provide a schedule value before saving.",
35
+ "data_sync.dashboard.schedule.lastRun": "Last scheduled run: {value}",
36
+ "data_sync.dashboard.schedule.neverRun": "Saved, but no scheduled execution has completed yet.",
37
+ "data_sync.dashboard.schedule.none": "No recurring schedule saved for this target yet.",
38
+ "data_sync.dashboard.schedule.save": "Save recurring schedule",
39
+ "data_sync.dashboard.schedule.saving": "Saving...",
40
+ "data_sync.dashboard.schedule.status.disabled": "Recurring schedule paused",
41
+ "data_sync.dashboard.schedule.status.enabled": "Recurring schedule active",
42
+ "data_sync.dashboard.schedule.status.none": "No recurring schedule",
43
+ "data_sync.dashboard.schedule.status.shortDisabled": "Paused",
44
+ "data_sync.dashboard.schedule.status.shortEnabled": "Scheduled",
45
+ "data_sync.dashboard.schedule.status.shortNone": "One-time only",
46
+ "data_sync.dashboard.schedule.success": "Recurring schedule saved",
47
+ "data_sync.dashboard.schedule.timezone": "Timezone",
48
+ "data_sync.dashboard.schedule.title": "Recurring schedule",
49
+ "data_sync.dashboard.schedule.type": "Schedule type",
50
+ "data_sync.dashboard.searchPlaceholder": "Search by integration, entity type, status, or run ID",
51
+ "data_sync.dashboard.start.batchSize": "Batch Size",
52
+ "data_sync.dashboard.start.description": "Pick a sync target, launch an ad-hoc run, or save a recurring schedule for the same entity and direction from this page.",
53
+ "data_sync.dashboard.start.error": "Failed to start sync run",
54
+ "data_sync.dashboard.start.eyebrow": "Run once or keep it recurring",
55
+ "data_sync.dashboard.start.fullSync": "Run as full sync",
56
+ "data_sync.dashboard.start.fullSyncHelp": "Ignore the saved cursor and process the entire source again for this run.",
57
+ "data_sync.dashboard.start.invalidBatchSize": "Batch size must be between 1 and 1000.",
58
+ "data_sync.dashboard.start.parameters": "Run parameters",
59
+ "data_sync.dashboard.start.parametersHelp": "Optional values this integration accepts for the manual run.",
60
+ "data_sync.dashboard.start.providerManaged": "This integration starts sync runs from its own setup flow. Open the integration settings page to continue.",
61
+ "data_sync.dashboard.start.runNowDescription": "Use this for the next immediate sync. Batch size and full-sync mode apply only to this manual run.",
62
+ "data_sync.dashboard.start.runNowFootnote": "Manual runs show progress immediately and land on the run detail page after launch.",
63
+ "data_sync.dashboard.start.runNowTitle": "Run once now",
64
+ "data_sync.dashboard.start.status.credentialsMissing": "Credentials missing",
65
+ "data_sync.dashboard.start.status.credentialsReady": "Credentials ready",
66
+ "data_sync.dashboard.start.status.disabled": "Integration disabled",
67
+ "data_sync.dashboard.start.status.enabled": "Integration enabled",
68
+ "data_sync.dashboard.start.submit": "Start sync",
69
+ "data_sync.dashboard.start.success": "Sync run started",
70
+ "data_sync.dashboard.start.title": "Start or schedule a sync",
71
+ "data_sync.dashboard.status.cancelled": "Cancelled",
72
+ "data_sync.dashboard.status.completed": "Completed",
73
+ "data_sync.dashboard.status.failed": "Failed",
74
+ "data_sync.dashboard.status.paused": "Paused",
75
+ "data_sync.dashboard.status.pending": "Pending",
76
+ "data_sync.dashboard.status.running": "Running",
77
+ "data_sync.dashboard.title": "Sync Runs",
78
+ "data_sync.integrationTab.columns.actions": "Actions",
79
+ "data_sync.integrationTab.columns.lastRun": "Last run",
80
+ "data_sync.integrationTab.columns.value": "Value",
81
+ "data_sync.integrationTab.credentialsMissing": "Configure credentials before starting a sync.",
82
+ "data_sync.integrationTab.credentialsMissingNotice": "Credentials are still missing. Save schedules first if you want, but manual and scheduled runs will fail until credentials are configured.",
83
+ "data_sync.integrationTab.description": "Run one-off syncs or save recurring schedules for every supported entity directly from the integration detail page.",
84
+ "data_sync.integrationTab.empty": "This provider does not expose any schedulable sync entities yet.",
85
+ "data_sync.integrationTab.fullSyncShort": "Full",
86
+ "data_sync.integrationTab.integrationDisabled": "Enable the integration before starting a sync.",
87
+ "data_sync.integrationTab.integrationDisabledNotice": "The integration is disabled. You can save schedules now, but runs will stay blocked until the integration is enabled.",
88
+ "data_sync.integrationTab.loadError": "Failed to load sync schedules.",
89
+ "data_sync.integrationTab.notAvailable": "This integration is not registered as a data sync provider.",
90
+ "data_sync.integrationTab.parametersRequired": "This run needs parameters. Start it from the Data Sync dashboard.",
91
+ "data_sync.integrationTab.providerManaged": "Start this integration from its provider-specific setup flow.",
92
+ "data_sync.integrationTab.providerManagedNotice": "This provider needs its own setup flow before a run can start. Use the provider tab on this page instead of generic schedules.",
93
+ "data_sync.integrationTab.refresh": "Refresh",
94
+ "data_sync.integrationTab.runError": "Failed to start sync.",
95
+ "data_sync.integrationTab.runNowHelp": "Run now uses the full-sync checkbox from the same row and starts progress tracking immediately in Data Sync.",
96
+ "data_sync.integrationTab.runNowTitle": "Manual runs",
97
+ "data_sync.integrationTab.runStarted": "Sync run started.",
98
+ "data_sync.integrationTab.start": "Run now",
99
+ "data_sync.integrationTab.starting": "Starting...",
100
+ "data_sync.integrationTab.title": "Sync schedules",
101
+ "data_sync.nav.title": "Data Sync",
102
+ "data_sync.runParameters.errors.max": "{label} must be at most {max}.",
103
+ "data_sync.runParameters.errors.min": "{label} must be at least {min}.",
104
+ "data_sync.runParameters.errors.required": "{label} is required.",
105
+ "data_sync.runParameters.errors.select": "{label} must be one of: {options}.",
106
+ "data_sync.runParameters.errors.type": "{label} must be a {type}.",
107
+ "data_sync.runs.detail.back": "Back to Sync Runs",
108
+ "data_sync.runs.detail.cancel": "Cancel",
109
+ "data_sync.runs.detail.cancelError": "Failed to cancel sync run",
110
+ "data_sync.runs.detail.cancelSuccess": "Sync run cancelled",
111
+ "data_sync.runs.detail.counters.created": "Created",
112
+ "data_sync.runs.detail.counters.failed": "Failed",
113
+ "data_sync.runs.detail.counters.skipped": "Skipped",
114
+ "data_sync.runs.detail.counters.updated": "Updated",
115
+ "data_sync.runs.detail.error": "Error",
116
+ "data_sync.runs.detail.loadError": "Failed to load sync run",
117
+ "data_sync.runs.detail.logs": "Operation Logs",
118
+ "data_sync.runs.detail.logs.level": "Level",
119
+ "data_sync.runs.detail.logs.message": "Message",
120
+ "data_sync.runs.detail.logs.time": "Time",
121
+ "data_sync.runs.detail.noLogs": "No log entries",
122
+ "data_sync.runs.detail.notFound": "Sync run not found.",
123
+ "data_sync.runs.detail.parameters": "Run parameters",
124
+ "data_sync.runs.detail.progress": "Progress",
125
+ "data_sync.runs.detail.progress.batches": "{count} batches",
126
+ "data_sync.runs.detail.progress.eta": "{eta} remaining",
127
+ "data_sync.runs.detail.progress.itemsProcessed": "{count} items processed",
128
+ "data_sync.runs.detail.progress.itemsProcessedTotal": "{processed} / {total} items processed",
129
+ "data_sync.runs.detail.progress.percent": "{percent}% complete",
130
+ "data_sync.runs.detail.retry": "Retry",
131
+ "data_sync.runs.detail.retryError": "Failed to retry sync run",
132
+ "data_sync.runs.detail.retryParametersStale": "The stored run parameters are no longer valid for this integration. Start a new run from the Data Sync dashboard.",
133
+ "data_sync.runs.detail.retrySuccess": "Sync run retried",
134
+ "data_sync.runs.detail.title": "Sync Run"
135
+ }
@@ -0,0 +1,135 @@
1
+ {
2
+ "data_sync.dashboard.actions.view": "Ver",
3
+ "data_sync.dashboard.columns.created": "Creados",
4
+ "data_sync.dashboard.columns.createdAt": "Iniciado",
5
+ "data_sync.dashboard.columns.direction": "Dirección",
6
+ "data_sync.dashboard.columns.entityType": "Tipo de entidad",
7
+ "data_sync.dashboard.columns.failed": "Fallidos",
8
+ "data_sync.dashboard.columns.integration": "Integración",
9
+ "data_sync.dashboard.columns.status": "Estado",
10
+ "data_sync.dashboard.columns.updated": "Actualizados",
11
+ "data_sync.dashboard.direction.export": "Exportación",
12
+ "data_sync.dashboard.direction.import": "Importación",
13
+ "data_sync.dashboard.filters.allDirections": "Todas las direcciones",
14
+ "data_sync.dashboard.filters.allStatuses": "Todos los estados",
15
+ "data_sync.dashboard.filters.status": "Estado",
16
+ "data_sync.dashboard.loadError": "No se pudieron cargar las ejecuciones de sincronización",
17
+ "data_sync.dashboard.noRuns": "Sin ejecuciones de sincronización",
18
+ "data_sync.dashboard.schedule.cron": "Cron",
19
+ "data_sync.dashboard.schedule.cronHelp": "Example: `0 * * * *` runs at the start of every hour.",
20
+ "data_sync.dashboard.schedule.cronValue": "Cron expression",
21
+ "data_sync.dashboard.schedule.delete": "Remove schedule",
22
+ "data_sync.dashboard.schedule.deleteError": "Failed to remove recurring schedule",
23
+ "data_sync.dashboard.schedule.deleteSuccess": "Recurring schedule removed",
24
+ "data_sync.dashboard.schedule.deleting": "Removing...",
25
+ "data_sync.dashboard.schedule.description": "Save a repeating schedule for the selected integration, entity, and direction without leaving this dashboard.",
26
+ "data_sync.dashboard.schedule.enabled": "Schedule enabled",
27
+ "data_sync.dashboard.schedule.enabledHelp": "Pause the recurring job without deleting the schedule definition.",
28
+ "data_sync.dashboard.schedule.error": "Failed to save recurring schedule",
29
+ "data_sync.dashboard.schedule.fullSync": "Run scheduled jobs as full sync",
30
+ "data_sync.dashboard.schedule.fullSyncHelp": "When enabled, every recurring run starts from the beginning instead of the saved cursor.",
31
+ "data_sync.dashboard.schedule.interval": "Interval",
32
+ "data_sync.dashboard.schedule.intervalHelp": "Example: `1h`, `6h`, or `24h` for repeating intervals.",
33
+ "data_sync.dashboard.schedule.intervalValue": "Interval",
34
+ "data_sync.dashboard.schedule.invalidValue": "Provide a schedule value before saving.",
35
+ "data_sync.dashboard.schedule.lastRun": "Last scheduled run: {value}",
36
+ "data_sync.dashboard.schedule.neverRun": "Saved, but no scheduled execution has completed yet.",
37
+ "data_sync.dashboard.schedule.none": "No recurring schedule saved for this target yet.",
38
+ "data_sync.dashboard.schedule.save": "Save recurring schedule",
39
+ "data_sync.dashboard.schedule.saving": "Saving...",
40
+ "data_sync.dashboard.schedule.status.disabled": "Recurring schedule paused",
41
+ "data_sync.dashboard.schedule.status.enabled": "Recurring schedule active",
42
+ "data_sync.dashboard.schedule.status.none": "No recurring schedule",
43
+ "data_sync.dashboard.schedule.status.shortDisabled": "Paused",
44
+ "data_sync.dashboard.schedule.status.shortEnabled": "Scheduled",
45
+ "data_sync.dashboard.schedule.status.shortNone": "One-time only",
46
+ "data_sync.dashboard.schedule.success": "Recurring schedule saved",
47
+ "data_sync.dashboard.schedule.timezone": "Timezone",
48
+ "data_sync.dashboard.schedule.title": "Recurring schedule",
49
+ "data_sync.dashboard.schedule.type": "Schedule type",
50
+ "data_sync.dashboard.searchPlaceholder": "Buscar por integración, tipo de entidad, estado o ID de ejecución",
51
+ "data_sync.dashboard.start.batchSize": "Batch Size",
52
+ "data_sync.dashboard.start.description": "Pick a sync target, launch an ad-hoc run, or save a recurring schedule for the same entity and direction from this page.",
53
+ "data_sync.dashboard.start.error": "Failed to start sync run",
54
+ "data_sync.dashboard.start.eyebrow": "Run once or keep it recurring",
55
+ "data_sync.dashboard.start.fullSync": "Run as full sync",
56
+ "data_sync.dashboard.start.fullSyncHelp": "Ignore the saved cursor and process the entire source again for this run.",
57
+ "data_sync.dashboard.start.invalidBatchSize": "Batch size must be between 1 and 1000.",
58
+ "data_sync.dashboard.start.parameters": "Parámetros de ejecución",
59
+ "data_sync.dashboard.start.parametersHelp": "Valores opcionales que esta integración acepta para la ejecución manual.",
60
+ "data_sync.dashboard.start.providerManaged": "Esta integración inicia las sincronizaciones desde su propio flujo de configuración. Abre la página de ajustes de la integración para continuar.",
61
+ "data_sync.dashboard.start.runNowDescription": "Use this for the next immediate sync. Batch size and full-sync mode apply only to this manual run.",
62
+ "data_sync.dashboard.start.runNowFootnote": "Manual runs show progress immediately and land on the run detail page after launch.",
63
+ "data_sync.dashboard.start.runNowTitle": "Run once now",
64
+ "data_sync.dashboard.start.status.credentialsMissing": "Credentials missing",
65
+ "data_sync.dashboard.start.status.credentialsReady": "Credentials ready",
66
+ "data_sync.dashboard.start.status.disabled": "Integration disabled",
67
+ "data_sync.dashboard.start.status.enabled": "Integration enabled",
68
+ "data_sync.dashboard.start.submit": "Start sync",
69
+ "data_sync.dashboard.start.success": "Sync run started",
70
+ "data_sync.dashboard.start.title": "Start or schedule a sync",
71
+ "data_sync.dashboard.status.cancelled": "Cancelado",
72
+ "data_sync.dashboard.status.completed": "Completado",
73
+ "data_sync.dashboard.status.failed": "Fallido",
74
+ "data_sync.dashboard.status.paused": "Pausado",
75
+ "data_sync.dashboard.status.pending": "Pendiente",
76
+ "data_sync.dashboard.status.running": "En ejecución",
77
+ "data_sync.dashboard.title": "Ejecuciones de sincronización",
78
+ "data_sync.integrationTab.columns.actions": "Actions",
79
+ "data_sync.integrationTab.columns.lastRun": "Last run",
80
+ "data_sync.integrationTab.columns.value": "Value",
81
+ "data_sync.integrationTab.credentialsMissing": "Configure credentials before starting a sync.",
82
+ "data_sync.integrationTab.credentialsMissingNotice": "Credentials are still missing. Save schedules first if you want, but manual and scheduled runs will fail until credentials are configured.",
83
+ "data_sync.integrationTab.description": "Run one-off syncs or save recurring schedules for every supported entity directly from the integration detail page.",
84
+ "data_sync.integrationTab.empty": "This provider does not expose any schedulable sync entities yet.",
85
+ "data_sync.integrationTab.fullSyncShort": "Full",
86
+ "data_sync.integrationTab.integrationDisabled": "Enable the integration before starting a sync.",
87
+ "data_sync.integrationTab.integrationDisabledNotice": "The integration is disabled. You can save schedules now, but runs will stay blocked until the integration is enabled.",
88
+ "data_sync.integrationTab.loadError": "Failed to load sync schedules.",
89
+ "data_sync.integrationTab.notAvailable": "This integration is not registered as a data sync provider.",
90
+ "data_sync.integrationTab.parametersRequired": "Esta ejecución necesita parámetros. Iníciala desde el panel de Data Sync.",
91
+ "data_sync.integrationTab.providerManaged": "Inicia esta integración desde su flujo de configuración específico del proveedor.",
92
+ "data_sync.integrationTab.providerManagedNotice": "Este proveedor necesita su propio flujo de configuración antes de poder iniciar una ejecución. Usa la pestaña del proveedor en esta página en lugar de los calendarios genéricos.",
93
+ "data_sync.integrationTab.refresh": "Refresh",
94
+ "data_sync.integrationTab.runError": "Failed to start sync.",
95
+ "data_sync.integrationTab.runNowHelp": "Run now uses the full-sync checkbox from the same row and starts progress tracking immediately in Data Sync.",
96
+ "data_sync.integrationTab.runNowTitle": "Manual runs",
97
+ "data_sync.integrationTab.runStarted": "Sync run started.",
98
+ "data_sync.integrationTab.start": "Run now",
99
+ "data_sync.integrationTab.starting": "Starting...",
100
+ "data_sync.integrationTab.title": "Sync schedules",
101
+ "data_sync.nav.title": "Sincronización de datos",
102
+ "data_sync.runParameters.errors.max": "{label} debe ser como máximo {max}.",
103
+ "data_sync.runParameters.errors.min": "{label} debe ser como mínimo {min}.",
104
+ "data_sync.runParameters.errors.required": "{label} es obligatorio.",
105
+ "data_sync.runParameters.errors.select": "{label} debe ser uno de: {options}.",
106
+ "data_sync.runParameters.errors.type": "{label} debe ser de tipo {type}.",
107
+ "data_sync.runs.detail.back": "Volver a ejecuciones",
108
+ "data_sync.runs.detail.cancel": "Cancelar",
109
+ "data_sync.runs.detail.cancelError": "No se pudo cancelar la ejecución",
110
+ "data_sync.runs.detail.cancelSuccess": "Ejecución cancelada",
111
+ "data_sync.runs.detail.counters.created": "Creados",
112
+ "data_sync.runs.detail.counters.failed": "Fallidos",
113
+ "data_sync.runs.detail.counters.skipped": "Omitidos",
114
+ "data_sync.runs.detail.counters.updated": "Actualizados",
115
+ "data_sync.runs.detail.error": "Error",
116
+ "data_sync.runs.detail.loadError": "No se pudo cargar la ejecución",
117
+ "data_sync.runs.detail.logs": "Registros de operación",
118
+ "data_sync.runs.detail.logs.level": "Nivel",
119
+ "data_sync.runs.detail.logs.message": "Mensaje",
120
+ "data_sync.runs.detail.logs.time": "Hora",
121
+ "data_sync.runs.detail.noLogs": "Sin entradas de registro",
122
+ "data_sync.runs.detail.notFound": "Ejecución de sincronización no encontrada.",
123
+ "data_sync.runs.detail.parameters": "Parámetros de ejecución",
124
+ "data_sync.runs.detail.progress": "Progreso",
125
+ "data_sync.runs.detail.progress.batches": "{count} lotes",
126
+ "data_sync.runs.detail.progress.eta": "Quedan {eta}",
127
+ "data_sync.runs.detail.progress.itemsProcessed": "{count} elementos procesados",
128
+ "data_sync.runs.detail.progress.itemsProcessedTotal": "{processed} / {total} elementos procesados",
129
+ "data_sync.runs.detail.progress.percent": "{percent}% completado",
130
+ "data_sync.runs.detail.retry": "Reintentar",
131
+ "data_sync.runs.detail.retryError": "No se pudo reintentar la ejecución",
132
+ "data_sync.runs.detail.retryParametersStale": "Los parámetros de ejecución guardados ya no son válidos para esta integración. Inicia una nueva ejecución desde el panel de Data Sync.",
133
+ "data_sync.runs.detail.retrySuccess": "Ejecución reintentada",
134
+ "data_sync.runs.detail.title": "Ejecución de sincronización"
135
+ }
@@ -0,0 +1,135 @@
1
+ {
2
+ "data_sync.dashboard.actions.view": "보기",
3
+ "data_sync.dashboard.columns.created": "생성됨",
4
+ "data_sync.dashboard.columns.createdAt": "시작됨",
5
+ "data_sync.dashboard.columns.direction": "방향",
6
+ "data_sync.dashboard.columns.entityType": "엔터티 유형",
7
+ "data_sync.dashboard.columns.failed": "실패",
8
+ "data_sync.dashboard.columns.integration": "통합",
9
+ "data_sync.dashboard.columns.status": "상태",
10
+ "data_sync.dashboard.columns.updated": "수정됨",
11
+ "data_sync.dashboard.direction.export": "내보내기",
12
+ "data_sync.dashboard.direction.import": "가져오기",
13
+ "data_sync.dashboard.filters.allDirections": "모든 방향",
14
+ "data_sync.dashboard.filters.allStatuses": "모든 상태",
15
+ "data_sync.dashboard.filters.status": "상태",
16
+ "data_sync.dashboard.loadError": "동기화 실행을 불러오지 못했습니다",
17
+ "data_sync.dashboard.noRuns": "아직 동기화 실행 기록이 없습니다",
18
+ "data_sync.dashboard.schedule.cron": "Cron",
19
+ "data_sync.dashboard.schedule.cronHelp": "예: `0 * * * *`는 매시 정각에 실행됩니다.",
20
+ "data_sync.dashboard.schedule.cronValue": "Cron 표현식",
21
+ "data_sync.dashboard.schedule.delete": "일정 제거",
22
+ "data_sync.dashboard.schedule.deleteError": "반복 일정 제거에 실패했습니다",
23
+ "data_sync.dashboard.schedule.deleteSuccess": "반복 일정이 제거되었습니다",
24
+ "data_sync.dashboard.schedule.deleting": "제거 중...",
25
+ "data_sync.dashboard.schedule.description": "이 대시보드를 벗어나지 않고 선택한 통합, 엔터티, 방향에 대한 반복 일정을 저장하세요.",
26
+ "data_sync.dashboard.schedule.enabled": "일정 활성화됨",
27
+ "data_sync.dashboard.schedule.enabledHelp": "일정 정의를 삭제하지 않고 반복 작업을 일시 중지합니다.",
28
+ "data_sync.dashboard.schedule.error": "반복 일정 저장에 실패했습니다",
29
+ "data_sync.dashboard.schedule.fullSync": "예약된 작업을 전체 동기화로 실행",
30
+ "data_sync.dashboard.schedule.fullSyncHelp": "활성화하면 모든 반복 실행이 저장된 커서 대신 처음부터 시작됩니다.",
31
+ "data_sync.dashboard.schedule.interval": "간격",
32
+ "data_sync.dashboard.schedule.intervalHelp": "예: 반복 간격으로 `1h`, `6h`, `24h`를 사용하세요.",
33
+ "data_sync.dashboard.schedule.intervalValue": "간격",
34
+ "data_sync.dashboard.schedule.invalidValue": "저장하기 전에 일정 값을 입력하세요.",
35
+ "data_sync.dashboard.schedule.lastRun": "마지막 예약 실행: {value}",
36
+ "data_sync.dashboard.schedule.neverRun": "저장되었지만 아직 완료된 예약 실행이 없습니다.",
37
+ "data_sync.dashboard.schedule.none": "이 대상에 대해 저장된 반복 일정이 아직 없습니다.",
38
+ "data_sync.dashboard.schedule.save": "반복 일정 저장",
39
+ "data_sync.dashboard.schedule.saving": "저장 중...",
40
+ "data_sync.dashboard.schedule.status.disabled": "반복 일정 일시 중지됨",
41
+ "data_sync.dashboard.schedule.status.enabled": "반복 일정 활성",
42
+ "data_sync.dashboard.schedule.status.none": "반복 일정 없음",
43
+ "data_sync.dashboard.schedule.status.shortDisabled": "일시 중지됨",
44
+ "data_sync.dashboard.schedule.status.shortEnabled": "예약됨",
45
+ "data_sync.dashboard.schedule.status.shortNone": "1회성",
46
+ "data_sync.dashboard.schedule.success": "반복 일정이 저장되었습니다",
47
+ "data_sync.dashboard.schedule.timezone": "표준 시간대",
48
+ "data_sync.dashboard.schedule.title": "반복 일정",
49
+ "data_sync.dashboard.schedule.type": "일정 유형",
50
+ "data_sync.dashboard.searchPlaceholder": "통합, 엔터티 유형, 상태 또는 실행 ID로 검색",
51
+ "data_sync.dashboard.start.batchSize": "배치 크기",
52
+ "data_sync.dashboard.start.description": "이 페이지에서 동기화 대상을 선택하고, 임시 실행을 시작하거나, 동일한 엔터티와 방향에 대한 반복 일정을 저장하세요.",
53
+ "data_sync.dashboard.start.error": "동기화 실행을 시작하지 못했습니다",
54
+ "data_sync.dashboard.start.eyebrow": "한 번만 실행하거나 반복 실행 유지",
55
+ "data_sync.dashboard.start.fullSync": "전체 동기화로 실행",
56
+ "data_sync.dashboard.start.fullSyncHelp": "저장된 커서를 무시하고 이 실행에 대해 전체 소스를 다시 처리합니다.",
57
+ "data_sync.dashboard.start.invalidBatchSize": "배치 크기는 1에서 1000 사이여야 합니다.",
58
+ "data_sync.dashboard.start.parameters": "실행 매개변수",
59
+ "data_sync.dashboard.start.parametersHelp": "이 통합이 수동 실행에 대해 허용하는 선택적 값입니다.",
60
+ "data_sync.dashboard.start.providerManaged": "이 통합은 자체 설정 흐름에서 동기화 실행을 시작합니다. 계속하려면 통합 설정 페이지를 여세요.",
61
+ "data_sync.dashboard.start.runNowDescription": "다음 즉시 동기화에 사용하세요. 배치 크기와 전체 동기화 모드는 이 수동 실행에만 적용됩니다.",
62
+ "data_sync.dashboard.start.runNowFootnote": "수동 실행은 즉시 진행 상황을 표시하며 시작 후 실행 상세 페이지로 이동합니다.",
63
+ "data_sync.dashboard.start.runNowTitle": "지금 한 번 실행",
64
+ "data_sync.dashboard.start.status.credentialsMissing": "자격 증명 누락",
65
+ "data_sync.dashboard.start.status.credentialsReady": "자격 증명 준비됨",
66
+ "data_sync.dashboard.start.status.disabled": "통합 비활성화됨",
67
+ "data_sync.dashboard.start.status.enabled": "통합 활성화됨",
68
+ "data_sync.dashboard.start.submit": "동기화 시작",
69
+ "data_sync.dashboard.start.success": "동기화 실행이 시작되었습니다",
70
+ "data_sync.dashboard.start.title": "동기화 시작 또는 예약",
71
+ "data_sync.dashboard.status.cancelled": "취소됨",
72
+ "data_sync.dashboard.status.completed": "완료됨",
73
+ "data_sync.dashboard.status.failed": "실패",
74
+ "data_sync.dashboard.status.paused": "일시 중지됨",
75
+ "data_sync.dashboard.status.pending": "대기 중",
76
+ "data_sync.dashboard.status.running": "실행 중",
77
+ "data_sync.dashboard.title": "동기화 실행",
78
+ "data_sync.integrationTab.columns.actions": "작업",
79
+ "data_sync.integrationTab.columns.lastRun": "마지막 실행",
80
+ "data_sync.integrationTab.columns.value": "값",
81
+ "data_sync.integrationTab.credentialsMissing": "동기화를 시작하기 전에 자격 증명을 구성하세요.",
82
+ "data_sync.integrationTab.credentialsMissingNotice": "자격 증명이 아직 없습니다. 원한다면 먼저 일정을 저장할 수 있지만, 자격 증명이 구성될 때까지 수동 및 예약 실행은 실패합니다.",
83
+ "data_sync.integrationTab.description": "통합 상세 페이지에서 직접 일회성 동기화를 실행하거나 지원되는 모든 엔터티에 대한 반복 일정을 저장하세요.",
84
+ "data_sync.integrationTab.empty": "이 제공업체는 아직 예약 가능한 동기화 엔터티를 제공하지 않습니다.",
85
+ "data_sync.integrationTab.fullSyncShort": "전체",
86
+ "data_sync.integrationTab.integrationDisabled": "동기화를 시작하기 전에 통합을 활성화하세요.",
87
+ "data_sync.integrationTab.integrationDisabledNotice": "통합이 비활성화되어 있습니다. 지금 일정을 저장할 수 있지만 통합이 활성화될 때까지 실행이 차단됩니다.",
88
+ "data_sync.integrationTab.loadError": "동기화 일정을 불러오지 못했습니다.",
89
+ "data_sync.integrationTab.notAvailable": "이 통합은 데이터 동기화 제공업체로 등록되어 있지 않습니다.",
90
+ "data_sync.integrationTab.parametersRequired": "이 실행에는 매개변수가 필요합니다. 데이터 동기화 대시보드에서 시작하세요.",
91
+ "data_sync.integrationTab.providerManaged": "이 통합은 제공업체별 설정 흐름에서 시작하세요.",
92
+ "data_sync.integrationTab.providerManagedNotice": "이 제공업체는 실행을 시작하기 전에 자체 설정 흐름이 필요합니다. 일반 일정 대신 이 페이지의 제공업체 탭을 사용하세요.",
93
+ "data_sync.integrationTab.refresh": "새로고침",
94
+ "data_sync.integrationTab.runError": "동기화 시작에 실패했습니다.",
95
+ "data_sync.integrationTab.runNowHelp": "지금 실행은 같은 행의 전체 동기화 체크박스를 사용하며 Data Sync에서 즉시 진행 상황 추적을 시작합니다.",
96
+ "data_sync.integrationTab.runNowTitle": "수동 실행",
97
+ "data_sync.integrationTab.runStarted": "동기화 실행이 시작되었습니다.",
98
+ "data_sync.integrationTab.start": "지금 실행",
99
+ "data_sync.integrationTab.starting": "시작하는 중...",
100
+ "data_sync.integrationTab.title": "동기화 일정",
101
+ "data_sync.nav.title": "데이터 동기화",
102
+ "data_sync.runParameters.errors.max": "{label}은(는) 최대 {max} 이하여야 합니다.",
103
+ "data_sync.runParameters.errors.min": "{label}은(는) 최소 {min} 이상이어야 합니다.",
104
+ "data_sync.runParameters.errors.required": "{label}은(는) 필수입니다.",
105
+ "data_sync.runParameters.errors.select": "{label}은(는) 다음 중 하나여야 합니다: {options}.",
106
+ "data_sync.runParameters.errors.type": "{label}은(는) {type} 형식이어야 합니다.",
107
+ "data_sync.runs.detail.back": "동기화 실행으로 돌아가기",
108
+ "data_sync.runs.detail.cancel": "취소",
109
+ "data_sync.runs.detail.cancelError": "동기화 실행 취소에 실패했습니다",
110
+ "data_sync.runs.detail.cancelSuccess": "동기화 실행이 취소되었습니다",
111
+ "data_sync.runs.detail.counters.created": "생성됨",
112
+ "data_sync.runs.detail.counters.failed": "실패",
113
+ "data_sync.runs.detail.counters.skipped": "건너뜀",
114
+ "data_sync.runs.detail.counters.updated": "업데이트됨",
115
+ "data_sync.runs.detail.error": "오류",
116
+ "data_sync.runs.detail.loadError": "동기화 실행을 불러오지 못했습니다",
117
+ "data_sync.runs.detail.logs": "작업 로그",
118
+ "data_sync.runs.detail.logs.level": "레벨",
119
+ "data_sync.runs.detail.logs.message": "메시지",
120
+ "data_sync.runs.detail.logs.time": "시간",
121
+ "data_sync.runs.detail.noLogs": "로그 항목 없음",
122
+ "data_sync.runs.detail.notFound": "동기화 실행을 찾을 수 없습니다.",
123
+ "data_sync.runs.detail.parameters": "실행 매개변수",
124
+ "data_sync.runs.detail.progress": "진행 상황",
125
+ "data_sync.runs.detail.progress.batches": "{count}개 배치",
126
+ "data_sync.runs.detail.progress.eta": "{eta} 남음",
127
+ "data_sync.runs.detail.progress.itemsProcessed": "{count}개 항목 처리됨",
128
+ "data_sync.runs.detail.progress.itemsProcessedTotal": "{total}개 중 {processed}개 항목 처리됨",
129
+ "data_sync.runs.detail.progress.percent": "{percent}% 완료",
130
+ "data_sync.runs.detail.retry": "재시도",
131
+ "data_sync.runs.detail.retryError": "동기화 실행 재시도에 실패했습니다",
132
+ "data_sync.runs.detail.retryParametersStale": "저장된 실행 매개변수가 이 연동에 더 이상 유효하지 않습니다. Data Sync 대시보드에서 새 실행을 시작하세요.",
133
+ "data_sync.runs.detail.retrySuccess": "동기화 실행이 재시도되었습니다",
134
+ "data_sync.runs.detail.title": "동기화 실행"
135
+ }