@autocode-cli/autocode 0.2.1 → 0.3.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 (47) hide show
  1. package/dist/server/dashboard/pages/autocreate.js +3 -3
  2. package/dist/server/dashboard/pages/changelog.d.ts.map +1 -1
  3. package/dist/server/dashboard/pages/changelog.js +20 -11
  4. package/dist/server/dashboard/pages/changelog.js.map +1 -1
  5. package/dist/server/dashboard/pages/column-edit.js +2 -2
  6. package/dist/server/dashboard/pages/column-prompt.d.ts.map +1 -1
  7. package/dist/server/dashboard/pages/column-prompt.js +21 -0
  8. package/dist/server/dashboard/pages/column-prompt.js.map +1 -1
  9. package/dist/server/dashboard/pages/column-terminal.d.ts.map +1 -1
  10. package/dist/server/dashboard/pages/column-terminal.js +21 -0
  11. package/dist/server/dashboard/pages/column-terminal.js.map +1 -1
  12. package/dist/server/dashboard/pages/issue-graph.d.ts.map +1 -1
  13. package/dist/server/dashboard/pages/issue-graph.js +70 -22
  14. package/dist/server/dashboard/pages/issue-graph.js.map +1 -1
  15. package/dist/server/dashboard/pages/issue-shared.d.ts.map +1 -1
  16. package/dist/server/dashboard/pages/issue-shared.js +54 -122
  17. package/dist/server/dashboard/pages/issue-shared.js.map +1 -1
  18. package/dist/server/dashboard/pages/issue-view.js +1 -1
  19. package/dist/server/dashboard/pages/new-issue.d.ts.map +1 -1
  20. package/dist/server/dashboard/pages/new-issue.js +34 -128
  21. package/dist/server/dashboard/pages/new-issue.js.map +1 -1
  22. package/dist/server/dashboard/pages/pipeline-configurator.d.ts.map +1 -1
  23. package/dist/server/dashboard/pages/pipeline-configurator.js +39 -183
  24. package/dist/server/dashboard/pages/pipeline-configurator.js.map +1 -1
  25. package/dist/server/dashboard/pages/stats-page.d.ts.map +1 -1
  26. package/dist/server/dashboard/pages/stats-page.js +43 -109
  27. package/dist/server/dashboard/pages/stats-page.js.map +1 -1
  28. package/dist/server/dashboard/scripts/index.d.ts.map +1 -1
  29. package/dist/server/dashboard/scripts/index.js +48 -253
  30. package/dist/server/dashboard/scripts/index.js.map +1 -1
  31. package/dist/server/dashboard/shared/header.d.ts +88 -0
  32. package/dist/server/dashboard/shared/header.d.ts.map +1 -0
  33. package/dist/server/dashboard/shared/header.js +209 -0
  34. package/dist/server/dashboard/shared/header.js.map +1 -0
  35. package/dist/server/dashboard/shared/i18n-script.d.ts +45 -0
  36. package/dist/server/dashboard/shared/i18n-script.d.ts.map +1 -0
  37. package/dist/server/dashboard/shared/i18n-script.js +204 -0
  38. package/dist/server/dashboard/shared/i18n-script.js.map +1 -0
  39. package/dist/server/dashboard/shared/index.d.ts +19 -0
  40. package/dist/server/dashboard/shared/index.d.ts.map +1 -0
  41. package/dist/server/dashboard/shared/index.js +22 -0
  42. package/dist/server/dashboard/shared/index.js.map +1 -0
  43. package/dist/server/dashboard/shared/translations.d.ts +515 -0
  44. package/dist/server/dashboard/shared/translations.d.ts.map +1 -0
  45. package/dist/server/dashboard/shared/translations.js +591 -0
  46. package/dist/server/dashboard/shared/translations.js.map +1 -0
  47. package/package.json +1 -1
