feat: completed base feature set for the app

This commit is contained in:
2026-07-18 20:25:17 +02:00
parent e9d6c70eb0
commit 638202b96c
46 changed files with 4486 additions and 541 deletions

View File

@@ -73,6 +73,7 @@ statusBar-offlineModeActive = Modo avión (activo)
projectSelector-switchProject = Cambiar proyecto
projectSelector-projectsHeader = Proyectos
projectSelector-newProject = Nuevo proyecto
projectSelector-openProject = Abrir proyecto…
projectSelector-createProject = Crear proyecto
projectSelector-projectName = Nombre del proyecto
projectSelector-projectNamePlaceholder = Mi blog
@@ -82,6 +83,8 @@ projectSelector-deleteProject = Eliminar proyecto
projectSelector-toast-switched = Cambiado a { $name }
projectSelector-toast-switchFailed = No se pudo cambiar de proyecto
projectSelector-toast-created = Proyecto "{ $name }" creado
projectSelector-toast-opened = Proyecto "{ $name }" abierto
projectSelector-toast-openFailed = No se pudo abrir el proyecto: { $error }
projectSelector-toast-createFailed = No se pudo crear el proyecto
projectSelector-toast-deleteFailed = No se pudo eliminar el proyecto
tabBar-closeHint = Cerrar
@@ -149,6 +152,7 @@ engine-validateTranslationsFailed = La validación de traducciones falló: { $er
engine-fillMissingTranslationsOffline = No se pueden completar las traducciones: la IA no está disponible en modo avión
engine-fillMissingTranslationsNoAi = No se pueden completar las traducciones: la IA aún no está disponible
engine-uploadStarted = Subiendo sitio...
engine-uploadingTarget = Subiendo { $target }…
engine-uploadMissingCredentials = Credenciales de publicación incompletas. Configúralas en los ajustes del proyecto.
engine-uploadOffline = No se puede subir: el modo avión está activo
engine-generateSiteStarted = Generando sitio...
@@ -156,8 +160,16 @@ engine-generateSiteNoProject = No hay proyecto activo
engine-previewDataDirUnavailable = El directorio de datos del proyecto no está disponible
engine-previewPortInUse = El puerto del servidor de vista previa ya está en uso
dialog-selectFolder = Seleccionar carpeta
dialog-openProject = Abrir carpeta del proyecto
dialog-importMedia = Importar medios
dialog-replaceMedia = Reemplazar archivo multimedia
dialog-imageFilter = Imágenes
editor-replaceFile = Reemplazar archivo…
media-toast-imported = Se importaron { $count } archivo(s) multimedia
media-toast-importFailed = No se pudieron importar algunos archivos multimedia: { $error }
media-toast-replaced = Archivo multimedia reemplazado
media-toast-unchanged = El archivo seleccionado es idéntico; no hubo cambios
media-toast-replaceFailed = No se pudo reemplazar el archivo multimedia: { $error }
settings-nav-project = Proyecto
settings-nav-editor = Editor
settings-nav-content = Contenido
@@ -410,4 +422,50 @@ engine-checkingItem = Comprobando: { $current }/{ $total } — { $name }
engine-renderingPost = Renderizando { $post }
engine-writingGeneratedFiles = Escribiendo archivos generados
engine-generationComplete = Generación del sitio completada
engine-runScript = Ejecutando script…
engine-regeneratingItem = Regenerando: { $name }
metadataDiff-run = Ejecutar comparación
metadataDiff-running = Comparando la base de datos y el sistema de archivos…
metadataDiff-idle = Ejecuta la comparación de metadatos entre archivos portátiles y la base de datos.
metadataDiff-clean = Los metadatos de la base de datos y los archivos están sincronizados.
metadataDiff-fileToDb = Usar archivo
metadataDiff-dbToFile = Usar base de datos
metadataDiff-orphans = Archivos huérfanos
metadataDiff-errors = Errores
metadataDiff-repaired = Diferencia de metadatos reparada
metadataDiff-field = { $field }: BD = { $database } · Archivo = { $file }
metadataDiff-entity = { $entity } · { $path }
metadataDiff-orphan = { $reason } · { $path }
engine-fillMissingTranslationsStarted = Creando las traducciones que faltan…
engine-translatingContent = Traduciendo el contenido…
engine-fillMissingTranslationsComplete = Traducción completada: { $posts } entradas, { $media } medios, { $failed } fallos
engine-autoTranslationStarted = Creando las traducciones que faltan…
engine-autoTranslationComplete = Se crearon { $count } borradores de traducción
translationValidation-run = Validar
translationValidation-running = Validando traducciones…
translationValidation-idle = Ejecuta la validación de las traducciones de la base de datos y el sistema de archivos.
translationValidation-clean = Todas las traducciones son coherentes.
translationValidation-databaseIssues = Problemas de la base de datos
translationValidation-filesystemIssues = Problemas del sistema de archivos
translationValidation-missingSourcePost = Falta la entrada de origen
translationValidation-sameLanguageAsCanonical = El idioma coincide con la entrada de origen
translationValidation-doNotTranslateHasTranslations = La entrada está marcada para no traducir
translationValidation-contentInDatabase = El contenido publicado permanece en la base de datos
translationValidation-missingTranslation = Falta una traducción configurada
blogmark-invalid = Blogmark no válido: { $error }
blogmark-unknownProject = El proyecto de destino de este blogmark no existe aquí.
blogmark-noProject = Abre un proyecto antes de importar un blogmark.
blogmark-imported = Blogmark importado
blogmark-failed = Error al importar el blogmark: { $error }
engine-generatedPage = Generado { $url } ({ $current }/{ $total })
settings-imageImportConcurrency = Importaciones de imágenes simultáneas (18)
settings-imageImportConcurrencyInvalid = El número de importaciones simultáneas debe estar entre 1 y 8
find-titleFind = Buscar
find-titleReplace = Buscar y reemplazar
find-query = Texto que buscar
find-replacement = Reemplazo
find-next = Buscar siguiente
find-replace = Reemplazar
find-replaceAll = Reemplazar todo
find-noMatches = No se encontraron coincidencias
find-replacedCount = Se reemplazaron { $count } coincidencias