diff --git a/client/src/campaigns/Clone.js b/client/src/campaigns/Clone.js index 5dd84630..c20caddd 100644 --- a/client/src/campaigns/Clone.js +++ b/client/src/campaigns/Clone.js @@ -108,13 +108,13 @@ export default class Clone extends Component { return (
- {t('Create campaign')} + {t('createCampaign')}
- + -
diff --git a/client/src/campaigns/List.js b/client/src/campaigns/List.js index aecafbf4..e8db5b36 100644 --- a/client/src/campaigns/List.js +++ b/client/src/campaigns/List.js @@ -65,7 +65,7 @@ export default class List extends Component { columns.push({ data: 4, title: t('type'), render: data => this.campaignTypeLabels[data] }); if (!channel) { - columns.push({ data: 5, title: t('Channel') }); + columns.push({ data: 5, title: t('channel') }); } columns.push({ @@ -164,7 +164,7 @@ export default class List extends Component { } else { createButton = ( <> - + {t('regular')} {t('rss')} @@ -192,4 +192,4 @@ export default class List extends Component { ); } -} \ No newline at end of file +} diff --git a/client/src/campaigns/root.js b/client/src/campaigns/root.js index 0292354f..f9783627 100644 --- a/client/src/campaigns/root.js +++ b/client/src/campaigns/root.js @@ -179,7 +179,7 @@ function getMenus(t) { panelRender: props => }, 'clone': { - title: t('Create Campaign'), + title: t('createCampaign'), link: params => `/campaigns/clone`, panelRender: props => , children: { diff --git a/client/src/channels/CUD.js b/client/src/channels/CUD.js index fb842a96..6ef6da1c 100644 --- a/client/src/channels/CUD.js +++ b/client/src/channels/CUD.js @@ -368,17 +368,17 @@ export default class CUD extends Component { if (submitResult) { if (this.props.entity) { if (submitAndLeave) { - this.navigateToWithFlashMessage('/channels', 'success', t('Channel updated')); + this.navigateToWithFlashMessage('/channels', 'success', t('channelUpdated')); } else { await this.getFormValuesFromURL(`rest/channels/${this.props.entity.id}`); this.enableForm(); - this.setFormStatusMessage('success', t('Channel updated')); + this.setFormStatusMessage('success', t('channelUpdated')); } } else { if (submitAndLeave) { - this.navigateToWithFlashMessage('/channels', 'success', t('Channel created')); + this.navigateToWithFlashMessage('/channels', 'success', t('channelCreated')); } else { - this.navigateToWithFlashMessage(`/channels/${submitResult}/edit`, 'success', t('Channel created')); + this.navigateToWithFlashMessage(`/channels/${submitResult}/edit`, 'success', t('channelCreated')); } } } else { @@ -501,11 +501,11 @@ export default class CUD extends Component { deleteUrl={`rest/channels/${this.props.entity.id}`} backUrl={`/channels/${this.props.entity.id}/edit`} successUrl="/channels" - deletingMsg={t('Deleting channel ...')} - deletedMsg={t('Channel deleted')}/> + deletingMsg={t('deletingChannel')} + deletedMsg={t('channelDeleted')}/> } - {isEdit ? t('Edit Channel') : t('Create Channel')} + {isEdit ? t('editChannel') : t('createChannel')} {!canModify &&
diff --git a/client/src/channels/List.js b/client/src/channels/List.js index 011905d9..1d03efe6 100644 --- a/client/src/channels/List.js +++ b/client/src/channels/List.js @@ -61,7 +61,7 @@ export default class List extends Component { if (perms.includes('view')) { actions.push({ - label: , + label: , link: `/channels/${data[0]}/campaigns` }); } @@ -80,7 +80,7 @@ export default class List extends Component { }); } - tableAddDeleteButton(actions, this, perms, `rest/channels/${data[0]}`, data[1], t('Deleting channel ...'), t('Channel deleted')); + tableAddDeleteButton(actions, this, perms, `rest/channels/${data[0]}`, data[1], t('deletingChannel'), t('channelDeleted')); return actions; } @@ -92,14 +92,14 @@ export default class List extends Component { {tableRestActionDialogRender(this)} {createPermitted && - + } - {t('Channels')} + {t('channels')} this.table = node} withHeader dataUrl="rest/channels-table" columns={columns} /> ); } -} \ No newline at end of file +} diff --git a/client/src/channels/root.js b/client/src/channels/root.js index 21fb23e4..2a762422 100644 --- a/client/src/channels/root.js +++ b/client/src/channels/root.js @@ -12,7 +12,7 @@ import {namespaceCheckPermissions} from "../lib/namespace"; function getMenus(t) { return { 'channels': { - title: t('Channels'), + title: t('channels'), link: '/channels', checkPermissions: { createChannel: { @@ -29,14 +29,14 @@ function getMenus(t) { panelRender: props => , children: { ':channelId([0-9]+)': { - title: resolved => t('Channel "{{name}}"', {name: ellipsizeBreadcrumbLabel(resolved.channel.name)}), + title: resolved => t('channelName', {name: ellipsizeBreadcrumbLabel(resolved.channel.name)}), resolve: { channel: params => `rest/channels/${params.channelId}` }, link: params => `/channels/${params.channelId}/campaigns`, navs: { campaigns: { - title: t('Campaigns'), + title: t('campaigns'), link: params => `/channels/${params.channelId}/campaigns`, visible: resolved => resolved.channel.permissions.includes('view'), panelRender: props => @@ -64,7 +64,7 @@ function getMenus(t) { } }, 'create': { - title: t('Create Channel'), + title: t('createChannel'), panelRender: props => } } diff --git a/client/src/lib/table.js b/client/src/lib/table.js index f53061da..025b8dc0 100644 --- a/client/src/lib/table.js +++ b/client/src/lib/table.js @@ -320,6 +320,31 @@ class Table extends Component { }); }; + const t = this.props.t; + dtOptions.language = { + "sEmptyTable": t("dTsEmptyTable"), + "sInfo": t("dTsInfo"), + "sInfoEmpty": t("dTsInfoEmpty"), + "sInfoFiltered": t("dTsInfoFiltered"), + "sInfoPostFix": t("dTsInfoPostFix"), + "sInfoThousands": t("dTsInfoThousands"), + "sLengthMenu": t("dTsLengthMenu"), + "sLoadingRecords": t("dTsLoadingRecords"), + "sProcessing": t("dTsProcessing"), + "sSearch": t("dTsSearch"), + "sZeroRecords": t("dTsZeroRecords"), + "oPaginate": { + "sFirst": t("dTsFirst"), + "sLast": t("dTsLast"), + "sNext": t("dTsNext"), + "sPrevious": t("dTsPrevious") + }, + "oAria": { + "sSortAscending": t("dTsSortAscending"), + "sSortDescending": t("dTsSortDescending") + } + } + dtOptions.initComplete = function() { self.jqSelectInfo = jQuery('
'); const jqWrapper = jQuery(self.domTable).parents('.dataTables_wrapper'); @@ -430,4 +455,4 @@ class Table extends Component { export { Table, TableSelectMode -} \ No newline at end of file +} diff --git a/client/src/users/CUD.js b/client/src/users/CUD.js index a6d47690..e37dc93c 100644 --- a/client/src/users/CUD.js +++ b/client/src/users/CUD.js @@ -225,8 +225,8 @@ export default class CUD extends Component { const canDelete = isEdit && userId !== 1 && mailtrainConfig.user.id !== userId; const rolesColumns = [ - { data: 1, title: "Name" }, - { data: 2, title: "Description" }, + { data: 1, title: t("name") }, + { data: 2, title: t("description") }, ]; diff --git a/client/src/users/List.js b/client/src/users/List.js index 1ac5f0eb..2c59c6f1 100644 --- a/client/src/users/List.js +++ b/client/src/users/List.js @@ -29,15 +29,15 @@ export default class List extends Component { const t = this.props.t; const columns = [ - { data: 1, title: "Username" }, + { data: 1, title: t("username") }, ]; if (mailtrainConfig.isAuthMethodLocal) { - columns.push({ data: 2, title: "Full Name" }); + columns.push({ data: 2, title: t("fullName") }); } - columns.push({ data: 3, title: "Namespace" }); - columns.push({ data: 4, title: "Role" }); + columns.push({ data: 3, title: t("namespace") }); + columns.push({ data: 4, title: t("role") }); columns.push({ actions: data => { @@ -72,4 +72,4 @@ export default class List extends Component {
); } -} \ No newline at end of file +} diff --git a/locales/de-DE/common.json b/locales/de-DE/common.json index 86fabb70..53d7aac5 100644 --- a/locales/de-DE/common.json +++ b/locales/de-DE/common.json @@ -1028,5 +1028,41 @@ "thePasswordMustContainAtLeastOneSpecial": "Das Passwort muss mindestens ein Sonderzeichen enthalten", "tagLanguage": "Tag Sprache", "tagLanguageMustBeSelected": "Tag Sprache muss ausgewählt werden", - "helpText": "Hilfe-Text" + "helpText": "Hilfe-Text", + "dTsEmptyTable": "Keine Daten in der Tabelle vorhanden", + "dTsInfo": "_START_ bis _END_ von _TOTAL_ Einträgen", + "dTsInfoEmpty": "Keine Daten vorhanden", + "dTsInfoFiltered": "(gefiltert von _MAX_ Einträgen)", + "dTsInfoPostFix": "", + "dTsInfoThousands": ".", + "dTsLengthMenu": "_MENU_ Einträge anzeigen", + "dTsLoadingRecords": "Wird geladen ..", + "dTsProcessing": "Bitte warten ..", + "dTsSearch": "Suchen", + "dTsZeroRecords": "Keine Einträge vorhanden", + "dTsFirst": "Erste", + "dTsLast": "Zurück", + "dTsNext": "Nächste", + "dTsPrevious": "Letzte", + "dTsSortAscending": ": aktivieren, um Spalte aufsteigend zu sortieren", + "dTsSortDescending": ": aktivieren, um Spalte absteigend zu sortieren", + "saving": "Saving ...", + "channelUpdated": "Channel updated", + "channelCreated": "Channel created", + "deletingChannel": "Deleting channel ...", + "channelDeleted": "Channel deleted", + "editChannel": "Edit Channel", + "createChannel": "Create Channel", + "sendConfiguration": "Send configuration", + "sendConfiguration_plural": "Send configurations", + "disableOpenedTracking": "Disable opened tracking", + "disableClickedTracking": "Disable clicked tracking", + "save": "Save", + "saveAndLeave": "Save and leave", + "channels": "Channels", + "channel": "Channel", + "channelName": "Channel \"{{name}}\"", + "cloneCampaign": "Clone Campaign", + "next": "Next", + "selectCampaignToBeCloned": "Select campaign to be cloned." } diff --git a/locales/en-US/common.json b/locales/en-US/common.json index 74a96dbb..eb9915ee 100644 --- a/locales/en-US/common.json +++ b/locales/en-US/common.json @@ -1034,5 +1034,41 @@ "thePasswordMustContainAtLeastOneSpecial": "The password must contain at least one special character", "tagLanguage": "Tag language", "tagLanguageMustBeSelected": "Tag language must be selected", - "helpText": "Help text" + "helpText": "Help text", + "dTsEmptyTable": "No data available in table", + "dTsInfo": "Showing _START_ to _END_ of _TOTAL_ entries", + "dTsInfoEmpty": "Showing 0 to 0 of 0 entries", + "dTsInfoFiltered": "(filtered from _MAX_ total entries)", + "dTsInfoPostFix": "", + "dTsInfoThousands": ",", + "dTsLengthMenu": "Show _MENU_ entries", + "dTsLoadingRecords": "Loading...", + "dTsProcessing": "Processing...", + "dTsSearch": "Search:", + "dTsZeroRecords": "No matching records found", + "dTsFirst": "Firs", + "dTsLast": "Last", + "dTsNext": "Next", + "dTsPrevious": "Previous", + "dTsSortAscending": ": activate to sort column ascending", + "dTsSortDescending": ": activate to sort column descending", + "saving": "Saving ...", + "channelUpdated": "Channel updated", + "channelCreated": "Channel created", + "deletingChannel": "Deleting channel ...", + "channelDeleted": "Channel deleted", + "editChannel": "Edit Channel", + "createChannel": "Create Channel", + "sendConfiguration": "Send configuration", + "sendConfiguration_plural": "Send configurations", + "disableOpenedTracking": "Disable opened tracking", + "disableClickedTracking": "Disable clicked tracking", + "save": "Save", + "saveAndLeave": "Save and leave", + "channels": "Channels", + "channel": "Channel", + "channelName": "Channel \"{{name}}\"", + "cloneCampaign": "Clone Campaign", + "next": "Next", + "selectCampaignToBeCloned": "Select campaign to be cloned." } diff --git a/locales/es-ES/common.json b/locales/es-ES/common.json index a91274be..a0c072af 100644 --- a/locales/es-ES/common.json +++ b/locales/es-ES/common.json @@ -9,23 +9,23 @@ "passwordsMustMatch": "Las contraseñas deben coincidir", "updatingUserProfile": "Actualizando perfil del usuario ...", "userProfileUpdated": "Perfil del usuario actualizado", - "thereAreErrorsInTheFormPleaseFixThemAnd": "There are errors in the form. Please fix them and submit again.", - "yourUpdatesCannotBeSaved": "Your updates cannot be saved.", - "thePasswordIsIncorrectPossiblyJust": "The password is incorrect (possibly just changed in another window / session). Enter correct password and try again.", - "theEmailIsAlreadyAssignedToAnotherUser": "The email is already assigned to another user. Enter another email and try again.", - "account": "Account", - "generalSettings": "General Settings", - "fullName": "Full Name", + "thereAreErrorsInTheFormPleaseFixThemAnd": "Hay errores en el formulario. Por favor, arréglalos y vuelve a enviar el formulario.", + "yourUpdatesCannotBeSaved": "Tus actualizaciones no pudieron guardarse.", + "thePasswordIsIncorrectPossiblyJust": "Tu contraseña es incorrecta (probablemente la cambiaras en otra ventana/sesión). Introduce la correcta y vuélvelo a intentar.", + "theEmailIsAlreadyAssignedToAnotherUser": "Este email ya está asignado a otro usuario. Introduce otro email y vuélvelo a intentar.", + "account": "Cuenta", + "generalSettings": "Ajustes Generales", + "fullName": "Nombre completo", "email": "Email", - "thisAddressIsUsedForAccountRecoveryIn": "This address is used for account recovery in case you loose your password", - "passwordChange": "Password Change", - "youOnlyNeedToFillOutThisFormIfYouWantTo": "You only need to fill out this form if you want to change your current password", - "currentPassword": "Current Password", - "newPassword": "New Password", - "confirmPassword": "Confirm Password", - "update": "Update", - "accountManagementIsNotPossibleBecause": "Account management is not possible because Mailtrain is configured to use externally managed users.", - "ifYouWantToChangeThePasswordUseThisLink": "If you want to change the password, use <1>this link.", + "thisAddressIsUsedForAccountRecoveryIn": "Esta dirección se utilizará para recuperar tu cuenta en el caso de que pierdas tu contraseña", + "passwordChange": "Cambiar Contraseña", + "youOnlyNeedToFillOutThisFormIfYouWantTo": "Sólo necesitas rellenar este formulario si quieres cambiar tu contraseña actual", + "currentPassword": "Contraseña actual", + "newPassword": "Contraseña nueva", + "confirmPassword": "Confirma contraseña", + "update": "Actualizar", + "accountManagementIsNotPossibleBecause": "No es posible gestionar las cuentas de usuario porque Mailtrain está configurado para usar usuarios externos.", + "ifYouWantToChangeThePasswordUseThisLink": "Si quieres cambiar tu contraseña, usa <1>este enlace.", "personalAccessToken": "Token de acceso personal", "accessTokenNotYetGenerated": "El token de acceso aun no se ha generado", "api": "API", @@ -63,7 +63,7 @@ "optionalDefault0": "optional, default 0", "limitEmailsCountInResponse": "limit emails count in response", "optionalDefault10000": "opcional, por defecto 10000", - "filterByPartOfEmail": "filter by part of email", + "filterByPartOfEmail": "filtrar por parte del email", "optionalDefault": "opcional, por defecto \"\"", "addEmailToBlacklist": "Add email to blacklist", "thisApiCallEitherAddEmailsToBlacklist": "This API call either add emails to blacklist", @@ -87,7 +87,7 @@ "youNeedToDefineProperContentTypeWhen": "You need to define proper <1>Content-Type when making a request. You can either use <3>application/x-www-form-urlencoded for normal form data or <5>application/json for a JSON payload. Using <7>multipart/form-data is not supported.", "emailMustNotBeEmpty-1": "Email must not be empty", "theEmailIsAlreadyOnBlacklist": "The email is already on blacklist.", - "saving": "Saving ...", + "saving": "Guardando ...", "thereAreErrorsInTheFormPleaseFixThemAnd-1": "There are errors in the form. Please fix them and try again.", "removeFromBlacklist": "Remove from blacklist", "confirmRemovalFromBlacklist": "Confirm Removal From Blacklist", @@ -98,111 +98,107 @@ "addEmailToBlacklist-1": "Add Email to Blacklist", "addToBlacklist": "Add to Blacklist", "blacklistedEmails": "Blacklisted Emails", - "campaignUpdated": "Campaign updated", - "campaignUpdated - TODO: update line above and then delete this line to mark that the translation has been fixed": "Campaign updated", - "editCustomContent": "Edit Custom Content", - "customTemplateEditor": "Custom template editor", - "save": "Save", - "saveAndLeave": "Save and leave", - "saveAndLeave - TODO: update line above and then delete this line to mark that the translation has been fixed": "Save and leave", + "campaignUpdated": "Campaña actualizada", + "editCustomContent": "Editar Contenido Personalizado", + "customTemplateEditor": "Editor de plantillas personalizado", + "save": "Guardar", + "saveAndLeave": "Guardar y salir", "copy": "Copiar", - "saveAndGoToStatus": "Save and go to status", - "saveAndGoToStatus - TODO: update line above and then delete this line to mark that the translation has been fixed": "Save and go to status", - "testSend": "Test send", + "saveAndGoToStatus": "Guardar e ir a estado", + "testSend": "Enviar test", "createRegularCampaign": "Crear Campaña Regular", - "createRssCampaign": "Create RSS Campaign", - "createTriggeredCampaign": "Create Triggered Campaign", + "createRssCampaign": "Crear Campaña RSS", + "createTriggeredCampaign": "Crear Campaña Triggered", "editRegularCampaign": "Edit Regular Campaign", "editRssCampaign": "Edit RSS Campaign", "editTriggeredCampaign": "Edit Triggered Campaign", - "template": "Template", - "template_plural": "Templates", - "customContentClonedFromTemplate": "Custom content cloned from template", - "customContentClonedFromAnotherCampaign": "Custom content cloned from another campaign", - "customContent": "Custom content", + "template": "Plantilla", + "template_plural": "Plantillas", + "customContentClonedFromTemplate": "Contenido personalizado clonado desde la plantilla", + "customContentClonedFromAnotherCampaign": "Contenido personalizado clonado desde otro campaña", + "customContent": "Contenido personalizado", "url": "URL", - "nameMustNotBeEmpty": "Name must not be empty", - "sendConfigurationMustBeSelected": "Send configuration must be selected", - "fromEmailMustNotBeEmpty": "\"From\" email must not be empty", - "templateMustBeSelected": "Template must be selected", - "campaignMustBeSelected": "Campaign must be selected", + "nameMustNotBeEmpty": "El nombre no puede estar vacío", + "sendConfigurationMustBeSelected": "Configuración del envío debe ser serleccionada", + "fromEmailMustNotBeEmpty": "\"From\" email no puede estar vacío", + "templateMustBeSelected": "La plantilla debe ser seleccionada", + "campaignMustBeSelected": "La campaña debe ser seleccionada", "typeMustBeSelected": "Type must be selected", - "urlMustNotBeEmpty": "URL must not be empty", + "urlMustNotBeEmpty": "La URL no puede estar vacía", "rssFeedUrlMustBeGiven": "RSS feed URL must be given", - "listMustBeSelected": "List must be selected", - "segmentMustBeSelected": "Segment must be selected", - "campaignCreated": "Campaign created", - "campaignCreated - TODO: update line above and then delete this line to mark that the translation has been fixed": "Campaign created", + "listMustBeSelected": "La lista debe desr seleccionada", + "segmentMustBeSelected": "El segmento debe ser seleccionado", + "campaignCreated": "Campaña creada", "rssFeedUrl": "RSS Feed Url", "name": "Nombre", "id": "ID", "subscribers": "Suscriptores", - "description": "Descripciçon", + "description": "Descripción", "namespace": "Espacio de nombres", "namespace_plural": "Espacios de nombres", "remove": "Eliminar", - "insertNewEntryBeforeThisOne": "Insert new entry before this one", - "moveUp": "Move up", - "moveDown": "Move down", - "list": "List", - "list_plural": "Lists", - "segment": "Segment", + "insertNewEntryBeforeThisOne": "Insertar nueva entrada antes de ésta", + "moveUp": "Mover arriba", + "moveDown": "Mover abajo", + "list": "Lista", + "list_plural": "Listas", + "segment": "Segmento", "useAParticularSegment": "Use a particular segment", "lists": "Listas", - "addList": "Add list", - "type": "Type", - "created": "Created", - "override": "Override", + "addList": "Añadir lista", + "type": "Tipo", + "created": "Creado", + "override": "Sobreescribir", "fromName": "\"From\" name", "fromEmailAddress": "\"From\" email address", "replytoEmailAddress": "\"Reply-to\" email address", "subjectLine": "\"Subject\" line", - "loadingSendConfiguration": "Loading send configuration ...", - "contentSource": "Content source", + "loadingSendConfiguration": "Cargando configuración de envío ...", + "contentSource": "Fuente de contenido", "selectingATemplateCreatesACampaign": "Selecting a template creates a campaign specific copy from it.", "campaign": "Campaña", "campaign_plural": "Campañas", "contentOfTheSelectedCampaignWillBeCopied": "Content of the selected campaign will be copied into this campaign.", "renderUrl": "Render URL", "ifAMessageIsSentThenThisUrlWillBePosTed": "If a message is sent then this URL will be POSTed to using Merge Tags as POST body. Use this if you want to generate the HTML message yourself.", - "deletingCampaign": "Deleting campaign ...", - "campaignDeleted": "Campaign deleted", + "deletingCampaign": "Borrando campaña ...", + "campaignDeleted": "Campaña borrada", "formCannotBeEditedBecauseTheCampaignIs": "Form cannot be edited because the campaign is currently being sent out. Wait till the sending is finished and refresh.", "thisIsTheCampaignIdDisplayedToThe": "This is the campaign ID displayed to the subscribers", - "sendSettings": "Configuración de envío", - "sendConfiguration": "Send configuration", - "sendConfiguration_plural": "Send configurations", + "sendSettings": "Ajustes de envío", + "sendConfiguration": "Configuración de envío", + "sendConfiguration_plural": "Configuraciones de envío", "customUnsubscribeUrl": "Custom unsubscribe URL", "tracking": "Tracking", "tracking - TODO: update line above and then delete this line to mark that the translation has been fixed": "Tracking", - "disableOpenedTracking": "Disable opened tracking", - "disableClickedTracking": "Disable clicked tracking", - "saveAndEditContent": "Save and edit content", - "delete": "Delete", + "disableOpenedTracking": "Desactivar seguimiento de correos abiertos", + "disableClickedTracking": "Desactivar seguimiento de clicks", + "saveAndEditContent": "Guardar y editar contenido", + "delete": "Borrar", "regular": "Regular", "triggered": "Triggered", "rss": "RSS", "idle": "Idle", - "scheduled": "Scheduled", - "paused": "Paused", - "finished": "Finished", - "inactive": "Inactive", - "active": "Active", - "sending": "Sending", - "status": "Status", + "scheduled": "Programada", + "paused": "Pausada", + "finished": "Finalizada", + "inactive": "Inactiva", + "active": "Activa", + "sending": "Enviando", + "status": "Estado", "sendingScheduled": "Sending scheduled", - "statistics": "Statistics", - "edit": "Edit", - "content": "Content", - "files": "Files", - "attachments": "Attachments", + "statistics": "Estadísticas", + "edit": "Editar", + "content": "Contentido", + "files": "Archivos", + "attachments": "Adjuntos", "triggers": "Triggers", - "share": "Share", - "createCampaign": "Create Campaign", + "share": "Compartir", + "createCampaign": "Crear Campaña", "campaigns": "Campañas", - "countries": "Countries", - "devices": "Devices", - "campaignName": "Campaign \"{{name}}\"", + "countries": "Paises", + "devices": "Dispositivos", + "campaignName": "Campaña \"{{name}}\"", "delivered": "Delivered", "deliveredEmails": "Delivered Emails", "complained": "Complained", @@ -211,13 +207,13 @@ "emailsThatBounced": "Emails that Bounced", "unsubscribed": "Unsubscribed", "subscribersThatUnsubscribed": "Subscribers that Unsubscribed", - "opened": "Opened", + "opened": "Abiertos", "clicks": "Clicks", "theseFilesArePubliclyAvailableViaHttpSo": "These files are publicly available via HTTP so that they can be linked to from the content of the campaign.", "theseFilesWillBeAttachedToTheCampaign": "These files will be attached to the campaign emails as proper attachments. This means they count towards to the eventual size of the email.", "triggerName": "Trigger \"{{name}}\"", - "create": "Create", - "campaignStatistics": "Campaign Statistics", + "create": "Crear", + "campaignStatistics": "Estadísticas de la Campaña", "total": "Total", "blacklisted": "Blacklisted", "complaints": "Complaints", @@ -226,7 +222,7 @@ "quickReports - TODO: update line above and then delete this line to mark that the translation has been fixed": "Quick Reports", "belowYouCanDownloadPremadeReportsRelated": "Below, you can download pre-made reports related to this campaign. Each link generates a CSV file that can be viewed in a spreadsheet editor. Custom reports and reports that cover more than one campaign can be created through <1>Reports functionality of Mailtrain.", "belowYouCanDownloadPremadeReportsRelated - TODO: update line above and then delete this line to mark that the translation has been fixed": "Below, you can download pre-made reports related to this campaign. Each link generates a CSV file that can be viewed in a spreadsheet editor. Custom reports and reports that cover more than one campaign can be created through <1>Reports functionality of Mailtrain.", - "uniqueVisitors": "Unique visitors", + "uniqueVisitors": "Visitantes únicos", "totalClicks": "Total clicks", "campaignLinks": "Campaign links", "subscriptionId": "Subscription ID", @@ -248,10 +244,10 @@ "distributionByCountry": "Distribucion por pais", "country": "País", "detailedStatistics": "Estadísticas detalladas", - "listOfSubscribersThatOpenedTheCampaign": "List de suscriptores que han abierto la campaña", + "listOfSubscribersThatOpenedTheCampaign": "Lista de suscriptores que han abierto la campaña", "subscriptionHasToBeSelectedToShowThe": "La suscripción debe ser seleccionada para mostrar la campaña a un usuario.", - "previewCampaignAs": "Prevista de campaña como", - "preview": "Prevista", + "previewCampaignAs": "Vista previa de campaña como", + "preview": "Vista previa", "dateMustNotBeEmpty": "La fecha no debe estar vacía", "dateIsInvalid": "La fecha es inválida", "timeMustNotBeEmpty": "El tiempo no debe estar vacío", @@ -262,38 +258,38 @@ "doYouWantToResetTheCampaign?All": "Quieres reiniciar la campaña? Todas las estadísticas se perderán.", "no": "No", "yes": "Si", - "subscribers-1": "subscribers", - "sendStatus": "Send status", + "subscribers-1": "suscriptores", + "sendStatus": "Estado de envío", "campaignIsScheduledForDelivery": "Campaign is scheduled for delivery.", "campaignIsReadyToBeSentOut": "Campaign is ready to be sent out.", - "sendLater": "Send later", - "scheduleDeliveryAtAParticularDatetime": "Schedule delivery at a particular date/time", - "date": "Date", - "time": "Time", - "enter24HourTimeInFormatHhmmEg1348": "Enter 24-hour time in format HH:MM (e.g. 13:48)", + "sendLater": "Enviar después", + "scheduleDeliveryAtAParticularDatetime": "Programar el envío a una determinada fecha/hora", + "date": "Fecha", + "time": "Hora", + "enter24HourTimeInFormatHhmmEg1348": "Introducela en formato 24 horas HH:MM (ej. 13:48)", "rescheduleSend": "Reschedule send", "scheduleSend": "Schedule send", - "send": "Send", - "viewStatistics": "View statistics", + "send": "Enviar", + "viewStatistics": "Ver estadísticas", "campaignIsBeingSentOut": "Campaign is being sent out.", - "stop": "Stop", + "stop": "Parar", "allMessagesSent!HitContinueIfYouYouWant": "All messages sent! Hit \"Continue\" if you want to send this campaign to new subscribers.", - "continue": "Continue", - "reset": "Reset", - "yourCampaignIsCurrentlyDisabledClick": "Your campaign is currently disabled. Click Enable button to start enable it.", - "enable": "Enable", - "yourCampaignIsEnabledAndSendingMessages": "Your campaign is enabled and sending messages.", - "disable": "Disable", - "campaignStatus": "Campaign Status", - "targetListssegments": "Target lists/segments", + "continue": "Continuar", + "reset": "Restablecer", + "yourCampaignIsCurrentlyDisabledClick": "Tu campaña esta desactivada. Pulsa el botón Activar para iniciar su activación.", + "enable": "Activar", + "yourCampaignIsEnabledAndSendingMessages": "Tu campaña está activa y está enviando mensajes.", + "disable": "Desactivar", + "campaignStatus": "Estado de Campaña", + "targetListssegments": "Objetivo listas/segmentos", "ifANewEntryIsFoundFromCampaignFeedANew": "If a new entry is found from campaign feed a new subcampaign is created of that entry and it will be listed here", - "sendingTestEmail": "Sending test email", - "subscriptionHasToBeSelected": "Subscription has to be selected.", - "sendTestEmail": "Send Test Email", - "cancel": "Cancel", - "subscription": "Subscription", - "valuesMustNotBeEmpty": "Values must not be empty", - "valueMustBeANonnegativeNumber": "Value must be a non-negative number", + "sendingTestEmail": "Enviando email de prueba", + "subscriptionHasToBeSelected": "La suscripción debe ser seleccionada.", + "sendTestEmail": "Enviar email de prueba", + "cancel": "Cancelar", + "subscription": "Suscripción", + "valuesMustNotBeEmpty": "Los valores no pueden estar vacíos", + "valueMustBeANonnegativeNumber": "El valor tiene que ser un número positivo", "sourceCampaignMustNotBeEmpty": "Source campaign must not be empty", "triggerUpdated": "Trigger updated", "triggerUpdated - TODO: update line above and then delete this line to mark that the translation has been fixed": "Trigger updated", @@ -301,86 +297,78 @@ "triggerCreated - TODO: update line above and then delete this line to mark that the translation has been fixed": "Trigger created", "deletingTrigger": "Deleting trigger ...", "triggerDeleted": "Trigger deleted", - "editTrigger": "Edit Trigger", - "createTrigger": "Create Trigger", - "entity": "Entity", + "editTrigger": "Editar Trigger", + "createTrigger": "Crear Trigger", + "entity": "Entidad", "selectTheTypeOfTheTriggerRule": "Select the type of the trigger rule.", "triggerFires": "Trigger fires", - "event": "Event", + "event": "Evento", "selectTheEventThatTriggersSendingThe": "Select the event that triggers sending the campaign.", - "enabled": "Enabled", - "latestOpen": "Latest open", - "latestClick": "Latest click", - "notOpened": "Not opened", - "notClicked": "Not clicked", - "daysAfter": "Days after", + "enabled": "Activado", + "latestOpen": "Última apertura", + "latestClick": "Último click", + "notOpened": "No abiertos", + "notClicked": "No clicked", + "daysAfter": "Días después", "welcomeToMailtrain": "Bienvenido a Mailtrain...", - "close": "Close", - "countFileAdded": "{{count}} file added", - "countFileAdded_plural": "{{count}} files added", - "countFileReplaced": "{{count}} file replaced", - "countFileReplaced_plural": "{{count}} files replaced", - "countFileIgnored": "{{count}} file ignored", - "countFileIgnored_plural": "{{count}} files ignored", - "countFileUploaded": "{{count}} file uploaded", - "countFileUploaded_plural": "{{count}} files uploaded", + "close": "Cerrar", + "countFileAdded": "{{count}} archivo añadido", + "countFileAdded_plural": "{{count}} archivos añadidos", + "countFileReplaced": "{{count}} archivo reemplazado", + "countFileReplaced_plural": "{{count}} archivos reemplazados", + "countFileIgnored": "{{count}} archivo ignorado", + "countFileIgnored_plural": "{{count}} archivos ignorados", + "countFileUploaded": "{{count}} archivo subido", + "countFileUploaded_plural": "{{count}} archivos subidos", "uploadingCountFile": "Uploading {{count}} file", "uploadingCountFile_plural": "Uploading {{count}} files", - "fileUploadFailed": "File upload failed:", - "noFilesToUpload": "No files to upload", - "deletingFile": "Deleting file ...", - "fileDeleted": "File deleted", - "deleteFileFailed": "Delete file failed:", - "size": "Size", - "download": "Download", - "confirmFileDeletion": "Confirm file deletion", - "areYouSureYouWantToDeleteTheFile?": "Are you sure you want to delete the file?", + "fileUploadFailed": "Subida de archivo fallida:", + "noFilesToUpload": "No hay archivos para subir", + "deletingFile": "Borrando archivo ...", + "fileDeleted": "Archivo borrado", + "deleteFileFailed": "Ha fallado el borrado de archivo:", + "size": "Tamaño", + "download": "Descargar", + "confirmFileDeletion": "Confirmar borrado de archivo", + "areYouSureYouWantToDeleteTheFile?": "¿Estás seguro que quieres borrar este archivo?", "dropCountFile": "Drop {{count}} file", "dropCountFile_plural": "Drop {{count}} files", "dropFilesHere": "Drop files here", - "loading": "Loading ...", - "openCalendar": "Open calendar", - "select": "Select", + "loading": "Cargando ...", + "openCalendar": "Abrir calendario", + "select": "Seleccionar", "someoneElseHasIntroducedModificationIn": "Someone else has introduced modification in the meantime. Refresh your page to start anew with fresh data. Please note that your changes will be lost.", "itSeemsThatSomeoneElseHasDeletedThe": "It seems that someone else has deleted the target namespace in the meantime. Refresh your page to start anew with fresh data. Please note that your changes will be lost.", "itSeemsThatSomeoneElseHasDeletedThe-1": "It seems that someone else has deleted the entity in the meantime.", - "customForms": "Custom forms", - "report": "Report", - "report_plural": "Reports", - "reportTemplate": "Report template", - "reportTemplate_plural": "Report templates", - "mosaicoTemplate": "Mosaico template", - "mosaicoTemplate_plural": "Mosaico templates", - "cannoteDeleteNameDueToTheFollowing": "Cannote delete \"{{name}}\" due to the following dependencies:", - "andMore": "... and more", - "confirmDeletion": "Confirm Deletion", - "areYouSureYouWantToDeleteName?": "Are you sure you want to delete \"{{name}}\"?", - "namespaceMustBeSelected": "Namespace must be selected", + "customForms": "Formularios personalizados", + "report": "Informe", + "report_plural": "Informes", + "reportTemplate": "Plantilla de informe", + "reportTemplate_plural": "Plantillas de informe", + "mosaicoTemplate": "Plantilla Mosaico", + "mosaicoTemplate_plural": "Plantillas Mosaico", + "cannoteDeleteNameDueToTheFollowing": "No pudo borrarse \"{{name}}\" debido a las siguientes dependencias:", + "andMore": "... y más", + "confirmDeletion": "Confirmar borrado", + "areYouSureYouWantToDeleteName?": "¿Estás seguro que quieres borrar \"{{name}}\"?", + "namespaceMustBeSelected": "Namespace debe ser seleccionado", "sourceOnGitHub": "Source on GitHub", - "sendTestEmail-1": "Send test e-mail", - "sendTestEmail-1 - TODO: update line above and then delete this line to mark that the translation has been fixed": "Send test e-mail", - "showHtml": "Show HTML", - "showHtml - TODO: update line above and then delete this line to mark that the translation has been fixed": "Show HTML", - "maximizeEditor": "Maximize editor", - "maximizeEditor - TODO: update line above and then delete this line to mark that the translation has been fixed": "Maximize editor", + "sendTestEmail-1": "Enviar e-mail de prueba", + "showHtml": "Mostrar HTML", + "maximizeEditor": "Maximizar editor", "mjml": "MJML", "html": "HTML", "disableWordWrap": "Disable word wrap", "disableWordWrap - TODO: update line above and then delete this line to mark that the translation has been fixed": "Disable word wrap", "enableWordWrap": "Enable word wrap", "enableWordWrap - TODO: update line above and then delete this line to mark that the translation has been fixed": "Enable word wrap", - "hidePreview": "Hide preview", - "hidePreview - TODO: update line above and then delete this line to mark that the translation has been fixed": "Hide preview", - "showPreview": "Show preview", - "showPreview - TODO: update line above and then delete this line to mark that the translation has been fixed": "Show preview", - "showMjml": "Show MJML", - "showMjml - TODO: update line above and then delete this line to mark that the translation has been fixed": "Show MJML", - "countEntriesSelected": "{{ count }} entries selected.", - "customFormMustBeSelected": "Custom form must be selected", - "listUpdated": "List updated", - "listUpdated - TODO: update line above and then delete this line to mark that the translation has been fixed": "List updated", - "listCreated": "List created", - "listCreated - TODO: update line above and then delete this line to mark that the translation has been fixed": "List created", + "hidePreview": "Ocultar vista previa", + "showPreview": "Mostrar vista previa", + "showMjml": "Mostrar MJML", + "countEntriesSelected": "{{ count }} entradas seleccionadas.", + "customFormMustBeSelected": "El formulario personalizado debe ser seleccionado", + "listUpdated": "Lista actualizada", + "listCreated": "Lista creada", "onestepIeNoEmailWithConfirmationLink": "One-step (i.e. no email with confirmation link)", "onestepWithUnsubscriptionFormIeNoEmail": "One-step with unsubscription form (i.e. no email with confirmation link)", "twostepIeAnEmailWithConfirmationLinkWill": "Two-step (i.e. an email with confirmation link will be sent)", @@ -400,17 +388,17 @@ "representationOfSubscribersName - TODO: update line above and then delete this line to mark that the translation has been fixed": "Representation of subscriber's name", "selectHowTheNameOfASubscriberWillBe": "Select how the name of a subscriber will be represented. The fields in list will be created accordingly. You can always adjust the choice later by editing the list fields. If you select \"Empty / Custom\", provide a template below in \"Recipients name template\" that will be used as subscriber's name as it will appear in the emails' \"To\" field.", "selectHowTheNameOfASubscriberWillBe - TODO: update line above and then delete this line to mark that the translation has been fixed": "Select how the name of a subscriber will be represented. The fields in list will be created accordingly. You can always adjust the choice later by editing the list fields. If you select \"Empty / Custom\", provide a template below in \"Recipients name template\" that will be used as subscriber's name as it will appear in the emails' \"To\" field.", - "deletingList": "Deleting list ...", - "listDeleted": "List deleted", - "editList": "Edit List", - "createList": "Create List", + "deletingList": "Borrando lista ...", + "listDeleted": "Lista borrada", + "editList": "Editar Lista", + "createList": "Crear Lista", "thisIsTheListIdDisplayedToTheSubscribers": "This is the list ID displayed to the subscribers", - "contactEmail": "Contact email", + "contactEmail": "Email de contacto", "contactEmailUsedInSubscriptionFormsAnd": "Contact email used in subscription forms and emails that are sent out. If not filled in, the admin email from the global settings will be used.", "homepage": "Homepage", "homepageUrlUsedInSubscriptionFormsAnd": "Homepage URL used in subscription forms and emails that are sent out. If not filled in, the default homepage from global settings will be used.", "sendConfigurationThatWillBeUsedFor": "Send configuration that will be used for sending out subscription-related emails.", - "forms": "Forms", + "forms": "Formularios", "webAndEmailFormsAndTemplatesUsedIn": "Web and email forms and templates used in subscription management process.", "allowPublicUsersToSubscribeThemselves": "Allow public users to subscribe themselves", "unsubscription": "Unsubscription", @@ -426,23 +414,21 @@ "defaultValueIsNotAProperlyFormatted": "Default value is not a properly formatted birthday date", "defaultValueIsNotOneOfTheAllowedOptions": "Default value is not one of the allowed options", "errorOnLineLine": "Error on line {{ line }}", - "fieldUpdated": "Field updated", - "fieldUpdated - TODO: update line above and then delete this line to mark that the translation has been fixed": "Field updated", - "fieldCreated": "Field created", - "fieldCreated - TODO: update line above and then delete this line to mark that the translation has been fixed": "Field created", + "fieldUpdated": "Campo actualizado", + "fieldCreated": "Campo creado", "notVisible": "Not visible", - "endOfList": "End of list", - "fieldSettings": "Field settings", - "defaultValue": "Default value", - "defaultValueUsedWhenTheFieldIsEmpty": "Default value used when the field is empty.", - "options": "Options", - "dateFormat": "Date format", + "endOfList": "Final de lista", + "fieldSettings": "Ajustes de Campo", + "defaultValue": "Valor por defecto", + "defaultValueUsedWhenTheFieldIsEmpty": "Valor por defecto utilizado cuando el campo está vacío.", + "options": "Opciones", + "dateFormat": "Formato de fecha", "mmddyyyy": "MM/DD/YYYY", "ddmmyyyy": "DD/MM/YYYY", "mmdd": "MM/DD", "ddmm": "DD/MM", "mergeTag": "Merge Tag", - "group": "Group", + "group": "Grupo", "belongsToCheckboxDropdownRadioGroup": "Belongs to checkbox / dropdown / radio group", "belongsToCheckboxDropdownRadioGroup - TODO: update line above and then delete this line to mark that the translation has been fixed": "Belongs to checkbox / dropdown / radio group", "containingGroup": "Containing group", @@ -456,12 +442,12 @@ "uncheckedLabel - TODO: update line above and then delete this line to mark that the translation has been fixed": "Unchecked label", "labelThatWillBeDisplayedInListAnd-1": "Label that will be displayed in list and subscription when the option is unchecked", "labelThatWillBeDisplayedInListAnd-1 - TODO: update line above and then delete this line to mark that the translation has been fixed": "Label that will be displayed in list and subscription when the option is unchecked", - "deletingField": "Deleting field ...", - "fieldDeleted": "Field deleted", - "editField": "Edit Field", - "createField": "Create Field", + "deletingField": "Borrando campo ...", + "fieldDeleted": "Campo borrado", + "editField": "Editar Campo", + "createField": "Crear Campo", "mergeTag-1": "Merge tag", - "fieldOrder": "Field order", + "fieldOrder": "Orden del Campo", "listingsBefore": "Listings (before)", "selectTheFieldBeforeWhichThisFieldShould": "Select the field before which this field should appear in listings. To exclude the field from listings, select \"Not visible\".", "subscriptionFormBefore": "Subscription form (before)", @@ -473,21 +459,21 @@ "defaultKeyEgAuUsedWhenTheFieldIsEmpty": "Default key (e.g. <1>au used when the field is empty.')", "youCanControlTheAppearanceOfTheMergeTag-1": "You can control the appearance of the merge tag with this template. The template\n uses handlebars syntax and you can find all values from <1>{'{{values}}'} array.\n Each entry in the array is an object with attributes <3>key and <5>label.\n For example <7>{'{{#each values}} {{this.value}} {{/each}}'}. If template is not defined then\n multiple values are joined with commas.", "youCanUseThisTemplateToRenderJsonValues": "You can use this template to render JSON values (if the JSON is an array then the array is\n exposed as <1>values, otherwise you can access the JSON keys directly).", - "text": "Text", + "text": "Texto", "website": "Website", - "multilineText": "Multi-line text", + "multilineText": "Texto mulilínea", "gpgPublicKey": "GPG Public Key", - "number": "Number", + "number": "Numero", "checkboxesFromOptionFields": "Checkboxes (from option fields)", "radioButtonsFromOptionFields": "Radio Buttons (from option fields)", "dropDownFromOptionFields": "Drop Down (from option fields)", "radioButtonsEnumerated": "Radio Buttons (enumerated)", "dropDownEnumerated": "Drop Down (enumerated)", - "birthday": "Birthday", + "birthday": "Cumpleaños", "jsonValueForCustomRendering": "JSON value for custom rendering", - "option": "Option", - "fields": "Fields", - "thePlaintextVersionForThisEmail": "The plaintext version for this email", + "option": "Opción", + "fields": "Campos", + "thePlaintextVersionForThisEmail": "La versión en texto plano para este email", "layout": "Layout", "formInputStyle": "Form Input Style", "thisCssStylesheetDefinesTheAppearanceOf": "This CSS stylesheet defines the appearance of form input elements and alerts", @@ -513,110 +499,105 @@ "mailUnsubscriptionConfirmedMjml": "Mail - Unsubscription Confirmed (MJML)", "mailUnsubscriptionConfirmedText": "Mail - Unsubscription Confirmed (Text)", "webManualUnsubscribeNotice": "Web - Manual Unsubscribe Notice", - "privacyPolicy": "Privacy policy", + "privacyPolicy": "Política de privacidad", "general": "General", - "subscribe": "Subscribe", - "manage": "Manage", - "unsubscribe": "Unsubscribe", - "dataProtection": "Data protection", - "listOfErrorsInTemplates": "List of errors in templates", - "customFormsUpdated": "Custom forms updated", - "customFormsUpdated - TODO: update line above and then delete this line to mark that the translation has been fixed": "Custom forms updated", - "customFormsCreated": "Custom forms created", - "customFormsCreated - TODO: update line above and then delete this line to mark that the translation has been fixed": "Custom forms created", - "deletingForm": "Deleting form ...", - "formDeleted": "Form deleted", - "editCustomForms": "Edit Custom Forms", - "createCustomForms": "Create Custom Forms", - "formsPreview": "Forms Preview", + "subscribe": "Suscribir", + "manage": "Gestionar", + "unsubscribe": "Desuscribir", + "dataProtection": "Protección de datos", + "listOfErrorsInTemplates": "Listado de errores en plantillas", + "customFormsUpdated": "Formularios personalizados actualizados", + "customFormsCreated": "Formularios personalizados creados", + "deletingForm": "Borrando formulario ...", + "formDeleted": "Formulario borrado", + "editCustomForms": "Editar Formularios Personalizados", + "createCustomForms": "Crear Formularios Personalizados", + "formsPreview": "Vista previa de Formularios", "listToPreviewOn": "List To Preview On", "selectListWhoseFieldsWillBeUsedToPreview": "Select list whose fields will be used to preview the forms.", "noteTheseLinksAreSolelyForAQuickPreview": "Note: These links are solely for a quick preview. To get the address of the subscription form, go to the list's subscribers and click on \"Subscription Form\".", - "formPreview": "Form preview:", - "refresh": "Refresh", - "closePreview": "Close preview", - "closePreview - TODO: update line above and then delete this line to mark that the translation has been fixed": "Close preview", - "templates": "Templates", + "formPreview": "Vista previa de formulario personalizado:", + "refresh": "Refrescar", + "closePreview": "Cerrar vista previa", + "templates": "Plantillas", "customFormsUseMjmlForFormattingSeeThe": "Custom forms use MJML for formatting. See the MJML documentation <1>here", - "createCustomForm": "Create Custom Form", - "fileMustBeSelected": "File must be selected", - "csvDelimiterMustNotBeEmpty": "CSV delimiter must not be empty", - "emailMappingHasToBeProvided": "Email mapping has to be provided", - "importSaved": "Import saved", - "file": "File", - "delimiter": "Delimiter", + "createCustomForm": "Crear Formulario Personalizado", + "fileMustBeSelected": "Debes seleccionar un archivo", + "csvDelimiterMustNotBeEmpty": "El delimitador del CSV no puede estar vacío", + "emailMappingHasToBeProvided": "Debes completar el mapeo de Email", + "importSaved": "Importación guardada", + "file": "Archivo", + "delimiter": "Delimitador", "preparationInProgressPleaseWaitTillItIs": "Preparation in progress. Please wait till it is done or visit this page later.", - "––Select ––": "–– Select ––", + "––Select ––": "–– Selecciona ––", "eg": "e.g.:", "checkImportedEmails": "Check imported emails", - "mapping": "Mapping", - "saveAndEditSettings": "Save and edit settings", - "saveAndRun": "Save and Run", - "deletingImport": "Deleting import ...", - "importDeleted": "Import deleted", - "editImport": "Edit Import", - "createImport": "Create Import", - "source": "Source", - "csvFile": "CSV file", - "preparing": "Preparing", - "stopping": "Stopping", - "ready": "Ready", - "preparationFailed": "Preparation failed", - "running": "Running", - "failed": "Failed", - "starting": "Starting", - "basicImportOfSubscribers": "Basic import of subscribers", - "unsubscribeEmails": "Unsubscribe emails", - "lastRun": "Last run", - "detailedStatus": "Detailed status", - "imports": "Imports", - "row": "Row", - "reason": "Reason", - "importRunStatus": "Import Run Status", - "importName": "Import name", - "importSource": "Import source", - "runStarted": "Run started", - "runFinished": "Run finished", - "runStatus": "Run status", + "mapping": "Mapeo", + "saveAndEditSettings": "Guardar y editar ajustes", + "saveAndRun": "Guardar y ejecutar", + "deletingImport": "Borrando importación ...", + "importDeleted": "Importación borrada", + "editImport": "Editar Importación", + "createImport": "Crear Importación", + "source": "Origen", + "csvFile": "Archivo CSV", + "preparing": "Preparando", + "stopping": "Parando", + "ready": "Listo", + "preparationFailed": "La preparación falló", + "running": "Ejecutando", + "failed": "Fallos", + "starting": "Iniciando", + "basicImportOfSubscribers": "Importación básica de suscriptores", + "unsubscribeEmails": "Desuscribir emails", + "lastRun": "Última ejecución", + "detailedStatus": "Estado detallado", + "imports": "Importaciones", + "row": "Fila", + "reason": "Razón", + "importRunStatus": "Estado de ejecución de la importación", + "importName": "Nombre de la importación", + "importSource": "Fuente de la importación", + "runStarted": "Iniciada ejecución", + "runFinished": "Finalizada ejecución", + "runStatus": "Estado de ejecución", "processedEntries": "Processed entries", - "newEntries": "New entries", - "failedEntries": "Failed entries", + "newEntries": "Nuevas entradas", + "failedEntries": "Entradas fallidas", "error": "Error", - "failedRows": "Failed Rows", + "failedRows": "Filas fallidas", "started": "Started", - "processed": "Processed", - "new": "New", - "importStatus": "Import Status", - "actions": "Actions", - "start": "Start", - "importRuns": "Import Runs", - "segments": "Segments", - "customForms-1": "Custom Forms", - "listName": "List \"{{name}}\"", - "fieldName-1": "Field \"{{name}}\"", - "segmentName": "Segment \"{{name}}\"", - "importName-1": "Import \"{{name}}\"", - "run": "Run", - "customFormsName": "Custom Forms \"{{name}}\"", - "newRule": "New rule", - "segmentUpdated": "Segment updated", - "segmentUpdated - TODO: update line above and then delete this line to mark that the translation has been fixed": "Segment updated", - "segmentCreated": "Segment created", - "segmentCreated - TODO: update line above and then delete this line to mark that the translation has been fixed": "Segment created", - "deletingSegment": "Deleting segment ...", - "segmentDeleted": "Segment deleted", - "editSegment": "Edit Segment", - "createSegment": "Create Segment", - "segmentOptions": "Segment Options", + "processed": "Procesados", + "new": "Nuevo", + "importStatus": "Estado de Importación", + "actions": "Acciones", + "start": "Iniciar", + "importRuns": "Ejecuciones de importación", + "segments": "Segmentos", + "customForms-1": "Formularios Personalizados", + "listName": "Lista \"{{name}}\"", + "fieldName-1": "Campo \"{{name}}\"", + "segmentName": "Segmento \"{{name}}\"", + "importName-1": "Importación \"{{name}}\"", + "run": "Ejecutar", + "customFormsName": "Formularios Personalizados \"{{name}}\"", + "newRule": "Nueva regla", + "segmentUpdated": "Segmento actualizado", + "segmentCreated": "Segmento creado", + "deletingSegment": "Borrando segmento ...", + "segmentDeleted": "Segmento borrado", + "editSegment": "Editar Segmento", + "createSegment": "Crear Segmento", + "segmentOptions": "Opciones de Segmento", "toplevelMatchType": "Toplevel match type", - "addCompositeRule": "Add Composite Rule", - "addRule": "Add Rule", - "rules": "Rules", - "allRulesMustMatch": "All rules must match", - "atLeastOneRuleMustMatch": "At least one rule must match", - "noRuleMayMatch": "No rule may match", - "equalTo": "Equal to", - "valueInColumnColNameIsEqualToValue": "Value in column \"{{colName}}\" is equal to \"{{value}}\"", + "addCompositeRule": "Añadir Regla de Composición", + "addRule": "Añadir Regla", + "rules": "Reglas", + "allRulesMustMatch": "Deben cumplirse todas las reglas", + "atLeastOneRuleMustMatch": "Al menos una regla debe cumplirse", + "noRuleMayMatch": "Ninguna regla debe cumplirse", + "equalTo": "Igual a", + "valueInColumnColNameIsEqualToValue": "Valor en columna \"{{colName}}\" es igual a \"{{value}}\"", "matchWithSqlLike": "Match (with SQL LIKE)", "valueInColumnColNameMatchesWithSqlLike": "Value in column \"{{colName}}\" matches (with SQL LIKE) \"{{value}}\"", "matchWithRegularExpressions": "Match (with regular expressions)", @@ -630,24 +611,24 @@ "alphabeticallyAfterOrEqualTo": "Alphabetically after or equal to", "valueInColumnColNameIsAlphabetically-3": "Value in column \"{{colName}}\" is alphabetically after or equal to \"{{value}}\"", "valueInColumnColNameIsEqualToValue-1": "Value in column \"{{colName}}\" is equal to {{value}}", - "lessThan": "Less than", - "valueInColumnColNameIsLessThanValue": "Value in column \"{{colName}}\" is less than {{value}}", - "lessThanOrEqualTo": "Less than or equal to", - "valueInColumnColNameIsLessThanOrEqualTo": "Value in column \"{{colName}}\" is less than or equal to {{value}}", - "greaterThan": "Greater than", - "valueInColumnColNameIsGreaterThanValue": "Value in column \"{{colName}}\" is greater than {{value}}", - "greaterThanOrEqualTo": "Greater than or equal to", - "valueInColumnColNameIsGreaterThanOrEqual": "Value in column \"{{colName}}\" is greater than or equal to {{value}}", + "lessThan": "Menor que", + "valueInColumnColNameIsLessThanValue": "Valor en columna \"{{colName}}\" es menor que {{value}}", + "lessThanOrEqualTo": "Menor o igual que", + "valueInColumnColNameIsLessThanOrEqualTo": "Valor en columna \"{{colName}}\" es menor o igual que {{value}}", + "greaterThan": "Mayor que", + "valueInColumnColNameIsGreaterThanValue": "Valor en columna \"{{colName}}\" es mayor que {{value}}", + "greaterThanOrEqualTo": "Mayor o igual que", + "valueInColumnColNameIsGreaterThanOrEqual": "Valor en columna \"{{colName}}\" es mayor o igual que {{value}}", "on": "On", - "dateInColumnColNameIsValue": "Date in column \"{{colName}}\" is {{value}}", - "before": "Before", - "dateInColumnColNameIsBeforeValue": "Date in column \"{{colName}}\" is before {{value}}", - "beforeOrOn": "Before or on", - "dateInColumnColNameIsBeforeOrOnValue": "Date in column \"{{colName}}\" is before or on {{value}}", - "after": "After", - "dateInColumnColNameIsAfterValue": "Date in column \"{{colName}}\" is after {{value}}", - "afterOrOn": "After or on", - "dateInColumnColNameIsAfterOrOnValue": "Date in column \"{{colName}}\" is after or on {{value}}", + "dateInColumnColNameIsValue": "Fecha en columna \"{{colName}}\" es {{value}}", + "before": "Anterior", + "dateInColumnColNameIsBeforeValue": "Fecha en columna \"{{colName}}\" es anterior a {{value}}", + "beforeOrOn": "Anterior o igual", + "dateInColumnColNameIsBeforeOrOnValue": "Fecha en columna \"{{colName}}\" es anterior o igual a {{value}}", + "after": "Posterior", + "dateInColumnColNameIsAfterValue": "Fecha en columna \"{{colName}}\" es posterior a {{value}}", + "afterOrOn": "Posterior o igual", + "dateInColumnColNameIsAfterOrOnValue": "Fecha en columna \"{{colName}}\" es posterior o igual a {{value}}", "onXthDayBeforeafterCurrentDate": "On x-th day before/after current date", "dateInColumnColNameIsTheCurrentDate": "Date in column \"{{colName}}\" is the current date", "dateInColumnColNameIsTheValuethDayAfter": "Date in column \"{{colName}}\" is the {{value}}-th day after the current date", @@ -668,11 +649,11 @@ "dateInColumnColNameIsAfterOrOnTheCurrent": "Date in column \"{{colName}}\" is after or on the current date", "dateInColumnColNameIsAfterOrOnTheValueth": "Date in column \"{{colName}}\" is after or on the {{value}}-th day after the current date", "dateInColumnColNameIsAfterOrOnTheValueth-1": "Date in column \"{{colName}}\" is after or on the {{value}}-th day before the current date", - "isSelected": "Is selected", - "valueInColumnColNameIsSelected": "Value in column \"{{colName}}\" is selected", - "isNotSelected": "Is not selected", - "valueInColumnColNameIsNotSelected": "Value in column \"{{colName}}\" is not selected", - "keyEqualTo": "Key equal to", + "isSelected": "Está seleccionado", + "valueInColumnColNameIsSelected": "Valor en columna \"{{colName}}\" está seleccionado", + "isNotSelected": "No está seleccionado", + "valueInColumnColNameIsNotSelected": "Valor en columna \"{{colName}}\" no está seleccionado", + "keyEqualTo": "Clave igual a", "theSelectedKeyInColumnColNameIsEqualTo": "The selected key in column \"{{colName}}\" is equal to \"{{value}}\"", "keyMatchWithSqlLike": "Key match (with SQL LIKE)", "theSelectedKeyInColumnColNameMatchesWith": "The selected key in column \"{{colName}}\" matches (with SQL LIKE) \"{{value}}\"", @@ -686,136 +667,127 @@ "theSelectedKeyInColumnColNameIs-2": "The selected key in column \"{{colName}}\" is alphabetically after \"{{value}}\"", "keyAlphabeticallyAfterOrEqualTo": "Key alphabetically after or equal to", "theSelectedKeyInColumnColNameIs-3": "The selected key in column \"{{colName}}\" is alphabetically after or equal to \"{{value}}\"", - "value": "Value", - "valueMustNotBeEmpty": "Value must not be empty", - "valueMustBeANumber": "Value must be a number", - "numberOfDays": "Number of days", - "beforeAfter": "Before/After", - "beforeCurrentDate": "Before current date", - "afterCurrentDate": "After current date", + "value": "Valor", + "valueMustNotBeEmpty": "El valor no puede estar vacío", + "valueMustBeANumber": "El valor debe ser un número", + "numberOfDays": "Número de días", + "beforeAfter": "Antes/Después", + "beforeCurrentDate": "Antes de la fecha actual", + "afterCurrentDate": "Después de la fecha actual", "numberOfDaysMustNotBeEmpty": "Number of days must not be empty", "numberOfDaysMustBeANumber": "Number of days must be a number", - "emailAddress-1": "Email address", + "emailAddress-1": "Dirección de email", "signupCountry": "Signup country", "signUpDate": "Sign up date", - "testUser": "Test user", - "testUser - TODO: update line above and then delete this line to mark that the translation has been fixed": "Test user", - "fieldMustBeSelected": "Field must be selected", - "field": "Field", + "testUser": "Usuario de prueba", + "fieldMustBeSelected": "El campo debe ser seleccionado", + "field": "Campo", "select-1": "-- Select --", "ruleOptions": "Rule Options", "ok": "OK", - "anotherSubscriptionWithTheSameEmail": "Another subscription with the same email already exists.", - "subscriptionUpdated": "Subscription updated", - "subscriptionUpdated - TODO: update line above and then delete this line to mark that the translation has been fixed": "Subscription updated", - "subscriptionCreated": "Subscription created", - "subscriptionCreated - TODO: update line above and then delete this line to mark that the translation has been fixed": "Subscription created", + "anotherSubscriptionWithTheSameEmail": "Otra suscripción con el mismo email existía previamente.", + "subscriptionUpdated": "Suscripción actualizada", + "subscriptionCreated": "Suscripción creada", "itSeemsThatAnotherSubscriptionWithThe": "It seems that another subscription with the same email has been created in the meantime. Refresh your page to start anew. Please note that your changes will be lost.", - "notSelected": "Not selected", - "areYouSureYouWantToDeleteSubscriptionFor": "Are you sure you want to delete subscription for \"{{email}}\"?", - "deletingSubscription": "Deleting subscription ...", - "subscriptionDeleted": "Subscription deleted", - "editSubscription": "Edit Subscription", - "createSubscription": "Create Subscription", + "notSelected": "No seleccionado", + "areYouSureYouWantToDeleteSubscriptionFor": "¿Estás seguro que quieres borrar las suscripciones de \"{{email}}\"?", + "deletingSubscription": "Borrando suscripción ...", + "subscriptionDeleted": "Suscripción borrada", + "editSubscription": "Editar Suscripción", + "createSubscription": "Crear Suscripción", "timezone": "Timezone", - "subscriptionStatus": "Subscription status", - "testUser?": "Test user?", + "subscriptionStatus": "Estado de suscripción", + "testUser?": "¿Usuario de prueba?", "ifCheckedThenThisSubscriptionCanBeUsed": "If checked then this subscription can be used for previewing campaign messages", - "subscribed": "Subscribed", - "unubscribed": "Unubscribed", - "erased": "[ERASED]", - "confirmUnsubscription": "Confirm Unsubscription", - "areYouSureYouWantToUnsubscribeEmail?": "Are you sure you want to unsubscribe {{email}}?", - "unsubscribingEmail": "Unsubscribing {{email}}", - "emailUnsubscribed": "{{email}} unsubscribed", - "confirmEmailBlacklisting": "Confirm Email Blacklisting", - "areYouSureYouWantToBlacklistEmail?": "Are you sure you want to blacklist {{email}}?", + "subscribed": "Suscrito", + "unubscribed": "Desuscrito", + "erased": "[BORRADO]", + "confirmUnsubscription": "Confirmar Desuscripción", + "areYouSureYouWantToUnsubscribeEmail?": "¿Estás seguro que quieres desuscribir {{email}}?", + "unsubscribingEmail": "Desuscribir {{email}}", + "emailUnsubscribed": "{{email}} desuscrito", + "confirmEmailBlacklisting": "Confirmar Email Blacklisting", + "areYouSureYouWantToBlacklistEmail?": "¿Estás seguro que quieres añadir a la lista negra {{email}}?", "blacklistingEmail": "Blacklisting {{email}}", "emailBlacklisted": "{{email}} blacklisted", - "allSubscriptions": "All subscriptions", - "subscriptionForm": "Subscription Form", - "exportAsCsv": "Export as CSV", - "addSubscriber": "Add Subscriber", - "usernameOrEmailMustNotBeEmpty": "Username or email must not be empty", - "processing": "Processing ...", - "ifTheUsernameEmailExistsInTheSystem": "If the username / email exists in the system, password reset link will be sent to the registered email.", - "pleaseEnterYourUsernameEmailAndTryAgain": "Please enter your username / email and try again.", - "passwordReset": "Password Reset", - "pleaseProvideTheUsernameOrEmailAddress": "Please provide the username or email address that is registered with your Mailtrain account.", - "weWillSendYouAnEmailThatWillAllowYouTo": "We will send you an email that will allow you to reset your password.", - "usernameOrEmail": "Username or email", - "sendEmail": "Send email", - "userNameMustNotBeEmpty": "User name must not be empty", - "passwordMustNotBeEmpty": "Password must not be empty", - "verifyingCredentials": "Verifying credentials ...", - "pleaseEnterYourCredentialsAndTryAgain": "Please enter your credentials and try again.", - "invalidUsernameOrPassword": "Invalid username or password.", + "allSubscriptions": "Todas las suscripciones", + "subscriptionForm": "Formulario de Suscripción", + "exportAsCsv": "Exportar como CSV", + "addSubscriber": "Añadir suscriptor", + "usernameOrEmailMustNotBeEmpty": "El nombre de usuario y email no pueden estar vacíos", + "processing": "Procesando ...", + "ifTheUsernameEmailExistsInTheSystem": "Si el nombre de usuario / email existe en el sistema, el enlace para reestablecer contraseña será enviado al email registrado.", + "pleaseEnterYourUsernameEmailAndTryAgain": "Por favor introduce tu nombre de usuario / email y vuélvelo a intentar.", + "passwordReset": "Reestablecer contraseña", + "pleaseProvideTheUsernameOrEmailAddress": "Por favor utiliza el nombre de usuario o email que esté registrado en tu cuenta de Mailtrain.", + "weWillSendYouAnEmailThatWillAllowYouTo": "Te enviaremos un email que te permitirá reestablecer tu contraseña.", + "usernameOrEmail": "Nombre de usuario o email", + "sendEmail": "Enviar email", + "userNameMustNotBeEmpty": "El nombre de usuario no puede estar vacío", + "passwordMustNotBeEmpty": "La contraseña no puede estar vacía", + "verifyingCredentials": "Verificando credenciales ...", + "pleaseEnterYourCredentialsAndTryAgain": "Por favor introduce tus credenciales e inténtalo de nuevo.", + "invalidUsernameOrPassword": "Nombre de usuario o contraseña inválida.", "forgotYourPassword?": "Olvidaste tu contraseña?", "signIn": "Iniciar sesión", "username": "Usuario", "password": "Contraseña", "rememberMe": "Recuérdame", - "resettingPassword": "Resetting password ...", - "passwordReset-1": "Password reset", - "yourPasswordCannotBeReset": "Your password cannot be reset.", - "thePasswordResetTokenHasExpired": "The password reset token has expired.", + "resettingPassword": "Reestableciendo contraseña ...", + "passwordReset-1": "Reestablecida contraseña", + "yourPasswordCannotBeReset": "Tu contraseña no pudo ser reestablecida.", + "thePasswordResetTokenHasExpired": "El token para resetear tu contraseña ha caducado.", "clickHereToRequestANewPasswordResetLink": "Click here to request a new password reset link.", "validatingPasswordResetToken": "Validating password reset token ...", - "thePasswordCannotBeReset": "The password cannot be reset", - "setNewPasswordFor": "Set new password for", - "resetPassword": "Reset password", - "parentNamespaceMustBeSelected": "Parent Namespace must be selected", - "namespaceUpdated": "Namespace updated", - "namespaceUpdated - TODO: update line above and then delete this line to mark that the translation has been fixed": "Namespace updated", - "namespaceCreated": "Namespace created", - "namespaceCreated - TODO: update line above and then delete this line to mark that the translation has been fixed": "Namespace created", + "thePasswordCannotBeReset": "La contraseña no pudo ser reestablecida.", + "setNewPasswordFor": "Establece una nueva contraseña para", + "resetPassword": "Reestablecer contraseña", + "parentNamespaceMustBeSelected": "Debes escoger un espacio de nombres padre", + "namespaceUpdated": "Espacio de nombres actualizado", + "namespaceCreated": "Espacio de nombres creado", "thereHasBeenALoopDetectedInTheAssignment": "There has been a loop detected in the assignment of the parent namespace. This is most likely because someone else has changed the parent of some namespace in the meantime. Refresh your page to start anew. Please note that your changes will be lost.", "itSeemsThatTheParentNamespaceHasBeen": "It seems that the parent namespace has been deleted in the meantime. Refresh your page to start anew. Please note that your changes will be lost.", - "deletingNamespace": "Deleting namespace ...", - "namespaceDeleted": "Namespace deleted", - "editNamespace": "Edit Namespace", - "createNamespace": "Create Namespace", - "parentNamespace": "Parent Namespace", - "namespaces": "Namespaces", - "namespaceName": "Namespace \"{{name}}\"", + "deletingNamespace": "Borrando espacio de nombres ...", + "namespaceDeleted": "Espacio de nombres borrado", + "editNamespace": "Editar Espacio de Nombres", + "createNamespace": "Crear Espacio de Nombre", + "parentNamespace": "Namespace Padre", + "namespaces": "Espacios de nombres", + "namespaceName": "Espacio de nombres \"{{name}}\"", "reportTemplateMustBeSelected": "Report template must be selected", "exactlyOneItemHasToBeSelected": "Exactly one item has to be selected", "atLeastCountItemsHaveToBeSelected": "At least {{ count }} item(s) have to be selected", "atMostCountItemsCanToBeSelected": "At most {{ count }} item(s) can to be selected", "reportParametersAreNotSelectedWaitFor": "Report parameters are not selected. Wait for them to get displayed and then fill them in.", - "reportUpdated": "Report updated", - "reportUpdated - TODO: update line above and then delete this line to mark that the translation has been fixed": "Report updated", - "reportCreated": "Report created", - "reportCreated - TODO: update line above and then delete this line to mark that the translation has been fixed": "Report created", + "reportUpdated": "Informe actualizado", + "reportCreated": "Informe creado", "unknownFieldTypeType": "Unknown field type \"{{type}}\"", - "deletingReport": "Deleting report ...", - "reportDeleted": "Report deleted", - "editReport": "Edit Report", - "createReport": "Create Report", - "reportTemplate-1": "Report Template", - "reportParameters": "Report parameters", - "loadingReportTemplate": "Loading report template...", - "processing-1": "Processing", - "view": "View", - "refreshReport": "Refresh report", - "reportGenerationFailed": "Report generation failed", - "regenerateReport": "Regenerate report", + "deletingReport": "Borrando informe ...", + "reportDeleted": "Informe borrado", + "editReport": "Editar Informe", + "createReport": "Crear Informe", + "reportTemplate-1": "Plantilla de Informe", + "reportParameters": "Parámetros de informe", + "loadingReportTemplate": "Cargando plantilla de informe...", + "processing-1": "Procesando", + "view": "Ver", + "refreshReport": "Refrescar informe", + "reportGenerationFailed": "Fallo en la generación de informe", + "regenerateReport": "Regenerar informe", "viewConsoleOutput": "View console output", - "reportTemplates": "Report Templates", - "reports": "Reports", - "reportName": "Report \"{{name}}\"", - "output": "Output", - "templateName": "Template \"{{name}}\"", + "reportTemplates": "Plantillas de Informe", + "reports": "Informes", + "reportName": "Informe \"{{name}}\"", + "output": "Salida", + "templateName": "Plantilla \"{{name}}\"", "mimeTypeMustBeSelected": "MIME Type must be selected", "syntaxErrorInTheUserFieldsSpecification": "Syntax error in the user fields specification", - "reportTemplateUpdated": "Report template updated", - "reportTemplateUpdated - TODO: update line above and then delete this line to mark that the translation has been fixed": "Report template updated", - "reportTemplateCreated": "Report template created", - "reportTemplateCreated - TODO: update line above and then delete this line to mark that the translation has been fixed": "Report template created", - "deletingReportTemplate": "Deleting report template ...", - "reportTemplateDeleted": "Report template deleted", - "editReportTemplate": "Edit Report Template", - "createReportTemplate": "Create Report Template", + "reportTemplateUpdated": "Plantilla de informe actualizada", + "reportTemplateCreated": "Plantilla de informe creada", + "deletingReportTemplate": "Borrando plantilla de informe ...", + "reportTemplateDeleted": "Plantilla de informe borrada", + "editReportTemplate": "Editar Plantilla de Informe", + "createReportTemplate": "Crear Plantilla de Informe", "csv": "CSV", "userSelectableFields": "User selectable fields", "jsonSpecificationOfUserSelectableFields": "JSON specification of user selectable fields.", @@ -827,32 +799,30 @@ "openCounts": "Open counts", "openCountsAsCsv": "Open counts as CSV", "aggregatedOpenCounts": "Aggregated open counts", - "reportName-1": "Report {{name}}", - "loadingReport": "Loading report ...", - "outputForReportName": "Output for report {{name}}", - "loadingReportOutput": "Loading report output ...", - "reportIsBeingGenerated": "Report is being generated", - "reportNotGenerated": "Report not generated", - "current": "(current)", - "administration": "Administracion", - "users": "Users", - "globalSettings": "Global Settings", - "sendConfigurations": "Send configurations", - "logOut": "Log out", - "home": "Home", + "reportName-1": "Informe {{name}}", + "loadingReport": "Cargando informe ...", + "outputForReportName": "Salida del informe {{name}}", + "loadingReportOutput": "Cargando salida del informe ...", + "reportIsBeingGenerated": "El informe está siendo generado", + "reportNotGenerated": "Informe no generado", + "current": "(actual)", + "administration": "Administración", + "users": "Usuarios", + "globalSettings": "Ajustes Globales", + "sendConfigurations": "Configuraciones de envío", + "logOut": "Salir", + "home": "Inicio", "mailerTypeMustBeSelected": "Mailer type must be selected", "verpHostnameMustNotBeEmpty": "VERP hostname must not be empty", - "sendConfigurationUpdated": "Send configuration updated", - "sendConfigurationUpdated - TODO: update line above and then delete this line to mark that the translation has been fixed": "Send configuration updated", - "sendConfigurationCreated": "Send configuration created", - "sendConfigurationCreated - TODO: update line above and then delete this line to mark that the translation has been fixed": "Send configuration created", - "deletingSendConfiguration": "Deleting send configuration ...", - "sendConfigurationDeleted": "Send configuration deleted", - "editSendConfiguration": "Edit Send Configuration", - "createSendConfiguration": "Create Send Configuration", - "emailHeader": "Email Header", + "sendConfigurationUpdated": "Configuración de envío actualizada", + "sendConfigurationCreated": "Configuración de envío creada", + "deletingSendConfiguration": "Borrando configuración de envío ...", + "sendConfigurationDeleted": "Configuración de envío borrada", + "editSendConfiguration": "Editar Configuración de Envío", + "createSendConfiguration": "Crear Configuracón de Envío", + "emailHeader": "Cabecera de Email", "defaultFromEmail": "Default \"from\" email", - "overridable": "Overridable", + "overridable": "Sobreescribible", "defaultFromName": "Default \"from\" name", "defaultReplytoEmail": "Default \"reply-to\" email", "xMailer": "X-Mailer", @@ -867,12 +837,12 @@ "toGetVerpWorkingYouNeedToSetUpADnsMx": "<0>To get VERP working you need to set up a DNS MX record that points to your Mailtrain hostname. You must also ensure that Mailtrain VERP interface is available from port 25 of your server (port 25 usually requires root user privileges). This way if anyone tries to send email to someuser@verp-hostname then the email should end up to this server.", "verpUsuallyOnlyWorksIfYouAreUsingYourOwn": "<0>VERP usually only works if you are using your own SMTP server. Regular relay services (SES, SparkPost, Gmail etc.) tend to remove the VERP address from the message.", "verpBounceHandlingServerIsNotEnabled": "<0>VERP bounce handling server is not enabled. Modify your server configuration file and restart server to enable it.", - "labelMustNotBeEmpty": "{{label}} must not be empty", - "labelMustBeANumber": "{{label}} must be a number", - "genericSmtp": "Generic SMTP", + "labelMustNotBeEmpty": "{{label}} no puede estar vacía", + "labelMustBeANumber": "{{label}} debe ser un número", + "genericSmtp": "SMTP Genérico", "zoneMta": "Zone MTA", "amazonSes": "Amazon SES", - "doNotUseEncryption": "Do not use encryption", + "doNotUseEncryption": "No usar cifrado", "useTls –UsuallySelectedForPort465": "Use TLS – usually selected for port 465", "useStarttls –UsuallySelectedForPort587": "Use STARTTLS – usually selected for port 587 and 25", "useast1": "US-EAST-1", @@ -921,8 +891,8 @@ "region": "Region", "ifYouAreUsingZoneMtaThenMailtrainCan": "<0>If you are using ZoneMTA then Mailtrain can provide a DKIM key for signing all outgoing messages. Other services usually provide their own means to DKIM sign your messages.", "doNotUseSensitiveKeysHereThePrivateKeyIs": "<0>Do not use sensitive keys here. The private key is not encrypted in the database.", - "sendConfigurations-1": "Send Configurations", - "globalSettingsSaved": "Global settings saved", + "sendConfigurations-1": "Configuraciones de envío", + "globalSettingsSaved": "Ajustes globales guardados", "adminEmail": "Admin email", "thisEmailIsUsedAsTheMainContactAndAsA": "This email is used as the main contact and as a default email address if no email address is specified in list settings.", "defaultHomepageUrl": "Default homepage URL", @@ -939,14 +909,14 @@ "privateKeyPassphrase": "Private key passphrase", "passphraseForTheKeyIfSet": "Passphrase for the key if set", "onlyFillThisIfYourPrivateKeyIsEncrypted": "Only fill this if your private key is encrypted with a passphrase", - "gpgPrivateKey": "GPG private key", - "beginsWithBeginPgpPrivateKeyBlock": "Begins with '-----BEGIN PGP PRIVATE KEY BLOCK-----'", + "gpgPrivateKey": "clave privada GPG", + "beginsWithBeginPgpPrivateKeyBlock": "Empieza con '-----BEGIN PGP PRIVATE KEY BLOCK-----'", "thisValueIsOptionalIfYouDoNotProvideA": "This value is optional. If you do not provide a private key GPG encrypted messages are sent without signing.", "onlyMessagesThatAreEncryptedCanBeSigned": "<0>Only messages that are encrypted can be signed. Subsribers who have not set up a GPG public key in their profile receive normal email messages. Users with GPG key set receive encrypted messages and if you have signing key also set, the messages are signed with this key.", "doNotUseSensitiveKeysHereThePrivateKey": "<0>Do not use sensitive keys here. The private key and passphrase are not encrypted in the database.", - "userMustNotBeEmpty": "User must not be empty", - "roleMustBeSelected": "Role must be selected", - "role": "Role", + "userMustNotBeEmpty": "El usuario no puede estar vacío", + "roleMustBeSelected": "El rol debe ser seleccionado", + "role": "Rol", "unshare": "Unshare", "unshare - TODO: update line above and then delete this line to mark that the translation has been fixed": "Unshare", "confirmUnsharing": "Confirm Unsharing", @@ -957,9 +927,9 @@ "removingShareForUserUsername - TODO: update line above and then delete this line to mark that the translation has been fixed": "Removing share for user \"{{username}}\"", "shareForUserUsernameRemoved": "Share for user \"{{username}}\" removed", "shareForUserUsernameRemoved - TODO: update line above and then delete this line to mark that the translation has been fixed": "Share for user \"{{username}}\" removed", - "addUser": "Add User", - "user": "User", - "existingUsers": "Existing Users", + "addUser": "Añadir Usuario", + "user": "Usuario", + "existingUsers": "Usuarios Existentes", "areYouSureYouWantToRemoveTheSharingOfThe": "Are you sure you want to remove the sharing of the {{typeName}} \"{{name}}\"?", "areYouSureYouWantToRemoveTheSharingOfThe - TODO: update line above and then delete this line to mark that the translation has been fixed": "Are you sure you want to remove the sharing of the {{typeName}} \"{{name}}\"?", "removingSharingOfTheTypeNameName": "Removing sharing of the {{typeName}} \"{{name}}\"", @@ -967,37 +937,27 @@ "sharingOfTheTypeNameNameRemoved": "Sharing of the {{typeName}} \"{{name}}\" removed", "sharingOfTheTypeNameNameRemoved - TODO: update line above and then delete this line to mark that the translation has been fixed": "Sharing of the {{typeName}} \"{{name}}\" removed", "sharesForUserUsername": "Shares for user \"{{username}}\"", - "namespace-1": "namespace", - "namespace-1 - TODO: update line above and then delete this line to mark that the translation has been fixed": "namespace", - "list-1": "list", - "list-1 - TODO: update line above and then delete this line to mark that the translation has been fixed": "list", - "template-1": "template", - "template-1 - TODO: update line above and then delete this line to mark that the translation has been fixed": "template", - "mosaicoTemplates": "Mosaico Templates", - "campaign-1": "campaign", - "campaign-1 - TODO: update line above and then delete this line to mark that the translation has been fixed": "campaign", - "customForms-2": "custom forms", - "customForms-2 - TODO: update line above and then delete this line to mark that the translation has been fixed": "custom forms", - "report-1": "report", - "report-1 - TODO: update line above and then delete this line to mark that the translation has been fixed": "report", - "reportTemplate-2": "report template", - "reportTemplate-2 - TODO: update line above and then delete this line to mark that the translation has been fixed": "report template", - "sendConfiguration-1": "send configuration", - "sendConfiguration-1 - TODO: update line above and then delete this line to mark that the translation has been fixed": "send configuration", + "namespace-1": "espacio de nombres", + "list-1": "lista", + "template-1": "plantilla", + "mosaicoTemplates": "Plantillas Mosaico", + "campaign-1": "campaña", + "customForms-2": "formularios personalizados", + "report-1": "informe", + "reportTemplate-2": "plantilla de informe", + "sendConfiguration-1": "configuración de envío", "sourceTemplateMustNotBeEmpty": "Source template must not be empty", "sourceTemplateMustNotBeEmpty - TODO: update line above and then delete this line to mark that the translation has been fixed": "Source template must not be empty", - "templateUpdated": "Template updated", - "templateUpdated - TODO: update line above and then delete this line to mark that the translation has been fixed": "Template updated", - "templateCreated": "Template created", - "templateCreated - TODO: update line above and then delete this line to mark that the translation has been fixed": "Template created", - "deletingTemplate": "Deleting template ...", - "templateDeleted": "Template deleted", - "editTemplate": "Edit Template", - "createTemplate": "Create Template", + "templateUpdated": "Plantilla actualizada", + "templateCreated": "Plantilla creada", + "deletingTemplate": "Borrando plantilla ...", + "templateDeleted": "Plantilla borrada", + "editTemplate": "Editar Plantilla", + "createTemplate": "Crear Plantilla", "cloneFromAnExistingTemplate": "Clonar a partir de templates ya existentes", "cloneFromAnExistingCustomForms": "Clonar a partir de formularios personalizados ya existentes", "mosaico": "Mosaico", - "templateContentHtml": "Template content (HTML)", + "templateContentHtml": "Contenido de plantilla (HTML)", "mosaicoTemplateDesigner": "Mosaico Template Designer", "mosaicoTemplateMustBeSelected": "Mosaico template must be selected", "mosaicoWithPredefinedTemplates": "Mosaico with predefined templates", @@ -1019,57 +979,48 @@ "uniqueIdThatIdentifiesTheListUsedForThis": "Unique ID that identifies the list used for this campaign", "uniqueIdThatIdentifiesCurrentCampaign": "Unique ID that identifies current campaign", "forRssCampaignsTheFollowingFurtherTags": "\n <1>For RSS campaigns, the following further tags can be used.\n ", - "rssEntryTitle": "RSS entry title", - "rssEntryDate": "RSS entry date", - "rssEntryLink": "RSS entry link", - "contentOfAnRssEntry": "Content of an RSS entry", - "rssEntrySummary": "RSS entry summary", - "rssEntryImageUrl": "RSS entry image URL", + "rssEntryTitle": "Título de la entrada RSS", + "rssEntryDate": "Fecha de la entrada RSS", + "rssEntryLink": "Enlace de la entrada RSS", + "contentOfAnRssEntry": "Contenido de la entrada RSS", + "rssEntrySummary": "Resumen de la entrada RSS", + "rssEntryImageUrl": "Enlace a la imágen RSS", "toExtractTheTextFromHtmlClickHerePlease": "To extract the text from HTML click <1>here. Please note that your existing plaintext in the field above will be overwritten. This feature uses the <3>Premailer API, a third party service. Their Terms of Service and Privacy Policy apply.", - "mosaicoTemplateUpdated": "Mosaico template updated", - "mosaicoTemplateUpdated - TODO: update line above and then delete this line to mark that the translation has been fixed": "Mosaico template updated", - "mosaicoTemplateCreated": "Mosaico template created", - "mosaicoTemplateCreated - TODO: update line above and then delete this line to mark that the translation has been fixed": "Mosaico template created", - "deletingMosaicoTemplate": "Deleting Mosaico template ...", - "mosaicoTemplateDeleted": "Mosaico template deleted", - "editMosaicoTemplate": "Edit Mosaico Template", - "createMosaicoTemplate": "Create Mosaico Template", - "invalidMjml": "Invalid MJML", - "invalidMjml - TODO: update line above and then delete this line to mark that the translation has been fixed": "Invalid MJML", - "mjmlIsValid": "MJML is valid.", - "mjmlIsValid - TODO: update line above and then delete this line to mark that the translation has been fixed": "MJML is valid.", - "invalidMjml-1": "Invalid MJML.", - "invalidMjml-1 - TODO: update line above and then delete this line to mark that the translation has been fixed": "Invalid MJML.", - "templateContent": "Template content", - "validate": "Validate", - "validate - TODO: update line above and then delete this line to mark that the translation has been fixed": "Validate", + "mosaicoTemplateUpdated": "Plantilla Mosaico actualizada", + "mosaicoTemplateCreated": "Plantilla Mosaico creada", + "deletingMosaicoTemplate": "Borrando plantilla Mosaico ...", + "mosaicoTemplateDeleted": "Borrada plantilla Mosaico", + "editMosaicoTemplate": "Editar plantilla Mosaico", + "createMosaicoTemplate": "Crear plantilla Mosaico", + "invalidMjml": "MJML inválido.", + "mjmlIsValid": "MJML válido.", + "invalidMjml-1": "MJML inválido.", + "templateContent": "Contenido de plantilla", + "validate": "Validar", "blockThumbnails": "Block thumbnails", "versafixOne": "Versafix One", - "mjmlSample": "MJML Sample", - "mjmlSample - TODO: update line above and then delete this line to mark that the translation has been fixed": "MJML Sample", - "mosaicoTemplateName": "Mosaico Template \"{{name}}\"", + "mjmlSample": "Ejemplo MJML", + "mosaicoTemplateName": "Plantilla Mosaico \"{{name}}\"", "theseFilesArePubliclyAvailableViaHttpSo-1": "These files are publicly available via HTTP so that they can be linked to from the Mosaico template.", "theseFilesWillBeUsedByMosaicoToSearchFor": "These files will be used by Mosaico to search for block thumbnails (the \"edres\" directory). Place here one file per block type that you have defined in the Mosaico template. Each file must have the same name as the block id. The file will be used as the thumbnail of the corresponding block.", "sendConfigurationHasToBeSelected": "Send configuration has to be selected.", - "listHasToBeSelected": "List has to be selected.", - "theUserNameAlreadyExistsInTheSystem": "The user name already exists in the system.", - "userUpdated": "User updated", - "userUpdated - TODO: update line above and then delete this line to mark that the translation has been fixed": "User updated", - "userCreated": "User created", - "userCreated - TODO: update line above and then delete this line to mark that the translation has been fixed": "User created", - "theUsernameIsAlreadyAssignedToAnother": "The username is already assigned to another user.", - "theEmailIsAlreadyAssignedToAnotherUser-1": "The email is already assigned to another user.", - "deletingUser": "Deleting user ...", - "userDeleted": "User deleted", - "editUser": "Edit User", - "createUser": "Create User", - "userName": "User Name", - "repeatPassword": "Repeat Password", - "deleteUser": "Delete User", - "userName-1": "User \"{{name}}\"", + "listHasToBeSelected": "La lista debe ser seleccionada.", + "theUserNameAlreadyExistsInTheSystem": "El nombre de usuario ya existe en el sistema.", + "userUpdated": "Usuario actualizado", + "userCreated": "Usuario creado", + "theUsernameIsAlreadyAssignedToAnother": "El nombre de usuario ya está asignado a otra persona.", + "theEmailIsAlreadyAssignedToAnotherUser-1": "El email ya está asignado a otra persona.", + "deletingUser": "Borrando usuario ...", + "userDeleted": "Usuario borrado", + "editUser": "Editar Usuario", + "createUser": "Crear Usario", + "userName": "Nombre de Usuario", + "repeatPassword": "Repite Contraseña", + "deleteUser": "Borrar Usuario", + "userName-1": "Usuario \"{{name}}\"", "shares": "Shares", - "subscriptionConfirmed": "Subscription Confirmed", - "listEmailAddressAlreadyRegistered": "{{list}}: Email Address Already Registered", + "subscriptionConfirmed": "Suscrición confirmada", + "listEmailAddressAlreadyRegistered": "{{list}}: El email ya estaba registrado", "listPleaseConfirmEmailChangeIn": "{{list}}: Please Confirm Email Change in Subscription", "pleaseConfirmSubscription": "Please Confirm Subscription", "listPleaseConfirmUnsubscription": "{{list}}: Please Confirm Unsubscription", @@ -1091,18 +1042,57 @@ "wantToChangeIt?": "want to change it?", "downloadSignatureVerificationKey": "Download signature verification key", "beginsWithAnd#39BeginPgpPublicKeyBloc": "Begins with '-----BEGIN PGP PUBLIC KEY BLOCK-----'", - "insertYourGpgPublicKeyHereToEncrypt": "Insert your GPG public key here to encrypt messages sent to your address (optional)", + "insertYourGpgPublicKeyHereToEncrypt": "Introduce tu clave pública GPG para cifrar los mensajes enviados a tu correo (opcional)", "existingEmailAddress": "Existing Email Address", - "newEmailAddress": "New Email Address", - "youWillReceiveAConfirmationRequestToYour": "You will receive a confirmation request to your new email address that you need to accept before your email is actually changed", - "updateEmailAddress": "Update Email Address", - "updateProfile": "Update Profile", - "subscribeToList": "Subscribe to list", - "thePasswordMustBeAtLeastMinLength": "The password must be at least {{ minLength }} characters long", - "thePasswordMustBeFewerThanMaxLength": "The password must be fewer than {{ maxLength }} characters", - "thePasswordMayNotContainSequencesOfThree": "The password may not contain sequences of three or more repeated characters", - "thePasswordMustContainAtLeastOne": "The password must contain at least one lowercase letter", - "thePasswordMustContainAtLeastOne-1": "The password must contain at least one uppercase letter", - "thePasswordMustContainAtLeastOneNumber": "The password must contain at least one number", - "thePasswordMustContainAtLeastOneSpecial": "The password must contain at least one special character" + "newEmailAddress": "Nueva dirección de correo", + "youWillReceiveAConfirmationRequestToYour": "Recibirás un correo a tu nueva dirección que debes aceptar antes de que tu correo se cambie", + "updateEmailAddress": "Actualizar Email", + "updateProfile": "Actualizar Perfil", + "subscribeToList": "Subscribir a la lista", + "thePasswordMustBeAtLeastMinLength": "La contraseña debe tener al menos {{ minLength }} caracteres", + "thePasswordMustBeFewerThanMaxLength": "La contraseña no puede tener más de {{ maxLength }} caracteres", + "thePasswordMayNotContainSequencesOfThree": "La contraseña no puede tener secuencias de tres o más caracteres repetidos", + "thePasswordMustContainAtLeastOne": "La contraseña debe tener al menos una letra minúscula", + "thePasswordMustContainAtLeastOne-1": "La contraseña debe tener al menos una letra mayúscula", + "thePasswordMustContainAtLeastOneNumber": "La contraseña debe tener al menos un número", + "thePasswordMustContainAtLeastOneSpecial": "La contraseña debe tener al menos un caracter especial", + "dTsEmptyTable": "Ningún dato disponible en esta tabla", + "dTsInfo": "Mostrando registros del _START_ al _END_ de un total de _TOTAL_ registros", + "dTsInfoEmpty": "Mostrando registros del 0 al 0 de un total de 0 registros", + "dTsInfoFiltered": "(filtrado de un total de _MAX_ registros)", + "dTsInfoPostFix": "", + "dTsInfoThousands": ".", + "dTsLengthMenu": "Mostrar _MENU_ registros", + "dTsLoadingRecords": "Cargando...", + "dTsProcessing": "Procesando...", + "dTsSearch": "Buscar:", + "dTsZeroRecords": "No se encontraron resultados", + "dTsFirst": "Primero", + "dTsLast": "Último", + "dTsNext": "Siguiente", + "dTsPrevious": "Anterior", + "dTsSortAscending": ": Activar para ordenar la columna de manera ascendente", + "dTsSortDescending": ": Activar para ordenar la columna de manera descendente", + "saving": "Guardando ...", + "channelUpdated": "Canal actualizado", + "channelCreated": "Canal creado", + "deletingChannel": "Borrando canal ...", + "channelDeleted": "Canal borrado", + "editChannel": "Editar Canal", + "createChannel": "Crear Canal", + "sendConfiguration": "Configuración de envío", + "sendConfiguration_plural": "Configuraciones de envío", + "disableOpenedTracking": "Disable opened tracking", + "disableClickedTracking": "Disable clicked tracking", + "save": "Guardar", + "saveAndLeave": "Guardar y salir", + "channels": "Canales", + "channel": "Canal", + "channelName": "Canal \"{{name}}\"", + "cloneCampaign": "Clonar campaña", + "next": "Siguiente", + "selectCampaignToBeCloned": "Elige la campaña que será clonada.", + "tagLanguage": "Lenguaje de marcado", + "tagLanguageMustBeSelected": "Debes seleccionar un lenguaje de marcado", + "helpText": "Texto de ayuda" } diff --git a/locales/fr-FR/common.json b/locales/fr-FR/common.json index cb22bbe7..8c7bff85 100644 --- a/locales/fr-FR/common.json +++ b/locales/fr-FR/common.json @@ -1029,5 +1029,41 @@ "thePasswordMustContainAtLeastOneSpecial": "Le mot de passe doit contenir au moins un caractère spécial", "tagLanguage": "Langue du tag", "tagLanguageMustBeSelected": "La langue du tag doit être sélectionnée", - "helpText": "Texte d'aide" + "helpText": "Texte d'aide", + "dTsEmptyTable": "Aucune donnée disponible dans le tableau", + "dTsInfo": "Affichage de l'élément _START_ à _END_ sur _TOTAL_ éléments", + "dTsInfoEmpty": "Affichage de l'élément 0 à 0 sur 0 élément", + "dTsInfoFiltered": "(filtré à partir de _MAX_ éléments au total)", + "dTsInfoPostFix": "", + "dTsInfoThousands": ",", + "dTsLengthMenu": "Afficher _MENU_ éléments", + "dTsLoadingRecords": "Chargement...", + "dTsProcessing": "Traitement...", + "dTsSearch": "Rechercher :", + "dTsZeroRecords": "Aucun élément correspondant trouvé", + "dTsFirst": "Premier", + "dTsLast": "Dernier", + "dTsNext": "Suivant", + "dTsPrevious": "Précédent", + "dTsSortAscending": ": activer pour trier la colonne par ordre croissant", + "dTsSortDescending": ": activer pour trier la colonne par ordre décroissant", + "saving": "Saving ...", + "channelUpdated": "Channel updated", + "channelCreated": "Channel created", + "deletingChannel": "Deleting channel ...", + "channelDeleted": "Channel deleted", + "editChannel": "Edit Channel", + "createChannel": "Create Channel", + "sendConfiguration": "Send configuration", + "sendConfiguration_plural": "Send configurations", + "disableOpenedTracking": "Disable opened tracking", + "disableClickedTracking": "Disable clicked tracking", + "save": "Save", + "saveAndLeave": "Save and leave", + "channels": "Channels", + "channel": "Channel", + "channelName": "Channel \"{{name}}\"", + "cloneCampaign": "Clone Campaign", + "next": "Next", + "selectCampaignToBeCloned": "Select campaign to be cloned." } diff --git a/locales/pt-BR/common.json b/locales/pt-BR/common.json index 5d92ba58..19254c1d 100644 --- a/locales/pt-BR/common.json +++ b/locales/pt-BR/common.json @@ -1107,5 +1107,41 @@ "thePasswordMustContainAtLeastOne": "A senha deve conter pelo menos uma letra minúscula", "thePasswordMustContainAtLeastOne-1": "A senha deve conter pelo menos uma letra maiúscula", "thePasswordMustContainAtLeastOneNumber": "A senha deve conter pelo menos um número", - "thePasswordMustContainAtLeastOneSpecial": "A senha deve conter pelo menos um caractere especial" + "thePasswordMustContainAtLeastOneSpecial": "A senha deve conter pelo menos um caractere especial", + "dTsEmptyTable": "Não foi encontrado nenhum registo", + "dTsInfo": "Mostrando de _START_ até _END_ de _TOTAL_ registos", + "dTsInfoEmpty": "Mostrando de 0 até 0 de 0 registos", + "dTsInfoFiltered": "(filtrado de _MAX_ registos no total)", + "dTsInfoPostFix": "", + "dTsInfoThousands": ".", + "dTsLengthMenu": "Mostrar _MENU_ registos", + "dTsLoadingRecords": "A carregar...", + "dTsProcessing": "A processar...", + "dTsSearch": "Procurar:", + "dTsZeroRecords": "Não foram encontrados resultados", + "dTsFirst": "Primeiro", + "dTsLast": "Último", + "dTsNext": "Seguinte", + "dTsPrevious": "Anterior", + "dTsSortAscending": ": Ordenar colunas de forma ascendente", + "dTsSortDescending": ": Ordenar colunas de forma descendente", + "saving": "Saving ...", + "channelUpdated": "Channel updated", + "channelCreated": "Channel created", + "deletingChannel": "Deleting channel ...", + "channelDeleted": "Channel deleted", + "editChannel": "Edit Channel", + "createChannel": "Create Channel", + "sendConfiguration": "Send configuration", + "sendConfiguration_plural": "Send configurations", + "disableOpenedTracking": "Disable opened tracking", + "disableClickedTracking": "Disable clicked tracking", + "save": "Save", + "saveAndLeave": "Save and leave", + "channels": "Channels", + "channel": "Channel", + "channelName": "Channel \"{{name}}\"", + "cloneCampaign": "Clone Campaign", + "next": "Next", + "selectCampaignToBeCloned": "Select campaign to be cloned." }