@djangocfg/i18n 2.1.567 → 2.1.570

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.
package/src/locales/es.ts CHANGED
@@ -6,569 +6,526 @@ import type { I18nTranslations } from '../types'
6
6
  export const es: I18nTranslations = {
7
7
  ui: {
8
8
  select: {
9
- placeholder: 'Seleccionar opción...',
10
- search: 'Buscar...',
11
- noResults: 'No se encontraron resultados.',
12
- selectAll: 'Seleccionar todo',
13
- clearAll: 'Limpiar todo',
14
- moreItems: '+{count} más',
15
- loading: 'Cargando...',
9
+ placeholder: "Seleccionar opción...",
10
+ search: "Buscar...",
11
+ noResults: "No se encontraron resultados.",
12
+ selectAll: "Seleccionar todo",
13
+ clearAll: "Limpiar todo",
14
+ moreItems: "+{count} más",
15
+ loading: "Cargando...",
16
16
  },
17
-
18
17
  pagination: {
19
- previous: 'Anterior',
20
- next: 'Siguiente',
21
- first: 'Primera',
22
- last: 'Última',
23
- page: 'Página {page}',
24
- of: 'de {total}',
25
- showing: '{from}-{to} de {total}',
18
+ previous: "Anterior",
19
+ next: "Siguiente",
20
+ first: "Primera",
21
+ last: "Última",
22
+ page: "Página {page}",
23
+ of: "de {total}",
24
+ showing: "{from}-{to} de {total}",
26
25
  },
27
-
28
26
  dialog: {
29
- close: 'Cerrar',
30
- confirm: 'Confirmar',
31
- cancel: 'Cancelar',
32
- ok: 'OK',
33
- yes: 'Sí',
34
- no: 'No',
35
- delete: 'Eliminar',
36
- save: 'Guardar',
37
- discard: 'Descartar',
38
- alertTitle: 'Aviso',
39
- confirmTitle: 'Confirmar',
40
- confirmDelete: '¿Estás seguro de que quieres eliminar esto?',
41
- promptTitle: 'Entrada requerida',
42
- promptPlaceholder: 'Ingresa un valor...',
27
+ close: "Cerrar",
28
+ confirm: "Confirmar",
29
+ cancel: "Cancelar",
30
+ ok: "OK",
31
+ yes: "Sí",
32
+ no: "No",
33
+ delete: "Eliminar",
34
+ save: "Guardar",
35
+ discard: "Descartar",
36
+ alertTitle: "Aviso",
37
+ confirmTitle: "Confirmar",
38
+ confirmDelete: "¿Estás seguro de que quieres eliminar esto?",
39
+ promptTitle: "Entrada requerida",
40
+ promptPlaceholder: "Ingresa un valor...",
43
41
  },
44
-
45
42
  form: {
46
- submit: 'Enviar',
47
- cancel: 'Cancelar',
48
- save: 'Guardar',
49
- delete: 'Eliminar',
50
- edit: 'Editar',
51
- create: 'Crear',
52
- update: 'Actualizar',
53
- reset: 'Restablecer',
54
- clear: 'Limpiar',
55
- loading: 'Cargando...',
56
- saving: 'Guardando...',
57
- deleting: 'Eliminando...',
58
- required: 'Este campo es obligatorio',
59
- optional: 'Opcional',
60
- minLength: 'Mínimo {min} caracteres',
61
- maxLength: 'Máximo {max} caracteres',
62
- invalidEmail: 'Por favor ingresa un correo electrónico válido',
63
- invalidUrl: 'Por favor ingresa una URL válida',
64
- invalidPhone: 'Por favor ingresa un número de teléfono válido',
65
- passwordMismatch: 'Las contraseñas no coinciden',
43
+ submit: "Enviar",
44
+ cancel: "Cancelar",
45
+ save: "Guardar",
46
+ delete: "Eliminar",
47
+ edit: "Editar",
48
+ create: "Crear",
49
+ update: "Actualizar",
50
+ reset: "Restablecer",
51
+ clear: "Limpiar",
52
+ loading: "Cargando...",
53
+ saving: "Guardando...",
54
+ deleting: "Eliminando...",
55
+ required: "Este campo es obligatorio",
56
+ optional: "Opcional",
57
+ minLength: "Mínimo {min} caracteres",
58
+ maxLength: "Máximo {max} caracteres",
59
+ invalidEmail: "Por favor ingresa un correo electrónico válido",
60
+ invalidUrl: "Por favor ingresa una URL válida",
61
+ invalidPhone: "Por favor ingresa un número de teléfono válido",
62
+ passwordMismatch: "Las contraseñas no coinciden",
66
63
  },
67
-
68
64
  datetime: {
69
- today: 'Hoy',
70
- yesterday: 'Ayer',
71
- tomorrow: 'Mañana',
72
- now: 'Ahora mismo',
73
- secondsAgo: 'Hace {count} segundos',
74
- minutesAgo: 'Hace {count} minutos',
75
- hoursAgo: 'Hace {count} horas',
76
- daysAgo: 'Hace {count} días',
77
- pickDate: 'Seleccionar fecha',
78
- pickTime: 'Seleccionar hora',
79
- pickDateTime: 'Seleccionar fecha y hora',
80
- pickDateRange: 'Seleccionar rango de fechas',
65
+ today: "Hoy",
66
+ yesterday: "Ayer",
67
+ tomorrow: "Mañana",
68
+ now: "Ahora mismo",
69
+ secondsAgo: "Hace {count} segundos",
70
+ minutesAgo: "Hace {count} minutos",
71
+ hoursAgo: "Hace {count} horas",
72
+ daysAgo: "Hace {count} días",
73
+ pickDate: "Seleccionar fecha",
74
+ pickTime: "Seleccionar hora",
75
+ pickDateTime: "Seleccionar fecha y hora",
76
+ pickDateRange: "Seleccionar rango de fechas",
81
77
  },
82
-
83
78
  file: {
84
- upload: 'Subir',
85
- uploading: 'Subiendo...',
86
- dragDrop: 'Arrastra y suelta archivos aquí',
87
- browse: 'Explorar archivos',
88
- remove: 'Eliminar',
89
- maxSize: 'Tamaño máximo: {size}',
90
- invalidType: 'Tipo de archivo inválido',
91
- tooLarge: 'El archivo es demasiado grande',
79
+ upload: "Subir",
80
+ uploading: "Subiendo...",
81
+ dragDrop: "Arrastra y suelta archivos aquí",
82
+ browse: "Explorar archivos",
83
+ remove: "Eliminar",
84
+ maxSize: "Tamaño máximo: {size}",
85
+ invalidType: "Tipo de archivo inválido",
86
+ tooLarge: "El archivo es demasiado grande",
92
87
  },
93
-
94
88
  table: {
95
- noData: 'No hay datos disponibles',
96
- loading: 'Cargando datos...',
97
- showing: '{from}-{to} de {total}',
98
- rowsPerPage: 'Filas por página',
99
- sortAsc: 'Ordenar ascendente',
100
- sortDesc: 'Ordenar descendente',
101
- filter: 'Filtrar',
102
- clearFilters: 'Limpiar filtros',
103
- selectAll: 'Seleccionar todo',
104
- deselectAll: 'Deseleccionar todo',
105
- selected: '{count} seleccionados',
89
+ noData: "No hay datos disponibles",
90
+ loading: "Cargando datos...",
91
+ showing: "{from}-{to} de {total}",
92
+ rowsPerPage: "Filas por página",
93
+ sortAsc: "Ordenar ascendente",
94
+ sortDesc: "Ordenar descendente",
95
+ filter: "Filtrar",
96
+ clearFilters: "Limpiar filtros",
97
+ selectAll: "Seleccionar todo",
98
+ deselectAll: "Deseleccionar todo",
99
+ selected: "{count} seleccionados",
106
100
  },
107
-
108
101
  actions: {
109
- view: 'Ver',
110
- copy: 'Copiar',
111
- copied: '¡Copiado!',
112
- copyToClipboard: 'Copiar al portapapeles',
113
- download: 'Descargar',
114
- share: 'Compartir',
115
- refresh: 'Actualizar',
116
- retry: 'Reintentar',
117
- expand: 'Expandir',
118
- collapse: 'Contraer',
119
- showMore: 'Mostrar más',
120
- showLess: 'Mostrar menos',
121
- seeAll: 'Ver todo',
122
- goBack: 'Volver',
123
- remove: 'Eliminar',
124
- previousSlide: 'Diapositiva anterior',
125
- nextSlide: 'Diapositiva siguiente',
102
+ view: "Ver",
103
+ copy: "Copiar",
104
+ copied: "¡Copiado!",
105
+ copyToClipboard: "Copiar al portapapeles",
106
+ download: "Descargar",
107
+ share: "Compartir",
108
+ refresh: "Actualizar",
109
+ retry: "Reintentar",
110
+ expand: "Expandir",
111
+ collapse: "Contraer",
112
+ showMore: "Mostrar más",
113
+ showLess: "Mostrar menos",
114
+ seeAll: "Ver todo",
115
+ goBack: "Volver",
116
+ remove: "Eliminar",
117
+ previousSlide: "Diapositiva anterior",
118
+ nextSlide: "Diapositiva siguiente",
126
119
  },
127
-
128
120
  phone: {
129
- searchCountries: 'Buscar países...',
130
- noCountries: 'No se encontraron países',
121
+ searchCountries: "Buscar países...",
122
+ noCountries: "No se encontraron países",
131
123
  },
132
-
133
124
  navigation: {
134
- title: 'Navegación',
125
+ title: "Navegación",
135
126
  },
136
-
137
127
  states: {
138
- loading: 'Cargando',
139
- empty: 'Vacío',
140
- error: 'Error',
141
- success: 'Éxito',
142
- warning: 'Advertencia',
143
- info: 'Información',
144
- pending: 'Pendiente',
145
- active: 'Activo',
146
- inactive: 'Inactivo',
147
- enabled: 'Habilitado',
148
- disabled: 'Deshabilitado',
128
+ loading: "Cargando",
129
+ empty: "Vacío",
130
+ error: "Error",
131
+ success: "Éxito",
132
+ warning: "Advertencia",
133
+ info: "Información",
134
+ pending: "Pendiente",
135
+ active: "Activo",
136
+ inactive: "Inactivo",
137
+ enabled: "Habilitado",
138
+ disabled: "Deshabilitado",
149
139
  },
150
-
151
140
  errors: {
152
- generic: 'Algo salió mal',
153
- network: 'Error de red. Por favor verifica tu conexión.',
154
- timeout: 'Tiempo de espera agotado. Por favor intenta de nuevo.',
155
- notFound: 'No encontrado',
156
- unauthorized: 'Por favor inicia sesión para continuar',
157
- forbidden: 'No tienes permiso para acceder a esto',
158
- serverError: 'Error del servidor. Por favor intenta más tarde.',
159
- validation: 'Por favor revisa el formulario para errores',
160
- unknown: 'Ocurrió un error desconocido',
141
+ generic: "Algo salió mal",
142
+ network: "Error de red. Por favor verifica tu conexión.",
143
+ timeout: "Tiempo de espera agotado. Por favor intenta de nuevo.",
144
+ notFound: "No encontrado",
145
+ unauthorized: "Por favor inicia sesión para continuar",
146
+ forbidden: "No tienes permiso para acceder a esto",
147
+ serverError: "Error del servidor. Por favor intenta más tarde.",
148
+ validation: "Por favor revisa el formulario para errores",
149
+ unknown: "Ocurrió un error desconocido",
161
150
  },
162
151
  },
163
-
164
152
  layouts: {
165
153
  sidebar: {
166
- toggle: 'Alternar barra lateral',
167
- collapse: 'Contraer barra lateral',
168
- expand: 'Expandir barra lateral',
154
+ toggle: "Alternar barra lateral",
155
+ collapse: "Contraer barra lateral",
156
+ expand: "Expandir barra lateral",
169
157
  },
170
-
171
158
  navigation: {
172
- menu: 'Menú',
173
- home: 'Inicio',
174
- back: 'Atrás',
175
- forward: 'Adelante',
176
- toggleMobile: 'Alternar menú móvil',
177
- breadcrumb: 'Migas de pan',
159
+ menu: "Menú",
160
+ home: "Inicio",
161
+ back: "Atrás",
162
+ forward: "Adelante",
163
+ toggleMobile: "Alternar menú móvil",
164
+ breadcrumb: "Migas de pan",
178
165
  },
179
-
180
166
  profile: {
181
- settings: 'Configuración',
182
- account: 'Cuenta',
183
- logout: 'Cerrar sesión',
184
- login: 'Iniciar sesión',
185
- signUp: 'Registrarse',
186
- signOut: 'Cerrar sesión',
187
- userMenu: 'Menú de usuario',
188
- language: 'Idioma',
167
+ settings: "Configuración",
168
+ account: "Cuenta",
169
+ logout: "Cerrar sesión",
170
+ login: "Iniciar sesión",
171
+ signUp: "Registrarse",
172
+ signOut: "Cerrar sesión",
173
+ userMenu: "Menú de usuario",
174
+ language: "Idioma",
189
175
  },
190
-
191
176
  theme: {
192
- toggle: 'Cambiar tema',
193
- light: 'Claro',
194
- dark: 'Oscuro',
195
- system: 'Sistema',
177
+ toggle: "Cambiar tema",
178
+ light: "Claro",
179
+ dark: "Oscuro",
180
+ system: "Sistema",
196
181
  },
197
-
198
182
  search: {
199
- placeholder: 'Buscar...',
200
- noResults: 'No se encontraron resultados',
201
- recentSearches: 'Búsquedas recientes',
202
- clearHistory: 'Limpiar historial',
183
+ placeholder: "Buscar...",
184
+ noResults: "No se encontraron resultados",
185
+ recentSearches: "Búsquedas recientes",
186
+ clearHistory: "Limpiar historial",
203
187
  },
204
-
205
188
  mobile: {
206
- closeMenu: 'Cerrar menú',
189
+ closeMenu: "Cerrar menú",
207
190
  },
208
-
209
191
  errors: {
210
- somethingWentWrong: 'Algo salió mal',
211
- tryRefreshing: 'Lo sentimos, pero algo inesperado ocurrió. Por favor intenta actualizar la página.',
212
- refreshPage: 'Actualizar página',
213
- goBack: 'Volver',
214
- goHome: 'Ir al inicio',
215
- needHelp: '¿Necesitas ayuda?',
216
- contactSupport: 'Contactar soporte',
217
- checkStatus: 'Ver estado del servicio',
218
- persistsContact: 'Si el problema persiste, por favor contacta a {email}',
219
- error: 'Error',
220
- badRequest: 'Solicitud incorrecta',
221
- authRequired: 'Autenticación requerida',
222
- accessDenied: 'Acceso denegado',
223
- pageNotFound: 'Página no encontrada',
224
- requestTimeout: 'Tiempo de espera agotado',
225
- serverError: 'Error del servidor',
226
- badGateway: 'Puerta de enlace incorrecta',
227
- serviceUnavailable: 'Servicio no disponible',
228
- gatewayTimeout: 'Tiempo de espera de puerta de enlace',
229
- badRequestDesc: 'La solicitud no pudo ser entendida. Por favor verifica tus datos e intenta de nuevo.',
230
- authRequiredDesc: 'Necesitas iniciar sesión para acceder a esta página.',
231
- accessDeniedDesc: 'No tienes permiso para acceder a este recurso.',
232
- pageNotFoundDesc: 'La página que buscas no existe o ha sido movida.',
233
- requestTimeoutDesc: 'La solicitud tardó demasiado en procesarse. Por favor intenta de nuevo.',
234
- serverErrorDesc: 'Algo salió mal de nuestro lado. Estamos trabajando para solucionarlo.',
235
- badGatewayDesc: 'El servidor recibió una respuesta inválida. Por favor intenta más tarde.',
236
- serviceUnavailableDesc: 'El servicio no está disponible temporalmente. Por favor intenta más tarde.',
237
- gatewayTimeoutDesc: 'El servidor tardó demasiado en responder. Por favor intenta de nuevo.',
238
- unknownErrorDesc: 'Ocurrió un error inesperado. Por favor intenta de nuevo o contacta a soporte.',
192
+ somethingWentWrong: "Algo salió mal",
193
+ tryRefreshing: "Lo sentimos, pero algo inesperado ocurrió. Por favor intenta actualizar la página.",
194
+ refreshPage: "Actualizar página",
195
+ goBack: "Volver",
196
+ goHome: "Ir al inicio",
197
+ needHelp: "¿Necesitas ayuda?",
198
+ contactSupport: "Contactar soporte",
199
+ checkStatus: "Ver estado del servicio",
200
+ persistsContact: "Si el problema persiste, por favor contacta a {email}",
201
+ error: "Error",
202
+ badRequest: "Solicitud incorrecta",
203
+ authRequired: "Autenticación requerida",
204
+ accessDenied: "Acceso denegado",
205
+ pageNotFound: "Página no encontrada",
206
+ requestTimeout: "Tiempo de espera agotado",
207
+ serverError: "Error del servidor",
208
+ badGateway: "Puerta de enlace incorrecta",
209
+ serviceUnavailable: "Servicio no disponible",
210
+ gatewayTimeout: "Tiempo de espera de puerta de enlace",
211
+ badRequestDesc: "La solicitud no pudo ser entendida. Por favor verifica tus datos e intenta de nuevo.",
212
+ authRequiredDesc: "Necesitas iniciar sesión para acceder a esta página.",
213
+ accessDeniedDesc: "No tienes permiso para acceder a este recurso.",
214
+ pageNotFoundDesc: "La página que buscas no existe o ha sido movida.",
215
+ requestTimeoutDesc: "La solicitud tardó demasiado en procesarse. Por favor intenta de nuevo.",
216
+ serverErrorDesc: "Algo salió mal de nuestro lado. Estamos trabajando para solucionarlo.",
217
+ badGatewayDesc: "El servidor recibió una respuesta inválida. Por favor intenta más tarde.",
218
+ serviceUnavailableDesc: "El servicio no está disponible temporalmente. Por favor intenta más tarde.",
219
+ gatewayTimeoutDesc: "El servidor tardó demasiado en responder. Por favor intenta de nuevo.",
220
+ unknownErrorDesc: "Ocurrió un error inesperado. Por favor intenta de nuevo o contacta a soporte.",
239
221
  },
240
-
241
222
  push: {
242
- enableNotifications: 'Habilitar notificaciones',
243
- stayUpdated: 'Mantente al día con actualizaciones y alertas importantes',
244
- enable: 'Habilitar',
245
- notNow: 'Ahora no',
246
- dismiss: 'Descartar',
223
+ enableNotifications: "Habilitar notificaciones",
224
+ stayUpdated: "Mantente al día con actualizaciones y alertas importantes",
225
+ enable: "Habilitar",
226
+ notNow: "Ahora no",
227
+ dismiss: "Descartar",
247
228
  },
248
-
249
229
  auth: {
250
- authRequired: 'Autenticación requerida',
251
- pleaseSignIn: 'Por favor inicia sesión para continuar',
252
- goToSignIn: 'Ir a iniciar sesión',
253
-
230
+ authRequired: "Autenticación requerida",
231
+ pleaseSignIn: "Por favor inicia sesión para continuar",
232
+ goToSignIn: "Ir a iniciar sesión",
254
233
  identifier: {
255
- title: 'Iniciar sesión',
234
+ title: "Iniciar sesión",
256
235
  subtitle: {
257
- email: 'Ingresa tu correo electrónico para continuar',
258
- phone: 'Ingresa tu número de teléfono para continuar',
236
+ email: "Ingresa tu correo electrónico para continuar",
237
+ phone: "Ingresa tu número de teléfono para continuar",
259
238
  },
260
239
  placeholder: {
261
- email: 'correo@ejemplo.com',
262
- phone: 'Ingresa tu número de teléfono',
240
+ email: "correo@ejemplo.com",
241
+ phone: "Ingresa tu número de teléfono",
263
242
  },
264
- button: 'Continuar',
243
+ button: "Continuar",
265
244
  oauth: {
266
- github: 'Continuar con GitHub',
245
+ github: "Continuar con GitHub",
267
246
  },
268
247
  channel: {
269
- email: 'Correo electrónico',
270
- phone: 'Teléfono',
248
+ email: "Correo electrónico",
249
+ phone: "Teléfono",
271
250
  },
272
251
  },
273
-
274
252
  otp: {
275
- title: 'Ingresa el código',
276
- subtitle: 'Enviamos un código a',
277
- button: 'Verificar',
278
- resend: 'Reenviar código',
279
- changeEmail: 'Cambiar correo',
280
- changePhone: 'Cambiar teléfono',
281
- openMailbox: 'Abrir {provider}',
253
+ title: "Ingresa el código",
254
+ subtitle: "Enviamos un código a",
255
+ button: "Verificar",
256
+ resend: "Reenviar código",
257
+ changeEmail: "Cambiar correo",
258
+ changePhone: "Cambiar teléfono",
259
+ openMailbox: "Abrir {provider}",
282
260
  },
283
-
284
261
  twoFactor: {
285
- title: 'Autenticación de dos factores',
262
+ title: "Autenticación de dos factores",
286
263
  subtitle: {
287
- totp: 'Ingresa el código de 6 dígitos de tu app de autenticación',
288
- backup: 'Ingresa uno de tus códigos de respaldo',
264
+ totp: "Ingresa el código de 6 dígitos de tu app de autenticación",
265
+ backup: "Ingresa uno de tus códigos de respaldo",
289
266
  },
290
267
  placeholder: {
291
- backup: 'XXXXXXXX',
268
+ backup: "XXXXXXXX",
292
269
  },
293
- button: 'Verificar',
270
+ button: "Verificar",
294
271
  toggle: {
295
- toBackup: 'Usar código de respaldo',
296
- toTotp: 'Usar app de autenticación',
272
+ toBackup: "Usar código de respaldo",
273
+ toTotp: "Usar app de autenticación",
297
274
  },
298
275
  },
299
-
300
276
  setup: {
301
277
  loading: {
302
- title: 'Configurando...',
303
- button: 'Cargando',
278
+ title: "Configurando...",
279
+ button: "Cargando",
304
280
  },
305
281
  qrCode: {
306
- title: 'Configurar 2FA',
307
- subtitle: 'Escanea este código QR con tu app de autenticación',
308
- manualEntry: '¿No puedes escanear? Ingresa manualmente',
309
- confirmPrompt: 'Ingresa el código de 6 dígitos para confirmar',
310
- button: 'Habilitar 2FA',
311
- skip: 'Omitir por ahora',
282
+ title: "Configurar 2FA",
283
+ subtitle: "Escanea este código QR con tu app de autenticación",
284
+ manualEntry: "¿No puedes escanear? Ingresa manualmente",
285
+ confirmPrompt: "Ingresa el código de 6 dígitos para confirmar",
286
+ button: "Habilitar 2FA",
287
+ skip: "Omitir por ahora",
312
288
  },
313
289
  complete: {
314
- title: '2FA habilitado',
315
- subtitle: 'Guarda estos códigos de respaldo de forma segura',
316
- instruction: 'Cada código solo puede usarse una vez',
317
- copyAll: 'Copiar todos los códigos',
318
- copied: 'Copiado',
319
- done: 'Listo',
290
+ title: "2FA habilitado",
291
+ subtitle: "Guarda estos códigos de respaldo de forma segura",
292
+ instruction: "Cada código solo puede usarse una vez",
293
+ copyAll: "Copiar todos los códigos",
294
+ copied: "Copiado",
295
+ done: "Listo",
320
296
  },
321
297
  },
322
-
323
298
  success: {
324
- message: 'Sesión iniciada exitosamente',
299
+ message: "Sesión iniciada exitosamente",
300
+ redirecting: "Redirigiendo…",
325
301
  },
326
-
327
302
  divider: {
328
- or: 'o',
303
+ or: "o",
329
304
  },
330
305
  footer: {
331
- terms: 'Términos',
332
- privacy: 'Privacidad',
333
- support: 'Soporte',
306
+ terms: "Términos",
307
+ privacy: "Privacidad",
308
+ support: "Soporte",
334
309
  },
335
-
336
310
  dev: {
337
- anyCodeWorks: 'Modo Dev: Cualquier código funciona',
311
+ anyCodeWorks: "Modo Dev: Cualquier código funciona",
338
312
  },
339
313
  },
340
-
341
314
  chat: {
342
- aiAssistant: 'Asistente de IA',
343
- defaultTitle: 'Chat de IA',
344
- newChat: 'Nueva conversación',
345
- closeChat: 'Cerrar chat',
346
- switchToFloating: 'Cambiar a modo flotante',
347
- switchToSidebar: 'Cambiar a modo barra lateral',
348
- dragToResize: 'Arrastra para redimensionar',
349
- howCanIHelp: '¿Cómo puedo ayudarte?',
315
+ aiAssistant: "Asistente de IA",
316
+ defaultTitle: "Chat de IA",
317
+ newChat: "Nueva conversación",
318
+ closeChat: "Cerrar chat",
319
+ switchToFloating: "Cambiar a modo flotante",
320
+ switchToSidebar: "Cambiar a modo barra lateral",
321
+ dragToResize: "Arrastra para redimensionar",
322
+ howCanIHelp: "¿Cómo puedo ayudarte?",
350
323
  },
351
-
352
324
  pwa: {
353
- addToHomeScreen: 'Agregar a pantalla de inicio',
354
- installApp: 'Instalar aplicación',
355
- tapToLearnHow: 'Toca para aprender cómo',
356
- clickToSeeGuide: 'Haz clic para ver la guía de escritorio',
357
- tapToInstall: 'Toca para instalar',
358
- installing: 'Instalando...',
359
- dismiss: 'Descartar',
360
- appLogo: 'Logo de la aplicación',
361
- iosTitle: 'Agregar a pantalla de inicio',
362
- iosDescription: 'Instala esta app en tu iPhone para acceso rápido y una mejor experiencia',
363
- iosStep1Title: 'Toca Compartir',
364
- iosStep1Desc: 'En la parte inferior de Safari',
365
- iosStep2Title: 'Desplázate y toca',
366
- iosStep2Desc: '"Agregar a pantalla de inicio"',
367
- iosStep3Title: 'Confirmar',
368
- iosStep3Desc: 'Toca "Agregar" en la esquina superior derecha',
369
- gotIt: 'Entendido',
370
- desktopTitle: 'Instalar app en escritorio',
371
- desktopDescription: 'Instala esta app en {browser} para acceso rápido desde tu escritorio',
372
- desktopDescSafari: 'Safari en macOS tiene soporte limitado de PWA. Para la mejor experiencia, usa Chrome, Edge o Brave.',
373
- desktopTip: 'También puedes hacer clic derecho en la página y buscar la opción "Instalar" en {browser}',
374
- desktopFirefoxNote: 'Firefox tiene soporte limitado de PWA. Algunas funciones pueden no funcionar como se espera.',
375
- chromiumStep1Title: 'Encuentra el ícono de instalación',
376
- chromiumStep1Desc: 'Busca el ícono de instalación en la barra de direcciones (lado derecho)',
377
- chromiumStep2Title: 'Haz clic en Instalar',
378
- chromiumStep2Desc: 'Haz clic en el ícono y selecciona "Instalar"',
379
- chromiumStep3Title: 'Confirmar',
380
- chromiumStep3Desc: 'Haz clic en "Instalar" en el diálogo emergente',
381
- firefoxStep1Title: 'Abrir menú',
382
- firefoxStep1Desc: 'Haz clic en el botón de menú (tres líneas)',
383
- firefoxStep2Title: 'Encuentra la opción de instalación',
384
- firefoxStep2Desc: 'Busca "Instalar" o "Agregar a pantalla de inicio"',
385
- firefoxStep3Title: 'Confirmar',
386
- firefoxStep3Desc: 'Sigue las instrucciones de instalación',
387
- safariStep1Title: 'Soporte limitado',
388
- safariStep1Desc: 'Safari en macOS tiene soporte limitado de PWA',
389
- safariStep2Title: 'Usa un navegador Chromium',
390
- safariStep2Desc: 'Considera usar Chrome, Edge o Brave para la experiencia completa de PWA',
391
- unknownStep1Title: 'Revisa la barra de direcciones',
392
- unknownStep1Desc: 'Busca un ícono de instalación o descarga',
393
- unknownStep2Title: 'O usa el menú',
394
- unknownStep2Desc: 'Revisa el menú del navegador para la opción de instalación',
395
- unknownStep3Title: 'Confirmar',
396
- unknownStep3Desc: 'Sigue las instrucciones de instalación',
397
- close: 'Cerrar',
325
+ addToHomeScreen: "Agregar a pantalla de inicio",
326
+ installApp: "Instalar aplicación",
327
+ tapToLearnHow: "Toca para aprender cómo",
328
+ clickToSeeGuide: "Haz clic para ver la guía de escritorio",
329
+ tapToInstall: "Toca para instalar",
330
+ installing: "Instalando...",
331
+ dismiss: "Descartar",
332
+ appLogo: "Logo de la aplicación",
333
+ iosTitle: "Agregar a pantalla de inicio",
334
+ iosDescription: "Instala esta app en tu iPhone para acceso rápido y una mejor experiencia",
335
+ iosStep1Title: "Toca Compartir",
336
+ iosStep1Desc: "En la parte inferior de Safari",
337
+ iosStep2Title: "Desplázate y toca",
338
+ iosStep2Desc: "\"Agregar a pantalla de inicio\"",
339
+ iosStep3Title: "Confirmar",
340
+ iosStep3Desc: "Toca \"Agregar\" en la esquina superior derecha",
341
+ gotIt: "Entendido",
342
+ desktopTitle: "Instalar app en escritorio",
343
+ desktopDescription: "Instala esta app en {browser} para acceso rápido desde tu escritorio",
344
+ desktopDescSafari: "Safari en macOS tiene soporte limitado de PWA. Para la mejor experiencia, usa Chrome, Edge o Brave.",
345
+ desktopTip: "También puedes hacer clic derecho en la página y buscar la opción \"Instalar\" en {browser}",
346
+ desktopFirefoxNote: "Firefox tiene soporte limitado de PWA. Algunas funciones pueden no funcionar como se espera.",
347
+ chromiumStep1Title: "Encuentra el ícono de instalación",
348
+ chromiumStep1Desc: "Busca el ícono de instalación en la barra de direcciones (lado derecho)",
349
+ chromiumStep2Title: "Haz clic en Instalar",
350
+ chromiumStep2Desc: "Haz clic en el ícono y selecciona \"Instalar\"",
351
+ chromiumStep3Title: "Confirmar",
352
+ chromiumStep3Desc: "Haz clic en \"Instalar\" en el diálogo emergente",
353
+ firefoxStep1Title: "Abrir menú",
354
+ firefoxStep1Desc: "Haz clic en el botón de menú (tres líneas)",
355
+ firefoxStep2Title: "Encuentra la opción de instalación",
356
+ firefoxStep2Desc: "Busca \"Instalar\" o \"Agregar a pantalla de inicio\"",
357
+ firefoxStep3Title: "Confirmar",
358
+ firefoxStep3Desc: "Sigue las instrucciones de instalación",
359
+ safariStep1Title: "Soporte limitado",
360
+ safariStep1Desc: "Safari en macOS tiene soporte limitado de PWA",
361
+ safariStep2Title: "Usa un navegador Chromium",
362
+ safariStep2Desc: "Considera usar Chrome, Edge o Brave para la experiencia completa de PWA",
363
+ unknownStep1Title: "Revisa la barra de direcciones",
364
+ unknownStep1Desc: "Busca un ícono de instalación o descarga",
365
+ unknownStep2Title: "O usa el menú",
366
+ unknownStep2Desc: "Revisa el menú del navegador para la opción de instalación",
367
+ unknownStep3Title: "Confirmar",
368
+ unknownStep3Desc: "Sigue las instrucciones de instalación",
369
+ close: "Cerrar",
398
370
  },
399
-
400
371
  profilePage: {
401
- title: 'Perfil',
402
- account: 'Cuenta',
403
- personalInfo: 'Información personal',
404
- work: 'Trabajo',
405
- security: 'Seguridad',
406
- actions: 'Acciones',
407
- email: 'Correo electrónico',
408
- firstName: 'Nombre',
409
- lastName: 'Apellido',
410
- company: 'Empresa',
411
- position: 'Cargo',
412
- phone: 'Teléfono',
413
- notSet: 'No configurado',
414
- addFirstName: 'Agregar nombre',
415
- addLastName: 'Agregar apellido',
416
- addPhone: 'Agregar número de teléfono',
417
- addCompany: 'Agregar empresa',
418
- addPosition: 'Agregar cargo',
419
- on: 'Activado',
420
- off: 'Desactivado',
421
- save: 'Guardar',
422
- saving: 'Guardando...',
423
- cancel: 'Cancelar',
424
- signOut: 'Cerrar sesión',
425
- deleteAccount: 'Eliminar cuenta',
426
- deleting: 'Eliminando...',
427
- twoFactorAuth: 'Autenticación de dos factores',
428
- twoFactorEnabled: 'La autenticación de dos factores está habilitada',
429
- twoFactorDisabled: 'Agrega una capa extra de seguridad',
430
- enable2FA: 'Habilitar',
431
- avatar: 'Avatar',
432
- changeAvatar: 'Cambiar avatar',
433
- memberSince: 'Miembro desde {date}',
434
- enterField: 'Ingresa {field}',
435
- profileUpdated: 'Perfil actualizado',
436
- avatarUpdated: 'Avatar actualizado',
437
- failedToUpdate: 'Error al actualizar',
438
- failedToUploadAvatar: 'Error al subir avatar',
439
- selectImageFile: 'Por favor selecciona un archivo de imagen',
440
- fileTooLarge: 'El tamaño del archivo debe ser menor a 5MB',
441
- notAuthenticated: 'No autenticado',
442
- pleaseLogIn: 'Por favor inicia sesión para ver tu perfil.',
443
- deleteAccountTitle: 'Eliminar cuenta',
444
- deleteAccountDesc: 'Esta acción no se puede deshacer. Tu cuenta será eliminada permanentemente.',
445
- typeToConfirm: 'Escribe {word} para confirmar:',
446
- confirmationWord: 'DELETE',
372
+ title: "Perfil",
373
+ account: "Cuenta",
374
+ personalInfo: "Información personal",
375
+ work: "Trabajo",
376
+ security: "Seguridad",
377
+ actions: "Acciones",
378
+ email: "Correo electrónico",
379
+ firstName: "Nombre",
380
+ lastName: "Apellido",
381
+ company: "Empresa",
382
+ position: "Cargo",
383
+ phone: "Teléfono",
384
+ notSet: "No configurado",
385
+ addFirstName: "Agregar nombre",
386
+ addLastName: "Agregar apellido",
387
+ addPhone: "Agregar número de teléfono",
388
+ addCompany: "Agregar empresa",
389
+ addPosition: "Agregar cargo",
390
+ on: "Activado",
391
+ off: "Desactivado",
392
+ save: "Guardar",
393
+ saving: "Guardando...",
394
+ cancel: "Cancelar",
395
+ signOut: "Cerrar sesión",
396
+ deleteAccount: "Eliminar cuenta",
397
+ deleting: "Eliminando...",
398
+ twoFactorAuth: "Autenticación de dos factores",
399
+ twoFactorEnabled: "La autenticación de dos factores está habilitada",
400
+ twoFactorDisabled: "Agrega una capa extra de seguridad",
401
+ enable2FA: "Habilitar",
402
+ avatar: "Avatar",
403
+ changeAvatar: "Cambiar avatar",
404
+ memberSince: "Miembro desde {date}",
405
+ enterField: "Ingresa {field}",
406
+ profileUpdated: "Perfil actualizado",
407
+ avatarUpdated: "Avatar actualizado",
408
+ failedToUpdate: "Error al actualizar",
409
+ failedToUploadAvatar: "Error al subir avatar",
410
+ selectImageFile: "Por favor selecciona un archivo de imagen",
411
+ fileTooLarge: "El tamaño del archivo debe ser menor a 5MB",
412
+ notAuthenticated: "No autenticado",
413
+ pleaseLogIn: "Por favor inicia sesión para ver tu perfil.",
414
+ deleteAccountTitle: "Eliminar cuenta",
415
+ deleteAccountDesc: "Esta acción no se puede deshacer. Tu cuenta será eliminada permanentemente.",
416
+ typeToConfirm: "Escribe {word} para confirmar:",
417
+ confirmationWord: "DELETE",
447
418
  },
448
419
  },
449
-
450
420
  api: {
451
421
  errors: {
452
- networkError: 'Error de red',
453
- connectionFailed: 'Conexión fallida',
454
- requestTimeout: 'Tiempo de espera agotado',
455
- serverUnavailable: 'Servidor no disponible',
456
- invalidResponse: 'Respuesta inválida del servidor',
457
- rateLimited: 'Demasiadas solicitudes. Por favor espera.',
422
+ networkError: "Error de red",
423
+ connectionFailed: "Conexión fallida",
424
+ requestTimeout: "Tiempo de espera agotado",
425
+ serverUnavailable: "Servidor no disponible",
426
+ invalidResponse: "Respuesta inválida del servidor",
427
+ rateLimited: "Demasiadas solicitudes. Por favor espera.",
458
428
  },
459
429
  status: {
460
- connecting: 'Conectando...',
461
- connected: 'Conectado',
462
- disconnected: 'Desconectado',
463
- reconnecting: 'Reconectando...',
430
+ connecting: "Conectando...",
431
+ connected: "Conectado",
432
+ disconnected: "Desconectado",
433
+ reconnecting: "Reconectando...",
464
434
  },
465
435
  logout: {
466
- title: 'Cerrar sesión',
467
- message: '¿Estás seguro de que quieres cerrar sesión?',
468
- confirm: 'Cerrar sesión',
469
- cancel: 'Cancelar',
436
+ title: "Cerrar sesión",
437
+ message: "¿Estás seguro de que quieres cerrar sesión?",
438
+ confirm: "Cerrar sesión",
439
+ cancel: "Cancelar",
470
440
  },
471
441
  },
472
-
473
442
  tools: {
474
443
  code: {
475
- copyCode: 'Copiar código',
476
- noContent: 'No hay contenido disponible',
444
+ copyCode: "Copiar código",
445
+ noContent: "No hay contenido disponible",
477
446
  },
478
-
479
447
  diagram: {
480
- title: 'Diagrama',
481
- clickToView: 'Clic para ver en pantalla completa',
448
+ title: "Diagrama",
449
+ clickToView: "Clic para ver en pantalla completa",
482
450
  },
483
-
484
451
  image: {
485
- noImage: 'No hay contenido de imagen',
486
- failedToLoad: 'Error al cargar imagen',
487
- zoomIn: 'Acercar',
488
- zoomOut: 'Alejar',
489
- fitToView: 'Ajustar a la vista',
490
- flipHorizontal: 'Voltear horizontalmente',
491
- flipVertical: 'Voltear verticalmente',
492
- rotate: 'Rotar 90°',
493
- fullscreen: 'Abrir en pantalla completa',
452
+ noImage: "No hay contenido de imagen",
453
+ failedToLoad: "Error al cargar imagen",
454
+ zoomIn: "Acercar",
455
+ zoomOut: "Alejar",
456
+ fitToView: "Ajustar a la vista",
457
+ flipHorizontal: "Voltear horizontalmente",
458
+ flipVertical: "Voltear verticalmente",
459
+ rotate: "Rotar 90°",
460
+ fullscreen: "Abrir en pantalla completa",
494
461
  },
495
-
496
462
  gallery: {
497
- noImages: 'No hay imágenes disponibles',
498
- lightbox: 'Lightbox de imágenes',
499
- previous: 'Imagen anterior',
500
- next: 'Imagen siguiente',
501
- close: 'Cerrar lightbox',
502
- download: 'Descargar imagen',
503
- share: 'Compartir imagen',
463
+ noImages: "No hay imágenes disponibles",
464
+ lightbox: "Lightbox de imágenes",
465
+ previous: "Imagen anterior",
466
+ next: "Imagen siguiente",
467
+ close: "Cerrar lightbox",
468
+ download: "Descargar imagen",
469
+ share: "Compartir imagen",
504
470
  },
505
-
506
471
  video: {
507
- play: 'Reproducir video',
508
- fullscreen: 'Pantalla completa',
509
- unavailable: 'Video no disponible',
472
+ play: "Reproducir video",
473
+ fullscreen: "Pantalla completa",
474
+ unavailable: "Video no disponible",
510
475
  },
511
-
512
476
  audio: {
513
- restart: 'Reiniciar',
514
- back: 'Retroceder 5 segundos',
515
- forward: 'Avanzar 5 segundos',
516
- volume: 'Volumen',
477
+ restart: "Reiniciar",
478
+ back: "Retroceder 5 segundos",
479
+ forward: "Avanzar 5 segundos",
480
+ volume: "Volumen",
517
481
  },
518
-
519
482
  color: {
520
- pick: 'Elegir color',
483
+ pick: "Elegir color",
521
484
  },
522
-
523
485
  jsonForm: {
524
- validationErrors: 'Errores de validación',
525
- addItem: 'Añadir elemento',
526
- addFirstItem: 'Añadir primer elemento',
527
- noItems: 'Aún no se han añadido elementos.',
486
+ validationErrors: "Errores de validación",
487
+ addItem: "Añadir elemento",
488
+ addFirstItem: "Añadir primer elemento",
489
+ noItems: "Aún no se han añadido elementos.",
528
490
  },
529
-
530
-
531
491
  openapi: {
532
- response: 'Respuesta',
533
- noResponse: 'No hay cuerpo de respuesta disponible',
534
- required: 'Obligatorio',
535
- optional: 'Opcional',
536
- searchEndpoints: 'Buscar endpoints...',
537
- all: 'Todos',
538
- methods: 'Métodos',
539
- path: 'Ruta',
540
- description: 'Descripción',
541
- navigation: 'Navegación',
542
- previous: 'Anterior',
543
- next: 'Siguiente',
544
- bearerToken: 'Ingresa token Bearer (opcional, usa JWT si está vacío)',
492
+ response: "Respuesta",
493
+ noResponse: "No hay cuerpo de respuesta disponible",
494
+ required: "Obligatorio",
495
+ optional: "Opcional",
496
+ searchEndpoints: "Buscar endpoints...",
497
+ all: "Todos",
498
+ methods: "Métodos",
499
+ path: "Ruta",
500
+ description: "Descripción",
501
+ navigation: "Navegación",
502
+ previous: "Anterior",
503
+ next: "Siguiente",
504
+ bearerToken: "Ingresa token Bearer (opcional, usa JWT si está vacío)",
545
505
  },
546
-
547
-
548
506
  tour: {
549
- next: 'Siguiente',
550
- previous: 'Atrás',
551
- skip: 'Omitir',
552
- finish: 'Finalizar',
553
- close: 'Cerrar',
554
- stepOf: 'Paso {current} de {total}',
507
+ next: "Siguiente",
508
+ previous: "Atrás",
509
+ skip: "Omitir",
510
+ finish: "Finalizar",
511
+ close: "Cerrar",
512
+ stepOf: "Paso {current} de {total}",
555
513
  },
556
-
557
514
  upload: {
558
- dragDrop: 'Arrastra y suelta archivos o haz clic para explorar',
559
- dropHere: 'Suelta los archivos aquí',
560
- maxSize: 'Máx. {size}MB por archivo',
561
- uploading: 'Subiendo...',
562
- uploaded: 'Subido',
563
- failed: 'Error',
564
- retry: 'Reintentar',
565
- remove: 'Eliminar',
566
- cancel: 'Cancelar',
567
- paused: 'Pausado',
568
- pending: 'Pendiente',
515
+ dragDrop: "Arrastra y suelta archivos o haz clic para explorar",
516
+ dropHere: "Suelta los archivos aquí",
517
+ maxSize: "Máx. {size}MB por archivo",
518
+ uploading: "Subiendo...",
519
+ uploaded: "Subido",
520
+ failed: "Error",
521
+ retry: "Reintentar",
522
+ remove: "Eliminar",
523
+ cancel: "Cancelar",
524
+ paused: "Pausado",
525
+ pending: "Pendiente",
569
526
  },
570
527
  form: {
571
- title: 'Formulario',
528
+ title: "Formulario",
572
529
  },
573
530
  },
574
531
  }