diff --git a/docs-web/src/main/webapp/src/app/docs/app.js b/docs-web/src/main/webapp/src/app/docs/app.js
index 89c297f1..635a7edd 100644
--- a/docs-web/src/main/webapp/src/app/docs/app.js
+++ b/docs-web/src/main/webapp/src/app/docs/app.js
@@ -411,9 +411,10 @@ angular.module('docs',
prefix: 'locale/',
suffix: '.json?@build.date@'
})
- .registerAvailableLanguageKeys(['en', 'fr', 'de', 'ru', 'zh_CN', 'zh_TW'], {
+ .registerAvailableLanguageKeys(['en', 'es', 'fr', 'de', 'ru', 'zh_CN', 'zh_TW'], {
'ru_*': 'ru',
'en_*': 'en',
+ 'es_*': 'es',
'fr_*': 'fr',
'de_*': 'de',
'*': 'en'
diff --git a/docs-web/src/main/webapp/src/app/share/app.js b/docs-web/src/main/webapp/src/app/share/app.js
index 63ba3d6d..39f47c7a 100644
--- a/docs-web/src/main/webapp/src/app/share/app.js
+++ b/docs-web/src/main/webapp/src/app/share/app.js
@@ -61,9 +61,10 @@ angular.module('share',
prefix: 'locale/',
suffix: '.json?@build.date@'
})
- .registerAvailableLanguageKeys(['en', 'fr', 'de', 'ru', 'zh_CN', 'zh_TW'], {
+ .registerAvailableLanguageKeys(['en', 'es', 'fr', 'de', 'ru', 'zh_CN', 'zh_TW'], {
'ru_*': 'ru',
'en_*': 'en',
+ 'es_*': 'es',
'fr_*': 'fr',
'de_*': 'de',
'*': 'en'
diff --git a/docs-web/src/main/webapp/src/index.html b/docs-web/src/main/webapp/src/index.html
index f712764f..959419b9 100644
--- a/docs-web/src/main/webapp/src/index.html
+++ b/docs-web/src/main/webapp/src/index.html
@@ -180,6 +180,7 @@
English
Français
Deutsch
+ Española
русский
简体中文
繁體中文
@@ -190,6 +191,7 @@
English
Français
Deutsch
+ Española
русский
简体中文
繁體中文
diff --git a/docs-web/src/main/webapp/src/lib/angular.timeago.js b/docs-web/src/main/webapp/src/lib/angular.timeago.js
index 9c12982f..129820ea 100644
--- a/docs-web/src/main/webapp/src/lib/angular.timeago.js
+++ b/docs-web/src/main/webapp/src/lib/angular.timeago.js
@@ -149,6 +149,29 @@ angular.module('yaru22.angular-timeago').config(["timeAgoSettings", function(tim
'use strict';
+angular.module('yaru22.angular-timeago').config(["timeAgoSettings", function(timeAgoSettings) {
+ timeAgoSettings.strings['es'] = {
+ prefixAgo: 'hace',
+ prefixFromNow: 'dentro de',
+ suffixAgo: null,
+ suffixFromNow: null,
+ seconds: 'menos de un minuto',
+ minute: 'un minuto',
+ minutes: '%d minutos',
+ hour: 'una hora',
+ hours: '%d horas',
+ day: 'un día',
+ days: '%d días',
+ month: 'un mes',
+ months: '%d meses',
+ year: 'un año',
+ years: '%d años',
+ numbers: []
+ };
+}]);
+
+'use strict';
+
angular.module('yaru22.angular-timeago').config(["timeAgoSettings", function(timeAgoSettings) {
timeAgoSettings.strings['es_ES'] = {
prefixAgo: 'hace',
diff --git a/docs-web/src/main/webapp/src/locale/angular-locale_es.js b/docs-web/src/main/webapp/src/locale/angular-locale_es.js
new file mode 100644
index 00000000..12f9b114
--- /dev/null
+++ b/docs-web/src/main/webapp/src/locale/angular-locale_es.js
@@ -0,0 +1,125 @@
+'use strict';
+angular.module("ngLocale", [], ["$provide", function($provide) {
+var PLURAL_CATEGORY = {ZERO: "zero", ONE: "one", TWO: "two", FEW: "few", MANY: "many", OTHER: "other"};
+$provide.value("$locale", {
+ "DATETIME_FORMATS": {
+ "AMPMS": [
+ "a. m.",
+ "p. m."
+ ],
+ "DAY": [
+ "domingo",
+ "lunes",
+ "martes",
+ "mi\u00e9rcoles",
+ "jueves",
+ "viernes",
+ "s\u00e1bado"
+ ],
+ "ERANAMES": [
+ "antes de Cristo",
+ "despu\u00e9s de Cristo"
+ ],
+ "ERAS": [
+ "a. C.",
+ "d. C."
+ ],
+ "FIRSTDAYOFWEEK": 0,
+ "MONTH": [
+ "enero",
+ "febrero",
+ "marzo",
+ "abril",
+ "mayo",
+ "junio",
+ "julio",
+ "agosto",
+ "septiembre",
+ "octubre",
+ "noviembre",
+ "diciembre"
+ ],
+ "SHORTDAY": [
+ "dom.",
+ "lun.",
+ "mar.",
+ "mi\u00e9.",
+ "jue.",
+ "vie.",
+ "s\u00e1b."
+ ],
+ "SHORTMONTH": [
+ "ene.",
+ "feb.",
+ "mar.",
+ "abr.",
+ "may.",
+ "jun.",
+ "jul.",
+ "ago.",
+ "sept.",
+ "oct.",
+ "nov.",
+ "dic."
+ ],
+ "STANDALONEMONTH": [
+ "enero",
+ "febrero",
+ "marzo",
+ "abril",
+ "mayo",
+ "junio",
+ "julio",
+ "agosto",
+ "septiembre",
+ "octubre",
+ "noviembre",
+ "diciembre"
+ ],
+ "WEEKENDRANGE": [
+ 5,
+ 6
+ ],
+ "fullDate": "EEEE, d 'de' MMMM 'de' y",
+ "longDate": "d 'de' MMMM 'de' y",
+ "medium": "d MMM y H:mm:ss",
+ "mediumDate": "d MMM y",
+ "mediumTime": "H:mm:ss",
+ "short": "d/M/yy H:mm",
+ "shortDate": "d/M/yy",
+ "shortTime": "H:mm"
+ },
+ "NUMBER_FORMATS": {
+ "CURRENCY_SYM": "\u20ac",
+ "DECIMAL_SEP": ",",
+ "GROUP_SEP": ".",
+ "PATTERNS": [
+ {
+ "gSize": 3,
+ "lgSize": 3,
+ "maxFrac": 3,
+ "minFrac": 0,
+ "minInt": 1,
+ "negPre": "-",
+ "negSuf": "",
+ "posPre": "",
+ "posSuf": ""
+ },
+ {
+ "gSize": 3,
+ "lgSize": 3,
+ "maxFrac": 2,
+ "minFrac": 2,
+ "minInt": 1,
+ "negPre": "-",
+ "negSuf": "\u00a0\u00a4",
+ "posPre": "",
+ "posSuf": "\u00a0\u00a4"
+ }
+ ]
+ },
+ "id": "es",
+ "localeID": "es",
+ "pluralCat": function(n, opt_precision) { if (n == 1) { return PLURAL_CATEGORY.ONE; } return PLURAL_CATEGORY.OTHER;}
+});
+}]);
diff --git a/docs-web/src/main/webapp/src/locale/en.json b/docs-web/src/main/webapp/src/locale/en.json
index 0f516c34..0dcf89f6 100644
--- a/docs-web/src/main/webapp/src/locale/en.json
+++ b/docs-web/src/main/webapp/src/locale/en.json
@@ -50,7 +50,7 @@
"search_before_date": "Created before this date",
"search_after_date": "Created after this date",
"search_before_update_date": "Updated before this date",
- "search_after_update_date": "Update after this date",
+ "search_after_update_date": "Updated after this date",
"search_tags": "Tags",
"search_shared": "Only shared documents",
"search_workflow": "Workflow assigned to me",
@@ -320,7 +320,7 @@
"add_workflow_title": "Add a workflow",
"name": "Name",
"name_placeholder": "Step name or description",
- "drag_help": "Drag and drop to rorder the step",
+ "drag_help": "Drag and drop to reorder the step",
"type": "Step type",
"type_approve": "Approve",
"type_validate": "Validate",
diff --git a/docs-web/src/main/webapp/src/locale/es.json b/docs-web/src/main/webapp/src/locale/es.json
new file mode 100644
index 00000000..b2b90acc
--- /dev/null
+++ b/docs-web/src/main/webapp/src/locale/es.json
@@ -0,0 +1,606 @@
+{
+ "login": {
+ "username": "Usuario",
+ "password": "Contraseña",
+ "validation_code_required": "Validación de código requerida",
+ "validation_code_title": "Ha activado la autenticación en dos pasos para su cuenta. Por favor, introduzca el código generado por la app en su teléfono.",
+ "validation_code": "Código de validación",
+ "remember_me": "Recordarme",
+ "submit": "Iniciar sesión",
+ "login_as_guest": "Iniciar sesión como invitado",
+ "login_failed_title": "Error al iniciar sesión",
+ "login_failed_message": "Usuario o contraseña incorrectos",
+ "password_lost_btn": "¿Contraseña olvidada?",
+ "password_lost_sent_title": "Correo de reestablecimiento de contraseña enviado",
+ "password_lost_sent_message": "Se ha enviado un correo a {{ username }} para reestablecer su contraseña",
+ "password_lost_error_title": "Error al reestablecer la contraseña",
+ "password_lost_error_message": "Imposible enviar correo de reestablecimiento de contraseña, por favor, contacte a su administrador para hacerlo manualmente"
+ },
+ "passwordlost": {
+ "title": "Contraseña olvidada",
+ "message": "Por favor, introduzca su usuario para recibir un enlace de reestablecimiento. Si no recuerda su usuario, por favor, contacte a su administrador",
+ "submit": "Reestablecer mi contraseña"
+ },
+ "passwordreset": {
+ "message": "Por favor, introduzca la nueva contraseña",
+ "submit": "Cambiar mi contraseña",
+ "error_title": "Error al cambiar tu contraseña",
+ "error_message": "Su petición de recuperación de contraseña ha expirado, por favor, pídala nuevamente en la página de inicio de sesión"
+ },
+ "index": {
+ "toggle_navigation": "Cambiar modo navegación",
+ "nav_documents": "Documentos",
+ "nav_tags": "Etiquetas",
+ "nav_users_groups": "Usuarios y Grupos",
+ "error_info": "{{ count }} nuevo error{{ count > 1 ? 's' : '' }}",
+ "logged_as": "Sesión iniciada como {{ username }}",
+ "nav_settings": "Ajustes",
+ "logout": "Cerrar sesión",
+ "global_quota_warning": "¡Advertencia! Cuota global casi alcanzada en {{ current | number: 0 }}MB ({{ percent | number: 1 }}%) usados en {{ total | number: 0 }}MB"
+ },
+ "document": {
+ "navigation_up": "Subir un nivel",
+ "toggle_navigation": "Cambiar modo navegación",
+ "display_mode_list": "Mostrar documentos en lista",
+ "display_mode_grid": "Mostrar documentos en cuadrícula",
+ "search_simple": "Búsqueda sencilla",
+ "search_fulltext": "Búsqueda texto completo",
+ "search_creator": "Creador",
+ "search_language": "Idioma",
+ "search_before_date": "Creado antes de esta fecha",
+ "search_after_date": "Creado después de esta fecha",
+ "search_before_update_date": "Actualizado antes de esta fecha",
+ "search_after_update_date": "Actualizado después de esta fecha",
+ "search_tags": "Etiquetas",
+ "search_shared": "Solo documentos compartidos",
+ "search_workflow": "Flujo de trabajo asignado a mi",
+ "search_clear": "Limpiar",
+ "any_language": "Cualquier idioma",
+ "add_document": "Añadir un documento",
+ "import_eml": "Importar desde un correo (formato EML)",
+ "tags": "Etiquetas",
+ "no_tags": "Ninguna etiqueta",
+ "no_documents": "No hay documento(s) en la base de datos",
+ "search": "Buscar",
+ "search_empty": "Sin coincidencias para \"{{ search }}\"",
+ "shared": "Compartido",
+ "current_step_name": "Progreso actual",
+ "title": "Título",
+ "description": "Descripción",
+ "contributors": "Contribuidores",
+ "language": "Idioma",
+ "creation_date": "Fecha de creación",
+ "subject": "Tema",
+ "identifier": "Identificador",
+ "publisher": "Editor",
+ "format": "Formato",
+ "source": "Fuente",
+ "type": "Tipo",
+ "coverage": "Cobertura",
+ "rights": "Derechos",
+ "relations": "Relations",
+ "page_size": "Tamaño página",
+ "page_size_10": "10 por página",
+ "page_size_20": "20 por página",
+ "page_size_30": "30 por página",
+ "upgrade_quota": "Para actualizar su cuota, pregunte al administrador",
+ "quota": "{{ current | number: 0 }}MB ({{ percent | number: 1 }}%) usados en {{ total | number: 0 }}MB",
+ "count": "{{ count }} documento{{ count > 1 ? 's' : '' }} encontrado{{ count > 1 ? 's' : '' }}",
+ "last_updated": "Último actualizado {{ date | timeAgo: dateFormat }}",
+ "view": {
+ "delete_comment_title": "Eliminar comentario",
+ "delete_comment_message": "¿Desea realmente eliminar este comentario?",
+ "delete_document_title": "Eliminar documento",
+ "delete_document_message": "¿Desea realmente eliminar este documento?",
+ "shared_document_title": "Documento compartido",
+ "shared_document_message": "Puede compartir el documento ofreciendo este enlace. Tenga en cuenta que cualquiera que tenga este enlace puede ver el documento.
",
+ "not_found": "Documento no encontrado",
+ "forbidden": "Acceso denegado",
+ "download_files": "Descargar archivos",
+ "export_pdf": "Exportar a PDF",
+ "by_creator": "por",
+ "comments": "Comentarios",
+ "no_comments": "Aún no hay comentarios sobre este documento",
+ "add_comment": "Añadir un comentario",
+ "error_loading_comments": "Error al cargar comentarios",
+ "workflow_current": "Flujo de trabajo actual",
+ "workflow_comment": "Añadir comentario de flujo de trabajo",
+ "workflow_validated_title": "Flujo de trabajo validado",
+ "workflow_validated_message": "El flujo de trabajo ha sido validado con éxito",
+ "content": {
+ "content": "Contenido",
+ "delete_file_title": "Eliminar archivo",
+ "delete_file_message": "¿Desea realmente eliminar este archivo?",
+ "upload_pending": "Pendiente...",
+ "upload_progress": "Subiendo...",
+ "upload_error": "Error al subir",
+ "upload_error_quota": "Cuota alcanzada",
+ "drop_zone": "Arrastre y suelte archivos aquí para subir",
+ "add_files": "Añadir archivos",
+ "file_processing_indicator": "El archivo esta siendo procesado. La búsqueda no estará disponible hasta que finalize el proceso.",
+ "reprocess_file": "Volver a procesar el archivo",
+ "upload_new_version": "Subir una nueva versión",
+ "open_versions": "Mostrar historial de versiones",
+ "display_mode_list": "Mostrar documentos en lista",
+ "display_mode_grid": "Mostrar documentos en cuadrícula"
+ },
+ "workflow": {
+ "workflow": "Flujo de trabajo",
+ "message": "Verifique o valide sus documentos con gente de su organización usando flujos de trabajo.",
+ "workflow_start_label": "¿Qué flujo de trabajo iniciar?",
+ "add_more_workflow": "Añadir más flujos de trabajo",
+ "start_workflow_submit": "Iniciar flujo de trabajo",
+ "full_name": "{{ name }} iniciado a {{ create_date | date }}",
+ "cancel_workflow": "Cancelar el flujo de trabajo actual",
+ "cancel_workflow_title": "Cancelar flujo de trabajo",
+ "cancel_workflow_message": "¿Desea realmente cancelar el flujo de trabajo actual?",
+ "no_workflow": "No puede iniciar ningún flujo de trabajo en este documento."
+ },
+ "permissions": {
+ "permissions": "Permisos",
+ "message": "Los permisos pueden ser aplicados directamente a este documento, o pueden provenir de etiquetas.",
+ "title": "Permisos en este documento",
+ "inherited_tags": "Permisos heredados por etiquetas",
+ "acl_source": "De",
+ "acl_target": "Para",
+ "acl_permission": "Permisos"
+ },
+ "activity": {
+ "activity": "Actividad",
+ "message": "Todas las acciones en este documento se registran aquí."
+ }
+ },
+ "edit": {
+ "document_edited_with_errors": "Documento editado correctamente, pero algunos archivos no pueden ser subidos",
+ "document_added_with_errors": "Documento añadido correctamente, pero algunos archivos no pueden ser subidos",
+ "quota_reached": "Cuota alcanzada",
+ "primary_metadata": "Metadatos primarios",
+ "title_placeholder": "Nombre dado al recurso",
+ "description_placeholder": "Cuenta del recurso",
+ "new_files": "Nuevos archivos",
+ "orphan_files": "+ {{ count }} archivo{{ count > 1 ? 's' : '' }}",
+ "additional_metadata": "Metadatos adicionales",
+ "subject_placeholder": "Tema del recurso",
+ "identifier_placeholder": "Una referencia inequívoca al recurso dentro de un contexto dado",
+ "publisher_placeholder": "Una entidad responsable de hacer que el recurso esté disponible",
+ "format_placeholder": "El formato de archivo, medio físico o dimensiones del recurso.",
+ "source_placeholder": "Un recurso relacionado del cual se deriva el recurso descrito",
+ "uploading_files": "Subiendo archivos..."
+ },
+ "default": {
+ "upload_pending": "Pendiente...",
+ "upload_progress": "Subiendo...",
+ "upload_error": "Error al subir",
+ "upload_error_quota": "Cuota alcanzada",
+ "quick_upload": "Subida rápida",
+ "drop_zone": "Arrastre y suelte archivos aquí para subir",
+ "add_files": "Añadir archivos",
+ "add_new_document": "Añadir al nuevo documento",
+ "latest_activity": "Última actividad",
+ "footer_sismics": "Hecho a mano con por Sismics",
+ "api_documentation": "Documentación API",
+ "feedback": "Déjenos un comentario",
+ "workflow_document_list": "Documentos asignados para usted",
+ "select_all": "Seleccionar todo",
+ "select_none": "Deseleccionar"
+ },
+ "pdf": {
+ "export_title": "Exportar a PDF",
+ "export_metadata": "Exportar metadatos",
+ "export_comments": "Exportar comentarios",
+ "fit_to_page": "Ajustar imagen a página",
+ "margin": "Margen",
+ "millimeter": "mm"
+ },
+ "share": {
+ "title": "Compartir documento",
+ "message": "Nombre el uso compartido si desea compartir el mismo documento más veces.",
+ "submit": "Compartir"
+ }
+ },
+ "file": {
+ "view": {
+ "previous": "Anterior",
+ "next": "Siguiente",
+ "not_found": "Archivo no encontrado"
+ },
+ "edit": {
+ "title": "Editar archivo",
+ "name": "Nombre de archivo"
+ },
+ "versions": {
+ "title": "Historial de versiones",
+ "filename": "Nombre de archivo",
+ "mimetype": "Tipo",
+ "create_date": "Fecha de creación",
+ "version": "Versión"
+ }
+ },
+ "tag": {
+ "new_tag": "Nueva etiqueta",
+ "search": "Buscar",
+ "default": {
+ "title": "Etiquetas",
+ "message_1": "Etiquetas son rótulos asociados a documentos.",
+ "message_2": "Un documento puede ser etiquetdo por múltiples etiquetas, y una etiqueta puede ser aplicada a varios documentos.",
+ "message_3": "Usando el botón , puedes editar permisos en una etiqueta.",
+ "message_4": "Si una etiqueta puede ser leida por otro usuario o grupo, los documentos asociados podrán ser leidos por estos también.",
+ "message_5": "Por ejemplo, etiquete los documentos de su compañia con una etiqueta MiCompañia y añada el permiso Puede leer a un grupo empleados"
+ },
+ "edit": {
+ "delete_tag_title": "Eliminar etiqueta",
+ "delete_tag_message": "¿Desea realmente eliminar esta etiqueta?",
+ "name": "Nombre",
+ "color": "Color",
+ "parent": "Principal",
+ "info": "Los permisos en esta etiqueta también se aplicarán a los documentos etiquetados {{ name }}",
+ "circular_reference_title": "Referencia circular",
+ "circular_reference_message": "La jerarquía de las etiquetas principales se encuentra en un búcle redundante, elija otra principal."
+ }
+ },
+ "group": {
+ "profile": {
+ "members": "Miembros",
+ "no_members": "Sin miembros",
+ "related_links": "Enlaces relacionados",
+ "edit_group": "Editar {{ name }} grupo"
+ }
+ },
+ "user": {
+ "profile": {
+ "groups": "Grupos",
+ "quota_used": "Cuota usada",
+ "percent_used": "{{ percent | number: 0 }}% Usado",
+ "related_links": "Enlaces relacionados",
+ "document_created": "Documentos creados por {{ username }}",
+ "edit_user": "Editar {{ username }} usuario"
+ }
+ },
+ "usergroup": {
+ "search_groups": "Buscar en grupos",
+ "search_users": "Buscar en usuarios",
+ "you": "¡Eres tú!",
+ "default": {
+ "title": "Usuarios y Grupos",
+ "message": "Aquí puede ver información sobre usuarios y grupos."
+ }
+ },
+ "settings": {
+ "menu_personal_settings": "Ajustes personales",
+ "menu_user_account": "Cuenta de usuario",
+ "menu_two_factor_auth": "Autenticación en dos pasos",
+ "menu_opened_sessions": "Sesiones abiertas",
+ "menu_file_importer": "Importador de archivos en masa",
+ "menu_general_settings": "Ajustes generales",
+ "menu_workflow": "Flujo de trabajo",
+ "menu_users": "Usuarios",
+ "menu_groups": "Grupos",
+ "menu_vocabularies": "Vocabularios",
+ "menu_configuration": "Configuración",
+ "menu_inbox": "Escaneo bandeja de entrada",
+ "menu_monitoring": "Monitorización",
+ "user": {
+ "title": "Administración de usuarios",
+ "add_user": "Añadir usuario",
+ "username": "Usuario",
+ "create_date": "Fecha creación",
+ "totp_enabled": "Autenticación en dos pasos activada para esta cuenta",
+ "edit": {
+ "delete_user_title": "Eliminar usuario",
+ "delete_user_message": "¿Desea realmente eliminar este usuario? Todos los documentos, archivos y etiquetas asociados serán eliminados",
+ "edit_user_failed_title": "El usuario ya existe",
+ "edit_user_failed_message": "Este nombre de usuario ya fue escogido por otro usuario",
+ "edit_user_title": "Editar \"{{ username }}\"",
+ "add_user_title": "Añadir usuario",
+ "username": "Usuario",
+ "email": "Correo",
+ "groups": "Grupos",
+ "storage_quota": "Cuota almacenamiento",
+ "storage_quota_placeholder": "Cuota de almacenamiento (en MB)",
+ "password": "Contraseña",
+ "password_confirm": "Contraseña (confirmar)",
+ "disabled": "Usuario deshabilitado",
+ "password_reset_btn": "Enviar correo de reestablecimiento de contraseña a este usuario",
+ "password_lost_sent_title": "Correo de reestablecimiento enviado",
+ "password_lost_sent_message": "Un correo de reestablecimiento de contraseña a sido enviado a {{ username }}",
+ "disable_totp_btn": "Desactivar autenticación en dos pasos para este usuario",
+ "disable_totp_title": "Desactivar autenticación en dos pasos",
+ "disable_totp_message": "¿Desea realmente desactivar la autenticación en dos pasos para este usuario?"
+ }
+ },
+ "workflow": {
+ "title": "Configuración flujo de trabajo",
+ "add_workflow": "Añadir flujo de trabajo",
+ "name": "Nombre",
+ "create_date": "Fecha creación",
+ "edit": {
+ "delete_workflow_title": "Eliminar flujo de trabajo",
+ "delete_workflow_message": "¿Desea realmente eliminar este flujo de trabajo? Los flujos de trabajo ejecutándose actualmente no serán eliminados",
+ "edit_workflow_title": "Editar \"{{ name }}\"",
+ "add_workflow_title": "Añadir flujo de trabajo",
+ "name": "Nombre",
+ "name_placeholder": "Nombre del paso o descripción",
+ "drag_help": "Arrastre y suelte para reordenar el paso",
+ "type": "Tipo de paso",
+ "type_approve": "Aprobar",
+ "type_validate": "Validar",
+ "target": "Asignado a",
+ "target_help": "Aprobar: Aceptar o rechazar la revisión
Validar: Revisar y continuar con el flujo de trabajo",
+ "add_step": "Añadir un paso de flujo de trabajo",
+ "actions": "¿Qué ocurre después?",
+ "remove_action": "Eliminar acción",
+ "acl_info": "Solo los usuarios y grupos definidos aquí podrán iniciar este flujo de trabajo en un documento"
+ }
+ },
+ "security": {
+ "enable_totp": "Activar autenticación en dos pasos",
+ "enable_totp_message": "Asegúrese de tener una aplicación compatible con TOTP en su teléfono lista para agregar una nueva cuenta",
+ "title": "Autenticación en dos pasos",
+ "message_1": "La autenticación en dos pasos le permite añadir una capa de seguridad en su {{ appName }} cuenta.
Antes de activar esta característica, compruebe que disponga de una app compatible con TOTP en su teléfono:",
+ "message_google_authenticator": "Para Android, iOS, y Blackberry: Google Authenticator",
+ "message_duo_mobile": "Para Android y iOS: Duo Mobile",
+ "message_authenticator": "Para Windows Phone: Authenticator",
+ "message_2": "Estas aplicaciones generan automaticamente un código de validación que cambia cada cirto tiempo.
Necesitará introducir el código cada vez que acceda a {{ appName }}.",
+ "secret_key": "Su clave secreta es: {{ secret }}",
+ "secret_key_warning": "Configure your TOTP app on your phone with this secret key now, you will not be able to access it later.",
+ "totp_enabled_message": "La autenticación en dos pasos esta habilitada par su cuenta.
Cada vez que inicie sesión en {{ appName }}, se le pedirá el código de su teléfono.
Si pierde su teléfono, no podrá volver a iniciar sesión, pero sesiones activas le permitirán regenerar la clave secreta.",
+ "disable_totp": {
+ "disable_totp": "Desactivar autenticación en dos pasos",
+ "message": "Su cuenta dejará de estar protegida con la autenticación en dos pasos.",
+ "confirm_password": "Confirme su contraseña",
+ "submit": "Desactivar autenticación en dos pasos"
+ },
+ "test_totp": "Por favor, introduzca el código mostrado en su teléfono :",
+ "test_code_success": "Código CORRECTO",
+ "test_code_fail": "El código no es válido, por favor, asegúrerse de que su teléfono esté debidamente configurado, o desactive la autenticación en dos pasos"
+ },
+ "group": {
+ "title": "Administración de grupos",
+ "add_group": "Añadir grupo",
+ "name": "Nombre",
+ "edit": {
+ "delete_group_title": "Eliminar grupo",
+ "delete_group_message": "¿Desea realmente eliminar este grupo?",
+ "edit_group_failed_title": "El grupo ya existe",
+ "edit_group_failed_message": "Este nombre de grupo ya fue escogido por otro grupo",
+ "edit_group_title": "Editar \"{{ name }}\"",
+ "add_group_title": "Añadir grupo",
+ "name": "Nombre",
+ "parent_group": "Grupo principal",
+ "search_group": "Buscar un grupo",
+ "members": "Miembros",
+ "new_member": "Nuevo miembro",
+ "search_user": "Buscar un usuario"
+ }
+ },
+ "account": {
+ "title": "Cuenta de usuario",
+ "password": "Contraseña",
+ "password_confirm": "Contraseña (confirmar)",
+ "updated": "Cuenta actualizada correctamente"
+ },
+ "config": {
+ "title_guest_access": "Acceso invitado",
+ "message_guest_access": "Acceso invitado es un modo en el que cualquiera puede acceder {{ appName }} sin contraseña.
Como un usuario normal, el invitado solo puede acceder a sus documentos, y aquellos accesibles a través de permisos.
",
+ "enable_guest_access": "Activar acceso invitado",
+ "disable_guest_access": "Desactivar acceso invitado",
+ "title_theme": "Personalizar apariencia",
+ "title_general": "Configuración general",
+ "default_language": "Idioma por defecto para nuevos documentos",
+ "application_name": "Nombre aplicación",
+ "main_color": "Color principal",
+ "custom_css": "CSS personalizado",
+ "custom_css_placeholder": "CSS personalizado para agregar después de la hoja de estilo principal",
+ "logo": "Logo (tamaño cuadrado)",
+ "background_image": "Imagen de fondo",
+ "uploading_image": "Subiendo la imagen...",
+ "title_smtp": "Configuración correo",
+ "smtp_hostname": "Host SMTP",
+ "smtp_port": "Puerto SMTP",
+ "smtp_from": "Correo remitente",
+ "smtp_username": "Usuario SMTP",
+ "smtp_password": "Contraseña SMTP",
+ "smtp_updated": "Configuración SMTP actualizada correctamente",
+ "webhooks": "Webhooks",
+ "webhooks_explain": "Los webhooks serán llamados cuando ocurra el evento especificado. La URL dada será el POST (editado) con un JSON que contendrá el nombre del evento e ID del recurso en cuestión.",
+ "webhook_event": "Evento",
+ "webhook_url": "URL",
+ "webhook_create_date": "Fecha creación",
+ "webhook_add": "Añadir Webhook"
+ },
+ "inbox": {
+ "title": "Escaneo bandeja de entrada",
+ "message": "Al activar esta opción, el sistema escaneará la bandeja especificada cada minuto buscando correos no leidos, y los importará automaticamente.
Después de importar un correo, éste será marcado como leido.
Ajustes de configuración para Gmail, Outlook.com, Yahoo.",
+ "enabled": "Activar escaneo de bandeja de entrada",
+ "hostname": "Host IMAP",
+ "port": "Puerto IMAP (143 o 993)",
+ "username": "Usuario IMAP",
+ "password": "Contraseña IMAP",
+ "tag": "Etiqueta añadida a documentos importado",
+ "test": "Comprobar parámetros",
+ "last_sync": "Última sincronización: {{ data.date | date: 'medium' }}, {{ data.count }} mensaje{{ data.count > 1 ? 's' : '' }} importado{{ data.count > 1 ? 's' : '' }}",
+ "test_success": "La conexión con la bandeja de entrada es correcta ({{ count }} mensaje{{ count > 1 ? 's' : '' }} no leido{{ count > 1 ? 's' : '' }})",
+ "test_fail": "Ha ocurrido un error al conectar con la bandeja de entrada, por favor, compruebe los parámetros",
+ "saved": "Configuración IMAP guardada correctamente"
+ },
+ "monitoring": {
+ "background_tasks": "Tareas en segundo plano",
+ "queued_tasks": "Actualmente hay {{ count }} tarea{{ count > 1 ? 's' : '' }} en cola.",
+ "queued_tasks_explain": "Procesamiento de archivos, creación de miniaturas, actualización del índice y reconocimiento óptico de caracteres (OCR) son tareas en segundo plano. Gran cantidad de tareas sin procesar resultarán en búsquedas incompletas.",
+ "server_logs": "Registros del servidor",
+ "log_date": "Fecha",
+ "log_tag": "Etiqueta",
+ "log_message": "Mensaje",
+ "indexing": "Indexación",
+ "indexing_info": "Si observa discrepancias en los resultados de búsqueda, puede intentar realizar una reindexación completa. Los resultados de la búsqueda estarán incompletos hasta que se realice esta operación.",
+ "start_reindexing": "Iniciar reindexación completa",
+ "reindexing_started": "Reindexación iniciada, por favor, espere hasta que ya no queden tareas en segundo plano."
+ },
+ "session": {
+ "title": "Sesiones abiertas",
+ "created_date": "Fecha creación",
+ "last_connection_date": "Última fecha de conexión",
+ "user_agent": "De",
+ "current": "Actual",
+ "current_session": "Esta es la sesión actual",
+ "clear_message": "El resto de los dispositivos conectados a esta cuenta serán desconectados",
+ "clear": "Eliminar el resto de las sesiones"
+ },
+ "vocabulary": {
+ "title": "Entradas de vocabulario",
+ "choose_vocabulary": "Seleccione un vocabulario para editar",
+ "type": "Tipo",
+ "coverage": "Cobertura",
+ "rights": "Derechos",
+ "value": "Valor",
+ "order": "Órden",
+ "new_entry": "Nueva entrada"
+ },
+ "fileimporter": {
+ "title": "Importador de archivos en masa",
+ "advanced_users": "¡Para usuarios avanzados!",
+ "need_intro": "Si necesita:",
+ "need_1": "Importar un directorio de archivos de una vez",
+ "need_2": "Escanear un directorio en busca de nuevos archivos, e importados",
+ "line_1": "Vaya a sismics/docs/releases y descargue la herramienta 'file importer' para su sistema.",
+ "line_2": "Siga las instrucciones aquí para usar esta herramienta.",
+ "line_3": "Sus archivos serán importados en Subida rápida, luego podrá agruparlos en documentos.",
+ "download": "Descargar",
+ "instructions": "Instrucciones"
+ }
+ },
+ "feedback": {
+ "title": "Déjenos un comentario",
+ "message": "¿Alguna sugerencia o pregunta sobre Teedy? ¡Te escuchamos!",
+ "sent_title": "Comentario enviado",
+ "sent_message": "¡Gracias por su comentario! Nos ayudará a hacer Teedy mucho mejor."
+ },
+ "import": {
+ "title": "Importando",
+ "error_quota": "Límite de cuota alcanzado, contacte a su administrador para incrementarla",
+ "error_general": "Ha ocurrido un error al intentar importar sus archivos, por favor, asegúrese de que sea un archivo EML válido"
+ },
+ "app_share": {
+ "main": "Pedir enlace al documento para acceder a él",
+ "403": {
+ "title": "No autorizado",
+ "message": "El documento que esta intentando ver ya no se cuentra compartido"
+ }
+ },
+ "directive": {
+ "acledit": {
+ "acl_target": "Para",
+ "acl_permission": "Permiso",
+ "add_permission": "Añadir un permiso",
+ "search_user_group": "Buscar un usuario o grupo"
+ },
+ "auditlog": {
+ "log_created": "creado",
+ "log_updated": "actualizado",
+ "log_deleted": "eliminado",
+ "Acl": "ACL",
+ "Comment": "Comentario",
+ "Document": "Documento",
+ "File": "Archivo",
+ "Group": "Grupo",
+ "Route": "Flujo de trabajo",
+ "RouteModel": "Modelo flujo de trabajo",
+ "Tag": "Etiqueta",
+ "User": "Usuario",
+ "Webhook": "Webhook"
+ },
+ "selectrelation": {
+ "typeahead": "Introduzca el título de un documento"
+ },
+ "selecttag": {
+ "typeahead": "Introduzca una etiqueta"
+ },
+ "datepicker": {
+ "current": "Hoy",
+ "clear": "Borrar",
+ "close": "Hecho"
+ }
+ },
+ "filter": {
+ "filesize": {
+ "mb": "MB",
+ "kb": "KB"
+ }
+ },
+ "acl": {
+ "READ": "Puede leer",
+ "READWRITE": "Puede escribir",
+ "WRITE": "Puede escribir",
+ "USER": "Usuario",
+ "GROUP": "Grupo",
+ "SHARE": "Compartido"
+ },
+ "workflow_type": {
+ "VALIDATE": "Validación",
+ "APPROVE": "Aprobación"
+ },
+ "workflow_transition": {
+ "APPROVED": "Aprobado",
+ "REJECTED": "Rechazado",
+ "VALIDATED": "Validado"
+ },
+ "validation": {
+ "required": "Requerido",
+ "too_short": "Muy corto",
+ "too_long": "Muy largo",
+ "email": "Debe ser un correo válido",
+ "password_confirm": "Contraseña y Contraseña (confirmar) deben coincidir",
+ "number": "Número requerido",
+ "no_space": "Los espacios no estan permitidos"
+ },
+ "action_type": {
+ "ADD_TAG": "Añadir etiqueta",
+ "REMOVE_TAG": "Eliminar etiqueta",
+ "PROCESS_FILES": "Procesar archivos"
+ },
+ "pagination": {
+ "previous": "Anterior",
+ "next": "Siguiente",
+ "first": "Primero",
+ "last": "Último"
+ },
+ "onboarding": {
+ "step1": {
+ "title": "¿Primera vez?",
+ "description": "Si es su primera vez en Teedy, presione el botón Siguiente, de otro modo ciérreme si así lo desea."
+ },
+ "step2": {
+ "title": "Documentos",
+ "description": "Teedy esta organizado en documentos y cada uno contiene múltiples archivos."
+ },
+ "step3": {
+ "title": "Archivos",
+ "description": "Puede agregar archivos después de crear un documento, o antes de usar la zona de subida rápida."
+ },
+ "step4": {
+ "title": "Buscar",
+ "description": "Esta es la forma más rápida de buscar un documento. Está disponible una búsqueda avanzada con el botón lupa."
+ },
+ "step5": {
+ "title": "Etiquetas",
+ "description": "Los documentos pueden ser organizados en etiquetas (las cuales son como super-carpetas). Creelas aquí."
+ }
+ },
+ "ok": "OK",
+ "cancel": "Cancelar",
+ "share": "Compartir",
+ "unshare": "No compartir",
+ "close": "Cerrar",
+ "add": "Añadir",
+ "open": "Abrir",
+ "see": "Ver",
+ "save": "Guardar",
+ "export": "Exportar",
+ "edit": "Editar",
+ "delete": "Eliminar",
+ "rename": "Renombrar",
+ "loading": "Cargando...",
+ "send": "Enviar",
+ "enabled": "Activado",
+ "disabled": "Desactivado"
+}
\ No newline at end of file
diff --git a/docs-web/src/main/webapp/src/share.html b/docs-web/src/main/webapp/src/share.html
index 2b79b419..ac317e1e 100644
--- a/docs-web/src/main/webapp/src/share.html
+++ b/docs-web/src/main/webapp/src/share.html
@@ -70,6 +70,7 @@
English
Français
Deutsch
+ Española
русский
简体中文
繁體中文
@@ -80,6 +81,7 @@
English
Français
Deutsch
+ Española
русский
简体中文
繁體中文