From ea9da164824013dcf2dc510d8b8b00588ff406cb Mon Sep 17 00:00:00 2001 From: Fabian Kromer Date: Fri, 15 Mar 2024 11:07:56 +0100 Subject: [PATCH 1/2] =?UTF-8?q?=F0=9F=90=9B=20fix=20github=20actions=20bui?= =?UTF-8?q?ld?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/push.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/push.yml b/.github/workflows/push.yml index aeb7c0a..5382f73 100644 --- a/.github/workflows/push.yml +++ b/.github/workflows/push.yml @@ -15,8 +15,9 @@ jobs: - name: autotag id: autotag uses: butlerlogic/action-autotag@1.1.4 - with: + env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + with: strategy: package tag_message: ${{ github.event.head_commit.message }} - name: create_release From bacbde6be0522265d8ccc71b9e80a9eada7e56ed Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Miguel=20=C3=81ngel=20Anguita=20Molina?= <42646544+miguelin3097@users.noreply.github.com> Date: Mon, 18 Mar 2024 14:38:03 +0100 Subject: [PATCH 2/2] =?UTF-8?q?=F0=9F=8C=90=20Added=20Spanish=20translatio?= =?UTF-8?q?n=20(#208)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit thanks for this great PR! --- imports/ui/pages/settings.html | 1 + imports/ui/translations/de.json | 1 + imports/ui/translations/en.json | 1 + imports/ui/translations/es.json | 471 +++++++++++++++++++++++++++++++ imports/ui/translations/fr.json | 1 + imports/ui/translations/ru.json | 1 + imports/ui/translations/ukr.json | 1 + imports/ui/translations/zh.json | 1 + imports/utils/i18n.js | 2 + 9 files changed, 480 insertions(+) create mode 100644 imports/ui/translations/es.json diff --git a/imports/ui/pages/settings.html b/imports/ui/pages/settings.html index 28229b7..4ccdbbb 100644 --- a/imports/ui/pages/settings.html +++ b/imports/ui/pages/settings.html @@ -117,6 +117,7 @@ + diff --git a/imports/ui/translations/de.json b/imports/ui/translations/de.json index 1c04792..68e24a8 100644 --- a/imports/ui/translations/de.json +++ b/imports/ui/translations/de.json @@ -140,6 +140,7 @@ "zh": "Chinesisch", "ru": "Russisch", "ukr": "Ukrainisch", + "es": "Spanisch", "user_interface": "Benutzeroberfläche", "theme": "Thema", "auto_detect": "Automatisch", diff --git a/imports/ui/translations/en.json b/imports/ui/translations/en.json index 999080b..74113e8 100644 --- a/imports/ui/translations/en.json +++ b/imports/ui/translations/en.json @@ -140,6 +140,7 @@ "zh": "Chinese", "ru": "Russian", "ukr": "Ukrainian", + "es": "Spanish", "user_interface": "User interface", "theme": "Theme", "auto_detect": "Auto detect", diff --git a/imports/ui/translations/es.json b/imports/ui/translations/es.json new file mode 100644 index 0000000..e36838f --- /dev/null +++ b/imports/ui/translations/es.json @@ -0,0 +1,471 @@ +{ + "globals": { + "unit_day_short": "d", + "unit_hour_short": "h", + "unit_minute_short": "m", + "name": "Nombre", + "prj_name": "Nombre del Proyecto", + "description": "Descripción", + "day": "Día", + "week": "Semana", + "day_plural": "Días", + "month": "Mes", + "hour": "Hora", + "minute": "Minuto", + "hour_plural": "Horas", + "minute_plural": "Minutos", + "loading": "Cargando datos...", + "project": "Proyecto", + "task": "Tarea", + "task_plural": "Tareas", + "time": "Tiempo", + "date": "Fecha", + "resource": "Recurso", + "customer": "Cliente", + "sum": "Suma", + "not_found": "Lo siento, o bien nuestro servidor está en llamas o no pudimos encontrar lo que estás buscando.", + "color": "Color", + "email": "Correo Electrónico", + "or": "o", + "time_entry": "Entrada de Tiempo", + "class": "Clase", + "type": "Tipo", + "yes": "Sí", + "no": "No", + "cancel": "Cancelar", + "ok": "Aceptar", + "definition": "Definición", + "user": "Usuario", + "global_setting": "Configuración Global", + "status": "Estado" + }, + "navigation": { + "track": "Registrar Tiempo", + "overview": "Resumen", + "details": "Detalles", + "profile": "Perfil", + "about": "Acerca de", + "settings": "Configuración", + "administration": "Administración", + "save": "Guardar", + "back": "Atrás", + "edit": "Editar", + "archive": "Archivar", + "delete": "Eliminar", + "restore": "Restaurar", + "show_archived": "Mostrar Archivados", + "change_password": "Cambiar Contraseña", + "logout": "Cerrar Sesión", + "new_project": "Nuevo Proyecto", + "close": "Cerrar", + "share": "Compartir", + "invoice": "Factura", + "retry": "Reintentar ahora", + "lastWeek": "Semana Pasada", + "nextWeek": "Próxima Semana", + "newLine": "Nueva Tarea", + "cancel": "Cancelar", + "saving": "Guardando...", + "timeUnit_message": "Definición de la unidad de tiempo para tus tareas" + }, + "tracktime": { + "no_time": "Aún no se ha registrado tiempo.", + "task_placeholder": "Ingresa o busca una tarea", + "working_time": "Tiempo de Trabajo ", + "time_tracked": "Tiempo Registrado: ", + "month_drag_help_text": "Puedes arrastrar proyectos en una fecha para registrar tiempo", + "today": "Hoy", + "actions": "Acciones", + "start_timer": "Iniciar Cronómetro", + "start_time": "Hora de Inicio", + "timer": "Cronómetro", + "timerMessage": "Usando un cronómetro, puedes registrar el tiempo dedicado a una tarea específica", + "user_placeholder": "Ingresa o busca un usuario...", + "timeline": "Línea de Tiempo" + }, + "overview": { + "all_projects": "Todos los Proyectos", + "total_time_tracked": "Tiempo Total Registrado:", + "top_tasks": "Principales Tareas", + "project_distribution": "Distribución del Proyecto", + "three_month_history": "Historial de 3 Meses", + "details_button": "Detalles", + "project_information": "Información del Proyecto", + "team": "Equipo ", + "total_time": "Tiempo Total", + "target": "Objetivo", + "turnover": "Facturación", + "number_projects": "Número de Proyectos", + "summary": "Resumen", + "properties": "Propiedades", + "percentage": "Progreso del Proyecto", + "startDate": "Fecha de Inicio", + "endDate": "Fecha de Fin", + "duration": "Duración del Proyecto" + }, + "project": { + "title": "Editar Proyecto", + "first_project_desc": "Este proyecto se creó automáticamente para ti, ¡siéntete libre de cambiarlo! ¿Sabías que puedes usar emojis como 💰 ⏱ 👍 en todas partes?", + "customer_placeholder": "Cliente de Ejemplo", + "rate": "Tarifa", + "default_rate": "Tarifa Predeterminada", + "target": "Objetivo", + "wekan_integration": "Integración con Wekan", + "wekan_help": "¿Necesitas ayuda con la configuración? Consulta el", + "wekan_list": "Listas de Wekan utilizadas para el seguimiento del tiempo", + "wekan_swimlane": "Carriles de Wekan utilizados para el seguimiento del tiempo", + "access_rights": "Derechos de Acceso", + "check": "Verificar", + "add": "Agregar", + "access_rights_placeholder": "Correo electrónico del miembro del equipo a agregar", + "public_project": "Proyecto Público (visible para todos los usuarios)", + "owner": "Propietario", + "project_placeholder": "Seleccionar un proyecto", + "my_project_placeholder": "Mi Proyecto", + "not_billable": "No Facturable", + "billing_budget": "Facturación y Presupuesto", + "default_task": "Tarea Predeterminada", + "default_task_help": "Este valor se usará como la tarea predeterminada al registrar tiempo en este proyecto.", + "gitlab_integration": "Integración con GitLab", + "gitlab_query": "Parámetro de Consulta", + "gitlab_help": "Puedes usar todos los parámetros de consulta disponibles en la API de Problemas de GitLab, por ejemplo," + }, + "settings": { + "user_profile": "Perfil de Usuario", + "userInterface_settings": "Configuración de la Interfaz de Usuario", + "language": "Idioma", + "de": "Alemán", + "en": "Inglés", + "fr": "Francés", + "zh": "Chino", + "ru": "Ruso", + "ukr": "Ucraniano", + "es": "Español", + "user_interface": "Interfaz de Usuario", + "theme": "Tema", + "auto_detect": "Detectar Automáticamente", + "light_theme": + "Claro", + "dark_theme": "Oscuro", + "time_tracking": "Seguimiento de Tiempo", + "track_time_view": "Vista Predeterminada del Seguimiento de Tiempo", + "time_unit": "Unidad de Tiempo", + "hours_per_day": "Horas por Día", + "global_settings": "Configuraciones Globales", + "cost_unit": "Unidad de Costo", + "decimal_precision": "Precisión Decimal", + "integrations": "Integraciones", + "enable_wekan_integration": "Habilitar Integración con Wekan", + "siwapp_url": "URL de Siwapp", + "siwapp_api_token": "Token de API de Siwapp", + "titra_changelog": "Registro de Cambios de titra", + "titra_changelog_error": "No se pudo recuperar el registro de cambios de Github.", + "daily_start_time": "Inicio Diario del Tiempo de Trabajo", + "break_start_time": "Hora de Inicio del Descanso Diario", + "break_duration": "Duración Predeterminada del Descanso (en horas)", + "auto_detect_help": "La detección automática solo funciona en navegadores compatibles, por favor, verifica si funciona para ti en ", + "avatar": "Avatar", + "preview": "Vista Previa", + "reset": "Restablecer", + "custom_avatar": "Cargar Avatar Personalizado", + "current": "Actual", + "date_format": "Formato de Fecha", + "verbose_date_format": "Formato Detallado de Fecha", + "weekview_date_format": "Formato de Fecha en la Vista Semanal", + "startof_week": "Inicio de la Semana (0=Domingo, 1=Lunes, etc.)", + "global_defaults": "Configuraciones Predeterminadas Globales:", + "use_state": "¿Usar estado de facturación en la entrada de tiempo?", + "disable_user_registration": "Desactivar Registro de Nuevos Usuarios", + "enable_anonymous_logins": "Permitir Inicios de Sesión Anónimos (activa la ruta /try)?", + "show_not_billable_time": "¿Incluir proyectos no facturables?", + "disable_public_projects": "Desactivar proyectos públicos?", + "time_entry_rule": "Reglas de Registro de Tiempo (creación y modificación)", + "use_start_time": "¿Registrar hora de inicio?", + "enable_zammad_integration": "Habilitar Integración con Zammad", + "zammad_url": "URL de la Instancia de Zammad", + "zammad_api_token": "Token de Acceso Personal de Zammad", + "custom_css": "CSS Personalizado", + "custom_html": "HTML Personalizado", + "custom_placeholder_content": "Contenido de Marcador de Posición Personalizado", + "show_custom_fields_in_details": "¿Mostrar/exportar campos personalizados en la vista de detalles?", + "show_customer_in_details": "¿Mostrar/exportar campo de cliente en la vista de detalles?", + "mail_from_address": "Correo del Remitente", + "mail_from_name": "Nombre del Remitente", + "show_name_custom_field_in_details": "¿Mostrar nombre para campos personalizados en la vista de detalles?", + "enable_open_id_connect": "Habilitar OpenID Connect?", + "enable_log_for_other_users": "¿Puede el administrador registrar tiempo para otros usuarios?", + "holiday": "Festivo", + "holiday_country": "País de Festivo", + "holiday_state": "Estado de Festivo", + "holiday_region": "Región de Festivo", + "xframe_options_origin": "URL de Origen para la Cabecera X-Frame-Options", + "project_search_num_results": "Número de proyectos mostrados en la búsqueda de proyectos (predeterminado 5)", + "task_search_num_results": "Número de tareas mostradas en la búsqueda de tareas (predeterminado 5)", + "user_search_num_results": "Número de usuarios mostrados en la búsqueda de usuarios (predeterminado 5)", + "categories": { + "global": "Globales", + "interfaces": "Interfaces", + "customization": "Personalización", + "login": "Inicio de Sesión", + "holidays": "Festivos", + "security": "Seguridad", + "workingtime_defaults": "Configuraciones Predeterminadas de Vista de Tiempo de Trabajo", + "email": "Correo Electrónico", + "user_defaults": "Configuraciones Predeterminadas de Usuario", + "time_tracking": "Seguimiento de Tiempo", + "date_settings": "Configuraciones de Fecha", + "no_category": "Sin Categoría" + }, + "gitlab_url": "URL de la Instancia de GitLab", + "gitlab_api_token": "Token de API de GitLab", + "enable_gitlab": "¿Habilitar Interfaz de GitLab?", + "rounding": "Redondeo", + "rounding_tooltip": "El tiempo registrado se redondeará hacia arriba según la unidad de tiempo seleccionada y el valor de redondeo especificado, por ejemplo, la unidad de tiempo en minutos y el valor de redondeo en 15 redondeará hacia arriba al próximo cuarto de hora (entrada de 5 minutos > resultado después del redondeo de 15 minutos).", + "enable_siwapp": "¿Habilitar Integración con Siwapp?", + "custom_logo": "Logo Personalizado (URL o URI de Datos)", + "enable_googleapi": "¿Habilitar Integración con Google Workspace?", + "google_clientid": "ID de Cliente de Google Workspace", + "google_secret": "Secreto de Cliente de Google Workspace", + "openai": "Clave API de Open AI", + "show_resource_in_details": "¿Mostrar/exportar campo de recurso en la vista de detalles?" + }, + "customer": { + "select_customer": "Seleccionar un Cliente", + "all": "Todos los Clientes" + }, + "limit": { + "show": "Mostrar líneas de fila", + "all": "Todos" + }, + "period": { + "time_period": "Periodo de Tiempo", + "currentMonth": "Mes Actual", + "currentWeek": "Semana Actual", + "currentYear": "Año Actual", + "lastMonth": "Mes Pasado", + "last3months": "Últimos 3 Meses", + "lastWeek": "Semana Pasada", + "lastYear": "Año Pasado", + "all": "Todo el Tiempo", + "custom": "Personalizado", + "custom_period": "Período de Tiempo Personalizado" + }, + "resource": { + "select": "Seleccionar un Recurso", + "all": "Todos los Recursos" + }, + "task": { + "searching": "Buscando tareas...", + "storedTasks": "Tareas Almacenadas", + "search": "Buscar tareas", + "lastUsed": "Últimas Utilizadas", + "startDate": "Inicio Planificado", + "endDate": "Fin Planificado", + "duration": "Duración", + "dependencies": "Dependencias", + "newTask": "Nueva Tarea", + "editTask": "Editar Tarea", + "addTask": "Agregar Tarea" + }, + "details": { + "filter": "Filtrar", + "detailed": "Detallado", + "daily": "Diario", + "total": "Total", + "search": "Buscar:", + "startTime": "Inicio", + "breakStartTime": "Inicio del Descanso", + "breakEndTime": "Fin del Descanso", + "endTime": "Fin", + "totalTime": "Tiempo Total", + "regularWorkingTime": "Tiempo de Trabajo Regular", + "regularWorkingTimeDifference": "Diferencia", + "addBreakToWorkingTime": "¿Agregar descanso al tiempo de trabajo?", + "state": "Estado de Facturación", + "new": "Nuevo", + "exported": "Exportado", + "billed": "Facturado", + "notBillable": "No Facturable", + "charts": "Gráficos", + "markAsBilled": "Todo facturado", + "quickFilter": "Filtro Rápido" + }, + "dashboard": { + "share": "Compartir panel del proyecto", + "shareMessage": "Tienes la oportunidad de compartir un enlace del proyecto", + "copy_instructions": "Copia y pega el enlace de arriba para compartir la información de tu proyecto con alguien.", + "security_notice": "Este panel es accesible para todos en la web a través de este enlace.", + "time_per_date": "Tiempo por fecha", + "time_distribution_task": "Distribución de Tiempo por Tarea", + "detailed_working_time": "Tiempo de Trabajo Detallado" + }, + "tabular": { + "sEmptyTable": "No hay datos disponibles en la tabla", + "sInfo": "Mostrando _START_ a _END_ de _TOTAL_ entradas", + "sInfoEmpty": "Mostrando 0 a 0 de 0 entradas", + "sInfoFiltered": "(filtrado de _MAX_ entradas totales)", + "sInfoPostFix": "", + "sInfoThousands": ",", + "sLengthMenu": "Mostrar _MENU_ entradas", + "sLoadingRecords": "Cargando...", + "sProcessing": "Procesando...", + "sSearch": "Buscar:", + "sZeroRecords": "No se encontraron registros coincidentes", + "oPaginate": { + "sFirst": "Primero", + "sLast": "Último", + "sNext": "Siguiente", + "sPrevious": "Anterior" + }, + "oAria": { + "sSortAscending": ": activar para ordenar la columna de manera ascendente", + "sSortDescending": ": activar para ordenar la columna de manera descendente" + } + }, + "notifications": { + "sanity": "Lo siento, pero los paneles están actualmente limitados a compartir un solo proyecto. Por favor, selecciona un solo proyecto para compartir.", + "dashboard_creation_failed": "Fallo en la creación del panel.", + "export_failed": "Error en la exportación.", + "siwapp_configuration": "Debes configurar la integración con Siwapp para usar esta función.", + "time_entry_deleted": "Entrada de tiempo eliminada", + "time_entry_updated": "Entrada de tiempo actualizada", + "time_entry_saved": "Entrada de tiempo guardada", + "delete_confirm": "La eliminación no se puede deshacer, ¿quieres continuar?", + "project_update_success": "Proyecto actualizado", + "project_create_success": "Proyecto creado", + "project_delete_success": "Proyecto eliminado", + "project_archive_success": "Proyecto archivado", + "project_restore_success": "Proyecto restaurado", + "settings_saved_success": "Configuraciones guardadas", + "enter_time": "Por favor, ingresa tu tiempo", + "enter_task": "Por favor, ingresa una tarea", + "select_project": "Por favor, selecciona un proyecto.", + "check_time_input": "Por favor, verifica tu entrada de tiempo", + "project_delete_confirm": "¿Realmente quieres eliminar este proyecto?", + "auth_error_method": "Debes iniciar sesión para usar este método.", + "only_owner_can_add_team_members": "Solo el propietario del proyecto puede agregar nuevos miembros al equipo", + "only_owner_can_remove_team_members": "Solo el propietario del proyecto puede eliminar miembros del equipo", + "only_administrator_can_register_time": "Solo los administradores pueden registrar tiempo para otros usuarios.", + "team_member_added_success": "Miembro del equipo agregado.", + "team_member_removed_success": "Miembro del equipo eliminado.", + "user_not_found": "No se pudo encontrar un usuario con esta dirección de correo electrónico. Por favor, crea la cuenta de usuario correspondiente primero.", + "user_not_found_in_project": "No se pudo encontrar un usuario con esta dirección de correo electrónico en este proyecto.", + "project_priority_success": "Prioridad del proyecto actualizada exitosamente", + "password_changed": "Tu contraseña ha sido cambiada.", + "connectioncheck": "No se pudo conectar al servidor. Intentando de nuevo ", + "siwapp_success": "Factura de Siwapp creada exitosamente.", + "time_entry_rule_failed": "La entrada de tiempo no sigue las reglas especificadas.", + "access_rights_updated": "Los derechos de acceso del proyecto se han actualizado.", + "success": "Los cambios se han procesado exitosamente.", + "wekan_error": "No se pudieron recuperar las tarjetas de Wekan, por favor verifica la configuración de tu proyecto!", + "zammad_error": "No se pudieron recuperar los tickets de Zammad, por favor verifica la configuración de tu proyecto!", + "user_inactive": "Este usuario ha sido desactivado, por favor actívalo para continuar.", + "extensionAlreadyLaunched": "La extensión ya está en ejecución.", + "no_entry_selected": "Ninguna entrada seleccionada. Por favor, selecciona al menos una entrada para continuar." + }, + "login": { + "400": "Inicio de sesión fallido, por favor inténtalo de nuevo.", + "403": "Inicio de sesión fallido, por favor verifica tus credenciales.", + "password": "Contraseña", + "forgot_password": "¿Olvidaste tu contraseña?", + "no_account": "¿No tienes una cuenta?", + "register": "Registrarse", + "sign_in": "Iniciar Sesión", + "sign_in_oidc": "Iniciar Sesión con OpenID Connect", + "login_or_signup": "Por favor inicia sesión o regístrate para continuar.", + "login_failed": "No se puede iniciar sesión, por favor verifica tu nombre de usuario/contraseña.", + "fullname_placholder": "Tu Nombre Completo", + "create_account": "Crear una cuenta", + "password_again": "Contraseña (nuevamente)", + "already_have_account": "Si ya tienes una cuenta - ", + "reset_password_mail": "Te hemos enviado un correo electrónico con instrucciones sobre cómo restablecer tu contraseña. Por favor revisa tu bandeja de entrada.", + "change_password": "Cambiar Contraseña", + "current_password": "Contraseña Actual", + "password_mismatch": "Las contraseñas proporcionadas no coinciden, por favor inténtalo de nuevo.", + "permanent_account": "Crear cuenta permanente", + "email_unknown": "Lo siento, pero no pudimos encontrar una cuenta con la dirección de correo electrónico proporcionada.", + "anonymous_account_warning": "Actualmente estás conectado utilizando una cuenta temporal que solo se puede utilizar en este dispositivo. Si deseas usar titra en otros dispositivos, por favor crea un usuario regular con una dirección de correo electrónico y una contraseña a continuación.", + "registration_disabled_warning": "El registro de nuevos usuarios ha sido desactivado en esta instancia de titra.", + "invalid_email": "Dirección de correo electrónico inválida", + "password_insufficient": "La contraseña debe tener al menos 8 caracteres de longitud.", + "password_strong": "Fortaleza de la Contraseña: Fuerte", + "password_medium": "Fortaleza de la Contraseña: Mediana", + "password_weak": "Fortaleza de la Contraseña: Débil" + }, + "about": { + "documentation": "Documentación", + "source_code": "Código Fuente", + "runtime": "Información de Tiempo de Ejecución", + "versions": "Versiones", + "environment": "Entorno del Host", + "os": "Sistema Operativo", + "uptime": "Tiempo de Actividad", + "total_memory": "Memoria Total", + "free_memory": "Memoria Libre", + "history": "Todas las Versiones" + }, + "administration": { + "admin": "Administrador", + "create": "Crear", + "create_user": "Crear Usuario", + "creation_date": "Fecha de Creación", + "users": "Usuarios", + "user_created": "El usuario ha sido creado.", + "user_updated": "La información del usuario ha sido actualizada.", + "user_deleted": "Los usuarios han sido eliminados", + "user_deletion_confirmation": "¿Realmente quieres eliminar a este usuario (no se puede deshacer)?", + "user_inactive": "¿Inactivo?", + "value": "Valor", + "globalsettings_help": "¿Necesitas ayuda para configurar los valores correctos? Consulta el", + "extensions": "Extensiones", + "addExtension": "Agregar Extensión", + "uploadExtension": "Cargar Extensión", + "extensionStore": "¿Extensiones llamativas? Consulta el", + "extensionHint": "Atención: la mayoría de las extensiones necesitarán un reinicio del servicio de titra para funcionar correctamente.", + "customfields": "Campos Personalizados", + "addcustomfield": "Nuevo Campo Personalizado", + "possible_values": "Valores Posibles", + "possible_values_hint": "Separa los valores con una coma (por ejemplo, a,b,c,d).", + "category": "Categoría", + "category_hint": "La categoría se usa para agrupar visualmente los campos personalizados.", + "no_customfields": "Aún no se han definido campos personalizados.", + "no_extensions": "Aún no se han instalado extensiones.", + "extension_removed": "La extensión ha sido eliminada exitosamente.", + "edit_custom_field": "Editar Campo Personalizado", + "oidc": "OpenID Connect", + "oidc_configure": "Necesitarás crear una configuración de cliente OpenID Connect con tu proveedor. Establece las URL de devolución de llamada de la aplicación en", + "custom_field_name_hint": "Los espacios y caracteres especiales no están permitidos.", + "inboundinterfaces": "Interfaces de Entrada", + "add_update_inbound_interface": "Agregar o actualizar interfaz de entrada", + "process_data": "Script de Procesamiento de Datos", + "processdata_hint": "Este JavaScript se ejecutará siempre que se soliciten datos de la interfaz de entrada. El script debe devolver un objeto JSON (o una promesa que devuelva dicho objeto) con la siguiente estructura: [{name: 'nombre', description:'descripción'}].", + "active": "¿Interfaz de Entrada Activa?" + }, + "wekan": { + "list": "Lista de Wekan", + "swimlane": "Carril de Wekan", + "instance_url": "URL de la API de la Instancia de Wekan" + }, + "transactions": { + "transactions": "Transacciones", + "enable_transactions": "Habilitar registro de transacciones", + "user": "Usuario", + "method": "Método", + "payload": "Carga", + "timestamp": "Marca de Tiempo" + }, + "weektable": { + "sumProject_message": "La suma por proyecto", + "sum_per_day": "La suma por día" + }, + "autocomplete": { + "modal_title": "Autocompletar Potenciado por IA", + "processing": "Recopilando y procesando datos de Google Workspace...", + "authentication_missing": "Debes autorizar el acceso a tu cuenta de Google Workspace para procesar datos.", + "authorize_now": "Autorizar ahora", + "save_selected": "Guardar entradas de tiempo seleccionadas", + "origin": "Origen" + } +} + + diff --git a/imports/ui/translations/fr.json b/imports/ui/translations/fr.json index 18b1930..8939723 100644 --- a/imports/ui/translations/fr.json +++ b/imports/ui/translations/fr.json @@ -132,6 +132,7 @@ "zh": "Chinois", "ru": "Russe", "ukr": "Ukrainien", + "es": "Espagnol", "user_interface": "Interface utilisateur", "theme": "Thème", "auto_detect": "Détection automatique", diff --git a/imports/ui/translations/ru.json b/imports/ui/translations/ru.json index 91ffed3..c260c3e 100644 --- a/imports/ui/translations/ru.json +++ b/imports/ui/translations/ru.json @@ -140,6 +140,7 @@ "zh": "Китайский", "ru": "Русский", "ukr": "Украинский", + "es": "Испанский", "user_interface": "Пользовательский интерфейс", "theme": "Тема", "auto_detect": "Автоопределение", diff --git a/imports/ui/translations/ukr.json b/imports/ui/translations/ukr.json index e604ced..babacfc 100644 --- a/imports/ui/translations/ukr.json +++ b/imports/ui/translations/ukr.json @@ -140,6 +140,7 @@ "zh": "Китайська", "ru": "Російська", "ukr": "Українська", + "es": "Іспанська", "user_interface": "Інтерфейс користувача", "theme": "Тема", "auto_detect": "Автоматичне визначення", diff --git a/imports/ui/translations/zh.json b/imports/ui/translations/zh.json index 4be547f..1c03eae 100644 --- a/imports/ui/translations/zh.json +++ b/imports/ui/translations/zh.json @@ -124,6 +124,7 @@ "zh": "中文", "ru": "俄语", "ukr": "乌克兰语", + "es": "西班牙语", "user_interface": "用户界面", "theme": "主题", "auto_detect": "自动探测", diff --git a/imports/utils/i18n.js b/imports/utils/i18n.js index 18ab553..70908fd 100644 --- a/imports/utils/i18n.js +++ b/imports/utils/i18n.js @@ -49,6 +49,8 @@ const loadLanguage = (language, i18nextDebugMode) => { import('dayjs/locale/ru') import('../ui/translations/uk.json') import('dayjs/locale/uk') + import('../ui/translations/es.json') + import('dayjs/locale/es') } import(`/imports/ui/translations/${language}.json`).then((lang) => { i18nReady.set(false)