@hoardodile/i18n 0.0.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 (50) hide show
  1. package/LICENSE +674 -0
  2. package/README.md +81 -0
  3. package/dist/catalogs/ui.d.ts +2 -0
  4. package/dist/catalogs/ui.js +449 -0
  5. package/dist/catalogs/ui.js.map +1 -0
  6. package/dist/catalogs/workbench.d.ts +291 -0
  7. package/dist/catalogs/workbench.js +250 -0
  8. package/dist/catalogs/workbench.js.map +1 -0
  9. package/dist/catalogs-BF4px4Mm.d.ts +12986 -0
  10. package/dist/catalogs.d.ts +2 -0
  11. package/dist/catalogs.js +10794 -0
  12. package/dist/catalogs.js.map +1 -0
  13. package/dist/core.d.ts +32 -0
  14. package/dist/core.js +14 -0
  15. package/dist/core.js.map +1 -0
  16. package/dist/create-i18n.d.ts +35 -0
  17. package/dist/create-i18n.js +30 -0
  18. package/dist/create-i18n.js.map +1 -0
  19. package/dist/index.d.ts +42 -0
  20. package/dist/index.js +11284 -0
  21. package/dist/index.js.map +1 -0
  22. package/dist/react.d.ts +1 -0
  23. package/dist/react.js +3 -0
  24. package/dist/react.js.map +1 -0
  25. package/dist/ui-CJPMCZT7.d.ts +548 -0
  26. package/package.json +81 -0
  27. package/src/catalogs/de.json +2155 -0
  28. package/src/catalogs/en.json +2155 -0
  29. package/src/catalogs/es.json +2155 -0
  30. package/src/catalogs/ja.json +2155 -0
  31. package/src/catalogs/ui.ts +30 -0
  32. package/src/catalogs/workbench.ts +29 -0
  33. package/src/catalogs/zh.json +2155 -0
  34. package/src/catalogs.ts +31 -0
  35. package/src/core.ts +40 -0
  36. package/src/create-i18n.ts +52 -0
  37. package/src/index.ts +66 -0
  38. package/src/language.test.ts +70 -0
  39. package/src/parity.test.ts +175 -0
  40. package/src/react.ts +25 -0
  41. package/src/ui/de.json +86 -0
  42. package/src/ui/en.json +86 -0
  43. package/src/ui/es.json +86 -0
  44. package/src/ui/ja.json +86 -0
  45. package/src/ui/zh.json +86 -0
  46. package/src/workbench/de.json +45 -0
  47. package/src/workbench/en.json +45 -0
  48. package/src/workbench/es.json +45 -0
  49. package/src/workbench/ja.json +45 -0
  50. package/src/workbench/zh.json +45 -0
