Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
98 changes: 98 additions & 0 deletions application/src/main/resources/config/i18n/messages_es.properties
Original file line number Diff line number Diff line change
@@ -0,0 +1,98 @@
# Title definitions
problemDetail.title.org.springframework.web.server.ServerWebInputException=Solicitud incorrecta
problemDetail.title.run.halo.app.infra.exception.UnsatisfiedAttributeValueException=Valor de atributo de solicitud no satisfecho
problemDetail.title.org.springframework.web.server.UnsupportedMediaTypeStatusException=Tipo de medio no soportado
problemDetail.title.org.springframework.web.server.MissingRequestValueException=Valor de solicitud faltante
problemDetail.title.org.springframework.web.server.UnsatisfiedRequestParameterException=Parámetro de solicitud no satisfecho
problemDetail.title.org.springframework.web.bind.support.WebExchangeBindException=Fallo en la validación o vinculación de datos
problemDetail.title.org.springframework.web.server.NotAcceptableStatusException=No aceptable
problemDetail.title.org.springframework.web.server.ServerErrorException=Error del servidor
problemDetail.title.org.springframework.web.server.MethodNotAllowedException=Método no permitido
problemDetail.title.org.springframework.security.authentication.BadCredentialsException=Credenciales incorrectas
problemDetail.title.run.halo.app.extension.exception.SchemaViolationException=Violación de esquema
problemDetail.title.run.halo.app.infra.exception.AttachmentAlreadyExistsException=El archivo adjunto ya existe
problemDetail.title.run.halo.app.infra.exception.FileTypeNotAllowedException=Tipo de archivo no permitido
problemDetail.title.run.halo.app.infra.exception.FileSizeExceededException=Tamaño de archivo excedido
problemDetail.title.run.halo.app.infra.exception.AccessDeniedException=Acceso denegado
problemDetail.title.run.halo.app.infra.exception.RequestRestrictedException=Solicitud restringida
problemDetail.title.reactor.core.Exceptions.RetryExhaustedException=Reintentos agotados
problemDetail.title.run.halo.app.infra.exception.ThemeInstallationException=Error de instalación del tema
problemDetail.title.run.halo.app.infra.exception.ThemeUpgradeException=Error de actualización del tema
problemDetail.title.run.halo.app.infra.exception.ThemeAlreadyExistsException=Error: El tema ya existe
problemDetail.title.run.halo.app.infra.exception.PluginInstallationException=Error de instalación del complemento
problemDetail.title.run.halo.app.infra.exception.PluginAlreadyExistsException=Error: El complemento ya existe
problemDetail.title.run.halo.app.infra.exception.DuplicateNameException=Error de nombre duplicado
problemDetail.title.run.halo.app.infra.exception.RateLimitExceededException=Solicitud no permitida (Límite de tasa excedido)
problemDetail.title.run.halo.app.infra.exception.NotFoundException=Recurso no encontrado
problemDetail.title.run.halo.app.infra.exception.EmailVerificationFailed=Fallo en la verificación del correo electrónico
problemDetail.title.run.halo.app.infra.exception.PluginDependencyException$CyclicException=Dependencia cíclica detectada
problemDetail.title.run.halo.app.infra.exception.PluginDependencyException$NotFoundException=Dependencias no encontradas
problemDetail.title.run.halo.app.infra.exception.PluginDependencyException$WrongVersionsException=Versión de dependencia incorrecta
problemDetail.title.run.halo.app.infra.exception.PluginDependentsNotDisabledException=Dependientes no desactivados
problemDetail.title.run.halo.app.infra.exception.PluginDependenciesNotEnabledException=Dependencias no activadas
problemDetail.title.run.halo.app.infra.exception.OAuth2UserAlreadyBoundException=Error: Usuario ya vinculado
problemDetail.title.run.halo.app.infra.exception.PluginRuntimeIncompatibleException=Entorno de ejecución del complemento incompatible
problemDetail.title.internalServerError=Error interno del servidor
problemDetail.title.conflict=Conflicto