@@ -0,0 +1,515 @@
1
+ /**
2
+ * Centralized translations for all dashboard pages
3
+ *
4
+ * This module contains all translation keys for the AutoCode dashboard.
5
+ * All pages should import translations from here instead of defining their own.
6
+ *
7
+ * Key naming convention:
8
+ * - section.element (e.g., 'filter.allPriorities', 'btn.save')
9
+ * - page.section.element for page-specific keys (e.g., 'stats.title', 'newIssue.title')
10
+ */
11
+ export type Language = 'en' | 'fr';
12
+ export declare const translations: {
13
+ readonly en: {
14
+ readonly 'btn.newIssue': "+ New issue";
15
+ readonly 'btn.createIssue': "Create issue";
16
+ readonly 'btn.update': "Update";
17
+ readonly 'btn.cancel': "Cancel";
18
+ readonly 'btn.archive': "Archive";
19
+ readonly 'btn.next': "Next";
20
+ readonly 'btn.add': "Add";
21
+ readonly 'btn.edit': "Edit";
22
+ readonly 'btn.save': "Save";
23
+ readonly 'btn.reload': "Reload";
24
+ readonly 'btn.updating': "Updating...";
25
+ readonly 'btn.creating': "Creating...";
26
+ readonly 'btn.moving': "Moving...";
27
+ readonly 'btn.archiving': "Archiving...";
28
+ readonly 'btn.sending': "Sending...";
29
+ readonly 'btn.saving': "Saving...";
30
+ readonly 'btn.back': "Back";
31
+ readonly 'btn.backToDashboard': "Back to Dashboard";
32
+ readonly 'btn.close': "Close";
33
+ readonly 'filter.allPriorities': "All priorities";
34
+ readonly 'filter.search': "Search...";
35
+ readonly 'priority.p0': "P0 - Critical";
36
+ readonly 'priority.p1': "P1 - High";
37
+ readonly 'priority.p2': "P2 - Normal";
38
+ readonly 'priority.p3': "P3 - Low";
39
+ readonly 'semver.patch': "Patch (x.x.X) - Bug fix";
40
+ readonly 'semver.minor': "Minor (x.X.0) - Feature";
41
+ readonly 'semver.major': "Major (X.0.0) - Breaking";
42
+ readonly 'semver.none': "No deployment";
43
+ readonly 'status.waiting': "Waiting";
44
+ readonly 'status.processing': "Processing...";
45
+ readonly 'status.completed': "Completed";
46
+ readonly 'status.failed': "Failed";
47
+ readonly 'status.connected': "Connected";
48
+ readonly 'status.loading': "Loading...";
49
+ readonly 'notify.titleRequired': "Title required";
50
+ readonly 'notify.titleMandatory': "Title is mandatory";
51
+ readonly 'notify.issueUpdated': "Issue updated";
52
+ readonly 'notify.issueCreated': "Issue created";
53
+ readonly 'notify.issueAdvanced': "Issue advanced";
54
+ readonly 'notify.issueArchived': "Issue archived";
55
+ readonly 'notify.issueMoved': "moved";
56
+ readonly 'notify.issueSaved': "Issue saved";
57
+ readonly 'notify.moveTo': "To";
58
+ readonly 'notify.commentAdded': "Comment added";
59
+ readonly 'notify.actionUpdated': "updated";
60
+ readonly 'notify.error': "Error";
61
+ readonly 'notify.unableToSave': "Unable to save";
62
+ readonly 'notify.loadingError': "Loading error";
63
+ readonly 'notify.claudeStarted': "Claude started";
64
+ readonly 'notify.claudeFinished': "Claude finished";
65
+ readonly 'notify.claudeFailed': "Claude failed";
66
+ readonly 'notify.processingSuccess': "Processing successful";
67
+ readonly 'notify.checkLogs': "Check logs";
68
+ readonly 'confirm.archive': "Archive";
69
+ readonly 'modal.newIssue': "New issue";
70
+ readonly 'modal.editIssue': "Edit";
71
+ readonly 'modal.title': "Title *";
72
+ readonly 'modal.titlePlaceholder': "E.g.: Fix the login bug";
73
+ readonly 'modal.description': "Description";
74
+ readonly 'modal.descriptionPlaceholder': "Describe the context and details...";
75
+ readonly 'modal.priority': "Priority";
76
+ readonly 'modal.releaseType': "Release type";
77
+ readonly 'modal.labels': "Labels";
78
+ readonly 'modal.selectLabel': "Select a label...";
79
+ readonly 'modal.acceptanceCriteria': "Acceptance criteria";
80
+ readonly 'modal.addCriteria': "Add criteria";
81
+ readonly 'modal.attachments': "Attachments";
82
+ readonly 'modal.addAttachment': "Add file";
83
+ readonly 'modal.noAttachments': "No attachments";
84
+ readonly 'modal.comments': "Comments";
85
+ readonly 'modal.noComments': "No comments";
86
+ readonly 'modal.addCommentPlaceholder': "Add a comment...";
87
+ readonly 'modal.claudeTerminal': "Claude Terminal";
88
+ readonly 'stats.total': "Total";
89
+ readonly 'stats.tokens': "Tokens";
90
+ readonly 'stats.viewStats': "View stats";
91
+ readonly 'board.empty': "Empty";
92
+ readonly 'action.instructions': "Instructions";
93
+ readonly 'action.noInstructions': "No instructions available";
94
+ readonly 'action.noFile': "No ACTION file. Click \"Edit\" to create it.";
95
+ readonly 'action.modifiedOn': "Modified on";
96
+ readonly 'changelog.title': "What's new?";
97
+ readonly 'changelog.gotIt': "Got it";
98
+ readonly 'changelog.viewAll': "View all";
99
+ readonly 'changelog.moreVersions': "...and {count} more versions";
100
+ readonly 'footer.changelog': "Changelog";
101
+ readonly 'stats.pageTitle': "Claude Statistics";
102
+ readonly 'stats.profile': "Profile";
103
+ readonly 'stats.model': "Model";
104
+ readonly 'stats.session': "Current session";
105
+ readonly 'stats.totals': "Totals";
106
+ readonly 'stats.tokensInput': "Input tokens";
107
+ readonly 'stats.tokensOutput': "Output tokens";
108
+ readonly 'stats.totalTokens': "Total tokens";
109
+ readonly 'stats.calls': "Calls";
110
+ readonly 'stats.cost': "Cost";
111
+ readonly 'stats.history': "Call history";
112
+ readonly 'stats.noHistory': "No calls recorded";
113
+ readonly 'stats.startedAt': "Started at";
114
+ readonly 'stats.issue': "Issue";
115
+ readonly 'stats.column': "Column";
116
+ readonly 'stats.duration': "Duration";
117
+ readonly 'stats.date': "Date";
118
+ readonly 'stats.costExplanation': "<strong>Why does the cost seem low?</strong> Claude uses <strong>prompt caching</strong> which significantly reduces costs. When part of the context was already sent in a previous conversation, Claude doesn't charge full price again. The cost shown is the <strong>actual cost billed</strong> by the Claude API, including these cache discounts. That's why <code>tokens × price</code> doesn't always match the displayed cost - and that's good news for your wallet!";
119
+ readonly 'tabs.details': "Details";
120
+ readonly 'tabs.comments': "Comments";
121
+ readonly 'tabs.history': "History";
122
+ readonly 'tabs.terminal': "Terminal";
123
+ readonly 'issueView.meta': "Meta";
124
+ readonly 'issueView.labels': "Labels";
125
+ readonly 'issueView.description': "Description";
126
+ readonly 'issueView.criteria': "Acceptance Criteria";
127
+ readonly 'issueView.history': "History";
128
+ readonly 'issueView.actions': "Actions";
129
+ readonly 'issueView.save': "Save";
130
+ readonly 'issueView.moveNext': "Move to next column";
131
+ readonly 'issueView.archive': "Archive";
132
+ readonly 'issueView.confirmMove': "Move this issue to the next column?";
133
+ readonly 'issueView.confirmArchive': "Archive this issue?";
134
+ readonly 'issueView.comments': "Comments";
135
+ readonly 'issueView.addComment': "Add a comment...";
136
+ readonly 'issueView.noComments': "No comments yet";
137
+ readonly 'issueView.claudeTerminal': "Claude Terminal";
138
+ readonly 'issueView.noDescription': "No description";
139
+ readonly 'issueView.noLog': "No log yet. Waiting for Claude processing...";
140
+ readonly 'issueView.loadingPrompt': "Loading prompt...";
141
+ readonly 'issueView.promptError': "Error";
142
+ readonly 'newIssue.title': "New Issue";
143
+ readonly 'newIssue.titleLabel': "Title *";
144
+ readonly 'newIssue.titlePlaceholder': "E.g.: Fix the login bug";
145
+ readonly 'newIssue.description': "Description";
146
+ readonly 'newIssue.descriptionPlaceholder': "Describe the context and details...";
147
+ readonly 'newIssue.priority': "Priority";
148
+ readonly 'newIssue.releaseType': "Release type";
149
+ readonly 'newIssue.column': "Target column";
150
+ readonly 'newIssue.labels': "Labels";
151
+ readonly 'newIssue.selectLabel': "Select a label...";
152
+ readonly 'newIssue.acceptanceCriteria': "Acceptance criteria";
153
+ readonly 'newIssue.addCriteria': "Add criteria";
154
+ readonly 'notify.created': "Issue created successfully!";
155
+ readonly 'notify.autocompleteSuccess': "Fields auto-filled!";
156
+ readonly 'notify.autocompleteTitleRequired': "Enter a title first";
157
+ readonly 'btn.autocomplete': "AutoComplete";
158
+ readonly 'btn.autocompleting': "Generating...";
159
+ readonly 'mic.title': "Speech to text";
160
+ readonly 'mic.titleRecording': "Recording... Click to stop";
161
+ readonly 'mic.notSupported': "Speech recognition not supported";
162
+ readonly 'notify.micNotSupported': "Speech recognition is not supported by your browser";
163
+ readonly 'notify.micError': "Speech recognition error";
164
+ readonly 'notify.micErrorNetwork': "Network error: Speech recognition requires an internet connection. Make sure you are connected and try again.";
165
+ readonly 'notify.micErrorNotAllowed': "Microphone access denied. Please allow microphone access in your browser settings.";
166
+ readonly 'notify.micErrorNoSpeech': "No speech detected. Please speak louder or closer to the microphone.";
167
+ readonly 'notify.micRetrying': "Network error, retrying...";
168
+ readonly 'countdown.autocompletingIn': "AutoComplete in";
169
+ readonly 'countdown.cancel': "Cancel";
170
+ readonly 'countdown.now': "Now";
171
+ readonly 'countdown.seconds': "s";
172
+ readonly 'graph.title': "Issue Hierarchy";
173
+ readonly 'graph.backToDashboard': "Back to Dashboard";
174
+ readonly 'graph.noIssues': "No issues found";
175
+ readonly 'graph.rootIssues': "Root issues";
176
+ readonly 'graph.totalIssues': "Total issues";
177
+ readonly 'graph.maxDepth': "Max depth";
178
+ readonly 'graph.loading': "Loading...";
179
+ readonly 'graph.zoomIn': "Zoom in";
180
+ readonly 'graph.zoomOut': "Zoom out";
181
+ readonly 'graph.resetZoom': "Reset";
182
+ readonly 'graph.children': "children";
183
+ readonly 'pipeline.backBtn': "← Dashboard";
184
+ readonly 'pipeline.title': "Configurator";
185
+ readonly 'pipeline.titleSpan': "Pipeline";
186
+ readonly 'pipeline.savePipeline': "Save Pipeline";
187
+ readonly 'pipeline.activateSync': "Activate & Sync";
188
+ readonly 'pipeline.pipelines': "Pipelines";
189
+ readonly 'pipeline.newPipeline': "+ New Pipeline";
190
+ readonly 'pipeline.noSelected': "No Pipeline Selected";
191
+ readonly 'pipeline.noSelectedDesc': "Select a pipeline from the list or create a new one.";
192
+ readonly 'pipeline.createFirst': "Create First Pipeline";
193
+ readonly 'pipeline.pipelineName': "Pipeline Name";
194
+ readonly 'pipeline.version': "Version";
195
+ readonly 'pipeline.delete': "Delete";
196
+ readonly 'pipeline.description': "Description (optional)";
197
+ readonly 'pipeline.descPlaceholder': "Short description of this pipeline";
198
+ readonly 'pipeline.definition': "DEFINITION";
199
+ readonly 'pipeline.definitionDesc': "Qualification and preparation columns";
200
+ readonly 'pipeline.action': "ACTION";
201
+ readonly 'pipeline.actionDesc': "Implementation and validation columns";
202
+ readonly 'pipeline.finish': "FINISH";
203
+ readonly 'pipeline.finishDesc': "Finalization and deployment columns";
204
+ readonly 'pipeline.catalog': "Column Catalog";
205
+ readonly 'pipeline.catalogHint': "(drag columns to segments above)";
206
+ readonly 'pipeline.addColumn': "+ Add Column";
207
+ readonly 'pipeline.syncPreview': "Sync Preview";
208
+ readonly 'pipeline.createNewPipeline': "Create New Pipeline";
209
+ readonly 'pipeline.create': "Create";
210
+ readonly 'pipeline.cancel': "Cancel";
211
+ readonly 'pipeline.addColumnTitle': "Add New Column to Catalog";
212
+ readonly 'pipeline.addColumnDesc': "Describe your idea and Claude will generate the prompt in EN/FR.";
213
+ readonly 'pipeline.columnName': "Column Name";
214
+ readonly 'pipeline.segment': "Segment";
215
+ readonly 'pipeline.segmentDefinition': "Definition (preparation)";
216
+ readonly 'pipeline.segmentAction': "Action (implementation)";
217
+ readonly 'pipeline.segmentFinish': "Finish (deployment)";
218
+ readonly 'pipeline.describeColumn': "Describe what this column should do";
219
+ readonly 'pipeline.generateClaude': "Generate with Claude";
220
+ readonly 'pipeline.generating': "Generating...";
221
+ readonly 'pipeline.promptPreview': "Column Prompt";
222
+ readonly 'pipeline.loading': "Loading...";
223
+ readonly 'pipeline.noPrompt': "(No prompt available for this column)";
224
+ readonly 'pipeline.columnBelongsTo': "This column belongs to the";
225
+ readonly 'pipeline.segmentLabel': "segment";
226
+ readonly 'pipeline.cannotMoveBetween': "Columns cannot be moved between segments";
227
+ readonly 'pipeline.columnExists': "Column already exists in this segment";
228
+ readonly 'pipeline.pipelineSaved': "Pipeline saved!";
229
+ readonly 'pipeline.pipelineCreated': "Pipeline created!";
230
+ readonly 'pipeline.pipelineDeleted': "Pipeline deleted";
231
+ readonly 'pipeline.pipelineActivated': "Pipeline activated and synced!";
232
+ readonly 'pipeline.fillAllFields': "Please fill in all fields";
233
+ readonly 'pipeline.enterPipelineName': "Please enter a pipeline name";
234
+ readonly 'pipeline.keyExists': "A pipeline with this key already exists";
235
+ readonly 'pipeline.confirmDelete': "Are you sure you want to delete this pipeline?";
236
+ readonly 'pipeline.selectPipeline': "Select a Pipeline";
237
+ readonly 'pipeline.selectPipelineDesc': "Click on a pipeline from the list to edit it.";
238
+ readonly 'pipeline.columnAdded': "Column added to catalog!";
239
+ readonly 'pipeline.errorFillFields': "Please fill in all fields";
240
+ readonly 'pipeline.errorColumnExists': "A column with this name already exists in the catalog. Please choose a different name.";
241
+ readonly 'pipeline.errorGeneric': "An error occurred. Please try again.";
242
+ readonly 'pipeline.applyColumn': "Apply";
243
+ readonly 'pipeline.removeColumn': "Remove";
244
+ readonly 'pipeline.columnApplied': "Column applied!";
245
+ readonly 'pipeline.columnRemoved': "Column removed!";
246
+ readonly 'pipeline.selectPipelineFirst': "Please select a pipeline first";
247
+ readonly 'pipeline.analyze': "Analyze";
248
+ readonly 'pipeline.analysisTitle': "Pipeline Analysis";
249
+ readonly 'pipeline.analyzing': "Analyzing pipeline configuration...";
250
+ readonly 'pipeline.analysisError': "Analysis failed";
251
+ readonly 'pipeline.close': "Close";
252
+ readonly 'pipeline.autocreateTitle': "Autocreate";
253
+ readonly 'pipeline.autocreateDesc': "Analyze your project and generate relevant columns automatically";
254
+ readonly 'pipeline.autocreateBtn': "Analyze Project";
255
+ readonly 'pipeline.analyzeSectionTitle': "Analyze Pipeline";
256
+ readonly 'pipeline.analyzeSectionDesc': "Review your current pipeline configuration with Claude";
257
+ readonly 'pipeline.analyzeSectionBtn': "Analyze";
258
+ readonly 'changelogPage.title': "Changelog";
259
+ readonly 'changelogPage.back': "Back to dashboard";
260
+ };
261
+ readonly fr: {
262
+ readonly 'btn.newIssue': "+ Nouveau ticket";
263
+ readonly 'btn.createIssue': "Créer le ticket";
264
+ readonly 'btn.update': "Mettre à jour";
265
+ readonly 'btn.cancel': "Annuler";
266
+ readonly 'btn.archive': "Archiver";
267
+ readonly 'btn.next': "Suivant";
268
+ readonly 'btn.add': "Ajouter";
269
+ readonly 'btn.edit': "Modifier";
270
+ readonly 'btn.save': "Enregistrer";
271
+ readonly 'btn.reload': "Recharger";
272
+ readonly 'btn.updating': "Mise à jour...";
273
+ readonly 'btn.creating': "Création...";
274
+ readonly 'btn.moving': "Déplacement...";
275
+ readonly 'btn.archiving': "Archivage...";
276
+ readonly 'btn.sending': "Envoi...";
277
+ readonly 'btn.saving': "Sauvegarde...";
278
+ readonly 'btn.back': "Retour";
279
+ readonly 'btn.backToDashboard': "Retour au tableau";
280
+ readonly 'btn.close': "Fermer";
281
+ readonly 'filter.allPriorities': "Toutes priorités";
282
+ readonly 'filter.search': "Rechercher...";
283
+ readonly 'priority.p0': "P0 - Critique";
284
+ readonly 'priority.p1': "P1 - Haute";
285
+ readonly 'priority.p2': "P2 - Normale";
286
+ readonly 'priority.p3': "P3 - Basse";
287
+ readonly 'semver.patch': "Patch (x.x.X) - Bug fix";
288
+ readonly 'semver.minor': "Minor (x.X.0) - Fonctionnalité";
289
+ readonly 'semver.major': "Major (X.0.0) - Breaking";
290
+ readonly 'semver.none': "Aucun déploiement";
291
+ readonly 'status.waiting': "En attente";
292
+ readonly 'status.processing': "En cours...";
293
+ readonly 'status.completed': "Terminé";
294
+ readonly 'status.failed': "Échoué";
295
+ readonly 'status.connected': "Connecté";
296
+ readonly 'status.loading': "Chargement...";
297
+ readonly 'notify.titleRequired': "Titre requis";
298
+ readonly 'notify.titleMandatory': "Le titre est obligatoire";
299
+ readonly 'notify.issueUpdated': "Ticket mis à jour";
300
+ readonly 'notify.issueCreated': "Ticket créé";
301
+ readonly 'notify.issueAdvanced': "Ticket avancé";
302
+ readonly 'notify.issueArchived': "Ticket archivé";
303
+ readonly 'notify.issueMoved': "déplacé";
304
+ readonly 'notify.issueSaved': "Ticket sauvegardé";
305
+ readonly 'notify.moveTo': "Vers";
306
+ readonly 'notify.commentAdded': "Commentaire ajouté";
307
+ readonly 'notify.actionUpdated': "mis à jour";
308
+ readonly 'notify.error': "Erreur";
309
+ readonly 'notify.unableToSave': "Impossible de sauvegarder";
310
+ readonly 'notify.loadingError': "Erreur de chargement";
311
+ readonly 'notify.claudeStarted': "Claude démarré";
312
+ readonly 'notify.claudeFinished': "Claude terminé";
313
+ readonly 'notify.claudeFailed': "Claude échoué";
314
+ readonly 'notify.processingSuccess': "Traitement réussi";
315
+ readonly 'notify.checkLogs': "Voir les logs";
316
+ readonly 'confirm.archive': "Archiver";
317
+ readonly 'modal.newIssue': "Nouveau ticket";
318
+ readonly 'modal.editIssue': "Modifier";
319
+ readonly 'modal.title': "Titre *";
320
+ readonly 'modal.titlePlaceholder': "Ex: Corriger le bug de connexion";
321
+ readonly 'modal.description': "Description";
322
+ readonly 'modal.descriptionPlaceholder': "Décrivez le contexte et les détails...";
323
+ readonly 'modal.priority': "Priorité";
324
+ readonly 'modal.releaseType': "Type de release";
325
+ readonly 'modal.labels': "Labels";
326
+ readonly 'modal.selectLabel': "Sélectionner un label...";
327
+ readonly 'modal.acceptanceCriteria': "Critères d'acceptation";
328
+ readonly 'modal.addCriteria': "Ajouter un critère";
329
+ readonly 'modal.attachments': "Pièces jointes";
330
+ readonly 'modal.addAttachment': "Ajouter un fichier";
331
+ readonly 'modal.noAttachments': "Aucune pièce jointe";
332
+ readonly 'modal.comments': "Commentaires";
333
+ readonly 'modal.noComments': "Aucun commentaire";
334
+ readonly 'modal.addCommentPlaceholder': "Ajouter un commentaire...";
335
+ readonly 'modal.claudeTerminal': "Terminal Claude";
336
+ readonly 'stats.total': "Total";
337
+ readonly 'stats.tokens': "Tokens";
338
+ readonly 'stats.viewStats': "Voir stats";
339
+ readonly 'board.empty': "Vide";
340
+ readonly 'action.instructions': "Instructions";
341
+ readonly 'action.noInstructions': "Aucune instruction disponible";
342
+ readonly 'action.noFile': "Aucun fichier ACTION. Cliquez sur \"Modifier\" pour le créer.";
343
+ readonly 'action.modifiedOn': "Modifié le";
344
+ readonly 'changelog.title': "Quoi de neuf ?";
345
+ readonly 'changelog.gotIt': "J'ai compris";
346
+ readonly 'changelog.viewAll': "Voir tout";
347
+ readonly 'changelog.moreVersions': "...et {count} autres versions";
348
+ readonly 'footer.changelog': "Changelog";
349
+ readonly 'stats.pageTitle': "Statistiques Claude";
350
+ readonly 'stats.profile': "Profil";
351
+ readonly 'stats.model': "Modèle";
352
+ readonly 'stats.session': "Session actuelle";
353
+ readonly 'stats.totals': "Totaux";
354
+ readonly 'stats.tokensInput': "Tokens entrée";
355
+ readonly 'stats.tokensOutput': "Tokens sortie";
356
+ readonly 'stats.totalTokens': "Total tokens";
357
+ readonly 'stats.calls': "Appels";
358
+ readonly 'stats.cost': "Coût";
359
+ readonly 'stats.history': "Historique des appels";
360
+ readonly 'stats.noHistory': "Aucun appel enregistré";
361
+ readonly 'stats.startedAt': "Démarré le";
362
+ readonly 'stats.issue': "Ticket";
363
+ readonly 'stats.column': "Colonne";
364
+ readonly 'stats.duration': "Durée";
365
+ readonly 'stats.date': "Date";
366
+ readonly 'stats.costExplanation': "<strong>Pourquoi le coût semble bas ?</strong> Claude utilise un <strong>cache de prompts</strong> qui réduit significativement les coûts. Quand une partie du contexte a déjà été envoyée dans une conversation précédente, Claude ne la refacture pas au prix plein. Le coût affiché est le <strong>coût réel facturé</strong> par l'API Claude, qui inclut ces réductions de cache. C'est pour cela que <code>tokens × prix</code> ne correspond pas toujours au coût affiché - et c'est une bonne nouvelle pour votre portefeuille !";
367
+ readonly 'tabs.details': "Détails";
368
+ readonly 'tabs.comments': "Commentaires";
369
+ readonly 'tabs.history': "Historique";
370
+ readonly 'tabs.terminal': "Terminal";
371
+ readonly 'issueView.meta': "Méta";
372
+ readonly 'issueView.labels': "Labels";
373
+ readonly 'issueView.description': "Description";
374
+ readonly 'issueView.criteria': "Critères d'acceptation";
375
+ readonly 'issueView.history': "Historique";
376
+ readonly 'issueView.actions': "Actions";
377
+ readonly 'issueView.save': "Sauvegarder";
378
+ readonly 'issueView.moveNext': "Déplacer vers la colonne suivante";
379
+ readonly 'issueView.archive': "Archiver";
380
+ readonly 'issueView.confirmMove': "Déplacer ce ticket vers la colonne suivante ?";
381
+ readonly 'issueView.confirmArchive': "Archiver ce ticket ?";
382
+ readonly 'issueView.comments': "Commentaires";
383
+ readonly 'issueView.addComment': "Ajouter un commentaire...";
384
+ readonly 'issueView.noComments': "Aucun commentaire";
385
+ readonly 'issueView.claudeTerminal': "Terminal Claude";
386
+ readonly 'issueView.noDescription': "Aucune description";
387
+ readonly 'issueView.noLog': "Aucun log. En attente du traitement Claude...";
388
+ readonly 'issueView.loadingPrompt': "Chargement du prompt...";
389
+ readonly 'issueView.promptError': "Erreur";
390
+ readonly 'newIssue.title': "Nouveau ticket";
391
+ readonly 'newIssue.titleLabel': "Titre *";
392
+ readonly 'newIssue.titlePlaceholder': "Ex: Corriger le bug de connexion";
393
+ readonly 'newIssue.description': "Description";
394
+ readonly 'newIssue.descriptionPlaceholder': "Décrivez le contexte et les détails...";
395
+ readonly 'newIssue.priority': "Priorité";
396
+ readonly 'newIssue.releaseType': "Type de release";
397
+ readonly 'newIssue.column': "Colonne cible";
398
+ readonly 'newIssue.labels': "Labels";
399
+ readonly 'newIssue.selectLabel': "Sélectionner un label...";
400
+ readonly 'newIssue.acceptanceCriteria': "Critères d'acceptation";
401
+ readonly 'newIssue.addCriteria': "Ajouter un critère";
402
+ readonly 'notify.created': "Ticket créé avec succès !";
403
+ readonly 'notify.autocompleteSuccess': "Champs remplis automatiquement !";
404
+ readonly 'notify.autocompleteTitleRequired': "Entrez un titre d'abord";
405
+ readonly 'btn.autocomplete': "AutoComplete";
406
+ readonly 'btn.autocompleting': "Génération...";
407
+ readonly 'mic.title': "Dictée vocale";
408
+ readonly 'mic.titleRecording': "Enregistrement... Cliquer pour arrêter";
409
+ readonly 'mic.notSupported': "Reconnaissance vocale non supportée";
410
+ readonly 'notify.micNotSupported': "La reconnaissance vocale n'est pas supportée par votre navigateur";
411
+ readonly 'notify.micError': "Erreur de reconnaissance vocale";
412
+ readonly 'notify.micErrorNetwork': "Erreur réseau : La reconnaissance vocale nécessite une connexion internet. Vérifiez votre connexion et réessayez.";
413
+ readonly 'notify.micErrorNotAllowed': "Accès au microphone refusé. Veuillez autoriser l'accès au microphone dans les paramètres de votre navigateur.";
414
+ readonly 'notify.micErrorNoSpeech': "Aucune parole détectée. Parlez plus fort ou rapprochez-vous du microphone.";
415
+ readonly 'notify.micRetrying': "Erreur réseau, nouvelle tentative...";
416
+ readonly 'countdown.autocompletingIn': "AutoComplete dans";
417
+ readonly 'countdown.cancel': "Annuler";
418
+ readonly 'countdown.now': "Maintenant";
419
+ readonly 'countdown.seconds': "s";
420
+ readonly 'graph.title': "Hiérarchie des tickets";
421
+ readonly 'graph.backToDashboard': "Retour au tableau";
422
+ readonly 'graph.noIssues': "Aucun ticket trouvé";
423
+ readonly 'graph.rootIssues': "Tickets racines";
424
+ readonly 'graph.totalIssues': "Total tickets";
425
+ readonly 'graph.maxDepth': "Profondeur max";
426
+ readonly 'graph.loading': "Chargement...";
427
+ readonly 'graph.zoomIn': "Zoom +";
428
+ readonly 'graph.zoomOut': "Zoom -";
429
+ readonly 'graph.resetZoom': "Reset";
430
+ readonly 'graph.children': "enfants";
431
+ readonly 'pipeline.backBtn': "← Tableau de bord";
432
+ readonly 'pipeline.title': "Configurateur";
433
+ readonly 'pipeline.titleSpan': "Pipeline";
434
+ readonly 'pipeline.savePipeline': "Sauvegarder";
435
+ readonly 'pipeline.activateSync': "Activer & Sync";
436
+ readonly 'pipeline.pipelines': "Pipelines";
437
+ readonly 'pipeline.newPipeline': "+ Nouveau Pipeline";
438
+ readonly 'pipeline.noSelected': "Aucun Pipeline Sélectionné";
439
+ readonly 'pipeline.noSelectedDesc': "Sélectionnez un pipeline dans la liste ou créez-en un nouveau.";
440
+ readonly 'pipeline.createFirst': "Créer le Premier Pipeline";
441
+ readonly 'pipeline.pipelineName': "Nom du Pipeline";
442
+ readonly 'pipeline.version': "Version";
443
+ readonly 'pipeline.delete': "Supprimer";
444
+ readonly 'pipeline.description': "Description (optionnel)";
445
+ readonly 'pipeline.descPlaceholder': "Brève description de ce pipeline";
446
+ readonly 'pipeline.definition': "DÉFINITION";
447
+ readonly 'pipeline.definitionDesc': "Colonnes de qualification et préparation";
448
+ readonly 'pipeline.action': "ACTION";
449
+ readonly 'pipeline.actionDesc': "Colonnes d'implémentation et validation";
450
+ readonly 'pipeline.finish': "FINALISATION";
451
+ readonly 'pipeline.finishDesc': "Colonnes de finalisation et déploiement";
452
+ readonly 'pipeline.catalog': "Catalogue de Colonnes";
453
+ readonly 'pipeline.catalogHint': "(glissez les colonnes vers les segments ci-dessus)";
454
+ readonly 'pipeline.addColumn': "+ Ajouter Colonne";
455
+ readonly 'pipeline.syncPreview': "Aperçu Sync";
456
+ readonly 'pipeline.createNewPipeline': "Créer un Nouveau Pipeline";
457
+ readonly 'pipeline.create': "Créer";
458
+ readonly 'pipeline.cancel': "Annuler";
459
+ readonly 'pipeline.addColumnTitle': "Ajouter une Nouvelle Colonne au Catalogue";
460
+ readonly 'pipeline.addColumnDesc': "Décrivez votre idée et Claude générera le prompt en EN/FR.";
461
+ readonly 'pipeline.columnName': "Nom de la Colonne";
462
+ readonly 'pipeline.segment': "Segment";
463
+ readonly 'pipeline.segmentDefinition': "Définition (préparation)";
464
+ readonly 'pipeline.segmentAction': "Action (implémentation)";
465
+ readonly 'pipeline.segmentFinish': "Finalisation (déploiement)";
466
+ readonly 'pipeline.describeColumn': "Décrivez ce que cette colonne doit faire";
467
+ readonly 'pipeline.generateClaude': "Générer avec Claude";
468
+ readonly 'pipeline.generating': "Génération...";
469
+ readonly 'pipeline.promptPreview': "Prompt de la Colonne";
470
+ readonly 'pipeline.loading': "Chargement...";
471
+ readonly 'pipeline.noPrompt': "(Aucun prompt disponible pour cette colonne)";
472
+ readonly 'pipeline.columnBelongsTo': "Cette colonne appartient au segment";
473
+ readonly 'pipeline.segmentLabel': "";
474
+ readonly 'pipeline.cannotMoveBetween': "Les colonnes ne peuvent pas être déplacées entre segments";
475
+ readonly 'pipeline.columnExists': "La colonne existe déjà dans ce segment";
476
+ readonly 'pipeline.pipelineSaved': "Pipeline sauvegardé !";
477
+ readonly 'pipeline.pipelineCreated': "Pipeline créé !";
478
+ readonly 'pipeline.pipelineDeleted': "Pipeline supprimé";
479
+ readonly 'pipeline.pipelineActivated': "Pipeline activé et synchronisé !";
480
+ readonly 'pipeline.fillAllFields': "Veuillez remplir tous les champs";
481
+ readonly 'pipeline.enterPipelineName': "Veuillez entrer un nom de pipeline";
482
+ readonly 'pipeline.keyExists': "Un pipeline avec cette clé existe déjà";
483
+ readonly 'pipeline.confirmDelete': "Êtes-vous sûr de vouloir supprimer ce pipeline ?";
484
+ readonly 'pipeline.selectPipeline': "Sélectionnez un Pipeline";
485
+ readonly 'pipeline.selectPipelineDesc': "Cliquez sur un pipeline de la liste pour le modifier.";
486
+ readonly 'pipeline.columnAdded': "Colonne ajoutée au catalogue !";
487
+ readonly 'pipeline.errorFillFields': "Veuillez remplir tous les champs";
488
+ readonly 'pipeline.errorColumnExists': "Une colonne avec ce nom existe déjà dans le catalogue. Veuillez choisir un autre nom.";
489
+ readonly 'pipeline.errorGeneric': "Une erreur est survenue. Veuillez réessayer.";
490
+ readonly 'pipeline.applyColumn': "Appliquer";
491
+ readonly 'pipeline.removeColumn': "Retirer";
492
+ readonly 'pipeline.columnApplied': "Colonne appliquée !";
493
+ readonly 'pipeline.columnRemoved': "Colonne retirée !";
494
+ readonly 'pipeline.selectPipelineFirst': "Veuillez d'abord sélectionner un pipeline";
495
+ readonly 'pipeline.analyze': "Analyser";
496
+ readonly 'pipeline.analysisTitle': "Analyse du Pipeline";
497
+ readonly 'pipeline.analyzing': "Analyse de la configuration du pipeline...";
498
+ readonly 'pipeline.analysisError': "Échec de l'analyse";
499
+ readonly 'pipeline.close': "Fermer";
500
+ readonly 'pipeline.autocreateTitle': "Autocreate";
501
+ readonly 'pipeline.autocreateDesc': "Analysez votre projet et générez automatiquement des colonnes pertinentes";
502
+ readonly 'pipeline.autocreateBtn': "Analyser le Projet";
503
+ readonly 'pipeline.analyzeSectionTitle': "Analyser le Pipeline";
504
+ readonly 'pipeline.analyzeSectionDesc': "Revoyez votre configuration de pipeline avec Claude";
505
+ readonly 'pipeline.analyzeSectionBtn': "Analyser";
506
+ readonly 'changelogPage.title': "Journal des modifications";
507
+ readonly 'changelogPage.back': "Retour au dashboard";
508
+ };
509
+ };
510
+ export type TranslationKey = keyof typeof translations.en;
511
+ /**
512
+ * Get a translation function for a specific language
513
+ */
514
+ export declare function getTranslator(lang: Language): (key: TranslationKey) => string;
515
+ //# sourceMappingURL=translations.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"translations.d.ts","sourceRoot":"","sources":["../../../../src/server/dashboard/shared/translations.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,MAAM,MAAM,QAAQ,GAAG,IAAI,GAAG,IAAI,CAAC;AAEnC,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAgmBf,CAAC;AAEX,MAAM,MAAM,cAAc,GAAG,MAAM,OAAO,YAAY,CAAC,EAAE,CAAC;AAE1D;;GAEG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,QAAQ,IAClC,KAAK,cAAc,KAAG,MAAM,CAGrC"}