@@ -0,0 +1,2155 @@
1
+ {
2
+ "common": {
3
+ "back": "Volver",
4
+ "cancel": "Cancelar",
5
+ "close": "Cerrar",
6
+ "save": "Guardar",
7
+ "saving": "Guardando…",
8
+ "loading": "Cargando…",
9
+ "remove": "Quitar",
10
+ "removeAria": "Quitar",
11
+ "edit": "Editar",
12
+ "delete": "Eliminar",
13
+ "rename": "Renombrar",
14
+ "confirm": "Confirmar",
15
+ "expand": "Expandir",
16
+ "collapse": "Contraer",
17
+ "working": "Trabajando…",
18
+ "prev": "Ant.",
19
+ "next": "Sig.",
20
+ "previous": "Anterior",
21
+ "first": "Primera",
22
+ "last": "Última",
23
+ "jumpToPage": "Página",
24
+ "go": "Ir",
25
+ "goTo": "Ir a",
26
+ "unknownError": "Error desconocido",
27
+ "error": "Error",
28
+ "loadFailed": "No se pudo cargar",
29
+ "show": "Mostrar",
30
+ "hide": "Ocultar",
31
+ "selected": "Seleccionado",
32
+ "available": "Disponible",
33
+ "allSelected": "Todo seleccionado",
34
+ "tags": "Etiquetas",
35
+ "filterCategory": "Filtrar {{name}}…",
36
+ "requestFailed": "La solicitud falló",
37
+ "saved": "Guardado",
38
+ "saveFailed": "No se pudo guardar",
39
+ "confirmByTypingPrompt": "Escribe «<name>{{name}}</name>» para confirmar",
40
+ "searchIncludeIntro": "Buscar en la introducción",
41
+ "underline": "Subrayado",
42
+ "colorPicker": {
43
+ "customColor": "Color personalizado"
44
+ }
45
+ },
46
+ "entityMeta": {
47
+ "nameLabel": "Nombre",
48
+ "namePlaceholder": "p. ej., puerto",
49
+ "introLabel": "Introducción",
50
+ "introPlaceholder": "Una descripción breve…",
51
+ "colorLabel": "Color",
52
+ "colorPlaceholder": "Color CSS opcional; déjalo vacío para usar el predeterminado",
53
+ "pinned": "Fijado"
54
+ },
55
+ "language": {
56
+ "label": "Idioma",
57
+ "description": "Idioma de la interfaz; el contenido conserva su escritura.",
58
+ "english": "English",
59
+ "chinese": "中文",
60
+ "japanese": "日本語",
61
+ "german": "Deutsch",
62
+ "spanish": "Español"
63
+ },
64
+ "icons": {
65
+ "description": "Iconos Solar — el duotono sigue el tema, el gris conserva los dos tonos en tinta plana y el lineal se mantiene de un solo color.",
66
+ "style": {
67
+ "duotone": "Duotono",
68
+ "grayscale": "Escala de grises",
69
+ "linear": "Lineal"
70
+ }
71
+ },
72
+ "theme": {
73
+ "description": "Una paleta y si sigue la luz del día.",
74
+ "modeLabel": "Modo",
75
+ "paletteLabel": "Paleta",
76
+ "mode": {
77
+ "light": "Claro",
78
+ "dark": "Oscuro",
79
+ "system": "Sistema"
80
+ },
81
+ "palette": {
82
+ "mono": "Mono",
83
+ "sage": "Salvia",
84
+ "parchment": "Pergamino",
85
+ "azure": "Azul",
86
+ "hoardodile": "Hoardodile"
87
+ }
88
+ },
89
+ "font": {
90
+ "label": "Fuente",
91
+ "description": "Interfaz y listas; los documentos conservan su voz de lectura."
92
+ },
93
+ "dateTime": {
94
+ "description": "Cómo se leen las fechas — ahora mismo: {{preview}}.",
95
+ "formatLabel": "Formato",
96
+ "timeZoneLabel": "Zona horaria",
97
+ "format": {
98
+ "ymdDash": "2024-06-12 14:30:00",
99
+ "ymdSlash": "2024/06/12 14:30:00",
100
+ "dmySlash": "12/06/2024 14:30:00",
101
+ "mdySlash": "06/12/2024 14:30:00"
102
+ },
103
+ "timeZone": {
104
+ "auto": "Seguir el sistema",
105
+ "noMatches": "No hay zonas horarias coincidentes."
106
+ }
107
+ },
108
+ "appShell": {
109
+ "primaryNav": "Navegación principal",
110
+ "secondaryNav": "Navegación secundaria",
111
+ "openMenu": "Abrir menú",
112
+ "backToMainMenu": "Volver al menú principal",
113
+ "backToDocumentsMenu": "Volver al menú de documentos",
114
+ "nav": {
115
+ "overview": "Resumen",
116
+ "resources": "Recursos",
117
+ "characters": "Personajes",
118
+ "documents": "Documentos",
119
+ "messages": "Mensajes",
120
+ "me": "Ajustes",
121
+ "feedbackAbout": "Comentarios y acerca",
122
+ "help": "Ayuda"
123
+ },
124
+ "syncDueBadge": "Hay un recordatorio de sincronización pendiente",
125
+ "syncStatus": {
126
+ "synced": "Sincronizado",
127
+ "due": "Sincronización pendiente",
128
+ "syncedTitle_one": "Al día — {{count}} dispositivo",
129
+ "syncedTitle_other": "Al día — {{count}} dispositivos",
130
+ "dueTitle_one": "{{count}} dispositivo pendiente de sincronización",
131
+ "dueTitle_other": "{{count}} dispositivos pendientes de sincronización",
132
+ "noDevicesTitle": "Aún no hay dispositivos de sincronización configurados."
133
+ }
134
+ },
135
+ "search": {
136
+ "placeholder": "Buscar personajes, recursos, documentos, mensajes…",
137
+ "placeholderShort": "Buscar",
138
+ "liveSearch": "Búsqueda en vivo",
139
+ "sectionTitles": {
140
+ "characters": "Personajes",
141
+ "resources": "Recursos",
142
+ "documents": "Documentos",
143
+ "messages": "Mensajes"
144
+ },
145
+ "sectionCount": "({{count}})",
146
+ "viewAll": "Ver todo ({{count}})",
147
+ "empty": {
148
+ "title": "No se encontraron resultados.",
149
+ "description": "Prueba con otra palabra clave."
150
+ },
151
+ "resultLabels": {
152
+ "document": "Documento",
153
+ "folder": "Carpeta"
154
+ },
155
+ "imageSearch": {
156
+ "button": "Buscar por imagen",
157
+ "uploadFailed": "La búsqueda de imágenes falló",
158
+ "title": "Resultados de búsqueda de imágenes",
159
+ "empty": "No se encontraron imágenes similares en tu biblioteca.",
160
+ "clear": "Borrar búsqueda de imágenes",
161
+ "queryAlt": "Imagen de consulta",
162
+ "similarity": "{{percent}}% similar"
163
+ }
164
+ },
165
+ "me": {
166
+ "tabs": {
167
+ "preferences": "Preferencias",
168
+ "data": "Datos",
169
+ "about": "Acerca de",
170
+ "desktop": "Escritorio",
171
+ "custom": "Personalizado",
172
+ "privacy": "Privacidad",
173
+ "archive": "Archivo",
174
+ "plugins": "Complementos",
175
+ "sync": "Sincronización"
176
+ },
177
+ "section": {
178
+ "language": "Idioma",
179
+ "icons": "Iconos",
180
+ "theme": "Tema",
181
+ "font": "Fuente",
182
+ "dateTime": "Fecha y hora",
183
+ "tagRules": "Reglas de etiquetas",
184
+ "rebuild": "Reconstruir",
185
+ "trash": "Papelera",
186
+ "usage": "Historial de uso",
187
+ "trace": "Registro de huellas",
188
+ "privacy": "Privacidad y seguridad"
189
+ },
190
+ "custom": {
191
+ "tab": {
192
+ "tags": "Etiquetas",
193
+ "traits": "Rasgos",
194
+ "relationships": "Relaciones",
195
+ "collections": "Colecciones"
196
+ },
197
+ "blurb": {
198
+ "tags": "Las categorías agrupan etiquetas; las etiquetas rotulan la biblioteca.",
199
+ "traits": "Datos tipados y buscables que llevan los personajes.",
200
+ "relationships": "Los verbos entre personajes.",
201
+ "collections": "Estanterías elegidas a mano y fijadas a la barra lateral."
202
+ },
203
+ "unused": "Sin usar",
204
+ "reorder": "Reordenar",
205
+ "add": "Añadir",
206
+ "more": "Más",
207
+ "filterTagsIn": "Filtrar etiquetas en {{category}}",
208
+ "tagsOf": "{{shown}} de {{total}} etiquetas",
209
+ "unusedCount": "{{count}} sin usar",
210
+ "newCategory": "Nueva categoría",
211
+ "moveTag": "Mover etiqueta",
212
+ "moveTagDescription": "La etiqueta sale de su categoría actual; su nombre debe estar libre en la nueva.",
213
+ "moveTagOut": "sale de {{category}}",
214
+ "rulesTravel": "Las reglas hermanas y de padre viajan con la etiqueta.",
215
+ "entity": {
216
+ "tag": "Etiqueta",
217
+ "category": "Categoría",
218
+ "trait": "Rasgo",
219
+ "relation": "Relación",
220
+ "collection": "Colección"
221
+ },
222
+ "link": "Enlazar"
223
+ },
224
+ "account": {
225
+ "title": "Cuenta",
226
+ "description": "De un solo usuario: la cuenta protege la puerta."
227
+ },
228
+ "privacy": {
229
+ "signOutSection": {
230
+ "title": "Cierre de sesión automático",
231
+ "description": "Si esta pestaña permanece oculta más del tiempo establecido, la sesión se cierra y se muestra la página de inicio de sesión — la única protección completa contra las miniaturas de vista previa."
232
+ },
233
+ "autoLogout": {
234
+ "title": "Cerrar sesión al dejar sin atención",
235
+ "description": "La pestaña vigila la visibilidad; al volver después del tiempo establecido aterrizas en la página de inicio de sesión."
236
+ },
237
+ "delayLabel": "Cerrar sesión después de",
238
+ "delay": {
239
+ "immediately": "Inmediatamente",
240
+ "minutes_one": "{{count}} minuto",
241
+ "minutes_other": "{{count}} minutos"
242
+ },
243
+ "idleTimeout": {
244
+ "label": "Tiempo de inactividad de sesión",
245
+ "description": "Se aplica en el servidor, por lo que también cubre pestañas cerradas y otros navegadores.",
246
+ "hours_one": "{{count}} hora",
247
+ "hours_other": "{{count}} horas",
248
+ "days_one": "{{count}} día",
249
+ "days_other": "{{count}} días"
250
+ }
251
+ },
252
+ "password": {
253
+ "title": "Contraseña",
254
+ "description": "La contraseña de administrador que se usa para iniciar sesión en este host.",
255
+ "changeButton": "Cambiar contraseña",
256
+ "dialogTitle": "Cambiar contraseña",
257
+ "currentPassword": "Contraseña actual",
258
+ "newPassword": "Nueva contraseña",
259
+ "confirm": "Confirmar nueva contraseña",
260
+ "newPasswordPlaceholder": "Al menos 10 caracteres",
261
+ "confirmPlaceholder": "Repítela una vez más",
262
+ "changed": "Contraseña cambiada.",
263
+ "errorIncorrect": "La contraseña actual es incorrecta.",
264
+ "errorGeneric": "No se pudo cambiar la contraseña. Revisa el servidor e inténtalo de nuevo.",
265
+ "mismatch": "Las contraseñas no coinciden."
266
+ },
267
+ "licenses": {
268
+ "title": "Licencias",
269
+ "description": "Atribución de código abierto para la app y los recursos incluidos.",
270
+ "viewButton": "Licencias",
271
+ "projectLicense": "Licencia del proyecto",
272
+ "projectLicenseDescription": "Esta aplicación se publica bajo la GNU General Public License v3.0 (GPL-3.0).",
273
+ "fullLicense": "Licencia completa",
274
+ "dependencies": "Dependencias de código abierto",
275
+ "fonts": "Fuentes",
276
+ "packageCount_one": "{{count}} paquete",
277
+ "packageCount_other": "{{count}} paquetes",
278
+ "noPackages": "Aún no hay paquetes."
279
+ },
280
+ "about": {
281
+ "title": "Acerca de",
282
+ "description": "Qué estás ejecutando y de dónde viene.",
283
+ "tagline": "Una herramienta moderna de recolección digital para archivistas autohospedados.",
284
+ "repository": "Repositorio de GitHub",
285
+ "website": "Sitio web",
286
+ "bugTitle": "Informar de un error",
287
+ "bugDescription": "¿Algo falló? Crea un issue para que lo arreglemos.",
288
+ "bugAction": "Crear un issue",
289
+ "featureTitle": "Solicitar una función",
290
+ "featureDescription": "¿Falta algo? Cuéntanos qué construir.",
291
+ "featureAction": "Comparte tu idea",
292
+ "developerTitle": "Desarrollador",
293
+ "checkUpdate": "Buscar actualizaciones",
294
+ "checking": "Comprobando…",
295
+ "latest": "Ya tienes la versión más reciente.",
296
+ "outdated": "La versión {{version}} está disponible.",
297
+ "viewRelease": "Ver la publicación",
298
+ "updateError": "La comprobación de actualizaciones falló. Inténtalo de nuevo más tarde.",
299
+ "downloading": "Descargando… {{percent}}%",
300
+ "updateReady": "La versión {{version}} está lista para instalar.",
301
+ "updateReadyResources": "Los recursos v{{version}} están listos para aplicar.",
302
+ "applyResources": "Aplicar",
303
+ "resourcesVersion": "Recursos v{{version}}",
304
+ "restartToUpdate": "Reiniciar",
305
+ "portableHint": "Las versiones portátiles se actualizan descargando un nuevo zip de GitHub."
306
+ },
307
+ "connections": {
308
+ "title": "Conexiones recientes",
309
+ "description": "Cada inicio de sesión con dispositivo, IP y hora. Se guarda solo en este dispositivo; las filas de más de 90 días se eliminan.",
310
+ "empty": "Aún no hay inicios de sesión.",
311
+ "loopback": "este dispositivo"
312
+ },
313
+ "desktop": {
314
+ "library": {
315
+ "title": "Carpeta de la biblioteca",
316
+ "description": "Donde esta app guarda el archivo. Al cambiar la carpeta, la app se reinicia; los archivos no se copian.",
317
+ "change": "Cambiar carpeta",
318
+ "confirmTitle": "¿Cambiar la carpeta de la biblioteca?",
319
+ "confirmDescription": "La app se reiniciará con la carpeta que elijas. Una carpeta vacía es una biblioteca nueva. Una carpeta con app.sqlite es esa biblioteca. No se copia ni se mueve nada."
320
+ },
321
+ "sharedFolder": {
322
+ "title": "Carpeta compartida",
323
+ "description": "Carpeta inicial para Explorar carpetas compartidas al importar.",
324
+ "enable": "Activar importación de carpetas compartidas",
325
+ "enableDescription": "Cuando está activado, Explorar carpetas compartidas se abre desde la carpeta de abajo."
326
+ },
327
+ "lan": {
328
+ "title": "Acceso desde la red local",
329
+ "description": "Sirve esta app a teléfonos y equipos en la misma Wi-Fi o red.",
330
+ "enable": "Permitir el acceso desde la red local",
331
+ "enableDescription": "Quien esté en tu red necesita tu contraseña para iniciar sesión. Windows pide una excepción de firewall la primera vez que activas esto.",
332
+ "applying": "Aplicando…",
333
+ "portTitle": "Puerto",
334
+ "portDescription": "Localhost y la red local comparten un puerto. Al aplicar se reinicia el servidor.",
335
+ "portApply": "Aplicar",
336
+ "copy": "Copiar",
337
+ "copied": "Dirección copiada",
338
+ "copyFailed": "No se pudo copiar",
339
+ "passwordRequired": "La compartición LAN no está activada — configura antes una contraseña de administrador.",
340
+ "weakPasswordTitle": "Tu contraseña de administrador es débil",
341
+ "weakPasswordDescription": "Quien adivine tu contraseña en tu red puede acceder a toda la biblioteca. Configura antes una contraseña más segura en Ajustes → Cambiar contraseña, o activa la compartición de todos modos.",
342
+ "enableAnyway": "Activar la compartición de todos modos",
343
+ "primaryHint": "Ábrelo en un dispositivo de la misma Wi-Fi.",
344
+ "portAdjustedTitle": "El puerto {{preferred}} está en uso — el servidor ahora escucha en {{actual}}.",
345
+ "portAdjustedHint": "Abre esta dirección desde otros dispositivos con el nuevo puerto.",
346
+ "portAdjustedDismiss": "Descartar",
347
+ "moreAddresses": "Otras direcciones ({{count}}) — adaptadores virtuales y VPN",
348
+ "noAddresses": "No se encontró ninguna dirección accesible — revisa la conexión de red."
349
+ },
350
+ "autostart": {
351
+ "title": "Iniciar con Windows",
352
+ "description": "Abre hoardodile cuando inicies sesión."
353
+ },
354
+ "startInTray": {
355
+ "title": "Iniciar en la bandeja",
356
+ "description": "No se abre ninguna ventana hasta que elijas Abrir desde la bandeja."
357
+ },
358
+ "autoUpdate": {
359
+ "title": "Actualizaciones automáticas",
360
+ "description": "Descarga las publicaciones de GitHub en segundo plano. El reinicio siempre se confirma."
361
+ },
362
+ "closeAction": {
363
+ "title": "Al cerrar la ventana",
364
+ "description": "Qué hace el botón de cerrar de la barra de título — preguntar cada vez, ocultar en la bandeja o salir.",
365
+ "ask": "Preguntarme cada vez",
366
+ "tray": "Ocultar en la bandeja",
367
+ "quit": "Salir de la app"
368
+ },
369
+ "updateBanner": "La versión {{version}} está lista para instalar.",
370
+ "updateBannerResources": "Los recursos v{{version}} están listos para aplicar.",
371
+ "updateBannerRestart": "Reiniciar",
372
+ "updateBannerApply": "Aplicar",
373
+ "updateApplying": "Aplicando la actualización de recursos…",
374
+ "updatePhaseStopping": "Deteniendo el servidor local…",
375
+ "updatePhaseSwapping": "Reemplazando los archivos del servidor…",
376
+ "updatePhaseStarting": "Iniciando el servidor local…",
377
+ "shellCache": {
378
+ "title": "Caché del shell",
379
+ "description": "Cachés en disco de la propia ventana de la app — respuestas HTTP, código compilado y sombreadores de GPU — además de cualquier actualización descargada. Al limpiar nunca se tocan las cookies, tus preferencias ni los datos sin conexión, y la app vuelve a obtener los datos del servidor local de inmediato. Una actualización descargada lista para instalar no se toca.",
380
+ "currentSize": "{{size}}",
381
+ "unavailable": "No disponible",
382
+ "clear": "Limpiar caché",
383
+ "clearing": "Limpiando…",
384
+ "confirmTitle": "¿Limpiar la caché del shell?",
385
+ "confirmDescription": "La ventana de la app volverá a obtener sus archivos del servidor local en la próxima visita. Las cookies, las preferencias y los datos sin conexión nunca se tocan. Una actualización descargada lista para instalar no se toca.",
386
+ "toastCleared": "Caché del shell limpiada — {{bytes}} liberados.",
387
+ "clearFailed": "No se pudo limpiar la caché del shell."
388
+ }
389
+ },
390
+ "usage": {
391
+ "description": "Sesiones detrás de Estadísticas y el registro de huellas — al limpiar se pide escribir una frase.",
392
+ "rowTitle": "Sesiones de uso",
393
+ "rowDescription": "Los datos detrás de Estadísticas.",
394
+ "clearAll": "Eliminar todo",
395
+ "confirmTitle": "¿Limpiar todo el historial de uso?",
396
+ "confirmDescription": "Elimina de forma permanente todos los registros de uso. Las estadísticas y las recomendaciones del resumen se restablecerán. Esto no se puede deshacer.",
397
+ "confirmPhrase": "Limpiar todo el historial de uso",
398
+ "confirmLabel": "Confirmar limpieza",
399
+ "clearing": "Limpiando…",
400
+ "toastSuccess": "Todo el historial de uso se limpió",
401
+ "toastFailed": "No se pudo limpiar el historial de uso"
402
+ },
403
+ "trace": {
404
+ "description": "Registro de solo adición de tus acciones — importaciones, exportaciones, eliminaciones, restauraciones y votos.",
405
+ "rowTitle": "Registro de huellas",
406
+ "clearAll": "Eliminar todo",
407
+ "confirmTitle": "¿Limpiar las huellas?",
408
+ "confirmDescription": "Elimina de forma permanente todos los registros de acciones (importaciones, exportaciones, eliminaciones, restauraciones y votos de no me gusta). El tiempo de visualización son datos de uso aparte y no se ven afectados. Esto no se puede deshacer.",
409
+ "confirmPhrase": "Limpiar huellas",
410
+ "confirmLabel": "Confirmar limpieza",
411
+ "clearing": "Limpiando…",
412
+ "toastSuccess": "Huellas limpiadas",
413
+ "toastFailed": "No se pudo limpiar las huellas"
414
+ },
415
+ "trash": {
416
+ "description": "Paquetes en espera — cada uno puede recuperarse.",
417
+ "view": "Revisar papelera ({{count}})",
418
+ "loading": "Cargando la papelera…",
419
+ "download": "Descargar"
420
+ },
421
+ "systemPrefs": {
422
+ "title": "Valores predeterminados del sistema",
423
+ "description": "Interruptores ocultos del comportamiento del host — restaurados a los valores de fábrica. Los ajustes de los complementos no se tocan; viven en la página Complementos.",
424
+ "restore": "Restaurar",
425
+ "resetSuccess": "Todos los ajustes del sistema se han restablecido",
426
+ "confirmTitle": "¿Restablecer todos los ajustes del sistema?",
427
+ "confirmDescription": "Esto eliminará todas las preferencias del sistema, incluidos tema, idioma, fuente y formato de fecha. La página se recargará con valores predeterminados. Esto no se puede deshacer."
428
+ },
429
+ "systemCache": {
430
+ "title": "Caché del navegador",
431
+ "description": "Datos locales del lado del navegador — cachés de service worker, localStorage e IndexedDB (cola de uso sin conexión, borradores de documentos). El servidor nunca se toca; luego la página se recarga.",
432
+ "clear": "Limpiar todo",
433
+ "clearing": "Limpiando…",
434
+ "resetting": "Caché del navegador limpiada. Recargando…",
435
+ "confirmTitle": "¿Limpiar la caché del navegador?",
436
+ "confirmDescription": "Esto eliminará todos los datos locales del navegador, incluidas las preferencias de tema e idioma, los registros de uso sin conexión y los borradores guardados de documentos, y luego recargará la página. Esto no se puede deshacer."
437
+ }
438
+ },
439
+ "plugin": {
440
+ "loading": "Cargando la vista previa…",
441
+ "previewFailed": "El complemento falló al cargar",
442
+ "previewFallback": "El complemento {{name}} falta o no está disponible; se muestra la vista previa con el complemento de archivo integrado",
443
+ "previewFallbackManage": "Administrar complementos",
444
+ "previewFallbackUnknown": "complemento desconocido"
445
+ },
446
+ "plugins": {
447
+ "pageHint": "Instala desde un paquete .zip o vuelve a escanear la carpeta de complementos para detectar novedades.",
448
+ "uploadZip": "Subir .zip",
449
+ "uploadPluginSuccess": "Complemento instalado",
450
+ "uploading": "Instalando…",
451
+ "rescan": "Volver a escanear complementos",
452
+ "rescanSuccess": "Complementos escaneados de nuevo",
453
+ "more": "Más",
454
+ "enableToggle": "Activar o desactivar complemento",
455
+ "dragToReorder": "Arrastra para reordenar",
456
+ "dev": "dev",
457
+ "missing": "Falta",
458
+ "missingSource": "falta el origen",
459
+ "installed": "Instalado",
460
+ "installedDescription": "El orden decide quién reclama un paquete primero — arrastra para cambiar la prioridad.",
461
+ "filterPlaceholder": "Filtrar complementos",
462
+ "countInstalled": "{{count}} instalados",
463
+ "listView": "Vista de lista",
464
+ "gridView": "Vista de cuadrícula",
465
+ "searchCategories": "Buscar categorías",
466
+ "fileTitle": "Archivo",
467
+ "fileDescription": "El visor de reserva integrado para tipos de archivo desconocidos — no se puede quitar ni reordenar.",
468
+ "alwaysOn": "siempre activo",
469
+ "defaultsTitle": "Valores predeterminados de los complementos",
470
+ "defaultsDescription": "Los ajustes de cada complemento vuelven a sus valores predeterminados — el contenido y las instalaciones no se tocan.",
471
+ "restore": "Restaurar",
472
+ "cachesTitle": "Cachés de los complementos",
473
+ "cachesDescription": "Miniaturas y metadatos analizados de todos los complementos — se reconstruyen bajo demanda.",
474
+ "clearAll": "Limpiar todo",
475
+ "pin": "Fijar",
476
+ "color": "Color",
477
+ "appearance": "Apariencia",
478
+ "appearanceTitle": "Apariencia: {{name}}",
479
+ "appearanceDescription": "Elige un color y si quieres fijar este complemento a las tarjetas de recursos.",
480
+ "reset": "Restablecer",
481
+ "clear": "Limpiar",
482
+ "resetPluginPref": "Restaurar ajustes",
483
+ "resetPluginPrefConfirmTitle": "¿Restablecer los ajustes de {{name}}?",
484
+ "resetPluginPrefConfirmDescription": "Esto eliminará todos los ajustes guardados de este complemento. El complemento usará sus valores predeterminados tras reiniciar. Esto no se puede deshacer.",
485
+ "resetPluginPrefSuccess": "Los ajustes de {{name}} se han restablecido",
486
+ "clearPluginCache": "Limpiar caché",
487
+ "clearPluginCacheConfirmTitle": "¿Limpiar la caché de {{name}}?",
488
+ "clearPluginCacheConfirmDescription": "Esto eliminará todos los datos en caché (p. ej., posiciones de reanudación) de este complemento. Esto no se puede deshacer.",
489
+ "clearPluginCacheSuccess": "La caché de {{name}} se ha limpiado",
490
+ "uninstall": "Desinstalar",
491
+ "uninstallConfirmTitle": "¿Desinstalar el complemento {{name}}?",
492
+ "uninstallConfirmDescription_one": "{{count}} recurso usa este complemento. Tras desinstalarlo, se mostrará la vista previa con el complemento de archivo integrado; al reinstalar el complemento se restaura automáticamente. Esto no se puede deshacer.",
493
+ "uninstallConfirmDescription_other": "{{count}} recursos usan este complemento. Tras desinstalarlo, se mostrará la vista previa con el complemento de archivo integrado; al reinstalar el complemento se restauran automáticamente. Esto no se puede deshacer.",
494
+ "uninstallConfirmNoUsage": "Ningún recurso usa este complemento. Puedes reinstalarlo cuando quieras para usarlo de nuevo. Esto no se puede deshacer.",
495
+ "uninstallSuccess": "Se desinstaló {{name}}",
496
+ "resetAllPluginPrefSuccess": "Todos los ajustes de los complementos se han restablecido",
497
+ "resetAllPluginPrefConfirmTitle": "¿Restablecer todos los ajustes de los complementos?",
498
+ "resetAllPluginPrefConfirmDescription": "Esto eliminará los ajustes guardados de todos los complementos. Todos los complementos usarán sus valores predeterminados tras reiniciar. Esto no se puede deshacer.",
499
+ "clearAllPluginCacheSuccess": "Toda la caché de los complementos se ha limpiado",
500
+ "clearAllPluginCacheConfirmTitle": "¿Limpiar toda la caché de los complementos?",
501
+ "clearAllPluginCacheConfirmDescription": "Esto eliminará los datos en caché de todos los complementos, incluidas las posiciones de reanudación. Esto no se puede deshacer.",
502
+ "installConfirmTitle": "¿Instalar este complemento?",
503
+ "install": "Instalar",
504
+ "installConfirmRisk": "Los complementos de terceros ejecutan código del servidor en una sandbox restringida: su proceso principal solo puede leer los archivos de los recursos que el host le expone, y no puede tocar tu sistema de archivos, ejecutar programas ni hacer solicitudes de red, excepto descargas aprobadas por ti: un complemento con el permiso «Descargas» puede obtener una URL que tú confirmes (un diálogo por descarga, guardada solo en su propia carpeta). Los permisos declarados arriba activan funciones del host. Instala solo complementos de fuentes de confianza.",
505
+ "uploadInvalidPlugin": "No es un paquete de complemento válido (falta o no es válido manifest.json).",
506
+ "permissions": {
507
+ "sourceMeta": "Metadatos de origen",
508
+ "searchMeta": "Metadatos de búsqueda",
509
+ "danmaku": "Danmaku",
510
+ "message": "Mensajes",
511
+ "imageHashes": "Hashes de imagen",
512
+ "container": "Contenedores",
513
+ "download": "Descargas"
514
+ }
515
+ },
516
+ "overview": {
517
+ "usageHistory": {
518
+ "title": "Historial de uso"
519
+ },
520
+ "memories": {
521
+ "title": "En este día",
522
+ "yearsAgo_one": "El año pasado en este día",
523
+ "yearsAgo_other": "Hace {{count}} años en este día"
524
+ },
525
+ "activity": {
526
+ "title": "Actividad reciente",
527
+ "updated": "Actualizado {{time}}"
528
+ },
529
+ "stats": {
530
+ "resources": "Recursos",
531
+ "characters": "Personajes",
532
+ "documents": "Documentos",
533
+ "messages": "Mensajes"
534
+ },
535
+ "sections": {
536
+ "recentResources": "Actualizados recientemente",
537
+ "recentViewed": "Vistos recientemente",
538
+ "recentCharacters": "Personajes recientes",
539
+ "recentDocuments": "Documentos recientes",
540
+ "recentMessages": "Mensajes recientes"
541
+ },
542
+ "empty": {
543
+ "resources": "Aún no hay recursos.",
544
+ "recentViewed": "Aún no hay historial de visualización.",
545
+ "characters": "Aún no hay personajes.",
546
+ "documents": "Aún no hay documentos.",
547
+ "messages": "Aún no hay mensajes."
548
+ },
549
+ "todayUsage": {
550
+ "label": "Tiempo de visualización de hoy",
551
+ "sameAsYesterday": "Igual que ayer",
552
+ "moreThanYesterday": "{{duration}} más que ayer",
553
+ "lessThanYesterday": "{{duration}} menos que ayer"
554
+ },
555
+ "footprints": {
556
+ "aria": "Huellas",
557
+ "title": "Huellas",
558
+ "description": "Cada acción que has realizado",
559
+ "emptyPrompt": "Aún no hay huellas — importa o sube un recurso para empezar el registro.",
560
+ "uploadResource": "Subir un recurso",
561
+ "importFolder": "Importar una carpeta"
562
+ },
563
+ "viewAll": "Ver todo",
564
+ "recentViewed": {
565
+ "description": "Tu historial de visualización",
566
+ "unknownTime": "Hora desconocida",
567
+ "emptyPrompt": "Aún no hay historial de visualización — empieza a explorar o sube tu primer recurso.",
568
+ "browseResources": "Explorar recursos",
569
+ "uploadResource": "Subir un recurso"
570
+ },
571
+ "pinned": {
572
+ "charactersTitle": "Personajes fijados",
573
+ "resourcesTitle": "Recursos fijados",
574
+ "charactersEmpty": "No hay personajes que coincidan.",
575
+ "resourcesEmpty": "No hay recursos que coincidan.",
576
+ "add": "Añadir",
577
+ "maxReached": "Se alcanzó el máximo de {{max}} elementos fijados",
578
+ "dragToReorder": "Arrastra para reordenar",
579
+ "settings": {
580
+ "title": "Fijado: {{section}}",
581
+ "description": "Qué secciones fija el panel — arrastra para reordenar, edita al lado.",
582
+ "editTitle": "Editar sección",
583
+ "editDescription": "La sección tal como se muestra en el panel.",
584
+ "titleLabel": "Título",
585
+ "titlePlaceholder": "Déjalo vacío para usar el título predeterminado",
586
+ "showWhenEmpty": "Mostrar cuando está vacío",
587
+ "sizeLabel": "Tamaño",
588
+ "sectionsCount_one": "{{count}} sección",
589
+ "sectionsCount_other": "{{count}} secciones",
590
+ "save": "Guardar sección",
591
+ "done": "Listo",
592
+ "delete": "Eliminar",
593
+ "deleteConfirmTitle": "Eliminar vista fijada",
594
+ "deleteConfirmDescription": "¿Seguro que quieres eliminar «{{title}}»? Esto no se puede deshacer.",
595
+ "saveSuccess": "Ajustes fijados guardados",
596
+ "deleteSuccess": "Vista fijada eliminada",
597
+ "toggleEnabledAria": "Activar o desactivar {{title}}",
598
+ "noItems": "Aún no hay vistas fijadas.",
599
+ "noItemsHint": "Haz clic en Añadir para guardar los filtros actuales en el resumen.",
600
+ "noItemsWithFiltersHint": "La página de lista actual ya tiene filtros. Haz clic en el botón de arriba para guardarlos como vista fijada.",
601
+ "noSelection": "No hay ninguna vista fijada seleccionada.",
602
+ "noSelectionHint": "Selecciona un elemento de la lista o haz clic en Añadir para crear una vista nueva.",
603
+ "preview": "Vista previa",
604
+ "previewTitle": "Vista previa de los filtros",
605
+ "item": {
606
+ "refresh": {
607
+ "label": "Actualización automática",
608
+ "description": "Cada cuánto esta vista fijada genera un conjunto aleatorio nuevo.",
609
+ "always": "Siempre",
610
+ "never": "Nunca",
611
+ "every60s": "Cada minuto",
612
+ "every1800s": "Cada 30 minutos",
613
+ "every3600s": "Cada hora",
614
+ "every21600s": "Cada 6 horas",
615
+ "every43200s": "Cada 12 horas",
616
+ "midnight": "A medianoche"
617
+ }
618
+ }
619
+ },
620
+ "refreshSectionAria": "Actualizar {{title}}"
621
+ },
622
+ "sort": {
623
+ "created": "Creado",
624
+ "updated": "Actualizado"
625
+ },
626
+ "rebuildDescription": "Reconstruye desde cero los metadatos y las miniaturas de cada recurso, o limpia todos los datos reconstruibles (cachés locales + metadatos registrados) en este host.",
627
+ "signOut": "Cerrar sesión",
628
+ "signingOut": "Cerrando sesión…",
629
+ "precache": "Precalentar",
630
+ "precaching": "Precalentando…",
631
+ "caching": "Calentando la caché del navegador…",
632
+ "refreshCache": "Actualizar caché",
633
+ "clearCache": "Limpiar todo",
634
+ "clearing": "Limpiando…",
635
+ "progressLine": "{{done}} / {{total}} ({{percent}}%) - {{stage}}",
636
+ "cachedSummary_one": "{{count}} elemento precalentado",
637
+ "cachedSummary_other": "{{count}} elementos precalentados",
638
+ "precacheFailed": "Falló el precalentamiento: {{error}}",
639
+ "precacheStageLoading": "Reconstruyendo metadatos y generando miniaturas…",
640
+ "precacheDefaultError": "Falló el precalentamiento",
641
+ "precacheInProgress": "Ya hay un precalentamiento en curso",
642
+ "abortPrecache": "Abortar",
643
+ "precacheAborted": "Precalentamiento abortado",
644
+ "toastClearLocked_one": "{{count}} archivo de datos de reconstrucción está bloqueado y no se pudo eliminar. Reinicia el servidor para limpiarlo.",
645
+ "toastClearLocked_other": "{{count}} archivos de datos de reconstrucción están bloqueados y no se pudieron eliminar. Reinicia el servidor para limpiarlos.",
646
+ "clearCacheSuccess": "Datos de reconstrucción limpiados",
647
+ "toastClearFailed": "No se pudieron limpiar los datos de reconstrucción",
648
+ "toastPrecacheSuccess_one": "Se precalentó {{count}} elemento",
649
+ "toastPrecacheSuccess_other": "Se precalentaron {{count}} elementos",
650
+ "toastPrecachePartial": "El precalentamiento terminó con {{failed}} fallos"
651
+ },
652
+ "login": {
653
+ "brand": "Hoardodile",
654
+ "title": "Iniciar sesión",
655
+ "description": "Introduce la contraseña de este host.",
656
+ "demoDescription": "Esta es una biblioteca de demostración. La contraseña es {{password}}.",
657
+ "password": "Contraseña",
658
+ "submit": "Iniciar sesión",
659
+ "submitting": "Iniciando sesión…",
660
+ "formAria": "Iniciar sesión",
661
+ "errorIncorrect": "Contraseña incorrecta.",
662
+ "errorGeneric": "No se pudo iniciar sesión. Revisa el servidor e inténtalo de nuevo.",
663
+ "setupTitle": "Configurar una contraseña",
664
+ "setupDescription": "Este host aún no tiene contraseña. Configura una ahora — quien lo haga primero es dueño del host.",
665
+ "setupPassword": "Nueva contraseña",
666
+ "setupConfirm": "Confirmar contraseña",
667
+ "setupSubmit": "Configurar contraseña",
668
+ "setupSubmitting": "Configurando…",
669
+ "setupMismatch": "Las contraseñas no coinciden.",
670
+ "setupFormAria": "Configurar contraseña"
671
+ },
672
+ "dataHistory": {
673
+ "title": "Historial de datos",
674
+ "description": "Administra tus instantáneas de datos. Las copias de seguridad sirven para migraciones o recuperación ante desastres; los archivos congelan una versión como de solo lectura para que sus datos nunca vuelvan a cambiar.",
675
+ "status": {
676
+ "currentWritable": "Con escritura — v{{version}}",
677
+ "viewingArchive": "Viendo el archivo — v{{version}}"
678
+ },
679
+ "chip": {
680
+ "latest": "Más reciente",
681
+ "readOnly": "Solo lectura",
682
+ "auto": "Auto"
683
+ },
684
+ "archive": {
685
+ "title": "v{{version}}",
686
+ "tagCurrent": "Más reciente (con escritura)",
687
+ "tagActive": "En visualización",
688
+ "tagReadOnly": "Archivo histórico",
689
+ "tagCurrentShort": "reciente",
690
+ "tagActiveShort": "visualizando",
691
+ "nameLabel": "Nombre",
692
+ "namePlaceholder": "p. ej., hito v1",
693
+ "noteLabel": "Nota",
694
+ "notePlaceholder": "p. ej., antes de la migración, congelación de datos…",
695
+ "switchHint": "Tras cambiar, la app funciona en modo de solo lectura sobre este archivo. Vuelve a la versión más reciente para editar de nuevo.",
696
+ "activeHint": "Esta es la versión que estás viendo."
697
+ },
698
+ "backup": {
699
+ "typeLabel": "Copia de seguridad de la base de datos",
700
+ "autoTypeLabel": "Instantánea automática diaria",
701
+ "autoBadge": "auto",
702
+ "autoDeleteHint": "Esta instantánea automática se conserva durante una ventana móvil corta y se reemplazará automáticamente. Puedes eliminarla ahora para liberar espacio.",
703
+ "nameLabel": "Nombre",
704
+ "nameEmpty": "Ninguna",
705
+ "restoreHint": "Para restaurar se te pedirá escribir el nombre de la copia — la biblioteca actual se archiva primero, así que nada se pierde en silencio.",
706
+ "deleteHint": "Este archivo de copia de seguridad se eliminará de forma permanente y no se puede recuperar.",
707
+ "archivedHint": "Esta copia pertenece a una versión archivada. Sus datos están congelados y no se pueden restaurar ni eliminar."
708
+ },
709
+ "action": {
710
+ "backupNow": "Crear copia ahora",
711
+ "backingUp": "Creando copia…",
712
+ "archiveNow": "Archivar ahora",
713
+ "archiving": "Archivando…",
714
+ "restore": "Restaurar",
715
+ "restoring": "Restaurando…",
716
+ "delete": "Eliminar",
717
+ "deleting": "Eliminando…",
718
+ "switchToVersion": "Cambiar a esta versión",
719
+ "switching": "Cambiando…",
720
+ "download": "Descargar"
721
+ },
722
+ "reloading": "Recargando…",
723
+ "autoSnapshot": {
724
+ "enabled": "Instantánea automática: diaria · conserva {{keep}} días",
725
+ "disabled": "Las instantáneas automáticas están desactivadas",
726
+ "last": "la más reciente {{time}}"
727
+ },
728
+ "detail": {
729
+ "selectPrompt": "Selecciona una copia o un archivo en la línea de tiempo para ver los detalles y las acciones disponibles.",
730
+ "size": "Tamaño",
731
+ "versionNumber": "Versión",
732
+ "createdAt": "Creado",
733
+ "note": "Nota",
734
+ "contents": "Contenido",
735
+ "contentsValue": "{{resources}} recursos · {{characters}} personajes · {{documents}} documentos",
736
+ "backupOnVersion": "Copia en v{{version}}",
737
+ "archiveVersion": "Archivo v{{version}}"
738
+ },
739
+ "note": {
740
+ "empty": "Haz clic para añadir una nota…",
741
+ "placeholder": "Añade una descripción breve para esta instantánea…"
742
+ },
743
+ "confirm": {
744
+ "archiveTitle": "Archivar la versión más reciente",
745
+ "archiveDescription": "La base de datos de la versión más reciente y todos los recursos, personajes y documentos se congelarán como un archivo de solo lectura. Los datos dentro de un archivo nunca vuelven a cambiar; se creará una versión nueva con escritura para el trabajo continuo.",
746
+ "archivePhrase": "archivar",
747
+ "archiveAutoHint": "Las instantáneas automáticas de la versión actual se congelan con este archivo; se toma una instantánea nueva para la versión recién creada de inmediato.",
748
+ "restoreTitle": "Restaurar esta copia",
749
+ "restoreDescription": "La biblioteca actual se archiva primero, así que nada se pierde en silencio. Esta restauración se puede deshacer restaurando la versión archivada.",
750
+ "restorePhrase": "restaurar copia",
751
+ "autoPhrase": "auto",
752
+ "deleteBackupTitle": "Eliminar la copia para siempre",
753
+ "deleteBackupDescription": "Este archivo de copia de seguridad se eliminará de forma permanente y no se puede recuperar.",
754
+ "deleteBackupPhrase": "eliminar copia",
755
+ "switchTitle": "Cambiar a esta versión archivada",
756
+ "switchDescription": "Tras cambiar, la app funciona en modo de solo lectura y solo se ven los datos históricos. Vuelve a la versión más reciente para editar de nuevo."
757
+ },
758
+ "empty": {
759
+ "title": "Aún no hay historial de datos.",
760
+ "description": "Crea una copia ahora para protegerte contra la pérdida de datos."
761
+ },
762
+ "toast": {
763
+ "backupCreated": "Copia creada",
764
+ "backupFailed": "Falló la copia",
765
+ "archiveFailed": "Falló el archivado",
766
+ "backupDeleted": "Copia eliminada",
767
+ "deleteFailed": "Falló la eliminación",
768
+ "restoreFailed": "Falló la restauración",
769
+ "switchFailed": "Falló el cambio",
770
+ "metaSaved": "Guardado",
771
+ "metaSaveFailed": "No se pudo guardar"
772
+ }
773
+ },
774
+ "documents": {
775
+ "title": "Documentos",
776
+ "index": {
777
+ "docCount_one": "{{count}} documento",
778
+ "docCount_other": "{{count}} documentos",
779
+ "folderCount_one": "{{count}} carpeta",
780
+ "folderCount_other": "{{count}} carpetas",
781
+ "description": "{{docs}} en {{folders}} — todo lo que has escrito, en un solo lugar.",
782
+ "updated": "Actualizado {{time}}"
783
+ },
784
+ "create": "Nuevo",
785
+ "backToStart": "Volver a la página de inicio",
786
+ "new": "Documento",
787
+ "newFolder": "Carpeta",
788
+ "defaultNewTitle": "Documento sin título",
789
+ "defaultNewFolderTitle": "Carpeta sin título",
790
+ "searchPlaceholder": "Buscar por título o contenido",
791
+ "loading": "Cargando documentos…",
792
+ "listEmpty": "Aún no hay documentos.",
793
+ "notFound": {
794
+ "title": "No se encontró el documento",
795
+ "description": "Este documento ya no existe — puede que se haya eliminado.",
796
+ "back": "Volver a documentos"
797
+ },
798
+ "untitled": "Sin título",
799
+ "viewAll": "Ver todo",
800
+ "filter": {
801
+ "title": "Filtrar por personajes y recursos",
802
+ "dialogTitle": "Filtrar documentos",
803
+ "apply": "Aplicar",
804
+ "clear": "Limpiar"
805
+ },
806
+ "placeholder": "Empieza a escribir…",
807
+ "editorPlaceholder": "Ver comandos '/'",
808
+ "saveDraft": "Guardar borrador",
809
+ "discardDraft": "Descartar borrador",
810
+ "commit": "Confirmar versión",
811
+ "commitDialog": {
812
+ "title": "Confirmar versión",
813
+ "description": "Guarda el borrador actual como una versión inmutable. Proporciona un mensaje breve que describa qué cambió.",
814
+ "messageLabel": "Mensaje de confirmación",
815
+ "messagePlaceholder": "¿Qué cambió en esta versión?",
816
+ "submit": "Confirmar",
817
+ "committing": "Confirmando…"
818
+ },
819
+ "discardDialog": {
820
+ "title": "¿Descartar el borrador?",
821
+ "description": "Tus cambios sin guardar se reemplazarán con la última versión confirmada. Esto no se puede deshacer.",
822
+ "confirm": "Descartar",
823
+ "discarding": "Descartando…"
824
+ },
825
+ "leaveDialog": {
826
+ "confirm": "Tienes cambios sin guardar en este documento. ¿Salir de todos modos?"
827
+ },
828
+ "moreActions": "Más acciones",
829
+ "zoom": {
830
+ "label": "Zoom del texto",
831
+ "smaller": "Alejar",
832
+ "larger": "Acercar",
833
+ "reset": "Restablecer zoom"
834
+ },
835
+ "appearanceSettings": {
836
+ "title": "Apariencia",
837
+ "description": "Ajusta el aspecto de los documentos: tema, ancho de lectura y fuentes.",
838
+ "theme": "Tema del documento",
839
+ "inherit": "Heredar del tema web",
840
+ "readingWidth": "Ancho de lectura",
841
+ "readingWidthDescription": "Ancho de la columna de lectura centrada en la página del documento.",
842
+ "editorFont": "Fuente del editor",
843
+ "editorFontDescription": "Fuente que se usa dentro del editor de documentos.",
844
+ "uiFont": "Fuente de la página",
845
+ "uiFontDescription": "Fuente que se usa para títulos, barra lateral y otras áreas de la interfaz en la página del documento.",
846
+ "body": "Cuerpo",
847
+ "headings": "Encabezados"
848
+ },
849
+ "readOnly": {
850
+ "enable": "Vista previa",
851
+ "disable": "Salir de la vista previa"
852
+ },
853
+ "reading": {
854
+ "enter": "Modo lectura",
855
+ "exit": "Salir del modo lectura"
856
+ },
857
+ "diff": {
858
+ "show": "Comparar historial",
859
+ "exit": "Salir de la comparación",
860
+ "compareWith": "Comparar con",
861
+ "selectVersion": "Seleccionar versión"
862
+ },
863
+ "conflict": {
864
+ "title": "Se detectaron cambios remotos",
865
+ "description": "Tus cambios se conservan en el editor. Compara las dos versiones y elige cuál conservar.",
866
+ "keepCurrent": "Conservar el contenido actual",
867
+ "discardCurrent": "Descartar el contenido actual",
868
+ "viewDiff": "Comparar",
869
+ "diffLabel": "Borrador sin conexión frente a remoto",
870
+ "updatedHint": "El servidor actualizó {{remote}} · Edición local {{local}}",
871
+ "discardConfirm": {
872
+ "title": "¿Descartar las ediciones actuales?",
873
+ "description": "Los cambios aún no sincronizados con el servidor se perderán. Puedes comparar las diferencias primero.",
874
+ "confirm": "Descartar las ediciones actuales"
875
+ }
876
+ },
877
+ "indent": {
878
+ "enable": "Activar sangría de primera línea"
879
+ },
880
+ "welcome": {
881
+ "title": "Documentos",
882
+ "subtitle": "Crea documentos o carpetas a la izquierda. Los documentos también pueden contener hijos anidados."
883
+ },
884
+ "folderHint": "Esto es una carpeta. Elige un documento dentro para empezar a editar.",
885
+ "headings": "Contenido",
886
+ "noHeadings": "Este documento no tiene encabezados.",
887
+ "untitledHeading": "Encabezado sin título",
888
+ "detailMeta": {
889
+ "chars_one": "{{count, number}} carácter",
890
+ "chars_other": "{{count, number}} caracteres"
891
+ },
892
+ "notes": {
893
+ "tab": "Notas",
894
+ "empty": "Aún no hay notas."
895
+ },
896
+ "statusBar": {
897
+ "charCount": "{{count}} / {{max}} caracteres",
898
+ "offline": "Sin conexión · cambios sin guardar"
899
+ },
900
+ "autosave": {
901
+ "enable": "Activar guardado automático"
902
+ },
903
+ "editMode": {
904
+ "label": "Ajustar orden",
905
+ "toggle": "Activar o desactivar el modo de ajuste de orden",
906
+ "hint": "Actívalo para arrastrar y reordenar documentos en el árbol."
907
+ },
908
+ "expandAll": "Expandir todo",
909
+ "collapseAll": "Contraer todo",
910
+ "slash": {
911
+ "charactersGroup": "Personajes",
912
+ "resourcesGroup": "Recursos",
913
+ "insertCharacter": "Insertar personaje…",
914
+ "insertResource": "Insertar recurso…"
915
+ },
916
+ "toast": {
917
+ "createFailed": "No se pudo crear",
918
+ "renameFailed": "No se pudo renombrar",
919
+ "saveFailed": "No se pudo guardar el borrador",
920
+ "saved": "Guardado",
921
+ "commitFailed": "No se pudo confirmar la versión",
922
+ "committed": "Versión confirmada",
923
+ "contentTooLarge": "El contenido supera el límite máximo de caracteres",
924
+ "versionLoadFailed": "No se pudo cargar el contenido de la versión",
925
+ "savedLocally": "Guardado en este dispositivo",
926
+ "resolveConflictFirst": "Resuelve el conflicto sin conexión antes de confirmar",
927
+ "movedToTrash": "Movido a la papelera",
928
+ "restored": "Restaurado",
929
+ "restoreFailed": "No se pudo restaurar",
930
+ "deleteFailed": "No se pudo eliminar",
931
+ "deletedForever": "Eliminado para siempre",
932
+ "moveFailed": "No se pudo mover"
933
+ },
934
+ "search": {
935
+ "empty": "No hay documentos que coincidan."
936
+ },
937
+ "trash": {
938
+ "open": "Papelera",
939
+ "empty": "Aún no hay documentos en la papelera.",
940
+ "restore": "Restaurar",
941
+ "hardDelete": "Eliminar para siempre",
942
+ "hardDeleteTitle": "¿Eliminar para siempre?",
943
+ "hardDeleteDescription": "Esto elimina el elemento de forma permanente. Esto no se puede deshacer.",
944
+ "hardDeleteConfirm": "Eliminar para siempre",
945
+ "hardDeleting": "Eliminando…"
946
+ },
947
+ "softDeleteDialog": {
948
+ "title": "¿Mover a la papelera?",
949
+ "description": "El elemento se ocultará del árbol y se podrá restaurar más tarde desde la papelera.",
950
+ "folderWarning": "Todos los documentos descendientes de esta carpeta se moverán juntos a la papelera.",
951
+ "confirm": "Mover a la papelera"
952
+ },
953
+ "toolbar": {
954
+ "bold": "Negrita",
955
+ "italic": "Cursiva",
956
+ "strike": "Tachado",
957
+ "code": "Código en línea",
958
+ "h1": "Encabezado 1",
959
+ "h2": "Encabezado 2",
960
+ "h3": "Encabezado 3",
961
+ "bulletList": "Lista con viñetas",
962
+ "orderedList": "Lista numerada",
963
+ "blockquote": "Cita",
964
+ "noFirstLineIndent": "Sin sangría de primera línea (este párrafo)",
965
+ "link": "Enlace",
966
+ "linkPrompt": "Introduce la URL (déjala vacía para quitarla)",
967
+ "alignLeft": "Alinear a la izquierda",
968
+ "alignCenter": "Centrar",
969
+ "alignRight": "Alinear a la derecha",
970
+ "textColor": "Color del texto",
971
+ "tagChip": "Estilo de etiqueta",
972
+ "undo": "Deshacer",
973
+ "redo": "Rehacer"
974
+ }
975
+ },
976
+ "characters": {
977
+ "title": "Personajes",
978
+ "searchPlaceholder": "Buscar personajes…",
979
+ "filters": "Filtros",
980
+ "sortLabel": "Ordenar por",
981
+ "orderLabel": "Orden",
982
+ "search": {
983
+ "sectionOptions": "Opciones",
984
+ "sectionTags": "Etiquetas",
985
+ "sectionTraits": "Rasgos",
986
+ "sectionRelations": "Relaciones",
987
+ "clearAll": "Limpiar todo",
988
+ "apply": "Buscar",
989
+ "itemCount_one": "{{count}} personaje",
990
+ "itemCount_other": "{{count}} personajes"
991
+ },
992
+ "new": "Nuevo",
993
+ "listEmpty": "Aún no hay personajes.",
994
+ "trashEmpty": "Aún no hay personajes en la papelera.",
995
+ "filter": {
996
+ "trash": "Papelera"
997
+ },
998
+ "traitFilter": {
999
+ "add": "Añadir",
1000
+ "empty": "Define rasgos en Ajustes para filtrar por ellos.",
1001
+ "opContains": "contiene",
1002
+ "opEmpty": "está vacío",
1003
+ "opNotEmpty": "no está vacío",
1004
+ "opDateAfter": "después de",
1005
+ "opDateOnOrAfter": "en o después de",
1006
+ "opDateBefore": "antes de",
1007
+ "opDateOnOrBefore": "en o antes de",
1008
+ "opDateOn": "en",
1009
+ "opDateMonthDayOn": "mes/día en",
1010
+ "opDateMonthDayToday": "el mes/día de hoy"
1011
+ },
1012
+ "viewSelected": "Solo seleccionados",
1013
+ "viewSelectedTooMany": "Solo seleccionados admite hasta {{max}} elementos",
1014
+ "sort": {
1015
+ "created": "Creado",
1016
+ "updated": "Actualizado",
1017
+ "random": "Aleatorio",
1018
+ "latest": "Más reciente",
1019
+ "earliest": "Más antiguo"
1020
+ },
1021
+ "bulk": {
1022
+ "select": "Seleccionar",
1023
+ "done": "Listo",
1024
+ "toolbarCount": "{{count}} seleccionados",
1025
+ "editTags": "Editar etiquetas",
1026
+ "clearSelection": "Limpiar",
1027
+ "moveToTrash": "Papelera",
1028
+ "confirmSoft_one": "¿Mover {{count}} personaje a la papelera?",
1029
+ "confirmSoft_other": "¿Mover {{count}} personajes a la papelera?",
1030
+ "softDeleteDescription": "Los personajes seleccionados se moverán a la papelera. Se podrán restaurar más tarde desde la papelera.",
1031
+ "toastAllOk_one": "Se actualizó {{count}} personaje.",
1032
+ "toastAllOk_other": "Se actualizaron {{count}} personajes.",
1033
+ "toastAllFailed": "No se actualizó nada ({{count}} fallidos).",
1034
+ "toastPartial": "{{ok}} correctos, {{failed}} fallidos."
1035
+ },
1036
+ "actionsAria": "Acciones para {{name}}",
1037
+ "toast": {
1038
+ "movedToTrash": "Movido a la papelera",
1039
+ "deleteFailed": "No se pudo eliminar",
1040
+ "restored": "Restaurado",
1041
+ "restoreFailed": "No se pudo restaurar",
1042
+ "deletedForever": "Eliminado para siempre",
1043
+ "createSuccess": "Creado",
1044
+ "createFailed": "Falló la creación"
1045
+ },
1046
+ "create": {
1047
+ "title": "Nuevo personaje",
1048
+ "description": "Con un nombre basta para empezar — todo lo demás puede esperar.",
1049
+ "basicInfo": "Información básica",
1050
+ "basicDescription": "Quiénes son, en palabras sencillas.",
1051
+ "name": "Nombre",
1052
+ "intro": "Introducción",
1053
+ "namePlaceholder": "Personaje sin nombre",
1054
+ "nameHint": "El nombre es obligatorio — ponle uno para activar Crear.",
1055
+ "introPlaceholder": "Algunas frases — quiénes son, qué quieren.",
1056
+ "links": "Vínculos",
1057
+ "linksDescription": "Etiquetas y rasgos que vinculan a este personaje con la biblioteca.",
1058
+ "tags": "Etiquetas",
1059
+ "traits": "Rasgos",
1060
+ "appearance": "Apariencia",
1061
+ "appearanceDescription": "Avatar y figura completa — recorta para ajustar.",
1062
+ "avatar": "Avatar",
1063
+ "fullbody": "Figura completa",
1064
+ "submit": "Crear",
1065
+ "submitting": "Creando…"
1066
+ },
1067
+ "preview": {
1068
+ "aria": "Vista previa: {{name}}"
1069
+ },
1070
+ "detail": {
1071
+ "loadError": "No se pudo cargar este personaje.",
1072
+ "noIntro": "Aún no hay introducción.",
1073
+ "relationships": "Relaciones",
1074
+ "recent": "Recursos recientes",
1075
+ "viewAllResources": "Ver todo",
1076
+ "fullbody": "Figura completa",
1077
+ "traits": "Rasgos",
1078
+ "tags": "Etiquetas",
1079
+ "tabsAria": "secciones del personaje",
1080
+ "documentsTitle": "En documentos",
1081
+ "openSidebar": "Abrir barra lateral"
1082
+ },
1083
+ "editDialog": {
1084
+ "aria": "Editar personaje",
1085
+ "name": "Nombre",
1086
+ "intro": "Introducción"
1087
+ },
1088
+ "editHub": {
1089
+ "title": "Editar - {{name}}"
1090
+ },
1091
+ "tagsDialog": {
1092
+ "title": "Editar etiquetas - {{name}}"
1093
+ },
1094
+ "actions": {
1095
+ "uploadResource": "Subir recurso",
1096
+ "editTags": "Etiquetas",
1097
+ "editTraits": "Rasgos",
1098
+ "editRelations": "Relaciones",
1099
+ "editBasic": "Información básica",
1100
+ "editAvatar": "Avatar",
1101
+ "editFullbody": "Figura completa",
1102
+ "openMessages": "Mensajes",
1103
+ "restore": "Restaurar",
1104
+ "hardDelete": "Eliminar para siempre",
1105
+ "softDelete": "Mover a la papelera"
1106
+ },
1107
+ "hardDelete": {
1108
+ "title": "¿Eliminar para siempre?",
1109
+ "description": "Esto elimina al personaje de forma permanente y mueve su carpeta a la papelera local.",
1110
+ "confirm": "Eliminar para siempre",
1111
+ "deleting": "Eliminando…"
1112
+ },
1113
+ "chips": {
1114
+ "linkCharacters": "Vincular personajes"
1115
+ },
1116
+ "picker": {
1117
+ "selectedEmpty": "Aún no hay personajes seleccionados.",
1118
+ "loadFailed": "No se pudo cargar"
1119
+ },
1120
+ "selectorDialog": {
1121
+ "title": "Seleccionar personaje",
1122
+ "confirm": "Confirmar",
1123
+ "confirmCount": "Confirmar ({{count}})",
1124
+ "notSelectable": "Este personaje no se puede seleccionar"
1125
+ },
1126
+ "charactership": {
1127
+ "empty": "Aún no hay relaciones. Elige un tipo arriba para añadir una.",
1128
+ "pickerTitle": "Seleccionar personaje",
1129
+ "deleteEdge": "Quitar",
1130
+ "deleteConfirmTitle": "Eliminar relación",
1131
+ "deleteConfirmDescription": "¿Seguro que quieres eliminar esta relación? Esto no se puede deshacer.",
1132
+ "pickCharacter": "Elegir personaje",
1133
+ "enterName": "Introducir nombre",
1134
+ "pickEndpoint": "Elegir extremo",
1135
+ "namePlaceholder": "Nombre",
1136
+ "noTypesHint": "Aún no hay tipos de relación.",
1137
+ "noTypesLink": "Añade tipos en Ajustes → Personalizado",
1138
+ "incompleteDraft": "Completa todas las relaciones nuevas antes de guardar",
1139
+ "toast": {
1140
+ "deleteSuccess": "Relación eliminada",
1141
+ "deleteFailed": "No se pudo eliminar la relación",
1142
+ "addSuccess": "Relación añadida",
1143
+ "saveFailed": "No se pudo guardar la relación"
1144
+ }
1145
+ }
1146
+ },
1147
+ "collections": {
1148
+ "entityLabel": "colección",
1149
+ "usageLabelOne": "recurso",
1150
+ "usageLabel": "recursos",
1151
+ "chip": {
1152
+ "openLabel": "Abrir la colección {{name}}"
1153
+ },
1154
+ "popover": {
1155
+ "empty": "Aún no hay recursos en esta colección."
1156
+ },
1157
+ "picker": {
1158
+ "quickCreate": "Añadir",
1159
+ "searchPlaceholder": "Buscar colecciones"
1160
+ },
1161
+ "editDialog": {
1162
+ "title": "Colecciones de {{name}}"
1163
+ },
1164
+ "panel": {
1165
+ "empty": "Aún no hay colecciones.",
1166
+ "addDialogTitle": "Añadir colección",
1167
+ "editDialogTitle": "Editar colección",
1168
+ "filterPlaceholder": "Filtrar colecciones",
1169
+ "reorderMode": "Reordenar",
1170
+ "reorderModeAria": "Activa la función de arrastrar y soltar para reordenar colecciones"
1171
+ }
1172
+ },
1173
+ "usage": {
1174
+ "title": "Estadísticas de uso",
1175
+ "description": "Tiempo de visualización entre plataformas — totales, el ritmo diario y en qué se te va el tiempo.",
1176
+ "history": {
1177
+ "title": "Historial de uso",
1178
+ "description": "Lo que has usado, lo más reciente primero",
1179
+ "empty": "Aún no hay registros de uso.",
1180
+ "loading": "Cargando…",
1181
+ "loadError": "No se pudo cargar el historial de uso.",
1182
+ "today": "Hoy",
1183
+ "yesterday": "Ayer",
1184
+ "unknownTime": "Hora desconocida",
1185
+ "totalLabel_one": "{{count}} elemento",
1186
+ "totalLabel_other": "{{count}} elementos",
1187
+ "tabs": {
1188
+ "all": "Todo",
1189
+ "resources": "Recursos",
1190
+ "characters": "Personajes",
1191
+ "documents": "Documentos"
1192
+ }
1193
+ },
1194
+ "stats": {
1195
+ "totalTime": "Tiempo total de visualización",
1196
+ "avgPerDay": "Promedio por día",
1197
+ "mostActiveDay": "Día más activo",
1198
+ "mostActiveDayFormat": "MMM D",
1199
+ "entries_one": "{{count}} entrada",
1200
+ "entries_other": "{{count}} entradas",
1201
+ "shareSectionTitle": "Desglose de cuota",
1202
+ "shareTitle": "Tiempo",
1203
+ "shareDescription": "Ordenado por tiempo de visualización del período seleccionado.",
1204
+ "viewShareTitle": "Vistas",
1205
+ "viewShareDescription": "Ordenado por cantidad de aperturas del período seleccionado.",
1206
+ "periodComparison": "Comparación de períodos",
1207
+ "filtersTitle": "Filtros",
1208
+ "trendDescription": "Minutos por día",
1209
+ "todayHourlyDescription": "Minutos por hora · hora local",
1210
+ "todayHourly": "Distribución por hora",
1211
+ "hourlyAverage": "Ritmo diario",
1212
+ "hourlyAverageDescription": "Promedio diario por hora · hora local",
1213
+ "topEntities": "Entidades más vistas hoy",
1214
+ "topEntitiesDescription": "Las más vistas hoy",
1215
+ "trend": "Tendencia de uso",
1216
+ "platformFilter": "Plataforma",
1217
+ "platformAll": "Todas las plataformas",
1218
+ "platformWebMobile": "Web móvil",
1219
+ "platformWebPc": "Web PC",
1220
+ "platformDesktop": "Escritorio",
1221
+ "currentPlatform": {
1222
+ "title": "Plataforma actual",
1223
+ "web-mobile": "Móvil",
1224
+ "web-pc": "PC",
1225
+ "desktop": "Escritorio"
1226
+ },
1227
+ "platformPill": {
1228
+ "web-mobile": "Web · Móvil",
1229
+ "web-pc": "Web · PC",
1230
+ "desktop": "Escritorio"
1231
+ },
1232
+ "exposureMode": "Conteo de tiempo",
1233
+ "exposureDirect": "Directo",
1234
+ "exposureAssociated": "Asociado",
1235
+ "exposureTotal": "Total",
1236
+ "exposureTime": {
1237
+ "direct": "Tiempo directo",
1238
+ "associated": "Tiempo asociado",
1239
+ "total": "Tiempo total"
1240
+ },
1241
+ "exposureModeNote": "Los totales, las tendencias y los porcentajes de cuota de arriba cuentan solo las sesiones directas. Las clasificaciones de abajo usan el modo seleccionado."
1242
+ },
1243
+ "insight": {
1244
+ "moreThanPeriod": "{{duration}} más que {{period}}",
1245
+ "lessThanPeriod": "{{duration}} menos que {{period}}",
1246
+ "sameAsPeriod": "Igual que {{period}}",
1247
+ "comparison": {
1248
+ "yesterday": "ayer",
1249
+ "lastWeek": "la semana pasada",
1250
+ "prior7Days": "los 7 días anteriores",
1251
+ "lastMonth": "el mes pasado",
1252
+ "lastYear": "el año pasado"
1253
+ }
1254
+ },
1255
+ "entityExposure": {
1256
+ "totalTime": "{{duration}} de visualización",
1257
+ "views_one": "{{count}} vista",
1258
+ "views_other": "{{count}} vistas",
1259
+ "lastViewed": "Visto por última vez {{time}}"
1260
+ },
1261
+ "leaderboard": {
1262
+ "entityAll": "Todo",
1263
+ "entityResources": "Recursos",
1264
+ "entityCharacters": "Personajes",
1265
+ "entityDocuments": "Documentos",
1266
+ "entityPlugins": "Complementos de contenido",
1267
+ "empty": "No hay uso para este período.",
1268
+ "viewsShort_one": "{{count}} vista",
1269
+ "viewsShort_other": "{{count}} vistas",
1270
+ "associatedSessionsShort": "{{count}} asociados",
1271
+ "rankLabel": "Puesto {{rank}}"
1272
+ },
1273
+ "periods": {
1274
+ "today": "Hoy",
1275
+ "last7days": "7 días",
1276
+ "thisWeek": "Esta semana",
1277
+ "thisMonth": "Este mes",
1278
+ "thisYear": "Este año",
1279
+ "all": "Todo el tiempo"
1280
+ }
1281
+ },
1282
+ "trace": {
1283
+ "title": "Huellas",
1284
+ "description": "Registro de solo adición de tus acciones — importaciones, exportaciones, eliminaciones, restauraciones y votos. Las filas conservan los nombres de las entidades, así que sobreviven a las eliminaciones permanentes.",
1285
+ "timelineTitle": "Línea de tiempo",
1286
+ "filterAll": "Todo",
1287
+ "filters": {
1288
+ "import": "Importaciones",
1289
+ "export": "Exportaciones",
1290
+ "softDelete": "Papelera",
1291
+ "restore": "Restauraciones",
1292
+ "hardDelete": "Eliminaciones permanentes",
1293
+ "dislikeAdd": "No me gusta",
1294
+ "dislikeCancel": "Deshacer voto",
1295
+ "messageCreate": "Mensajes",
1296
+ "messageSoftDelete": "Eliminaciones de mensajes",
1297
+ "messageRestore": "Restauraciones de mensajes",
1298
+ "messageHardDelete": "Eliminaciones permanentes",
1299
+ "messageVoteAdd": "Votos",
1300
+ "messageVoteCancel": "Deshacer voto",
1301
+ "messageVoteSwap": "Cambios de voto",
1302
+ "documentCreate": "Creaciones de documentos",
1303
+ "documentCommit": "Actualizaciones de documentos",
1304
+ "documentSoftDelete": "Documentos a la papelera",
1305
+ "documentRestore": "Restauraciones de documentos",
1306
+ "documentHardDelete": "Eliminaciones de documentos",
1307
+ "characterCreate": "Creaciones de personajes",
1308
+ "characterSoftDelete": "Personajes a la papelera",
1309
+ "characterRestore": "Restauraciones de personajes",
1310
+ "characterHardDelete": "Eliminaciones de personajes",
1311
+ "group": {
1312
+ "resource": "Recursos",
1313
+ "messages": "Mensajes",
1314
+ "document": "Documentos",
1315
+ "character": "Personajes"
1316
+ }
1317
+ },
1318
+ "actions": {
1319
+ "import": "Se importó {{name}}",
1320
+ "export": "Se exportó {{name}}",
1321
+ "softDelete": "Se movió {{name}} a la papelera",
1322
+ "restore": "Se restauró {{name}}",
1323
+ "hardDelete": "Se eliminó {{name}} de forma permanente",
1324
+ "dislikeAdd": "Se marcó {{name}} con no me gusta",
1325
+ "dislikeCancel": "Se quitó el no me gusta de {{name}}",
1326
+ "messageCreate": "Se dejó un mensaje: «{{name}}»",
1327
+ "messageSoftDelete": "Se eliminó el mensaje «{{name}}»",
1328
+ "messageRestore": "Se restauró el mensaje «{{name}}»",
1329
+ "messageHardDelete": "Se eliminó de forma permanente el mensaje «{{name}}»",
1330
+ "messageVoteAddLike": "Se marcó como me gusta el mensaje «{{name}}»",
1331
+ "messageVoteAddDislike": "Se marcó con no me gusta el mensaje «{{name}}»",
1332
+ "messageVoteCancelLike": "Se quitó el me gusta de «{{name}}»",
1333
+ "messageVoteCancelDislike": "Se quitó el no me gusta de «{{name}}»",
1334
+ "messageVoteSwapLike": "Se cambió a me gusta «{{name}}»",
1335
+ "messageVoteSwapDislike": "Se cambió a no me gusta «{{name}}»",
1336
+ "documentCreate": "Se creó el documento «{{name}}»",
1337
+ "documentCommit": "Se actualizó el documento «{{name}}»",
1338
+ "documentSoftDelete": "Se movió a la papelera el documento «{{name}}»",
1339
+ "documentRestore": "Se restauró el documento «{{name}}»",
1340
+ "documentHardDelete": "Se eliminó de forma permanente el documento «{{name}}»",
1341
+ "characterCreate": "Se creó el personaje «{{name}}»",
1342
+ "characterSoftDelete": "Se movió a la papelera el personaje «{{name}}»",
1343
+ "characterRestore": "Se restauró el personaje «{{name}}»",
1344
+ "characterHardDelete": "Se eliminó de forma permanente el personaje «{{name}}»"
1345
+ },
1346
+ "meta": {
1347
+ "bulk": "Lote",
1348
+ "source": "De {{name}}",
1349
+ "fileCount_one": "{{count}} archivo",
1350
+ "fileCount_other": "{{count}} archivos"
1351
+ },
1352
+ "overview": {
1353
+ "title": "Resumen del período",
1354
+ "today": "Hoy",
1355
+ "last7days": "7 días",
1356
+ "thisMonth": "Este mes",
1357
+ "thisYear": "Este año",
1358
+ "actions": {
1359
+ "today": "Acciones de hoy",
1360
+ "last7days": "Acciones de esta semana",
1361
+ "thisMonth": "Acciones de este mes",
1362
+ "thisYear": "Acciones de este año"
1363
+ },
1364
+ "busiestKind": "Tipo más frecuente",
1365
+ "restores": "Restauraciones",
1366
+ "weekTotal": "Total semanal",
1367
+ "avgPerDay": "Promedio por día",
1368
+ "moreThanPrev": "{{count}} más que el período anterior",
1369
+ "lessThanPrev": "{{count}} menos que el período anterior",
1370
+ "sameAsPrev": "Igual que el período anterior"
1371
+ },
1372
+ "today": "Hoy",
1373
+ "yesterday": "Ayer",
1374
+ "loading": "Cargando huellas…",
1375
+ "loadError": "No se pudieron cargar las huellas",
1376
+ "empty": "Aún no hay huellas. Las importaciones, exportaciones, eliminaciones y votos de no me gusta se registrarán aquí.",
1377
+ "count_one": "{{count}} huella",
1378
+ "count_other": "{{count}} huellas"
1379
+ },
1380
+ "resources": {
1381
+ "title": "Recursos",
1382
+ "upload": "Subir",
1383
+ "import": {
1384
+ "action": "Importar",
1385
+ "title": "Importar",
1386
+ "description": "Trae una carpeta completa de una vez — cada elemento de primer nivel se convierte en un recurso."
1387
+ },
1388
+ "source": {
1389
+ "fallback": "Enlace de origen",
1390
+ "aria": "Abrir origen: {{name}}"
1391
+ },
1392
+ "new": {
1393
+ "title": "Subir",
1394
+ "description": "Prepara primero los archivos — los metadatos pueden completarse después.",
1395
+ "files": "Archivos",
1396
+ "filesDescription": "Los archivos soltados se preparan de inmediato — reordena con libertad, nada se vuelve a subir.",
1397
+ "filesCount": "archivos",
1398
+ "basicInfo": "Información básica",
1399
+ "basicDescription": "Qué son estos archivos, en conjunto.",
1400
+ "links": "Vínculos",
1401
+ "linksDescription": "Etiquetas, personajes y colecciones a los que pertenece este recurso.",
1402
+ "coverDescription": "Opcional — se toma del primer archivo por defecto.",
1403
+ "folder": {
1404
+ "sourceShared": "Explorar carpetas compartidas",
1405
+ "sourceZip": "Elegir un archivo comprimido",
1406
+ "browseTitle": "Explorar carpeta",
1407
+ "browseDescription": "Selecciona la carpeta a analizar.",
1408
+ "previewTitle": "Resultados del análisis",
1409
+ "previewDescription": "Revisa los elementos a importar.",
1410
+ "resultTitle": "Resultados de la importación",
1411
+ "scanHere": "Analizar",
1412
+ "noSubdirs": "Aún no hay subcarpetas.",
1413
+ "uploading": "Subiendo…",
1414
+ "extracting": "Extrayendo…",
1415
+ "scanning": "Analizando…",
1416
+ "sharedRoot": "Raíz compartida",
1417
+ "zipRoot": "Raíz del archivo comprimido",
1418
+ "name": "Nombre",
1419
+ "type": "Tipo",
1420
+ "plugin": "Complemento",
1421
+ "confirmImport": "Importar",
1422
+ "importing": "Importando…",
1423
+ "importDone": "Listo",
1424
+ "resultScanned": "Analizado",
1425
+ "resultImported": "Importado",
1426
+ "resultFailed": "Fallido",
1427
+ "sourceSharedDescription": "Elige una carpeta de las raíces de importación compartidas del servidor.",
1428
+ "sourceSharedDisabled": "La importación de carpetas compartidas no está configurada.",
1429
+ "sourceZipDescription": "Un .zip — se extrae en el servidor y luego se analiza.",
1430
+ "importingDescription": "Se están creando recursos a partir de la carpeta seleccionada. Esto puede tardar un momento.",
1431
+ "stepSource": "Origen",
1432
+ "stepBrowse": "Explorar",
1433
+ "stepPreview": "Vista previa",
1434
+ "stepImport": "Importar",
1435
+ "stepDone": "Listo",
1436
+ "stepsAria": "Pasos de la importación",
1437
+ "emptyTitle": "Esta carpeta está vacía.",
1438
+ "emptyDescription": "No hay archivos ni carpetas para importar aquí todavía.",
1439
+ "previewCount_one": "{{count}} elemento listo para importar",
1440
+ "previewCount_other": "{{count}} elementos listos para importar",
1441
+ "howTitle": "Cómo funciona",
1442
+ "howScan": "Analizar",
1443
+ "howScanMeta": "Se localiza y mide cada elemento de primer nivel",
1444
+ "howPreview": "Vista previa",
1445
+ "howPreviewMeta": "Se detecta el tipo de contenido por elemento, antes de escribir nada",
1446
+ "howImport": "Importar",
1447
+ "howImportMeta": "Progreso por elemento, con un resumen al final"
1448
+ },
1449
+ "name": "Nombre",
1450
+ "intro": "Introducción",
1451
+ "plugin": "Complemento",
1452
+ "contentType": "Tipo de contenido",
1453
+ "sourceName": "Nombre de origen",
1454
+ "sourceUrl": "URL de origen",
1455
+ "sourceHint": "Se recomienda al menos uno para que puedas encontrar de dónde viene esto.",
1456
+ "sourceNamePlaceholder": "p. ej., un sitio web o una plataforma",
1457
+ "sourceUrlPlaceholder": "p. ej. https://...",
1458
+ "introPlaceholder": "De qué trata este conjunto.",
1459
+ "tags": "Etiquetas",
1460
+ "characters": "Personajes",
1461
+ "cover": "Portada",
1462
+ "collections": "Colecciones",
1463
+ "namePlaceholder": "Nombre",
1464
+ "useFilenameAsName": "Usar el nombre del archivo como nombre",
1465
+ "oneFilePerResource": "Un archivo por recurso — cada recurso contiene un solo archivo.",
1466
+ "createdCount_one": "Se creó {{count}} recurso",
1467
+ "createdCount_other": "Se crearon {{count}} recursos",
1468
+ "duplicatesFound_one": "Este recurso tiene {{count}} imagen duplicada de recursos existentes: {{names}}",
1469
+ "duplicatesFound_other": "Este recurso tiene {{count}} imágenes duplicadas de recursos existentes: {{names}}",
1470
+ "duplicateFileNames_one": "{{count}} archivo tiene un nombre duplicado en este lote — se renombrará automáticamente (p. ej., nombre-1.png)",
1471
+ "duplicateFileNames_other": "{{count}} archivos tienen nombres duplicados en este lote — se renombrarán automáticamente (p. ej., nombre-1.png)",
1472
+ "submit": "Crear",
1473
+ "uploading": "Subiendo…",
1474
+ "errors": {
1475
+ "pickAtLeastOne": "Elige al menos un archivo",
1476
+ "uploadFailed": "Falló la subida",
1477
+ "stagingFailed_one": "{{count}} archivo falló al subir — quítalo e inténtalo de nuevo",
1478
+ "stagingFailed_other": "{{count}} archivos fallaron al subir — quítalos e inténtalo de nuevo",
1479
+ "attachCollectionsFailed": "Se creó el recurso, pero no se pudo adjuntar a una o más colecciones",
1480
+ "batchPartialHint": "Si esto se detuvo a medias, algunos recursos ya pueden existir — revisa la lista."
1481
+ },
1482
+ "created": "Creado",
1483
+ "autoDetect": "Detectar automáticamente"
1484
+ },
1485
+ "search": {
1486
+ "placeholder": "Buscar recursos…",
1487
+ "empty": "Aún no hay recursos.",
1488
+ "trashEmpty": "Aún no hay recursos en la papelera.",
1489
+ "filters": "Filtros",
1490
+ "sectionOptions": "Opciones",
1491
+ "sectionTags": "Etiquetas",
1492
+ "sectionCharacters": "Personajes",
1493
+ "sectionPlugins": "Complementos",
1494
+ "sectionSource": "Origen",
1495
+ "sectionCollections": "Colecciones",
1496
+ "clearAll": "Limpiar todo",
1497
+ "apply": "Buscar",
1498
+ "viewGrid": "Vista de cuadrícula",
1499
+ "viewMasonry": "Vista tipo mosaico",
1500
+ "sourceLabel": "Origen",
1501
+ "sourceAll": "Todos los orígenes",
1502
+ "sortLabel": "Ordenar por",
1503
+ "orderLabel": "Orden",
1504
+ "sortCreated": "Creado",
1505
+ "sortUpdated": "Actualizado",
1506
+ "sortDisliked": "No me gusta",
1507
+ "orderLatest": "Más reciente",
1508
+ "orderEarliest": "Más antiguo",
1509
+ "orderMost": "Más",
1510
+ "orderLeast": "Menos",
1511
+ "noCharacters": "Sin personajes",
1512
+ "dislikedOnly": "Solo con no me gusta",
1513
+ "trash": "Papelera",
1514
+ "random": "Aleatorio",
1515
+ "pageSizeLabel": "Por página",
1516
+ "itemCount_one": "{{count}} recurso",
1517
+ "itemCount_other": "{{count}} recursos"
1518
+ },
1519
+ "bulk": {
1520
+ "select": "Seleccionar",
1521
+ "done": "Listo",
1522
+ "toolbarCount": "{{count}} seleccionados",
1523
+ "selectCurrentPage": "Seleccionar página",
1524
+ "invertCurrentPage": "Invertir",
1525
+ "clearSelection": "Limpiar",
1526
+ "download": "Descargar",
1527
+ "downloadFailed": "Falló la descarga.",
1528
+ "downloadRejected": "No se pudo crear el archivo comprimido (selección vacía o no válida).",
1529
+ "downloadTooMany": "Selecciona como máximo {{max}} recursos para descargar a la vez.",
1530
+ "editTags": "Editar etiquetas",
1531
+ "moveToTrash": "Papelera",
1532
+ "deleteForever": "Eliminar para siempre",
1533
+ "confirmSoft_one": "¿Mover {{count}} recurso a la papelera?",
1534
+ "confirmSoft_other": "¿Mover {{count}} recursos a la papelera?",
1535
+ "softDeleteDescription": "Los recursos seleccionados se moverán a la papelera. Se podrán restaurar más tarde desde la papelera.",
1536
+ "hardDeleteTitle": "¿Eliminar los seleccionados para siempre?",
1537
+ "hardDeleteDescription": "Esto elimina de forma permanente los recursos seleccionados y mueve sus carpetas a la papelera local. Esto no se puede deshacer.",
1538
+ "hardDeleteConfirm": "Eliminar para siempre",
1539
+ "hardDeleteDeleting": "Eliminando…",
1540
+ "toastAllOk_one": "Se actualizó {{count}} recurso.",
1541
+ "toastAllOk_other": "Se actualizaron {{count}} recursos.",
1542
+ "toastAllFailed": "No se actualizó nada ({{count}} fallidos).",
1543
+ "toastPartial": "{{ok}} correctos, {{failed}} fallidos."
1544
+ },
1545
+ "actions": {
1546
+ "editBasic": "Información básica",
1547
+ "editCharacters": "Personajes vinculados",
1548
+ "editTags": "Etiquetas",
1549
+ "editCollections": "Colecciones",
1550
+ "editCover": "Portada",
1551
+ "download": "Descargar",
1552
+ "openMessages": "Mensajes",
1553
+ "extend": "Ampliar",
1554
+ "dislike": "No me gusta",
1555
+ "dislikeCancellable": "Puede deshacerse",
1556
+ "restore": "Restaurar",
1557
+ "hardDelete": "Eliminar para siempre",
1558
+ "softDelete": "Mover a la papelera",
1559
+ "actionsAria": "Acciones para {{name}}"
1560
+ },
1561
+ "hardDelete": {
1562
+ "title": "¿Eliminar para siempre?",
1563
+ "description": "Esto elimina el recurso de forma permanente y mueve su carpeta a la papelera local.",
1564
+ "confirm": "Eliminar para siempre",
1565
+ "deleting": "Eliminando…"
1566
+ },
1567
+ "toast": {
1568
+ "movedToTrash": "Movido a la papelera",
1569
+ "deleteFailed": "No se pudo eliminar",
1570
+ "restored": "Restaurado",
1571
+ "restoreFailed": "No se pudo restaurar",
1572
+ "deletedForever": "Eliminado para siempre",
1573
+ "disliked": "Marcado con no me gusta",
1574
+ "dislikeRemoved": "No me gusta quitado",
1575
+ "dislikeFailed": "No se pudo actualizar el no me gusta"
1576
+ },
1577
+ "preview": {
1578
+ "aria": "Vista previa: {{name}}",
1579
+ "closePreview": "Cerrar vista previa",
1580
+ "enterFullscreen": "Entrar en pantalla completa",
1581
+ "exitFullscreen": "Salir de pantalla completa"
1582
+ },
1583
+ "detail": {
1584
+ "docSearchTitle": "En documentos",
1585
+ "emptyInline": "Recurso vacío",
1586
+ "notFound": "No se encontró el recurso",
1587
+ "fileCount_one": "{{count}} archivo",
1588
+ "fileCount_other": "{{count}} archivos",
1589
+ "sourceFrom": "De {{name}}",
1590
+ "openSidebar": "Abrir barra lateral",
1591
+ "fullscreen": "Pantalla completa",
1592
+ "anniversary_one": "En la biblioteca desde hace {{count}} año",
1593
+ "anniversary_other": "En la biblioteca desde hace {{count}} años",
1594
+ "sidebar": {
1595
+ "tagsHeading": "Etiquetas",
1596
+ "colEmpty": "Aún no hay otros recursos en esta colección.",
1597
+ "noTags": "Aún no hay etiquetas asignadas.",
1598
+ "relatedByTagsHeading": "Relacionados por etiquetas",
1599
+ "similarImagesHeading": "Imágenes similares",
1600
+ "duplicateImagesHeading": "Duplicados",
1601
+ "similarWithinHeading": "Similares dentro de este recurso",
1602
+ "imageMatchCount_one": "{{count}} archivo coincidente",
1603
+ "imageMatchCount_other": "{{count}} archivos coincidentes",
1604
+ "duplicateCount_one": "{{count}} archivo duplicado",
1605
+ "duplicateCount_other": "{{count}} archivos duplicados",
1606
+ "intraSimilarCount_one": "{{count}} archivo similar",
1607
+ "intraSimilarCount_other": "{{count}} archivos similares",
1608
+ "matchSimilarity": "{{name}} · {{percent}}% similar",
1609
+ "similarity": "{{percent}}% similar"
1610
+ }
1611
+ },
1612
+ "editDialog": {
1613
+ "aria": "Editar información básica del recurso",
1614
+ "plugin": "Complemento",
1615
+ "contentTypeMissing": "Falta: {{names}}",
1616
+ "name": "Nombre",
1617
+ "intro": "Introducción",
1618
+ "sourceName": "Nombre de origen",
1619
+ "sourceUrl": "Dirección de origen",
1620
+ "sourceHint": "Se recomienda al menos uno para que puedas encontrar de dónde viene esto.",
1621
+ "namePlaceholder": "p. ej., Puerto al anochecer",
1622
+ "introPlaceholder": "De qué trata este recurso.",
1623
+ "sourceNamePlaceholder": "p. ej., un sitio web o una plataforma",
1624
+ "sourceUrlPlaceholder": "p. ej. https://...",
1625
+ "saveChanges": "Guardar cambios",
1626
+ "toast": {
1627
+ "contentTypeFailed": "No se pudo cambiar el tipo de contenido"
1628
+ }
1629
+ },
1630
+ "editHub": {
1631
+ "title": "Editar - {{name}}"
1632
+ },
1633
+ "tagsDialog": {
1634
+ "title": "Editar etiquetas - {{name}}"
1635
+ },
1636
+ "selectorDialog": {
1637
+ "title": "Seleccionar recurso"
1638
+ },
1639
+ "viewSelected": "Solo seleccionados",
1640
+ "viewSelectedTooMany": "Solo seleccionados admite hasta {{max}} elementos",
1641
+ "picker": {
1642
+ "selectedEmpty": "No hay recursos seleccionados.",
1643
+ "loadFailed": "No se pudo cargar el recurso."
1644
+ },
1645
+ "selectAria": "Seleccionar {{name}}",
1646
+ "toggleSelectAria": "Alternar selección de {{name}}",
1647
+ "video": {
1648
+ "previewAria": "Vista previa de {{name}}",
1649
+ "playAria": "Reproducir {{name}}",
1650
+ "stopAria": "Detener {{name}}"
1651
+ },
1652
+ "audio": {
1653
+ "playAria": "Reproducir {{name}}",
1654
+ "pauseAria": "Pausar {{name}}",
1655
+ "seekAria": "Avanzar dentro de {{name}}"
1656
+ },
1657
+ "editPanel": {
1658
+ "nameRequired": "El nombre es obligatorio"
1659
+ }
1660
+ },
1661
+ "relationshipTypes": {
1662
+ "panel": {
1663
+ "empty": "Aún no hay relaciones. Toca añadir para crear una.",
1664
+ "addDialogTitle": "Añadir relación",
1665
+ "editDialogTitle": "Editar relación",
1666
+ "filterPlaceholder": "Filtrar tipos de relación",
1667
+ "linkCount_one": "{{count}} vínculo",
1668
+ "linkCount_other": "{{count}} vínculos",
1669
+ "reorderMode": "Reordenar",
1670
+ "reorderModeAria": "Activa la función de arrastrar y soltar para reordenar relaciones",
1671
+ "tabDefinition": "Definición",
1672
+ "tabDetails": "Detalles"
1673
+ },
1674
+ "preview": {
1675
+ "characterA": "Personaje A",
1676
+ "characterB": "Personaje B",
1677
+ "aCallsB": "A llama a B",
1678
+ "bCallsA": "B llama a A",
1679
+ "labelPlaceholder": "p. ej., amigo"
1680
+ },
1681
+ "kind": {
1682
+ "directed": {
1683
+ "label": "Dirigida",
1684
+ "iconLabel": "Unidireccional",
1685
+ "hint": "Relación unidireccional solo de A a B, p. ej., amor no correspondido."
1686
+ },
1687
+ "symmetric": {
1688
+ "label": "Simétrica",
1689
+ "iconLabel": "Mutua",
1690
+ "hint": "Relación mutua, p. ej., amigos o cónyuges."
1691
+ },
1692
+ "hierarchical": {
1693
+ "label": "Jerárquica",
1694
+ "iconLabel": "Jerarquizada",
1695
+ "hint": "A por encima de B, dirección A→B, p. ej., mentor y aprendiz"
1696
+ }
1697
+ },
1698
+ "delete": {
1699
+ "kindLabel": "relación",
1700
+ "usageLabelOne": "vínculo de relación",
1701
+ "usageLabel": "vínculos de relación"
1702
+ },
1703
+ "toast": {
1704
+ "created": "Relación creada",
1705
+ "createFailed": "No se pudo crear la relación"
1706
+ }
1707
+ },
1708
+ "traits": {
1709
+ "panel": {
1710
+ "empty": "Aún no hay definiciones de rasgos. Usa Añadir para crear una.",
1711
+ "addDialogTitle": "Añadir rasgo",
1712
+ "editDialogTitle": "Editar rasgo",
1713
+ "filterPlaceholder": "Filtrar rasgos",
1714
+ "reorderMode": "Reordenar",
1715
+ "reorderModeAria": "Activa la función de arrastrar y soltar para reordenar rasgos",
1716
+ "toast": {
1717
+ "added": "Rasgo añadido"
1718
+ }
1719
+ },
1720
+ "kind": {
1721
+ "text": "Texto",
1722
+ "multitext": "Texto múltiple",
1723
+ "number": "Número",
1724
+ "weight": "Peso",
1725
+ "height": "Altura",
1726
+ "date": "Fecha"
1727
+ },
1728
+ "delete": {
1729
+ "kindLabel": "rasgo",
1730
+ "usageLabelOne": "personaje",
1731
+ "usageLabel": "personajes"
1732
+ },
1733
+ "values": {
1734
+ "noDefinitions": "Aún no hay definiciones de rasgos. Abre Ajustes / Rasgos para añadirlas.",
1735
+ "addField": "Añadir campo",
1736
+ "removeField": "Quitar campo",
1737
+ "inputPlaceholder": "Introducir valor",
1738
+ "remove": "Quitar",
1739
+ "allSet": "Todos los rasgos ya están definidos.",
1740
+ "emptyError": "Estos rasgos están vacíos y no se pueden guardar: {{names}}",
1741
+ "parseError": "Valor no válido para «{{name}}»: {{value}}",
1742
+ "date": {
1743
+ "prefixPlaceholder": "Era / calendario",
1744
+ "after": "d. C.",
1745
+ "before": "a. C.",
1746
+ "year": "Año",
1747
+ "month": "Mes",
1748
+ "day": "Día"
1749
+ }
1750
+ }
1751
+ },
1752
+ "categories": {
1753
+ "panel": {
1754
+ "empty": "Aún no hay categorías ni etiquetas.",
1755
+ "kindTabsAria": "Tipo de categoría",
1756
+ "kindTab": {
1757
+ "common": "Común",
1758
+ "resource": "Recursos",
1759
+ "character": "Personajes"
1760
+ },
1761
+ "dependencyMessage": "Esta etiqueta la usan {{parts}} y no se puede eliminar directamente.",
1762
+ "dependencyResources": "{{count}} rec.",
1763
+ "dependencyCharacters": "{{count}} pers.",
1764
+ "tagCharacterCount": "pers. {{count}}",
1765
+ "tagResourceCount": "rec. {{count}}",
1766
+ "copyTagName": "Copiar al portapapeles",
1767
+ "toast": {
1768
+ "added": "Añadido",
1769
+ "addFailed": "No se pudo añadir",
1770
+ "copied": "Copiado al portapapeles",
1771
+ "copyFailed": "No se pudo copiar",
1772
+ "moved": "Etiqueta movida"
1773
+ },
1774
+ "mergeTagMenu": "Fusionar en…",
1775
+ "specialStyle": {
1776
+ "silver": "Plata",
1777
+ "gold": "Oro",
1778
+ "rainbow": "Arcoíris",
1779
+ "oilslick": "Aceite",
1780
+ "kintsugi": "Kintsugi"
1781
+ }
1782
+ },
1783
+ "delete": {
1784
+ "kindLabelCategory": "categoría",
1785
+ "kindLabelTag": "etiqueta",
1786
+ "usageLabelTagsOne": "etiqueta",
1787
+ "usageLabelTags": "etiquetas"
1788
+ },
1789
+ "form": {
1790
+ "createCategory": "Crear categoría",
1791
+ "creating": "Creando…",
1792
+ "addTag": "Crear etiqueta"
1793
+ },
1794
+ "dialog": {
1795
+ "addCategoryTitle": "Nueva categoría",
1796
+ "addTagTitle": "Nueva etiqueta",
1797
+ "editCategoryTitle": "Editar categoría",
1798
+ "editTagTitle": "Editar etiqueta"
1799
+ }
1800
+ },
1801
+ "tags": {
1802
+ "picker": {
1803
+ "noCategories": "Aún no hay categorías.",
1804
+ "selectedHeader": "Seleccionadas:",
1805
+ "tagsHeader": "Etiquetas:",
1806
+ "empty": "Aún no hay etiquetas en esta categoría.",
1807
+ "emptyAll": "Aún no hay etiquetas definidas.",
1808
+ "searchPlaceholder": "Buscar etiquetas…",
1809
+ "noMatches": "No hay etiquetas que coincidan."
1810
+ },
1811
+ "bulk": {
1812
+ "nonCommonHint_one": "{{count}} etiqueta no es común a todos los elementos seleccionados. Puedes añadir cualquier etiqueta; solo se pueden quitar las etiquetas comunes.",
1813
+ "nonCommonHint_other": "{{count}} etiquetas no son comunes a todos los elementos seleccionados. Puedes añadir cualquier etiqueta; solo se pueden quitar las etiquetas comunes."
1814
+ },
1815
+ "toast": {
1816
+ "attachFailed": "No se pudo adjuntar la etiqueta",
1817
+ "detachFailed": "No se pudo quitar la etiqueta"
1818
+ },
1819
+ "filterMode": {
1820
+ "and": "Todas",
1821
+ "or": "Cualquiera",
1822
+ "not": "Sin",
1823
+ "nor": "Ninguna"
1824
+ },
1825
+ "merge": {
1826
+ "title": "Fusionar etiquetas",
1827
+ "description": "El uso y las reglas de la duplicada se mueven a la superviviente.",
1828
+ "targetPlaceholder": "Elige la etiqueta superviviente",
1829
+ "confirm": "Confirmar fusión",
1830
+ "confirming": "Fusionando…",
1831
+ "countResources_one": "{{count}} recurso",
1832
+ "countResources_other": "{{count}} recursos",
1833
+ "countCharacters_one": "{{count}} personaje",
1834
+ "countCharacters_other": "{{count}} personajes",
1835
+ "countSiblingRules_one": "{{count}} regla hermana",
1836
+ "countSiblingRules_other": "{{count}} reglas hermanas",
1837
+ "countParentRules_one": "{{count}} regla de padre",
1838
+ "countParentRules_other": "{{count}} reglas de padre",
1839
+ "preview": "Mueve {{resources}}, {{characters}}, {{siblingRules}} y {{parentRules}}.",
1840
+ "collision": "Esta categoría ya tiene una etiqueta llamada «{{name}}» — puedes fusionarlas.",
1841
+ "offer": "Fusionar con la duplicada",
1842
+ "toast": {
1843
+ "success": "Fusionado: {{resources}}, {{characters}}, {{siblingRules}}, {{parentRules}}"
1844
+ }
1845
+ },
1846
+ "rules": {
1847
+ "description": "Alias: varias etiquetas se muestran como una sola etiqueta display en todas partes (p. ej., «gato» y «gatito» → «gato»). Padres: una entrada etiquetada con el hijo también lleva al padre (p. ej., «atigrado» → «gato»). Los personajes pueden unirse a cualquiera de los dos lados: un personaje vinculado se muestra como su etiqueta, así que los recursos adjuntos a él muestran la etiqueta atenuada (marcada como virtual) y coinciden con sus búsquedas.",
1848
+ "displayLabel": "etiqueta display",
1849
+ "badPlaceholder": "sinónimo",
1850
+ "goodPlaceholder": "etiqueta display",
1851
+ "addAlias": "Añadir alias",
1852
+ "alias": "Alias",
1853
+ "addAliasDescription": "Elige el sinónimo y la etiqueta display en la que se muestra.",
1854
+ "aliasesTitle": "Alias",
1855
+ "groupCount_one": "{{count}} grupo",
1856
+ "groupCount_other": "{{count}} grupos",
1857
+ "setDisplay": "Establecer como etiqueta display",
1858
+ "remove": "Quitar",
1859
+ "pickCharacter": "Personaje…",
1860
+ "pickTag": "Etiqueta…",
1861
+ "tagPickTitle": "Elige una etiqueta",
1862
+ "characterLinkHint": "Vínculos de personajes: un personaje se muestra como su etiqueta — los recursos adjuntos al personaje la muestran atenuada (marcada como virtual) y coinciden con sus búsquedas.",
1863
+ "empty": "Aún no hay grupos hermanos.",
1864
+ "displaysAs": "Se muestra como {{name}}",
1865
+ "groupCounts": "{{resources}} rec. · {{characters}} pers.",
1866
+ "parentsTitle": "Padres",
1867
+ "ruleCount_one": "{{count}} regla",
1868
+ "ruleCount_other": "{{count}} reglas",
1869
+ "child": "Hijo",
1870
+ "childPlaceholder": "hijo",
1871
+ "parentPlaceholder": "padre",
1872
+ "addRule": "Añadir regla",
1873
+ "addRuleDescription": "Elige el hijo y el padre bajo el que se muestra.",
1874
+ "endpointTag": "Etiqueta",
1875
+ "endpointCharacter": "Personaje",
1876
+ "parentsEmpty": "Aún no hay reglas de padre.",
1877
+ "noMatch": "No hay reglas que coincidan.",
1878
+ "searchPlaceholder": "Filtrar reglas…",
1879
+ "toast": {
1880
+ "pairAdded": "Par hermano añadido",
1881
+ "pairRemoved": "Par hermano quitado",
1882
+ "displaySet": "Etiqueta display establecida",
1883
+ "parentAdded": "Regla de padre añadida",
1884
+ "parentRemoved": "Regla de padre quitada"
1885
+ }
1886
+ },
1887
+ "errors": {
1888
+ "nameExists": "Ya existe una etiqueta con este nombre en esta categoría.",
1889
+ "siblingCycle": "Esa combinación crearía un ciclo.",
1890
+ "siblingKindIsolation": "Un grupo hermano puede combinar común con un solo otro tipo (las etiquetas de recursos y de personajes no se pueden mezclar).",
1891
+ "parentSelf": "Una etiqueta no puede ser su propio padre.",
1892
+ "parentCycle": "Esa regla crearía un ciclo.",
1893
+ "parentKindIsolation": "Una cadena de padres puede combinar común con un solo otro tipo (las etiquetas de recursos y de personajes no se pueden mezclar).",
1894
+ "characterMissing": "El personaje ya no existe — elige uno vigente.",
1895
+ "mergeKindMismatch": "No se pueden fusionar etiquetas de tipos distintos (las etiquetas de recursos y de personajes no se pueden fusionar).",
1896
+ "mergeCreatesCycle": "La fusión crearía un ciclo de reglas — ajusta antes las reglas relacionadas."
1897
+ },
1898
+ "virtual": {
1899
+ "label": "virtual"
1900
+ }
1901
+ },
1902
+ "imageEdit": {
1903
+ "confirmDeleteTitle": "¿Quitar la imagen?",
1904
+ "confirmDeleteDescription": "Esto quitará la imagen actual. Esta acción no se puede deshacer."
1905
+ },
1906
+ "deleteEntity": {
1907
+ "dialogConfirmTitle": "¿Eliminar «{{name}}»?",
1908
+ "dialogConfirmDescription": "Se va a eliminar de forma permanente el elemento «{{kind}}». Esta acción no se puede deshacer.",
1909
+ "defaultLabel": "Eliminar",
1910
+ "defaultNoun": "elementos",
1911
+ "defaultNounOne": "elemento",
1912
+ "confirm": "Confirmar eliminación",
1913
+ "deleting": "Eliminando…",
1914
+ "forceTitle": "No se puede eliminar {{kind}}",
1915
+ "usageMessage": "No se puede eliminar directamente: «{{kind}}» está en uso en {{count}} {{usage}}.",
1916
+ "toast": {
1917
+ "deleteSuccess": "Se eliminó «{{kind}}».",
1918
+ "deleteFailed": "Falló la eliminación",
1919
+ "forceDeleteSuccess": "«{{kind}}» se eliminó por la fuerza",
1920
+ "forceDeleteFailed": "Falló la eliminación forzada",
1921
+ "nameMismatch": "El nombre no coincide"
1922
+ },
1923
+ "forceConfirm": "Eliminar por la fuerza",
1924
+ "forceDeleting": "Eliminando…"
1925
+ },
1926
+ "upload": {
1927
+ "addFiles": "Añadir archivos",
1928
+ "clearAll": "Limpiar",
1929
+ "totalCount_one": "{{count}} archivo en total",
1930
+ "totalCount_other": "{{count}} archivos en total",
1931
+ "removeFile": "Quitar archivo",
1932
+ "failed": "Fallido",
1933
+ "duplicateName": "Nombre duplicado",
1934
+ "duplicateNameTitle": "Otro archivo de este lote tiene el mismo nombre; se renombrará automáticamente al subir"
1935
+ },
1936
+ "messages": {
1937
+ "title": "Mensajes",
1938
+ "empty": "Aún no hay mensajes.",
1939
+ "threadCount_one": "{{count}} hilo",
1940
+ "threadCount_other": "{{count}} hilos",
1941
+ "replyCount_one": "{{count}} respuesta",
1942
+ "replyCount_other": "{{count}} respuestas",
1943
+ "floor": "#{{n}}",
1944
+ "replyNumber": "#{{n}}",
1945
+ "composerPlaceholder": "Escribe un mensaje…",
1946
+ "replyPlaceholder": "Escribe una respuesta…",
1947
+ "submit": "Publicar",
1948
+ "submitting": "Publicando…",
1949
+ "reply": "Responder",
1950
+ "actions": "Acciones de mensaje",
1951
+ "trash": "Papelera",
1952
+ "emptyTrash": "Aún no hay mensajes en la papelera.",
1953
+ "deleted": "Eliminado",
1954
+ "delete": "Eliminar",
1955
+ "deleteConfirmTitle": "¿Eliminar este mensaje?",
1956
+ "deleteConfirmDescription": "Se moverá a la papelera. Puedes restaurarlo más tarde.",
1957
+ "restore": "Restaurar",
1958
+ "hardDelete": "Eliminar de forma permanente",
1959
+ "hardDeleteConfirmTitle": "¿Eliminar de forma permanente?",
1960
+ "hardDeleteConfirmDescription": "No se puede deshacer. Eliminar un mensaje elimina todas sus respuestas.",
1961
+ "viewReplies": "Ver respuestas ({{count}})",
1962
+ "collapseReplies": "Contraer respuestas",
1963
+ "sortBy": "Ordenar",
1964
+ "sort": {
1965
+ "newest": "Más recientes",
1966
+ "oldest": "Más antiguas",
1967
+ "mostLikes": "Más me gusta",
1968
+ "leastLikes": "Menos me gusta"
1969
+ },
1970
+ "searchPlaceholder": "Buscar mensajes…",
1971
+ "totalLabel_one": "{{count}} mensaje",
1972
+ "totalLabel_other": "{{count}} mensajes",
1973
+ "clearFilter": "Limpiar filtro",
1974
+ "charsRemaining_one": "Queda {{count}} carácter",
1975
+ "charsRemaining_other": "Quedan {{count}} caracteres",
1976
+ "linkCharactersAdd": "Adjuntar personaje",
1977
+ "linkResources": "Vincular recursos",
1978
+ "linkResourcesAdd": "Adjuntar recurso",
1979
+ "toast": {
1980
+ "posted": "Mensaje publicado",
1981
+ "postFailed": "No se pudo publicar el mensaje",
1982
+ "deleted": "Movido a la papelera",
1983
+ "restored": "Mensaje restaurado",
1984
+ "hardDeleted": "Eliminado de forma permanente",
1985
+ "voteFailed": "No se pudo registrar el voto"
1986
+ }
1987
+ },
1988
+ "storage": {
1989
+ "sectionTitle": "Almacenamiento",
1990
+ "sectionDescription": "Cuánto espacio de disco ocupa tu archivo, desglosado por categoría.",
1991
+ "volumeTotal": "Total del disco",
1992
+ "volumeFree": "Libre",
1993
+ "volumeUsed": "En uso",
1994
+ "sidebarUsed": "En uso {{size}}",
1995
+ "sidebarFree": "{{size}} libres",
1996
+ "volumeUnavailable": "Información del volumen no disponible",
1997
+ "usedByHoardodile": "uso de hoardodile",
1998
+ "category": {
1999
+ "database": "Base de datos",
2000
+ "resources": "Recursos",
2001
+ "archived": "Copias archivadas",
2002
+ "cache": "Caché",
2003
+ "trash": "Papelera",
2004
+ "backups": "Copias de seguridad",
2005
+ "other": "Otros",
2006
+ "unattributedResources": "Recursos sin atribuir"
2007
+ },
2008
+ "otherHint": "Registros, complementos instalados, clave de sesión y otro estado local del host que no se enumera arriba.",
2009
+ "unattributedCount_one": "{{count}} recurso sin tamaño registrado",
2010
+ "unattributedCount_other": "{{count}} recursos sin tamaños registrados",
2011
+ "unattributedHint": "Estos recursos aún no tienen metadatos de tamaño registrados (estimación medida en disco, incluye portadas y otros extras). Ejecuta el precalentamiento para atribuirlos a los complementos de arriba.",
2012
+ "archivedHint": "Copias de recursos, personajes y documentos congeladas en versiones archivadas. Se miden mediante un análisis de disco, por lo que cuenta cada copia histórica — a diferencia de los tamaños de recursos de arriba, que provienen solo de los metadatos de la versión actual.",
2013
+ "backupsHint": "Copias de seguridad manuales e instantáneas automáticas diarias.",
2014
+ "cacheHint": "Portadas por recurso, miniaturas, vistas previas, cachés de extracción y files-cache.json.",
2015
+ "lowSpaceBanner": "Poco espacio en disco — las instantáneas automáticas están en pausa. Libera algo de espacio para reanudarlas.",
2016
+ "clearCache": "Limpiar",
2017
+ "clearCacheTitle": "Limpiar caché",
2018
+ "clearCacheDescription": "Las miniaturas, las vistas previas y las cachés de extracción se borrarán. Se reconstruyen bajo demanda — esto solo libera espacio.",
2019
+ "pluginCount_one": "{{count}} recurso",
2020
+ "pluginCount_other": "{{count}} recursos",
2021
+ "legend": {
2022
+ "resources": "Recursos",
2023
+ "hostData": "Datos del host",
2024
+ "archivedVersions": "Versiones archivadas",
2025
+ "cache": "Caché",
2026
+ "latest": "Más reciente"
2027
+ }
2028
+ },
2029
+ "sync": {
2030
+ "pageHint": "Por dispositivo: registra recuentos de entidades, tamaño del contenido y volumen de almacenamiento · conserva las dos instantáneas más recientes",
2031
+ "status": {
2032
+ "allUpToDate": "Todos los dispositivos están al día",
2033
+ "dueCount_one": "{{count}} de {{total}} dispositivo pendiente",
2034
+ "dueCount_other": "{{count}} de {{total}} dispositivos pendientes"
2035
+ },
2036
+ "tip": {
2037
+ "oneWay": "Sincroniza en un solo sentido: un repositorio maestro y el resto como espejos, para evitar conflictos."
2038
+ },
2039
+ "config": {
2040
+ "remindLabel": "Recordármelo después de",
2041
+ "remindDescription": "Si pasa el intervalo sin una instantánea sincronizada, el panel lo pide.",
2042
+ "remindDays_one": "{{count}} día",
2043
+ "remindDays_other": "{{count}} días"
2044
+ },
2045
+ "devices": {
2046
+ "addTitle": "Añadir un dispositivo",
2047
+ "addAutoRecord": "El estado actual se sincroniza automáticamente al añadirlo.",
2048
+ "namePlaceholder": "Nombre del dispositivo",
2049
+ "notesPlaceholder": "Notas (opcional)",
2050
+ "nameHint": "p. ej., Portátil",
2051
+ "notesHint": "p. ej., USB 4TB",
2052
+ "add": "Añadir dispositivo",
2053
+ "addPending": "Añadiendo…",
2054
+ "empty": "Aún no hay dispositivos — añade uno para empezar a sincronizar.",
2055
+ "loading": "Cargando…",
2056
+ "neverSynced": "Nunca sincronizado",
2057
+ "lastSyncedAgo_one": "Última sincronización {{date}} · hace {{count}} día",
2058
+ "lastSyncedAgo_other": "Última sincronización {{date}} · hace {{count}} días",
2059
+ "justNow": "Ahora mismo",
2060
+ "minutesAgo_one": "hace {{count}} minuto",
2061
+ "minutesAgo_other": "hace {{count}} minutos",
2062
+ "hoursAgo_one": "hace {{count}} hora",
2063
+ "hoursAgo_other": "hace {{count}} horas",
2064
+ "upToDate": "Al día",
2065
+ "overdue_one": "Vencido · {{count}} día",
2066
+ "overdue_other": "Vencido · {{count}} días",
2067
+ "neverBadge": "Aún no sincronizado",
2068
+ "record": "Sincronizar",
2069
+ "recordNow": "Sincronizar ahora",
2070
+ "deleteTitle": "¿Eliminar {{name}}?",
2071
+ "deleteDescription": "El dispositivo y todos sus registros de sincronización se eliminarán.",
2072
+ "delete": "Eliminar",
2073
+ "deletePending": "Eliminando…",
2074
+ "editTitle": "Editar dispositivo",
2075
+ "edit": "Editar",
2076
+ "save": "Guardar",
2077
+ "editPending": "Guardando…"
2078
+ },
2079
+ "fields": {
2080
+ "resources": "Recursos",
2081
+ "characters": "Personajes",
2082
+ "documents": "Documentos",
2083
+ "messages": "Mensajes",
2084
+ "tags": "Etiquetas",
2085
+ "trash": "Papelera",
2086
+ "contentSize": "Tamaño del contenido",
2087
+ "storage": "Almacenamiento",
2088
+ "firstRecord": "Primera sincronización"
2089
+ },
2090
+ "toast": {
2091
+ "deviceAdded": "Dispositivo añadido y sincronizado",
2092
+ "deviceAddFailed": "No se pudo añadir el dispositivo",
2093
+ "deviceUpdated": "Dispositivo actualizado",
2094
+ "deviceUpdateFailed": "No se pudo actualizar el dispositivo",
2095
+ "deviceDeleted": "Dispositivo eliminado",
2096
+ "deviceDeleteFailed": "No se pudo eliminar el dispositivo",
2097
+ "recorded": "Sincronizado",
2098
+ "recordFailed": "No se pudo sincronizar"
2099
+ },
2100
+ "banner": {
2101
+ "noDevicesTitle": "Aún no hay dispositivos de sincronización configurados.",
2102
+ "noDevicesDescription": "Añade al menos un dispositivo para registrar sincronizaciones.",
2103
+ "configureLink": "Configurar",
2104
+ "neverSyncedTitle": "{{name}} nunca se ha sincronizado",
2105
+ "neverSyncedDescription": "Aún no hay sincronización registrada para este dispositivo.",
2106
+ "overdueTitle_one": "{{name}} se sincronizó por última vez hace {{count}} día",
2107
+ "overdueTitle_other": "{{name}} se sincronizó por última vez hace {{count}} días",
2108
+ "overdueDescription": "Ha pasado más tiempo que tu intervalo de recordatorio de {{count}} días.",
2109
+ "recordLink": "Sincronizar ahora"
2110
+ }
2111
+ },
2112
+ "desktopShell": {
2113
+ "tray": {
2114
+ "open": "Abrir",
2115
+ "changeLibrary": "Cambiar biblioteca…",
2116
+ "copyLanAddress": "Copiar dirección LAN",
2117
+ "restartServer": "Reiniciar servidor",
2118
+ "updateReady": "Actualización lista — Abrir para reiniciar",
2119
+ "updateReadyResources": "Actualización de recursos lista — Abrir para aplicar",
2120
+ "quit": "Salir",
2121
+ "tooltipServerStopped": "hoardodile — servidor detenido",
2122
+ "tooltipUpdateReady": "hoardodile — actualización lista",
2123
+ "copied": "Dirección LAN copiada al portapapeles."
2124
+ },
2125
+ "errorPage": {
2126
+ "serverError": "No se pudo conectar con el servidor. Puede que aún esté iniciando, o que se haya detenido. Espera un momento y pulsa Reintentar, o usa Reiniciar servidor desde la bandeja.",
2127
+ "devServerError": "El servidor de desarrollo no está en ejecución. Inicia `pnpm dev` en otra terminal y pulsa Reintentar."
2128
+ },
2129
+ "dialog": {
2130
+ "lanPasswordRequired": "Configura antes una contraseña de administrador antes de activar el acceso desde la red local.",
2131
+ "cancel": "Cancelar",
2132
+ "serverStoppedBody": "El servidor se detuvo. Usa Reiniciar servidor desde la bandeja.",
2133
+ "serverNotRunningMessage": "El servidor no está en ejecución.",
2134
+ "restartServer": "Reiniciar servidor",
2135
+ "serverFailedToStart": "No se pudo iniciar el servidor:\n{{message}}"
2136
+ },
2137
+ "shell": {
2138
+ "serverUnreachable": "Servidor inaccesible",
2139
+ "retry": "Reintentar",
2140
+ "loadingLabel": "Cargando"
2141
+ },
2142
+ "wizard": {
2143
+ "title": "Te damos la bienvenida a hoardodile",
2144
+ "intro": "Elige dónde guarda este equipo el archivo. Puedes cambiar la carpeta más tarde desde Ajustes o la bandeja.",
2145
+ "library": "Carpeta de la biblioteca",
2146
+ "browse": "Explorar",
2147
+ "autoStart": "Iniciar con Windows",
2148
+ "autoStartHint": "Abre hoardodile cuando inicies sesión.",
2149
+ "startInTray": "Iniciar en la bandeja",
2150
+ "startInTrayHint": "No se abre ninguna ventana hasta que elijas Abrir desde la bandeja.",
2151
+ "continue": "Continuar",
2152
+ "missingBridge": "Falta el puente de escritorio. Reinicia la app."
2153
+ }
2154
+ }
2155
+ }