# Detail definitions
problemDetail.org.springframework.web.server.UnsupportedMediaTypeStatusException=El tipo de contenido {0} no está soportado. Tipos de medios soportados: {1}.
problemDetail.org.springframework.web.server.UnsupportedMediaTypeStatusException.parseError=No se pudo analizar el Content-Type.
problemDetail.org.springframework.web.server.MissingRequestValueException=El {0} requerido ''{1}'' no está presente.
problemDetail.org.springframework.web.server.UnsatisfiedRequestParameterException=No se cumplen las condiciones del parámetro "{0}" para los parámetros de la solicitud actual.
problemDetail.org.springframework.web.bind.support.WebExchangeBindException=Contenido de la solicitud inválido. Errores globales: {0}. Errores de campo: {1}.
problemDetail.org.springframework.web.server.NotAcceptableStatusException=Representaciones aceptables: {0}.
problemDetail.org.springframework.web.server.NotAcceptableStatusException.parseError=No se pudo analizar el encabezado Accept.
problemDetail.org.springframework.web.server.ServerErrorException={0}.
problemDetail.org.springframework.security.authentication.BadCredentialsException=El nombre de usuario o la contraseña son incorrectos.
problemDetail.org.springframework.web.server.MethodNotAllowedException=El método de solicitud {0} no está soportado. Métodos soportados: {1}.
problemDetail.run.halo.app.extension.exception.SchemaViolationException={1} del esquema {0}.
problemDetail.run.halo.app.infra.exception.AttachmentAlreadyExistsException=El archivo {0} ya existe, por favor cámbiale el nombre e inténtalo de nuevo.
problemDetail.run.halo.app.infra.exception.DuplicateNameException=Se ha detectado un nombre duplicado, por favor cámbiale el nombre e inténtalo de nuevo.
problemDetail.run.halo.app.infra.exception.PluginAlreadyExistsException=El complemento {0} ya existe.
problemDetail.run.halo.app.infra.exception.RateLimitExceededException=Se ha excedido el límite de tasa de la API, por favor inténtalo de nuevo más tarde.
problemDetail.run.halo.app.infra.exception.EmailVerificationFailed=Código de verificación de correo electrónico inválido.
problemDetail.run.halo.app.infra.exception.PluginDependencyException$CyclicException=Se ha detectado una dependencia cíclica.
problemDetail.run.halo.app.infra.exception.PluginDependencyException$NotFoundException=No se encontraron las dependencias "{0}".
problemDetail.run.halo.app.infra.exception.PluginDependencyException$WrongVersionsException=Las dependencias tienen una versión incorrecta: {0}.
problemDetail.run.halo.app.infra.exception.PluginDependentsNotDisabledException=Los dependientes del complemento {0} no están totalmente desactivados, por favor desactívalos primero.
problemDetail.run.halo.app.infra.exception.PluginDependenciesNotEnabledException=Las dependencias del complemento {0} no están totalmente activadas, por favor actívalas primero.
problemDetail.run.halo.app.infra.exception.OAuth2UserAlreadyBoundException=El usuario {0} ya ha sido vinculado a otro usuario de OAuth2, no se puede vincular automáticamente el usuario de OAuth2 actual.
problemDetail.run.halo.app.infra.exception.PluginRuntimeIncompatibleException=El complemento es incompatible con el entorno de ejecución de Halo actual, por favor actualiza el complemento o degrada el entorno de Halo.

problemDetail.index.duplicateKey=El valor de {0} ya existe para el índice único {1}, por favor cámbiale el nombre e inténtalo de nuevo.
problemDetail.user.email.verify.maxAttempts=Demasiados intentos de verificación, por favor inténtalo de nuevo más tarde.
problemDetail.user.email.verify.emailInUse=El correo electrónico ya está en uso, por favor cámbialo e inténtalo de nuevo.
problemDetail.user.password.unsatisfied=La contraseña no cumple con las especificaciones.
problemDetail.user.username.unsatisfied=El nombre de usuario no cumple con las especificaciones.
problemDetail.user.oldPassword.notMatch=La contraseña antigua no coincide.
problemDetail.user.password.notMatch=La contraseña no coincide.
problemDetail.user.signUpFailed.disallowed=El sistema no permite que nuevos usuarios se registren.
problemDetail.user.duplicateName=El nombre de usuario {0} ya existe, por favor cámbiale el nombre e inténtalo de nuevo.
problemDetail.comment.turnedOff=La función de comentarios ha sido desactivada.
problemDetail.comment.systemUsersOnly=Solo se permite comentar a los usuarios del sistema.
problemDetail.theme.upgrade.missingManifest=Falta el archivo de manifiesto del tema "theme.yaml" o "theme.yml".
problemDetail.theme.upgrade.nameMismatch=El nombre del tema actual {0} no coincide con el nombre del tema instalado.
problemDetail.theme.install.missingManifest=Falta el archivo de manifiesto del tema "theme.yaml" o el archivo no cumple con las especificaciones del tema.
problemDetail.theme.install.alreadyExists=El tema {0} ya existe.
problemDetail.theme.version.unsatisfied.requires=El tema requiere una versión mínima del sistema de {0}, pero la versión actual es {1}.
problemDetail.directoryTraversal=Travesía de directorios detectada. La ruta base es {0}, pero la ruta real es {1}.
problemDetail.plugin.version.unsatisfied.requires=El complemento requiere una versión mínima del sistema de {0}, pero la versión actual es {1}.
problemDetail.plugin.missingManifest=Falta el archivo de manifiesto del complemento "plugin.yaml" o el archivo no cumple con las especificaciones.
problemDetail.internalServerError=Algo salió mal, por favor inténtalo de nuevo más tarde.
problemDetail.conflict=Conflicto detectado, por favor revisa los datos e inténtalo de nuevo.
problemDetail.migration.backup.notFound=El archivo de respaldo no existe o ha sido eliminado.
problemDetail.attachment.upload.fileSizeExceeded=Asegúrate de que el tamaño del archivo sea inferior a {0}.
problemDetail.attachment.upload.fileTypeNotSupported=Carga no soportada para archivos de tipo {0}.
problemDetail.attachment.upload.fileTypeNotMatch=El tipo de archivo {0} no coincide con la extensión del archivo y la carga ha sido rechazada.
problemDetail.comment.waitingForApproval=El comentario está esperando aprobación.

