gitcoach-cli 1.0.2 → 1.0.4

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 (43) hide show
  1. package/README.md +429 -0
  2. package/bin/run.js +79 -79
  3. package/dist/i18n/locales/en.json +393 -365
  4. package/dist/i18n/locales/es.json +393 -365
  5. package/dist/i18n/locales/fr.json +393 -365
  6. package/dist/services/copilot-service.js +11 -11
  7. package/dist/services/git-service.d.ts +4 -0
  8. package/dist/services/git-service.d.ts.map +1 -1
  9. package/dist/services/git-service.js +27 -0
  10. package/dist/services/git-service.js.map +1 -1
  11. package/dist/ui/components/prompt.d.ts.map +1 -1
  12. package/dist/ui/components/prompt.js +14 -4
  13. package/dist/ui/components/prompt.js.map +1 -1
  14. package/dist/ui/menus/branch-menu.d.ts +1 -1
  15. package/dist/ui/menus/branch-menu.d.ts.map +1 -1
  16. package/dist/ui/menus/branch-menu.js +61 -5
  17. package/dist/ui/menus/branch-menu.js.map +1 -1
  18. package/dist/ui/menus/commit-menu.d.ts.map +1 -1
  19. package/dist/ui/menus/commit-menu.js +10 -1
  20. package/dist/ui/menus/commit-menu.js.map +1 -1
  21. package/dist/ui/menus/detached-head-menu.d.ts +4 -0
  22. package/dist/ui/menus/detached-head-menu.d.ts.map +1 -0
  23. package/dist/ui/menus/detached-head-menu.js +97 -0
  24. package/dist/ui/menus/detached-head-menu.js.map +1 -0
  25. package/dist/ui/menus/main-menu.d.ts.map +1 -1
  26. package/dist/ui/menus/main-menu.js +17 -1
  27. package/dist/ui/menus/main-menu.js.map +1 -1
  28. package/dist/ui/menus/setup-menu.js +105 -105
  29. package/dist/ui/themes/colored.d.ts +1 -1
  30. package/dist/ui/themes/colored.d.ts.map +1 -1
  31. package/dist/ui/themes/colored.js +4 -2
  32. package/dist/ui/themes/colored.js.map +1 -1
  33. package/dist/ui/themes/index.d.ts +1 -1
  34. package/dist/ui/themes/index.d.ts.map +1 -1
  35. package/dist/ui/themes/monochrome.d.ts +1 -1
  36. package/dist/ui/themes/monochrome.d.ts.map +1 -1
  37. package/dist/ui/themes/monochrome.js +2 -1
  38. package/dist/ui/themes/monochrome.js.map +1 -1
  39. package/dist/utils/version.d.ts +2 -0
  40. package/dist/utils/version.d.ts.map +1 -0
  41. package/dist/utils/version.js +3 -0
  42. package/dist/utils/version.js.map +1 -0
  43. package/package.json +72 -71
