diff --git a/.gitignore b/.gitignore index 2e39bd120..a447bd9aa 100644 --- a/.gitignore +++ b/.gitignore @@ -4,3 +4,8 @@ node_modules/ # vim swap files *.swp +# these are not done yet +src/translation/ja.json +src/translation/pl.json +src/translation/si.json + diff --git a/src/translation/en.json b/src/translation/en.json index beab50852..d0b2c7039 100644 --- a/src/translation/en.json +++ b/src/translation/en.json @@ -244,7 +244,7 @@ "recoveryEmail": "Password recovery email", "errorDisplayNameRequired": "Name is required", "activeCheckbox": "User is active", - "displayNamePlaceholder": "Optional. If not provided, user can pick during sign up", + "displayNamePlaceholder": "Optional. If not provided, user can provide during sign up", "fallbackEmailPlaceholder": "Optional. If not specified, primary email will be used" }, "deleteUserDialog": { @@ -310,9 +310,9 @@ "inviteLinkExplanation": "Use this to generate a new invite link. The link will also be sent to the user and will reset the password.", "newLinkAction": "Invite user now", "description": "The following invite link was sent to {{ email }}:", - "sendAction": "Send", - "descriptionLink": "Invite link for forwarding to the user", - "descriptionEmail": "Send invite link to" + "sendAction": "Send Mail", + "descriptionLink": "Send invite link", + "descriptionEmail": "Send invite link" }, "setGhostDialog": { "title": "Create password to impersonate {{ username }}", diff --git a/src/translation/es.json b/src/translation/es.json index fc25f5f27..d4087053a 100644 --- a/src/translation/es.json +++ b/src/translation/es.json @@ -244,14 +244,17 @@ }, "passwordResetDialog": { "sendEmailLinkAction": "Enviar enlace al usuario", - "description": "Usa el enlace de abajo para restablecer la contraseña o re-invitar a {{ username }}:", + "description": "El siguiente enlace de restablecimiento de contraseña se envió a {{ email }}:", "title": "Restablecer contraseña para {{ username }}", "emailSent": "Enviados", - "newLinkAction": "Generar nuevo enlace", - "resetLinkExplanation": "Usa esto para generar un enlace de invitación o restablecimiento de contraseña. El nuevo enlace invalidará cualquier enlace antiguo inmediatamente.", + "newLinkAction": "Enlace de restablecimiento de correo electrónico", + "resetLinkExplanation": "Use esto para enviar por correo electrónico un enlace de restablecimiento de contraseña a la dirección de correo electrónico alternativa del usuario - {{ email }}.", "2FAIsSetup": "Usa esto para deshabilitar 2FA del usuario. El usuario puede configurarlo nuevamente desde la vista Perfil.", "no2FASetup": "Este usuario no ha configurado 2FA.", - "reset2FAAction": "Restablecer 2FA" + "reset2FAAction": "Restablecer 2FA", + "sendAction": "Enviar", + "descriptionLink": "Enlace de restablecimiento de contraseña para reenviar al usuario", + "descriptionEmail": "Enviar enlace de restablecimiento de contraseña a" }, "deleteGroupDialog": { "deleteAction": "Borrar", @@ -298,7 +301,27 @@ "groups": "Grupos", "role": "Rol", "username": "Usuario", - "fullName": "Nombre Completo" + "fullName": "Nombre Completo", + "displayNamePlaceholder": "Opcional. Si no se proporciona, el usuario puede escogerlo durante el registro", + "fallbackEmailPlaceholder": "Opcional. Si no se especifica, se utilizará el correo electrónico principal" + }, + "setGhostDialog": { + "title": "Crear contraseña para suplantar {{ username }}", + "description": "Establecer una contraseña temporal para iniciar sesión en nombre de este usuario en las aplicaciones o en el panel. Esta contraseña es válida por 6 horas.", + "password": "Contraseña", + "setPassword": "Establecer contraseña" + }, + "setGhost": { + "password": "Contraseña" + }, + "invitationDialog": { + "title": "Invitar {{ username }}", + "newLinkAction": "Invitar usuario ahora", + "description": "El siguiente enlace de invitación se envió a {{ email }}:", + "sendAction": "Enviar", + "descriptionLink": "Enlace de invitación para reenviar al usuario", + "descriptionEmail": "Enviar enlace de invitación a", + "inviteLinkExplanation": "Usa esto para generar un nuevo enlace de invitación. El enlace también se enviará al usuario y restablecerá la contraseña." } }, "backups": { @@ -316,7 +339,7 @@ "noApps": "Sin Aplicaciones", "version": "Versión", "contents": "Contenidos", - "noBackups": "No se han hecho copias de seguridad aún", + "noBackups": "No se han hecho copias de seguridad aún.", "title": "Listado" }, "schedule": { @@ -334,7 +357,8 @@ "provider": "Proveedor", "disabledList": "Las siguientes aplicaciones tienen las copias de seguridad deshabilitadas:", "title": "Ubicación", - "description": "Cloudron realiza una copia de seguridad completa de su sistema en la ubicación configurada." + "description": "Cloudron realiza una copia de seguridad completa de su sistema en la ubicación configurada.", + "remount": "Volver a montar almacenamiento" }, "title": "Backups", "configureBackupStorage": { @@ -442,7 +466,11 @@ "changeFallbackEmail": { "errorEmailInvalid": "La dirección de correo electrónico no es válida", "errorEmailRequired": "Se requiere una dirección de correo electrónico válida", - "title": "Cambiar la dirección de correo electrónico de recuperación de contraseña" + "title": "Cambiar la dirección de correo electrónico de recuperación de contraseña", + "password": "Contraseña para confirmación", + "errorWrongPassword": "Contraseña errónea", + "errorPasswordRequired": "Se requiere una contraseña", + "email": "Nueva dirección de correo electrónico para la recuperación de contraseña" }, "changeEmail": { "errorEmailRequired": "Se requiere una dirección de email válida", @@ -505,20 +533,25 @@ "title": "Cambia tu Avatar", "noAvatar": "Sin imagen de perfil" }, - "title": "Perfil" + "title": "Perfil", + "passwordResetAction": "Olvidé mi contraseña", + "passwordResetNotification": { + "title": "Restablecimiento de contraseña exitosa", + "body": "Correo enviado a {{ email }}" + } }, "emails": { "eventlog": { "searchPlaceholder": "Buscar", "type": { "spamFilterTrainedInfo": "Filtro de spam entrenado con contenido del buzón", - "deniedInfo": "Conexión de {{ remote.ip }} denegada. {{ details.message || details.reason }}", - "deliveredInfo": "Correo entregado a {{rcptTo | prettyEmailAddresses}} de {{mailFrom | prettyEmailAddresses}}", - "receivedInfo": "Correo guardado de {{mailFrom | prettyEmailAddresses}} en el buzón {{rcptTo | prettyEmailAddresses}}", - "outboundInfo": "Correo en cola para entregar a {{rcptTo | prettyEmailAddresses}} de {{mailFrom | prettyEmailAddresses}}", - "inboundInfo": "Correo entrante de {{ mailFrom | prettyEmailAddresses }} a {{ rcptTo | prettyEmailAddresses }}. Spam: {{ details.spamStatus.indexOf(Sí,') === 0 ? 'Sí' : 'No' }}", - "deferredInfo": "No se pudo entregar el correo a {{rcptTo | prettyEmailAddresses}}. {{detalles.mensaje || details.reason}}. Se reintentará en {{details.delay}} seg.", - "bounceInfo": "Rebote enviado a {{mailFrom | prettyEmailAddresses}} para el correo enviado a {{rcptTo | prettyEmailAddresses}}. {{detalles.mensaje || details.reason}}", + "deniedInfo": "Conexión denegada", + "deliveredInfo": "Correo entregado", + "receivedInfo": "Guardado", + "outboundInfo": "En cola para entrega", + "inboundInfo": "Recibido", + "deferredInfo": "Error de entrega, se volverá a intentar en {{ delay }}s.", + "bounceInfo": "Rebote de envíos", "spamFilterTrained": "Filtro de spam entrenado", "bounce": "Rebote", "denied": "Denegada", @@ -530,7 +563,10 @@ "empty": "El Registro de Eventos está vacío.", "details": "Detalles", "time": "Hora", - "title": "Registro de Eventos" + "title": "Registro de Eventos del Correo electrónico", + "from": "De", + "mailFrom": "De", + "rcptTo": "Para" }, "settings": { "solrNotRunning": "Parada", @@ -544,7 +580,9 @@ "maxMailSize": "Tamaño máximo de correo electrónico", "location": "Ubicación del Servidor de Correo", "info": "Esta configuración es global y se aplica a todos los dominios.", - "title": "Ajustes" + "title": "Ajustes", + "acl": "Correo ACL", + "aclOverview": "{{ dnsblZonesCount }} zona(s) DNSBL" }, "domains": { "testEmailTooltip": "Enviar Email de prueba", @@ -589,7 +627,14 @@ "location": "Ubicación", "description": "Cloudron realizará los cambios de DNS necesarios en todos los dominios y reiniciará el servidor de correo. Los clientes de correo electrónico de escritorio y móviles deben reconfigurarse para usar esta nueva ubicación como servidor IMAP y SMTP.", "title": "Cambiar ubicación del Servidor de Correo" - } + }, + "aclDialog": { + "dnsblZones": "Zonas DNSBL", + "dnsblZonesInfo": "La dirección IP de conexión es buscada en estas listas de bloqueo de IP", + "dnsblZonesPlaceholder": "Nombres de zonas separados por líneas", + "title": "Cambiar Correo ACL" + }, + "eventlogActionTooltip": "Registro de eventos de correo electrónico" }, "branding": { "logo": "Logotipo", @@ -645,7 +690,9 @@ "accessControl": "Control de Acceso", "memoryLimitDescription": "Cloudron asigna el 50% de este valor como RAM y el 50% como intercambio.", "title": "Configurar {{ name }}", - "resetToDefaults": "Restablecer a lo predeterminado" + "resetToDefaults": "Restablecer a lo predeterminado", + "enableRecoveryMode": "Habilitar el Modo de Recuperación", + "recoveryModeDescription": "Si el servicio se reinicia constantemente o no responde debido a daños en los datos, pon el servicio en modo de recuperación. Utiliza las siguientes instrucciones para volver a ejecutar el servicio." }, "restartActionTooltip": "Reiniciar", "configureActionTooltip": "Configurar", @@ -667,7 +714,8 @@ "subscription": "Suscripción", "cloudronId": "ID de Cloudron", "subscriptionChangeAction": "Cambiar Suscripción", - "description": "Se utiliza una cuenta de Cloudron.io para acceder a la App Store y administrar su suscripción." + "description": "Se utiliza una cuenta de Cloudron.io para acceder a la App Store y administrar su suscripción.", + "emailNotVerified": "Correo aún no verificado" }, "title": "Ajustes", "updateScheduleDialog": { @@ -918,13 +966,20 @@ "disableDescription": "La configuración de entrega de correo de la aplicación es independiente. Puedes configurarla dentro de la aplicación.", "description2": "Cuando está habilitada, la aplicación está configurada para enviar correos electrónicos a través del servidor de correo interno usando esta dirección. El servidor de correo interno utilizará la configuración de {{domain}} correo electrónico saliente para enviar correo. Cuando está deshabilitado, puede configurar los ajustes de correo electrónico dentro de la aplicación.", "mailboxPlaceholder": "Dejar vacío para usar la plataforma predeterminada", - "disable": "No configurar los ajustes de correo", + "disable": "No configurar la configuración de entrega de correo de la aplicación", "enableDescription": "La aplicación está configurada para enviar correos electrónicos utilizando la dirección que aparece a continuación y la configuración de correo electrónico saliente de {{domain}}.", "description": "Esto establece la dirección desde la que esta aplicación envía el correo electrónico. Esta aplicación ya está configurada para enviar correo mediante la configuración de {{domain}} correo electrónico saliente .", "enable": "Utilizar Cloudron Mail para enviar correos electrónicos" }, "csp": { "title": "Política de seguridad de contenido" + }, + "inbox": { + "title": "Correo entrante", + "enable": "Utiliza Cloudron Mail para recibir correos electrónicos", + "disable": "No configurar la bandeja de entrada", + "disableDescription": "La configuración de correo entrante de la aplicación es independiente. Puedes configurarlo dentro de la aplicación. Selecciona esta opción si el correo electrónico del dominio no está alojado en Cloudron.", + "enableDescription": "La aplicación está configurada para recibir correos electrónicos utilizando la siguiente dirección. Selecciona esta opción si el correo electrónico de {{ domain }} está alojado en este servidor." } }, "resources": { @@ -952,9 +1007,13 @@ "visibleForAllUsers": "Visible para todos los usuarios de Cloudron", "sftpAccessControl": "Este ajuste también controla el acceso SFTP.", "dashboardVisibility": "Visibilidad del Panel", - "descriptionSftp": "También controla el acceso SFTP.", - "description": "Esta aplicación está configurada para autentificarse con el directorio de usuarios de Cloudron.", + "descriptionSftp": "Este ajuste también controla el acceso SFTP.", + "description": "Esta aplicación está configurada para autentificarse con el directorio de usuarios de Cloudron. Esta configuración controla quién puede iniciar sesión y usar la aplicación.", "title": "Gestión de usuario" + }, + "operators": { + "title": "Operadores", + "description": "Los operadores pueden configurar y mantener esta aplicación." } }, "location": { @@ -1075,7 +1134,24 @@ "retryAction": "Reintentar {{ task }} tarea" }, "appIsBusyTooltip": "La aplicación está ocupada" - } + }, + "eventlogTabTitle": "Registro de eventos", + "sftpInfoAction": "Acceso SFTP", + "cronTabTitle": "Cron", + "cron": { + "commonPattern": { + "twicePerDay": "Dos veces al día", + "everyMinute": "Cada Minuto", + "everyHour": "Cada Hora", + "twicePerHour": "Dos veces por hora", + "everyDay": "Cada día", + "everySunday": "Cada Domingo" + }, + "title": "Crontab", + "saveAction": "Guardar", + "addCommonPattern": "Agregar patrón común" + }, + "forumUrlAction": "¿Necesitas ayuda? Pregunta en el foro" }, "lang": { "zh_Hans": "Chino (simple)", @@ -1087,7 +1163,8 @@ "fr": "Francés", "de": "Alemán", "en": "Inglés", - "es": "Español" + "es": "Español", + "ru": "Ruso" }, "system": { "title": "Información del Sistema", @@ -1133,7 +1210,9 @@ "subscriptionRequiredDescription": "Puedes encontrar respuestas en nuestra documentación o pregunta en el Foro.", "emailInfo": "(El email de suscripción es {{ email }})", "sshCheckbox": "Permitir que los ingenieros de soporte se conecten a este servidor a través de SSH", - "emailPlaceholder": "Si es necesario, proporciona una dirección de correo electrónico diferente de la anterior para contactarte" + "emailPlaceholder": "Si es necesario, proporciona una dirección de correo electrónico diferente de la anterior para contactarte", + "emailVerifyAction": "Verificar ahora", + "emailNotVerified": "El correo electrónico de su cuenta cloudron.io {{email}} no está verificado. Verifíquelo para abrir tickets de soporte." }, "title": "Soporte" }, @@ -1146,7 +1225,7 @@ "addVolumeDialog": { "addAction": "Añadir", "title": "Añadir Volumen", - "nameWarning": "Cloudron montará la ruta del host en el contenedor de la aplicación con este nombre en /media .", + "nameWarning": "Las aplicaciones pueden acceder a este volumen a través de /media/{name}.", "mountpointWarning": "Cloudron no configurará el servidor para montar automáticamente este volumen", "mountTypeInfo": "Cloudron configurará el servidor para montar automáticamente este volumen", "server": "IP del servidor o Nombre de host", @@ -1173,7 +1252,8 @@ "updateVolumeDialog": { "title": "Actualizar Volumen {{ volume }}" }, - "tooltipEdit": "Editar Volumen" + "tooltipEdit": "Editar Volumen", + "remountActionTooltip": "Volver a montar Volumen" }, "eventlog": { "filterAllEvents": "Todos los Eventos", @@ -1343,7 +1423,8 @@ "connectionDetails": "Detalles de conexión para otros clientes de correo electrónico" }, "updateMailboxDialog": { - "activeCheckbox": "El buzón de correo está activo" + "activeCheckbox": "El buzón de correo está activo", + "enablePop3": "Habilitar acceso POP3" }, "dnsStatus": { "ptrInfo": "El registro PTR lo establece tu proveedor de VPS y no tu proveedor de DNS.", @@ -1555,5 +1636,8 @@ "salutation": "Hola <%= user %>,", "notice": "Notamos un inicio de sesión en tu cuenta de Cloudron desde un nuevo dispositivo.", "action": "Si fuiste tú, puedes ignorar este correo electrónico. Si no fuiste tú, debes cambiar tu contraseña de inmediato." + }, + "supportConfig": { + "emailNotVerified": "Por favor, primero verifica el correo electrónico de tu cuenta cloudron.io para asegurarnos de que podamos comunicarnos contigo." } } diff --git a/src/translation/nl.json b/src/translation/nl.json index 4a871af66..2e3ffb5f8 100644 --- a/src/translation/nl.json +++ b/src/translation/nl.json @@ -243,7 +243,9 @@ "errorDisplayNameRequired": "Naam is verplicht", "activeCheckbox": "Gebruiker is actief", "errorInvalidUsername": "Dit is geen geldige gebruikersnaam", - "usernamePlaceholder": "Optioneel. Indien niet ingevuld mag de gebruiker bij registratie zelf kiezen" + "usernamePlaceholder": "Optioneel. Indien niet ingevuld mag de gebruiker bij registratie zelf kiezen", + "fallbackEmailPlaceholder": "Optioneel. Indien niet ingevoerd zal de primaire e-mail gebruikt worden", + "displayNamePlaceholder": "Optioneel. Indien niet ingevoerd kan de gebruiker het kiezen tijdens eerste aanmelding" }, "deleteUserDialog": { "deleteAction": "Verwijder", @@ -283,7 +285,10 @@ "2FAIsSetup": "2FA van de gebruiker uit schakelen. De gebruiker kan het aanzetten via Profiel.", "newLinkAction": "Verstuur wachtwoord herstel link", "resetLinkExplanation": "Gebruik dit om een wachtwoord herstel link te e-mailen naar het alternatieve e-mailadres - {{ email }}.", - "reset2FAAction": "2FA opnieuw instellen" + "reset2FAAction": "2FA opnieuw instellen", + "sendAction": "Verstuur", + "descriptionLink": "Wachtwoord herstel link om naar gebruiker te sturen", + "descriptionEmail": "Stuur wachtwoord reset link naar" }, "externalLdapDialog": { "title": "Configureer LDAP" @@ -304,7 +309,10 @@ "title": "Nodig {{ username }} uit", "inviteLinkExplanation": "Gebruik dit om een nieuwe uitnodigingslink te genereren. De link wordt ook gestuurd naar de gebruiker en herstelt het wachtwoord.", "newLinkAction": "Nodig gebruiker nu uit", - "description": "De volgende uitnodigingslink is gestuurd naar {{ email }}:" + "description": "De volgende uitnodigingslink is gestuurd naar {{ email }}:", + "sendAction": "Verstuur", + "descriptionLink": "Uitnodigingslink om naar gebruiker te sturen", + "descriptionEmail": "Stuur uitnodigingslink naar" }, "setGhostDialog": { "description": "Stel een tijdelijk wachtwoord in namens deze gebruiker in apps of het Dashboard. Dit wachtwoord is 6 uur geldig.", @@ -441,7 +449,7 @@ }, "listing": { "title": "Lijst met bestaande back-ups", - "noBackups": "Er zijn nog geen backups gemaakt", + "noBackups": "Er zijn nog geen backups gemaakt.", "contents": "Inhoud", "version": "Versie", "noApps": "Geen apps", @@ -1579,7 +1587,8 @@ "zh_Hans": "Chinees (vereenvoudigd)", "vi": "Vietnamees", "pl": "Pools", - "es": "Spaans" + "es": "Spaans", + "ru": "Russisch" }, "passwordResetEmail": { "subject": "[<%= cloudron %>] Wachtwoord herstellen", diff --git a/src/translation/ru.json b/src/translation/ru.json index ea4adf0b5..75d7a36fe 100644 --- a/src/translation/ru.json +++ b/src/translation/ru.json @@ -291,7 +291,10 @@ "inviteLinkExplanation": "Используйте данную опцию для генерации новой ссылки с приглашением. Ссылка также будет направлена пользователю и приведёт к сбросу пароля.", "title": "Пригласить {{ username }}", "newLinkAction": "Пригласить пользователя", - "description": "Ссылка с приглашением отправлена на электронную почту {{ email }}:" + "description": "Ссылка с приглашением отправлена на электронную почту {{ email }}:", + "sendAction": "Отправить", + "descriptionEmail": "Отправить приглашение", + "descriptionLink": "Ссылка-приглашение для пересылки пользователю" }, "setGhostDialog": { "description": "Установите временный пароль для доступа к приложениям и панели управления от имени данного пользователя. Такой пароль будет действовать 6 часов.",