chore: lots of i18n
This commit is contained in:
@@ -69,46 +69,46 @@
|
||||
"settings.data.title": "Mantenimiento de base de datos",
|
||||
"settings.data.fileSystemTitle": "Sistema de archivos",
|
||||
"settings.search.placeholder": "Buscar configuración...",
|
||||
"settings.search.noResults": "No configuración found matching \"{query}\"",
|
||||
"settings.search.noResults": "No se encontró configuración que coincida con \"{query}\"",
|
||||
"settings.search.clear": "Limpiar búsqueda",
|
||||
"settings.toast.publishingSaved": "Credenciales de publicación guardadas",
|
||||
"settings.toast.saveCredentialsFailed": "No se pudo save credentials",
|
||||
"settings.toast.saveCredentialsFailed": "No se pudieron guardar las credenciales",
|
||||
"settings.toast.credentialsCleared": "Credenciales de {type} borradas",
|
||||
"settings.toast.projectSaved": "Project configuración saved",
|
||||
"settings.toast.projectSaveFailed": "No se pudo save project configuración",
|
||||
"settings.toast.projectSaved": "Configuración del proyecto guardada",
|
||||
"settings.toast.projectSaveFailed": "No se pudo guardar la configuración del proyecto",
|
||||
"settings.toast.categoryAdded": "Categoría \"{category}\" agregada",
|
||||
"settings.toast.categoryAddFailed": "No se pudo add category",
|
||||
"settings.toast.categoryAddFailed": "No se pudo agregar la categoría",
|
||||
"settings.toast.categoryExists": "La categoría ya existe",
|
||||
"settings.toast.categoryProtected": "No se puede eliminar la categoría estándar \"{category}\"",
|
||||
"settings.toast.categoryAtLeastOne": "Debe haber al menos una categoría",
|
||||
"settings.toast.categoryRemoved": "Categoría \"{category}\" eliminada",
|
||||
"settings.toast.categoryRemoveFailed": "No se pudo remove category",
|
||||
"settings.toast.categoryRemoveFailed": "No se pudo eliminar la categoría",
|
||||
"settings.toast.categoriesReset": "Categorías restablecidas a los valores predeterminados",
|
||||
"settings.toast.categoriesResetFailed": "No se pudo reset categories",
|
||||
"settings.toast.categorySettingsUpdateFailed": "No se pudo update category configuración",
|
||||
"settings.toast.categoriesResetFailed": "No se pudieron restablecer las categorías",
|
||||
"settings.toast.categorySettingsUpdateFailed": "No se pudo actualizar la configuración de categorías",
|
||||
"settings.toast.systemPromptSaved": "Prompt del sistema guardado",
|
||||
"settings.toast.systemPromptSaveFailed": "No se pudo save system prompt",
|
||||
"settings.toast.systemPromptSaveFailed": "No se pudo guardar el prompt del sistema",
|
||||
"settings.toast.systemPromptReset": "Prompt del sistema restablecido al predeterminado",
|
||||
"settings.toast.systemPromptResetFailed": "No se pudo reset system prompt",
|
||||
"settings.toast.systemPromptResetFailed": "No se pudo restablecer el prompt del sistema",
|
||||
"settings.toast.apiKeySaved": "Clave API guardada y validada",
|
||||
"settings.toast.apiKeyInvalid": "Clave API no válida",
|
||||
"settings.toast.apiKeySaveFailed": "No se pudo save API key",
|
||||
"settings.toast.apiKeySaveFailed": "No se pudo guardar la clave API",
|
||||
"settings.toast.defaultModelUpdated": "Modelo predeterminado actualizado",
|
||||
"settings.toast.defaultModelUpdateFailed": "No se pudo set default model",
|
||||
"settings.toast.rebuildPostsLoading": "Rebuilding entradas database...",
|
||||
"settings.toast.defaultModelUpdateFailed": "No se pudo establecer el modelo predeterminado",
|
||||
"settings.toast.rebuildPostsLoading": "Reconstruyendo base de datos de entradas...",
|
||||
"settings.toast.rebuildPostsSuccess": "Base de datos de publicaciones reconstruida",
|
||||
"settings.toast.rebuildPostsFailed": "No se pudo rebuild entradas database",
|
||||
"settings.toast.rebuildMediaLoading": "Rebuilding medios database...",
|
||||
"settings.toast.rebuildPostsFailed": "No se pudo reconstruir la base de datos de entradas",
|
||||
"settings.toast.rebuildMediaLoading": "Reconstruyendo base de datos de medios...",
|
||||
"settings.toast.rebuildMediaSuccess": "Base de datos de medios reconstruida",
|
||||
"settings.toast.rebuildMediaFailed": "No se pudo rebuild medios database",
|
||||
"settings.toast.rebuildLinksLoading": "Rebuilding entrada links...",
|
||||
"settings.toast.rebuildMediaFailed": "No se pudo reconstruir la base de datos de medios",
|
||||
"settings.toast.rebuildLinksLoading": "Reconstruyendo enlaces de entradas...",
|
||||
"settings.toast.rebuildLinksSuccess": "Enlaces de publicaciones reconstruidos",
|
||||
"settings.toast.rebuildLinksFailed": "No se pudo rebuild entrada links",
|
||||
"settings.toast.rebuildLinksFailed": "No se pudieron reconstruir los enlaces de entradas",
|
||||
"settings.toast.thumbnailsLoading": "Generando miniaturas...",
|
||||
"settings.toast.thumbnailsGenerated": "Se generaron {count} miniaturas",
|
||||
"settings.toast.thumbnailsAlreadyExist": "Todas las miniaturas ya existen",
|
||||
"settings.toast.thumbnailsComplete": "Generación de miniaturas completa",
|
||||
"settings.toast.thumbnailsFailed": "No se pudo generate thumbnails",
|
||||
"settings.toast.thumbnailsFailed": "No se pudieron generar miniaturas",
|
||||
"chat.setupTitle": "Configuración de chat IA",
|
||||
"chat.apiKeyRequiredTitle": "Se requiere clave API de OpenCode Zen",
|
||||
"chat.apiKeyRequiredDescription": "Introduce tu clave API de OpenCode para habilitar el chat de IA.",
|
||||
@@ -116,23 +116,23 @@
|
||||
"chat.apiKeySave": "Guardar clave",
|
||||
"chat.apiKeyValidating": "Validando...",
|
||||
"chat.apiKeyInvalid": "Clave API no válida. Compruébala e inténtalo de nuevo.",
|
||||
"chat.apiKeyValidationFailed": "No se pudo validate API key.",
|
||||
"chat.apiKeyValidationFailed": "No se pudo validar la clave API.",
|
||||
"chat.newChat": "Nuevo chat",
|
||||
"chat.welcomeTitle": "Bienvenido al asistente de IA",
|
||||
"chat.welcomeDescription": "I can help you manage your entradas and medios. Try asking me to:",
|
||||
"chat.welcomeTipSearch": "Buscar for entradas about a specific topic",
|
||||
"chat.welcomeTipDetails": "Get details about a specific entrada",
|
||||
"chat.welcomeDescription": "Puedo ayudarte a gestionar tus entradas y medios. Prueba a pedirme que:",
|
||||
"chat.welcomeTipSearch": "Busque entradas sobre un tema específico",
|
||||
"chat.welcomeTipDetails": "Muestre detalles de una entrada específica",
|
||||
"chat.welcomeTipTags": "Lista todas las etiquetas o categorías de tu blog",
|
||||
"chat.welcomeTipMetadata": "Update metadata for entradas or medios",
|
||||
"chat.welcomeTipImages": "List all images in your medios library",
|
||||
"chat.welcomeTipMetadata": "Actualice metadatos de entradas o medios",
|
||||
"chat.welcomeTipImages": "Liste todas las imágenes de tu biblioteca de medios",
|
||||
"chat.role.you": "Tú",
|
||||
"chat.role.assistant": "Asistente",
|
||||
"chat.stop": "Detener",
|
||||
"chat.inputPlaceholder": "Escribe un mensaje...",
|
||||
"chat.errorPrefix": "Error del sistema: {error}",
|
||||
"chat.errorNoResponse": "No se pudo get a response. Please try again.",
|
||||
"chat.errorNoResponse": "No se pudo obtener una respuesta. Inténtalo de nuevo.",
|
||||
"chat.errorEmptyResponse": "El modelo devolvió una respuesta vacía. Prueba otro modelo o reformula tu pregunta.",
|
||||
"chat.errorGeneric": "Sorry, an error occurred while processing your mensaje.",
|
||||
"chat.errorGeneric": "Lo siento, ocurrió un error al procesar tu mensaje.",
|
||||
"chat.cancelledSuffix": "(cancelado)",
|
||||
"aiSuggestions.title": "Análisis de imagen IA",
|
||||
"aiSuggestions.close": "Cerrar",
|
||||
@@ -152,8 +152,8 @@
|
||||
"insert.tab.imageInternal": "Biblioteca multimedia",
|
||||
"insert.tab.linkExternal": "URL externa",
|
||||
"insert.tab.imageExternal": "Imagen externa",
|
||||
"insert.searchPlaceholder.link": "Buscar entradas by title or content...",
|
||||
"insert.searchPlaceholder.image": "Buscar medios by name, title, or alt text...",
|
||||
"insert.searchPlaceholder.link": "Buscar entradas por título o contenido...",
|
||||
"insert.searchPlaceholder.image": "Buscar medios por nombre, título o texto alternativo...",
|
||||
"insert.status.searching": "Buscando...",
|
||||
"insert.status.typeMore": "Escribe al menos 2 caracteres para buscar",
|
||||
"insert.status.noResults": "No se encontró {kind} para \"{query}\"",
|
||||
@@ -169,7 +169,7 @@
|
||||
"insert.hint.internal": "Usa ↑↓ para navegar, Enter para seleccionar, Esc para cerrar",
|
||||
"insert.hint.external": "Introduce la URL y pulsa Enter o haz clic en el botón, Esc para cerrar",
|
||||
"insert.hint.canonicalPost": "Canónico: /YYYY/MM/DD/slug",
|
||||
"insert.hint.canonicalMedia": "Canonical: /medios/YYYY/MM/file.ext",
|
||||
"insert.hint.canonicalMedia": "Canónico: /media/YYYY/MM/archivo.ext",
|
||||
"postLinks.loading": "Cargando enlaces...",
|
||||
"postLinks.link": "enlace",
|
||||
"postLinks.links": "enlaces",
|
||||
@@ -181,7 +181,7 @@
|
||||
"gitDiff.header": "Diferencia: {target}",
|
||||
"gitDiff.noProject": "No hay un proyecto activo seleccionado.",
|
||||
"gitDiff.noProjectPath": "No se pudo resolver la ruta del proyecto.",
|
||||
"gitDiff.loadFailed": "No se pudo load diff.",
|
||||
"gitDiff.loadFailed": "No se pudo cargar el diff.",
|
||||
"gitDiff.loading": "Cargando diff...",
|
||||
"gitDiff.changedFiles": "Archivos modificados",
|
||||
"gitDiff.previousFile": "Archivo anterior",
|
||||
@@ -192,8 +192,8 @@
|
||||
"errorModal.copy": "Copiar",
|
||||
"errorModal.noStack": "No hay traza de pila disponible",
|
||||
"confirmDelete.title": "Confirmar eliminación",
|
||||
"confirmDelete.promptPost": "Are you sure you want to delete the entrada",
|
||||
"confirmDelete.promptMedia": "Are you sure you want to delete the medios file",
|
||||
"confirmDelete.promptPost": "¿Seguro que quieres eliminar la entrada",
|
||||
"confirmDelete.promptMedia": "¿Seguro que quieres eliminar el archivo multimedia",
|
||||
"confirmDelete.warning": "Advertencia:",
|
||||
"confirmDelete.referencedBy": "Este {itemType} está referenciado por los siguientes elementos:",
|
||||
"confirmDelete.note": "Eliminar este {itemType} quitará todas estas referencias.",
|
||||
@@ -205,12 +205,12 @@
|
||||
"lightbox.close": "Cerrar (Esc)",
|
||||
"lightbox.previous": "Anterior (←)",
|
||||
"lightbox.next": "Siguiente (→)",
|
||||
"credentials.error.load": "No se pudo load credentials:",
|
||||
"credentials.error.save": "No se pudo save credentials:",
|
||||
"credentials.error.load": "No se pudieron cargar las credenciales:",
|
||||
"credentials.error.save": "No se pudieron guardar las credenciales:",
|
||||
"credentials.toast.saved": "Credenciales guardadas",
|
||||
"credentials.toast.saveFailed": "No se pudo save credentials",
|
||||
"credentials.toast.saveFailed": "No se pudieron guardar las credenciales",
|
||||
"credentials.toast.testing": "Probando conexión {type}...",
|
||||
"credentials.toast.connectionFailed": "Connection falló - check credentials",
|
||||
"credentials.toast.connectionFailed": "La conexión falló - revisa las credenciales",
|
||||
"credentials.tab.ftp": "Acceso FTP",
|
||||
"credentials.tab.ssh": "Acceso SSH",
|
||||
"credentials.ftp.title": "Publicación FTP",
|
||||
@@ -230,14 +230,14 @@
|
||||
"credentials.ssh.placeholder.keyPath": "~/.ssh/clave_id_rsa",
|
||||
"gitSidebar.header": "CONTROL DE CÓDIGO FUENTE",
|
||||
"gitSidebar.loading": "Cargando...",
|
||||
"gitSidebar.error.fetchRemoteUpdates": "No se pudo fetch remote updates.",
|
||||
"gitSidebar.error.fetchRemoteUpdates": "No se pudieron obtener las actualizaciones remotas.",
|
||||
"gitSidebar.error.refreshRemoteState": "No se pudo actualizar el estado de seguimiento remoto.",
|
||||
"gitSidebar.error.gitMissing": "No se encontró el ejecutable de Git. Instala Git y reinicia la aplicación.",
|
||||
"gitSidebar.error.noActiveProject": "No hay un proyecto activo seleccionado.",
|
||||
"gitSidebar.error.loadRepoStatus": "No se pudo cargar el estado del repositorio.",
|
||||
"gitSidebar.error.initFailed": "No se pudo initialize git repository.",
|
||||
"gitSidebar.error.initFailed": "No se pudo inicializar el repositorio Git.",
|
||||
"gitSidebar.error.actionFailed": "No se pudo {action}.",
|
||||
"gitSidebar.error.commitFailed": "No se pudo commit changes.",
|
||||
"gitSidebar.error.commitFailed": "No se pudieron confirmar los cambios.",
|
||||
"gitSidebar.progress.preparingInit": "Preparando inicialización del repositorio...",
|
||||
"gitSidebar.progress.pushingRemote": "Enviando commits al remoto... esto puede tardar con cargas grandes.",
|
||||
"gitSidebar.progress.fetching": "Obteniendo actualizaciones remotas...",
|
||||
@@ -265,7 +265,7 @@
|
||||
"gitSidebar.action.committing": "Haciendo commit...",
|
||||
"gitSidebar.action.initializeGit": "Inicializar Git",
|
||||
"gitSidebar.action.initializing": "Inicializando...",
|
||||
"gitSidebar.openChanges": "Abrir Changes ({count})",
|
||||
"gitSidebar.openChanges": "Cambios abiertos ({count})",
|
||||
"gitSidebar.versionHistory": "Historial de versiones ({count})",
|
||||
"gitSidebar.loadingChanges": "Cargando cambios...",
|
||||
"gitSidebar.noChanges": "Sin cambios",
|
||||
@@ -286,16 +286,16 @@
|
||||
"tabBar.scrollLeft": "Desplazar pestañas a la izquierda",
|
||||
"tabBar.scrollRight": "Desplazar pestañas a la derecha",
|
||||
"tabBar.commitTitle": "Confirmación {hash}",
|
||||
"tabBar.error.fetchPostTitle": "No se pudo fetch entrada title:",
|
||||
"tabBar.error.fetchChatTitle": "No se pudo fetch chat title:",
|
||||
"tabBar.error.fetchImportTitle": "No se pudo fetch import definition title:",
|
||||
"tabBar.error.fetchCommitTitle": "No se pudo fetch commit titles:",
|
||||
"tabBar.error.fetchPostTitle": "No se pudo cargar el título de la entrada:",
|
||||
"tabBar.error.fetchChatTitle": "No se pudo cargar el título del chat:",
|
||||
"tabBar.error.fetchImportTitle": "No se pudo cargar el título de la definición de importación:",
|
||||
"tabBar.error.fetchCommitTitle": "No se pudieron cargar los títulos de los commits:",
|
||||
"metadataDiff.title": "Herramienta diff de metadatos",
|
||||
"metadataDiff.description": "Compare entrada metadata between database and markdown files. Fix inconsistencies caused by bugs or manual edits.",
|
||||
"metadataDiff.error.loadStats": "No se pudo load database statistics",
|
||||
"metadataDiff.error.scan": "No se pudo scan for differences",
|
||||
"metadataDiff.description": "Compara los metadatos de las entradas entre la base de datos y los archivos Markdown. Corrige inconsistencias causadas por errores o ediciones manuales.",
|
||||
"metadataDiff.error.loadStats": "No se pudieron cargar las estadísticas de la base de datos",
|
||||
"metadataDiff.error.scan": "No se pudieron analizar las diferencias",
|
||||
"metadataDiff.progress.starting": "Iniciando escaneo...",
|
||||
"metadataDiff.progress.scanningPublished": "Scanning published entradas...",
|
||||
"metadataDiff.progress.scanningPublished": "Escaneando entradas publicadas...",
|
||||
"metadataDiff.progress.scanning": "Escaneando...",
|
||||
"metadataDiff.action.scan": "Buscar diferencias",
|
||||
"metadataDiff.action.rescan": "Volver a escanear",
|
||||
@@ -303,112 +303,238 @@
|
||||
"metadataDiff.stats.published": "Publicadas",
|
||||
"metadataDiff.stats.drafts": "Borradores",
|
||||
"metadataDiff.stats.mediaFiles": "Archivos multimedia",
|
||||
"metadataDiff.summary.noDiffs": "✅ No differences found! All {total} published entradas are in sync.",
|
||||
"metadataDiff.summary.withDiffs": "⚠️ Found {count} entradas with differences out of {total} published entradas.",
|
||||
"metadataDiff.summary.noDiffs": "✅ ¡No se encontraron diferencias! Todas las {total} entradas publicadas están sincronizadas.",
|
||||
"metadataDiff.summary.withDiffs": "⚠️ Se encontraron {count} entradas con diferencias de un total de {total} entradas publicadas.",
|
||||
"metadataDiff.group.differences": "Diferencias de {label}",
|
||||
"metadataDiff.group.postsCount": "{count} entradas",
|
||||
"metadataDiff.sync.failed": "falló",
|
||||
"metadataDiff.sync.dbToFile.title": "Actualizar archivos con valores de la base de datos",
|
||||
"metadataDiff.sync.dbToFile.success": "Synced {success} entradas to files{falló}",
|
||||
"metadataDiff.sync.dbToFile.error": "No se pudo sync to files",
|
||||
"metadataDiff.sync.dbToFile.success": "Se sincronizaron {success} entradas a archivos{falló}",
|
||||
"metadataDiff.sync.dbToFile.error": "No se pudo sincronizar a archivos",
|
||||
"metadataDiff.sync.fileToDb.title": "Actualizar base de datos con valores de archivos",
|
||||
"metadataDiff.sync.fileToDb.success": "Synced {success} files to database{falló}",
|
||||
"metadataDiff.sync.fileToDb.error": "No se pudo sync to database",
|
||||
"metadataDiff.sync.fileToDb.success": "Se sincronizaron {success} archivos a la base de datos{falló}",
|
||||
"metadataDiff.sync.fileToDb.error": "No se pudo sincronizar a la base de datos",
|
||||
"metadataDiff.value.database": "Base de datos",
|
||||
"metadataDiff.value.file": "Archivo",
|
||||
"metadataDiff.empty": "Haz clic en \"Buscar diferencias\" para comparar metadatos de base de datos con metadatos de archivos.",
|
||||
"sidebar.archive": "Archive",
|
||||
"sidebar.clearFilter": "Clear filter",
|
||||
"sidebar.tags": "Tags",
|
||||
"sidebar.categories": "Categories",
|
||||
"sidebar.clearTags": "Clear tags",
|
||||
"sidebar.clearCategories": "Clear categories",
|
||||
"sidebar.noPostsYet": "No posts yet",
|
||||
"sidebar.noPagesYet": "No pages yet",
|
||||
"sidebar.noMediaYet": "No media yet",
|
||||
"sidebar.search": "Search",
|
||||
"sidebar.searchPostsPlaceholder": "Search posts...",
|
||||
"sidebar.searchPagesPlaceholder": "Search pages...",
|
||||
"sidebar.searchMediaPlaceholder": "Search media...",
|
||||
"sidebar.toggleFilters": "Toggle Filters",
|
||||
"sidebar.newPost": "New Post",
|
||||
"sidebar.importMedia": "Import media",
|
||||
"sidebar.results": "{count} results",
|
||||
"sidebar.resultsFor": "{count} results for \"{query}\"",
|
||||
"sidebar.clearFilters": "Clear filters",
|
||||
"sidebar.drafts": "Drafts",
|
||||
"sidebar.published": "Published",
|
||||
"sidebar.archived": "Archived",
|
||||
"sidebar.untitled": "Untitled",
|
||||
"sidebar.noMatchingPosts": "No matching posts",
|
||||
"sidebar.createFirstPost": "Create your first post",
|
||||
"sidebar.loadMore": "Load more ({loaded} of {total})",
|
||||
"sidebar.loading": "Loading...",
|
||||
"sidebar.noMediaFiles": "No media files",
|
||||
"sidebar.settingsHeader": "Settings",
|
||||
"sidebar.tagsHeader": "Tags",
|
||||
"sidebar.nav.project": "Project",
|
||||
"sidebar.archive": "Archivo",
|
||||
"sidebar.clearFilter": "Limpiar filtro",
|
||||
"sidebar.tags": "Etiquetas",
|
||||
"sidebar.categories": "Categorías",
|
||||
"sidebar.clearTags": "Limpiar etiquetas",
|
||||
"sidebar.clearCategories": "Limpiar categorías",
|
||||
"sidebar.noPostsYet": "Aún no hay entradas",
|
||||
"sidebar.noPagesYet": "Aún no hay páginas",
|
||||
"sidebar.noMediaYet": "Aún no hay medios",
|
||||
"sidebar.search": "Buscar",
|
||||
"sidebar.searchPostsPlaceholder": "Buscar entradas...",
|
||||
"sidebar.searchPagesPlaceholder": "Buscar páginas...",
|
||||
"sidebar.searchMediaPlaceholder": "Buscar medios...",
|
||||
"sidebar.toggleFilters": "Alternar filtros",
|
||||
"sidebar.newPost": "Nueva entrada",
|
||||
"sidebar.importMedia": "Importar medios",
|
||||
"sidebar.results": "{count} resultados",
|
||||
"sidebar.resultsFor": "{count} resultados para \"{query}\"",
|
||||
"sidebar.clearFilters": "Limpiar filtros",
|
||||
"sidebar.drafts": "Borradores",
|
||||
"sidebar.published": "Publicadas",
|
||||
"sidebar.archived": "Archivadas",
|
||||
"sidebar.untitled": "Sin título",
|
||||
"sidebar.noMatchingPosts": "No hay entradas coincidentes",
|
||||
"sidebar.createFirstPost": "Crea tu primera entrada",
|
||||
"sidebar.loadMore": "Cargar más ({loaded} de {total})",
|
||||
"sidebar.loading": "Cargando...",
|
||||
"sidebar.noMediaFiles": "No hay archivos multimedia",
|
||||
"sidebar.settingsHeader": "Configuración",
|
||||
"sidebar.tagsHeader": "Etiquetas",
|
||||
"sidebar.nav.project": "Proyecto",
|
||||
"sidebar.nav.editor": "Editor",
|
||||
"sidebar.nav.content": "Content",
|
||||
"sidebar.nav.ai": "AI Assistant",
|
||||
"sidebar.nav.publishing": "Publishing",
|
||||
"sidebar.nav.data": "Data",
|
||||
"sidebar.nav.style": "Style",
|
||||
"sidebar.tagCloud": "Tag Cloud",
|
||||
"sidebar.createEdit": "Create & Edit",
|
||||
"sidebar.mergeTags": "Merge Tags",
|
||||
"settings.project.descriptionGeneral": "General settings for the active blog project.",
|
||||
"settings.project.nameLabel": "Project Name",
|
||||
"settings.project.nameDescription": "The display name of your blog project.",
|
||||
"settings.project.namePlaceholder": "My Blog",
|
||||
"settings.project.descriptionLabel": "Description",
|
||||
"settings.project.descriptionDescription": "A short description of your blog. This can be used in templates and metadata.",
|
||||
"settings.project.descriptionPlaceholder": "A blog about...",
|
||||
"settings.project.dataPathLabel": "Project Data Path",
|
||||
"settings.project.dataPathDescription": "Custom folder for storing posts, media, and metadata. Leave empty to use the default location: {path}",
|
||||
"settings.project.defaultLocation": "Default location",
|
||||
"settings.project.publicUrlLabel": "Public URL",
|
||||
"settings.project.publicUrlDescription": "The public base URL of your published blog (used for sitemap generation).",
|
||||
"sidebar.nav.content": "Contenido",
|
||||
"sidebar.nav.ai": "Asistente IA",
|
||||
"sidebar.nav.publishing": "Publicación",
|
||||
"sidebar.nav.data": "Datos",
|
||||
"sidebar.nav.style": "Estilo",
|
||||
"sidebar.tagCloud": "Nube de etiquetas",
|
||||
"sidebar.createEdit": "Crear y editar",
|
||||
"sidebar.mergeTags": "Combinar etiquetas",
|
||||
"settings.project.descriptionGeneral": "Configuración general del proyecto de blog activo.",
|
||||
"settings.project.nameLabel": "Nombre del proyecto",
|
||||
"settings.project.nameDescription": "Nombre visible de tu proyecto de blog.",
|
||||
"settings.project.namePlaceholder": "Mi blog",
|
||||
"settings.project.descriptionLabel": "Descripción",
|
||||
"settings.project.descriptionDescription": "Descripción breve de tu blog. Puede usarse en plantillas y metadatos.",
|
||||
"settings.project.descriptionPlaceholder": "Un blog sobre...",
|
||||
"settings.project.dataPathLabel": "Ruta de datos del proyecto",
|
||||
"settings.project.dataPathDescription": "Carpeta personalizada para guardar entradas, medios y metadatos. Déjala vacía para usar la ubicación predeterminada: {path}",
|
||||
"settings.project.defaultLocation": "Ubicación predeterminada",
|
||||
"settings.project.publicUrlLabel": "URL pública",
|
||||
"settings.project.publicUrlDescription": "URL base pública de tu blog publicado (se usa para generar el sitemap).",
|
||||
"settings.project.publicUrlPlaceholder": "https://example.com",
|
||||
"settings.project.mainLanguageLabel": "Main Language",
|
||||
"settings.project.mainLanguageDescription": "The primary language for your blog content. AI-generated titles, alt text, and captions will use this language.",
|
||||
"settings.project.defaultAuthorLabel": "Default Author",
|
||||
"settings.project.defaultAuthorDescription": "The default author name for new posts and media. Can be overridden per item.",
|
||||
"settings.project.defaultAuthorPlaceholder": "Author Name",
|
||||
"settings.project.maxPostsPerPageLabel": "Max Posts Per Page",
|
||||
"settings.project.maxPostsPerPageDescription": "Maximum number of posts shown per preview route page.",
|
||||
"settings.project.saveButton": "Save Project Settings",
|
||||
"editor.loadingPost": "Loading post...",
|
||||
"editor.unsavedChanges": "Unsaved changes (auto-saves on switch)",
|
||||
"editor.saving": "Saving...",
|
||||
"editor.publish": "Publish",
|
||||
"editor.publishTitle": "Save and make this post public",
|
||||
"editor.discardChanges": "Discard Changes",
|
||||
"editor.discardDraft": "Discard Draft",
|
||||
"editor.discardChangesTitle": "Revert to last published version",
|
||||
"editor.discardDraftTitle": "Delete this draft permanently",
|
||||
"editor.delete": "Delete",
|
||||
"editor.deleteTitle": "Delete this post permanently",
|
||||
"editor.field.title": "Title",
|
||||
"editor.field.tags": "Tags",
|
||||
"editor.field.author": "Author",
|
||||
"settings.project.mainLanguageLabel": "Idioma principal",
|
||||
"settings.project.mainLanguageDescription": "Idioma principal del contenido del blog. Los títulos, textos alternativos y pies generados por IA usarán este idioma.",
|
||||
"settings.project.defaultAuthorLabel": "Autor predeterminado",
|
||||
"settings.project.defaultAuthorDescription": "Nombre de autor predeterminado para nuevas entradas y medios. Se puede reemplazar por elemento.",
|
||||
"settings.project.defaultAuthorPlaceholder": "Nombre del autor",
|
||||
"settings.project.maxPostsPerPageLabel": "Máx. entradas por página",
|
||||
"settings.project.maxPostsPerPageDescription": "Número máximo de entradas mostradas por página de ruta de vista previa.",
|
||||
"settings.project.saveButton": "Guardar configuración del proyecto",
|
||||
"editor.loadingPost": "Cargando entrada...",
|
||||
"editor.unsavedChanges": "Cambios sin guardar (se guarda automáticamente al cambiar)",
|
||||
"editor.saving": "Guardando...",
|
||||
"editor.publish": "Publicar",
|
||||
"editor.publishTitle": "Guardar y hacer pública esta entrada",
|
||||
"editor.discardChanges": "Descartar cambios",
|
||||
"editor.discardDraft": "Descartar borrador",
|
||||
"editor.discardChangesTitle": "Volver a la última versión publicada",
|
||||
"editor.discardDraftTitle": "Eliminar este borrador de forma permanente",
|
||||
"editor.delete": "Eliminar",
|
||||
"editor.deleteTitle": "Eliminar esta entrada de forma permanente",
|
||||
"editor.field.title": "Título",
|
||||
"editor.field.tags": "Etiquetas",
|
||||
"editor.field.author": "Autor",
|
||||
"editor.field.slug": "Slug",
|
||||
"editor.field.categories": "Categories",
|
||||
"editor.field.content": "Content",
|
||||
"editor.placeholder.tags": "Add tags...",
|
||||
"editor.placeholder.author": "Author name",
|
||||
"editor.placeholder.categories": "Add categories...",
|
||||
"editor.placeholder.startWriting": "Start writing...",
|
||||
"editor.field.categories": "Categorías",
|
||||
"editor.field.content": "Contenido",
|
||||
"editor.placeholder.tags": "Agregar etiquetas...",
|
||||
"editor.placeholder.author": "Nombre del autor",
|
||||
"editor.placeholder.categories": "Agregar categorías...",
|
||||
"editor.placeholder.startWriting": "Empieza a escribir...",
|
||||
"editor.mode.visual": "Visual",
|
||||
"editor.mode.visualTitle": "Visual editor",
|
||||
"editor.mode.markdownTitle": "Markdown source",
|
||||
"editor.mode.previewTitle": "Read-only preview",
|
||||
"editor.galleryTitle": "View {count} image(s)",
|
||||
"editor.insertPostLinkTitle": "Link to post (Ctrl+K)",
|
||||
"editor.insertMediaTitle": "Insert image from media library",
|
||||
"editor.previewFrameTitle": "Post preview",
|
||||
"editor.previewLoading": "Loading preview...",
|
||||
"editor.footer.created": "Created",
|
||||
"editor.footer.updated": "Updated",
|
||||
"editor.footer.published": "Published"
|
||||
"editor.mode.visualTitle": "Editor visual",
|
||||
"editor.mode.markdownTitle": "Código Markdown",
|
||||
"editor.mode.previewTitle": "Vista previa de solo lectura",
|
||||
"editor.galleryTitle": "Ver {count} imagen(es)",
|
||||
"editor.insertPostLinkTitle": "Enlazar entrada (Ctrl+K)",
|
||||
"editor.insertMediaTitle": "Insertar imagen desde la biblioteca multimedia",
|
||||
"editor.previewFrameTitle": "Vista previa de la entrada",
|
||||
"editor.previewLoading": "Cargando vista previa...",
|
||||
"editor.footer.created": "Creado",
|
||||
"editor.footer.updated": "Actualizado",
|
||||
"editor.footer.published": "Publicado",
|
||||
"projectSelector.switchProject": "Cambiar proyecto",
|
||||
"projectSelector.selectProject": "Seleccionar proyecto",
|
||||
"projectSelector.projectsHeader": "Proyectos",
|
||||
"projectSelector.noProjectsYet": "Aún no hay proyectos",
|
||||
"projectSelector.newProject": "Nuevo proyecto",
|
||||
"projectSelector.createNewProject": "Crear nuevo proyecto",
|
||||
"projectSelector.projectName": "Nombre del proyecto",
|
||||
"projectSelector.projectNamePlaceholder": "Mi blog",
|
||||
"projectSelector.descriptionOptional": "Descripción (opcional)",
|
||||
"projectSelector.descriptionPlaceholder": "Breve descripción de este proyecto...",
|
||||
"projectSelector.projectLocation": "Ubicación del proyecto",
|
||||
"projectSelector.useDefaultLocation": "Usar ubicación predeterminada",
|
||||
"projectSelector.defaultInternalStorage": "Predeterminado (almacenamiento interno)",
|
||||
"projectSelector.chooseFolder": "Elegir carpeta...",
|
||||
"projectSelector.projectLocationHint": "Elige una carpeta personalizada para copia de seguridad en la nube o usa el almacenamiento interno predeterminado.",
|
||||
"projectSelector.createProject": "Crear proyecto",
|
||||
"projectSelector.deleteProject": "Eliminar proyecto",
|
||||
"projectSelector.deleteWarning": "Esto eliminará permanentemente el proyecto \"{name}\" y todos sus datos, incluyendo:",
|
||||
"projectSelector.deleteItemPosts": "Todas las entradas del blog",
|
||||
"projectSelector.deleteItemMedia": "Todos los archivos multimedia",
|
||||
"projectSelector.deleteItemSettings": "Toda la configuración del proyecto",
|
||||
"projectSelector.typeToConfirm": "Escribe {name} para confirmar la eliminación:",
|
||||
"projectSelector.selectProjectLocation": "Seleccionar ubicación del proyecto",
|
||||
"projectSelector.deleteProjectTitle": "Eliminar {name}",
|
||||
"projectSelector.toast.switched": "Cambiado a {name}",
|
||||
"projectSelector.toast.switchFailed": "No se pudo cambiar de proyecto",
|
||||
"projectSelector.toast.created": "Proyecto \"{name}\" creado",
|
||||
"projectSelector.toast.createFailed": "No se pudo crear el proyecto",
|
||||
"projectSelector.toast.existingSettingsFound": "Se encontró configuración de proyecto existente",
|
||||
"projectSelector.toast.selectFolderFailed": "No se pudo seleccionar la carpeta",
|
||||
"projectSelector.toast.deletedWithData": "Proyecto \"{name}\" y todos sus datos eliminados",
|
||||
"projectSelector.toast.deleteFailed": "No se pudo eliminar el proyecto",
|
||||
"tagsView.title": "Gestión de etiquetas",
|
||||
"tagsView.subtitle": "Administra las etiquetas del blog, asigna colores y realiza operaciones masivas.",
|
||||
"tagsView.loadingTags": "Cargando etiquetas...",
|
||||
"tagsView.noTagsFound": "No se encontraron etiquetas",
|
||||
"tagsView.discoverFromPosts": "Descubrir etiquetas desde entradas",
|
||||
"tagsView.selectedCount": "{count} etiqueta(s) seleccionada(s)",
|
||||
"tagsView.clearSelection": "Limpiar selección",
|
||||
"tagsView.cloud.title": "Nube de etiquetas",
|
||||
"tagsView.cloud.description": "Haz clic en las etiquetas para seleccionarlas para operaciones masivas. Pasa el cursor para ver el número de entradas.",
|
||||
"tagsView.manage.title": "Crear y editar etiquetas",
|
||||
"tagsView.manage.description": "Crea etiquetas nuevas o edita las existentes. Asigna colores para distinguirlas visualmente.",
|
||||
"tagsView.create.title": "Crear nueva etiqueta",
|
||||
"tagsView.create.action": "Crear",
|
||||
"tagsView.tagNamePlaceholder": "Nombre de etiqueta",
|
||||
"tagsView.chooseColor": "Elegir color",
|
||||
"tagsView.removeColor": "Quitar color",
|
||||
"tagsView.edit.title": "Editar etiqueta: {name}",
|
||||
"tagsView.edit.action": "Editar",
|
||||
"tagsView.deleteAction": "Eliminar",
|
||||
"tagsView.merge.title": "Combinar etiquetas",
|
||||
"tagsView.merge.description": "Selecciona varias etiquetas arriba y combínalas en una sola. Se actualizarán todas las entradas.",
|
||||
"tagsView.merge.selectAtLeastTwo": "Selecciona 2 o más etiquetas de la nube para combinarlas.",
|
||||
"tagsView.merge.countInto": "Combinar {count} etiquetas en:",
|
||||
"tagsView.merge.selectTarget": "Seleccionar etiqueta de destino...",
|
||||
"tagsView.merge.action": "Combinar etiquetas",
|
||||
"tagsView.merge.tagsToDelete": "Etiquetas que se eliminarán: {tags}",
|
||||
"tagsView.sync.title": "Sincronizar etiquetas",
|
||||
"tagsView.sync.description": "Descubre etiquetas que existen en entradas pero no en la base de datos de etiquetas.",
|
||||
"tagsView.sync.action": "Sincronizar etiquetas desde entradas",
|
||||
"tagsView.confirmDelete.title": "Eliminar etiqueta",
|
||||
"tagsView.confirmDelete.message": "¿Seguro que quieres eliminar la etiqueta \"{tagName}\"? Se quitará de todas las entradas. Esta acción se ejecuta en segundo plano.",
|
||||
"tagsView.confirmDelete.action": "Eliminar etiqueta",
|
||||
"tagsView.confirmMerge.title": "Combinar etiquetas",
|
||||
"tagsView.confirmMerge.message": "¿Seguro que quieres combinar {count} etiqueta(s) en \"{target}\"? Las etiquetas de origen se eliminarán y se actualizarán todas las entradas. Esta acción se ejecuta en segundo plano.",
|
||||
"tagsView.confirmMerge.action": "Combinar etiquetas",
|
||||
"tagsView.none": "(ninguna)",
|
||||
"tagsView.tagCountTitle": "{count} {item}",
|
||||
"tagsView.postsSingular": "entrada",
|
||||
"tagsView.postsPlural": "entradas",
|
||||
"tagsView.toast.tagNameRequired": "El nombre de la etiqueta es obligatorio",
|
||||
"tagsView.toast.tagCreated": "Etiqueta creada",
|
||||
"tagsView.toast.tagDeleted": "Etiqueta eliminada. {postsUpdated} entrada(s) actualizada(s).",
|
||||
"tagsView.toast.tagUpdated": "Etiqueta actualizada",
|
||||
"tagsView.toast.targetTagNotFound": "No se encontró la etiqueta de destino",
|
||||
"tagsView.toast.noSourceTagsToMerge": "No hay etiquetas de origen para combinar",
|
||||
"tagsView.toast.tagsMerged": "Se combinaron {tagsDeleted} etiqueta(s) en \"{targetTag}\". {postsUpdated} entrada(s) actualizada(s).",
|
||||
"tagsView.toast.discoveredTags": "Se descubrieron {count} etiqueta(s) nueva(s)",
|
||||
"tagsView.toast.alreadySynced": "Todas las etiquetas ya están sincronizadas",
|
||||
"tagsView.error.deleteFailedTitle": "Error al eliminar",
|
||||
"tagsView.error.mergeFailedTitle": "Error al combinar",
|
||||
"linkedMediaPanel.title": "📷 Medios vinculados",
|
||||
"linkedMediaPanel.collapsedTitle": "📷 Medios ({count})",
|
||||
"linkedMediaPanel.importAndLink": "Importar y vincular medios",
|
||||
"linkedMediaPanel.linkExisting": "Vincular medio existente",
|
||||
"linkedMediaPanel.selectMediaToLink": "Seleccionar medios para vincular",
|
||||
"linkedMediaPanel.searchPlaceholder": "Buscar medios...",
|
||||
"linkedMediaPanel.noUnlinkedMedia": "No hay medios sin vincular disponibles",
|
||||
"linkedMediaPanel.noMediaLinked": "No hay medios vinculados a esta entrada",
|
||||
"linkedMediaPanel.importMedia": "Importar medios",
|
||||
"linkedMediaPanel.unlinkFromPost": "Desvincular de la entrada",
|
||||
"linkedMediaPanel.toast.importedLinked": "Se importaron y vincularon {count} archivo(s)",
|
||||
"linkedMediaPanel.toast.importFailed": "Error al importar medios",
|
||||
"linkedMediaPanel.toast.unlinked": "Medio desvinculado de la entrada",
|
||||
"linkedMediaPanel.toast.unlinkFailed": "Error al desvincular medio",
|
||||
"linkedMediaPanel.toast.linked": "Medio vinculado a la entrada",
|
||||
"linkedMediaPanel.toast.linkFailed": "Error al vincular medio",
|
||||
"styleView.title": "Estilo",
|
||||
"styleView.subtitle": "Selecciona un tema de Pico CSS y previsualiza las entradas principales antes de aplicarlo.",
|
||||
"styleView.themePickerAria": "Selector de tema Pico",
|
||||
"styleView.previewMode": "Modo de vista previa",
|
||||
"styleView.mode.auto": "Auto",
|
||||
"styleView.mode.light": "Claro",
|
||||
"styleView.mode.dark": "Oscuro",
|
||||
"styleView.applyTheme": "Aplicar tema",
|
||||
"styleView.themePreviewTitle": "Vista previa del tema",
|
||||
"styleView.toast.appliedTheme": "Tema aplicado: {theme}",
|
||||
"styleView.toast.applyThemeFailed": "No se pudo aplicar el tema",
|
||||
"panel.tabsAria": "Pestañas del panel",
|
||||
"panel.output": "Salida",
|
||||
"panel.postLinks": "Enlaces de entrada",
|
||||
"panel.gitLog": "Registro Git",
|
||||
"panel.closeTitle": "Cerrar panel",
|
||||
"panel.noRecentTasks": "No hay tareas recientes",
|
||||
"panel.noOutput": "Sin salida",
|
||||
"panel.openPostEditor": "Abre un editor de entradas para ver los enlaces",
|
||||
"panel.loadingPostLinks": "Cargando enlaces de entradas...",
|
||||
"panel.noPostLinks": "No hay enlaces para esta entrada",
|
||||
"panel.openPostOrMediaEditor": "Abre un editor de entradas o medios para ver el registro Git",
|
||||
"panel.loadingGitLog": "Cargando registro Git...",
|
||||
"panel.noCommits": "No se encontraron commits para este elemento",
|
||||
"panel.error.loadPostLinks": "No se pudieron cargar los enlaces de la entrada.",
|
||||
"panel.error.loadGitLog": "No se pudo cargar el registro Git.",
|
||||
"panel.direction.from": "desde",
|
||||
"panel.direction.to": "hacia"
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user