@@ -1,365 +1,393 @@
1
- {
2
- "app": {
3
- "name": "GitCoach",
4
- "tagline": "Tu Coach de Git Impulsado por IA",
5
- "version": "v{{version}}",
6
- "welcome": "Bienvenido a GitCoach!",
7
- "goodbye": "Adios! Feliz programacion!"
8
- },
9
- "menu": {
10
- "title": "Menu Principal",
11
- "status": "Estado",
12
- "statusDesc": "Ver cambios actuales",
13
- "add": "Agregar",
14
- "addDesc": "Preparar archivos",
15
- "commit": "Commit",
16
- "commitDesc": "Guardar tus cambios",
17
- "push": "Push",
18
- "pushDesc": "Subir al remoto",
19
- "pull": "Pull",
20
- "pullDesc": "Descargar cambios",
21
- "branch": "Rama",
22
- "branchDesc": "Gestionar ramas",
23
- "undo": "Deshacer",
24
- "undoDesc": "Deshacer acciones",
25
- "history": "Historial",
26
- "historyDesc": "Ver historial de commits",
27
- "stash": "Stash",
28
- "stashDesc": "Guardar trabajo temporalmente",
29
- "config": "Configuracion",
30
- "configDesc": "Configurar GitCoach",
31
- "stats": "Estadisticas",
32
- "statsDesc": "Ver tu progreso",
33
- "help": "Ayuda",
34
- "helpDesc": "Obtener asistencia",
35
- "quit": "Salir",
36
- "quitDesc": "Cerrar GitCoach",
37
- "back": "Volver",
38
- "backDesc": "Regresar al menu anterior"
39
- },
40
- "commands": {
41
- "status": {
42
- "title": "Estado del Repositorio",
43
- "clean": "El arbol de trabajo esta limpio. Nada que commitear.",
44
- "staged": "Cambios preparados (listos para commit):",
45
- "unstaged": "Cambios sin preparar:",
46
- "untracked": "Archivos sin seguimiento:",
47
- "branch": "En la rama: {{branch}}",
48
- "ahead": "Tu rama esta adelante de '{{remote}}' por {{count}} commit(s).",
49
- "behind": "Tu rama esta detras de '{{remote}}' por {{count}} commit(s).",
50
- "diverged": "Tu rama y '{{remote}}' han divergido."
51
- },
52
- "add": {
53
- "title": "Preparar Archivos",
54
- "selectFiles": "Selecciona archivos para preparar:",
55
- "noFiles": "No hay archivos para preparar.",
56
- "allFiles": "Preparar todos los archivos",
57
- "success": "{{count}} archivo(s) preparado(s) exitosamente.",
58
- "staged": "Preparado: {{file}}"
59
- },
60
- "commit": {
61
- "title": "Commitear Cambios",
62
- "noStaged": "No hay cambios preparados. Usa 'Agregar' primero.",
63
- "enterMessage": "Ingresa el mensaje de commit:",
64
- "generateAI": "Generar mensaje con IA",
65
- "generating": "Generando mensaje...",
66
- "suggested": "Mensaje sugerido: {{message}}",
67
- "useGenerated": "Usar este mensaje?",
68
- "editMessage": "Editar mensaje",
69
- "success": "Commit exitoso: {{message}}",
70
- "cancelled": "Commit cancelado.",
71
- "emptyToCancel": "(Deja vacio para cancelar)",
72
- "messageTooShort": "El mensaje de commit debe tener al menos 3 caracteres",
73
- "copilotUnavailable": "GitHub Copilot CLI no disponible - ingresa el mensaje manualmente",
74
- "aiGenerationFailed": "Generacion IA fallida - ingresa el mensaje manualmente",
75
- "enterManually": "Ingresa tu mensaje de commit:"
76
- },
77
- "push": {
78
- "title": "Subir Cambios",
79
- "confirm": "Subir {{count}} commit(s) a {{remote}}/{{branch}}?",
80
- "nothingToPush": "Nada que subir. Tu rama esta actualizada.",
81
- "pushing": "Subiendo a {{remote}}...",
82
- "success": "Subido exitosamente a {{remote}}/{{branch}}.",
83
- "failed": "Fallo al subir: {{error}}",
84
- "forcePush": "Forzar subida",
85
- "forcePushWarning": "Forzar subida sobreescribira el historial remoto. Estas seguro?",
86
- "remoteBehind": "El remoto tiene {{count}} commit(s) nuevo(s). Deberias hacer pull primero!",
87
- "behindAction": "Que te gustaria hacer?",
88
- "pullThenPush": "Hacer pull primero, luego push",
89
- "noUpstream": "La rama '{{branch}}' no tiene upstream. {{count}} commit(s) seran enviados.",
90
- "firstPush": "Primer Push"
91
- },
92
- "pull": {
93
- "title": "Descargar Cambios",
94
- "pulling": "Descargando de {{remote}}...",
95
- "success": "{{count}} commit(s) descargado(s) exitosamente.",
96
- "upToDate": "Ya esta actualizado.",
97
- "conflicts": "Conflictos de fusion detectados. Por favor, resuelvalos manualmente.",
98
- "failed": "Fallo al descargar: {{error}}"
99
- },
100
- "branch": {
101
- "title": "Gestion de Ramas",
102
- "current": "Rama actual: {{branch}}",
103
- "list": "Ramas disponibles:",
104
- "create": "Crear nueva rama",
105
- "switch": "Cambiar de rama",
106
- "delete": "Eliminar rama",
107
- "enterName": "Ingresa el nombre de la rama:",
108
- "createSuccess": "Rama creada: {{branch}}",
109
- "switchSuccess": "Cambiado a la rama: {{branch}}",
110
- "deleteSuccess": "Rama eliminada: {{branch}}",
111
- "deleteConfirm": "Eliminar la rama '{{branch}}'? Esta accion no se puede deshacer.",
112
- "cannotDeleteCurrent": "No se puede eliminar la rama actual."
113
- },
114
- "undo": {
115
- "title": "Deshacer Acciones",
116
- "selectAction": "Que te gustaria deshacer?",
117
- "softReset": "Deshacer ultimo commit (conservar archivos)",
118
- "softResetDesc": "Elimina el commit pero conserva tus cambios preparados",
119
- "hardReset": "Deshacer ultimo commit (eliminar todo)",
120
- "hardResetDesc": "Elimina el commit Y borra todos los cambios",
121
- "unstage": "Quitar de staging",
122
- "unstageDesc": "Remover archivos del area de staging",
123
- "restore": "Descartar cambios de archivos",
124
- "restoreDesc": "Revertir archivos al ultimo commit",
125
- "whatItDoes": "Que hace esto:",
126
- "softResetExplain": "Esto deshara tu ultimo commit pero conservara todos tus cambios. Puedes editarlos y hacer commit de nuevo.",
127
- "hardResetWarning": "Esto eliminara permanentemente tu ultimo commit Y todos los cambios sin commitear. No se puede deshacer!",
128
- "unstageExplain": "Esto removera los archivos seleccionados del area de staging. Tus cambios permaneceran en el directorio de trabajo.",
129
- "restoreWarning": "Esto descartara permanentemente todos los cambios en los archivos seleccionados. Tu trabajo se perdera!",
130
- "noCommits": "No hay commits para deshacer.",
131
- "lastCommit": "Ultimo commit:",
132
- "confirmSoftReset": "Deshacer este commit? (los archivos se conservaran)",
133
- "confirmHardReset": "Estas seguro? Esto ELIMINARA todos los cambios!",
134
- "confirmHardReset2": "ADVERTENCIA FINAL: Escribe 'yes' para confirmar la eliminacion permanente",
135
- "softResetSuccess": "Commit deshecho! Tus cambios siguen preparados.",
136
- "hardResetSuccess": "Commit y todos los cambios han sido eliminados.",
137
- "filesKept": "Tus archivos siguen preparados. Puedes editarlos y hacer commit de nuevo.",
138
- "noStagedFiles": "No hay archivos preparados actualmente.",
139
- "stagedFiles": "Archivos preparados:",
140
- "selectFilesToUnstage": "Selecciona archivos para quitar de staging:",
141
- "unstageSuccess": "{{count}} archivo(s) removido(s) del staging exitosamente.",
142
- "noModifiedFiles": "No hay archivos modificados para restaurar.",
143
- "modifiedFiles": "Archivos modificados:",
144
- "selectFilesToRestore": "Selecciona archivos para restaurar:",
145
- "confirmRestore": "Descartar cambios en {{count}} archivo(s)? No se puede deshacer!",
146
- "restoreSuccess": "{{count}} archivo(s) restaurado(s) al ultimo commit."
147
- },
148
- "history": {
149
- "title": "Historial de Commits",
150
- "recentCommits": "Commits recientes:",
151
- "noCommits": "No hay commits en este repositorio.",
152
- "viewMore": "Cargar mas commits",
153
- "selectCommit": "Selecciona un commit para ver detalles:",
154
- "commitDetails": "Detalles del Commit",
155
- "commitNotFound": "Commit no encontrado.",
156
- "changedFiles": "Archivos cambiados en este commit:"
157
- },
158
- "stash": {
159
- "title": "Stash - Guardar Trabajo Temporalmente",
160
- "selectAction": "Que te gustaria hacer?",
161
- "save": "Guardar trabajo actual",
162
- "saveDesc": "Guardar todos los cambios sin commitear",
163
- "list": "Ver stashes",
164
- "listDesc": "Ver todos los stashes guardados",
165
- "apply": "Aplicar un stash",
166
- "applyDesc": "Restaurar cambios (conservar stash)",
167
- "pop": "Pop ultimo stash",
168
- "popDesc": "Restaurar y eliminar ultimo stash",
169
- "drop": "Eliminar un stash",
170
- "dropDesc": "Eliminar permanentemente un stash",
171
- "whatItDoes": "Que hace esto:",
172
- "saveExplain": "Esto guardara todos tus cambios sin commitear y limpiara tu directorio de trabajo. Puedes restaurarlos despues.",
173
- "applyExplain": "Esto restaurara el stash seleccionado pero lo mantendra en la lista de stashes.",
174
- "popExplain": "Esto restaurara el ultimo stash y lo removera de la lista.",
175
- "dropWarning": "Esto eliminara permanentemente el stash seleccionado. No se puede deshacer!",
176
- "nothingToStash": "No hay cambios para guardar. Tu directorio de trabajo ya esta limpio.",
177
- "enterMessage": "Ingresa una descripcion (opcional):",
178
- "saveSuccess": "Cambios guardados exitosamente!",
179
- "workingTreeClean": "Tu directorio de trabajo ahora esta limpio.",
180
- "noStashes": "No hay stashes guardados.",
181
- "yourStashes": "Tus stashes:",
182
- "selectStash": "Selecciona un stash para aplicar:",
183
- "selectStashToDrop": "Selecciona un stash para eliminar:",
184
- "applySuccess": "Stash aplicado exitosamente!",
185
- "stashKept": "El stash sigue guardado. Usa 'pop' para aplicar y eliminar.",
186
- "popSuccess": "Stash aplicado y eliminado!",
187
- "confirmDrop": "Eliminar este stash? No se puede deshacer!",
188
- "dropSuccess": "Stash eliminado."
189
- }
190
- },
191
- "time": {
192
- "justNow": "ahora mismo",
193
- "minutesAgo": "hace {{count}} min",
194
- "hoursAgo": "hace {{count}} horas",
195
- "daysAgo": "hace {{count}} dias",
196
- "weeksAgo": "hace {{count}} semanas",
197
- "monthsAgo": "hace {{count}} meses"
198
- },
199
- "warnings": {
200
- "title": "Advertencia",
201
- "dangerous": "peligroso",
202
- "uncommittedChanges": "Tienes cambios sin commitear que se perderan!",
203
- "uncommittedChangesAction": "Commitea o guarda tus cambios antes de continuar.",
204
- "forcePush": "Forzar subida sobreescribira el historial remoto!",
205
- "forcePushAction": "Esta accion no se puede deshacer. Asegurate de saber lo que haces.",
206
- "wrongBranch": "Estas en la rama '{{current}}', no en '{{expected}}'.",
207
- "wrongBranchAction": "Cambia a la rama correcta antes de continuar.",
208
- "detachedHead": "Estas en un estado HEAD separado!",
209
- "detachedHeadAction": "Crea una rama para guardar tu trabajo.",
210
- "noRemote": "No hay repositorio remoto configurado.",
211
- "notGitRepo": "Este directorio no es un repositorio Git.",
212
- "copilotUnavailable": "GitHub Copilot CLI no esta disponible. Algunas funciones pueden estar limitadas."
213
- },
214
- "errors": {
215
- "title": "Error",
216
- "generic": "Ocurrio un error: {{message}}",
217
- "gitNotInstalled": "Git no esta instalado o no esta en el PATH.",
218
- "networkError": "Error de red. Verifica tu conexion.",
219
- "permissionDenied": "Permiso denegado. Verifica tus credenciales.",
220
- "invalidInput": "Entrada invalida: {{message}}",
221
- "branchExists": "La rama '{{branch}}' ya existe.",
222
- "branchNotFound": "Rama '{{branch}}' no encontrada.",
223
- "mergeConflict": "Conflicto de fusion en {{file}}.",
224
- "explainWithAI": "Te gustaria una explicacion IA de este error?",
225
- "analyzing": "Analizando error...",
226
- "explanation": "Explicacion",
227
- "noExplanation": "No se pudo explicar el error",
228
- "explainFailed": "Fallo al obtener explicacion"
229
- },
230
- "success": {
231
- "title": "Exito",
232
- "operationComplete": "Operacion completada exitosamente.",
233
- "saved": "Cambios guardados.",
234
- "configUpdated": "Configuracion actualizada."
235
- },
236
- "setup": {
237
- "welcome": "Bienvenido a la configuracion de GitCoach!",
238
- "selectLanguage": "Selecciona tu idioma preferido:",
239
- "selectTheme": "Selecciona tu tema preferido:",
240
- "selectLevel": "Cual es tu nivel de experiencia con Git?",
241
- "complete": "Configuracion completa! Estas listo para usar GitCoach.",
242
- "tip": "Consejo: Puedes cambiar estos ajustes en cualquier momento en el menu de configuracion.",
243
- "notGitRepo": "Este directorio no es un repositorio Git.",
244
- "menuTitle": "Que te gustaria hacer?",
245
- "init": "Init",
246
- "initDesc": "Inicializar un nuevo repositorio Git",
247
- "clone": "Clonar",
248
- "cloneDesc": "Clonar un repositorio existente",
249
- "quitDesc": "Salir de GitCoach",
250
- "initInProgress": "Inicializando repositorio Git...",
251
- "initSuccess": "Repositorio Git inicializado exitosamente!",
252
- "addRemoteQuestion": "Te gustaria agregar un origen remoto?",
253
- "remoteUrlPrompt": "Ingresa la URL remota (GitHub, GitLab, etc.):",
254
- "remoteUrlRequired": "La URL remota es requerida.",
255
- "remoteUrlInvalid": "Por favor ingresa una URL de Git valida.",
256
- "remoteAdded": "Remoto 'origin' agregado: {{url}}",
257
- "repoReady": "Tu repositorio esta listo! Ya puedes comenzar a trabajar.",
258
- "cloneUrlPrompt": "Ingresa la URL del repositorio a clonar:",
259
- "cloneUrlRequired": "La URL del repositorio es requerida.",
260
- "cloneDirPrompt": "Ingresa el nombre del directorio (deja vacio para usar el predeterminado):",
261
- "cloneInProgress": "Clonando repositorio...",
262
- "cloneSuccess": "Repositorio clonado exitosamente en '{{dir}}'!",
263
- "cloneNextStep": "Ejecuta 'cd {{dir}}' y luego 'gitcoach' para comenzar.",
264
- "gitignoreQuestion": "Te gustaria crear un archivo .gitignore?",
265
- "gitignoreType": "Selecciona el tipo de proyecto:",
266
- "gitignoreNode": "Node.js",
267
- "gitignorePython": "Python",
268
- "gitignoreJava": "Java",
269
- "gitignoreGeneric": "Generico",
270
- "gitignoreCreated": "Archivo .gitignore creado!",
271
- "copilotTitle": "GitHub Copilot CLI",
272
- "copilotDetected": "GitHub Copilot CLI esta instalado y listo!",
273
- "copilotNotInstalled": "GitHub Copilot CLI no esta instalado.",
274
- "copilotBenefits": "Copilot CLI habilita funciones de IA:\n• Generar mensajes de commit inteligentes\n• Responder tus preguntas de Git\n• Obtener sugerencias contextuales",
275
- "copilotInstallQuestion": "Te gustaria instalar GitHub Copilot CLI ahora?",
276
- "copilotSkipped": "Continuando sin Copilot CLI. Puedes instalarlo mas tarde.",
277
- "copilotInstalling": "Instalando GitHub Copilot CLI...",
278
- "copilotInstallSuccess": "GitHub Copilot CLI instalado exitosamente!",
279
- "copilotInstallNote": "Es posible que necesites autenticarte con 'copilot auth' en el primer uso.",
280
- "copilotInstallFailed": "Fallo al instalar GitHub Copilot CLI",
281
- "copilotInstallFailedDetail": "La instalacion automatica fallo. Esto puede deberse a problemas de permisos o de red.",
282
- "copilotManualInstall": "Para instalar manualmente, ejecuta:\nnpm install -g @githubnext/github-copilot-cli"
283
- },
284
- "config": {
285
- "title": "Configuracion",
286
- "language": "Idioma",
287
- "theme": "Tema",
288
- "experienceLevel": "Nivel de Experiencia",
289
- "showTips": "Mostrar Consejos",
290
- "confirmDestructive": "Confirmar Acciones Destructivas",
291
- "autoCommitMsg": "Auto-generar Mensajes de Commit",
292
- "defaultBranch": "Rama por Defecto",
293
- "reset": "Restablecer Valores Predeterminados",
294
- "resetConfirm": "Restablecer todas las configuraciones?"
295
- },
296
- "stats": {
297
- "title": "Tus Estadisticas",
298
- "totalCommits": "Total de Commits",
299
- "errorsPrevented": "Errores Prevenidos",
300
- "aiCommits": "Commits Generados por IA",
301
- "timeSaved": "Tiempo Estimado Ahorrado",
302
- "noData": "Aun no hay estadisticas. Comienza a usar GitCoach!",
303
- "aiPercentage": "Commits asistidos por IA: {{percentage}}%",
304
- "mistakesAvoided": "Has evitado {{count}} error(es) potencial(es)!"
305
- },
306
- "tips": {
307
- "beginner": {
308
- "status": "Usa 'Estado' para ver que archivos han cambiado antes de commitear.",
309
- "add": "Prepara archivos con 'Agregar' antes de commitear. Preparar es como alistar tus cambios.",
310
- "commit": "Escribe mensajes claros que expliquen POR QUE hiciste el cambio.",
311
- "push": "Sube regularmente para respaldar tu trabajo en el servidor remoto.",
312
- "pull": "Descarga antes de comenzar a trabajar para evitar conflictos de fusion.",
313
- "branch": "Usa ramas para trabajar en funciones sin afectar el codigo principal."
314
- },
315
- "intermediate": {
316
- "commit": "Usa commits convencionales (feat:, fix:, docs:) para un mejor historial.",
317
- "rebase": "Considera el rebase para un historial mas limpio antes de fusionar."
318
- }
319
- },
320
- "help": {
321
- "title": "Ayuda",
322
- "selectAction": "Que te gustaria hacer?",
323
- "askQuestion": "Hacer una pregunta sobre Git (IA)",
324
- "quickHelp": "Referencia rapida",
325
- "about": "Acerca de GitCoach",
326
- "askHint": "Haz cualquier pregunta sobre Git en lenguaje natural. Deja vacio para cancelar.",
327
- "askExamples": "Ejemplos: \"Como deshago mi ultimo commit?\" o \"Que es un rebase?\"",
328
- "enterQuestion": "Tu pregunta:",
329
- "questionTooShort": "Por favor ingresa una pregunta mas detallada",
330
- "thinking": "Pensando...",
331
- "answer": "Respuesta",
332
- "noAnswer": "No se pudo obtener una respuesta",
333
- "errorAsking": "Error al obtener respuesta",
334
- "copilotUnavailable": "GitHub Copilot CLI no esta disponible. Instalalo para hacer preguntas.",
335
- "quickRefTitle": "Referencia Rapida",
336
- "navigation": "Navegacion:",
337
- "navArrows": "Usa las flechas para navegar en los menus",
338
- "navEnter": "Presiona Enter para seleccionar",
339
- "navCtrlC": "Presiona Ctrl+C para salir en cualquier momento",
340
- "mainCommands": "Comandos Principales:",
341
- "additionalCommands": "Comandos Adicionales:",
342
- "tips": "Consejos:",
343
- "tip1": "GitCoach te advierte antes de operaciones peligrosas",
344
- "tip2": "La IA puede generar mensajes de commit a partir de tus cambios",
345
- "tip3": "Cambia el nivel de experiencia en configuracion para mas/menos guia",
346
- "aboutDesc": "GitCoach es una herramienta CLI interactiva que ayuda a los desarrolladores a dominar Git",
347
- "aboutDesc2": "a traves de menus guiados, sugerencias inteligentes y prevencion de errores en tiempo real.",
348
- "features": "Caracteristicas:",
349
- "feature1": "Menus interactivos para todas las operaciones Git",
350
- "feature2": "Mensajes de commit generados por IA con Copilot CLI",
351
- "feature3": "Prevencion de errores y advertencias",
352
- "feature4": "Soporte multilingue (EN, FR, ES)",
353
- "feature5": "Modos Principiante, Intermedio y Experto"
354
- },
355
- "prompts": {
356
- "confirm": "Estas seguro?",
357
- "yes": "Si",
358
- "no": "No",
359
- "cancel": "Cancelar",
360
- "continue": "Continuar",
361
- "pressEnter": "Presiona Enter para continuar...",
362
- "select": "Selecciona una opcion",
363
- "enterValue": "Ingresa un valor"
364
- }
365
- }
1
+ {
2
+ "app": {
3
+ "name": "GitCoach",
4
+ "tagline": "Tu Coach de Git Impulsado por IA",
5
+ "version": "v{{version}}",
6
+ "welcome": "Bienvenido a GitCoach!",
7
+ "goodbye": "Adios! Feliz programacion!"
8
+ },
9
+ "menu": {
10
+ "title": "Menu Principal",
11
+ "status": "Estado",
12
+ "statusDesc": "Ver cambios actuales",
13
+ "add": "Agregar",
14
+ "addDesc": "Preparar archivos",
15
+ "commit": "Commit",
16
+ "commitDesc": "Guardar tus cambios",
17
+ "push": "Push",
18
+ "pushDesc": "Subir al remoto",
19
+ "pull": "Pull",
20
+ "pullDesc": "Descargar cambios",
21
+ "branch": "Rama",
22
+ "branchDesc": "Gestionar ramas",
23
+ "undo": "Deshacer",
24
+ "undoDesc": "Deshacer acciones",
25
+ "history": "Historial",
26
+ "historyDesc": "Ver historial de commits",
27
+ "stash": "Stash",
28
+ "stashDesc": "Guardar trabajo temporalmente",
29
+ "config": "Configuracion",
30
+ "configDesc": "Configurar GitCoach",
31
+ "stats": "Estadisticas",
32
+ "statsDesc": "Ver tu progreso",
33
+ "help": "Ayuda",
34
+ "helpDesc": "Obtener asistencia",
35
+ "quit": "Salir",
36
+ "quitDesc": "Cerrar GitCoach",
37
+ "back": "Volver",
38
+ "backDesc": "Regresar al menu anterior"
39
+ },
40
+ "commands": {
41
+ "status": {
42
+ "title": "Estado del Repositorio",
43
+ "clean": "El arbol de trabajo esta limpio. Nada que commitear.",
44
+ "staged": "Cambios preparados (listos para commit):",
45
+ "unstaged": "Cambios sin preparar:",
46
+ "untracked": "Archivos sin seguimiento:",
47
+ "branch": "En la rama: {{branch}}",
48
+ "ahead": "Tu rama esta adelante de '{{remote}}' por {{count}} commit(s).",
49
+ "behind": "Tu rama esta detras de '{{remote}}' por {{count}} commit(s).",
50
+ "diverged": "Tu rama y '{{remote}}' han divergido."
51
+ },
52
+ "add": {
53
+ "title": "Preparar Archivos",
54
+ "selectFiles": "Selecciona archivos para preparar:",
55
+ "noFiles": "No hay archivos para preparar.",
56
+ "allFiles": "Preparar todos los archivos",
57
+ "success": "{{count}} archivo(s) preparado(s) exitosamente.",
58
+ "staged": "Preparado: {{file}}"
59
+ },
60
+ "commit": {
61
+ "title": "Commitear Cambios",
62
+ "noStaged": "No hay cambios preparados. Usa 'Agregar' primero.",
63
+ "enterMessage": "Ingresa el mensaje de commit:",
64
+ "generateAI": "Generar mensaje con IA",
65
+ "generating": "Generando mensaje...",
66
+ "suggested": "Mensaje sugerido: {{message}}",
67
+ "useGenerated": "Usar este mensaje?",
68
+ "editMessage": "Editar mensaje",
69
+ "success": "Commit exitoso: {{message}}",
70
+ "cancelled": "Commit cancelado.",
71
+ "emptyToCancel": "(Deja vacio para cancelar)",
72
+ "messageTooShort": "El mensaje de commit debe tener al menos 3 caracteres",
73
+ "copilotUnavailable": "GitHub Copilot CLI no disponible - ingresa el mensaje manualmente",
74
+ "aiGenerationFailed": "Generacion IA fallida - ingresa el mensaje manualmente",
75
+ "enterManually": "Ingresa tu mensaje de commit:",
76
+ "conflictsDetected": "Conflictos de fusion detectados! Resuelvalos antes de commitear.",
77
+ "conflictedFiles": "Archivos en conflicto:"
78
+ },
79
+ "push": {
80
+ "title": "Subir Cambios",
81
+ "confirm": "Subir {{count}} commit(s) a {{remote}}/{{branch}}?",
82
+ "nothingToPush": "Nada que subir. Tu rama esta actualizada.",
83
+ "pushing": "Subiendo a {{remote}}...",
84
+ "success": "Subido exitosamente a {{remote}}/{{branch}}.",
85
+ "failed": "Fallo al subir: {{error}}",
86
+ "forcePush": "Forzar subida",
87
+ "forcePushWarning": "Forzar subida sobreescribira el historial remoto. Estas seguro?",
88
+ "remoteBehind": "El remoto tiene {{count}} commit(s) nuevo(s). Deberias hacer pull primero!",
89
+ "behindAction": "Que te gustaria hacer?",
90
+ "pullThenPush": "Hacer pull primero, luego push",
91
+ "noUpstream": "La rama '{{branch}}' no tiene upstream. {{count}} commit(s) seran enviados.",
92
+ "firstPush": "Primer Push"
93
+ },
94
+ "pull": {
95
+ "title": "Descargar Cambios",
96
+ "pulling": "Descargando de {{remote}}...",
97
+ "success": "{{count}} commit(s) descargado(s) exitosamente.",
98
+ "upToDate": "Ya esta actualizado.",
99
+ "conflicts": "Conflictos de fusion detectados. Por favor, resuelvalos manualmente.",
100
+ "failed": "Fallo al descargar: {{error}}"
101
+ },
102
+ "branch": {
103
+ "title": "Gestion de Ramas",
104
+ "current": "Rama actual: {{branch}}",
105
+ "list": "Ramas disponibles:",
106
+ "create": "Crear nueva rama",
107
+ "switch": "Cambiar de rama",
108
+ "delete": "Eliminar rama",
109
+ "merge": "Fusionar una rama",
110
+ "enterName": "Ingresa el nombre de la rama:",
111
+ "createSuccess": "Rama creada: {{branch}}",
112
+ "switchSuccess": "Cambiado a la rama: {{branch}}",
113
+ "deleteSuccess": "Rama eliminada: {{branch}}",
114
+ "deleteConfirm": "Eliminar la rama '{{branch}}'? Esta accion no se puede deshacer.",
115
+ "cannotDeleteCurrent": "No se puede eliminar la rama actual.",
116
+ "noOtherBranches": "No hay otras ramas disponibles.",
117
+ "mergeExplain": "Fusionar combina los cambios de otra rama en tu rama actual.\nEstas en '{{branch}}'. Que rama quieres fusionar aqui?",
118
+ "selectToMerge": "Selecciona la rama a fusionar:",
119
+ "willExecute": "Se ejecutara:",
120
+ "mergeConfirm": "Fusionar la rama '{{branch}}'? Continuar?",
121
+ "merging": "Fusionando {{branch}}...",
122
+ "mergeSuccess": "Rama '{{branch}}' fusionada con exito!",
123
+ "mergeConflicts": "Conflictos detectados! Resuelvalos antes de continuar.",
124
+ "conflictedFiles": "Archivos en conflicto:"
125
+ },
126
+ "undo": {
127
+ "title": "Deshacer Acciones",
128
+ "selectAction": "Que te gustaria deshacer?",
129
+ "softReset": "Deshacer ultimo commit (conservar archivos)",
130
+ "softResetDesc": "Elimina el commit pero conserva tus cambios preparados",
131
+ "hardReset": "Deshacer ultimo commit (eliminar todo)",
132
+ "hardResetDesc": "Elimina el commit Y borra todos los cambios",
133
+ "unstage": "Quitar de staging",
134
+ "unstageDesc": "Remover archivos del area de staging",
135
+ "restore": "Descartar cambios de archivos",
136
+ "restoreDesc": "Revertir archivos al ultimo commit",
137
+ "whatItDoes": "Que hace esto:",
138
+ "softResetExplain": "Esto deshara tu ultimo commit pero conservara todos tus cambios. Puedes editarlos y hacer commit de nuevo.",
139
+ "hardResetWarning": "Esto eliminara permanentemente tu ultimo commit Y todos los cambios sin commitear. No se puede deshacer!",
140
+ "unstageExplain": "Esto removera los archivos seleccionados del area de staging. Tus cambios permaneceran en el directorio de trabajo.",
141
+ "restoreWarning": "Esto descartara permanentemente todos los cambios en los archivos seleccionados. Tu trabajo se perdera!",
142
+ "noCommits": "No hay commits para deshacer.",
143
+ "lastCommit": "Ultimo commit:",
144
+ "confirmSoftReset": "Deshacer este commit? (los archivos se conservaran)",
145
+ "confirmHardReset": "Estas seguro? Esto ELIMINARA todos los cambios!",
146
+ "confirmHardReset2": "ADVERTENCIA FINAL: Escribe 'yes' para confirmar la eliminacion permanente",
147
+ "softResetSuccess": "Commit deshecho! Tus cambios siguen preparados.",
148
+ "hardResetSuccess": "Commit y todos los cambios han sido eliminados.",
149
+ "filesKept": "Tus archivos siguen preparados. Puedes editarlos y hacer commit de nuevo.",
150
+ "noStagedFiles": "No hay archivos preparados actualmente.",
151
+ "stagedFiles": "Archivos preparados:",
152
+ "selectFilesToUnstage": "Selecciona archivos para quitar de staging:",
153
+ "unstageSuccess": "{{count}} archivo(s) removido(s) del staging exitosamente.",
154
+ "noModifiedFiles": "No hay archivos modificados para restaurar.",
155
+ "modifiedFiles": "Archivos modificados:",
156
+ "selectFilesToRestore": "Selecciona archivos para restaurar:",
157
+ "confirmRestore": "Descartar cambios en {{count}} archivo(s)? No se puede deshacer!",
158
+ "restoreSuccess": "{{count}} archivo(s) restaurado(s) al ultimo commit."
159
+ },
160
+ "history": {
161
+ "title": "Historial de Commits",
162
+ "recentCommits": "Commits recientes:",
163
+ "noCommits": "No hay commits en este repositorio.",
164
+ "viewMore": "Cargar mas commits",
165
+ "selectCommit": "Selecciona un commit para ver detalles:",
166
+ "commitDetails": "Detalles del Commit",
167
+ "commitNotFound": "Commit no encontrado.",
168
+ "changedFiles": "Archivos cambiados en este commit:"
169
+ },
170
+ "stash": {
171
+ "title": "Stash - Guardar Trabajo Temporalmente",
172
+ "selectAction": "Que te gustaria hacer?",
173
+ "save": "Guardar trabajo actual",
174
+ "saveDesc": "Guardar todos los cambios sin commitear",
175
+ "list": "Ver stashes",
176
+ "listDesc": "Ver todos los stashes guardados",
177
+ "apply": "Aplicar un stash",
178
+ "applyDesc": "Restaurar cambios (conservar stash)",
179
+ "pop": "Pop ultimo stash",
180
+ "popDesc": "Restaurar y eliminar ultimo stash",
181
+ "drop": "Eliminar un stash",
182
+ "dropDesc": "Eliminar permanentemente un stash",
183
+ "whatItDoes": "Que hace esto:",
184
+ "saveExplain": "Esto guardara todos tus cambios sin commitear y limpiara tu directorio de trabajo. Puedes restaurarlos despues.",
185
+ "applyExplain": "Esto restaurara el stash seleccionado pero lo mantendra en la lista de stashes.",
186
+ "popExplain": "Esto restaurara el ultimo stash y lo removera de la lista.",
187
+ "dropWarning": "Esto eliminara permanentemente el stash seleccionado. No se puede deshacer!",
188
+ "nothingToStash": "No hay cambios para guardar. Tu directorio de trabajo ya esta limpio.",
189
+ "enterMessage": "Ingresa una descripcion (opcional):",
190
+ "saveSuccess": "Cambios guardados exitosamente!",
191
+ "workingTreeClean": "Tu directorio de trabajo ahora esta limpio.",
192
+ "noStashes": "No hay stashes guardados.",
193
+ "yourStashes": "Tus stashes:",
194
+ "selectStash": "Selecciona un stash para aplicar:",
195
+ "selectStashToDrop": "Selecciona un stash para eliminar:",
196
+ "applySuccess": "Stash aplicado exitosamente!",
197
+ "stashKept": "El stash sigue guardado. Usa 'pop' para aplicar y eliminar.",
198
+ "popSuccess": "Stash aplicado y eliminado!",
199
+ "confirmDrop": "Eliminar este stash? No se puede deshacer!",
200
+ "dropSuccess": "Stash eliminado."
201
+ }
202
+ },
203
+ "time": {
204
+ "justNow": "ahora mismo",
205
+ "minutesAgo": "hace {{count}} min",
206
+ "hoursAgo": "hace {{count}} horas",
207
+ "daysAgo": "hace {{count}} dias",
208
+ "weeksAgo": "hace {{count}} semanas",
209
+ "monthsAgo": "hace {{count}} meses"
210
+ },
211
+ "warnings": {
212
+ "title": "Advertencia",
213
+ "dangerous": "peligroso",
214
+ "uncommittedChanges": "Tienes cambios sin commitear que se perderan!",
215
+ "uncommittedChangesAction": "Commitea o guarda tus cambios antes de continuar.",
216
+ "forcePush": "Forzar subida sobreescribira el historial remoto!",
217
+ "forcePushAction": "Esta accion no se puede deshacer. Asegurate de saber lo que haces.",
218
+ "wrongBranch": "Estas en la rama '{{current}}', no en '{{expected}}'.",
219
+ "wrongBranchAction": "Cambia a la rama correcta antes de continuar.",
220
+ "detachedHead": "Estas en un estado HEAD separado!",
221
+ "detachedHeadAction": "Crea una rama para guardar tu trabajo.",
222
+ "noRemote": "No hay repositorio remoto configurado.",
223
+ "notGitRepo": "Este directorio no es un repositorio Git.",
224
+ "copilotUnavailable": "GitHub Copilot CLI no esta disponible. Algunas funciones pueden estar limitadas."
225
+ },
226
+ "errors": {
227
+ "title": "Error",
228
+ "generic": "Ocurrio un error: {{message}}",
229
+ "gitNotInstalled": "Git no esta instalado o no esta en el PATH.",
230
+ "networkError": "Error de red. Verifica tu conexion.",
231
+ "permissionDenied": "Permiso denegado. Verifica tus credenciales.",
232
+ "invalidInput": "Entrada invalida: {{message}}",
233
+ "branchExists": "La rama '{{branch}}' ya existe.",
234
+ "branchNotFound": "Rama '{{branch}}' no encontrada.",
235
+ "mergeConflict": "Conflicto de fusion en {{file}}.",
236
+ "explainWithAI": "Te gustaria una explicacion IA de este error?",
237
+ "analyzing": "Analizando error...",
238
+ "explanation": "Explicacion",
239
+ "noExplanation": "No se pudo explicar el error",
240
+ "explainFailed": "Fallo al obtener explicacion"
241
+ },
242
+ "success": {
243
+ "title": "Exito",
244
+ "operationComplete": "Operacion completada exitosamente.",
245
+ "saved": "Cambios guardados.",
246
+ "configUpdated": "Configuracion actualizada."
247
+ },
248
+ "setup": {
249
+ "welcome": "Bienvenido a la configuracion de GitCoach!",
250
+ "selectLanguage": "Selecciona tu idioma preferido:",
251
+ "selectTheme": "Selecciona tu tema preferido:",
252
+ "selectLevel": "Cual es tu nivel de experiencia con Git?",
253
+ "complete": "Configuracion completa! Estas listo para usar GitCoach.",
254
+ "tip": "Consejo: Puedes cambiar estos ajustes en cualquier momento en el menu de configuracion.",
255
+ "notGitRepo": "Este directorio no es un repositorio Git.",
256
+ "menuTitle": "Que te gustaria hacer?",
257
+ "init": "Init",
258
+ "initDesc": "Inicializar un nuevo repositorio Git",
259
+ "clone": "Clonar",
260
+ "cloneDesc": "Clonar un repositorio existente",
261
+ "quitDesc": "Salir de GitCoach",
262
+ "initInProgress": "Inicializando repositorio Git...",
263
+ "initSuccess": "Repositorio Git inicializado exitosamente!",
264
+ "addRemoteQuestion": "Te gustaria agregar un origen remoto?",
265
+ "remoteUrlPrompt": "Ingresa la URL remota (GitHub, GitLab, etc.):",
266
+ "remoteUrlRequired": "La URL remota es requerida.",
267
+ "remoteUrlInvalid": "Por favor ingresa una URL de Git valida.",
268
+ "remoteAdded": "Remoto 'origin' agregado: {{url}}",
269
+ "repoReady": "Tu repositorio esta listo! Ya puedes comenzar a trabajar.",
270
+ "cloneUrlPrompt": "Ingresa la URL del repositorio a clonar:",
271
+ "cloneUrlRequired": "La URL del repositorio es requerida.",
272
+ "cloneDirPrompt": "Ingresa el nombre del directorio (deja vacio para usar el predeterminado):",
273
+ "cloneInProgress": "Clonando repositorio...",
274
+ "cloneSuccess": "Repositorio clonado exitosamente en '{{dir}}'!",
275
+ "cloneNextStep": "Ejecuta 'cd {{dir}}' y luego 'gitcoach' para comenzar.",
276
+ "gitignoreQuestion": "Te gustaria crear un archivo .gitignore?",
277
+ "gitignoreType": "Selecciona el tipo de proyecto:",
278
+ "gitignoreNode": "Node.js",
279
+ "gitignorePython": "Python",
280
+ "gitignoreJava": "Java",
281
+ "gitignoreGeneric": "Generico",
282
+ "gitignoreCreated": "Archivo .gitignore creado!",
283
+ "copilotTitle": "GitHub Copilot CLI",
284
+ "copilotDetected": "GitHub Copilot CLI esta instalado y listo!",
285
+ "copilotNotInstalled": "GitHub Copilot CLI no esta instalado.",
286
+ "copilotBenefits": "Copilot CLI habilita funciones de IA:\n• Generar mensajes de commit inteligentes\n• Responder tus preguntas de Git\n• Obtener sugerencias contextuales",
287
+ "copilotInstallQuestion": "Te gustaria instalar GitHub Copilot CLI ahora?",
288
+ "copilotSkipped": "Continuando sin Copilot CLI. Puedes instalarlo mas tarde.",
289
+ "copilotInstalling": "Instalando GitHub Copilot CLI...",
290
+ "copilotInstallSuccess": "GitHub Copilot CLI instalado exitosamente!",
291
+ "copilotInstallNote": "Es posible que necesites autenticarte con 'copilot auth' en el primer uso.",
292
+ "copilotInstallFailed": "Fallo al instalar GitHub Copilot CLI",
293
+ "copilotInstallFailedDetail": "La instalacion automatica fallo. Esto puede deberse a problemas de permisos o de red.",
294
+ "copilotManualInstall": "Para instalar manualmente, ejecuta:\nnpm install -g @githubnext/github-copilot-cli"
295
+ },
296
+ "config": {
297
+ "title": "Configuracion",
298
+ "language": "Idioma",
299
+ "theme": "Tema",
300
+ "experienceLevel": "Nivel de Experiencia",
301
+ "showTips": "Mostrar Consejos",
302
+ "confirmDestructive": "Confirmar Acciones Destructivas",
303
+ "autoCommitMsg": "Auto-generar Mensajes de Commit",
304
+ "defaultBranch": "Rama por Defecto",
305
+ "reset": "Restablecer Valores Predeterminados",
306
+ "resetConfirm": "Restablecer todas las configuraciones?"
307
+ },
308
+ "stats": {
309
+ "title": "Tus Estadisticas",
310
+ "totalCommits": "Total de Commits",
311
+ "errorsPrevented": "Errores Prevenidos",
312
+ "aiCommits": "Commits Generados por IA",
313
+ "timeSaved": "Tiempo Estimado Ahorrado",
314
+ "noData": "Aun no hay estadisticas. Comienza a usar GitCoach!",
315
+ "aiPercentage": "Commits asistidos por IA: {{percentage}}%",
316
+ "mistakesAvoided": "Has evitado {{count}} error(es) potencial(es)!"
317
+ },
318
+ "tips": {
319
+ "beginner": {
320
+ "status": "Usa 'Estado' para ver que archivos han cambiado antes de commitear.",
321
+ "add": "Prepara archivos con 'Agregar' antes de commitear. Preparar es como alistar tus cambios.",
322
+ "commit": "Escribe mensajes claros que expliquen POR QUE hiciste el cambio.",
323
+ "push": "Sube regularmente para respaldar tu trabajo en el servidor remoto.",
324
+ "pull": "Descarga antes de comenzar a trabajar para evitar conflictos de fusion.",
325
+ "branch": "Usa ramas para trabajar en funciones sin afectar el codigo principal."
326
+ },
327
+ "intermediate": {
328
+ "commit": "Usa commits convencionales (feat:, fix:, docs:) para un mejor historial.",
329
+ "rebase": "Considera el rebase para un historial mas limpio antes de fusionar."
330
+ }
331
+ },
332
+ "help": {
333
+ "title": "Ayuda",
334
+ "selectAction": "Que te gustaria hacer?",
335
+ "askQuestion": "Hacer una pregunta sobre Git (IA)",
336
+ "quickHelp": "Referencia rapida",
337
+ "about": "Acerca de GitCoach",
338
+ "askHint": "Haz cualquier pregunta sobre Git en lenguaje natural. Deja vacio para cancelar.",
339
+ "askExamples": "Ejemplos: \"Como deshago mi ultimo commit?\" o \"Que es un rebase?\"",
340
+ "enterQuestion": "Tu pregunta:",
341
+ "questionTooShort": "Por favor ingresa una pregunta mas detallada",
342
+ "thinking": "Pensando...",
343
+ "answer": "Respuesta",
344
+ "noAnswer": "No se pudo obtener una respuesta",
345
+ "errorAsking": "Error al obtener respuesta",
346
+ "copilotUnavailable": "GitHub Copilot CLI no esta disponible. Instalalo para hacer preguntas.",
347
+ "quickRefTitle": "Referencia Rapida",
348
+ "navigation": "Navegacion:",
349
+ "navArrows": "Usa las flechas para navegar en los menus",
350
+ "navEnter": "Presiona Enter para seleccionar",
351
+ "navCtrlC": "Presiona Ctrl+C para salir en cualquier momento",
352
+ "mainCommands": "Comandos Principales:",
353
+ "additionalCommands": "Comandos Adicionales:",
354
+ "tips": "Consejos:",
355
+ "tip1": "GitCoach te advierte antes de operaciones peligrosas",
356
+ "tip2": "La IA puede generar mensajes de commit a partir de tus cambios",
357
+ "tip3": "Cambia el nivel de experiencia en configuracion para mas/menos guia",
358
+ "aboutDesc": "GitCoach es una herramienta CLI interactiva que ayuda a los desarrolladores a dominar Git",
359
+ "aboutDesc2": "a traves de menus guiados, sugerencias inteligentes y prevencion de errores en tiempo real.",
360
+ "features": "Caracteristicas:",
361
+ "feature1": "Menus interactivos para todas las operaciones Git",
362
+ "feature2": "Mensajes de commit generados por IA con Copilot CLI",
363
+ "feature3": "Prevencion de errores y advertencias",
364
+ "feature4": "Soporte multilingue (EN, FR, ES)",
365
+ "feature5": "Modos Principiante, Intermedio y Experto"
366
+ },
367
+ "prompts": {
368
+ "confirm": "Estas seguro?",
369
+ "yes": "Si",
370
+ "no": "No",
371
+ "yesKey": "S",
372
+ "noKey": "n",
373
+ "cancel": "Cancelar",
374
+ "continue": "Continuar",
375
+ "pressEnter": "Presiona Enter para continuar...",
376
+ "select": "Selecciona una opcion",
377
+ "enterValue": "Ingresa un valor"
378
+ },
379
+ "detachedHead": {
380
+ "title": "HEAD Separado",
381
+ "explanation": "Estas en un estado HEAD separado.\n\nEsto significa que no estas en ninguna rama. Tus commits pueden perderse si cambias de rama.\n\nEsto suele ocurrir despues de un rebase interrumpido o al hacer checkout de un commit especifico.",
382
+ "selectAction": "Que te gustaria hacer?",
383
+ "createBranch": "Crear una nueva rama",
384
+ "returnToMain": "Volver a la rama principal",
385
+ "stashAndReturn": "Guardar cambios y volver",
386
+ "ignore": "Ignorar y continuar",
387
+ "enterBranchName": "Nombre de la nueva rama:",
388
+ "branchCreated": "Rama '{{branch}}' creada! Tus commits ahora estan seguros.",
389
+ "returnedToMain": "Volviste a {{branch}}.",
390
+ "stashedAndReturned": "Cambios guardados y volviste a {{branch}}.",
391
+ "commandExecuted": "Comando ejecutado: {{command}}"
392
+ }
393
+ }