title.visibility.identification.private=(Privado)
signup.error.confirm-password-not-match=La contraseña de confirmación no coincide con la contraseña.
signup.error.email-code.invalid=Código de correo electrónico inválido.
signup.error.email.already-taken=La dirección de correo electrónico ya está en uso.

validation.error.email.pattern=El formato del correo electrónico es incorrecto
validation.error.username.pattern=El nombre de usuario solo puede estar en minúsculas y solo puede contener letras, números, guiones y puntos, comenzando y terminando con caracteres.
validation.error.password.pattern=La contraseña solo puede usar letras mayúsculas y minúsculas (A-Z, a-z), números (0-9) y los siguientes caracteres especiales: !@#$%^&*
validation.error.password.size=La longitud de la contraseña debe estar entre {0} y {1}
216 changes: 216 additions & 0 deletions ui/packages/editor/src/locales/es.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,216 @@
editor:
drag:
button:
insert_block: Insertar bloque
drag_handle: Tirador de arrastre
menu:
convert_to: Convertir a
copy: Copiar
cut: Cortar
delete: Eliminar
menus:
undo: Deshacer
redo: Rehacer
table:
title: Tabla
add: Añadir tabla
add_column_before: Añadir columna antes
add_column_after: Añadir columna después
delete_column: Eliminar columna
add_row_before: Añadir fila antes
add_row_after: Añadir fila después
toggle_header_column: Activar/Desactivar encabezado de primera columna
toggle_header_row: Activar/Desactivar encabezado de primera fila
toggle_header_cell: Activar/Desactivar celda actual como encabezado
delete_row: Eliminar fila
merge_cells: Combinar celdas
split_cell: Dividir celda
delete_table: Eliminar tabla
extensions:
commands_menu:
columns: Tarjeta de columnas
iframe: Iframe
image: Imagen
video: Vídeo
audio: Audio
table: Tabla
gallery: Galería
no_results: Sin resultados
placeholder: Introduce / para seleccionar el tipo de entrada
figure_caption:
empty_placeholder: Añadir descripción
link:
add_link: Añadir enlace
edit_link: Editar enlace
placeholder: Dirección del enlace
open_in_new_window: Abrir en una ventana nueva
cancel_link: Cancelar enlace
nofollow: No follow
audio:
src_input_label: Enlace de audio
disable_autoplay: Desactivar reproducción automática
enable_autoplay: Activar reproducción automática
disable_loop: Desactivar bucle
enable_loop: Activar bucle
iframe:
src_input_label: Enlace web
resize: Redimensionar
disable_frameborder: Ocultar borde de marco
enable_frameborder: Mostrar borde de marco
phone_size: Tamaño de teléfono móvil
tablet_vertical_size: Tamaño de tableta vertical
tablet_horizontal_size: Tamaño de tableta horizontal
desktop_size: Tamaño de escritorio
image:
src_input_label: Enlace de imagen
href_input_label: Hipervínculo de imagen
resize: Redimensionar
small_size: Tamaño pequeño
medium_size: Tamaño mediano
large_size: Tamaño grande
restore_size: Restaurar tamaño original
edit_link: Editar enlace
edit_alt: Editar texto alternativo
edit_href: Editar el hipervínculo de la imagen
edit_caption: Descripción de la imagen
image_load_error: Error al cargar la imagen
video:
src_input_label: Enlace de vídeo
resize: Redimensionar
disable_controls: Ocultar controles
enable_controls: Mostrar controles
disable_autoplay: Desactivar reproducción automática
enable_autoplay: Activar reproducción automática
disable_loop: Desactivar bucle
enable_loop: Activar bucle
small_size: Tamaño pequeño
medium_size: Tamaño mediano
large_size: Tamaño grande
edit_caption: Descripción del vídeo
highlight:
unset: Desactivar
columns:
add_column_before: Añadir columna antes
add_column_after: Añadir columna después
delete_column: Eliminar columna
search_and_replace:
title: Buscar y reemplazar
search_placeholder: Buscar
not_found: No encontrado
occurrence_found: "{index} de {total} ocurrencias"
find_previous: Buscar anterior
find_next: Buscar siguiente
replace_placeholder: Reemplazar
replace: Reemplazar
replace_all: Reemplazar todo
case_sensitive: Coincidir mayúsculas y minúsculas
match_word: Palabras completas
use_regex: Usar expresión regular
close: Cerrar
format_brush:
toolbar_item:
title: Pincel de formato
cancel: Cancelar pincel de formato
details:
command_item: Detalles
gallery:
title: Galería
add_image: Añadir imagen
empty_prompt: Haz clic para seleccionar imágenes o arrastra imágenes aquí
group_size: Imágenes por fila
group_size_label: "{count} imágenes por fila"
layout:
title: Diseño
auto: Automático
square: Cuadrado
gap: Espaciado
upload:
error: Error al cargar
click_retry: Haz clic para reintentar
loading: Cargando
attachment:
title: Biblioteca de adjuntos
permalink:
title: Enlace de entrada
placeholder: Introduce el enlace y presiona Enter para confirmar
operations:
remove:
button: Eliminar
replace:
button: Reemplazar
transfer:
button: Guardar localmente
tooltip: >-
Este recurso se detecta como recurso externo. Haz clic en este
botón para guardarlo en la biblioteca de adjuntos.
transfer_in_batch:
description: >-
Enlace externo detectado. ¿Deseas cargarlo automáticamente
a la biblioteca de adjuntos?
font_size:
title: Tamaño de fuente
components:
color_picker:
more_color: Más
common:
alt: Texto alternativo
width: Ancho
height: Alto
align_method: Método de alineación
align_left: Alinear a la izquierda
align_center: Centrar
align_right: Alinear a la derecha
align_justify: Justificar
bold: Negrita
italic: Cursiva
underline: Subrayado
strike: Tachado
quote: Cita
code: Código
superscript: Superíndice
subscript: Subíndice
codeblock:
title: Bloque de código
copy_code: Copiar código
copy_code_success: Copiado con éxito
image: Imagen
heading:
title: Tipo de texto
paragraph: Párrafo
heading1: Título 1
heading2: Título 2
heading3: Título 3
heading4: Título 4
heading5: Título 5
heading6: Título 6
list: Lista
bullet_list: Lista con viñetas
ordered_list: Lista ordenada
task_list: Lista de tareas
highlight: Resaltar
color: Color
tooltip:
custom_width_input: Ancho personalizado, presiona Enter para aplicar
custom_height_input: Alto personalizado, presiona Enter para aplicar
open_link: Abrir enlace
placeholder:
link_input: Introduce el enlace y presiona Enter para confirmar.
alt_input: Introduce el texto alternativo y presiona Enter para confirmar.
alt_href: Introduce el hipervínculo de la imagen y presiona Enter para confirmar.
button:
new_line: Nueva línea
delete: Eliminar
edit_link: Editar enlace
refresh: Refrescar
restore_default: Restaurar predeterminado
add: Añadir
cancel: Cancelar
upload: Cargar
confirm: Confirmar
text:
default: Predeterminado
tip: Consejo
toast:
save_success: Guardado con éxito
line_height: Altura de línea
clear_format: Limpiar formato
5 changes: 5 additions & 0 deletions ui/packages/editor/src/locales/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4,11 +4,16 @@ import en from "./en.yaml";
// @ts-ignore
import zhCN from "./zh-CN.yaml";

// @ts-ignore
import es from "./es.yaml";

const messages = {
en: en,
zh: zhCN,
es: es,
"en-US": en,
"zh-CN": zhCN,
"es-ES": es,
};

const i18n = createI18n({
Expand Down
Loading