diff --git a/src/js/client.js b/src/js/client.js index 4653d1b59..a325d7006 100644 --- a/src/js/client.js +++ b/src/js/client.js @@ -2682,12 +2682,17 @@ angular.module('Application').service('Client', ['$http', '$interval', '$timeout }); }; - Client.prototype.mountVolume = function (volumeId, data, callback) { + Client.prototype.updateVolume = function (volumeId, mountType, mountOptions, callback) { + var data = { + mountType: mountType, + mountOptions: mountOptions + }; + var that = this; - post('/api/v1/volumes/' + volumeId + '/mount_config', data, null, function (error, data, status) { + post('/api/v1/volumes/' + volumeId, data, null, function (error, data, status) { if (error) return callback(error); - if (status !== 201) return callback(new ClientError(status, data)); + if (status !== 200) return callback(new ClientError(status, data)); callback(); }); diff --git a/src/translation/de.json b/src/translation/de.json index 89ef35256..90e64cbd3 100644 --- a/src/translation/de.json +++ b/src/translation/de.json @@ -120,7 +120,8 @@ "description": "Cloudron kann benutzerdefinierte Anwendungen aus einem privaten Docker-Register laden und installieren.", "subscriptionRequired": "Diese Funktion ist nur im Abo enthalten.", "setupSubscriptionAction": "Abonnenement jetzt abschließen", - "usernameNotSet": "Nicht gesetzt" + "usernameNotSet": "Nicht gesetzt", + "serverNotSet": "Nicht gesetzt" }, "updates": { "checkForUpdatesAction": "Auf Aktualisierungen überprüfen", @@ -173,7 +174,9 @@ "updateAction": "Aktualisierung" }, "registryConfig": { - "provider": "Docker Registry Anbieter" + "provider": "Docker Registry Anbieter", + "providerOther": "Sonstige", + "providerDisabled": "Deaktiviert" } }, "users": { @@ -202,7 +205,8 @@ "subscriptionRequired": "Diese Funktion ist nur im Abo enthalten.", "description": "Cloudron synchronisiert User und Gruppen aus dem externen LDAP- oder Active-Directory-Server. Passwörter beim Anmelden werden immer durch den externen Server validiert. Die Synchronisierung läuft nicht automatisch, sondern muss manuell gestartet werden.", "title": "LDAP", - "providerOther": "Sonstige" + "providerOther": "Sonstige", + "providerDisabled": "Deaktiviert" }, "settings": { "saveAction": "Speichern", @@ -222,7 +226,7 @@ "users": { "removeUserTooltip": "User löschen", "editUserTooltip": "User bearbeiten", - "resetPasswordTooltip": "Passwort zurücksetzen Link", + "resetPasswordTooltip": "Passwort oder 2FA zurücksetzen", "notActivatedYetTooltip": "Dieser User ist noch nicht aktiviert", "externalLdapTooltip": "Aus externem LDAP Verzeichnis", "inactiveTooltip": "Dieser User ist inaktiv", @@ -247,7 +251,13 @@ "passwordResetDialog": { "sendEmailLinkAction": "Link per E-Mail an User senden", "description": "Link für Passwort wiederherstellen oder {{ username }} erneut einladen:", - "title": "Passwort zurücksetzen Link für {{ username }}" + "title": "Passwort oder 2FA zurücksetzen Link für {{ username }}", + "reset2FAAction": "2FA zurücksetzen", + "emailSent": "Gesendet", + "no2FASetup": "User hat 2FA nicht aktiviert.", + "2FAIsSetup": "Hier kann das 2FA Setup des User's deaktiviert werden. Es kann anschließend im Profil vom User wieder eingerichtet werden.", + "newLinkAction": "Neuen Link erstellen", + "resetLinkExplanation": "Hier kann ein neuer Link für die initiale User Aktivierung oder zum Passwort zurücksetzen erstellt werden. Dies macht den vorherigen Link ungültig." }, "deleteGroupDialog": { "deleteAction": "Löschen", @@ -968,7 +978,8 @@ "title": "Mail-Liste hinzufügen", "members": "Listen-Mitglieder", "membersInfo": "Mehrere E-Mail-Adressen jeweils in eine neue Zeile", - "membersOnlyCheckbox": "Den Mailversand an diese Liste so einschränken, dass nur Mitglieder senden dürfen." + "membersOnlyCheckbox": "Den Mailversand an diese Liste so einschränken, dass nur Mitglieder senden dürfen.", + "name": "Name" }, "mailboxboxDialog": { "groupsHeader": "Gruppen", @@ -1018,6 +1029,12 @@ }, "editMailinglistDialog": { "title": "Die Mail-Liste {{ name }}@{{ domain }} bearbeiten" + }, + "updateMailboxDialog": { + "activeCheckbox": "Postfach ist aktiv" + }, + "updateMailinglistDialog": { + "activeCheckbox": "Mailing-Liste ist aktiv" } }, "terminal": { @@ -1442,6 +1459,9 @@ "notResponding": "Nicht Ansprechbar", "stopped": "Angehalten", "running": "Laufend" + }, + "stopDialog": { + "title": "App {{ app }} wirklich stoppen?" } }, "logs": { diff --git a/src/translation/en.json b/src/translation/en.json index 71d95ad8b..69d5a94dc 100644 --- a/src/translation/en.json +++ b/src/translation/en.json @@ -1495,7 +1495,14 @@ "addVolumeDialog": { "title": "Add Volume", "nameWarning": "Cloudron will mount the host path into the app's container with this name under /media.", - "addAction": "Add" + "addAction": "Add", + "server": "Server IP or Hostname", + "remoteDirectory": "Remote Directory", + "username": "Username", + "password": "Password", + "diskPath": "Disk Path", + "noopWarning": "Cloudron will not configure the server to mount this volume", + "mountTypeInfo": "Cloudron will configure the server to automatically mount this volume" }, "removeVolumeDialog": { "title": "Really remove {{ volume }} ?", @@ -1503,7 +1510,12 @@ "removeAction": "Remove" }, "description": "Volumes are directories on the server that can be shared between apps. These may be NFS/SSHFS mounts or external storage disks attached to the server.", - "backupWarning": "Volumes are not backed up. Restoring an app will not restore the volume's content. Please make sure to have a suitable backup plan for each volume." + "backupWarning": "Volumes are not backed up. Restoring an app will not restore the volume's content. Please make sure to have a suitable backup plan for each volume.", + "mountType": "Mount Type", + "updateVolumeDialog": { + "title": "Update Volume {{ volume }}" + }, + "tooltipEdit": "Edit Volume" }, "storage": { "mounts": { diff --git a/src/translation/es.json b/src/translation/es.json index b5d27ba6e..994b178a6 100644 --- a/src/translation/es.json +++ b/src/translation/es.json @@ -72,7 +72,7 @@ "titleSignUp": "Regístrate en Cloudron.io" }, "appNotFoundDialog": { - "description": "No hay aplicación {{ appId }} con versión {{ version }}.", + "description": "No hay aplicación {{ appId }} con versión {{ version }}.", "title": "Aplicación no encontrada" } }, @@ -165,7 +165,7 @@ "bindUsername": "Enlazar DN/Nombre de usuario (opcional)", "bindPassword": "Enlazar Contraseña (opcional)", "groupBaseDn": "Grupo Base DN", - "baseDn": "Base DN", + "baseDn": "DN Base", "configureAction": "Configurar", "syncAction": "Sincronizar", "showLogsAction": "Mostrar Registros", @@ -206,7 +206,7 @@ "transferOwnershipTooltip": "Transferir Propiedad", "removeUserTooltip": "Borrar Usuario", "editUserTooltip": "Editar Usuario", - "resetPasswordTooltip": "Restablece la contraseña o enlace de invitación", + "resetPasswordTooltip": "Restablece la contraseña, deshabilita 2FA o envía enlace de invitación", "notActivatedYetTooltip": "Usuario todavía no activado", "externalLdapTooltip": "Desde un directorio LDAP externo", "inactiveTooltip": "Usuario está inactivo", @@ -237,7 +237,13 @@ "passwordResetDialog": { "sendEmailLinkAction": "Enviar enlace al usuario", "description": "Usa el enlace de abajo para restablecer la contraseña o re-invitar a {{ username }}:", - "title": "Restablecer la contraseña o enviar enlace de invitación a {{ username }}" + "title": "Restablecer contraseña/2FA 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.", + "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" }, "deleteGroupDialog": { "deleteAction": "Borrar", @@ -354,7 +360,7 @@ "hardlinksLabel": "Usar enlaces duros", "ext4Label": "El directorio es un disco EXT4 externo", "localDirectory": "Directorio local para copias de seguridad", - "mountPointDescription": "El punto de montaje debe configurarse manualmente. Consulte esta documentación .", + "mountPointDescription": "El punto de montaje debe configurarse manualmente. Consulta esta documentación .", "mountPoint": "Punto de montaje", "noopNote": "Esta opción rompe la funcionalidad de copia de seguridad y restauración de Cloudron y solo debe usarse para realizar pruebas. Asegúrese de que se haya realizado una copia de seguridad completa del servidor utilizando medios alternativos.", "provider": "Proveedor de almacenamiento", @@ -784,7 +790,15 @@ }, "app": { "appInfo": { - "customAppUpdateWarning": "Esta es una aplicación personalizada y no se instala desde la App Store y no recibirá actualizaciones. Consulte la documentación sobre cómo actualizar una aplicación personalizada." + "customAppUpdateWarning": "Esta es una aplicación personalizada y no se instala desde la App Store y no recibirá actualizaciones. Consulte la documentación sobre cómo actualizar una aplicación personalizada.", + "ssoEmail": "Esta aplicación está configurada para permitir a todos los usuarios con un buzón de correo en este Cloudron. Inicia sesión con el correo electrónico y la contraseña de Cloudron para acceder al buzón.", + "sso": "Esta aplicación está configurada para autentificarse con el directorio de usuarios de Cloudron. Los usuarios de Cloudron pueden iniciar sesión y usarlo de inmediato.", + "postInstallConfirmCheckbox": "Reconocer las instrucciones", + "openAction": "Abrir {{ app }}", + "firstTimeTitle": "Uso de primera vez", + "firstTimeCollapseHeader": "Instrucciones de ajustes de primera vez", + "appDocsUrl": "Consulta la {{title}} documentación para obtener información útil y temas comunes sobre esta aplicación. Si necesita más ayuda, consulta la {{title}} sección del foro de Cloudron.", + "package": "Paquete" }, "updates": { "auto": { @@ -812,10 +826,15 @@ "addMountAction": "Añade un volumen a montar", "noMounts": "No se ha montado ningún volumen.", "volume": "Volumen", - "saveAction": "Guardar" + "saveAction": "Guardar", + "title": "Montajes", + "readOnly": "Solo lectura" }, "appdata": { - "title": "Datos de la Aplicación" + "title": "Datos de la Aplicación", + "dataDirPlaceholder": "Dejar vacío para usar la plataforma predeterminada", + "description": "De forma predeterminada, los datos de esta aplicación se encuentran en {{storagePath}} . Si el servidor se está quedando sin espacio en disco, puede montar un disco EXT4 externo y mover allí los datos de esta aplicación.", + "moveAction": "Mover datos" } }, "logsActionTooltip": "Registros", @@ -844,25 +863,48 @@ "downloadConfigTooltip": "Descarga Configuración de la Copia de Seguridad", "time": "Creado en", "packageVersion": "Versión del Paquete", - "title": "Backups" + "title": "Backups", + "description": "Las copias de seguridad son instantáneas completas de la aplicación. Puede utilizar copias de seguridad de la aplicación para restaurar o clonar esta aplicación." }, "import": { - "title": "Importar desde una Copia de Seguridad Externa" + "title": "Importar desde una Copia de Seguridad Externa", + "description": "Usar para migrar una aplicación desde otro Cloudron. La otra aplicación debe tener la misma versión de paquete y configuración de control de acceso que esta." + }, + "auto": { + "title": "Backups automáticos", + "enabled": "Los Backups automáticos están actualmente habilitados.", + "disabled": "Los Backups automáticos están actualmente deshabilitados.", + "disableAction": "Deshabilitar Backups automáticos", + "enableAction": "Habilitar Backups automáticos", + "description": "Cloudron crea periódicamente una copia de seguridad basada en la configuración de copia de seguridad ." } }, "security": { "robots": { "disableIndexingAction": "Desactivar indexado", - "title": "Robots.txt" + "title": "Robots.txt", + "txtPlaceholder": "Dejar en blanco para permitir que todos los bots indexen esta aplicación" }, "csp": { - "saveAction": "Guardar" + "saveAction": "Guardar", + "description": "La configuración de esta opción anulará cualquier encabezado CSP enviado por la propia aplicación", + "title": "Política de seguridad de contenido" } }, "email": { "from": { "saveAction": "Guardar", - "title": "Correo DESDE la dirección" + "title": "Correo DESDE la dirección", + "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", + "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" } }, "resources": { @@ -926,7 +968,94 @@ "storageTabTitle": "Almacenamiento", "resourcesTabTitle": "Recursos", "accessControlTabTitle": "Accesos", - "locationTabTitle": "Ubicación" + "locationTabTitle": "Ubicación", + "backAction": "Volver a Mis Aplicaciones", + "adminPageAction": "Página de administrador", + "uninstallDialog": { + "description": "Esto desinstalará inmediatamente {{ app }} y borrará todos sus datos.", + "title": "Desinstalar {{ app }}", + "uninstallAction": "Desinstalar" + }, + "domainCollisionDialog": { + "description": "Como medida de precaución, Cloudron no sobrescribe los registros DNS existentes. Confirme que los dominios anteriores no están en uso para servicios externos a Cloudron.", + "title": "Colisión de dominio", + "collisionListTitle": "Los siguientes dominios ya existen en su DNS:", + "overwriteAction": "Sobrescribir registros DNS existentes" + }, + "importBackupDialog": { + "description": "Todos los datos generados entre ahora y la última copia de seguridad conocida se perderán de forma irrevocable. Se recomienda crear una copia de seguridad de los datos actuales antes de intentar una importación.", + "title": "Importar Backup", + "uploadAction": "Subir Configuración de Backup", + "importAction": "Importar" + }, + "restoreDialog": { + "warning": "Todos los datos generados entre ahora y la última copia de seguridad conocida se perderán de forma irrevocable. Se recomienda crear una copia de seguridad de los datos actuales antes de intentar una restauración.", + "title": "Restaurar {{ app }}", + "description": "Esto restaurará esta aplicación con los datos de {{creationTime}}.", + "restoreAction": "Restaurar" + }, + "uninstall": { + "uninstall": { + "backupWarning": "Las copias de seguridad de las aplicaciones no se eliminan y se borrarán según la política de copias de seguridad. Puede restaurar esta aplicación a partir de una copia de seguridad de la aplicación existente mediante las siguientes instrucciones .", + "uninstallAction": "Desinstalar", + "title": "Desinstalar", + "description": "Esto desinstalará la aplicación inmediatamente y eliminará todos sus datos. El sitio será inaccesible." + }, + "startStop": { + "title": "Arrancar / Parar", + "startAction": "Arrancar Aplicación", + "stopAction": "Parar Aplicación", + "description": "Las aplicaciones se pueden detener para conservar los recursos del servidor en lugar de desinstalarlas. Las futuras copias de seguridad de la aplicación no incluirán ningún cambio en la aplicación entre ahora y la copia de seguridad de la aplicación más reciente. Por este motivo, se recomienda activar una copia de seguridad antes de detener la aplicación." + } + }, + "cloneDialog": { + "description": "Usando la copia de seguridad de {{creationTime}} y la versión v {{packageVersion}} ", + "title": "Clonar {{ app }}", + "location": "Ubicación", + "cloneAction": "Clonar" + }, + "updateDialog": { + "unstableWarning": "Esta actualización es una versión preliminar y aún no se considera estable. Actualiza bajo tu propio riesgo.", + "subscriptionExpired": "Tu suscripción a Cloudron ha expirado. Configure una suscripción para actualizar la aplicación.", + "title": "Actualizar {{ app }}", + "changelogHeader": "Cambios para la nueva versión {{ version}}:", + "skipBackupCheckbox": "Saltar backup", + "setupSubscriptionAction": "Configura suscripción", + "updateAction": "Actualizar" + }, + "terminalActionTooltip": "Terminal", + "filemanagerActionTooltip": "Gestor de Archivos", + "docsActionTooltip": "Documentación", + "firstTimeSetupAction": "Configuración de primera vez", + "docsAction": "Documentación", + "projectWebsiteAction": "Sitio Web del proyecto", + "repairDialog": { + "title": "Raparar {{ app }}", + "description": "Cloudron reinstalará la aplicación en el mismo sitio con la configuración existente. Se conservarán los datos existentes.", + "domainDescription": "Cloudron reparará la aplicación para usarla en los dominios siguientes:", + "location": "Ubicación", + "fromBackup": "Restaurar desde Backup:", + "retryAction": "Reintentar {{ task }}", + "taskError": "La operación {{task}} falló con el siguiente error:" + }, + "stopDialog": { + "title": "¿De verdad quieres detener la aplicación {{app}}?" + }, + "repair": { + "recovery": { + "title": "Recuperación en caso de accidente", + "restartAction": "Reiniciar Aplicación", + "enableRecoveryModeAction": "Habilitar Modo de Recuperación", + "disableRecoveryModeAction": "Deshabilitar Modo de Recuperación", + "description": "Si la aplicación no responde, intenta reiniciarla. Si la aplicación se reinicia constantemente debido a un complemento roto o una configuración incorrecta, coloca la aplicación en modo de recuperación para acceder a la consola.\nUtiliza las siguientes instrucciones para volver a ejecutar la aplicación." + }, + "taskError": { + "title": "Error de tarea", + "description": "Si una acción de configuración, actualización, restauración o copia de seguridad resultó en un error, se puede volver a intentar la tarea.", + "retryAction": "Reintentar {{ task }} tarea" + }, + "appIsBusyTooltip": "La aplicación está ocupada" + } }, "lang": { "zh_Hans": "Chino (simple)", @@ -980,7 +1109,7 @@ "typeApp": "Error en Aplicación", "type": "Tipo", "subscriptionRequired": "Los tickets de soporte solo están disponibles en planes de pago.", - "title": "Ticket", + "title": "Tiquet", "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", @@ -991,11 +1120,13 @@ "volumes": { "removeVolumeDialog": { "removeAction": "Borrar", - "title": "Realmente borramos {{ volume }} ?" + "title": "Realmente borramos {{ volume }} ?", + "description": "Esto eliminará el volumen {{volume}} . Los datos dentro de la ruta del host no se eliminarán." }, "addVolumeDialog": { "addAction": "Añadir", - "title": "Añadir Volumen" + "title": "Añadir Volumen", + "nameWarning": "Cloudron montará la ruta del host en el contenedor de la aplicación con este nombre en /media ." }, "removeVolumeActionTooltip": "Borrar Volumen", "openFileManagerActionTooltip": "Abrir Gestor de Archivos", @@ -1003,7 +1134,8 @@ "hostPath": "Directorio del servidor", "addVolumeAction": "Añade un Volumen", "title": "Volúmenes", - "description": "Los volúmenes son directorios en el servidor que se pueden compartir entre aplicaciones. Estos pueden ser montajes NFS / SSHFS o discos de almacenamiento externos conectados al servidor." + "description": "Los volúmenes son directorios en el servidor que se pueden compartir entre aplicaciones. Estos pueden ser montajes NFS / SSHFS o discos de almacenamiento externos conectados al servidor.", + "backupWarning": "Los volúmenes no están respaldados. Restaurar una aplicación no restaurará el contenido del volumen. Asegúrate de tener un plan de copias de seguridad adecuado para cada volumen." }, "eventlog": { "filterAllEvents": "Todos los Eventos", @@ -1106,23 +1238,176 @@ }, "email": { "signature": { - "subscriptionRequired": "Esta funcionalidad solo está disponible en planes de pago. Suscríbete Ahora" + "subscriptionRequired": "Esta funcionalidad solo está disponible en planes de pago. Configura tu Suscripción Ahora", + "plainTextFormat": "Formato del texto", + "htmlFormat": "Formato HTML (Opcional)", + "saveAction": "Guardar", + "title": "Firma", + "description": "El texto aquí se adjuntará a todos los correos electrónicos que se envíen desde este dominio." }, "incoming": { "catchall": { - "subscriptionRequired": "Esta funcionalidad solo está disponible en planes de pago. Suscríbete Ahora" - } + "subscriptionRequired": "Esta funcionalidad solo está disponible en planes de pago. Configura tu Suscripción Ahora", + "description": "Los correos electrónicos enviados a direcciones no existentes se reenviarán a los siguientes buzones de correo.", + "title": "Atrapa todo", + "saveAction": "Guardar" + }, + "description": "El Servidor de Correo de Cloudron permite a los usuarios recibir emails para este dominio. Rainloop, SOGo, Roundcube están pre-configurados para acceder al Correo de Cloudron.", + "mailboxes": { + "aliases": "Alias", + "title": "Buzones de correo", + "addAction": "Añadir", + "disabledTooltip": "Los correos están deshabilitados para este dominio", + "name": "Nombre", + "owner": "Propietario", + "usage": "Uso" + }, + "mailinglists": { + "description": "Una lista de correo reenvía todos los correos electrónicos a sus miembros.", + "title": "Listas de correo", + "name": "Nombre", + "members": "Lista de miembros", + "everyoneTooltip": "Publicación permitida por los no miembros", + "membersOnlyTooltip": "Publicación restringida solo para miembros" + }, + "outgointServerInfo": "Correo Saliente (SMTP)", + "sieveServerInfo": "ManageSieve", + "loginHelp": "Utiliza nombre del buzón @ {{domain}} y la contraseña del propietario del buzón para acceder a los buzones de este dominio", + "title": "Correo electrónico entrante", + "disableAction": "Deshabilitar", + "enableAction": "Habilitar", + "server": "Servidor", + "port": "Puerto", + "tabTitle": "Buzones de correo", + "incomingServerInfo": "Correo entrante (IMAP)" }, "outbound": { - "noopAdminDomainWarning": "Cloudron no puede enviar invitaciones de usuario, restablecimiento de contraseña y otras notificaciones cuando el correo electrónico está deshabilitado en el dominio principal" + "noopAdminDomainWarning": "Cloudron no puede enviar invitaciones de usuario, restablecimiento de contraseña y otras notificaciones cuando el correo electrónico está deshabilitado en el dominio principal", + "noopNonAdminDomainWarning": "Cloudron no puede proporcionar el envío de correo electrónico para aplicaciones alojadas en este dominio cuando el correo electrónico está deshabilitado.", + "mailRelay": { + "spfDocInfo": "Cloudron no configura automáticamente el registro SPF. Configúralo manualmente siguiendo la {{name}} documentación .", + "host": "Host SMTP", + "port": "Puerto SMTP (STARTTLS)", + "selfsignedCheckbox": "Aceptar certificado autofirmado", + "apiTokenOrKey": "Token/Key API", + "username": "Nombre de usuario", + "saveSuccess": "Guardado", + "saveAction": "Guardar", + "password": "Contraseña" + }, + "tabTitle": "Saliente", + "title": "Retransmisión de correo electrónico", + "description": "Cloudron utilizará este servidor de correo (host inteligente) para enviar los correos salientes de las aplicaciones instaladas en este dominio." }, "backAction": "Volver a Correo Electrónico", "config": { - "title": "Configuración de Correo electrónico {{ domain }}" + "title": "Configuración de Correo electrónico {{ domain }}", + "connectionDetails": "Detalles de conexión para otros clientes de correo electrónico" + }, + "updateMailboxDialog": { + "activeCheckbox": "El buzón de correo está activo" + }, + "dnsStatus": { + "ptrInfo": "El registro PTR lo establece tu proveedor de VPS y no tu proveedor de DNS.", + "description": "El estado de los registros DNS puede mostrar un error mientras se propaga el DNS (~ 5 minutos). Consulta los documentos de solución de problemas para obtener ayuda.", + "title": "Estado DNS", + "reSetupAction": "Recargar la configuración de DNS", + "namecheapInfo": "Namecheap requiere pasos manuales para los registros MX", + "hostname": "Nombre del host", + "domain": "Dominio", + "expected": "Valor esperado", + "current": "Valor actual", + "type": "Tipo de registro", + "recordNotSet": "no establecido" + }, + "smtpStatus": { + "outboudRelay": "Saliente SMTP (Retransmitido)", + "notBlacklisted": "La IP de este servidor {{ ip }} no está en una lista de bloqueo.", + "title": "Estado SMTP", + "outboudDirect": "Saliente SMTP (Directo)", + "blacklistCheck": "Comprobación de la lista negra de direcciones IP", + "blacklisted": "La IP de este servidor {{ip}} está en una lista de bloqueo." + }, + "enableEmailDialog": { + "noProviderInfo": "No se ha configurado ningún proveedor de DNS. Los registros DNS enumerados en la pestaña Estado deben configurarse manualmente.", + "description": "Esto configurará Cloudron para recibir correos electrónicos de {{dominio}} . Consulta la documentación para abrir los puertos obligatorios para Cloudron Email.", + "setupDnsInfo": "Utiliza esta opción para configurar automáticamente los registros DNS relacionados con el correo electrónico. Dejar esta opción sin marcar es útil para crear buzones de correo e importar correo electrónico antes de publicarlo.", + "title": "¿Habilitar el correo electrónico para {{ domain }}?", + "setupDnsCheckbox": "Configura los registros DNS de correo ahora", + "enableAction": "Habilitar", + "cloudflareInfo": "Cloudflare administra el dominio {{adminDomain}} . Verifica que el proxy de Cloudflare esté inhabilitado para {{mailFqdn}} y configurado en solo DNS . Esto es necesario porque Cloudflare no es un proxy de correo electrónico." + }, + "disableEmailDialog": { + "description": "Esto configurará Cloudron para que deje de recibir correos electrónicos para {{dominio}} . Los buzones de correo y las listas asociadas con este dominio no se eliminarán.", + "title": "¿Deshabilitar Servidor de Correo para {{ domain }}?", + "disableAction": "Deshabilitar" + }, + "addMailinglistDialog": { + "membersOnlyCheckbox": "Restringir la publicación solo a miembros", + "title": "Añadir Lista de correo", + "members": "Lista de miembros", + "membersInfo": "Separar las direcciones de correo electrónico con una nueva línea", + "name": "Nombre" + }, + "deleteMailinglistDialog": { + "description": "¿Realmente quieres borrar la lista de correo {{ name }}@{{ domain }}?", + "title": "Borrar lista de correo {{ name }}@{{ domain }}", + "deleteAction": "Borrar" + }, + "deleteMailboxDialog": { + "description": "Después de la eliminación, los correos electrónicos enviados a este buzón rebotarán. Puedes optar por no eliminar los correos electrónicos de este buzón con fines de archivo. Los correos electrónicos archivados se encuentran en /home/yellowtent/boxdata/mail/vmail en el servidor.", + "title": "Borrar Buzón de correo {{ name }}@{{ domain }}", + "purgeMailboxCheckbox": "Borrar todos los correos y filtros dentro de este buzón de correo", + "deleteAction": "Borrar" + }, + "settings": { + "tabTitle": "Ajustes" + }, + "masquerading": { + "title": "Enmascarado", + "enableAction": "Habilitar", + "disableAction": "Deshabilitar", + "description": "El enmascaramiento permite a los usuarios y aplicaciones enviar correos electrónicos con un nombre de usuario arbitrario en la dirección DE." + }, + "subscriptionDialog": { + "title": "Se requiere suscripción", + "description": "Para agregar más buzones de correo, configure un plan de pago.", + "setupAction": "Configura tu suscripción" + }, + "addMailboxDialog": { + "title": "Añadir Buzón de correo", + "name": "Nombre", + "owner": "Propietario del Buzón de correo" + }, + "editMailboxDialog": { + "title": "Editar Buzón de correo {{ name }}@{{ domain }}", + "owner": "Propietario del Buzón de correo", + "aliases": "Alias", + "noAliases": "No hay alias configuradas.", + "addAliasAction": "Añadir un alias", + "addAnotherAliasAction": "Añadir otro alias" + }, + "editMailinglistDialog": { + "title": "Editar Lista de correo {{ name }}@{{ domain }}" + }, + "mailboxboxDialog": { + "usersHeader": "Usuarios", + "groupsHeader": "Grupos" + }, + "updateMailinglistDialog": { + "activeCheckbox": "La lista de correo está activa" + }, + "status": { + "tabTitle": "Estado" } }, "passwordResetEmail": { - "expireNote": "Tenga en cuenta que el enlace para restablecer la contraseña caducará en 24 horas." + "expireNote": "Tenga en cuenta que el enlace para restablecer la contraseña caducará en 24 horas.", + "description": "Alguien, con suerte, ha solicitado que se restablezca la contraseña de tu cuenta. Si no solicitaste este restablecimiento, ignora este mensaje.", + "salutation": "Hola <%= user %>,", + "resetAction": "Clic para resetear tu contraseña", + "resetActionText": "Para restablecer su contraseña, visita la siguiente página: <% - resetLink%>", + "subject": "[<%= cloudron %>] Restablecimiento de contraseña" }, "notifications": { "clearAll": "Borrar todo", @@ -1156,5 +1441,73 @@ "pasteInfo": "Para Pegar usa Ctrl+v" }, "uploading": "Subiendo…" + }, + "passwordReset": { + "newPassword": { + "errorLength": "La contraseña debe tener al menos 8 y un máximo de 265 caracteres", + "title": "Establecer nueva contraseña", + "password": "Nueva contraseña", + "passwordRepeat": "Repetir Contraseña", + "errorMismatch": "Las contraseñas no coinciden" + }, + "title": "Restablecimiento de contraseña", + "usernameOrEmail": "Nombre de usuario o email", + "resetAction": "Reiniciar", + "backToLoginAction": "Volver a iniciar sesión", + "emailSent": { + "title": "Se envió un correo electrónico para restablecer la contraseña" + }, + "passwordChanged": { + "submitAction": "Enviar" + }, + "success": { + "title": "Contraseña cambiada", + "openDashboardAction": "Abrir Panel" + } + }, + "setupAccount": { + "errorUsernameTooLong": "El nombre de usuario es demasiado largo", + "fullName": "Nombre completo", + "errorPasswordNoMatch": "Las contraseñas no coinciden", + "password": "Nueva contraseña", + "setupAction": "Configurar", + "welcomeTo": "Bienvenido a", + "description": "Por favor, configura tu cuenta", + "username": "Nombre de usuario", + "errorUsernameTooShort": "El nombre de usuario es demasiado corto", + "errorUsernameInvalid": "El nombre de usuario no es válido", + "passwordRepeat": "Repetir Contraseña", + "errorPassword": "La contraseña debe ser de al menos 8 caracteres", + "invalidToken": { + "title": "Enlace de invitación no válido o caducado", + "description": "Póngase en contacto con el administrador de su servidor para obtener un nuevo enlace de invitación." + }, + "success": { + "title": "Tu cuenta está lista", + "openDashboardAction": "Abrir Panel" + } + }, + "welcomeEmail": { + "welcomeTo": "Bienvenid@ a <%= cloudronName %>!", + "expireNote": "Tenga en cuenta que el enlace de invitación caducará en 7 días.", + "salutation": "Hola <%= user %>,", + "inviteLinkAction": "Empezar", + "invitor": "Recibió este correo electrónico porque fue invitado por <% = invitor%>.", + "inviteLinkActionText": "Siga el enlace para comenzar: <% - invite Link%>", + "subject": "Bienvenid@ a <%= cloudron %>" + }, + "login": { + "loginTo": "Iniciar sesión como", + "errorIncorrectCredentials": "Nombre de usuario o contraseña incorrectos", + "username": "Nombre de usuario", + "password": "Contraseña", + "2faToken": "Token 2FA (si está habilitado)", + "signInAction": "Iniciar sesión", + "resetPasswordAction": "Resetear contraseña" + }, + "storage": { + "mounts": { + "volumeLocation": "Los volúmenes se montan por nombre de volumen en el directorio / media de esta aplicación." + } } } diff --git a/src/translation/nl.json b/src/translation/nl.json index be5cc41b1..ca6d34826 100644 --- a/src/translation/nl.json +++ b/src/translation/nl.json @@ -161,7 +161,7 @@ "usermanagerTooltip": "Deze gebruiker kan groepen en andere gebruikers beheren", "inactiveTooltip": "Gebruiker is inactief", "externalLdapTooltip": "Van externe LDAP adresboek", - "resetPasswordTooltip": "Wachtwoord herstel link", + "resetPasswordTooltip": "Wachtwoord of 2FA opnieuw instellen", "editUserTooltip": "Wijzig gebruiker", "removeUserTooltip": "Verwijder gebruiker", "superadminTooltip": "Deze gebruiker is superadmin", @@ -267,11 +267,15 @@ "deleteAction": "Verwijder" }, "passwordResetDialog": { - "title": "Wachtwoordherstel-link voor {{ username }}", + "title": "Wachtwoord of 2FA opnieuw instellen voor {{ username }}", "sendEmailLinkAction": "E-mail link naar gebruiker", "description": "Gebruik onderstaande link om {{ username }}'s wachtwoord te herstellen of opnieuw uit te nodigen:", "emailSent": "Verstuurd", - "no2FASetup": "Deze gebruiker heeft geen 2FA ingesteld." + "no2FASetup": "Deze gebruiker heeft geen 2FA ingesteld.", + "2FAIsSetup": "2FA van de gebruiker uit schakelen. De gebruiker kan het aanzetten via Profiel.", + "newLinkAction": "Genereer nieuwe link", + "resetLinkExplanation": "Genereer een wachtwoordherstel- of uitnodiging link. De nieuwe link maakt de vorige link ongeldig.", + "reset2FAAction": "2FA opnieuw instellen" }, "externalLdapDialog": { "title": "Configureer LDAP" @@ -924,6 +928,9 @@ "notResponding": "Reageert niet", "stopped": "Gestopt", "running": "Lopend" + }, + "stopDialog": { + "title": "Weet je zeker dat je {{ app }} wilt stoppen?" } }, "network": { @@ -1387,6 +1394,12 @@ }, "settings": { "tabTitle": "Instellingen" + }, + "updateMailboxDialog": { + "activeCheckbox": "Mailbox is actief" + }, + "updateMailinglistDialog": { + "activeCheckbox": "Mailing-lijst is actief" } }, "login": { diff --git a/src/translation/vi.json b/src/translation/vi.json index 862181ab1..6f598fb36 100644 --- a/src/translation/vi.json +++ b/src/translation/vi.json @@ -56,7 +56,22 @@ }, "actions": "Thao tác", "offline": "Cloudron đang offline. Đang kết nối lại…", - "searchPlaceholder": "Tìm kiếm" + "searchPlaceholder": "Tìm kiếm", + "multiselect": { + "selected": "{{ n }} đã chọn", + "select": "Chọn", + "filterPlaceholder": "Gõ để lọc các lựa chọn" + }, + "prettyDate": { + "justNow": "mới đây", + "yeserday": "Hôm qua", + "minutesAgo": "{{ m }} phút trước", + "hoursAgo": "{{ h }} tiếng trước", + "yearsAgo": "{{ y }} năm trước", + "daysAgo": "{{ d }} ngày trước", + "weeksAgo": "{{ w }} tuần trước", + "monthsAgo": "{{ m }} tháng trước" + } }, "appstore": { "title": "Cửa hàng App", @@ -82,7 +97,8 @@ "vpn": "VPN", "blog": "Blog", "document": "Tài liệu", - "project": "Quản lý dự án" + "project": "Quản lý dự án", + "federated": "Phần mềm Liên hiệp hoá" }, "noAppsFound": "Không tìm thấy app.", "unstable": "Chưa ổn định", @@ -194,11 +210,13 @@ "subscriptionRequiredAction": "Cài đặt gói đăng ký ngay", "description": "Cloudron sẽ đồng bộ người dùng và nhóm từ server LDAP hay ActiveDirectory bên ngoài. Xác minh mật khẩu cho người dùng được dựa trên server ngoài. Việc đồng bộ hoá không được chạy tự động mà cần được khởi động bằng tay.", "title": "LDAP", - "subscriptionRequired": "Tính năng này chỉ có trong gói trả phí." + "subscriptionRequired": "Tính năng này chỉ có trong gói trả phí.", + "providerOther": "Khác", + "providerDisabled": "Đã tắt" }, "users": { "inactiveTooltip": "Người dùng không hoạt động", - "resetPasswordTooltip": "Cài lại mật khẩu hay link mời", + "resetPasswordTooltip": "Cài lại mật khẩu, tắc xác minh 2 Bước hay gửi link mời", "removeUserTooltip": "Xóa người dùng", "editUserTooltip": "Chỉnh sửa người dùng", "notActivatedYetTooltip": "Người dùng chưa được kích hoạt", @@ -249,9 +267,15 @@ "title": "Xoá nhóm {{ name }}" }, "passwordResetDialog": { - "title": "Đặt lại mật khẩu hoặc link mời cho {{ username }}", + "title": "Đặt lại mật khẩu/xác minh 2 Bước cho {{ username }}", "description": "Dùng link dưới đây để đặt lại mật khẩu hoặc mời lại {{ username }}:", - "sendEmailLinkAction": "Gửi link qua email cho người dùng" + "sendEmailLinkAction": "Gửi link qua email cho người dùng", + "2FAIsSetup": "Dùng tính năng này để tắt mã xác minh 2 Bước cho người dùng. Người dùng có thể tự cài lại trong mục Hồ sơ.", + "newLinkAction": "Tạo link mới", + "resetLinkExplanation": "Dùng tính năng này để tạo link cài lại mật khẩu hay link mời tham gia. Link mới sẽ vô hiệu hoá link cũ ngay tức thì.", + "no2FASetup": "Người dùng chưa cài đặt mã xác minh 2 Bước.", + "reset2FAAction": "Cài lại mã xác minh 2 Bước", + "emailSent": "Đã gửi" }, "transferOwnershipDialog": { "newOwner": "Chủ sở hữu mới", @@ -339,7 +363,9 @@ "revokeTokenTooltip": "Rút lại mã", "newApiToken": "Mã API mới", "name": "Tên", - "expiresAt": "Hết hiệu lực vào" + "expiresAt": "Hết hiệu lực vào", + "lastUsed": "Lần dùng cuối", + "neverUsed": "chưa từng dùng" }, "loginTokens": { "title": "Mã đăng nhập", @@ -373,7 +399,7 @@ }, "title": "Bản sao lưu", "configureBackupStorage": { - "copyConcurrencyDescription": "Số bản sao tập tin từ xa song song khi đang sao lưu Cloudron.", + "copyConcurrencyDescription": "Số bản sao tập tin từ xa cùng lúc khi đang sao lưu Cloudron.", "memoryLimitDescription": "Giới hạn bộ nhớ cho thao tác sao lưu. Điều chỉnh nếu bạn cần tăng giới hạn hiện tại so với giá trị mặc định.", "encryptionPasswordRepeat": "Nhập lại mật khẩu", "encryptionPasswordPlaceholder": "Mật khẩu để mã hoá các bản sao lưu", @@ -456,6 +482,10 @@ "schedule": "Lịch sao lưu", "description": "Cloudron sao lưu toàn bộ hệ thống của bạn dựa vào định kỳ sao lưu đã lên lịch và giữ các bản sao lưu theo thời gian lưu giữ đã định.", "title": "Lịch sao lưu và thời gian lưu giữ" + }, + "check": { + "sameDisk": "Các bản sao lưu Cloudron đang ở trên cùng ổ đĩa với server chạy Cloudron. Việc này sẽ nguy hiểm và có thể dẫn đến mất dữ liệu nếu ổ đĩa bị trục trặc. Xem cách sao lưu tại ổ đĩa ngoài tại https://docs.cloudron.io/backups/#storage-providers.", + "noop": "Tính năng sao lưu Cloudron đã tắt. Hãy chắc rằng server được sao lưu bằng một biện pháp khác. Xem thông tin thêm tại https://docs.cloudron.io/backups/#storage-providers." } }, "login": { @@ -574,7 +604,8 @@ "membersOnlyCheckbox": "Chỉ cho phép chuyển tiếp mail cho thành viên trong danh sách", "membersInfo": "Cách mỗi email bằng một dòng mới", "members": "Thành viên", - "title": "Thêm danh sách chuyển tiếp mail" + "title": "Thêm danh sách chuyển tiếp mail", + "name": "Tên" }, "deleteMailboxDialog": { "deleteAction": "Xoá", @@ -645,6 +676,12 @@ }, "settings": { "tabTitle": "Cài đặt" + }, + "updateMailboxDialog": { + "activeCheckbox": "Hộp thư đang hoạt động" + }, + "updateMailinglistDialog": { + "activeCheckbox": "Danh sách chuyển tiếp đang hoạt động" } }, "network": { @@ -836,7 +873,9 @@ }, "settings": { "registryConfig": { - "provider": "Nhà cung cấp docker registry" + "provider": "Nhà cung cấp docker registry", + "providerOther": "Khác", + "providerDisabled": "Đã tắt" }, "language": { "description": "Ngôn ngữ mặc định cho Cloudron được cài đặt ở đây. Ngôn ngữ này sẽ được dùng trong các email trao đổi như mời người dùng hay đặt lại mật khẩu. Mỗi người dùng có thể tuỳ chỉnh ngôn ngữ mình thích trong dashboard.", @@ -868,7 +907,8 @@ "setupSubscriptionAction": "Cài đặt gói đăng ký ngay", "subscriptionRequired": "Tính năng này chỉ có trong gói trả phí.", "description": "Cloudron có thể tải hình ảnh về và cài đặt những app tuỳ chỉnh từ nơi lưu trữ docker registry cá nhân.", - "title": "Docker registry cá nhân" + "title": "Docker registry cá nhân", + "serverNotSet": "Chưa cài đặt" }, "privateDockerRegistryDialog": { "passwordToken": "Mật khẩu/Mật mã", @@ -1118,7 +1158,10 @@ "domain": "Tên miền", "addDomain": "Thêm tên miền", "syncDns": { - "title": "Đồng bộ DNS" + "title": "Đồng bộ DNS", + "description": "Lựa chọn này sẽ cấp lại các bản ghi DNS cho app và email cho tất cả tên miền.", + "syncAction": "Đồng bộ DNS", + "showLogsAction": "Hiển thị log" } }, "app": { @@ -1226,8 +1269,13 @@ "from": { "saveAction": "Lưu", "mailboxPlaceholder": "Để trống để dùng giá trị mặc định của hệ thống", - "description": "Lựa chọn này cài đặt tên địa chỉ mà app sẽ gửi mail ra. App này đã được cài đặt để gửi mail trong phần cài đặt {{ domain }}'s Mail gửi ra.", - "title": "Địa chỉ mail GỬI TỪ (FROM)" + "description": "Lựa chọn này cài đặt tên địa chỉ mà app sẽ gửi mail ra. App này đã được cài đặt để gửi mail trong phần cài đặt {{ domain }}'s Mail gửi ra.", + "title": "Địa chỉ mail GỬI TỪ (FROM)", + "enable": "Dùng Mail Cloudron để gửi mail", + "description2": "Khi bật, app sẽ được cấu hình để gửi mail qua mail server nội bộ bằng địa chỉ email này. Mail server nội bộ sẽ dùng phần cài đặt Mail gửi ra của {{ domain }} để gửi mail. Khi tắt, bạn có thể tuỳ chỉnh cài đặt mail trong app.", + "disable": "Không cài đặt mail", + "enableDescription": "App được cấu hình để gửi mail bằng địa chỉ email sau và theo cài đặt phần Mail gửi ra của {{ domain }}.", + "disableDescription": "Các cài đặt email của app chưa được chỉnh. Bạn có thể tuỳ chỉnh trong app." } }, "graphs": { @@ -1236,7 +1284,8 @@ "30d": "30 ngày trước", "7d": "7 ngày trước", "24h": "24 tiếng trước", - "12h": "12 tiếng trước" + "12h": "12 tiếng trước", + "6h": "6 tiếng" } }, "storage": { @@ -1379,6 +1428,9 @@ "uninstallAction": "Gỡ cài đặt", "description": "Lựa chọn này sẽ ngay lập tức gỡ app {{ app }} và xoá toàn bộ dữ liệu trong đó.", "title": "Gỡ cài đặt {{ app }}" + }, + "stopDialog": { + "title": "Chắc chắn dừng app {{ app }}?" } }, "volumes": { @@ -1389,7 +1441,7 @@ "removeVolumeDialog": { "removeAction": "Xoá", "description": "Lựa chọn này sẽ xoá volume {{ volume }}. Dữ liệu trong đường dẫn host sẽ không được xoá.", - "title": "Chắc chắn xoá volume {{ volume }} ?" + "title": "Chắc chắn xoá volume này {{ volume }} ?" }, "addVolumeDialog": { "addAction": "Thêm volume", @@ -1424,7 +1476,8 @@ "it": "Tiếng Ý", "fr": "Tiếng Pháp", "de": "Tiếng Đức", - "en": "Tiếng Anh" + "en": "Tiếng Anh", + "es": "Tiếng Tây Ban Nha" }, "passwordResetEmail": { "subject": "[<%= cloudron %>] Đặt lại mật khẩu", diff --git a/src/translation/zh_Hans.json b/src/translation/zh_Hans.json index 8e4717881..bb0f75451 100644 --- a/src/translation/zh_Hans.json +++ b/src/translation/zh_Hans.json @@ -209,6 +209,10 @@ "copyConcurrencyDescription": "当备份时同时复制几个文件。", "copyConcurrencyDigitalOceanNote": "DigitalOcean Spaces 的上限为 20。", "s3LikeNote": "请不要在 S3 存储桶上设置 lifecycle 规则,因为这会导致 rsync 备份损坏。" + }, + "check": { + "noop": "Cloudron 备份已停用。请确保这台服务器已经使用其它方法备份。更多关于备份的信息请参考 https://docs.cloudron.io/backups/#storage-providers .", + "sameDisk": "Cloudron 备份现在和 Cloudron 服务器在同一个硬盘上。若这块硬盘损坏,将会导致所有数据丢失。关于备份到外部存储,请见:https://docs.cloudron.io/backups/#storage-providers ." } }, "main": { @@ -247,7 +251,22 @@ "title": "确定要重启服务器?", "warning": "重启期间,这台服务器上的所有应用都不可用!" }, - "searchPlaceholder": "搜索" + "searchPlaceholder": "搜索", + "multiselect": { + "selected": "{{ n }} 已选中", + "select": "选择", + "filterPlaceholder": "过滤选项" + }, + "prettyDate": { + "justNow": "现在", + "yeserday": "昨天", + "hoursAgo": "{{ h }} 小时前", + "daysAgo": "{{ d }} 天前", + "weeksAgo": "{{ w }} 周前", + "yearsAgo": "{{ y }} 年前", + "minutesAgo": "{{ m }} 分钟前", + "monthsAgo": "{{ m }} 个月前" + } }, "appstore": { "title": "App Store", @@ -273,7 +292,8 @@ "project": "项目管理", "wiki": "百科", "vpn": "VPN", - "sync": "文件同步" + "sync": "文件同步", + "federated": "联盟式" }, "noAppsFound": "没有应用。", "appMissing": "找不到想要的应用?告诉我们。", @@ -340,7 +360,7 @@ "editUserTooltip": "编辑用户", "removeUserTooltip": "删除用户", "empty": "没有用户", - "resetPasswordTooltip": "重设密码或发送邀请链接", + "resetPasswordTooltip": "重设密码,关闭双因素验证或发送邀请链接", "transferOwnershipTooltip": "转让所有权" }, "groups": { @@ -381,7 +401,9 @@ "bindUsername": "绑定 DN/用户名(可选)", "bindPassword": "绑定密码(可选)", "description": "Cloudron 会从外部 LDAP 或者 ActiveDirectory 服务同步用户和用户组。当验证用户时会在外部服务进行密码验证。同步需要被手动触发,无法自动进行。", - "errorSelfSignedCert": "服务器使用的是无效的或自签名的证书。" + "errorSelfSignedCert": "服务器使用的是无效的或自签名的证书。", + "providerOther": "其它", + "providerDisabled": "禁用" }, "subscriptionDialog": { "title": "需要订阅", @@ -440,9 +462,15 @@ "description": "这个用户组里有 {{ memberCount }} 名用户。确定要删除吗?" }, "passwordResetDialog": { - "title": "重设密码或给 {{ username }} 发送邀请链接", + "title": "为 {{ username }} 重设密码或双因素验证", "description": "使用下面的链接来重设 {{ username }} 的密码,或者重新邀请:", - "sendEmailLinkAction": "将链接用 Email 发送给用户" + "sendEmailLinkAction": "将链接用 Email 发送给用户", + "2FAIsSetup": "在此关闭用户的双因素验证。用户可以在资料页面重新设置。", + "newLinkAction": "生成新链接", + "resetLinkExplanation": "在此生成新的密码重设或者邀请链接。所有未使用的旧链接将会失效。", + "no2FASetup": "这位用户未设置双因素验证。", + "reset2FAAction": "重设双因素验证", + "emailSent": "已发送" }, "externalLdapDialog": { "title": "配置 LDAP" @@ -646,7 +674,8 @@ "usernameNotSet": "未设置", "configureAction": "配置仓库", "description": "Cloudron 可以安装从私有 Docker 仓库安装 自定义的应用。", - "setupSubscriptionAction": "现在设置订阅" + "setupSubscriptionAction": "现在设置订阅", + "serverNotSet": "未设置" }, "privateDockerRegistryDialog": { "title": "私有仓库设置", @@ -676,7 +705,9 @@ "description": "在这里可以设置 Cloudron 的默认语言。这个设置同样会被应用于通知性的邮件,如用户邀请和密码重置。每个用户都可以单独设置自己的语言偏好,应用于自己的控制面板。" }, "registryConfig": { - "provider": "Docker 仓库服务商" + "provider": "Docker 仓库服务商", + "providerOther": "其他", + "providerDisabled": "已停用" } }, "support": { @@ -1080,7 +1111,8 @@ "title": "添加邮件列表", "members": "列出成员", "membersInfo": "每个 Email 地址一行", - "membersOnlyCheckbox": "只允许列表成员使用列表发送邮件" + "membersOnlyCheckbox": "只允许列表成员使用列表发送邮件", + "name": "名称" }, "editMailinglistDialog": { "title": "编辑邮件列表 {{ name }}@{{ domain }}" @@ -1093,6 +1125,12 @@ "mailboxboxDialog": { "groupsHeader": "用户组", "usersHeader": "用户" + }, + "updateMailinglistDialog": { + "activeCheckbox": "邮件列表已启用" + }, + "updateMailboxDialog": { + "activeCheckbox": "邮箱已启用" } }, "app": { @@ -1355,9 +1393,13 @@ "12h": "12 小时", "24h": "24 小时", "7d": "7 天", - "30d": "30 天" + "30d": "30 天", + "6h": "6 小时" }, "memoryTitle": "内存 MB (RAM + Swap)" + }, + "stopDialog": { + "title": "确实要停止 {{ app }}?" } }, "login": { diff --git a/src/views/volumes.html b/src/views/volumes.html index 3aea1ab7d..e7c7c9b7e 100644 --- a/src/views/volumes.html +++ b/src/views/volumes.html @@ -1,65 +1,68 @@ -